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?