This Article 
 Bibliographic References 
 Add to: 
A Style-Aware Architectural Middleware for Resource-Constrained, Distributed Systems
March 2005 (vol. 31 no. 3)
pp. 256-272
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 Prism-MW, a middleware platform intended to support software architecture-based development in the Prism setting. Prism-MW provides efficient and scalable implementation-level support for the key aspects of Prism application architectures, including their architectural styles. Additionally, Prism-MW is extensible to support different application requirements suitable for the Prism setting. Prism-MW has been applied in a number of applications and used as an educational tool in graduate-level software architecture and embedded systems courses. 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.

[1] G. Abowd, “Programming Environments. . . Literally: Ubicomp's Grand Challenge for Software Engineering,” Proc. SIGSOFT Symp. Foundations of Software Eng., Nov. 2002.
[2] J. Aldrich, C. Chambers, and D. Notkin, “ArchJava: Connecting Software Architecture to Implementation,” Proc. Int'l Conf. Software Eng., pp. 187-197, May 2002.
[3] L. Andrade, P. Baldan, H. Baumeister, R. Bruni, A. Corradini, R. DeNicola, J.L. Fiadeiro, F. Gadducci, S. Gnesi, P. Hoffman, N. Koch, P. Kosiuczenko, A. Lapadula, D. Latella, A. Lopes, M. Loreti, M. Massink, F. Mazzanti, U. Montanari, C. Oliveira, R. Pugliese, A. Tarlecki, M. Wermelinger, M. Wirsing, and A. Zawlocki, “AGILE: Software Architecture for Mobility,” Proc. 16th Int'l Workshop Algebraic Development Techniques, pp. 1-33, 2003.
[4] C. Mascolo, L. Capra, and W. Emmerich, “Middleware for Mobile Computing (A Survey),” Advanced Lectures on Networking— Networking 2002 Tutorials, pp. 20-58, May 2002.
[5] A. Carzaniga, D.S. Rosenblum, and A.L. Wolf, “Design and Evaluation of a Wide-Area Event Notification Service,” ACM Trans. Computer Systems, vol. 19, no. 3, pp. 332-383, Aug. 2001.
[6] A. Chan and S. Chuang, “MobiPADS: A Reflective Middleware for Context-Aware Mobile Computing,” IEEE Trans. Software Eng., vol. 29, no. 12, pp. 1072-1085, Dec. 2003.
[7] F. DeRemer and H. Kron, “Programming-in-the-Large versus Programming-in-the-Small,” IEEE Trans. Software Eng., vol. 2, no. 2, pp 321-327, June 1976.
[8] W. Emmerich, “Software Engineering and Middleware: A Roadmap,” Proc. Conf. Future of Software Eng., pp. 117-129, 2000.
[9] J.L. Fiadeiro and T. Maibaum, “Categorical Semantics of Parallel Program Design,” Science of Computer Programming, vol. 28, nos. 2-3, pp. 111-138, Apr. 1997.
[10] R. Fielding, “Architectural Styles and the Design of Network-Based Software Architectures,” PhD thesis, Univ. of California, Irvine, June 2000.
[11] A. Fuggetta, G.P. Picco, and G. Vigna, “Understanding Code Mobility,” IEEE Trans. Software Eng., vol. 24, no. 5, pp. 342-361, May 1998.
[12] IONA Orbix/E Datasheet, , 2004.
[13] E.A. Lee, “Embedded Software,” Advances in Computers, E. Zelkowitz, ed., vol. 56, 2002.
[14] LIME, http:/, 2004.
[15] C.L. Liu and J.W. Layland, “Scheduling Algorithms for Multiprogramming in a Hard-Real-Time Environment,” J. ACM, vol. 20, no. 1, pp. 46-61, Jan. 1973.
[16] C. Mascolo, L. Capra, S. Zachariadis, and W. Emmerich, “XMIDDLE: A Data-Sharing Middleware for Mobile Computing,” Personal and Wireless Comm., vol. 21, no. 1, pp. 77-103, 2002.
[17] N. Medvidovic, N.R. Mehta, M. Mikic-Rakic, “A Family of Software Architecture Implementation Frameworks,” Proc. Working IEEE/IFIP Conf. Software Architecture, vol. 224, pp. 221-235, Aug. 2002.
[18] N. Medvidovic, M. Mikic-Rakic, N.R. Mehta, and S. Malek, “Software Architectural Support for Handheld Computing,” IEEE Computer, pp. 66-73, Sept. 2003.
[19] N. Medvidovic, D.S. Rosenblum, and R.N. Taylor, “A Language and Environment for Architecture-Based Software Development and Evolution,” Proc. Int'l Conf. Software Eng., pp. 44-53, May 1999.
[20] N. Medvidovic and R.N. Taylor, “A Classification and Comparison Framework for Software Architecture Description Languages,” IEEE Trans. Software Eng., vol. 26, no. 1, pp. 70-93, Jan. 2000.
[21] N.R. Mehta, N. Medvidovic, and S. Phadke, “Towards a Taxonomy of Software Connectors,” Proc. Int'l Conf. Software Eng., pp. 178-187, June 2000.
[22] Microsoft.NET,, 2004.
[23] M. Mikic-Rakic and N. Medvidovic, “Support for Disconnected Operation via Architectural Self-Reconfiguration,” Proc. First Int'l Conf. Autonomic Computing (ICAC-04), pp. 114-121, May 2004.
[24] M. Mikic-Rakic and N. Medvidovic, “Adaptable Architectural Middleware for Programming-in-the-Small-and-Many,” Proc. ACM/IFIP/USENIX Int'l Middleware Conf., vol. 2672/2003, pp. 162-181, June 2003.
[25] M. Mikic-Rakic and N. Medvidovic, “Increasing the Confidence in Off-the-Shelf Components: A Software Connector-Based Approach,” Proc. 2001 Symp. Software Reusability (SSR 2001), pp. 11-18, May 2001.
[26] Object Computing Inc., http:/, 2004.
[27] P. Oreizy, M.M. Gorlick, R.N. Taylor, D. Heimbigner, G. Johnson, N. Medvidovic, A. Quilici, D.S. Rosenblum, and A.L. Wolf, “An Architecture-Based Approach to Self-Adaptive Software,” IEEE Intelligent Systems, vol. 14, no. 3, pp. 54-62, May 1999.
[28] D. Perry and A.L. Wolf, “Foundations for the Study of Software Architecture,” ACM SIGSOFT Software Eng. Notes, vol. 17, no. 4, pp. 40-52, Oct. 1992.
[29] L.L. Peterson and B.S. Davie, Computer Networks. Morgan Kaufmann, 2000.
[30] Project JXTA, http:/, 2004.
[31] D. Salomon, Data Compression: The Complete Reference. Springer Verlag, Dec. 1997.
[32] M. Shaw, R. DeLine, D. Klein, T. Ross, D. Young, and G. Zelesnik, “Abstractions for Software Architecture and Tools to Support Them,” IEEE Trans. Software Eng., vol. 21, no. 4, Apr. 1995.
[33] D. Schmidt, “ACE,” , 2004.
[34] D.C. Schmidt, S. Mungee, S. Flores-Gaitan, and A. Gokhale, “Software Architectures for Reducing Priority Inversion and Non-Determinism in Real-Time Object Request Brokers,” J. Real-Time Systems, vol. 21, pp. 77-125, 2001.
[35] D. Schmidt, “TAO,”, 2004.
[36] J.P. Sousa and D. Garlan, “Aura: An Architectural Framework for User Mobility in Ubiquitous Computing Environments,” Proc. Working IEEE/IFIP Conf. Software Architecture, pp. 29-43, Aug. 2002.
[37] Sun Microsystems, JINI(TM) Network Technology,, 2004.
[38] V. Sankhla, “SMART: A Small World Based Reputation System for MANETs,” master's thesis, Dept. of Electrical Eng., Univ. of Southern California, Oct. 2004.
[39] C. Szyperski, Component Software— Beyond Object-Oriented Programming. Addison-Wesley, 1998.
[40] R.N. Taylor, N. Medvidovic, K.M. Anderson, E.J. Whitehead Jr., and J.E. Robbins, “A Component- and Message-Based Architectural Style for GUI Software,” IEEE Trans. Software Eng., vol. 22, pp. 390-406, June 1996.
[41] Y. Weinsberg and I. Ben-Shaul, “A Programming Model and System Support for Disconnected-Aware Applications on Resource-Constrained Devices,” Proc. Int'l Conf. Software Eng. (ICSE 2002), pp. 374-384, 2002.
[42] S.S. Yau and F. Karim, “Context-Sensitive Middleware for Real-Time Software in Ubiquitous Computing Environments,” Proc. Int'l Symp. Object-Oriented Real-Time Distributed Computing, p. 163, May 2001.

Index Terms:
Software architecture, architectural style, middleware, Prism-MW.
Sam Malek, Marija Mikic-Rakic, Nenad Medvidovic, "A Style-Aware Architectural Middleware for Resource-Constrained, Distributed Systems," IEEE Transactions on Software Engineering, vol. 31, no. 3, pp. 256-272, March 2005, doi:10.1109/TSE.2005.29
Usage of this product signifies your acceptance of the Terms of Use.