graham charters | ibm - osgi€¦ · osgi remote service summary • standardizes basic metadata...
TRANSCRIPT
![Page 1: Graham Charters | IBM - OSGi€¦ · OSGi Remote Service Summary • Standardizes basic metadata for distribution – Remote interfaces – Default invocation semantics – Place](https://reader034.vdocuments.net/reader034/viewer/2022052020/6034989184862a6fd43db1c3/html5/thumbnails/1.jpg)
© IBM Corp, 2010.
Graham Charters | IBM
SOA Flexibility with OSGi Remote Services and the Service Component Architecture
![Page 2: Graham Charters | IBM - OSGi€¦ · OSGi Remote Service Summary • Standardizes basic metadata for distribution – Remote interfaces – Default invocation semantics – Place](https://reader034.vdocuments.net/reader034/viewer/2022052020/6034989184862a6fd43db1c3/html5/thumbnails/2.jpg)
© IBM Corp, 2010.
SOA Flexibility with OSGi Remote Services and the Service Component Architecture
...including a demo...or two
![Page 3: Graham Charters | IBM - OSGi€¦ · OSGi Remote Service Summary • Standardizes basic metadata for distribution – Remote interfaces – Default invocation semantics – Place](https://reader034.vdocuments.net/reader034/viewer/2022052020/6034989184862a6fd43db1c3/html5/thumbnails/3.jpg)
© IBM Corp, 2010.
SOA Design Principles
• Service-based for simple interaction patterns• Loose Coupling so components need not know
implementation details and can be bound late• Separation of Concerns so developers can focus on
immediate task• Composition and re-composition of assets• Heterogeneity to re-use what we already have
![Page 4: Graham Charters | IBM - OSGi€¦ · OSGi Remote Service Summary • Standardizes basic metadata for distribution – Remote interfaces – Default invocation semantics – Place](https://reader034.vdocuments.net/reader034/viewer/2022052020/6034989184862a6fd43db1c3/html5/thumbnails/4.jpg)
© IBM Corp, 2010.
Flexibility
• What might we want to be flexible?
• Choice of Service Provider?
• Choice of Binding?
• Qualities of Service?
• All of the above
![Page 5: Graham Charters | IBM - OSGi€¦ · OSGi Remote Service Summary • Standardizes basic metadata for distribution – Remote interfaces – Default invocation semantics – Place](https://reader034.vdocuments.net/reader034/viewer/2022052020/6034989184862a6fd43db1c3/html5/thumbnails/5.jpg)
© IBM Corp, 2010.
Framework Framework
Remote Services
Service ProviderBundle
Service ProviderBundle
Service Consumer
Bundle
Service Consumer
Bundle
Pass-by-valueLatencyUnreliable
Pass-by-valueLatencyUnreliable
NetworkNetwork
![Page 6: Graham Charters | IBM - OSGi€¦ · OSGi Remote Service Summary • Standardizes basic metadata for distribution – Remote interfaces – Default invocation semantics – Place](https://reader034.vdocuments.net/reader034/viewer/2022052020/6034989184862a6fd43db1c3/html5/thumbnails/6.jpg)
© IBM Corp, 2010.
Framework Framework
Distribution Provider
Service ProviderBundle
Service ProviderBundle
Service Consumer
Bundle
Service Consumer
Bundle
DistributionProvider
DistributionProviderDistribution
ProviderDistribution
Provider
Remote ServicesProvider Configuration
Remote ServicesProvider Configuration
endpoint
Remote ServicesClient Configuration
Remote ServicesClient Configuration
NetworkNetwork
to endpoint
Pass-by-valueLatencyUnreliable
Pass-by-valueLatencyUnreliable
![Page 7: Graham Charters | IBM - OSGi€¦ · OSGi Remote Service Summary • Standardizes basic metadata for distribution – Remote interfaces – Default invocation semantics – Place](https://reader034.vdocuments.net/reader034/viewer/2022052020/6034989184862a6fd43db1c3/html5/thumbnails/7.jpg)
© IBM Corp, 2010.
Services Properties
Framework Framework
Service ProviderBundle
Service ProviderBundle
Service Consumer
Bundle
Service Consumer
Bundle
service.exported.interfaces
service.intents service.exported.intents service.exported.intents.extra
service.exported.configs
<other service properties>
service.exported.interfaces
service.intents service.exported.intents service.exported.intents.extra
service.exported.configs
<other service properties>
objectClass
service.intents
service.imported.configs
service.imported
<other service properties>
objectClass
service.intents
service.imported.configs
service.imported
<other service properties>
endpointNetworkNetwork
to endpoint
![Page 8: Graham Charters | IBM - OSGi€¦ · OSGi Remote Service Summary • Standardizes basic metadata for distribution – Remote interfaces – Default invocation semantics – Place](https://reader034.vdocuments.net/reader034/viewer/2022052020/6034989184862a6fd43db1c3/html5/thumbnails/8.jpg)
© IBM Corp, 2010.
Intents
• Describe an abstract requirement or capability– Separation of concerns – requirement/capability
independent of implementation – Implementation is a deployment choice
• Three propertiesservice.intents – provided by the service (local and remote)service.exported.intents – statically configured for remoteservice.exported.intents.extra – admin configured for remote
• Inspired by SCA intents, examples include– confidentiality, integrity, atLeastOnce, atMostOnce, SOAP.v1_1,
etc.
![Page 9: Graham Charters | IBM - OSGi€¦ · OSGi Remote Service Summary • Standardizes basic metadata for distribution – Remote interfaces – Default invocation semantics – Place](https://reader034.vdocuments.net/reader034/viewer/2022052020/6034989184862a6fd43db1c3/html5/thumbnails/9.jpg)
© IBM Corp, 2010.
Configuration Types
• Identifies a type of Distribution Provider specific configuration
• Use reverse domain name scheme to avoid conflict
• Property naming convention used for extra configservice.exported.configs = com.acme.configcom.acme.config.host = …com.acme.config.port = ...
![Page 10: Graham Charters | IBM - OSGi€¦ · OSGi Remote Service Summary • Standardizes basic metadata for distribution – Remote interfaces – Default invocation semantics – Place](https://reader034.vdocuments.net/reader034/viewer/2022052020/6034989184862a6fd43db1c3/html5/thumbnails/10.jpg)
© IBM Corp, 2010.
OSGi Remote Service Summary• Standardizes basic metadata for distribution
– Remote interfaces– Default invocation semantics– Place to hang QoS requirements (intents)– Place to hang distribution provider configuration
• However...– Distribution configuration details left to distribution
provider• Encryption, signing, protocols, ...
– Full configuration not portable– No standard way to configure for interoperability
![Page 11: Graham Charters | IBM - OSGi€¦ · OSGi Remote Service Summary • Standardizes basic metadata for distribution – Remote interfaces – Default invocation semantics – Place](https://reader034.vdocuments.net/reader034/viewer/2022052020/6034989184862a6fd43db1c3/html5/thumbnails/11.jpg)
© IBM Corp, 2010.
…enter the SCA Configuration Type
• Standardizes detailed distribution provider configuration– Leveraging SCA Bindings, Policy specifications
• Fully Portable
• Interoperable through interoperable bindings and policy (e.g. WS-*)
![Page 12: Graham Charters | IBM - OSGi€¦ · OSGi Remote Service Summary • Standardizes basic metadata for distribution – Remote interfaces – Default invocation semantics – Place](https://reader034.vdocuments.net/reader034/viewer/2022052020/6034989184862a6fd43db1c3/html5/thumbnails/12.jpg)
© IBM Corp, 2010.
Service Configuration• Remote Service properties unchanged
service.exported.interfaces = ...service.exported.intents = …etc...
• Defines a configuration type following Remote Services spec
service.exported.configs = org.osgi.scaorg.osgi.sca.bindings = <bindings to use>
![Page 13: Graham Charters | IBM - OSGi€¦ · OSGi Remote Service Summary • Standardizes basic metadata for distribution – Remote interfaces – Default invocation semantics – Place](https://reader034.vdocuments.net/reader034/viewer/2022052020/6034989184862a6fd43db1c3/html5/thumbnails/13.jpg)
© IBM Corp, 2010.
SCA Bindings• Configuration for protocols and technologies
• Standard bindings (OASIS)– Web services, JMS, JCA
• Extensible (e.g. Apache Tuscany)– JSON, JSON-RPC, Atom, RMI, EJB, ...
<binding.ws name="OrderServiceBinding" uri="http://localhost:8086/OrderService" /> <binding.ws name="OrderServiceBinding" uri="http://localhost:8086/OrderService" />
![Page 14: Graham Charters | IBM - OSGi€¦ · OSGi Remote Service Summary • Standardizes basic metadata for distribution – Remote interfaces – Default invocation semantics – Place](https://reader034.vdocuments.net/reader034/viewer/2022052020/6034989184862a6fd43db1c3/html5/thumbnails/14.jpg)
© IBM Corp, 2010.
SCA Policy
• Intents: an abstract requirement or capability (sound familiar?)
• PolicySet: an implementation of an intent (using a policy language e.g. WS-Policy)
• Ideally the distribution provider is pre-configured so you never need to specify the details
PolicySetPolicySet
IntentIntent
<sca:policySet name="Encrypted" provides="acme:protection" appliesTo="sca:binding.ws" xmlns:wsp="..." xmlns:sp="..."> <wsp:Policy> <wsp:ExactlyOne> <sp:Basic256Rsa15 /> <sp:TripleDesRsa15 /> </wsp:ExactlyOne> </wsp:Policy></sca:policySet>
<sca:policySet name="Encrypted" provides="acme:protection" appliesTo="sca:binding.ws" xmlns:wsp="..." xmlns:sp="..."> <wsp:Policy> <wsp:ExactlyOne> <sp:Basic256Rsa15 /> <sp:TripleDesRsa15 /> </wsp:ExactlyOne> </wsp:Policy></sca:policySet>
![Page 15: Graham Charters | IBM - OSGi€¦ · OSGi Remote Service Summary • Standardizes basic metadata for distribution – Remote interfaces – Default invocation semantics – Place](https://reader034.vdocuments.net/reader034/viewer/2022052020/6034989184862a6fd43db1c3/html5/thumbnails/15.jpg)
© IBM Corp, 2010.
<sca-config ...> <binding.ws name="OrderServiceBinding" uri="http://localhost:8086/OrderService" /> ...</sca-config>
<sca-config ...> <binding.ws name="OrderServiceBinding" uri="http://localhost:8086/OrderService" /> ...</sca-config>
Configuration Bundle
Framework
Service ProviderBundle
Service ProviderBundle
service.exported.configs = org.osgi.sca org.osgi.sca.bindings = OrderServiceBinding
service.exported.configs = org.osgi.sca org.osgi.sca.bindings = OrderServiceBinding
Configuration BundleConfiguration Bundle
DistributionProvider
DistributionProvider
Extends
Bindings, Policy, Intentsendpoint
SCA-Configuration: ...
![Page 16: Graham Charters | IBM - OSGi€¦ · OSGi Remote Service Summary • Standardizes basic metadata for distribution – Remote interfaces – Default invocation semantics – Place](https://reader034.vdocuments.net/reader034/viewer/2022052020/6034989184862a6fd43db1c3/html5/thumbnails/16.jpg)
© IBM Corp, 2010.
Demo (Application Bundles)
OSGi Framework
FGDBank.webFGDBank.web FGDBank.bizFGDBank.biz
FGCBank.apiFGCBank.api
FGDBank.chequingAccount
FGDBank.chequingAccount
FGDBank.lineOfCreditAccount
FGDBank.lineOfCreditAccount
OSGi Framework
FGDBank.creditCheckFGDBank.creditCheck
![Page 17: Graham Charters | IBM - OSGi€¦ · OSGi Remote Service Summary • Standardizes basic metadata for distribution – Remote interfaces – Default invocation semantics – Place](https://reader034.vdocuments.net/reader034/viewer/2022052020/6034989184862a6fd43db1c3/html5/thumbnails/17.jpg)
© IBM Corp, 2010.
Demo (adding Config Bundles)
OSGi Framework
FGDBank.webFGDBank.web FGDBank.bizFGDBank.biz
FGCBank.apiFGCBank.api
FGDBank.chequingAccount
FGDBank.chequingAccount
FGDBank.lineOfCreditAccount
FGDBank.lineOfCreditAccount
OSGi Framework
FGDBank.creditCheckFGDBank.creditCheck
FGDBank.chequingAccountBindings
FGDBank.chequingAccountBindings
FGDBank.IineOfCreditAccountBindings
FGDBank.IineOfCreditAccountBindings
FGDBank.creditCheckBindings
FGDBank.creditCheckBindings
![Page 18: Graham Charters | IBM - OSGi€¦ · OSGi Remote Service Summary • Standardizes basic metadata for distribution – Remote interfaces – Default invocation semantics – Place](https://reader034.vdocuments.net/reader034/viewer/2022052020/6034989184862a6fd43db1c3/html5/thumbnails/18.jpg)
© IBM Corp, 2010.
Demo runtime – EquiTuscAries
• Head of Apache Aries + Head of Apache Tuscany on Eclipse Equinox
• Fingers cross this will work...
![Page 19: Graham Charters | IBM - OSGi€¦ · OSGi Remote Service Summary • Standardizes basic metadata for distribution – Remote interfaces – Default invocation semantics – Place](https://reader034.vdocuments.net/reader034/viewer/2022052020/6034989184862a6fd43db1c3/html5/thumbnails/19.jpg)
© IBM Corp, 2010.
SCA Configuration Type Summary
• Standardizes fully-portable distribution provider configuration
• Based on SCA Bindings and SCA Policy
• Configuration for interoperability through interoperable binding
![Page 20: Graham Charters | IBM - OSGi€¦ · OSGi Remote Service Summary • Standardizes basic metadata for distribution – Remote interfaces – Default invocation semantics – Place](https://reader034.vdocuments.net/reader034/viewer/2022052020/6034989184862a6fd43db1c3/html5/thumbnails/20.jpg)
© IBM Corp, 2010.
So where's the Flexibility?• Configuration Bundle lifecycle determines
– Endpoint availability– Protocol/technology choice– Quality of Service configuration
• Service properties determine– Quality of Service choice– Binding choice
• All configurable without changing the service client or provider code
![Page 21: Graham Charters | IBM - OSGi€¦ · OSGi Remote Service Summary • Standardizes basic metadata for distribution – Remote interfaces – Default invocation semantics – Place](https://reader034.vdocuments.net/reader034/viewer/2022052020/6034989184862a6fd43db1c3/html5/thumbnails/21.jpg)
© IBM Corp, 2010.
But there's more to SCA than bindings and policy...
![Page 22: Graham Charters | IBM - OSGi€¦ · OSGi Remote Service Summary • Standardizes basic metadata for distribution – Remote interfaces – Default invocation semantics – Place](https://reader034.vdocuments.net/reader034/viewer/2022052020/6034989184862a6fd43db1c3/html5/thumbnails/22.jpg)
© IBM Corp, 2010.
What is SCA?
• Heterogeneous component assembly• Synchronous, asynchronous, event processing• Pluggable communications protocols
• Think Blueprint Service or Spring Framework only with bigger components implemented using different stuff and able to talk to other different stuff...
![Page 23: Graham Charters | IBM - OSGi€¦ · OSGi Remote Service Summary • Standardizes basic metadata for distribution – Remote interfaces – Default invocation semantics – Place](https://reader034.vdocuments.net/reader034/viewer/2022052020/6034989184862a6fd43db1c3/html5/thumbnails/23.jpg)
© IBM Corp, 2010.
SCA Overview
Composite A
ComponentAService
BindingWeb ServiceSCAJCAJMSEJB…
BindingWeb ServiceSCAJCAJMSEJB…
ComponentB
Service- Java interface- WSDL PortType
Reference- Java interface- WSDL PortType
WirePromotePromote
Reference
Implementation - Java - BPEL - JEE - Spring - Composite …
![Page 24: Graham Charters | IBM - OSGi€¦ · OSGi Remote Service Summary • Standardizes basic metadata for distribution – Remote interfaces – Default invocation semantics – Place](https://reader034.vdocuments.net/reader034/viewer/2022052020/6034989184862a6fd43db1c3/html5/thumbnails/24.jpg)
© IBM Corp, 2010.
Where does OSGi fit?• Apache Aries and WebSphere Application Server define an
OSGi Application Concept• OSGi Applications fit well as an SCA Component
implementation• Re-use OSGi Remote Services metadata or have SCA provide
configuration externally for even greater flexibility– SCA looks like a Distribution Provider to OSGi
BundleBundle
BundleBundle
BundleBundle
Component
Application
CustomerComponent(Widget) Warehouse
Component(JEE)
![Page 25: Graham Charters | IBM - OSGi€¦ · OSGi Remote Service Summary • Standardizes basic metadata for distribution – Remote interfaces – Default invocation semantics – Place](https://reader034.vdocuments.net/reader034/viewer/2022052020/6034989184862a6fd43db1c3/html5/thumbnails/25.jpg)
© IBM Corp, 2010.
Demo (OSGi Application View)
FGDBankApp
FGDBank.webFGDBank.web FGDBank.bizFGDBank.biz
FGCBank.apiFGCBank.api
FGDBank.chequingAccountApp
FGDBank.chequingAccount
FGDBank.chequingAccount
FGDBank.lineOfCreditAccountApp
FGDBank.lineOfCreditAccount
FGDBank.lineOfCreditAccount
“shared” bundle
FGDBank.creditCheckApp
FGDBank.creditCheckFGDBank.creditCheck
![Page 26: Graham Charters | IBM - OSGi€¦ · OSGi Remote Service Summary • Standardizes basic metadata for distribution – Remote interfaces – Default invocation semantics – Place](https://reader034.vdocuments.net/reader034/viewer/2022052020/6034989184862a6fd43db1c3/html5/thumbnails/26.jpg)
© IBM Corp, 2010.
Demo (SCA Assembly View)
FGDBankAppSCA
FGDBankApp
FGDBank.chequingAccoutAppSCA
FGDBank.chequingAccountApp
FGDBank.creditCheckAppSCA
FGDBank.creditCheckApp
FGDBank.lineOfCreditAccountAppSCA
FGDBank.lineOfCreditAccountApp
![Page 27: Graham Charters | IBM - OSGi€¦ · OSGi Remote Service Summary • Standardizes basic metadata for distribution – Remote interfaces – Default invocation semantics – Place](https://reader034.vdocuments.net/reader034/viewer/2022052020/6034989184862a6fd43db1c3/html5/thumbnails/27.jpg)
© IBM Corp, 2010.
Summary• OSGi Remote Services provides basic metadata for Distributing
OSGi services
• SCA Configuration Type provides detailed portable distribution configuration
• SCA leverages OSGi Remote Service metadata to integrate OSGi applications– SCA acts as an OSGi Distribution Provider
• Distribution is non-invasive to client and service provider code and therefore enables flexible assembly and re-use
![Page 28: Graham Charters | IBM - OSGi€¦ · OSGi Remote Service Summary • Standardizes basic metadata for distribution – Remote interfaces – Default invocation semantics – Place](https://reader034.vdocuments.net/reader034/viewer/2022052020/6034989184862a6fd43db1c3/html5/thumbnails/28.jpg)
© IBM Corp, 2010.
Useful Links
• Enterprise OSGi R4 V4.2 Specification– http://www.osgi.org/Download/Release4V42
• Apache Aries– http://incubator.apache.org/aries/
• Apache Tuscany– http://tuscany.apache.org/
• WebSphere Application Server OSGi Applications – http://www-01.ibm.com/software/webservers/appserv/was/featurepacks/osgi/