![Page 1: An Introduction to OSGi in WebSphere Application Server · An Introduction to OSGi in WebSphere Application Server Chris Wilkinson, IBM Hursley. March 25, 2011 2© 2011 IBM Corporation](https://reader030.vdocuments.net/reader030/viewer/2022040409/5ec827f969ee91782538aac5/html5/thumbnails/1.jpg)
© 2011 IBM Corporation
An Introduction to OSGi in WebSphere Application ServerChris Wilkinson, IBM Hursley
![Page 2: An Introduction to OSGi in WebSphere Application Server · An Introduction to OSGi in WebSphere Application Server Chris Wilkinson, IBM Hursley. March 25, 2011 2© 2011 IBM Corporation](https://reader030.vdocuments.net/reader030/viewer/2022040409/5ec827f969ee91782538aac5/html5/thumbnails/2.jpg)
2March 25, 2011 © 2011 IBM Corporation
Who Am I?
• Chris Wilkinson – Software Engineer
• Joined IBM Hursley development lab in 2001– Worked on test/development of WAS V6, V6.1, V7– SIBus (JMS) Developer– OSGi Feature Pack Developer
![Page 3: An Introduction to OSGi in WebSphere Application Server · An Introduction to OSGi in WebSphere Application Server Chris Wilkinson, IBM Hursley. March 25, 2011 2© 2011 IBM Corporation](https://reader030.vdocuments.net/reader030/viewer/2022040409/5ec827f969ee91782538aac5/html5/thumbnails/3.jpg)
3March 25, 2011 © 2011 IBM Corporation
Disclaimer
IBM’s statements regarding its plans, directions, and intent are subject to change or withdrawal without notice at IBM’s sole discretion. Information regarding potential future products is intended to outline our general product direction and it should not be relied on in making a purchasing decision. The information mentioned regarding potential future products is not a commitment, promise, or legal obligation to deliver any material, code or functionality. Information about potential future products may not be incorporated into any contract. The development, release, and timing of any future features or functionality described for our products remains at our sole discretion.
![Page 4: An Introduction to OSGi in WebSphere Application Server · An Introduction to OSGi in WebSphere Application Server Chris Wilkinson, IBM Hursley. March 25, 2011 2© 2011 IBM Corporation](https://reader030.vdocuments.net/reader030/viewer/2022040409/5ec827f969ee91782538aac5/html5/thumbnails/4.jpg)
4March 25, 2011 © 2011 IBM Corporation
• An Introduction to OSGi
• Enterprise OSGi Best Practices
• WAS Support for Enterprise OSGi Applications
• Spring to Blueprint migration
Conference Agenda
![Page 5: An Introduction to OSGi in WebSphere Application Server · An Introduction to OSGi in WebSphere Application Server Chris Wilkinson, IBM Hursley. March 25, 2011 2© 2011 IBM Corporation](https://reader030.vdocuments.net/reader030/viewer/2022040409/5ec827f969ee91782538aac5/html5/thumbnails/5.jpg)
5March 25, 2011 © 2011 IBM Corporation
• OSGi – What is it?
• OSGi and the Enterprise
• Enterprise OSGi in WAS v7 and WAS v8 Beta
• Demo’s (time permitting)
Agenda
![Page 6: An Introduction to OSGi in WebSphere Application Server · An Introduction to OSGi in WebSphere Application Server Chris Wilkinson, IBM Hursley. March 25, 2011 2© 2011 IBM Corporation](https://reader030.vdocuments.net/reader030/viewer/2022040409/5ec827f969ee91782538aac5/html5/thumbnails/6.jpg)
6March 25, 2011 © 2011 IBM Corporation
OSGi : What is it?
![Page 7: An Introduction to OSGi in WebSphere Application Server · An Introduction to OSGi in WebSphere Application Server Chris Wilkinson, IBM Hursley. March 25, 2011 2© 2011 IBM Corporation](https://reader030.vdocuments.net/reader030/viewer/2022040409/5ec827f969ee91782538aac5/html5/thumbnails/7.jpg)
7March 25, 2011 QCon London 2010 Ian Robinson© 2011 IBM Corporation
A (very) brief history of programming
In the beginning, there were bits ...
0101011101001001010010010011011101101101101
![Page 8: An Introduction to OSGi in WebSphere Application Server · An Introduction to OSGi in WebSphere Application Server Chris Wilkinson, IBM Hursley. March 25, 2011 2© 2011 IBM Corporation](https://reader030.vdocuments.net/reader030/viewer/2022040409/5ec827f969ee91782538aac5/html5/thumbnails/8.jpg)
8March 25, 2011 QCon London 2010 Ian Robinson© 2011 IBM Corporation
A (very) brief history of programming
Then came words ...
mov ah,9mov dx,offset hello_messageint 21h
![Page 9: An Introduction to OSGi in WebSphere Application Server · An Introduction to OSGi in WebSphere Application Server Chris Wilkinson, IBM Hursley. March 25, 2011 2© 2011 IBM Corporation](https://reader030.vdocuments.net/reader030/viewer/2022040409/5ec827f969ee91782538aac5/html5/thumbnails/9.jpg)
9March 25, 2011 QCon London 2010 Ian Robinson© 2011 IBM Corporation
A (very) brief history of programming
... functions and libraries ...#include <stdio.h>main() {
printf ("Hello World!\n");}
![Page 10: An Introduction to OSGi in WebSphere Application Server · An Introduction to OSGi in WebSphere Application Server Chris Wilkinson, IBM Hursley. March 25, 2011 2© 2011 IBM Corporation](https://reader030.vdocuments.net/reader030/viewer/2022040409/5ec827f969ee91782538aac5/html5/thumbnails/10.jpg)
10March 25, 2011 QCon London 2010 Ian Robinson© 2011 IBM Corporation
A (very) brief history of programming
... objects ...public class HelloWorldSayer {
public void sayHello() { System.out.println("Hello, world!\n"); }}
![Page 11: An Introduction to OSGi in WebSphere Application Server · An Introduction to OSGi in WebSphere Application Server Chris Wilkinson, IBM Hursley. March 25, 2011 2© 2011 IBM Corporation](https://reader030.vdocuments.net/reader030/viewer/2022040409/5ec827f969ee91782538aac5/html5/thumbnails/11.jpg)
11March 25, 2011 QCon London 2010 Ian Robinson© 2011 IBM Corporation
public class HelloWorldClient {HelloWorldService service = null;
public void startUp() {service.hello();
}}
A (very) brief history of programming
... and then – OSGi Import-Package : com.ibm.services.HelloWorldService;version=8.0.0; Export-Package : com.ibm.client.HelloWorldClient
![Page 12: An Introduction to OSGi in WebSphere Application Server · An Introduction to OSGi in WebSphere Application Server Chris Wilkinson, IBM Hursley. March 25, 2011 2© 2011 IBM Corporation](https://reader030.vdocuments.net/reader030/viewer/2022040409/5ec827f969ee91782538aac5/html5/thumbnails/12.jpg)
12March 25, 2011 QCon London 2010 Ian Robinson© 2011 IBM Corporation
What was wrong with where we were?
![Page 13: An Introduction to OSGi in WebSphere Application Server · An Introduction to OSGi in WebSphere Application Server Chris Wilkinson, IBM Hursley. March 25, 2011 2© 2011 IBM Corporation](https://reader030.vdocuments.net/reader030/viewer/2022040409/5ec827f969ee91782538aac5/html5/thumbnails/13.jpg)
13March 25, 2011 QCon London 2010 Ian Robinson© 2011 IBM Corporation
What was wrong with where we were?
A question of scale
![Page 14: An Introduction to OSGi in WebSphere Application Server · An Introduction to OSGi in WebSphere Application Server Chris Wilkinson, IBM Hursley. March 25, 2011 2© 2011 IBM Corporation](https://reader030.vdocuments.net/reader030/viewer/2022040409/5ec827f969ee91782538aac5/html5/thumbnails/14.jpg)
14March 25, 2011 QCon London 2010 Ian Robinson© 2011 IBM Corporation
IDL JDBC JNDI JAXP JAAS JMX RMI-IIOP
Enterprise APIs in Java SE (Required for Java EE)
Servlet JSP
Web Container
Java
Mai
l JA
F
JAX
-RP
C
JAX
-WS
We
b S
ervi
ces
WS
Met
ada
ta
JMS
JTA
JAC
C
JAX
R
Man
agem
ent
JPA
EJB
SA
AJ
HT
TP
/SS
L
Direct dependency
Optional dependencies
JST
L
JSF
JAX
B
JCA
Deb
ug
Com
mon
A
nnot
atio
ns
Java EE Web technologies
StA
X
Indirect (soft) dependency
JAX
-RS
JAS
PIC
CD
I &
DI
![Page 15: An Introduction to OSGi in WebSphere Application Server · An Introduction to OSGi in WebSphere Application Server Chris Wilkinson, IBM Hursley. March 25, 2011 2© 2011 IBM Corporation](https://reader030.vdocuments.net/reader030/viewer/2022040409/5ec827f969ee91782538aac5/html5/thumbnails/15.jpg)
15March 25, 2011 QCon London 2010 Ian Robinson© 2011 IBM Corporation
IDL JDBC JNDI JAXP JAAS JMX RMI-IIOP
Enterprise APIs in Java SE (Required for Java EE)
Servlet JSP Web Container
Java
Ma
il JA
F
JAX
-RP
C
JAX
-WS
We
b S
ervi
ces
WS
M
eta
dat
a
JMS
JTA
JAC
C
JAX
R
Man
age
men
t
JPA
EJB
SA
AJ
HT
TP
/SS
L
Direct dependency
Optional dependencies
JST
L
JSF
JAX
B
JCA
De
bu
g
Co
mm
on
Ann
ota
tion
s
Java EE Web technologies
StA
X
Indirect (soft) dependencyJA
X-R
S
JAS
PIC
CD
I & D
I
(capability == bloat)?
HTTP Session Replication Connection Management Persistence Providers User Registries Event Mgmt
Logging and Tracing MBean Server Admin Consoleand scripting DataSources Messaging Engines Security
Transport Channels Workload Management HTTP Servingand routing
High AvailabilityManagement
Transaction Loggingand Recovery
Thread management Classloading Provisioning Monitoring Policy and SLAmgmt Configuration
…
![Page 16: An Introduction to OSGi in WebSphere Application Server · An Introduction to OSGi in WebSphere Application Server Chris Wilkinson, IBM Hursley. March 25, 2011 2© 2011 IBM Corporation](https://reader030.vdocuments.net/reader030/viewer/2022040409/5ec827f969ee91782538aac5/html5/thumbnails/16.jpg)
16March 25, 2011 QCon London 2010 Ian Robinson© 2011 IBM Corporation
IDL JDBC JNDI JAXP JAAS JMX RMI-IIOP
Enterprise APIs in Java SE (Required for Java EE)
Servlet JSP
Web Container
Java
Mai
l JA
F
JAX
-RP
C
JAX
-WS
Web
Ser
vice
s
WS
Met
adat
a
JMS
JTA
JAC
C
JAX
R
Man
agem
ent
JPA
EJB
SAA
J
HT
TP
/SS
L
Direct dependency
Optional dependencies
JST
L
JSF
JAX
B
JCA
Deb
ug
Com
mon
Ann
otat
ions
Java EE Web technologies
StA
X
Indirect (soft) dependency
JAX
-RS
JAS
PIC
CD
I & D
I
Beyond Java EE…
HTTP Session Replication Connection Management Persistence Providers User Registries Event Mgmt
Logging and Tracing MBean Server Admin Consoleand scripting DataSources Messaging Engines Security
Transport Channels Workload Management HTTP Servingand routing
High AvailabilityManagement
Transaction Loggingand Recovery
Thread management Classloading Provisioning Monitoring Policy and SLAmgmt Configuration
…
Batch Telephony BPM DynamicScripting
SCA BusinessRules
Complex EventProcessing
…
![Page 17: An Introduction to OSGi in WebSphere Application Server · An Introduction to OSGi in WebSphere Application Server Chris Wilkinson, IBM Hursley. March 25, 2011 2© 2011 IBM Corporation](https://reader030.vdocuments.net/reader030/viewer/2022040409/5ec827f969ee91782538aac5/html5/thumbnails/17.jpg)
17March 25, 2011 QCon London 2010 Ian Robinson© 2011 IBM Corporation
Modularity inside Enterprise platforms
The major AppServer and Integration vendors and Open Source communities have all embraced OSGi for their own internal architecture• IBM WebSphere, Oracle WebLogic, Red Hat JBoss, Sun
GlassFish, SpringSource dm Server, Paremus Service Fabric, Eclipse Platform, Apache Geronimo, (non-exhaustive list)
http://www.osgi.org/wiki/uploads/News/2008_09_16_worldwide_market.pdf
These complex engineering projects required a modular approach to development as they evolved and grew• Breaking the problem into well-defined coherent modules
enables development teams to focus on their area of concern.
• OSGi not only enables but enforces modularity
![Page 18: An Introduction to OSGi in WebSphere Application Server · An Introduction to OSGi in WebSphere Application Server Chris Wilkinson, IBM Hursley. March 25, 2011 2© 2011 IBM Corporation](https://reader030.vdocuments.net/reader030/viewer/2022040409/5ec827f969ee91782538aac5/html5/thumbnails/18.jpg)
18March 25, 2011 © 2011 IBM Corporation
1818
• Code Re-use– Reduce development time
• Code Sharing– Reduce Disk Footprint– Reduce Memory Footprint
• Code Isolation– Ease of Development
• Code Versioning– Ease of Maintenance
Axioms of Modular Programming
![Page 19: An Introduction to OSGi in WebSphere Application Server · An Introduction to OSGi in WebSphere Application Server Chris Wilkinson, IBM Hursley. March 25, 2011 2© 2011 IBM Corporation](https://reader030.vdocuments.net/reader030/viewer/2022040409/5ec827f969ee91782538aac5/html5/thumbnails/19.jpg)
19March 25, 2011 © 2011 IBM Corporation
1919
• Java’s hierarchy comprises classes, packages and jars
• A Java module is a JAR
JarJarPackagePackage
ClassClassClassClass
ClassClass
PackagePackage
ClassClassClassClass
ClassClass
PackagePackage
ClassClassClassClass
ClassClass
OSGi Origins : Modular Programming in Java?
![Page 20: An Introduction to OSGi in WebSphere Application Server · An Introduction to OSGi in WebSphere Application Server Chris Wilkinson, IBM Hursley. March 25, 2011 2© 2011 IBM Corporation](https://reader030.vdocuments.net/reader030/viewer/2022040409/5ec827f969ee91782538aac5/html5/thumbnails/20.jpg)
20March 25, 2011 © 2011 IBM Corporation
2020
• Java’s hierarchy comprises classes, packages and jars
• A Java module is a JAR
• Code Isolation?– NO– Isolation ONLY inside packages/classes– Other JARs can access contents of
public classes of all other JARs– JARs depend on other JARs and
dependencies are hidden!
JarJarPackagePackage
ClassClassClassClass
ClassClass
PackagePackage
ClassClassClassClass
ClassClass
PackagePackage
ClassClassClassClass
ClassClass
OSGi Origins : Modular Programming in JavaSE ?
![Page 21: An Introduction to OSGi in WebSphere Application Server · An Introduction to OSGi in WebSphere Application Server Chris Wilkinson, IBM Hursley. March 25, 2011 2© 2011 IBM Corporation](https://reader030.vdocuments.net/reader030/viewer/2022040409/5ec827f969ee91782538aac5/html5/thumbnails/21.jpg)
21March 25, 2011 © 2011 IBM Corporation
2121
• Java’s hierarchy comprises classes, packages and jars
• A Java module is a JAR
• Code Re-Use?– Difficult– JARs have hidden dependencies on
other JARs. Hard to re-use a JAR.
JarJarPackagePackage
ClassClassClassClass
ClassClass
PackagePackage
ClassClassClassClass
ClassClass
PackagePackage
ClassClassClassClass
ClassClass
OSGi Origins : Modular Programming in Java?
![Page 22: An Introduction to OSGi in WebSphere Application Server · An Introduction to OSGi in WebSphere Application Server Chris Wilkinson, IBM Hursley. March 25, 2011 2© 2011 IBM Corporation](https://reader030.vdocuments.net/reader030/viewer/2022040409/5ec827f969ee91782538aac5/html5/thumbnails/22.jpg)
22March 25, 2011 © 2011 IBM Corporation
2222
• Java’s hierarchy comprises classes, packages and jars
• A Java module is a JAR
• Code Versioning?– NO– Only one version of a class is loaded– Whichever is first on the classpath!
JarJarPackagePackage
ClassClassClassClass
ClassClass
PackagePackage
ClassClassClassClass
ClassClass
PackagePackage
ClassClassClassClass
ClassClass
OSGi Origins : Modular Programming in Java?
![Page 23: An Introduction to OSGi in WebSphere Application Server · An Introduction to OSGi in WebSphere Application Server Chris Wilkinson, IBM Hursley. March 25, 2011 2© 2011 IBM Corporation](https://reader030.vdocuments.net/reader030/viewer/2022040409/5ec827f969ee91782538aac5/html5/thumbnails/23.jpg)
23March 25, 2011 © 2011 IBM Corporation
2323
• Java’s hierarchy comprises classes, packages and jars
• A Java module is a JAR
• Code Sharing?– YES– Multiple JARs can access the same 3rd
Party JAR.
OSGi Origins : Modular Programming in Java?
JarJarPackagePackage
ClassClassClassClass
ClassClass
PackagePackage
ClassClassClassClass
ClassClass
PackagePackage
ClassClassClassClass
ClassClass
![Page 24: An Introduction to OSGi in WebSphere Application Server · An Introduction to OSGi in WebSphere Application Server Chris Wilkinson, IBM Hursley. March 25, 2011 2© 2011 IBM Corporation](https://reader030.vdocuments.net/reader030/viewer/2022040409/5ec827f969ee91782538aac5/html5/thumbnails/24.jpg)
24March 25, 2011 © 2011 IBM Corporation
2424
OSGi Origins : Modular Programming
• Code Sharing
• Code Re-use
• Code Versioning
• Code Isolation
Java (SE) Applications
![Page 25: An Introduction to OSGi in WebSphere Application Server · An Introduction to OSGi in WebSphere Application Server Chris Wilkinson, IBM Hursley. March 25, 2011 2© 2011 IBM Corporation](https://reader030.vdocuments.net/reader030/viewer/2022040409/5ec827f969ee91782538aac5/html5/thumbnails/25.jpg)
25March 25, 2011 © 2011 IBM Corporation
2525
• JEE Helps…but…
• Same Modular issues exists inside each app.
OSGi Origins : Modular Programming in JEE?
EAR1
JAR JAR JAR
EAR2
JAR JAR JAR
![Page 26: An Introduction to OSGi in WebSphere Application Server · An Introduction to OSGi in WebSphere Application Server Chris Wilkinson, IBM Hursley. March 25, 2011 2© 2011 IBM Corporation](https://reader030.vdocuments.net/reader030/viewer/2022040409/5ec827f969ee91782538aac5/html5/thumbnails/26.jpg)
26March 25, 2011 © 2011 IBM Corporation
2626
• JEE Helps…but…
• Same Modular issues exists inside each app.
• Code Isolation?– Only across applications– NOT inside application
OSGi Origins : Modular Programming in JEE?
EAR1
JAR JAR JAR
EAR2
JAR JAR JAR
![Page 27: An Introduction to OSGi in WebSphere Application Server · An Introduction to OSGi in WebSphere Application Server Chris Wilkinson, IBM Hursley. March 25, 2011 2© 2011 IBM Corporation](https://reader030.vdocuments.net/reader030/viewer/2022040409/5ec827f969ee91782538aac5/html5/thumbnails/27.jpg)
27March 25, 2011 © 2011 IBM Corporation
2727
• JEE Helps…but…
• Same Modular issues exists inside each app.
• Code Re-use?– Difficult– Can develop a new EBA using
JARs from existing EBAs– Still difficult if JARs have
numerous dependencies
OSGi Origins : Modular Programming in JEE?
EAR1
JAR JAR JAR
EAR2
JAR JAR JAR
![Page 28: An Introduction to OSGi in WebSphere Application Server · An Introduction to OSGi in WebSphere Application Server Chris Wilkinson, IBM Hursley. March 25, 2011 2© 2011 IBM Corporation](https://reader030.vdocuments.net/reader030/viewer/2022040409/5ec827f969ee91782538aac5/html5/thumbnails/28.jpg)
28March 25, 2011 © 2011 IBM Corporation
2828
• JEE Helps…but…
• Same Modular issues exists inside each app.
• Code Sharing?– NO across application due to
isolation– Multiple copies of common
JARs in each EBA– Wasted Disk space!– Wasted Memory!
OSGi Origins : Modular Programming in JEE?
EAR1
JAR JAR JAR
EAR2
JAR JAR JAR
![Page 29: An Introduction to OSGi in WebSphere Application Server · An Introduction to OSGi in WebSphere Application Server Chris Wilkinson, IBM Hursley. March 25, 2011 2© 2011 IBM Corporation](https://reader030.vdocuments.net/reader030/viewer/2022040409/5ec827f969ee91782538aac5/html5/thumbnails/29.jpg)
29March 25, 2011 © 2011 IBM Corporation
2929
• JEE Helps…but…
• Same Modular issues exists inside each app..
• Code Versioning?– Across Applications only– 3rd party libraries may need
different versions of a class to other 3rd party libraries
OSGi Origins : Modular Programming in JEE?
EAR1
JAR JAR JAR
EAR2
JAR JAR JAR
plankton.v1
plankton.v2
![Page 30: An Introduction to OSGi in WebSphere Application Server · An Introduction to OSGi in WebSphere Application Server Chris Wilkinson, IBM Hursley. March 25, 2011 2© 2011 IBM Corporation](https://reader030.vdocuments.net/reader030/viewer/2022040409/5ec827f969ee91782538aac5/html5/thumbnails/30.jpg)
30March 25, 2011 © 2011 IBM Corporation
3030
OSGi Origins : Modular Programming
• Code Sharing
• Code Re-use
• Code Versioning
• Code Isolation
Enterprise Java (EE) Applications
![Page 31: An Introduction to OSGi in WebSphere Application Server · An Introduction to OSGi in WebSphere Application Server Chris Wilkinson, IBM Hursley. March 25, 2011 2© 2011 IBM Corporation](https://reader030.vdocuments.net/reader030/viewer/2022040409/5ec827f969ee91782538aac5/html5/thumbnails/31.jpg)
31March 25, 2011 © 2011 IBM Corporation
Modular Programming with OSGi
• Introducing the OSGi Bundle
JarJarPackagePackage
ClassClassClassClass
ClassClass
PackagePackage
ClassClassClassClass
ClassClass
PackagePackage
ClassClassClassClass
ClassClass
BundleBundlePackagePackage
ClassClassClassClass
ClassClass
PackagePackage
ClassClassClassClass
ClassClass
PackagePackage
ClassClassClassClass
ClassClass
ManifestManifest++
OSGi OSGi HeadersHeaders
![Page 32: An Introduction to OSGi in WebSphere Application Server · An Introduction to OSGi in WebSphere Application Server Chris Wilkinson, IBM Hursley. March 25, 2011 2© 2011 IBM Corporation](https://reader030.vdocuments.net/reader030/viewer/2022040409/5ec827f969ee91782538aac5/html5/thumbnails/32.jpg)
32March 25, 2011 © 2011 IBM Corporation
Modular Programming with OSGi
• Bundles are installed to an embedded OSGi Framework
JVMJVM
OSGi FrameworkOSGi Framework
Bundle1 Bundle2 Bundle3
![Page 33: An Introduction to OSGi in WebSphere Application Server · An Introduction to OSGi in WebSphere Application Server Chris Wilkinson, IBM Hursley. March 25, 2011 2© 2011 IBM Corporation](https://reader030.vdocuments.net/reader030/viewer/2022040409/5ec827f969ee91782538aac5/html5/thumbnails/33.jpg)
33March 25, 2011 © 2011 IBM Corporation
Modular Programming with OSGi
• What’s in the manifest?– Export-Package: What packages from this bundle are visible and
reusable outside of the bundle?– Import-Package: What packages from other bundles does this bundle
depend upon?– Bundle-Version: Multiple versions of bundles can live concurrently
Manifest-Version: 1.0Bundle-ManifestVersion: 2Bundle-Name: MyService bundleBundle-SymbolicName: com.sample.myserviceBundle-Version: 1.0.0Bundle-Activator: com.sample.myservice.ActivatorImport-Package: com.something.i.need;version="1.1.2"Export-Package: com.myservice.api;version="1.0.0"
![Page 34: An Introduction to OSGi in WebSphere Application Server · An Introduction to OSGi in WebSphere Application Server Chris Wilkinson, IBM Hursley. March 25, 2011 2© 2011 IBM Corporation](https://reader030.vdocuments.net/reader030/viewer/2022040409/5ec827f969ee91782538aac5/html5/thumbnails/34.jpg)
34March 25, 2011 © 2011 IBM Corporation
Modular Programming with OSGi
• Class Loading– Each bundle has its own loader– No flat or monolithic classpath– Class sharing and visibility
decided by declarative dependencies, not by class loader hierarchies
– OSGi framework works out the dependencies including versions
![Page 35: An Introduction to OSGi in WebSphere Application Server · An Introduction to OSGi in WebSphere Application Server Chris Wilkinson, IBM Hursley. March 25, 2011 2© 2011 IBM Corporation](https://reader030.vdocuments.net/reader030/viewer/2022040409/5ec827f969ee91782538aac5/html5/thumbnails/35.jpg)
35March 25, 2011 © 2011 IBM Corporation
Further de-coupling with the OSGi Service Registry
• Bundles are “loosely coupled” by communicating via Services.• The OSGi framework provides a non-durable “Service Registry” • Services are published to and discovered from this Service Registry.
– Services are the primary means of collaboration between bundles.
• Services are fully dynamic and typically have the same lifecycle as the bundle that provides them.
S
![Page 36: An Introduction to OSGi in WebSphere Application Server · An Introduction to OSGi in WebSphere Application Server Chris Wilkinson, IBM Hursley. March 25, 2011 2© 2011 IBM Corporation](https://reader030.vdocuments.net/reader030/viewer/2022040409/5ec827f969ee91782538aac5/html5/thumbnails/36.jpg)
36March 25, 2011 © 2011 IBM Corporation
Modular Programming with OSGi
• Code Isolation– YES– Each bundle can be isolated
by declaring exactly what is exported from within.
– Total control over access to bundle contents
OSGi Framework
JVM
![Page 37: An Introduction to OSGi in WebSphere Application Server · An Introduction to OSGi in WebSphere Application Server Chris Wilkinson, IBM Hursley. March 25, 2011 2© 2011 IBM Corporation](https://reader030.vdocuments.net/reader030/viewer/2022040409/5ec827f969ee91782538aac5/html5/thumbnails/37.jpg)
37March 25, 2011 © 2011 IBM Corporation
Modular Programming with OSGi
• Code Re-Use– YES– All dependencies are declared
by the import header of the manifest
– Services help to de-couple bundles
– Easy to reuse bundles in other scenarios.
OSGi Framework
JVM
![Page 38: An Introduction to OSGi in WebSphere Application Server · An Introduction to OSGi in WebSphere Application Server Chris Wilkinson, IBM Hursley. March 25, 2011 2© 2011 IBM Corporation](https://reader030.vdocuments.net/reader030/viewer/2022040409/5ec827f969ee91782538aac5/html5/thumbnails/38.jpg)
38March 25, 2011 © 2011 IBM Corporation
Modular Programming with OSGi
• Code Sharing– YES– A bundle can be accessed by
several bundles simultaneously
OSGi Framework
JVM
![Page 39: An Introduction to OSGi in WebSphere Application Server · An Introduction to OSGi in WebSphere Application Server Chris Wilkinson, IBM Hursley. March 25, 2011 2© 2011 IBM Corporation](https://reader030.vdocuments.net/reader030/viewer/2022040409/5ec827f969ee91782538aac5/html5/thumbnails/39.jpg)
39March 25, 2011 © 2011 IBM Corporation
Modular Programming with OSGi
• Code Versioning– YES– The bundle manifest specifies
a version. Bundles with different versions can exist in the framework
– I.e. We can have multiple versions of classes in use at same time in same JVM!
OSGi Framework
JVM
![Page 40: An Introduction to OSGi in WebSphere Application Server · An Introduction to OSGi in WebSphere Application Server Chris Wilkinson, IBM Hursley. March 25, 2011 2© 2011 IBM Corporation](https://reader030.vdocuments.net/reader030/viewer/2022040409/5ec827f969ee91782538aac5/html5/thumbnails/40.jpg)
40March 25, 2011 © 2011 IBM Corporation
4040
OSGi Origins : Modular Programming
• Code Sharing
• Code Re-use
• Code Versioning
• Code Isolation
OSGi Java (SE) Applications
![Page 41: An Introduction to OSGi in WebSphere Application Server · An Introduction to OSGi in WebSphere Application Server Chris Wilkinson, IBM Hursley. March 25, 2011 2© 2011 IBM Corporation](https://reader030.vdocuments.net/reader030/viewer/2022040409/5ec827f969ee91782538aac5/html5/thumbnails/41.jpg)
41March 25, 2011 © 2011 IBM Corporation
OSGi : An Open Standard
• OSGi is an open standard governed by the OSGi Alliance
• http://www.osgi.org
• OSGi has been used internally in WAS since V6.1 and in Eclipse since R3.
• The next step?… OSGI for Enterprise Applications!
![Page 42: An Introduction to OSGi in WebSphere Application Server · An Introduction to OSGi in WebSphere Application Server Chris Wilkinson, IBM Hursley. March 25, 2011 2© 2011 IBM Corporation](https://reader030.vdocuments.net/reader030/viewer/2022040409/5ec827f969ee91782538aac5/html5/thumbnails/42.jpg)
42March 25, 2011 © 2011 IBM Corporation
Enterprise OSGi : An Open Standard
• Enterprise OSGi an Open Standard– OSGi Enterprise Expert Group (EEG)– Apache Aries
• Using existing Java SE/EE specifications:– JTA, JPA, JNDI, JMX, WebApps…
• Includes SpringFramework-derived Blueprint Component Model for Dependency Injection
• Java EE is still the core enterprise application programming model
• All Modular Programming benefits in a JEE App!
![Page 43: An Introduction to OSGi in WebSphere Application Server · An Introduction to OSGi in WebSphere Application Server Chris Wilkinson, IBM Hursley. March 25, 2011 2© 2011 IBM Corporation](https://reader030.vdocuments.net/reader030/viewer/2022040409/5ec827f969ee91782538aac5/html5/thumbnails/43.jpg)
43March 25, 2011 © 2011 IBM Corporation
OSGi in WebSphere Application Server
• WebSphere Application Server V7 Feature Pack for OSGi Applications and Java Persistence API (JPA) 2.0– Available since May 2010
• More downloads in a shorter period of time than any previous WAS v7 feature pack
– Two installable features:
• JPA 2.0 feature introduces Java EE 6 JPA 2.0 enhancements to object-relational persistence to simplify data access and optimize performance
• OSGi Application feature provides the development, assembly, and deployment of OSGi enterprise applications
http://www-01.ibm.com/software/webservers/appserv/was/featurepacks/osgi/index.html/
![Page 44: An Introduction to OSGi in WebSphere Application Server · An Introduction to OSGi in WebSphere Application Server Chris Wilkinson, IBM Hursley. March 25, 2011 2© 2011 IBM Corporation](https://reader030.vdocuments.net/reader030/viewer/2022040409/5ec827f969ee91782538aac5/html5/thumbnails/44.jpg)
44March 25, 2011 © 2011 IBM Corporation
WebSphere Application Server V7 Feature Pack for OSGi Applications and Java Persistence API 2.0
• http://www-01.ibm.com/software/webservers/appserv/was/featurepacks/osgi/index.html
![Page 45: An Introduction to OSGi in WebSphere Application Server · An Introduction to OSGi in WebSphere Application Server Chris Wilkinson, IBM Hursley. March 25, 2011 2© 2011 IBM Corporation](https://reader030.vdocuments.net/reader030/viewer/2022040409/5ec827f969ee91782538aac5/html5/thumbnails/45.jpg)
45March 25, 2011 © 2011 IBM Corporation
OSGi in WebSphere Application Server
• WebSphere Application Server V8 Beta– OSGi part of the core platform in v8 Beta– Host of new features– See Duane Applebys talk later today !
http://www-01.ibm.com/software/webservers/appserv/was/featurepacks/osgi/index.html/
![Page 46: An Introduction to OSGi in WebSphere Application Server · An Introduction to OSGi in WebSphere Application Server Chris Wilkinson, IBM Hursley. March 25, 2011 2© 2011 IBM Corporation](https://reader030.vdocuments.net/reader030/viewer/2022040409/5ec827f969ee91782538aac5/html5/thumbnails/46.jpg)
46March 25, 2011 © 2011 IBM Corporation
OSGi in the Application Server
WAS Server
Web Business Logic Persistence
EAR Application
WARs
Servlets
JSFJSP
JARs
EJB
SpringFramework
JARs
JPA
EntityBeans
• JEE Overview
JNDIJNDI
![Page 47: An Introduction to OSGi in WebSphere Application Server · An Introduction to OSGi in WebSphere Application Server Chris Wilkinson, IBM Hursley. March 25, 2011 2© 2011 IBM Corporation](https://reader030.vdocuments.net/reader030/viewer/2022040409/5ec827f969ee91782538aac5/html5/thumbnails/47.jpg)
47March 25, 2011 © 2011 IBM Corporation
OSGi in the Application Server
WAS Server
Web Business Logic Persistence
EBA Application
WABs
Servlets
JSFJSP
Bundles
POJO
Blueprint
Bundles
JPA
EntityBeans
• OSGi with JEE
Blueprint
JNDIJNDI OSGi Service RegistryOSGi Service Registry
![Page 48: An Introduction to OSGi in WebSphere Application Server · An Introduction to OSGi in WebSphere Application Server Chris Wilkinson, IBM Hursley. March 25, 2011 2© 2011 IBM Corporation](https://reader030.vdocuments.net/reader030/viewer/2022040409/5ec827f969ee91782538aac5/html5/thumbnails/48.jpg)
48March 25, 2011 © 2011 IBM Corporation
Enterprise Bundle Archive (EBA)
– An isolated application consisting of a collection of bundles. Deployed as a logical unit in a “.eba” archive
• An “OSGi Application”.– Constituent bundles may be contained inside the archive or
referenced from a bundle repository.– Content specified in EBA-level application manifest –
an APPLICATION.MF file.
Application Manifest
Declares set of content bundles
blog.eba
blog-persistence.jar
blog.jar
blog-servlet.jar
Bundle Repository
json4j.jar
![Page 49: An Introduction to OSGi in WebSphere Application Server · An Introduction to OSGi in WebSphere Application Server Chris Wilkinson, IBM Hursley. March 25, 2011 2© 2011 IBM Corporation](https://reader030.vdocuments.net/reader030/viewer/2022040409/5ec827f969ee91782538aac5/html5/thumbnails/49.jpg)
49March 25, 2011 © 2011 IBM Corporation
Bundle Repository Config in WAS
![Page 50: An Introduction to OSGi in WebSphere Application Server · An Introduction to OSGi in WebSphere Application Server Chris Wilkinson, IBM Hursley. March 25, 2011 2© 2011 IBM Corporation](https://reader030.vdocuments.net/reader030/viewer/2022040409/5ec827f969ee91782538aac5/html5/thumbnails/50.jpg)
50March 25, 2011 © 2011 IBM Corporation
Application-centric Bundle Management
![Page 51: An Introduction to OSGi in WebSphere Application Server · An Introduction to OSGi in WebSphere Application Server Chris Wilkinson, IBM Hursley. March 25, 2011 2© 2011 IBM Corporation](https://reader030.vdocuments.net/reader030/viewer/2022040409/5ec827f969ee91782538aac5/html5/thumbnails/51.jpg)
51March 25, 2011 © 2011 IBM Corporation
OSGi Service Registry and JNDI
• OSGi services are published to and looked up from OSGi service registry.– Directly or from declarations in Blueprint XML
• Simplify integrating with existing JEE components:– OSGi Services registered in the OSGi Service Registry are also
available in JNDI via the osgi:service URL scheme
– Administered resources bound to JNDI are also published as services in the OSGi the Service Registry. The JNDI name is published as a service property called “osgi.jndi.service.name”
![Page 52: An Introduction to OSGi in WebSphere Application Server · An Introduction to OSGi in WebSphere Application Server Chris Wilkinson, IBM Hursley. March 25, 2011 2© 2011 IBM Corporation](https://reader030.vdocuments.net/reader030/viewer/2022040409/5ec827f969ee91782538aac5/html5/thumbnails/52.jpg)
52March 25, 2011 © 2011 IBM Corporation
OSGi in the Application Server
WAS Server
Web Business Logic Persistence
EBA Application
WABs
Servlets
JSFJSP
Bundles
POJO
Blueprint
Bundles
JPA
EntityBeans
• Lets look closer at… Web Applications
Blueprint
JNDIJNDI OSGi Service RegistryOSGi Service Registry
![Page 53: An Introduction to OSGi in WebSphere Application Server · An Introduction to OSGi in WebSphere Application Server Chris Wilkinson, IBM Hursley. March 25, 2011 2© 2011 IBM Corporation](https://reader030.vdocuments.net/reader030/viewer/2022040409/5ec827f969ee91782538aac5/html5/thumbnails/53.jpg)
53March 25, 2011 © 2011 IBM Corporation
webA.war
WEB-INF/classes/servletA.class
WEB-INF/lib/json4j.jar
WEB-INF/lib/commons-logging.jar
WEB-INF/lib/junit.jar…webB.war
WEB-INF/classes/servletB.class
WEB-INF/lib/json4j.jar
WEB-INF/lib/commons-logging.jar
WEB-INF/lib/junit.jar…webC.war
WEB-INF/classes/servletC.class
WEB-INF/lib/json4j.jar
WEB-INF/lib/commons-logging.jar
WEB-INF/lib/junit.jar…
Web Application Bundles (WABs)No Java code changes; WAR modules -> WAB bundles
Common, bundles may be easily factored out of the WARs and used at specific versions
webA.wab
WEB-INF/classes/servletA.class
META-INF/MANIFEST.MF
Bundle Repository
WEB-INF/lib/json4j.jar;version=“a.b.c”
WEB-INF/lib/commons-logging.jar;version=…
WEB-INF/lib/junit.jar…
webB.wab
WEB-INF/classes/servletB.class
META-INF/MANIFEST.MF
webC.wab
WEB-INF/classes/servletC.class
META-INF/MANIFEST.MF
Import-Package
![Page 54: An Introduction to OSGi in WebSphere Application Server · An Introduction to OSGi in WebSphere Application Server Chris Wilkinson, IBM Hursley. March 25, 2011 2© 2011 IBM Corporation](https://reader030.vdocuments.net/reader030/viewer/2022040409/5ec827f969ee91782538aac5/html5/thumbnails/54.jpg)
54March 25, 2011 © 2011 IBM Corporation
OSGi in the Application Server
WAS Server
Web Business Logic Persistence
EBA Application
WABs
Servlets
JSFJSP
Bundles
POJO
Blueprint
Bundles
JPA
EntityBeans
• Lets look closer at… Business Logic
Blueprint
JNDIJNDI OSGi Service RegistryOSGi Service Registry
![Page 55: An Introduction to OSGi in WebSphere Application Server · An Introduction to OSGi in WebSphere Application Server Chris Wilkinson, IBM Hursley. March 25, 2011 2© 2011 IBM Corporation](https://reader030.vdocuments.net/reader030/viewer/2022040409/5ec827f969ee91782538aac5/html5/thumbnails/55.jpg)
55March 25, 2011 © 2011 IBM Corporation
Blueprint
• Open Standard version of the SpringFramework Dependency Injection component.
• Configuration and Dependencies declared in Blueprint XML.
• In WAS, the Blueprint Container is a part of the Server runtime (SpringFramework is part of the application!)
![Page 56: An Introduction to OSGi in WebSphere Application Server · An Introduction to OSGi in WebSphere Application Server Chris Wilkinson, IBM Hursley. March 25, 2011 2© 2011 IBM Corporation](https://reader030.vdocuments.net/reader030/viewer/2022040409/5ec827f969ee91782538aac5/html5/thumbnails/56.jpg)
56March 25, 2011 © 2011 IBM Corporation
Blueprint Components and Services
• Standardized Spring.
• Blueprint XML Extended for OSGi Services
• Simplifies unit test outside either Java EE or OSGi runtime
dependencies injected
publishesservice consumes
service
A static assembly and configuration of
components (POJOs)Blueprint bundle
OSGI-INF/blueprint/blueprint.xml
![Page 57: An Introduction to OSGi in WebSphere Application Server · An Introduction to OSGi in WebSphere Application Server Chris Wilkinson, IBM Hursley. March 25, 2011 2© 2011 IBM Corporation](https://reader030.vdocuments.net/reader030/viewer/2022040409/5ec827f969ee91782538aac5/html5/thumbnails/57.jpg)
57March 25, 2011 © 2011 IBM Corporation
Exploiting Blueprint Components and Services
public class ShopImpl {
private BillingService billingService;void setBillingService(BillingService srv) {
billingService = srv;}
void process(Order o) {billingService.bill(o);}
}
e-Commerce
<blueprint> <bean id=”shop” class=”org.example.ecomm.ShopImpl”> <property name=”billingService” ref=”billingService” /> </bean> <reference id=”billingService”
interface=”org.example.bill.BillingService” /></blueprint>
e-Commerce bundle
-injected service reference-service can change over time-can be temporarily absent without the bundle caring-managed by Blueprint container
![Page 58: An Introduction to OSGi in WebSphere Application Server · An Introduction to OSGi in WebSphere Application Server Chris Wilkinson, IBM Hursley. March 25, 2011 2© 2011 IBM Corporation](https://reader030.vdocuments.net/reader030/viewer/2022040409/5ec827f969ee91782538aac5/html5/thumbnails/58.jpg)
58March 25, 2011 © 2011 IBM Corporation
Exploiting Blueprint Components and Services
public interface BillingService {void bill(Order o);
}
Billing
<blueprint> <service ref=”service” interface =
”org.example.bill.BillingService” /> <bean id=”service” scope=”prototype”
class=”org.example.bill.impl.BillingServiceImpl” /></blueprint>
Billing service bundle
![Page 59: An Introduction to OSGi in WebSphere Application Server · An Introduction to OSGi in WebSphere Application Server Chris Wilkinson, IBM Hursley. March 25, 2011 2© 2011 IBM Corporation](https://reader030.vdocuments.net/reader030/viewer/2022040409/5ec827f969ee91782538aac5/html5/thumbnails/59.jpg)
59March 25, 2011 © 2011 IBM Corporation
OSGi in the Application Server
WAS Server
Web Business Logic Persistence
EBA Application
WABs
Servlets
JSFJSP
Bundles
POJO
Blueprint
Bundles
JPA
EntityBeans
• Lets look closer at… Persistence Layer
Blueprint
JNDIJNDI OSGi Service RegistryOSGi Service Registry
![Page 60: An Introduction to OSGi in WebSphere Application Server · An Introduction to OSGi in WebSphere Application Server Chris Wilkinson, IBM Hursley. March 25, 2011 2© 2011 IBM Corporation](https://reader030.vdocuments.net/reader030/viewer/2022040409/5ec827f969ee91782538aac5/html5/thumbnails/60.jpg)
60March 25, 2011 © 2011 IBM Corporation
Blueprint Persistence and Transactions
• OpenJPA is default persistence provider in WebSphere• Container managed JPA support integrated into Blueprint container:
– @PersistenceUnit or @PersistenceContext (managed)– or <jpa:unit>, <jpa:context> bean property injection– Familiar development experience for JPA developers– Load-time enhancement of Entity classes
• Same container managed transaction attributes as EJBs:– Required, RequiresNew, Mandatory, NotSupported, Supports, Never
<blueprint> <bean id=”shop” class=”org.example.ecomm.ShopImpl”> <jpa:context property="em" unitname="myUnit"/> <tx:transaction method="*" value="Required"/> </bean></blueprint>
![Page 61: An Introduction to OSGi in WebSphere Application Server · An Introduction to OSGi in WebSphere Application Server Chris Wilkinson, IBM Hursley. March 25, 2011 2© 2011 IBM Corporation](https://reader030.vdocuments.net/reader030/viewer/2022040409/5ec827f969ee91782538aac5/html5/thumbnails/61.jpg)
61March 25, 2011 © 2011 IBM Corporation
OSGi Enterprise Applications : An Example
![Page 62: An Introduction to OSGi in WebSphere Application Server · An Introduction to OSGi in WebSphere Application Server Chris Wilkinson, IBM Hursley. March 25, 2011 2© 2011 IBM Corporation](https://reader030.vdocuments.net/reader030/viewer/2022040409/5ec827f969ee91782538aac5/html5/thumbnails/62.jpg)
62March 25, 2011 © 2011 IBM Corporation
Example EBA : “Hello World” Application
Web Bundle
WEB-INF/
web.xml
OSGI-INF/blueprint/blueprint.xml
Service Registry
MyExampleEBA.eba
Hello WorldImpl
Hello World
Interface
Manifest-Version: 1.0
Application-ManifestVersion: 1.0
Application-Name: MyExampleEBA
Application-SymbolicName: MyExampleEBA
Application-Version: 1.0.0
Application-Content:
MyInterfaceBundle;version=1.0.0,
MyImplementationBundle;version=1.0.0,
MyWebBundle;version=1.0.0
JNDI
APPLICATION.MFContents
![Page 63: An Introduction to OSGi in WebSphere Application Server · An Introduction to OSGi in WebSphere Application Server Chris Wilkinson, IBM Hursley. March 25, 2011 2© 2011 IBM Corporation](https://reader030.vdocuments.net/reader030/viewer/2022040409/5ec827f969ee91782538aac5/html5/thumbnails/63.jpg)
63March 25, 2011 © 2011 IBM Corporation
Enterprise OSGi : Further Support
![Page 64: An Introduction to OSGi in WebSphere Application Server · An Introduction to OSGi in WebSphere Application Server Chris Wilkinson, IBM Hursley. March 25, 2011 2© 2011 IBM Corporation](https://reader030.vdocuments.net/reader030/viewer/2022040409/5ec827f969ee91782538aac5/html5/thumbnails/64.jpg)
64March 25, 2011 © 2011 IBM Corporation
Application
SCA Composite
BundleBundle
Bundle
POJOPOJOs assembled using a Blueprint context and scoped by an OSGi Bundle.
OSGi Bundles assembled in an OSGi Application and integrated through services in the OSGi service registry
SCA Composite assembled from heterogeneous components including an
OSGi Application component, and integrated through SCA services with
configurable bindings (JMS, web services…).
POJO
POJO
Component WarehouseComponent(JEE)
CustomerComponent
(POJO)Application
JMS
OSGi and SCA: the assembly food chain
![Page 65: An Introduction to OSGi in WebSphere Application Server · An Introduction to OSGi in WebSphere Application Server Chris Wilkinson, IBM Hursley. March 25, 2011 2© 2011 IBM Corporation](https://reader030.vdocuments.net/reader030/viewer/2022040409/5ec827f969ee91782538aac5/html5/thumbnails/65.jpg)
65March 25, 2011 © 2011 IBM Corporation
BlogComponent
webweb persistencepersistence
<component name="com.ibm.ws.aries.example.BlogComponent"> <service name="bloggingService"> <interface.java interface="com.ibm.ws.eba.example.blog.Blog" /> <binding.ws port="http://www.blogging.org/BlogService#wsdl.endpoint(BlogService/BlogServiceSOAP)" /> </service> <reference name="userAuthorization"> <interface.java interface="com.ibm.ws.eba.example.blog.UserAuthorization" /> </reference> <sfp:implementation.osgiapp applicationSymbolicName="com.ibm.ws.aries.example.blog.app" applicationVersion="1.0.0" /></component>
<component name="com.ibm.ws.aries.example.BlogComponent"> <service name="bloggingService"> <interface.java interface="com.ibm.ws.eba.example.blog.Blog" /> <binding.ws port="http://www.blogging.org/BlogService#wsdl.endpoint(BlogService/BlogServiceSOAP)" /> </service> <reference name="userAuthorization"> <interface.java interface="com.ibm.ws.eba.example.blog.UserAuthorization" /> </reference> <sfp:implementation.osgiapp applicationSymbolicName="com.ibm.ws.aries.example.blog.app" applicationVersion="1.0.0" /></component>
Manifest-Version: 1.0Application-ManifestVersion: 1.0Application-Name: Aries BlogApplication-SymbolicName: com.ibm.ws.eba.example.blog.appApplication-Version: 1.0Application-Content: com.ibm.ws.eba.example.blog.api;version="1.0.0", com.ibm.ws.eba.example.blog.persistence;version="1.0.0", com.ibm.ws.eba.example.blog.web;version="1.0.0", com.ibm.ws.eba.example.blog;version="1.0.0"Use-Bundle: com.ibm.json.java;version="[1.0.0,2.0.0)"Application-ExportService: com.ibm.ws.eba.example.blog.BlogApplication-ImportService: com.ibm.ws.eba.example.blog.UserAuthorization
Manifest-Version: 1.0Application-ManifestVersion: 1.0Application-Name: Aries BlogApplication-SymbolicName: com.ibm.ws.eba.example.blog.appApplication-Version: 1.0Application-Content: com.ibm.ws.eba.example.blog.api;version="1.0.0", com.ibm.ws.eba.example.blog.persistence;version="1.0.0", com.ibm.ws.eba.example.blog.web;version="1.0.0", com.ibm.ws.eba.example.blog;version="1.0.0"Use-Bundle: com.ibm.json.java;version="[1.0.0,2.0.0)"Application-ExportService: com.ibm.ws.eba.example.blog.BlogApplication-ImportService: com.ibm.ws.eba.example.blog.UserAuthorization
apiapi
blogblog
SCA integration: implementation.osgiapp
![Page 66: An Introduction to OSGi in WebSphere Application Server · An Introduction to OSGi in WebSphere Application Server Chris Wilkinson, IBM Hursley. March 25, 2011 2© 2011 IBM Corporation](https://reader030.vdocuments.net/reader030/viewer/2022040409/5ec827f969ee91782538aac5/html5/thumbnails/66.jpg)
66March 25, 2011 © 2011 IBM Corporation
RAD v8 OSGi Application Development Support
![Page 67: An Introduction to OSGi in WebSphere Application Server · An Introduction to OSGi in WebSphere Application Server Chris Wilkinson, IBM Hursley. March 25, 2011 2© 2011 IBM Corporation](https://reader030.vdocuments.net/reader030/viewer/2022040409/5ec827f969ee91782538aac5/html5/thumbnails/67.jpg)
67March 25, 2011 © 2011 IBM Corporation
When?
• Now!
• Where is OSGi going?– Significant investment by IBM so far in technology– Significant investment by IBM so far in standards– Early feedback is extremely promising
![Page 68: An Introduction to OSGi in WebSphere Application Server · An Introduction to OSGi in WebSphere Application Server Chris Wilkinson, IBM Hursley. March 25, 2011 2© 2011 IBM Corporation](https://reader030.vdocuments.net/reader030/viewer/2022040409/5ec827f969ee91782538aac5/html5/thumbnails/68.jpg)
68March 25, 2011 © 2011 IBM Corporation
• Modular Programming is not supported fully in :– JAVA (SE)– JAVA (EE)
• The Solution for JAVA (SE) applications… OSGi
• The NEW Solution for JAVA (EE) applications… Enterprise OSGi
• Fully implemented in WASv7 with the OSGi Feature Pack, and in WASv8 Beta
• Based on Open Standards.
• Lots of interest from the industry.
Summary
![Page 69: An Introduction to OSGi in WebSphere Application Server · An Introduction to OSGi in WebSphere Application Server Chris Wilkinson, IBM Hursley. March 25, 2011 2© 2011 IBM Corporation](https://reader030.vdocuments.net/reader030/viewer/2022040409/5ec827f969ee91782538aac5/html5/thumbnails/69.jpg)
69March 25, 2011 © 2011 IBM Corporation
• OSGi Best Practices Developerworks Article
http://www.ibm.com/developerworks/websphere/techjournal/1007_charters/1007_charters.html?ca=drs-
• Spring Application Migration
http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=/com.ibm.websphere.osgifep.multiplatform.doc/topics/ta_mig.html
• Resource Hub (articles, tutorials, redbooks, forums)
http://www.ibm.com/software/websphere/osgi
• Team Blogs/Twitter/YouTube
www.ianrobinson.blogspot.com www.devangelist.blogspot.com www.youtube.com/user/EnterpriseOSGi
@sjmaple @notatibm @TimothyWard
Useful Links
![Page 70: An Introduction to OSGi in WebSphere Application Server · An Introduction to OSGi in WebSphere Application Server Chris Wilkinson, IBM Hursley. March 25, 2011 2© 2011 IBM Corporation](https://reader030.vdocuments.net/reader030/viewer/2022040409/5ec827f969ee91782538aac5/html5/thumbnails/70.jpg)
70March 25, 2011 © 2011 IBM Corporation
Questions?
![Page 71: An Introduction to OSGi in WebSphere Application Server · An Introduction to OSGi in WebSphere Application Server Chris Wilkinson, IBM Hursley. March 25, 2011 2© 2011 IBM Corporation](https://reader030.vdocuments.net/reader030/viewer/2022040409/5ec827f969ee91782538aac5/html5/thumbnails/71.jpg)
71March 25, 2011 © 2011 IBM Corporation
Copyright and Trademarks
© IBM Corporation 2010. All rights reserved. IBM, the IBM logo, ibm.com and the globe design are trademarks of International Business Machines Corporation, registered in many jurisdictions worldwide. A current list of IBM trademarks is available on the Web at "Copyright and trademark information" at www.ibm.com/legal/copytrade.shtml. Other company, product, or service names may be trademarks or service marks of others.