SlideShare a Scribd company logo
The Future Of Service-Oriented
Component Models for the OSGi
Framework
Clement Escoffier
Grenoble University
2
Outline
• Service-oriented component model overview
• What do we get from a service-oriented
component model ?
• iPOJO non-functional concern management
• Composing service-oriented components with
iPOJO
• Conclusion
3
Nowadays …
• Applications need to
• Interoperate
• Not all features are implemented by the same team / department /
enterprise
• Evolve quickly
• Bug fixes, new features, etc.
• Tackle environmental dynamism
• Service dynamism
• Implementation dynamism
• Need solutions to help architects & developers create
applications living in this wild world
• Provide a composition model and a development model
supporting these constraints
• Provide a framework supporting the execution of these
applications
4
• SOC : “New” computing paradigm
• Service as fundamental element
• Reduce dependencies among “software islands”
• Separate evolution of different pieces
• More flexible than monolithic approach
• SOC technologies today
• Corba, Jini™, Web Services, OSGi™, UPnP™,
DPWS™
Service-Oriented Computing
5
Service-Oriented Computing Actors
Service Broker
Service
Consumer
Service
Provider
Publication
Lookup
Bind
Service
Specification
Service
Specification
Service ObjectService ObjectInvoke
6
Service-Oriented Computing
Advantages
• SOC is a good challenger to tackle dynamic
environments
• Loose coupling – Design by Contract
• Late binding – At runtime, on demand
• Hides heterogeneity
• Adequate flexibility for dynamic applications
7
However …
• Dynamism is difficult to manage
• Service providers can arrive and disappear
dynamically.
• Service consumers cannot assume a needed
service is available.
• Need a way to help architects design dynamic
service-oriented applications
• Need an easy programming model to develop
applications using dynamic services
8
Why not reuse component-based
concepts ?
• Separation of concerns
• Avoid mixing business code and non-functional
concerns
• Avoid monolithic applications
• An assembler uses (existing) components and
composes them together (Architecture Description
Language)
9
Component Concepts
• A component type
• consistent piece of code
• non-functional concerns configuration
• defined interfaces (required and provided)
• A component instance is comprised of
• Business logic code
• A container that manages non-functional concerns
• Binding, Lifecycle, Persistence, Security, Transaction …
• An application is described in term of component instances
and bindings among them
ContentContainer
10
Service-oriented Component Models
Service Oriented
Computing
Component-Based
Software Engineering
Service-Oriented
Component Model
•A service :
• Provides some functionality
• A service is described by a
specification
•A service-oriented component
• Provides services
• Requires services
• Service dependencies are resolved at
runtime
• Compositions are expressed in term of
service specifications
• Applications are built by using available
services
•A service :
• Provides some functionality
• A service is described by a
specification
•A service-oriented component
• Provides services
• Requires services
• Service dependencies are resolved at
runtime
• Compositions are expressed in term of
service specifications
• Applications are built by using available
services
11
Design & Limits
12
Existing Models
• Service Binder 1.1 and 1.2 (Cervantes)
• Declarative Services (OSGi R4)
• Service Component Architecture (IBM)
• Dependency Manager (Offermans)
• Spring–OSGi (Adrian Colyer and all)
• iPOJO (Escoffier)
13
What are we getting from a service-
oriented component model ?
• A simple and non-intrusive development model
• Service dynamics management
• Differentiation between component type / instance
• Other non-functional concerns management
• Configuration, others connectors, persistence, transaction …
• Extensibility, flexibility
• Composition/ADL
• Hierarchic composition, isolation
14
• Extensible service-oriented component
framework
• Non-intrusive development model (POJO)
• Manage service interactions
• Extensibility mechanism
• Composition mechanism
• An Apache Felix sub-project
15
Service Requirement Management
• Service dependencies
• Aggregate, optional, filtered
• Injection inside fields, via methods
• Nullable object for unresolved optional dependencies
public class Foo {
private FooService m_foo;
public doSomething() {
…
m_foo.foo();
…
}
<component className=“…”>
<requires field=“m_foo”/>
</component>
16
Service Publication
• Service publishing
• Publish / revoke services
• Provide service functionality
• Manage object creation : singleton, OSGi™ service factory
• Manage service properties
• Fields : update the registration when the field value changed
• Methods : be able to be notified of external value changes
public class FooImpl implement FooService {
public doSomething() {
…
}
<component className=“…”>
<provides/>
</component>
17
Other Service Interactions
• Properties propagation
• Enable / disable property propagation when reconfiguring
an instance from the configuration admin
• Planned/in progress
• Synchronization management
• “Temporal” dependencies
• Allow more fine-grained specification of dependencies
• Requiring non-OSGi™ services - Bridges
• Providing remote services (Web Service, DPWS, SCA…)
18
Service Management Comparison
• Very close to SCR service management, but…
• Allows dynamic service properties
• Not necessary to implement bind and unbind
methods
• Spring-OSGi manages the dynamism differently
• Unavailable Service Exception
• SCA does not support dynamism by default
19
Configuration & Management
• Instance properties
• Allows injection of properties into instances
• Enables creating two instances from the same type with
different property values
• Creation of instances via factories
• Configuration Admin support
• Remotely (via JMX by using M-OSGi)
• Instance should be dynamically reconfigurable
• Via Configuration Admin or via JMX
20
Others service-oriented component
models
• SCR
• Supports the Config Admin
• Does not support JMX
• Spring-OSGi
• Supports Config Admin & JMX reconfiguration
• Does not support Configuration Admin instance
management
21
Other non-functional management
• Connectors
• Event binding
Event
Admin
<component className="...FooEventSubscriber">
<ev:subscriber topic="foo"
callback="receive" name="myEvent"/>
</component>
public class Receptor {
public receive(Event ev) {
…
}
22
Other non-functional management
• In progress
• Persistence Management
• Wire admin connectors
• Other service-oriented component models
• Spring-OSGi provides JEE non-functional concerns
management (Persistence, Transaction, JMS …)
23
Extensibility
• Extensibility
• Container is adaptable according to the context /
application
• Allows you to develop separate “handlers”
• Other service-oriented component models
• Spring-OSGi is extensible (AOP)
• SCA “wires” are extensible as implementation type
24
Introspection
• Allow reflecting on gateway architecture
• Who uses who ?
• Allows you to track unresolved dependencies, invalid
handlers
• Others service-oriented component models
• Service Binder provided an architecture view
• Neither SCR nor Spring-OSGi provide this
25
Composing service-oriented
components
• How to create new services or applications ?
• Tackling the wild world constraints
• Service-oriented component model should provide
composition mechanisms
• Supporting service dynamism
• Close to component-based composition
26
iPOJO Composition Model
• iPOJO composition merges service flexibility and
component-based composition
• Supports dynamism
• Composite components are expressed in term of
• Contained services (and properties)
• Required services (aggregate, optional, filter)
• Provided services
• Contained instances (and properties)
27
iPOJO Composition Model
• Contained services
• Track service implementation and instantiate an instance inside the composite
• Implementation can be composite too
• Composite can provide services
• Abstract implementation
• Composite Properties
• Isolation
• Dynamism
• Extensibility
S2S2S1S1
Required
service
Instantiated
service
Provided
service Delegation Service- level Dependency
28
Others service-oriented component
models
• Spring-OSGi
• Set of beans deployed in the same bundle
• Service are not exposed in the OSGi service registry (private-beans )
• SCA – assembly model
• Included components, Properties, Exported Service, References, “Promotes”
links, Wires (optional)
A
B
Properties
Components
WirePromotes Reference
Exported
Service
29
Conclusion
• What do we get from future service-oriented component models ?
• Simpler development model
• Better management of service dynamism
• Other non-functional concern management
• Introspection ability
• Extensibility
• Composition Features
• Different contexts
• Different requirements
30
Questions

More Related Content

PPTX
Session 5 Systems Integration Architectures: BizTalk VS Windows Workflow Foun...
PDF
[WSO2Con EU 2017] Creating Composite Services Using Ballerina
PPTX
IT_ Course Introduction PPT
PDF
Informatica
PPT
Java SNMP Oplet
PPTX
SOA - Unit 1 - Introduction to SOA with Web Services
PPTX
Micro services Architecture
PPT
Obiee 11g architecture_sigmora
Session 5 Systems Integration Architectures: BizTalk VS Windows Workflow Foun...
[WSO2Con EU 2017] Creating Composite Services Using Ballerina
IT_ Course Introduction PPT
Informatica
Java SNMP Oplet
SOA - Unit 1 - Introduction to SOA with Web Services
Micro services Architecture
Obiee 11g architecture_sigmora

Similar to The Future Of Service-Oriented Component Models for the OSGi Framework - Clément Escoffier (20)

PDF
OSGi compendium
PPTX
Soa 1 7.ppsx
PDF
170215 msa intro
PDF
Microservice Architecture Patterns, by Richard Langlois P. Eng.
PPTX
Angular 2 with typescript
PPTX
Micro-services architecture
PDF
Creating Enterprise Services for the Siemens OpenSOA Product Line - Manfred H...
PPTX
The AngularJS way
PPTX
Micro service session 1
PDF
How to grow your own Microservice?
PPTX
IoT-A ARM
PPTX
Micro Services Architecture
PDF
Microservices: The Best Practices
PPTX
Cs 1023 lec 12 soa (week 4)
PDF
Migrating from a monolith to microservices – is it worth it?
PPTX
Tokyo Azure Meetup #5 - Microservices and Azure Service Fabric
PDF
Cloud-native Data
PDF
Cloud-Native-Data with Cornelia Davis
PDF
SOA and DevOps v0.1
PDF
Composable Software Architecture with Spring
OSGi compendium
Soa 1 7.ppsx
170215 msa intro
Microservice Architecture Patterns, by Richard Langlois P. Eng.
Angular 2 with typescript
Micro-services architecture
Creating Enterprise Services for the Siemens OpenSOA Product Line - Manfred H...
The AngularJS way
Micro service session 1
How to grow your own Microservice?
IoT-A ARM
Micro Services Architecture
Microservices: The Best Practices
Cs 1023 lec 12 soa (week 4)
Migrating from a monolith to microservices – is it worth it?
Tokyo Azure Meetup #5 - Microservices and Azure Service Fabric
Cloud-native Data
Cloud-Native-Data with Cornelia Davis
SOA and DevOps v0.1
Composable Software Architecture with Spring
Ad

More from mfrancis (20)

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

Recently uploaded (20)

PPTX
SOPHOS-XG Firewall Administrator PPT.pptx
PDF
Univ-Connecticut-ChatGPT-Presentaion.pdf
PPTX
Chapter 5: Probability Theory and Statistics
PDF
Encapsulation theory and applications.pdf
PDF
Web App vs Mobile App What Should You Build First.pdf
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
Enhancing emotion recognition model for a student engagement use case through...
PDF
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
August Patch Tuesday
PDF
A comparative analysis of optical character recognition models for extracting...
PPTX
A Presentation on Artificial Intelligence
PDF
Heart disease approach using modified random forest and particle swarm optimi...
PDF
Zenith AI: Advanced Artificial Intelligence
PDF
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PDF
WOOl fibre morphology and structure.pdf for textiles
PPTX
A Presentation on Touch Screen Technology
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
SOPHOS-XG Firewall Administrator PPT.pptx
Univ-Connecticut-ChatGPT-Presentaion.pdf
Chapter 5: Probability Theory and Statistics
Encapsulation theory and applications.pdf
Web App vs Mobile App What Should You Build First.pdf
Programs and apps: productivity, graphics, security and other tools
Enhancing emotion recognition model for a student engagement use case through...
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
MIND Revenue Release Quarter 2 2025 Press Release
August Patch Tuesday
A comparative analysis of optical character recognition models for extracting...
A Presentation on Artificial Intelligence
Heart disease approach using modified random forest and particle swarm optimi...
Zenith AI: Advanced Artificial Intelligence
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
Building Integrated photovoltaic BIPV_UPV.pdf
Group 1 Presentation -Planning and Decision Making .pptx
WOOl fibre morphology and structure.pdf for textiles
A Presentation on Touch Screen Technology
Agricultural_Statistics_at_a_Glance_2022_0.pdf

The Future Of Service-Oriented Component Models for the OSGi Framework - Clément Escoffier

  • 1. The Future Of Service-Oriented Component Models for the OSGi Framework Clement Escoffier Grenoble University
  • 2. 2 Outline • Service-oriented component model overview • What do we get from a service-oriented component model ? • iPOJO non-functional concern management • Composing service-oriented components with iPOJO • Conclusion
  • 3. 3 Nowadays … • Applications need to • Interoperate • Not all features are implemented by the same team / department / enterprise • Evolve quickly • Bug fixes, new features, etc. • Tackle environmental dynamism • Service dynamism • Implementation dynamism • Need solutions to help architects & developers create applications living in this wild world • Provide a composition model and a development model supporting these constraints • Provide a framework supporting the execution of these applications
  • 4. 4 • SOC : “New” computing paradigm • Service as fundamental element • Reduce dependencies among “software islands” • Separate evolution of different pieces • More flexible than monolithic approach • SOC technologies today • Corba, Jini™, Web Services, OSGi™, UPnP™, DPWS™ Service-Oriented Computing
  • 5. 5 Service-Oriented Computing Actors Service Broker Service Consumer Service Provider Publication Lookup Bind Service Specification Service Specification Service ObjectService ObjectInvoke
  • 6. 6 Service-Oriented Computing Advantages • SOC is a good challenger to tackle dynamic environments • Loose coupling – Design by Contract • Late binding – At runtime, on demand • Hides heterogeneity • Adequate flexibility for dynamic applications
  • 7. 7 However … • Dynamism is difficult to manage • Service providers can arrive and disappear dynamically. • Service consumers cannot assume a needed service is available. • Need a way to help architects design dynamic service-oriented applications • Need an easy programming model to develop applications using dynamic services
  • 8. 8 Why not reuse component-based concepts ? • Separation of concerns • Avoid mixing business code and non-functional concerns • Avoid monolithic applications • An assembler uses (existing) components and composes them together (Architecture Description Language)
  • 9. 9 Component Concepts • A component type • consistent piece of code • non-functional concerns configuration • defined interfaces (required and provided) • A component instance is comprised of • Business logic code • A container that manages non-functional concerns • Binding, Lifecycle, Persistence, Security, Transaction … • An application is described in term of component instances and bindings among them ContentContainer
  • 10. 10 Service-oriented Component Models Service Oriented Computing Component-Based Software Engineering Service-Oriented Component Model •A service : • Provides some functionality • A service is described by a specification •A service-oriented component • Provides services • Requires services • Service dependencies are resolved at runtime • Compositions are expressed in term of service specifications • Applications are built by using available services •A service : • Provides some functionality • A service is described by a specification •A service-oriented component • Provides services • Requires services • Service dependencies are resolved at runtime • Compositions are expressed in term of service specifications • Applications are built by using available services
  • 12. 12 Existing Models • Service Binder 1.1 and 1.2 (Cervantes) • Declarative Services (OSGi R4) • Service Component Architecture (IBM) • Dependency Manager (Offermans) • Spring–OSGi (Adrian Colyer and all) • iPOJO (Escoffier)
  • 13. 13 What are we getting from a service- oriented component model ? • A simple and non-intrusive development model • Service dynamics management • Differentiation between component type / instance • Other non-functional concerns management • Configuration, others connectors, persistence, transaction … • Extensibility, flexibility • Composition/ADL • Hierarchic composition, isolation
  • 14. 14 • Extensible service-oriented component framework • Non-intrusive development model (POJO) • Manage service interactions • Extensibility mechanism • Composition mechanism • An Apache Felix sub-project
  • 15. 15 Service Requirement Management • Service dependencies • Aggregate, optional, filtered • Injection inside fields, via methods • Nullable object for unresolved optional dependencies public class Foo { private FooService m_foo; public doSomething() { … m_foo.foo(); … } <component className=“…”> <requires field=“m_foo”/> </component>
  • 16. 16 Service Publication • Service publishing • Publish / revoke services • Provide service functionality • Manage object creation : singleton, OSGi™ service factory • Manage service properties • Fields : update the registration when the field value changed • Methods : be able to be notified of external value changes public class FooImpl implement FooService { public doSomething() { … } <component className=“…”> <provides/> </component>
  • 17. 17 Other Service Interactions • Properties propagation • Enable / disable property propagation when reconfiguring an instance from the configuration admin • Planned/in progress • Synchronization management • “Temporal” dependencies • Allow more fine-grained specification of dependencies • Requiring non-OSGi™ services - Bridges • Providing remote services (Web Service, DPWS, SCA…)
  • 18. 18 Service Management Comparison • Very close to SCR service management, but… • Allows dynamic service properties • Not necessary to implement bind and unbind methods • Spring-OSGi manages the dynamism differently • Unavailable Service Exception • SCA does not support dynamism by default
  • 19. 19 Configuration & Management • Instance properties • Allows injection of properties into instances • Enables creating two instances from the same type with different property values • Creation of instances via factories • Configuration Admin support • Remotely (via JMX by using M-OSGi) • Instance should be dynamically reconfigurable • Via Configuration Admin or via JMX
  • 20. 20 Others service-oriented component models • SCR • Supports the Config Admin • Does not support JMX • Spring-OSGi • Supports Config Admin & JMX reconfiguration • Does not support Configuration Admin instance management
  • 21. 21 Other non-functional management • Connectors • Event binding Event Admin <component className="...FooEventSubscriber"> <ev:subscriber topic="foo" callback="receive" name="myEvent"/> </component> public class Receptor { public receive(Event ev) { … }
  • 22. 22 Other non-functional management • In progress • Persistence Management • Wire admin connectors • Other service-oriented component models • Spring-OSGi provides JEE non-functional concerns management (Persistence, Transaction, JMS …)
  • 23. 23 Extensibility • Extensibility • Container is adaptable according to the context / application • Allows you to develop separate “handlers” • Other service-oriented component models • Spring-OSGi is extensible (AOP) • SCA “wires” are extensible as implementation type
  • 24. 24 Introspection • Allow reflecting on gateway architecture • Who uses who ? • Allows you to track unresolved dependencies, invalid handlers • Others service-oriented component models • Service Binder provided an architecture view • Neither SCR nor Spring-OSGi provide this
  • 25. 25 Composing service-oriented components • How to create new services or applications ? • Tackling the wild world constraints • Service-oriented component model should provide composition mechanisms • Supporting service dynamism • Close to component-based composition
  • 26. 26 iPOJO Composition Model • iPOJO composition merges service flexibility and component-based composition • Supports dynamism • Composite components are expressed in term of • Contained services (and properties) • Required services (aggregate, optional, filter) • Provided services • Contained instances (and properties)
  • 27. 27 iPOJO Composition Model • Contained services • Track service implementation and instantiate an instance inside the composite • Implementation can be composite too • Composite can provide services • Abstract implementation • Composite Properties • Isolation • Dynamism • Extensibility S2S2S1S1 Required service Instantiated service Provided service Delegation Service- level Dependency
  • 28. 28 Others service-oriented component models • Spring-OSGi • Set of beans deployed in the same bundle • Service are not exposed in the OSGi service registry (private-beans ) • SCA – assembly model • Included components, Properties, Exported Service, References, “Promotes” links, Wires (optional) A B Properties Components WirePromotes Reference Exported Service
  • 29. 29 Conclusion • What do we get from future service-oriented component models ? • Simpler development model • Better management of service dynamism • Other non-functional concern management • Introspection ability • Extensibility • Composition Features • Different contexts • Different requirements