AutoMaS: An Automated Middleware Specialization Process for Distributed Real-time and Embedded Systems


Akshay Dabholkar
Aniruddha Gokhale


Developing distributed applications, particularly those for distributed, real-time and embedded (DRE) systems, is a difficult and complex undertaking due to the need to address four major challenges: the complexity of programming interprocess communication, the need to support a wide range of services across heterogeneous platforms and promote reuse, the need to efficiently utilize resources, and the need to adapt to changing conditions. The first two challenges are addressed to a large extent by standardized, general-purpose middleware (e.g. CORBA, DCOM and Java RMI) through the use of a “black-box” approach, such as the object-oriented paradigm (frameworks and design patterns). The need to support a large variety and range of applications and application domains has resulted in very feature-rich implementations of these standardized middleware. However, such a feature-richness acts counteractive to resolving the remaining two challenges; instead it incurs excessive memory footprint and performance overhead, as well as increased cost of testing and maintenance. To address the four challenges all at once while leveraging the benefits of general-purpose middleware requires a scientific approach to specializing the middleware. Software engineering techniques, such as aspect-oriented programming (AOP), feature-oriented programming (FOP), and reflection make the specialization task simpler, albeit still requiring the DRE system developer to manually identify the system invariants, and sources of performance and memory footprint bottlenecks that drive the specialization techniques. Specialization reuse is also hampered due to a lack of common taxonomy to document the recurring specializations, and assess the strengths and weaknesses of these techniques. To address these requirements, this paper presents a case for an automated, multi-stage, feature-oriented middleware specialization process that improves both middleware developer productivity and middleware performance. Three specific contributions are made in this paper. First, contemporary middleware specialization research is framed in terms of a three-dimensional taxonomy. Second, the principles of separation of concerns are used in the context of this taxonomy to define six stages of a middleware specialization process lifecycle. Finally, a concrete implementation of the six stage, automated middleware specialization process is presented along with empirical data illustrating the benefits accrued using the framework.


How to Cite
Akshay Dabholkar, & Aniruddha Gokhale. (2016). AutoMaS: An Automated Middleware Specialization Process for Distributed Real-time and Embedded Systems. International Journal of Next-Generation Computing, 7(2), 78–114.


  1. Agha, G. A. 2002. Introduction. Communications of the ACM 45, 6, 30–32.
  2. Apel, S., Leich, T., and Saake, G. 2008. Aspectual feature modules. Software Engineering, IEEE Transactions on 34, 2 (March-April), 162–180.
  3. Balasubramanian, K., Balasubramanian, J., Parsons, J., Gokhale, A., and Schmidt, D. C. 2005. A Platform-Independent Component Modeling Language for Distributed Real-Time and Embedded Systems. In RTAS ’05: Proceedings of the 11th IEEE Real Time on Embedded Technology and Applications Symposium. IEEE Computer Society, Washington, DC, USA, 190–199.
  4. Blair, G. S., Coulson, G., Robin, P., and Papathomas, M. 1998. An Architecture for Next Generation Middleware. In Proceedings of the IFIP International Conference on Distributed Systems Platforms and Open Distributed Processing. Springer-Verlag, London, 191–206.
  5. Brooks, F. P. 1987. No Silver Bullet: Essence and Accidents of Software Engineering. IEEE Computer 20, 4 (April), 10–19.
  6. Cacho, N. and Batista, T. V. 2005. Using AOP to Customize a Reflective Middleware. In OTM Conferences (2). Lecture Notes in Computer Science, vol. 3761. Springer, 1133–1150.
  7. Chakravarthy, V., Regehr, J., and Eide, E. 2008. Edicts: Implementing Features with Flexible Binding Times. In AOSD ’08: Proceedings of the 7th International Conference on Aspect-oriented Software Development. ACM, New York, NY, USA, 108–119.
  8. Corsaro, A., Schmidt, D. C., Klefstad, R., and O’Ryan, C. 2002. Virtual Component: a Design Pattern for Memory-Constrained Embedded Applications. In Proceedings of the 9 th Annual Conference on the Pattern Languages of Programs. Monticello, IL.
  9. Czarnecki, K. and Eisenecker, U. W. 2000. Generative Programming: Methods, Tools, and Applications. Addison-Wesley, Reading, Massachusetts.
  10. Dabholkar, A. and Gokhale, A. 2011. FORMS: Feature-Oriented Reverse Engineering-based Middleware Specialization for Product-Lines. Journal of Software (JSW) - Special Issue on Recent Advances in Middleware and Network Applications 6, 4, 519–527.
  11. David, P.-C., Ledoux, T., and Bouraqadi-Saadani, N. M. 2001. Two-step Weaving with Reflection using AspectJ. OOPSLA 2001 Workshop on Advanced Separation of Concerns in Object-Oriented Systems.
  12. Demir, O. E. ¨ , Devanbu, P. T., Wohlstadter, E., and Tai, S. 2007. An aspect-oriented approach to bypassing middleware layers. In AOSD, B. M. Barry and O. de Moor, Eds. ACM International Conference Proceeding Series, vol. 208. ACM, 25–35.
  13. Developer, B. 2007. The source-navigatorTM ide.
  14. Elliott, C. 2007. The makefile, project, and workspace creator (mpc).
  15. Fabio M. Costa and Gordon S. Blair ´ . 1999. A Reflective Architecture for Middleware: Design and Implemen tation. In ECOOP’99, Workshop for PhD Students in Object Oriented Systems.
  16. Gokhale, A., Kaul, D., Kogekar, A., Gray, J., and Gokhale, S. 2007. POSAML: A Visual Modeling Language for Managing Variability in Middleware Provisioning. Elsevier Journal of Visual Languages and Computing (JVLC) 2007 18, 4, 359–377.
  17. Gottlob, G., Schrefl, M., and Rock, B. ¨ 1996. Extending object-oriented systems with roles. ACM Trans. Inf. Syst. 14, 3, 268–296.
  18. Hunleth, F. and Cytron, R. K. 2002. Footprint and Feature Management Using Aspect-oriented Programming Techniques. In Proceedings of the Joint Conference on Languages, Compilers and Tools for Embedded Systems (LCTES 02). ACM Press, Berlin, Germany, 38–45.
  19. Institute for Software Integrated Systems. Vanderbilt Universitya. Component-Integrated ACE ORB (CIAO).
  20. Institute for Software Integrated Systems. Vanderbilt Universityb. The ADAPTIVE Communication Environment (ACE). Jin, J. and Nahrstedt, K. 2004. On Exploring Performance Optimizations in Web Service Composition. In Middleware. 115–134.
  21. Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C. V., Loingtier, J.-M., and Irwin, J. 1997. Aspect-Oriented Programming. In Proceedings of the 11th European Conference on Object-Oriented Programming (ECOOP’97). 220–242.
  22. Klefstad, R., Schmidt, D. C., and O’Ryan, C. 2002. Towards Highly Configurable Real-time Object Request Brokers. In Proceedings of the International Symposium on Object-Oriented Real-time Distributed Computing (ISORC). IEEE/IFIP, Newport Beach, CA.
  23. Kon, F., Roman, M., Liu, P., Mao, J., Yamane, T., Magalhaes, L., and Campbell, R. 2000. Monitoring, Security, and Dynamic Configuration with the dynamicTAO Reflective ORB. In Proceedings of the Middleware 2000 Conference. ACM/IFIP.
  24. Krishna, A., Gokhale, A., Schmidt, D. C., Hatcliff, J., and Ranganath, V. 2006. Context-Specific Middleware Specialization Techniques for Optimizing Software Product-line Architectures. In Proceedings of EuroSys 2006. Leuven, Belgium, 205–218.
  25. Lohmann, D., Spinczyk, O., and Schroder-Preikschat, W. ¨ 2006. Lean and Efficient System Software Product Lines: Where Aspects Beat Objects. Transactions on AOSD II 4242, 227–255.
  26. Marlet, R., Thibault, S., and Consel, C. 1999. Efficient Implementations of Software Architectures via Partial Evaluation. Automated Software Engineering: An International Journal 6, 4 (October), 411–440.
  27. Mezini, M. and Ostermann, K. 2003. Conquering aspects with caesar. In AOSD ’03: Proceedings of the 2nd international conference on Aspect-oriented software development. ACM, New York, NY, USA, 90–99.
  28. Mezinia, M. and Ostermann, K. 2004. Variability Management with Feature-oriented Programming and Aspects. SIGSOFT Softw. Eng. Notes 29, 6, 127–136.
  29. Mohapatra, S., Cornea, R., Oh, H., Lee, K., Kim, M., Dutt, N. D., Gupta, R., Nicolau, A., Shukla, S. K., and Venkatasubramanian, N. 2005. A Cross-Layer Approach for Power-Performance Optimization in Distributed Mobile Systems. In Proceedings of International Parallel and Distributed Processing Symposium.
  30. Nicoara, A., Alonso, G., and Roscoe, T. 2008. Controlled, systematic, and efficient code replacement for running java programs. SIGOPS Oper. Syst. Rev. 42, 4, 233–246.
  31. Nuseibeh, B., Kramer, J., and Finkelstein, A. 1994. A framework for expressing the relationships between multiple views in requirements specification. IEEE Trans. Softw. Eng. 20, 10, 760–773.
  32. Object Management Group 2000. Interceptors FTF Final Published Draft, OMG Document ptc/00-04-05 ed. Object Management Group.
  33. Object Management Group 2001. Model Driven Architecture (MDA), OMG Document ormsc/2001-07-01 ed. Object Management Group.
  34. Object Management Group 2005. Real-time CORBA Specification, 1.2 ed. Object Management Group.
  35. Omer Erdem Demir ¨ , Devanbu, P. ´ , Wohlstadter, E., and Tai, S. 2007. An Aspect-oriented Approach to Bypassing Middleware Layers. In AOSD ’07: Proceedings of the 6th international conference on Aspect-oriented software development. ACM Press, Vancouver, British Columbia, Canada, 25–35.
  36. openArchitectureWare. 2007. openArchitectureWare.
  37. Parnas, D. L. 1972. On the Criteria To Be Used in Decomposing Systems into Modules. Communications of the ACM 15, 12 (Dec.).
  38. Popovici, A., Alonso, G., and Gross, T. 2003. Just-in-time Aspects: Efficient Dynamic Weaving for Java.
  39. In Proceedings of the 2nd International Conference on Aspect-oriented Software Development. Boston, Massachusetts, 100–109.
  40. Prehofer, C. 1997. Feature-Oriented Programming: A Fresh Look at Objects. In ECOOP’97—Object-Oriented Programming, 11th European Conference, M. Aksit and S. Matsuoka, Eds. Vol. 1241. Springer, Jyv¨askyl¨a, Finland, 419–443.
  41. Roman, M., Campbell, R. H., and Kon, F. 2001. Reflective Middleware: From Your Desk to Your Hand. IEEE Distributed Systems Online 2, 5 (July).
  42. Sadjadi, S., McKinley, P., and Kasten, E. 2003. Architecture and operation of an adaptable communication substrate.
  43. Schmidt, D. C. 1997. The ADAPTIVE Communication Environment (ACE).∼schmidt/ACE.html.
  44. Schmidt, D. C. 2006. Model-Driven Engineering. IEEE Computer 39, 2, 25–31.
  45. Schmidt, D. C., Natarajan, B., Gokhale, A., Wang, N., and Gill, C. 2002. TAO: A Pattern-Oriented Object Request Broker for Distributed Real-time and Embedded Systems. IEEE Distributed Systems Online 3, 2 (Feb.).
  46. Schmidt, D. C., Schantz, R., Masters, M., Cross, J., Sharp, D., and DiPalma, L. 2001. Towards Adaptive and Reflective Middleware for Network-Centric Combat Systems. In CrossTalk - The Journal of Defense Software Engineering. Software Technology Support Center, Hill AFB, Utah, USA, 10–16.
  47. Schmidt, D. C., Stal, M., Rohnert, H., and Buschmann, F. 2000. Pattern-Oriented Software Architecture: Patterns for Concurrent and Networked Objects, Volume 2. Wiley & Sons, New York.
  48. Sharp, D. C. and Roll, W. C. 2003. Model-Based Integration of Reusable Component-Based Avionics System. Proceedings of the Workshop on Model-Driven Embedded Systems in RTAS 2003.
  49. Sullivan, G. T. 2001. Aspect-oriented programming using reflection and metaobject protocols. Commun. ACM 44, 10, 95–97.
  50. Suri, D., Howell, A., Shankaran, N., Kinnebrew, J., Otte, W., Schmidt, D. C., and Biswas, G. 2006. Onboard Processing using the Adaptive Network Architecture. In Proceedings of the Sixth Annual NASA Earth Science Technology Conference. College Park, MD.
  51. Szyperski, C. 1997. Component Software: Beyond Object-Oriented Programming. Addison-Wesley Professional.
  52. Tambe, S., Dabholkar, A., and Gokhale, A. 2009. Generative Techniques to Specialize Middleware for Fault Tolerance. In Proceedings of the 12th IEEE International Symposium on Object-oriented Real-time distributed Computing (ISORC 2009). IEEE Computer Society, Tokyo, Japan.
  53. Tripathi, A. 2002. Challenges Designing Next-Generation Middleware Systems. Communications of the ACM 45, 6 (June), 39–42.
  54. Trujillo, S., Batory, D., and Diaz, O. 20 07. Feature oriented model driven development: A case study for portlets. In ICSE ’07: Proceedings of the 29th international conference on Software Engineering. IEEE Computer Society, Washington, DC, USA, 44–53.
  55. Vanderperren, W., Suvee, D. ´ , Verheecke, B., Cibran, M. A. , and Jonckers, V. 2005. Adaptive Programming in JAsCo. In AOSD ’05: Proceedings of the 4th International Conference on Aspect-oriented Software Development. Chicago, Illinois, 75–86.
  56. Varghese, G. 2005. Network Algorithmics: An Interdisciplinary Approach to Designing Fast Networked Devices. Morgan Kaufmann Publishers (Elsevier), San Francisco, CA.
  57. Verheecke, B. and Cibrn, M. A. 2003. Aop for dynamic configuration and management of web services. In In Proceedings of 2003 International Conference on Web Services. 2004.
  58. Wohlstadler, E., Jackson, S., and Devanbu, P. 2003. DADO: Enhancing Middleware to Support Crosscutting Features in Distributed, Heterogeneous Systems . In Proceedings of the International Conference on Software Engineering. Portland, OR.
  59. Yang, Z., Cheng, B. H. C., Stirewalt, R. E. K., Sowell, J., Sadjadi, S. M., and McKinley, P. K. 2002. An aspect-oriented approach to dynamic adaptation. In WOSS ’02: Proceedings of the first workshop on Self-healing systems. ACM, New York, NY, USA, 85–92.
  60. Zhang, C., Gao, D., and Jacobsen, H.-A. 2005a. Generic Middleware Substrate Through Modelware. In Proceedings of the 6th International ACM/IFIP/USENIX Middleware Conference. Grenoble, France, 314–333.
  61. Zhang, C., Gao, D., and Jacobsen, H.-A. 2005b. Towards Just-in-time Middleware Architectures. In AOSD ’05: Proceedings of the 4th international conference on Aspect-oriented software development. ACM Press, Chicago, Illinois, 63–74.
  62. Zhang, C. and Jacobsen, H.-A. 2004. Resolving Feature Convolution in Middleware Systems. In OOPSLA ’04: Proceedings of the 19th annual ACM SIGPLAN Conference on Object-oriented Programming, Systems, Languages, and Applications. ACM, New York, NY, USA, 188–205.
  63. Zinky, J. A., Bakken, D. E., and Schantz, R. 1997. Architectural Support for Quality of Service for CORBA Objects. Theory and Practice of Object Systems 3, 1, 1–20.