How to implement an intermediary component translating SOAP messages?
0 posts in topic
Flat View  Flat View
TOPIC ACTIONS:
 

Posted By:   Lasse_Koskela
Posted On:   Sunday, January 19, 2003 04:46 AM

Hi all, I've got a need for implementing a kind of translation service for SOAP requests and responses and I'd like to hear about possible approaches from more experienced developers. The context is like this: - Few centralized systems - Lot of local systems - Centralized and local systems need to communicate with each other (but not between two local systems) - The local systems are all different and produce/consume different XML messages. For example, the interaction could be filling in a time report. When the time report is filled in into a centralized system, the central system invokes the corresponding local system's web services to notify abou   More>>

Hi all,


I've got a need for implementing a kind of translation service for SOAP requests and responses and I'd like to hear about possible approaches from more experienced developers.


The context is like this:


- Few centralized systems

- Lot of local systems

- Centralized and local systems need to communicate with each other (but not between two local systems)

- The local systems are all different and produce/consume different XML messages.


For example, the interaction could be filling in a time report. When the time report is filled in into a centralized system, the central system invokes the corresponding local system's web services to notify about a new time report ("I received this report, update it to your systems as well"). Furthermore, the local system could send for example fault reports to the centralized systems upon encountering them.


These local systems are being added and removed from the overall infrastructure frequently and thus integrating new systems (message formats) should be as easy as possible.


I thought about placing a global translation service to the network (located using UDDI), which would be used to translate messages between centralized systems' and local systems' formats.


This way, the activities would be something like this:

1: Centralized system is stimulated to perform some activities

2: Centralized system locates a translation service using a private UDDI server

3: Centralized system requests a message translation from the translation service

4: Centralized system locates the local system using the private UDDI server

5: Centralized system sends the translated message to the local system


What I'm unsure of is how to separate the "metadata" and "input" for the web services. Also, I would be very happy to receive some pointers for a how-to on "invoking a web service based on a WSDL document read over the Internet" (i.e. without compiling with WSDL2Java, etc.)...


For example, should I use the SOAPHeader to indicate with some "global" identifier which service the requestor is trying to invoke, and the SOAPBody to transport the actual message. Another approach I came up with would be using the SOAPBody to define the metadata and pass the actual message as SOAP attachment.


Please, help me. I'm definitely not too educated about these technologies :)

   <<Less
About | Sitemap | Contact