Write once, deploy N: a performance oriented MDA case study

Optimizing the performance of distributed database applications is difficult to combine with middleware vendor independence since cache, transaction and cluster configuration is database and application server specific. The most promising approach is to use a flexible code generator. The model driven architecture can become a successful standard for model based code generation by offering a set of high quality code generation languages. To focus the comparison of such languages on criteria that matter in practical development, there is an urgent need for more, and more realistic, case studies. Therefore, we present a complex middleware performance pattern that should be generated for at least two application servers. The code generator should have maximal reuse, separation of concerns and evolution support. From this case study, we derive the requirements for model refinement and code generation languages. We illustrate how existing UML standards can be integrated to satisfy these requirements and conclude with an overview of the language features that were needed to provide an elegant solution to the case study.

[1]  Jean Bézivin,et al.  First experiments with the ATL model transformation language: Transforming XSLT into XQuery , 2003 .

[2]  Albert Zündorf,et al.  Story Diagrams: A New Graph Rewrite Language Based on the Unified Modeling Language and Java , 1998, TAGT.

[3]  Andy Schürr,et al.  Specification of Graph Translators with Triple Graph Grammars , 1994, WG.

[4]  Pieter Van Gorp,et al.  Implementing refactorings as graph rewrite rules on a platform independent metamodel , 2003 .

[5]  Pieter Van Gorp,et al.  A discussion of refactoring in research and practice , 2004 .

[6]  T. Gardner,et al.  A review of OMG MOF 2 . 0 Query / Views / Transformations Submissions and Recommendations towards the final Standard , 2003 .

[7]  Jean Bézivin,et al.  04101 Summary - Language Engineering for Model-driven Software Development , 2004, Language Engineering for Model-Driven Software Development.

[8]  James H. Cross,et al.  Reverse engineering and design recovery: a taxonomy , 1990, IEEE Software.

[9]  Anneke Kleppe,et al.  MDA explained - the Model Driven Architecture: practice and promise , 2003, Addison Wesley object technology series.

[10]  Grzegorz Rozenberg,et al.  Handbook of Graph Grammars and Computing by Graph Transformations, Volume 1: Foundations , 1997 .

[11]  Tom Mens,et al.  Formalising Behaviour Preserving Program Transformations , 2002, ICGT.

[12]  Krzysztof Czarnecki,et al.  Classification of Model Transformation Approaches , 2003 .

[13]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[14]  Shane Sendall,et al.  Model Transformation: The Heart and Soul of Model-Driven Software Development , 2003, IEEE Softw..