[jboss-svn-commits] JBL Code SVN: r31952 - in labs/jbosstm/enterprise/tags/EAP_5_0_1/Transactions_JTS_Programmers_Guide/en-US: images and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Mar 4 22:47:54 EST 2010


Author: misty at redhat.com
Date: 2010-03-04 22:47:53 -0500 (Thu, 04 Mar 2010)
New Revision: 31952

Added:
   labs/jbosstm/enterprise/tags/EAP_5_0_1/Transactions_JTS_Programmers_Guide/en-US/images/figure_JBossTS-Architecture.png
   labs/jbosstm/enterprise/tags/EAP_5_0_1/Transactions_JTS_Programmers_Guide/en-US/images/figure_JBossTS-Class-Hierarchy.png
Modified:
   labs/jbosstm/enterprise/tags/EAP_5_0_1/Transactions_JTS_Programmers_Guide/en-US/JBossTS_basics.xml
Log:
Did the API section of the chapter


Modified: labs/jbosstm/enterprise/tags/EAP_5_0_1/Transactions_JTS_Programmers_Guide/en-US/JBossTS_basics.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_5_0_1/Transactions_JTS_Programmers_Guide/en-US/JBossTS_basics.xml	2010-03-04 23:29:44 UTC (rev 31951)
+++ labs/jbosstm/enterprise/tags/EAP_5_0_1/Transactions_JTS_Programmers_Guide/en-US/JBossTS_basics.xml	2010-03-05 03:47:53 UTC (rev 31952)
@@ -75,13 +75,199 @@
 	<section id="sect-JTS_Programmers_Guide-JTS_Basics-Advanced_API">
 	  <title>Advanced Application Programmer Interface</title>
 	  <para>
+	    The OTS does not provide any Resource implementations. These must be provided by the application programmer or the OTS implementer. The interfaces defined within the OTS specification are too low-level for most application programmers. Therefore, <application>JBoss Transaction Service</application> comes with Transactional Objects for Java, which makes use of the raw Common Object Services interfaces but provides a higher-level API (Application Programmer Interface) for building transactional applications and frameworks. This API automates much of the activities concerned with participating in an OTS transaction, allowing the programmer to concentrate on application development, rather than transaction management.
 	  </para>
+	  <para>
+	    The architecture of the system is shown in the figure below. The API interacts with the concurrency control and persistence services, and automatically registers appropriate resources for transactional objects. These resources may also use the persistence and concurrency services.
+	    <figure id="figure-JTS-Architecture">
+	      <title><application>JBoss Transaction Service</application> Architecture</title>
+	      <mediaobject>
+		<imageobject>
+		  <imagedata fileref="images/figure_JBossTS-Architecture.png" format="PNG" />
+		</imageobject>
+		<textobject>
+		  <para><application>JBoss Transaction Service</application> Architecture</para>
+		</textobject>
+	      </mediaobject>
+	    </figure>
+	  </para>
+	  <para>
+	    <application>JBoss Transaction Service</application> exploits object-oriented techniques to present programmers with a toolkit of Java classes from which application classes can inherit to obtain desired properties, such as persistence and concurrency control. These classes form a hierarchy, part of which is shown below.
+	    <figure id="figure-JTS-Class-Hierarchy">
+	      <title><application>JBoss Transaction Service</application> Class Hierarchy</title>
+	      <mediaobject>
+		<imageobject>
+		  <imagedata fileref="images/figure_JBossTS-Class-Hierarchy.png" format="PNG" />
+		</imageobject>
+		<textobject>
+		  <para><application>JBoss Transaction Service</application> Class Hierarchy</para>
+		</textobject>
+	      </mediaobject>
+	    </figure>
+	  </para>
+	  <para>
+	    Apart from specifying the scopes of transactions, and setting appropriate locks within objects, the application programmer does not have any other responsibilities: <application>JBoss Transaction Service</application>  guarantees that transactional objects will be registered with, and be driven by, the appropriate transactions, and crash recovery mechanisms are invoked automatically in the event of failures. Using these interfaces, programmers need not worry about either creating or registering Resource objects and calling persistence and concurrency control services. <application>JBoss Transaction Service</application> guarantees that appropriate resources will be registered with, and driven by, the transaction. If a transaction is nested, resources will also be automatically propagated to the transaction’s parent upon commit.
+	  </para>
+	  <para>
+	    The design and implementation goal of <application>JBoss Transaction Service</application> was to provide a programming system for constructing fault-tolerant distributed applications. In meeting this goal, three system properties were considered highly important:
+	    <variablelist>
+	      <varlistentry>
+		<term> Integration of Mechanisms</term>
+		<listitem>
+		  <para>
+		    A fault-tolerant distributed system requires a variety of system functions for naming, locating and invoking operations upon objects and also for concurrency control, error detection and recovery from failures. These mechanisms must be integrated such that their use by a programmer is easy and natural.
+		  </para>
+		</listitem>
+	      </varlistentry>
+	      <varlistentry>
+		<term>Flexibility</term>
+		<listitem>
+		  <para>
+		    These mechanisms must be flexible, permitting application specific enhancements, such as type-specific concurrency and recovery control, to be easily produced from existing defaults.
+		  </para>
+		</listitem>
+	      </varlistentry>
+	      <varlistentry>
+		<term>Portability</term>
+		<listitem>
+		  <para>
+		    It should be possible to use <application>JBoss Transaction Service</application> on any ORB.
+		  </para>
+		</listitem>
+	      </varlistentry>
+	    </variablelist>
+	  </para>
+	  <para>
+	    The system is implemented in Java and extensively uses the type-inheritance facilities provided by the language to provide user-defined objects with characteristics such as persistence and recoverability.
+	  </para>
 	</section>
 
 	<section id="sect-JTS_Programmers_Guide-JTS_Basics-JBoss Transaction Service_And_OTS_Specification">
 	  <title><application>JBoss Transaction Service</application> and the OTS Specification</title>
 	  <para>
+	    The OTS specification is written to allow its implementation in a flexible manner, in order to cope with different application requirements for transactions. <application>JBoss Transaction Service</application> supports all optional parts of the OTS specification. In addition, if the specification allows functionality to be implemented in a variety of different ways, <application>JBoss Transaction Service</application> supports these possible implementations. This section will briefly describe the default behaviour which <application>JBoss Transaction Service</application> provides for certain options. More information can be obtained from relevant sections in the manual.
 	  </para>
+	  <table>
+	    <title>OTS Specifications and <application>JBoss Transaction Service</application> Implementations</title>
+	    <tgroup cols="2">
+	      <thead>
+		<row>
+		  <entry>OTS Specification</entry>
+		  <entry><application>Jboss Transaction Service</application> Default Implementation</entry>
+	      </thead>
+	      <tbody>
+		<row>
+		  <entry>
+		    <para>
+		      If the transaction service chooses to restrict the availability of the transaction context, then it should raise the Unavailable exception.
+		    </para>
+		  </entry>
+		  <entry>
+		    <para>
+		      <application>JBoss Transaction Service</application> does not restrict the availability of the transaction context
+		    </para>
+		  </entry>
+		</row>
+		<row>
+		  <entry>
+		    <para>
+		      An implementation of the transaction service need not initialise the transaction context for every request.
+		    </para>
+		  </entry>
+		  <entry>
+		    <para>
+		      <application>JBoss Transaction Service</application> only initialises the transaction context if the interface supported by the target object is derived from the TransactionalObject interface.
+		    </para>
+		  </entry>
+		</row>
+		<row>
+		  <entry>
+		    <para>
+		      An implementation of the transaction service may restrict the ability for the Coordinator, Terminator and Control objects to be transmitted or used in other execution environments to enable it to guarantee transaction integrity.
+		    </para>
+		  </entry>
+		  <entry>
+		    <para>
+		      <application>JBoss Transaction Service</application> does not impose restrictions on the propagation of these objects.
+		    </para>
+		  </entry>
+		</row>
+		<row>
+		  <entry>
+		    <para>
+		      The transaction service may restrict the termination of a transaction to the client that started it.
+
+		    </para>
+		  </entry>
+		  <entry>
+		    <para>
+		      <application>JBoss Transaction Service</application> allows the termination of a transaction by any client that uses the Terminator interface. In addition, <application>JBoss Transaction Service</application> does not impose restrictions when clients use the Current interface.
+		    </para>
+		  </entry>
+		</row>
+		<row>
+		  <entry>
+		    <para>
+		      A TransactionFactory is located using the FactoryFinder interface of the life-cycle service.
+		    </para>
+		  </entry>
+		  <entry>
+		    <para>
+		      <application>JBoss Transaction Service</application> provides multiple ways in which the TransactionFactory can be located.
+		    </para>
+		  </entry>
+		</row>
+		<row>
+		  <entry>
+		    <para>
+		      A transaction service implementation may use the Event Service to report heuristic decisions.
+		    </para>
+		  </entry>
+		  <entry>
+		    <para>
+		      <application>JBossTS</application> does not use the Event Service to report heuristic decisions.
+		    </para>
+		  </entry>
+		</row>
+		<row>
+		  <entry>
+		    <para>
+		      An implementation of the transaction service does not need to support nested transactions.
+		    </para>
+		  </entry>
+		  <entry>
+		    <para>
+		      <application>JBoss Transaction Service</application> supports nested transactions. To override this, see Section . <remark>DOCFAIL - Fix Me</remark>
+		    </para>
+		  </entry>
+		</row>
+		<row>
+		  <entry>
+		    <para>
+		      Synchronization objects are required to be called whenever the transaction commits.
+		    </para>
+		  </entry>
+		  <entry>
+		    <para>
+		      <application>JBoss Transaction Service</application> allows Synchronizations to be called however the transaction terminates.
+		    </para>
+		  </entry>
+		</row>
+		<row>
+		  <entry>
+		    <para>
+		      A transaction service implementation need not support interposition.
+		    </para>
+		  </entry>
+		  <entry>
+		    <para>
+		      <application>JBoss Transaction Service</application> supports various types of interposition.
+		    </para>
+		  </entry>
+		</row>
+	      </tbody>
+	    </tgroup>
+	  </table>
 	</section>
 
 	<section id="sect-JTS_Programmers_Guide-JTS_Basics-Thread_Class">

Added: labs/jbosstm/enterprise/tags/EAP_5_0_1/Transactions_JTS_Programmers_Guide/en-US/images/figure_JBossTS-Architecture.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/tags/EAP_5_0_1/Transactions_JTS_Programmers_Guide/en-US/images/figure_JBossTS-Architecture.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/tags/EAP_5_0_1/Transactions_JTS_Programmers_Guide/en-US/images/figure_JBossTS-Class-Hierarchy.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/tags/EAP_5_0_1/Transactions_JTS_Programmers_Guide/en-US/images/figure_JBossTS-Class-Hierarchy.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream



More information about the jboss-svn-commits mailing list