Ambient Intelligence WS 10/11 V5: Middleware – Teil I Dr.-Ing. Reiner Wichert Fraunhofer-Institut für Graphische Datenverarbeitung IGD Holger Graf Mohammad-Reza (Saied) Tazari
Gliederung Problemstellung Definition Middleware Middleware-Kategorien „Remote Procedure Call“ als einfache Middleware Beispiel: PERSONA Middleware Abstract Physical Architecture The conceptual design of the PERSONA middleware The implementation architecture of the middleware Datenrepräsentation Exkurs: Semantic Web
Ambient Intelligence Adaptive UI in AmI
Smart Environments as Open Distributed Systems Adaptive UI in AmI
Herausforderung: Interoperabilität Unabhängige Entwicklung / Produktion Fähigkeit, dennoch Funktionen & Daten auszutauschen [Netzwerkprotokoll] Zugriffsprotokoll Datenrepräsentation mehrere Anwendungsdomänen z.B. Home Automation, Energiemanagement, Medizin jede Anwendungsdomäne mehrere Standards z.B. in HA: KNX, ZigBee jeder Standard mehrere Anwendungsprofile Was tun wenn alles relevant (wie in AmI)?
Mögliche Antwort auf Interoperabilitätsherausforderung Ein Hauptprotokoll für Kommunikation unter Benutzung einer Hauptlösung für Datenrepräsentation “AmI”-Komponenten versus “herkömmliche” Komponenten Einbindung herkömmlicher Komponenten durch Adapter Netzwerkebene: protokoll-spezifische Gateways Zugriffsmethoden & Datenrepräsentation: komponentspezifisches Wrapping Die Lösungen diesbezüglich in AmI nennt man Middleware-Lösungen Eine gute Referenz: http://sardes.inrialpes.fr/~krakowia/MW-Book/
Gliederung Problemstellung Definition Middleware Middleware-Kategorien „Remote Procedure Call“ als einfache Middleware Beispiel: PERSONA Middleware Abstract Physical Architecture The conceptual design of the PERSONA middleware The implementation architecture of the middleware Datenrepräsentation Exkurs: Semantic Web
Wiederverwendung existierender Software (legacy software)
Vermittelnde (Mediation) Systeme
Komponentenbasierte Architekturen
Adaption durch Proxies
Middleware allgemein
Middleware Definition
Gliederung Problemstellung Definition Middleware Middleware-Kategorien „Remote Procedure Call“ als einfache Middleware Beispiel: PERSONA Middleware Abstract Physical Architecture The conceptual design of the PERSONA middleware The implementation architecture of the middleware Datenrepräsentation Exkurs: Semantic Web
Middlware-Kategorien Kommunikation Fixe versus variable Topologien Vorhersehbarkeit, insb. bezüglich benötigte Zeit für Nachrichtentransfer open distributed systems: unvorhersehbar mit variablen Topologien Architektur und Schnittstellen Managed entities (z.B. Agenten, Service-Komponenten) Service provision structure (requester/responder, publisher/subscriber) Service provision interfaces (synchron / asynchron)
Gliederung Problemstellung Definition Middleware Middleware-Kategorien „Remote Procedure Call“ als einfache Middleware Beispiel: PERSONA Middleware Abstract Physical Architecture The conceptual design of the PERSONA middleware The implementation architecture of the middleware Datenrepräsentation Exkurs: Semantic Web
Remote procedure call: overview
Remote procedure call: main components
Remote procedure call: thread management on the server side (I)
Remote procedure call: thread management on the server side (II)
Remote procedure call: specific aspects Stub generation Parameter marshalling and unmarshalling Serialisierung De-serialisierung Reaktion auf Fehler formulating failure hypotheses (e.g., fail-stop for nodes & message loss for communication) detecting failures (e.g., timeout) reacting to failure detection (e.g., repeat)
Remote procedure call: overall flow of control
Remote procedure call: locating the server
Gliederung Problemstellung Definition Middleware Middleware-Kategorien „Remote Procedure Call“ als einfache Middleware Beispiel: PERSONA Middleware Abstract Physical Architecture The conceptual design of the PERSONA middleware The implementation architecture of the middleware Datenrepräsentation Exkurs: Semantic Web
PERSONA PHYSICAL ARCHITECTURE WHY OPEN & DISTRIBUTED? The situation in smart environments: Several sensors, actuators, & appliances Several displays, microphones, loudspeakers, & cameras Several software components and computing devices hosting them We cannot assume a static configuration
PERSONA PHYSICAL ARCHITECTURE HOW OPEN & DISTRIBUTED? A dynamic ensemble of networked nodes
PERSONA PHYSICAL ARCHITECTURE DEFINITION MIDDLEWARE The “middleware” is the intermediate piece of software allowing the ensemble to take form by defining high-level protocols and providing uniform interfaces for integrating components into the system enabling the communication between them It hides distribution of components heterogeneity of the various hardware components and their operating systems and networking protocols
PERSONA PHYSICAL ARCHITECTURE NODE vs. MIDDLEWARE INSTANCE
Gliederung Problemstellung Definition Middleware Middleware-Kategorien „Remote Procedure Call“ als einfache Middleware Beispiel: PERSONA Middleware Abstract Physical Architecture The conceptual design of the PERSONA middleware The implementation architecture of the middleware Datenrepräsentation Exkurs: Semantic Web
PERSONA MIDDLEWARE DESIGN REQUIREMENTS Integration Node: Seamless connectivity between middleware instances Component: simple API of the shared local middleware instance Communication Semantic interoperability Service orientation Eventing Hiding distribution & heterogeniety Distribution: hidden cooperation between middleware instances Heterogeniety: text-based messaging of middleware instances
PERSONA MIDDLEWARE DESIGN THE CHOSEN MODEL Derived from Sodapop (Self-Organizing Data-flow Architectures suPporting Onotology-based problem decomPosition ) used in the projects EMBASSI & DynAMITE Original spec: http://www.igd.fhg.de/igd-a1/projects/sodapop/sodapop.zip Borrowed concepts Virtual buses & components that connect to them A system is mostly defined by determining its set of buses and specifying their protocols and strategies Brokering messages instead of objects Event-based buses (publish/subscribe) vs. call-based buses (request/response)
PERSONA MIDDLEWARE DESIGN PERSONA-SPECIFIC DECISIONS
PERSONA MIDDLEWARE DESIGN CONCLUSION
Gliederung Teil 2 nächste Woche Problemstellung Definition Middleware Middleware-Kategorien „Remote Procedure Call“ als einfache Middleware Beispiel: PERSONA Middleware Abstract Physical Architecture The conceptual design of the PERSONA middleware The implementation architecture of the middleware Datenrepräsentation Exkurs: Semantic Web
Danke für die Aufmerksamkeit & bis zur nächsten Vorlesung