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 » So what do you say....

Post new topic  Reply to topic Goto page 1, 2  Next
 So what do you say.... « View previous topic :: View next topic » 
Author Message
PeterPotkay
PostPosted: Thu Aug 11, 2011 1:43 pm    Post subject: So what do you say.... Reply with quote

Poobah

Joined: 15 May 2001
Posts: 7722

....to the application team that says " Gee, we have this nice farm of WMB Brokers in house, and there is capacity on them, so why don't we just use WMB to run our entire set off application logic including business logic for this new app we are building. Its easy enough for us to handle with ESQL and/or Java Compute nodes."

I've bounced this off of a couple of people and gotten all sorts of view points. What's yours?
_________________
Peter Potkay
Keep Calm and MQ On
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Thu Aug 11, 2011 1:53 pm    Post subject: Re: So what do you say.... Reply with quote

Grand High Poobah

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

PeterPotkay wrote:
....to the application team that says " Gee, we have this nice farm of WMB Brokers in house, and there is capacity on them, so why don't we just use WMB to run our entire set off application logic including business logic for this new app we are building. Its easy enough for us to handle with ESQL and/or Java Compute nodes."

I've bounced this off of a couple of people and gotten all sorts of view points. What's yours?


Are they crazy? If they want to segregate the business rules into a repository, have them use ILog. That is what ILog was built for...
If they need additional logic such as orchestration, state machine, etc... WPS can help.
Reserve WMB for what it does best: stateless traffic: routing, transformation, protocol switching, etc...

That's my $0.02 worth
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
mapa
PostPosted: Thu Aug 11, 2011 2:15 pm    Post subject: Reply with quote

Master

Joined: 09 Aug 2001
Posts: 257
Location: Malmö, Sweden

I agree with fjp_saper to use the WMB what it is good at.

I every now and then have to fight hard to keep business logic out of the broker.

When I was new into integration in late 90's I didn't know better and that was a hard lesson. SAP consultants tricking the team into that it wasn't possible to implement in SAP and so easy in the integration broker we had then (non-IBM). That was until we hired a freelance SAP guru who could help our team against such claims.

It is often easy and very fast to implement in the broker, but a nightmare to maintain.
_________________
Brgds, Magnus Palmér
Enfo Zystems
Back to top
View user's profile Send private message Visit poster's website
Vitor
PostPosted: Thu Aug 11, 2011 4:55 pm    Post subject: Reply with quote

Grand High Poobah

Joined: 11 Nov 2005
Posts: 26093
Location: Texas, USA

I add my voice to this. Trying to keep state information inside WMB is a nightmare matched only by trying to remember where all the business logic is buried.

Use WMB for what it's good for. Use WPS, WAS or something else for the rest.
_________________
Honesty is the best policy.
Insanity is the best defence.
Back to top
View user's profile Send private message
PeterPotkay
PostPosted: Thu Aug 11, 2011 5:00 pm    Post subject: Reply with quote

Poobah

Joined: 15 May 2001
Posts: 7722

FJ, WMB does do those thing you listed very well. But you did not give a reason why you couldn't add business logic into the compute nodes.

mapa, the one reason you listed is its a nightmare to maintain. What's so difficult about making the change to the ESQL or Java compute node and redeploying the bar file every release cycle?

I am with you guys. Ever since I was an MQ noob its been drilled into my head the Broker is for message transformation, content based routing, switching protocols between disparate apps (MQ in, HTTP out for example) - and don't you even think about adding business logic in there. But exactly why can't you, or I guess more correctly why shouldn't you, drop some business logic in there?
_________________
Peter Potkay
Keep Calm and MQ On
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Thu Aug 11, 2011 7:41 pm    Post subject: Reply with quote

Grand High Poobah

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

PeterPotkay wrote:
FJ, WMB does do those thing you listed very well. But you did not give a reason why you couldn't add business logic into the compute nodes.

mapa, the one reason you listed is its a nightmare to maintain. What's so difficult about making the change to the ESQL or Java compute node and redeploying the bar file every release cycle?

I am with you guys. Ever since I was an MQ noob its been drilled into my head the Broker is for message transformation, content based routing, switching protocols between disparate apps (MQ in, HTTP out for example) - and don't you even think about adding business logic in there. But exactly why can't you, or I guess more correctly why shouldn't you, drop some business logic in there?


Business logic is by design very fluid and prone to a lot of changes. You do not want to be constantly deploying and testing new code.

The business logic should go into a repository like ILog, which will enable the business people to maintain it. WMB, WAS, WPS and whatever other alphabet soup you use should then just query the ILog rules server and use the result to drive their processes. ILog also allows you to simulate changes and the impact it would / could have on your business decisions...

Have fun
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
mapa
PostPosted: Thu Aug 11, 2011 9:58 pm    Post subject: Reply with quote

Master

Joined: 09 Aug 2001
Posts: 257
Location: Malmö, Sweden

Once again I agree with fjb_saper, apart from the ILog which I have no knowledge of.

Also it is often only some business logic they want in the broker, not all.
Maybe if all of the main business logic were handled by the broker but I can't see such a scenario. Then again, I listened to an architect from Skype at a conference and he claimed that ALL backend business rules were kept in the stored procedures...
http://www.infoq.com/articles/learnings-five-years-skype-architect

Also advanced business logic often requires state and correlation with other business events.

Do to conclude I don't say never, but can't see a case were the limitations for doing it is fulfilled.
_________________
Brgds, Magnus Palmér
Enfo Zystems
Back to top
View user's profile Send private message Visit poster's website
smdavies99
PostPosted: Thu Aug 11, 2011 10:05 pm    Post subject: Reply with quote

Jedi Council

Joined: 10 Feb 2003
Posts: 6076
Location: Somewhere over the Rainbow this side of Never-never land.

mapa wrote:


Also advanced business logic often requires state and correlation with other business events.



And that (for very good reasons) is why Broker is a bad bad bad choice for holding your business logic.

When I were a lad and apprentice, I quickly learned that I should always use the right tool for the job.
Broker is not the right tool for business logic. If you have complicated state dependant logic that requires human interaction use Process Server not a transformation engine.

However,
I still open paint tins with a large flat bladed screwdriver...
_________________
WMQ User since 1999
MQSI/WBI/WMB/'Thingy' User since 2002
Linux user since 1995

Every time you reinvent the wheel the more square it gets (anon). If in doubt think and investigate before you ask silly questions.
Back to top
View user's profile Send private message
marko.pitkanen
PostPosted: Thu Aug 11, 2011 10:15 pm    Post subject: Reply with quote

Chevalier

Joined: 23 Jul 2008
Posts: 440
Location: Jamsa, Finland

Hi,

As mentioned before there are a lot of reasons why you should avoid business logic at the broker: Broker's main purpose is to do message driven, stateless message content or protocol conversion fast and reliable (there are nowadays also built-in nodes that enables broker function like ESB end-point container (product specific EIS -nodes)). Broker professionals are rare than for example J2EE -professionals. There are products that are designed to do process control, maintain states and do business decisions.

The decision is perhaps political: At decision phase you should fight as much as possible to use products that are designed to solve certain business needs.

You can do a lot of things also at broker. You need perhaps extra home made solutions to enable broker function as dynamic business decision rule or state engine which you need to maintain and develop (need to evaluate life cycle cost, ensure that the competent is available for whole life cycle and so on).

After decision you should document, publish and market the decision (and responsibilities) and it's causes all over you organisation.

--
Marko
Back to top
View user's profile Send private message Visit poster's website
PeterPotkay
PostPosted: Fri Aug 12, 2011 4:20 am    Post subject: Reply with quote

Poobah

Joined: 15 May 2001
Posts: 7722

Disclaimer: I am not a developer. My WMB flows were always extremely simple affairs used for my own purposes and not to support business. Yes I took training, but the last time was at version WB-IMB 5.0 and if your not working with flows regularly.... Plus I've never built any apps that run on application servers. I'm just that MQ guy.

This is why I need your help.

fjb_saper wrote:
Business logic is by design very fluid and prone to a lot of changes. You do not want to be constantly deploying and testing new code.

If the business requirements change, somebody somewhere needs to deploy and test code. I don't see why its any more difficult in WMB. And maybe other shops are different, but it seems here that very often (but not always), when the app areas are changing their apps, there are corresponding WMB changes required anyway to insure the mapping between the new versions of the app(s) works.

smdavies99 wrote:

mapa wrote:
Also advanced business logic often requires state and correlation with other business events.

And that (for very good reasons) is why Broker is a bad bad bad choice for holding your business logic.

state and correlation with other business events - what about Collector Nodes and Database Nodes?

I still feel its technically possible to do what you need to in WMB. Can I get a specific example that shows why its a bad idea? Is it getting more difficult to make this argument with every release of WMB as it becomes more and more capable with all the bells and whistles and performance each release brings?

One thing I can think of is that WMB is a very expensive sledge hammer approach to be running business logic. Why burn up CPU cycles and memory and chew up your spare capacity doing business logic when that should be executed on a more cost effective platform? Leave the WMB capacity to allow WMB to scream at the things WMB is best at - routing, transformation and protocol switching.
_________________
Peter Potkay
Keep Calm and MQ On
Back to top
View user's profile Send private message
lancelotlinc
PostPosted: Fri Aug 12, 2011 4:34 am    Post subject: Reply with quote

Jedi Knight

Joined: 22 Mar 2010
Posts: 4941
Location: Bloomington, IL USA

Had this same question yesterday with a system designer. She said she had some files that needed to be moved from one folder to another folder, could we use Broker to do it? Her rationale was, we should use Broker for everything, its a "bus", right?.

I explained that Broker has a finite capacity, not unlimited. Yes, you could use Broker to do this, but Broker does not add any value to the process over what cron and a pojo could do. So, if we did this on Broker, we are choosing the most expensive way to do what free could have done.
_________________
http://leanpub.com/IIB_Tips_and_Tricks
Save $20: Coupon Code: MQSERIES_READER
Back to top
View user's profile Send private message Send e-mail
PeterPotkay
PostPosted: Fri Aug 12, 2011 5:10 am    Post subject: Reply with quote

Poobah

Joined: 15 May 2001
Posts: 7722

lancelotlinc wrote:
...but Broker does not add any value to the process over what cron and a pojo could do. So, if we did this on Broker, we are choosing the most expensive way to do what free could have done.


Ah, I like that argument. That goes into the toolbox.


Notice how I phrased my initial question though. The problem scenario has a new app that will need to run somewhere, and they're greedily eying that sweet WMB Farm that runs so well from everything they've heard. Why bother getting our own app servers, just give us an Execution Group!
_________________
Peter Potkay
Keep Calm and MQ On
Back to top
View user's profile Send private message
Vitor
PostPosted: Fri Aug 12, 2011 5:49 am    Post subject: Reply with quote

Grand High Poobah

Joined: 11 Nov 2005
Posts: 26093
Location: Texas, USA

PeterPotkay wrote:
The problem scenario has a new app that will need to run somewhere, and they're greedily eying that sweet WMB Farm that runs so well from everything they've heard. Why bother getting our own app servers, just give us an Execution Group!


I think the valid point made can be extended further; by writing the application to run in ESQL or JCN, the code is inside a large and fairly complex framework. It's this that I'm talking about when I discuss business logic being "buried" inside broker.

Contrast that with a set of MDBs or similar running inside an app server. Easy to see without WMB training, quick to change and test (even if the WMB is under CI) and quick to deploy.

Also you can keep state inside WMB with a database and correlation. It's a sledgehammer to crack a nut and surprisingly easy to tie up in knots; having tried it once (having lost a game of "who has the most influentical manager" with the WPS team) a lot of stuff crawls out of the woodwork, especially when state changes due to time expiry or other non-service causes.
_________________
Honesty is the best policy.
Insanity is the best defence.
Back to top
View user's profile Send private message
dilse
PostPosted: Fri Aug 12, 2011 5:56 am    Post subject: Reply with quote

Master

Joined: 24 Jun 2004
Posts: 270

Quote:
One thing I can think of is that WMB is a very expensive sledge hammer approach to be running business logic. Why burn up CPU cycles and memory and chew up your spare capacity doing business logic when that should be executed on a more cost effective platform?

I definitely agree with the above statement. I implemented the bus using WMB in different places with different principles based on type of business that the customer is and based differentent Architect's idealogies.
But in my opinion, as a long as broker is not being used for business process orchestration or for long-running transactions, it may make sense to implement the business logic in Message broker.
But I also see the advantage behind restricting the stateless transformation, routing, enrichment and protocol transfer as thats where you need Broker's major help and the product was designed to start with. This restriction not only makes quick and easy implementation of middlware logic but also makes a new person to take on either modifying an existing interface or a new interface quickly without needing to know what the busimess knowledge involved.

My 2 cents..
_________________
DilSe..

Take life as it comes..
Back to top
View user's profile Send private message
mqjeff
PostPosted: Fri Aug 12, 2011 9:39 am    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

Vitor wrote:
PeterPotkay wrote:
The problem scenario has a new app that will need to run somewhere, and they're greedily eying that sweet WMB Farm that runs so well from everything they've heard. Why bother getting our own app servers, just give us an Execution Group!


I think the valid point made can be extended further; by writing the application to run in ESQL or JCN, the code is inside a large and fairly complex framework. It's this that I'm talking about when I discuss business logic being "buried" inside broker.

Contrast that with a set of MDBs or similar running inside an app server. Easy to see without WMB training, quick to change and test (even if the WMB is under CI) and quick to deploy.


Okay, I completely disagree with most of this.

Broker is *just* fine for business logic, provided it is indeed a stateless business logic that needs to be run.

And the difference between an ESQL compute node and an MDB - the code in either case is "buried" in a large and complex framework! In fact, JEE is a significantly more complex and significantly larger framework than the Broker runtime is. And the amount of code needed to actually PARSE a message in JEE is significantly uglier than in Broker.

The amount of *user written* code is going to be *much* larger to do the same task with an MDB than with a Broker flow with an MQInput node, a compute node, and an MQOutput node.

And it's the user written code that holds all of the bugs!

Unless you have to deal with state, there's no reason not to do *everything* in Message Broker. It's at least as reliable as WAS from a runtime perspective, significantly faster to develop code with, just as easy to automate the compile/build/deploy/test cycle to ensure quality code, and etc. etc. etc.
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 » So what do you say....
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.