Programming distributed and adaptable autonomous components—the GCM/ProActive framework

Component‐oriented software has become a useful tool to build larger and more complex systems by describing the application in terms of encapsulated, loosely coupled entities called components. At the same time, asynchronous programming patterns allow for the development of efficient distributed applications. While several component models and frameworks have been proposed, most of them tightly integrate the component model with the middleware they run upon. This intertwining is generally implicit and not discussed, leading to entangled, hard to maintain code. This article describes our efforts in the development of the GCM/ProActive framework for providing distributed and adaptable autonomous components. GCM/ProActive integrates a component model designed for execution on large‐scale environments, with a programming model based on active objects allowing a high degree of distribution and concurrency. This new integrated model provides a more powerful development, composition, and execution environment than other distributed component frameworks. We illustrate that GCM/ProActive is particularly adapted to the programming of autonomic component systems, and to the integration into a service‐oriented environment. Copyright © 2014 John Wiley & Sons, Ltd.

[1]  James Arthur Kohl,et al.  Data redistribution and remote method invocation in parallel component architectures , 2005, 19th IEEE International Parallel and Distributed Processing Symposium.

[2]  Ludovic Henrio,et al.  Transparent First-class Futures and Distributed Components , 2008, FACS.

[3]  Ludovic Henrio,et al.  Verifying Safety of Fault-Tolerant Distributed Components , 2011, FACS.

[4]  Peter Kilpatrick,et al.  Model Checking Support for Conflict Resolution in Multiple Non-functional Concern Management , 2011, Euro-Par Workshops.

[5]  Petr Hnetynka,et al.  SOFA 2.0: Balancing Advanced Features in a Hierarchical Component Model , 2006, Fourth International Conference on Software Engineering Research, Management and Applications (SERA'06).

[6]  Éric Rutten,et al.  Component-Based Autonomic Managers for Coordination Control , 2013, COORDINATION.

[7]  Valerio Schiavoni,et al.  A component‐based middleware platform for reconfigurable service‐oriented architectures , 2012, Softw. Pract. Exp..

[8]  Denis Caromel,et al.  Asynchronous and deterministic objects , 2004, POPL.

[9]  César A. F. De Rose,et al.  Distributed dynamic processor allocation for multicomputers , 2007, Parallel Comput..

[10]  Ludovic Henrio,et al.  Multi-threaded Active Objects , 2013, COORDINATION.

[11]  Vaidy S. Sunderam,et al.  MOCCA - towards a distributed CCA framework for metacomputing , 2005, 19th IEEE International Parallel and Distributed Processing Symposium.

[12]  Bradley R. Schmerl,et al.  Rainbow: architecture-based self-adaptation with reusable infrastructure , 2004, International Conference on Autonomic Computing, 2004. Proceedings..

[13]  Thaís Vasconcelos Batista,et al.  Mapping ADL Specifications to an Efficient and Reconfigurable Runtime Component Platform , 2005, 5th Working IEEE/IFIP Conference on Software Architecture (WICSA'05).

[14]  Karel Masek,et al.  Bridging the Component-Based and Service-Oriented Worlds , 2009, 2009 35th Euromicro Conference on Software Engineering and Advanced Applications.

[15]  Gordon S. Blair,et al.  A generic component model for building systems software , 2008, TOCS.

[16]  Thierry Coupaye,et al.  A Component Model Engineered with Components and Aspects , 2006, CBSE.

[17]  Marco Danelutto,et al.  Stkm on Sca: A Unified Framework with Components, Workflows and Algorithmic Skeletons , 2009, Euro-Par.

[18]  Thierry Coupaye,et al.  COMPONENTS AND SERVICES: A MARRIAGE OF REASON , 2007 .

[19]  Ludovic Henrio,et al.  Bringing Coq into the World of GCM Distributed Applications , 2013, International Journal of Parallel Programming.

[20]  Robert H. Halstead,et al.  MULTILISP: a language for concurrent symbolic computation , 1985, TOPL.

[21]  Douglas C. Schmidt,et al.  Active object: an object behavioral pattern for concurrent programming , 1996 .

[22]  Ludovic Henrio,et al.  ASPfun : A typed functional active object calculus , 2012, Sci. Comput. Program..

[23]  Françoise Baude,et al.  A component‐based middleware for hybrid grid/cloud computing platforms , 2012, Concurr. Comput. Pract. Exp..

[24]  Chouki Tibermacine,et al.  Enforcing Architecture and Deployment Constraints of Distributed Component-Based Software , 2007, FASE.

[25]  Gordon S. Blair,et al.  Supporting adaptable distributed systems with FORMAware , 2004, 24th International Conference on Distributed Computing Systems Workshops, 2004. Proceedings..

[26]  David Sinreich,et al.  An architectural blueprint for autonomic computing , 2006 .

[27]  Thomas Ledoux,et al.  An Aspect-Oriented Approach for Developing Self-Adaptive Fractal Components , 2006, SC@ETAPS.

[28]  Clemens A. Szyperski,et al.  Component software - beyond object-oriented programming , 2002 .

[29]  Jeff Magee,et al.  Dynamic structure in software architectures , 1996, SIGSOFT '96.

[30]  Zhen Li,et al.  AutoMate: Enabling Autonomic Applications on the Grid , 2006, Cluster Computing.

[31]  Arnd Poetzsch-Heffter,et al.  JCoBox: Generalizing Active Objects to Concurrent Components , 2010, ECOOP.

[32]  Françoise Baude,et al.  Using components to provide a flexible adaptation loop to component-based SOA applications , 2012 .

[33]  Ludovic Henrio,et al.  Stopping safely hierarchical distributed components: application to GCM , 2008, CBHPC '08.

[34]  S. Sicard Using Components for Architecture-Based Management The Self-Repair case , 2007 .

[35]  Martin Wirsing,et al.  A Component Model for Architectural Programming , 2006, FACS.

[36]  Robert T. Monroe Capturing Software Architecture Design Expertise with Armani , 2000 .

[37]  Françoise Baude,et al.  A Survey of Structured P2P Systems for RDF Data Storage and Retrieval , 2011, Trans. Large Scale Data Knowl. Centered Syst..

[38]  David Notkin,et al.  ArchJava: connecting software architecture to implementation , 2002, ICSE '02.

[39]  Noel De Palma,et al.  Autonomic management policy specification in Tune , 2008, SAC '08.

[40]  Petr Hnetynka,et al.  Dynamic Reconfiguration and Access to Services in Hierarchical Component Models , 2006, CBSE.

[41]  Steve Vinoski,et al.  Programming language impact on the development of distributed systems , 2011, Journal of Internet Services and Applications.

[42]  Martin Odersky,et al.  Scala Actors: Unifying thread-based and event-based programming , 2009, Theor. Comput. Sci..

[43]  Marco Danelutto,et al.  Building Interoperable Grid-aware ASSIST Applications via WebServices , 2005, PARCO.

[44]  Petr Hnetynka,et al.  Using DSL for Automatic Generation of Software Connectors , 2008, Seventh International Conference on Composition-Based Software Systems (ICCBSS 2008).

[45]  Olivier Barais,et al.  Dissemination of Reconfiguration Policies on Mesh Networks , 2012, DAIS.

[46]  David Garlan,et al.  Acme: architectural description of component-based systems , 2000 .

[47]  Denis Caromel,et al.  GCM: a grid extension to Fractal for autonomous distributed components , 2009, Ann. des Télécommunications.

[48]  Jean-Louis Pazat,et al.  A Framework for Dynamic Adaptation of Parallel Components , 2005, PARCO.

[49]  Petr Jan Horn,et al.  Autonomic Computing: IBM's Perspective on the State of Information Technology , 2001 .

[50]  Françoise Baude,et al.  Modular P2P-Based Approach for RDF Data Storage and Retrieval , 2011, AP2PS 2011.

[51]  Christian Pérez,et al.  Achieving portable and efficient parallel CORBA objects , 2003, Concurr. Comput. Pract. Exp..

[52]  Einar Broch Johnsen,et al.  Creol: A type-safe object-oriented model for distributed concurrent systems , 2006, Theor. Comput. Sci..

[53]  Eric Madelaine,et al.  Model-checking Distributed Components: The Vercors Platform , 2006, FACS.

[54]  Thierry Coupaye,et al.  The FRACTAL component model and its support in Java , 2006, Softw. Pract. Exp..

[55]  Ivan Lanese,et al.  A Component Model for the ABS Language , 2010, FMCO.

[56]  N Ranaldo,et al.  Parallel Computing: Current & Future Issues of High-End Computing , 2006 .

[57]  Ludovic Henrio,et al.  An Asynchronous Distributed Component Model and Its Semantics , 2009, FMCO.

[58]  David Garlan,et al.  Rainbow: architecture-based self-adaptation with reusable infrastructure , 2004 .

[59]  André Ribes,et al.  A Parallel Corba Component Model for Numerical Code Coupling , 2002, Int. J. High Perform. Comput. Appl..

[60]  Douglas C. Schmidt,et al.  Overview of the CORBA component model , 2001 .

[61]  Jeffrey O. Kephart,et al.  The Vision of Autonomic Computing , 2003, Computer.

[62]  Reiner Hähnle,et al.  HATS Abstract Behavioral Specification: The Architectural View , 2011, FMCO.

[63]  Thomas Ledoux,et al.  Reliable Dynamic Reconfigurations in a Reflective Component Model , 2010, CBSE.

[64]  Françoise André,et al.  SAFDIS: A Framework to Bring Self-Adaptability to Service-Based Distributed Applications , 2010, 2010 36th EUROMICRO Conference on Software Engineering and Advanced Applications.

[65]  Ilias Gerostathopoulos,et al.  DEECO: an ensemble-based component system , 2013, CBSE '13.

[66]  Gerard Tel,et al.  Synchronous, asynchronous, and causally ordered communication , 1996, Distributed Computing.

[67]  Denis Caromel,et al.  A Flexible Model and Implementation of Component Controllers , 2007, CoreGRID Workshop - Making Grids Work.

[68]  Gul A. Agha,et al.  ACTORS - a model of concurrent computation in distributed systems , 1985, MIT Press series in artificial intelligence.

[69]  Thomas Ledoux,et al.  FPath and FScript: Language support for navigation and reliable reconfiguration of Fractal architectures , 2009, Ann. des Télécommunications.

[70]  Peter Kilpatrick,et al.  Autonomic management of non-functional concerns in distributed & parallel application programming , 2009, 2009 IEEE International Symposium on Parallel & Distributed Processing.

[71]  Yogesh L. Simmhan,et al.  On Building Parallel & Grid Applications: Component Technology and Distributed Services , 2004, Proceedings of the Second International Workshop on Challenges of Large Applications in Distributed Environments, 2004. CLADE 2004..

[72]  José C. Cunha,et al.  Grid Computing: Software Environments and Tools , 2005 .

[73]  Stéphane Lanteri,et al.  Grid-Enabling SPMD Applications through Hierarchical Partitioning and a Component-Based Runtime , 2009, Euro-Par.