Network computing system reference manual
Network computing system reference manual
Object oriented design with applications
Object oriented design with applications
Implementing remote procedure calls
ACM Transactions on Computer Systems (TOCS)
Java Virtual Machine Specification
Java Virtual Machine Specification
The Java Language Specification
The Java Language Specification
Adaptive parallelism: an early experiment with Java remote method invocation
ACM SIGOPS Operating Systems Review
Wire-area parallel computing in Java
JAVA '99 Proceedings of the ACM 1999 conference on Java Grande
Transparent communication for distributed objects in Java
JAVA '99 Proceedings of the ACM 1999 conference on Java Grande
Smart proxies for Jini services
ACM SIGPLAN Notices
Ibis: an efficient Java-based grid programming environment
JGI '02 Proceedings of the 2002 joint ACM-ISCOPE conference on Java Grande
A Framework for Evaluating Distributed Object Models and its Application to Web Engineering
Annals of Software Engineering
Increasing Application Accessibility Through Java
IEEE Internet Computing
Performance Evaluation of a Java Based Chat System
ISHPC '00 Proceedings of the Third International Symposium on High Performance Computing
On the Interaction of Mobile Processes and Objects
HCW '98 Proceedings of the Seventh Heterogeneous Computing Workshop
Satin: A high-level and efficient grid programming model
ACM Transactions on Programming Languages and Systems (TOPLAS)
PREMO: A framework for multimedia middleware: specification, rationale, and java binding
PREMO: A framework for multimedia middleware: specification, rationale, and java binding
Parallel and distributed components with java
ICCSA'05 Proceedings of the 2005 international conference on Computational Science and Its Applications - Volume Part III
Hi-index | 0.00 |
By providing a homogeneous view to a heterogeneous group of machines and by safely allowing the dynamic downloading of code into a running process, Java has changed the usual set of assumptions that have governed distributed computing systems. Coupled with a strongly-typed language, the Java platform gives an environment for developing the first truly object-oriented, as opposed to object-based, distributed computing system. The first step towards such a system has been taken in the Java Developers Kit release 1.1. That release includes the Java Remote Method Invocation system. This system allows a Java object running in one virtual machine to make method calls on other Java objects in other virtual machines, perhaps on a different physical machine. The overall design of RMI has much in common with other distributed object and remote procedure call systems. However, since RMI assumes that the calls are made from one Java object to another Java object, the system is able to pass object arguments and return values by their actual type rather than their declared type, allowing full distributed polymorphism. If the class of such a passed object is not present in the receiving machine, the system allows the code for the type to be dynamically loaded. The system also utilizes the garbage collection present on the base platform to implement a distributed garbage collection scheme, enhanced to be robust in the face of network failures. In this paper, we will describe the Java RMI system, including the underlying object serialization system that is used to convert Java objects into a form that can be transmitted from one virtual machine to another. We will show how a language-centered approach to distributed systems leads to a distributed object model that is a natural extension of the language's object model. This in turn makes the programming of such a system comparatively simple, and enhances the functionality and robustness of the distributed infrastructure.