Monitoring von Geräten und Diensten Projektgruppe Location-based Services for Wireless Devices WS 2004/05 Tobias Beisel AG Kao Betriebssysteme und Verteilte Systeme Institut für Informatik Universität Paderborn Motivation • Aktienhandel an verschiedenen Börsenplätzen gehandelt Entkoppelte Szenarien: Notationen sind unabhängig von individuellen Handelsentscheidungen Notationen werden an alle registrierten Käufer übermittelt • Anmelden bei verschiedenen Aktien Festlegung von Häufigkeit der Benachrichtigung Datenfilterung (z.B. zeitlich) … • Beobachtung der Veränderungen 28.10.2003 PG LBS: Monitoring von Geräten und Diensten 2 Agenda • Grundlagen Monitoring Event Notification Event Channel Push-/ Pull-Technologie • Eventing Middleware DCOM / .NET Remoting CORBA JINI • Projektbezogene Auswertung Vor-/Nachteile der Optionen Empfehlung 28.10.2003 PG LBS: Monitoring von Geräten und Diensten 3 Client-Server Kommunikation • Verschiedene Hardware/Software, Programmiersprachen, Betriebssysteme erfordert Middleware • Synchrone/ Asynchrone Kommunikation Synchron: Chat, Videokonferenz, Whiteboards direkt Asynchron: E-Mail, Foren permanent, zeitunabhängig • Monitoring Beobachtung, Überwachung, Kontrolle Ermöglicht Reaktion auf Ereignis Feststellung von Veränderungen Fehlervorbeugung bzw. schnelle Behebung 28.10.2003 PG LBS: Monitoring von Geräten und Diensten 4 Event-Notification Event Notification Verbraucher Event Anbieter Event: „etwas passiert“, atomares Ereignis tritt auf, change of state ein Börsenkurs über-/ unterschreitet einen Schwellenwert ein neuer Dienst liegt vor Event Notification: Information über ein Ereignis (Nachricht 1:n) Verbraucher fordert nicht explizit Daten an 28.10.2003 PG LBS: Monitoring von Geräten und Diensten 5 Event-Channel (1) Notification EventChannel Notification Verbraucher Event Anbieter nutze Event- Channel als Mittelsmann typed vs. untyped Event-Channel synchronous vs. unsynchronous Events 28.10.2003 PG LBS: Monitoring von Geräten und Diensten 6 Push-Technologie Verbraucher 1 Anbieter 1 … EventChannel Verbraucher m Anbieter n 28.10.2003 … PG LBS: Monitoring von Geräten und Diensten 8 Push-/ Pull-Technologie Verbraucher 1 Anbieter 1 … Anbieter n 28.10.2003 EventChannel … Verbraucher m Event-Richtung PG LBS: Monitoring von Geräten und Diensten 9 Channel-Interfaces • Proxy Interface Definiert Channel als Verbraucher-Proxy für den Anbieter Definiert Channel als Anbieter-Proxy für den Verbraucher • Register/ Subscribe Interface Dienst-Abonnement Subscriber sendet eine Referenz auf sein eingenes handlerinterface Eintrag in der Subscriber-Liste Callback- Funktion bei Event im Event-Channel 28.10.2003 PG LBS: Monitoring von Geräten und Diensten 10 Eventing – System Clients Client 1 Client 2 Client n BL BL BL PS DB- & NotificationServer PC EC PS EC EC PS PC PC EC (R) DBMS PC PS PS PS NS Notification Server BL - Business Logic PS - Push Supplier PC - Push Consumer EC - Event Channel NS - Notification Server Async Communication Sync Communication Database Access 28.10.2003 PG LBS: Monitoring von Geräten und Diensten 11 Eventing-Middleware • DCOM (Distributed Component Object Model) / .NET Remoting • CORBA (Common Object Request Broker Architecture) • JINI (Java Intelligent Network Infrastructure) 28.10.2003 PG LBS: Monitoring von Geräten und Diensten 12 DCOM • DCOM (distributed component object model) Unterstützung von Remote-Zugriffen auf Objekte über ORPC Unterstützung dynamischer Objektaufrufe Modell der entfernten Objekte • ORPC (Object Remote Procedure Call) - Layer auf DCE‘s (Distributed Computing Environment) RPC aufgesetzt Interagiert mit COM‘s runtime service • Implementierung der Schnittstellen Binäre Interfaces MIDL compiler Generierung von Client-/ Server-stubs 28.10.2003 PG LBS: Monitoring von Geräten und Diensten 13 Eventing in DCOM / .NET Remoting • Anfangs: Synchrone Aufrufe Höchstens-Einmal-Semantik Events durch verbindungsfähige Objekte realisiert Ermöglichte verbinden mehrerer Clients „Rückruf“ Client und Objekt müssen aktiv sein • Jetzt: asynchrone Events durch Methodenaufruf modelliert Event hat Ereignisklasse (Standardimplementierung) Ereignisse werden gespeichert, falls Client inaktiv • DCOM Server Objekt unterstützt mehrere Interfaces Menge von Attributen und Methoden 28.10.2003 PG LBS: Monitoring von Geräten und Diensten 14 DCOM Architektur Client-Maschine Objekt-Server Client-Applikation SCM ProxyMarshaller ClientProxy KlassenObjekt ProxyMarshaller COM Registry Objekt ObjectStub SCM COM Lokales Betriebssystem Lokales Betriebssystem Registry Microsoft-RPC Netzwerk • Monitoring in DCOM Abonnement Zeiger auf ein Objekt-Interface setzen Ereignis entspricht Methode, die auch der Client implementiert Ereignissystem sorgt für Aufruf der Eventmethode auf Clientseite 28.10.2003 PG LBS: Monitoring von Geräten und Diensten 15 CORBA Applikationsobjekte Vertikale Facilities Horizontale Facilities Allgemeine Objektdienste Object Request Broker, GIOP Services • Definition eines verteilten Systems Spezifikation der OMG (www.omg.org) Ziel der besseren Interoperabilität vernetzter Applikationen Framework für verteilte objektorientierte Anwendungen Basiert auf Remote Procedure Calls (RPC) 28.10.2003 PG LBS: Monitoring von Geräten und Diensten 17 Architektur CORBA Interface Repository IDL Compiler Implementation Repository operation(in args) Client Objekt-Server Objekt Ref IDL Stubs result(out args) DSI DII IDL Skeleton Objektadapter ORB GIOP ORB Statischer vs. Dynamischer Aufruf 28.10.2003 PG LBS: Monitoring von Geräten und Diensten 19 Eventing in CORBA • Service anfordern erhalten einer server-object reference Methodenaufrufe an die object-reference • Event-Service Event- orientierte Kommunikation als alternative zur callbasierten Client- Server Architektur Pull/Push – Modell Callback–Modell entkoppelte Kommunikation Verbesserungspotenzial: Skalierbarkeit, Performance, Quality of Service, Flexibilität 28.10.2003 PG LBS: Monitoring von Geräten und Diensten 20 Eventing in CORBA • Verbesserung: CORBA Notification Service Definiert verschiedene Level an „Quality of Service“-Parametern Channel-, Proxy- oder Single-Event Sender wissen welche Event-Typen der Verbraucher erwartet Neue Events können vom Verbraucher erkannt werden bessere Filtermöglichkeiten Filter werden den Proxies zugeordnet Strukturierte Data-Fields Konfiguration der Eigenschaften eines Kanals, Events, Proxy Zuverlässifkeit, Priorität, Verwurfsstrategie Ereignistyp-Repository 28.10.2003 PG LBS: Monitoring von Geräten und Diensten 21 JINI • Java Intelligent Network Infrastructure eine Menge von Java-Klassen und –Programmen Dienstevermittlungssoftware (dienst-orientierte Software) eine robuste, verteilte Systemarchitektur ein dynamischer Verbund von Clients und Dienst-Servern Middleware Framework für verteilte Systeme • Architektur Florians Vortrag 28.10.2003 PG LBS: Monitoring von Geräten und Diensten 22 Eventing in JINI (1) • JavaBeans Empfänger übergibt Listener an den Ereignisgenerator Methodenaufruf auf dem gespeicherten Listener Lieferung des Events • JINI Distributed Events Erweitert JavaBeans Modell Events zwischen JVMs übergeben Listener Registrierung bei Objekt in anderer JVM RMI als Verteilungsmechanismus erweitert java.util.Event Lookup-Service agiert als Vermittler ortet Dienste Lease-Rückgabe durch den Client 28.10.2003 PG LBS: Monitoring von Geräten und Diensten 23 Eventing in JINI (2) • Wie funktioniert das? Das registrierte Objekt des Services wird auf Client kopiert RemoteEvent Oberklasse für Remote-Events in JINI Event-ID, Sequenznummer, Quelle & Handback-Objekt RemoteEventListener Remote-Interface zur Übergabe von Events in VMs Methode notify(RemoteEvent e) Vergleichbar mir ActionListener-Klasse EventRegistration Kapselt Informationen für den Client 28.10.2003 PG LBS: Monitoring von Geräten und Diensten 24 Was brauchen wir? • Middleware als Kommunikationsgrundlage: Push: Neue Dienste publizieren Wissenswertes zu den Diensten bekannt machen Positionsabhängige Benachrichtigung Beispiele: Erinnerung an den Bus Erinnerung und Weg zur Sprechstunde in Raum Fx.xxx Auf neuen Drucker aufmerksam machen … Pull: Anfragen an unsere und andere Dienste Bsp.: Wo ist der nächste Drucker … 28.10.2003 PG LBS: Monitoring von Geräten und Diensten 25 Vor- / Nachteile DCOM • Vorteile Spezifikation auf binärem Level freie Programmiersprachenwahl Plattformunabhängig wenn COM-services unterstützt werden EntireX von Software AG (Unix, Linux und Mainframe Plattformen) Microsoft (Windows und Solaris) Sehr weit verbreitet hat sich bestätigt • Nachteile binäre Abbildung IDL komplizierter als in CORBA Allgemein sehr komplexes, kompliziertes System Gleiche Dinge werden auf verschiedene Weise erledigt Koexistenz verschiedener Lösungen ist teilweise unmöglich 28.10.2003 PG LBS: Monitoring von Geräten und Diensten 26 Vor/ Nachteile CORBA • Vorteile sprachunabhängig für Objektorientierte Sprachen (IDL) Plattformunabhängige Bereitstellung von Standardfunktionen flexibel und erweiterbar sehr verbreitet • Nachteile großer Gestaltungsspielraum benötigt IDL zur Interface Definition Fokus auf verteilte Objekte nicht Dienste vermittelt Methodenaufruf, nur wenn Server erreichbar Übergabe von „remote references“ anstatt komplette Objekte 28.10.2003 PG LBS: Monitoring von Geräten und Diensten 27 Vor- / Nachteile JINI • Vorteile weniger Komplex als Corba und DCOM subscription- und lease-Konzept sehr einfach gehaltene Schnittstellendefinitionen in Java Fokus auf verteilte Dienste nicht auf Objekte Ausweichmöglichkeiten und Information bei Dienstausfall Bildung spontaner Netze • Nachteile 28.10.2003 sehr auf Java spezifiziert Noch nicht sehr verbreitet bei jeder Nutzung muss Dienst-Proxy übertragen werden kein eigenes Sicherheitskonzept PG LBS: Monitoring von Geräten und Diensten 28 Empfehlung • Monitoring und Eventing in allen Systemen ansprechend „+“ JINI: Lease-Konzept, keine eigene Schnittstellensprache „-“ DCOM: Dienste müssen lokal implementiert sein „-“ DCOM: sehr komplex • JINI oder CORBA? Beides wäre gute Wahl „+“ JINI: Fokus auf verteilte Dienste „?“ JINI: Java basiert und einfach zu handhaben „+“ CORBA: sehr verbreitet und flexibel • Empfehlung: CORBA scheint fundamentierter 28.10.2003 PG LBS: Monitoring von Geräten und Diensten 29 Fragen? ? ? ? 28.10.2003 PG LBS: Monitoring von Geräten und Diensten ? 30 Vielen Dank für die Aufmerksamkeit! 28.10.2003 PG LBS: Monitoring von Geräten und Diensten 31