EclipseCon2007 Enterprise Osgi
EclipseCon2007 Enterprise Osgi
© 2007 by Siemens AG; made available under the Creative Commons Attribution-Noncommercial-Share Alike 2.0 Germany License
Agenda
4. Still some missing parts, let’s join the OSGi Enterprise Expert
Group
2 © 2007 by Siemens AG; made available under the Creative Commons Attribution-Noncommercial-Share Alike 2.0 Germany License
Agenda
4. Still some missing parts, let’s join the OSGi Enterprise Expert
Group
3 © 2007 by Siemens AG; made available under the Creative Commons Attribution-Noncommercial-Share Alike 2.0 Germany License
Siemens OpenSOA Application Product Line
A Product line for soft real-time applications in the unified
communications market
Enables Product composition out of existing SW assets (Services)
Enables Product integration with other Business Applications & Processes
Key requirements
Reduce time-to-market
Maximize re-use of existing portfolio
Increase and ensure scalability, availability, reliability
Ease integration into existing IT infrastructures
Key decisions
Platform independence
Service Oriented Architecture
Component Container technology
4 © 2007 by Siemens AG; made available under the Creative Commons Attribution-Noncommercial-Share Alike 2.0 Germany License
Java Enterprise World: A Short History of Time
5 © 2007 by Siemens AG; made available under the Creative Commons Attribution-Noncommercial-Share Alike 2.0 Germany License
Technology Option: Java EE and JMS
EJB Container
asynchronous request / reply
JMS
MessageDriven
Client Bean
Session Bean
publish / subscribe
Entity Bean
6 © 2007 by Siemens AG; made available under the Creative Commons Attribution-Noncommercial-Share Alike 2.0 Germany License
Technology Decision: OSGi
7 © 2007 by Siemens AG; made available under the Creative Commons Attribution-Noncommercial-Share Alike 2.0 Germany License
Agenda
4. Still some missing parts, let’s join the OSGi Enterprise Expert
Group
8 © 2007 by Siemens AG; made available under the Creative Commons Attribution-Noncommercial-Share Alike 2.0 Germany License
OSGi (R3) container has many advantages
9 © 2007 by Siemens AG; made available under the Creative Commons Attribution-Noncommercial-Share Alike 2.0 Germany License
OSGi R3 shortcomings for our application domain
10 © 2007 by Siemens AG; made available under the Creative Commons Attribution-Noncommercial-Share Alike 2.0 Germany License
Runtime Environment: Extending the OSGi R3 container
OSGi Container
Registration & Declarative
Discovery Dependency
Management
Client Jav
a se Service X
riali asynchronous request / reply
zati
on
Configuration
Connectivity Management
Client AP Service Y
SO publish / subscribe
Interceptor Logging
Framework
11 © 2007 by Siemens AG; made available under the Creative Commons Attribution-Noncommercial-Share Alike 2.0 Germany License
Our solution approach to multi-container
12 © 2007 by Siemens AG; made available under the Creative Commons Attribution-Noncommercial-Share Alike 2.0 Germany License
Our solution approach to inter-container and intra-container
communication
Integration of service bus (Message oriented middleware – MOM)
client to remote service, local service to remote service
remote service to remote service in different container
local service to local service inside same container
Support of multiple communication patterns
request – reply
request – multiple reply
event based – publish/subscribe
Support of multiple communication protocols
JAVA serialization over plain TCP/IP sockets
JMS (for events)
HTTP(S)
SOAP over HTTP(S)
13 © 2007 by Siemens AG; made available under the Creative Commons Attribution-Noncommercial-Share Alike 2.0 Germany License
Our solution approach to declarative dependency
management
Add dependency manager to each component and service
14 © 2007 by Siemens AG; made available under the Creative Commons Attribution-Noncommercial-Share Alike 2.0 Germany License
Our solution approach to security
OSGi Container
publish / subscribe
15 © 2007 by Siemens AG; made available under the Creative Commons Attribution-Noncommercial-Share Alike 2.0 Germany License
What we have reached so far
Scalability
Use multiple containers and load balancers
Communication hides the target location, client needs not to be
aware of it
Availability
Distributing services allows for different failover scenarios
16 © 2007 by Siemens AG; made available under the Creative Commons Attribution-Noncommercial-Share Alike 2.0 Germany License
Agenda
4. Still some missing parts, let’s join the OSGi Enterprise Expert
Group
17 © 2007 by Siemens AG; made available under the Creative Commons Attribution-Noncommercial-Share Alike 2.0 Germany License
OSGi R4 came with improvements
18 © 2007 by Siemens AG; made available under the Creative Commons Attribution-Noncommercial-Share Alike 2.0 Germany License
Shortcomings of OSGi R4
DS is not flexible and powerful enough for enterprise
requirements:
Semantics in the spec do not apply to our problem space, e.g.
restart of services in case of configuration changes or disposal of
stateful services if required dependency went down and no suitable
instance is available.
Support for POJO dependency injection and interceptors still
missing.
Interaction with Configuration Admin Service not well defined.
Still no support for multi-container deployment
No answer to scalability and availability of services
We still miss a differentiation between services which are
remotely accessible and services which are only locally
accessible.
19 © 2007 by Siemens AG; made available under the Creative Commons Attribution-Noncommercial-Share Alike 2.0 Germany License
What did we take from OSGi R4
Use CAS
Enhanced integration with EDS
20 © 2007 by Siemens AG; made available under the Creative Commons Attribution-Noncommercial-Share Alike 2.0 Germany License
Our solution approach to virtualization of services
Container hierarchy in a single system across multiple nodes
containers host services (local and remote)
nodes host containers (and other non-OSGi processes, e.g. web container)
system addresses all nodes
21 © 2007 by Siemens AG; made available under the Creative Commons Attribution-Noncommercial-Share Alike 2.0 Germany License
Agenda
4. Still some missing parts, let’s join the OSGi Enterprise Expert
Group
22 © 2007 by Siemens AG; made available under the Creative Commons Attribution-Noncommercial-Share Alike 2.0 Germany License
Enterprise Expert Group (EEG)
23 © 2007 by Siemens AG; made available under the Creative Commons Attribution-Noncommercial-Share Alike 2.0 Germany License
Agenda
4. Still some missing parts, let’s join the OSGi Enterprise Expert
Group
24 © 2007 by Siemens AG; made available under the Creative Commons Attribution-Noncommercial-Share Alike 2.0 Germany License
Next steps
Example:
We have a “Home build” Communication Framework which is
integrated via a proprietary way in our OSGi service container.
Our Goal is to replace the Communication Framework in the mid-
term with off-the-shelf middleware and to move into the direction of
an OSGi / SCA (Service Component Architecture) compliant
communication middleware.
25 © 2007 by Siemens AG; made available under the Creative Commons Attribution-Noncommercial-Share Alike 2.0 Germany License
Proposal: Use SCA for distributed communication (1)
OSGi Container OSGi Container
SCA Container
SCA Container (a set of bundles)
EJB Implementation Type
DS .NET Container
26 © 2007 by Siemens AG; made available under the Creative Commons Attribution-Noncommercial-Share Alike 2.0 Germany License
Proposal: Use SCA for distributed communication (2)
27 © 2007 by Siemens AG; made available under the Creative Commons Attribution-Noncommercial-Share Alike 2.0 Germany License
Conclusions
We started with EJB, but OSGi is better suited for most of our
requirements.
Our experiences with OSGi are very good.
To fulfill the enterprise requirements some parts are still missing.
Our goal is to define standard solutions for the missing parts in
Enterprise Expert Group.
Integration is a big issue inside Siemens (not only for the
Siemens OpenSOA project). The power combination “OSGi and
SCA” allows to use always the best suited technology and to
integrate easily in heterogeneous environments.
(Enterprise) OSGi is cool ☺
28 © 2007 by Siemens AG; made available under the Creative Commons Attribution-Noncommercial-Share Alike 2.0 Germany License
Backup
29 © 2007 by Siemens AG; made available under the Creative Commons Attribution-Noncommercial-Share Alike 2.0 Germany License
Possible Solution: OSGi and SCA combined
reference
• Bindings define the access mechanism
• used by services and references
service Component reference
• example: EJB, CORBA, WebService
reference
Component
Composite
service reference
Composite A Composite B
Composite D
30 © 2007 by Siemens AG; made available under the Creative Commons Attribution-Noncommercial-Share Alike 2.0 Germany License
Java Enterprise World:
Always use the best suited technology
EJB
Service A
EJB Container
OSGi
Service B
OSGi Container
Spring
Service C
Spring Container
31 © 2007 by Siemens AG; made available under the Creative Commons Attribution-Noncommercial-Share Alike 2.0 Germany License