<?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: SOA &amp; Persistence &#8211; Its all about Services</title>
	<atom:link href="http://www.udidahan.com/2003/12/23/soa-persistence-its-all-about-services/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.udidahan.com/2003/12/23/soa-persistence-its-all-about-services/</link>
	<description>Enterprise Development Expert &#38; SOA Specialist</description>
	<lastBuildDate>Sat, 11 Feb 2012 15:16:10 -0600</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Udi Dahan</title>
		<link>http://www.udidahan.com/2003/12/23/soa-persistence-its-all-about-services/comment-page-1/#comment-29</link>
		<dc:creator>Udi Dahan</dc:creator>
		<pubDate>Fri, 26 Dec 2003 06:12:13 +0000</pubDate>
		<guid isPermaLink="false">http://wp_630.weblogs.us/archives/16#comment-29</guid>
		<description>Julie, the way I see it, is that its important to start the move to service-orientation now, so that when the plumbing (Indigo) is ready, it will be that much easier to port systems to it.

Ramkumar, YES !!! That is exactly what I&#039;m talking about. Its a different way of thinking about systems. The object is no longer at the center of architecture, but is relegated to implementation status.

When people speak of SOA as the &quot;Death of Objects&quot;, in my opinion, it is really the death of OO Analysis &amp; Design. We&#039;ll see less and less inheritence hierarchies. We&#039;ll see less and less complexity in our systems. This is what we&#039;ve all been striving for, after all.
</description>
		<content:encoded><![CDATA[<p>Julie, the way I see it, is that its important to start the move to service-orientation now, so that when the plumbing (Indigo) is ready, it will be that much easier to port systems to it.</p>
<p>Ramkumar, YES !!! That is exactly what I&#8217;m talking about. Its a different way of thinking about systems. The object is no longer at the center of architecture, but is relegated to implementation status.</p>
<p>When people speak of SOA as the &#8220;Death of Objects&#8221;, in my opinion, it is really the death of OO Analysis &amp; Design. We&#8217;ll see less and less inheritence hierarchies. We&#8217;ll see less and less complexity in our systems. This is what we&#8217;ve all been striving for, after all.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Brian McCallister</title>
		<link>http://www.udidahan.com/2003/12/23/soa-persistence-its-all-about-services/comment-page-1/#comment-28</link>
		<dc:creator>Brian McCallister</dc:creator>
		<pubDate>Wed, 24 Dec 2003 08:12:05 +0000</pubDate>
		<guid isPermaLink="false">http://wp_630.weblogs.us/archives/16#comment-28</guid>
		<description>Julie,

Sorry for my flippant comment. It stems from reading so many people who seem to think that so-and-so (usually Microsoft) is inventing service architectures Right Now (tm).

That isn&#039;t what you were saying, and I apologize for the flippancy of my comment.

-Brian</description>
		<content:encoded><![CDATA[<p>Julie,</p>
<p>Sorry for my flippant comment. It stems from reading so many people who seem to think that so-and-so (usually Microsoft) is inventing service architectures Right Now &#8482;.</p>
<p>That isn&#8217;t what you were saying, and I apologize for the flippancy of my comment.</p>
<p>-Brian</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Brian McCallister</title>
		<link>http://www.udidahan.com/2003/12/23/soa-persistence-its-all-about-services/comment-page-1/#comment-27</link>
		<dc:creator>Brian McCallister</dc:creator>
		<pubDate>Wed, 24 Dec 2003 07:56:03 +0000</pubDate>
		<guid isPermaLink="false">http://wp_630.weblogs.us/archives/16#comment-27</guid>
		<description>Julie,

I fully agree (heh, why wait for Indigo? I do it now in Java ;-)


Ramkoth,

What are you using for the rules system? I haven&#039;t found anything that I like the price on that has grabbed me as a standard-to-use yet.

-Brian</description>
		<content:encoded><![CDATA[<p>Julie,</p>
<p>I fully agree (heh, why wait for Indigo? I do it now in Java <img src='http://www.udidahan.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Ramkoth,</p>
<p>What are you using for the rules system? I haven&#8217;t found anything that I like the price on that has grabbed me as a standard-to-use yet.</p>
<p>-Brian</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ramkoth</title>
		<link>http://www.udidahan.com/2003/12/23/soa-persistence-its-all-about-services/comment-page-1/#comment-26</link>
		<dc:creator>ramkoth</dc:creator>
		<pubDate>Wed, 24 Dec 2003 06:34:24 +0000</pubDate>
		<guid isPermaLink="false">http://wp_630.weblogs.us/archives/16#comment-26</guid>
		<description>I have been involved with SOA based projects for the past two years. The key abstractions that I have used successfully are

a) Business concepts such as Person and role (Note: I didn&#039;t use the word business objects). 
b) Business rules that act upon facts. Business concepts are just one type of facts. There are different types of business rules such as Structural, Validation, Policy etc. They can be enforced at different layeers. 

c) Business services: Services offered by your business system. Business services provide a service contract. Interaction is essentially message oriented. Request and response Message carries a &#039;Document&#039;. Document may contain information about facts.

d) Business activities: These include CRUD type stuff and other computation required to satisfy business requirements.

e) Business Process: There are three types of processes namely: Human workflow, UI Process and scheduled process. Scheduled process is automated process that is composed of business activities and business rules. Human workflow also defined further notions of tasks, actors, roles etc.

I strongly believe these are the first class abstractions. One can use some OO patterns to implement any of these abstractions. But, they are secondary abstractions.</description>
		<content:encoded><![CDATA[<p>I have been involved with SOA based projects for the past two years. The key abstractions that I have used successfully are</p>
<p>a) Business concepts such as Person and role (Note: I didn&#8217;t use the word business objects).<br />
b) Business rules that act upon facts. Business concepts are just one type of facts. There are different types of business rules such as Structural, Validation, Policy etc. They can be enforced at different layeers. </p>
<p>c) Business services: Services offered by your business system. Business services provide a service contract. Interaction is essentially message oriented. Request and response Message carries a &#8216;Document&#8217;. Document may contain information about facts.</p>
<p>d) Business activities: These include CRUD type stuff and other computation required to satisfy business requirements.</p>
<p>e) Business Process: There are three types of processes namely: Human workflow, UI Process and scheduled process. Scheduled process is automated process that is composed of business activities and business rules. Human workflow also defined further notions of tasks, actors, roles etc.</p>
<p>I strongly believe these are the first class abstractions. One can use some OO patterns to implement any of these abstractions. But, they are secondary abstractions.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Julie Lerman</title>
		<link>http://www.udidahan.com/2003/12/23/soa-persistence-its-all-about-services/comment-page-1/#comment-25</link>
		<dc:creator>Julie Lerman</dc:creator>
		<pubDate>Wed, 24 Dec 2003 02:44:52 +0000</pubDate>
		<guid isPermaLink="false">http://wp_630.weblogs.us/archives/16#comment-25</guid>
		<description>Udi-
I can&#039;t find a &quot;contact&quot; link so I&#039;m using your comments. Sorry ! Someone has commented on your comment of my post from early december... http://weblogs.asp.net/jlerman/archive/2003/12/06/41752.aspx
Also , SOA is obviously where we are heading with Indigo but no reason to wait until then. People are having a hard time understanding that SOA does not mean the death of objects. Just a new way of communicating. Objects still remain a part of the puzzle, just not what gets transported through the pipe. (My glimmer of understanding so far...)</description>
		<content:encoded><![CDATA[<p>Udi-<br />
I can&#8217;t find a &#8220;contact&#8221; link so I&#8217;m using your comments. Sorry ! Someone has commented on your comment of my post from early december&#8230; <a href="http://weblogs.asp.net/jlerman/archive/2003/12/06/41752.aspx" rel="nofollow">http://weblogs.asp.net/jlerman/archive/2003/12/06/41752.aspx</a><br />
Also , SOA is obviously where we are heading with Indigo but no reason to wait until then. People are having a hard time understanding that SOA does not mean the death of objects. Just a new way of communicating. Objects still remain a part of the puzzle, just not what gets transported through the pipe. (My glimmer of understanding so far&#8230;)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Brian McCallister</title>
		<link>http://www.udidahan.com/2003/12/23/soa-persistence-its-all-about-services/comment-page-1/#comment-24</link>
		<dc:creator>Brian McCallister</dc:creator>
		<pubDate>Wed, 24 Dec 2003 01:37:41 +0000</pubDate>
		<guid isPermaLink="false">http://wp_630.weblogs.us/archives/16#comment-24</guid>
		<description>Udi,

I think you were completely misunderstanding my post. Business object have no business handling persistence. The &quot;Business objects&quot; represent business objects, things relevent to the business domain.

I completely agree with you that not everything can or should be modelled as an object - but it does work for an awful lot of things. 

All of your questions are best answered by &quot;it depends&quot; -- as a starting point the business object represent business enitities. To use the classic example domain, modeling a basic HR application, your Person, your Role, may be your starting points -- from there you clean it up to match your problem domain, or start with other points.

The business rules belong in A) business classes B) a rules system that operates on business objects, C) or somewhere else -- it depends on the problems being addressed.

I agree that persistance is just-another-service. In the layering paradigm you mention said service could be seen as an underlieing layer, but that implies that a clean layering can in fact be provided.

A better model, and I cannot remember who proposed this originally or I would give him or her credit, is to simply view any interface between classic layers as yet another API to the system/service/application. The vogue way of modeling this is as an interconnected service system with an expensive EAI system brokering the services. Regardless, you publish an API that others can use, and you use API&#039;s provided by others. You try to make your API as general as you can without making it so general as to be useless, and if you need to cross application boundaries, or platform boundaries, you get into the fun stuff like SOAP.

If you have a system for modelling HR services than it should model HR services and make use of available services for doing things it needs to do but doesn&#039;t know how to - persistence, interacting with a user, interacting with leanring management systems, interacting with mail generating systems, etc.

In well over 99% of applications a very clean and effective way to do this is simply via IoC style abstract factory stuff as well over 99% of applications don&#039;t need to cross application boundaries nor provide services that cross application boundaries.

-Brian</description>
		<content:encoded><![CDATA[<p>Udi,</p>
<p>I think you were completely misunderstanding my post. Business object have no business handling persistence. The &#8220;Business objects&#8221; represent business objects, things relevent to the business domain.</p>
<p>I completely agree with you that not everything can or should be modelled as an object &#8211; but it does work for an awful lot of things. </p>
<p>All of your questions are best answered by &#8220;it depends&#8221; &#8212; as a starting point the business object represent business enitities. To use the classic example domain, modeling a basic HR application, your Person, your Role, may be your starting points &#8212; from there you clean it up to match your problem domain, or start with other points.</p>
<p>The business rules belong in A) business classes B) a rules system that operates on business objects, C) or somewhere else &#8212; it depends on the problems being addressed.</p>
<p>I agree that persistance is just-another-service. In the layering paradigm you mention said service could be seen as an underlieing layer, but that implies that a clean layering can in fact be provided.</p>
<p>A better model, and I cannot remember who proposed this originally or I would give him or her credit, is to simply view any interface between classic layers as yet another API to the system/service/application. The vogue way of modeling this is as an interconnected service system with an expensive EAI system brokering the services. Regardless, you publish an API that others can use, and you use API&#8217;s provided by others. You try to make your API as general as you can without making it so general as to be useless, and if you need to cross application boundaries, or platform boundaries, you get into the fun stuff like SOAP.</p>
<p>If you have a system for modelling HR services than it should model HR services and make use of available services for doing things it needs to do but doesn&#8217;t know how to &#8211; persistence, interacting with a user, interacting with leanring management systems, interacting with mail generating systems, etc.</p>
<p>In well over 99% of applications a very clean and effective way to do this is simply via IoC style abstract factory stuff as well over 99% of applications don&#8217;t need to cross application boundaries nor provide services that cross application boundaries.</p>
<p>-Brian</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Udi Dahan</title>
		<link>http://www.udidahan.com/2003/12/23/soa-persistence-its-all-about-services/comment-page-1/#comment-23</link>
		<dc:creator>Udi Dahan</dc:creator>
		<pubDate>Wed, 24 Dec 2003 01:14:09 +0000</pubDate>
		<guid isPermaLink="false">http://wp_630.weblogs.us/archives/16#comment-23</guid>
		<description>Brian,

What are the other responsibilities of the business objects, besides persistence ? Where do the business rules reside ? Is there any division between code with a high probability of change, and that with low probability ? For instance, relationships between entities have a reasonable probability for change. Is the code that deals with the relationships separate from the basic persistence of the entities ?

I find that SOA answers all these questions, and more, much better than an OO architecture - even when layering the system.

What are your thoughts ?</description>
		<content:encoded><![CDATA[<p>Brian,</p>
<p>What are the other responsibilities of the business objects, besides persistence ? Where do the business rules reside ? Is there any division between code with a high probability of change, and that with low probability ? For instance, relationships between entities have a reasonable probability for change. Is the code that deals with the relationships separate from the basic persistence of the entities ?</p>
<p>I find that SOA answers all these questions, and more, much better than an OO architecture &#8211; even when layering the system.</p>
<p>What are your thoughts ?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Brian McCallister</title>
		<link>http://www.udidahan.com/2003/12/23/soa-persistence-its-all-about-services/comment-page-1/#comment-22</link>
		<dc:creator>Brian McCallister</dc:creator>
		<pubDate>Tue, 23 Dec 2003 21:13:49 +0000</pubDate>
		<guid isPermaLink="false">http://wp_630.weblogs.us/archives/16#comment-22</guid>
		<description>Just to start fueling the flames that you mentioned... The persistence broker service goes there which transparently persists your business objects back to your datastore. I don&#039;t know the preferred mechanism for .Net, but for Java grab that PersistenceBroker or Session and have fun ;-)

-Brian</description>
		<content:encoded><![CDATA[<p>Just to start fueling the flames that you mentioned&#8230; The persistence broker service goes there which transparently persists your business objects back to your datastore. I don&#8217;t know the preferred mechanism for .Net, but for Java grab that PersistenceBroker or Session and have fun <img src='http://www.udidahan.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>-Brian</p>
]]></content:encoded>
	</item>
</channel>
</rss>

