SlideShare a Scribd company logo
1 of 40
Download to read offline
Gerd Kachel, Stefan Kachel, Ksenija Nitsche-
Brodnjan | kachel GmbH, www.kachel.biz
Migration from Java EE
Application Server to Server-
side OSGi for Process
Management and Event
Handling
Content
• Migration problem areas
• Requirements
• Migration solutions and patterns
• Lessions learned
• Wish list
Motivation for migration
• Migrate from GINGER to Roots
– Paradigm reduction: Process
Management, Messaging, and
Event Processing → Event
Processing
–Older components became hard to
maintain, needed some re-
engineering
–CTO would like to have something
new 
Problem Areas
Why OSGi?
• Best support for:
– Modularisation
– Service-orientation
– Component dependencies
• A lot of useful predefined services
• Open source implementations
available
Problem Areas
Existing Product: GINGER
Problem Areas
Software Engineer
Administrator / User
Process DesignerProcess Designer
Console / MonitorConsole / Monitor
GINGER Server based on JBoss 4
JBI
Transfer
JBI
Transfer MonitoringMonitoring GSBGSBProcess
Engine
Process
Engine
Convert
SDOM
Convert
SDOM
RepositoryRepository
Standards:
WfMC, JEE,
BPMN
Existing Software Structure
Problem Areas
Components
(jars)
Modules
(JBoss MBean
services)
How to map to OSGi?
Existing Software Structure
Problem Areas
How to map to OSGi?
Ginger/JBoss
• Ginger/JBoss are composed of
functional components and modules
(FCM)
• Problems to solve
– Find functional substitutes in OSGi
– Identify FCM to embed in OSGi
– Identify FCM to port to OSGi
– Identify new FCM to be
implemented
Problem Areas
Existing Applications
Problem Space
Plug-ins are POJOs:
How to map to OSGi?
GINGER V
Cobol
System
GINGER P
ACSV
BEV
Legend:
Process
Plug-in
Gate
(Messaging)
Connector
(Messaging)
Process
Activation
EDIEntry
EDIProcessing
EDI
XT
CO
1
2
3
4
5
Summary: Problem Areas
• Two kinds of software
– Product
– Applications of the product
• Two major problem areas
– Mapping of software structure
– Mapping of functional building
blocks
Problem Areas
Requirements
• Overall requirements
– Minimum cost
•Re-use as much as possible
•Replace old components by
OSGi technology
• Overall OSGi requirements
– Use of Equinox (as starting point);
today part of Eclipse RT
– Use of declarative services Requirements
Migration Solutions / Patterns
Migration Solutions
Product
Software Structure
(PS)
Application
Functionality
(AF)
Application
Software Structure
(AS)
Product
Functionality
(PF)
Derived from problem areas:
Map Components to Bundles
Migration Solutions
PS
AF
AS
PF
Components
(jars)
Mappings:
• Intuitive:
Component → OSGi
Bundle
• One to one: for good
software designs
Bad Software Designs
Migration Solutions
PS
AF
AS
PF
• JBoss flat class loading
allows mud, e.g.
dependency cycles
• OSGi forces good
hierarchical software
designs
→ re-engineering of
components to hierachical
design
Bundle Design
Migration Solutions
PS
AF
AS
PF
• Old components were collections of
packages
• Now, benefit from bundles:
– Activator
– Bundle respectively package
dependencies
– Hide internals, export packages to be
used by other bundles:
•Some adaptions required on
component packages
•Optional: add used libraries locally
to bundle
Map Modules to Bundles
Migration Solutions
PS
AF
AS
PF
Modules
(JBoss MBean services)
Mappings:
• Module → Bundle
• Modules: good software
designs area
• Bundle design same as
for components
• Add-ons required for
services
Map MBean Services to Services
Migration Solutions
PS
AF
AS
PF
• <server>
• <mbean code="biz.kachel.ginger.modules.diaconnection.gmodule.
• DiamantConnection"
name="biz.kachel.ginger:service=DiamantConnection">
<!-- configuration attributes (and methods) -->
• <attribute name="MasterDatabase">sasystem</attribute>
…
• <depends>biz.kachel.ginger:service=system</depends>
• </mbean>
• </server>
Map one to one to Declarative Services in
OSGi
Details on Service Mapping
Migration Solutions
PS
AF
AS
PF
• MBean service description
→ component service description
• MBean attributes
→ service properties
• MBean methods
→ to be provided as service interface
• MBean dependencies
→ referenced services
Special Features on Modules
Migration Solutions
PS
AF
AS
PF
• Modules with MBeans
→ Bundles with Component Services
• GModule = Ginger Module:
– Wrapper for dependency injection
•JBoss MBean Services
•Spring Beans
•Direct GModule implementation
→ Allows set of modules to be deployed
as one bundle
Module Groups
Migration Solutions
PS
AF
AS
PF
Common for porting using a dependency injection
framework (DIF):
• Keep set or sub-set of modules as one bundle
• Import DIF or include DIF libraries into bundle
• Start DIF on your bundle within bundle activator
• Export packages as externally required
• Provide services as externally required
That is great for porting to keep efforts low!
Third Party Software
Migration Solutions
PS
AF
AS
PF
jars: wrap into
bundles
JEE services: find
OSGi-like
equivalents, see
below
Summary: Product Structure
Migration Solutions
PS
AF
AS
PF
• Mapping of components, modules, and
jars to bundles
• Mapping of MBeans to declarative
services
• Bundle benefits support a good software
design
Application Software Structure
Migration Solutions
PS
AF
AS
PF
• Migration mappings are the same as for
the product structure
• In addition, mapping is desired for
application code
– Provided by POJOs
POJOs from Messaging
Migration Solutions
PS
AF
AS
PF
<InputGate Name=„BDProcessTrigger" Type="FILE">
<FileInfo Format="Text">
<Path>..ListBaseDataImport</Path>
<File>BaseDataStart.txt</File>
</FileInfo>
<PlugIns>
<Class Name="biz.kachel.fair.BaseDataTransportPlugIns">
<Method Name="readVTLs"/>
</Class>
<Class Name="biz.kachel.fair.ApplicationLog">
<Method Name="work" Configuration="xml"/>
</Class>
</PlugIns>
</InputGate>
POJOs from Process Engine
Migration Solutions
PS
AF
AS
PF
<Application Id="clearSubCatalog_APP" Name="clearSubCatalog">
<FormalParameters>
<FormalParameter Id="CatalogSubName_FP" Mode="IN">
<DataType>
<BasicType Type="STRING"/>
</DataType>
</FormalParameter>
. . .
</FormalParameters>
<ExtendedAttributes>
<ExtendedAttribute Name="Toolname"
Value="clearSubCatalog"/>
<ExtendedAttribute Name="Tooltype"
Value="biz.kachel.fair.backbone.PlugInFurninetExport"/>
<ExtendedAttribute Name="ExecutionFrame" Value="server"/>
</ExtendedAttributes>
</Application>
Common POJO Mapping
Migration Solutions
PS
AF
AS
PF
• Ginger/JBoss with messaging (MSG) and process
engine (PE):
– One class loader
– Object instances are created via JAVA
reflection API
• Roots/OSGi:
– Bundle class loading
– Such modules as MSG and PE are provided as
bundle
– POJO is part of application bundle
– Problem:
•MSG or PE are not aware of application
code bundles
Common POJO Solution
Migration Solutions
PS
AF
AS
PF
Service Registry
Bundle i
POJO as service
POJO
register
Using Bundle
request
service
i.e. Roots Event
Manager
Summary: Application Structure
Migration Solutions
PS
AF
AS
PF
• Mapping of POJOs
– Provide POJO as service, service
factory, or service providing POJO
factory
– Alternative:
•fragments (limited)
•not part of specification, e.g.
Extensions
Product Functionality
Migration Solutions
PS
AF
AS
PF
• JBoss:
– Look for substitute
• Ginger to Roots
– Migrated according to software
structure mappings
– Look for substitutes
JBoss Substitutes
Migration Solutions
PS
AF
AS
PF
JBoss Roots (OSGi, Eclipse RT)
Tomcat HTTP Service, Jetty
WebService Remote Services, Riena
Hibernate Hibernate
EJB -
log4j Roots Logging, Events (DB-
Track)
GINGER Substitutes
Migration Solutions
PS
AF
AS
PF
GINGER Roots (OSGi, Eclipse RT)
Core OSGi Core, Compendium
partially
Process Engine Event Manager
Messaging Event Manager
Event Engine,
Monitoring
Event Manager, Event Admin
UPnP UPnP Device Service
Convert Convert
GSB Remote Services, Riena
Port to Event Processing
Migration Solutions
PS
AF
AS
PF
• Ginger Messaging and Process Engine are
substituted by Roots Event Processing
(Event Manager)
• In addition: migrate messaging gates to
pro-active or re-active event processors
Google Web Toolkit Migration
Migration Solutions
PS
AF
AS
PF
GWT Bundle
GWT Client
Application
GWT Server
Application
(1) uses
(2) calls
(3) loads
class
Solve class loading problem!
→ Equinox Budy Class loading
Summary: Product Functionality
Migration Solutions
PS
AF
AS
PF
• Used main JBoss and main Ginger
components are directly substituted by
OSGi and Eclipse RT components
• Direct porting according to migration
rules
• Concept shot to event processing
Application Functionality
Migration Solutions
PS
AF
AS
PF
• Map messaging models and processes to
event processes
• Map POJOs to services
• Add some glue if necessary
Lessions Learned
Lessions Learned
• Drawbacks
• Benefits
• Patterns
• Costs
Drawbacks
Lessions Learned
• Need invest in learning curve: about 4
weeks per person
• Non modularised designs are costly to
migrate
• Bundles and services require
implementation overhead: about 15 to 30
min per part
Benefits and Patterns
Lessions Learned
• Benefits
– OSGi specification and implementation
provides rich functionality
– Add-ons by plattform, e.g. Eclipse RT
– Reduced software size
– OSGi forces stronger design rules
(good designs)
– Fine grained modularisation
• Migration patterns
– As shown above: components,
modules, POJOs
Migrations Costs
Lessions Learned
• Learning curve: about 1 month per
person
• GINGER core to one bundle: 1 person day
(pd)
• GINGER module to bundle: about 1 pd
• Substitutes, new bundles, adaptions, test:
65 pd
• Total effort: about 110 pd (Ginger total
development effort is about 2000 pd)
Wish List
Wish List
• Declarative services via annotations
• Open implementation by specifications,
e.g. call back or persistence layer for User
Admin Service or Preferences Service
• Extend Event Admin features:
– Open event property behaviour, e.g.
event persistence
– Open event processing modells

More Related Content

What's hot

What's hot (20)

An introduction to the office devpnp community initiative
An introduction to the office devpnp community initiativeAn introduction to the office devpnp community initiative
An introduction to the office devpnp community initiative
 
DevOps Culture & Enablement with Postgres Plus Cloud Database
DevOps Culture & Enablement with Postgres Plus Cloud DatabaseDevOps Culture & Enablement with Postgres Plus Cloud Database
DevOps Culture & Enablement with Postgres Plus Cloud Database
 
The Primavera suite how the tools work together - Oracle Primavera Collabor...
The Primavera suite   how the tools work together - Oracle Primavera Collabor...The Primavera suite   how the tools work together - Oracle Primavera Collabor...
The Primavera suite how the tools work together - Oracle Primavera Collabor...
 
SharePoint Migration - To Be Or Not To Be ‘In The Cloud’
SharePoint Migration - To Be Or Not To Be ‘In The Cloud’ SharePoint Migration - To Be Or Not To Be ‘In The Cloud’
SharePoint Migration - To Be Or Not To Be ‘In The Cloud’
 
Daniel Ridder ABAP Core Data Services No Pain, No Gain
Daniel Ridder ABAP Core Data Services No Pain, No GainDaniel Ridder ABAP Core Data Services No Pain, No Gain
Daniel Ridder ABAP Core Data Services No Pain, No Gain
 
Content Migration by Phase
Content Migration by PhaseContent Migration by Phase
Content Migration by Phase
 
What's new in IBM BPM 8.5.7
What's new in IBM BPM 8.5.7What's new in IBM BPM 8.5.7
What's new in IBM BPM 8.5.7
 
Introduction to Activiti
Introduction to ActivitiIntroduction to Activiti
Introduction to Activiti
 
Sap HCI online training
Sap HCI online trainingSap HCI online training
Sap HCI online training
 
Introducing Zeebe.io at Camunda Meetup Vienna 10/2017
Introducing Zeebe.io at Camunda Meetup Vienna 10/2017Introducing Zeebe.io at Camunda Meetup Vienna 10/2017
Introducing Zeebe.io at Camunda Meetup Vienna 10/2017
 
Minimize Headaches with Your Postgres Deployment
Minimize Headaches with Your Postgres DeploymentMinimize Headaches with Your Postgres Deployment
Minimize Headaches with Your Postgres Deployment
 
All Aboard the Databus
All Aboard the DatabusAll Aboard the Databus
All Aboard the Databus
 
Active/Active Database Solutions with Log Based Replication in xDB 6.0
Active/Active Database Solutions with Log Based Replication in xDB 6.0Active/Active Database Solutions with Log Based Replication in xDB 6.0
Active/Active Database Solutions with Log Based Replication in xDB 6.0
 
Activiti bpm
Activiti bpmActiviti bpm
Activiti bpm
 
Fishbowl Solutions' Assessment and Scoping Overview
Fishbowl Solutions' Assessment and Scoping OverviewFishbowl Solutions' Assessment and Scoping Overview
Fishbowl Solutions' Assessment and Scoping Overview
 
Migrating from Oracle to Postgres
Migrating from Oracle to PostgresMigrating from Oracle to Postgres
Migrating from Oracle to Postgres
 
Optimizing Open Source for Greater Database Savings & Control
Optimizing Open Source for Greater Database Savings & ControlOptimizing Open Source for Greater Database Savings & Control
Optimizing Open Source for Greater Database Savings & Control
 
What's new in IBM BPM 8.5.7 CF2017.06
What's new in IBM BPM 8.5.7 CF2017.06What's new in IBM BPM 8.5.7 CF2017.06
What's new in IBM BPM 8.5.7 CF2017.06
 
Whats New in Postgres 12
Whats New in Postgres 12Whats New in Postgres 12
Whats New in Postgres 12
 
Change management in hybrid landscapes
Change management in hybrid landscapesChange management in hybrid landscapes
Change management in hybrid landscapes
 

Viewers also liked

Transaction Control – a Functional Approach to Modular Transaction Management...
Transaction Control – a Functional Approach to Modular Transaction Management...Transaction Control – a Functional Approach to Modular Transaction Management...
Transaction Control – a Functional Approach to Modular Transaction Management...
mfrancis
 
OSGi for European and Japanese smart cities - experiences and lessons learnt ...
OSGi for European and Japanese smart cities - experiences and lessons learnt ...OSGi for European and Japanese smart cities - experiences and lessons learnt ...
OSGi for European and Japanese smart cities - experiences and lessons learnt ...
mfrancis
 

Viewers also liked (8)

Getting to the Next Level with Eclipse Concierge - Jan Rellermeyer + Tim Verb...
Getting to the Next Level with Eclipse Concierge - Jan Rellermeyer + Tim Verb...Getting to the Next Level with Eclipse Concierge - Jan Rellermeyer + Tim Verb...
Getting to the Next Level with Eclipse Concierge - Jan Rellermeyer + Tim Verb...
 
Dockerizing apps for the Deployment Platform of the Month with OSGi - David B...
Dockerizing apps for the Deployment Platform of the Month with OSGi - David B...Dockerizing apps for the Deployment Platform of the Month with OSGi - David B...
Dockerizing apps for the Deployment Platform of the Month with OSGi - David B...
 
WebSockets and Equinox OSGi in a Servlet Container - Nedelcho Delchev
WebSockets and Equinox OSGi in a Servlet Container - Nedelcho DelchevWebSockets and Equinox OSGi in a Servlet Container - Nedelcho Delchev
WebSockets and Equinox OSGi in a Servlet Container - Nedelcho Delchev
 
Avoid the chaos - Handling 100+ OSGi Components - Balázs Zsoldos
Avoid the chaos - Handling 100+ OSGi Components - Balázs ZsoldosAvoid the chaos - Handling 100+ OSGi Components - Balázs Zsoldos
Avoid the chaos - Handling 100+ OSGi Components - Balázs Zsoldos
 
Transaction Control – a Functional Approach to Modular Transaction Management...
Transaction Control – a Functional Approach to Modular Transaction Management...Transaction Control – a Functional Approach to Modular Transaction Management...
Transaction Control – a Functional Approach to Modular Transaction Management...
 
Strategic and impactful events management
Strategic and impactful events managementStrategic and impactful events management
Strategic and impactful events management
 
OSGi for European and Japanese smart cities - experiences and lessons learnt ...
OSGi for European and Japanese smart cities - experiences and lessons learnt ...OSGi for European and Japanese smart cities - experiences and lessons learnt ...
OSGi for European and Japanese smart cities - experiences and lessons learnt ...
 
Event management
Event managementEvent management
Event management
 

Similar to OSGi Community Event 2010 - Migration from Java EE Application Server to Server-side OSGi for Process Management and Event Handling

Datasheet j bosspluginforrd
Datasheet j bosspluginforrdDatasheet j bosspluginforrd
Datasheet j bosspluginforrd
MidVision
 
Building A Product Assortment Recommendation Engine
Building A Product Assortment Recommendation EngineBuilding A Product Assortment Recommendation Engine
Building A Product Assortment Recommendation Engine
Databricks
 
Datasheet foldermanagementpluginforrd
Datasheet foldermanagementpluginforrdDatasheet foldermanagementpluginforrd
Datasheet foldermanagementpluginforrd
MidVision
 
Datasheet was pluginforrd
Datasheet was pluginforrdDatasheet was pluginforrd
Datasheet was pluginforrd
MidVision
 

Similar to OSGi Community Event 2010 - Migration from Java EE Application Server to Server-side OSGi for Process Management and Event Handling (20)

OSH01 - Developing SharePoint Framework Solutions for the Enterprise
OSH01 - Developing SharePoint Framework Solutions for the EnterpriseOSH01 - Developing SharePoint Framework Solutions for the Enterprise
OSH01 - Developing SharePoint Framework Solutions for the Enterprise
 
Implementing and Extending Oracle PLM Cloud for Gibson Overseas
Implementing and Extending Oracle PLM Cloud for Gibson OverseasImplementing and Extending Oracle PLM Cloud for Gibson Overseas
Implementing and Extending Oracle PLM Cloud for Gibson Overseas
 
SAP ByDesign Development
SAP ByDesign DevelopmentSAP ByDesign Development
SAP ByDesign Development
 
Datasheet j bosspluginforrd
Datasheet j bosspluginforrdDatasheet j bosspluginforrd
Datasheet j bosspluginforrd
 
SPUnite17 Building Great Client Side Web Parts with SPFx
SPUnite17 Building Great Client Side Web Parts with SPFxSPUnite17 Building Great Client Side Web Parts with SPFx
SPUnite17 Building Great Client Side Web Parts with SPFx
 
Expert guidance on migrating from magento 1 to magento 2
Expert guidance on migrating from magento 1 to magento 2Expert guidance on migrating from magento 1 to magento 2
Expert guidance on migrating from magento 1 to magento 2
 
Real-world software design practices when developing ASP.NET web systems by B...
Real-world software design practices when developing ASP.NET web systems by B...Real-world software design practices when developing ASP.NET web systems by B...
Real-world software design practices when developing ASP.NET web systems by B...
 
ASP.NET Core For The Agile Enterprise
ASP.NET Core For The Agile EnterpriseASP.NET Core For The Agile Enterprise
ASP.NET Core For The Agile Enterprise
 
Tokyo Azure Meetup #7 - Introduction to Serverless Architectures with Azure F...
Tokyo Azure Meetup #7 - Introduction to Serverless Architectures with Azure F...Tokyo Azure Meetup #7 - Introduction to Serverless Architectures with Azure F...
Tokyo Azure Meetup #7 - Introduction to Serverless Architectures with Azure F...
 
Building A Product Assortment Recommendation Engine
Building A Product Assortment Recommendation EngineBuilding A Product Assortment Recommendation Engine
Building A Product Assortment Recommendation Engine
 
SharePoint Connections Conference Amsterdam - Pitfalls and success factors of...
SharePoint Connections Conference Amsterdam - Pitfalls and success factors of...SharePoint Connections Conference Amsterdam - Pitfalls and success factors of...
SharePoint Connections Conference Amsterdam - Pitfalls and success factors of...
 
Azure App Modernization
Azure App ModernizationAzure App Modernization
Azure App Modernization
 
DWX 2023 - Datenbank-Schema Deployment im Kubernetes Release
DWX 2023 - Datenbank-Schema Deployment im Kubernetes ReleaseDWX 2023 - Datenbank-Schema Deployment im Kubernetes Release
DWX 2023 - Datenbank-Schema Deployment im Kubernetes Release
 
(ATS6-DEV02) Web Application Strategies
(ATS6-DEV02) Web Application Strategies(ATS6-DEV02) Web Application Strategies
(ATS6-DEV02) Web Application Strategies
 
Datasheet foldermanagementpluginforrd
Datasheet foldermanagementpluginforrdDatasheet foldermanagementpluginforrd
Datasheet foldermanagementpluginforrd
 
P4 Branching Overview
P4 Branching OverviewP4 Branching Overview
P4 Branching Overview
 
COGNOS ANALYTICS
COGNOS ANALYTICSCOGNOS ANALYTICS
COGNOS ANALYTICS
 
Azure DevOps for Developers
Azure DevOps for DevelopersAzure DevOps for Developers
Azure DevOps for Developers
 
Datasheet was pluginforrd
Datasheet was pluginforrdDatasheet was pluginforrd
Datasheet was pluginforrd
 
Logic Apps: El Poder de la nueva Integración (por Félix Mondelo)
Logic Apps: El Poder de la nueva Integración (por Félix Mondelo) Logic Apps: El Poder de la nueva Integración (por Félix Mondelo)
Logic Apps: El Poder de la nueva Integración (por Félix Mondelo)
 

More from mfrancis

Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
mfrancis
 
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...
mfrancis
 
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
mfrancis
 
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
mfrancis
 

More from mfrancis (20)

Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...
Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...
Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...
 
OSGi and Java 9+ - BJ Hargrave (IBM)
OSGi and Java 9+ - BJ Hargrave (IBM)OSGi and Java 9+ - BJ Hargrave (IBM)
OSGi and Java 9+ - BJ Hargrave (IBM)
 
Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)
Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)
Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)
 
OSGi for the data centre - Connecting OSGi to Kubernetes - Frank Lyaruu
OSGi for the data centre - Connecting OSGi to Kubernetes - Frank LyaruuOSGi for the data centre - Connecting OSGi to Kubernetes - Frank Lyaruu
OSGi for the data centre - Connecting OSGi to Kubernetes - Frank Lyaruu
 
Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...
Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...
Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...
 
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...
 
A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...
A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...
A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...
 
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)
 
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
 
OSGi CDI Integration Specification - Ray Augé (Liferay)
OSGi CDI Integration Specification - Ray Augé (Liferay)OSGi CDI Integration Specification - Ray Augé (Liferay)
OSGi CDI Integration Specification - Ray Augé (Liferay)
 
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...
 
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
 
It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...
It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...
It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...
 
Popular patterns revisited on OSGi - Christian Schneider (Adobe)
Popular patterns revisited on OSGi - Christian Schneider (Adobe)Popular patterns revisited on OSGi - Christian Schneider (Adobe)
Popular patterns revisited on OSGi - Christian Schneider (Adobe)
 
Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)
Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)
Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)
 
OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)
OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)
OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)
 
Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...
Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...
Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...
 
MicroProfile, OSGi was meant for this - Ray Auge (Liferay)
MicroProfile, OSGi was meant for this - Ray Auge (Liferay)MicroProfile, OSGi was meant for this - Ray Auge (Liferay)
MicroProfile, OSGi was meant for this - Ray Auge (Liferay)
 
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
 
How to connect your OSGi application - Dirk Fauth (Bosch)
How to connect your OSGi application - Dirk Fauth (Bosch)How to connect your OSGi application - Dirk Fauth (Bosch)
How to connect your OSGi application - Dirk Fauth (Bosch)
 

Recently uploaded

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 

Recently uploaded (20)

A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 

OSGi Community Event 2010 - Migration from Java EE Application Server to Server-side OSGi for Process Management and Event Handling

  • 1. Gerd Kachel, Stefan Kachel, Ksenija Nitsche- Brodnjan | kachel GmbH, www.kachel.biz Migration from Java EE Application Server to Server- side OSGi for Process Management and Event Handling
  • 2. Content • Migration problem areas • Requirements • Migration solutions and patterns • Lessions learned • Wish list
  • 3. Motivation for migration • Migrate from GINGER to Roots – Paradigm reduction: Process Management, Messaging, and Event Processing → Event Processing –Older components became hard to maintain, needed some re- engineering –CTO would like to have something new  Problem Areas
  • 4. Why OSGi? • Best support for: – Modularisation – Service-orientation – Component dependencies • A lot of useful predefined services • Open source implementations available Problem Areas
  • 5. Existing Product: GINGER Problem Areas Software Engineer Administrator / User Process DesignerProcess Designer Console / MonitorConsole / Monitor GINGER Server based on JBoss 4 JBI Transfer JBI Transfer MonitoringMonitoring GSBGSBProcess Engine Process Engine Convert SDOM Convert SDOM RepositoryRepository Standards: WfMC, JEE, BPMN
  • 6. Existing Software Structure Problem Areas Components (jars) Modules (JBoss MBean services) How to map to OSGi?
  • 7. Existing Software Structure Problem Areas How to map to OSGi?
  • 8. Ginger/JBoss • Ginger/JBoss are composed of functional components and modules (FCM) • Problems to solve – Find functional substitutes in OSGi – Identify FCM to embed in OSGi – Identify FCM to port to OSGi – Identify new FCM to be implemented Problem Areas
  • 9. Existing Applications Problem Space Plug-ins are POJOs: How to map to OSGi? GINGER V Cobol System GINGER P ACSV BEV Legend: Process Plug-in Gate (Messaging) Connector (Messaging) Process Activation EDIEntry EDIProcessing EDI XT CO 1 2 3 4 5
  • 10. Summary: Problem Areas • Two kinds of software – Product – Applications of the product • Two major problem areas – Mapping of software structure – Mapping of functional building blocks Problem Areas
  • 11. Requirements • Overall requirements – Minimum cost •Re-use as much as possible •Replace old components by OSGi technology • Overall OSGi requirements – Use of Equinox (as starting point); today part of Eclipse RT – Use of declarative services Requirements
  • 12. Migration Solutions / Patterns Migration Solutions Product Software Structure (PS) Application Functionality (AF) Application Software Structure (AS) Product Functionality (PF) Derived from problem areas:
  • 13. Map Components to Bundles Migration Solutions PS AF AS PF Components (jars) Mappings: • Intuitive: Component → OSGi Bundle • One to one: for good software designs
  • 14. Bad Software Designs Migration Solutions PS AF AS PF • JBoss flat class loading allows mud, e.g. dependency cycles • OSGi forces good hierarchical software designs → re-engineering of components to hierachical design
  • 15. Bundle Design Migration Solutions PS AF AS PF • Old components were collections of packages • Now, benefit from bundles: – Activator – Bundle respectively package dependencies – Hide internals, export packages to be used by other bundles: •Some adaptions required on component packages •Optional: add used libraries locally to bundle
  • 16. Map Modules to Bundles Migration Solutions PS AF AS PF Modules (JBoss MBean services) Mappings: • Module → Bundle • Modules: good software designs area • Bundle design same as for components • Add-ons required for services
  • 17. Map MBean Services to Services Migration Solutions PS AF AS PF • <server> • <mbean code="biz.kachel.ginger.modules.diaconnection.gmodule. • DiamantConnection" name="biz.kachel.ginger:service=DiamantConnection"> <!-- configuration attributes (and methods) --> • <attribute name="MasterDatabase">sasystem</attribute> … • <depends>biz.kachel.ginger:service=system</depends> • </mbean> • </server> Map one to one to Declarative Services in OSGi
  • 18. Details on Service Mapping Migration Solutions PS AF AS PF • MBean service description → component service description • MBean attributes → service properties • MBean methods → to be provided as service interface • MBean dependencies → referenced services
  • 19. Special Features on Modules Migration Solutions PS AF AS PF • Modules with MBeans → Bundles with Component Services • GModule = Ginger Module: – Wrapper for dependency injection •JBoss MBean Services •Spring Beans •Direct GModule implementation → Allows set of modules to be deployed as one bundle
  • 20. Module Groups Migration Solutions PS AF AS PF Common for porting using a dependency injection framework (DIF): • Keep set or sub-set of modules as one bundle • Import DIF or include DIF libraries into bundle • Start DIF on your bundle within bundle activator • Export packages as externally required • Provide services as externally required That is great for porting to keep efforts low!
  • 21. Third Party Software Migration Solutions PS AF AS PF jars: wrap into bundles JEE services: find OSGi-like equivalents, see below
  • 22. Summary: Product Structure Migration Solutions PS AF AS PF • Mapping of components, modules, and jars to bundles • Mapping of MBeans to declarative services • Bundle benefits support a good software design
  • 23. Application Software Structure Migration Solutions PS AF AS PF • Migration mappings are the same as for the product structure • In addition, mapping is desired for application code – Provided by POJOs
  • 24. POJOs from Messaging Migration Solutions PS AF AS PF <InputGate Name=„BDProcessTrigger" Type="FILE"> <FileInfo Format="Text"> <Path>..ListBaseDataImport</Path> <File>BaseDataStart.txt</File> </FileInfo> <PlugIns> <Class Name="biz.kachel.fair.BaseDataTransportPlugIns"> <Method Name="readVTLs"/> </Class> <Class Name="biz.kachel.fair.ApplicationLog"> <Method Name="work" Configuration="xml"/> </Class> </PlugIns> </InputGate>
  • 25. POJOs from Process Engine Migration Solutions PS AF AS PF <Application Id="clearSubCatalog_APP" Name="clearSubCatalog"> <FormalParameters> <FormalParameter Id="CatalogSubName_FP" Mode="IN"> <DataType> <BasicType Type="STRING"/> </DataType> </FormalParameter> . . . </FormalParameters> <ExtendedAttributes> <ExtendedAttribute Name="Toolname" Value="clearSubCatalog"/> <ExtendedAttribute Name="Tooltype" Value="biz.kachel.fair.backbone.PlugInFurninetExport"/> <ExtendedAttribute Name="ExecutionFrame" Value="server"/> </ExtendedAttributes> </Application>
  • 26. Common POJO Mapping Migration Solutions PS AF AS PF • Ginger/JBoss with messaging (MSG) and process engine (PE): – One class loader – Object instances are created via JAVA reflection API • Roots/OSGi: – Bundle class loading – Such modules as MSG and PE are provided as bundle – POJO is part of application bundle – Problem: •MSG or PE are not aware of application code bundles
  • 27. Common POJO Solution Migration Solutions PS AF AS PF Service Registry Bundle i POJO as service POJO register Using Bundle request service i.e. Roots Event Manager
  • 28. Summary: Application Structure Migration Solutions PS AF AS PF • Mapping of POJOs – Provide POJO as service, service factory, or service providing POJO factory – Alternative: •fragments (limited) •not part of specification, e.g. Extensions
  • 29. Product Functionality Migration Solutions PS AF AS PF • JBoss: – Look for substitute • Ginger to Roots – Migrated according to software structure mappings – Look for substitutes
  • 30. JBoss Substitutes Migration Solutions PS AF AS PF JBoss Roots (OSGi, Eclipse RT) Tomcat HTTP Service, Jetty WebService Remote Services, Riena Hibernate Hibernate EJB - log4j Roots Logging, Events (DB- Track)
  • 31. GINGER Substitutes Migration Solutions PS AF AS PF GINGER Roots (OSGi, Eclipse RT) Core OSGi Core, Compendium partially Process Engine Event Manager Messaging Event Manager Event Engine, Monitoring Event Manager, Event Admin UPnP UPnP Device Service Convert Convert GSB Remote Services, Riena
  • 32. Port to Event Processing Migration Solutions PS AF AS PF • Ginger Messaging and Process Engine are substituted by Roots Event Processing (Event Manager) • In addition: migrate messaging gates to pro-active or re-active event processors
  • 33. Google Web Toolkit Migration Migration Solutions PS AF AS PF GWT Bundle GWT Client Application GWT Server Application (1) uses (2) calls (3) loads class Solve class loading problem! → Equinox Budy Class loading
  • 34. Summary: Product Functionality Migration Solutions PS AF AS PF • Used main JBoss and main Ginger components are directly substituted by OSGi and Eclipse RT components • Direct porting according to migration rules • Concept shot to event processing
  • 35. Application Functionality Migration Solutions PS AF AS PF • Map messaging models and processes to event processes • Map POJOs to services • Add some glue if necessary
  • 36. Lessions Learned Lessions Learned • Drawbacks • Benefits • Patterns • Costs
  • 37. Drawbacks Lessions Learned • Need invest in learning curve: about 4 weeks per person • Non modularised designs are costly to migrate • Bundles and services require implementation overhead: about 15 to 30 min per part
  • 38. Benefits and Patterns Lessions Learned • Benefits – OSGi specification and implementation provides rich functionality – Add-ons by plattform, e.g. Eclipse RT – Reduced software size – OSGi forces stronger design rules (good designs) – Fine grained modularisation • Migration patterns – As shown above: components, modules, POJOs
  • 39. Migrations Costs Lessions Learned • Learning curve: about 1 month per person • GINGER core to one bundle: 1 person day (pd) • GINGER module to bundle: about 1 pd • Substitutes, new bundles, adaptions, test: 65 pd • Total effort: about 110 pd (Ginger total development effort is about 2000 pd)
  • 40. Wish List Wish List • Declarative services via annotations • Open implementation by specifications, e.g. call back or persistence layer for User Admin Service or Preferences Service • Extend Event Admin features: – Open event property behaviour, e.g. event persistence – Open event processing modells