<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://weblogs.asp.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Paul Gielens:ThoughtsService : Service Orientation (SO/A)</title><link>http://weblogs.asp.net/pgielens/archive/tags/Service+Orientation+_2800_SO_2F00_A_2900_/default.aspx</link><description>Tags: Service Orientation (SO/A)</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><item><title>RESTful Data Services</title><link>http://weblogs.asp.net/pgielens/archive/2007/04/30/restful-data-services.aspx</link><pubDate>Mon, 30 Apr 2007 20:00:18 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:2459147</guid><dc:creator>p.gielens</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/pgielens/rsscomments.aspx?PostID=2459147</wfw:commentRss><comments>http://weblogs.asp.net/pgielens/archive/2007/04/30/restful-data-services.aspx#comments</comments><description>&lt;p&gt;Today at the &lt;a href="http://visitmix.com/"&gt;Mix '07&lt;/a&gt; event in Las Vegas Microsoft's "data programmability" team &lt;a href="http://blogs.msdn.com/pablo/default.aspx"&gt;announced&lt;/a&gt; "Astoria": Data Services for the Web. Astoria is an early&amp;nbsp;piece of technology for creating and executing data services. The cool part is that it uses the Entity Data Model to model data in terms of entities. These services and entities&amp;nbsp;are surfaced to the web as a REST-style resource collection that is addressable with URI's and that agents can interact with using HTTP verbs such as GET, POST or DELETE.&lt;/p&gt; &lt;p&gt;Interesting to see that Microsoft is taking the REST route.&lt;/p&gt; &lt;p&gt;For more information visit the &lt;a href="http://astoria.mslivelabs.com/"&gt;Astoria live lab&lt;/a&gt;&amp;nbsp;and check out this &lt;a href="http://channel9.msdn.com/ShowPost.aspx?PostID=303904"&gt;podcast&lt;/a&gt; with Pablo Castro talking about programming data on the web.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=2459147" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/pgielens/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/pgielens/archive/tags/Service+Orientation+_2800_SO_2F00_A_2900_/default.aspx">Service Orientation (SO/A)</category><category domain="http://weblogs.asp.net/pgielens/archive/tags/Community+News/default.aspx">Community News</category><category domain="http://weblogs.asp.net/pgielens/archive/tags/ADO.NET/default.aspx">ADO.NET</category></item><item><title>Process and Control SOA</title><link>http://weblogs.asp.net/pgielens/archive/2007/02/03/process-and-control-soa.aspx</link><pubDate>Sat, 03 Feb 2007 13:19:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:1532220</guid><dc:creator>p.gielens</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/pgielens/rsscomments.aspx?PostID=1532220</wfw:commentRss><comments>http://weblogs.asp.net/pgielens/archive/2007/02/03/process-and-control-soa.aspx#comments</comments><description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;img align="left" height="165" src="http://www.xs4all.nl/~pgielens/weblog/posts/ProcessandControlSOA_C8C6/controlroom_thumb14.jpg" style="margin: 0px 10px 0px 0px" width="200" /&gt; I tried to commit to the simple rule &amp;ldquo;do not post a post on a post&amp;rdquo;, but now that Gregor has this excellent post on &amp;ldquo;&lt;a href="http://www.eaipatterns.com/ramblings/48_validation.html"&gt;Validating Dynamic Systems&lt;/a&gt;&amp;rdquo; on his blog. I&amp;rsquo;m going to say goodbye to the rule for now. Apparently Gregor and Erik created a talk on &lt;a href="http://www.eaipatterns.com/docs/TSS_software_visualization.pdf"&gt;Software Visualization&lt;/a&gt; and already discussed their thoughts during the Crested Butte workshop in 2005. Guys why didn&amp;rsquo;t you bring up this subject in Arosa?&lt;/p&gt;&lt;p&gt;Anyway, one of my clients is&amp;nbsp;struggling with the idea of &amp;ldquo;chain logging&amp;rdquo; systems for a while now. I shared thoughts with Cyrille Visser&amp;nbsp;who made the initial design and we both ended up agreeing that the meta-model is the single most important thing. The meta-model is hard to agree upon in a large organization of organizations. There are multiple information levels for the visualization component to be effective. The visualization component(s) thus has to have multiple abstractions.&lt;/p&gt;&lt;p&gt;Process control systems in the oil and gas, automotive and feed industries&amp;nbsp;have loads of experience in process visualization. It is going to be interesting to see how experiences in other industries are going to help up to bring order into the&amp;nbsp;service oriented chaos.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=1532220" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/pgielens/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/pgielens/archive/tags/Miscellaneous/default.aspx">Miscellaneous</category><category domain="http://weblogs.asp.net/pgielens/archive/tags/Architecture/default.aspx">Architecture</category><category domain="http://weblogs.asp.net/pgielens/archive/tags/Design/default.aspx">Design</category><category domain="http://weblogs.asp.net/pgielens/archive/tags/Service+Orientation+_2800_SO_2F00_A_2900_/default.aspx">Service Orientation (SO/A)</category><category domain="http://weblogs.asp.net/pgielens/archive/tags/General+Software+Development/default.aspx">General Software Development</category></item><item><title>Web Service Software Factory leaves a sour taste</title><link>http://weblogs.asp.net/pgielens/archive/2006/09/24/Web-Service-Software-Factory-leaves-a-sour-taste.aspx</link><pubDate>Sun, 24 Sep 2006 20:37:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:579094</guid><dc:creator>p.gielens</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/pgielens/rsscomments.aspx?PostID=579094</wfw:commentRss><comments>http://weblogs.asp.net/pgielens/archive/2006/09/24/Web-Service-Software-Factory-leaves-a-sour-taste.aspx#comments</comments><description>&lt;p&gt;Why do I spend so much time with the ADO.NET vNext bits? Udi just reminded me why&amp;nbsp;with his post &lt;a href="http://udidahan.weblogs.us/archives/036939.html"&gt;Web Service Software Factory &amp;ndash; Data Access CRUD!&lt;/a&gt;&amp;nbsp;Web Service Software Factory implements (or at least the generated code base does) the Three-Layered Services Application reference architecture in which data and behavior are scattered throughout the software (see &lt;a href="http://weblogs.asp.net/pgielens/archive/2006/08/08/Organizing-Domain-Logic.aspx"&gt;Organizing Domain Logic&lt;/a&gt; for an in-depth discussion). I can only hope better tooling produced by the source itself&amp;nbsp;will help .NET developers realize there is an (better) alternative to layer a service-oriented application.&lt;/p&gt;&lt;p&gt;With no adequate tooling in place to support a particular design pattern it wouldn&amp;#39;t make sense to promote it.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=579094" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/pgielens/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/pgielens/archive/tags/Architecture/default.aspx">Architecture</category><category domain="http://weblogs.asp.net/pgielens/archive/tags/Service+Orientation+_2800_SO_2F00_A_2900_/default.aspx">Service Orientation (SO/A)</category></item><item><title>Mind your Versioning Strategy</title><link>http://weblogs.asp.net/pgielens/archive/2006/05/21/448229.aspx</link><pubDate>Sun, 21 May 2006 10:46:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:448229</guid><dc:creator>p.gielens</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/pgielens/rsscomments.aspx?PostID=448229</wfw:commentRss><comments>http://weblogs.asp.net/pgielens/archive/2006/05/21/448229.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://blog.springframework.com/arjen/archives/2006/05/21/mind-your-interfaces/"&gt;Arjen&lt;/a&gt; quoted &lt;a href="http://jroller.com/page/javaton"&gt;Haralampos Routis’s&lt;/a&gt; reply over at the &lt;a href="http://forum.springframework.org/forumdisplay.php?f=39"&gt;Spring Web Services Forum&lt;/a&gt; stating: &lt;em&gt;The implementation of the interface is important but it can also change in time. The interface on the other hand cannot/should not change. Thus invest on XML Schema and WSDL, because these are the essence of Web services.&lt;/em&gt;&lt;/p&gt; &lt;p&gt;To me an interface implies a couple of things, namely, a service contract and data/message contract and their implementation details, with them, not necessarily having the same versioning strategy.&lt;/p&gt; &lt;p&gt;Service contracts, data/message contracts are amended over time, this is the reality. One strategy for a service contract is to add a new contract but continue to support the original contract. Data/message contracts however have a build-in versioning system, assuming you use XML to describe the message body. I think my point is, yes I wholeheartedly agree that you need to invest in the service contract (WSDL) and data/message contract (XML), but I also want to stress the importance of the versioning strategy.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=448229" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/pgielens/archive/tags/Service+Orientation+_2800_SO_2F00_A_2900_/default.aspx">Service Orientation (SO/A)</category></item><item><title>A Remote Interface should look Different from a Local Interface</title><link>http://weblogs.asp.net/pgielens/archive/2005/12/03/432226.aspx</link><pubDate>Sat, 03 Dec 2005 18:29:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:432226</guid><dc:creator>p.gielens</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/pgielens/rsscomments.aspx?PostID=432226</wfw:commentRss><comments>http://weblogs.asp.net/pgielens/archive/2005/12/03/432226.aspx#comments</comments><description>&lt;p&gt;The product of the &lt;a href="http://www.thinktecture.com/gespraeche/Contracts_IR_RW_3.htm"&gt;discussion&lt;/a&gt; between &lt;A href="http://weblogs.asp.net/ralfw"&gt;Ralf Westphal&lt;/a&gt; and &lt;a href="http://blogs.thinktecture.com/ingo/"&gt;Ingo Rammer&lt;/a&gt; is this &lt;a href="http://www.thinktecture.com/gespraeche/abb1.jpg"&gt;decision flow chart&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;We’ve already&amp;nbsp;had this discussion in our office a couple of times. In this discussion I always ended up on the left side of the &lt;a href="http://www.thinktecture.com/gespraeche/abb1.jpg"&gt;decision flow chart&lt;/a&gt; where most of my colleagues picked the right side. I’m not saying either one is right or wrong… just different. I can foresee the discussion whether a remote interface should look different from a local interface evolving in the ObjectRelationalMapping vs. Relational debate.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=432226" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/pgielens/archive/tags/Indigo/default.aspx">Indigo</category><category domain="http://weblogs.asp.net/pgielens/archive/tags/Service+Orientation+_2800_SO_2F00_A_2900_/default.aspx">Service Orientation (SO/A)</category></item><item><title>Service Anti-Patterns, Command vs. Document Message</title><link>http://weblogs.asp.net/pgielens/archive/2005/08/27/423814.aspx</link><pubDate>Sat, 27 Aug 2005 12:11:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:423814</guid><dc:creator>p.gielens</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/pgielens/rsscomments.aspx?PostID=423814</wfw:commentRss><comments>http://weblogs.asp.net/pgielens/archive/2005/08/27/423814.aspx#comments</comments><description>&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;Via &lt;a href="http://arjen.jteam.nl/index.php/archives/2005/08/24/service-patterns-and-anti-patterns/"&gt;Arjen&lt;/a&gt;, &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/SOADesign.asp"&gt;Service Pattern and Anti-Patterns&lt;/a&gt;. While reading this article last night I got sucked into thinking about using a &lt;a href="http://patternshare.org/default.aspx/Home.HW.DocumentMessage"&gt;Document Message&lt;/a&gt; pattern:&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;1.)&lt;/p&gt; &lt;div style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 4pt; PADDING-BOTTOM: 1pt; BORDER-LEFT: windowtext 1pt solid; PADDING-TOP: 1pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt"&gt; &lt;p class="MsoNormal" style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; MARGIN: 0in 0in 0pt; BORDER-LEFT: medium none; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;[WebMethod()]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; MARGIN: 0in 0in 0pt; BORDER-LEFT: medium none; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;span style="FONT-SIZE: 8pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;public&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt; FindCustomersByCountryResponse FindCustomersByCountry(FindCustomersByCountryRequest request)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; MARGIN: 0in 0in 0pt; BORDER-LEFT: medium none; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; MARGIN: 0in 0in 0pt; BORDER-LEFT: medium none; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;..&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; MARGIN: 0in 0in 0pt; BORDER-LEFT: medium none; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;vs a &lt;a href="http://patternshare.org/default.aspx/Home.HW.CommandMessage"&gt;Comand Message&lt;/a&gt; pattern.&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;2.)&lt;/p&gt; &lt;div style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 4pt; PADDING-BOTTOM: 1pt; BORDER-LEFT: windowtext 1pt solid; PADDING-TOP: 1pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt"&gt; &lt;p class="MsoNormal" style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; MARGIN: 0in 0in 0pt; BORDER-LEFT: medium none; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;[WebMethod()]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; MARGIN: 0in 0in 0pt; BORDER-LEFT: medium none; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;span style="FONT-SIZE: 8pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;public&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt; Customer[] FindCustomersByCountry(&lt;span style="COLOR: blue"&gt;string&lt;/span&gt; country)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; MARGIN: 0in 0in 0pt; BORDER-LEFT: medium none; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; MARGIN: 0in 0in 0pt; BORDER-LEFT: medium none; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;..&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; MARGIN: 0in 0in 0pt; BORDER-LEFT: medium none; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;or&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;3.)&lt;/p&gt; &lt;div style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 4pt; PADDING-BOTTOM: 1pt; BORDER-LEFT: windowtext 1pt solid; PADDING-TOP: 1pt; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt"&gt; &lt;p class="MsoNormal" style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; MARGIN: 0in 0in 0pt; BORDER-LEFT: medium none; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;[WebMethod()]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; MARGIN: 0in 0in 0pt; BORDER-LEFT: medium none; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;span style="FONT-SIZE: 8pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;public&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt; Customer[] FindCustomersByCountry(Country country)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; MARGIN: 0in 0in 0pt; BORDER-LEFT: medium none; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; MARGIN: 0in 0in 0pt; BORDER-LEFT: medium none; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;..&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; MARGIN: 0in 0in 0pt; BORDER-LEFT: medium none; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;Although &lt;a href="http://www.eaipatterns.com"&gt;EIP&lt;/a&gt; gives very clear guidance on when to use what, my experience is that most services based on Web Services technology use the Command Message pattern where services based upon MQ technology make good use out of both Message pattern styles. Why is that? Given the fact that services are build to last, I think I prefer, in the context of a Web Service, Document Messages and explicitly design a request/reply messages as if it is a Command Message. …and stay away from option 2 altogether.&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;Any thoughts?&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=423814" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/pgielens/archive/tags/Service+Orientation+_2800_SO_2F00_A_2900_/default.aspx">Service Orientation (SO/A)</category></item></channel></rss>