<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE chapter SYSTEM "chapter.dtd">

<chapter>
  <header>
    <copyright>
      <year>1999</year><year>2016</year>
      <holder>Ericsson AB. All Rights Reserved.</holder>
    </copyright>
    <legalnotice>
      Licensed under the Apache License, Version 2.0 (the "License");
      you may not use this file except in compliance with the License.
      You may obtain a copy of the License at
 
          http://www.apache.org/licenses/LICENSE-2.0

      Unless required by applicable law or agreed to in writing, software
      distributed under the License is distributed on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
      See the License for the specific language governing permissions and
      limitations under the License.
    
    </legalnotice>

    <title>Introduction to cosTransactions</title>
    <prepared>Niclas Eklund</prepared>
    <docno></docno>
    <date>1999-04-26</date>
    <rev></rev>
    <file>ch_introduction.xml</file>
</header>

  <section>
    <title>Overview</title>
    <p>The cosTransactions application is a Transaction Service compliant with the <url href="http://www.omg.org">OMG</url> 
      Transaction Service CosTransactions 1.1.
      </p>

    <section>
      <title>Purpose and Dependencies</title>
      <p><em>cosTransactions</em> is dependent on  <em>Orber version 3.0.1</em> or later(see the Orber
        documentation), which provides CORBA functionality in an Erlang environment.</p>
      <p><em>cosTransactions</em> is dependent on  <em>supervisor/stdlib-1.7</em> or later.</p>
      <p>Basically, cosTransaction implements a <em>two-phase commit protocol</em> and allows objects running
        on different platforms to participate in a transaction.</p>
    </section>

    <section>
      <title>Prerequisites</title>
      <p>To fully understand the concepts presented in the
        documentation, it is recommended that the user is familiar
        with distributed programming, CORBA and the Orber application.
        </p>
      <p>Recommended reading includes <em>CORBA, Fundamentals and Programming - Jon Siegel</em> and <em>Open Telecom Platform Documentation Set</em>. It is also helpful to  have read
        <em>Concurrent Programming in Erlang</em> and, for example, <em>Transaction Processing: concepts and techniques - Jim Gray, Andreas Reuter</em>.</p>
      <note>
        <p>The cosTransaction application is compliant with the OMG CosTransactions specification 1.1. Using
          other vendors transaction service, compliant with the OMG CosTransactions specification 1.0, may
          not work since the <c>'TRANSACTION_REQUIRED', 'TRANSACTION_ROLLEDBACK'</c> and <c>'INVALID_TRANSACTION'</c>
          exceptions have been redefined to be system exceptions, i.e., used to be transaction-specific ('CosTransactions_Exc').</p>
      </note>
    </section>
  </section>
</chapter>

