IBM BPM, V8.0.1, All platforms > Get started with IBM BPM > Key concepts
Bindings
At the core of a service-oriented architecture is the concept of a service, a unit of functionality accomplished by an interaction between computing devices. An export defines the external interface (or access point) of a module, so that SCA components within the module can provide their services to external clients. An import defines an interface to services outside a module, so the services can be called from within the module. You use protocol-specific bindings with imports and exports to specify the means of transporting the data into or out of the module.
Exports
External clients can invoke SCA components in an integration module over a variety of protocols (such as HTTP, JMS, MQ, and RMI/IIOP) with data in a variety of formats (such as XML, CSV, COBOL, and JavaBeans). Exports are components that receive these requests from external sources and then invoke IBM BPM components using the SCA programming model.
For example, in the following figure, an export receives a request over the HTTP protocol from a client application. The data is transformed into a business object, the format used by the SCA component. The component is then invoked with that data object.
Figure 1. An export with HTTP binding
Imports
An SCA component might want to invoke a non-SCA external service that expects data in a different format. An import is used by the SCA component to invoke the external service using the SCA programming model. The import then invokes the target service in the way that the service expects.
For example, in the following figure, a request from an SCA component is sent, by the import, to an external service. The business object, which is the format used by the SCA component, is transformed to the format expect by the service, and the service is invoked.
Figure 2. An import with HTTP binding
List of bindings
You use Integration Designer to generate a binding for an import or export and to configure the binding. The types of bindings that are available are described in the following list.
- SCA
The SCA binding, which is the default, lets your service communicate with services in other SCA modules. You use an import with an SCA binding to access a service in another SCA module. You use an export with an SCA binding to offer a service to other SCA modules.
- Web service
A web service binding lets you access an external service using interoperable SOAP messages and qualities of service. You can also use web service bindings to include attachments as part of the SOAP message.
The web service binding can use a transport protocol of either SOAP/HTTP (SOAP over HTTP) or SOAP/JMS (SOAP over JMS). Regardless of the transport (HTTP or JMS) used to convey the SOAP messages, web service bindings always handle request/response interactions synchronously.
- HTTP
The HTTP binding lets you access an external service using the HTTP protocol, where non-SOAP messages are used, or where direct HTTP access is required. This binding is used when you are working with web services that are based on the HTTP model (that is, services that use well-known HTTP interface operations such as GET, PUT, DELETE, and so on).
- Enterprise JavaBeans (EJB)
The EJB bindings let SCA components interact with services provided by Java EE business logic running on a Java EE server.
- EIS
The EIS (enterprise information system) binding, when used with a JCA resource adapter, lets you access services on an enterprise information system or make your services available to the EIS.
- JMS bindings
Java Message Service (JMS), generic JMS, and WebSphere MQ JMS (MQ JMS) bindings are used for interactions with messaging systems, where asynchronous communication through message queues is critical for reliability.
An export with one of the JMS bindings watches a queue for the arrival of a message and asynchronously sends the response, if any, to the reply queue. An import with one of the JMS bindings builds and sends a message to a JMS queue and watches a queue for the arrival of the response, if any.
- JMS
The JMS binding lets you access the WebSphere-embedded JMS provider.
- Generic JMS
The generic JMS binding lets you access a non-IBM vendor messaging system.
- MQ JMS
The MQ JMS binding lets you access the JMS subset of a WebSphere MQ messaging system. You would use this binding when the JMS subset of functions is sufficient for your application.
- MQ
The WebSphere MQ binding lets you communicate with MQ native applications, bringing them into the service oriented architecture framework and providing access to MQ-specific header information. You would use this binding when you need to use MQ native functions.
See