Author |
Message
|
RocknRambo |
Posted: Tue Mar 20, 2012 6:54 am Post subject: WS in MB |
|
|
Partisan
Joined: 24 Sep 2003 Posts: 355
|
I understand a msg flow in MB can be exposed as a web service... we are in the process of putting up a standard when to use MB as service provider contrast to service mediator.
we have come to an understanding that only integration logic will be MB and not any business logic. We have a new req for creating a WS which accepts a incoming request does a lookup from couple of databases and provides a result set (for ex: product availability)
The debate is where should we develop this service, either in MB or a separate JEE engine ?
has anyone come to an understanding with the governance body on when should we consider MB as WS provider in contrast to service mediator? if so what criteria ?
Thanks for any pointing
--RR |
|
Back to top |
|
 |
Vitor |
Posted: Tue Mar 20, 2012 7:08 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
IMHO the correct answer to this question is "it depends".
Your scenario would seem to turn on the question of "no business logic"; a well understood best practice within WMB. To extend your example, if the question of "product availability" is simply a lookup of stock levels in a database then WMB is a contender. Even if the "product availability" stretches into "product availability for that customer" and includes a web service call to check credit as well as a database lookup, then WMB is still in the running.
Once it moves into the "product availability for that customer in the timescale required" and you need to work out order fulfilment & delivery schedules it gets a lot less clear cut. Much of that requires access to business processes, and what happens if "check product availability" morphs into "order product" 2 years down the line?
So if it's a straightforward service or mediation then WMB is a good choice provided you can tie down the requirements & they're not going to creep because your architecture govenance is strong and future business logic will be forced where it needs to go.
If there's a risk this will inflate slowly into something other than a service, you might be better advised to start in a separate environment.
You should also remember that a solution is usually more than a service. There's no good reason that for a given solution (like determining product availability) you can't write a lightwieght service in some engine that fronts a WMB flow (called as a web service by the engine) that does all the aggregation, transformation, database handling & other heavy lifting. The reverse is equally true; you can expose the function as a web service enabled flow that, as part of the it's processing, calls an external service that contains the business logic and rules.
My 2 cents, other opinions are equally valid and may be better. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
lancelotlinc |
Posted: Tue Mar 20, 2012 7:30 am Post subject: |
|
|
 Jedi Knight
Joined: 22 Mar 2010 Posts: 4941 Location: Bloomington, IL USA
|
Classic Enterprise Service Bus provides value in two ways: (1) Context-based routing and (2) data transformation. Since your proposed use-case is neither of these, I would host the service some other place besides WMB. _________________ http://leanpub.com/IIB_Tips_and_Tricks
Save $20: Coupon Code: MQSERIES_READER |
|
Back to top |
|
 |
mqjeff |
Posted: Tue Mar 20, 2012 7:34 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
If you don't already have an existing JEE app server environment, don't build one.
You really need to discuss this with your own governance board, rather than random strangers on the internet. |
|
Back to top |
|
 |
RocknRambo |
Posted: Tue Mar 20, 2012 7:45 am Post subject: |
|
|
Partisan
Joined: 24 Sep 2003 Posts: 355
|
Agreed the final decision is from the governance body... but, would like to get some brains/thoughts/view point on how this is implemented in other org's...
what are the practical points and criteria to consider in making a choice.
We always talk to abt no business logic in MB/ESB... can someone throw an example of integration logic and business logic
Thanks
--
RR |
|
Back to top |
|
 |
mqjeff |
Posted: Tue Mar 20, 2012 7:52 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
RocknRambo wrote: |
We always talk to abt no business logic in MB/ESB... can someone throw an example of integration logic and business logic |
It's a useful notion, but it's not entirely accurate.
For one thing, as you say, the distinction between these logics can be a bit fuzzy.
If I call one back end system and only transform the request and the response, then probably this is integration logic...
If I have to call three separate back end systems and aggregate the responses to provide a unified view of data, is that integration logic or business logic?
If I have to take one of the three responses and perform complicated math on the data in it before I can call the second with that information, and then do the same on the second response to call the third... is that business logic or integration logic? |
|
Back to top |
|
 |
Vitor |
Posted: Tue Mar 20, 2012 7:59 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
RocknRambo wrote: |
We always talk to abt no business logic in MB/ESB... can someone throw an example of integration logic and business logic |
Integration logic is where you determine product availablity by reading the QuanityInStock & Units columns from a database, converting the quantity integer returned into an XML tag called QuanityAvailable & setting an attribute of Units to "Boxes", "Crate" or "Other" depending on the Units value.
Business logic is where you determine product availability by reading the QuanityInStock & Units columns from a database, checking to see if this customer has any outstanding invoices & returning a value of 0 in QuantityAvailable if the result is less than the RestockLevel column & the customer is not a Premier customer.
Other & better examples undoubtably exist. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
mqsiuser |
Posted: Tue Mar 20, 2012 8:28 am Post subject: |
|
|
 Yatiri
Joined: 15 Apr 2008 Posts: 637 Location: Germany
|
There is an interesting thread on business logic "yes or no within MB".
There actually are companies that have MB only (no AppServer) and they need to do certain things. This brings down you choices very much
Also depending on where you want to have your business logic "burried"... Kind of which team or persons take responsibility/maintainance ... usually you/everyone are/is pushing away from that !
Somewhere/someone will have to do it (and take responsibility/maintainance for it).
I'd guess someone resonably able/skilled is a good candidate. Or you are of the view that your/a partner(s) should just do. _________________ Just use REFERENCEs |
|
Back to top |
|
 |
|