Spring Application Plattform

Ähnliche Dokumente
- das neue Rad? Papick Garcia Taboada pgt/adminsight Kristian Köhler kkoehler.com

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

Spring Dynamic Modules for OSGi Service Platforms

Spring Dynamic Modules for OSGi Service Platforms

OSGi-basierte Webapplikationen Ein Erfahrungsbericht

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

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

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

SpringSource Enterprise & Application Platform: Wo geht die Reise hin?

Das Interceptor Muster

Mit OSGi Webanwendungen entwickeln Was geht, was nicht?

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

OSGi: Anwendungsszenarien, Auswahlkriterien und Ausblick

Architektur iterativ auf Basis von OSGi entwickeln

Eine Einführung. Vortragende(r) FU Institut Berlin für Informatik Ingo Mohr

Umstieg auf OSGi - aber wie? Martin Lippert & Matthias Lübken akquinet it-agile

Projektgruppe. Thomas Kühne. Komponentenbasiertes Software Engineering mit OSGi

Application Frameworks

Konfigurationslanleitung für J2EE und Eclipse im KBS-Pool

Erste Erfahrungen mit NSASJ anhand der OmnivoBase Portierung. September 2013

Gemeinsam mehr erreichen.

Komponentenbasierte Softwareentwicklung

Open Source. Hendrik Ebbers 2015

Eclipse, Spring und OSGi 1

- XPages 2.0? René Winkelmeyer

Eclipse Smart Client Beyond Eclipse RCP. Christian Campo, compeople, 24.April 2007

Aufbau eines IT-Servicekataloges am Fallbeispiel einer Schweizer Bank

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

arlanis Software AG SOA Architektonische und technische Grundlagen Andreas Holubek

GuiXT und mysap ERP. Regensdorf, April 2004 Dr.Gerhard Rodé, Synactive GmbH

Spring & OSGi: Plattform der Zukunft. Bernd Kolb (Kolbware) Martin Lippert (akquinet agile GmbH) Gerd Wütherich (comdirect bank AG)

Faclets. Eine alternative View Technologie um JSF Applikationen OHNE JSP zu entwickeln Wird unter java.net gehostet Open Source, CDDL Lizenz

WebSphere Portal 8 Migrationen

Java als Integrationslösung in einer gewachsenen Anwendungslandschaft. Claus Straube, IT Architekt für EAI und Java

jbpm5 in Java EE 6 Marek Iwaszkiewicz Pascal Schaerf akquinet AG

Softwareentwicklung mit Enterprise JAVA Beans

SE2-10-Entwurfsmuster-2 15

MOBILE ON POWER MACHEN SIE IHRE ANWENDUNGEN MOBIL?!

Erfahrungen und Erkenntnisse. Klaus Richarz, HBT GmbH

EJB Beispiel. JEE Vorlesung 10. Ralf Gitzel

Bes 10 Für ios und Android

Daniel Warneke Ein Vortrag im Rahmen des Proseminars Software Pioneers

Fragen Arthur Zaczek. Apr 2015

Upgrade-Leitfaden. Apparo Fast Edit. Wechsel von Version 2 auf Version oder Wechsel von Version auf Version 3.0.

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

Next generation open source BPM JBoss jbpm 4. Java Forum Stuttgart

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

Windows Server 2012 R2 Essentials & Hyper-V

Architecture Blueprints

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

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

Oliver Paulus, 7. Februar Spring Framework Einführung. Oliver Paulus, Was ist Spring?

Getting Started Guide CRM Online, 2013 & 2015 xrm1 Verpflegungspauschalen

Installation von NetBeans inkl. Glassfish Anwendungs-Server

Continuous Database Integration mit Flyway

Xpert.IVY das GUI ist entscheidend!

Ohne Build geht's besser: Makeloses Java mit dem z 2 -Environment. Henning Blohm

OERA OpenEdge Reference Architecture. Mike Fechner PUG Infotag 19. Mai 05 Frankfurt

Fujitsu BeanConnect TM V3.0 Software 0 FUJITSU LIMITED 2013

Inhalt. Fragestellungen. ...we make the invisible visible... Analysen und deren Anwendung Erfahrungen

Zend PHP Cloud Application Platform

Überblick Produkte. ORACLE AS 10g R3 JAVA Programming. (5 Tage)

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

Design Pattern - Strukturmuster. CAS SWE - OOAD Marco Hunziker Klaus Imfeld Frédéric Bächler Marcel Lüthi

Henning Mersch. Tomcat. im Rahmen des RBG-Seminar SS04. Apache-Jakarta-Tomcat-Server RBG-Seminar 1/17

Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java

Konzept / Architektur Diagramme

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

TOGAF The Open Group Architecture Framework

IT-Beratung: Vom Geschäftsprozess zur IT-Lösung

AOP in der Praxis Aspektorientierung in Projekten der MATHEMA

Integration mit Service Repositories zur SOA Governance

Björn Heinemann Leiter Entwicklung Energiewirtschaft

SAP NetWeaver Gateway. 2013

Upgrade-Leitfaden. Apparo Fast Edit 1 / 7

One Vision One Platform. Eclipse als Plattform für die GUI Integration

OpenSource bei PostFinance Einsatz in der Software Entwicklung. informativ

Software modular bauen

Business Application Framework für SharePoint Der Kern aller PSC-Lösungen

Spring und Eclipse Equinox kombiniert. Martin Lippert (it-agile GmbH) Gerd Wütherich (comdirect bank AG)

Sie setzen SharePoint ein?.hier sind Ihre Anwendungen dafür!

Oracle GridControl Tuning Pack. best Open Systems Day April Unterföhring. Marco Kühn best Systeme GmbH

Automatisierter Java EE Entwicklungs-Lifecycle mit WebLogic Server 12c. Robin Müller-Bady Systemberater, Oracle Deutschland

Übersicht. Eclipse Foundation. Eclipse Plugins & Projects. Eclipse Ganymede Simultaneous Release. Web Tools Platform Projekt. WSDL Editor.

Struts 2 Das Imperium schlägt zurück?

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

Überblick. Allgemeines, Geschichtliches. Architektur. Oberfläche. Plugins und deren Einsatz

Internetanbindung von Datenbanken

Eclipse Plugins für die komfortablere Verwendung von ibatis SQLMaps

Moderne Web- Anwendungen mit

Lokale Installation von DotNetNuke 4 ohne IIS

Security Patterns. Benny Clauss. Sicherheit in der Softwareentwicklung WS 07/08

Anleitung zur Webservice Entwicklung unter Eclipse

Remote Eclipse RCP Management

SAP SharePoint Integration. e1 Business Solutions GmbH

Erfahrungsbericht zu JBoss SOA Platform 6 Tech Talk 2013, 17. Oktober 2013, Bern

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

ECLIPSE PLUG-IN. Redwood Anwendertage 2015

Transkript:

Spring Application Plattform - das neue Rad? Papick Garcia Taboada pgt/adminsight Kristian Köhler kkoehler.com

Hello World Kristian Köhler Diplom-Wirtschaftsinformatiker (BA) Freiberuflicher Software Architekt, Berater und Trainer Papick G. Taboada Diplom-Wirtschaftsingenieur (TH) Freiberuflicher Technology Scout

Agenda Einleitung Motivation Modularisierung Technologisches Umfeld OSGi Spring DM SpringSource dm Server Überblick und Features Ausblick

Motivation Warum ein Application-Server? Warum OSGi und nicht Spezifikationskonform? K.Köhler, P.G.Taboada 4 4

Architektur? Eine Architektur (vοn griech. αρχή = Anfang, Ursprung und lat. tectum = Haus, Dach) beschreibt in der Informatik im allgemeinen das Zusammenspiel der Komponenten eines komplexen Systems. Der Begriff wird in unterschiedlichen Bereichen angewendet. K.Köhler, P.G.Taboada 5

Architektur? Eine Architektur (vοn griech. αρχή = Anfang, Ursprung und lat. tectum = Haus, Dach) beschreibt in der Informatik im allgemeinen das Zusammenspiel der Komponenten eines komplexen Systems. Der Begriff wird in unterschiedlichen Bereichen angewendet. K.Köhler, P.G.Taboada 6

Architektur? Eine Architektur (vοn griech. αρχή = Anfang, Ursprung und lat. tectum = Haus, Dach) beschreibt in der Informatik im allgemeinen das Zusammenspiel der Komponenten? eines komplexen Systems. Der Begriff wird in unterschiedlichen Bereichen angewendet. K.Köhler, P.G.Taboada 7

Divide and Conquer Kennen wir! Component based development Layers Modularization AOP... K.Köhler, P.G.Taboada 8

Component based development? Können wir... Spring Beans EJB Komponenten Servlets 1000 verschiedene GUI- Komponentenmodelle K.Köhler, P.G.Taboada 9

Komponentenbildung 0100100101001100 110010010010010 010010010101 01010010101 010010010101 100100101010 10101010 010010010101 101 101111001011 0101010101 Wiederverwendbare Funktionalität im monolitischen Block 2006 http://www.pgt.de 10

Komponentenbildung 0100100101001100 110010010010010 101 01010010101 101 100100101010 10101010 101 101 101111001011 0101010101 Wiederverwendbare Funktionalitaet im monolitischen Block Code wird in ein Modul ausgelagert 010010010101 2006 http://www.pgt.de 11

Laufzeitumgebung 010010010101 Weiterentwicklung zur Komponente: Dienste, die von mehreren Modulen benötig werden, werden von einer Laufzeitumgebung bereitgestellt Laufzeitumgebung 2006 http://www.pgt.de 12

Komponenten im System 0110000111 010010010101 Laufzeitumgebung 2006 http://www.pgt.de 13

Noch zu definieren Zustand einer Komponente Lebenszyklus Abhängigkeiten Gemeinsame Dienste usw. 2006 http://www.pgt.de 14

Layers Können wir... EJB Klassisch Business Delegate Service Facade Business Logic Dao Spring Klassisch Presentation Layer Business Logic Layer Persistence Layer Wie oben, evtl. die eine oder andere Schicht weniger... ;-) K.Köhler, P.G.Taboada 15

Nur am Rande: Layers in practice 16

AOP Aspekt Orientierte Programmierung Können wir... manchmal... AOP ist ein Konzept Keine Spezifikation Verschiedene Lösungsansätze Dynamic Proxies Bytecode-Manipulation Verschiedene Anbieter Spring AOP EJB Interceptoren AspectJ... K.Köhler, P.G.Taboada 17

Aber jetzt: Modularisierung... Können wir? Was ist eigentlich Modularisierung? K.Köhler, P.G.Taboada 18

Modularisierung... A module is a self-contained component of a system, which has a well-defined interface to the other components; something is modular if it includes or uses modules which can be interchanged as units without disassembly of the module. Design, manufacture, repair, etc. of the modules may be complex, but this is not relevant; once the module exists, it can easily be connected to or disconnected from the system. K.Köhler, P.G.Taboada 19

Etwa so? M M M 20

Oder so? M M M M M M M 21

Granularität Fine and coarse grained components Beispiel aus Architekturdefinition: System Subsystem Module Smallest composing part Will be to mapped Maven artifacts IDE project The term component is used by many technologies. To avoid misinterpretation I do not use it here K.Köhler, P.G.Taboada 22 22

Java EE Granularität fine grained coarse grained HelloWorldServlet EJB-JAR & WAR Archives EAR Archive JAR Libraries Spezifikationsloch Modularisierung zur Compilezeit? Classloader-Monsters 23

Wer Wo Was Compile-Time Abhängigkeiten zu Schnittstellen Problembereich Build-Infrastrutkur Runtime Abhängigkeiten zu Implementierungen Problembereich Laufzeitumgebung K.Köhler, P.G.Taboada 24 24

Kleines Experiment Divide & Conquer applied Eine kleine Anwendung 1x Web-Client 1x Rich-Client 1x Gute Laune und Motivation K.Köhler, P.G.Taboada 25 25

Simple outline WebApp A JSF, Facelets, bl1 JSF UI bl2 Log4J Spring db1 db2 Hibernate 26

Simple outline Rich client B Eclipse RCP RCP UI bl2 bl3 Log4J Spring db2 db3 Hibernate 27

Web A: boundaries and names System JSF, Facelets, bl1 JSF UI bl2 Log4J Spring db1 db2 Hibernate Subsystem(s) From the Java EE point of view: deployable artifact 28

Web A: we can do better! Dependencies! JSF UI JSF, Facelets, Between modules Between modules and required technologies db1 bl1 db2 bl2 Hibernate Spring Log4J 29

Web A: we can do even better! Dependencies! JSF UI V1.8 V1.5 V2.0 JSF, Facelets, Between modules Between modules and required technologies Versions!!! db1 bl1 V2.3 V2.0 V1.0 db2 bl2 V2.0 V2.0 Hibernate Spring Log4J 30

Apps A & B looks good ;-) V1.5 Eclipse Deps V1.1 RCP UI V2.0 JSF UI V1.8 V1.5 V2.0 JSF, Facelets, V1.1 bl3 db3 V1.7 V2.0 V2.0 V2.0 db1 bl1 V2.3 V2.0 V1.0 db2 bl2 V2.0 V2.0 Hibernate Spring Log4J 31

Probleme Modularisierung Größer Komponenten Kleiner als Deployment Artefakt Abhängigkeiten zwischen Module Definieren Compiletime Laufzeitverhalten Versionierung K.Köhler, P.G.Taboada 32 32

Die Lösungsansätze Wir lösen es in der Build-Infrastruktur und haben zur Laufzeit ein Monolith... Schonmal mit Maven, Ivy & Co. gelöst. oder... OSGi K.Köhler, P.G.Taboada 33 33

Das Problem mit den Lösungen OSGi und Java EE Paketierung Passt nicht zusammen... Lösung über Buildinfrastrutkur liefert keine Antworten auf Fragen in der Laufzeitumgebung K.Köhler, P.G.Taboada 34 34

Also entweder oder... OSGi Module Abhängigkeiten Versionen Kein Server Keine Paketierung Java EE Spezifikation... Lösung nur beim Bauen K.Köhler, P.G.Taboada 35 35

Agenda Einleitung Motivation Modularisierung Technologisches Umfeld OSGi Spring DM SpringSource dm Server Überblick und Features Ausblick

OSGi Open Services Gateway initiative (I) Kein JavaEE Standard Definiert von OSGi Alliance Mitglieder z. B. IBM, Nokia und Oracle http://www.osgi.org Komponentenmodell Anwendung wird in bundles unterteilt Bundles können einzeln verwaltet werden install/start/stop/uninstall/update K.Köhler, P.G.Taboada 37

OSGi Open Services Gateway initiative (II) Sichtbarkeitsregeln für Bundles Definition von Im- und Exports Eintrag in META-INF/MANIFEST Abhängigkeitsverwaltung zwischen Bundles Auflösung von Abhängigkeiten zur Laufzeit Versionsinformationen vorhanden SOA in a JVM Service Registry verwaltet Dienste K.Köhler, P.G.Taboada 38

OSGi Service Platform Ausführungsplatform für OSGi Bundles Lightweight Container Containerdienste Lifecyle für Bundles Standalone oder Embedded einsetzbar OSS Implementierungen Equinox (http://www.eclipse.org/equinox/) Apache Felix (http://felix.apache.org/) Knopflerfish (http://knopflerfish.org/) K.Köhler, P.G.Taboada 39

Einfaches OSGi Beispiel (I) META-INF/MANIFEST Manifest-Version: 1.0 Export-Package: com.kkoehler.wjax08.bundle1;version="0.1" ;uses:="org.osgi.framework" Private-Package: com.kkoehler.wjax08.bundle1.impl Ignore-Package: com.kkoehler.wjax08.bundle1.impl Built-By: kkoehler Tool: Bnd-0.0.238 Bundle-Name: Sample OSGi Bundle 1 - v0.1 Created-By: Apache Maven Bundle Plugin Build-Jdk: 1.6.0_10 Bundle-Version: 0.1 Bnd-LastModified: 1225437612220 Bundle-ManifestVersion: 2 Bundle-Activator: com.kkoehler.wjax08.bundle1.simpleactivator Import-Package: com.kkoehler.wjax08.bundle1;version="0.1",org.osgi.fra mework;version="1.3" Bundle-SymbolicName: com.kkoehler.wjax08.my-bundle1 META-INF/MANIFEST Manifest-Version: 1.0 Export-Package: com.kkoehler.wjax08.bundle2;uses:="com.kkoehler.wjax08.bundle1,org.osgi.framework" Built-By: kkoehler Tool: Bnd-0.0.238 Bundle-Name: Sample OSGi Bundle 2 Created-By: Apache Maven Bundle Plugin Bundle-Version: 0.1 Build-Jdk: 1.6.0_10 Bnd-LastModified: 1225437523386 Bundle-ManifestVersion: 2 Bundle-Activator: com.kkoehler.wjax08.bundle2.secondsimpleactivator Import-Package: com.kkoehler.wjax08.bundle1;version="0.1",com.kkoehler.wjax08.bundle2,org.osgi.framework;version="1.3" Bundle-SymbolicName: com.kkoehler.wjax08.my-bundle2

Einfaches OSGi Beispiel (II) - Registry package com.kkoehler.wjax08; import org.osgi.framework.*; public class SimpleActivator implements BundleActivator { ServiceRegistration registration; public void start(bundlecontext bundlecontext) { registration = bundlecontext.registerservice( FooBar.class.getName(), new FooBarImpl(), null); } public void stop( BundleContext bc ) { registration.unregister(); registration = null; } } Für Interaktion mit OSGI Platform Abhängigkeit zu OSGI Klassen. Anmelden, Suchen, Nutzen von Diensten sind wir mittlerweile anders gewohnt ;-) Infrastruktur-Code

Überlegungen zu raw OSGi Abhängigkeit zu OSGi Framework siehe Activator Referenzen zwischen Bundles umständlich Anmelden/ Abmelden programmatisch Bundles müssen konfiguriert werden Anwendungskonfiguration Enterprise Features z. B. Transaktionen (kommt mit OSGi 4.2) Unit und Integration Testing K.Köhler, P.G.Taboada 42

Spring Dynamic Modules Ehemals Spring-OSGi Keine OSGi Service Platform Brücke zwischen Spring und OSGi Nicht Framework bezogen K.Köhler, P.G.Taboada 43

Spring Dynamic Modules Spring Konzepte in OSGi Welt bringen Programmiermodell (POJO) Dependency Injection AOP OSGi Ideen für Spring Anwendungen nutzbar machen Modularisierung Dependency Management (Sichtbarkeit, Versionierung, etc) K.Köhler, P.G.Taboada 44

Einfaches Spring dm Beispiel (I) META-INF/spring/context.xml... <bean id="foo" class="...impl.foobarimpl"/> <osgi:service id="foobar" ref="foo" interface="...foobar"/>... META-INF/spring/context.xml <bean id="activator" class="...secondsimpleactivator" init-method="init"> <property name="foobar"> <ref bean="fooosgi"/> </property> </bean> <osgi:reference id="fooosgi" interface="...foobar"/>...

Überlegungen zu Spring dm Kein Anschluss an JavaEE Komponentenmodelle (z.b. Web-Apps) Abhängigkeitsverwaltung Bundles müssen manuell installiert werden Ein Bundle kommt selten allein... Kein Konzept für Anwendung Deployment Sichtbarkeit/ Grenzen Logging K.Köhler, P.G.Taboada 46

Java EE Granularität fine grained coarse grained HelloWorldServlet EJB-JAR & WAR Archives EAR Archive JAR Libraries Spezifikationsloch Modularisierung zur Compilezeit? Classloader-Monsters 47

Gleiches Problem, aber inside-out fine grained coarse grained Bunde-Konzept Spezifikationslöcher 48

Extender Pattern Inversion of control bei Bundle-Installation Ausnutzen des OSGi Lifecycles Synchronous Bundle Listener Installiertes Bundle wird untersucht z. B. Dateien oder Manifest Eintrag Weniger Verantwortung bei neuem Bundle Kein Boilerplate Code in jedem Bundle Fehlerresistenter K.Köhler, P.G.Taboada 49

Extender Pattern bei OSGi Web Extender WebApp- Bundle Web Container Bundle Bundle mit Infos für Web Extender (web.xml) Anwendungs- 1 Bundle OSGi Framework

Agenda Einleitung Motivation Modularisierung Technologisches Umfeld OSGi Spring DM SpringSource dm Server Überblick und Features Ausblick

OSGi basierter Java Application Server (K)ein Java EE Standard konformer Server ;-) WAR (Web-Profil Java EE 6) OSGi wird nicht nur intern eingesetzt Eigene Anwendungen können OSGi nutzen OSGi Deployment möglich Wird von SpringSource entwickelt Community und Enterprise Version Community GPL lizensiert K.Köhler, P.G.Taboada 52

Spring Application Plattform DMK = Dynamic Module Kernel Quelle: http://blog.springsource.com/main/wp-content/uploads/2008/04/architecture.png

- Features Abhängigkeitsmanagement Deployment Runtime Provisioning/ Repository Logging Clustering-Unterstützung... K.Köhler, P.G.Taboada 54

Neues Abhängigkeitsmanagement Import-Bundle ClassLoader Problem bei RequireBundle Reihenfolge beim Laden eventuell problematisch Split packages Import-Library Referenziert alle exportierten Packages einer Gruppe von Bundles Werden intern zu Import-Package OSGi Standardverhalten K.Köhler, P.G.Taboada 55

Deployment/ Personalities Web Applications Standard JavaEE WARs Shared Libraries WAR Shared Services WAR Plattform spezifische Web Modules RAW OSGI Bundles PAR - Anwendungsarchiv Proprietäres Format (bevorzugt) K.Köhler, P.G.Taboada 56

Shared Libraries WAR Standard WAR ohne Bibliotheken Kein unnötig großes Web-Archiv WEB-INF/lib ist leer Abhängigkeiten werden über OSGi importiert Import-Package Require-Bundle K.Köhler, P.G.Taboada 57

Shared Services WAR Standard WAR ohne Bibliotheken + Services WEB-INF/lib ist leer Keine Services in Archiv Services in externen Bundles <osgi:reference.../> K.Köhler, P.G.Taboada 58

Plattform spezifische Web Modules Ähnliche Struktur wie Shared Services WAR Vereinfachte Spring MVC Konfiguration Einträge in MANIFEST.MF Web-DispatcherServletUrlPatterns Web-ContextPath... web.xml wird zur Laufzeit erzeugt Merging mit Fragementen K.Köhler, P.G.Taboada 59

Migration von WAR to Web Module

Platform Archives (PAR) Wird als Ersetzung eines EAR gesehen Enthält alle Bundles einer Anwendung Einfachere Insallation Teile der Anwendung können unabhängig voneinander entwickelt/verwaltet werden Anwendungen werden abgegrenzt Classloading, AOP load-time weaving, etc Einfacheres Management Was gehört zusammen K.Köhler, P.G.Taboada 61

Typische Anwendung Quelle: http://blog.springsource.com/main/wp-content/uploads/2008/04/par-structure.png

Runtime provisioning und Repository (I) Server Repository hält Bibliotheken vor Bibliotheken als OSGi Bundles Nicht aufgelöste Abhängigkeiten werden zur Laufzeit nachgeladen ( as-needed ) Memory Footprint Kleinere Anwendungsarchive K.Köhler, P.G.Taboada 63

Runtime provisioning und Repository (II) Hinzufügen von Bibliotheken zur Laufzeit mgl. Kopieren in Verzeichnis Eclipse Tooling Online Repository für Bibliotheken http://www.springsource.com/repository Kein automatischer Download! Konfiguration Repo über JSON-File z. B. für Multi-Instance-Usage K.Köhler, P.G.Taboada 64

Beispiel Zeit für Beispiel? Server directory layout... Server Starten... PAR Deployment... K.Köhler, P.G.Taboada 65

Personalities Roadmap... In the 1.0 Platform release we support the web and bundle personalities, which enable you to build sophisticated web applications. Future releases will include support for more personalities ( ) The 2.0 release will introduce additional personalities to cover batch, web services and SOA applications. http://blog.springsource.com/2008/04/30/introducing-the-springsource-application-platform/ K.Köhler, P.G.Taboada 66

Serviceability/ Logging Ziel: Einfacher Betrieb Leicht zu lesende Logs ;-) Trennung zwischen Trace, Log und Dump Anwendungslogs werden separiert Spezielle Verzeichnisse pro App Konfiguration mittels MANIFEST Application-TraceLevels: *=info K.Köhler, P.G.Taboada 67

Product/ Standards Roadmap... Version 1.2 Administration configuration Feature complete Version 2.0 OSGi Blueprint Service (RFC 124) Spring DM als RI für OSGi Spring DM Server als Plattform für OSGi Blueprint K.Köhler, P.G.Taboada 68 68

Standard? OSGi 4.2 (early draft) RFC 120: Security Enhancements RFC 121: Bundle Tracker RFC 125: Bundle License RFC 126: Service Registry Hooks RFC 128: Accessing Exit Values from Applications RFC 129: Initial Provisioning Update RFC 132: Command Line Interface and Launching RFC 134: Declarative Services Update RFC 98: Transactions in OSGi RFC 119: Distributed OSGi RFC 124: A Component Model for OSGi K.Köhler, P.G.Taboada 69

RFC 124: A Component SPRING Model for DM OSGi The OSGi platform provides an attractive foundation for building enterprise applications. However it lacks a rich component model for declaring components within a bundle and for instantiating, configuring, assembling and decorating such components when a bundle is started. This RFC describes a set of core features required in an enterprise programming model and that are widely used outside of OSGi today when building enterprise (Java) applications. These features need to be provided on the OSGi platform for it to become a viable solution for the deployment of enterprise applications. K.Köhler, P.G.Taboada 70

SPRING DM RFC 124: A Component Model for OSGi The OSGi platform provides an attractive foundation for building enterprise applications. However it lacks a rich component model for declaring components within a bundle and for instantiating, configuring, assembling and decorating such components when a bundle is started. This RFC describes a set of core features required in an enterprise programming model and that are widely used outside of OSGi today when building enterprise (Java) applications. These features need to be provided on the OSGi platform for it to become a viable solution for the deployment of enterprise applications. K.Köhler, P.G.Taboada 71

May we live in interesting times... OOP 2001 Vergleich zwischen Corba Component Model (CCM) und EJB CCM? Was ist das? Java EE Spezifikation muss sich bewegen Reichen die angepeilten Profile? OSGi 4.2: ernstzunehmende Konkurrenz? Krachts nicht spätestens mit Java Superpackages und Java Dynamic Modules? K.Köhler, P.G.Taboada 72

Vielen Dank für Ihre Aufmerksamkeit Fragen? Kristian Köhler Diplom-Wirtschaftsinformatiker (BA) Freiberuflicher Software Architekt, Berater und Trainer http://www.kkoehler.com Meet... @ OIO Stand 1. Etage @ W-Jax Ballroom Stand1. Etage Papick G. Taboada Diplom-Wirtschaftsingenieur (TH) Freiberuflicher Technology Scout http://pgt.de