<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>The Software Gorilla &#187; Enterprise Application Integration</title>
	<atom:link href="http://www.thesoftwaregorilla.com/tag/enterprise-application-integration/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.thesoftwaregorilla.com</link>
	<description>The Software Gorilla</description>
	<lastBuildDate>Thu, 08 Jul 2010 07:23:24 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Data Architecture &#8211; Getting Back to Basics</title>
		<link>http://www.thesoftwaregorilla.com/2010/05/data-architecture-getting-back-to-basics/</link>
		<comments>http://www.thesoftwaregorilla.com/2010/05/data-architecture-getting-back-to-basics/#comments</comments>
		<pubDate>Thu, 06 May 2010 02:50:38 +0000</pubDate>
		<dc:creator>Bruce Gruenbaum</dc:creator>
				<category><![CDATA[Business Architecture]]></category>
		<category><![CDATA[Commentary]]></category>
		<category><![CDATA[Data Architecture]]></category>
		<category><![CDATA[Enterprise Architecture]]></category>
		<category><![CDATA[Information Architecture]]></category>
		<category><![CDATA[Canonical Model]]></category>
		<category><![CDATA[Database Design]]></category>
		<category><![CDATA[Enterprise Application Integration]]></category>
		<category><![CDATA[Enterprise Data Model]]></category>

		<guid isPermaLink="false">http://www.thesoftwaregorilla.com/?p=297</guid>
		<description><![CDATA[In a recent study by Forrester Research, they found that 74% of over 400 companies surveyed view data strategy as critical or very important, but only 17% of them had a mature data strategy in place.

When you consider that most enterprises are outsourcing a substantial part of their core business systems, it is frightening that they do not have a strategy in place. The result is that each of their vendors defines their own view of the data and the enterprise loses control of what happens with their application infrastructure.

In this article we will briefly look at what Data Strategy is, and then focus on how data architectural integrity can be maintained in the Enterprise Architecture process.]]></description>
			<content:encoded><![CDATA[<p>In the book, <a href="http://www.amazon.com/Data-Strategy-Sid-Adelman/dp/0321240995/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1272936266&amp;sr=1-1" target="_blank"><em>Data Strategy</em></a>, by Sid Adelman, Larissa Moss, and Majid Abai, the authors make the following statement:</p>
<blockquote>
<p>Working without a data strategy is analogous to a company allowing each department and each person within each department to develop its own financial chart of accounts. This empowerment allows each person in the organization to choose his own numbering scheme. [...] Even to those of us who don&#39;t wear green eyed shades, the resulting chaos is obvious and easy to predict &#8211; (pg. 3, para 2).</p>
</blockquote>
<p>What astounds me is how a risk that seems so blatantly obvious is completely missed by the majority of enterprises. In a recent study by Forrester Research, they found that 74% of over 400 companies surveyed view data strategy as critical or very important, but only 17% of them had a mature data strategy in place &#8211; (<a href="http://www.forrester.com/rb/Research/topic_overview_information_architecture/q/id/55951/t/2" target="_blank"><em>Topic Overview: Information Architecture</em></a>&nbsp;by Gene Leganza, January 21, 2010, Forrester Research).</p>
<p>When you consider that most enterprises are outsourcing a substantial part of their core business systems, it is frightening that they do not have a strategy in place. The result is that each of their vendors defines their own view of the data and the enterprise loses control of what happens with their application infrastructure.</p>
<p>Scott Busse, in an article entitled <a href="http://www.theinformationadvantage.com/information-strategy/describing-a-data-strategy-to-a-business-leader/" target="_blank"><em>Describing a Data Strategy to a Business Leader</em></a>, called this uncontrolled, evolutionary data strategy a &quot;waxy build-up&quot; that leads to &quot;higher costs, rigid processes, and a lack of insight into enterprise data&quot; &#8211; (para 4).&nbsp;</p>
<p>In this article we will briefly look at what Data Strategy is, and then focus on how data architectural integrity can be maintained in the Enterprise Architecture process.</p>
<h3>The Scope of this Article</h3>
<p>While the data architecture discipline owns the responsibility for the overall data strategy, I want to narrow data architecture for the purposes of this discussion. A formal, mature data strategy supports the enterprise by providing at least the following:</p>
<ul>
<li><strong>Enterprise Data Model</strong> &#8211; The EDM is a model that defines all enterprise-level entities at a logical level, their relationships to each other, the life-cycle of each entity, what systems and services act upon it, and where the entity is used in the enterprise. It also defines the attributes of each entity and forms the basis for a common language for the enterprise.</li>
<li><strong>Canonical Model</strong> &#8211; The Canonical Model is a physical data model that is used by all applications and services to interact with each other throughout the enterprise. We&#39;ll talk more about the canonical model later.</li>
<li><strong>Metadata Management</strong> &#8211; Metadata is data that describes the entities and attributes in the Enterprise Data Model. So, for example, an account number may consist of 10 digits, of which the first 9 are a sequence number and the last digit is a check-digit. All of that information is metadata about the account number. This is a simple example, and in a large enterprise data model, there is a lot of metadata associated with the model.</li>
<li><strong>Data Quality</strong> &#8211; The GIGO principle (Garbage-In, Garbage-Out) is absolutely true about data and when strategic business decisions are being made based on invalid data, the results can be catastrophic. Ensuring that data integrity is maintained is a key part of any data strategy, and it has to be enforced in the data architecture as much as it is in the processes that govern the data.</li>
<li><strong>Data Governance</strong> &#8211; Managing and maintaining data from an operational point of view, ensuring that it is backed up, determining how long it is maintained in various stores, ensuring that the data stores perform well, and developing a high-availability and disaster-recovery policy all falls under the banner of data governance.</li>
<li><strong>Security and Compliance</strong> &#8211; Security and Compliance need to be closely aligned with the Data Governance component of a data strategy, but these functions are responsible for ensuring that legal compliance with things like SOX and PCI are taken care of. Security is responsible for ensuring data availability to the authorized channels while securing it from unauthorized ones.&nbsp;</li>
</ul>
<p>This is far more than I plan to focus on in this article. I want to talk about how you go about deriving the Enterprise Data Model components and the Canonical Model from the business process models that were created for the <a href="http://www.thesoftwaregorilla.com/2010/04/exchange-web-services-starting-out/">Exchange Integration Project that I blogged about a week or two ago</a>.</p>
<h3>The Business Process</h3>
<p><a href="http://www.thesoftwaregorilla.com/wp-content/uploads/2010/05/Sales-Initiated-Call.jpg" target="_blank"><img align="left" alt="Sales Call Business Process Model (BPMN notation)" height="181" src="http://www.thesoftwaregorilla.com/wp-content/uploads/2010/05/Sales-Initiated-Call.jpg" width="400" /></a></p>
<p>The process at left deals with what happens when a sales person initiates a call with a prospect. The sales person initiates the call.</p>
<p>If the call does not succeed (i.e. the call fails, or the prospect is not available to take the call), the sales person documents the fact that the call was attempted in the system.</p>
<p>If the call goes through (i.e. the prospect is available for a conversation), a discussion is had and the sales person documents the conversation. Once the call is complete, the sales person documents the details of the call and determines the next steps to be taken, including any follow-up calls.</p>
<p>There is no question about the fact that I am way over-simplifying the business process in this discussion, but in order to keep this post as concise as possible, I need to do that.&nbsp;You can assume that some of the items that are noted as activities really need to be spelled out in more detail, and the business processes that are documented in the System swim-lane need a lot more information, but please cut me that slack&#8230; I need to keep this explanation short.</p>
<h3>The Business Entities</h3>
<p>One of the first things we can do with this model is define some of the business entities in this enterprise. In this process we have two entities who are really actors in the process:</p>
<ul>
<li>Prospect &#8211; The person who may be interested in goods and services from the enterprise; and</li>
<li>Sales Person &#8211; The person responsible for pitching the sales of the goods and services to the prospect.</li>
</ul>
<p>There are also several pieces of information that we care about that are flowing between these entities:</p>
<ul>
<li>Call &#8211; The fact that a call took place is important. We need to know the date and time of the call and how the call progressed;</li>
<li>Discussion &#8211; The discussion that took place between the sales person and the prospect probably contains some very important information that would be useful to the enterprise if it were recorded; and</li>
<li>Next Steps &#8211; The action that is to be taken as a result of the call could range from a follow-up call to the generation of a quote, or even an order.</li>
</ul>
<p>So let&#39;s take these entities and model them to get an idea of what they look like.</p>
<p><a href="http://www.thesoftwaregorilla.com/wp-content/uploads/2010/05/Business-Entity-Model.jpg" target="_blank"><img align="left" alt="Business Entity Model" height="263" src="http://www.thesoftwaregorilla.com/wp-content/uploads/2010/05/Business-Entity-Model.jpg" width="300" /></a>&nbsp;All of the entities that I references above are now part of this business entity model. We obviously have the prospect and sales person. We also have a call and a call next step. You&#39;ll note that the discussion got absorbed into the call as an element.</p>
<p>Now clearly, there is a lot more work that can be done to dig into each of these entities and refine them. Through an iterative cycle with the business, it is not hard to understand that a sales person is generally responsible for a prospect.</p>
<p>Moreover, a sales person is technically either an employee or contractor. That means that their information is available from other sources and in this context, they are simply performing a role in the business.</p>
<p>By the same token, a prospect may very well be an existing customer, in which case you want make sure that the information that you have for this prospect is stored for the customer. When the customer is a large organization, the prospect may, in fact, be a new department in the organization to which you have not sold before.</p>
<p>If a lead management system is present, the prospect may be an existing lead. So what is the difference between a prospect and a lead? Well a lead is a tip that you get about someone who may be interested in the product. A prospect is a lead for which the prospect-to-customer conversion process has already begun.&nbsp;</p>
<p>A call is simply a way of interacting with a prospect. Other ways are by means of meetings, e-mails, letters, and other communication devices. Thus, the call is really an interaction.</p>
<p>Lastly, the call next step may be related to an appointment in the sales person&#39;s calendar, an order, or a quote.</p>
<p>So as you dig into each of these entities in more detail, it becomes clear that the model is significantly more complex and detailed than the business entity model we started defining above.</p>
<p>The point that is worth bearing in mind, though, is that these business entities were fairly easy to derive from the business process model that we discussed above. Although this process becomes more complex as the business processes are more complex, the same basic rules apply:</p>
<ol>
<li>Each swim-lane is a major business entity;</li>
<li>Each line that crosses a swim-lane is a significant item of business data that needs to be tracked; and</li>
<li>By iteratively digging in to each of the business entities, it is fairly easy to identify numerous other affected entities.</li>
</ol>
<h3>Entity-Event Matrix</h3>
<p>Once the business entities have been defined, it is important to understand the impact that each business process has on a business entity. To do this, I like to use a tool known as an Entity-Event Matrix. It is effectively a table with the list of entities across the top and the list of processes down the side. Each cell contains the actions that may be performed by that process on the entity. In the following table I have restricted my actions to create, read, update or delete, but in reality this becomes set of actions that specify the details of the changes made.</p>
<table border="1" cellpadding="1" cellspacing="1" style="width: 100%; ">
<caption><strong><span style="font-size:14px;">Entity-Event Matrix</span></strong></caption>
<thead>
<tr>
<th scope="col">Process</th>
<th scope="col">Prospect</th>
<th scope="col">Sales Person</th>
<th scope="col">Call</th>
<th scope="col">Call Next Step</th>
</tr>
</thead>
<tbody>
<tr>
<td>Receive Sales Call</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>Initiate Sales Call</td>
<td>Create, Read</td>
<td>Read</td>
<td>Create</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>Discuss Prospective Sale</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>Record Discussion Information</td>
<td>Read, Update</td>
<td>&nbsp;</td>
<td>Update</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>Document Call Attempt</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>Update</td>
<td>Create</td>
</tr>
<tr>
<td>Process Call Attempt</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>Update</td>
<td>Update</td>
</tr>
<tr>
<td>Terminate Call</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>Await Call Termination</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>Document Next Actions</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>Update</td>
<td>Create, Update</td>
</tr>
<tr>
<td>Process Next Actions</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>Update</td>
<td>Update</td>
</tr>
</tbody>
</table>
<p>This matrix evolves as the model that it is associated with grows. Once the matrix has been completed for all business processes and aggregated together, any entity can be extracted from the matrix and a life-cycle for the entity can be produced.</p>
<p>At this point we have only discussed things from a business point of view. In a mature organization, the above deliverables are a function of the Business Architecture&nbsp;discipline&nbsp;(and I&#39;m lumping Business Architecture and Business Analysis together).</p>
<p>The next step is to take these business entities and compare them against the Enterprise Data Model to determine whether there are any gaps.</p>
<h3>The Enterprise Data Model</h3>
<p>The terms &quot;Enterprise Data Model,&quot; &quot;Enterprise Conceptual Data Model,&quot; &quot;Enterprise Logical Data Model,&quot; and &quot;Canonical Model&quot; are often bandied about in the industry somewhat interchangeably. So to make sure we are on the same page, I am going to define the Enterprise Data Model as follows:</p>
<blockquote>
<p>An Enterprise Data Model is a logical model of the entities that exist across an enterprise, including their relationships, attributes and methods, as well as usage and value, and it is designed as a communication tool between all business, IT and external stakeholders.</p>
</blockquote>
<p>There are several key things to bear in mind about the enterprise data model:</p>
<ol>
<li>It is Enterprise-wide. That means that is the definitive guide to all entities that make the business work;</li>
<li>It is a <em>logical</em> model. That means that it does not have a physical manifestation, but it is used as the basis for defining the canonical model, which I will discuss a little later;</li>
<li>It is a communication device. That means that it is intended to help the business communicate with the business architects and all the other layers in IT. It effectively provides the common language that allows business units to properly communicate between themselves. It also serves as a reference point for external communication with partners, vendors, and outsourcing partners.</li>
<li>It is more than just an ER model. Beyond the entities and attributes that make it up, it also provides an impact analysis tool that allows the business to determine what systems are affecting different entities, where attributes are being realized, and what value data elements have to the business.</li>
</ol>
<p>These are just four of the things that the Enterprise Data Model is; there are several others, but they are not germane to this discussion.</p>
<p><a href="http://www.thesoftwaregorilla.com/wp-content/uploads/2010/05/Enterprise-Data-Model.jpg" target="_blank"><img align="left" alt="Enterprose Data Model (excluding attributes)" height="300" src="http://www.thesoftwaregorilla.com/wp-content/uploads/2010/05/Enterprise-Data-Model.jpg" width="300" /></a>Once the business architects have done their due diligence, data architecture is engaged to validate the business entity model against the existing enterprise data model.</p>
<p>The model shown at left deliberately excludes attributes to simplify the diagram, but in this model, the data architect has taken the business entity model, mapped the entities and attributes to the enterprise entities and attributes, and identified any gaps in the enterprise data model. For these purposes, the calendar item entity is the only one that was missing.</p>
<p>In a mature organization, the enterprise data model is subject to a rigorous release cycle, much the same way as application software is.</p>
<p>Of course, the enterprise data model is not only affected by changes that are introduced by new business requirements. Often times, during the process of building components of the enterprise solution, additional entities and attributes are identified that should be included in the enterprise data model. Generally, this will trigger an architectural review of the enhancement as it is likely that other, more serious gaps exist. Nonetheless, it is very possible that additional entities and attributes can be introduced from sources outside business architecture.&nbsp;</p>
<p>Once the enterprise data model changes are approved, focus shifts to the canonical model.&nbsp;</p>
<h3>The Canonical Model</h3>
<p>Perhaps the most misunderstood, maligned concept in service-oriented architectures is the idea of a canonical model. Gregor Hohpe and Bobby Woolf spoke of the concept has a design pattern for enterprise integration in their book <a href="http://www.amazon.com/Enterprise-Integration-Patterns-Designing-Deploying/dp/0321200683/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1273099603&amp;sr=8-1" target="_blank"><em>Enterprise Integration Patterns</em></a>. While they were probably the first to document the pattern, there is nothing new about the idea. Many people have been using it for a very long time.</p>
<p>For example, about 12 years ago I was working on an EDI integration with a number of external parties. Each of the parties had a different standard and each of them needed data from one or more of the other parties. The simplest way to achieve that integration was to transform the data format from one party to a common format and then transform it to another format for the receiving party. This had nothing to do with SOA.</p>
<p><a href="http://www.thesoftwaregorilla.com/wp-content/uploads/2010/05/Canonical.jpg" target="_blank"><img align="left" alt="Canonical Model" height="172" src="http://www.thesoftwaregorilla.com/wp-content/uploads/2010/05/Canonical.jpg" width="300" /></a>Actually, back as far as 1991, I was on a project that involved a conversion from several systems into a new system. Each of the old systems had data that contributed to the new system and all of the contributed data needed to be written in a single transaction to ensure referential integrity. The conclusion was to create a common model that could be addressed by all of the interested systems, and then transform data into that common model before moving it to the new system.</p>
<p>A canonical model is therefore a layer above all applications to which each application is able to transform their data to integrate with other systems.</p>
<p>In the context of our example, the canonical model is responsible for providing the transformation layer between the CRM application, the LDAP Server and the Microsoft Exchange Server. To create a calendar item in Microsoft Exchange Server, we need to draw data from the CRM application and the LDAP Server and then send it across to Microsoft Exchange in the correct format.</p>
<p>The CRM application has the Call Next Step data in a certain format. The LDAP server has directory information about the organizer and the attendees for the calendar item that needs to be created in Microsoft Exchange Server.</p>
<p>By creating a Calendar Item in the canonical model that conforms to a certain standard format, we can extract data from CRM and LDAP, transform it and store it in a canonical Calendar Item, ship the calendar item to the Microsoft Exchange Server, and transform it into the Exchange Web Service Item form that does not mean anything to anyone other than Exchange. Other systems that wish to make use of the Calendar Item can also perform their own transformations to their native formats.</p>
<p>More than just data, the canonical model also contains the methods that operate on canonical model objects. Moreover, the canonical model is often implemented as a relational model, an object-relational model, and an XML model.&nbsp;</p>
<h3>Persistence Models</h3>
<p>Up until now, we have not dealt with persistence models at all &#8211; that is, models that are created to persist the data to a physical data store. As the canonical model effectively defines the entities and attributes for the enterprise, it can often be easily adapted for use as the physical database schema for an application. Clearly, the database architecture specialist for the type of database being used should be involved in defining and implementing the persistence store for his platform.</p>
<h3>Benefits</h3>
<p>Hopefully, by now, the value of a data architecture is becoming clear. Among other things, it provides:</p>
<ul>
<li>A mechanism for communication with all stakeholders in the business;</li>
<li>A tool for impact analysis to determine the outcome of changes made;</li>
<li>A strong mechanism for integration between heterogeneous systems;</li>
<li>A mechanism for integration with external (partner/vendor) systems; and</li>
<li>Governance over the way that data is stored and manipulated.</li>
</ul>
<p>Once the data entities in an enterprise have been defined, the enterprise is much more able to adapt to changes in the business.</p>
<h3>Where do you start?</h3>
<p>Most data architecture initiatives fail very quickly because the sponsors fail to realize the following:</p>
<ul>
<li>A data architecture is a living model. It evolves as the business grows;</li>
<li>Shutting 20 people away in a room for two years to develop a data architecture simply won&#39;t cut it. You cannot boil the ocean;</li>
<li>The job is never done. The data architecture will continue growing permanently so any effort needs to be seen as a long-term program;</li>
<li>Quantifying the benefit of data architecture is hard. It&#39;s easier to justify when you can look back and say &quot;Here&#8230; we failed here and it cost us 20 million because we didn&#39;t have data architecture in place.&quot;&nbsp;</li>
</ul>
<p>Ideally you need to start with executive sponsorship from CxO-level people. That doesn&#39;t always happen, but often it is possible to start by using the approach I have highlighted here. Derive your business entities for a project, build these into an enterprise data model that can grow over time, implement a canonical model that will also grow as the business evolves, and be fastidious about making sure that you know what all the processes are that operate on the data.&nbsp;</p>
<p>At the beginning of this article I talked about Data Strategy as opposed to data architecture. Ideally you want to attack the architecture as part of an overall strategy that addresses the issues that I raised above. The key thing that data architecture can help with, is better quality data and that is the lifeblood of modern business. If the data is correct, it is easy to extract virtually any intelligence that can be used to support business decisions, and that is the focus of information architecture.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.thesoftwaregorilla.com/2010/05/data-architecture-getting-back-to-basics/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>No, Ms Manes, SOA is NOT dead</title>
		<link>http://www.thesoftwaregorilla.com/2009/08/no-ms-manes-soa-is-not-dead/</link>
		<comments>http://www.thesoftwaregorilla.com/2009/08/no-ms-manes-soa-is-not-dead/#comments</comments>
		<pubDate>Thu, 13 Aug 2009 05:51:58 +0000</pubDate>
		<dc:creator>Bruce Gruenbaum</dc:creator>
				<category><![CDATA[Commentary]]></category>
		<category><![CDATA[SOA]]></category>
		<category><![CDATA[EAI]]></category>
		<category><![CDATA[Enterprise Application Integration]]></category>
		<category><![CDATA[Enterprise Architecture]]></category>

		<guid isPermaLink="false">http://www.thesoftwaregorilla.com/?p=232</guid>
		<description><![CDATA[This morning my RSS feeds had an update from Ms Manes' blog again. She points to an article by Dan Woods of Forbes.com and says of his article that she is "pleased to see that Dan read beyond the first paragraph, and he understands the core message of my post (i.e., 'SOA has been disappointing and that services should be a key focus')" ...
I wonder if Ms Manes realizes that she advocated exactly the same thing that Mr Woods advocated and then went on to slam the idea? In her original post she argued that the focus should shift from SOA to building services, and yet here she is arguing that just building services will result in fragile, expensive systems. Ms Manes is just flat-out contradicting herself.]]></description>
			<content:encoded><![CDATA[<p>In <a target="_blank" href="http://www.thesoftwaregorilla.com/2009/08/soa-dead-really/ ">an earlier post</a> I wrote a response to a post&nbsp;by&nbsp;Anne Thomas&nbsp;Manes that <a target="_blank" href="http://apsblog.burtongroup.com/2009/01/soa-is-dead-long-live-services.html">SOA is dead</a>. The crux of my post was that although the name SOA has been battered by snake oil salesmen who have been more interested in making money out of the enabling technologies that they provide&nbsp;than focusing on (in Ms Manes&#8217; words) the &quot;spectacular commitment to change&quot;&nbsp;required to&nbsp;make a success of it,&nbsp;SOA&nbsp;is more important&nbsp;than ever and therefore definitely not dead.</p>
<p>In a <a target="_blank" href="http://apsblog.burtongroup.com/2009/01/soa-postmortem.html">follow-up post</a>, Ms Manes pointed out that &nbsp;&quot;SOA is a bad word. And yes, doing SOA is a good thing. (And we need to keep doing it!) But no, we do not need to come up with a new name. Emphatically not.&quot;</p>
<p>This morning my RSS feeds had an <a target="_blank" href="http://apsblog.burtongroup.com/2009/08/soa-is-about-architecture.html">update from Ms Manes&#8217; blog again</a>. She points to an article by Dan Woods of Forbes.com and says of his article that she is &quot;pleased to see that Dan read beyond the first paragraph, and he understands the core message of my post (i.e., &#8216;SOA has been disappointing and that services should be a key focus&#8217;)&quot; and then goes on later in her post to say:</p>
<p>&quot;Dan recommends an incremental approach to SOA: Just build services as you need them on a project-by-project basis, and at some point in the future you can go back and consolidate the services you&#8217;ve built and somehow derive some architectural consistency. Unfortunately, this strategy invariably leads to Just a Bunch of Web Services (JABOWS) because the future consolidation step almost never happens. The result is too many services, too many moving parts, and too many brittle connections. Systems wind up being more expensive and more fragile than ever before.&quot;</p>
<p>I wonder if Ms Manes realizes that she advocated exactly the same thing that Mr Woods advocated and then went on to slam the idea? In her original post she argued that the focus should shift from SOA to building services, and yet here she is arguing that just building services will result in fragile, expensive systems. Ms Manes is just flat-out contradicting herself.</p>
<p>Without the overall service-oriented architecture you will not get a cohesive system. So recommending building services without an overall service-oriented architecture is a bad idea&#8230; as Ms Manes suggests.</p>
<p>At the same time, Ms Manes does not like the term &quot;SOA&quot; because of the negative connotation it has garnered thanks to a lack of understanding that business need to make a significant commitment to change and there are unscrupulous individuals trying to profit from a technology buzzword.&nbsp;For those reasons, Ms Manes believes SOA&nbsp;is dead.&nbsp;Ms Manes, however, does not believe we should get rid of the word &quot;SOA&quot;.</p>
<p>In her latest post Ms Manes makes the statement&nbsp;that &quot;One of the reasons SOA &#8216;died&#8217;&#8230;&quot; Just stop right there!!!</p>
<p>Whether you like the term SOA or not, service-oriented architecture is a critical part of Enterprise 2.0 and requires a significant investment in both the architecture and development of services. Service-orientation has to drive the way that development teams build applications today and into the future.I hate to tell you this, Ms Manes, but SOA&nbsp;is <strong>not</strong> dead. There are numerous organizations who are still working extremely hard on a&nbsp;service-oriented architecture and many more are seeing the importance of&nbsp;it more and more with things like mashups and social networking becoming&nbsp;tightly integrated into the business.</p>
<p>I don&#8217;t disagree that SOA requires governance, management, leadership, skills, practices and a commitment to change. But remember that change is hard and takes time. In fact, it takes more time as the organization gets larger. A weak economy has caused businesses to refocus priorities and in many cases this has meant cutting projects that are not directly contributing to the bottom line. Companies are not willing to shell out several hundred thousand on projects for which the ROI may only be seen in 5 to 10 years. For some companies, that is the amount of change that SOA requires and simply buying an&nbsp;ESB is not going to resolve the issues.</p>
<p>A service-oriented architecture does not come from the presence of an ESB. It is&nbsp;definitely not characterized&nbsp;by the availability of&nbsp;a bunch of services in an organization. SOA is a paradigm shift like event-driven programming was a paradigm shift and object-orientation was a paradigm shift. All of them came with their share of snake oil salesmen too and nowadays those paradigms are standard in business.</p>
<p>SOA is alive and well&#8230; and growing.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.thesoftwaregorilla.com/2009/08/no-ms-manes-soa-is-not-dead/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SOA&#8230; Dead???&#8230; Really???&#8230;</title>
		<link>http://www.thesoftwaregorilla.com/2009/08/soa-dead-really/</link>
		<comments>http://www.thesoftwaregorilla.com/2009/08/soa-dead-really/#comments</comments>
		<pubDate>Sat, 01 Aug 2009 23:29:01 +0000</pubDate>
		<dc:creator>Bruce Gruenbaum</dc:creator>
				<category><![CDATA[Commentary]]></category>
		<category><![CDATA[SOA]]></category>
		<category><![CDATA[EAI]]></category>
		<category><![CDATA[Enterprise Application Integration]]></category>
		<category><![CDATA[Enterprise Architecture]]></category>

		<guid isPermaLink="false">http://www.thesoftwaregorilla.com/?p=100</guid>
		<description><![CDATA["SOA is Dead; Long Live Services," proclaimed Amy Thomas Manes on January 5th, 2009.

When I read Ms Manes' post, I felt like the person standing on the sidewalk in a movie. The camera is focused on me and someone (SOA) steps out into the street. From the side of the screen, off-camera, a bus comes careening past and the person that stepped into the street is hit and taken completely out of camera and I'm left standing with my jaw on my knees.

]]></description>
			<content:encoded><![CDATA[<p>&quot;<a href="http://apsblog.burtongroup.com/2009/01/soa-is-dead-long-live-services.html" target="_blank">SOA is Dead; Long Live Services</a>,&quot; proclaimed Anne Thomas Manes on January 5th, 2009.</p>
<p>Now you may be sitting there reading this thinking &quot;OK&#8230; that was back in January. Why are you still writing about it now?&quot;</p>
<p>Well since then the blogosphere has been on fire with people chiming into this debate asserting that &quot;SOA is too complicated&quot; or &quot;ESBs have failed&quot; or &quot;businesses cannot afford SOA&quot; or some other statement along those lines, implying (sometimes directly stating)&nbsp;that SOA was a bad idea and that it deserves to die.</p>
<p>Even people like Brent Foody at Progress Software agreed with Ms Manes when he wrote about this in <a href="http://blogs.progress.com/soa_infrastructure/2009/01/goodbye-soa-we-hardly-knew-you.html" target="_blank">his post</a>.&nbsp;As Progress is normally pretty good at&nbsp;ensuring that&nbsp;its own corporate blogs meet the business goals of the company and given they own Sonic Software, vendor of the Sonic ESB, it is surprising that they allowed a posting prematurely acknowledging the demise of an architecture that they promote. Add to that the fact that Mr Foody&#39;s comments&nbsp;contradict David Chappell&#39;s <a href="http://blogs.oracle.com/davidchappell/2009/01/soa_is_alive_and_well_no_matte_1.html" target="_blank">own thoughts on the matter</a> and you can see why I am surprised. Remember,&nbsp;David was pretty much the architect of SonicMQ and the brains behind SonicESB.</p>
<p>But even those were&nbsp;posted way back in January. As late as last week, though (July 23rd), there was still fall-out from this post. ZapThink hosted a ZapForum entitled &quot;<a href="http://www.zapthink.com/news.html?id=2803" target="_blank">Night of the Living SOA Dead</a>&quot; where people would get the chance to argue the whole thing out. So this&nbsp;story has had legs for&nbsp;nearly 7&nbsp;months.&nbsp;&nbsp;</p>
<p>When I read Ms Manes&#39; post, I felt like the person standing on the sidewalk in a movie. The camera is focused on me and someone (SOA) steps out into the street. From the side of the screen, off-camera, a bus comes careening past and the person that stepped into the street is hit and taken completely out of camera and I&#39;m left standing with my jaw on my knees.</p>
<p>Of course, if you carefully read Ms Manes&#39; post, you have to agree with at least some of what she is saying:</p>
<ul>
<li>The economy cannot support SOA projects that do not provide good ROI in a fairly short period of time;</li>
<li>There is nothing to be gained by SOA for the sake of SOA;</li>
<li>SOA is not the hammer for every nail;</li>
<li>SOA is best viewed as part of an application modernization strategy for breaking up the monolith; and</li>
<li>SOA is not the silver bullet that will fix everything your organization.</li>
</ul>
<p>Ms Manes&#39; argument that the state of the economy would lead to the demise of SOA leaves me more than a little perplexed. Sure. Companies will cancel SOA projects that do not have significant ROI in the short or medium term in order to focus financial resources where they are most needed, but that does not spell the demise of SOA. Rather, it does what needed to be done in the first place &#8211; focuses business priorities on the highest ROI first.</p>
<p>Many vendors have bandied the SOA acronym around as the mechanism for selling their wares -&nbsp;from ESBs to high-cost consulting gigs; from application servers to&nbsp;expensive monitoring tools, all in the name of a service-oriented architecture. There is no doubt that a number of companies have excellent products that are intended to assist in building out your service-oriented solution, but just because you have an ESB does not mean that you have a service-oriented architecture. Neither is it true that because you have deployed several WebServices you now have a service-oriented architecture.</p>
<p>Ms Manes&#39; arguments are actually not new. In fact, many of&nbsp;her comments very much echo the sentiments of Thomas Erl, author of &quot;<a href="http://www.amazon.com/Service-Oriented-Architecture-SOA-Technology-Computing/dp/0131858580/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1249165120&amp;sr=8-1" target="_blank">Service-Oriented Architecture &#8211; Concepts, Technology and Design</a>&quot;.</p>
<p>Back in July 2005, Mr Erl contended that &quot;the rise of the false SOA [one characterized by the idea that a set of deployed WebServices represents a service-oriented architecture] has distorted the vision of the ideal SOA. Not only is the false SOA divergent from the &#39;true path of service-orientation,&#39; it reinforces SOA&nbsp;anti-patterns by extending and further entrenching the traditional distributed computing model to which SOA offers an alternative.&quot; Essentially, Mr Erl makes the point that unless your implementation of SOA follows a well architected strategy, you are doing nothing more than creating a more complex distributed computing system.</p>
<p>With the amount of money that has been thrown at SOA, business has a right to expect&nbsp;that the problem that SOA was intended to resolve&nbsp;has been resolved. The issue is that there have been too many snake oil salesmen delivering products to a site and then leaving the organization to find its own way. Sometimes, the &#39;snake oil salesman&#39; actually sold a very good technology into the site with an offer of&nbsp;professional services&nbsp;to establish a competency center, but the customer failed to understand the importance of a supervised architectural change to the environment. As Mr Erl observes, &quot;A real SOA requires real change, real foresight, and real commitment. <em>Most of all, though, it requires guidance.</em>&quot; &#8211; (Italics my own).</p>
<p>This&nbsp;brings me to my&nbsp;disagreement with Ms Manes&#39; point of view. Ms Manes&nbsp;states &quot;Successful SOA (i.e., application re-architecture) requires disruption to the status quo. SOA is not simply a matter of deploying new technology and building service interfaces to existing applications; it requires redesign of the application portfolio. And it requires a massive shift in the way IT operates.&quot;&nbsp;She follows this up by saying &quot;The latest shiny new technology will not make things better. Incremental integration projects will not lead to significantly reduced costs and increased agility. If you want spectacular gains, then you need to make a spectacular commitment to change.&quot; In these statements Ms Manes&#39; is asserting that business somehow expects an overnight change&nbsp;and&nbsp;that a successful&nbsp;service-oriented architecture can only come from turfing your existing architecture and replacing it with&nbsp;a&nbsp;new SOA-based solution.&nbsp;Not only is that not true, but it is also hopelessly unrealistic.</p>
<p>Yes, SOA requires a different way of thinking and paradigm shifts are not going to come overnight. And yes, deploying a new technology and building service interfaces does not constitute a service-oriented architecture, but it is an extremely important transitional step in moving a commercial environment to a more service-oriented architecture.</p>
<p>Ms Manes ends her post by saying &quot;And that&rsquo;s where we need to concentrate from this point forward: Services.&quot; In so doing, Ms Manes is opening us up to the same &quot;false SOA&quot; that got us into this mess in the first place.</p>
<p>Ultimately, a thorough&nbsp;service-oriented architecture&nbsp;has proper governance and standards&nbsp;in place across all deployed services to ensure the abstraction of the underlying components. If that governance and standardization is not in place, services are simply distributed components.</p>
<p>So, no. SOA&nbsp;is not dead. A service-oriented architecture is something that businesses definitely need to aspire to achieve. It&#39;s probably safe to say, though, that the &#39;snake oil&#39; SOA days are over.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.thesoftwaregorilla.com/2009/08/soa-dead-really/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
