Abstract
Ubiquitous computing is a challenge for the design of middleware. The reasons are resource constraints, mobility, heterogeneity, etc., just to name a few. We argue that such middleware has to be tailored to the application scenario as well as to the target platform. Such tailor-made middleware has to be be built from minimal fine-grained components, and the system structure must be highly configurable, as we will explain. We propose to use the well-known mixin layer approach to build the flexible lightweight middleware envisioned. We show that the thoughtful use of mixin layers is promising in this specific domain and allows to deal with issues such as device heterogeneity and resource constraints. To do so, we present the design and implementation of a middleware and three configurations derived from it. Our evaluation criteria are the number of supported features and the memory footprint. The middleware configurations derived perform well in these respects.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Batory, D., O’Malley, S.: The Design and Implementation of Hierarchical Software Systems with Reusable Components. ACM Transactions on Software Engineering and Methodology 1(4) (1992)
Batory, D., Sarvela, J.N., Rauschmayer, A.: Scaling Step-Wise Refinement. In: Proc. of the 25th Int. Conference on Software Engineering (2003)
Blair, G.S., et al.: Reflection, Self-awareness and Self-healing in OpenORB. In: Proc. of the 1st Workshop on Self-healing Systems (2002)
B. Box et al.: Simple Object Access Protocol 1.1. Technical report, W 3 C (2000), http://www.w3c.org/TR/SOAP
Bracha, G., Cook, W.: Mixin-Based Inheritance. In: Proc. of ECOOP / OOPSLA (1990)
Capra, L., Emmerich, W., Mascolo, C.: CARISMA: Context-Aware Reflective Middleware System for Mobile Applications. IEEE Transactions on Software Engineering 29(10) (2003)
Cardone, R., Batory, D., Lin, C.: Java Layers: Extending Java to Support Component-Based Programming. Technical Report CS-TR-00-11, Computer Sciences Department, University of Texas (2000)
Colyer, A., Clement, A.: Large-scale AOSD for middleware. In: Proc. of the 3rd Int. Conference on Aspect-Oriented Software Development (2004)
Eide., E., et al.: Dynamic CPU Management for Real-Time, Middleware-Based Systems. In: 10th IEEE Real-Time and Embedded Technology and Applications Symposium (RTAS 2004), Toronto, Canada (2004)
Engelen, R.A., Gallivan, K.A.: The gSOAP Toolkit for Web Services and Peer-To-Peer Computing Networks. In: Proc. of IEEE CCGrid Conference (2002), http://www.cs.fsu.edu/~engelen/soap.html.
Gill, C., et al.: ORB Middleware Evolution for Networked Embedded Systems. In: Proc. of the 8th Int. Workshop on Object Oriented Real-time Dependable Systems (WORDS 2003), Guadalajara, Mexico (2003)
Grace, P., Blair, G.S., Samuel, S.: ReMMoC: A Reflective Middleware to Support Mobile Client Interoperability. In: Meersman, R., Tari, Z., Schmidt, D.C. (eds.) CoopIS 2003, DOA 2003, and ODBASE 2003. LNCS, vol. 2888, pp. 1170–1187. Springer, Heidelberg (2003)
Kiczales., G., et al.: Aspect-Oriented Programming. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220–242. Springer, Heidelberg (1997)
Kon, F., et al.: Monitoring, Security, and Dynamic Configuration with the dynamicTAO Reflective ORB. In: Coulson, G., Sventek, J. (eds.) Middleware 2000. LNCS, vol. 1795, p. 121. Springer, Heidelberg (2000)
Ledoux, T.: OpenCorba: A Reflective Open Broker. In: Cointe, P. (ed.) Reflection 1999. LNCS, vol. 1616, p. 197. Springer, Heidelberg (1999)
McKinnon., A.D., et al.: A Configurable Middleware Framework with Multiple Quality of Service Properties for Small Embedded Systems. In: Proc. of 2nd IEEE Int. Symposium on Network Computing and Applications, Cambridge, MA (2003)
Omohundro, S.M.: The Sather Programming Language. Dr. Dobb’s Journal 18(11) (1993)
Ossher, H., Tarr, P.: Multi-Dimensional Separation of Concerns and The Hyperspace Approach. In: Proc. of the Symposium on Software Architectures and Component Technology: The State of the Art in Software Development (2000)
Parnas, D.L.: Designing Software for Ease of Extension and Contraction. IEEE Transaction on Software Engineering SE-5(2) (1979)
Román, M., Kon, F., Campbell, R.: Reflective Middleware: From Your Desk to Your Hand. IEEE Distributed Systems Online (Special Issue on Reflective Middleware) 2(5) (2001)
Schmidt., D.C., et al.: TAO: A Pattern-Oriented Object Request Broker for Distributed Real-time and Embedded Systems. IEEE Distributed Systems Online 3(2) (2002)
Smaragdakis, Y., Batory, D.: Mixin Layers: An Object-Oriented Implementation Technique for Refinements and Collabroation-Based Designs. ACM Transactions on Software Engineering and Methodology 11(2) (2002)
Stroustrup, B.: The C++ Programming Language. Addison-Wesley, Reading (1997)
Subramonian., V., et al.: Middleware Specialization for Memory-Constrained Networked Embedded Systems. In: 10th IEEE Real-Time and Embedded Technology and Applications Symposium (RTAS 2004), Toronto, Canada (2004)
Weiser, M.: The Computer for the 21st Century, Sepetember 1991. Scientific American (1991)
Weiser, M.: Hot Topics: Ubiquitous Computing. IEEE Computer 26(10) (1993)
Zhang, C., Jacobsen, H.-A.: Refactoring Middleware with Aspects. IEEE Transations on Parallel and Distributed Systems 14(11) (2003)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2005 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Apel, S., Böhm, K. (2005). Towards the Development of Ubiquitous Middleware Product Lines. In: Gschwind, T., Mascolo, C. (eds) Software Engineering and Middleware. SEM 2004. Lecture Notes in Computer Science, vol 3437. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11407386_11
Download citation
DOI: https://doi.org/10.1007/11407386_11
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-25328-0
Online ISBN: 978-3-540-31975-7
eBook Packages: Computer ScienceComputer Science (R0)