WebSphere Trends Update Vik Chandra Oct 2003

donkeycheerfulInternet and Web Development

Aug 7, 2012 (5 years and 3 months ago)

338 views

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
Component
A
Service
Binding
Web Service
SCA
JCA
JMS
SLSB

Binding
Web Service
SCA
JCA
JMS
SLSB

Component
B
Interface
-
Java interface
-
WSDL
PortType
Interface
-
Java interface
-
WSDL
PortType
Wire
Wire
Wire
Reference
Property
setting
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 Service

Provider

<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 generated

WSDL document

Web Service

Provider

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 Service

Provider

<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
=
”BackEnd
Queue
” 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


Service

EIS

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?