The design and development of reliable, high available and efficient distributed systems is a must of current service market. In the last years, the MADS group has been working in the design, implementation and deployment of several distributed solutions for real environments by combining clusters built from commodity hardware and control systems implemented using the distributed functional paradigm. In particular, we use the concurrent functional language Erlang, developed by Ericsson to implement the soft real-time control systems of its products. Among the experiences, we should highlight the video-on-demand server VoDKA, a system for the distribution and streaming of media contents that has been almost completely developed using Erlang. Nowadays, VoDKA has left the laboratory environment to succesfully compete with other existing products, being industrialized through the technology-based spinoff company LambdaStream.
Despite the relevant advantages of the functional paradigm to develop systems with a high level of concurrency due to the high-level of abstraction and the (almost) absence of side-effects, in the previous project of the group (VRDADER, TIC2002-02859), we identify some lacks that avoids this programming model extend against other more conventional approaches such as the proposed by the Java family. The main goal of this project is to overcome those lacks acomplishing the following objectives:
- Definition of a global framework and work methodology in order to analyze and design distributed functional systems. At this point, we consider very important the role of formal methods to improve the quality of nontrivial software products.
- Development of tools for the analysis, design, implementation and performance
evaluation of those systems. Among those tools, we identify
- Support tools (diagram tools, code generators from models, model simulators, and so on), including those which let us incorporate certification of code properties using techniques such as model checking or proof assistants.
- Collection of good practices, materialized as a collection of design patterns, in the line proposed by former project VRDADER.
- A technology framework for the development of systems that extends and improves Erlang's Open Telecom Platform (OTP), including libraries and tools to solve several general recurrent problems: fault tolerance, high availability, on-line code update and change, process and service mobility, etc.
As a proof of concept and case study, the tools and methods developed are going to be used in the following iterations of the evolution of VoDKA server, which will be deployed in environments of work with thousands of concurrent streams in 24x7 conditions. The main challange of these iterations is the step into DVB-C (cable television) and DVB-T (terrestrial digital television) of VoDKA server (currently, it is an IP server) and the new applications and contents related with the imminent raise of digital interactive TV (i-Contents).
As a complement for group's research skills, three external collaborators are going to actively participate in the project: two of them are closely related to the actual source of the Erlang language: Thomas Arts (formerly at Ericsson's Computer Science Laboratory and now working at IT University of Gotheborg) and Lars-Ake Fredlund (Swedish Computer Science Institute, Sweden); the other is a distributed systems and performance engineering expert: José Aguilar (University of Merida, Venezuela).
The project has great interest from the industrial point of view, highlighting the active implication of several enterprises which are interested in the development of services using distributed funcional porgramming: R Cable y Telecomunicaciones de Galicia, LambdaStream Servicios Interactivos, Ericsson, Alfa21 Outsourcing, Indra Sistemas, Altia Consultores, etc.




