<?xml version="1.0" encoding="latin1" ?>
<!DOCTYPE chapter SYSTEM "chapter.dtd">
<chapter>
<header>
<copyright>
<year>1999</year><year>2009</year>
<holder>Ericsson AB. All Rights Reserved.</holder>
</copyright>
<legalnotice>
The contents of this file are subject to the Erlang Public License,
Version 1.1, (the "License"); you may not use this file except in
compliance with the License. You should have received a copy of the
Erlang Public License along with this software. If not, it can be
retrieved online at http://www.erlang.org/.
Software distributed under the License is distributed on an "AS IS"
basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
the License for the specific language governing rights and limitations
under the License.
</legalnotice>
<title>Introduction to Orber</title>
<prepared>Megan Lynch</prepared>
<docno></docno>
<date>1998-09-21</date>
<rev></rev>
<file>ch_introduction.xml</file>
</header>
<section>
<title>Overview</title>
<p>The Orber application is a CORBA compliant Object Request Brokers
(ORB), which provides CORBA functionality in an Erlang
environment. Essentially, the ORB channels communication or
transactions between nodes in a
heterogeneous environment.
</p>
<p><term id="CORBA"><termdef>Common Object Request Broker Architecture is a common communication standard developed by the OMG (Object Management Group)</termdef></term>(Common Object Request Broker
Architecture) provides an interface definition language allowing
efficient system integration and also supplies standard
specifications for some services.
</p>
<p>The Orber application contains the following parts:</p>
<list type="bulleted">
<item>
<p>ORB kernel and IIOP support</p>
</item>
<item>
<p>Interface Repository</p>
</item>
<item>
<p>Interface Definition Language Mapping for Erlang</p>
</item>
<item>
<p>CosNaming Service</p>
</item>
</list>
<section>
<title>Benefits</title>
<p>Orber provides CORBA functionality in an Erlang environment that enables:
</p>
<list type="bulleted">
<item>
<p><em>Platform interoperability and transparency</em></p>
<p>Orber enables communication between
OTP applications or Erlang environment applications and
other platforms; for example, Windows NT, Solaris
etc, allowing platform transparency. This is especially helpful in situations where there
are many users with different platforms. For example,
booking airline tickets would require the airline database
and hundreds of travel agents (who may not have the same
platform) to book seats on flights. </p>
</item>
<item>
<p><em>Application level interoperability and transparency</em></p>
<p>As Orber is a CORBA compliant application, its purpose is
to provide interoperability and transparency on the application
level.
Orber simplifies the distributed system software by defining the
environment as objects, which in effect, views
everything as identical regardless of programming
languages. <br></br>
Previously, time-consuming programming was
required to facilitate communication between different languages.
However, with CORBA compliant Orber the Application
Programmer is relieved of this task. This makes
communication on an application level relatively transparent to the user.</p>
</item>
</list>
</section>
<section>
<title>Purpose and Dependencies</title>
<p>The system architecture and OTP dependencies of Orber are illustrated in figure 1 below:</p>
<marker id="dependent"></marker>
<image file="dependent.gif">
<icaption>
Figure 1: Orber Dependencies and Structure.</icaption>
</image>
<p>Orber is dependent on Mnesia (see the Mnesia
documentation) - an Erlang database management application
used to store object information.</p>
<note>
<p>Although Orber does not have a run-time
application dependency to IC (an <term id="IDL"><termdef>Interface Definition Language - IDL is the OMG specified interface definition language, used to define the CORBA object interfaces.</termdef></term>compiler for
Erlang), it is necessary when building
services and applications. See the IC documentation for
further details.</p>
</note>
<marker id="orbs"></marker>
<image file="orbs.gif">
<icaption>
Figure 2: ORB interface between Java and Erlang Environment Nodes.</icaption>
</image>
<p>This simplified illustration in figure 2 demonstrates how Orber can facilitate communication in a heterogeneous environment. The Erlang Nodes running
OTP and the other Node running applications written in Java can
communicate via an <term id="ORB"><termdef>Object Request Broker - ORB open software bus architecture specified by the OMG which allows object components to communicate in a heterogeneous environment.</termdef></term>(Object Request Broker). Using
Orber means that CORBA functions can be used to achieve this
communication.
</p>
<p>For example, if one of the above nodes requests an object, it does not
need to know if that object is located on the same, or
different, Erlang or Java nodes. The ORB will channel the
information creating platform and application transparency for
the user.
</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 and CORBA (Common Object Request
Broker Architecture).
</p>
<p>Recommended reading includes <em>Open Telecom Platform Documentation Set</em> and <em>Concurrent Programming in Erlang</em>.
</p>
</section>
</section>
</chapter>