SCA Bindings
Download
Report
Transcript SCA Bindings
SCA Bindings
Simon Holdsworth
Piotr Przybylski
Agenda
SCA Bindings Overview
Bindings TC Charter
Bindings
Web Services Binding
JMS Binding
JCA Binding
SCA Bindings - Overview
Interface
- Java interface
- WSDL PortType
Interface
- Java interface
- WSDL PortType
Properties
Composite A
Property
setting
Component
A
Service
Wire
Binding
Web Service
SCA
JCA
JMS
SLSB
…
Component
B
Wire
Bindings describe the access mechanism
used to provide or access a service
Reference
Wire
Binding
Web Service
SCA
JCA
JMS
SLSB
…
SCA Bindings - Overview
Example SCA Composite with bindings:
reference
Composite
EIS
Payroll
service
JCA binding
Hire
Web service
binding
reference
Messaging
System
Security
JMS binding
SCA Bindings - Overview
Binding elements define details of interaction
Location
Configuration
E.g. HTTP URL, JMS Queue
E.g. JMS Connection, JCA Interaction
Binding specs define how policy intents are
satisfied
SCA Bindings - TC Charter
Specifications
Compliance
Definition and tests
Potential additional binding specifications
Web service, JMS and JCA bindings
Updates from other specs, e.g. pub/sub model
HTTP with REST and other patterns
FTP, SMTP, others
Relationships with other standards
WS-*, WS-I, JMS URI, etc.
SCA 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
<binding.sca/>
EJB binding
Allows interaction with J2EE components
Integrate a session bean into an SCA assembly
Expose services to clients using EJB programming model.
<binding.ejb uri=“corbaname:...”
ebj-version=“EJB3”/>
Web Service Binding
SCA 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
SCA Bindings - Web Service
References typically use an existing WSDL document
Refer to port element to identify a specific service
<binding.ws wsdlElement=“...#wsdl.port(...)
wsdlLocation=“http://...” />
Refer to binding element to identify a kind of service
Then specify service location by EPR or URI
<binding.ws wsdlElement=“...#wsdl.binding(...)
uri=“http://...”/>
reference
Composite
Web Service
Provider
Provider’s WSDL document
SCA Bindings - Web Service
Services may allow the WSDL binding to be
generated
Based on service’s interface
May specify a URI or EPR or use the default
<binding.ws/>
service
Web Service
Provider
Composite
SCA service’s generated
WSDL document
SCA Bindings - Web Service
Services may use an existing WSDL binding element
In cases where specific WSDL binding subelements needed
<binding.ws wsdlLocation=“http://...”
wsdlElement=“...#wsdl.binding(...)/>
service
Web Service
Provider
Composite
SCA service’s WSDL
document
Existing WSDL with
required binding elements
JMS Binding
SCA 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
SCA 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:
<binding.jms requestConnection=“defs:BackEndDefs”/>
<definitions targetNamespace=”http://example.org”>
<binding.jms name=”BackEndDefs”>
<destination name=”BackEndQueue” create=”never”/>
<connectionFactory name=”BackEndQueueCF” create=”never”/>
</binding.jms>
</definitions>
reference
Composite
Back End
Queue
SCA Bindings - JMS
Services may use existing JMS resources or have
new ones created
Specified via URI, binding sub elements or definitions file:
<binding.jms>
<destination name=”OrderQueue” create=”ifNotExist”/>
<activationSpec name=”OrderQAS” create=”ifNotExist”/>
</binding.jms>
service
Order
Queue
Composite
SCA 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
JCA Binding
SCA 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.
SCA 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
SCA 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:
<binding.jca uri=“java:comp/env/EIS”/>
SCA Bindings - JCA
New resources in the definitions file
<binding.jca connectionInfo =“defs:serviceInfo”/>
<definitions targetNamespace=”http://example.org”>
<binding.jca name=”serviceInfo”>
<jca.outbound.connection managed="true">
<resourceAdapter name="connector.file.FAResourceAdapter">
<property name="logDrive">D</property>
</resourceAdapter>
<connection name="FAFactory” create="always">
<property name="host">localhost</property>
</connection>
…
Composite
Reference
EIS
SCA Bindings - JCA
Interaction configuration can be specified by
binding sub elements or definitions file
<definitions targetNamespace=”http://example.org”>
<binding.jca name=”serviceInfo”>
<jca.outbound.interaction>
<connectionSpec name="FAConnectionSpec">
<property name="userid">SYSAD</property>
</connectionSpec>
<interactionSpec name="FAInteractionSpec“/>
<operation name="hello">
<interactionSpec>
<property name="fileMode">read</property>
</interactionSpec>
</operation>
</jca.outbound.interaction>
</binding.jca>
…
SCA 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
<binding.jca>
<jca.inbound.connection>
<resourceAdapter name="FAResourceAdapter">
<property name="logDrive">D</property>
</resourceAdapter>
<activationSpecname="FAActivationSpec“ create=“always”>
<property name="directory_type">temp</property>
<property name="drive">C</property>
</activationSpec>
</jca.inbound.connection>
…
SCA Bindings - JCA
Interaction configuration can be specified by
binding sub elements or definitions file
<binding.jca>
<jca.inbound.interaction>
<listener>MyInboundListener</listener>
<inboundOperation name="hello" nativeOperation="TXPN"/>
<inboundOperation name="bye" nativeOperation="ETXPRN"/>
</jca.inbound.interaction>
</binding.jca>
…
EIS
Service
Composite
SCA Bindings - JCA
Binding properties
Customize connection or interaction properties without
modifying definitions file
Specifying property values in the bindings or composite
<definitions targetNamespace=“…”>
<connectionSpec name=“FileConnectionSpec">
<property name="password" source="$PWD"/>
<property name=“user" source="$userid"/>
</connectionSpec>
<binding.jca uri=“eis/MCF“ connectionInfo="JCA_Svc">
<property name=”PWD”>SYSAD</property>
<property name=”userid” source=”$UID”/>
</binding.jca>
…
<composite … >
<property name=”UID”>SYSAD</property>
</composite>
…
SCA 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
Summary
SCA Bindings - Summary
Web Service, JMS bindings
JCA binding
OSOA specification being finalised
Other bindings
OSOA specifications submitted
HTTP, possibly others, no existing submission
Conformance and test
Not defined in OSOA specs
Questions?