OSGi for the Enterprise
Download
Report
Transcript OSGi for the Enterprise
OSGi for the
Enterprise
Eric Newcomer, CTO
Co-chair OSGi Enterprise Expert
Group
What is OSGi?
Specifications development consortia (1999)
An architecture for managing and loading Java
“Classloader on steroids”
Design based on cooperating services
Adds medatata to .jar files to register them as bundles
Bundles implement services & dynamically load classes
Now defining OSGi for the enterprise
Currently specified for single JVM only
Usage led to need to standardize enterprise features
The OSGi Framework Architecture
Allows applications to share a
single Java VM
Handles class loading in a
better way than standard Java
–Versioning!
Isolation/security between
applications
Mediates between
communication & collaborations
between applications
Provides life cycle management
(install, start, stop, update, etc).
Policy free
–Policies are provided by
bundles
Application
Application
Application
Application
Application
Application
Application
Library
OSGi
OSGi
OSGi
OSGi
Java
Java
VM
Java
VM
VM
System
Class Libraries
Java
Java
VM
Java
VM
Java
VM
VM Operating System
OperatingSystem
System
Operating
Operating System
3
OSGi is Service Oriented
Separate the contract from
the implementation
Allows alternate
implementations
Dynamically discover and
bind available
implementations
Binding based on contract
(interface definitions)
Components are reusable
Components are not coupled
to implementation details of
other components, only their
independent interfaces have
to be known
Service Contract
provides
Component
uses
4
Current Industry Adoption
Some adoption in embedded & mobile markets
Best known as Eclipse Platform but also
–Runtime for WebSphere AS
–Basis of BEA micro-kernel architecture
–Oracle, JBoss deployments in development
–Easybeans EJB container (JoNAS app server)
Companies already selling “server side” OSGi
Gatespace, Prosyst, Espial, Paremus
Custom use in integration projects
OSGi -- Spring mapping
SOA Runtime project at Eclipse (incl JBI / SCA)
OSGi Architecture
Runs multiple “bundles”
within same JVM
Strong security
Lifecycle management
Dynamic install,
start/stop, update,
delete
Modules define class loading
policies
Registry for dynamic lookup,
object sharing metadata
No transport layer
Define new or map existing?
• Lots of enterprise technology exists
–CORBA, MQ, CICS, Tuxedo, JEE, .NET
–Databases, commercial Web sites
• Spring-OSGi illustrates one approach
–Combine the best of both
• SCA-OSGi possibly another approach
–Working with the SCA folks to define a mapping
• Level of extension the main topic of discussion
–Basic extension proposed for simple case
–No single answer likely
–Coexistence potential