ejabberd

From Infogalactic: the planetary knowledge core
Jump to: navigation, search
ejabberd
ejabberd's Web admin
Original author(s) Alexey Shchepin
Developer(s) ProcessOne
Stable release ejabberd Community Server 16.01[1] / 20 November 2015; 8 years ago (2015-11-20)
Development status Active
Written in Erlang
Operating system Cross-platform
Available in Multiple languages
Type XMPP server
License GNU General Public License
Website Home
Community

ejabberd is an XMPP application server, written mainly in the Erlang programming language. It can run under several Unix-like operating systems such as Mac OS X, GNU/Linux, FreeBSD, NetBSD, OpenBSD and OpenSolaris. Additionally, ejabberd can run under Microsoft Windows, however, a user must stay logged in or always restart the ejabberd service remotely after any logout from the machine.[2] ejabberd stands for Erlang Jabber Daemon (Jabber being a former name for XMPP) and is written in lowercase only, as is common for daemon software.

ejabberd is free software, distributed under the terms of the GNU General Public License. As of 2009, it is one of the most popular open source applications written in Erlang.[3] XMPP: The Definitive Guide (O'Reilly Media, 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.[4] The software's creator, Alexey Shchepin was awarded the Erlang User of the Year award at the 2006 Erlang user conference.[5]

ejabberd has a number of notable deployments, IETF Groupchat Service,[6][7] BBC Radio LiveText,[8] Nokia's Ovi,[9] KDE Talk[10] and one in development at Facebook.[11][12] As of 2009 ejabberd is the most popular server among smaller XMPP-powered sites that register on xmpp.org.[13]

With the next major release after version 2 (previously called ejabberd 3), the versioning scheme was changed to reflect release dates as "Year.Month-Revision" (starting with 13.04-beta1). It was also announced that further development will be split into an "ejabberd Community Server" and an "ejabberd Commercial Edition [which] targets carriers, websites, service providers, large corporations, universities, game companies, that need high level of commitment from ProcessOne, stability and performance and a unique set of features to run their business successfully." [14]

Features

ejabberd has a high level of compliance with XMPP.[15] It provides a web interface which can be translated into other languages. ejabberd supports distributed computing by clustering, supports live upgrades,[16] shared roster groups and provides support for virtual hosts. Database management systems supported include PostgreSQL and MySQL, and ODBC is supported for connectivity to other systems. LDAP authentication is supported, as is login via SSL/TLS, SASL and STARTTLS.

ejabberd is extensible via modules, which can provide support for additional capabilities such as saving offline messages, connecting with IRC channels, or a user database which makes use of user's vCards (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,[17] 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/XMPP users behind firewalls to share files through a SOCKS 5 proxy.[18]

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,[19] ejabberd is also available in several operating system distributions as is typical in FOSS, including Debian, Fedora, Gentoo, Ubuntu, Arch Linux, OpenSolaris, FreeBSD Ports, OpenBSD ports, NetBSD port and Mac OS X's Fink.[20][21]

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

Notable deployments

ejabberd is known to be used by XMPP-related sites and a number of companies, either for providing an XMPP 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 XMPP-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,[24] that handles between 10,000 and 20,000 concurrent users at any time.[25] Among smaller XMPP-related sites, ejabberd is also the most popular server.[13] 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%.[26]

Among generic instant messaging deployments are ISPs like the Portuguese SAPO,[27] and the German United Internet for services like GMX and Web.de.[28][29][30] The Russian search engine Yandex uses a highly modified version of ejabberd, conveniently named Yabberd.[31] Nokia's Ovi uses ejabberd with some customizations.[9] Major League Baseball offers instant messaging and chatrooms using a customized ejabberd.[32][33] Mxit was a large server for mobile instant messaging client that started using ejabberd in 2005, but was replaced with a custom IM engine.[34] Universities known to use ejabberd include: Saint Petersburg State University,[35] Taganrog State University[36][37] and the Division of Information Technology of the University of Wisconsin–Madison.[38]

In the FOSS world, there is a pair of notable generic deployments of ejabberd, namely the KDE Talk[10] and the Fellowship of the Free Software Foundation Europe.[39][40]

ejabberd chatroom feature provides the IETF Groupchat Service, used by the various working groups, areas, and BOF sessions during meetings and at other times.[6][7]

Other deployments use ejabberd in more novel ways. For instance, BBC Radio LiveText uses ejabberd's Publish-Subscribe service to synchronously broadcast text content with the radio stream.[8] sameplace.cc is a Mozilla Firefox extension that integrates Jabber/XMPP in the web browser, and uses ejabberd for the XMPP server.[41][42] Other deployments include Chesspark (online chess playing site),[43] Collecta (real-time search),[44] and Notifixious (notifications of website subscriptions).[45]

One Laptop per Child's School server uses ejabberd with OLPC-specific patches as the instant messaging server.[46]

In 2008 Facebook 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,[11] and in November 2009 chat.facebook.com was detected as running a modified version of ejabberd. Om Malik commented on the development as "disruptive" competition for "older IM networks such as AOL’s AIM and Microsoft’s MSN".[12] On Feb 10th 2010, the Facebook blog announced the opening of the XMPP interface to Facebook chat,[47] based on ejabberd.

Another social media and blogging service that uses ejabberd is LiveJournal Talk.[48][49] The Spanish-focused Tuenti social network uses a modified ejabberd to provide a live chat service.[50]

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

Publications and reception

Two articles are published about ejabberd in magazines: "Démarrer avec ejabberd" in the French magazine PROgrammez![56] and "Passing notes in class", a post in Free Software Magazine.[57]

Computerworld Australia interviewed Erlang creator Joe Armstrong in June 2009,[58] 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,[59] 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, 2009) refers to ejabberd in those terms: The server is well-known for its scalability, and it can be clustered across multiple instances.[60] A 2006 internal review paper in the IT department of Cambridge University found it the best choice amongst Jabber servers.[61] In the same year Alexey Shchepin was awarded the "User of the Year" award at the 12th International Erlang/OTP User Conference.[5]

Other published books that mention ejabberd are:

  • "Programming Erlang: Software for a Concurrent World" (Pragmatic Bookshelf, 2008)[62]
  • "Erlang Programming: A Concurrent Approach to Software Development" (O'Reilly Media, 2009)[63]
  • "Openfire Administration: A practical step-by-step guide to rolling out a secure Instant Messaging service over your network" (Packt Publishing, 2008)[64]
  • "Fedora 11 and Red Hat Enterprise Linux Bible" (Wiley, 2009)[65]

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[66]
  • Kestrel: an XMPP-based framework for many task computing applications[67]
  • IM'ing overload: Libraryh3lp to the rescue[68]
  • Towards an Enhanced Adaptability and Usability of Web-Based Collaborative Systems[69]
  • Leveraging Visual Tailoring and Synchronous Awareness in Web-Based Collaborative Systems[70]
  • Adding New Communication Services to the FIPA Message Transport System[71]

There are four patent applications published in the United States Patent and Trademark Office that involve ejabberd:

  • US 2007/0271367 A1: Systems and Methods for Location-Based Social Web Interaction and Instant Messaging System[72][73]
  • US 2008/0062969 A1: Instant Message Call Connect System Apparatus and Database[74]
  • US 2008/0062970 A1: Instant Message Call Connect System Method and Interface[75][76]
  • US 2008/0235189 A1: System for Searching for Information Based on Personal Interactions and Presences and Methods Thereof[77]

Project history

Alexey Shchepin started ejabberd in November 2002[78] for three main reasons: success with Tkabber (his previous project, an XMPP client), a rather unstable first alpha release of jabberd2, and his wish to play with Erlang features (Alexey would have not started ejabberd without Erlang).[79] Ejabberd hit version 1.0 in December 2005.[80]

See also

References

  1. Lua error in package.lua at line 80: module 'strict' not found.
  2. Lua error in package.lua at line 80: module 'strict' not found.
  3. Francesco Cesarini, Simon Thompson, Erlang Programming, O'Reilly Media, 2009, ISBN 0-596-51818-8, p. 2
  4. Peter Saint-André, Kevin Smith, Remko Tronçon, XMPP: The Definitive Guide: Building Real-Time Applications with Jabber Technologies, O'Reilly Media, 2009, ISBN 0-596-52126-X, p. 253
  5. 5.0 5.1 Lua error in package.lua at line 80: module 'strict' not found.
  6. 6.0 6.1 IETF Groupchat/Chatroom Service
  7. 7.0 7.1 online verification of jabber.ietf.org service
  8. 8.0 8.1 LiveText-via-IP upgrade and other synchronously delivered content
  9. 9.0 9.1 online verification of ovi.com XMPP server software
  10. 10.0 10.1 KDETalk.net, the KDE XMPP server
  11. 11.0 11.1 Lua error in package.lua at line 80: module 'strict' not found.
  12. 12.0 12.1 Lua error in package.lua at line 80: module 'strict' not found.
  13. 13.0 13.1 Public XMPP Services
  14. ejabberd Community Server 13.03 ejabberd mailing list, posted by Mickaël Rémond. 2013-03-22. Retrieved 2013-06-02.
  15. Lua error in package.lua at line 80: module 'strict' not found.
  16. Lua error in package.lua at line 80: module 'strict' not found.
  17. XMPP.ORG, "XEP-0045: Multi-User Chat"
  18. Lua error in package.lua at line 80: module 'strict' not found.
  19. ejabberd Download Archive
  20. ejabberd downloads counter with links to OS distributions
  21. Arch Linux package details
  22. TurnKey Linux Appliance for XMPP and Web Chat
  23. CEAN package for ejabberd
  24. online verification of jabber.ru XMPP server software
  25. online statistics of jabber.ru XMPP server
  26. Usage estimation of public XMPP servers per domain
  27. Lua error in package.lua at line 80: module 'strict' not found.
  28. GMX bringt eigenen Instant Messenger heraus
  29. GMX plant Instant-Messenger für viele Protokolle
  30. online verification of gmx.de XMPP services
  31. online verification of yandex.ru running yabberd
  32. Hitting a home run with IM
  33. Major League of Baseball teams up with ProcessOne to deploy large scale chat system
  34. Inclusion of Mxit plugin into Pidgin
  35. online verification of spbu.ru XMPP server software
  36. XMPP TSURE Server
  37. online verification of jabber.tsure.ru XMPP server
  38. online verification of doit.wisc.edu XMPP server version
  39. FSFE Jabber wiki
  40. online verification of jabber.fsfe.org XMPP server
  41. Back in game
  42. online verification of sameplace.cc XMPP server
  43. Choosing An XMPP Server
  44. online verification of XMPP server
  45. Switch from Openfire to Ejabberd: done!
  46. Run a jabber server
  47. Lua error in package.lua at line 80: module 'strict' not found.
  48. New LJTalk server
  49. online verification of livejournal.com XMPP server
  50. Chat in the making; written by Carlos Abalde, Backend Engineer in Tuenti
  51. Server Migration Coming Soon
  52. At the jabber.org service we typically have ~15,000 users online at any one time
  53. e-jabbering
  54. Lua error in package.lua at line 80: module 'strict' not found.
  55. To Our Users
  56. "Démarrer avec ejabberd" at magazine PROgrammez!
  57. "Passing notes in class" at Free Software Magazine
  58. The A-Z of Programming Languages: Erlang
  59. Interview: The importance of being Erlang
  60. Peter Saint-André, Kevin Smith, and Remko Tronçon's XMPP: The Definitive Guide
  61. Tony Finch, University of Cambridge Computing Service, [1], p. 4
  62. Joe Armstrong (Pragmatic Bookshelf, 2007, ISBN 978-1-934356-00-5)
  63. Francesco Cesarini, Simon J. Thompson (O'Reilly Media, 2009. ISBN 978-0-596-51818-9) - Erlang Programming: A Concurrent Approach to Software Development
  64. Mayank Sharma's Openfire Administration: A practical step-by-step guide to rolling out a secure Instant Messaging service over your network
  65. Christopher Negus's Fedora 11 and Red Hat Enterprise Linux Bible
  66. Lua error in package.lua at line 80: module 'strict' not found.
  67. Lua error in package.lua at line 80: module 'strict' not found.
  68. Lua error in package.lua at line 80: module 'strict' not found.
  69. Lua error in package.lua at line 80: module 'strict' not found.
  70. Lua error in package.lua at line 80: module 'strict' not found.
  71. Lua error in package.lua at line 80: module 'strict' not found.
  72. Patent US 2007/0271367 A1 in Google Patents Application Number: 11/796,304 Filing Date: 27 Apr 2007 Publication Number: US 2007/0271367 A1 Publication Date: 22 Nov 2007 Inventors: Zohar Yardeni, John Londono
  73. Patent US 2007/0271367 A1 in Free Patents Online
  74. Patent US 2008/0062969 A1 in Google Patents Application Number: 11/853,640 Filing Date: 11 Sep 2007 Publication Number: US 2008/0062969 A1 Publication Date: 13 Mar 2008 Inventors: Donald Picard, Robert DeBenedictis, Jose Capo, Ray Jimenez Assignee: Common Voices
  75. Patent US 2008/0062970 A1 in Google Patents Application Number: 11/853,642 Filing Date: 11 Sep 2007 Publication Number: US 2008/0062970 A1 Publication Date: 13 Mar 2008 Inventors: Donald Picard, Robert DeBenedictis, Jose Capo, Ray Jimenez Assignee: Common Voices
  76. Patent US 2008/0062970 A1 in Free Patents Online
  77. Patent US 2008/0235189 A1 in Free Patents Online Application Number: 11/855,851 Filing Date: 14 Sep 2007 Publication Number: US 2008/0235189 A1 Publication Date: 25 Sep 2008 Iventors: Drew Rayman, Brad Alperin, Timothy Driscoll, Stuart Goldstein, David Levin, Benjamin Simon
  78. Initial revision
  79. aleksey speaks (interview to Alexey Shchepin)
  80. For full release history, see https://www.ejabberd.im/releases

External links