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 » Need to implement either httpInput or MQInput node concept

Post new topic  Reply to topic Goto page 1, 2  Next
 Need to implement either httpInput or MQInput node concept « View previous topic :: View next topic » 
Author Message
chris boehnke
PostPosted: Thu Jul 19, 2007 5:30 am    Post subject: Need to implement either httpInput or MQInput node concept Reply with quote

Partisan

Joined: 25 Jul 2006
Posts: 369

Hi Guys,
Right now our flow looks like this:
1. FanOut(request): MQInput -> Aggregate Control -> XMLTransformation(by using Stylesheet) -> MQOutput -> Aggregate Request

2. FanIn(reply): MQInput(response from destination application + Original Input msg, to maintain the state of the message) => Aggregate Reply -> XMLTransformation(by using Stylesheet) -> MQReply


Now we plan to implement the web services concept by using http Input and http Reply nodes to the existing message flows(which I mentioned above).

We are planning to use both MQInput and http Input(either or) concept
Questions:
1. How to implement either MQ Input or http Input nodes to the same flow(in the request flow, FanOut)?.
2. We are planning to use WSDL for the web services concept. We need to create the messageset(message definition file) for the WSDL provided. When we implement MQInput and http Input nodes concept to the same flow, do we get any conflicts with the messagesets as webservices uses WSDL and MQ Input uses Cobol copybook in our messagesets?.

Your suggestions and thoughts are appreciated.

Thanks.
Back to top
View user's profile Send private message
jefflowrey
PostPosted: Thu Jul 19, 2007 5:46 am    Post subject: Reply with quote

Grand Poobah

Joined: 16 Oct 2002
Posts: 19981

You won't be able to do HTTP request/reply in two flows - asynchronously.

It's a synchronous protocol, after all.

This means you will have to convert your MQ flow to be synchronous as well.

That means put everything in one flow, and replace your FanIn MQInput with an MQGet.
_________________
I am *not* the model of the modern major general.
Back to top
View user's profile Send private message
chris boehnke
PostPosted: Fri Jul 20, 2007 5:11 am    Post subject: Reply with quote

Partisan

Joined: 25 Jul 2006
Posts: 369

jefflowrey wrote:
You won't be able to do HTTP request/reply in two flows - asynchronously.

It's a synchronous protocol, after all.

This means you will have to convert your MQ flow to be synchronous as well.

That means put everything in one flow, and replace your FanIn MQInput with an MQGet.


Hey Jeff,
Is it possible to implement the agrregation nodes when we use the http nodes(web services)?.

From your response, I am planning my design like this:
http Input ->Filter node(decision making whether Cobol XML or IAA XML) -> XMLTransformation(business logic in Stylesheet) ->http request -> XMLTransformation(business logic in Stylesheet) -> http Reply

Now there is another problem: we want to keep the state of the message. How can we implement this with the http input nodes?. Can we use the Aggregation nodes when we implement the http nodes?.

Normally when we were using the FanOut and FanIn flows(by using the MQInput, MQOutput and MQReply nodes) by using the aggregation nodes, we used to save the original message in FanOut flow and send it to the Aggregation Reply node in the FanIn flow to generate the reply message(combining the original msg and response msg from the destination application).

How can we achieve this by using http nodes?.

yout thoughts and suggestions are appreciated.

Thanks.
Back to top
View user's profile Send private message
jefflowrey
PostPosted: Fri Jul 20, 2007 5:15 am    Post subject: Reply with quote

Grand Poobah

Joined: 16 Oct 2002
Posts: 19981

It's not necessary to use the Aggregation nodes with a synchronous request/response.

I suppose one can, though.
_________________
I am *not* the model of the modern major general.
Back to top
View user's profile Send private message
chris boehnke
PostPosted: Fri Jul 20, 2007 5:41 am    Post subject: Reply with quote

Partisan

Joined: 25 Jul 2006
Posts: 369

jefflowrey wrote:
It's not necessary to use the Aggregation nodes with a synchronous request/response.

I suppose one can, though.


Thanks Jeff.

You mean as web services(http nodes) is a synchronous process, we dont need to maintain the state of the message??.

We are going to use the WSDL to create the message set. As far as I know we need to import it into the messageset project and create the message definition file for the WSDL provided. Correct me if I am wrong.

Thanks.
Back to top
View user's profile Send private message
jefflowrey
PostPosted: Fri Jul 20, 2007 5:57 am    Post subject: Reply with quote

Grand Poobah

Joined: 16 Oct 2002
Posts: 19981

I imagine you'll find out if you're wrong once you've tried it.
_________________
I am *not* the model of the modern major general.
Back to top
View user's profile Send private message
vsr
PostPosted: Fri Jul 20, 2007 6:08 am    Post subject: Reply with quote

Centurion

Joined: 04 Apr 2006
Posts: 104

Aggregation nodes best suits when there is a single request and broker has to make a desicion on responses from multiple applications. This can be simple composite of all the responses or taking a decision what to do next.

Like Jeff said HTTP Requst/Reply is synchronous.

In your design, if your requirement is to call multiple other applications (can be Cobol or even a web service) to make a final decision, then you still have to use aggregate nodes to achieve that. It depends basically on what you wanted to achieve. Please don't confuse HTTP request/reply to aggregation.

This link may be helpful to understand better:
http://publib.boulder.ibm.com/infocenter/wmbhelp/v6r0m0/index.jsp?topic=/com.ibm.etools.mft.doc/ac34540_.htm
Back to top
View user's profile Send private message
chris boehnke
PostPosted: Fri Jul 20, 2007 6:19 am    Post subject: Reply with quote

Partisan

Joined: 25 Jul 2006
Posts: 369

vsr wrote:
Aggregation nodes best suits when there is a single request and broker has to make a desicion on responses from multiple applications. This can be simple composite of all the responses or taking a decision what to do next.

Like Jeff said HTTP Requst/Reply is synchronous.

In your design, if your requirement is to call multiple other applications (can be Cobol or even a web service) to make a final decision, then you still have to use aggregate nodes to achieve that. It depends basically on what you wanted to achieve. Please don't confuse HTTP request/reply to aggregation.

This link may be helpful to understand better:
http://publib.boulder.ibm.com/infocenter/wmbhelp/v6r0m0/index.jsp?topic=/com.ibm.etools.mft.doc/ac34540_.htm


Thanks vsr!!!
Back to top
View user's profile Send private message
chris boehnke
PostPosted: Wed Jul 25, 2007 5:19 am    Post subject: Reply with quote

Partisan

Joined: 25 Jul 2006
Posts: 369

[quote="chris boehnke"]
vsr wrote:
Aggregation nodes best suits when there is a single request and broker has to make a desicion on responses from multiple applications. This can be simple composite of all the responses or taking a decision what to do next.

Like Jeff said HTTP Requst/Reply is synchronous.

In your design, if your requirement is to call multiple other applications (can be Cobol or even a web service) to make a final decision, then you still have to use aggregate nodes to achieve that. It depends basically on what you wanted to achieve. Please don't confuse HTTP request/reply to aggregation.

This link may be helpful to understand better:
http://publib.boulder.ibm.com/infocenter/wmbhelp/v6r0m0/index.jsp?topic=/com.ibm.etools.mft.doc/ac34540_.htm


I am implementing web services(by using http nodes) and aggregation nodes to get the responses and aggregate all the responses to generate a single response.

My design flow is as below:
http Input -> Aggregation Control -> FlowOrder(path 1) -> XML Transformation(business logic in XSLT) -> http Request -> Aggregate Request
FlowOrder(path 2) -> Save the original message(Compute node) -> ECHO.Queue(MQ Output queue) -> Aggregate Request

Question: In the FlowOrder(path 1) I am trying to use Aggregate request node just after the http request node.

The message which returns from the web services is passed through the http request(out terminal).

Could anybody suggest me whether I am going in the right direction in using the Aggregate nodes in my flow?.

Thanks.
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Wed Jul 25, 2007 3:00 pm    Post subject: Reply with quote

Grand High Poobah

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

Aggregation is not typically used with a synchronous protocol like http but more with an asynchronous protocol like mq:

Example:
on the Fanout flow
mqinput aggfanout compute(1) mqout(1) aggreq(1)
compute(n) mqout(n) aggreq(n)

on the faninflow
mqinput--->aggfanin--->compute--->mqreply

What does this mean?

If your only operation in the aggregation is an HTTP service call you're better off not using aggregation.

If you have (n) http service calls in the aggregation you're better off running each of the http service calls as it's own flow and have something like this
mqinput-->aggfanout---compute(1n)--> mqoutput(1-n)--->aggrequest(1-n)

The fan in does not change.
Then you will have n flows with:
mqinput-->httpservicecall-->mqreply

Thus you have decoupled the synchronous calls from your aggregation...

Enjoy
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
chris boehnke
PostPosted: Thu Jul 26, 2007 12:25 pm    Post subject: Reply with quote

Partisan

Joined: 25 Jul 2006
Posts: 369

fjb_saper wrote:
Aggregation is not typically used with a synchronous protocol like http but more with an asynchronous protocol like mq:

Example:
on the Fanout flow
mqinput aggfanout compute(1) mqout(1) aggreq(1)
compute(n) mqout(n) aggreq(n)

on the faninflow
mqinput--->aggfanin--->compute--->mqreply

What does this mean?

If your only operation in the aggregation is an HTTP service call you're better off not using aggregation.

If you have (n) http service calls in the aggregation you're better off running each of the http service calls as it's own flow and have something like this
mqinput-->aggfanout---compute(1n)--> mqoutput(1-n)--->aggrequest(1-n)

The fan in does not change.
Then you will have n flows with:
mqinput-->httpservicecall-->mqreply

Thus you have decoupled the synchronous calls from your aggregation...

Enjoy


Could you explain the below statements in a bit detail please:

If you have (n) http service calls in the aggregation you're better off running each of the http service calls as it's own flow and have something like this
mqinput-->aggfanout---compute(1n)--> mqoutput(1-n)--->aggrequest(1-n)

The fan in does not change.
Then you will have n flows with:
mqinput-->httpservicecall-->mqreply


thanks.
Back to top
View user's profile Send private message
jefflowrey
PostPosted: Thu Jul 26, 2007 12:37 pm    Post subject: Reply with quote

Grand Poobah

Joined: 16 Oct 2002
Posts: 19981

The idea is to put each synchronous HTTP request inside it's own flow, driven off an asynchronous MQ call.

Then you can manage the aggregation portion of it as if it was all MQ.

If you had other kinds of requests over other kinds of protocols - perhaps using the file extender to exchange data over a file, or etc - you could do the same thing.

Then you have only a minimal amount of change to make to your "main" aggregation flow, if you need to add or change the requests/replies being aggregated.

But if you know that a) all your requests are going to be HTTP, b) you have only a small number of them, c) they are generally going to be reliable - you will get a lot better performance by putting them all directly in one flow and not using the Aggregation nodes at all.
_________________
I am *not* the model of the modern major general.
Back to top
View user's profile Send private message
chris boehnke
PostPosted: Fri Jul 27, 2007 7:07 am    Post subject: Reply with quote

Partisan

Joined: 25 Jul 2006
Posts: 369

chris boehnke wrote:
fjb_saper wrote:
Aggregation is not typically used with a synchronous protocol like http but more with an asynchronous protocol like mq:

Example:
on the Fanout flow
mqinput aggfanout compute(1) mqout(1) aggreq(1)
compute(n) mqout(n) aggreq(n)

on the faninflow
mqinput--->aggfanin--->compute--->mqreply

What does this mean?

If your only operation in the aggregation is an HTTP service call you're better off not using aggregation.

If you have (n) http service calls in the aggregation you're better off running each of the http service calls as it's own flow and have something like this
mqinput-->aggfanout---compute(1n)--> mqoutput(1-n)--->aggrequest(1-n)

The fan in does not change.
Then you will have n flows with:
mqinput-->httpservicecall-->mqreply

Thus you have decoupled the synchronous calls from your aggregation...

Enjoy


Could you explain the below statements in a bit detail please:

If you have (n) http service calls in the aggregation you're better off running each of the http service calls as it's own flow and have something like this
mqinput-->aggfanout---compute(1n)--> mqoutput(1-n)--->aggrequest(1-n)

The fan in does not change.
Then you will have n flows with:
mqinput-->httpservicecall-->mqreply


thanks.


I want to use httpInput instead of MQInput node and httpRequest instead of MQOutput(1) just before the Aggregation Request node to call the web services.

Is it possible to use httpRequest instead of MQOutput(1) just before the Aggregation Request node to call the web services?.

Please suggest....thanks.
Back to top
View user's profile Send private message
jefflowrey
PostPosted: Fri Jul 27, 2007 7:18 am    Post subject: Reply with quote

Grand Poobah

Joined: 16 Oct 2002
Posts: 19981

If you are doing HTTPRequest, you don't need Aggregation.
_________________
I am *not* the model of the modern major general.
Back to top
View user's profile Send private message
chris boehnke
PostPosted: Fri Jul 27, 2007 7:33 am    Post subject: Reply with quote

Partisan

Joined: 25 Jul 2006
Posts: 369

jefflowrey wrote:
If you are doing HTTPRequest, you don't need Aggregation.


Hey Jeff,

Thanks for your inputs. Yes, I am planning to implement httpRequest node and call the web services.

We need to call multiple services and an aggregate reply should be generated. Do you think without using the aggregation nodes we can achieve my requirement?.

If the aggregation is not needed, this is the flow design what I have in my mind.

httpInput->XMLTransformation(business logic in Stylesheet)->httpRequest->XMLTransformation(business logic in Stylesheet)->httpReply.

Please let me know if I am wrong.

In the above planned design, how can we call multiple web services as we can place only single URL in a httpRequest node?.

Thanks for your valuable suggestions.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Goto page 1, 2  Next Page 1 of 2

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » Need to implement either httpInput or MQInput node concept
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.