This Article 
 Bibliographic References 
 Add to: 
The SATIN Component System-A Metamodel for Engineering Adaptable Mobile Systems
November 2006 (vol. 32 no. 11)
pp. 910-927
Mobile computing devices, such as personal digital assistants and mobile phones, are becoming increasingly popular, smaller, and more capable. We argue that mobile systems should be able to adapt to changing requirements and execution environments. Adaptation requires the ability to reconfigure the deployed code base on a mobile device. Such reconfiguration is considerably simplified if mobile applications are component-oriented rather than monolithic blocks of code. We present the satin (System Adaptation Targeting Integrated Networks) component metamodel, a lightweight local component metamodel that offers the flexible use of logical mobility primitives to reconfigure the software system by dynamically transferring code. The metamodel is implemented in the satin middleware system, a component-based mobile computing middleware that uses the mobility primitives defined in the metamodel to reconfigure both itself and applications that it hosts. We demonstrate the suitability of satin in terms of lightweightedness, flexibility, and reusability for the creation of adaptable mobile systems by using it to implement, port, and evaluate a number of existing and new applications, including an active network platform developed for satellite communication at the European Space Agency. These applications exhibit different aspects of adaptation and demonstrate the flexibility of the approach and the advantages gained.

[1] Palmsource Developers Program, http://www. palmsource.comdevelopers/, 2004.
[2] J. Power, “Distributed Systems and Self-Organization,” Proc. 1990 ACM Ann. Conf. Cooperation, pp. 379-384, Feb. 1990.
[3] A. Fuggetta, G. Picco, and G. Vigna, “Understanding Code Mobility,” IEEE Trans. Software Eng., vol. 24, no. 5, pp. 342-361, May 1998.
[4] The Project, http:/, 1995.
[5] S. Zachariadis, C. Mascolo, and W. Emmerich, “SATIN: A Component Model for Mobile Self-Organisation,” On the Move to Meaningful Internet Systems 2004: Proc. CoopIS, DOA, and ODBASE, pp. 1303-1321, Oct. 2004.
[6] C. Szyperski, Component Software: Beyond Object-Oriented Programming. Addison Wesley, 1998.
[7] M. Satyanarayanan, “Accessing Information on Demand at Any Location. Mobile Information Access,” IEEE Personal Comm., vol. 3, no. 1, pp. 26-33, Feb. 1996.
[8] L. Capra, S. Zachariadis, and C. Mascolo, “Q-CAD: QoS and Context Aware Discovery Framework for Adaptive Mobile Systems,” Proc. Int'l Conf. Pervasive Services (ICPS '05), pp. 453-456, July 2005.
[9] T. Kort and K. Dulaney, “Sony's Exit from the PDA Market Hurts PalmSource,” June 2004.
[10] W. Emmerich, Engineering Distributed Objects. John Wiley & Sons, Apr. 2000.
[11] Object Management Architecture Guide, R.M. Soley, ed. Wiley, 1992.
[12] R. Grimes, DCOM Programming. Wrox, 1997.
[13] R. Monson-Haefel, Enterprise Javabeans. 1999.
[14] C. Mascolo, L. Capra, and W. Emmerich, “Principles of Mobile Computing Middleware,” Middleware for Comm., Q.Mahmoud, ed., pp. 261-280, John Wiley, 2004.
[15] B.C. Smith, “Reflection and Semantics in a Procedural Programming Language,” PhD thesis, Massachusetts Inst. of Tech nology, Jan. 1982.
[16] “Meta Object Facility (MOF) Specification,” technical report, Object Management Group, Mar. 2000.
[17] “Unified Modeling Language,” version 1.5, Object Management Group,, Mar. 2003.
[18] S. Zachariadis, “Adapting Mobile Systems Using Logical Mobility Primitives,” PhD thesis, Univ. of London, 2005.
[19] “CORBA Component Model,” Object Management Group, , 1997.
[20] I. Murdock, “Overview of the Debian GNU/Linux System,” LinuxJ., vol. 6, Oct. 1994.
[21] G.P. Picco, “$\mu$ Code: A Lightweight and Flexible Mobile Code Toolkit,” Proc. Second Int'l Workshop Mobile Agents, K. Rothermel and F. Hohl, eds., 1998.
[22] J. Waldo, “The Jini Architecture for Network-Centric Computing,” Comm. ACM, vol. 42, no. 7, pp. 76-82, July 1999.
[23] M.V. Zelkowitz and D. Walace, “Experimental Validation in Software Engineering,” Proc. Conf. Empirical Assessment and Evaluation in Software Eng., Mar. 1997.
[24] M. Ijaha, “Mitoolkit,” MS thesis, Univ. College London, U.K., 2004.
[25] D.A. Wheeler, “SLOCCount,” 2004.
[26] M. Clarke, G.S. Blair, G. Coulson, and N. Parlavantzas, “An Efficient Component Model for the Construction of Adaptive Middleware,” Proc. IFIP/ACM Int'l Conf. Distributed Systems Platforms, pp. 160-178, 2001.
[27] A.L. Murphy, G.P. Picco, and G.-C. Roman, “Lime: A Middleware for Physical and Logical Mobility,” Proc. 21st Int'l Conf. Distributed Computing Systems (ICDCS 21), pp. 368-377, May 2001.
[28] The SATIN Open Source Project, “The SATIN Component Model,” http:/, 2005.
[29] The OGG Vorbis Project, Foundation,, 1998.
[30] The European Space Agency, “Programmable Active Networks for Next Generation Multimedia Services (PANAMAS),” 2005.
[31] D.L. Tennenhouse, J.M. Smith, W.D. Sincoskie, D.J. Wetherall, and G.J. Minden, “A Survey of Active Network Research,” IEEE Comm. Magazine, vol. 35, no. 1, pp. 80-86, 1997.
[32] “Universal Plug and Play,” UPnP Forum, http:/www.upnp. org/, 1998.
[33] R. Chinnici, M. Gudgin, J.-J. Moreau, and W. Weerawarana, Web Services Description Language (WSDL) 1.2. World Wide Web Consortium, Mar. 2003.
[34] G. Pardo-Castellote, “OMG Data-Distribution Service: Architectural Overview,” Proc. 23rd Int'l Conf. Distributed Computing Systems (ICDCSW '03), p. 200, 2003.
[35] “The CORBA Component Model Deployment & Configuration Specification,” Object Management Group, http://www.omg. org/cgi-bin/doc?ptc2005-01-07 , 2004.
[36] D.C. Schmidt, “Component-Integrated Ace ORB,” http://www. , 2006.
[37] H. Cervantes and R. Hall, “BEANOME: A Component Model for the OSGi Framework,” Software Infrastructures for Component-Based Applications on Consumer Devices, Sept. 2002.
[38] H. Cervantes and R. Hall, “Autonomous Adaptation to Dynamic Availability Using a Service-Oriented Component Model,” Proc. 26th Int'l Conf. Software Eng. (ICSE '04), pp. 614-623, May 2004.
[39] The OSGi Framework, OSGi Alliance, http:/, 1999.
[40] M. Roman and N. Islam, “Dynamically Programmable and Reconfigurable Middleware Services,” Proc. Middleware Conf., pp. 372-396, Oct. 2004.
[41] R. Litiu and A. Parakash, “Developing Adaptive Groupware Applications Using a Mobile Component Framework,” Proc. 2000 ACM Conf. Computer Supported Cooperative Work (CSCW '00), pp.107-116, 2000.
[42] C. Becker, M. Handte, G. Schiele, and K. Rothermel, “PCOM— AComponent System for Pervasive Computing,” Proc. Second Int'l Conf. Pervasive Computing and Comm., pp. 67-76, Mar. 2004.
[43] Y. Weinsberg and I. Ben-Shaul, “A Programming Model and System Support for Disconnected-Aware Applications on Resource-Constrained Devices,” Proc. 24th Int'l Conf. Software Eng., pp. 374-384, May 2002.
[44] M. Mikic-Rakic and N. Medvidovic, “Architecture-Level Support for Software Component Deployment in Resource Constrained Environments,” Proc. IFIP/ACM Working Conf. Component Deployment (CD '02), pp. 31-50, 2002.
[45] G. Cugola and G. Picco, “Peer-to-Peer for Collaborative Applications,” Proc. IEEE Int'l Workshop Mobile Teamwork Support/Int'l Conf. Distributed Computing Systems (ICDCS '02), pp. 359-364, July 2002.
[46] K. Arnold, B. O'Sullivan, R.W. Scheifler, J. Waldo, and A. Wollrath, The Jini(TM) Specification. Addison-Wesley, 1999.
[47] R.S. Hall, D. Heimbigner, and A.L. Wolf, “A Cooperative Approach to Support Software Deployment Using the Software Dock,” Proc. 1999 Int'l Conf. Software Eng., pp. 174-183, 1999.
[48] R. Grimm, T. Anderson, B. Bershad, and D. Wetherall, “A System Architecture for Pervasive Computing,” Proc. Ninth ACM SIGOPS European Workshop, pp. 177-182, 2000.
[49] P. Grace, G.S. Blair, and S. Samue, “Middleware Awareness in Mobile Computing,” Proc. First IEEE Int'l Workshop Mobile Computing Middleware (MCM '03)/Int'l Conf. Distributed Computing Systems (ICDCS '03), pp. 382-387, May 2003.
[50] M. Roman, F. Kon, and R.H. Campbell, “Reflective Middleware: From Your Desk to Your Hand,” IEEE Distributed Systems OnlineJ., special issue on reflective middleware, July 2001.
[51] G.C. Necula, “Proof-Carrying Code,” Proc. 24th ACM SIGPLAN/SIGACT Symp. Principles of Programming Languages, pp. 106-119, Jan. 1997.
[52] L. Capra, “Engineering Human Trust in Mobile System Collaborations,” Proc. SIGSOFT/12th Int'l Symp. Foundations of Software Eng. (FSE-12), pp. 107-116, Nov. 2004.
[53] A. Dunkels, B. Groenvall, and T. Voigt, “Contiki—A Lightweight and Flexible Operating System for Tiny Networked Sensors,” Proc. First IEEE Workshop Embedded Networked Sensors, Nov. 2004.
[54] The SEINIT Project: Security Expert Initiative, http:/www.seinit. org, 2003.
[55] The RUNES Project: Reconfigurable Ubiquitous Network Embedded Systems,” http:/, 2004.

Index Terms:
Distributed objects, components, containers, mobile systems, middleware, pervasive computing, mobile code.
Stefanos Zachariadis, Cecilia Mascolo, Wolfgang Emmerich, "The SATIN Component System-A Metamodel for Engineering Adaptable Mobile Systems," IEEE Transactions on Software Engineering, vol. 32, no. 11, pp. 910-927, Nov. 2006, doi:10.1109/TSE.2006.115
Usage of this product signifies your acceptance of the Terms of Use.