PVM: a framework for parallel distributed computing
Concurrency: Practice and Experience
Object-oriented metrics: measures of complexity
Object-oriented metrics: measures of complexity
Communications of the ACM
Java Message Service
Java RMI
Failure Detectors as First Class Objects
DOA '99 Proceedings of the International Symposium on Distributed Objects and Applications
Proceedings of the 1975 ACM SIGCOMM/SIGOPS workshop on Interprocess communications
MPI: A Message-Passing Interface Standard
MPI: A Message-Passing Interface Standard
A Note on Distributed Computing
A Note on Distributed Computing
The " Accrual Failure Detector
SRDS '04 Proceedings of the 23rd IEEE International Symposium on Reliable Distributed Systems
Software and the Concurrency Revolution
Queue - Multiprocessors
Distributed Systems: Concepts and Design (4th Edition) (International Computer Science)
Distributed Systems: Concepts and Design (4th Edition) (International Computer Science)
A high-performance end system architecture for real-time CORBA
IEEE Communications Magazine
An eclipse-based tool for symbolic debugging of distributed object systems
OTM'07 Proceedings of the 2007 OTM Confederated international conference on On the move to meaningful internet systems: CoopIS, DOA, ODBASE, GADA, and IS - Volume Part I
Hi-index | 0.00 |
Much work has been done in order to make the development of distributed systems as close as sensible to the development of centralized systems As a result, there are today good distributed object solutions that closely resemble centralized programming However, this very attempt to mimic centralized programming implies that distributed objects create the illusion that threads traverse the whole distributed application This brings all the problems related to multi-thread programming, including the need to reason about the thread behavior of the whole application, which gets amplified by the large scale and inherent non-determinism of distributed systems Moreover, distributed objects present other troubles when the application is not pure client-server, i.e., when the client has other things to do besides waiting for the server. As an alternative, there are a number of message-based non-blocking communication solutions Unfortunately, these solutions were not designed to directly address the above mentioned issue of multi-threading over the whole distributed application In addition: (i) these solutions are not as well integrated to the programming language as distributed objects, and (ii) most of them do not provide a well-defined embedded failure detection mechanism, something that is crucial for the development of many distributed systems, and that is well solved by distributed objects (as they couple method invocation and failure detection). We here propose and evaluate an improvement for such a status-quo, named JIC (Java Internet Communication) JIC is an event-driven middleware that relies on a non-blocking communication model, yet providing close semantics to the object-oriented paradigm JIC is designed to combine the best characteristics of distributed objects and message-based solutions For instance, JIC defines precise scope for the application's threads, promotes non-blocking communication, provides a failure detection service that is simple to use with precise semantics, and has performance comparable to Java RMI Furthermore, JIC is designed to be firewall and NAT friendly, greatly helping the deployment of JIC-based applications across multiple administrative domains.