This Article 
 Bibliographic References 
 Add to: 
CARISMA: Context-Aware Reflective mIddleware System for Mobile Applications
October 2003 (vol. 29 no. 10)
pp. 929-945
Wolfgang Emmerich, IEEE Computer Society
Cecilia Mascolo, IEEE Computer Society

Abstract—Mobile devices, such as mobile phones and personal digital assistants, have gained wide-spread popularity. These devices will increasingly be networked, thus enabling the construction of distributed applications that have to adapt to changes in context, such as variations in network bandwidth, battery power, connectivity, reachability of services and hosts, etc. In this paper, we describe CARISMA, a mobile computing middleware which exploits the principle of reflection to enhance the construction of adaptive and context-aware mobile applications. The middleware provides software engineers with primitives to describe how context changes should be handled using policies. These policies may conflict. We classify the different types of conflicts that may arise in mobile computing and argue that conflicts cannot be resolved statically at the time applications are designed, but, rather, need to be resolved at execution time. We demonstrate a method by which policy conflicts can be handled; this method uses a microeconomic approach that relies on a particular type of sealed-bid auction. We describe how this method is implemented in the CARISMA middleware architecture and sketch a distributed context-aware application for mobile devices to illustrate how the method works in practice. We show, by way of a systematic performance evaluation, that conflict resolution does not imply undue overheads, before comparing our research to related work and concluding the paper.

[1] Sun Microsystem, Inc. CLDC and the K Virtual Machine (KVM) http://java. sun. com/productscldc/, 2000.
[2] B.N. Schilit, N. Adams, and R. Want, “Context-Aware Computing Applications,” Proc. IEEE Workshop Mobile Computing Systems and Applications, Dec. 1994.
[3] ISO 10746-1, Open Distributed Processing Reference Model technical report, Int'l Standardization Organization, 1998.
[4] W. Emmerich, Engineering Distributed Objects, John Wiley&Sons, Apr. 2000.
[5] B.C. Smith, Reflection and Semantics in a Procedural Programming Language PhD thesis, MIT, Jan. 1982
[6] L. Capra, W. Emmerich, and C. Mascolo, Reflective Middleware Solutions for Context-Aware Applications Proc. Third Int'l Conf. Metalevel Architectures and Separation of Crosscutting Concerns, pp. 126-133, Sept. 2001.
[7] K. Binmore, Fun and Games: A Text on Game Theory. Lexington: D.C. Heath, 1992.
[8] A. Mas-Colell, M.D. Whinston, and J.R. Green, Microeconomic Theory. Oxford Univ. Press, 1995.
[9] L. Capra, W. Emmerich, and C. Mascolo, A Micro-Economic Approach to Conflict Resolution in Mobile Computing Proc. 10th Int'l Symp. Foundations of Software Eng. (FSE-10), pp. 31-40, Nov. 2002.
[10] W. Vickrey, Counterspeculation, Auctions and Competitive Sealed Tenders J. Finance, vol. 16, no. 1, pp. 8-37, 1961.
[11] P. Milgrom, Auctions and Bidding: A Primer J. Economic Perspectives, vol. 3, no. 3, pp. 3-22, 1989.
[12] C. Mascolo, L. Capra, and W. Emmerich, Middleware for Mobile Computing (A Survey) Networking 2002 Tutorial Papers, 2002.
[13] T.W. Malone, R.E. Fikes, K.R. Grant, and M.T. Howard, Enterprise: A Market-Like Task Scheduler for Distributed Computing Environments The Ecology of Computation, B.A. Huberman, ed., pp. 177-205, 1988.
[14] J. Sairamesh, D. Ferguson, and Y. Yemini, An Approach to Pricing, Optimal Allocation and Quality of Service Provisioning in High-Speed Packet Networks Proc. Conf. Computer Comm., Apr. 1995.
[15] D. Ferguson, C. Nikolaou, and Y. Yemini, An Economy for Managing Replicated Data in Autonomous Decentralised Systems Proc. Int'l Symp. Autonomous and Decentralised Systems, pp. 367-375, 1993.
[16] T. Ledoux, OpenCorba: A Reflective Open Broker Proc. Meta-Level Architectures and Reflection, Second Int'l Conf., 1999.
[17] G.S. Blair, G. Coulson, P. Robin, and M. Papathomas, An Architecture for Next Generation Middleware Proc. IFIP Int'l Conf. Distributed Systems Platforms and Open Distributed Processing, Sept. 1998.
[18] M. Satyanarayanan, J. Kistler, P. Kumar, M. Okasaki, E. Siegel, and D. Steere, "Coda: A Highly Available File System for a Distributed Workstation Environment," IEEE Trans. Computers, vol. 39, no. 4, Apr. 1990.
[19] D.B. Terry, M.M. Theimer, K. Petersen, A.J. Demers, M.J. Spreitzer, and C.H. Hauser, Managing Update Conflicts in Bayou, a Weakly Connected Replicated Storage System Proc. 15th ACM Symp. Operating Systems Principles (SOSP-15), pp. 172-183, Aug. 1995.
[20] C. Mascolo, L. Capra, S. Zachariadis, and W. Emmerich, XMIDDLE: A Data-Sharing Middleware for Mobile Computing Int'l J. Personal and Wireless Comm., vol. 21, no. 1, pp. 77-103, Apr. 2002.
[21] G. Engels, C. Lewerentz, M. Nagl, W. Schäfer, and A. Schürr, Building Integrated Software Development Environments Part 1: Tool Specification ACM Trans. Software Eng. and Methodology, vol. 1, no. 2, pp. 135-167, 1992.
[22] W. Emmerich, Tool Specification with GTSL Proc. Eighth Int'l Workshop Software Specification and Design, pp. 26-35, 1996.
[23] A. Dardenne, A. van Lamsweerde, and S. Fickas, Goal-Directed Requirements Acquisition Science of Computer Programming, vol. 20, pp. 3-50, 1993.
[24] A. van Lamsweerde, R. Darimont, and E. Letier, "Managing Conflicts in Goal-Driven Requirements Engineering," IEEE Trans. Sofware. Eng., special issue on Inconsistency Management in Software Development, Nov. 1998.
[25] A. Hunter and B. Nuseibeh, Managing Inconsistent Specifications: Reasoning, Analysis, and Action ACM Trans. Software Eng. and Methodology, vol. 7, no. 4, pp. 335-367, Oct. 1998.
[26] S. Fickas and M. Feather, “Requirements Monitoring in Dynamic Environments,” Proc. Int'l Symp. Requirements Eng. (RE'95), pp. 140–147, Mar. 1995.
[27] W. Robinson and S. Pawlowski, Managing Requirements Inconsistency with Development Goal Monitors IEEE Trans. Software Eng., vol. 25, no. 6, pp. 816-835, June 1999.
[28] G. Zlotkin and J.S. Rosenschein, Mechanisms for Automated Negotiation in State Oriented Domains J. Artificial Intelligence Research, vol. 5, pp. 163-238, Oct. 1996.
[29] G. Zlotkin and J.S. Rosenschein, A Domain Theory for Task Oriented negotiation Proc. 13th Int'l Joint Conf. Artificial Intelligence, pp. 416-422, Aug. 1993.
[30] D. Chalmers and M. Sloman, A Survey of Quality of Service in Mobile Computing Environments IEEE Comm. Surveys, vol. 2, no. 2, 1999.
[31] A. Campbell, Mobiware: Qos-Aware Middleware for Mobile Multimedia Communications Proc. Seventh IFIP Int'l Conf. High Performance Networking, Apr. 1997.
[32] S. Zachariadis, C. Mascolo, and W. Emmerich, Exploiting Logical Mobility in Mobile Computing Middleware Proc. IEEE Workshop Mobile Team Work, July 2002.
[33] N. Venkatasubramanian and C. Talcott, Meta-Architectures for Resource Management in Open Distributed Systems Proc. ACM Symp. Principles of Distributed Computing, pp. 144-153, Aug. 1995.
[34] N. Venkatasubramanian, M. Deshpande, S. Mahopatra, S. Gutierrez-Nolasco, and J. Wickramasuriya, Design and Implementation of a Composable Reflective Middleware Framework Proc. IEEE Int'l Conf. Distributed Computer Systems, pp. 644-653, Apr. 2001.
[35] K. Arnold, B. O'Sullivan, R.W. Scheifler, J. Waldo, and A. Wollrath, The Jini[tm] Specification. Addison-Wesley, 1999.
[36] R. Handorean and G.-C. Roman, Service Provision in Ad Hoc Networks Proc. Fifth Int'l Conf. Coordination Models and Languages, Apr. 2002.

Index Terms:
Middleware, mobile computing, reflection, context-awareness, conflict resolution, game theory, quality of service.
Licia Capra, Wolfgang Emmerich, Cecilia Mascolo, "CARISMA: Context-Aware Reflective mIddleware System for Mobile Applications," IEEE Transactions on Software Engineering, vol. 29, no. 10, pp. 929-945, Oct. 2003, doi:10.1109/TSE.2003.1237173
Usage of this product signifies your acceptance of the Terms of Use.