Resolving Implementation Convolution in Middleware Systems

Middleware provides simplicity and uniformity for the development of distributed applications. However, the modularity of the architecture of middleware is starting to disintegrate and to become complicated due to the interaction of too many orthogonal concerns imposed from a wide range of application requirements. This is not due to bad design but rather due to the limitations of the conventional architectural decomposition methodologies. We introduce the principles of horizontal decomposition (HD) to address this problem with a mixed-paradigm middleware architecture. HD provides guidance for the use of conventional decomposition methods to implement the core functionalities of middleware and the use of aspect orientation to address its orthogonal properties. Our evaluation of the horizontal decomposition principles focuses on refactoring major middleware functionalities into aspects in order to modularize and isolate them from the core architecture. New versions of the middleware platform can be created through combining the core and the flexible selection of middleware aspects such as IDL data types, the oneway invocation style, the dynamic messaging style, and additional character encoding schemes. As a result, the primary functionality of the middleware is supported with a much simpler architecture and enhanced performance. Moreover, customization and configuration of the middleware for a wide-range of requirements becomes possible.

[1]  Mehmet Aksit,et al.  Aspects and Crosscutting in Layered Middleware Systems , 2000 .

[2]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[3]  John A. Zinky,et al.  Building adaptive distributed applications with middleware and aspects , 2004, AOSD '04.

[4]  Gul A. Agha,et al.  Customizable middleware for modular distributed software , 2001, CACM.

[5]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[6]  Gordon S. Blair,et al.  An Efficient Component Model for the Construction of Adaptive Middleware , 2001, Middleware.

[7]  John A. Zinky,et al.  QoS Aspect Languages and Their Runtime Integration , 1998, LCR.

[8]  Pamela Zave,et al.  Feature interactions and formal specifications in telecommunications , 1993, Computer.

[9]  Christian Prehofer,et al.  Feature-Oriented Programming: A Fresh Look at Objects , 1997, ECOOP.

[10]  Luca Benini,et al.  System-level power optimization: techniques and tools , 1999, ISLPED '99.

[11]  Pattie Maes,et al.  Computational reflection , 1987, The Knowledge Engineering Review.

[12]  Louis P. DiPalma,et al.  Applying corba in a contemporary embedded military combat system , 2001 .

[13]  Roel Wieringa,et al.  A survey of structured and object-oriented software specification methods and techniques , 1998, CSUR.

[14]  Mik Kersten,et al.  Atlas: a case study in building a web-based learning environment using aspect-oriented programming , 1999, OOPSLA '99.

[15]  Gregor Kiczales Aspect-oriented programming , 2005, ICSE '05.

[16]  Gordon S. Blair,et al.  The Design and Implementation of Open ORB 2 , 2001, IEEE Distributed Syst. Online.

[17]  Gregor Kiczales,et al.  Design pattern implementation in Java and aspectJ , 2002, OOPSLA '02.

[18]  Andrew Clement,et al.  Large-scale AOSD for middleware , 2004, AOSD '04.

[19]  Gordon S. Blair,et al.  Reflection, self-awareness and self-healing in OpenORB , 2002, WOSS '02.

[20]  Hans-Arno Jacobsen,et al.  Refactoring Middleware with Aspects , 2003, IEEE Trans. Parallel Distributed Syst..

[21]  Gordon S. Blair,et al.  The design of a configurable and reconfigurable middleware platform , 2002, Distributed Computing.

[22]  Christopher Gill,et al.  Building Customizable Middleware using Aspect Oriented Programming , 2001 .

[23]  Pamela Zave,et al.  A compositional approach to multiparadigm programming , 1989, IEEE Software.

[24]  Hans-Arno Jacobsen,et al.  TinyC2: Towards building a dynamic weaving aspect language for C , 2003 .

[25]  Hans-Arno Jacobsen,et al.  Quantifying aspects in middleware platforms , 2003, AOSD '03.

[26]  Steffen Göbel,et al.  The COMQUAD component model: enabling dynamic selection of implementations by weaving non-functional aspects , 2004, AOSD '04.

[27]  하수철,et al.  [서평]「Component Software」 - Beyond Object-Oriented Programming - , 2000 .

[28]  Thomas Ledoux,et al.  OpenCorba: A Reflektive Open Broker , 1999, Reflection.

[29]  Fabio Kon,et al.  Monitoring, Security, and Dynamic Configuration with the dynamicTAO Reflective ORB , 2000, Middleware.

[30]  Nalini Venkatasubramanian,et al.  Design and implementation of a composable reflective middleware framework , 2001, Proceedings 21st International Conference on Distributed Computing Systems.

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

[32]  Franz J. Hauck,et al.  The AspectIX Approach to Quality-of-Service Integration into CORBA , 1999 .

[33]  Premkumar T. Devanbu,et al.  DADO: enhancing middleware to support crosscutting features in distributed, heterogeneous systems , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[34]  Robert J. Walker,et al.  An initial assessment of aspect-oriented programming , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[35]  Edsger W. Dijkstra,et al.  The humble programmer , 1972, CACM.

[36]  Hans-Arno Jacobsen,et al.  Refactoring middleware systems: A Case Study , 2003 .

[37]  Glenn D. Bergland,et al.  Structured Design Methodologies , 1978, 15th Design Automation Conference.

[38]  R. Pawlak,et al.  AspectTAZ : a new approach based on aspect oriented programming for object oriented industrial messaging services design , 2002, 4th IEEE International Workshop on Factory Communication Systems.