soapesbmessagebrokercopybookibm-integration-bus

IBM Integration Bus: How to import COBOL copybooks and expose them as WS SOAP?


I'm designing an ESB solution using IBM Integration Bus v10 (IIB). We'd like to somehow import our existing COBOL copybooks into the Toolkit and expose them as SOAP WebServices.

I just find on its documentation how to create mapping nodes and do the work manually, but I'd prefer something automatic like defining a dictionary (SOAP name and COBOL name) that could apply to all our services without needing custom mapping each time. So...

1) Is that possible? How can I define a dictionary like that?

2) If it is not possible, how can I build a generic flow for all my services, and then just import the copybooks that has to be exposed with that flow? The main objective for us is being able to publish new services just from the command line, without using the Toolkit. Our aim is to use the Toolkit only for designing flows, but publishing new services should be automatically.

3) Our current solution (without IIB) generates a jar file with custom Java code for each service, that do the mapping from Java annotated classes to a byte array that COBOL understands.

If none of 1st and 2nd questions are possible to handle with IIB, does anybody know if it is easy to import so many JARs and use them from within a Java Compute node to do the transformation? Will it be a dependency nightmare?

Thanks you all in advance.


Solution

  • 1, This is possible, though the Toolkit will not generate end to end applications for you. To be honest it doesn't generate a lot, mostly message models and boilerplate code. So you would need to come up with a mapping scheme fitting all your services, and code this general mapping in the Toolkit. However I prefer simpler mappings that transfer interfaces 1-1. You may have lots of those and require some development whenever you add a new, but you will spend much less time developing the lot of small mappings, then the 1 general purpose.

    You may want to look into patterns, the Toolkit supports creating parametrized applications called patterns, and reusing those by only specifying the parameters for the new instances. This is still development, but can be made real easy.

    2, This is not possible (or would need a lot of initial development, IIB provides a Java API to build applications programmatically, so anything is possible in a way), unless you have completely general interfaces. Without general interfaces you will always need to make at least the message models for the interfaces of the new Cobol services.

    3, You can easily use external JARs from Java Compute nodes. You could come up with a web service interface suitable for all your Cobol services, implement it in IIB, and do the Cobol side of your data flows by calling external JARs. It might get tricky to add new services without changing the IIB application though.