<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-187382005880665446</id><updated>2024-09-01T11:18:07.767-05:00</updated><category term="soa"/><category term="architecture"/><category term="governance"/><category term="bizarch"/><category term="framework"/><category term="leadership"/><title type='text'>Practical Technology</title><subtitle type='html'>&lt;b&gt;Practical&lt;/b&gt; (prak-ti-kəl) manifested in practice or action; not theoretical.  &#xa;&lt;br&gt;&#xa;&lt;b&gt;Technology&lt;/b&gt; (tek-ˈnä-lə-jē) manner of accomplishing a task using technical processes, methods, or knowledge.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://practical-technology.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/187382005880665446/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://practical-technology.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Rogers D. Stephens</name><uri>http://www.blogger.com/profile/08318410890150989533</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjH60MCfzWQAA9H9ewBruqspxOlVpWQYL2251dhTkarQBhFu1JMU_Kj8FHdRgrZiDSwOhZeFEf6KuhunJ5c4-maRU76Gx-TjIMDpUjV_h9b8o9lWanILAfkNuE6CszWVkg/s220/n6517794_934.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>13</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-187382005880665446.post-3638859328900880770</id><published>2012-07-19T20:14:00.001-05:00</published><updated>2012-07-19T22:12:51.130-05:00</updated><title type='text'>FedEx Recognized for Innovative Technology Delivering Business Value</title><content type='html'>I&#39;ve been away from blogging here for too long--however today my first post was published on the FedEx blog at &lt;a href=&quot;http://blog.fedex.com/&quot;&gt;http://blog.fedex.com&lt;/a&gt;.&amp;nbsp;&amp;nbsp;&lt;span style=&quot;background-color: white;&quot;&gt;This post is a follow-on from the&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://news.van.fedex.com/CIO100Award&quot; style=&quot;background-color: white;&quot; target=&quot;_blank&quot;&gt;June 1 press release&lt;/a&gt;&lt;span style=&quot;background-color: white;&quot;&gt;. &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: white;&quot;&gt;A portion of the first of a two part series . . . .&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;color: #333333; font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 12px;&quot;&gt;&lt;b&gt;FedEx Recognized for Innovative Technology Delivering Business Value&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: white;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;background-color: white; color: #333333; font-family: &#39;Trebuchet MS&#39;, sans-serif; font-size: 12px;&quot;&gt;Recently CIO Magazine recognized FedEx with its annual CIO 100 Award for our data storage technology called Common Data Service (CDS).&amp;nbsp; The award celebrates innovative use of technology to deliver genuine business value.&lt;/span&gt;&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;strong style=&quot;color: #333333; font-size: 12px;&quot;&gt;Bringing Our World Closer Together&lt;/strong&gt;&lt;/span&gt;&lt;span style=&quot;background-color: white;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;font-family: &#39;Trebuchet MS&#39;, sans-serif;&quot;&gt;&lt;span style=&quot;color: #333333; font-size: 12px;&quot;&gt;Technology is everywhere. &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; font-size: 12px;&quot;&gt;The Internet, cellular devices, and social media have all contributed to bringing our world closer together.&amp;nbsp; At FedEx, we continue to be on the move to connect our world.&amp;nbsp; Recent accomplishments provide useful context for how technology like CDS is being used to support customer’s needs&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #333333; font-size: 12px;&quot;&gt;. . . . . . . . .&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #333333; font-size: 12px;&quot;&gt;&amp;nbsp;&lt;a href=&quot;http://blog.fedex.designcdt.com/blog/fedex-recognized-innovative-technology-delivering-business-value&quot; target=&quot;_blank&quot;&gt;[ read the rest on the FedEx website ]&lt;/a&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;/div&gt;
&lt;div&gt;
An index to my posts out on the FedEx blog is&amp;nbsp;&lt;a href=&quot;http://blog.fedex.designcdt.com/users/rogers-stephens&quot; target=&quot;_blank&quot;&gt;located here&lt;/a&gt;.
&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/187382005880665446/posts/default/3638859328900880770'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/187382005880665446/posts/default/3638859328900880770'/><link rel='alternate' type='text/html' href='http://practical-technology.blogspot.com/2012/07/fedex-recognized-for-innovative.html' title='FedEx Recognized for Innovative Technology Delivering Business Value'/><author><name>Rogers D. Stephens</name><uri>http://www.blogger.com/profile/08318410890150989533</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjH60MCfzWQAA9H9ewBruqspxOlVpWQYL2251dhTkarQBhFu1JMU_Kj8FHdRgrZiDSwOhZeFEf6KuhunJ5c4-maRU76Gx-TjIMDpUjV_h9b8o9lWanILAfkNuE6CszWVkg/s220/n6517794_934.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-187382005880665446.post-4460206607161137383</id><published>2011-12-10T15:49:00.001-06:00</published><updated>2012-01-08T08:26:22.495-06:00</updated><title type='text'>SOA &quot;G-Bombs&quot; (Part 3 of 3)</title><content type='html'>&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;i&gt;This concludes a three part series on SOA governance--here&#39;s a link to the &lt;a href=&quot;http://practical-technology.blogspot.com/2011/08/soa-g-bombs.html&quot; target=&quot;_blank&quot;&gt;initial blog post&lt;/a&gt;&amp;nbsp;titled &quot;SOA &#39;G-Bombs&#39; &quot;.&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;b&gt;Thinking of Services as a &quot;Center of Excellence&amp;nbsp;&lt;u&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #990000;&quot;&gt;and Expertise&lt;/span&gt;&lt;/i&gt;&lt;/u&gt;&amp;nbsp;(CoE)&quot;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;In reading&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://blog.bethcodes.com/an-introduction-to-services-from-this-coders&quot; style=&quot;font-family: Verdana, sans-serif;&quot; target=&quot;_blank&quot;&gt;&lt;span id=&quot;goog_1857785636&quot;&gt;&lt;/span&gt;Beth Andres-Beck&#39;s blog post&lt;span id=&quot;goog_1857785637&quot;&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&amp;nbsp;the other day, I was reminded the W3C notes the purpose of a service is to&amp;nbsp;&quot;provide some functionality on behalf of its owner -- a person or organization.&quot; &amp;nbsp;This is a nice parallel to considering a&amp;nbsp;service&amp;nbsp;as a &quot;center of expertise&quot; for functionality it exposes.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;In continuing the prior post in this series, when &quot;Feature &quot;X&quot;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;(&lt;/span&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5bWgQ6p9SfytRpp-gqJ4JGfiOdRKIk81uK3wxCNTVk3qldVxvfiSSEi1tP_fVin8D1iE5gIWAcUhvzqbn057Jo__gGK159dggO9UxWFnbSgStUg8v1eVNSXLwyFLyPf0xBVsLGhvGghA/s320/duplication-across-silos_twitter-at_redblue36.jpg&quot; style=&quot;font-family: Verdana, sans-serif;&quot; target=&quot;_blank&quot;&gt;as shown in the diagram&lt;/a&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;)&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;is rationalized &lt;/span&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;across Apps A, B, C the corresponding functionality is moved to a shared service. &amp;nbsp;By way of example, if &quot;Feature X&quot; is currency conversion, there are a few implications of moving this to a service:&lt;/span&gt;&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Apps A, B, C will use the same logic and mechanism for performing currency conversion&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;I.T. and Business stakeholders for Apps A, B, C will no longer need to be experts in Currency Conversion. &amp;nbsp;Implies human expertise for this function could be realigned.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;I.T. and Business stakeholders for Apps A, B, C will need to be consulted if there are changes to the Service, particularly ones that are impacting.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&quot;Silos&quot; are minimized or eliminated.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;I.T. and Business stakeholders must align on priorities. &amp;nbsp;At times, the service owner might not be able to enhance the service for multiple applications and multiple stakeholders at the same time.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;A common question:&amp;nbsp;&lt;/span&gt;&lt;i style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&quot;Who should own the Currency Conversion Service?&quot;&lt;/i&gt;
&lt;br /&gt;
&lt;i style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/i&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-P1320lwGCiF5-BbfgGLUIaIjofGAohWjx01ui8rhAr8dhLyr_LEsp666uwMa-1KcRCl7yQxGqxf4zrI53iayxBI07G4hae_frOOGcjfsr296qqovTcyeTq7ylh9BDw9nEQCLFy9DJts/s1600/service-as-coe_twitter-at_redblue36.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-P1320lwGCiF5-BbfgGLUIaIjofGAohWjx01ui8rhAr8dhLyr_LEsp666uwMa-1KcRCl7yQxGqxf4zrI53iayxBI07G4hae_frOOGcjfsr296qqovTcyeTq7ylh9BDw9nEQCLFy9DJts/s320/service-as-coe_twitter-at_redblue36.jpg&quot; width=&quot;271&quot; /&gt;&lt;/a&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Step back and think about what a common, shared service really represents. &amp;nbsp;A&lt;/span&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&amp;nbsp;service represents &quot;expertise&quot;--both business expertise and I.T. expertise--provided for others to leverage.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;When a piece of functionality once replicated across the organization is moved to a shared service, ownership questions naturally abound. &amp;nbsp;In a &lt;a href=&quot;http://practical-technology.blogspot.com/2011/10/soa-g-bombs-part-2-of-3.html&quot; target=&quot;_blank&quot;&gt;silo&#39;d&lt;/a&gt;&amp;nbsp;organization&amp;nbsp;in particular &lt;i&gt;&quot;who should own shared services?&quot;&lt;/i&gt; can become an&amp;nbsp;ever present&amp;nbsp;question.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;One approach could be to move these shared services to a single support organization. &amp;nbsp;This can be an issue due to sheer scale. &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;It is &lt;/span&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;b&gt;not &lt;/b&gt;necessary or&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;required to move all services to a single support organization (it is quite important for &lt;a href=&quot;http://practical-technology.blogspot.com/2011/01/soa-what-are-responsibilities-of.html&quot; target=&quot;_blank&quot;&gt;responsibilities of a service owner&lt;/a&gt;&amp;nbsp;to be clear as this is critical to success).&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;If functionality is duplicated across the organization this implies human expertise is duplicated as well. &amp;nbsp;When applications are reoriented to use a shared service to minimize duplication it is possible the organization should consider r&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;eorganizing in some manner. &amp;nbsp;The purpose of this would be to maximize benefits of the service--business and I.T. experts supporting the service and the entire organization effectively.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;It is &lt;b&gt;not&lt;/b&gt;&amp;nbsp;always practical to shift functionality to a shared service with no regard to the associated human expertise. &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;In order to maximize benefits &lt;/span&gt;&lt;b style=&quot;font-family: Verdana, sans-serif;&quot;&gt;it is necessary&lt;/b&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt; to ensure I.T. and Business experts have ownership and provide necessary support.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Rather than ask&amp;nbsp;&lt;/span&gt;&lt;i style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&quot;Who should own the Currency Conversion Service?&quot;, ask a&lt;/i&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&amp;nbsp;slightly better question:  &lt;i&gt;&quot;Where is the &lt;b&gt;&lt;u&gt;expertise&lt;/u&gt;&lt;/b&gt; for Currency Conversion?&quot;. &amp;nbsp;&lt;/i&gt;From this hopefully ownership can be identified more effectively.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;b&gt;Why Focus On Expertise?&lt;/b&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;As a logical construct, a business service embodies the associated business and I.T. expertise. &amp;nbsp;And exposes functionality to share across apps and business teams. &amp;nbsp;A business service without its backing expertise does not maximize benefits.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Bottom Line: &amp;nbsp;If the company&#39;s experts are organized &quot;behind&quot; the service, why use anything else (such as building your own duplicate functionality) to deliver a solution? &amp;nbsp;If you find yourself in a debate over ownership or adoption, step back and see if there is a bigger picture.&lt;/span&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/187382005880665446/posts/default/4460206607161137383'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/187382005880665446/posts/default/4460206607161137383'/><link rel='alternate' type='text/html' href='http://practical-technology.blogspot.com/2011/12/soa-g-bombs-part-3-of-3.html' title='SOA &quot;G-Bombs&quot; (Part 3 of 3)'/><author><name>Rogers D. Stephens</name><uri>http://www.blogger.com/profile/08318410890150989533</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjH60MCfzWQAA9H9ewBruqspxOlVpWQYL2251dhTkarQBhFu1JMU_Kj8FHdRgrZiDSwOhZeFEf6KuhunJ5c4-maRU76Gx-TjIMDpUjV_h9b8o9lWanILAfkNuE6CszWVkg/s220/n6517794_934.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-P1320lwGCiF5-BbfgGLUIaIjofGAohWjx01ui8rhAr8dhLyr_LEsp666uwMa-1KcRCl7yQxGqxf4zrI53iayxBI07G4hae_frOOGcjfsr296qqovTcyeTq7ylh9BDw9nEQCLFy9DJts/s72-c/service-as-coe_twitter-at_redblue36.jpg" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-187382005880665446.post-1674161603109915698</id><published>2011-10-08T12:09:00.000-05:00</published><updated>2011-12-10T18:06:44.202-06:00</updated><title type='text'>SOA &quot;G-Bombs&quot; (Part 2 of 3)</title><content type='html'>&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;i&gt;This is a continuation of thoughts on SOA governance from a &lt;a href=&quot;http://practical-technology.blogspot.com/2011/08/soa-g-bombs.html&quot; target=&quot;_blank&quot;&gt;prior blog post&lt;/a&gt;&amp;nbsp;titled &quot;SOA &#39;G-Bombs&#39; &quot;.&lt;/i&gt;&lt;/span&gt;
&lt;i style=&quot;font-family: Verdana, sans-serif; font-size: small;&quot;&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;
&lt;i style=&quot;font-family: Verdana, sans-serif; font-size: small;&quot;&gt;I was inspired to jump back into this series after reading &lt;a href=&quot;http://blog.bethcodes.com/an-introduction-to-services-from-this-coders&quot; target=&quot;_blank&quot;&gt;Beth Andres-Beck&#39;s blog&lt;/a&gt;&amp;nbsp;post today. &amp;nbsp;Thanks :-)&lt;/i&gt;&lt;br /&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;b&gt;The &quot;&lt;a href=&quot;http://www.businessweek.com/managing/content/feb2010/ca2010025_358633.htm&quot; target=&quot;_blank&quot;&gt;Silo Effect&lt;/a&gt;&quot; Revisited&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;I had planned to dive into some&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: white; line-height: 21px;&quot;&gt;additional thoughts to parallel Services and Centers of Excellence as it relates to SOA governance. &amp;nbsp;But I thought&lt;/span&gt;&amp;nbsp;it would be useful to drill down a bit more on the &quot;Silo Effect&quot; first.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;To maximize benefits of SOA at enterprise-scale, it is important to consider how an existing organizational makeup (silos) can positively or&amp;nbsp;negatively&amp;nbsp;affect, impact, or support the defined objectives of the SOA program. &amp;nbsp;Ineffectiveness will challenge an organization&#39;s ability to &lt;i&gt;maximize benefits&lt;/i&gt; through SOA.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Let&#39;s &lt;b&gt;&lt;u&gt;not&lt;/u&gt;&amp;nbsp;&lt;/b&gt;immediately&amp;nbsp;jump to the topic of &quot;reorgs&quot; to reorient silos. &amp;nbsp;Let&#39;s think about this SOA governance topic from a slightly different angle. &amp;nbsp;And&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;if this leads to thoughts of reorgs, alignment, or improved coordination across organizational units, then for our purposes here that&#39;s simply a result of a bigger idea and mission.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;And another reason to &lt;/span&gt;&lt;u style=&quot;font-family: Verdana, sans-serif;&quot;&gt;not&lt;/u&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt; immediately jump to a topic of &quot;reorgs&quot; in this blog or in your mind right now...I&#39;m simply a technical guy. :-)&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;

&lt;br /&gt;
&lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;float: right; margin-left: 1em; text-align: right;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5bWgQ6p9SfytRpp-gqJ4JGfiOdRKIk81uK3wxCNTVk3qldVxvfiSSEi1tP_fVin8D1iE5gIWAcUhvzqbn057Jo__gGK159dggO9UxWFnbSgStUg8v1eVNSXLwyFLyPf0xBVsLGhvGghA/s1600/duplication-across-silos_twitter-at_redblue36.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;216&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5bWgQ6p9SfytRpp-gqJ4JGfiOdRKIk81uK3wxCNTVk3qldVxvfiSSEi1tP_fVin8D1iE5gIWAcUhvzqbn057Jo__gGK159dggO9UxWFnbSgStUg8v1eVNSXLwyFLyPf0xBVsLGhvGghA/s320/duplication-across-silos_twitter-at_redblue36.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Figure 1: &quot;Silo Effect&quot; across Business &amp;amp; IT (click to enlarge)&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Maximizing reuse and reducing duplication are among the general objectives of a SOA program. &amp;nbsp;Typically this is viewed from a software functionality point of view. &amp;nbsp;As illustrated in Figure 1,&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&amp;nbsp;&quot;Feature X&quot;, &lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;might represent currency conversion and collectively involve duplicate vendors (to source the conversion rates).&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Not only is there duplication in terms of software and vendor-enabled capability, but there is duplication of human resources--or more specifically &lt;i&gt;&lt;b&gt;expertise&amp;nbsp;&lt;/b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: xx-small; font-weight: bold;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;related to &quot;Feature X&quot;. &amp;nbsp;Ahh, an organizational question. &amp;nbsp;Jump back.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;The third and final&amp;nbsp;contribution&amp;nbsp;to this series will consider each shared, common service as a &quot;Center of Excellence&quot; for functionality. &amp;nbsp;Or given the elaboration here, maybe it&#39;s more appropriately considered a &quot;Center of &lt;b&gt;&lt;i&gt;Expertise&lt;/i&gt;&lt;/b&gt;&quot;.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;b&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/187382005880665446/posts/default/1674161603109915698'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/187382005880665446/posts/default/1674161603109915698'/><link rel='alternate' type='text/html' href='http://practical-technology.blogspot.com/2011/10/soa-g-bombs-part-2-of-3.html' title='SOA &quot;G-Bombs&quot; (Part 2 of 3)'/><author><name>Rogers D. Stephens</name><uri>http://www.blogger.com/profile/08318410890150989533</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjH60MCfzWQAA9H9ewBruqspxOlVpWQYL2251dhTkarQBhFu1JMU_Kj8FHdRgrZiDSwOhZeFEf6KuhunJ5c4-maRU76Gx-TjIMDpUjV_h9b8o9lWanILAfkNuE6CszWVkg/s220/n6517794_934.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5bWgQ6p9SfytRpp-gqJ4JGfiOdRKIk81uK3wxCNTVk3qldVxvfiSSEi1tP_fVin8D1iE5gIWAcUhvzqbn057Jo__gGK159dggO9UxWFnbSgStUg8v1eVNSXLwyFLyPf0xBVsLGhvGghA/s72-c/duplication-across-silos_twitter-at_redblue36.jpg" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-187382005880665446.post-5873119650797868194</id><published>2011-08-19T11:40:00.001-05:00</published><updated>2011-12-31T10:37:12.874-06:00</updated><title type='text'>SOA &quot;G Bombs&quot;</title><content type='html'>&lt;div style=&quot;font-family: Verdana,sans-serif; margin: 0px;&quot;&gt;
&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;What in the world is a &quot;G Bomb&quot;?&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
I&#39;ve added this term to my vernacular in recent months.&amp;nbsp; And I use it from time to time to describe occasions when the term &quot;governance&quot; is tossed around, sometimes out of nowhere and especially in an unqualified manner:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&quot;We need &#39;governance&#39;.&quot;&lt;/li&gt;
&lt;li&gt;&quot;We can&#39;t do &#39;X&#39; without &#39;governance&#39;.&quot;&lt;/li&gt;
&lt;li&gt;&quot;Who has &#39;governance&#39; decision rights (to mediate competing requirements, resources, and priorities)?&quot;&lt;/li&gt;
&lt;li&gt;&quot;Who governs adoption of services?&quot;&lt;/li&gt;
&lt;li&gt;&quot;How do we govern technical implementation?&quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
These statements can change the dynamics of a conversation or meeting.&amp;nbsp; &quot;G-Bomb&quot; has proven to be a catchy way to describe these type events or at least it brings about a bit of humor; so-much-so a pair of consultants recently asked to borrow the term.&amp;nbsp; :-)&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;b&gt;Organizational alignment makes governance tricky&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Governance of a service-oriented architecture is tricky, especially at large scale.&amp;nbsp; In my view, at its core this is accentuated by many &quot;silos&quot; typically found across I.T. and business areas in large companies.&amp;nbsp; Acquisition and merger activity can not only accentuate this but also lead to different types of silos.&lt;br /&gt;
&lt;br /&gt;
In basic form, a silo can be viewed as an application development group tightly aligned to a business unit.&amp;nbsp; This can be a valid operating model.&amp;nbsp; But it also has the potential to pull against the goals of a service-oriented architecture.&lt;br /&gt;
&lt;br /&gt;
When a &lt;a href=&quot;http://www.businessweek.com/managing/content/feb2010/ca2010025_358633.htm&quot;&gt;&quot;silo effect&quot; (click for article)&lt;/a&gt; is overbearing, over a period of time a multitude of duplicate feature/function across application areas can result--supported by multiple I.T. organizations and used by each corresponding business unit.&amp;nbsp; Examples include customer contact management, multiple address validation, address geocoding, credit card validation, or currency conversion mechanisms.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Why is duplication problematic?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Typically in a SOA, it is important to consider the functional needs of the enterprise as a whole as a means to maximize reuse.&amp;nbsp; This is &lt;a href=&quot;http://practical-technology.blogspot.com/2011/01/soa-responsibilities-of-service.html&quot;&gt;elaborated in a past blog post (click for article)&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Ineffectiveness in this regard promotes duplication, which can:&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Yield complexity:&amp;nbsp; changes must be made in multiple places, &lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;sometimes in coordinated fashion&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Increase costs:&amp;nbsp; hardware, license, labor, and maintenance costs.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Impact speed to market:&amp;nbsp; cost of lost opportunities&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Compromise customer experience:&amp;nbsp; customer encounters inconsistency when interacting across lines of business, touchpoints, etc. &lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Duplication is counter to SOA.&amp;nbsp; &lt;a href=&quot;http://practical-technology.blogspot.com/2011/01/soa-what-are-responsibilities-of.html&quot;&gt;In my view&lt;/a&gt;, one of the key aspects of a SOA is to 
promote a more cost effective and agile operating model.&amp;nbsp; And one measure of achieving this goal is by&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt; maximizing the amount of reuse per service and in doing so reduce/eliminate duplication.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Thoughts on approaching Governance&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Verdana,sans-serif; margin: 0px;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: Verdana,sans-serif; margin: 0px;&quot;&gt;
&lt;br /&gt;
In a large organization, working a complex task often requires identifying a communication vehicle to get everyone on the same page and pulling in a common direction.&amp;nbsp; This seems to hold true in fostering an enterprise SOA program.&lt;/div&gt;
&lt;div style=&quot;font-family: Verdana,sans-serif; margin: 0px;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: Verdana,sans-serif; margin: 0px;&quot;&gt;
&lt;br /&gt;
In terms of identifying services that need to be built, adopted, and managed (governed), to maximize benefits it helps if the enterprise is on the same page.&lt;/div&gt;
&lt;div style=&quot;font-family: Verdana,sans-serif; margin: 0px;&quot;&gt;
&lt;br /&gt;
I&#39;ve given some thought to considering enterprise services as a &quot;Center of Excellence&quot; (CoE) for functionality.&amp;nbsp; It is helpful context to identify a &lt;i&gt;general purpose&lt;/i&gt; definition of a CoE.&amp;nbsp; I ran across &lt;a href=&quot;http://agileelements.wordpress.com/2008/10/29/what-is-a-center-of-excellence/&quot;&gt;this definition in Jon Strickler&#39;s Agile Elements Blog (click for article)&lt;/a&gt;:&lt;/div&gt;
&lt;div style=&quot;font-family: Verdana,sans-serif; margin: 0px;&quot;&gt;
&lt;/div&gt;
&lt;blockquote&gt;
&lt;div style=&quot;font-family: Verdana,sans-serif; margin: 0px;&quot;&gt;
&lt;i&gt;&lt;u&gt;Center of Excellence&lt;/u&gt;:&amp;nbsp; A team of people that promote collaboration and using best practices around a specific focus area to drive business results.&lt;/i&gt;&lt;/div&gt;
&lt;/blockquote&gt;
&lt;div style=&quot;font-family: Verdana,sans-serif; margin: 0px;&quot;&gt;
&lt;div style=&quot;font-family: Verdana,sans-serif; margin: 0px;&quot;&gt;
In this stream of thought, I am not thinking &quot;SOA Center of Excellence&quot;.&amp;nbsp; This&amp;nbsp; is something quite different.&lt;/div&gt;
&lt;div style=&quot;font-family: Verdana,sans-serif; margin: 0px;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: Verdana,sans-serif; margin: 0px;&quot;&gt;
&lt;br /&gt;
But rather each Service in a service-oriented architecture is a Center of Excellence for the functionality it provides.&amp;nbsp; I&#39;ll &quot;brain dump&quot; additional thoughts of drawing parallels between Services and Centers of Excellence as it relates to governance in a subsequent post.&lt;/div&gt;
&lt;div style=&quot;font-family: Verdana,sans-serif; margin: 0px;&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://practical-technology.blogspot.com/2011/10/soa-g-bombs-part-2-of-3.html&quot; target=&quot;&quot;&gt;Part 2 of 3&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://practical-technology.blogspot.com/2011/12/soa-g-bombs-part-3-of-3.html&quot;&gt;Part 3 of 3&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/187382005880665446/posts/default/5873119650797868194'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/187382005880665446/posts/default/5873119650797868194'/><link rel='alternate' type='text/html' href='http://practical-technology.blogspot.com/2011/08/soa-g-bombs.html' title='SOA &quot;G Bombs&quot;'/><author><name>Rogers D. Stephens</name><uri>http://www.blogger.com/profile/08318410890150989533</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjH60MCfzWQAA9H9ewBruqspxOlVpWQYL2251dhTkarQBhFu1JMU_Kj8FHdRgrZiDSwOhZeFEf6KuhunJ5c4-maRU76Gx-TjIMDpUjV_h9b8o9lWanILAfkNuE6CszWVkg/s220/n6517794_934.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-187382005880665446.post-9087017020387592638</id><published>2011-02-16T23:57:00.016-06:00</published><updated>2011-02-17T12:35:52.879-06:00</updated><title type='text'>SOA: Responsibilities of Service Providers (Part 8)</title><content type='html'>&lt;div style=&quot;margin: 0px;&quot;&gt;&lt;div style=&quot;margin: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;b&gt;&lt;u&gt;Responsibility 7&lt;/u&gt;: &amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif; font-size: 15px; line-height: 21px;&quot;&gt;&lt;b&gt;Provide business eventing, where applicable (e.g. asynchronously via JMS).&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px;&quot;&gt;&lt;div style=&quot;margin: 0px;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;margin: 0px;&quot;&gt;&lt;div style=&quot;margin: 0px;&quot;&gt;&lt;div style=&quot;margin: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 21px;&quot;&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Georgia,&#39;Times New Roman&#39;,serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: large;&quot;&gt;This blog post is one in a series. &amp;nbsp;An overview and general outline of this series is linked&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;http://practical-technology.blogspot.com/2011/01/soa-what-are-responsibilities-of.html&quot; target=&quot;_new&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Georgia,&#39;Times New Roman&#39;,serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: large;&quot;&gt;here&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/a&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Georgia,&#39;Times New Roman&#39;,serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: large;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;b&gt;Background&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px;&quot;&gt;&lt;div style=&quot;margin: 0px;&quot;&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;In a nutshell, according to Wikipedia, an &lt;a href=&quot;http://en.wikipedia.org/wiki/Event_driven_architecture&quot; target=&quot;_new&quot;&gt;Event Driven Architecture (EDA)&lt;/a&gt; is one that promotes the publication, consumption of, and subsequent reaction to events. &amp;nbsp;Publishing applications are independent and decoupled from one to many consumer applications. &amp;nbsp;And consumption is usually performed asynchronously after the producer&#39;s unit of work is complete. &amp;nbsp;&lt;a href=&quot;http://en.wikipedia.org/wiki/Java_Message_Service&quot; target=&quot;_new&quot;&gt;Java Message Service (JMS)&lt;/a&gt; is a common asynchronous messaging specification.&amp;nbsp;&amp;nbsp;An emerging asynchronous messaging specification is &lt;a href=&quot;http://en.wikipedia.org/wiki/Advanced_Message_Queuing_Protocol&quot;&gt;AMQP&lt;/a&gt;. &amp;nbsp;While it is possible to implement synchronous event processing, tread carefully.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;EDA is complementary to the&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&amp;nbsp;objectives&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;of SOA but this is sometimes&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&amp;nbsp;misunderstood. &amp;nbsp;The complementary relationship might be best described with an example:&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;An AccountService is invoked to Open an Account.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;Once all the required attributes are validated, the account is created. &amp;nbsp;The customer proceeds to use the account to transact business.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;As part of creating and committing the Service&#39;s unit of work, a &quot;business event&quot; is published to JMS. &amp;nbsp;The event contains the channel (e.g. 800 number, sales person, or website) used to open the account and other basic meta data about the account that was opened.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;Asynchronously and in parallel, one or more separate consumer applications receive the business event as a notification that an account was opened.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;br /&gt;
Let&#39;s continue the example and assume two applications receive the event that was published and process the event independently and in parallel.&lt;br /&gt;
&lt;br /&gt;
Application #1 receives the event and sends a &quot;thank you&quot; email or letter via Postal Mail, depending on the customer&#39;s contact preferences. &amp;nbsp;This correspondence may include invoice and payment terms, return policies, etc. that are specific to the account.&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Times;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Times;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;In parallel, Application #2, a &lt;/span&gt;&lt;/span&gt;SalesForce Automation (SFA) application, receives the event. If the account meets certain criteria (e.g. it is for a corporation) the sales person assigned to the customer&#39;s city, state, region, etc. is notified. &amp;nbsp;The SFA application might analyze/classify the account and make key details readily accessible to the sales person--examples include:&lt;br /&gt;
&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;ol&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Times;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;This is an account for a customer that has never transacted business before, o&lt;/span&gt;&lt;/span&gt;r this is a second account for a customer that has not transacted business since X date.&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Times;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;The customer&#39;s business is in industry Y per &lt;a href=&quot;http://en.wikipedia.org/wiki/SIC_code&quot; target=&quot;_new&quot;&gt;SIC code&lt;/a&gt; 1234.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;The SFA application might even alert the sales person&#39;s Blackberry if the account meets criteria specified in his/her alert preferences within the SFA app. &amp;nbsp;If so, this could be done automatically in a matter of seconds or minutes after the account was opened.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;An event driven approach is more effective than the SFA application waking up on a timed interval to poll the customer service database for new accounts. &amp;nbsp;Or the customer service database creating a daily extract of new accounts to send to the SFA application.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;A few benefits of asynchronous messaging include:&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px;&quot;&gt;&lt;ol&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;An Event driven architecture provides the ability to react to business events as they occur.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;Consumers are decoupled from producers. &amp;nbsp;Events will simply queue up for one specific consumer application if a planned or unplanned outage is experienced. &amp;nbsp;When the application becomes available again all messages queued during the outage will be processed.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;An application may process messages off the queue in parallel. &amp;nbsp;This is achieved by creating multi-threaded consumers that connect to the queue. &amp;nbsp;This is a simple means to achieve increased throughput.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px;&quot;&gt;&lt;div style=&quot;margin: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;b&gt;Considerations&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;Typically, business services parallel a durable business process it supports. As part of analysis, it is useful to identify the actors that initiate or interact with the business process and also the events (outcomes) that result. Events are often described as a noun plus a verb (or vice versa if you prefer).&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;It is useful to identify and catalog these events as part of business process analysis,&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;a href=&quot;http://www.getoffthedrawingboard.com/2009/05/23/what-is-a-capability-map/&quot; target=&quot;_new&quot;&gt;capability mapping&lt;/a&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;, etc.&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;Examples of business events:&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;Account Opened&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;Customer Order Placed&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;Customer Order Shipped&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;Inventory Replenished&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;br /&gt;
When required, the service provider carries the responsibility to &lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;successfully &lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;publish the appropriate business events to the messaging infrastructure. &amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;The general objectives and challenges are very similar to SOA. &amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;There should be a common approach/strategy to do this.&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&amp;nbsp;&amp;nbsp;For event/messaging to be effective as an enterprise resource, publishing business events that are of high-value across the enterprise requires planning and coordination across the organization.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;While we&#39;ve only covered some basics, an effective approach for business eventing is required to spring board into other areas such as event correlation, complex event processing, etc.&amp;nbsp; In using a football analogy, it is important to get blocking and tacking right before focusing too much on the other complexities of the game.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/187382005880665446/posts/default/9087017020387592638'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/187382005880665446/posts/default/9087017020387592638'/><link rel='alternate' type='text/html' href='http://practical-technology.blogspot.com/2011/02/draft-soa-responsibilities-of-service_16.html' title='SOA: Responsibilities of Service Providers (Part 8)'/><author><name>Rogers D. Stephens</name><uri>http://www.blogger.com/profile/08318410890150989533</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjH60MCfzWQAA9H9ewBruqspxOlVpWQYL2251dhTkarQBhFu1JMU_Kj8FHdRgrZiDSwOhZeFEf6KuhunJ5c4-maRU76Gx-TjIMDpUjV_h9b8o9lWanILAfkNuE6CszWVkg/s220/n6517794_934.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-187382005880665446.post-2538606509933030508</id><published>2011-02-15T23:51:00.006-06:00</published><updated>2011-02-16T12:05:55.632-06:00</updated><title type='text'>SOA: Responsibilities of Service Providers (Part 7)</title><content type='html'>&lt;div style=&quot;margin: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;b&gt;&lt;u&gt;Responsibility 6&lt;/u&gt;: &amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif; font-size: 15px; line-height: 21px;&quot;&gt;&lt;b&gt;Implement formalized change management. And implement interface versioning to limit the number of clients impacted by changes (decoupling).&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px;&quot;&gt;&lt;br /&gt;
&lt;div style=&quot;margin: 0px;&quot;&gt;&lt;div style=&quot;margin: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 21px;&quot;&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Georgia,&#39;Times New Roman&#39;,serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: large;&quot;&gt;This blog post is one in a series. &amp;nbsp;An overview and general outline of this series is linked&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;http://practical-technology.blogspot.com/2011/01/soa-what-are-responsibilities-of.html&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Georgia,&#39;Times New Roman&#39;,serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: large;&quot;&gt;here&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/a&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Georgia,&#39;Times New Roman&#39;,serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: large;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;b&gt;Background&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;margin: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;Service Oriented Architecture (SOA) typically targets&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif; font-size: 15px; line-height: 21px;&quot;&gt;reducing duplication and increasing reuse as a means to promote a more cost effective and agile operating model.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif; font-size: 15px; line-height: 21px;&quot;&gt;As part of growing a SOA,&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif; font-size: 15px; line-height: 21px;&quot;&gt;we hope applications use existing services to solve business problems. &amp;nbsp;Over time this translates to a service having interface dependencies with many client applications. &amp;nbsp;Conversely, if a service only interacts with a single client this is not optimal as point-to-point solutions are not the primary focus of SOA.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif; font-size: medium;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 15px; line-height: 21px;&quot;&gt;As the number of interface dependencies grows for a service, there can be challenges. &amp;nbsp;Examples:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif; font-size: medium;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 15px; line-height: 21px;&quot;&gt;Implementing changes to the interface definition can be a lengthy &quot;ocean boiling&quot; experience when many client applications are impacted.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif; font-size: medium;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 15px; line-height: 21px;&quot;&gt;A change is needed to a service to meet a new set of requirements. &amp;nbsp;How do you pinpoint all applications that are impacted? &amp;nbsp;And can we spend less time and energy assessing impact?&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif; font-size: medium;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 15px; line-height: 21px;&quot;&gt;Unexpected outages can occur if impact analysis is inaccurate.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif; font-size: medium;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 15px; line-height: 21px;&quot;&gt;&lt;b&gt;Considerations&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif; font-size: medium;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 15px; line-height: 21px;&quot;&gt;It is the responsibility of the service provider to&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif; font-size: medium;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 15px; line-height: 21px;&quot;&gt;follow a standard, generally accepted versioning strategy. &amp;nbsp;This consistency is in keeping with &lt;a href=&quot;http://practical-technology.blogspot.com/2011/02/soa-responsibilities-of-service_12.html&quot;&gt;Responsibility 4&lt;/a&gt;. &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif; font-size: 15px; line-height: 21px;&quot;&gt;A complete strategy supports major versions (breaking changes) and minor versions (compatible changes within a given major) of the interface definition or contract. &amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif; font-size: 15px; line-height: 21px;&quot;&gt;The service provider must assess whether a change to the interface contract is a major or minor change.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif; font-size: 15px; line-height: 21px;&quot;&gt;A minor change is a compatible change. &amp;nbsp;For example, adding an optional element&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif; font-size: 15px; line-height: 21px;&quot;&gt;to the service&#39;s request or response&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif; font-size: 15px; line-height: 21px;&quot;&gt;for a customer&#39;s &quot;maiden name&quot; would be considered a minor change. &amp;nbsp;Only clients needing visibility to &quot;maiden name&quot; would need to upgrade to adopt the new interface version. &amp;nbsp;All other clients will continue to work without any changes.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif; font-size: 15px; line-height: 21px;&quot;&gt;It is important to identify opportunities leverage minor versioning. &amp;nbsp;These changes can be implemented much easier than major changes but &lt;u&gt;always&lt;/u&gt; in keeping with&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif; font-size: 15px; line-height: 21px;&quot;&gt;&lt;a href=&quot;http://practical-technology.blogspot.com/2011/02/soa-responsibilities-of-service_13.html&quot;&gt;Responsibility 5&lt;/a&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif; font-size: 15px; line-height: 21px;&quot;&gt;. &amp;nbsp;No hacks please :-).&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif; font-size: 15px; line-height: 21px;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif; font-size: 15px; line-height: 21px;&quot;&gt;The service provider must maintain effective communication with all application owners that invoke a given service. &amp;nbsp;It is the responsibility of the service provider to ensure awareness and coordinate all upcoming changes.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif; font-size: 15px; line-height: 21px;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif; font-size: 15px; line-height: 21px;&quot;&gt;Leveraging security is an effective method to&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif; font-size: 15px; line-height: 21px;&quot;&gt;identify client applications that invoke a given service. &amp;nbsp;Air-tight impact analysis can be achieved by all services implementing a&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif; font-size: 15px; line-height: 21px;&quot;&gt;&amp;nbsp;common enterprise-wide security mechanism. &amp;nbsp;This can be justified through the benefits of enabling effective impact analysis and through&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif; font-size: 15px; line-height: 21px;&quot;&gt;&lt;a href=&quot;http://practical-technology.blogspot.com/2011/02/soa-responsibilities-of-service_12.html&quot;&gt;Responsibility 4&lt;/a&gt;. &amp;nbsp;The basic mechanics include:&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif; font-size: 15px; line-height: 21px;&quot;&gt;Each client application should be issued a unique identifier or token to use as a credential. &amp;nbsp;This is passed by the client to all services it invokes.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif; font-size: 15px; line-height: 21px;&quot;&gt;The service authorizes client-specific access using the unique identifier or token. &amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif; font-size: 15px; line-height: 21px;&quot;&gt;An authorization rule must exist for a client to invoke a service successfully--anonymous access should not be allowed.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif; font-size: 15px; line-height: 21px;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif; font-size: 15px; line-height: 21px;&quot;&gt;Consider measures to prevent the client&#39;s unique identifier or token from being spoofed or shared among multiple applications. Addressing this is part technology (think public key encryption) and part governance (or &quot;g8e&quot; for those that cringe at the term governance :-).&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif; font-size: 15px; line-height: 21px;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif; font-size: 15px; line-height: 21px;&quot;&gt;Authorization rules (and secondarily usage metrics) are used to perform air-tight impact analysis.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px;&quot;&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif; font-size: medium;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 15px; line-height: 21px;&quot;&gt;View security as your friend in managing interface dependencies between all clients and services. &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif; font-size: medium;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 15px; line-height: 21px;&quot;&gt;In a later series, I plan to blog about the details of an effective major/minor interface versioning strategy. &amp;nbsp;An effective versioning and decoupling strategy is a key component to realize the benefits of agility and reduced complexity.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;/ul&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/187382005880665446/posts/default/2538606509933030508'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/187382005880665446/posts/default/2538606509933030508'/><link rel='alternate' type='text/html' href='http://practical-technology.blogspot.com/2011/02/soa-responsibilities-of-service_15.html' title='SOA: Responsibilities of Service Providers (Part 7)'/><author><name>Rogers D. Stephens</name><uri>http://www.blogger.com/profile/08318410890150989533</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjH60MCfzWQAA9H9ewBruqspxOlVpWQYL2251dhTkarQBhFu1JMU_Kj8FHdRgrZiDSwOhZeFEf6KuhunJ5c4-maRU76Gx-TjIMDpUjV_h9b8o9lWanILAfkNuE6CszWVkg/s220/n6517794_934.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-187382005880665446.post-9113388918815148493</id><published>2011-02-13T21:54:00.009-06:00</published><updated>2011-02-16T12:06:36.702-06:00</updated><title type='text'>SOA: Responsibilities of Service Providers (Part 6)</title><content type='html'>&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;b&gt;&lt;u&gt;Responsibility 5&lt;/u&gt;: &amp;nbsp;Implement business rules and edits to ensure the validity/integrity of the operation and any data that is mastered.&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;margin: 0px;&quot;&gt;&lt;div style=&quot;margin: 0px;&quot;&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 21px;&quot;&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Georgia,&#39;Times New Roman&#39;,serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: large;&quot;&gt;This blog post is one in a series. &amp;nbsp;An overview and general outline of this series is linked&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;http://practical-technology.blogspot.com/2011/01/soa-what-are-responsibilities-of.html&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Georgia,&#39;Times New Roman&#39;,serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: large;&quot;&gt;here&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/a&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Georgia,&#39;Times New Roman&#39;,serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: large;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;b&gt;Background&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;Okay so you might think this responsibility is an obvious one. &amp;nbsp;It is. &amp;nbsp;But it shouldn&#39;t be overlooked. &amp;nbsp;A service that does not implement the complete set of edits breeds unexpected results, complexity, and other issues. &amp;nbsp;Interfacing apps and end-users dependent upon accessing resulting data later (and even using a downstream enterprise data warehouse) are left holding the proverbial bag.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;b&gt;Considerations&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;There are a number of methods to implement edits and rules. &amp;nbsp;The nature of the service will drive the technical approach. &amp;nbsp;Here are a few examples:&lt;/span&gt;&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;Service uses XML Schema Validation to ensure a valid request has been submitted. &amp;nbsp;Much easier than writing code!! &amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;See best practices below.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;Edits and rules implemented within code. &amp;nbsp;Typically this is useful for things that cannot be expressed via XML Schema. &amp;nbsp;The unit of work doesn&#39;t commit unless all edits and rules pass successfully as part of processing the request.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;As part of processing a request, a rules engine is invoked (either across the network as a chained service call or local to the service) to ensure validity. &amp;nbsp;Only insert a rules engine when it makes sense to do so.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;After a service is invoked, the underlying business process requires human action before a &quot;logical unit of work&quot; is complete. &amp;nbsp;This is best addressed with a human workflow engine to route requests for review and action. &amp;nbsp;On subsequent queries, a best practice is for the service to indicate the workflow status for any in-flight requests.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;Often a service will leverage one or more of these strategies. &amp;nbsp;For instance, it is common to use both 1 and 2 together.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;As a best practice, XML oriented services should leverage the richness of XML Schema to describe what constitutes a valid request and response. Examples of items that can be enforced include:&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;One to many relationships&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;Required vs. optional values&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;Dependent values (if X exists, Y and Z are required also)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;Enumerated list of valid values for attributes/elements&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;Types and patterns. &amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;Minimum and maximum lengths&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;With both SOAP (within WSDL) and REST, XML Schema is the mechanism to outline an interface contract to all clients. &amp;nbsp;A rich contract also enables a client to generate rich language specific bindings. &amp;nbsp;This provides an object based representation to easily construct requests and parse responses to/from the service.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;Quite often I encounter opportunities to strengthen the XML Schema definition to increase the effectiveness of an interface contract. &amp;nbsp;In my view, managing a service&#39;s interface definition is a critical activity. &amp;nbsp;On the surface this seems like a mundane task; however, when done properly the benefits are quite visible.&amp;nbsp; This is especially the case when a robust interface versioning strategy&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif; font-size: xx-small;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;is utilized to seize decoupling opportunities.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/187382005880665446/posts/default/9113388918815148493'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/187382005880665446/posts/default/9113388918815148493'/><link rel='alternate' type='text/html' href='http://practical-technology.blogspot.com/2011/02/soa-responsibilities-of-service_13.html' title='SOA: Responsibilities of Service Providers (Part 6)'/><author><name>Rogers D. Stephens</name><uri>http://www.blogger.com/profile/08318410890150989533</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjH60MCfzWQAA9H9ewBruqspxOlVpWQYL2251dhTkarQBhFu1JMU_Kj8FHdRgrZiDSwOhZeFEf6KuhunJ5c4-maRU76Gx-TjIMDpUjV_h9b8o9lWanILAfkNuE6CszWVkg/s220/n6517794_934.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-187382005880665446.post-5241440405046574203</id><published>2011-02-12T20:49:00.006-06:00</published><updated>2011-02-12T21:12:54.151-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="framework"/><category scheme="http://www.blogger.com/atom/ns#" term="soa"/><title type='text'>SOA: Responsibilities of Service Providers (Part 5)</title><content type='html'>&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 21px;&quot;&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Georgia, &#39;Times New Roman&#39;, serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: large;&quot;&gt;This blog post is one in a series. &amp;nbsp;An overview and general outline of this series is linked&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;http://practical-technology.blogspot.com/2011/01/soa-what-are-responsibilities-of.html&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Georgia, &#39;Times New Roman&#39;, serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: large;&quot;&gt;here&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/a&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Georgia, &#39;Times New Roman&#39;, serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: large;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;br /&gt;
&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif; line-height: 21px;&quot;&gt;&lt;u&gt;Responsibility 4&lt;/u&gt;: &amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif; font-size: 15px; line-height: 21px;&quot;&gt;&lt;b&gt;Implement common interface format and semantics applicable to the type of service.&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;b&gt;Background&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Imagine. &amp;nbsp;Your trusted business partners come to you with a new problem and clearly a user interface is the vehicle to provide a solution for them. &amp;nbsp;On the backside of the user interface there are a number of existing services that can be leveraged to perform 75% of the heavy lifting. &amp;nbsp;Sounds great right?&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Stay with me. &amp;nbsp;Imagine. &amp;nbsp;The existing services were built independently across multiple development teams. &amp;nbsp;Some were even built by contractors and consultants during various engagements. &amp;nbsp;There was little coordination across the organization resulting in each service having its own &quot;look and feel&quot; so to speak. &amp;nbsp;I view this as an organization that simply has &quot;lots of services&quot; and not a &quot;Service Oriented Architecture&quot; (SOA).&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;So what&#39;s the big deal? &amp;nbsp;Well, without a level of coordination and standardization for how services should be built, development teams must conform to every difference embodied by each service. Technical differences across multiple services may include:&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Different authentication and authorization mechanisms (or no security at all)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Different protocols (e.g. SOAP/http, REST/http, tcp sockets, Java RMI)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Different payload formats (e.g. XML vs ASN.1) and conventions&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Different versioning strategies (or none at all) &lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: xx-small;&quot;&gt;/* TODO blog later */&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Different methods/mechanisms to return error messages (e.g. SOAP Faults, Remote Exceptions, or returned in a response to be interrogated)&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;With each service having a little different look and feel, constructing the user interface and leveraging the existing services can be tedious. &amp;nbsp;And if care isn&#39;t taken the user interface code can easily become more complicated given these differences.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;b&gt;Considerations&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;I&#39;ve seen a couple examples where a formalized technical &quot;blue-print&quot; for how services should be constructed across the enterprise has yielded significant benefits. &amp;nbsp;First of all, the service developers are not left to make their own fine-grain decisions for how services should be constructed on a project-by-project basis. &amp;nbsp;But rather focus can be re-directed towards business logic and the overall solution. &amp;nbsp;Too many times I&#39;ve seen developers get wrapped around the axil about things such as &quot;so, how to we implement security for our service&quot;. &amp;nbsp;When these details are landed in a blue-print it provides a platform for the I.T. organization to reach a common understanding and agreement for how services will be built technically. Question marks are minimized for developers and consistency is the net result.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;From my experience, it is a best practice when the underlying service blue-print is implemented in a common framework. &amp;nbsp;This is the technical foundation that all services are built on top of. &amp;nbsp;At a high level, the key benefits include:&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;ol&gt;&lt;li&gt;A rich service framework increases the odds that services will be constructed with similar &quot;look and feel&quot;. &amp;nbsp;As a best practice, the items enumerated in the previous section should be isolated from business logic as much as possible by the framework.&lt;/li&gt;
&lt;li&gt;Developers leverage a common code library to implement services. &amp;nbsp;Focus and energy can be redirected to service-specific interface definition, business logic, and configuration.&lt;/li&gt;
&lt;li&gt;Hard problems can be solved once and embodied within the framework to be consumed by all.&lt;/li&gt;
&lt;li&gt;When a change is needed to the underlying implementation, it can be changed once within the framework. &amp;nbsp;And incorporated by each development organization.&lt;/li&gt;
&lt;/ol&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;The goal of a common blue-print and framework for service development is to enable each development team to roll out services across the enterprise with a measure of consistency. &amp;nbsp;Ultimately, this consistency enables clients/consumers to reap the benefits of reduced effort and complexity when interacting with multiple services across the enterprise.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Now, think about the earlier scenario. &amp;nbsp;In taking this approach, the development team will invoke the first service as part of building their user interface. &amp;nbsp;As the team proceeds to invoke their second, third, and fourth service it will be done just like the first. &amp;nbsp;The team will not have to pause to learn anything new or implement semantics that are unique to each service.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Formalizing a common blue-print to reach agreement across the organization can be challenging. &amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Allocating time and priority&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;to build out a common framework is well worth the effort. &amp;nbsp;The rewards can be very tangible and ultimately contribute to achieving a high-value&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Service Oriented Architecture.&lt;/span&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/187382005880665446/posts/default/5241440405046574203'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/187382005880665446/posts/default/5241440405046574203'/><link rel='alternate' type='text/html' href='http://practical-technology.blogspot.com/2011/02/soa-responsibilities-of-service_12.html' title='SOA: Responsibilities of Service Providers (Part 5)'/><author><name>Rogers D. Stephens</name><uri>http://www.blogger.com/profile/08318410890150989533</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjH60MCfzWQAA9H9ewBruqspxOlVpWQYL2251dhTkarQBhFu1JMU_Kj8FHdRgrZiDSwOhZeFEf6KuhunJ5c4-maRU76Gx-TjIMDpUjV_h9b8o9lWanILAfkNuE6CszWVkg/s220/n6517794_934.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-187382005880665446.post-1182899265511713259</id><published>2011-02-11T20:35:00.013-06:00</published><updated>2011-02-17T18:23:29.957-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="governance"/><category scheme="http://www.blogger.com/atom/ns#" term="soa"/><title type='text'>SOA: Responsibilities of Service Providers (Part 4)</title><content type='html'>&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 21px;&quot;&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Georgia, &#39;Times New Roman&#39;, serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: large;&quot;&gt;This blog post is one in a series. An overview and general outline of this series is linked&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;http://practical-technology.blogspot.com/2011/01/soa-what-are-responsibilities-of.html&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Georgia, &#39;Times New Roman&#39;, serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: large;&quot;&gt;here&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/a&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Georgia, &#39;Times New Roman&#39;, serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: large;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;br /&gt;
&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif; line-height: 21px;&quot;&gt;&lt;u&gt;Responsibility 3&lt;/u&gt;: &amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif; font-size: 15px; line-height: 21px;&quot;&gt;&lt;b&gt;Publish and commit to a defined level of service (SLA). Publish planned vs. actual performance, and availability metrics.&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;b&gt;Background&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Georgia, &#39;Times New Roman&#39;, serif;&quot;&gt;“&lt;/span&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Georgia, &#39;Times New Roman&#39;, serif;&quot;&gt;You manage things; you lead people&lt;/span&gt;&lt;/i&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Georgia, &#39;Times New Roman&#39;, serif;&quot;&gt;”&amp;nbsp;&lt;i&gt;-Grace Hopper, invented the compiler in 1953&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Georgia, &#39;Times New Roman&#39;, serif;&quot;&gt;&lt;i&gt;&quot;If you can not measure it, you can not improve it.&quot; -Lord Kelvin, British scientist&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;It is difficult to&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;effectively&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;manage anything significant without metrics. &amp;nbsp;Managing performance and availability should be treated no differently, especially when very aggressive requirements are in play. &amp;nbsp;In a Service Oriented Architecture, services are the &quot;things&quot; to mange.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Ineffectively managing performance and availability can create problems. &amp;nbsp;A couple examples include:&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Critical business functions may be negatively impacted when&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;availability and performance levels are unknown. &amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;When&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;interfaces are created from clients to services that do not support the required service level, it can result in business and/or direct customer impact.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Lack of confidence in a service. &amp;nbsp;This can result from clients/consumers experiencing unknown, sporadic outages and performance issues. &amp;nbsp;When confidence is lacking this becomes a barrier to adopting shared services and achieving reusability.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;b&gt;Considerations&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Historically at FedEx, Customer-Supplier Alignments have been a useful tool to synchronize needs and expectations between groups that are dependent upon one another. &amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;This parallels a Service Level Agreement (SLA) in concept. &amp;nbsp;With either, the bottom line is&amp;nbsp;effective communication&amp;nbsp;and aligning expectations&amp;nbsp;between constituent groups. &amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Much has been written about SLAs by others. &amp;nbsp;I will only hit on a few key points.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Service level management effectively starts as a Design-time activity and requires Runtime enforcement.&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif; font-size: xx-small;&quot;&gt;/* TODO blog details later */&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&amp;nbsp; Your focus and mileage may vary depending on how critical the service is in terms of the availability and performance requirements it must meet&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: xx-small;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;/div&gt;&lt;br /&gt;
&lt;u&gt;Capacity Planning&lt;/u&gt;&lt;br /&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;When a service is being developed, analysis is required to determine the requirements of the service. &amp;nbsp;This is typically started by analyzing the types of business processes that will be supported. &amp;nbsp;A service supporting customers placing orders via the web or 800 number can be very different than supporting back office batch processing.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Each client application (service consumer) must quantify performance and availability required. &amp;nbsp;I typically like to quantify requirements using:&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Requests per second&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;(average and max during peak hour&amp;nbsp;throughput)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Response time per request (average and max&amp;nbsp;tolerable&amp;nbsp;response time)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Minutes/hours downtime tolerable per hour/day/week/etc.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Business impact of not meeting above requirements&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Formal capacity planning/analysis is done to ensure the requirements can be met as-is or by adding hardware, or taking other measures.&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;The more aggressive the performance and availability requirements, the more formalized the planning activity should be.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;u&gt;Capturing Metrics&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;At run-time,&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;the service should be instrumented to capture actual performance metrics. &amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;These are most useful when captured by client/consumer--this level of detail can always be rolled up to an overall number. &amp;nbsp;Useful metrics to capture are requests per second and average response time for a given interval. &amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Alerts when performance falls out of variance is considered a best practice, especially when measures can be taken to address degradation.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Services hosted by eBay and Twitter for example implement &quot;rate limiting&quot; features. &amp;nbsp;This is to prevent a run-away client&#39;s unplanned volume from impacting the ability to meet service commitments for other clients. &amp;nbsp;Typically this is implemented in a very simple way to enforce the SLA at run-time. &amp;nbsp;I prefer two levels of alerting: &amp;nbsp;a warning threshold and an absolute ceiling by client resulting in requests being turned away for specified interval. &amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif; font-size: xx-small;&quot;&gt;/* TODO blog details later */&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Planned vs. Actual performance and availability metrics should be published. &amp;nbsp;This is a critical tool to assist formal capacity planning. &amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;And while alerting for outage conditions is a must, keeping metrics for total outage minutes, for both planned and unplanned events, is considered a best practice. &amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;These details are very useful for building confidence with current and future consumers. &amp;nbsp;Also, measurements such as these drive improvements to meet business needs, depending on the criticality of the business processes supported.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Details regarding service security will not be outlined in this post but I don&#39;t wish to minimize it&#39;s importance. &amp;nbsp;A critical success factor is being able to reliably identify each client uniquely. &amp;nbsp;This will assist troubleshooting, enable metrics to be captured reliably at the client level, and allows the client&#39;s SLA to be enforced at run-time. &amp;nbsp;Allowing anonymous or rogue clients to invoke a service can skew metrics and cause other manageability issues.&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif; font-size: xx-small;&quot;&gt;/* TODO blog details later */&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;u&gt;Level of Rigor May Vary&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;u&gt;&lt;br /&gt;
&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;The level of rigor applied can vary depending on the criticality of the service. &amp;nbsp;When developing and managing a service that demands high-performance and high-availability, it is difficult to imagine taking on this challenge without considering the key elements of this principle.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/187382005880665446/posts/default/1182899265511713259'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/187382005880665446/posts/default/1182899265511713259'/><link rel='alternate' type='text/html' href='http://practical-technology.blogspot.com/2011/02/soa-responsibilities-of-service_11.html' title='SOA: Responsibilities of Service Providers (Part 4)'/><author><name>Rogers D. Stephens</name><uri>http://www.blogger.com/profile/08318410890150989533</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjH60MCfzWQAA9H9ewBruqspxOlVpWQYL2251dhTkarQBhFu1JMU_Kj8FHdRgrZiDSwOhZeFEf6KuhunJ5c4-maRU76Gx-TjIMDpUjV_h9b8o9lWanILAfkNuE6CszWVkg/s220/n6517794_934.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-187382005880665446.post-4958995681544939641</id><published>2011-02-09T21:29:00.017-06:00</published><updated>2011-02-10T22:29:18.653-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="architecture"/><category scheme="http://www.blogger.com/atom/ns#" term="soa"/><title type='text'>SOA: Responsibilities of Service Providers (Part 3)</title><content type='html'>&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 21px;&quot;&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Georgia, &#39;Times New Roman&#39;, serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: large;&quot;&gt;This blog post is one in a series. &amp;nbsp;An overview and general outline of this series is linked&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;http://practical-technology.blogspot.com/2011/01/soa-what-are-responsibilities-of.html&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Georgia, &#39;Times New Roman&#39;, serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: large;&quot;&gt;here&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/a&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Georgia, &#39;Times New Roman&#39;, serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: large;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif; line-height: 21px;&quot;&gt;&lt;u&gt;&lt;b&gt;Responsibility 2&lt;/b&gt;&lt;/u&gt;&lt;b&gt;: &amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif; font-size: 15px; line-height: 21px;&quot;&gt;&lt;b&gt;Meet performance and availability requirements. As requirements and usage patterns change over time, be prepared to adapt.&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;b&gt;Background&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Sometimes we encounter situations where an existing service does not meet the performance or availability requirements for a new project.&amp;nbsp; Resolving the matter often involves a technical constraint of some variety. &amp;nbsp;Here are a couple examples:&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;The service makes very heavy use of database stored procedures. &amp;nbsp;The approach to scalability long term is complicated.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;The service interface supports very large request/response payload sizes. &amp;nbsp;The worst case is probably where an &quot;unbounded&quot; size is allowed (e.g. by the XML Schema Definition or XSD). &amp;nbsp;Under low volumes the service may work fine. &amp;nbsp;However, the service becomes unstable as volume and number of concurrent requests increases (e.g. due to exhausting the JVM memory allocation).&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Issues such as these and/or organizational concerns can prevent changes from being made in a timely manner to meet requirements. &amp;nbsp;This can impact the re-usability of a service.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt; &lt;br /&gt;
&lt;b&gt;Considerations&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
This requirement, or principle, is front and center so it is clear to service providers the architecture must scale to meet current and future requirements. &amp;nbsp;Even a re-architecture should not be out of the question for any unforeseen situations.&amp;nbsp; The service provider must have &quot;ownership&quot; of a solution to meet the purpose and general objectives of a SOA.&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;
Typical patterns and decision points:&lt;/span&gt;&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt; Implement stateless request/response services that scale by adding additional computers or virtual machines behind a load balancer to handle additional volume. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Use of an &quot;intelligent&quot; load balancer to direct requests away from failed instances during a period of outage (as opposed to static DNS RR).&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Clear separation between data persistence and application tiers to enable each to scale independently. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Business logic is best suited in the application tier where scalability is much easier to achieve.  If there is a belief it belongs within a stored procedure to meet performance requirements, evaluate this belief very carefully.  (&lt;i&gt;Maybe I&#39;ll cover this topic in a later blog post.&lt;/i&gt;)  &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Where applicable, an in-memory caching strategy can and should be employed behind the service interface to meet aggressive requirements.  &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;The application team must make critical decisions around the appropriate level of granularity for the service.  For instance very fine-grain RPC style invocations are typically not appropriate when the technology is SOAP or REST over http.  A more coarse-grain approach is best with these technologies. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Where applicable enable a client to submit multiple &quot;units of work&quot; in a single request.  This will cut down on the number of round trips across the network.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;In a later installment, we will touch on a related topic--Service Level Agreements and measuring planned vs. actual metrics.&lt;/span&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/187382005880665446/posts/default/4958995681544939641'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/187382005880665446/posts/default/4958995681544939641'/><link rel='alternate' type='text/html' href='http://practical-technology.blogspot.com/2011/02/soa-responsibilities-of-service.html' title='SOA: Responsibilities of Service Providers (Part 3)'/><author><name>Rogers D. Stephens</name><uri>http://www.blogger.com/profile/08318410890150989533</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjH60MCfzWQAA9H9ewBruqspxOlVpWQYL2251dhTkarQBhFu1JMU_Kj8FHdRgrZiDSwOhZeFEf6KuhunJ5c4-maRU76Gx-TjIMDpUjV_h9b8o9lWanILAfkNuE6CszWVkg/s220/n6517794_934.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-187382005880665446.post-1599473251422118701</id><published>2011-02-05T23:34:00.005-06:00</published><updated>2011-02-07T16:10:23.600-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="bizarch"/><category scheme="http://www.blogger.com/atom/ns#" term="governance"/><category scheme="http://www.blogger.com/atom/ns#" term="soa"/><title type='text'>SOA: Responsibilities of Service Providers (Part 2)</title><content type='html'>&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 21px;&quot;&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Georgia, &#39;Times New Roman&#39;, serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: large;&quot;&gt;This blog post is one in a series. &amp;nbsp;An overview and general outline of this series is linked&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;http://practical-technology.blogspot.com/2011/01/soa-what-are-responsibilities-of.html&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Georgia, &#39;Times New Roman&#39;, serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: large;&quot;&gt;here&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/a&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Georgia, &#39;Times New Roman&#39;, serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: large;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif; line-height: 21px;&quot;&gt;&lt;u&gt;Responsibility 1&lt;/u&gt;: &amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 21px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;The functional needs&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&amp;nbsp;of the enterprise as a whole must be considered to maximize reuse&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;b&gt;Background&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;It can be common to find feature/function duplicated across multiple applications and development organizations, especially&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;in companies that have been around a while&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;. &amp;nbsp;For instance, &quot;address validation&quot;, &quot;geocoding&quot;, &quot;credit card validation&quot;, and &quot;currency conversion&quot; are examples of functionality that might be duplicated. &amp;nbsp;In each case, the features might differ, the underlying technology might differ, and where applicable underlying software vendors might differ.&amp;nbsp; Ultimately this duplication translates into increased hardware, license, labor, and maintenance costs.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;b&gt;What are some reasons duplication exists?&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;In using &quot;currency conversion&quot; as an example:&lt;/span&gt;&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Technology and platform differences: &amp;nbsp;A distributed application invokes currency conversion directly using a C API. &amp;nbsp;A&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;COBOL application uses currency conversion on the mainframe and inaccessible to distributed applications.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Differing requirements: &amp;nbsp;An application area supporting North American operations deploys conversion between U.S. and Canadian currencies only. &amp;nbsp;At some other point in time, another development area supporting international operations requires conversion for a broader set of countries. &amp;nbsp;Or an application needs &quot;historical&quot; conversion rates but the service owner is only able to support &quot;current&quot; rates.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Differing priorities and timelines: &amp;nbsp;An existing service cannot be extended to meet the needs of others due to project workload and&amp;nbsp;competing&amp;nbsp;priorities.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Ownership considerations: &amp;nbsp;An application area is unwilling to take responsibility for any impacts resulting from outages. &amp;nbsp;Or is unwilling to coordinate changes/testing with any other development groups.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Differing performance and availability requirements: &amp;nbsp;An application team with more stringent availability or performance needs decides to deploy duplicate capability to maintain control of their own destiny.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Lack of visibility to existing services that are available&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;At this point you might see a common thread: &amp;nbsp;some of these relate to underlying organizational considerations/issues.&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&amp;nbsp;&amp;nbsp;Additionally, without a productive governance program, issues are accentuated&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&amp;nbsp;in organizations operating in vertical silos (e.g. associated to line-of-business) as opposed to certain functions aligned in a more horizontal manner.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;font-family: Times; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;These items are&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&amp;nbsp;sometimes used as justification for sprouting duplicate functionality. &amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;An archaeological dig into the history of how duplication came to be is educational. &amp;nbsp;Sometimes the reasons for duplication can be rationalized.&amp;nbsp; And sometimes the reasons aren&#39;t valid at all, especially after a certain amount of time has passed.&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;b&gt;Considerations&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif; font-size: medium;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 15px; line-height: 21px;&quot;&gt;When building a new service or transitioning a legacy environment to common services, it is important to ensure &quot;functional ownership&quot; is clear. &amp;nbsp;Achieving reuse can have different context. &amp;nbsp;Some services have utility across the enterprise. &amp;nbsp;Others are more domain-specific but hold the promise of greater use across the enterprise in the future. &amp;nbsp;This is the reason I slipped the word &quot;enterprise&quot; into Responsibility 1.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif; font-size: 15px; line-height: 21px;&quot;&gt;To paint a simple picture of a good &quot;currency conversion&quot; service, it is one that maximizes reuse for both today&#39;s use cases as well enables future use cases to be supported. &amp;nbsp;It supports currencies for the countries presently served and can expand to support other countries when needed. &amp;nbsp;It supports conversions for current conversion rates as well as historical rates if there is a need to do so. &amp;nbsp;And the architecture and development team is able to flex to meet additional functional, performance, and availability needs to maximize reuse across multiple applications.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif; font-size: 15px; line-height: 21px;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;This can be difficult to achieve without organizational considerations and/or a formalized governance process. &amp;nbsp;Additionally, standing-up a service suitable for the enterprise requires the ability to perform a necessary level of business analysis. &amp;nbsp;This is to ensure the broad functional needs of the enterprise are identified.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;As briefly mentioned in a prior post, the goals of SOA typically involve&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif; font-size: 15px; line-height: 21px;&quot;&gt;reducing duplication and increasing reuse as a means to promote a more cost effective and agile operating model. &amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;It is difficult to meet these objectives without taking at least the spirit of this principle seriously.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Georgia, &#39;Times New Roman&#39;, serif;&quot;&gt;&lt;i&gt;Next time I&#39;ll explore...&lt;/i&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Georgia, &#39;Times New Roman&#39;, serif;&quot;&gt;&lt;i&gt;Responsibility 2&lt;/i&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Georgia, &#39;Times New Roman&#39;, serif;&quot;&gt;&lt;i&gt;: Meet performance and availability requirements. As requirements and usage patterns change over time, be prepared to adapt.&lt;/i&gt;&lt;/span&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/187382005880665446/posts/default/1599473251422118701'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/187382005880665446/posts/default/1599473251422118701'/><link rel='alternate' type='text/html' href='http://practical-technology.blogspot.com/2011/01/soa-responsibilities-of-service.html' title='SOA: Responsibilities of Service Providers (Part 2)'/><author><name>Rogers D. Stephens</name><uri>http://www.blogger.com/profile/08318410890150989533</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjH60MCfzWQAA9H9ewBruqspxOlVpWQYL2251dhTkarQBhFu1JMU_Kj8FHdRgrZiDSwOhZeFEf6KuhunJ5c4-maRU76Gx-TjIMDpUjV_h9b8o9lWanILAfkNuE6CszWVkg/s220/n6517794_934.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-187382005880665446.post-6680172350424254430</id><published>2011-01-19T22:41:00.055-06:00</published><updated>2011-03-18T18:20:51.887-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="architecture"/><category scheme="http://www.blogger.com/atom/ns#" term="leadership"/><category scheme="http://www.blogger.com/atom/ns#" term="soa"/><title type='text'>The 7 Responsibilities of a Service Provider in an Enterprise SOA (Part 1 of 8)</title><content type='html'>&lt;div style=&quot;font-family: Verdana,sans-serif;&quot;&gt;I thought I&#39;d pen a few entries related to Service Oriented Architecture (SOA) over the coming weeks.&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt; &lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;In the area of service orientation, one key area that sometimes isn&#39;t framed effectively involves clear responsibilities for development teams that build and support services.&amp;nbsp; I&#39;ll attempt to provide an outline here of items I&#39;ll expand on in follow-up posts...&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt; &lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;Why are clear responsibilities important?&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt; &lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;The typical goals and value proposition of an SOA have been elaborated time and again, so I&#39;ll at least postpone a recap.&amp;nbsp; But among them are reducing duplication and increasing reuse as a means to promote a more cost effective and agile operating model.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt; &lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;In large I.T. shops, significant coordination across multiple organizations is often needed to deliver enterprise solutions. &amp;nbsp;Typically this is the case when applications are highly integrated and delivering a business solution cuts across multiple application domains.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;Transitioning from a highly integrated legacy environment to a SOA will require I.T. to be on the same page when building services. &amp;nbsp;It is important to share a common set of goals and imperatives to achieve the promises of SOA across the enterprise.&amp;nbsp; Ineffectiveness in this regard will place achieving the full benefits of an enterprise SOA program at risk.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;b&gt;Key responsibilities for those that provide a service for enterprise consumption (click on each link for details):&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;ol&gt;&lt;li&gt;&lt;span style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;a href=&quot;http://practical-technology.blogspot.com/2011/01/soa-responsibilities-of-service.html&quot;&gt;The functional needs of the enterprise as a whole must be considered to maximize reuse and minimize duplication&lt;/a&gt;. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;a href=&quot;http://practical-technology.blogspot.com/2011/02/soa-responsibilities-of-service.html&quot;&gt;Meet performance and availability requirements.  As requirements and usage patterns change over time, be prepared to adapt. &lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;a href=&quot;http://practical-technology.blogspot.com/2011/02/soa-responsibilities-of-service_11.html&quot;&gt;Publish and commit to a defined level of service (SLA).  Publish planned vs. actual performance, and availability metrics. &lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;a href=&quot;http://practical-technology.blogspot.com/2011/02/soa-responsibilities-of-service_12.html&quot;&gt;Implement common interface format and semantics applicable to the type of service. &lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;a href=&quot;http://practical-technology.blogspot.com/2011/02/soa-responsibilities-of-service_13.html&quot;&gt;Implement business rules and edits to ensure the validity/integrity of the operation and any data that is mastered. &lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;a href=&quot;http://practical-technology.blogspot.com/2011/02/soa-responsibilities-of-service_15.html&quot;&gt;Implement formalized change management.  And implement interface versioning to limit the number of clients impacted by changes (decoupling). &lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;a href=&quot;http://practical-technology.blogspot.com/2011/02/draft-soa-responsibilities-of-service_16.html&quot;&gt;Provide business eventing, where applicable (e.g. asynchronously via JMS).&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;ol style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;/ol&gt;&lt;div style=&quot;font-family: Verdana,sans-serif;&quot;&gt;To a certain degree the responsibilities outlined here transcend SOA.&amp;nbsp; I plan to detail each of these items and their importance in later installments.&amp;nbsp; Thanks for reading.&amp;nbsp; I welcome and look forward to feedback about your experiences.&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/187382005880665446/posts/default/6680172350424254430'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/187382005880665446/posts/default/6680172350424254430'/><link rel='alternate' type='text/html' href='http://practical-technology.blogspot.com/2011/01/soa-what-are-responsibilities-of.html' title='The 7 Responsibilities of a Service Provider in an Enterprise SOA (Part 1 of 8)'/><author><name>Rogers D. Stephens</name><uri>http://www.blogger.com/profile/08318410890150989533</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjH60MCfzWQAA9H9ewBruqspxOlVpWQYL2251dhTkarQBhFu1JMU_Kj8FHdRgrZiDSwOhZeFEf6KuhunJ5c4-maRU76Gx-TjIMDpUjV_h9b8o9lWanILAfkNuE6CszWVkg/s220/n6517794_934.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-187382005880665446.post-2151779726955928670</id><published>2011-01-16T22:44:00.050-06:00</published><updated>2011-02-15T18:38:48.778-06:00</updated><title type='text'>Inaugural post</title><content type='html'>&lt;div style=&quot;font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Welcome to a stream of random thoughts about technology.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 21px;&quot;&gt;This is my first blogging experience. &amp;nbsp;I plan to share experiences applying technology to solve business problems. &amp;nbsp;And interesting tidbits I run across from others. &amp;nbsp;It is my hope a few folks will find interest in what is posted here. &amp;nbsp;I look forward to your comments and learning from your experience regarding the topics posed.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 21px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;I&#39;ve spent in the neighborhood of 20 years working in the field of Information Technology. &amp;nbsp;Over the past 12 years, my primary focus has been leading or advising large-scale software development projects, with global operational impact, for a Fortune 100 company.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Most of my time is spent these days with enterprise architecture planning and related concerns.&amp;nbsp; I&#39;m often engaged in business analysis, software architecture, software design and coding, database design, messaging, performance tuning, and capacity planning. &amp;nbsp;In recent years, Java and Linux have been the widgets of choice. &amp;nbsp;Typically, I am involved in operating systems, networks, and other infrastructure items only when necessary, which seems to be quite often. :-)&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Georgia, &#39;Times New Roman&#39;, serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;In recent months, I&#39;ve been consumed with implementing an&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;application that is deployed across 3 (or more)&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;geographically-distributed&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;data center locations in an Active/Active configuration&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;. &amp;nbsp;The design enables requests to be serviced from any data center for high-availability and fault/disaster tolerance. &amp;nbsp;Another focus area is a&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;pplication modernization.&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&amp;nbsp; As a result, of special interest is Service Oriented Architecture (SOA) and Event Driven Architecture (EDA) based solutions deployed and managed at &quot;enterprise scale&quot;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Georgia, &#39;Times New Roman&#39;, serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Some &lt;/span&gt;&lt;u&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;useless&lt;/span&gt;&lt;/i&gt;&lt;/u&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/i&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;trivia about me:&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;I grew up on a farm outside Natchez, Mississippi.&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;I was a walk-on football player in college and earned a full athletic scholarship. &amp;nbsp;My teammates and I enjoyed participating in 3 bowl games.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;I&#39;m an avid SEC football fan, having missed only 1 Ole Miss home football game since 1988.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;I&#39;m a lifelong New Orleans Saints football fan. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;My first computer program was written in BASIC on a TRS-80 Model I.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;My first &quot;corporate&quot; computer program was written in COBOL on an IBM 3090 mainframe. &amp;nbsp;I still think JCL is cool.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Nostalgia abounds. &amp;nbsp;I&#39;ve developed software for PC, AS/400, and UNIX (&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Linux, &lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Solaris, HP/UX, Siemens RM600, Pyramid Nile, AT&amp;amp;T 3B2) platforms.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;I dogged Apple for 30 years. &amp;nbsp;Until I bought an iMac to do some iPhone development.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;My first application for Android, &lt;/span&gt;&lt;a href=&quot;https://market.android.com/details?id=com.groveair.spectator&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;SEC Football Guide 2010&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;, received notice as a Top 20 application by Information Week.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;I produce a weekly radio program on &lt;a href=&quot;http://sports56whbq.com/&quot;&gt;Sports 56 WHBQ&lt;/a&gt;&amp;nbsp;in Memphis, TN USA&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana, sans-serif;&quot;&gt;I was a youth football coach (Defensive Coordinator and Kicking/Punting) for a couple years in the &lt;a href=&quot;http://obyfcl.org/&quot;&gt;OBYFCL&lt;/a&gt; league.&amp;nbsp; A very rewarding experience.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i style=&quot;font-family: Verdana,sans-serif;&quot;&gt;Last revised: February 9, 2011&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;/ul&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/187382005880665446/posts/default/2151779726955928670'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/187382005880665446/posts/default/2151779726955928670'/><link rel='alternate' type='text/html' href='http://practical-technology.blogspot.com/2011/01/inaugural-post.html' title='Inaugural post'/><author><name>Rogers D. Stephens</name><uri>http://www.blogger.com/profile/08318410890150989533</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjH60MCfzWQAA9H9ewBruqspxOlVpWQYL2251dhTkarQBhFu1JMU_Kj8FHdRgrZiDSwOhZeFEf6KuhunJ5c4-maRU76Gx-TjIMDpUjV_h9b8o9lWanILAfkNuE6CszWVkg/s220/n6517794_934.jpg'/></author></entry></feed>