Search The Blog
About this site

@RoyOsherove

Subscribe!

This site aims to connect all the dots of my online activities - from tools, books blogs and twitter accounts, to upcoming conferences, engagements and user group talks.

from 5whys.com
Twitter: @RoyOsherove
My Book: The Art of Unit Testing
Latest Posts
« Learning from mistakes: the Don Quixote pattern | Main | The RSA encryption algorithm - step by step »
Saturday
Jan172004

Using SOA on existing N-tier applications

Udi Dahan writes very eloquently and shows a simple implementation example using Service Oriented Architecture.

While I agree with the main theme, I can't help but wonder, What happens when you need to introduce the SOA theme on an existing N-tier application?  Udi recommends:

"step 1 is to create a new layer, called Entities ( or something else if you prefer ) and copy all the classes of your BL that are part of the domain model to it. Next, remove all methods from those classes"

If I got this correctly this does not take into account a (probable) situation in which the application needs to add services to it's functionality while keeping the current behavior for existing clients. You can't just move half of your logic layer into a different one. Instead it seems to me that a services layer can be put on top of the existing logical layer as an optional way to communicate from the client. This way existing client applications that used the N-tier model successfully can keep using the logic layer directly, while the services layer allows remote clients access the logical functionality using a fixed set of one-entry point classes, much like Udi's description. Am I missing something here?

PrintView Printer Friendly Version

Reader Comments

There are no comments for this journal entry. To create a new comment, use the form below.

PostPost a New Comment

Enter your information below to add a new comment.

My response is on my own website »
Author Email (optional):
Author URL (optional):
Post:
 
Some HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>