  Etherx README
  Jabber Documentation Team
  November 20, 1999
  ____________________________________________________________

  Table of Contents


  1. Introduction

     1.1 General
     1.2 What Etherx is

  2. Getting it Installed

     2.1 Dependencies
     2.2 Compilation and Installation
     2.3 Problems/Bugs

  3. Jabber Information

     3.1 General Information
     3.2 Developer Information
  ______________________________________________________________________

  1.  Introduction


  1.1.  General

  This document gives pointers for information on this package as well
  as links to learn more about the Jabber project and about
  participating in the project.

  Copyright information can be found in each package directory in the
  files "COPYRIGHT" and "COPYING."

  You can learn more about Etherx at http://etherx.jabber.org/


  1.2.  What Etherx is

  Basically etherx is a middleware layer for XML Streams.

  The middleware is between servers, a server -> etherx -> server
  paradigm.

  Multiple servers can be hosted on one physical box with one etherx
  managing the data between them and all of the connections to outside
  servers. These local servers are referred to as "transports."

  There are two ways for transports to utilize Etherx: sockets and DSO.

  Sockets - Any transport can utilize a socket to communicate with
  etherxd.  The advantage of sockets is for intermittintly running
  transports, servers with multiple CPUs (split the load across multiple
  CPUS on a per-process basis), or for transports written in alternative
  languages and can't utilize DSO.

  DSO - Any transport can create a version of itself that etherxd will
  dynamically load and initialize. The advantage of DSO is that the XML
  Stream between the transport and other transports is not serialized
  and re-parsed, so it is far more efficient to utilize DSO whenever possible.

  libetherx: A shared library is provided that provides simple abstract
  data types for Etherx "packets" and initializing the connection to
  Etherx.  It will automatically handle the abstraction between Sockets
  or DSO, so that a transport can use one API and choose at runtime
  which method to use.

  Etherx also provides a "registry" utility for transports to take
  advantage of so that the administrator can manage configuration
  information in one place.

  2.  Getting it Installed


  2.1.  Dependencies

  Apart from your standard UNIX fare, this package is dependent on the
  following:

  o  jlib. You can get this from Jabber's CVS server under the module
     jlib.  jlib is also bundled with the complete Jabber server in a
     convenient tarball at http://download.jabber.org.


  2.2.  Compilation and Installation

  To install you will need to do the following in the Etherx root
  directory:

  ______________________________________________________________________
  ./configure
  make
  (become root)
  make install
  ______________________________________________________________________


  2.3.  Problems/Bugs
 
  Submit bug reports to bugs@jabber.org, be sure to include all relevant
  information: version, platform, compilation/debug errors, etc.
 
  For additional real-time support, many of the development team frequent
  irc.openprojects.net in #jabber.
 

  3.  Jabber Information


  3.1.  General Information

  For general information about Jabber, including a quick introduction
  to Jabber concepts, see the FAQ at http://docs.jabber.org/.


  3.2.  Developer Information

  There are many areas of Jabber that developers can contribute to.
  Jabber encompasses many fields of expertise and anyone that is willing
  to help can contribute.

  You may want to delve into the internals of the Jabber project at
  http://docs.jabber.org/.

  Or maybe you would like to go ahead become a developer on the project.
  Just go on over to http://dev.jabber.org/ and register.  You may also
  sign up for the main Jabber mailing list (JDEV) from this point.
