Telephony Software Engineering: A Domain-Specific Language Approach
暂无分享,去创建一个
Telephony is evolving at a frantic pace, after having converged with computer networks and multimedia, and now offers a host of new functionalities. This evolution is led by the Session Initiation Protocol (SIP) for Voice over IP (VoIP) and third generation mobile phones. SIP supports user mobility and user availability notification. It manages various multimedia dialogs between parties, including audio/video conversations, games and instant messaging. Because of the growing scope of the telephony domain, developing a telephony service requires a programmer to have an intimate knowledge of telephony rules and constraints, as well as the SIP protocol and its numerous companion protocols. Programming for a SIP platform also requires expertise in distributed systems, networking, and a SIP API, which is often large and complex. These requirements make telephony software engineering an overwhelming challenge. This paper presents a domain-specific language for developing telephony services. This language, named Session Processing Language (SPL), offers domain-specific constructs and extensions that abstract over the intricacies of the underlying technologies. By design, SPL guarantees critical properties, far beyond the reach of general-purpose languages. SPL has been formally specified. We have also designed a SIP virtual machine to provide a high-level interface dedicated to service development.