ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » SOAP Integration Design Question

Post new topic  Reply to topic
 SOAP Integration Design Question « View previous topic :: View next topic » 
Author Message
Dave Ziegler
PostPosted: Fri Nov 14, 2014 10:16 am    Post subject: SOAP Integration Design Question Reply with quote

Centurion

Joined: 15 Apr 2014
Posts: 118

I have a design question I'd like to run past you guys and gals. I need to tie into a third party via their SOAP services. They provide N methods, and each method is implemented at their end as a distinct web service complete with WSDL and associated XSDs. Each of the N methods is implemented in essentially the same manner, and the only real variance is with the payload section of the web service operation. So the situation looks something like this (grossly oversimplified and walking the message tree vs. using references for the sake of clarity):

Code:

DECLARE ns NAMESPACE 'http://OperationNameServiceRequest';
DECLARE ns2 NAMESPACE 'http://OperationNameServiceRequest/Payload';

SET OutputRoot.SOAP.Body.ns:OperationNameServiceRequest.ns:MessageId = UUIDASCHAR;

SET OutputRoot.SOAP.Body.ns:OperationNameServiceRequest.ns:Service.ns:Parameters.ns:MethodId = 'OperationName';
SET OutputRoot.SOAP.Body.ns:OperationNameServiceRequest.ns:Service.ns:Parameters.ns:RequestId = UUIDASCHAR;

SET OutputRoot.SOAP.Body.ns:OperationNameServiceRequest.ns:Service.ns:Security.ns:Basic.ns:Username = 'myusername';
SET OutputRoot.SOAP.Body.ns:OperationNameServiceRequest.ns:Service.ns:Security.ns:Basic.ns:Password = 'mypassword';

SET OutputRoot.SOAP.Body.ns:OperationNameServiceRequest.ns:Service.ns:Payload.ns2:OperationNameData.ns2:Name = 'Dave';
SET OutputRoot.SOAP.Body.ns:OperationNameServiceRequest.ns:Service.ns:Payload.ns2:OperationNameData.ns2:SSN = '123456789';


(Note the use of OperationName in the namespaces, message structure, and parameter value MethodId.)

I have a POC working, but I would like to find a way to template-ify this somehow. Right now, I have only implemented 3 flows so I have something to work with. I've tried a few things with the namespaces and swapping them out for {vars}, but that only solves part of the problem. If I have to implement 100 service methods, I don't really want 100 distinct message flows each with an ESQL compute node setting all the same values (do I?). Am I correct in thinking there is a way to template this code and swap out the operation name references? Can I create a generic flow using Gateway mode or something?

I'm not looking for someone to code this for me, but a few pointers would be helpful. Thanks!

[Disclaimer: I will be attending WM675 early next year.]
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Fri Nov 14, 2014 10:32 am    Post subject: Reply with quote

Grand High Poobah

Joined: 18 Nov 2003
Posts: 20756
Location: LI,NY

keeping ns1 and ns2 variables will help.
Setting the SOAP request node to GATEWAY mode is the way to go.
Just be aware that with the gateway mode you loose the validation.

Now you may also need to dynamically override the endpoint for the SOAP request.

Looking at the high # of variations you may want to stick the values for ns and ns2 as well as the corresponding endpoint and operation name into a DB with some identifier as to allow you to determine which is which... and retrieve or cache at runtime.

Have fun
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
Dave Ziegler
PostPosted: Fri Nov 14, 2014 10:41 am    Post subject: Reply with quote

Centurion

Joined: 15 Apr 2014
Posts: 118

What if I don't want to lose validation?
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Fri Nov 14, 2014 12:44 pm    Post subject: Reply with quote

Grand High Poobah

Joined: 18 Nov 2003
Posts: 20756
Location: LI,NY

Dave Ziegler wrote:
What if I don't want to lose validation?
You can add validation nodes to the flow.
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
Dave Ziegler
PostPosted: Fri Nov 14, 2014 12:47 pm    Post subject: Reply with quote

Centurion

Joined: 15 Apr 2014
Posts: 118

fjb_saper wrote:
Dave Ziegler wrote:
What if I don't want to lose validation?
You can add validation nodes to the flow.


Node(s) pural? Or one node and pull off some sort of hijinx to make it generic? Otherwise, now I have 1 flow with 100 Validation nodes configured for each of my WSDLs.
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Fri Nov 14, 2014 12:49 pm    Post subject: Reply with quote

Grand High Poobah

Joined: 18 Nov 2003
Posts: 20756
Location: LI,NY

Dave Ziegler wrote:
fjb_saper wrote:
Dave Ziegler wrote:
What if I don't want to lose validation?
You can add validation nodes to the flow.


Node(s) pural? Or one node and pull off some sort of hijinx to make it generic? Otherwise, now I have 1 flow with 100 Validation nodes configured for each of my WSDLs.

Plural as in one before the SOAP Request and one after.
You still need 100+ messages in your message model...
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
Dave Ziegler
PostPosted: Fri Nov 14, 2014 12:50 pm    Post subject: Reply with quote

Centurion

Joined: 15 Apr 2014
Posts: 118

fjb_saper wrote:
Dave Ziegler wrote:
fjb_saper wrote:
Dave Ziegler wrote:
What if I don't want to lose validation?
You can add validation nodes to the flow.


Node(s) pural? Or one node and pull off some sort of hijinx to make it generic? Otherwise, now I have 1 flow with 100 Validation nodes configured for each of my WSDLs.

Plural as in one before the SOAP Request and one after.
You still need 100+ messages in your message model...


I have 100+ very complex WSDLs from a third party. Are you suggesting I somehow smash them all together into an uber-model? I'm not sure I am following your line of thinking.
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Fri Nov 14, 2014 12:54 pm    Post subject: Reply with quote

Grand High Poobah

Joined: 18 Nov 2003
Posts: 20756
Location: LI,NY

Well it depends if you have your xsds separate from the wsdls.
The easiest way to populate your message model would probably be to import the 100 WSDLs. I'd have to look it up but I believe there is an mqsi program to import them. So it would not all be by hand...
_________________
MQ & Broker admin


Last edited by fjb_saper on Fri Nov 14, 2014 12:56 pm; edited 1 time in total
Back to top
View user's profile Send private message Send e-mail
Dave Ziegler
PostPosted: Fri Nov 14, 2014 12:55 pm    Post subject: Reply with quote

Centurion

Joined: 15 Apr 2014
Posts: 118

fjb_saper wrote:
Well it depends if you have your xsds separate from the wsdls.
The easiest way to populate your message model would probably be to import the 100 WSDLs


The schemas are in separate files from the WSDLs, and so far I've imported about 11 of them. You said it depends, so what now?
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » SOAP Integration Design Question
Jump to:  



You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
Protected by Anti-Spam ACP
 
 


Theme by Dustin Baccetti
Powered by phpBB © 2001, 2002 phpBB Group

Copyright © MQSeries.net. All rights reserved.