Mit OSGi Webanwendungen entwickeln Was geht, was nicht?



Ähnliche Dokumente
Gerd Wütherich Martin Lippert. Mit OSGi Webanwendungen entwickeln

Spring Dynamic Modules for OSGi Service Platforms

Spring Dynamic Modules for OSGi Service Platforms

OSGi: Anwendungsszenarien, Auswahlkriterien und Ausblick

JSP und Servlet Programmierung

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de

Mobiles SAP für Entscheider. Permanente Verfügbarkeit der aktuellen Unternehmenskennzahlen durch den mobilen Zugriff auf SAP ERP.

EJB Beispiel. JEE Vorlesung 10. Ralf Gitzel

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

Lizenzierung von StarMoney 10 bzw. StarMoney Business 7 durchführen

Reporting Services und SharePoint 2010 Teil 1

Installation von NetBeans inkl. Glassfish Anwendungs-Server

Konfiguration von Igel ThinClients fu r den Zugriff via Netscaler Gateway auf eine Storefront/ XenDesktop 7 Umgebung

Lehrer: Einschreibemethoden

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Anleitung über den Umgang mit Schildern

Übungen zur Softwaretechnik

Fragen und Antworten. Kabel Internet

WEBAPPLIKATIONEN MIT PHP. Wo gibt es Hilfe? Wie fang ich an?

Das Interceptor Muster

StudyDeal Accounts auf

Serienbrieferstellung in Word mit Kunden-Datenimport aus Excel

Frankfurt,

Tag des Datenschutzes

Ihr IT-Administrator oder unser Support wird Ihnen im Zweifelsfall gerne weiterhelfen.

Bkvadmin2000 Peter Kirischitz

Menü auf zwei Module verteilt (Joomla 3.4.0)

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

Installation OMNIKEY 3121 USB

Lokale Installation von DotNetNuke 4 ohne IIS

Projektmanagement in Outlook integriert

Handbuch Amos Ersteller: EWERK MUS GmbH Erstellungsdatum:

B12-TOUCH VERSION 3.5

Was mache ich mit den alten Meilern?

1. Zugriff auf das Lonza Netzwerk von ihrem privaten PC oder von einem Internet Café

Anleitung zum Prüfen von WebDAV

Internet online Update (Mozilla Firefox)

Wärmebildkamera. Arbeitszeit: 15 Minuten

Worum geht es in diesem Projekt?

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

Software Release Notes

Informationen als Leistung

Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers

Intuitive Kassensysteme für Shop und Ticketing. Willkommen bei Ihrem Software-Partner. Schön, dass Sie uns gefunden haben.

Gruppenrichtlinien und Softwareverteilung

Konzentration auf das. Wesentliche.

ID VisitControl. Dokumentation Administration Equitania Software GmbH cmc Gruppe Seite 1

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

Der Weg zur eigenen App

OSGi-basierte Webapplikationen Ein Erfahrungsbericht

Print2CAD 2017, 8th Generation. Netzwerkversionen

Agiles Design. Dr.-Ing. Uwe Doetzkies Gesellschaft für Informatik mail:

Erfolg beginnt im Kopf

Einrichten einer mehrsprachigen Webseite mit Joomla (3.3.6)

OS IDE Webserver Integration des Webservers in die IDE Wireshark Webserver II Dynamisches Webprojekt in Eclipse

Björn Heinemann Leiter Entwicklung Energiewirtschaft

SAP NetWeaver Gateway. 2013

Ein Blick voraus. des Autors von C++: Bjarne Stroustrup Conrad Kobsch

Konfigurationslanleitung für J2EE und Eclipse im KBS-Pool

Internet Explorer Version 6

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

L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016

Die richtigen Partner finden, Ressourcen finden und zusammenführen

Ihr Benutzerhandbuch AVIRA ANTIVIR EXCHANGE

1. Adressen für den Serienversand (Briefe Katalogdruck Werbung/Anfrage ) auswählen. Die Auswahl kann gespeichert werden.

teamsync Kurzanleitung

Formular»Fragenkatalog BIM-Server«

Microsoft SharePoint 2013 Designer

Inhaltsverzeichnis. TeiM. V E E.l E.2 E.3 E.4. Vorwort von Stefan Tilkov Einleitung Zielgruppe Über dieses Buch Konventionen Dank

Netzwerkversion PVG.view

Bürgerhilfe Florstadt

Hilfedatei der Oden$-Börse Stand Juni 2014

Thomas Wagner 2009 (im Rahmen der TA) Installation von MySQL 5.0 und Tomcat 5.5

FIREBIRD BETRIEB DER SAFESCAN TA UND TA+ SOFTWARE AUF MEHR ALS EINEM COMPUTER

Dokumentation. Black- und Whitelists. Absenderadressen auf eine Blacklist oder eine Whitelist setzen. Zugriff per Webbrowser

Terminabgleich mit Mobiltelefonen

4 Ideen zur Verbesserung des -Marketings!

Tipps und Tricks zu Netop Vision und Vision Pro

Schulung Marketing Engine Thema : Einrichtung der App

MOC Entwicklung von ASP.NET MVC 4 Webapplikationen

MdtTax Programm. Programm Dokumentation. Datenbank Schnittstelle. Das Hauptmenü. Die Bedienung des Programms geht über das Hauptmenü.

ecaros2 Installer procar informatik AG 1 Stand: FS 09/2012 Eschenweg Weiterstadt

Dynamische Plug-ins mit Eclipse 3. Martin Lippert Tammo Freese

Daniel Warneke Ein Vortrag im Rahmen des Proseminars Software Pioneers

Informationen zum neuen Studmail häufige Fragen

Produktionsplanung und steuerung (SS 2011)

Hallo! Social Media in der praktischen Anwendung Warum macht man was und vor allem: wie? Osnabrück, den 07. Juli 2014.

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

Einleitung. Funktion. Panzenböck Phillipp. Download Installation. Testen. Konfiguration

Abschluss Version 1.0

Praktikum Datenbanksysteme. Ho Ngoc Duc IFIS - Universität zu Lübeck

Fragebogen: Rätoromanisch

Wir freuen uns, dass Sie mit der VR-NetWorld Software Ihren Zahlungsverkehr zukünftig einfach und sicher elektronisch abwickeln möchten.

AutoCAD Dienstprogramm zur Lizenzübertragung

JSP Grundlagen. JEE Vorlesung Teil 5. Ralf Gitzel

myfactory.businessworld und myfactory.com...2

D a s P r i n z i p V o r s p r u n g. Anleitung. - & SMS-Versand mit SSL (ab CHARLY 8.11 Windows)

Transkript:

Mit OSGi Webanwendungen entwickeln Was geht, was nicht? Peter Roßbach (Systemarchitekt) Gerd Wütherich (Freier Softwarearchitekt) Martin Lippert (akquinet it-agile GmbH) 2009 by P. Roßbach, G. Wütherich, M. Lippert; made available under the EPL v1.0 April 22th, 2009

Überblick Warum Web-Anwendungen mit OSGi? Architektur-Modelle Web-Container innerhalb von OSGi OSGi innerhalb eines Web-Containers Zukunft der Web-Anwendungen Dynamik Module Bedeutung für Web-Frameworks? Ausblick

Modularisierung und Web-Apps Modularisierung in Java kommt! OSGi Java Module System Was ganz anderes? Web-Apps sind ein wesentliches Einsatzgebiet von Java Wir brauchen eine Antwort, wie das zusammenpasst!

OSGi Im Überblick Dynamic Module System for Java Modul-Definitionen, inkl. Sichtbarkeiten Abhängigkeiten Lebenszyklus Dynamik Spezifikation + unterschiedliche Implementierungen

Typische Einsatzgebiete von OSGi Eclipse-SDK RCP-Anwendungen Standalone-Anwendungen Embedded-Systeme Und Web-Anwendungen?

Warum OSGi? Aus Entwickler-Sicht: Modularisierung für Web-Anwendungen Klares Abhängigkeits-Management JAR-Hell endlich hinter sich lassen Dynamik ermöglichen Aus Betriebs-Sicht: Updates in Produktion ohne Herunterfahren einer App Granularität von Updates (Bundles statt ganze App) Dynamik ermöglichen Flexibles Management Verschiedene Versionen gleichzeitig betreiben

Was bedeutet das? Web-Anwendungen bestehen aus OSGi-Bundles Keine klassischen WAR-Files mehr Stattdessen Standard-OSGi-Bundles Libraries in eigenen Bundles Web-UIs in getrennten Bundles Nutzung von OSGi-Services etc. Umdenken im Bau von Anwendungen! Eine gute Struktur entsteht nicht von alleine

Web-Container und OSGi Die Welt besteht aus OSGi-Bundles, die auf einer OSGi-Runtime laufen Wo bleibt der klassische Web- und Servlet- Container?

Architekturmodell 1 Web Container läuft innerhalb des OSGi Frameworks Web Container wird als Bundle innerhalb des OSGi Frameworks installiert und gestartet Anwendungs-Bundles können Web-Applikationen (oder Teile davon) in den Web Container deployen

Übersicht Embedded Web Container Fragen: Wie werden Webanwendungen (oder Teile davon) in den eingebetteten Container deployed? Welche Elemente der Servlet-Spezifikation werden unterstützt?

OSGi HTTP Service OSGi Standard Service seit R1 Zugriff auf den Servlet Container über das Interface org.osgi.service.http.httpservice Servlets und Ressourcen können dynamisch registriert und deregistriert werden

OSGi HTTP Service Was geht? Was nicht? Rudimentäre Unterstützung der Servlet-Spezifikation Servlets Resourcen Unterstützte Web-Elemente Element Servlets Servlet init params Servlet mappings Mime mappings Element in web.xml <servlet> <servlet> <init-param> <servlet-mapping> <mime-mapping>

Equinox-Jetty-Integration Alternative Implementierung des OSGi HTTP Service auf Jetty-Basis JSP-Support (Jasper-Engine) Anmelden von Servlets, JSPs und Ressourcen über Extension Points Ansonsten gleiche Beschränkungen wie beim OSGi HTTP Service

PAX Web http://wiki.ops4j.org/display/paxweb/pax+web Basiert auf Jetty Erweitert den OSGi HTTP Service Dynamisches An- und Abmeldung von Web Elementen über das Interface org.ops4j.pax.web.service.webcontainer JSP-Support

PAX Web Was geht? Was nicht? Element Context params Session timeout Servlets Servlet init params Servlet mappings Filter Filter init params Filter mappings Listeners Error pages Welcome files Mime mappings Element in web.xml <context-param> <session-timeout> <servlet> <servlet> <init-param> <servlet-mapping> <filter> <filter><init-param> <filter-mapping> <listener> <error-page> <welcome-file-list> <mime-mapping>

PAX Web Alternative Deployment-Modelle Pax Web Extender Whiteboard Implementierung des Whiteboard Patterns Servlets, Ressourcen etc. werden selber als OSGi Services an der OSGi Service Registry implementiert Pax Web Extender War Implementierung des Extender Patterns Ermöglicht das Deployment von bundle-fizierten WARs Spezifikation der Webelemente über WEB-INF/web.xml

Spring Dynamic Modules - Web Support Spring Dynamic Modules: Formerly known as Spring-OSGi Mitglied der Spring-Familie http://www.springframework.org/osgi Keine eigene OSGi-Framework-Implementierung, sondern eine Brücke zwischen Spring und OSGi-Framework Spring DM Web Support: Fokus in Spring DM 1.1 Integration von Spring DM mit Web-Applikationen

Spring DM Web Support Was geht? Was nicht? Natives Deployment von Web-Applikationen Volle Unterstützung der Servlet-Spezifikation 2.5

OSGi RFC 66 OSGi and Web Applications Spezifikation Derzeit als Draft verfügbar Bestandteil der OSGi Spec. 4.2 Beschreibt, wie Web-Anwendungen in OSGi unterstützt werden (Servlet Spec. 2.5, JSP Spec. 2.1) Referenzimplementierung: Spring DM / Spring DM Server

Ich habe aber einen App-Server! Und ich darf nur EARs, WARs, etc. deployen Was nun?

Architekturmodell 2 OSGi Framework eingebettet in Webanwendung OSGi Framework wird innerhalb einer Webanwendung ausgeführt Anwendungs-Bundles werden innerhalb des eingebetteten OSGi Frameworks installiert und gestartet

Übersicht Embedded OSGi Framework Fragen: Wie werden Webanwendungen (oder Teile davon) in den umgebenden Container deployed? Welche Elemente der Servlet-Spezifikation werden unterstützt?

Eclipse Equinox Servlet-Bridge Bestandteil der Equinox-Distribution Ermöglicht das Ausführen eines OSGi Frameworks innerhalb einer Web-Anwendung

Eclipse Equinox Servlet-Bridge

Servlet-Bridge Was geht? Was nicht? Alles über OSGi-Http-Service Vorteile: Funktioniert überall WAR-File wird deployed Wenn gewünscht, Management über normalen Management- Agent von OSGi Nachteile: Deployment erfolgt über das Interface org.osgi.service.http.httpservice Gleiche Einschränkungen wie beim OSGi HTTP Service

Wo stehen wir gerade? Es gibt eine OSGi Plattform, aber nur wenige nutzen diese Software zur Implementierung ihrer Webanwendungen Möglichkeiten der Modularisierung und Versionierung nutzen Verbesserung des Schnitts unserer Anwendungen Statt einem WAR entstehen Module Betrieb verschiedener Versionen Laufzeitdynamik für Zero Down Time nutzen Servlet API 3.0 Early Draft liegt vor

Kandidaten OSGi Runtime in einer WebApp Nutzung einer ServletBridge Wiederverwendung der bestehenden Frameworks Schrittweise Integration Reduktion der Möglichkeiten des API s WebContainer im OSGi Runtime Laden der War s in den Container RFC 66

Die Aufgabe Umbau der bestehenden Webframeworks Integration der OSGi Services in die Factories Aktion, Controller, Bean,... Mapping von Request zu Abarbeiter Delegation der Verarbeitung Content Aufbereitung ( JSP, Template,...) Nutzen bestehende Service API s Datenbankzugriff Reporting Backend Zugriff

OSGI Runtime als Webanwendung

Bewertung Nebeneinander ist möglich Keine Änderung der Betriebsinfrastruktur Man muss einen Webcontainer nachbauen Integration aller Servlet Objekte Servlet Listener Filter

Webcontainer im OSGi Runtime Aus technologischer Sicht ist das die sinnvollere Variante Vorteile von Webcontainer und OSGI können voll ausgespielt werden Die Webcontainer habe schon dynamische API s und es gelten nicht die Einschränkungen der Servlet API Aber: Die bestehende Infrastruktur muss sich ändern Anpassung für jeden Container erforderlich

Fazit Ideen sind im Fluss Viele Fragen Zurückhaltende Verwendung Wir sehen ein großes Potential.

Vielen Dank für die Aufmerksamkeit Fragen und Feedback jederzeit willkommen! Peter Roßbach: pr@objektpark.de Gerd Wütherich: gerd@gerd-wuetherich.de Martin Lippert: lippert@acm.org