Skip to main content

Part of the book series: Lecture Notes in Computer Science ((LNISA,volume 4276))

Abstract

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.

An erratum to this chapter can be found at http://dx.doi.org/10.1007/11914952_55.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Waldo, J., Wyant, G., Wollrath, A., Kendall, S.: A Note on Distributed Computing. Technical Report SMLI TR-94-29, Sun Microsystems Labs (1994)

    Google Scholar 

  2. Coulouris, G., Dollimore, J.: Distributed systems: concepts and design. Addison-Wesley Longman Publishing Co., Inc., Boston (2005)

    Google Scholar 

  3. Grosso, W.: Java RMI. O’Reilly & Associates, Inc., Sebastopol (2002)

    Google Scholar 

  4. RMI: Java Remote Method Invocation web site (2006), at: java.sun.com/products/jdk/rmi/

  5. CORBA: Common Object Request Broker Architecture Core Specification (2006), at: www.omg.org/technology/documents/formal/corba_iiop.htm

  6. Sutter, H., Larus, J.: Software and the concurrency revolution. Queue 3(7), 54–62 (2005)

    Article  Google Scholar 

  7. Lee, E.A.: The problem with threads. Technical Report UCB/EECS-2006-1, EECS Department, University of California, Berkeley (2006)

    Google Scholar 

  8. Schmidt, D., Gokhale, A., Harrison, T., Parulkar, G.: A high-performance endsystem architecture for real-time CORBA. IEEE Communications Magazine 4(2) (1997)

    Google Scholar 

  9. Pietzuch, P.R.: Event-based middleware: A new paradigm for wide-area distributed systems? In: 6th CaberNet Radicals Workshop (2002)

    Google Scholar 

  10. Starovic, G., Cahill, V., Tangney, B.: An event based object model for distributed programming. In: OOIS (Object-Oriented Information Systems 1995), pp. 72–86. Springer, London (1995)

    Google Scholar 

  11. DS-online: Distributed Systems Online web site. Message Oriented Middleware section (2006), at: dsonline.computer.org/middleware/intro_MOM.html

  12. Monson-Haefel, R., Chappell, D.: Java Message Service. O’Reilly & Associates, Inc., Sebastopol (2000)

    Google Scholar 

  13. Sunderam, V.S.: PVM: a framework for parallel distributed computing. Concurrency, Practice and Experience 2(4), 315–340 (1990)

    Article  Google Scholar 

  14. Forum, M.P.I.: MPI: A message-passing interface standard. Technical Report UT-CS-94-230 (1994)

    Google Scholar 

  15. Cirne, W., Brasileiro, F., Andrade, N., Costa, L., Andrade, A., Novaes, R., Mowbray, M.: Labs of the world, unite!!! (accepted for publication in Journal of Grid Computing), available at: walfredo.dsc.ufcg.edu.br/papers/LabsoftheWorldUnitev19.pdf

  16. Dantas, A., Cirne, W., Saikoski, K.: Using aop to bring a project back in shape: The ourgrid case. Journal of the Brazilian Computer Society 11(3), 21–35 (2006)

    Article  Google Scholar 

  17. JSF: Jabber software foundation web site (2006), at: www.jabber.org/

  18. XMPP: Extensible messaging and presence protocol specification (2006), at: www.xmpp.org/specs/

  19. Deng, X., Dwyer, M.B., Hatcliff, J., Mizuno, M.: Invariant-based specification, synthesis, and verification of synchronization in concurrent programs (2002)

    Google Scholar 

  20. Hayashibara, N., Defago, X., Yared, R., Katayama, T.: The phi accrual failure detector. In: Proceedings of the 23rd IEEE International Symposium on Reliable Distributed Systems (SRDS 2004), pp. 66–78. IEEE Computer Society, Los Alamitos (2004)

    Chapter  Google Scholar 

  21. Felber, P., Défago, X., Guerraoui, R., Oser, P.: Failure detectors as first class objects. In: Proceedings of the International Symposium on Distributed Objects and Applications (DOA 1999), Edinburgh, Scotland, pp. 132–141 (1999)

    Google Scholar 

  22. Tomlinson, R.S.: Selecting sequence numbers. In: Proceedings of the 1975 ACM SIGCOMM/SIGOPS workshop on Interprocess communications, pp. 11–23. ACM Press, New York (1975)

    Chapter  Google Scholar 

  23. Henderson-Sellers, B.: Object-Oriented Metrics: Measures of Complexity. Prentice Hall, Englewood Cliffs (1995)

    Google Scholar 

  24. Schmidt, D., Vinoski, S.: Object interconnections: Programming asynchronous method invocations with corba messaging (1999)

    Google Scholar 

  25. Object-Management-Group: Corba messaging specification, omg document orbos/98- 05-05 ed. (1998)

    Google Scholar 

  26. Vinoski, S.: New features for corba 3.0. Commun. ACM 41(10), 44–52 (1998)

    Article  Google Scholar 

  27. Raje, R., William, J., Boyles, M.: An asynchronous remote method invocation (ARMI) mechanism for java. In: ACM Workshop on Java for Science and Engineering Computation, ACM Press, New York (1997)

    Google Scholar 

  28. Falkner, K.E.K., Coddington, P.D., Oudshoorn, M.J.: Implementing Asynchronous Remote Method Invocation in Java. Technical Report DHPC-072 (1999)

    Google Scholar 

  29. MQSeries: IBM MQSeries web site (2006), at: www.ibm.com/software/mqseries

  30. Loughran, S., Smith, E.: Rethinking the Java SOAP Stack. Technical Report HPL-2005-83, Hewlett-Packard Bristol Laboratories (2005)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2006 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Lima, A., Cirne, W., Brasileiro, F., Fireman, D. (2006). A Case for Event-Driven Distributed Objects. In: Meersman, R., Tari, Z. (eds) On the Move to Meaningful Internet Systems 2006: CoopIS, DOA, GADA, and ODBASE. OTM 2006. Lecture Notes in Computer Science, vol 4276. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11914952_46

Download citation

  • DOI: https://doi.org/10.1007/11914952_46

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-48274-1

  • Online ISBN: 978-3-540-48283-3

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics