LPM: [JDEV] Announcing Jabber Server 1.0 (fwd)

repett0 at sac.uky.edu repett0 at sac.uky.edu
Wed May 10 14:38:03 CDT 2000


if anyone is interested in this.... and dosen't know

Ron


---------- Forwarded message ----------
Date: Wed, 10 May 2000 13:56:24 -0500 (CDT)
From: Jeremie <jeremie at jabber.org>
Reply-To: jdev at jabber.org
To: jdev at jabber.org
Subject: [JDEV] Announcing Jabber Server 1.0


                         Announcing Jabber Server 1.0

   After two years in development, the Jabber Server has reached the 1.0
   milestone. This release supports all of the functionality for an
   Instant Messaging and "Buddy List" server. The server is only one
   component of Jabber, an open-source, XML-based, real-time messaging
   and presence architecture being developed by an Internet community of
   users and developers worldwide.

   Jabber's open and extensible architecture enables any organization or
   individual to operate a Jabber server and provide instant messaging
   (IM) service to its users. Users within Jabber are identified by their
   Jabber ID, in an email-like format: user at server. Each server is
   capable of communicating with other servers via a variety of
   protocols. Discover more about the Jabber architecture at jabber.org,
   and look for a project-wide status update in the coming weeks.

Usability / User Features

   The Jabber Development Team has striven to integrate features that
   serve the needs of the modern Internet user. Because Jabber is open
   development project, the team has adopted a model that enables any
   developer to add commonly requested features. If you feel there are
   important areas that have not yet been addressed in Jabber, you or
   your company are welcome to become involved in the development
   community at http://jabber.org; since Jabber is being continually
   improved, it is quite possible that the desired features are under
   development.

   Choice / Control
          Everything within the Jabber architecture and server is
          designed to put the user in control of the conversation. Thus
          Jabber provides users with multiple clients for common
          computing platforms, the option of multiple connections,
          different visual cues for messages (pop-up/chat styles), an
          opt-in user directory, and control over how and to whom their
          presence is distributed.

   Security / Privacy
          The Jabber server takes several steps to protect sensitive
          information. Presence information about each user is delivered
          only to those that the client specifically allows and is never
          made available to anyone else. The Internet address (IP) of
          each connected user is not accessible or used anywhere outside
          the server, helping to protect the client computer from various
          common network attacks and abuse. By default the server will
          use digest authentication, which helps keep the user's password
          from being exposed on the network. If enabled during the server
          install, SSL can be used by clients to encrypt *all* traffic
          between the client and server.

   Services
          Services enable the server operator to add new features and
          applications externally to the server, and are developed as
          seperate projects. Some services allow a user to specify their
          account on a third party IM network and communicate with users
          on that network transparently, while others provide unique and
          new features specially for Jabber. Many services are in
          development and available in beta form to server operators:
          AIM, ICQ, MSN, Yahoo!, SMTP, IRC, language translation, private
          chatrooms, and more. To learn more about any of these services
          or how to develop your own service, please visit
          http://jabber.org.

   vCard / Directory
          Each user can optionally store their public vCard information
          on the server to the benefit of others. This vCard infomation
          is stored and available in the vCard XML format (see
          http://protocol.jabber.org/vcard-temp/). A small subset of this
          information is made searchable in the Jabber User Directory.

   Presence
          Presence within Jabber is subscription-based. If a user would
          like to see the presence of another user (online, offline,
          away, etc.), they must send a subscription request to that
          user. This request is often automated by the client as part of
          adding a user to your roster. The recipient must then return an
          approval or denial of that subscription request for the sender
          to receive their presence. This subscription process is
          enforced by the server, so that a user's presence will not be
          available unless the subscription has been allowed. At any time
          any user may remove an existing subscription, or send alternate
          or offline presence to any particular user.

   Offline Messages
          While a user is offline, the server will timestamp and store
          any incoming messages on their behalf. As soon as the user is
          available, the server delivers any waiting offline messages.

   Contact List
          The server stores and maintains each user's roster (contact
          list). Each item in the roster can have a custom name assigned
          to it, and roster items can be arranged into groups by the
          user.

   Multiple Logins
          Any user may connect to the server multiple times with one
          account, thus maintaining one identity for work, home, and
          mobile use. Each connection is a unique resource that can have
          separate conversations and individual presence, and the user
          can specify one resource as the default connection.

Administrative Features

   The main architects of the server have many years of experience in the
   Operations departments of ISPs and IT organizations. This background
   has led to a server designed with ease of administration built in.

   Flexible Configuration
          The server configuration file allows for full dynamic control
          over almost every aspect of the server operation and the
          features available to that server's users. The file can be used
          to override most of the default text and information sent to
          clients about the server. It is also used to present the
          official list of local services available to users. The
          configuration file can be reloaded on the fly similiar to other
          Unix servers, with a kill HUP signal. Administrator accounts
          (listed in the config file) are allowed to remote-edit the
          config file on the fly as well, using administrative protocol
          extensions.

   Connected Users
          The list of connected users is available via the administrative
          protocol extensions. In the future, full editorial and kicking
          features will be added for managing users in finer granularity.

   Announce
          The server includes a module to allow administrators to send
          out an announcement to all available users. In the future this
          module will be extended to allow groups of recipients and
          create system messages to be sent or displayed when users log
          in.

   Registration
          The server contains optional integrated support to allow users
          to register directly and create accounts on the server,
          removing the need for a special alternate registration process.

   Rate Limits
          Various rate limits are in place within the server to deter
          denial of service and other flooding attacks. These are
          implemented at both the networking level and user/protocol
          level.

   DSO/Static
          Modules can be compiled as either static or dynamic. Dynamic
          modules can be configurably loaded at startup, and
          installed/upgraded independent of the server.

Extensibility Features

   Yes, extensibility is our core motto, prevalent throughout the entire
   architecture. Nearly every aspect of Jabber is extensible.

   XML
          Everything within Jabber is based on XML: the transport layer
          (XML Streams: http://etherx.jabber.org/streams/) , the protocol
          (DTD), authentication, presence, messages, roster, vCard, the
          configuration file, and more. Each one of these is itself
          extensible by allowing additional third-party XML to be
          included within it in another namespace. XML is not a
          technology that Jabber "utilizes", but more a technology that
          Jabber is "designed on top of" from the bottom up.

   Services
          Services (also known as agents and transports) can expose
          almost any new functionality to any Jabber server. These
          typically run as a seperate process (same physical server or
          remotely) and attach to the server. In fact, services are
          identical to any remote Jabber server except for the fact that
          they implement new functionality. Transports act as a gateway
          to a third-party messaging network, and translate between the
          XML and that network. Many transports are in development and
          available: ICQ, AIM, IRC, Yahoo, MSN, SMTP. Other server-side
          "agents" might provide new functionality such as a directory
          service, translation engine, reminders, news/headline tickers,
          etc. Anyone can operate a service and make it available to any
          Jabber server or user anywhere, it is simply recognized by the
          hostname assigned to it.

   Modularized Server API
          The server is designed around a very flexible, modular API. In
          fact, 80% of the server is written as modules! A module can
          hook into certian phases within the server and intercept data
          as it passes through that phase, either transparently acting
          upon the data and letting it pass, or handling the data
          directly.

   Alternate Client Access
          One layer of the server's module API allows for alternate
          protocols to be directly supported, beyond the native XML
          protocol used by Jabber clients, such as IRC, HTTP, and plain
          telnet. While these alternate access methods are still in
          development and exist only as beta, they are only optionally
          enabled within the server. IRC access can be used with any
          normal IRC client (/server host.net) to map Jabber client
          functionality into a typical IRC service. HTTP access exposes
          the Jabber functionality via HTTP, for public presence
          "buttons" showing a user's current availability, allowing
          stateless polling-based clients (e.g., CGI, PHP, JavaScript),
          public message posting, and a variety of other HTTP tools.
          Telnet access is in the early stages of development, and
          exposes a minimal client interface via telnet.

   Authentication
          The server does not directly authenticate users, but relies
          upon the modules to do so. This allows for authentication
          modules to be written for PAM, LDAP, custom databases, and so
          on.

   Data Storage
          All data that needs to be stored or retrieved within the server
          is in XML. Each different type of data is within its own
          namespace. This XML is handled by a special XML Database (XDB)
          API, which actually performs the storage. A simple file-based
          XDB is included in 1.0 to handle all namespaces, with MySQL and
          LDAP APIs in development. Additional custom functionality can
          be written and maintained via the XDB API to handle any
          particular type of data.

   Private Data
          Each user/client has the ability to store and retrieve
          independent XML data within its own namespace. This could be
          used by client software to store preferences on the server. It
          can also be used to store other information such as bookmarks,
          notes, state, etc.

Clients / Libraries

   A wide variety of clients and libraries are being continually
   developed worldwide. Always check for the latest infomation on such
   developments and locations of the clients mentioned below at
   JabberCentral and jabber.org.

   Windows
          JabberIM is a typical contact list interface, designed with
          ease of use and simplicity in mind. WinJab is a full-featured
          client with a developer style interface. Jabba is an older
          alternate client, which may not be up to date with the latest
          features. Wijits are stripped down simplistic clients, with
          extremely limited functionality. A JabberCOM component is also
          available (used by JabberIM and WinJab) to ease the development
          of Jabber functionality within Win32 development environments
          (DevStudio, Delphi, Visual Basic).

   Linux/Unix
          Gabber is a Gnome GUI client in development and already has
          nearly full functionality. Josh is a full featured system for
          utilizing Jabber from the command line and within shell
          scripts.

   IRC
          As mentioned above, the IRC server is available if enabled on
          the server. Simply take any standard IRC client and connect to
          the Jabber server on port 6667, then follow the instructions to
          create an account or log in.

   Libraries
          Net::Jabber is a suite of full-featured Perl modules for
          interacting with Jabber as a Client or Transport, available
          from CPAN. PyJabber is a set of Python modules in development.
          Various other development efforts exist for Java, C, and C++
          libraries.

   Web
          If enabled, the Jabber HTTP server contains some early beta
          functionality. This allows HTTP based stateless client
          development.

   Early Developments
          The Macintosh development team is progressing on creating a
          native Macintosh client, development mailing list at
          http://mailman.jabber.org/pipermail/mac-dev and site at
          http://macjlib.sourceforge.net. As mentioned above, a telnet
          gateway is in development that will allow simple client access
          via telnet, similiar to a MUD/MOO. An alternate-style interface
          client is in development for UNIX and Windows, named jbulb.
          This style client is designed to simply expressing the presence
          of one individual and allow simple messaging, via a small bulb
          graphic floating on the desktop. A variety of java clients are
          in development... Jabber functionality is being integrated with
          the Mozilla project, to enable Mozilla to send and receive
          real-time streaming XML. This will be visible within Mozilla as
          a standalone client, sidebar-based client, and other real-time
          XML functionality.

Where can I get it, and how do I install it?

   The server is written in C and has been developed on the GNU platform.
   The sources have been tested and are known to operate on Linux (all
   distributions), *BSD, Solaris 2.6 and newer (with GNU packages
   installed), and Digital Unix.

   There are two external required libraries, pth and adns. Pth is a
   portable threading library written by Ralf S. Engleschall, available
   from http://www.gnu.org/software/pth/. ADNS is an asychronous DNS
   lookup library, written by Ian Jackson at
   http://www.gnu.org/software/adns/.

   After installing pth and adns, the server libraries will need to be
   installed. The server sources are available at
   http://download.jabber.org/dists/1.0/, with pre-built RPMs and DEBs
   and other packages to follow soon. In order of installation, the
   server packages are installed as libxode, libjabber, libetherx, and
   jabber-transport. Then jabber-transport can be started as "jserver",
   be sure to check your configuration if any difficulties are
   encountered.

How can I use it?

   The server sources are released under the Gnu Public License (GPL). It
   is frequently thought that this restricts the *use* of the server,
   which is completely false. The GPL restricts the redistribution of the
   server sources, but the Jabber Server can be used for any purpose:
   non-profit, commercial, internal, classified, whatever.

   There are three popular categories of usages of the Jabber Server.
   First, many companies are installing and using the server internally
   as a way to reduce the amount of employee-employee conversations that
   are leaving the company network via a third-party IM network. By using
   the Jabber Server and the various services, employees are able to
   upgrade to Jabber without loosing the connectivity with their friends
   on the third-party networks and without running two clients on their
   desktop.

   The second popular category of usage is by ISPs and service providers,
   as a way to instantly launch their own branded local IM service that
   interoperates with other major networks.

   The third usage of the Jabber Server is by portals and other sites,
   services, and communities existing on the web. Often this includes a
   custom client that is either integrated with the portal or existing
   community tools, and also includes other new real-time streaming
   features enabled by the Jabber architecture.

Where can I get help?

   For development, technical, and server installation/operation
   assistance please visit http://jabber.org/, send email to
   info at jabber.org or bugs at jabber.org, or visit the development team in
   #jabber on irc.openprojects.net.

   There is also now a commercial entity available for consulting in
   integrating Jabber and developing custom or branded clients and
   services based on Jabber. More information can be found at
   http://jabber.com/.

How can I help?

   You want to help? Great! Jabber is developed by a friendly and diverse
   team of individuals from all over the world. We welcome all newcomers
   and are even willing to help you learn how to program (we've
   "converted" quite a few individuals so far :) ). It's an exciting
   project and there is lots to do! Some of the popular TODO items
   include assistance with client development across all platforms and
   environments, documentation and the Jabber.org web site (including
   translation into languages other than English), server-side services
   and features (bots, translators, news, interactive and real-time data
   sources), progressing the language libraries like python, tcl, and any
   other programming language, and much much more!

A Sincere Thanks

   A warm and genuine thank you to everyone reading this announcement.
   Two years of intense development have been invested into this project
   by a large number of individuals across the world, and while we
   realize that much more remains to be done, we are proud to have
   reached this milestone and look forward to working with users and
   developers alike in continuing to build and extend the Jabber
   platform.



_______________________________________________
jdev mailing list
jdev at jabber.org
http://mailman.jabber.org/listinfo/jdev




More information about the Lexington-pm mailing list