Title: SCA Bindings Simon Holdsworth Piotr Przybylski
1SCA BindingsSimon HoldsworthPiotr Przybylski
2Agenda
- SCA Bindings Overview
- Bindings TC Charter
- Bindings
- Web Services Binding
- JMS Binding
- JCA Binding
3SCA Bindings - Overview
Bindings describe the access mechanism used to
provide or access a service
4SCA Bindings - Overview
Example SCA Composite with bindings
Composite
reference
EIS
Payroll
service
Hire
JCA binding
reference
Security
Web service binding
Messaging System
JMS binding
5SCA Bindings - Overview
- Binding elements define details of interaction
- Location
- E.g. HTTP URL, JMS Queue
- Configuration
- E.g. JMS Connection, JCA Interaction
- Binding specs define how policy intents are
satisfied
6SCA Bindings - TC Charter
- Specifications
- Web service, JMS and JCA bindings
- Updates from other specs, e.g. pub/sub model
- Compliance
- Definition and tests
- Potential additional binding specifications
- HTTP with REST and other patterns
- FTP, SMTP, others
- Relationships with other standards
- WS-, WS-I, JMS URI, etc.
7SCA Bindings Other TCs
- SCA binding
- Defined by SCA assembly spec
- Non-interoperable, intra-domain wiring
- No additional configuration
- The default if no other binding specified
- EJB binding
- Allows interaction with J2EE components
- Integrate a session bean into an SCA assembly
- Expose services to clients using EJB programming
model.
ltbinding.sca/gt
ltbinding.ejb uricorbaname...
ebj-versionEJB3/gt
8 9SCA Bindings - Web Service
- Make an SCA service available as a web service
- Allow an SCA reference to invoke a web service
- WSDL-based
- Either references existing WSDL binding and/or
port elements or - Defines how one is generated (based on WS-I BP
1.1) - Relies on or defers to existing standards
- WSDL, SOAP, WS-Addressing
10SCA Bindings - Web Service
- References typically use an existing WSDL
document - Refer to port element to identify a specific
service - Refer to binding element to identify a kind of
service - Then specify service location by EPR or URI
ltbinding.ws wsdlElement...wsdl.port(...)
wsdlLocationhttp//... /gt
ltbinding.ws wsdlElement...wsdl.binding(...)
urihttp//.../gt
Composite
reference
Web Service Provider
Providers WSDL document
11SCA Bindings - Web Service
- Services may allow the WSDL binding to be
generated - Based on services interface
- May specify a URI or EPR or use the default
ltbinding.ws/gt
Composite
service
Web Service Provider
SCA services generated WSDL document
12SCA Bindings - Web Service
- Services may use an existing WSDL binding element
- In cases where specific WSDL binding subelements
needed
ltbinding.ws wsdlLocationhttp//...
wsdlElement...wsdl.binding(...)/gt
Composite
service
Web Service Provider
SCA services WSDL document
Existing WSDL with required binding elements
13 14SCA Bindings - JMS
- Make an SCA service available to JMS messaging
applications - Allow an SCA reference to communicate with JMS
messaging applications - May refer to existing JMS resources, or defines
details of JMS resources to be created - Definitions document contains reusable connection
metadata - Required JMS header values may be specified
15SCA Bindings - JMS
- References typically use existing JMS resources
- Spec does support creation of resources as well
- Specified via URI, binding sub elements or
definitions file
ltbinding.jms requestConnectiondefsBackEndDefs/
gt
ltdefinitions targetNamespacehttp//example.orggt
ltbinding.jms nameBackEndDefsgt
ltdestination nameBackEndQueue
createnever/gt ltconnectionFactory
nameBackEndQueueCF createnever/gt
lt/binding.jmsgt lt/definitionsgt
Composite
reference
Back End Queue
16SCA Bindings - JMS
- Services may use existing JMS resources or have
new ones created - Specified via URI, binding sub elements or
definitions file
ltbinding.jmsgt ltdestination nameOrderQueue
createifNotExist/gt ltactivationSpec
nameOrderQAS createifNotExist/gt lt/binding.jm
sgt
Composite
service
Order Queue
17SCA Bindings - JMS
- Callback and and conversation support
- JMS Binding specifies the protocol
- Via new JMS header properties for callback queue,
conversation start, ID and max idle time, - Operation Selection and Data Binding
- Maps between JMS Message and WSDL operation
- Default behaviour specified, allows communication
between JMS reference and service
18 19SCA Bindings - JCA
- Provides connectivity with the services provided
by the Enterprise Information Systems (EIS)
external to the SCA - Connectivity based on the Resource Adapters
compliant with the Java EE Connector Architecture
- Requires implementation of Common Client
Interface - Does not define EIS Bindings between different
SCA runtimes within SCA system, for example Java
EE and EIS based runtimes.
20SCA Bindings - JCA
- Make an SCA Service available to external EIS
system - Allow an SCA reference to communicate with
external EIS system - Two sets of configuration parameters, connection
and interaction allow for reuse and
reconfiguration - Connection - location of the services
- Interaction - provided to invoke one specific
service available at the endpoint - Binding properties depend on the used Resource
Adapter
21SCA Bindings - JCA
- References define services available to invoke
from the composite - Allows to use existing resources to access these
services as well as supports creation of
resources - Connection configuration can be specified via
URI, binding sub elements or definitions file - Existing Connection Factory lookup name
ltbinding.jca urijavacomp/env/EIS/gt
22SCA Bindings - JCA
- New resources in the definitions file
ltbinding.jca connectionInfo defsserviceInfo/gt
ltdefinitions targetNamespacehttp//example.orggt
ltbinding.jca nameserviceInfogt ltjca.outbound
.connection managed"true"gt ltresourceAdapter
name"connector.file.FAResourceAdapter"gt ltproper
ty name"logDrive"gtDlt/propertygt lt/resourceAdapter
gt ltconnection name"FAFactory
create"always"gt ltproperty name"host"gtlocalhost
lt/propertygt lt/connectiongt
EIS
Composite
Reference
23SCA Bindings - JCA
- Interaction configuration can be specified by
binding sub elements or definitions file
ltdefinitions targetNamespacehttp//example.orggt
ltbinding.jca nameserviceInfogt ltjca.outbound
.interactiongt ltconnectionSpec name"FAConnectionS
pec"gt ltproperty name"userid"gtSYSADlt/propertygt
lt/connectionSpecgt ltinteractionSpec
name"FAInteractionSpec/gt ltoperation
name"hello"gt ltinteractionSpecgt ltproperty
name"fileMode"gtreadlt/propertygt lt/interactionSpe
cgt lt/operationgt lt/jca.outbound.interactiongt
lt/binding.jcagt
24SCA Bindings - JCA
- Services define how the EIS system may invoke
composite - Allows to use existing resources to access these
services as well as supports creation of
resources - Connection configuration can be specified via
URI, binding sub elements or definitions file
ltbinding.jcagt ltjca.inbound.connectiongt
ltresourceAdapter name"FAResourceAdapter"gt
ltproperty name"logDrive"gtDlt/propertygt
lt/resourceAdaptergt ltactivationSpecname"FAActi
vationSpec createalwaysgt ltproperty
name"directory_type"gttemplt/propertygt
ltproperty name"drive"gtClt/propertygt
lt/activationSpecgt lt/jca.inbound.connectiongt
25SCA Bindings - JCA
- Interaction configuration can be specified by
binding sub elements or definitions file
ltbinding.jcagt ltjca.inbound.interactiongt ltlist
energtMyInboundListenerlt/listenergt ltinboundOperati
on name"hello" nativeOperation"TXPN"/gt ltinboundO
peration name"bye" nativeOperation"ETXPRN"/gt
lt/jca.inbound.interactiongt lt/binding.jcagt
Composite
EIS
Service
26SCA Bindings - JCA
- Binding properties
- Customize connection or interaction properties
without modifying definitions file - Specifying property values in the bindings or
composite
ltdefinitions targetNamespacegt
ltconnectionSpec nameFileConnectionSpec"gt ltprope
rty name"password" source"PWD"/gt ltproperty
nameuser" source"userid"/gt
lt/connectionSpecgt
ltbinding.jca urieis/MCF connectionInfo"JCA_Svc
"gt ltproperty namePWDgtSYSADlt/propertygt
ltproperty nameuserid sourceUID/gt lt/bindin
g.jcagt
ltcomposite gt ltproperty nameUIDgtSYSADlt/pr
opertygt lt/compositegt
27SCA Bindings - JCA
- Callback and conversations are not supported by
the JCA Bindings - EIS accessible through adapters have capabilities
to support either one of these capabilities - Operation Selection and Data Binding
- The lack of the data interface in CCI prevents
from specifying default behavior - A contract between JCA Binding and data binding
provided is required for the binding to operate
28 29SCA Bindings - Summary
- Web Service, JMS bindings
- OSOA specifications submitted
- JCA binding
- OSOA specification being finalised
- Other bindings
- HTTP, possibly others, no existing submission
- Conformance and test
- Not defined in OSOA specs
30