Sven De Labey, Eric Steegmans


The Open Services Gateway initiative (OSGi) is a successful attempt to bridge the gap between Java and Service Oriented Computing. OSGi provides an LDAP-based query language for fine-tuning service retrieval and offers an eventing mechanism that signals changes to a service’s lifecyle to all clients depending on that service. Nonetheless, a number of challenges remain unsolved. OSGi’s service query language, for instance, bypasses important compile-time guarantees on the syntactical correctness of queries and the language works only for properties that never change during the lifetime of a service. What programmers need, however, is a statically type-checked, robust query language that takes into account dynamically evolving, volatile service characteristics. A second problem is that the lifecycle management system requires programmers to write a considerable amount of boilerplate logic for reacting to service events. This obfuscates the business logic, which in turn decreases code comprehension and increases the odds for introducings bugs when implementing client-service interactions. This paper evaluates OSGi as a platform for programming client-service interactions in Java. After focusing on a number of shortcomings of OSGi’s integrated service query language and its lifecycle management system, we propose a solution based on a programming language extension. After the conceptual definition of these new language concepts, we show how they can be transformed to regular Java code without losing interoperability with the OSGi standard.


  1. Cervantes, H. and Hall, R. (2003). Automating Service Dependency Management in a Service-Oriented Component Model. In Proceedings of the 6th Workshop on Foundations of Software Engineering and Component Based Software Engineering, pages 379-382.
  2. De Labey, S. and Steegmans, E. (2007). ServiceJ. A Type System Extension for Programming Web Service Interactions. In Proceedings of the Fifth International Conference on Web Services (ICWS07).
  3. De Labey, S., van Dooren, M., and Steegmans, E. (2006). ServiceJ: Service-Oriented Programming in Java. Technical Report KULeuven, CW451, June 2006.
  4. Florescu, D., Gruenhagen, A., and Kossmann, D. (2003). XL: A Platform for Web Services. In Proceedings of the First Conference on Innovative Data Systems Research.
  5. Hadim, M. and et al. (2000). Service Combinators for Web Computing in Distributed Oz. In Conference on Parallel and Distributed Processing Techniques and Appl.
  6. Hall, R. and Cervantes, H. (2003). Gravity: supporting dynamically available services in client-side applications. SIGSOFT Software Engineering Notes, 28(5):379-382.
  7. Hall, R. and Cervantes, H. (2004). Challenges in building service-oriented applications for OSGi. Communications Magazine, IEEE, 42(5):144-149.
  8. Huang, Y. and Walker, D. (2003). Extensions to Web Service Techniques for Integrating Jini into a ServiceOriented Architecture for the Grid. In Proceedings of the International Conference on Computational Science.
  9. Kistler, T. and Marais, H. (1998). WebL - A Programming Language for the Web. In 7th Intl. Conference on the World Wide Web.
  10. Marples, D. and Kriens, P. (2001). The open service gateway initiative: An introductory overview. IEEE Communications Magazine, 39(12). (2004). Listeners considered ful: The whiteboard pattern.
  11. OSGi (2006). Open Services Gateway Initiative Specification v4.0.1 - http://www.osgi.org.
  12. Papazoglou, M. (2003). Service Oriented Computing: Concepts, Characteristics and Directions. In Proceedings of the 4th International Conference on Web Information Systems Engineering.
  13. Pratikakis, P., Spacco, J., and Hicks, M. (2004). Transparent Proxies for Java Futures. In OOPSLA 7804: Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, pages 206-223, New York, NY, USA. ACM.
  14. Sun (2005). The Jini Architecture Specification and API Archive - http://www.jini.org.
  15. Tschantz, M. S. and Ernst, M. D. (2005). Javari: Adding reference immutability to Java. In Object-Oriented Programming Systems, Languages, and Applications (OOPSLA 2005), pages 211-230, San Diego, CA, USA.
  16. van Dooren, M., Vanderkimpen, K., and De Labey, S. (2007). The Jnome and Chameleon Metamodels for OOP.

Paper Citation

in Harvard Style

De Labey S. and Steegmans E. (2008). TYPED ABSTRACTIONS FOR CLIENT-SERVICE INTERACTIONS IN OSGI . In Proceedings of the Third International Conference on Evaluation of Novel Approaches to Software Engineering - Volume 1: ENASE, ISBN 978-989-8111-28-9, pages 157-166. DOI: 10.5220/0001766701570166

in Bibtex Style

author={Sven De Labey and Eric Steegmans},
booktitle={Proceedings of the Third International Conference on Evaluation of Novel Approaches to Software Engineering - Volume 1: ENASE,},

in EndNote Style

JO - Proceedings of the Third International Conference on Evaluation of Novel Approaches to Software Engineering - Volume 1: ENASE,
SN - 978-989-8111-28-9
AU - De Labey S.
AU - Steegmans E.
PY - 2008
SP - 157
EP - 166
DO - 10.5220/0001766701570166