Which middleware platform should you choose for your next remote service?

Original Research Paper


Due to the shift from software-as-a-product to software-as-a-service, software components that were developed to run in a single address space must increasingly be accessed remotely across the network. Distribution middleware is frequently used to facilitate this transition. Yet a range of middleware platforms exist, and there are few existing guidelines to help the programmer to choose an appropriate middleware platform to achieve desired goals for performance, conciseness, intuitiveness, and reliability. To address this limitation, in this article, we describe a case study of transitioning an Open Service Gateway Initiative service from local to remote access. In our case study, we evaluate five remote versions of this service, constructed using different distribution middleware platforms. These platforms are implemented by widely-used commercial technologies or have been proposed as improvements on the state of the art. In particular, we implemented a service-oriented version of our own Remote Batch Invocation abstraction. We compare and contrast these implementations in terms of their respective performance, conciseness, complexity, and reliability. Our results can help remote service programmers make informed decisions when choosing middleware platforms for their applications.


Services OSGi RBI Message-oriented middleware R-OSGi 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Banavar G, Chandra T, Strom R, Sturman D (1999) A case for message-oriented middleware. In: Proceedings of the 13th international symposium on distributed computing. Springer, London, pp 1–18Google Scholar
  2. 2.
    Brown N, Kindel C (1996) Distributed component Object Model Protocol–DCOM/1.0 1998, RedmondGoogle Scholar
  3. 3.
    Damm C, Eugster P, Guerraoui R (2004) Linguistic support for distributed programming abstractions. In: Proceedings of the 24th international conference on distributed computing systemsGoogle Scholar
  4. 4.
    Demarey C, Harbonnier G, Rouvoy R, Merle P (2005) Benchmarking the round-trip latency of various Java-based middleware platforms. Stud Inf Univ Regul Issue 4(1): 7–24Google Scholar
  5. 5.
    Elfwing R, Paulsson U, Lundberg L (2002) Performance of SOAP in Web service environment compared to CORBA. Asia Pac Softw Eng Conf 0: 84Google Scholar
  6. 6.
    Erl T (2005) Service-oriented architecture: concepts, technology, and design. Prentice Hall PTR, Upper Saddle RiverGoogle Scholar
  7. 7.
    Gokhale A, Schmidt DC (1996) Measuring the performance of communication middleware on high-speed networks. In: SIGCOMM ’96: Conference proceedings on applications, technologies, architectures, and protocols for computer communications. ACM, New York, pp 306–317Google Scholar
  8. 8.
    Hayes B (2008) Cloud computing. Commun ACM 51(7): 9–11CrossRefGoogle Scholar
  9. 9.
    Ibrahim A, Jiao Y, Tilevich E, Cook WR (2009, July) Remote batch invocation for compositional object services. In: The 23rd European conference on object-oriented programmingGoogle Scholar
  10. 10.
    JBoss (2010) HornetQ-jBoss messaging. http://jboss.org/hornetq/
  11. 11.
    Juric MB, Kezmah B, Hericko M, Rozman I, Vezocnik I (2004) Java RMI, RMI tunneling and Web services comparison and performance analysis. SIGPLAN Not 39(5): 58–65CrossRefGoogle Scholar
  12. 12.
    Kwon Y-W, Tilevich E, Apiwattanapong T (2009, Dec) DR-OSGi: Hardening distributed components with network volatility resiliency. In: Proceedings of the ACM/IFIP/USENIX 10th international middleware conference, UrbanaGoogle Scholar
  13. 13.
    Kwon Y-W, Tilevich E, Cook WR (2010, Dec) An assessment of middleware platforms for accessing remote services. In: Proceedings of the 7th IEEE international conference on services computingGoogle Scholar
  14. 14.
    McCabe TJ (1976) A complexity measure. In: Proceedings of the 2nd international conference on software engineering, Los AlamitosGoogle Scholar
  15. 15.
    Monson-Haefel R, Chappell D (2000) Java Message Service. O’Reilly & Associates, Inc., SebastopolGoogle Scholar
  16. 16.
    Object Management Group (2006) The CORBA component model specification. Specification, Object Management GroupGoogle Scholar
  17. 17.
    The Object Management Group (OMG) (1997) The common object request broker: architecture and specificationGoogle Scholar
  18. 18.
    OSGi Alliance (2009) OSGi service platform release 4.2 specificationGoogle Scholar
  19. 19.
    Papazoglou MP, Heuvel W-JVD (2006) Service-oriented design and development methodology. Int J Web Eng Technol 2(4): 412–442CrossRefGoogle Scholar
  20. 20.
    Pressman R (2005) Software engineering: a practitioner’s approach. McGraw-Hill Higher Education, New YorkGoogle Scholar
  21. 21.
    Rellermeyer JS, Alonso G (2007) Concierge: a service platform for resource-constrained devices. In: The 2nd ACM SIGOPS/EuroSys European conference on computer Systems 2007, pp 245–258Google Scholar
  22. 22.
    Rellermeyer JS, Alonso G, Roscoe T (2007, Nov) R-OSGi: Distributed applications through software modularization. In: Proceedings of the ACM/IFIP/USENIX 8th international middleware conference, Newport beachGoogle Scholar
  23. 23.
    Sachs K, Kounev S, Bacon J, Buchmann A (2009) Performance evaluation of message-oriented middleware using the SPECjms2007 benchmark. Perform Eval 66(8): 410–434CrossRefGoogle Scholar
  24. 24.
    Saif U, Greaves D (2001) Communication primitives for ubiquitous systems or RPC considered harmful. In: Proceedings of the 21st international conference distributed computing systems workshopGoogle Scholar
  25. 25.
    SpringSource (2010) Spring framework. http://www.springsource.org/
  26. 26.
    Stamos JW, Gifford DK (1990) Remote evaluation. ACM Trans Program Lang Syst 12(4): 537–564CrossRefGoogle Scholar
  27. 27.
    Tanenbaum AS, Renesse Rv (1988) A critique of the remote procedure call paradigm. In: EUTECO 88Google Scholar
  28. 28.
    Tay B, Ananda A (1990) A survey of remote procedure calls. Oper Syst Rev 24(3): 68–79CrossRefGoogle Scholar
  29. 29.
    The Apache Software Foundation. Lucene. http://lucene.apache.org/
  30. 30.
    The Apache Software Foundation. Nutch. http://nutch.apache.org/
  31. 31.
    The Apache Software Foundation. Solr. http://lucene.apache.org/solr
  32. 32.
    The Apache Software Foundation (2010) ActiveMQ. http://activemq.apache.org/
  33. 33.
    The Apache Software Foundation (2010) Apache CXF Distributed OSGi. http://cxf.apache.org/distributed-osgi.html
  34. 34.
    The Apache Software Foundation (2010) Felix—OSGi R4 Service Platform. http://felix.apache.org/
  35. 35.
    The Eclipse Foundation (2010) Eclipse. http://www.eclipse.org/
  36. 36.
    The Knopflerfish Project (2010) Knopflerfish—OSGi R4 Service Platform. http://www.knopflerfish.org/
  37. 37.
    Tran P, Greenfield P, Gorton I (2002) Behavior and performance of message-oriented middleware systems. In: Proceedings of the 22nd international conference on distributed computing systems, Washington, pp 645–654Google Scholar
  38. 38.
    Vaquero LM, Rodero-Merino L, Caceres J, Lindner M (2009) A break in the clouds: towards a cloud definition. SIGCOMM Comput Commun Rev 39(1): 50–55CrossRefGoogle Scholar
  39. 39.
    Vinoski S (2005) RPC under fire. IEEE Internet Comput 9: 93–95CrossRefGoogle Scholar
  40. 40.
    Waldo J, Wollrath A, Wyant G, Kendall S (1994) A note on distributed computing. Technical report. Sun Microsystems, Inc., Mountain ViewGoogle Scholar
  41. 41.
    Wollrath A, Riggs R, Waldo J et al (1996) A distributed object model for the Java system. Comput Syst 9(4): 265–290Google Scholar

Copyright information

© Springer-Verlag London Limited 2011

Authors and Affiliations

  • Young-Woo Kwon
    • 1
  • Eli Tilevich
    • 1
  • William R. Cook
    • 2
  1. 1.Department of Computer ScienceVirginia TechBlacksburgUSA
  2. 2.Department of Computer SciencesThe University of Texas at AustinAustinUSA

Personalised recommendations