Das Interceptor Muster



Ähnliche Dokumente
Spring Dynamic Modules for OSGi Service Platforms

Spring Dynamic Modules for OSGi Service Platforms

OSGi. The Next Generation Java Service Platform. SOA - The Java Way or My classpath is killing me. Michael Greifeneder

Lokale Installation von DotNetNuke 4 ohne IIS

Eclipse Equinox als Basis für Smart Client Anwendungen. Christian Campo, compeople AG, Java Forum Stuttgart 2007

Virtueller Campus. Virtueller Campus Horw mit interaktiver Steuerung. HowTo: Externe Bibliotheken

Java Entwicklung für Embedded Devices Best & Worst Practices!

Powermanager Server- Client- Installation

SAP NetWeaver Gateway. 2013

Internet Explorer Version 6

Andreas Mösching Senior IT Architekt Hewlett-Packard (Schweiz) GmbH HP Banking Service Center Bern

KURZANLEITUNG CYBERDUCK MIT CLOUD OBJECT STORAGE

OSGi-basierte Webapplikationen Ein Erfahrungsbericht

Hinweise zum Update des KPP Auswahltools (Netzwerkinstallation) auf Version 7.2

Über die Internetseite Hier werden unter Download/aktuelle Versionen die verschiedenen Module als zip-dateien bereitgestellt.

InfoPoint vom 9. November 2011

Anleitung zum Arbeiten mit Microsoft Visual Studio 2008 im Softwarepraktikum ET/IT

Cockpit 3.4 Update Manager

Multimedia im Netz. Wintersemester 2011/12. Übung 10. Betreuer: Verantwortlicher Professor: Sebastian Löhmann. Prof. Dr.

Formular»Fragenkatalog BIM-Server«

Planung für Organisation und Technik

Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge

Macher Solutions Produktinformation SAP Crystal Reports 2011

Änderungsbeschreibung HWS32 SEPA Überweisungen

Installation von NetBeans inkl. Glassfish Anwendungs-Server

Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen

Step by Step Remotedesktopfreigabe unter Windows Server von Christian Bartl

Collax VPN. Howto. Vorraussetzungen Collax Security Gateway Collax Business Server Collax Platform Server inkl. Collax Modul Gatekeeper

Code wiederverwenden: Objektorientierte Programmierung (OOP) sinnvoll nutzen Roland Wagner Automatisierungstreff IT & Automation 2015

Reporting Services und SharePoint 2010 Teil 1

Installation des GeoShop Redirector für Apache (Stand ) ================================================================

Was ist neu in Sage CRM 6.1

Getting Started Guide CRM Online, 2013 & 2015 xrm1 Verpflegungspauschalen

Mit OSGi Webanwendungen entwickeln Was geht, was nicht?

B12-TOUCH VERSION 3.5

Benutzerhandbuch. Leitfaden zur Benutzung der Anwendung für sicheren Dateitransfer.

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008

Installation der SAS Foundation Software auf Windows

Gerd Wütherich Nils Hartmann. OSGi Service Platform by example

Windows Server 2008 (R2): Anwendungsplattform

DynDNS Router Betrieb

Um zu prüfen welche Version auf dem betroffenen Client enthalten ist, gehen Sie bitte wie folgt vor:

FTP-Leitfaden Inhouse. Benutzerleitfaden

Parallels Mac Management 3.5

Gerd Wütherich Martin Lippert. OSGi Service Platform by example

Leitfaden zur Installation von Bitbyters.WinShutdown

Installation OMNIKEY 3121 USB

Webshop Tutorial. E-Commerce ECM ERP SFA EDI. Backup. Integration des Comarch Webshops mit Facebook.

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können.

COSA. Portal Client Installation JAVA J2SE / JRE Version 1.4.2_09, Stand Copyright

HISPRO ein Service-Angebot von HIS

SDD System Design Document

Database Exchange Manager. Infinqa IT Solutions GmbH, Berlin Stralauer Allee Berlin Tel.:+49(0) Fax.:+49(0)

Lösungen zum 2. Komplex

Konfigurationslanleitung für J2EE und Eclipse im KBS-Pool

Lizenzen auschecken. Was ist zu tun?

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele:

MetaQuotes Empfehlungen zum Gebrauch von

Anwenden eines Service Packs auf eine Workstation

SMART Newsletter Education Solutions April 2015

Wie richten Sie Ihr Web Paket bei Netpage24 ein

Die Installation des GeoShop Redirector für IIS (Internet Information Server, Version 4.0, 5.0 und 6.0) umfasst folgende Teilschritte:

Schnittstelle DIGI-Zeiterfassung

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

Leitfaden zur Nutzung von binder CryptShare

Kurzanleitung Installation der Zend Studio Sprachpakete

ANYWHERE Zugriff von externen Arbeitsplätzen

HMS. Statistiken mit SAS ins Internet. HMS Analytical Software GmbH - Johannes Lang

OSGi: Anwendungsszenarien, Auswahlkriterien und Ausblick

Print2CAD 2017, 8th Generation. Netzwerkversionen

Kurzanleitung zur Softwareverteilung von BitDefender Produkten...2

1 Voraussetzungen für Einsatz des FRITZ! LAN Assistenten

Historical Viewer. zu ETC5000 Benutzerhandbuch 312/15

Guide DynDNS und Portforwarding

Wo finde ich die Software? - Jedem ProLiant Server liegt eine Management CD bei. - Über die Internetseite

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Update / Inbetriebnahme domovea Server. Update/Inbetriebnahme domovea Server Technische Änderungen vorbehalten

FTP-Leitfaden RZ. Benutzerleitfaden

Windows Server 2008 für die RADIUS-Authentisierung einrichten

Tutorial Windows XP SP2 verteilen

Anleitung Captain Logfex 2013

Installationsanleitungen

Anwendungshinweis Nr. 12. Wie konfiguriere ich redundante Serververbindungen

Bitte melden Sie sich als Administrator des Betriebssystems oder als Benutzer mit ausreichenden Installationsrechten an Ihrem PC an.

ANT. Kurzvortrag von Manuel Schulze.

Was ist EMF? Wie wird EMF eingesetzt? Was ist ecore? Das Generatormodell Fazit

OBU 2.0. Wer zuerst kommt, fährt am besten. Jetzt kommt die Software-Version. Nutzerflyer_1606_RZ :10 Uhr Seite 1

Upgrade auf die Standalone Editionen von Acronis Backup & Recovery 10. Technische Informationen (White Paper)

Meine Welt auf einen Blick erleben.

Lernprogramm "Veröffentlichen von WMS- Services"

Umstieg auf Microsoft Exchange in der Fakultät 02

Konfiguration von Exchange 2000 zum versenden und empfangen von Mails & Lösung des SEND after POP Problems

Materialupload. Verwalten von Unterrichtsmaterialien. über das STiNE-Webportal. Universität Hamburg Tor zur Welt der Wissenschaft

Transkript:

Das Interceptor Muster Implementierung des Interceptor Musters basierend auf OSGi and Friends Benjamin Friedrich Hochschule für Technik und Wirtschaft des Saarlandes Praktische Informatik - Entwurfsmuster Sommersemester 2009 26.07.09 Entwurfsmuster 1

Interceptor Überblick Das Interceptor Muster Struktur Vor- und Nachteile Render Service Was ist OSGi? Equinox Eclipse als IDE für OSGi Komponenten Bundles Die Manifest Datei Services 26.07.09 Entwurfsmuster 2

Interceptor Überblick Dependency Management Probleme und Workarounds Fazit EOF Quellen 26.07.09 Entwurfsmuster 3

Interceptor - Das Interceptor Muster Architekturmuster Erlaubt es neue Dienste in ein Framework über vordefinierte Schnittstellen zu integrieren Dienste haben Zugriff auf das Framework um das Framework beobachten und sein Verhalten beeinflussen zu können Der Eintritt bestimmter Ereignisse im Framework triggert den automatischen Aufruf dieser Dienste 26.07.09 Entwurfsmuster 4

Interceptor - Das Interceptor Muster Ein Framework integriert seine Interceptoren (Dienste) in einen entsprechenden Dispatcher (Verteiler) Für jede Art von Interceptoren sollte es einen eigenen Dispatcher geben Sobald ein definiertes Ereignis im Framework auftritt, werden die Dispatcher vom Framework benachrichtigt Die Dispatcher rufen daraufhin ihre registrierten Interceptoren auf Interceptoren bekommen die Ereignisse in Form eines Context Objects mitgeteilt 26.07.09 Entwurfsmuster 5

Interceptor - Struktur 26.07.09 Entwurfsmuster 6

Interceptor Vor- und Nachteile Vorteile Erweiterbarkeit und Flexibilität Können ohne Auswirkungen auf den Code integriert werden Unterstützung von Monitoring und Steuerung des Frameworks Wiederverwendbarkeit Nachteile Komplexe Entwurfsaspekte Bösartige oder fehlerhafte Interceptoren 26.07.09 Entwurfsmuster 7

Interceptor Render Service Praktikum org.htw.osgi.interceptor.renderservice Http Service Zeichnet anhand URL Paremeter ein Bild und sendet es an den Client Implementiert das Interceptor Muster Basiert auf OSGi Verwendet Interceptoren zur Durchführung von Render- Aufgaben: org.htw.osgi.interceptor.texter org.htw.osgi.interceptor.bgfiller 26.07.09 Entwurfsmuster 8

Interceptor Was ist OSGI? Open Services Gateway initiative aka Dynamic Module System for Java Spezifikation einer Service Plattform in Java Erlaubt dynamische (De-)Aktivierung, Update und (De-) Installation von Komponenten und Services Benötigte eine spezielle Java Laufzeitumgebung die den OSGi Standard implementiert OSGi Container Bekannte Open Source OSGi Container sind Equinox 26.07.09 Entwurfsmuster 9

Interceptor Was ist OSGI? Spezifiziert von der OSGi Alliance Die OSGi Alliance wurde März 1999 gegründet Ziel ist eine offene Spezifikation für die Auslieferung von verwaltbaren Diensten in ein lokales Netzwerk oder Gerät Mitglieder der OSGi Alliance sind unter anderem 26.07.09 Entwurfsmuster 10

Interceptor Equinox Open Source OSGI Laufzeit Container Referenz Implementierung des Framework Teils der OSGi Service Plattform R4 Wird von Eclipse als Plattform für die Eclipse-Plugins genutzt Wird zwar von Eclipse gleich mitgeliefert, ist aber eigenständig nutzbar Siehe eclipse/plugins: java -jar org.eclipse.osgi_xxx.jar -console 26.07.09 Entwurfsmuster 11

Interceptor Eclipse als IDE für OSGi Komponenten Eignet sich besonders für OSGi Einsteiger Eclipse bietet u.a. folgende Vorzüge Komfortable Konfiguration und Interaktion mit Equinox Editor für Manifest Datei Wizard zum deployen von Bundles Unterstützung im Dependency Management uvm. Trotz allem achtet Eclipse darauf, dass es nicht zu einfach wird... 26.07.09 Entwurfsmuster 12

Interceptor Bundles Einzige Einheit zur Verwendung einer Java basierten Anwendung im OSGi Framework Eclipse Plugins sind im wesentlichen OSGi Bundles mit zusätzl. Eclipse spezifischen Code Zusammengesetzt aus Java Klassen und anderen Resourcen Läuft eigenständig oder in Abhängigkeit zu anderen Bundles Können Java Packages exportieren und somit dessen Klassen öffentlich verfügbar machen Überraschung: Import von Packages aus anderen Bundles 26.07.09 Entwurfsmuster 13

Interceptor Bundles Jedes Bundle benötigt einen BundleActivator Dieser Activator muss einen öffentlichen Standardkonstruktor bereitstellen Beim Start eines Bundles wird die Activator Methode start(bundlecontext context) vom Framework aufgerufen stop(bundlecontext context) entsprechend BundleContext bietet dabei Interaktionsmöglichkeiten mit dem Framework Kommt uns irgendwie bekannt vor, oder? Bei alledem spielt die Datei MANIFEST.MF eine zentrale Rolle 26.07.09 Entwurfsmuster 14

Interceptor Die Manifest Datei Beschreibt das Deployment seines Bundles Gleiches Format wie bei einer normalen JAR Allerdings mit zusätzlichen Headern die der OSGi Container benötigt: ID und Version des Bundles an Import und Export von Java Packages BundleActivator uvm. Eclipse übernimmt bereits viele Einstellungen automatisch und stellt einen komfortablen Manifest- Editor zur Verfügung 26.07.09 Entwurfsmuster 15

Interceptor Services Stellt seine Dienste im ganzen OSGi Container zur Verfügung Werden von Bundles exportiert Kann von anderen Bundles konsumiert werden ohne dass diese etwas über das exportierende Bundle wissen Implementierung bleibt verborgen Wird über beliebiges Interface im OSGi Container als Service registriert Wird von anderen Bundles über sein Interface vom OSGi Container erfragt 26.07.09 Entwurfsmuster 16

Interceptor Dependency Management Per Default sind Klassen von einem Bundle nicht durch andere Bundles zugreifbar Klassen werden von einem Bundle durch das Exportieren von dem jeweiligen package veröffentlicht Durch den Import dieses Packages werden die Klassen im jeweiligen Bundle verfügbar Dies ist auch bei Services relevant, da ja das entsprechende Interface irgendwo herkommen muss... 26.07.09 Entwurfsmuster 17

Interceptor Dependency Management INSTALLED Bundle wurde installiert konnte aber nicht alle Abhänigkeiten auflösen RESOLVED Alle Abhängigkeiten aufgelöst Kann API exportieren Bundle KANN gestartet werden ACTiVE Bundle wurde erfolgreich gestartet und ist aktiv 26.07.09 Entwurfsmuster 18

Interceptor Probleme und Workarounds Verwendung externer Bibliotheken (JAR) Naiver Ansatz Lösung JAR in Build Path legen Lässt sich ohne Problem compilieren Funktioniert aber trotzdem nicht JAR muss lokal im Bundle liegen Relative im Build Path auf die JAR verweisen Weitere Ansätze: Bundle für JARs anlegen Exportieren der Packages von JAR 26.07.09 Entwurfsmuster 19

Interceptor Probleme und Workarounds Zugriff auf Datei Naiver Ansatz Lösung Relativer Zugriff auf gewünschte Ressource Datei wird nicht gefunden Zugriff über den Bundle Classpath URL myurl = this.getclass().getresource("/cfg/file.txt"); 26.07.09 Entwurfsmuster 20

Interceptor Fazit OSGi ermöglicht eine flexible und standardisierte Möglichkeit für modulare Entwicklung Software basierend auf OSGI kann zur Laufzeit gewartet werden Einsatz von OSGi nimmt immer mehr zu Hohe Komplexität des Frameworks Eclipse bietet in Verbindung mit Equinox eine komfortable Enwticklungsumgebung bei der Entwicklung von OSGi Bundles Allerdings ist die Unterstützung durch Eclipse noch nicht ganz ausgereift 26.07.09 Entwurfsmuster 21

Interceptor EOF SVN http://render-service.googlecode.com/svn/trunk/ Alle Source zum herunterladen Hauptdokument (coming soon) Präsentation Java Sourcen Vielen Dank für Ihre Aufmerksamkeit! 26.07.09 Entwurfsmuster 22

Interceptor Quellen OSGi Service Platform Core Specification, OSGi Alliance, Release 4, Version 4.1, April 2007, http://www.osgi.org/specifications/homepage Hello, OSGi, Part 1: Bundles for beginners, JAVAWORLD, März 2008 http://www.javaworld.com/javaworld/jw-03-2008/jw-03-osgi1.html Hello, OSGi, Part 2: Introduction to Spring Dynamic Modules, JAVAWORLD, April 2008 http://www.javaworld.com/javaworld/jw-04-2008/jw-04-osgi2.html Hello, OSGi, Part 3: Take it to the server side, JAVAWORLD, Juni 2008 http://www.javaworld.com/javaworld/jw-06-2008/jw-06-osgi3.html Apache Felix OSGi Tutorial, Apache http://cwiki.apache.org/felix/apache-felix-osgi-tutorial.html 26.07.09 Entwurfsmuster 23

Interceptor Quellen Equinox QuickStart Guide, Eclipse Foundation, http://www.eclipse.org/equinox/documents/quickstart.php OSGi in kleinen Dosen Bundles und Life Cycle, JAXCenter, Februar 2009 http://it-republik.de/jaxenter/artikel/osgi-in-kleinen-dosen-%96-bundles-und-life OSGi Service Tutorial, Knoplerfish http://www.knopflerfish.org/osgi_service_tutorial.html Sun and OSGi: Cooperation through competition, Eric Newcomer's Weblog, Dezember 2008 http://blogs.iona.com/newcomer/archives/000580.html Spring Dynamic Modules Reference Guide, SpringSource, Version 1.2, April 2009 http://static.springsource.org/osgi/docs/1.2.0/reference/pdf/spring-dm-reference 26.07.09 Entwurfsmuster 24