<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Adventures in SOA, Part 2</title>
	<atom:link href="http://averyblog.com/net/adventures-in-soa-part-2/feed/" rel="self" type="application/rss+xml" />
	<link>http://averyblog.com/net/adventures-in-soa-part-2/</link>
	<description>This is not the greatest tagline in the world... this is just a tribute.</description>
	<lastBuildDate>Mon, 11 Jan 2010 16:36:16 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: James</title>
		<link>http://averyblog.com/net/adventures-in-soa-part-2/comment-page-1/#comment-33</link>
		<dc:creator>James</dc:creator>
		<pubDate>Thu, 29 May 2008 05:30:56 +0000</pubDate>
		<guid isPermaLink="false">http://averyblog.infozerk.net/?p=32#comment-33</guid>
		<description>&lt;p&gt;Thanks for the post. This article discusses why SOA shouldn&#039;t be compared with object orientation:&lt;/p&gt;
&lt;p&gt; &lt;a target=&quot;_blank&quot; href=&quot;http://www.geeks.ltd.uk/Knowledgebase/Service-Object-Orientation.html&quot; rel=&quot;nofollow&quot;&gt;www.geeks.ltd.uk/.../Service-Object-&lt;/a&gt; &lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Thanks for the post. This article discusses why SOA shouldn&#8217;t be compared with object orientation:</p>
<p> <a target="_blank" href="http://www.geeks.ltd.uk/Knowledgebase/Service-Object-Orientation.html" rel="nofollow">http://www.geeks.ltd.uk/&#8230;/Service-Object-</a> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Udi Dahan - The Software Simplis</title>
		<link>http://averyblog.com/net/adventures-in-soa-part-2/comment-page-1/#comment-32</link>
		<dc:creator>Udi Dahan - The Software Simplis</dc:creator>
		<pubDate>Sun, 04 Jan 2004 15:39:00 +0000</pubDate>
		<guid isPermaLink="false">http://averyblog.infozerk.net/?p=32#comment-32</guid>
		<description>&lt;p&gt;If you want to go SOA all the way, Fowler&#039;s domain model doesn&#039;t quite fit. This is because it exists in the context of an OO architecture.&lt;/p&gt;
&lt;p&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;&lt;br&gt;For instance, in an SOA there is a persistence service to which you send entities (entities are objects without  behaviour); rather than calling myCustomer.Save() you would call your persistence service and pass in myCustomerEntity as a parameter.&lt;/p&gt;
&lt;p&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;&lt;br&gt;SOA is a different way of thinking about systems. In order to migrate my thinking from OO to SO, I started by introducing a facade for each layer. The only way I could interact with a layer was through the facade. So, instead of doing:&lt;/p&gt;
&lt;p&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;&lt;br&gt;new BL.Customer().GetById(id);&lt;/p&gt;
&lt;p&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;&lt;br&gt;I would call:&lt;/p&gt;
&lt;p&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;&lt;br&gt;BL.Facade.GetCustomerById(id);&lt;/p&gt;
&lt;p&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;&lt;br&gt;This morphed my BL layer, for all intents and purposes, to a service. From there, things sort of came along by themselves.&lt;/p&gt;
&lt;p&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;&lt;br&gt;In a general view, an SOA has a coarse grained Business service which replaces the Domain Model pattern in an OOA. The Business service uses a business rules service/engine for determining whether actions can be performed. Rules include things like  DoesOrderQualifyForADiscount(Order o). &lt;/p&gt;
&lt;p&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;&lt;br&gt;In many cases it also makes sense to have a validation service for lower level checks. The lowest level checks, nullability and string lengths for example, can be implemented in the entities themselves.&lt;/p&gt;
&lt;p&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;&lt;br&gt;I find SOAs to be more suited for today&#039;s development challenges than OOAs since they allow for an increased separation of concerns in systems.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>If you want to go SOA all the way, Fowler&#8217;s domain model doesn&#8217;t quite fit. This is because it exists in the context of an OO architecture.</p>
<p></p>
<p>For instance, in an SOA there is a persistence service to which you send entities (entities are objects without  behaviour); rather than calling myCustomer.Save() you would call your persistence service and pass in myCustomerEntity as a parameter.</p>
<p></p>
<p>SOA is a different way of thinking about systems. In order to migrate my thinking from OO to SO, I started by introducing a facade for each layer. The only way I could interact with a layer was through the facade. So, instead of doing:</p>
<p></p>
<p>new BL.Customer().GetById(id);</p>
<p></p>
<p>I would call:</p>
<p></p>
<p>BL.Facade.GetCustomerById(id);</p>
<p></p>
<p>This morphed my BL layer, for all intents and purposes, to a service. From there, things sort of came along by themselves.</p>
<p></p>
<p>In a general view, an SOA has a coarse grained Business service which replaces the Domain Model pattern in an OOA. The Business service uses a business rules service/engine for determining whether actions can be performed. Rules include things like  DoesOrderQualifyForADiscount(Order o). </p>
<p></p>
<p>In many cases it also makes sense to have a validation service for lower level checks. The lowest level checks, nullability and string lengths for example, can be implemented in the entities themselves.</p>
<p></p>
<p>I find SOAs to be more suited for today&#8217;s development challenges than OOAs since they allow for an increased separation of concerns in systems.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

