Andreas Mösching Senior IT Architekt Hewlett-Packard (Schweiz) GmbH HP Banking Service Center Bern andreas.moesching@rtc.ch

Ähnliche Dokumente
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

Das Interceptor Muster

OSGi: Anwendungsszenarien, Auswahlkriterien und Ausblick

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

Die Entwicklung des Open-Source. Source-Tools. zum Datenbankabgleich von Karsten Panier. Inhalt

Spring Dynamic Modules for OSGi Service Platforms

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

OSGi-basierte Webapplikationen Ein Erfahrungsbericht

MO 27. Aug. 2007, 17:00 UHR JAVA FRAMEWORKS TIPPS VON PROFI-GÄRTNERN GEGEN WILDWUCHS

Remote Eclipse RCP Management

Mit OSGi Webanwendungen entwickeln Was geht, was nicht?

Eignet sich Eclipse RCP als Enterprise Plattform? 2. Mai 2006 Lars Stucki & Edwin Steiner

Eclipse und Java Einheit 01: Einführung in Eclipse

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

Lösungen zum 2. Komplex

Björn Heinemann Leiter Entwicklung Energiewirtschaft

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

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

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

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

Software-Engineering und Optimierungsanwendungen in der Thermodynamik

Struts 2 Das Imperium schlägt zurück?

Glaube an die Existenz von Regeln für Vergleiche und Kenntnis der Regeln

OpenSource bei PostFinance Einsatz in der Software Entwicklung. informativ

Fachapplikationen in heterogenen IT Landschaften

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

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

Database Change Management für Continuous Delivery. Diana Lander und Andreas Falk NovaTec Consulting GmbH

AGILE APPLICATION LIFECYCLE MANAGEMENT IM ATLASSIAN ECOSYSTEM

ADVISOR - Moodle: Eine E-Learning Anwendung mit eduweaver. Sabrina Fochler Universität Wien. 15. September, 2006

PUBLIC Dokumentationsübersicht

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

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

Informationen zur Verwendung von Visual Studio und cmake

Web Services Security

Inhalt. 1 Übersicht. 2 Anwendungsbeispiele. 3 Einsatzgebiete. 4 Systemanforderungen. 5 Lizenzierung. 6 Installation.

MOBILE ON POWER MACHEN SIE IHRE ANWENDUNGEN MOBIL?!

CADEMIA: Einrichtung Ihres Computers unter Mac OS X

Kurzanleitung Installation der Zend Studio Sprachpakete

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

Java Reflection. Meta-Programmierung mit der java.lang.reflection API. Prof. Dr. Nikolaus Wulff

Wie konfiguiriert man Eclipse (mit oder ohne Plugin) Erich Ehses

Christian Kühnel, BMW Group AGILE ENTWICKLUNG VON FAHRERASSISTENZSOFTWARE. AGILE CARS 2014.

Fragen Arthur Zaczek. Apr 2015

SERVICE SUCHE ZUR UNTERSTÜTZUNG

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

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

eclipse - Entwicklungsumgebung und mehr ETIS SS05

Java Kurs für Anfänger LMU SS09 Einheit 1 Javaumgebung

Java RMI Remote Method Invocation

Open Source IDE - eclipse ETIS SS04

Continuous Delivery in der Realität eines Großunternehmens

eclipse und Komponenten

Vorlesung Informatik II

2015 conject all rights reserved

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

SEW Übung EMFText. 1 Aufgabe. 2 Domänenbeschreibung. 3 Installation von Eclipse/EMFText. 4 Schritt-für-Schritt Anleitung. 4.

SCHALTEN SIE DEN DATENSCHUTZ EIN. EINFACH & EFFEKTIV.

indato Berner Architekten Treffen No. 1 Das Berner Architekten Treffen

Gussnummern-Lesesystem

[DvBROWSER] Offline-Viewer für [DvARCHIV] und [DvARCHIVpersonal] Version 2.2

Updateseite_BuV-PlugIn-NERZ-Gesamt

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

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

Die Eclipse Rich Client Platform. Martin Lippert Consultant und Coach

Einführung in Javadoc

Über uns. HostByYou Unternehmergesellschaft (haftungsbeschränkt), Ostrastasse 1, Meerbusch, Tel , Fax.

1 WEB ANALYTICS: PROFESSIONELLE WEB-ANALYSEN UND REPORTING FÜR IHR ONLINE MARKETING.

Anleitung zur Webservice Entwicklung unter Eclipse

Installation von NetBeans inkl. Glassfish Anwendungs-Server

SAP NetWeaver Gateway. 2013

BUILDNOTES TOPAL FINANZBUCHHALTUNG

Cross-Platform Mobile mit.net

Verwenden der Option Laufzettel

AK Medientechnologien Hello World. Josef Kolbitsch

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

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

Powershell DSC Oliver Ryf

Make-loses Java für mehr Produktivität: Das z 2 -Environment. Henning Blohm

Testen mit JUnit. Motivation

Android-Testautomatisierung mit Robotium

Nils Hartmann Gerd Wütherich. Build my bundle! oder: Es muss nicht immer PDE sein

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version September

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

ABI 4 EINE VISION V O R T R A G A N L Ä S S L I C H S P I K

1 Dedicated Firewall und Dedicated Content Security

Aussage: Das Seminar ist hilfreich für meine berufliche Entwicklung

Windows 10 - Probleme

Sehr geehrter Herr Pfarrer, sehr geehrte pastorale Mitarbeiterin, sehr geehrter pastoraler Mitarbeiter!

Gezielt über Folien hinweg springen

WebService in Java SE und EE

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

LEHRSTUHL FÜR DATENBANKEN

Architektur des agimatec-validation Frameworks

Remote Method Invocation

Visual Basic Express erstes Projekt anlegen

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

Herzlich Willkommen. Herzlich Willkommen. Effiziente Java Entwicklung für OpenOffice Folie 1

Transkript:

Eclipse Runtime (OSGi) als Plattform eines Swing Rich Client Andreas Mösching Senior IT Architekt Hewlett-Packard (Schweiz) GmbH HP Banking Service Center Bern andreas.moesching@rtc.ch

Zu meiner Person Verantwortlich für den Bau von Softwarekomponenten (FWs), für die Aus- und Weiterentwicklung von IBIS Architektur und Design-Beratung Verantwortlich für die Migration des IBIS3GDesktops auf die Eclipse Runtime (OSGi)

IBIS3G Bankenplattform Die Bankenplattform IBIS3G deckt alle wichtigen Geschäftsfelder von Kantonal- und Universalbanken ab: Vom Kundenberater am Schalter bis hin zum Management.

IBIS3G Desktop

Herausforderungen Hoher Speicherbedarf Sehr grosser Klassenpfad Keine Kontrolle der Abhängigkeiten Nebeneffekte bei Änderungen in den Frameworks Instabil

Modularisierung in JAVA Module in Java Methoden Klassen Packages JAR s EAR s JSR 291: Dynamic Component Support for Java Establish a JCP specification for a dynamic component framework supporting existing Java SE environments based on the OSGi dynamic component model specifications.

OSGi Framework Besteht aus 4 Schichten Execution Environment Module Life-cycle Service

OSGi Framework Ein Bundle repräsentiert ein Modul/Komponente Ein Bundle ist ein JAR mit Manifest-File Das Manifest-File eines Bundles enthält: Beschreibung des Bundles Version Exported Packages (Public API) Required-Bundles (Abhängigkeiten) Activator (für die Kontrolle des Lifecycles) Programm Code (*.class Files)

OSGi Framework

OSGi Framework Bundle Life Cycle Installed: lesen des Manifests, registrieren der Extensions Resolved: alle Abhängigkeiten alle vorhanden Starting: eager/lazy activation Active

OSGi Framework Jedes Bundle hat einen Single Class Loader Der Bundle Class Space enthält folgende Classes: The parent class loader (normalerweise java.* packages aus dem boot classpath) All Required bundles The bundle's class path (public and private packages) Innerhalb des Bundle Class Space sollte ein Package nur genau einmal vorkommen

OSGi Framework A public private D public private B public private C public private

IBIS3G Desktop Modularisierung Sämtliche JAR s müssen als Bundle definiert werden Verwendete open Source SW muss auch als Bundle vorliegen www.eclipse.org/orbit ist ein Repository von bundled versions of third party libraries Wir unterscheiden zwei Arten von Bundles Source Bundles Plug-In Projekt basierend auf Source Code Binary Bundles Plugin-In als Wrapper eines JARs Bundling by Wrapping

IBIS3G Desktop Modularisierung (Layers) IBISDesktop basiert auf einer Schichten Architektur Jede Schicht ist in einem Feature definiert Runtime Feature SDK Feature Der automatische PDE-Build bildet basierend auf Features Täglich Builds (Nightly) Release Builds

IBIS3G Desktop Modularisierung (Layers) Product Integration Layers (Applications) konto_gui wvko_gui... JFW JMW / Infra Rosi Runtime (Eclipse)

IBIS3G Desktop Modularisierung (JARs) wvko_gui JFW wvko_gui public ch.rtc.jfw.desktop public desktop.xml xy.class

IBIS3G Desktop Modularisierung (Bundles) wvko_gui public wvko_gui JFW private ch.rtc.jfw.desktop public private

IBIS3G Desktop Modularisierung (Bundles) wvko_gui public Extension private Extension Point Registry Extension Point ch.rtc.jfw.desktop public private

IBIS3G Desktop Applikationsentwicklung... PDE JDT Host Platform Team Workspace Source Bundle 3 Source Bundle 2 Source Bundle 1 Eclipse Runtime / Resources OSGi (Equinox) compiles against Target Platform... Binary Bundle C Binary Bundle B Binary Bundle A OSGi (Equinox)

IBIS3G Desktop Applikationsentwicklung Host Platform Product Integration... PDE JDT Team Workspace Source Bundle 3 Source Bundle 2 Source Bundle 1 Eclipse Runtime / Resources OSGi (Equinox) compiles against Layers (Applications) konto_gui wvko_gui... JFW JMW / Infra Rosi Runtime (Eclipse)

IBIS3G Desktop Applikationsentwicklung Plattform Abstraction Layer (PAL) Kapselung der Eclipse-Runtime, OSGi Services Mittels PAL ist es möglich den Desktop herkömmlich (JVM) oder mit der Eclipse- Runtime zu starten Während der Migration war es nötig, mit beiden Modi fahren zu können Beinhaltet Helper für den Zugriff auf Eclipse oder Equinox Dienste

IBIS3G Desktop Applikationsentwicklung Starten des IBISDesktops Headless RCP Application public class Application implements IApplication { public Object start(iapplicationcontext context) throws Exception { args = context.getarguments(). get(iapplicationcontext.application_args); BaDsk_IBISDesktop.main(args);...... return IApplication.EXIT_OK; }

IBIS3G Desktop Produkt Erstellt wir ein komplettes vollständiges Produkt

Hürden bei der Modularisierung Java Reflection Zirkuläre Abhängigkeiten Doppelte Klassennamen Protected Zugriffe über mehrere JARs hinweg Unbekannte Abhängigkeiten Namenskonvention, Package Namen

Fortschritte durch die strenge Modularisierung Abhängigkeiten sind klar Die Entwickler sehen die Abhängigkeiten direkt Optimale Werkzeugunterstützung IBIS Desktop startet schneller Basis für ein umfangreiches Refactoring der FW gelegt Migration der Applikationen auf neue FW (API) kann schrittweise erfolgen Erstellen und Verteilen der Runtime bedeutend einfacher