Zusammenfassung
Der Trend zum ,,Mobile“ und ,,Pervasive Computing“ führt zu einem wachsenden Bedarf an Softwaresystemen, die in der Lage sind, sich selbst an ihre sich dynamisch verändernde Ablaufumgebung anzupassen. Dynamische Adaption findet zur Laufzeit der Anwendung aufgrund von Änderungen des Kontexts oder Ressourcenzustands statt. Zum Beispiel könnte eine Anwendung sich an niedrigere Übertragungsbandbreite, verminderte Batteriekapazität, neu hinzugekommene Geräte und Dienste oder veränderte Benutzerpräferenzen anpassen. In diesem Beitrag geben wir einen Überblick über die Technik selbst-adaptiver Softwaresysteme. Wir diskutieren zunächst die verschiedenartigen Anforderungen an adaptive Software und stellen dann entsprechende Infrastrukturkonzepte vor, die für die Entwicklung adaptiver Systeme erforderlich sind. Auch Anforderungen an eine Entwicklungsmethodik für adaptive Anwendungen werden erläutert. Als Beispiel für eine umfassende und allgemeingültige Lösung präsentieren wir die wichtigsten Ergebnisse des europäischen Forschungsprojektes MADAM (Mobility and ADaptation enAbling Middleware) und vergleichen diese mit verwandten Arbeiten.
References
Bridges P, Chen W-K, Hiltunen MA, Schlichting RD (2001) Supporting coordinated adaptation in networked systems. Proceedings of the 8th Workshop on Hot Topics in Operating Systems (HotOS VIII), Elmau/Oberbayern, Germany, May 20–23, 2001, IEEE Computer Society
Becker C, Dürr F, Knoll M, Nicklas D, Weis T (2006) Entwicklung ortsbezogener Anwendungen. PIK – Praxis der Informationsverarbeitung und Kommunikation. Bd. 29, Nr. 1. K.G. Saur, München, S 30–36
Becker C, Geihs K (2006) Generic QoS Support for CORBA. In: 5th IEEE Symposium on Computers and Communications (ISCC 2000). Antibes, France, IEEE Press, pp 60–65
Bishop J, Horspool N (2006) Cross-Platform Development: Software that Lasts. IEEE Computer 39:26–35
Blair GS, Coulson G, Blair L, Duran-Limon H, Grace P, Moreira R, Parlavantzas N (2002) Reflection, self-awareness and self-healing in OpenORB. Proceedings of the first workshop on Self-healing systems, Charleston, South Carolina. ACM Press, pp 9–14
Katz RH, Brewer EA, et al. (1996) The Bay Area Research Wireless Access Network (BARWAN). Proceedings of 41st IEEE Computer Conference (COMPCON). ACM, New York, pp 15–20
Coutaz J, Crowley J, Dobson S, Garlan D (2005) Context is Key. In: Communications of the ACM. Bd. 48, Nr. 3. ACM, New York, pp 49–53
Castaldi M, Carzaniga A, Inverardi P, Wolf A (2003) A lightweight infrastructure for reconfiguring applications. In: Proceedings of the 11th International Workshop on Software Configuration Management (Lecture Notes in Computer Science 2049). Springer, Berlin, pp 231–244
Engler DR, Kaashoek MF, O’Toole J Jr (1995) Exokernel: an operating system architecture for application-level resource management. In: Proceedings of the 15th ACM Symposium on Operating Systems Principles (SOSP ’95). Copper Mountain Resort, Colorado, pp 251–266
Eisenbach S, Sadler C, Wong D (2007) Component Adaptation in Contemporary Execution Environments. 7th IFIP International Conference on Distributed Applications and Interoperable Systems (DAIS2007), Paphos, Cyprus, pp 90–103
Garlan D, et al. (2004) Rainbow: Architecture-based self-adaptation with reusable infrastructure. IEEE Computer 37:46–54
Geihs K, Ullah Khan M, Reichle R, Solberg A (2006) Modeling of Component-Based Self-Adapting Context-Aware Applications for Mobile Devices. IFIP Working Conference on Software Engineering Techniques, Warschau, pp 718–722
Gamma E, Helm R, Johnson R, Vlissides J (1997) Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading, MA
Henricksen K, Indulska J (2006) Developing context-aware pervasive computing applications: Models and approach. Pervasive and Mobile Computing 2:37–64
Henricksen K, Indulska J, Rakotonirainy A (2006) Using context and preferences to implement self-adapting pervasive computing applications. Software Pract Exper 36:1307–1330
Heineman GT, Loyall JP, et al. (2004) Component Technology and QoS Management. International Symposium on Component-based Software Engineering (CBSE7), Edinburgh, Scotland
Hofmeister CR (1993) Dynamic Reconfiguration of Distributed Applications. PhD Thesis, Computer Science Department, University of Maryland
Kephart JO, Chess DM (2003) The vision of autonomic computing. IEEE Computer 36:41–52
Kapitza R, Hauck FJ, Reiser H (2004) Decentralized, Adaptive Services: The AspectIX Approach for a Flexible and Secure Grid Environment. Proc. of the GSEM 2004 Conferences (GSEM, Erfurt, Germany). Springer, Heidelberg
Kiczales G, et al. (2001) An overview of AspectJ. In: Proceedings ECOOP. Springer, Heidelberg
Kon F, Román M, Liu P, Mao J, Yamane T, Magalhaes LC, Campbell RH (2000) Monitoring, security, and dynamic configuration with the dynamicTAO reflective ORB. In: Proceedings of the IFIP/ACM International Conference on Distributed Systems Platforms. Springer, New York, pp 121–143
Kramer J, Magee J (1985) Dynamic Configuration for Distributed Systems. IEEE T Software Eng 11:424–436
Li B, Jeon W, Kalter W, Nahrstedt K, Seo J (2000) Adaptive middleware architecture for a distributed omnidirectional visual tracking system. In: Proceedings of SPIE Multimedia Computing and Networking (MMCN’00), Bellingham, USA, pp 101–112
Li B, Nahrstedt K (1999) A control-based middleware framework for quality of service adaptations. IEEE Journal of Selected Areas in Communications 17:1632–1650
MADAM (20. August 2007) Project Homepage, http://www.intermedia.uio.no/confluence/display/madam/Home
Maes P (1987) Concepts and experiments in computational reflection. In: Proc. of the ACM Conference on Object-Oriented Languages (OOPSLA). ACM Press, New York, pp 147–155
Model Driven Architecture (MDA) (20. August 2007) www.omg.org/mda
Mügge H, Rho T, Cremers AB (2007) Integrating Aspect-Orientation and Structural Annotations to Support Adaptive Middleware. EuroSys Workshop on Middleware-Application Interaction, Lisabon
McKinley PK, Sadjadi SM, Kasten EP, Cheng BHC (2004) Composing Adaptive Software. IEEE Computer 37:56–64
Mügge H, Rho T, Speicher D, Bihler P, Cremers AB (2007) Programming for Context-based Adaptability – Lessons learned about OOP, SOA, and AOP. GI-Workshop SAKS 2007, Bern, Schweiz
Noble BD, Satyanarayanan M (1999) Experience with adaptive mobile applications in Odyssey. Mobile Netw Appl 4:245–254
Poladian V, Sousa JP, Garlan D, Shaw M (2004) Dynamic configuration of resource-aware services. In: Proceedings of the 26th Internat. Conference on Software Engineering. Edinburgh, Scotland, Los Alamitos, CA
Rasche A, Polze A (2003) Configuration and dynamic reconfiguration of component-based applications with Microsoft .NET. 6th IEEE International Symposium on Object-Oriented Real-Time Distributed Computing. pp 164–171
Rasche A, Schult W (2007) Dynamic Updates of Graphical Components in the .NET Framework. GI-Workshop SAKS 2007, Bern, Schweiz
Ren Y(J), Bakken DE, Courtney T, Cukier M, Karr DA, Rubel P, Sabnis C, Sanders WH, Schantz RE, Seri M (2003) AQuA: An Adaptive Architecture that Provides Dependable Distributed Objects. IEEE T Comput 52(1):31–50
Schilit B, Adams N, Want R (1994) Context-Aware Computing Applications. Proceedings of IEEE Workshop on Mobile Computing Systems and Applications. Santa Cruz, CA, pp 85–90
Senart A, Charra O, Stefani JB (2002) Developing dynamically reconfigurable operating system kernels with the THINK component architecture. In: Proceedings of the Workshop on Engineering Context-aware Object-Oriented Systems and Environments, in association with OOPSLA 2002. Seattle, Washington
Seltzer M, Small C (1997) Self-monitoring and Self-adapting Operating Systems. Proceedings of the Sixth Workshop on Hot Topics in Operating Systems (HotOS VI). May 5–6, Cape Cod, Massachusetts, USA, IEEE Computer Society Press, pp 124–129
Strang T, Linnhoff-Popien L, Frank K (2003) CoOL: A Context Ontology Language to enable Contextual Interoperability. In LNCS 2893. Proc. of 4th IFIP WG 6.1 International Conference on Distributed Applications and Interoperable Systems (DAIS). Paris, Frankreich, pp 236–247
RFC 793 (1981) Transmission control protocol
Walsh W, Tesauro G, Kephart J, Das R (2004) Utility Functions in Autonomic Systems. International Conference on Autonomic Computing (ICAC-04), New York
XML Metadata Interchange (20. August 2007) http://www.omg.org/technology/documents/formal/xmi.htm
Yarvis M, Reiher P et al. (1999) Conductor: A framework for distributed adaptation. In: Proceedings of the 7th Workshop on Hot Topics in Operating Systems (HotOS VII), March 28–30, 1999, Rio Rico, Arizona, USA, IEEE Computer Society Press, pp 44–49
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Geihs, K. Selbst-adaptive Software. Informatik Spektrum 31, 133–145 (2008). https://doi.org/10.1007/s00287-007-0198-9
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00287-007-0198-9