Udi On SOA (Part 2)

Udi, continuing the SOA discussion, suggests a solution to the transaction issue:

The client would generate an instance of the appropriate message class as the user finishes each sub-task, saving them up. When the user would click “confirm”, the client would send all these message objects to the server in one go with this API,

void IBus.Send(params IMessage[] messages);

Like so:

myBus.Send(addOrderLineMsg, delOrderLineMsg);

The bus would take all these objects and wrap them in a single SOAP envelope, and send them to the server, probably on a transactional channel, but that’s a configuration issue. At the server side, the bus would activate the transaction (because of the transactional channel) and start dispatching each of the specific messages to its message handler, one at a time, in the same thread.

So as you can see, there is no “transactional conversation”, and therefore we’re not locking tables in between calls, because we’ve gotten rid of “in between”. It’s just like the generic update in terms of transaction time and network hops, just with specific, simple business logic. [1]

While this sounds good in theory, this approach itself doesn't really solve any special problems. In fact, without a proper service oriented architecture and messages that are constructed based on tasks instead of CRUD operations, you will end up in the same boat as if you hadn't implemented this approach. For example, take the situation where your app needs to preform a read and modify it's data based on the results of that read (say, for instance, discounts on a shopping cart). If you continued to code your methods the same old way, you might have a call to get the discounts, then apply those discounts and save the order. Of course, if you had architected your messages properly, you would have been sending a distinct PlaceOrder message and letting the server do all the discount calculations as those are part of one discreet task. So, while Udi's proposal is an interesting one and solves some transaction issues, it isn't a silver bullet that lets you make the same calls you've always been making and still be SOA. Contrary to popular belief, simply passing your data in a message doesn't make your application service oriented.

[1] http://udidahan.weblogs.us/2007/03/31/tasks-messages-transactions-%e2%80%93-the-holy-trinity/

Published Sunday, April 01, 2007 12:28 PM by Jesse Ezell

Comments

# » From Disconnected Scenarios to SOA

Sunday, April 01, 2007 6:01 PM by » From Disconnected Scenarios to SOA

PingBack from http://udidahan.weblogs.us/2007/04/01/from-disconnected-scenarios-to-soa/

# re: Udi On SOA (Part 2)

Friday, May 04, 2007 2:37 AM by ...

http://www.chp6a.info/avere

# re: Udi On SOA (Part 2)

Friday, May 11, 2007 11:05 PM by ...

http://www.leggendaa.info/shock

# re: Udi On SOA (Part 2)

Friday, August 31, 2007 4:43 AM by ...

i am going to tell my friends about this site - it's just perfect!

# re: Udi On SOA (Part 2)

Friday, August 31, 2007 5:49 AM by ...

well-well-well.. not bad. really!

# re: Udi On SOA (Part 2)

Friday, August 31, 2007 6:55 AM by ...

Aucuns doutes c'est une bonne page..

# re: Udi On SOA (Part 2)

Friday, August 31, 2007 7:59 AM by ...

ein was fur netter Aufstellungsort. ich mag es yeah mich!

# re: Udi On SOA (Part 2)

Friday, August 31, 2007 1:22 PM by ...

luogo grande, disegno piacevole....O

# re: Udi On SOA (Part 2)

Friday, August 31, 2007 2:27 PM by ...

Qui e molto lavoro fatto, ovviamente. Buon luogo

# re: Udi On SOA (Part 2)

Friday, August 31, 2007 6:44 PM by ...

Well placed contents. I love it!

# re: Udi On SOA (Part 2)

Friday, August 31, 2007 7:48 PM by ...

sto andando dire ai miei amici circa questo luogo - � solo perfetto!

# re: Udi On SOA (Part 2)

Friday, August 31, 2007 9:57 PM by ...

Ringraziamenti molto! Lo avete aiutato molto!

# re: Udi On SOA (Part 2)

Friday, August 31, 2007 11:01 PM by ...

Je crois que ce n'est pas votre premier Web-travaillent! ;)

# re: Udi On SOA (Part 2)

Saturday, September 01, 2007 12:06 AM by ...

ch� luogo piacevole. lo gradisco, yeah, io!)))

# re: Udi On SOA (Part 2)

Saturday, September 01, 2007 1:11 AM by ...

Aucuns doutes c'est une bonne page..

# re: Udi On SOA (Part 2)

Saturday, September 01, 2007 3:21 AM by ...

well done. i'am gonna return in some time for sure

# re: Udi On SOA (Part 2)

Monday, September 10, 2007 8:00 AM by ...

Thanks a lot. You helped me much

# re: Udi On SOA (Part 2)

Monday, September 10, 2007 9:03 AM by ...

Thanks a lot. You helped me much

# re: Udi On SOA (Part 2)

Monday, September 10, 2007 10:08 AM by ...

Thanks a lot. You helped me much

# re: Udi On SOA (Part 2)

Monday, September 10, 2007 11:13 AM by ...

Thanks a lot. You helped me much

# re: Udi On SOA (Part 2)

Monday, September 10, 2007 1:19 PM by ...

Thanks a lot. You helped me much

# re: Udi On SOA (Part 2)

Monday, September 10, 2007 2:23 PM by ...

Thanks a lot. You helped me much

# re: Udi On SOA (Part 2)

Monday, September 10, 2007 3:27 PM by ...

Thanks a lot. You helped me much

# re: Udi On SOA (Part 2)

Monday, September 10, 2007 4:30 PM by ...

Thanks a lot. You helped me much

# re: Udi On SOA (Part 2)

Monday, September 10, 2007 5:34 PM by ...

Thanks a lot. You helped me much

# re: Udi On SOA (Part 2)

Monday, September 10, 2007 6:38 PM by ...

Thanks a lot. You helped me much

# re: Udi On SOA (Part 2)

Monday, September 10, 2007 7:43 PM by ...

Thanks a lot. You helped me much

# re: Udi On SOA (Part 2)

Monday, September 10, 2007 8:47 PM by ...

Thanks a lot. You helped me much

Leave a Comment

(required) 
(required) 
(optional)
(required)