<?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; SOA</title>
	<atom:link href="http://www.thesoftwaregorilla.com/category/soa/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>What is Enterprise Architecture?</title>
		<link>http://www.thesoftwaregorilla.com/2010/05/what-is-enterprise-architecture/</link>
		<comments>http://www.thesoftwaregorilla.com/2010/05/what-is-enterprise-architecture/#comments</comments>
		<pubDate>Sat, 01 May 2010 23:00:24 +0000</pubDate>
		<dc:creator>Bruce Gruenbaum</dc:creator>
				<category><![CDATA[Application Architecture]]></category>
		<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[SOA]]></category>
		<category><![CDATA[Technical Architecture]]></category>
		<category><![CDATA[Software Architecture]]></category>
		<category><![CDATA[Solution Architecture]]></category>

		<guid isPermaLink="false">http://www.thesoftwaregorilla.com/?p=281</guid>
		<description><![CDATA[A question that I am often asked by colleagues and friends alike is "What is an Enterprise Architect, anyway?" This article is the first in a series of articles that will explain the term "Enterprise Architecture," why it is important, and how each of the disciplines that constitute Enterprise Architecture relate to each other. Most importantly, this article is going to talk about how Enterprise Architecture needs to govern the processes around software development.]]></description>
			<content:encoded><![CDATA[<p>A question that I am often asked by colleagues and friends alike is &quot;What is an Enterprise Architect, anyway?&quot;&nbsp;This article is the first in a series of articles that will explain the term &quot;Enterprise Architecture,&quot; why it is important, and how each of the disciplines that constitute Enterprise Architecture relate to each other. Most importantly, this article is going to talk about how Enterprise Architecture needs to govern the processes around software development.</p>
<p>My recent posts about integration with Microsoft Exchange have reminded me how important it is to keep the pragmatism of the application of technology to solve business problems very sharply in focus.&nbsp;During the process of building the Microsoft Exchange integration components, I have also been involved in a couple of projects that are very enterprise-focused during my day job. The combination of these projects made me step back and think about how we build software, and I realized that during the 20-some years that I have been in this industry, there are some things that I have learned and applied that have become the cornerstones of how I approach software.&nbsp;Later in this article, I am going to come back to this because it is key to the importance of Enterprise Architecture.&nbsp;</p>
<h3>Enterprise Architecture</h3>
<p>As the term &quot;Enterprise&quot; suggests, enterprise architects are responsible for architecture that is enterprise-wide. That is, they are responsible for looking at the entire organization and understanding how it is structured to do business,&nbsp;identifying the areas where the process can be improved &#8211; often by the introduction of a technology solution &#8211; and then introducing the business process improvements and technology solutions that streamline the business.</p>
<p>Mature enterprise architecture actually goes even further than that. In a mature organization, enterprise architects work with the business leaders to define and enhance future business strategies, define processes to meet the strategies, and then implement those processes, using technology where appropriate.</p>
<p>What this means is that enterprise architecture is as much about understanding business as it is about technology.</p>
<h3>Enterprise Architecture Disciplines</h3>
<p><a href="http://www.thesoftwaregorilla.com/wp-content/uploads/2010/05/ArchitectureStack.jpg" target="_blank"><img align="left" alt="Disciplines of Enterprise Architecture" height="247" src="http://www.thesoftwaregorilla.com/wp-content/uploads/2010/05/ArchitectureStack.jpg" width="399" /></a>As with any discipline, enterprise architecture has numerous facets. The diagram at left shows all of the disciplines that are associated with enterprise architecture and provides a visual queue for how they relate to each other.</p>
<p>Disciplines in blue are all predominantly business-focused, whereas those in brown are more technology-focused. The lower down the stack you go, the more technology-focused the discipline is, whereas the higher up the stack you go, the more business-focused it is.</p>
<p>The oddball in the stack is Research and Innovation. This is a discipline that needs to span technology and business.</p>
<p>There are a few important things to bear in mind about these disciplines.</p>
<p>First,&nbsp;none of them lives in isolation. They all need each other to successfully deliver value to the enterprise.</p>
<p>Second, none of them is more important than the other. Just because Business Architecture is at the top of the stack does not mean that business architects are more important than database architects. Rather, the stack is intended to show how these disciplines relate to each other.</p>
<p>Third, a lack of focus on any one of these disciplines creates a gap that makes the stack incomplete. Inevitably, the organization will compensate for the lack of focus on an element in the stack by creating a compromised design. Nowhere is this more evident than in the Data Architecture discipline. If there is no focus on data architecture, an architecture will emerge organically, almost always generated from the schemas of component applications. The result is that integration suffers.&nbsp;</p>
<p>Lastly, every discipline in the stack is directly dependent on the discipline above it. So information architecture requires a thorough definition of the business architecture in order to produce the business intelligence that is needed. Data architecture needs a clear information architecture to provide the data that is needed for the business intelligence to be derived, and so on.</p>
<p>An argument could be made that enterprise architecture governance is also a part of this stack. I am not opposed to that, but I really view governance as a management function that is embedded in each of the architectural disciplines. In some organizations, that governance does need to be broken out into a separate unit.</p>
<p>Let&#39;s take a look now at some details of what each of these disciplines does.</p>
<h4>Research and Innovation</h4>
<p>Research and innovation is really the oddball in the stack, because it spans the entire enterprise architecture stack, from business architecture all the way down to specialist architectural disciplines. in fact, it goes even lower than that, but that is beyond the scope of this discussion.</p>
<p>Research and innovation is about understanding what is going on in all industries that are related to the enterprise, understanding advancements that are being made that could enhance the business, and finding ways of exploiting those advancements to create competitive advantage. It also includes incubating new ideas that could allow an enterprise to leap-frog its competition.</p>
<p>In a future article, I will spend some time talking about how the research and innovation component of the Microsoft Exchange integration project has provided this kind of competitive advantage.</p>
<h4><span class="Apple-style-span" style="font-weight: bold; ">Business Architecture</span></h4>
<p>It is hard to understate the importance of business architecture, and I think it is really interesting that in the last 10 years, IT has felt the backlash of driving businesses to make decisions based on technology, rather than sound business principles. Leading into Y2K, two massive technology drivers were forcing businesses to invest exorbitant sums of money in projects that were little more than experiments in technology &#8211; the Y2K &quot;bug&quot; and the advent of internet commerce. Much of that investment returned little to no value, and today IT organizations are being forced to focus their attention on business value. Business architecture is the architectural discipline that leads this initiative.</p>
<p>What this means is that business architects are really focused on understanding the business, not the technology. In a mature organization, business architects (and business analysts) work very closely with business units to understand their business processes. They are responsible for&nbsp;analyzing how the business runs, producing the definition of the business processes, defining new processes that align with the strategic goals of the enterprise, and defining the requirements from which all technical decisions are derived.&nbsp;A very important part of a business architect&#39;s role is to evaluate the existing processes to reduce redundancy, streamline the process, and automate as much of it as possible.&nbsp;Highly skilled business architects are also able to define the key performance indicators within a line of business so that it is possible to measure the success of the business. &nbsp;</p>
<h4><span class="Apple-style-span" style="font-weight: bold; ">Information Architecture</span></h4>
<p>Information architecture is the process of understanding what information the business needs, how to go about delivering it, and ensuring that nothing is lost. As with business architects, information architects have a strong business focus. They are normally lateral thinkers who are capable of envisioning ways to transform data into actionable business intelligence. Over and above the general reporting requirements that is part of the responsibility of information architecture, the discipline also involves understanding interactions with external stakeholders such as vendors, partners, and customers and producing an information strategy that monitors and enhances these interactions.</p>
<p>As with the business architecture discipline, information architecture is highly business-focused with its purpose being to provide decision makers the information they need to maximize business profitability.</p>
<h4>Data Architecture</h4>
<p>Probably the most neglected discipline in most companies is the data architecture discipline. Many people see data architecture as a function of information architecture, and it is probably best kept as part of the information architecture discipline, but it is really the first layer in the architecture disciplines that crystallizes business concepts into technology artifacts. What I mean by that is that data architecture is all about understanding the nature of the data in an organization, what operates on it, and how it is stored.</p>
<p>The data architecture discipline is absolutely crucial to integration because data architecture is the custodian of the enterprise data model that defines entities and their relationships across the enterprise. It therefore affects every other discipline around it, including application architecture, infrastructure architecture, solution architecture and integration.</p>
<p>The data architecture discipline also owns the responsibility of defining and maintaining the canonical model that is used in a service-oriented architecture to govern data transformations between services.&nbsp;</p>
<p>My next post will include a detailed discussion of this discipline, especially as it relates to the Microsoft Exchange integration project.</p>
<h4>Application Architecture</h4>
<p>Application architecture is the process of understanding how applications operate on the data that is defined by the data architecture discipline. It is also responsible for understanding integration between applications so that they are able to properly communicate with each other and provide each other any necessary data.</p>
<p>Application architecture is also the custodian of the library of services that are required for a service-oriented architecture and they own the definition and governance of that library.</p>
<h4>Infrastructure Architecture</h4>
<p>Infrastructure architecture is the process of understanding the &quot;plumbing&quot; that is used to support a technical solution. So, for example, in the Microsoft Exchange integration case, Microsoft Exchange is an application and the OpenEdge CRM application is an application. These two applications need to communicate with each other. One (the OpenEdge CRM application) runs on a Unix server and Microsoft Exchange runs on a separate set of Windows servers. At a lower level, the OpenEdge CRM application has an AppServer associated with it and Microsoft Exchange uses a web server and has several server processes that are associated with it. With the roll out of the Microsoft Exchange integration solution, additional Java-based services such as Apache Tomcat and Apache ActiveMQ will be added to the mix.</p>
<p>Infrastructure architecture is about understanding these technical components, how they relate to and communicate with each other, and where the opportunities are for optimizing these infrastructure components.</p>
<p>As we move closer to cloud computing, this is a discipline that requires increasingly skilled people because virtualization, high-availability, network fabrics and all of those components factor into the decisions that are being made about hosting technology solutions.</p>
<h4>The Divide between Business and Technology</h4>
<p>Up until this point, all the disciplines that we have discussed have been focused on the business. Most of the questions that are being asked in those disciplines are related to how the architecture can be built to drive increased revenue and reduce operating costs. Many view this point as the division between what they call Enterprise and Technical architecture.&nbsp;In order to ensure maximum business benefit, though, these disciplines all need to work very closely with each other in a tightly cohesive team. I, therefore, view technical architecture as a facet of enterprise architecture and prefer to view technical architects as specialist architects who have extensive knowledge of their particular discipline.</p>
<h4>Solution Architecture</h4>
<p>Solution architecture is the discipline that most people think of when they talk about a Software Architect. A solution architect is able to take a specific problem, identify the appropriate way to solve the problem, and turn that into a technical solution that spans numerous specialist disciplines. The key point about this discipline, though, is that it is more technically oriented than business oriented. Successful solution architects are often viewed and technical gurus, capable of solving any technical problem.</p>
<h4>Specialty Architecture</h4>
<p>Specialty architects are extremely valuable resources as they understand their area of specialization inside-out. Generally, specialty architects have been in their field for several years and have solved significant business problems with the technology with which they are proficient. The above diagram references several time of specialty architects.</p>
<p>Integration architects have a thorough understanding of integration technologies like middleware, complex event processing, and business activity monitoring. In a service-oriented architecture, this discipline is responsible for overseeing the implementation of the canonical model and all related services.&nbsp;</p>
<p>Application-specific specialty architects focus on products like SAP where there is a high level of skill required to understand the application as a whole. The other specialty architects are also highly skilled in their particular avenues and able to advise, mentor and lead significant development efforts based on their particular technology.</p>
<p>While it is likely that specialty architects are exceptional programmers, the discipline itself does not requires them to write code.&nbsp;</p>
<h3>Structured Systems Analysis and Design Methodology (SSADM)</h3>
<p>What I find really interesting is that these disciplines have really only become clearly defined in the last few years. The reason is that 20 years ago, computer systems were nowhere near as complicated as they are now. There were far less of them and they were far more monolithic.</p>
<p>Nevertheless, 20 years ago I attended a course on a methodology called Structured Systems Analysis and Design Methodology (SSADM). In those days, systems analysts were expected to perform the business analysis and architecture function. So they would be responsible for documenting the business processes that the business needed.</p>
<p>From those business processes, a systems analyst would derive a set of data entities from the connecting lines between the processes. They would flesh out those entities by reviewing the paper forms or screenshots of existing applications to understand what the data elements were that made up the application.&nbsp;</p>
<p>Those same analysts would then create a matrix (called an Entity-Event Matrix) that contained each process in the columns across the top of the matrix and each entity in the rows down the left side. They would then mark with a C, R, U, or D any cell that was affected by either a create, read, update or delete of the entity. From this, an entity life-cycle could be produced that demonstrated the life history of an entity.&nbsp;</p>
<p>This matrix and the life-cycle were then used to build a specification of the processes that had to be built to operate on the data. Next, a set of JAD (Joint Application Design) sessions with the user would define the set of screens that would be built to enable the user to interact with the system and the reports that would be generated from the system.</p>
<p>Once the design is complete, the systems analyst and a group of programmers would go off and build the application.</p>
<p>As I said, this was a methodology that I was taught 20 years ago, and although much of it has been augmented by additional requirements imposed by additional complexity of modern computer systems, at the core, nothing has really changed that significantly. TOGAF and Zachman, two more modern enterprise architecture methodologies, emphasize the same basic principles of enterprise architecture. Of course, it is a much more iterative process now.</p>
<h3>Conclusion</h3>
<p>In many enterprises, architects are expected to be proficient in more than one of these disciplines. In large enterprises, although there is an expectation that enterprise architects are proficient in more than one discipline, often their focus is narrowed considerably by the amount of work to be done.</p>
<p>Nonetheless, I have found that my experience with SSADM taught me many of the things about enterprise architecture that I never knew I was going to value, and now, 20 years later, I am fortunate that I am able to cover the entire stack of enterprise architecture disciplines and many of the specialty disciplines, thanks to what I learned from SSADM.</p>
<p>Enterprise architecture is a relatively new buzzword that is increasingly being seen to provide significant business benefit and substantial return on investment. Look for these disciplines to grow significantly over the next 5 years as IT systems become increasingly complex.&nbsp;</p>
<p>In the upcoming weeks, I will be building on this discussion by delving into each of these disciplines in more detail. First on my list is data architecture, as it is a discipline that is very near and dear to my heart.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.thesoftwaregorilla.com/2010/05/what-is-enterprise-architecture/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Exchange Web Services &#8211; Starting out</title>
		<link>http://www.thesoftwaregorilla.com/2010/04/exchange-web-services-starting-out/</link>
		<comments>http://www.thesoftwaregorilla.com/2010/04/exchange-web-services-starting-out/#comments</comments>
		<pubDate>Tue, 20 Apr 2010 12:28:25 +0000</pubDate>
		<dc:creator>Bruce Gruenbaum</dc:creator>
				<category><![CDATA[Commentary]]></category>
		<category><![CDATA[Exchange Web Services]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[OpenClient]]></category>
		<category><![CDATA[OpenEdge]]></category>
		<category><![CDATA[OpenEdge AppServer]]></category>
		<category><![CDATA[SOA]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[n-tier Development]]></category>
		<category><![CDATA[ABL]]></category>
		<category><![CDATA[Apache ActiveMQ]]></category>
		<category><![CDATA[Application Server]]></category>
		<category><![CDATA[AppServer]]></category>
		<category><![CDATA[EWS]]></category>
		<category><![CDATA[Exchange EWS]]></category>
		<category><![CDATA[Glassfish AppServer]]></category>
		<category><![CDATA[Java OpenClient]]></category>
		<category><![CDATA[Microsoft Exchange 2007]]></category>
		<category><![CDATA[OpenEdge OpenClient]]></category>
		<category><![CDATA[Progress AppServer]]></category>
		<category><![CDATA[Progress OpenClient]]></category>

		<guid isPermaLink="false">http://www.thesoftwaregorilla.com/?p=290</guid>
		<description><![CDATA[A couple of months back, a gentleman who has now become a friend and business partner, came to me and asked me if there was any way to get at all the calendar items in his sales organization's calendars with the intention of integrating it with his Progress OpenEdge CRM system. Jim is using Exchange 2007 for his e-mail and calendaring solutions.

I was aware that Microsoft had released a new API for Exchange in Exchange 2007 called Exchange Web Services (EWS), and so I said that I needed to do a little research on the API, but I was pretty sure that it was possible. Sure enough, MSDN has some documentation of the API and Microsoft is touting it as the replacement for all APIs that communicate with Exchange. Web Services - how hard can it be?
]]></description>
			<content:encoded><![CDATA[<p>Many people make use of different mechanisms for creating e-mail messages. Most of them use some kind of SMTP client to do so. For the more adventurous, there is MAPI that allows you access to a Microsoft Mail based client to do a few things over and above just plain mail. These are things that people do on a daily basis.</p>
<p>A couple of months back, a gentleman who has now become a friend and business partner, Jim Ford of <a href="http://www.fordav.com/" target="_blank">Ford Audio-Visual</a>, came to me and asked me if there was any way to get at all the calendar items in his sales organization&#39;s calendars with the intention of integrating it with his Progress OpenEdge CRM system. Jim is using Exchange 2007 for his e-mail and calendaring solutions.</p>
<p>I was aware that Microsoft had released a new API for Exchange in Exchange 2007 called Exchange Web Services (EWS), and so I said that I needed to do a little research on the API, but I was pretty sure that it was possible. Sure enough, MSDN has&nbsp;some documentation of the API and Microsoft is touting it as the replacement for all APIs that communicate with Exchange. Web Services &#8211; how hard can it be?</p>
<h3>The Production Environment</h3>
<p>In the&nbsp;production environment, an OpenEdge client running on a Unix server&nbsp;needs to initiate a WebService call to Exchange to create, update and delete appointments for sales people. These appointments will be created in the user interface for the CRM application.</p>
<p>Sales people then need to be able to&nbsp;change and&nbsp;delete these appointments from their Outlook clients or their Blackberry/iPhones. Any changes to the appointments need to be recorded as history updates in the CRM system, so Exchange needs to notify the OpenEdge CRM system of these changes.</p>
<p>So the updates to appointments need to happen from both directions and the communication is going to happen cross-platform (Unix to Windows and vice-versa).</p>
<h3>Initial Idea</h3>
<p>My initial plan was to create a prototype that did&nbsp;the two-way&nbsp;communication directly from OpenEdge to EWS. I just wanted to prove that it was possible. The first step was to build an OpenEdge WebServices Client that created a calendar item in the Exchange store. Unfortunately, for various reasons, this is much harder than I thought it would be.</p>
<p>First, the EWS WSDL is not a standard WSDL. EWS is installed as part of the Client Access Server (CAS)&nbsp;component of Exchange. In production, you can have multiple Mailbox Servers and the CAS has to discover which mailbox server services a client. As a result, the URL that is used to actually call EWS is different depending on which Mailbox Server hosts the mailbox. The WSDL therefore does not contain a &quot;service&quot; node and the OpenEdge WSDL parser cannot parse the WSDL. I tried working around that by creating a dummy WSDL with a service node inside it.</p>
<p>The second problem was&nbsp;that I ran into all kinds of problems with the complex type structure that exist in the WSDL. The types and messages live in a separate XSD file and the WSDL parser did not like some of the&nbsp;message definitions as they included optional types.</p>
<p>The last straw was that the connection to EWS is an SSL connection that, by default, wants to use NTLM authentication and I battled for hours to get this to work. I would probably have figured the problem out earlier if I had had some more clear indications from OpenEdge of exactly what the problem was, but I finally decided to go and try the connection from Java.</p>
<h3>The Bible</h3>
<p>Before I started on the Java example, I decided that I should probably test that I could even make this happen in .NET. Even that is no small feat. The examples that come with the Exchange SDK are about as useful as an udder on a bull, and I eventually decided to bite the bullet and look for a book on the subject.</p>
<p>I normally avoid Microsoft Press books because, more often than not, they simply regurgitate the standard Microsoft examples and contribute very little additional value. That is not the case with <a href="http://www.amazon.com/Inside-Microsoft-Exchange-Server-Services/dp/0735623929/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1271763925&amp;sr=8-1" target="_blank"><em>Inside Microsoft Exchange 2007 Web Services</em></a>. Authors David Sterling, Benjamin Spain, Michael Mainer, Mark Taylor, and Huw Upshall have done an outstanding job of creating a book that really gets to the heart of the technology. They are all members of the Exchange development team, and it shows. The book provides enough background information that it is essential reading for anyone trying to do this stuff.</p>
<h3>Java to EWS</h3>
<p>Armed with my new reference, I now set about building a Java client that could create an appointment in Exchange, figuring that I could expose the Java client as a Web Service that OpenEdge could consume.</p>
<p>Now, before you throw your toys out your crib and tell me that that is a very expensive way to do things from a performance point of view, let me just clarify that I would have ended up going down this road eventually, anyway. Ultimately, the solution will be exposed as a service on an ESB, and that ESB is likely to be based on a JMS MOM, like Apache ActiveMQ, or SonicMQ. So this is not a wasted exercise. The reason that I need this on an&nbsp;ESB is that the&nbsp;events that flow in each direction need to be available to other services, too.</p>
<p>Java to EWS was not a lot easier to get working. I still had to work around the WSDL not having a &quot;service&quot; node issue, but Java gives you finer-grained control of the parsing of the WSDL. Moreover, in my initial implementation, I did not use JAX-WS or any other WebServices technologies like Axis. I simply used an HTTP request to the WebService to get through the issues. This made life a whole lot easier.</p>
<p>The SSL problem reared its ugly head again, but this time I quickly learned 2 things:</p>
<ol>
<li>Exchange creates a default certificate for you when you install it. Either you have to install the certificate as a trusted certificate in the certificate store, or you have to set up a certificate authority on your Windows Server and build signed certificates. I went with the former idea and that resolved the first part of the SSL problem.</li>
<li>Exchange is installed to support only NTLM authentication, but NTLM authentication is a pain to work with from non-Microsoft technologies. You can change the settings of the EWS virtual directory on the Microsoft IIS Server that runs on the CAS to support basic and digest authentication. For testing,&nbsp;I set this up as basic, but I now have digest working. I will probably go back and revisit NTLM again later, but it is very hard to find any information to help with solving problems, so I may simply require digest authentication.</li>
</ol>
<p>Once I got past these issues, creating the calendar item was actually very simple.</p>
<h3>OpenEdge through the&nbsp;Java WebService</h3>
<p>The next step&nbsp;was to take what I had created and expose it as a Java Web Service. I went with Glassfish V3 as the application server just to test this and in about a half hour I had the Web Service up and running and <a href="http://www.soapui.org" target="_blank">soapUI</a> was creating appointments through the Java Web Service without any problems.</p>
<p>I then went back to OpenEdge and used its WSDL analyzer to&nbsp;analyze the WSDL. It worked really well. I then built a quick client that called the Java Web Service from OpenEdge and it worked first time.</p>
<h3>Next Steps</h3>
<p>Although this is now a working prototype, it is exactly that &#8211; a prototype. There are several pieces that still have to be proven:</p>
<ol>
<li>I need to&nbsp;subscribe to change updates from Exchange.</li>
<li>I need to&nbsp;get to updates for all sales person&nbsp;mailboxes. This means I need to use Exchange Impersonation and that has a number of security risks associated with it.</li>
<li>I need to make sure these updates get through to OpenEdge efficiently which means I need a test harness that can generate several thousand appointments a minute and have them update the OpenEdge AppServer without breaking it.</li>
</ol>
<h3>Conclusion</h3>
<p>Having said that, I am really excited and very optimistic about how this is turning out. I have learned more about Windows Server, Microsoft Exchange, Active Directory, Exchange Web Services, OpenEdge Web Services, and Java Web Services than I had ever imagined possible.</p>
<p>In the next few weeks I will be providing an update on where I finally ended up with this from an architectural point of view.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.thesoftwaregorilla.com/2010/04/exchange-web-services-starting-out/feed/</wfw:commentRss>
		<slash:comments>5</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>
