Laufzeitmanagement von OSGi Applikationen

Ähnliche Dokumente
Laufzeitmanagement von OSGi Applikationen

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

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

Die OSGi Service Plattform

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

Spring Dynamic Modules for OSGi Service Platforms

Das Interceptor Muster

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

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

H OSGi H.2 H.4 H.3. 1 Motivation. 2 Architektur. 2 Architektur (2) Modulsystem/Komponentensystem für Java. OSGi Alliance.

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

Server-Management mit JMX

Inhaltsverzeichnis. Bernd Weber, Patrick Baumgartner, Oliver Braun. OSGi für Praktiker

Spring Dynamic Modules for OSGi Service Platforms

Die OSGi Alliance die dynamische Softwareplattform auf Java-Basis. W3L AG

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

OSGi mit Apache Felix und IntelliJ IDEA

Das OSGi Framework bietet eine universelle, sichere und zentral verwaltete Ausführungsumgebung für modulare Anwendungen (Bundles)

Middleware - Übung. Framework. Security Layer & Module Layer

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

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

Gerd Wütherich Nils Hartmann Bernd Kolb Matthias Lübken. Einführung in die OSGi Service Platform

Kommunikation ist alles

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

OSGi-basierte Webapplikationen Ein Erfahrungsbericht

Die Magie von MBeans und JMX. DOAG 2014 Andreas Chatziantoniou - Foxglove-IT BV

Gerd Wütherich Nils Hartmann Bernd Kolb Matthias Lübken. Einführung in die OSGi Service Platform

Eclipse, Spring und OSGi 1

JAX-RS 2.0 REST mit Java EE 7

JUnit 5 Die Plattform. Johannes Link

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

OSGI DECLARATIVE SERVICES

Inhaltsverzeichnis. xil. 1 Einleitung 1. 2 OSGi-TechnologieimOberblick 11. Bibliografische Informationen

Architekturen für verteilte Internetdienste

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

OSGI DECLARATIVE SERVICES

Architektur iterativ auf Basis von OSGi entwickeln

Modulare Anwendungen und die Lookup API. Geertjan Wielenga NetBeans Team Deutschsprachige Überarbeitung, Aljoscha Rittner NetBeans Dream Team

OSGI DECLARATIVE SERVICES

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

Remote Method Invocation

Einführung: Verteilte Systeme - Remote Method Invocation -

OSGi und das Schweizer Sackmesser

Seminar JMX - Java Management Extension

Mit OSGi Webanwendungen entwickeln Was geht, was nicht?

Module für eine Java-Administrationsschulung

Auszug aus JAX-WS Folien

Integrationsmuster am Beispiel von Apache Camel

J2EE mit Eclipse 3 und JBoss

Praktikum Verteilte Anwendungen

Anleitung. Ein einfaches RMI-Beispiel. (ab Java 5.0) c Y. Pfeifer. (Juni 2014)

Best of Oracle Weblogic Diagnostic Framework

Richard Oates Thomas Langer Stefan Wille Torsten Lueckow Gerald Bachlmayr. Spring & Hibernate. Eine praxisbezogene Einführung HANSER

10 Management der OSGi Service Platform

Komponentenbasierte Softwareentwicklung

Systemprogrammierung. Projekt: Java RMI. Wintersemester 2006 / 2007

B Java RMI B.2 B.4. 1 Java. 1.2 Methoden. 1.1 Objekte (2) 1.1 Objekte. Objektorientierte Sprache. Klassenbeschreibung. Methode ist eine Art Funktion

Frank Schlüter, Techniker Krankenkasse Gerd Wütherich, Freiberuflicher Softwarearchitekt. Enterprise OSGi im wahren Leben: ein Migrationsbericht

Klappe auf! Was macht die JVM denn da?

Webentwicklung mit Vaadin 7. Theoretische und praktische Einführung in Vaadin 7. Christian Dresen, Michael Gerdes, Sergej Schumilo

Smartphone Entwicklung mit Android und Java

Einführung in Google Web Toolkit

HA-API der Oracle Clusterware 10gR2

1 Copyright 2011, Oracle and/or its affiliates. All rights reserved.

Applica'on Performance Monitoring in der Oracle Cloud

jbpm5 in Java EE 6 Marek Iwaszkiewicz Pascal Schaerf akquinet AG

Enterprise Web-SSO mit CAS und OpenSSO

Application Servers. Application Server JBoss Java Management Extensions (JMX) Dynamische Rekonfigurierung

II.4.5 Generische Datentypen - 1 -

CORBA. Eine kurze Einführung. Common Object Request Broker Architecture. Ying Lu

Enterprise JavaBeans Überblick

Webcast: Java Nagios Monitoring in der Praxis

Mobile und Verteilte Datenbanken

OSGi: Technologiebewertung für den Einsatz in der Automatisierung

AVID-Übung 3. EJB mit JBoss und Eclipse. 17. Juni Andreas I. Schmied Abteilung Verteilte Systeme Projektgruppe AspectIX

Desktop Management Interface und andere Initiativen der DMTF

JBoss AS 7. Installation, Konfiguration und Betrieb. Alexander Pacnik Karlsruhe,

Verbesserung der Architektur der DPP- Software Saros (Vortrag 2) Slawa Belousow Institut für Informatik FU Berlin

Freundliche Eindringlinge. Moderne Web- Applika1onen mit CDI

7 Assemblies. Anwendungen (.exe) bzw. Anwendungskomponenten (.dll) für.net Portable Execution (PE) Files

Plug-in-Programmierung mit Eclipse

Java Batch Der Standard für's Stapeln

Geronimo, konfigurierbarer Java EE Application Server

Web Services. XML, WSDL, SOAP und UDDI Einblicke und Ausblicke J.M.Joller 1

Abbildung 3-1: Clients und Server C+S

Matthias Küspert software engineering

Enterprise Softwarearchitekturen in Java

Eine Einführung, aktuell zur Version An imprint of Pearson Education

Anwendungen zur Raumautomation auf Basis der OSGi- und LON-Technologie

FWP Aktuelle Technologien zur Entwicklung verteilter Java-Anwendungen

OSGi: Anwendungsszenarien, Auswahlkriterien und Ausblick

NetBeans Rich Client Platform. Anton Epple Göttingen, Source Talk Tage

WebLogic goes Security

IDM: Identity Connector Framework (ICF) und SAP Connectors

Transkript:

Tobias Israel JUG Saxony Laufzeitmanagement von OSGi Applikationen buschmais GbR Inhaber Torsten Busch, Frank Schwarz, Dirk Mahler und Tobias Israel tobias.israel@buschmais.com http://www.buschmais.de/ Dresden, 10.12.2009

Eins%eg Laufzeitmanagement

Verfügbarkeit von IT- Systemen: Schnelle Reak%on auf Abweichungen des Systemverhaltens vom Erwartungswert notwendig Alles was im laufenden Betrieb erledigt werden kann ist gut 3

Einige Rahmenbedingungen für den Betrieb von IT- Systemen Überwachung von Systemressourcen Schnelles Ak%vieren- /Deak%vieren spezieller Tracing- Komponenten Gute Zugänglichkeit des Systems Ortsunabhängigkeit Einheitliches (standardisiertes) Toolset Schutz des Systems und dessen Ressourcen vor unautorisiertem Zugriff 4

Eins%eg OSGi 5

Ursprünglich im Kontext eingebeqeter Systeme Defini%on einer dynamischen ServiceplaSorm auf der Basis von Java Begrifflichkeiten: Bundle = SoWwarekomponente Service = SchniQstelle Service- Registry = Registry für den Servicelookup; Abgrenzung des Bundles nach außen, Im- /Export von Bundleartefakten Lifecycle- Modell (De- /Installieren, Starten, Stoppen, Aktualisieren) 6

Security OSGi Framework - Architektur Bundles Service Life cycle Module Execu@on Environment Hardware/OS 7

Bundle- Lifecycle- Modell: Installed Star@ng Resolved Ac@ve Uninstalled Stopping 8

Starten und Stoppen von Bundles zur Laufzeit Dynamisches Registrieren und Enaernen von Services Management des Lifecycles über API Bundle BundleContext BundleAc%vator BundleEvent FrameworkEvent BundleListener FrameworkListener SystemBundle... 9

Das Whiteboard- PaQern Problem: OSGi- Kontext lebt von dynamischen Abhängigkeiten. Nutzer anderer Services müssen z.b. über den Lifecycle- Status anderer Services von denen sie abhängig sind informiert werden. Nutzung des normalen Listener PaTern würde Registrierung von Listenern direkt am zu beobachtenden Service notwendig machen - - > Enorme Komplexität! Lösung: Alles ist ein Service OSGi Service Registry als zentrale Instanz bietet PlaWorm für Event- Dispatch und Zugriff auf Service- Referenzen 10

public final class Activator implements BundleActivator { /** * {@inheritdoc} */ public void start(bundlecontext bundlecontext) throws Exception { // Bundle starten // Services Registrieren } // Listener registrieren /** * {@inheritdoc} */ public void stop(bundlecontext bundlecontext) throws Exception { // Bundle stoppen } 11

ServiceListener servicelistener = new ServiceListener() { /** * {@inheritdoc} */ public void servicechanged(serviceevent serviceevent) { ServiceReference servicereference = serviceevent.getservicereference(); }; } switch (serviceevent.gettype()) { case ServiceEvent.REGISTERED: // Ein neuer Service wurde registriert break; case ServiceEvent.UNREGISTERING: // Ein Service wurde entfernt break; default: break; } bundlecontext.addservicelistener(servicelistener); 12

Eins%eg Java Management Extension 13

Bestandteil von Java SE/EE Standardisierte SchniQstelle für Laufzeitmanagement Einheitliches Programmiermodell Berücksich%gung von Sicherheitsaspekten Distributed Servies Level RMI Adapter jconsole Adapter... Agent Level MBean Server JVM Instrumenta@on Level Applica%on MBean MBean MBean 14

Defini%on verschiedener MBean- Typen: Standard MBeans Dynamic MBeans Open MBeans... MBean- Server als Bindeglied zwischen MBeans und der Managementanwendung Registrieren von MBeans an einer MBean- Serverinstanz ObjectName als eindeu@ger Name für registrierte MBeans com.buschmais.maexo.mbean:description= MaexoMBean,type=MaexoMBean 15

Betrachtung OSGi + Management? 16

Keine standardisierten SchniQstellen nach außen vorgegeben Zahlreiche Insellösungen Spezielle Shells telnet HTTP- Konsolen Swing- Anwendungen Spezielle Bundles... JMX Telnet Swing 17

Teilweise auch Ansätze zur Nutzung von JMX Bsp.: Eclipse Equinox sehr kalorienreicher Ansatz durch hohe Anzahl von Abhängigkeiten Bsp.: Apache Felix: MOSGi Nutzt No@fica@on- basierten MBean Ansatz zur Anbindung der hauseigenen Managementanwendung OSGi Version R4.2 Bewegung in Richtung Enterprise Java Explizit auch Bezug zu JMX (RFC139) Kein Programmiermodell zur dynamischen Registrierung/ Deregistrierung von MBeans Noch nicht verabschiedet 18

Framework OSGi + JMX = MAEXO 19

MAEXO MAEXO = Management Extensions for OSGi Projektstart 2008 Open Source (Apache License) April 2009: Veröffentlichung Version 1.0 20

Ziele für MAEXO JMX zum Management von OSGi- Applika%onen Einfaches, schlankes Framework mit wenig Abhängigkeiten zu DriQbibliotheken Anschluss generischer Managementkonsolen an OSGi- basierte Applika%onen ermöglichen Bereitstellen eines einfachen Programmiermodells Lösen des (aus JMX- Sicht) bestehenden Dynamik- Dilemmas im OSGi- Kontext MAEXO Management Console 21

MAEXO - Architektur Pla`orm MBean Server MAEXO OSGi Core MBeans OSGi Core Services als MBeans MyBundle MyService als JMX MBean MBean Server JMX- OSGi- Switchboard OSGi Service Registry 22

MAEXO MBean- Server Bundles Bundle für MBean PlaSormserver Bundle für Thirdparty MBean Server (z.b. MX4J) Das MAEXO Switchboard Dynamisches Auffinden und Registrieren von MBean- Serverinstanzen Dynamisches Registrieren und Enaernen von MBeans Das Konzept: MBeans werden nicht direkt am MBean- Server registriert sondern als Service an der OSGi Service Registry 23

Das (wirklich einfache) Programmiermodell Expor%eren der MBean- Interfaces als OSGi- Service Defini%on des ObjectName einer MBean als Service- Property /** * The bundle activator. */ public class Activator implements BundleActivator { public final void start(bundlecontext bundlecontext) throws Exception { // register MBean as service Dictionary<String, Object> publisherproperties = new Hashtable<String, Object>(); publisherproperties.put("objectname","com.buschmais.maexo.sample:type=servicepublisher"); this.mymbeanserviceref = bundlecontext.registerservice( ServicePublisherMBean.class.getName(), new ServicePublisher(bundleContext), publisherproperties)... 24

Nutzung des Programmiermodells mit Spring Dynamic Modules <!-- Declare the instance of the MBean implementation. --> <bean class="com.buschmais.maexo.samples.spring.mbean.sample" /> <osgi:service interface="com.buschmais.maexo.samples.spring.mbean.samplembean"> <osgi:service-properties> <entry key="objectname" value="com.buschmais.maexo.sample:type=samplembean" /> </osgi:service-properties> </osgi:service> 25

Nutzung des Programmiermodells mit OSGi Declara%ve Services <implementation class="com.buschmais.maexo.samples.ds.mbean.sample" /> <property name="objectname" value="com.buschmais.maexo.sample:type=samplembean" /> <service> <provide interface="com.buschmais.maexo.samples.ds.mbean.samplembean" /> </service> 26

Was ist MAEXO noch? Bereitstellen der OSGi Core Services als MBean BundleMBean FrameworkMBean PackageAdminMBean ServiceMBean StartLevelMBean Out- of- the- Box MX4J HTTP- Managementkonsole MAEXO Commons MBean Support 27

Demo MAEXO im Einsatz 28

Ausblick The next MAEXO 29

Impor%eren von MBeans über remote MBean- Server Connec%on Weitere OSGi Services als MBean Configura%onAdmin (fast fer%g ;- ) ) Preferences OSGi Bundle Repository... OSGi R4.2 konforme Implemen%erung definierter MBeans 30

Loslegen Infos zum Durchstarten 31

MAEXO bei GoogleCode mit Doku, Screencast, Maven- Repository,... hqp://maexo.googlecode.com OSGi Alliance mit Spezifika%onstexten, News, etc. hqp://www.osgi.org Java Management Extension bei Sun hqp://java.sun.com/javase/technologies/core/mntr- mgmt/ javamanagement/ 32

Das war s. Vielen Dank! 33