+

Search Tips   |   Advanced Search

Interoperability between Open SCA client services and WebSphere Process Server SCA modules

Support for Service Component Architecture (SCA) provides a simple, yet powerful programming model for constructing applications based on the Open SCA specifications. The SCA modules of WebSphere Process Server use import and export bindings to interoperate with Open SCA services.

An Open SCA application invokes WebSphere Process Server SCA applications using an export binding. An Open SCA application receives a call from a WebSphere Process Server SCA application using an import binding.

When building an Open SCA service client which will invoke WebSphere Process Server SCA module services, start with an existing WSDL file for all supported bindings except EJB bindings.

Generate Java interfaces from the WSDL file. Do not port modules from WebSphere Process Server SCA to Open SCA and do not port modules from Open SCA to WebSphere Process Server SCA.

In general, Java artifacts are not reusable across WebSphere Process Server SCA modules and Open SCA applications, even when one artifact invokes the other over a common WSDL interface. We must use appropriate tooling to separately generate, from the WSDL interface, the Java interfaces and classes used in the Open SCA applications and the Java interfaces and classes used in the WebSphere Process Server SCA modules. For Open SCA applications, use the wsimport command-line tool or Rational Application Developer with SCA function. For WebSphere Process Server SCA modules, use a tool such as WebSphere Integration Developer.


Bindings that support interoperability between Open SCA client services and WebSphere Process Server SCA modules

Currently, four bindings support interoperability between Open SCA client services and WebSphere Process Server SCA modules:

SCA binding

When configuring a reference to a WebSphere Process Server SCA module export over SCA binding the following restrictions apply:

  • Only synchronous invocations of request-response (two-way) operations are supported.

  • All components or modules must be in the same WAS cell definition. The SCA binding is not supported across cells.

  • Both the Open SCA component and the WebSphere Process Server SCA module must use a WSDL interface that meets the following requirements:

    • WSDL Version 1.1

    • WS-I Basic Profile Version 1.1

    • Simple SOAP Binding Profile 1.0 standards

    • Document literal style


Constructing a URI for a WebSphere Process Server SCA module export over SCA binding

WebSphere Process Server SCA module export is exposed using a uniform resource indicator (URI) that is constructed as follows:

    module_name/export_name

The module_name and export_name variables are defined in the WebSphere Process Server application. We can view the values from either WebSphere Integration Developer or from the console.

Specify this URI as the reference target URI or as the URI in the binding.sca element in the .composite file. For example, for a WebSphere Process Server module named HelloWorldModule and a WebSphere Process Server export named /test/sca/ClassicHelloWorld, the .composite file resembles the following:

<?xml version="1.0" encoding="UTF-8"?>
<composite xmlns="http://www.osoa.org/xmlns/sca/1.0" autowire="false"
       name="HelloWorldClientComposite" targetNamespace="http://sca.test">
  <component name="HelloWorldClientComponent">
    <implementation.java class="test.sca.open.OpenHelloWorldClient"/>
    <reference name="classicHWReference" target="HelloWorldModule/test/sca/ClassicHelloWorld">
      <interface.wsdl interface="http://sca.test#wsdl.interface(HelloWorldInterface)"/>
      <binding.sca/>
    </reference>
  </component>
</composite>

or:

<?xml version="1.0" encoding="UTF-8"?>
<composite xmlns="http://www.osoa.org/xmlns/sca/1.0" autowire="false"
       name="HelloWorldClientComposite" targetNamespace="http://sca.test">
  <component name="HelloWorldClientComponent">
    <implementation.java class="test.sca.open.OpenHelloWorldClient"/>
    <reference name="classicHWReference">
      <interface.wsdl interface="http://sca.test#wsdl.interface(HelloWorldInterface)"/>
      <binding.sca uri="HelloWorldModule/test/sca/ClassicHelloWorld"//>
    </reference>
  </component>
</composite>

EJB binding

When configuring a reference to a WebSphere Process Server SCA module export over an EJB binding, the following restrictions apply:

  • Only synchronous invocations are supported.

  • Only EJB 3.x protocol is supported.

  • Both the Open SCA component and WebSphere Process Server SCA module must use a Java interface that conforms to the EJB 3.x programming model.

Web service (JAX-WS) binding

When configuring a reference to a WebSphere Process Server SCA module over a Web service binding, the following features are supported:

  • Asynchronous (one-way) and synchronous (request or response) invocations

  • The SOAP1.1/HTTP or SOAP1.2/HTTP protocols

  • Web Services Atomic Transaction and Web Services Security qualities of service

When configuring a reference to a WebSphere Process Server SCA module over a Web service binding, the following restrictions apply:

  • Callback is not supported for non-SCA services like WebSphere Process Server SCA export modules.

  • Both the Open SCA component and the WebSphere Process Server SCA module must use a WSDL interface that meets the following requirements:

    • WSDL Version 1.1

    • WS-I Basic Profile Version 1.1

    • Simple SOAP Binding Profile 1.0 standards

    • Document literal style

JMS binding

When configuring a reference to a WebSphere Process Server SCA module over a JMS binding, the following features are supported:

  • Asynchronous (one-way) and synchronous (request or response) invocations

  • JMS provider platform messaging (JMS binding)

  • JMS provider WebSphere MQ (WebSphere MQ JMS binding)

When configuring a reference to a WebSphere Process Server SCA module over a JMS binding, the following restrictions apply:

  • When using commonj.sdo.DataObject as a parameter type in Java, wireFormat.jmsObject is not supported. Although both the SCA and WebSphere Process Server application Java programming models support the use of the same Java-serializable type, commonj.sdo.DataObject, and wireFormat.jmsObject results in Java serialization, the commonj.sdo.DataObject interface is backed by different implementations in each of the two environments. Thus, this wire format is not an interoperable option. Instead, use an XML wire format, such as wireFormat.jmsTextXML or wireFormat.jmsBytesXML, or use wireFormat.jmsdefault.

  • Callback is not supported.


Data types

Business graphs are not interoperable across any SCA bindings and, therefore, are not supported in interfaces used to interoperate with SCA.


Related tasks

  • Specify bindings in an SCA environment
  • Develop SCA service clients

  • wsimport command for JAX-WS applications