Component model interoperability for scientific computing

The ability to create connections between previously incompatible software is the motivation for the work of this dissertation. We focus on devising a paradigm for interoperability between software components, a popular and often used software methodology, while making the practical concerns of this endeavor our main driving force. Component software interoperability is the ability for two or more existing software components to cooperate despite differences in component model, interface or execution platform. It is also the ability to connect and use existing servers though they may be plug-incompatible to the clients. The capability of combining any two components regardless of implementation platform creates a new realm of possibility in using common off-the-shelf components. Unfortunately, solving the general problem of component interoperability using a fully automatic mechanism is daunting, In this work, we describe and analyze a set of techniques and tools that we developed to make component interoperability attainable in a practical sense. Our approach simplifies a difficult but necessary goal of component interoperability and our user-driven generative tools provide several abstractions enabling flexible and structured component integration. By leveraging a generative programming approach, we develop a programmable code generator that interposes a bridge to translate between components of disparate component models. We extend this bridge generation with tools aimed at different aspects of the problem to create a reliable and flexible method of performing this task. Focus is given to mapping of incompatible interfaces and data types and to manipulating data, between two heterogeneous components. In order to include semantic understanding of component models into our design, we define a component meta-modeling method and a bridging language. The bridging language leverages component meta-models, which semantically model the individual features of each component model, to produce a translation between two such models. We combine these methods into our stack of tools that aim to bridge difference between heterogeneous component instances and provide component interoperability.

[1]  Joshua S. Auerbach,et al.  The Concert Signature Representation: IDL as Intermediate Language , 1994, Workshop on Interface Definition Languages.

[2]  Jacqueline Floch,et al.  Supporting evolution and maintenance by using a flexible automatic code generator , 1995, 1995 17th International Conference on Software Engineering.

[3]  Richard N. Taylor,et al.  An infrastructure for the rapid development of XML-based architecture description languages , 2002, ICSE '02.

[4]  Scott R. Kohn,et al.  Toward a Common Component Architecture for High-Performance Scientific Computing , 1999, HPDC.

[5]  Christopher R. Johnson,et al.  A wrapper generation tool for the creation of scriptable scientific applications , 1998 .

[6]  Edward A. Lee,et al.  Ptolemy: A Framework for Simulating and Prototyping Heterogenous Systems , 2001, Int. J. Comput. Simul..

[7]  Calton Pu,et al.  XWRAP: an XML-enabled wrapper construction system for Web information sources , 2000, Proceedings of 16th International Conference on Data Engineering (Cat. No.00CB37073).

[8]  Bertram Ludäscher,et al.  Kepler: an extensible system for design and execution of scientific workflows , 2004 .

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

[10]  Andreas Schreiber,et al.  Techniques for wrapping scientific applications to CORBA components , 2004, Ninth International Workshop on High-Level Parallel Programming Models and Supportive Environments, 2004. Proceedings..

[11]  Dimitri Konstantas Object Oriented Interoperability , 1993, ECOOP.

[12]  Vijay A. Saraswat,et al.  Model-Based Computing: Using Concurrent Constraint Programming for Modeling and Model Compilation , 1995, CP.

[13]  Walter F. Tichy,et al.  Proceedings 25th International Conference on Software Engineering , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[14]  William Gropp,et al.  Efficient Management of Parallelism in Object-Oriented Numerical Software Libraries , 1997, SciTools.

[15]  A. Watson,et al.  OMG (Object Management Group) architecture and CORBA (common object request broker architecture) specification , 2002 .

[16]  Edmond Chow,et al.  Design of the HYPRE preconditioner library , 1998 .

[17]  David M. Beazley,et al.  An Embedded Error Recovery and Debugging Mechanism for Scripting Language Extensions , 2001, USENIX Annual Technical Conference, General Track.

[18]  L. D. Sauer,et al.  Meta-component architecture for software interoperability , 2000, Proceedings International Conference on Software Methods and Tools. SMT 2000.

[19]  Marco Vanneschi,et al.  The programming model of ASSIST, an environment for parallel and distributed portable applications , 2002, Parallel Comput..

[20]  Cecelia DeLuca,et al.  The architecture of the Earth System Modeling Framework , 2003, Computing in Science & Engineering.

[21]  David Garlan,et al.  Formal Modeling of the Enterprise JavaBeansTM Component Integration Framework , 1999, World Congress on Formal Methods.

[22]  Silvia Magini,et al.  Parallel Software Interoperability by Means of CORBA in the ASSIST Programming Environment , 2004, Euro-Par.

[23]  Wei Zhao,et al.  Automated glue/wrapper code generation in integration of distributed and heterogeneous software components , 2004, Proceedings. Eighth IEEE International Enterprise Distributed Object Computing Conference, 2004. EDOC 2004..

[24]  Edward A. Lee,et al.  Comparing models of computation , 1996, Proceedings of International Conference on Computer Aided Design.

[25]  共立出版株式会社 コンピュータ・サイエンス : ACM computing surveys , 1978 .

[26]  Massachusett Framingham,et al.  The Common Object Request Broker: Architecture and Specification Version 3 , 2003 .

[27]  Steven G. Parker,et al.  The SCIRun Parallel Scientific Computing Problem Solving Environment , 1999, PPSC.

[28]  Tom Moriarty,et al.  COM-CORBA Interoperability , 1998 .

[29]  Bertram Ludäscher,et al.  Kepler: an extensible system for design and execution of scientific workflows , 2004, Proceedings. 16th International Conference on Scientific and Statistical Database Management, 2004..

[30]  Rajeev R. Raje,et al.  A Unified Approach for the Integration of Distributed Heterogeneous Software Components , 2001 .

[31]  C.R. Johnson,et al.  SCIRun: A Scientific Programming Environment for Computational Steering , 1995, Proceedings of the IEEE/ACM SC95 Conference.

[32]  Krzysztof Czarnecki,et al.  Components and generative programming (invited paper) , 1999, ESEC/FSE-7.

[33]  Scott R. Kohn,et al.  Divorcing Language Dependencies from a Scientific Software Library , 2001, PPSC.

[34]  Karl Obermayr,et al.  Component Object Model , 1994 .

[35]  William Schroeder,et al.  The Visualization Toolkit: An Object-Oriented Approach to 3-D Graphics , 1997 .

[36]  Keming Zhang,et al.  SCIRun2: a CCA framework for high performance computing , 2004, Ninth International Workshop on High-Level Parallel Programming Models and Supportive Environments, 2004. Proceedings..

[37]  David C. Luckham,et al.  Rapide: A language and toolset for simulation of distributed systems by partial orderings of events , 1997, Partial Order Methods in Verification.

[38]  Frank Budinsky,et al.  Eclipse Modeling Framework , 2003 .

[39]  John Shalf,et al.  The Cactus Framework and Toolkit: Design and Applications , 2002, VECPAR.

[40]  Jack Herrington,et al.  Code Generation in Action , 2003 .

[41]  David Garlan,et al.  Formalizing Architectural Connection , 1994, ICSE.

[42]  Krzysztof Czarnecki,et al.  Generative programming - methods, tools and applications , 2000 .