<?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; BPEL</title>
	<atom:link href="http://myarch.com/category/soa/bpel/feed" rel="self" type="application/rss+xml" />
	<link>http://myarch.com</link>
	<description>Builds and bytes</description>
	<lastBuildDate>Sat, 28 Aug 2010 16:41:53 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<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 settle [...]]]></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>7</slash:comments>
		</item>
		<item>
		<title>Limits of Visual Service Orchestration</title>
		<link>http://myarch.com/limits-of-visual-service-orchestration</link>
		<comments>http://myarch.com/limits-of-visual-service-orchestration#comments</comments>
		<pubDate>Mon, 29 May 2006 17:16:22 +0000</pubDate>
		<dc:creator>Alexander Ananiev</dc:creator>
				<category><![CDATA[BPEL]]></category>
		<category><![CDATA[ESB]]></category>
		<category><![CDATA[SOA]]></category>

		<guid isPermaLink="false">http://myarch.com/limits-of-visual-service-orchestration</guid>
		<description><![CDATA[
Visual tools for designing message or process flows are part of many ESB 
products. BPM products supporting BPEL or BPMN also heavily rely on visual tools. 
Flowchart-like visual notation used by these tools represents a specialized 
language that includes all elements of structural programming ("if-then-else", "while" and 
so on).


Unfortunately, these languages have very limited support [...]]]></description>
			<content:encoded><![CDATA[<p>
Visual tools for designing message or process flows are part of many ESB 
products. BPM products supporting BPEL or BPMN also heavily rely on visual tools. 
Flowchart-like visual notation used by these tools represents a specialized 
language that includes all elements of structural programming ("if-then-else", "while" and 
so on).
</p>
<p>
Unfortunately, these languages have very limited support for reuse. Not all such 
languages support sub-processes (i.e., subroutines). There is no inheritance or 
extension, in other words, I can't take an existing process flow or message flow 
and change some of its logic without duplicating the logic of an existing flow. 
Lack of these facilities makes it difficult to implement complex and reusable 
process and message flows.
</p>
<p>
From my experience any real-life process flow is going to be pretty complex. 
Three-step loan approval process widely used as an example in many different 
BPEL products does not exist in reality. Real-life business processes include 
many different activities and involve many different roles. They also have to 
take into account various exceptions, not just a "happy path" scenario. For 
example, if a loan application is rejected because of a credit history, a lender 
can try to offer a loan under different terms.
</p>
<p>
Also note that there is a difference between using visual tools for modeling and 
for coding. A model does not have to include each and every detail, its main 
goal is to convey key ideas; details can be taken care of during implementation. 
Not so if we want to visually create executable code; in this case all details 
have to be accounted for.
</p>
<p>
I am also not convinced that structural programming approach that BPEL and other 
"flow" languages support is best suited for visual tools.  Structural 
programming constructs replace explicit "flow" represented by "go to". In a 
visual flow-oriented language, however, "go to" (i.e., explicitly connecting 
nodes) might be a better alternative.
</p>
<p>
I also doubt that visual approach works well for code with high cyclomatic 
complexity (and without subroutines high complexity is almost guaranteed), 
especially with high degree of nesting. Text-based representation of nested code 
blocks using indentation could be very compact. This is not the case when each 
branch has to be presented by its own "flow" of connected nodes.
</p>
<p>
So I think that text-based representation using a high-level specialized 
language could be a much better alternative for expressing process and message 
flows in SOA. This language could be a domain specific language (DSL) or a 
general purpose dynamically typed language with built-in XML and Web services 
support and other constructs required for supporting process flow. Syntax of 
this language should be simple enough and at the same time it needs to have good 
support for reuse (this may or may not require full OO support).
</p>
<p>
Visual representation of a program written in such language could still be 
supported; however I see it as a "report" that could be used to facilitate 
discussion with business users. Developers should not be required to use visual 
environment for programming; I don't think it makes anybody more productive 
relative to text-based approach (unless a flow is really simple). And I'm not 
talking about XML-based serialization of a visual flow, such as in BPEL where 
XML is so unwieldy that it is almost impossible to hand-edit it. We need a true 
powerful "service orchestration" language that will make developers (and 
business users along with them) more productive.
</p>

]]></content:encoded>
			<wfw:commentRss>http://myarch.com/limits-of-visual-service-orchestration/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BPEL, SCA and Refactoring</title>
		<link>http://myarch.com/bpel-sca-and-refactoring</link>
		<comments>http://myarch.com/bpel-sca-and-refactoring#comments</comments>
		<pubDate>Tue, 06 Dec 2005 03:24:58 +0000</pubDate>
		<dc:creator>Alexander Ananiev</dc:creator>
				<category><![CDATA[BPEL]]></category>
		<category><![CDATA[SOA]]></category>

		<guid isPermaLink="false">http://myarch.com/bpel-sca-and-refactoring</guid>
		<description><![CDATA[With the advent of SOA and SOA -related technologies and standards, such as WSDL , 
BPEL, and, more recently, SCA 
and SDO, more and more application metadata (and just plain data) is 
externalized into XML . XML is used for:




    
        Flow definitions (BPEL).
  [...]]]></description>
			<content:encoded><![CDATA[With the advent of SOA and SOA -related technologies and standards, such as WSDL , 
BPEL, and, more recently, <a href="http://www.theserverside.com/news/thread.tss?thread_id=37859" title="">SCA 
and SDO</a>, more and more application metadata (and just plain data) is 
externalized into XML . XML is used for:
</p>


<ul>
    <li>
        Flow definitions (BPEL).
    </li>
    <li>
        Interface definitions (WSDL).
    </li>
    <li>
        Component and assembly definitions (SCA).
    </li>
    <li>
        Data (SDO).
    </li>

</ul>

<p>
Business logic, however, largely remains written in Java. For many people, key 
strength of Java and Java IDEs has been very strong support for refactoring (other 
languages support refactoring as well, but in this blog I focus mostly on Java). 
In fact, in my view, refactoring made agile development possible; it finally 
combined design and coding activities into one continuous process.
</p>

<p>
Unfortunately, with more and more information going into XML files, benefits of 
pure Java refactoring are diminishing.
</p>

<p>
For example, with SOA technologies, an interface name could be used in several 
different places:
</p>


<ul>
    <li>
        WSDL file (probably in multiple places if we want to use naming conventions, e.g., 
        in “portType“ and “service“ elements).
    </li>
    <li>
        BPEL (multiple places, e.g., in “import“ and “portType“).
    </li>
    <li>
        SCA component definition file.
    </li>

</ul>
<p>
So what happens if I want to change the name of an interface or rename an 
operation? Personally I am not aware of XML refactoring support in BPEL products 
(obviously, I have not tested all of them, so I might be wrong here) and I don‘t 
expect the situation to improve when SCA /SDO are added to the mix. For example, 
is SDO property renaming going to be supported? How will it work if I use XPath 
expressions against XML -backed SDO in BPEL ?
</p>

<p>
Now, dynamic APIs are nothing new, we‘ve been dealing with XML for quite some 
time now. However, the approach in Java has always been to map XML to statically 
defined classes and so the ripple effect from, for instance, renaming was 
somewhat contained (I know that I‘m simplifying here). With BPEL and SCA , the 
problem becomes more widespread.
</p>

<p>
Also, tools for working with these technologies are supposed to rely mostly on 
visual modeling and so their users are not necessarily J2EE developers. In fact, 
the idea of BPEL is to be able to change business process-related logic quickly 
and easily. The idea of SCA (among other things) is to be able to easily wire 
and assemble components together. I think that without refactoring, the ability 
to accomplish these goals could be impaired.
</p>

<p>
I just hope that tool vendors realize this risk; otherwise we‘re in for another 
round of “XML hell”.
</p>
]]></content:encoded>
			<wfw:commentRss>http://myarch.com/bpel-sca-and-refactoring/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>BPEL as a Modeling Tool</title>
		<link>http://myarch.com/bpel-as-a-modeling-tool</link>
		<comments>http://myarch.com/bpel-as-a-modeling-tool#comments</comments>
		<pubDate>Fri, 30 Sep 2005 03:43:33 +0000</pubDate>
		<dc:creator>Alexander Ananiev</dc:creator>
				<category><![CDATA[BPEL]]></category>
		<category><![CDATA[SOA]]></category>

		<guid isPermaLink="false">http://myarch.com/bpel-as-a-modeling-tool</guid>
		<description><![CDATA[BPEL can be used to implement workflow and business processes. In theory, BPEL 
is not tied up with Web services or SOA since all J2EE BPEL vendors support 
callouts to EJB , JMS or even POJOs in their BPEL implementations (BPELWS, BPELJ 
). BPEL has some interesting capabilities, such as the support for asynchronous 
and [...]]]></description>
			<content:encoded><![CDATA[BPEL can be used to implement workflow and business processes. In theory, BPEL 
is not tied up with Web services or SOA since all J2EE BPEL vendors support 
callouts to EJB , JMS or even POJOs in their BPEL implementations (BPELWS, BPELJ 
). BPEL has some interesting capabilities, such as the support for asynchronous 
and long-running processes, transaction compensation, and integration with UI 
for human activities. But the main point of BPEL is really its visual nature, 
the fact that the BPEL flow can be modeled in a visual designer tool. If not for 
that, it would&#8217;ve been more efficient to provide the aforementioned capabilities 
in the form of yet another Java API . The fact that BPEL is &#8220;visual&#8221; should make 
it easier to gather requirements and communicate changes to business 
stakeholders. Some vendors even go as far as proclaiming that now a business 
analyst can change and optimize a business process without requiring the 
involvement of a software developer.
</p>

<p>
However, for any real-life system some logic would still remain in the Java code. 
At the very least, the Java code would have some kind of persistence support for 
data transferred by the BPEL flow. More likely, complex business rules, the ones 
that would be too unwieldy to implement in BPEL will also be coded in Java. Also, 
since BPEL does not have the reuse capabilities of an OO language, anything 
reusable will probably be coded in Java (although, a piece of reusable logic 
could also be implemented as a reusable BPEL subprocess).
</p>

<p>
So on one hand, BPEL should be pretty high level and the business process‘ 
activities (and, therefore services APIs) should be coarse-grained. But this 
will externalize only the most rudimentary logic of the system. Granted, this 
high level flow could still be useful if the goal is to integrate different (probably 
heterogeneous) systems, but if we want to use BPEL for its process modeling 
capabilities, this may prove insufficient. Devil is always in details and so 
most likely in real life business process changes or optimization will require 
changes to these complex business rules implemented in Java. In other words, no 
matter how we try, business people still need to work together with the 
developers, make sure that the use case are right, changes are thoroughly  
tested and so on.
</p>

<p>
On the other hand, implementing very complex detailed business processes in BPEL 
is probably difficult at best. Visual modeling approach has its natural limits 
and so at some point it will become much easier to fire up a Java IDE . I guess 
it is also possible to hand-edit BPEL XML code, although this probably won‘t be 
pretty either, using XML as a procedural programming language has its limits too.
</p>

<p>
So what is the right usage of BPEL ? Is just a Web services orchestration 
language or a general purpose business modeling environment?
</p>

]]></content:encoded>
			<wfw:commentRss>http://myarch.com/bpel-as-a-modeling-tool/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
