Abstract
We present OpenRichServices (ORS) as an Architecture Definition Language (ADL) for the compositional specification, deployment, and reconfiguration of systems of services. Key distinguishing features of ORS are its treatment of services as first-class citizens of the language, a clean separation between application and infrastructure flows to address cross-cutting concerns at the architectural level, and dynamic service binding to facilitate service instantiation, distributed deployment and reconfiguration. ORS specifications are executable – they can be deployed together with an ORS runtime system, and then coordinate the interactions between subsystems. To evaluate ORS, we developed an implementation of our ADL as a Domain Specific Language (DSL) using the JVM-based Clojure programming language; this allows us to leverage Clojure’s lock-free concurrency, high-performance immutable data structures, and dynamic binding capabilities. We compare the ORS ADL and its capabilities with Darwin, Wright, Rapide and SADL using a case study drawn from a mobile sensing platform.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Department of Defense, DoD Architecture Framework (DoDAF) v2.0, May 28 (2009), http://cio-nii.defense.gov/sites/dodaf20/archives.html (accessed August 19 2010)
Demchak, B., Ermagan, V., Farcas, E., Huang, T.-J., Krüger, I., Menarini, M.: A Rich Services Approach to CoCoME. In: Rausch, A., Reussner, R., Mirandola, R., Plášil, F. (eds.) Common Component Modeling Example. LNCS, vol. 5153, pp. 85–115. Springer, Heidelberg (2008)
Hickey, R.: Clojure, http://clojure.org/ (accessed August 18, 2010)
Halloway, S.: Programming Clojure, Pragmatic Bookshelf, p. 304 (2009)
Noël, C.: Extensible software transactional memory. In: Proceedings of the Third C* Conference on Computer Science and Software Engineering, Montréal, Quebec, Canada (2010)
Medvidovic, N., Taylor, R.N.: A Classification and Comparison Framework for Software Architecture Description Languages. IEEE Transactions on Software Engeneering 26(1), 70–93 (2000)
Dashofy, E.M., van der Hoek, A., Taylor, R.N.: A comprehensive approach for the development of modular software architecture description languages. ACM Transactions on Software Engineering and Methodology (TOSEM) 14(2), 199–245 (2005)
Magee, J., Dulay, N., Kramer, J.: Structuring parallel and distributed programs. IEEE Software Engineering Journal 8(2), 73–82 (1993)
Taylor, R.N., Medvidovic, N., Anderson, K.M., Whitehead Jr., E.J., Robbins, J.E., Nies, K.A., Oreizy, P., Dubrow, D.L.: A Component- and Message-Based Architectural Style for GUI Software. IEEE Transactions on Software Engineering 22, 390–406 (1996)
Medvidovic, N., Rosenblum, D.S., Taylor, R.N.: A language and environment for architecture-based software development and evolution. In: Proceedings of the 21st International Conference on Software Engineering, Los Angeles, CA (1999)
Dashofy, E.M., van der Hoek, A., Taylor, R.N.: Towards Architecture-Based Self-Healing Systems. In: Proceedings of the First Workshop on Self-Healing Systems, WOSS 2002, New York, NY (2002)
Shaw, M., DeLine, R., Klein, D.V., Ross, T.L., Young, D.M., Zelesnik, G.: Abstractions for software architecture and tools to support them. IEEE Transactions on Software Engineering 21(4), 314–335 (1995)
Shaw, M., DeLine, R., Zelesnik, G.: Abstractions and implementations for architectural connections. In: Proceedings of the Third International Conference on Configurable Distributed Systems, Annapolis, MD, USA (1996)
Tajalli, H., Garcia, J., Edwards, G., Medvidovic, N.: PLASMA: A Plan-based Layered Architecture for Software Model-driven Adaptation. In: Proceedings of the 25th IEEE/ACM International Conference on Automated Software Engineering (ASE 2010), Antwerp, Belgium (2010)
OMG, UML Version 2.3 (May 2010), http://www.omg.org/spec/UML/2.3/ (accessed August 19, 2010)
Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., Griswold, W.G.: Getting started with ASPECTJ. Communications of the ACM 44(10), 59–65 (2001)
Mule ESB, http://www.mulesoft.org/ (accessed August 20, 2010)
Krüger, I.H.: Distributed System Design with Message Sequence Charts, Technische Universität München. Ph.D. Thesis, p. 386 (2000)
Broy, M., Krüger, I.H., Meisinger, M.: A Formal Model of Service. ACM Transactions on Software Engineering and Methodology (TOSEM) 16(1), 5 (2007)
Allen, R.J.: A Formal Approach to Software Architecture (May 1997)
Vestal, S.: MetaH support for real-time multi-processor avionics. In: Proceedings of the Joint Workshop on Parallel and Distributed Real-Time Systems, Geneva, Switzerland (1997)
SAE International, Architecture Analysis & Design Language (AADL) (January 20, 2009), http://standards.sae.org/as5506a/ (accessed August 18, 2010)
Luckham, D.C.: The Power of Events: An Introduction to Complex Event Processing in Distributed Enterprise Systems. Addison-Wesley Longman Publishing Co., Inc., Boston (2001)
Taylor, R.N., Medvidovic, N., Dashofy, E.M.: Software Architecture: Foundations, Theory, and Practice. John Wiley and Sons (2009)
Dashofy, E.M., van der Hoek, A., Taylor, R.N.: An Infrastructure for the Rapid Development of XML-based Architecture Description Languages. In: Proceedings of the 24th International Conference on Software Engineering (ICSE 2002), Orlando, Florida (2002)
Taylor, R.N., Medvidovic, N., Oreizy, P.: Architectural Styles for Runtime Software Adaptation. In: Joint Working IEEE/IFIP Conference on Software Architecture 2009 and European Conference on Software Architecture 2009, Cambridge, UK (2009)
Aldrich, J., Chambers, C., Notkin, D.: ArchJava: connecting software architecture to implementation. In: Proceedings of the 24th International Conference on Software Engineering (ICSE 2002), Orlando, Florida (2002)
Selic, B., Gullekson, G., Ward, P.T.: Real-Time Object-Oriented Modeling. John Wiley & Sons (1994)
Faugere, M., Bourbeau, T., De Simone, R., Gerard, S.: MARTE: Also an UML Profile for Modeling AADL Applications. In: IEEE International Conference on Engineering of Complex Computer Systems (ICECCS 2007), Auckland, New Zealand (2007)
Krüger, I.H.: Specifying Services with UML and UML-RT: Foundation, Challenges and Limitations. In: Validation and Implementation of Scenario-based Specifications, VISS 2002 (Satellite Event of ETAPS 2002), Grenoble, France (2002)
Garlan, D., Monroe, R.T., Wile, D.: Acme: An Architecture Description Interchange Language. In: CASCON 1997, Toronto, Ontario (1997)
OSGi Alliance, OSGi Service Platform Core Specification (June 2009), http://www.osgi.org/download/r4v42/r4.core.pdf (accessed August 18, 2010)
ServiceMix 4, http://servicemix.apache.org/ (accessed August 20, 2010)
OASIS Web Services Business Process Execution Lang, Web Services Business Process Execution Language Version 2.0 (April 11, 2007), http://docs.oasis-open.org/wsbpel/2.0/OS/wsbpel-v2.0-OS.html (accessed August 20, 2010)
Kitchin, D., Quark, A., Cook, W., Misra, J.: The Orc Programming Language. In: Lee, D., Lopes, A., Poetzsch-Heffter, A. (eds.) FMOODS/FORTE 2009. LNCS, vol. 5522, pp. 1–25. Springer, Heidelberg (2009)
Harel, D., Marell, R.: Come, Let’s Play: Scenario-Based Programming Using LSCs and the Play-Engine, p. 382. Springer, Berlin (2003)
Mellor, S.J., Balcer, M.J.: Executable UML, p. 423. Addison-Wesley Pearson Education, Indianapolis (2002)
Jackson, M., Zave, P.: Distributed feature composition: A virtual architecture for telecommunications services. IEEE Transactions on Software Engineering 24(10), 831–847 (1998)
Trujillo, S., Batory, D., Diaz, O.: Feature Oriented Model Driven Development: A Case Study for Portlets. In: Proceedings of the 29th International Conference on Software Engineering (ICSE 2007), Minneapolis, MN (2007)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2012 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Krüger, I., Demchak, B., Menarini, M. (2012). Dynamic Service Composition and Deployment with OpenRichServices. In: Heisel, M. (eds) Software Service and Application Engineering. Lecture Notes in Computer Science, vol 7365. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-30835-2_9
Download citation
DOI: https://doi.org/10.1007/978-3-642-30835-2_9
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-30834-5
Online ISBN: 978-3-642-30835-2
eBook Packages: Computer ScienceComputer Science (R0)