<?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>MyArch &#187; SOA</title>
	<atom:link href="http://myarch.com/category/soa/feed" rel="self" type="application/rss+xml" />
	<link>http://myarch.com</link>
	<description>Builds and bytes</description>
	<lastBuildDate>Sat, 17 Mar 2012 14:13:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Will Recession Provide a Boost to SOA?</title>
		<link>http://myarch.com/will-recession-provide-a-boost-to-soa</link>
		<comments>http://myarch.com/will-recession-provide-a-boost-to-soa#comments</comments>
		<pubDate>Mon, 20 Oct 2008 03:24:31 +0000</pubDate>
		<dc:creator>Alexander Ananiev</dc:creator>
				<category><![CDATA[SOA]]></category>

		<guid isPermaLink="false">http://myarch.com/?p=94</guid>
		<description><![CDATA[There is no doubt that IT budgets will be cut next year. The size of the cut is hard to predict, but I think that it could exceed the Gartner&#8217;s forecast. This, however, could finally give a shot in the arm to the long stagnated SOA projects. What makes me say that? Well, as I&#8217;ve [...]]]></description>
			<content:encoded><![CDATA[	<p>There is no doubt that IT budgets <a href="http://blogs.zdnet.com/BTL/?p=10403" title="">will be cut next year</a>. The size of the cut is hard to predict, but I think that it could exceed the Gartner&#8217;s forecast.</p>

	<p>This, however, could finally give a shot in the arm to the long stagnated <span class="caps">SOA</span> projects. What makes me say that? Well, as I&#8217;ve been <a href="/soa-need-not-be-costly" title="">advocating all along</a>, <span class="caps">SOA</span> represents an inexpensive way of adding flexibility and achieving new goals. <span class="caps">SOA</span> does not have to require significant new investments. Done smartly, it could be a great way of implementing new functionality without ripping the existing systems apart, which is undoubtedly won&#8217;t fly in light of highly constrained budgets.</p>

	<p>To prove this point, in spite of lackluster economy, <a href="http://blogs.zdnet.com/service-oriented/?p=1179" title="">the demand  for <span class="caps">SOA</span> architects has been booming</a>.</p>

	<p>There is one caveat to this view &#8211; organizations need to stop approaching <span class="caps">SOA</span> from the infrastructure standpoint (i.e., what <span class="caps">ESB</span> product do I need?) and start using it as a solution to real business needs. I&#8217;m not entirely sure that it&#8217;s going to happen, but bad economy could be just the motivation for that.</p>




 ]]></content:encoded>
			<wfw:commentRss>http://myarch.com/will-recession-provide-a-boost-to-soa/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>You Ain&#8217;t Gonna Need ESB</title>
		<link>http://myarch.com/you-aint-gonna-need-esb</link>
		<comments>http://myarch.com/you-aint-gonna-need-esb#comments</comments>
		<pubDate>Sun, 26 Aug 2007 02:55:26 +0000</pubDate>
		<dc:creator>Alexander Ananiev</dc:creator>
				<category><![CDATA[ESB]]></category>
		<category><![CDATA[SOA]]></category>

		<guid isPermaLink="false">http://myarch.com/you-aint-gonna-need-esb</guid>
		<description><![CDATA[Bobby Wolf posted a great article about a wide-spread problem plaguing many SOA implementations: over-engineering of SOA infrastructure, meaning that people rollout products that are not particularly required to implement their business services. He specifically talks about ESBs, but I would say that "you ain't gonna need it" principle should be applied to any component [...]]]></description>
			<content:encoded><![CDATA[<p>
Bobby Wolf posted a <a href="http://www.ibm.com/developerworks/webservices/library/ws-soa-esbarch/index.html?ca=drs-">great article</a> about a wide-spread problem plaguing many SOA implementations: over-engineering of SOA infrastructure, meaning that people rollout products that are not particularly required to implement their business services. He specifically talks about ESBs, but I would say that "you ain't gonna need it" principle should be applied to any component of a <a href="http://myarch.com/comparison-of-soa-suites">SOA stack</a>. For example, why implement a super-expensive BPM suite (or a BPEL engine) when an organization is simply trying to build some data services? Or why pay for a registry if there are only a handful of services in place?
</p>
<p>
What many people don't realize is just how many SOA-related features are already provided by application servers. Open-source Glassfish server supports JAXR Web services repositories, XSLT mediations, JBI integration and provides extensive Web services monitoring capabilities. It can be augmented by several open-source JBI-based ESBs, such as <a href="https://open-esb.dev.java.net/Components.html">OpenESB</a>. Other application servers provide similar set of features, although using different technologies (e.g., SCA instead of JBI in IBM products).  With an application server being so powerful, there should be a very good reason and business rationale for upgrading to commercial SOA/integration products. 
</p>
<p>
In my mind the right strategy for any SOA is to first implement some services that provide immediate value to the business stakeholders. These services should  be implemented using the products already owned and used by an organization (or by using open source ones). After the initial success of this implementation, the organization can evaluate commercial products to see how these products will help implement next set of business requirements/goals more efficiently.
</p>
]]></content:encoded>
			<wfw:commentRss>http://myarch.com/you-aint-gonna-need-esb/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Is The End of SOAP Dominance Nearing?</title>
		<link>http://myarch.com/is-the-end-of-soap-dominance-nearing</link>
		<comments>http://myarch.com/is-the-end-of-soap-dominance-nearing#comments</comments>
		<pubDate>Sun, 12 Aug 2007 01:33:45 +0000</pubDate>
		<dc:creator>Alexander Ananiev</dc:creator>
				<category><![CDATA[Web services]]></category>

		<guid isPermaLink="false">http://myarch.com/is-the-end-of-soap-dominance-nearing</guid>
		<description><![CDATA[SOAP-based services currently dominate the enterprise landscape. Main reasons this are: SOAP tight coupling with WSDL. Until recently, SOAP was the only supported WSDL binding. WSDL, with all of its issues (such as the convoluted structure), remains the only widely accepted vendor-neutral way of defining services. In Java world, SOAP was promoted by adding its [...]]]></description>
			<content:encoded><![CDATA[<p>
SOAP-based services currently dominate the enterprise landscape. Main reasons this are:
<ul>
<li>
SOAP tight coupling with WSDL. Until recently, SOAP was the only supported WSDL binding. WSDL, with all of its issues (such as the convoluted structure), remains the only widely accepted vendor-neutral way of defining services. 
</li>
<li>
In Java world, SOAP was promoted by adding its support to J2EE/Java EE via JAX-RPC and JAX-WS specifications. There is a way to create <a href="http://myarch.com/will-jax-ws-become-the-primary-mechanism-for-invoking-restful-services">RESTful services using JAX-WS</a>, however this approach has not gained wide acceptance due to a number of reasons (lack of standardized WSDL binding being one of them).
</li>
<li>
Solid support by software vendors. SOAP is supported in all application servers; there are plenty of development tools (including Eclipse and NetBeans) that can help with creating SOAP-based services.
</li>
<li>
Availability of a number of WS-* specifications that only work with SOAP.  WS-* specs, such as WS-Security and WS-ReliableMessaging heavily rely on SOAP headers for passing message metadata.
</li>
</ul>
<p>
SOAP, however, is far from perfect. It adds complexity and overhead and makes implementation of message intermediaries (e.g., gateway products) more difficult (XML message has to be parsed in order to obtain any information about the message, such as an operation name). On the other hand, the uptake of WS-* standards has been very slow, perhaps with the exception of WS-Security, so the benefit of WS-* integration with SOAP failed to materialize. Another supposed SOAP benefit is the protocol neutrality, i.e., a SOAP message looks the same over HTTP, JMS, RMI or any other supported protocol. However, most services are implemented using HTTP, or in some cases, JMS without any headers (unless WS-* is used), so this benefit has limited value. 
</p>
<p>
So it is fair to say that in many instances, SOAP itself does not add any value to Web services implementation.  Nevertheless, it's continued to be used because of the reasons listed above. But this situation might be changing in the future.
</p>
<p>
WSDL 2.0 fully supports <a href="http://www.w3.org/TR/2006/CR-wsdl20-adjuncts-20060327/#http-binding_/">HTTP binding</a>. WSDL 2.0 stirred <a href="http://webservices.xml.com/pub/a/ws/2004/11/17/salz.html">a lot of controversy</a> (I personally think that it's a step forward from WSDL 1), however, it was finally accepted as a W3C recommendation in June, so we can fully expect that vendors support will follow. 
</p>
<p>
Additionally, <a href=http://jcp.org/en/jsr/detail?id=311>JAX-RS</a> specification was created and included into Java EE 6. This will also promote development of RESTful services behind the firewall. 
</p>
<p>
Currently, there a preconceived notion that REST is only good for Internet/WEB 2.0 environment, whereas enterprise services should all be using SOAP. The emergence of the two new standards will help change this notion.
</p>
<p>
Ideally, developers should be able to use the simplest binding that gets the job done. HTTP/REST can be a good choice for many "query-style" services. Services that accept more complex data can use "Plain Old XML" over HTTP post. Finally, services that have to rely on WS-* specifications will utilize SOAP. In all these cases, developers should be able to use same set of APIs for invoking the service and same set of annotations (obviously, with different parameters) for creating the service. 
</p>
<p>
Perhaps this is how Web service development will be done in the future, but we are certainly not there yet.
</p>
]]></content:encoded>
			<wfw:commentRss>http://myarch.com/is-the-end-of-soap-dominance-nearing/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Improve Your Application Performance with XML Appliance</title>
		<link>http://myarch.com/improve-your-application-performance-with-xml-appliance</link>
		<comments>http://myarch.com/improve-your-application-performance-with-xml-appliance#comments</comments>
		<pubDate>Sun, 29 Jul 2007 22:04:29 +0000</pubDate>
		<dc:creator>Alexander Ananiev</dc:creator>
				<category><![CDATA[SOA]]></category>
		<category><![CDATA[XML Appliances]]></category>

		<guid isPermaLink="false">http://myarch.com/improve-your-application-performance-with-xml-appliance</guid>
		<description><![CDATA[XML appliances are capable of extremely fast XML parsing and transformation (sometimes the term "wire-speed" is used). The speed is achieved by using hardware acceleration, specially written XML parsers and XSLT engines (you won’t find Xerces on these devices) and optimized operating system (usually, a trimmed-down version of Linux or BSD). How fast are XML [...]]]></description>
			<content:encoded><![CDATA[<p>
XML appliances are capable of extremely fast XML parsing and transformation (sometimes the term "wire-speed" is used). The speed is achieved by using hardware acceleration, specially written XML parsers and XSLT engines (you won’t find Xerces on these devices) and optimized operating system (usually, a trimmed-down version of Linux or BSD).
</p>
<p>
How fast are XML appliances? I’m not aware of published benchmarks; however, I did have a chance to conduct an informal performance testing of DataPower XI50 for a client and the results were quite impressive; for example we saw little to no overhead validating medium-size XML schemas.
</p>
<p>
Clearly, offloading as much XML processing as possible to an appliance could be a performance booster. So what kind of processing could be done on the device? Here are my recommendations based on the capabilities of the DataPower appliance; the situation could be slightly different with devices from other vendors. 
<span id="more-66"></span>
<ul>
<li>
Validation. Turning schema validation on is a no-brainer, especially for complex schemas that can choke software parsers. In addition to schema validation, XSLT can be used to validate rules that are not grammar-based. You can use <a href="http://www.schematron.com">Schematron</a> to generate XSLT that validates these rules. Combination of Schema and Schematron provides very powerful validation mechanism. The beauty of this approach is that failed XML documents never reach the application thus reducing resource consumption of the application server.
</li>
<li>
Splitting. It is possible to define XPath-rules that in combination with XSLT will split complex documents into multiple fragments that can then be sent to different back-end services for processing. 
</li>
<li>
Filtering. Sometimes an application only needs a subset of elements provided in a message. Eliminating unnecessary tags will reduce the application’s XML processing overhead.
</li>
<li>
Flattening. Complex XML documents with deep nesting can be “flattened” using XSLT to eliminate some of the nesting. This could make application XML parsing quicker. 
</li>
<li>
"Canonicanization". In many cases, XML schema may allow for different representation of the same piece of data to accommodate needs of different clients. It could be allowing for SSN with and without dashes or supporting different name formats (e.g., "firstName, lastName" vs. "fullName"). XSLT logic on the device could implement the rules to clean up incoming messages and transform them into one strict canonical representation so that the application only needs to implement one way of parsing data. 
</li>
</ul>
<p>
 "Shredding"” could also be very effective for high-throughput XML processing. Shredding is the process of breaking up large documents into smaller fragments and sending them off to the application for concurrent processing. Shredding helps dealing with the documents consisting of a large number of repetitive groups. Each group/fragment can be processed independently without waiting for the completion of the processing of the entire document. Note that shredding is different from "splitting" which allows for  processing of different logical parts (different types) of the document independently (as opposed to repetitive groups). Shredding is the most useful for processing large bathes of data of the same type. 
</p>
<p>
Unfortunately, shredding does not seem to be supported by DataPower, although the appliance does support streaming XML processing which would’ve worked very nicely in conjunction with shredding logic. Perhaps devices from other vendors do provide this support. 
</p>
<p>
The bottom line is that just plugging the appliance in and using it in a gateway mode is not necessarily going to improve XML processing performance by much. Web services (and any other application components that interface via XML such as XML-based batch file processing components) have to be designed with the appliance in mind. In the course of the design effort, developers need to identify pre-processing or post-processing logic that can be implemented in XSLT as opposed to making it all application’s responsibility. Anything that uses XSLT can then go to the appliance to improve the processing speed and throughput.
</p>
]]></content:encoded>
			<wfw:commentRss>http://myarch.com/improve-your-application-performance-with-xml-appliance/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Using Maven Repository as Web Services Registry</title>
		<link>http://myarch.com/using-maven-repository-as-web-services-registry</link>
		<comments>http://myarch.com/using-maven-repository-as-web-services-registry#comments</comments>
		<pubDate>Sun, 01 Jul 2007 18:45:10 +0000</pubDate>
		<dc:creator>Alexander Ananiev</dc:creator>
				<category><![CDATA[Web services]]></category>
		<category><![CDATA[Web Services Registry]]></category>

		<guid isPermaLink="false">http://myarch.com/using-maven-repository-as-web-services-registry</guid>
		<description><![CDATA[A Web services registry is arguably one of the most important components of SOA. The registry provides a single source of information about all services in an enterprise. There are a number of commercial registry/repository products but all of them are quite pricey. Also, smaller organizations or organizations just starting with SOA may not need [...]]]></description>
			<content:encoded><![CDATA[<p>
A Web services registry is arguably one of the most important components of SOA. The registry provides a single source of information about all services in an enterprise. 
<p>
There are a number of commercial registry/repository products but all of them are quite pricey. Also, smaller organizations or organizations just starting with SOA may not need the full power of a commercial registry/repository product; most of it functionality will remain unutilized. On the other hand, existing registries do not do a particularly good job of managing dependencies between services as well as between service consumers and service providers. Dependency management must be a key consideration in SOA since, unlike in the case of monolithic applications, an SOA consists of a large number of “moving parts”, that is, services. In a well developed SOA most services depend on other services and these services in turn may rely on some other services. Being able to manage and analyze services dependencies is required in order to be able to implement robust and maintainable SOA. 
<p>
Open source <a href=http://maven.apache.org/>Maven project</a> has become something close to a de-facto standard in the area of dependency management for building Java-based projects and components. 
<span id="more-65"></span>
Also, Maven <a href=http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html>dependency mechanism</a> can be used with any Ant build by utilizing Maven Ant dependency tasks (i.e., there is no need to migrate existing Ant build processes to Maven). Maven also has a pretty sophisticated repository support allowing implementing custom central repositories as well as local repository snapshots. Projects like <a href=http://www.jfrog.org/sites/artifactory/latest/>artifactory</a> further enhance Maven repository and add nice UI. 
<p>
So why not use a Maven repository for storing Web services artifacts, such as WSDL, schemas and policy files? Each service or a group of related services from the same service provider can have its own POM. Using Maven (i.e., by executing “deploy” goal) service providers can publish WSDL and other artifacts (but, obviously, no binaries) along with their POMs in a Maven repository. Service consumers could then download these artifacts based on the dependencies defined in their POMs. If the version stays the same, service consumers don’t need to do anything. In case of a change, service consumers may need to make changes to their client’s implementation, including re-generating client’s classes (this is, of course, a manual process that requires some analysis of the changes). In other words, the process is very similar to how we deal with changes in APIs in third-party libraries. 
<p>
The entire process can be supported by out-of –the-box Maven build process. The only required change is a custom artifact handler to support new “service” extension and packaging type. 
<p>
An existing change management process can be adapted for Web services so that service consumers are notified about new versions and their backward compatibility. Again, there is nothing new here; most organizations already have a change management process in place to handle changes in shared libraries. 
<p>
Using Maven for managing Web services releases and dependencies has multiple benefits:
<ul>
<li>Ability to use full range of Maven dependency management capabilities including  version range dependency, snapshot and central repositories and so on.
<li>Ability to use Maven dependency reports for dependency analysis.
<li>Web services dependency management is consistent with the dependency management process used for other artifacts, such as jars, wars and so on. Commercial repository products often provide a proprietary mechanism that can only be used for Web services - related  artifacts. 
<li>Tight integration with any Maven or Ant-based build process, no need for using UDDI or proprietary APIs for publishing services. 
<li>Service consumers that do not use Ant or Maven could still participate in the process by downloading Web services artifacts manually using UI provided by Artifactory or a similar product (although using automated approach should be the preferred option). 
</ul>
<p>
Of course, the Maven-based approach does not do anything for managing and enforcing (including run-time enforcement) of Web services policies which is something that commercial registry/repository products can do quite well. So organizations need to evaluate the need for a commercial registry/repository based on types and complexity of the policies they would like to enforce. In many if not most cases the policies are quite straightforward in which case Maven-based solution becomes a viable option.


]]></content:encoded>
			<wfw:commentRss>http://myarch.com/using-maven-repository-as-web-services-registry/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>XML Appliances Begin Supporting Java</title>
		<link>http://myarch.com/xml-appliances-begin-supporting-java</link>
		<comments>http://myarch.com/xml-appliances-begin-supporting-java#comments</comments>
		<pubDate>Fri, 22 Jun 2007 03:14:54 +0000</pubDate>
		<dc:creator>Alexander Ananiev</dc:creator>
				<category><![CDATA[SOA]]></category>
		<category><![CDATA[XML Appliances]]></category>

		<guid isPermaLink="false">http://myarch.com/xml-appliances-begin-supporting-java</guid>
		<description><![CDATA[Layer7 announced that its appliances will support Java-based custom assertions. Details are sketchy at this point but apparently Layer7 will provide a proprietary SDK for developing assertions. This could be much more powerful mechanism than XSLT-only facilities in IBM DataPower. So how long before appliances begin supporting JBI and SCA components? The trick here of [...]]]></description>
			<content:encoded><![CDATA[<p>
<a href="http://www.sdtimes.com/article/story-20070615-15.html">Layer7 announced</a> that its appliances will support Java-based custom assertions. Details are sketchy at this point but apparently Layer7 will provide a proprietary SDK for developing assertions. This could be much more powerful mechanism than XSLT-only facilities in IBM DataPower.
</p>
<p>
So how long before appliances begin supporting JBI and SCA components? The trick here of course is to make sure that an appliance is still a robust low-maintenance device that can't be brought down by a rogue application thread. But if Layer7 was able to figure it out for Java in general (I wonder if they use a general Sun JDK or some kind of a special JDK build), there is no reason why an appliance can't start supporting more advanced specifications such as JBI/SCA. 
</p>
]]></content:encoded>
			<wfw:commentRss>http://myarch.com/xml-appliances-begin-supporting-java/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Comparison of SOA Suites</title>
		<link>http://myarch.com/comparison-of-soa-suites</link>
		<comments>http://myarch.com/comparison-of-soa-suites#comments</comments>
		<pubDate>Sun, 17 Jun 2007 22:53:39 +0000</pubDate>
		<dc:creator>Alexander Ananiev</dc:creator>
				<category><![CDATA[BPEL]]></category>
		<category><![CDATA[ESB]]></category>
		<category><![CDATA[SOA]]></category>
		<category><![CDATA[Web services]]></category>

		<guid isPermaLink="false">http://myarch.com/comparison-of-soa-suites</guid>
		<description><![CDATA[Several SOA vendors are trying to put together comprehensive suites of SOA products that in theory should be capable of addressing all aspects of SOA, including governance, integration, business process management and others. Formation of SOA suites is having a tremendous impacts on how SOA products are selected as many organizations are being tempted to [...]]]></description>
			<content:encoded><![CDATA[<p>
Several SOA vendors are trying to put together comprehensive suites of SOA products that in theory should be  capable of 
addressing
all aspects of SOA, including governance, integration, business process management and others.
<p>
Formation of SOA suites is having a tremendous impacts on how SOA products are selected 
as many organizations 
are being tempted to settle for "one stop shop" approach as opposed to doing proper product evaluation 
within each SOA product category. (Interesting discussion about SOA suites is available at 
<a href="http://blogs.zdnet.com/service-oriented/?p=829">ZDNet</a>).
<p>
So what is a SOA suite and how offerings from different vendors support different aspects of SOA? 
The table below attempts to answer this question. 
<span id="more-63"></span>
<p>
One thing to keep in mind is that SOA products within the same category can differ
substantially in terms of their feature sets. Definitions of ESB, registry and other SOA product
categories are not standardized and so vendors are free to categorize their products as they
wish. Detailed analysis and evaluation is still a requirement when selecting SOA products.
</p>
<p>
IBM, BEA and Oracle are emerging as leaders in terms of completeness of their SOA suites. 
Microsoft's products are not as comprehensive, nevertheless Microsoft's marketshare makes it 
a signifcant player - Micorsoft's shops tend to be very loyal to the vendor even if 
Microsoft's SOA story is not as compelling. 
<p>
Other vendors, including Software AG/webMethods and HP have interesting
offerings too, however, they still have some gaps in their capabilities and so they 
are not covered here (perhaps I'll add more vendors in the future).
</p>
<br />
<table border="1" cellpadding="5" cellspacing="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>
      IBM
    </td>
    <td>
      BEA
    </td>
    <td>
      Oracle
    </td>
    <td>
      Microsoft
    </td>
  </tr>
  <tr>
    <td>
      Web Services Container (applicaiton server)
    </td>
    <td>
      <a href="http://www-306.ibm.com/software/webservers/appserv/was/">
      WebSphere Application Serer
      </a>
    </td>
    <td>
      <a href="http://bea.com/framework.jsp?CNT=index.htm&#038;FP=/content/products/weblogic/server/">
      WebLogic Application Server
      </a>
    </td>
    <td>
      <a href="http://www.oracle.com/appserver/index.html">
      Oracle Application Server
      </a>
    </td>
    <td>
      .NET/Windows
    </td>
  </tr>
  <tr>
    <td>
      ESB
    </td>
    <td>
      <a href="http://www-306.ibm.com/software/integration/wsesb/">
      WebSphere ESB
      </a>
      <br /><br />
      <a href="http://www-306.ibm.com/software/integration/wbimessagebroker/">
      Message Broker
      </a>

    </td>
    <td>
      <a href="http://bea.com/framework.jsp?CNT=index.htm&#038;FP=/content/products/aqualogic/service_bus/">
      AquaLogic Service Bus
      </a>
    </td>
    <td>
      <a href="http://www.oracle.com/technologies/soa/index.html">
        Enterprise Service Bus
      </a>
      (part of Oracle SOA suite)
    </td>
    <td>
      <a href="www.microsoft.com/biztalk/default.mspx">
      BizTalk Server 
      </a> (some ESB capabilities)
    </td>
  </tr>
  <tr>
    <td>
      Registry/Repository
    </td>
    <td>
      <a href="www.ibm.com/software/integration/wsrr">
      WebSphere Registry and Repository
      </a>
    </td>
    <td>
      <a href="http://bea.com/framework.jsp?CNT=index.htm&#038;FP=/content/products/aqualogic/service_registry/">
      AquaLogic Service Registry
      </a>
      (re-braned Systinet product)
      <br /><br />
      <a href="http://bea.com/framework.jsp?CNT=index.htm&#038;FP=/content/products/aqualogic/repository/">
      AqualLogic Enterprise Repository
      </a>
      (FlashLine aquisition)
    </td>
    <td>
      <a href="http://www.oracle.com/technology/tech/webservices/htdocs/uddi/index.html">
      Oracle Service Registry
      </a>
      (re-braned Systinet product?)
    </td>
    <td>
      &nbsp;
    </td>
  </tr>

  <tr>
    <td>
      Business Process Management 
    </td>
    <td>
      <a href="www-306.ibm.com/software/integration/wps/">
      WebSphere Process Server
      </a> (also includes ESB)
    </td>
    <td>
      <a href="http://bea.com/framework.jsp?CNT=index.htm&#038;FP=/content/products/aqualogic/albpm/">
        AquaLogic BPM Suite
      </a>
      (Fuego acquisition)
    </td>
    <td>
      <a href="http://www.oracle.com/technology/products/ias/bpel/index.html">
        BPEL Process Manager
      </a>
    </td>
    <td>
      <a href="http://www.microsoft.com/technet/prodtechnol/biztalk/2006/default.mspx">
        BizTalk Server
      </a>
    </td>
  </tr>

  <tr>
    <td>
      Business Activity Monitoring
    </td>
    <td>
      <a href="http://www-306.ibm.com/software/integration/wbimonitor/">
      WebSphere Business Monitor
      </a>
    </td>
    <td>
      <a href="http://bea.com/framework.jsp?CNT=index.htm&#038;FP=/content/products/aqualogic/albpm/">
        AquaLogic BPM Suite
      </a>
    </td>
    <td>
      <a href="http://www.oracle.com/technology/products/integration/bam/index.html">
        Business Activity Monitoring
      </a>
    </td>
    <td>
      <a href="http://www.microsoft.com/technet/prodtechnol/biztalk/2006/default.mspx">
        BizTalk Server
      </a>
    </td>
  </tr>

  <tr>
    <td>
      SOA Security
    </td>
    <td>
      <a href="http://www-306.ibm.com/software/tivoli/products/access-mgr-e-bus/">
      Tivoli Access Manager
      </a>
      <br /><br /><a href="http://www-306.ibm.com/software/tivoli/products/federated-identity-mgr/">
      Tivoli Federated Identity Manager
      </a>
      <br /><br /><a href="http://www-306.ibm.com/software/integration/datapower/">
      WebSphere DataPower SOA Appliances
      </a>
    </td>
    <td>
      <a href="http://bea.com/framework.jsp?CNT=overview.htm&#038;FP=/content/products/aqualogic/security/">
        AquaLogic Enterprise Security
      </a>
    </td>
    <td>
      <a href="http://www.oracle.com/technology/products/webservices_manager/index.html">
        Oracle Web Services Manager
      </a>
      (formerly Oblix COREsv)
    </td>
    <td>
      Windows?
    </td>
  </tr>

  <tr>
    <td>
      SOA Management
    </td>
    <td>
      <a href="http://www-306.ibm.com/software/tivoli/products/composite-application-mgr-soa/">
      Tivoli Composite Application Manager for SOA
      </a> (part of Tivoli suite)
    </td>
    <td>
      <a href="http://bea.com/framework.jsp?CNT=index.jsp&#038;FP=/content/products/aqualogic/soa_management/">
        BEA AquaLogic SOA Management
      </a>
    </td>
    <td>
      <a href="http://www.oracle.com/technology/products/webservices_manager/index.html">
        Oracle Web Services Manager
      </a>
    </td>
    <td>
      &nbsp;
    </td>
  </tr>


</table>


 

]]></content:encoded>
			<wfw:commentRss>http://myarch.com/comparison-of-soa-suites/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>SCA and JBI Mean Nothing for SOA?</title>
		<link>http://myarch.com/sca-and-jbi-mean-nothing-for-soa</link>
		<comments>http://myarch.com/sca-and-jbi-mean-nothing-for-soa#comments</comments>
		<pubDate>Thu, 07 Jun 2007 03:53:46 +0000</pubDate>
		<dc:creator>Alexander Ananiev</dc:creator>
				<category><![CDATA[SCA]]></category>
		<category><![CDATA[SOA]]></category>

		<guid isPermaLink="false">http://myarch.com/sca-and-jbi-mean-nothing-for-soa</guid>
		<description><![CDATA[There is an interesting and somewhat controversial interview with ZapThink's Jason Bloomberg where he claims that SCA and JBI are just going to "muddy the waters" as opposed to provide real help to SOA architects. I certainly agree with his assessment that SCA (can't really speak about JBI) is more of a generic component-centric programming [...]]]></description>
			<content:encoded><![CDATA[<p>
There is an <a href="http://searchwebservices.techtarget.com/qna/0,289202,sid26_gci1259129,00.html?track=sy80">interesting and somewhat controversial interview</a> with ZapThink's Jason Bloomberg where he claims that SCA and JBI are just going to "muddy the waters" as opposed to provide real help to SOA architects. 
<p>
I certainly agree with his assessment that SCA (can't really speak about JBI) is more of a generic component-centric programming model than a SOA implementation framework. I blogged about it <a href="http://myarch.com/is-sca-new-java-ee">before</a>. However, I do think that SCA is going to provide a lot of value in the area of application architecture and just general component reuse. A technology or a framework does not have to be about SOA to be useful.
]]></content:encoded>
			<wfw:commentRss>http://myarch.com/sca-and-jbi-mean-nothing-for-soa/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Will JAX-WS Become the Primary Mechanism for Invoking RESTful Services?</title>
		<link>http://myarch.com/will-jax-ws-become-the-primary-mechanism-for-invoking-restful-services</link>
		<comments>http://myarch.com/will-jax-ws-become-the-primary-mechanism-for-invoking-restful-services#comments</comments>
		<pubDate>Sun, 03 Jun 2007 01:15:40 +0000</pubDate>
		<dc:creator>Alexander Ananiev</dc:creator>
				<category><![CDATA[JAX-WS]]></category>
		<category><![CDATA[Web services]]></category>

		<guid isPermaLink="false">http://myarch.com/will-jax-ws-become-the-primary-mechanism-for-invoking-restful-services</guid>
		<description><![CDATA[Developers working with REST and XML/HTTP services have traditionally used light-weight APIs, such as java.net classes or Apache HttpClient. Web services APIs provided by JAX-RPC were SOAP and "enterprise" only and they required J2EE libraries. The situation changed with the release of JAX-WS and its inclusion into Java SE 6. JAX-WS supports RESTful services; also, [...]]]></description>
			<content:encoded><![CDATA[ <p>
Developers working with REST and XML/HTTP services have traditionally used light-weight APIs, such as java.net classes or <a href="http://jakarta.apache.org/commons/httpclient/">Apache HttpClient</a>. Web services APIs provided  by JAX-RPC were SOAP and "enterprise" only and  they required J2EE libraries. The situation changed with the release of JAX-WS and its inclusion into Java SE 6. JAX-WS supports RESTful services; also, its <a href="http://java.sun.com/javase/6/docs/api/javax/xml/ws/Dispatch.html">Dispatch interface</a> allows clients to work with XML directly as opposed to having to use object mapping or completely unwieldy SAAJ API. A nice example of using JAX-WS to implement a client for a RESTful service is available in <a href="http://weblogs.java.net/blog/mhadley/archive/2006/01/restful_web_ser.html ">Mark Hadley's blog</a>.
</p>
<p>
However, I don't think that JAX-WS is going to become the primary way of implementing RESTful clients just yet. In many situations, HttpClient provides more flexibility and control over HTTP calls.
</p>
<p>

For example, it is very straightforward to turn on basic authentication for a client using HttpClient APIs:
<span id="more-61"></span>
<code>
<pre>
 HttpState httpState =httpClient.getState();
 httpState.setCredentials( AuthScope.ANY, 
     new UsernamePasswordCredentials(username, password));
 // Set the authentication header on the first request, don't wait for 401
 httpClient.getParams().setAuthenticationPreemptive(true);
        
 postMethod.setDoAuthentication(true);
</pre>
</code>
<p>

Implementing the same requirement in JAX-WS is not a big deal either:
<code>
<pre>

Map<String, Object> requestContext = dispatcher.getRequestContext();
requestContext.put(BindingProvider.USERNAME_PROPERTY, username); 
requestContext.put(BindingProvider.PASSWORD_PROPERTY, password);
</pre>
</code>
<p>

However, it is not clear how to tell the client to set basic authentication header on the very request in case of the service does not issue 401 basic authentication challenge (which is pretty common). It is also not clear if there is a way to change authentication scheme (say, to digest) or authentication scope. 
</p>
<p>

There are also other examples that demonstrate that in attempt to abstract the details of the transport protocol JAX-WS limits capabilities of the clients. 
</p>
<p>
However, using JAX-WS REST capabilities still makes sense for applications that use both SOAP and RESTfull services. This allows developers to use consistent API for both types of services. Also, in some instances, a service provider may initially implement a service using XML/HTTP and later decide to switch to SOAP, say, to be able to use some of the WS-* specifications (this is actually a fairly common situation within an enterprise). In this case, using JAX-WS will certainly make the transition easier for the clients. 

]]></content:encoded>
			<wfw:commentRss>http://myarch.com/will-jax-ws-become-the-primary-mechanism-for-invoking-restful-services/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Is ESB The Mediation Infrastructure of Web Services Platform?</title>
		<link>http://myarch.com/is-esb-mediation-infrastructure-of-web-services-platform</link>
		<comments>http://myarch.com/is-esb-mediation-infrastructure-of-web-services-platform#comments</comments>
		<pubDate>Tue, 29 May 2007 00:48:07 +0000</pubDate>
		<dc:creator>Alexander Ananiev</dc:creator>
				<category><![CDATA[ESB]]></category>
		<category><![CDATA[SOA]]></category>

		<guid isPermaLink="false">http://myarch.com/is-esb-mediation-infrastructure-of-web-services-platform</guid>
		<description><![CDATA[Lori MacVitte from F5 had a few comments about my post on using XML appliances in ESB capacity. While I don't completely agree with some of her specific points about what ESB capabilities are missing from XML appliances (for example, parallel processing is employed by most appliance vendors, transactionality is also supported for relevant protocols [...]]]></description>
			<content:encoded><![CDATA[<p>
Lori MacVitte from F5 had a <a href="http://devcentral.f5.com/weblogs/macvittie/archive/2007/05/23/2844.aspx">few comments</a> about <a href="http://myarch.com/is-xml-appliance-an-ultimate-esb">my post on using XML appliances in ESB capacity</a>. While I don't completely agree with some of her specific points about what ESB capabilities are missing from XML appliances (for example, parallel processing is employed by most appliance vendors, transactionality is also supported for relevant protocols (although no XML appliance can act as an XA transaction coordinator)), the overall observation is correct – there is (and there always will be) a big difference between software-based ESBs and hardware-based XML appliances. 
</p>
<p>
Software ESBs are implemented on top of application servers or messaging products. As such, they are infinitely flexible. Even if certain feature (e.g., some fancy transformation) is not supported by the ESB product out of the box, it can always be custom-developed using Java or other language supported by the product. This custom code can use all the facilities of the underlying application server, such as transaction management, connection pooling and so forth. 
<span id="more-60"></span>
</p>
<p>
Extensibility of hardware appliances is typically very limited. This is the cost of having closed-down low-maintenance device. Allowing running arbitrary Java code on it would simply defeat the purpose of going the appliance route in the first place. There is obviously no way to run business logic on the appliance. 
</p>
<p>
In many cases, organizations implement ESBs to serve very simple needs, such as authentication/authorization, management/monitoring, schema validation and, perhaps some relatively simple transformations dealing with cleansing data formats and reconciling version incompatibilities. The actual business logic involving business process management, service orchestration and other aspects is very often pushed down to the application tier. In other words, ESB in this case is treated as a low-level integration and service management infrastructure as opposed to a container for Web services. Appliance-based ESB would fit very well to this environment. 
</p>
<p>
On the other hand, if there is a desire to use ESB as a platform and container for Web services, appliances are certainly not appropriate. Such a Web services platform acts as a next generation application server. It allows developers to implement Web services using technologies supported by the ESB (such as mediation flows and BPEL) and/or using technologies supported by the underlying application server (Java EE). Product such as WebSphere Proces Server, and, to some degree BEA AquaLogic Bus (it does not support BPEL) fit into this category. 
</p>
<p>
As a side note, I believe that ESB capabilities will be moving down the stack to the base application server products. It becomes more and more difficult for vendors to charge for application server licenses as the competition in the open source space intensifies (just look at the buzz generated by the latest version of Glass Fish). At the same time, more and more enterprise applications are being built using Web services and more and more applications become Web service consumers. This means that soon most applications will require using ESB-like integration technologies that would allow them to orchestrate and mediate services easily. So software ESB products will be used more and more as platforms for service-based applications whereas XML appliances will be playing a key role in the Web services integration/management space. 



]]></content:encoded>
			<wfw:commentRss>http://myarch.com/is-esb-mediation-infrastructure-of-web-services-platform/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

