An Assessment of Middleware Platforms for Accessing Remote Services

Due to the shift from software-as-a-product (SaaP) to software-as-a-service (SaaS), 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 choose an appropriate middleware platform to achieve desired goals for performance, expressiveness, and reliability. To address this limitation, in this paper we describe a case study of transitioning an Open Service Gateway Initiative (OSGi) service from local to remote access. Our case study compares 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, expressiveness, and reliability. Our results can help remote service programmers make informed decisions when choosing middleware platforms for their applications.

[1]  Anas N. Al-Rabadi,et al.  A comparison of modified reconstructability analysis and Ashenhurst‐Curtis decomposition of Boolean functions , 2004 .

[2]  Roger S. Pressman,et al.  Software Engineering: A Practitioner's Approach , 1982 .

[3]  Andrew S. Tanenbaum,et al.  A Critique of the Remote Procedure Call Paradigm , 1988 .

[4]  David K. Gifford,et al.  Remote evaluation , 1990, TOPL.

[5]  Akkihebbal L. Ananda,et al.  A survey of remote procedure calls , 1990, OPSR.

[6]  Jim Waldo,et al.  A Note on Distributed Computing , 1996, Mobile Object Systems.

[7]  Charlie Kindel,et al.  Distributed Component Object Model Protocol -- DCOM/1.0 , 1998 .

[8]  Guruduth Banavar,et al.  A Case for Message Oriented Middleware , 1999, DISC.

[9]  Richard Monson-Haefel,et al.  Java message service , 2000 .

[10]  Umar Saif,et al.  Communication primitives for ubiquitous systems or RPC considered harmful , 2001, Proceedings 21st International Conference on Distributed Computing Systems Workshops.

[11]  Paul Greenfield,et al.  Behavior and performance of message-oriented middleware systems , 2002, Proceedings 22nd International Conference on Distributed Computing Systems Workshops.

[12]  Osgi Alliance,et al.  Osgi Service Platform, Release 3 , 2003 .

[13]  Patrick Th. Eugster,et al.  Linguistic support for distributed programming abstractions , 2004, 24th International Conference on Distributed Computing Systems, 2004. Proceedings..

[14]  Steve Vinoski,et al.  RPC Under Fire , 2005, IEEE Internet Comput..

[15]  K. Barraclough Eclipse , 2006, BMJ : British Medical Journal.

[16]  Mike P. Papazoglou,et al.  Service-oriented design and development methodology , 2006, Int. J. Web Eng. Technol..

[17]  Gustavo Alonso,et al.  R-OSGi: Distributed Applications Through Software Modularization , 2007, Middleware.

[18]  Gustavo Alonso,et al.  Concierge: a service platform for resource-constrained devices , 2007, EuroSys '07.

[19]  Samuel Kounev,et al.  Performance evaluation of message-oriented middleware using the SPECjms2007 benchmark , 2009, Perform. Evaluation.

[20]  Eli Tilevich,et al.  DR-OSGi: Hardening Distributed Components with Network Volatility Resiliency , 2009, Middleware.

[21]  William R. Cook,et al.  Remote Batch Invocation for Compositional Object Services , 2009, ECOOP.

[22]  Prashant Pandey,et al.  Cloud computing , 2010, ICWET.

[23]  Chris Rose,et al.  A Break in the Clouds: Towards a Cloud Definition , 2011 .