Programming Language Technology For Communication Services
The frantic pace of technological advances in the area of multimedia communications, compounded with the effective convergence between telecommunication and computer networks, is opening up a host of new functionalities, placing service creation as a fundamental vehicle to bring these changes to end-users.
This situation has three main consequences: (1) service creation is increasingly becoming a software intensive area; (2) service creation must preserve robustness because communication services are heavily relied on; (3) the growing multimedia nature of communication services imposes high-performance requirements on services and underlying layers.
To explore this research area, the Phoenix research group develops principles, techniques and tools for the development of communication services. The scope of our research comprises the key elements underlying communication services: the basic infrastructure that enables com- munications (e.g., signaling platform, transport protocols, and session description); the software architecture underlying services (e.g., component models, programming interfaces, and the notion of service logic); and, communication terminals (e.g., terminal features and embedded systems).
A host of networked devices are populating smart spaces that become prevalent in an increasing number of areas, including supply chain management (e.g., parcel tracking), monitoring (e.g., building surveillance and patient monitoring) and home and building automation (e.g., control of energy consumption). This situation raises a number of challenges (1) safety and security because of the interweaving of these smart spaces in our daily life, (2) productivity because of a high demand of applications matching the wide range of user needs, and (3) abstraction because of the combination of expertise areas involved in smart spaces.
Over the next four years, the research efforts of Phoenix will address these challenges. To do so, our goal is to develop a software engineering approach that is domain oriented, extending our work on domain-specific languages.
Strengthening current research efforts
We propose to design languages dedicated to the development of software to orchestrate networked entities.
Orchestrating networked entities involves key software engineering dimensions that are specific to this domain. Our goal is to create languages to address these dimensions: modeling of a network-centric space (i.e., a smart space), expressing the coordination logic, defining security policies, and specifying fault tolerant policies. The specificities of these dimensions will lead to different design strategies for these languages: specification, configuration, or programming. Because they are domain specific, these languages will offer notations and concepts that are well suited for these dimensions, improving software productivity.
The dedicated nature of the proposed languages will enable domain-specific properties to be decidable. To do so, the languages will be designed in conjunction with these properties and will take into account the power of the existing verification techniques and tools. Safety and security are two key properties that will be specifically studied.
We will develop compilation and optimization strategies that exploit the features of network-centric systems. The dedicated compilers will encapsulate the techniques and technologies of the target domain, raising the level of abstraction.
We will develop new runtime support to manage the dynamic changes of a network-centric space in conformance with its modeling. This runtime support will be efficient enough to manage thousands of networked entities.