You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ode.apache.org by bu...@apache.org on 2012/12/11 13:48:21 UTC

svn commit: r841679 [1/3] - in /websites/staging/ode/trunk/content: ./ developerguide/ userguide/

Author: buildbot
Date: Tue Dec 11 12:48:20 2012
New Revision: 841679

Log:
Staging update by buildbot for ode

Added:
    websites/staging/ode/trunk/content/developerguide/
    websites/staging/ode/trunk/content/developerguide/architectural-overview.html
    websites/staging/ode/trunk/content/developerguide/atomic-scopes-extension-for-bpel.html
    websites/staging/ode/trunk/content/developerguide/eclipse-ide.html
    websites/staging/ode/trunk/content/developerguide/index.html
    websites/staging/ode/trunk/content/developerguide/jacob.html
    websites/staging/ode/trunk/content/developerguide/release-guidelines.html
    websites/staging/ode/trunk/content/developerguide/stateful-exchange-protocol.html
    websites/staging/ode/trunk/content/userguide/
    websites/staging/ode/trunk/content/userguide/index.html
    websites/staging/ode/trunk/content/userguide/jbi-deployment.html
    websites/staging/ode/trunk/content/userguide/smx4-osgi-deployment.html
    websites/staging/ode/trunk/content/userguide/upgrading-ode.html
    websites/staging/ode/trunk/content/userguide/war-deployment.html
Removed:
    websites/staging/ode/trunk/content/architectural-overview.html
    websites/staging/ode/trunk/content/atomic-scopes-extension-for-bpel.html
    websites/staging/ode/trunk/content/developer-guide.html
    websites/staging/ode/trunk/content/eclipse-ide.html
    websites/staging/ode/trunk/content/jacob.html
    websites/staging/ode/trunk/content/jbi-deployment.html
    websites/staging/ode/trunk/content/release-guidelines.html
    websites/staging/ode/trunk/content/smx4-osgi-deployment.html
    websites/staging/ode/trunk/content/stateful-exchange-protocol.html
    websites/staging/ode/trunk/content/upgrading-ode.html
    websites/staging/ode/trunk/content/user-guide.html
    websites/staging/ode/trunk/content/war-deployment.html
Modified:
    websites/staging/ode/trunk/content/   (props changed)
    websites/staging/ode/trunk/content/sitemap.html

Propchange: websites/staging/ode/trunk/content/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Tue Dec 11 12:48:20 2012
@@ -1 +1 @@
-1420118
+1420130

Added: websites/staging/ode/trunk/content/developerguide/architectural-overview.html
==============================================================================
--- websites/staging/ode/trunk/content/developerguide/architectural-overview.html (added)
+++ websites/staging/ode/trunk/content/developerguide/architectural-overview.html Tue Dec 11 12:48:20 2012
@@ -0,0 +1,153 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Architectural Overview</title>
+    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+    <meta property="og:image" content="http://ode.apache.org/img/ode-logo.png" />
+
+    <link href="/css/application.min.css" rel="stylesheet" media="screen">
+    
+
+    
+    
+  </head>
+  <body>
+
+    <!-- Navbar -->
+    <div class="navbar navbar-fixed-top">
+      <div class="navbar-inner">
+        <div class="container">
+          <button type="button" class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+          </button>
+          <a class="brand" href="/index.html">Apache ODE</a>
+          <div class="nav-collapse collapse">
+            <ul class="nav">
+              <li class="">
+                <a href="/getting-ode.html">Getting ODE</a>
+              </li>
+              <li class="active dropdown">
+                <a href="/user-guide.html" class="dropdown-toggle" data-toggle="dropdown" data-target="#">Documentation<b class="caret"></b></a>
+                <ul class="dropdown-menu">
+                  <li><a href="/user-guide.html">User Guide</a></li>
+                  <li><a href="/developer-guide.html">Developer Guide</a></li>
+                  <li><a href="/ws-bpel-20-specification-compliance.html">WS-BPEL Compliance</a></li>
+                  <li><a href="/bpel-extensions.html">WS-BPEL Extensions</a></li>
+                  <li><a href="/resource-services.html">Resources &amp; Services</a></li>
+                  <li><a href="/javadoc/">Javadoc</a></li>
+                </ul>
+              </li>
+              <li class=" dropdown">
+                <a href="#" class="dropdown-toggle" data-toggle="dropdown">Contributing<b class="caret"></b></a>
+                <ul class="dropdown-menu">
+                  <li><a href="/mailing-lists.html">Mailing Lists</a></li>
+                  <li><a href="/building-ode.html">Building ODE</a></li>
+                  <li><a href="/source-code.html">Source Code</a></li>
+                  <li><a href="http://issues.apache.org/jira/browse/ODE">Bug Tracking</a></li>
+                  <li><a href="/contributors.html">Contributors</a></li>
+                  <li><a href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li>
+                </ul>
+              </li>
+              <li class="dropdown">
+                <a href="http://www.apache.org" class="dropdown-toggle" data-toggle="dropdown" data-target="#">The ASF<b class="caret"></b></a>
+                <ul class="dropdown-menu">
+                  <li><a href="http://www.apache.org">Apache Software Foundation</a></li>
+                  <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+                  <li><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a></li>
+                  <li><a href="http://www.apache.org/security/">Security</a></li>
+                </ul>
+              </li>
+            </ul>
+          </div>
+        </div>
+      </div>
+    </div>
+
+    <!-- Subhead -->
+    
+    <header class="jumbotron subhead" id="overview">
+      <div class="container">
+        
+        <h1>Architectural Overview</h1>
+        
+      </div>
+    </header>
+    
+
+    <!-- Content -->
+    <div class="container">
+      
+      <div class="row">
+        <div class="span12">
+          <p><a name="ArchitecturalOverview-Introduction"></a></p>
+<h2 id="introduction">Introduction</h2>
+<p>The purpose of this document is to outline the high-level architecture of Apache ODE. First, we describe the architectural objectives, then the various ODE components and how they interact. It is assumed that the reader is familiar with BPEL and the BPEL specification.</p>
+<p><a name="ArchitecturalOverview-Objectives"></a></p>
+<h2 id="objectives">Objectives</h2>
+<p>The principal objective in the development of ODE was to create a reliable, compact, and embedable component capable of managing the execution of long-running business processes defined using the BPEL process description language. The focus has been on developing small modules with minimal dependencies that could be assembled (and easily reassembled) to construct a full featured BPMS.</p>
+<p><a name="ArchitecturalOverview-Components"></a></p>
+<h2 id="components">Components</h2>
+<p>The key components of the ODE architecture include the ODE BPEL Compiler, ODE BPEL Engine Runtime, ODE Data Access Objects (DAOs), ODE Integration Layers (ILs), and user tooling. A high-level depiction of the relationships between these components is shown in the Figure below. It can be summarized as: "The compiler converts BPEL documents into a form executable by the run-time, which executes them in a reliable fashion by relying on a persistent store accessible via the DAOs; the run-time executes in the context of an Integration Layer which connects the engine to the broader execution environment ( i.e. the "world").</p>
+<p><img alt="ODE Architecture" src="/img/OdeArchitecture.png" /></p>
+<p><a name="ArchitecturalOverview-ODEBPELCompiler"></a></p>
+<h3 id="ode-bpel-compiler">ODE BPEL Compiler</h3>
+<p>The BPEL compiler is responsible for the conversion of the source BPEL artifacts (i.e. BPEL process documents, WSDLs, and schemas) into a compiled representation suitable for execution. The output of the compiler is either a "good" compiled representation, or a list of error messages indicating problems with the source artefacts.</p>
+<p>The compiled BPEL representation generated by the compiler is an object model similar in structure to the underlying BPEL process document. However, the compiled representation has resolved the various named references present in the BPEL (such as variable names), internalized the required WSDL and type information, and generated various constructs (e.g. default compensation handlers). The compiled representation (typically a file with the .cbp extension) is the sole artifact required by the BPEL runtime.</p>
+<p><a name="ArchitecturalOverview-ODEBPELEngineRuntime"></a></p>
+<h3 id="ode-bpel-engine-runtime">ODE BPEL Engine Runtime</h3>
+<p>The ODE BPEL Engine Runtime ("runtime") is found in the bpel-runtime module and provides for the execution of compiled BPEL processes. The runtime handles the dirty work of process execution by providing implementations of the various BPEL constructs. The runtime also implements the logic necessary to determine when a new instance should be created, and to which instance an incoming message should be delivered. Finally, the runtime implements the Process Management API that is used by user tooling to interact with the engine.</p>
+<p>To achieve reliable execution of processes in unreliable environments, the runtime relies on Data Access Objects (DAOs) to provide persistence facilities. The implementation of these DAOs can be customized, but is typically provided by a transactional relational database. The DAOs are described in more detail in the next section.</p>
+<p>The runtime implementation of BPEL constructs at the instance level is via ODE's Java Concurrent Objects (<a href="jacob.html">JaCOb</a>) framework. <a href="jacob.html">JaCOb</a> provides an application-level concurrency mechanism (i.e. it does not rely on threads) and a transparent mechanism for interrupting execution and persisting execution state. <a href="jacob.html">JaCOb</a> is in very large part a Java implementation of the ACTORS [<a href="agha.html">Agha</a>] concurrency model and shares many features with process algebras such as &pi;-calculus. Essentially, <a href="jacob.html">JaCOb</a> provides a persistent virtual machine for executing BPEL constructs.</p>
+<p><a name="ArchitecturalOverview-ODEDataAccessObjects"></a></p>
+<h3 id="ode-data-access-objects">ODE Data Access Objects</h3>
+<p>ODE Data Access Objects mediate the interaction between the BPEL Engine Runtime and an underlying data store. Typically the data store is a JDBC relational database: in this case, the DAOs is implemented via the OpenJPA data access library. It is possible to create custom DAO implementations that employ a mechanism other than JDBC to achieve persistence, although no such implementation is provided. The BPEL Engine Runtime requires DAO objects to deal with the following persistence issues:</p>
+<ul>
+<li>active instances -- keeping track of which instances have been created</li>
+<li>message routing -- which instance is waiting for which message</li>
+<li>variables -- the values of the BPEL variables for each instance</li>
+<li>partner links -- the values of the BPEL partner links for each instance</li>
+<li>process execution state -- the serialized state of the <a href="jacob.html">JaCOb</a> "persistent virtual machine"</li>
+</ul>
+<p>For the OpenJPA/JDBC DAO implementation, the relational structure used to provide the above is shown in TODO.</p>
+<p><a name="ArchitecturalOverview-ODEIntegrationLayers"></a></p>
+<h3 id="ode-integration-layers">ODE Integration Layers</h3>
+<p>The ODE BPEL Engine Runtime cannot exist in a vacuum: by itself it is incapable of affecting any interaction with the outside world. For this it relies on an the ODE Integration Layers (ILs). Integration Layers embed the runtime in an execution environment. For example, there are integration layers for AXIS2 and JBI. The fundamental function of an IL is to provide communication channels for the runtime. The AXIS2 IL achieves this by using the AXIS2 libraries to allow the runtime to communicate via Web Service interactions. The JBI IL achieves this same goal by tying the runtime into the JBI message bus.</p>
+<p>In addition to communication, an IL provides the runtime with a thread scheduling mechanisms, and manages the life-cycle of the runtime (i.e. configuring and starting the runtime).</p>
+        </div>
+      </div>
+      
+
+      <!-- Footer -->
+      <footer class="footer">
+        <div class='row'>
+          <div class='span3'>
+            <img src="/img/asf.png" alt="Apache Software Foundation"/>
+          </div>
+          <div class='span9'>
+            <p><strong>Apache ODE</strong><sup>&trade;</sup> is a top-level project at the <a href="http://www.apache.org">Apache Software Foundation<sup>&trade;</sup></a>,
+            having graduated from the ASF Incubator in July 2007. Through a collaborative and meritocratic development process, Apache
+            projects deliver enterprise-grade, freely available software products that
+            attract large communities of users.</p>
+            <p>Apache ODE, ODE, Apache, the Apache feather logo, and the Apache ODE project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p>
+          </div>
+        </div>
+      </footer>
+    </div> <!-- /container -->
+    <script src="http://code.jquery.com/jquery-latest.js"></script>
+    <script src="/js/bootstrap.min.js"></script>
+    <script type="text/javascript">
+    var _gaq = _gaq || [];
+    _gaq.push(['_setAccount', 'UA-36293077-1']);
+    _gaq.push(['_trackPageview']);
+
+    (function() {
+      var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+      ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+      var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+    })();
+
+  </script>
+  </body>
+</html>
\ No newline at end of file

Added: websites/staging/ode/trunk/content/developerguide/atomic-scopes-extension-for-bpel.html
==============================================================================
--- websites/staging/ode/trunk/content/developerguide/atomic-scopes-extension-for-bpel.html (added)
+++ websites/staging/ode/trunk/content/developerguide/atomic-scopes-extension-for-bpel.html Tue Dec 11 12:48:20 2012
@@ -0,0 +1,203 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Atomic Scopes Extension for BPEL</title>
+    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+    <meta property="og:image" content="http://ode.apache.org/img/ode-logo.png" />
+
+    <link href="/css/application.min.css" rel="stylesheet" media="screen">
+    
+
+    
+    
+  </head>
+  <body>
+
+    <!-- Navbar -->
+    <div class="navbar navbar-fixed-top">
+      <div class="navbar-inner">
+        <div class="container">
+          <button type="button" class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+          </button>
+          <a class="brand" href="/index.html">Apache ODE</a>
+          <div class="nav-collapse collapse">
+            <ul class="nav">
+              <li class="">
+                <a href="/getting-ode.html">Getting ODE</a>
+              </li>
+              <li class="active dropdown">
+                <a href="/user-guide.html" class="dropdown-toggle" data-toggle="dropdown" data-target="#">Documentation<b class="caret"></b></a>
+                <ul class="dropdown-menu">
+                  <li><a href="/user-guide.html">User Guide</a></li>
+                  <li><a href="/developer-guide.html">Developer Guide</a></li>
+                  <li><a href="/ws-bpel-20-specification-compliance.html">WS-BPEL Compliance</a></li>
+                  <li><a href="/bpel-extensions.html">WS-BPEL Extensions</a></li>
+                  <li><a href="/resource-services.html">Resources &amp; Services</a></li>
+                  <li><a href="/javadoc/">Javadoc</a></li>
+                </ul>
+              </li>
+              <li class=" dropdown">
+                <a href="#" class="dropdown-toggle" data-toggle="dropdown">Contributing<b class="caret"></b></a>
+                <ul class="dropdown-menu">
+                  <li><a href="/mailing-lists.html">Mailing Lists</a></li>
+                  <li><a href="/building-ode.html">Building ODE</a></li>
+                  <li><a href="/source-code.html">Source Code</a></li>
+                  <li><a href="http://issues.apache.org/jira/browse/ODE">Bug Tracking</a></li>
+                  <li><a href="/contributors.html">Contributors</a></li>
+                  <li><a href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li>
+                </ul>
+              </li>
+              <li class="dropdown">
+                <a href="http://www.apache.org" class="dropdown-toggle" data-toggle="dropdown" data-target="#">The ASF<b class="caret"></b></a>
+                <ul class="dropdown-menu">
+                  <li><a href="http://www.apache.org">Apache Software Foundation</a></li>
+                  <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+                  <li><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a></li>
+                  <li><a href="http://www.apache.org/security/">Security</a></li>
+                </ul>
+              </li>
+            </ul>
+          </div>
+        </div>
+      </div>
+    </div>
+
+    <!-- Subhead -->
+    
+    <header class="jumbotron subhead" id="overview">
+      <div class="container">
+        
+        <h1>Atomic Scopes Extension for BPEL</h1>
+        
+      </div>
+    </header>
+    
+
+    <!-- Content -->
+    <div class="container">
+      
+      <div class="row">
+        <div class="span12">
+          <p><a name="AtomicScopesExtensionforBPEL-Introduction"></a></p>
+<h1 id="introduction">Introduction</h1>
+<p>The goal of this specification is to provide a simple extension to WS-BPEL 2.0 that enables atomic scopes. Atomic scopes allow the process definition to demarcate atomic transactions against any number of invoked services, and participate in a distributed transaction.</p>
+<p>The extension defines atomic scope as an extension of the already defined isolated scopes. It describes the atomic semantics for state changing operatings, such as assignments, for service invocations and for receiving and responding to service calls. It also covers the use of compensation handlers and event handlers.</p>
+<p><a name="AtomicScopesExtensionforBPEL-AtomicScopes"></a></p>
+<h1 id="atomic-scopes">Atomic Scopes</h1>
+<p>An <em>atomic scope</em> is marked with the attribute <code>atomic</code> set to <code>yes</code>. This attribute applies to processes, <em>scope</em> activities and event handlers (their implicit scopes).</p>
+<p>Atomic scopes provide isolation semantics, inheriting these semantics from isolated scopes. However, atomic scopes are not isolated scopes, specifically their compensation handler do not have isolated semantics. Atomic scopes cannot be nested inside atomic scopes or isolated scopes, and cannot enclose isolated scopes.</p>
+<p><a name="AtomicScopesExtensionforBPEL-StateChangesandAssignments"></a></p>
+<h1 id="state-changes-and-assignments">State Changes and Assignments</h1>
+<p>Atomic scopes provide '<em>all-or-nothing</em>'' behavior for all state changes made during the execution of activities inside the scope, and the status of all links crossing the scope boundary.</p>
+<p>State changes include changes to variables, partner links and correlations sets declared in any scope enclosing the atomic scope. These state changes are not visible outside the atomic scope until the scope activity completes (successfully or unsuccessfully). These state changes are discarded if the atomic scope throws a fault in the enclosed scope.</p>
+<p>The status of links that cross the boundary of an atomic scope and have a source activity inside the atomic scope is set only when the scope completes. If the scope completes without throwing a fault, the status of these links is set as per the result of their transition conditions. If the scope throws a fault, the status of all these links is set to false.</p>
+<p>The status of message exchange is not affected by the atomic scope. Specifically all message exchanges made inside the atomic scope must complete before the scope is allowed to complete.</p>
+<p>Since atomic scopes provide all-or-nothing semantics, <em>assign</em> activities inside the scope are not by themselves atomic. Rather, all <em>assign</em> activities occurring in the scope are collectively atomic, since the scope will discard all state changes if it throws a fault.</p>
+<p>However, catching and handling the <code>bpws:selectionFailure</code> fault or any other fault throws by an <em>assign</em> activity could lead to partial assignments if the scope is allowed to complete. If fault handlers must be used inside the atomic scope, use them with discretion. This rule also applies to other unintended consequences of indiscriminately catching and handling faults inside an atomic scope.</p>
+<p><a name="AtomicScopesExtensionforBPEL-ActivitiesThatWait"></a></p>
+<h1 id="activities-that-wait">Activities That Wait</h1>
+<p>Since atomic scopes are intended to complete in a short duration of time, they are not allowed to wait for events occurring outside the scope, with the exception of events that trigger the scope.</p>
+<p>Atomic scope are not allowed to use the <em>receive</em>, <em>wait</em> and <em>pick</em> activities, except for the case described below. Atomic scopes are not allowed to use event handlers, including not in any scope nested within the atomic scope.</p>
+<p>An atomic scope may begin by receiving a message from a partner. In this case it can use the <em>receive</em> activity if that <em>receive</em> activity is the first basic activity to execute in the scope and no other basic activity is allowed to execute before it. Alternatively, it can use a <em>pick</em> activity with two or more <em>onMessage</em> handlers if no other basic or <em>pick</em> activity is allowed to execute before it.</p>
+<p>Such a scope may begin with the block activity <em>sequence</em> or <em>flow</em> as long as it can guarantee that the first basic activity to execute is the <em>receive</em> or <em>pick</em> activity. These restrictions are similar to the start activity of a process.</p>
+<p>An <em>onEvent</em> event handler can use the <code>atomic</code> attribute to specify atomic behavior for its implicit scope. In this case, the received message is treated as if the event handler started with a <em>receive</em> activity for that message. All other atomic scope restrictions are applied to the implicit scope created by the event handler.</p>
+<p>If an atomic scope has a <em>receive</em> activity for a request-response operation, it must also include all <em>reply</em> activities that may send the corresponding response message. Specifically, it is an error for a <em>receive</em>/<em>reply</em> pair to cross the boundaries of an atomic scope.</p>
+<p>An atomic scope is allowed to include an activity that is the target of a link, where the source activity resides outside the scope, only if the status of the link is determined before the atomic scope begins executing that activity.</p>
+<p>If the process engine detects a violation of these restrictions if must throw an <code>atomic:scopeRollback</code> fault. If the process engine detects such a violation during static analysis, it should reject the process definition.</p>
+<p><a name="AtomicScopesExtensionforBPEL-FaultsandTermination"></a></p>
+<h1 id="faults-and-termination">Faults and Termination</h1>
+<p>Atomic scopes complete with one of three possible outcomes:</p>
+<ol>
+<li><em>Successful Completion</em> -- The <em>scope</em> activity, process or event handler completes without throwing a fault. For the <em>scope</em> activity this also includes evaluation of all transition conditions. All state changes made by the scope become visible to enclosing scopes and the compensation handler is installed.</li>
+<li><em>Unsuccessful Completion</em> -- A fault is thrown in the atomic scope and is handled by a fault handler. The behavior is similar to successful completion with the exception that the compensation handler is not installed.</li>
+<li><em>Scope Rollback</em> -- A fault is thrown by the <em>scope</em> activity or event handler, or the process terminates. All state changes made by the scope are discarded, no compensation handler is installed, and the status of all links originating from the scope is set to false.</li>
+</ol>
+<p>The first two outcomes are similar to the successful and unsuccessful completion of non-atomic scopes. The last outcome is the case of a non-atomic scope throwing a fault, with the exception that all state changes are discarded.</p>
+<p>An atomic scope that catches a fault and its fault handler rethrows that fault or throws a different fault, would result in the rollback outcome and discard all state changes.</p>
+<p>It is recommended not to use fault handlers inside atomic scopes, since atomic scopes already provide a mechanism for dealing with failure, and indiscreminate use of fault handlers could lead to partial state changes and other unexpected results. However, there are some cases where fault handling is necessary, and the spec allows the use of fault handlers to deal with these situations.</p>
+<p>Atomic scopes are intended to execute for a short duration of time, in particular since they may tie up global resources beyond the specific process. Like atomic activities, they cannot be interrupted by a fault thrown in an enclosing scope. However, implementations would terminate scopes that take too long to complete. It is up to the implementation to decide on the appropriate time duration.</p>
+<p>In terminating the atomic scope, the implementation must force a rollback outcome, effectively throwing an <code>atomic:scopeRollback</code> fault in the enclosing scope. The behavior is similar to the way termination occurs in non-atomic scopes, with the exception that the scope has to terminate quickly and all state changes are discarded. As such, atomic scopes are not allowed to use termination handlers.</p>
+<p><a name="AtomicScopesExtensionforBPEL-Compensation"></a></p>
+<h1 id="compensation">Compensation</h1>
+<p>The compensation handler associated with an atomic scope is not by itself atomic. Some atomic scopes can use atomic compensation, however, other atomic scopes can only use non-atomic compensation. We cannot enforce an atomic scope to have an atomic compensation handler. To perform atomic compensation, the compensation handler may itself use an atomic scope.</p>
+<p>The behavior of a compensation handler depends not on the scope in which it is defined, but the scope in which it is invoked. This could lead to situations where the compensation handler is potentially invoked in three different and incompatible scopes.</p>
+<p>Consider a non-atomic outer scope <em>So</em>, enclosing an atomic scope <em>Sa</em>, itself enclosing an inner scope <em>Si</em> (perhaps an <em>invoke</em> activity). The scope <em>Si</em> installs a compensation handler <em>Ci</em>. The default fault handler associated with the scope <em>Si</em> will invoke the compensation handler <em>Ci</em> in that atomic scope, and then discard all state changes (by rethrowing the fault).</p>
+<p>The atomic scope <em>Sa</em> can have a compensation handler <em>Ca</em> that invokes the compensation handler <em>Ci</em> from a non-atomic scope. However, the outer scope <em>So</em> may have a compensation handler that invokes <em>Ca</em> and through it <em>Ci</em> from within an atomic scope. Besides these three explicitly defined handlers, we also have to consider default and defined compensation, fault and termination handlers of each enclosing scope. This makes it hard to define compensation handlers that execute reliably.</p>
+<p>Atomic scopes are generally simple in their logic and do not benefit much from the ability to compose compensation handlers though invocation of inner compensation handlers. In favor of simplicity the specification imposes the following constraints:</p>
+<ol>
+<li><em>Installing</em> -- Scopes nested inside an atomic scope (including the <em>invoke</em> activity shortcut) are not allowed to define a compensation handler.</li>
+<li><em>Invoking</em> -- Atomic scopes are not allowed to invoke any compensation handler through use of the <em>compensate</em> and <em>compensateScope</em> activities (or any other mechanism).</li>
+</ol>
+<p>Since scopes nested inside an atomic scope are not allowed to install compensation handlers, the default fault handling behavior of an atomic scope is to rethrow the fault. The behavior is consistent with the outcome that discards all state changes (scope rollback).</p>
+<p>Since atomic scopes are not allowed to invoke compensation handlers explicitly, and are not allowed to enclose compensation handler, a compensation handler is never invoked from within an atomic scope, explicitly of from a default compensation handler or fault handler.</p>
+<p><a name="AtomicScopesExtensionforBPEL-WebServiceInvocation"></a></p>
+<h1 id="web-service-invocation">Web Service Invocation</h1>
+<p>Atomic scopes are primarily used to provide all-or-nothing behavior that includes Web service invocations. As such they must use appropriate protocols that guarantee operations complete only if the scope completes, and rollback if the scope outcome is a rollback.</p>
+<p><a name="AtomicScopesExtensionforBPEL-Request-ResponseOperations"></a></p>
+<h2 id="request-response-operations">Request-Response Operations</h2>
+<p>The atomic scope invokes a service using a distributed transaction protocol (e.g. <em>WS-AtomicTransaction</em>) to propagate a transaction context to the invoked service. The invoked service enrolls in the transaction and participates in determining the transaction outcome. An atomic scope must use the same transaction context with all services invoked in that scope.</p>
+<p>An atomic scope that begins by receiving a message using a distributed transaction protocol must enroll in the transaction and participate in determining the outcome of that transaction. The atomic scope must then use that transaction context with all service invocations. If the scope begins without receiving a message, or receives a message without using a distributed transaction protocol, it creates its own transaction context.</p>
+<p>The following rules govern the outcome of the atomic scope and associated distributed transaction:</p>
+<ol>
+<li><em>Commit</em> -- The atomic scope can complete, successfully or unsuccessfully, only if the transaction outcome has been determined to be <em>commit</em>.</li>
+<li><em>Rollback on fault</em> -- If the atomic scope throws a fault, it must vote for the outcome of <em>rollback</em>. Therefore, it must determine that it can complete before allowing the transaction outcome of <em>commit</em>.</li>
+<li><em>Fault on rollback</em> -- If the transaction outcome is <em>rollback</em> and the atomic scope has not thrown a fault, then it must throw the fault <code>atomic:scopeRollback</code>.</li>
+<li><em>Retry</em> -- In cases 2 and 3, when the atomic scope creates the transaction context, the implementation is allowed to rollback the transaction and execute the scope again using a different transaction context.</li>
+</ol>
+<p>The <em>invoke</em> activity is not allowed to use the <code>atomic</code> attribute as a shortcut for a scope. However, it is allowed to use the <code>atomic</code> attribute with the value <code>no</code> to invoke a service without using a distributed transaction protocol. Such an invocation does not affect the rules above, but could break the isolation and atomicity semantics of the distributed transaction.</p>
+<p>In either case, the service must be invoked using a synchronous protocol, such as sending the request and response messages over the same HTTP connection.</p>
+<p><a name="AtomicScopesExtensionforBPEL-One-WayOperations"></a></p>
+<h2 id="one-way-operations">One-Way Operations</h2>
+<p>The atomic scope invokes a service using a one-way operation by sending the message only if the scope completes. If the scope throws a fault, the message is discarded. No transaction context is propagated to the invoked service, since the transaction must commit before the message is sent.</p>
+<p>An atomic scope that receives a message from a one-way operation consumes the message only if the scope activity completes. If the scope throws a fault, the message is not consumed. As with one-way <em>invoke</em>, the one-way <em>receive</em> activity does not use a distributed transaction protocol.</p>
+<p>A message that was <em>consumed</em> will not be available again to the process. A message that was not consumed may be available again to be received by a different <em>receive</em> activity, or by the same <em>receive</em> activity if the atomic scope is restarted. The availability of messages not consumed is left up to the implementation, this specification does not address the possibility of message loss.</p>
+<p><a name="AtomicScopesExtensionforBPEL-Concurrency"></a></p>
+<h2 id="concurrency">Concurrency</h2>
+<p>Performing concurrent service invocations using the same transaction context can lead to a diamond scenario, whereby two services are operating on the same shared resource without any means to coordinate their work. Such scenarios are impossible to detect by looking at the process definition alone, and the risk from failure outweighs any benefits from allowing them.</p>
+<p>In addition, <em>assign</em> activities are not atomic when enclosed in an atomic scope. As such, atomic scopes are not allowed to perform basic activities concurrently. Atomic scopes that use parallel composition such as the <em>flow</em> and <em>foreach</em> activity must serialize all basic activities with respect to each other. Basic activities can assume they are not executed concurrently, but cannot assume any order of execution unless they use links to establish dependencies.</p>
+<p><a name="AtomicScopesExtensionforBPEL-Appendix"></a></p>
+<h1 id="appendix">Appendix</h1>
+<p>Stuff that comes here:
+<em> Namespace URL.
+</em> Syntax for atomic attribute on scope/invoke.
+<em> Definition of atomic:rollback fault.
+</em> Reference to relevant specifications.</p>
+        </div>
+      </div>
+      
+
+      <!-- Footer -->
+      <footer class="footer">
+        <div class='row'>
+          <div class='span3'>
+            <img src="/img/asf.png" alt="Apache Software Foundation"/>
+          </div>
+          <div class='span9'>
+            <p><strong>Apache ODE</strong><sup>&trade;</sup> is a top-level project at the <a href="http://www.apache.org">Apache Software Foundation<sup>&trade;</sup></a>,
+            having graduated from the ASF Incubator in July 2007. Through a collaborative and meritocratic development process, Apache
+            projects deliver enterprise-grade, freely available software products that
+            attract large communities of users.</p>
+            <p>Apache ODE, ODE, Apache, the Apache feather logo, and the Apache ODE project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p>
+          </div>
+        </div>
+      </footer>
+    </div> <!-- /container -->
+    <script src="http://code.jquery.com/jquery-latest.js"></script>
+    <script src="/js/bootstrap.min.js"></script>
+    <script type="text/javascript">
+    var _gaq = _gaq || [];
+    _gaq.push(['_setAccount', 'UA-36293077-1']);
+    _gaq.push(['_trackPageview']);
+
+    (function() {
+      var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+      ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+      var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+    })();
+
+  </script>
+  </body>
+</html>
\ No newline at end of file

Added: websites/staging/ode/trunk/content/developerguide/eclipse-ide.html
==============================================================================
--- websites/staging/ode/trunk/content/developerguide/eclipse-ide.html (added)
+++ websites/staging/ode/trunk/content/developerguide/eclipse-ide.html Tue Dec 11 12:48:20 2012
@@ -0,0 +1,153 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Eclipse IDE</title>
+    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+    <meta property="og:image" content="http://ode.apache.org/img/ode-logo.png" />
+
+    <link href="/css/application.min.css" rel="stylesheet" media="screen">
+    
+
+    
+    
+  </head>
+  <body>
+
+    <!-- Navbar -->
+    <div class="navbar navbar-fixed-top">
+      <div class="navbar-inner">
+        <div class="container">
+          <button type="button" class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+          </button>
+          <a class="brand" href="/index.html">Apache ODE</a>
+          <div class="nav-collapse collapse">
+            <ul class="nav">
+              <li class="">
+                <a href="/getting-ode.html">Getting ODE</a>
+              </li>
+              <li class="active dropdown">
+                <a href="/user-guide.html" class="dropdown-toggle" data-toggle="dropdown" data-target="#">Documentation<b class="caret"></b></a>
+                <ul class="dropdown-menu">
+                  <li><a href="/user-guide.html">User Guide</a></li>
+                  <li><a href="/developer-guide.html">Developer Guide</a></li>
+                  <li><a href="/ws-bpel-20-specification-compliance.html">WS-BPEL Compliance</a></li>
+                  <li><a href="/bpel-extensions.html">WS-BPEL Extensions</a></li>
+                  <li><a href="/resource-services.html">Resources &amp; Services</a></li>
+                  <li><a href="/javadoc/">Javadoc</a></li>
+                </ul>
+              </li>
+              <li class=" dropdown">
+                <a href="#" class="dropdown-toggle" data-toggle="dropdown">Contributing<b class="caret"></b></a>
+                <ul class="dropdown-menu">
+                  <li><a href="/mailing-lists.html">Mailing Lists</a></li>
+                  <li><a href="/building-ode.html">Building ODE</a></li>
+                  <li><a href="/source-code.html">Source Code</a></li>
+                  <li><a href="http://issues.apache.org/jira/browse/ODE">Bug Tracking</a></li>
+                  <li><a href="/contributors.html">Contributors</a></li>
+                  <li><a href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li>
+                </ul>
+              </li>
+              <li class="dropdown">
+                <a href="http://www.apache.org" class="dropdown-toggle" data-toggle="dropdown" data-target="#">The ASF<b class="caret"></b></a>
+                <ul class="dropdown-menu">
+                  <li><a href="http://www.apache.org">Apache Software Foundation</a></li>
+                  <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+                  <li><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a></li>
+                  <li><a href="http://www.apache.org/security/">Security</a></li>
+                </ul>
+              </li>
+            </ul>
+          </div>
+        </div>
+      </div>
+    </div>
+
+    <!-- Subhead -->
+    
+    <header class="jumbotron subhead" id="overview">
+      <div class="container">
+        
+        <h1>Eclipse IDE</h1>
+        
+      </div>
+    </header>
+    
+
+    <!-- Content -->
+    <div class="container">
+      
+      <div class="row">
+        <div class="span12">
+          <p><a name="EclipseIDE-DevelopingOdewiththeEclipseIDE"></a></p>
+<h2 id="developing-ode-with-the-eclipse-ide">Developing ODE with the Eclipse IDE</h2>
+<p>First, be sure to read <a href="building-ode.html">Building ODE</a> to learn how to install Ruby, Rake and Buildr.</p>
+<p><a name="EclipseIDE-1.BuildOde"></a></p>
+<h3 id="1-build-ode">1. Build ODE</h3>
+<p>At the root of the checkout, run</p>
+<div class="codehilite"><pre>buildr package
+</pre></div>
+
+
+<p><a name="EclipseIDE-2.GeneratetheEclipseprojectfiles"></a></p>
+<h3 id="2-generate-the-eclipse-project-files">2. Generate the Eclipse project files</h3>
+<p>Still in the root,</p>
+<div class="codehilite"><pre>buildr eclipse
+</pre></div>
+
+
+<p><a name="EclipseIDE-3.ImportprojectsfilesintoEclipse"></a></p>
+<h3 id="3-import-projects-files-into-eclipse">3. Import projects files into Eclipse</h3>
+<p>In Eclipse,</p>
+<div class="codehilite"><pre>File -&gt; Import -&gt; Existing Projects into Workspace
+</pre></div>
+
+
+<p>then select the root directory of your ODE checkout (e.g. ode/trunk)</p>
+<p>It's generally recommended to have a dedicated Eclipse workspace for ODE, since there's a fair amount of code and projects.</p>
+<p><a name="EclipseIDE-RandomNotes"></a></p>
+<h3 id="random-notes">Random Notes</h3>
+<ul>
+<li>You must use JDK 5.0 compiler</li>
+<li>You may need to exclude .svn directories to avoid duplicate resource copying.</li>
+<li>You must define the M2_REPO classpath variable to point to your local Maven2 repository (Window -&gt; Preference -&gt; Java -&gt; Build Path -&gt; Classpath Variables)</li>
+<li>Be ware that there are quite a few things in the Buildr-based build that are not done by the Eclipse build system. You will occasionally need to run "buildr" build in order to regenerate XMLBeans schemas, OpenJPA mapping files, JACOB channel interfaces, etc...</li>
+</ul>
+        </div>
+      </div>
+      
+
+      <!-- Footer -->
+      <footer class="footer">
+        <div class='row'>
+          <div class='span3'>
+            <img src="/img/asf.png" alt="Apache Software Foundation"/>
+          </div>
+          <div class='span9'>
+            <p><strong>Apache ODE</strong><sup>&trade;</sup> is a top-level project at the <a href="http://www.apache.org">Apache Software Foundation<sup>&trade;</sup></a>,
+            having graduated from the ASF Incubator in July 2007. Through a collaborative and meritocratic development process, Apache
+            projects deliver enterprise-grade, freely available software products that
+            attract large communities of users.</p>
+            <p>Apache ODE, ODE, Apache, the Apache feather logo, and the Apache ODE project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p>
+          </div>
+        </div>
+      </footer>
+    </div> <!-- /container -->
+    <script src="http://code.jquery.com/jquery-latest.js"></script>
+    <script src="/js/bootstrap.min.js"></script>
+    <script type="text/javascript">
+    var _gaq = _gaq || [];
+    _gaq.push(['_setAccount', 'UA-36293077-1']);
+    _gaq.push(['_trackPageview']);
+
+    (function() {
+      var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+      ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+      var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+    })();
+
+  </script>
+  </body>
+</html>
\ No newline at end of file

Added: websites/staging/ode/trunk/content/developerguide/index.html
==============================================================================
--- websites/staging/ode/trunk/content/developerguide/index.html (added)
+++ websites/staging/ode/trunk/content/developerguide/index.html Tue Dec 11 12:48:20 2012
@@ -0,0 +1,134 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Developer Guide</title>
+    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+    <meta property="og:image" content="http://ode.apache.org/img/ode-logo.png" />
+
+    <link href="/css/application.min.css" rel="stylesheet" media="screen">
+    
+
+    
+    
+  </head>
+  <body>
+
+    <!-- Navbar -->
+    <div class="navbar navbar-fixed-top">
+      <div class="navbar-inner">
+        <div class="container">
+          <button type="button" class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+          </button>
+          <a class="brand" href="/index.html">Apache ODE</a>
+          <div class="nav-collapse collapse">
+            <ul class="nav">
+              <li class="">
+                <a href="/getting-ode.html">Getting ODE</a>
+              </li>
+              <li class="active dropdown">
+                <a href="/user-guide.html" class="dropdown-toggle" data-toggle="dropdown" data-target="#">Documentation<b class="caret"></b></a>
+                <ul class="dropdown-menu">
+                  <li><a href="/user-guide.html">User Guide</a></li>
+                  <li><a href="/developer-guide.html">Developer Guide</a></li>
+                  <li><a href="/ws-bpel-20-specification-compliance.html">WS-BPEL Compliance</a></li>
+                  <li><a href="/bpel-extensions.html">WS-BPEL Extensions</a></li>
+                  <li><a href="/resource-services.html">Resources &amp; Services</a></li>
+                  <li><a href="/javadoc/">Javadoc</a></li>
+                </ul>
+              </li>
+              <li class=" dropdown">
+                <a href="#" class="dropdown-toggle" data-toggle="dropdown">Contributing<b class="caret"></b></a>
+                <ul class="dropdown-menu">
+                  <li><a href="/mailing-lists.html">Mailing Lists</a></li>
+                  <li><a href="/building-ode.html">Building ODE</a></li>
+                  <li><a href="/source-code.html">Source Code</a></li>
+                  <li><a href="http://issues.apache.org/jira/browse/ODE">Bug Tracking</a></li>
+                  <li><a href="/contributors.html">Contributors</a></li>
+                  <li><a href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li>
+                </ul>
+              </li>
+              <li class="dropdown">
+                <a href="http://www.apache.org" class="dropdown-toggle" data-toggle="dropdown" data-target="#">The ASF<b class="caret"></b></a>
+                <ul class="dropdown-menu">
+                  <li><a href="http://www.apache.org">Apache Software Foundation</a></li>
+                  <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+                  <li><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a></li>
+                  <li><a href="http://www.apache.org/security/">Security</a></li>
+                </ul>
+              </li>
+            </ul>
+          </div>
+        </div>
+      </div>
+    </div>
+
+    <!-- Subhead -->
+    
+    <header class="jumbotron subhead" id="overview">
+      <div class="container">
+        
+        <h1>Developer Guide</h1>
+        
+      </div>
+    </header>
+    
+
+    <!-- Content -->
+    <div class="container">
+      
+      <div class="row">
+        <div class="span12">
+          <p><a name="DeveloperGuide-GeneralDocumentation"></a></p>
+<h2 id="general-documentation">General Documentation</h2>
+<p>These documents are intended for those of you wanting an in-depth look into ODE. You'll learn a bit more about our Web Services interfaces, our internal interfaces and how the engine works.</p>
+<ul>
+<li><a href="architectural-overview.html">Architectural Overview</a></li>
+<li>ODE's virtual machine: <a href="jacob.html">JaCOb</a></li>
+<li>Notes about using <a href="eclipse-ide.html">Eclipse IDE</a> with Apache ODE</li>
+<li><a href="release-guidelines.html">Release Guidelines</a></li>
+</ul>
+<p><a name="DeveloperGuide-Specifications"></a></p>
+<h2 id="specifications">Specifications</h2>
+<ul>
+<li><a href="stateful-exchange-protocol.html">Stateful Exchange Protocol</a> Protocol for handling stateful interactions (aka automagic correlation).</li>
+<li><a href="atomic-scopes-extension-for-bpel.html">Atomic Scopes Extension for BPEL</a></li>
+</ul>
+        </div>
+      </div>
+      
+
+      <!-- Footer -->
+      <footer class="footer">
+        <div class='row'>
+          <div class='span3'>
+            <img src="/img/asf.png" alt="Apache Software Foundation"/>
+          </div>
+          <div class='span9'>
+            <p><strong>Apache ODE</strong><sup>&trade;</sup> is a top-level project at the <a href="http://www.apache.org">Apache Software Foundation<sup>&trade;</sup></a>,
+            having graduated from the ASF Incubator in July 2007. Through a collaborative and meritocratic development process, Apache
+            projects deliver enterprise-grade, freely available software products that
+            attract large communities of users.</p>
+            <p>Apache ODE, ODE, Apache, the Apache feather logo, and the Apache ODE project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p>
+          </div>
+        </div>
+      </footer>
+    </div> <!-- /container -->
+    <script src="http://code.jquery.com/jquery-latest.js"></script>
+    <script src="/js/bootstrap.min.js"></script>
+    <script type="text/javascript">
+    var _gaq = _gaq || [];
+    _gaq.push(['_setAccount', 'UA-36293077-1']);
+    _gaq.push(['_trackPageview']);
+
+    (function() {
+      var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+      ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+      var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+    })();
+
+  </script>
+  </body>
+</html>
\ No newline at end of file