<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="/stylesheets/rss.css"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>Object Mentor Blog: What is SOA, really?</title>
    <link>http://blog.objectmentor.com/articles/2007/04/11/what-is-soa-really</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description></description>
    <item>
      <title>What is SOA, really?</title>
      <description>&lt;p&gt;The good news is, you probably already know.  The bad news is, you probably know too much.  This article describes Service Oriented Architecture in a simple and easy to understand way that is devoid of buzzwords and vendor spin.  It&amp;#8217;s the introduction to &lt;span class="caps"&gt;SOA&lt;/span&gt; that you haven&amp;#8217;t been able to find anywhere else.&lt;/p&gt;


	&lt;p&gt;There are things in a business that don&amp;#8217;t change very often.  Gas stations in the U.S., for example, still sell gasoline by the gallon.  Restaurants still sell meals from a menu.  Dentists still sell cleanings every 6 months.   Every business has these aspects that don&amp;#8217;t change very frequently. They often represent a huge part of the business.  We&amp;#8217;ll call these things the _core business functions.&lt;/p&gt;


	&lt;p&gt;There are other things in a business that change very frequently.  Prices, tax rates, catalogs, new products, new marketing campaigns, advertising, new business areas, new customer areas, etc.  Indeed, businesses must be able to change, and change quickly, in order to survive.  And yet, it is vital that those changes do not adversely affect the core business functions.&lt;/p&gt;


	&lt;p&gt;Software developers have known for years that software that changes frequently should be decoupled from software that changes infrequently.  When applied to individual programs and systems this principle is sometimes called &lt;a href="http://www.objectmentor.com/omSolutions/oops_what.html"&gt;&lt;em&gt;The Common Closure Principle&lt;/em&gt;&lt;/a&gt;.  When it is applied to the information management of an enterprise, it is called &lt;span class="caps"&gt;SOA&lt;/span&gt;.&lt;/p&gt;


	&lt;p&gt;&lt;span class="caps"&gt;SOA&lt;/span&gt; is the practice of sequestering the &lt;em&gt;core business functions&lt;/em&gt; into independent services that don&amp;#8217;t change frequently.  These services are glorified functions that are called by one or more presentation programs.  The presentation programs are volatile bits of software that present data to, and accept data from, various users.&lt;/p&gt;


	&lt;p&gt;To make this clear, imagine an internet store-front.  Customers use a browser to talk to the presentation software that displays the store&amp;#8217;s website.  The presentation software interprets the gestures of the customer and invokes services that do things like acquiring the data for the current catalog, or registering the customer&amp;#8217;s order.  Note that the services have no idea they are talking to a website.  They could just as well be talking to a thick client, or a 3270 green screen.  They simply accept and return data in a standard format that the web system happens to be able to use.&lt;/p&gt;


	&lt;p&gt;That&amp;#8217;s really all there is to it.  The rest of &lt;span class="caps"&gt;SOA&lt;/span&gt; is just a matter of details. At the highest level, &lt;span class="caps"&gt;SOA&lt;/span&gt; is nothing more (and nothing less) than separating changeable elements from unchangeable elements. But why is this important?&lt;/p&gt;


	&lt;p&gt;Consider that internet store-front again.  It presents the user with a catalog, allows the user to move items into, and out of a shopping cart, and accepts the eventual order.  The presentation of these concepts is very volatile.  Marketing people are likely to want to change it frequently.  For example, they might want to change from a shopping cart metaphor to scrollable receipt on the sidebar.  They may wish to present more or less descriptive data in the product list.  They may want to experiment with different colors, font-faces, and layouts.  Indeed, it&amp;#8217;s feasible that they&amp;#8217;ll want to try applets, JStart clients, Ajax, and a myriad of other presentation options.  But none of this has anything to do with the core business functions encapsulated by the services.  Those services that acquire catalogs and register orders remain unchanged despite all the presentation thrashing.  That&amp;#8217;s why the separation is important.  It protects the information processing assets of the business from the constant jitter and spin of the presentation.&lt;/p&gt;


	&lt;p&gt;But presentation is not the only thing that jitters and spins.  So do the &lt;em&gt;business processes&lt;/em&gt;.  Again, consider our store-front.  Perhaps our business has decided to offer fine wines as one of the products it sells.  Selling alcohol requires that the age of the customer be verified.  Let us say that we have a service that provides this verification.  This service must be called for any order that contains alcohol products.  The decision to call this service is neither a presentation decision, nor a service decision.  Rather it is part of the business process for a particular kind of order. Business processes are volatile and they breed like rabbits.  As businesses evolve they add more and more steps and forks to their business processes.  The services being used by those processes don&amp;#8217;t change much; but the pathways through the processes do.  Therefore we want to separate the business process from the services and from the presentation.  Smalltalkers had a name for this separation when it appeared in a single program.  They called it Model-View-Controller.&lt;/p&gt;


	&lt;p&gt;Notice that we have yet to mention even one of the plethora of technologies that are so commonly associated with &lt;span class="caps"&gt;SOA&lt;/span&gt;.  That&amp;#8217;s because &lt;span class="caps"&gt;SOA&lt;/span&gt; is not about any particular technology.  Rather it is a design philosophy that decouples well heeled business functions from volatile processes and presentations.  It is the &lt;span class="caps"&gt;MVC&lt;/span&gt; of enterprise software.&lt;/p&gt;


	&lt;p&gt;In my next blog on this topic, we&amp;#8217;ll look at the next level of detail in an attempt to understand &lt;span class="caps"&gt;HOW&lt;/span&gt; services can be constructed, and how the decoupling of presentation, process, and functions can be achieved.&lt;/p&gt;</description>
      <pubDate>Wed, 11 Apr 2007 07:17:00 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:3c659451-8961-4329-85bd-7b109639ec1a</guid>
      <author>Uncle Bob</author>
      <link>http://blog.objectmentor.com/articles/2007/04/11/what-is-soa-really</link>
      <category>Uncle Bob's Blatherings</category>
      <category>Service Oriented Architecture</category>
    </item>
    <item>
      <title>"What is SOA, really?" by Dinesh Lingot</title>
      <description>&lt;p&gt;Really very usefull and informative article&lt;/p&gt;</description>
      <pubDate>Tue, 16 Sep 2008 13:13:59 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:70291b32-6e49-4cf4-9c87-23407eb6d784</guid>
      <link>http://blog.objectmentor.com/articles/2007/04/11/what-is-soa-really#comment-2058</link>
    </item>
    <item>
      <title>"What is SOA, really?" by Ravikumar k</title>
      <description>&lt;p&gt;simply superub&amp;#8230;... after many search i got what i want&amp;#8230;&lt;/p&gt;</description>
      <pubDate>Tue, 09 Sep 2008 11:17:22 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:ed4a68a0-0006-4dd8-a578-81d02f5b7094</guid>
      <link>http://blog.objectmentor.com/articles/2007/04/11/what-is-soa-really#comment-2048</link>
    </item>
    <item>
      <title>"What is SOA, really?" by brajesh</title>
      <description>&lt;p&gt;A great writing&amp;#8230; It took out the fear from this lingo.&lt;/p&gt;</description>
      <pubDate>Thu, 28 Aug 2008 20:31:19 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:0b5f70c2-5bad-40a2-85bf-e09e73e35dc8</guid>
      <link>http://blog.objectmentor.com/articles/2007/04/11/what-is-soa-really#comment-2009</link>
    </item>
    <item>
      <title>"What is SOA, really?" by Paul Moses Rajesh</title>
      <description>&lt;p&gt;I am new to this SOA Terminology, What a well done explanation, Thanks for everyone out here.&lt;/p&gt;</description>
      <pubDate>Mon, 11 Aug 2008 03:43:44 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:65179ba5-cd14-4530-a10b-46520115b39f</guid>
      <link>http://blog.objectmentor.com/articles/2007/04/11/what-is-soa-really#comment-1948</link>
    </item>
    <item>
      <title>"What is SOA, really?" by sathishkanan</title>
      <description>&lt;p&gt;NIce blog.. thanks&amp;#8230; keep posting..&lt;/p&gt;</description>
      <pubDate>Thu, 07 Aug 2008 06:48:53 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:a818a1d0-f9d1-4da7-9146-a5fa6c221c9f</guid>
      <link>http://blog.objectmentor.com/articles/2007/04/11/what-is-soa-really#comment-1940</link>
    </item>
    <item>
      <title>"What is SOA, really?" by Krishna</title>
      <description>&lt;p&gt;Good explanation.&lt;/p&gt;</description>
      <pubDate>Wed, 23 Jul 2008 02:29:36 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:530505e4-db8b-44b8-a114-eac53803f36a</guid>
      <link>http://blog.objectmentor.com/articles/2007/04/11/what-is-soa-really#comment-1909</link>
    </item>
    <item>
      <title>"What is SOA, really?" by Senthil</title>
      <description>&lt;p&gt;Thanks for the clear explanation given on SOA, which, even a layman can understand. I got a good start to dig more on this.&lt;/p&gt;</description>
      <pubDate>Tue, 15 Jul 2008 09:58:36 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:9f420df1-0230-41a9-9c15-d62377ef8a2f</guid>
      <link>http://blog.objectmentor.com/articles/2007/04/11/what-is-soa-really#comment-1894</link>
    </item>
    <item>
      <title>"What is SOA, really?" by BobJax</title>
      <description>&lt;p&gt;How it differs from Any MVC approcach?
Is it seperation of services which seperates for unchange service? pls try to clear&amp;#8230;.&lt;/p&gt;</description>
      <pubDate>Tue, 17 Jun 2008 09:09:28 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:51e9046e-216b-4e6a-a8e7-6fb4479ae12f</guid>
      <link>http://blog.objectmentor.com/articles/2007/04/11/what-is-soa-really#comment-1838</link>
    </item>
    <item>
      <title>"What is SOA, really?" by Alex</title>
      <description>&lt;p&gt;Thank you for nice presentation. Now I feel I understood about SOA.&lt;/p&gt;</description>
      <pubDate>Mon, 09 Jun 2008 08:44:35 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:1df81736-e79f-4413-9a07-a9f965134937</guid>
      <link>http://blog.objectmentor.com/articles/2007/04/11/what-is-soa-really#comment-1819</link>
    </item>
    <item>
      <title>"What is SOA, really?" by Jegan</title>
      <description>&lt;p&gt;Really nice presentation.&lt;/p&gt;</description>
      <pubDate>Thu, 15 May 2008 22:35:36 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:9976fe14-b3a3-42fa-bafc-23151921965d</guid>
      <link>http://blog.objectmentor.com/articles/2007/04/11/what-is-soa-really#comment-1769</link>
    </item>
    <item>
      <title>"What is SOA, really?" by Usha</title>
      <description>&lt;p&gt;Simply put and a very nice article.  As mentioned in one of the comments, it is more of MVC architecture instead of SOA. Will wait for the next series&amp;#8230;&lt;/p&gt;</description>
      <pubDate>Thu, 08 May 2008 19:05:17 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:12815b16-aa72-4597-83df-73e177cdcc1f</guid>
      <link>http://blog.objectmentor.com/articles/2007/04/11/what-is-soa-really#comment-1766</link>
    </item>
    <item>
      <title>"What is SOA, really?" by heeru.janweja@gmail.com</title>
      <description>&lt;p&gt;great write-up. the language used is simple and it did not get too technical like a lot of the other presentations. waiting for the next in line, hope it comes out soon.&lt;/p&gt;</description>
      <pubDate>Wed, 07 May 2008 17:24:51 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:732869ce-bdf8-4799-b82d-f6e8568770b8</guid>
      <link>http://blog.objectmentor.com/articles/2007/04/11/what-is-soa-really#comment-1759</link>
    </item>
    <item>
      <title>"What is SOA, really?" by eroch2@yahoo.com</title>
      <description>&lt;p&gt;I agree the term SOA is getting abused. Related post (mine).&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://blogs.ittoolbox.com/eai/business/archives/what-is-soa-23569" rel="nofollow"&gt;http://blogs.ittoolbox.com/eai/business/archives/what-is-soa-23569&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Thu, 10 Apr 2008 10:10:36 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:193db817-cc01-4523-9f39-ce36053dfd19</guid>
      <link>http://blog.objectmentor.com/articles/2007/04/11/what-is-soa-really#comment-1709</link>
    </item>
    <item>
      <title>"What is SOA, really?" by puja.khatri(puja24k2007@rediffmail.com)</title>
      <description>&lt;p&gt;Excellent Presentation waiting for the next series the way of presentation is very good as it is presented by taking live examples.&lt;/p&gt;</description>
      <pubDate>Wed, 09 Apr 2008 00:51:06 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:276ad328-af08-4f4e-a97a-0459769fe0ef</guid>
      <link>http://blog.objectmentor.com/articles/2007/04/11/what-is-soa-really#comment-1700</link>
    </item>
    <item>
      <title>"What is SOA, really?" by kavya</title>
      <description>&lt;p&gt;nice information&amp;#8230;...
      i have technical seminar on 25th of march ,,,,,can please provide the more information about soa &amp;#8230;
  i hope it may be useful&amp;#8230;.&lt;/p&gt;</description>
      <pubDate>Sat, 15 Mar 2008 22:10:21 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:b11aa167-f0a6-4b40-a63d-7c4acede4752</guid>
      <link>http://blog.objectmentor.com/articles/2007/04/11/what-is-soa-really#comment-1662</link>
    </item>
    <item>
      <title>"What is SOA, really?" by Vishi</title>
      <description>&lt;p&gt;Thanks for the explanation&amp;#8230;.......&lt;/p&gt;</description>
      <pubDate>Tue, 04 Mar 2008 15:57:58 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:7a661475-90de-43fd-8096-f8f8053d3cf7</guid>
      <link>http://blog.objectmentor.com/articles/2007/04/11/what-is-soa-really#comment-1629</link>
    </item>
    <item>
      <title>"What is SOA, really?" by sandip sani8156@gmail.com</title>
      <description>&lt;p&gt;good explanation..&lt;/p&gt;</description>
      <pubDate>Mon, 03 Mar 2008 05:15:14 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:d3baef05-f426-4694-9862-e17eaaf20319</guid>
      <link>http://blog.objectmentor.com/articles/2007/04/11/what-is-soa-really#comment-1624</link>
    </item>
    <item>
      <title>"What is SOA, really?" by vijay</title>
      <description>&lt;p&gt;Thanks a ton for this wonderful post. In fact i was not introduced to the meaning of SOA earlier. Now I feel worth to visit this post of your&amp;#8217;s for knowing SOA&amp;#8230;especially for the layman like me&amp;#8230;. Thanks a ton.
Vijay
&lt;a href="mailto:kaizen.vij@gmail.com" rel="nofollow"&gt;kaizen.vij@gmail.com&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Sun, 17 Feb 2008 13:04:22 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:5b506603-f328-4557-bea2-439787407f9e</guid>
      <link>http://blog.objectmentor.com/articles/2007/04/11/what-is-soa-really#comment-1594</link>
    </item>
    <item>
      <title>"What is SOA, really?" by Pctutor</title>
      <description>&lt;p&gt;Thanks for putting in the time to write a good article.&lt;/p&gt;</description>
      <pubDate>Fri, 15 Feb 2008 12:37:57 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:b81a7f96-761a-41c4-8c76-5199c2b3f88b</guid>
      <link>http://blog.objectmentor.com/articles/2007/04/11/what-is-soa-really#comment-1587</link>
    </item>
    <item>
      <title>"What is SOA, really?" by Ashok</title>
      <description>&lt;p&gt;Excellent!. Explained in short and concisely.&lt;/p&gt;


	&lt;p&gt;Thanks
Ashok Guduru&lt;/p&gt;</description>
      <pubDate>Wed, 13 Feb 2008 10:28:44 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:dc0a46dd-344d-4525-8b86-6d5db0c2382b</guid>
      <link>http://blog.objectmentor.com/articles/2007/04/11/what-is-soa-really#comment-1580</link>
    </item>
    <item>
      <title>"What is SOA, really?" by Rick</title>
      <description>&lt;p&gt;Thanks for the article, it does help to have this explained without a vendor rant.  What this says to me is that SOA is really nothing more than a marketing buzz in terms of what good IT architects have been trying to accomplish for years.  I think SOA is now a way to help Exec. Mgmt to understand what good IT folks have been doing for years.  Never the less, SOA/MVC is critical for developing large scale transaction-based systems.&lt;/p&gt;


	&lt;p&gt;The Wiki def. for MVC sums it up in a less marketable fashion.&lt;/p&gt;


	&lt;p&gt;Model-view-controller (MVC) is an architectural pattern, which at the same time is also a Multitier architecture, used in software engineering. In complex computer applications that present a large amount of data to the user, a developer often wishes to separate data (model) and user interface (view) concerns, so that changes to the user interface will not affect data handling, and that the data can be reorganized without changing the user interface. The model-view-controller solves this problem by decoupling data access and business logic from data presentation and user interaction, by introducing an intermediate component: the controller.&lt;/p&gt;</description>
      <pubDate>Fri, 18 Jan 2008 10:22:09 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:64490b2d-9c40-4849-a85a-d9d3fa8acb89</guid>
      <link>http://blog.objectmentor.com/articles/2007/04/11/what-is-soa-really#comment-1470</link>
    </item>
    <item>
      <title>"What is SOA, really?" by Biswa Ranjan Mishra</title>
      <description>&lt;p&gt;Really, Its a great article on SOA .&lt;/p&gt;</description>
      <pubDate>Thu, 17 Jan 2008 05:39:23 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:3e73927a-ce97-4ddb-aec6-d049692a8da6</guid>
      <link>http://blog.objectmentor.com/articles/2007/04/11/what-is-soa-really#comment-1466</link>
    </item>
    <item>
      <title>"What is SOA, really?" by Harminder Tunwar</title>
      <description>&lt;p&gt;It was pretty helpful.&lt;/p&gt;</description>
      <pubDate>Wed, 16 Jan 2008 13:54:37 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:7369ba01-5fa7-402e-940d-a477c8ef1534</guid>
      <link>http://blog.objectmentor.com/articles/2007/04/11/what-is-soa-really#comment-1463</link>
    </item>
    <item>
      <title>"What is SOA, really?" by marianhackett.com</title>
      <description>&lt;p&gt;Thanks for the wonderful post&amp;#8230; I might actually pass my exam later this week thanks to you explaining it in a way that I can finally understand! THANK YOU! :D&lt;/p&gt;</description>
      <pubDate>Sat, 17 Nov 2007 17:22:19 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:57acfcdc-4220-4c86-9075-a3520e517cee</guid>
      <link>http://blog.objectmentor.com/articles/2007/04/11/what-is-soa-really#comment-1022</link>
    </item>
    <item>
      <title>"What is SOA, really?" by Pankaj Thareja</title>
      <description>&lt;p&gt;Nice treatment to SOA. Good Example with eloboration.
I wonder if you could write something on SOA oriented products.
Regars&lt;/p&gt;</description>
      <pubDate>Sun, 11 Nov 2007 18:35:57 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:c5d7484d-9d8f-4d36-a7b5-c2b5eb106a8d</guid>
      <link>http://blog.objectmentor.com/articles/2007/04/11/what-is-soa-really#comment-959</link>
    </item>
  </channel>
</rss>
