IBM BPM, V8.0.1, All platforms > Authoring services in Integration Designer > Get started with IBM Integration Designer > SCA

Modules

A module is a unit of deployment that determines which artifacts are packaged together in an Enterprise Archive (EAR) file. Components within a module are collocated for performance, and can pass their data by reference. A module can be seen as a scoping mechanism; that is, it sets an organizational boundary for artifacts.

A module is a composite of service components, imports, and exports. The service components, imports, and exports are stored in the same project and root folder, which also contain the wiring that links the components and the bindings needed for the imports, and exports. A module can also contain the implementations and interfaces referenced by its components, imports and exports, or these may be placed in other projects, such as a library project.

There are two types of modules. A module called module (sometimes referred to as a business integration module) contains a choice of many component types, often used to support a business process. A module called mediation module, contains one or more mediation flow components. It can also contain a component, and one or more Java components that augment the mediation flow component

A module may contain one or more mediation flow components.

The first type of module is primarily designed for business processes. A mediation module is like a gateway to existing external services, which is common in enterprise service bus architectures. These external services or exports are accessed in a mediation module by imports or service providers. By decoupling client service requesters from service providers by a mediation flow, your applications gain flexibility and resilience, a goal of service-oriented architecture.

For example, your mediation flow can log incoming messages, route messages to a specific service determined at run time or transform data to make it suitable to pass to another service. These functions can be added and changed over time without modifying the requester or provider services.

A module results in a service application tested and deployed to the IBM Process Server. A mediation module results in a service application tested and deployed to either the IBM Process Server or the WebSphere Enterprise Service Bus server. Both types of modules support imports and exports.

Implementations, interfaces, business objects, business object maps, roles, relationships and other artifacts often need to be shared among modules. A library is a project used to store these shared resources.

In the following diagram, the module contains an export, two imports and a service component that uses them. Wiring is shown linking the interfaces and references.

The following list describes module and mediation module artifacts:

Module definition

Defines the module.

Service components

These are definitions of the services in the module. A service component name inside a module is unique. However, a service component can have an arbitrary display name, which is typically a name more useful to a user.

Imports

These are definitions of imports, which are calls to services external to this module. Imports have bindings, which are discussed in the Imports and exports section.

Exports

These are definitions of exports, which are used to expose components to callers that are external to this module. Exports have bindings, which are discussed in the Imports and exports section.

References

These are references from one component to another in the module.

Stand-alone references

These are references applications that are not defined as Service Component Architecture components (for example, JavaServer Pages), which enable these applications to interact with Service Component Architecture components. There can be only one stand-alone references artifact per module.

Other artifacts

These are artifacts that include WSDL files, Java™ classes, XSD files, BPEL processes, and so on.

SCA


Related concepts:
Service components
Service data objects
Service qualifiers
Imports and exports
Service implementation types