This article shows you some valuable hints and tips to help you use IBM WebSphere Integration Developer V7 more efficiently, especially when you are dealing with a large number of modules and artifacts. These tips include different ways to reduce workspace build time and publish time, how to use the Test Client to create test cases and organize them in test projects, and and how to use the cross component trace to make the unit test phase more efficient. In addition, you will learn how to reduce clutter in the work space by maximizing the work space in various editors and how to use the filtering options to filter out unnecessary artifacts.
The tips covered here are presented in these major areas:
- Reducing workspace build time and publish time
- Testing in the WebSphere test environment
- Better artifact organization and team collaboration
- Maximizing your working space
- Using the search and filter capabilities
1. Reducing workspace build time and publish time
The more artifacts you have in the workspace, the higher the memory consumption and the longer the build time. There are a few ways to reduce workspace build time:
- Close or remove the unused projects
- Turn on the XSD and WSDL validation filtering as needed
- Use the “Do not participate in clean” option in libraries
- Leverage the Build Activities view to control validation and publishing
- Test the XML map locally without deploying the application to the server
1a. Closing or removing the unused projects
All the artifacts in open projects are added to the internal index system in WebSphere Integration Developer (hereafter called Integration Developer), which in turn consumes memory and affects build time. To avoid unnecessary high memory usage, close or remove the projects that you do not need.
Having multiple roles in a business process management (BPM) project, you might want to consider having different workspaces when working on different parts of the projects. This avoids unnecessary projects being loaded in the workspace. You can use an integration solution to make this process clear and easy. The user can always see all the modules and libraries that are part of the solution and can load or unload parts of it as needed.
1b. Turning on XSD and WSDL validation filtering
When dealing with industry schemas, such as standards from Open Travel Alliance (OTA), Association for Cooperative Operations Research and Development (ACORD), or third party schemas, you cannot change the XSD and WSDL files. Therefore, there is no need to validate every time during workspace builds. In the Properties dialog of a module or library, you can specify all the XSD and WSDL files or the groups of namespace prefixes that are not to be validated by selecting Business Integration > XSD and WSDL validation filtering, as shown in Figure 1. You can add your own filters on top of the predefined ones. The options are shown in Figure 2.
Figure 1. Project properties under Business Integration category
Figure 2. Options for XSD and WSDL validation filtering
1c. Using the “Do not participate in Clean” option in Library
Similar to the XSD and WSDL validation filtering, you can enable the “Do not participate in Clean” option if you do not want to revalidate, rebuild, and update markers in the files within a library when performing “clean all”. In the Properties dialog of a library, select Business Integration > Participation in Clean. On the right panel, you see the checkbox for this option as shown in Figure 3.
Figure 3. Participation in Clean option in Properties dialog
1d. Leveraging the Build Activities view to control validation and publishing
The Build Activities view allows you to select workspace activities to run during a build. The “Validate and update deploy code” is the default selection, which is also the recommended one (Figure 4). This means that when you save the changes, the server is not updated even though the affected applications are deployed on the server. The explicit action of republishing the changes to the server saves the unnecessary time spent on updating the server when the application is not ready to be republished.
Figure 4. Build Activities View
For more details, see the Build Activities view section in the Integration Developer Information Center.
1e. Testing the XML map
The XML map editor tests the mapping locally without starting the server and deploying the module. You can invoke the Test Map function from the toolbar (Figure 5) or the context menu of the map (Figure 6).
Figure 5. Test Map toolbar item in XML map editor
Figure 6. Test Map menu item
For more details, refer to the Test XML Maps section in Integration Developer Information Center.
2. Testing in the WebSphere test environment
Deploying your application and testing it on the Test Client allows you to quickly verify the components that they are currently developing. In the case where there are components in a module that call out to different services in other modules, there are a few alternatives to offload the WebSphere test environment (WTE):
- Moving applications to a common development test environment
- Increasing the WebSphere test environment heap size
- Organizing tests using the Integration Test Client
- Using cross component trace
2a. Moving applications to a common development test environment
For the modules that are only needed for service calls, you may not need to install those applications on the same machine as the WebSphere test environment. That means you may not need to import the modules that are not working in the workspace.
You can set up a common development test environment to deploy those services on a separate server. It not only offloads your own WTE, but you can also improve the build time so that fewer numbers of artifacts are added to the workspace. Another advantage is that each developer can deploy the latest update of the applications to the development test server for other developers to call.
2b. Increasing the WebSphere test environment heap size
The WTE is supposed to be used for testing smaller scale of applications. If the default setting of the server’s heap size is not sufficient (that is, when you get OutOfMemoryError when running the applications), you may want to increase the heap size of the server. For more details, see the WebSphere Integration Developer frequently asked questions page.
2c. Organizing tests using the Integration Test Client
Use the Integration Test Client in Integration Developer to help organize test cases and to make testing easier. You can learn more test case support from this developerWorks article, Taking component testing to the next level in WebSphere Integration Developer. Once deployed, you can also run the test cases through the web browser without Integration Developer.
2d. Using cross component trace
When there are numerous components and modules involved in your BPM solution, it is helpful to trace and identify where the unexpected behavior occurred. Cross component trace can help you in problem determination when your application is not running as expected. To enable the cross component trace, go to the Server Logs view and then select the View Menu icon > Cross-Component Trace State as shown in Figure 7. By default, it is disabled.
Figure 7. Enable cross component trace
Figure 8 shows a sample output from the cross component trace that involves an SCA component in a module that is calling a component in another module.
Figure 8. Sample output of cross component trace
3. Better artifact organization and team collaboration
This section provides tips on:
- Using shared libraries
- Using sticky notes
- Enhanced team support in mediation flow
- Using the Integration Solution
3a. Using shared libraries
Business objects and interfaces are the building blocks in Integration Developer. They are often being referenced in multiple modules. For better reuse, it is always a good idea to put those common artifacts in a library. It also makes the design cleaner. Instead of having multiple business object definitions, which is meant to be the same, located in multiple locations, you only need to make changes in one place by creating a business object in the library and having the modules referencing the library.
If the library is selected to be deployed with the module in the dependencies editor, the module is packaged as an EAR and contains a copy of the library JAR file during deploy time. If there are multiple modules referencing the same library, each EAR will have a copy of the library. To reduce the deploy time, you can set up the shared library on the server.
Note that when these common artifacts are changed in the library, the server needs to be restarted for changes to be effective.
For configuration details about a shared library, refer to this technote.
3b. Using sticky notes
Sticky notes serve as reminders to yourself or others, and do not replace the description fields in the properties of the components. You can add notes in the Assembly editor and the Process editor.
Besides adding text, you can add tags and hyperlinks to the note. The “TODO” and “FIXME” tags are predefined Java™ compiler tags. Hence, they appear in the Task view. You an also define hyperlinks as depicted in Figure 9.
Figure 9. Sticky note
In addition, you can define your own custom tags. This is also done through the Java compiler settings. To do so, switch to Java perspective and then go to the Preferences page. From Java > Compiler > Task Tags, you can add your own (Figure 10).
Figure 10. Configure your own tag
3c. Enhanced team support in mediation flow
To minimize the chance of managing conflicts with other developers, we recommend that developers work on separate components, which correspond to separate physical resources. When creating a mediation flow, you can use an option to save the mediation flow in a single file or multiple files (Figure 11). If the latter option is selected, a new physical file is created when an operation connection is made. This allows multiple developers to work on different mediation flows in the same mediation flow component.
Figure 11. New Mediation Flow wizard
You can also configure this in the Preferences page by selecting Business Integration > Mediation Flow Editor (Figure 12).
Figure 12. Preference to set options for creating mediation flow
3d. Using the Integration Solution
Introduced in V6.2, the Integration Solution section in the Business Integration view helps you to organize related modules and libraries. It also shows the relationships (or bindings) with other modules.
Other benefits include:
- Easier team development. You can check in and check out solution, together with the projects associated with it
- Easier to organize documentations. You can add documents related to the solution, such as design and architectural documents.
- Easier to load and unload modules that are relevant to the tasks at hand, while the user still has a full picture of the entire solution.
4. Maximizing your working space
In the mediation flow editor, BPEL editor, and Assembly editor, you can collapse the trays to maximize your working space, as shown in Figure 13.
Figure 13. Maximize your working space in the Mediation Flow editor
Figure 14 shows the screen capture after you collapsed all the trays.
Figure 14. Mediation Flow editor after all the trays are collapsed
Similarly, you can do the same thing for the BPEL editor and Assembly editor, depicted in Figure 15.
Figure 15. Maximize your workspace in the BPEL editor
In the Test Client, you can also maximize the pane, depending on the current task (Figure 16).
Figure 16. Maximize different pane in the Test Client
5. Using the search and filter capabilities
The Open Artifact dialog and Artifact Search dialog help you to find a specific artifact more easily.
You can open the Open Artifact dialog from the toolbar (Figure 17). All the artifacts that you see in the Business Integration view are available for selection.
Figure 17. Open Artifact toolbar item
In the Search dialog, there is a Business Integration Search tab as shown in Figure 18. You can limit your search based on the type, name, or namespace of the artifacts that you are looking for.
Figure 18. Search dialog
5a. Using the References view
The References view shows the relationship between an object selected in the Business Integration view and the artifacts that it references. Therefore, it saves you time to navigate through the artifacts to find out their dependencies.
Take the example shown in Figure 19. By selecting MyBO1 in the Business Integration view, you can quickly see that it references MyChildBO, which is a business object. This is being referenced by “MyInf1”, which is an interface.
Figure 19. Business Integration view with References view
This article provided hints and tips that can potentially improve your productivity when using WebSphere Integration Developer. Reducing workspace build time and publish time are one of the key areas that you can look at when you are dealing with a large number of artifacts and projects. You can see a significant improvement in the build time when adopting those tips.
This article also discussed how to use the WebSphere test environment, the Test Client, and the cross component trace capability to make the unit testing effort more efficient. In addition, better artifact organization and maximizing your workspace space inside Integration Developer can also help your productivity.
The author would like to thank Phil Coulthard and Grant Taylor for their technical review of this article.
- WebSphere Integration Developer V7 Information Center
- Rational Application Developer performance tips
- WebSphere Integration Developer Information Center: Build Activities view
- WebSphere Integration Developer Information Center: Testing XML Maps
- Team development using CVS
- XML mapping in WebSphere Integration Developer, Part 1
- Taking component testing to the next level in WebSphere Integration Developer
- Using shared libraries on WebSphere Process Server
- Frequently asked questions (FAQs) about WebSphere Integration Developer