Ejabberd
Encyclopedia
ejabberd is an XMPP
Extensible Messaging and Presence Protocol
Extensible Messaging and Presence Protocol is an open-standard communications protocol for message-oriented middleware based on XML . The protocol was originally named Jabber, and was developed by the Jabber open-source community in 1999 for near-real-time, extensible instant messaging , presence...

 application server
Server (computing)
In the context of client-server architecture, a server is a computer program running to serve the requests of other programs, the "clients". Thus, the "server" performs some computational task on behalf of "clients"...

, written mainly in the Erlang programming language.
It can run under several Unix-like
Unix-like
A Unix-like operating system is one that behaves in a manner similar to a Unix system, while not necessarily conforming to or being certified to any version of the Single UNIX Specification....

 operating systems such as Mac OS X
Mac OS X
Mac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...

, GNU
GNU
GNU is a Unix-like computer operating system developed by the GNU project, ultimately aiming to be a "complete Unix-compatible software system"...

/Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...

, FreeBSD
FreeBSD
FreeBSD is a free Unix-like operating system descended from AT&T UNIX via BSD UNIX. Although for legal reasons FreeBSD cannot be called “UNIX”, as the direct descendant of BSD UNIX , FreeBSD’s internals and system APIs are UNIX-compliant...

, NetBSD
NetBSD
NetBSD is a freely available open source version of the Berkeley Software Distribution Unix operating system. It was the second open source BSD descendant to be formally released, after 386BSD, and continues to be actively developed. The NetBSD project is primarily focused on high quality design,...

, OpenBSD
OpenBSD
OpenBSD is a Unix-like computer operating system descended from Berkeley Software Distribution , a Unix derivative developed at the University of California, Berkeley. It was forked from NetBSD by project leader Theo de Raadt in late 1995...

 and OpenSolaris
OpenSolaris
OpenSolaris was an open source computer operating system based on Solaris created by Sun Microsystems. It was also the name of the project initiated by Sun to build a developer and user community around the software...

. Additionally, ejabberd can run under Microsoft Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...

, however, a user must stay logged in or always restart the ejabberd service remotely after any logout from the machine.
ejabberd stands for Erlang Jabber
Extensible Messaging and Presence Protocol
Extensible Messaging and Presence Protocol is an open-standard communications protocol for message-oriented middleware based on XML . The protocol was originally named Jabber, and was developed by the Jabber open-source community in 1999 for near-real-time, extensible instant messaging , presence...

 Daemon
Daemon (computing)
In Unix and other multitasking computer operating systems, a daemon is a computer program that runs as a background process, rather than being under the direct control of an interactive user...

 (Jabber being a former name for XMPP), and is written in lowercase only, as is common for daemon software.

ejabberd is free software
Free software
Free software, software libre or libre software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with restrictions that only ensure that further recipients can also do...

, distributed under the terms of the GNU General Public License
GNU General Public License
The GNU General Public License is the most widely used free software license, originally written by Richard Stallman for the GNU Project....

. , it is one of the most popular open source applications written in Erlang. XMPP: The Definitive Guide (O'Reilly Media
O'Reilly Media
O'Reilly Media is an American media company established by Tim O'Reilly that publishes books and Web sites and produces conferences on computer technology topics...

, 2009) praised ejabberd for its scalability and clustering feature, at the same time pointing out that being written in Erlang is a potential acceptance issue for users and contributors. The software's creator, Alexey Shchepin was awarded the Erlang User of the Year award at the 2006 Erlang user conference.

ejabberd has a number of notable deployments, IETF
Internet Engineering Task Force
The Internet Engineering Task Force develops and promotes Internet standards, cooperating closely with the W3C and ISO/IEC standards bodies and dealing in particular with standards of the TCP/IP and Internet protocol suite...

 Groupchat Service, BBC Radio
BBC Radio
BBC Radio is a service of the British Broadcasting Corporation which has operated in the United Kingdom under the terms of a Royal Charter since 1927. For a history of BBC radio prior to 1927 see British Broadcasting Company...

 LiveText, Nokia
Nokia
Nokia Corporation is a Finnish multinational communications corporation that is headquartered in Keilaniemi, Espoo, a city neighbouring Finland's capital Helsinki...

's Ovi
Ovi (Nokia)
Ovi by Nokia is the brand for Nokia's Internet services. The Ovi services can be used from a mobile device, computer or via the web. Nokia focuses on five key service areas: Games, Maps, Media, Messaging and Music. Nokia's aim with Ovi is to include third party developers, such as operators and...

, KDE
KDE
KDE is an international free software community producing an integrated set of cross-platform applications designed to run on Linux, FreeBSD, Microsoft Windows, Solaris and Mac OS X systems...

 Talk and one in development at Facebook
Facebook
Facebook is a social networking service and website launched in February 2004, operated and privately owned by Facebook, Inc. , Facebook has more than 800 million active users. Users must register before using the site, after which they may create a personal profile, add other users as...

. ejabberd is the most popular server among smaller XMPP-powered sites that register on xmpp.org.

Features

ejabberd has a high level of compliance with XMPP
Extensible Messaging and Presence Protocol
Extensible Messaging and Presence Protocol is an open-standard communications protocol for message-oriented middleware based on XML . The protocol was originally named Jabber, and was developed by the Jabber open-source community in 1999 for near-real-time, extensible instant messaging , presence...

.
It provides a web interface which can be translated
Internationalization and localization
In computing, internationalization and localization are means of adapting computer software to different languages, regional differences and technical requirements of a target market...

 into other languages.
ejabberd supports distributed computing
Distributed computing
Distributed computing is a field of computer science that studies distributed systems. A distributed system consists of multiple autonomous computers that communicate through a computer network. The computers interact with each other in order to achieve a common goal...

 by clustering, supports live upgrades, shared roster groups and provides support for virtual hosts
Virtual hosting
Virtual hosting is a method for hosting multiple domain names on a server using a single IP address. This allows one server to share its resources, such as memory and processor cycles, in order to use its resources more efficiently....

.
Database management system
Database management system
A database management system is a software package with computer programs that control the creation, maintenance, and use of a database. It allows organizations to conveniently develop databases for various applications by database administrators and other specialists. A database is an integrated...

s supported include PostgreSQL
PostgreSQL
PostgreSQL, often simply Postgres, is an object-relational database management system available for many platforms including Linux, FreeBSD, Solaris, MS Windows and Mac OS X. It is released under the PostgreSQL License, which is an MIT-style license, and is thus free and open source software...

 and MySQL
MySQL
MySQL officially, but also commonly "My Sequel") is a relational database management system that runs as a server providing multi-user access to a number of databases. It is named after developer Michael Widenius' daughter, My...

, and ODBC
Open Database Connectivity
In computing, ODBC is a standard C interface for accessing database management systems . The designers of ODBC aimed to make it independent of database systems and operating systems...

 is supported for connectivity to other systems.
LDAP authentication is supported, as is login via SSL/TLS
Transport Layer Security
Transport Layer Security and its predecessor, Secure Sockets Layer , are cryptographic protocols that provide communication security over the Internet...

, SASL
Simple Authentication and Security Layer
Simple Authentication and Security Layer is a framework for authentication and data security in Internet protocols. It decouples authentication mechanisms from application protocols, in theory allowing any authentication mechanism supported by SASL to be used in any application protocol that uses...

 and STARTTLS
STARTTLS
STARTTLS is an extension to plain text communication protocols, which offers a way to upgrade a plain text connection to an encrypted connection instead of using a separate port for encrypted communication....

.

ejabberd is extensible via modules, which can provide support for additional capabilities such as saving offline messages, connecting with IRC
Internet Relay Chat
Internet Relay Chat is a protocol for real-time Internet text messaging or synchronous conferencing. It is mainly designed for group communication in discussion forums, called channels, but also allows one-to-one communication via private message as well as chat and data transfer, including file...

 channels, or a user database which makes use of user's vCard
VCard
vCard is a file format standard for electronic business cards. vCards are often attached to e-mail messages, but can be exchanged in other ways, such as on the World Wide Web or Instant Messaging...

s (saving vCards in LDAP or an ODBC compatible database is possible with other modules).
In addition, modules can provide support for extensions of the XMPP protocol, such as MUC, HTTP polling, Publish-Subscribe, and gathering statistics via XMPP.

Starting with version 2.0.0 ejabberd also includes support for the Proxy65 file transfer proxy which enabled Jabber users behind firewalls to share files through a SOCKS
SOCKS
SOCKS is an Internet protocol that routes network packets between a client and server through a proxy server. SOCKS5 additionally provides authentication so only authorized users may access a server...

 5 proxy.

ejabberd can communicate with other XMPP servers and with non-XMPP Instant Messaging networks as well, using a special type of XMPP component called transport or gateway.

Distribution methods

In addition to the source code package and binary installers for GNU/Linux, Mac OS X, and Windows, ejabberd is also available in several Operating System distributions as is typical in FOSS
Free and open source software
Free and open-source software or free/libre/open-source software is software that is liberally licensed to grant users the right to use, study, change, and improve its design through the availability of its source code...

, including Debian
Debian
Debian is a computer operating system composed of software packages released as free and open source software primarily under the GNU General Public License along with other free software licenses. Debian GNU/Linux, which includes the GNU OS tools and Linux kernel, is a popular and influential...

, Fedora
Fedora (operating system)
Fedora is a RPM-based, general purpose collection of software, including an operating system based on the Linux kernel, developed by the community-supported Fedora Project and sponsored by Red Hat...

, Gentoo, Ubuntu
Ubuntu (operating system)
Ubuntu is a computer operating system based on the Debian Linux distribution and distributed as free and open source software. It is named after the Southern African philosophy of Ubuntu...

, Arch Linux
Arch Linux
Arch Linux is an independently developed, Linux-based operating system for i686 and x86-64 computers. It is composed predominantly of free and open source software, and supports community involvement....

, OpenSolaris
OpenSolaris
OpenSolaris was an open source computer operating system based on Solaris created by Sun Microsystems. It was also the name of the project initiated by Sun to build a developer and user community around the software...

, FreeBSD Ports
FreeBSD Ports
The FreeBSD Ports collection is a package management system for the FreeBSD operating system, providing an easy and consistent way of installing software packages. As of October 2011, there are over 22,700 ports available in the collection...

, OpenBSD
OpenBSD
OpenBSD is a Unix-like computer operating system descended from Berkeley Software Distribution , a Unix derivative developed at the University of California, Berkeley. It was forked from NetBSD by project leader Theo de Raadt in late 1995...

 ports, NetBSD
NetBSD
NetBSD is a freely available open source version of the Berkeley Software Distribution Unix operating system. It was the second open source BSD descendant to be formally released, after 386BSD, and continues to be actively developed. The NetBSD project is primarily focused on high quality design,...

 port and Mac OS X's Fink
Fink
The Fink project is an effort to port and package open-source Unix programs to Mac OS X. Fink uses dpkg and APT , as well as its own frontend program, fink ....

.

Other methods in which ejabberd is available are the TurnKey Linux Virtual Appliance Library and Comprehensive Erlang Archive Network (CEAN). An old version of ejabberd is included in the Unison unified communications software.

Notable deployments

ejabberd is known to be used by Jabber-related sites and a number of companies, either for providing a Jabber instant messaging service, as a meeting chat room service, or as middleware for other software (usually by means of the Publish-Subscribe service).

XMPP servers deployed for Jabber-related sites are usually run using ejabberd, both in case of large and small servers. One large public XMPP servers runs ejabberd: the Russian jabber.ru, that handles between 10,000 and 20,000 concurrent users at any time. Among smaller Jabber-related sites, ejabberd is also the most popular server. When not taking into account the size or nature of the server, ejabberd is also the most widely deployed: according to IMtrends report from July 2008 based in automated server detection, 37% of 7292 servers were running ejabberd; the second position being jabberd14 with 22.4% and the third Openfire with 18.4%.

Among generic instant messaging deployments are ISPs like the Portuguese SAPO, and the German United Internet
United Internet
United Internet AG is a German Internet services company. With 2.91 million DSL customer contracts, it is a leading ISP in Germany. It is headquartered in Montabaur, Rhineland-Palatinate...

 for services like GMX and Web.de.
The Russian search engine Yandex
Yandex
Yandex is a Russian IT company which operates the largest search engine in Russia and develops a number of Internet-based services and products. Yandex is ranked as 5-th world largest search engine...

 uses a highly modified version of ejabberd, conveniently named Yabberd.
Nokia
Nokia
Nokia Corporation is a Finnish multinational communications corporation that is headquartered in Keilaniemi, Espoo, a city neighbouring Finland's capital Helsinki...

's Ovi
Ovi (Nokia)
Ovi by Nokia is the brand for Nokia's Internet services. The Ovi services can be used from a mobile device, computer or via the web. Nokia focuses on five key service areas: Games, Maps, Media, Messaging and Music. Nokia's aim with Ovi is to include third party developers, such as operators and...

 uses ejabberd with some customizations.
Major League Baseball
Major League Baseball
Major League Baseball is the highest level of professional baseball in the United States and Canada, consisting of teams that play in the National League and the American League...

 offers instant messaging and chatrooms using a customized ejabberd. MXit
MXit
MXit is a free instant messaging application developed by MXit Lifestyle Ltd. in South Africa that runs on multiple mobile and computing platforms...

 was a large server for mobile instant messaging client that started using ejabberd in 2005, but was replaced with a custom IM engine. Universities known to use ejabberd include: Saint Petersburg State University
Saint Petersburg State University
Saint Petersburg State University is a Russian federal state-owned higher education institution based in Saint Petersburg and one of the oldest and largest universities in Russia....

, Taganrog State University and the Division of Information Technology of the University of Wisconsin–Madison
University of Wisconsin–Madison
The University of Wisconsin–Madison is a public research university located in Madison, Wisconsin, United States. Founded in 1848, UW–Madison is the flagship campus of the University of Wisconsin System. It became a land-grant institution in 1866...

.

In the FOSS
Free and open source software
Free and open-source software or free/libre/open-source software is software that is liberally licensed to grant users the right to use, study, change, and improve its design through the availability of its source code...

 world, there is a pair of notable generic deployments of ejabberd, namely the KDE
KDE
KDE is an international free software community producing an integrated set of cross-platform applications designed to run on Linux, FreeBSD, Microsoft Windows, Solaris and Mac OS X systems...

 Talk and the Fellowship of the Free Software Foundation Europe
Free Software Foundation Europe
The Free Software Foundation Europe was founded in 2001 as an official European sister organization of the U.S.-based Free Software Foundation to take care of all aspects of free software in Europe. FSF and FSFE are financially and legally separate entities.FSFE believes that access to and...

.

ejabberd chatroom feature provides the IETF
Internet Engineering Task Force
The Internet Engineering Task Force develops and promotes Internet standards, cooperating closely with the W3C and ISO/IEC standards bodies and dealing in particular with standards of the TCP/IP and Internet protocol suite...

 Groupchat Service, used by the various working groups, areas, and BOF sessions during meetings and at other times.

Other deployments use ejabberd in more novel ways. For instance, BBC Radio
BBC Radio
BBC Radio is a service of the British Broadcasting Corporation which has operated in the United Kingdom under the terms of a Royal Charter since 1927. For a history of BBC radio prior to 1927 see British Broadcasting Company...

 LiveText uses ejabberd's Publish-Subscribe service to synchronously broadcast text content with the radio stream.
sameplace.cc is a Mozilla Firefox extension that integrates Jabber in the web browser,
and uses ejabberd for the XMPP server.
Other deployments include Chesspark (online chess playing site), Collecta (real-time search), and Notifixious (notifications of website subscriptions).

One Laptop per Child's School server
OLPC XS
The OLPC XS is a Linux-based OS designed to be installed on generic low-to-midrange mildly ruggedized servers. Initial plans of building a custom server geared for the role have been postponed, OLPC however offers hardware recommendations for the system, and plans to support the XO hardware...

 uses ejabberd with OLPC-specific patches as the instant messaging server.

In 2008 Facebook
Facebook
Facebook is a social networking service and website launched in February 2004, operated and privately owned by Facebook, Inc. , Facebook has more than 800 million active users. Users must register before using the site, after which they may create a personal profile, add other users as...

 announced that they will support XMPP for their chat service. Facebook developers made a presentation on the topic at Commercial Users of Functional Programming (CUFP) 2009 conference, and in November 2009 chat.facebook.com was detected as running a modified version of ejabberd. Om Malik
Om Malik
Om Perkash Malik is an Indian-American web and technology writer. He is the founder of Giga Omni Media, Inc. and executive editor for technology blog GigaOM. He is also a host on a former Revision3 weekly web-business centric podcast, The GigaOm Show.- Personal life and education :Malik was born...

 commented on the development as "disruptive" competition for "older IM networks such as AOL’s AIM and Microsoft’s MSN". On Feb 10th 2010, the Facebook blog announced the opening of the XMPP interface to Facebook chat, based on ejabberd.

Another social media and blogging service that uses ejabberd is LiveJournal
LiveJournal
LiveJournal is a virtual community where Internet users can keep a blog, journal or diary. LiveJournal is also the name of the free and open source server software that was designed to run the LiveJournal virtual community....

 Talk. The Spanish-focused Tuenti
Tuenti
Tuenti is a Spain-based, invitation-only private social networking website that has been referred to as the "Spanish Facebook." Tuenti, pronounced in Spanish, sounds like Twenty in English...

 social network uses a modified ejabberd to provide a live chat service.

The worldwide jabber.org XMPP server, with a userbase of 330,000 users and 15,000 users online at any one time in December 2009,
used ejabberd since February 2006 until January 2010.

Publications and reception

Two articles are published about ejabberd in magazines:
"Démarrer avec ejabberd" in the French magazine PROgrammez!
and "Passing notes in class", a post in Free Software Magazine
Free Software Magazine
Free Software Magazine is a website which produces a mostly free-content e-zine about free software....

.

Computerworld
Computerworld
Computerworld is an IT magazine that provides information for senior IT leaders. It is published in many countries around the world under the same or similar names. Its publisher is International Data Group. Computerworld serves the needs of IT management via print and online...

 Australia interviewed Erlang creator Joe Armstrong in June 2009, and he referred to ejabberd in this way:
  • Q: "What's the most interesting program(s) you've seen written with Erlang for business?"
  • A: "That's difficult to answer, there are many good applications. Possibly Ejabberd which is an open-source Jabber/XMPP instant messaging server. Ejabberd appears to be the market leading XMPP server and things like Google Wave which runs on top of XMPP will probably attract a lot of people into building applications on XMPP servers."


Builder Australia interviewed Andre Pang in September 2007,
and referred to ejabberd in those terms: "the apps that Erlang is suited for really aren't CPU bound that often, if you look at ejabberd, it serves some absolutely crazy amount of concurrent connections, well over 100,000, and they're running it on, I'm not sure, but it's something like a Quad core XEON machine."

ejabberd is mentioned in several books related to the XMPP protocol and the Erlang language.
XMPP: The Definitive Guide (O'Reilly Media
O'Reilly Media
O'Reilly Media is an American media company established by Tim O'Reilly that publishes books and Web sites and produces conferences on computer technology topics...

, 2009) refers to ejabberd in those terms: The server is well-known for its scalability, and it can be clustered across multiple instances. A 2006 internal review paper in the IT department of Cambridge University
University of Cambridge
The University of Cambridge is a public research university located in Cambridge, United Kingdom. It is the second-oldest university in both the United Kingdom and the English-speaking world , and the seventh-oldest globally...

 found it the best choice amongst Jabber servers. In the same year Alexey Shchepin was awarded the "User of the Year" award at the 12th International Erlang/OTP User Conference.

Other published books that mention ejabberd are:
  • "Programming Erlang: Software for a Concurrent World" (Pragmatic Bookshelf, 2008)
  • "Erlang Programming: A Concurrent Approach to Software Development" (O'Reilly Media
    O'Reilly Media
    O'Reilly Media is an American media company established by Tim O'Reilly that publishes books and Web sites and produces conferences on computer technology topics...

    , 2009)
  • "Openfire Administration: A practical step-by-step guide to rolling out a secure Instant Messaging service over your network" (Packt Publishing, 2008)
  • "Fedora 11 and Red Hat Enterprise Linux Bible" (Wiley, 2009)


ejabberd was used in research works of papers published in international conferences proceedings and journals:
  • XMPP for cloud computing in bioinformatics supporting discovery and invocation of asynchronous web services
  • Kestrel: an XMPP-based framework for many task computing applications
  • IM'ing overload: Libraryh3lp to the rescue
  • Towards an Enhanced Adaptability and Usability of Web-Based Collaborative Systems
  • Leveraging Visual Tailoring and Synchronous Awareness in Web-Based Collaborative Systems
  • Adding New Communication Services to the FIPA Message Transport System


There are four patent applications published in the United States Patent and Trademark Office
United States Patent and Trademark Office
The United States Patent and Trademark Office is an agency in the United States Department of Commerce that issues patents to inventors and businesses for their inventions, and trademark registration for product and intellectual property identification.The USPTO is based in Alexandria, Virginia,...

 that involve ejabberd:
  • US 2007/0271367 A1: Systems and Methods for Location-Based Social Web Interaction and Instant Messaging System
  • US 2008/0062969 A1: Instant Message Call Connect System Apparatus and Database
  • US 2008/0062970 A1: Instant Message Call Connect System Method and Interface
  • US 2008/0235189 A1: System for Searching for Information Based on Personal Interactions and Presences and Methods Thereof

Project history

Alexey Shchepin started ejabberd in November 2002 for three main reasons: success with Tkabber
Tkabber
Tkabber is a GPL instant messaging client for the XMPP protocol which uses the Tk toolkit for the GUI. It runs on anything to which Tcl/Tk is ported: almost any X-based system , Microsoft Windows, and Mac OS X....

 (his previous project, a Jabber client), a rather unstable first alpha release of jabberd2
Jabberd2
jabberd2 is an XMPP server, written in the C language and licensed as Free software under the GNU General Public License. It was inspired by jabberd14.- Former developers :* The project leader was Justin Kirby....

, and his wish to play with Erlang features (Alexey would have not started ejabberd without Erlang). Ejabberd hit version 1.0 in December 2005.

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK