6.1 NetSim
The first commercial product developed using Erlang was a network simulator which simulates the maintenance and operations behavior of an Ericsson AXE exchange. NetSim was released in 1994. At the time of writing this product is in use at about twenty sites in several countries.
6.2 Mobility Server
In February 1995, Ericsson Business Networks launched the Consono Personal Mobility product range. The principle component in the Consono system is a device called the Mobility Server, most of the code in the Mobility Server is written in Erlang.
The Ericsson press release [ER196] at CeBIT-96 summarized some of the features of the Mobility Server:
Ericsson's solution is a new system concept called a Mobility Server, which acts as an intelligent call control system when linked to a company PBX. The Mobility Server is primarily designed as an add-on to the Ericsson Consono MD110 PBX, although it can also be used with PBX systems from other suppliers.
One of the principal attractions of the Mobility Server is the introduction of Personal Number services for all mobile users. Each employee is able to publish a single number, to which all phone calls and faxes can be sent. The person can then control when and where and from whom they want to receive phone and fax calls.
The Mobility Server automatically routes the calls appropriately, to an extension within the company PBX, or to an external fixed or mobile phone in the public network. The routing can be selective, so that only certain calls are directed to the person's extensions, with all other calls going to a secretary or voice-mail system.
The mobility server can be utilized by organizations with as few as 60 extensions but is expected to be particularly attractive to organizations with 400 or more extensions, and highly mobile workforces for whom the quality and flexibility of communications is important. Examples include sales and service organizations, and businesses with employees who telework, spending some or all of their time working from home.
The services offered can be used with wired or cordless PBX extensions, and externally with cellular and PSTN phones, wide-area or local paging systems, and fax/fax mailboxes.
Interestingly, nowhere in the Ericsson press releases was there any mention that the system was programmed in Erlang!
The Mobility Server is the largest system programmed in Erlang yet written and contains over 230,000 lines of production quality Erlang code. At the time of writing we believe this to be the largest functional program ever written, it also demolishes the argument that "functional programming languages cannot be used for large-scale projects".
The Mobility Server is a good example of a non-numerical, non-scientific system problem which can be programmed in Erlang.
6.2.1 Technical Details
The Mobility Server (MS) is an interesting example of a large function program. Here are some details of the program:
-The MS code was organized into 486 Erlang modules, containing 230,000 lines of commented Erlang code integrated with 20,000 lines of C.
-The Erlang source code was 6.6 Mbytes of text, when compiled and loaded into the system it occupied 1.2 Mbytes of code space.
-The system runs on a 40MHz Force 5TE 40Mhz with 32 Mbytes of memory and the VxWorks operating system.
-The MS was written by a team of 35 Programmers. These programmers had no previous experience. They were helped by four consultants from "Erlang Systems".
-The project started in a small way in 1987 as an experiment in prototyping using a very slow Erlang interpreter written in Prolog.
6.3 Distributed Resource Controller
The DRC is written in distributed Erlang and runs on a network of Windows-NT machines. The DRC has a robust scalable architecture and runs on low cost hardware. The resource which are controlled are a collection of various audio devices, human operators together with various database systems.
The allocation of resources is achieved using a dedicated scripting language - the meta-interpreter for the scripting language is written in Erlang.