300 likes | 455 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. Bindings describe the access mechanism used to provide or access a service. SCA Bindings - Overview.
E N D
Agenda • SCA Bindings Overview • Bindings TC Charter • Bindings • Web Services Binding • JMS Binding • JCA Binding
SCA Bindings - Overview Bindings describe the access mechanism used to provide or access a service
SCA Bindings - Overview Example SCA Composite with bindings: Composite reference EIS Payroll service Hire JCA binding reference Security Web service binding Messaging System JMS binding
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”/>
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 • Refer to binding element to identify a kind of service • Then specify service location by EPR or URI <binding.ws wsdlElement=“...#wsdl.port(...) wsdlLocation=“http://...” /> <binding.ws wsdlElement=“...#wsdl.binding(...) uri=“http://...”/> Composite reference 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/> Composite service Web Service Provider 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(...)/> Composite service Web Service Provider SCA service’s WSDL document Existing WSDL with required binding elements
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> Composite reference 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> Composite service Order Queue
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
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> … EIS Composite 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 EIS Service
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
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