IBM BPM, V8.0.1, All platforms > Authoring services in Integration Designer > Get started with IBM Integration Designer > Create a new project > Create modules and libraries > Business integration projects

Modules

A module is a WebSphere Business Integration project that is used for development, version management, organizing business service resources, and deploying to the IBM BPM. In fact, a module is the basic unit of deployment to this runtime environment.

There are two kinds of modules – business modules and mediation modules. Business modules can only be deployed to the IBM Process Server. Mediation modules can be deployed to the WebSphere Enterprise Service Bus. (See "Mediation modules" for information about that kind of module.) Modules can include processes, human tasks, mediation flows, state machines, business rules, and Java™ services.

You can add dependent libraries, Java projects, and Java 2 Platform Enterprise Edition projects to a module and choose to deploy them with the module.

The module provides the business services, which are modeled as Service Components Architecture (SCA) components wired together in a module assembly. This module can contain all the resources used in the service, but these resources are private and can only be used within the module. To reuse the logic in a module from other modules, you can export a component's interfaces. For information about exports, components, and interfaces, see the related concepts listed at the end of this topic.

The module assembly contains a diagram (referred to as the assembly diagram) of the integrated business application, consisting of components and the wires that connect them. You use the assembly editor to visually compose the integrated application by using elements that you drag from the palette or from the tree in the Business Integration view.

The implementations of components used in a module's assembly reside within the module. Components belonging to other modules can be used through imports. Components in different modules can be wired together by publishing the services as exports that have their interfaces, and then dragging the exports into the required assembly diagram to create imports.

Modules can export interfaces, but they cannot share resources. Resources that are to be shared must be stored in a library.

When you drag a process application to a server to deploy it the WPS and WID modules involved will be deployed too.


Java 2 Platform Enterprise Edition staging projects

The business integration module is a simple project that produces a Java 2 Platform Enterprise Edition EAR file consisting of Java 2 Platform Enterprise Edition staging projects for web projects and application projects from the deployment process. If the module is named MyApp, then the following projects may be created as required by the deployment code generation:

It is advised that you do not select the staging projects if you are using the Rational Application Developer's project interchange export function. When importing projects from a project interchange file, although staging projects can be imported, it is suggested that the staging projects not be imported as they will be regenerated for you. Do not use those names for your own projects.

If the Java 2 Platform Enterprise Edition staging projects are manually deleted for a module, then all staging projects may not be recreated after saving an editor (for example, the assembly editor). This problem only arises when auto-build is turned on. Only artifacts that have changed will have their deployment code regenerated as the build incrementally processes deltas. To solve this problem, perform a clean build.

Do not modify the generated Java 2 Platform Enterprise Edition modules or make changes to a web.xml file or an ejb-jar.xml file. When you issue a Project > Clean command, the system will discard the former Java 2 Platform Enterprise Edition staging project and regenerate it. Any changes you made to the former project will be lost. Also, direct modifications to these modules can result in an invalid application.

To allow changes without risk of losing them, do not store any user logic in generated web projects. Rather, create a separate web project of your own and add it to the application as a dependent of the generated module by following these steps:

  1. Create your own web project and create JavaServer Pages scripting for your HTML files in the web project.

  2. In the Business Integration view, expand the business integration module's folder and double-click Dependencies. The module dependencies editor will open. (Do not change dependencies except through the dependencies editor.)

  3. In the Java 2 Platform Enterprise Edition section of that editor view, click Add to add your module as the dependent project. This action will pull your dependent project into the EAR.

Business integration projects