Adaptable Architectural Middleware for Programming-in-the-Small-and-Many

  • Marija Mikic-Rakic
  • Nenad Medvidovic
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2672)


A recent emergence of small, resource-constrained, and highly-mobile computing platforms presents numerous new challenges for software developers. We refer to development in this new setting as programming-in-the-small-and-many (Prism). This paper provides a description and evaluation of a middleware intended to support software architecture-based development in the Prism setting. The middleware, called Prism-MW, provides highly efficient and scalable implementation-level support for the key aspects of Prism application architectures. Additionally, Prism-MW is easily extensible to support different application requirements suitable for the Prism setting. Prism-MW is accompanied with design, analysis, deployment, and run-time monitoring tool support. It has been applied in a number of applications and used as an educational tool in a graduate-level embedded systems course. Recently, Prism-MW has been successfully evaluated by a major industrial organization for use in one of their key distributed embedded systems. Our experience with the middleware indicates that the principles of architecture-based software development can be successfully, and flexibly, applied in the Prism setting.


Software Architecture Address Space Architectural Style Event Queue Architecture Description Language 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. 1.
    J. Aldrich, C. Chambers, D. Notkin. ArchJava: Connecting Software Architecture to Implementation. International Conference on Software Engineering 2002, Orlando, Florida, May 2002.Google Scholar
  2. 2.
    L. Capra. W. Emmerich and C. Mascolo. Middleware for Mobile Computing. UCL Research Note RN/30/01.Google Scholar
  3. 3.
    A. Carzaniga, D. S. Rosenblum, and A. L. Wolf. Design and Evaluation of a Wide-Area Event Notification Service. ACM Transactions on Computer Systems, 19(3), August 2001.Google Scholar
  4. 4.
    E. Dashofy, A. Hoek, and R. N. Taylor. An Infrastructure for the Rapid Development of XML-based Architecture Description Languages. International Conference on Software Engineering 2002, Orlando, Florida, May 2002.Google Scholar
  5. 5.
    E. Dashofy. N. Medvidovic, and R. N. Taylor. Using Off-the-Shelf Middleware to Implement Connectors in Distributed Software Architectures. International Conference on Software Engineering’99, Los Angeles, May 1999.Google Scholar
  6. 6.
    F. DeRemer and H. Kron. Programming-in-the-Large Versus Programming-in-the-Small. IEEE Transactions on Software Engineering, June 1976.Google Scholar
  7. 7.
    W. Emmerich. Software Engineering and Middleware: A Roadmap. In The Future of Software Engineering, ACM Press 2000.Google Scholar
  8. 8.
    R. Fielding. Architectural Styles and the Design of Network-Based Software Architectures. Ph.D Thesis, UCI, June 2000.Google Scholar
  9. 9.
    M. Hauswirth and M. Jazayeri. A Component and Communication Model for Push Systems. Joint European Software Engineering Conference (ESEC) and Foundations of Software Engineering (FSE)’ 99, September 1999.Google Scholar
  10. 10.
  11. 11.
    E. A. Lee. Embedded Software. Revised from UCB/ERL Memorandum M01/26, UC Berkeley, CA, November 1, 2001.Google Scholar
  12. 12.
  13. 13.
    T. Lindholm and F. Yellin. The Java Virtual Machine Specification. 2nd Edition Java Series. Addison Wesley 1999.Google Scholar
  14. 14.
    C. Mascolo et. al. XMIDDLE: A Data-Sharing Middleware for Mobile Computing. To appear in Personal and Wireless Communications, Kluwer.Google Scholar
  15. 15.
    N. Medvidovic, N. R. Mehta, M. Mikic-Rakic: A Family of Software Architecture Implementation Frameworks. The Working IEEE/IFIP Conference on Software Architecture 2002, Montreal, Canada, August 2002.Google Scholar
  16. 16.
    N. Medvidovic and M. Mikic-Rakic. Architectural Support for Programming-in-the-Many. TR USC-CSE-2001-506.Google Scholar
  17. 17.
    N. Medvidovic, et al. A Language and Environment for Architecture-Based Software Development and Evolution. International Conference on Software Engineering’ 99, Los Angeles, CA, May 1999.Google Scholar
  18. 18.
    N. Medvidovic and R. N. Taylor. A Classification and Comparison Framework for Software Architecture Description Languages. IEEE Transactions on Software Engineering, vol. 26, no. 1, pages 70–93 (January 2000). Reprinted in Rational Developer Network: Seminal Papers on Software Architecture. Rational Software Corporation, (July 2001).CrossRefGoogle Scholar
  19. 19.
    N. R. Mehta, N. Medvidovic, and S. Phadke. Towards a Taxonomy of Software Connectors. International Conference on Software Engineering (ICSE 2000), pages 178–187. Limerick, Ireland, June 4–11, 2000.Google Scholar
  20. 20.
  21. 21.
    M. Mikic-Rakic and N. Medvidovic. A Connector-Aware Middleware for Distributed Deployment and Mobility. ICDCS Workshop on Mobile Computing Middleware, Rhode Island, May, 2003.Google Scholar
  22. 22.
    M. Mikic-Rakic and N. Medvidovic. Middleware for Software Architecture-Based Development in Distributed, Mobile, and Resource-Constrained Environments. TR USC-CSK-2002-501.Google Scholar
  23. 23.
    M. Mikic-Rakic and N. Medvidovic. Software Architecture-Based Development Support for Ubiquitous Systems. TR USC-CSE-2002-508.Google Scholar
  24. 24.
    P. Oreizy, ct al. An Architecture-Based Approach to Self-Adaptive Software. IEEE Intelligent Systems and Their Applications, 14(3), May/June 1999.Google Scholar
  25. 25.
    D. Perry and A.L. Wolf. Foundations for the Study of Software Architecture. ACM SIGSOFT Software Engineering Notes, October 1992.Google Scholar
  26. 26.
    Project JXTA.
  27. 27.
    D. Salomon. Data Compression: The Complete Reference. Springer Verlag, December 1997.Google Scholar
  28. 28.
    M. Shaw et al. Abstractions for Software Architecture and Tools to Support Them. IEEE Transactions on Software Engineering, 21(4), April 1995.Google Scholar
  29. 29.
    M. Shaw and D. Garlan. Software Architecture: Perspectives on an Emerging Discipline. Prentice Hall, 1996.Google Scholar
  30. 30.
  31. 31.
    D. Schmidt et. al. Software Architectures for Reducing Priority Inversion and Non-determinism in Real-time Object Request Brokers. Kluwer Journal of Realtime Systems, Volume 21, Number 2, 2001.Google Scholar
  32. 32.
  33. 33.
    J. P. Sousa, and D. Garlan: Aura: an Architectural Framework for User Mobility in Ubiquitous Computing Environments. The Working IEEE/IFIP Conference on Software Architecture 2002 2002, Montreal, Canada, August 2002.Google Scholar
  34. 34.
    Sun Microsystems. JINI(TM) Network technology,
  35. 35.
    Sun Microsystems. K Virtual Machine (KVM).
  36. 36.
    C. Szyperski. Component Software — Beyond Object-Oriented Programming. Addison-Wesley / ACM Press, 1998Google Scholar
  37. 37.
    R.N. Taylor, et al. A Component-and Message-Based Architectural Style for GUI Software. IEEE Transactions on Software Engineering, June 1996.Google Scholar
  38. 38.
    The x-kernel Protocol Framework,
  39. 39.
    S. S. Yau and F. Karim, Context-Sensitive Middleware for Real-time Software in Ubiquitous Computing Environments. Proceedings of the International Symposium on Object-oriented Real-time distributed Computing 2001, Magdeburg, Germany.Google Scholar
  40. 40.
    A Discussion of the Object Management Architecture (OMA) Guide, OMG, 1997.Google Scholar

Copyright information

© IFIP International Federation for Information Processing 2003

Authors and Affiliations

  • Marija Mikic-Rakic
    • 1
  • Nenad Medvidovic
    • 1
  1. 1.Computer Science DepartmentUniversity of Southern CaliforniaLos AngelesUSA

Personalised recommendations