SlideShare una empresa de Scribd logo
1 de 20
Descargar para leer sin conexión
© 2012 IBM Corporation
Liberate your components with OSGi services
One products journey through the Modularity Maturity Model
Alasdair Nottingham (not@uk.ibm.com)
WebSphere Application Server V8.5 Liberty Profile Development Lead
Tuesday, 10 April 12
© 2011 IBM Corporation
Modularity Maturity Model Summary
Level Name Summary
1 Ad Hoc Nothing
2 Modules Formal identity, decoupled from artifact
3 Modularity Formal module contracts, decoupled from identity
4 Loose-Coupling Services, semantic versioning, decoupled from
implementation
5 Devolution Modularity-aware repositories, collaboration,
governance, decoupled from ownership
6 Dynamism Life-cycle awareness and independence, decoupled
from time
Tuesday, 10 April 12
WebSphere Application Server
WAS V8
WAS V8.5 Liberty profile
(Alpha)
WAS V7 Feature
Pack for OSGi
Applications
© 2012 IBM Corporation
4
2005
2006
2007
2008
2009
2011
2010
2012
WAS V6
WAS V6.1
OSGi R4
WAS V7
OSGi R4 +
OSGi R4.2
OSGi R4.3
level 2
level 3
level 4/6
OSGi R4.2
Server
runtime used R4
Applications used
R4.2
Tuesday, 10 April 12
 Componentized build
 Components have identity and version
 Components produce a jar
© 2012 IBM Corporation
Starting point - build
4
interfaces implinterfaces
impl depends on
interfaces at build
time
Factory in
interfaces uses
Class.forName to
load impl at runtime
Tuesday, 10 April 12
© 2012 IBM Corporation
Component based runtime
 A Java Bean
 Implements a specific interface
 Init/start/stop/destroy phases
 Started in a specified order
 Makes use of:
–Class.getResources()
–Class.forName()
5
D
C
B
A
init/start stop/destroy
Tuesday, 10 April 12
© 2012 IBM Corporation
Move to “OSGi”
6
Jar A
Jar B
Jar C
Jar D
Jar A
Jar B
Jar C
Jar D
Content of Jar A-D
Option 1
Option 2
Tuesday, 10 April 12
© 2012 IBM Corporation
Moving Forward Five Years
 More bundles
 Smaller bundles
 Packages split across bundles a real issue
 Limits on how much processing can be deferred
 To much centralisation of control
 Remove some non-standard eclipse technology
–EMF
–Update Provisioner
7
Tuesday, 10 April 12
© 2012 IBM Corporation
Issues with Approach
 All bundles are singletons
 Support outside OSGi framework required
 No notification support
 Too many inefficient APIs
 Data read up front during initialization
 Many different extension patterns
8
Tuesday, 10 April 12
© 2012 IBM Corporation
Liberty Profile
 New server kernel
 Mostly the same code
 Exploit standards where possible
 Be dynamic, lightweight, lazy
9
equinox framework 3.7.2
equinox metatype 1.2.0felix scr 1.6.1 Config Admin R4.2
Backed
by simple XML.
“schema defined in
metatype
Feature Manager
Tuesday, 10 April 12
© 2012 IBM Corporation
Why services?
 OSGi Primitive
 Peer to peer
 Lifecycle
 Deferred Initialization
 Metadata driven service frameworks
10
Tuesday, 10 April 12
© 2012 IBM Corporation
Declarative Services
 XML Service Registration/Injection Framework
 Defines components
 Components are services.
 Config Admin integration
 Setup synchronously with bundle activation
 Annotations/bnd/xml
11
Tuesday, 10 April 12
© 2012 IBM Corporation
Blueprint
 XML Component Injection Framework
 Based on Spring
 Defines components
–Beans
–Services
–References
 Allows non-service components
 Extensible
 Asynchronous to bundle activation
 Service Damping
 5 minutes to die
12
Tuesday, 10 April 12
© 2012 IBM Corporation
When is optional truly optional?
13
Web
Container
transactions
naming
security
Optional,
multiple,
dynamic
Tuesday, 10 April 12
© 2012 IBM Corporation
Intermediaries
14
Archive
Web
Metadata
Ear Metadata
OSGi
Metadata
Optional,
multiple,
dynamic
Web
Container
Doesn’t
know about
specific
convertersNeeds an
ArchiveManager, know
the converters it cares
about
Tuesday, 10 April 12
© 2012 IBM Corporation
Mixing Services and Static API calls
15
Static
Class
Service A
Service B
Service C
Client
Tuesday, 10 April 12
© 2012 IBM Corporation
When is a Bundle ACTIVE?
 Services come and go
 Dynamically
 So what does ACTIVE really mean?
 Are we ready for the ready service?
16
Tuesday, 10 April 12
© 2012 IBM Corporation
Shutdown
 Synchronous for mandatory services
 Asynchronous for optional services
17
Service BService A Service C
Tuesday, 10 April 12
© 2012 IBM Corporation
Service versioning
18
Bundle A
version
1.0.1
Service
Client
Bundle A
version
1.0.0
Service
interface
Bundle
?
which
service
to use?
Tuesday, 10 April 12
© 2012 IBM Corporation
Conclusion
 Services are
–Powerful
–Flexible
–Lightweight
–Lazy
–Peer to Peer
 Complicated
 Totally worth it
19
Tuesday, 10 April 12
© 2012 IBM Corporation
Questions?
20
Tuesday, 10 April 12

Más contenido relacionado

La actualidad más candente

WSO2 Integration Platform - The most comprehensive integration platform for y...
WSO2 Integration Platform - The most comprehensive integration platform for y...WSO2 Integration Platform - The most comprehensive integration platform for y...
WSO2 Integration Platform - The most comprehensive integration platform for y...
WSO2
 
Cics Integration Approaches
Cics Integration ApproachesCics Integration Approaches
Cics Integration Approaches
nag.g
 
Comparing IIS and Apache - Questions and Answers
Comparing IIS and Apache - Questions and AnswersComparing IIS and Apache - Questions and Answers
Comparing IIS and Apache - Questions and Answers
butest
 
Restful Integration with WSO2 ESB
Restful Integration with WSO2 ESB Restful Integration with WSO2 ESB
Restful Integration with WSO2 ESB
WSO2
 

La actualidad más candente (20)

Microservices Technology Stack
Microservices Technology StackMicroservices Technology Stack
Microservices Technology Stack
 
Kentico CMS: A Case Study in Building for Today’s Web
Kentico CMS: A Case Study in Building for Today’s WebKentico CMS: A Case Study in Building for Today’s Web
Kentico CMS: A Case Study in Building for Today’s Web
 
Oracle SOA Suite Everywhere
Oracle SOA Suite EverywhereOracle SOA Suite Everywhere
Oracle SOA Suite Everywhere
 
Cf intro aug_2012_raja
Cf intro aug_2012_rajaCf intro aug_2012_raja
Cf intro aug_2012_raja
 
Understanding the WSO2 Platform
Understanding the WSO2 PlatformUnderstanding the WSO2 Platform
Understanding the WSO2 Platform
 
How to Split Your System into Microservices
How to Split Your System into MicroservicesHow to Split Your System into Microservices
How to Split Your System into Microservices
 
IIS for Developers
IIS for DevelopersIIS for Developers
IIS for Developers
 
How to Deploy WSO2 Enterprise Integrator in Containers
How to Deploy WSO2 Enterprise Integrator in ContainersHow to Deploy WSO2 Enterprise Integrator in Containers
How to Deploy WSO2 Enterprise Integrator in Containers
 
WSO2 Integration Platform - The most comprehensive integration platform for y...
WSO2 Integration Platform - The most comprehensive integration platform for y...WSO2 Integration Platform - The most comprehensive integration platform for y...
WSO2 Integration Platform - The most comprehensive integration platform for y...
 
Introduction to WSO2 Integration Platform
Introduction to WSO2 Integration PlatformIntroduction to WSO2 Integration Platform
Introduction to WSO2 Integration Platform
 
Deployment Patterns in WSO2 Enterprise Integrator
Deployment Patterns in WSO2 Enterprise IntegratorDeployment Patterns in WSO2 Enterprise Integrator
Deployment Patterns in WSO2 Enterprise Integrator
 
WSO2 Enterprise Integrator 101
WSO2 Enterprise Integrator 101WSO2 Enterprise Integrator 101
WSO2 Enterprise Integrator 101
 
Connect JavaEE to the cloud with JCA by Steve Millidge
Connect JavaEE to the cloud with JCA by Steve MillidgeConnect JavaEE to the cloud with JCA by Steve Millidge
Connect JavaEE to the cloud with JCA by Steve Millidge
 
2020-02-10 Java on Azure Solution Briefing
2020-02-10 Java on Azure Solution Briefing2020-02-10 Java on Azure Solution Briefing
2020-02-10 Java on Azure Solution Briefing
 
Cics Integration Approaches
Cics Integration ApproachesCics Integration Approaches
Cics Integration Approaches
 
Comparing IIS and Apache - Questions and Answers
Comparing IIS and Apache - Questions and AnswersComparing IIS and Apache - Questions and Answers
Comparing IIS and Apache - Questions and Answers
 
Restful Integration with WSO2 ESB
Restful Integration with WSO2 ESB Restful Integration with WSO2 ESB
Restful Integration with WSO2 ESB
 
iPlanet presentation
iPlanet presentationiPlanet presentation
iPlanet presentation
 
Assembling Enterprise 2.0 with Alfresco
Assembling Enterprise 2.0 with AlfrescoAssembling Enterprise 2.0 with Alfresco
Assembling Enterprise 2.0 with Alfresco
 
Oracle JET CRUD and ADF BC REST
Oracle JET CRUD and ADF BC RESTOracle JET CRUD and ADF BC REST
Oracle JET CRUD and ADF BC REST
 

Destacado

Using the OSGi Application Model on Mobile Devices with CLDC JVM - Dimitar Va...
Using the OSGi Application Model on Mobile Devices with CLDC JVM - Dimitar Va...Using the OSGi Application Model on Mobile Devices with CLDC JVM - Dimitar Va...
Using the OSGi Application Model on Mobile Devices with CLDC JVM - Dimitar Va...
mfrancis
 
Building LinkedIn's Next Generation Architecture with OSGi
Building LinkedIn's Next Generation  Architecture with OSGiBuilding LinkedIn's Next Generation  Architecture with OSGi
Building LinkedIn's Next Generation Architecture with OSGi
LinkedIn
 

Destacado (10)

Hints and Tips for Modularizing Existing Enterprise Applications (OSGi Commun...
Hints and Tips for Modularizing Existing Enterprise Applications (OSGi Commun...Hints and Tips for Modularizing Existing Enterprise Applications (OSGi Commun...
Hints and Tips for Modularizing Existing Enterprise Applications (OSGi Commun...
 
What's new in the OSGi Enterprise Release 5.0 - David Bosschaert and Tim Diek...
What's new in the OSGi Enterprise Release 5.0 - David Bosschaert and Tim Diek...What's new in the OSGi Enterprise Release 5.0 - David Bosschaert and Tim Diek...
What's new in the OSGi Enterprise Release 5.0 - David Bosschaert and Tim Diek...
 
Towards a Modularity Maturity Model
Towards a Modularity Maturity ModelTowards a Modularity Maturity Model
Towards a Modularity Maturity Model
 
Using the OSGi Application Model on Mobile Devices with CLDC JVM - Dimitar Va...
Using the OSGi Application Model on Mobile Devices with CLDC JVM - Dimitar Va...Using the OSGi Application Model on Mobile Devices with CLDC JVM - Dimitar Va...
Using the OSGi Application Model on Mobile Devices with CLDC JVM - Dimitar Va...
 
Service oriented component model
Service oriented component modelService oriented component model
Service oriented component model
 
Why OSGi?
Why OSGi?Why OSGi?
Why OSGi?
 
Benefits of OSGi in Practise
Benefits of OSGi in PractiseBenefits of OSGi in Practise
Benefits of OSGi in Practise
 
Creating Large Scale Software Platforms with OSGi and an Extension Point Mode...
Creating Large Scale Software Platforms with OSGi and an Extension Point Mode...Creating Large Scale Software Platforms with OSGi and an Extension Point Mode...
Creating Large Scale Software Platforms with OSGi and an Extension Point Mode...
 
OSGi Presentation
OSGi PresentationOSGi Presentation
OSGi Presentation
 
Building LinkedIn's Next Generation Architecture with OSGi
Building LinkedIn's Next Generation  Architecture with OSGiBuilding LinkedIn's Next Generation  Architecture with OSGi
Building LinkedIn's Next Generation Architecture with OSGi
 

Similar a Liberate your components with OSGi services - Alasdair Nottingham

TheSpringFramework
TheSpringFrameworkTheSpringFramework
TheSpringFramework
Shankar Nair
 

Similar a Liberate your components with OSGi services - Alasdair Nottingham (20)

Oracle Application Express
Oracle Application ExpressOracle Application Express
Oracle Application Express
 
Platform as a Service - Cloud Foundry and IBM Bluemix
Platform as a Service - Cloud Foundry and IBM BluemixPlatform as a Service - Cloud Foundry and IBM Bluemix
Platform as a Service - Cloud Foundry and IBM Bluemix
 
CompIQ-2016-v1
CompIQ-2016-v1CompIQ-2016-v1
CompIQ-2016-v1
 
Enterprise Spring Building Scalable Applications
Enterprise Spring Building Scalable ApplicationsEnterprise Spring Building Scalable Applications
Enterprise Spring Building Scalable Applications
 
The AMIS Report from Oracle Open World and JavaOne 2011
The AMIS Report from Oracle Open World and JavaOne 2011The AMIS Report from Oracle Open World and JavaOne 2011
The AMIS Report from Oracle Open World and JavaOne 2011
 
Powering the Cloud with Oracle WebLogic
Powering the Cloud with Oracle WebLogicPowering the Cloud with Oracle WebLogic
Powering the Cloud with Oracle WebLogic
 
Java EE 7 - Embracing the Cloud and HTML 5
Java EE 7 - Embracing the Cloud and HTML 5Java EE 7 - Embracing the Cloud and HTML 5
Java EE 7 - Embracing the Cloud and HTML 5
 
Platform as a Service - CloudFoundry and IBM Bluemix - Developer South Coast
Platform as a Service - CloudFoundry and IBM Bluemix - Developer South CoastPlatform as a Service - CloudFoundry and IBM Bluemix - Developer South Coast
Platform as a Service - CloudFoundry and IBM Bluemix - Developer South Coast
 
SOA (hands-on exercise w.r.t Oracle included)
SOA (hands-on exercise w.r.t Oracle included)SOA (hands-on exercise w.r.t Oracle included)
SOA (hands-on exercise w.r.t Oracle included)
 
Top10waystointegratewithoracleecmbezzo 1222791433931452 9
Top10waystointegratewithoracleecmbezzo 1222791433931452 9Top10waystointegratewithoracleecmbezzo 1222791433931452 9
Top10waystointegratewithoracleecmbezzo 1222791433931452 9
 
Top 10 Ways To Integrate With Oracle Enterprise Content Management (ECM)
Top 10 Ways To Integrate With Oracle Enterprise Content Management (ECM)Top 10 Ways To Integrate With Oracle Enterprise Content Management (ECM)
Top 10 Ways To Integrate With Oracle Enterprise Content Management (ECM)
 
Flex360 Milan 2008 - Flex & Webservices
Flex360 Milan 2008 - Flex & WebservicesFlex360 Milan 2008 - Flex & Webservices
Flex360 Milan 2008 - Flex & Webservices
 
Enterprise Java in 2012 and Beyond, by Juergen Hoeller
Enterprise Java in 2012 and Beyond, by Juergen Hoeller Enterprise Java in 2012 and Beyond, by Juergen Hoeller
Enterprise Java in 2012 and Beyond, by Juergen Hoeller
 
IJTC ServiceMix 4
IJTC   ServiceMix 4IJTC   ServiceMix 4
IJTC ServiceMix 4
 
Oracle on AWS partner webinar series
Oracle on AWS partner webinar series Oracle on AWS partner webinar series
Oracle on AWS partner webinar series
 
TheSpringFramework
TheSpringFrameworkTheSpringFramework
TheSpringFramework
 
Dinesh Wp Siebel Crm To Fusion Crm
Dinesh Wp  Siebel Crm To Fusion CrmDinesh Wp  Siebel Crm To Fusion Crm
Dinesh Wp Siebel Crm To Fusion Crm
 
GlassFish v3 - Architecture
GlassFish v3 - ArchitectureGlassFish v3 - Architecture
GlassFish v3 - Architecture
 
Managing Oracle Fusion Middleware
Managing Oracle Fusion MiddlewareManaging Oracle Fusion Middleware
Managing Oracle Fusion Middleware
 
Presentation cloupia product overview and demo
Presentation   cloupia product overview and demoPresentation   cloupia product overview and demo
Presentation cloupia product overview and demo
 

Más de 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
 

Más de 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)
 

Último

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Último (20)

Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
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
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
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...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
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
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
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
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 

Liberate your components with OSGi services - Alasdair Nottingham

  • 1. © 2012 IBM Corporation Liberate your components with OSGi services One products journey through the Modularity Maturity Model Alasdair Nottingham (not@uk.ibm.com) WebSphere Application Server V8.5 Liberty Profile Development Lead Tuesday, 10 April 12
  • 2. © 2011 IBM Corporation Modularity Maturity Model Summary Level Name Summary 1 Ad Hoc Nothing 2 Modules Formal identity, decoupled from artifact 3 Modularity Formal module contracts, decoupled from identity 4 Loose-Coupling Services, semantic versioning, decoupled from implementation 5 Devolution Modularity-aware repositories, collaboration, governance, decoupled from ownership 6 Dynamism Life-cycle awareness and independence, decoupled from time Tuesday, 10 April 12
  • 3. WebSphere Application Server WAS V8 WAS V8.5 Liberty profile (Alpha) WAS V7 Feature Pack for OSGi Applications © 2012 IBM Corporation 4 2005 2006 2007 2008 2009 2011 2010 2012 WAS V6 WAS V6.1 OSGi R4 WAS V7 OSGi R4 + OSGi R4.2 OSGi R4.3 level 2 level 3 level 4/6 OSGi R4.2 Server runtime used R4 Applications used R4.2 Tuesday, 10 April 12
  • 4.  Componentized build  Components have identity and version  Components produce a jar © 2012 IBM Corporation Starting point - build 4 interfaces implinterfaces impl depends on interfaces at build time Factory in interfaces uses Class.forName to load impl at runtime Tuesday, 10 April 12
  • 5. © 2012 IBM Corporation Component based runtime  A Java Bean  Implements a specific interface  Init/start/stop/destroy phases  Started in a specified order  Makes use of: –Class.getResources() –Class.forName() 5 D C B A init/start stop/destroy Tuesday, 10 April 12
  • 6. © 2012 IBM Corporation Move to “OSGi” 6 Jar A Jar B Jar C Jar D Jar A Jar B Jar C Jar D Content of Jar A-D Option 1 Option 2 Tuesday, 10 April 12
  • 7. © 2012 IBM Corporation Moving Forward Five Years  More bundles  Smaller bundles  Packages split across bundles a real issue  Limits on how much processing can be deferred  To much centralisation of control  Remove some non-standard eclipse technology –EMF –Update Provisioner 7 Tuesday, 10 April 12
  • 8. © 2012 IBM Corporation Issues with Approach  All bundles are singletons  Support outside OSGi framework required  No notification support  Too many inefficient APIs  Data read up front during initialization  Many different extension patterns 8 Tuesday, 10 April 12
  • 9. © 2012 IBM Corporation Liberty Profile  New server kernel  Mostly the same code  Exploit standards where possible  Be dynamic, lightweight, lazy 9 equinox framework 3.7.2 equinox metatype 1.2.0felix scr 1.6.1 Config Admin R4.2 Backed by simple XML. “schema defined in metatype Feature Manager Tuesday, 10 April 12
  • 10. © 2012 IBM Corporation Why services?  OSGi Primitive  Peer to peer  Lifecycle  Deferred Initialization  Metadata driven service frameworks 10 Tuesday, 10 April 12
  • 11. © 2012 IBM Corporation Declarative Services  XML Service Registration/Injection Framework  Defines components  Components are services.  Config Admin integration  Setup synchronously with bundle activation  Annotations/bnd/xml 11 Tuesday, 10 April 12
  • 12. © 2012 IBM Corporation Blueprint  XML Component Injection Framework  Based on Spring  Defines components –Beans –Services –References  Allows non-service components  Extensible  Asynchronous to bundle activation  Service Damping  5 minutes to die 12 Tuesday, 10 April 12
  • 13. © 2012 IBM Corporation When is optional truly optional? 13 Web Container transactions naming security Optional, multiple, dynamic Tuesday, 10 April 12
  • 14. © 2012 IBM Corporation Intermediaries 14 Archive Web Metadata Ear Metadata OSGi Metadata Optional, multiple, dynamic Web Container Doesn’t know about specific convertersNeeds an ArchiveManager, know the converters it cares about Tuesday, 10 April 12
  • 15. © 2012 IBM Corporation Mixing Services and Static API calls 15 Static Class Service A Service B Service C Client Tuesday, 10 April 12
  • 16. © 2012 IBM Corporation When is a Bundle ACTIVE?  Services come and go  Dynamically  So what does ACTIVE really mean?  Are we ready for the ready service? 16 Tuesday, 10 April 12
  • 17. © 2012 IBM Corporation Shutdown  Synchronous for mandatory services  Asynchronous for optional services 17 Service BService A Service C Tuesday, 10 April 12
  • 18. © 2012 IBM Corporation Service versioning 18 Bundle A version 1.0.1 Service Client Bundle A version 1.0.0 Service interface Bundle ? which service to use? Tuesday, 10 April 12
  • 19. © 2012 IBM Corporation Conclusion  Services are –Powerful –Flexible –Lightweight –Lazy –Peer to Peer  Complicated  Totally worth it 19 Tuesday, 10 April 12
  • 20. © 2012 IBM Corporation Questions? 20 Tuesday, 10 April 12