Summary: | 碩士 === 國立東華大學 === 資訊工程學系 === 106 === In this thesis, we focus on using web browsers as a distributed programming environment with RMI infrastructures. We design a JavaScript version of the RMI prototype model to make browser-based distributed computing environments more efficient when executing JavaScript distributed programs.
Today, there are a number of team projects that allow browsers to have similar execution performance as native programs such as Google's NaCl/PNaCl project on Chrome, Mozilla's asm.js project on Firefox, etc. As the performance improves, a communication model is needed to connect the JavaScript programs on different devices. We find that there are not many studies on using the browsers as the computing environment for distributed programs. This motivates us to study the communication infrastructures on browser-based distributed computing environments.
The communication architecture of a general distributed system is divided into four types [3]: remote procedure call, remote object invocation, message-oriented communication, and stream-oriented communication. Among them, we choose to study one of the remote object invocation methods, JAVA-RMI. The JAVA-RMI communication infrastructure has the advantages of portability, cross-platform, and that users do not need to contact the underlying communications. It is very suitable for us to implement on the browser-based distributed computing environments. We design and implement the JavaScript version of the RMI prototype model, called JS-RMI.
JS-RMI is a prototype model designed for executing distributed programs in a browser-based computing environment. This model is designed to conform with the ECMAScript 6 standard JavaScript engine development environment. The Google Chrome browser is used as the execution environment with the Chrome Packaged App. JS-RMI refers to the communication infrastructures of the standard JAVA-RMI, allowing JavaScript programs to be distributedly executed with the remote object invocation model. The architecture of JS-RMI is divided into a server and a client, and the server includes a register whose registry program waits for invocations. The distributed program execution is distributed on several servers. After the execution of the server program is completed, the data is returned to the client, and then the client processes the data of the execution result.
After implementation of JS-RMI, we conduct a case study with a distributed merge sort program. In this case study, we found that when the distributed program is executed on the browser-based environment, although the computation performance is not as good as bytecode on Java Virtual Machine(JVM), the communication performance is better than the JVM.
Finally, we use NASA's NAS Grid Benchmarks for large-scale experiments. The purpose of the experiments is twofold: First, we verify that the JS-RMI prototype model can be applied to develop large-scale distributed software systems. Second, we would like to measure the performance of the distributed programs developed with JS-RMI. The experiment result show that the execution performance of the browser-based distributed computing environment using the RMI communication infrastructure is lower than that of JVM, but still acceptable.
Keywords: Distributed Programming、RMI、JavaScript、Browser-based applications
|