SCA Bindings Simon Holdsworth Piotr Przybylski
description
Transcript of SCA Bindings Simon Holdsworth Piotr Przybylski
SCA Bindings
Simon Holdsworth
Piotr Przybylski
Agenda
SCA Bindings Overview
Bindings TC Charter
Bindings
Web Services Binding
JMS Binding
JCA Binding
SCA Bindings - Overview
Composite A
ComponentAService
BindingWeb ServiceSCAJCAJMSSLSB…
BindingWeb ServiceSCAJCAJMSSLSB…
ComponentB
Interface- Java interface- WSDL PortType
Interface- Java interface- WSDL PortType
Wire WireWire
Reference
Propertysetting
Properties
Bindings describe the access mechanism used to provide or access a service
SCA Bindings - Overview
Composite
service
reference
reference
Hire
Security
Payroll
Web service binding
JCA binding
JMS binding
EIS
Messaging System
Example SCA Composite with bindings:
SCA 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
SCA 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.
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
EJB binding Allows interaction with J2EE components Integrate a session bean into an SCA assembly Expose services to clients using EJB programming model.
<binding.sca/>
<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
Composite
SCA 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
Provider’s WSDL document
reference
Web ServiceProvider
<binding.ws wsdlElement=“...#wsdl.port(...) wsdlLocation=“http://...” />
<binding.ws wsdlElement=“...#wsdl.binding(...) uri=“http://...”/>
Composite
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
SCA service’s generatedWSDL document
Web ServiceProvider
service
<binding.ws/>
Composite
SCA Bindings - Web Service
Services may use an existing WSDL binding element In cases where specific WSDL binding subelements needed
SCA service’s WSDL document
Web ServiceProvider
<binding.ws wsdlLocation=“http://...” wsdlElement=“...#wsdl.binding(...)/>
service
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
Composite
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:
reference
Back End Queue
<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>
Composite
SCA Bindings - JMS
Services may use existing JMS resources or have new ones created
Specified via URI, binding sub elements or definitions file:
Order Queue
<binding.jms> <destination name=”OrderQueue” create=”ifNotExist”/> <activationSpec name=”OrderQAS” create=”ifNotExist”/></binding.jms>
service
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”/>
Composite
SCA Bindings - JCA
EIS
<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>…
<binding.jca connectionInfo =“defs:serviceInfo”/>
New resources in the definitions file
Reference
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> …
Composite ServiceEIS
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 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
Questions?