A complete OMP offering from Erlang Solutions
Feature
![]() |
|
Open Messaging Platform (OMP) developed by Erlang Solutions is an example of our unique ability to build, test and package bespoke distributions (“Distros”) combining a subset of Erlang/OTP and leading 3rd party components. The OMP Distro is a basic package, primarily designed for organisations who want to get started quickly with ejabberd. OMP will initially focus on ejabberd, but future capabilities will include SMS, email, twitter etc… Erlang Solutions is however able to offer custom-built versions together with commercial support, as your needs grow.
Backed by Erlang Solutions worldwide exclusive support agreement with Ericsson on Erlang/OTP, and drawing on our own Continuous Integration system, Moebius, we have started verifying and packaging Erlang/OTP for various platforms not directly supported by Ericsson. We automatically rebuild and verify our whole suite of Distros for each new release of Erlang/OTP, and also offer commercial support for them. OMP demonstrates our ability to build, test and package bespoke Distros combining a subset of Erlang/OTP and leading 3rd party components.
Benefits for customers
- Customisability: OMP is a customisable variant of OTP developed internally by Erlang Solutions as part of the ejabberd project.
- Support: Erlang Solutions provides an unparalleled support offering due to its worldwide exclusive support agreement being produced in-house.
- Scalability: ejabberd was designed to scale to massive amounts of concurrent connections, ejabberd is part of OMP.
- Time to market & Maintainability: Distros are designed to be simple to deploy & maintain. OMP which is provided as a distro allows users to get ejabberd up and running and sending messages between clients within 15 minutes.
5 Year successful track record
Erlang Solutions has over 5 years of experience designing instant messaging solutions, and is often called upon to optimise and extend ejabberd deployments. Although IM systems are powered by XMPP engines, Erlang Solutions has also worked with other technologies, like Wireless Village.
Typically Erlang Solutions helps clients through site surveys. Its goal is to tune and optimise server configurations. Erlang Solutions also performs code reviews and remote or on site consulting. Some of our clients outsource the bulk of development work to us and this way can help them deliver and deploy a messaging solution, which scales to millions of on-line users. An example of a successful co-operation is with ooVoo, which is a social video and messaging platform.
Enter ejabberd
The philosophies around Erlang have made it a natural ally for a technology like XMPP, and in November 2002 developer Alexey Shchepin started work on an XMPP application server written mainly in the Erlang programming language. The first version of the Erlang Jabber Daemon – shortened to ejabberd – was released in December 2005. At the time of writing, it is at version 2.1.9 with version 3.0 in an Alpha phase.
ejabberd has become one of the most popular open source applications written in Erlang. As the software's creator, Alexey Shchepin was awarded the Erlang User of the Year award at the 2006 Erlang user conference.
ejabberd has a high level of compliance with XMPP, supporting XMPP Core 1.0 and XMPP IM 1.0 and also possesses the following features:
- Cross-platform: ejabberd runs under Microsoft Windows and Unix derived systems such as Linux, Mac OS X, FreeBSD and NetBSD.
- Distributed: ejabberd will run on a cluster of machines and all of them will serve the same Jabber domain(s). When you need more capacity you can simply add a new node to your cluster. Accordingly, you do not need to buy expensive high-end machines to support hundreds of thousands concurrent users.
- Fault-tolerant: an ejabberd cluster can be deployed so that all the information required for a properly working service will be replicated permanently on all nodes. This means that if one of the nodes crashes, the others will continue working without disruption. In addition, nodes may be added or replaced 'on the fly'.
- Administrator-friendly: ejabberd is built on top of the Open Source Erlang. As a result you do not need to install an external database, an external web server, amongst others because everything is included, and ready to run “out of the box”.
If you work with Erlang or ejabberd, see what Erlang Solutions can do for you. Our offering includes:
Site survey
A three-day consultation to review an existing installation (e.g. ejabberd). We need access to the target environment and review ejabberd, Erlang VM, database and OS configuration, system capacity and performance, traffic load, etc. As a result, we prepare a site survey report with recommendations on how to improve the current installation, listing the priorities and time requirements to implement the recommendations.
ejabberd training
The “Erlang and XMPP Express” course introduces the foundations of XMPP and describes the ejabberd architecture. Each participant gets a chance to configure, tune and set up a cluster of ejabberd nodes. The course also covers aspects of ejabberd servers maintenance such as operations, monitoring and debugging. More details can be found on the Erlang Solutions website at the following location: www.erlang-solutions.com
ejabberd optimisation
The Erlang Solutions team has experience in both Erlang development and XMPP/ejabberd systems. We can provide consultants to work on custom modifications and optimisations of ejabberd-based systems. We share our optimisations on the ESL GitHub account (https://github.com/esl/ejabberd). Examples of such optimisations include the following:
- Binaries for internal representation of JIDs and stanzas. The 2.1.8 release of ejabberd uses Erlang strings to represent JIDs and stanzas internally when routing messages. In a system with tens of thousands of connected users, there is a penalty for using lists, as it consumes more RAM than an equivalent with binary representation. Erlang Solutions published an article and a set of patches to replace strings with binaries for the core XMPP functionality.
- OTP-compliant applications. The 2.1.8 release of ejabberd has loosely coupled processes and not all of them follow OTP principles. Erlang Solutions revised the ejabberd source code to bring it in line with OTP principles. This simplifies adding ejabberd as an OTP application of a bigger Erlang system.
- Rebar layout. The 2.1.8 release of ejabberd can be built with the autoconf tool. Since the Rebar tool is de facto a standard in the Erlang community and helps compiling and sharing source code with the open source community, Erlang Solutions provides a version of the ejabberd source code that follows Rebar principles.
- Regression tests. Basing on the exmpp library, escalus testing framework has been implemented, allowing developers modifying ejabberd code to prepare black- and white-box acceptance and regression tests for their customisations. Together with ESL ejabberd fork there are regression tests covering XMPP core functionality shipped, ensuring correctness and validity of the ejabberd installation and configuration.
- Development of XMPP services and ejabberd extensions. Erlang Solutions offers consultants who are ready to work on custom requirements for clients, such as the following:
- SNMP monitoring;
- Cluster linear scalability available thanks to the latest NoSQL data stores, such as Couchbase or Redis;
- Customised offline, roster, privacy, last modules;
- Push notifications to RIM (BlackBerry), Google (Android) and Apple (iPhone) servers syslog integration;
- Integration with MySQL and PostgreSQL database servers (using custom connectivity layers);
- Message archiving support;
- Additional anti-spam filters and throttles;
- Scalable and optimised BOSH support.
Long-term support of ejabberd systems
Erlang Solutions offers support plans to cover your Erlang and ejabberd-based systems. The support plan gives you access to the Erlang Solutions Help Desk site and a number of hours to be spent on additional consulting. Details can be found on the Erlang Solutions website.
Integration with other IM providers
Our team has experience in building IM gateways, where other protocols are supported too, for example icq, AIM, Windows Live and Google Talk.











