Portable Call Agent: A model for rapid development and emulation of network services

The Portable Call Agent (PCA) is a tool that enables rapid development and emulation of network services. In deployment since 1994, PCA has proven its utility in several applications including Lucent Technologies' internal procurement card processing system, as well as multiprotocol Voice over Internet Protocol (VoIP) call control in a softswitch emulator currently being used in the Alcatel-Lucent AnyMedia® platform for demonstrations and feature and load testing. While PCA provides a general and flexible solution to the development of such diverse services, the resulting implementations have proven to be highly efficient and portable; additionally, services developed in PCA are dynamically extensible and reconfigurable. The technical core of PCA is based on a novel language for specifying services as “call flow graphs” which are executed by a “call flow engine.” In this paper, we present a formal model that distills the theoretical underpinnings of call flow graphs. Our model is formulated as a labeled transition graph in which high-level programming constructs are ascribed to transitions. These richer transitions enable more sophisticated data state maintenance, and dynamic patterns of thread creation and communication. The model smoothly unifies a number of computational paradigms that have remained separate so far. First, it can express both the asynchronous characteristics of interactive systems as well as the synchronous characteristics of reactive systems. Second, the dataflow is explicitly delineated along message sends and receipts, thus assimilating the spirit of dataflow languages. The combination of asynchronous and synchronous features, as well as an explicit structure on the control and data flow, seem to correspond well with the way network services are typically specified.

[1]  Thierry Gautier,et al.  Programming real-time applications with SIGNAL , 1991, Proc. IEEE.

[2]  Gérard Berry,et al.  Real Time Programming: Special Purpose or General Purpose Languages , 1989, IFIP Congress.

[3]  Pascal Raymond,et al.  The synchronous data flow programming language LUSTRE , 1991, Proc. IEEE.

[4]  守屋 悦朗,et al.  J.E.Hopcroft, J.D. Ullman 著, "Introduction to Automata Theory, Languages, and Computation", Addison-Wesley, A5変形版, X+418, \6,670, 1979 , 1980 .

[5]  Jeffrey D. Ullman,et al.  Introduction to Automata Theory, Languages and Computation , 1979 .

[6]  Shin Nakajima,et al.  The SPIN Model Checker : Primer and Reference Manual , 2004 .

[7]  D. Walker,et al.  A Calculus of Mobile Processes, Part I , 1989 .

[8]  Matthew Hennessy,et al.  Algebraic theory of processes , 1988, MIT Press series in the foundations of computing.

[9]  David Harel,et al.  Statecharts: A Visual Formalism for Complex Systems , 1987, Sci. Comput. Program..

[10]  Satish Chandra,et al.  Packet types: abstract specification of network protocol messages , 2000 .

[11]  Gérard Berry,et al.  From Regular Expressions to Deterministic Automata , 1986, Theor. Comput. Sci..

[12]  Rajeev Alur,et al.  A Theory of Timed Automata , 1994, Theor. Comput. Sci..

[13]  P. Odifreddi Classical recursion theory , 1989 .

[14]  Robin Milner,et al.  A Calculus of Mobile Processes, II , 1992, Inf. Comput..

[15]  Gérard Berry,et al.  The Esterel Synchronous Programming Language: Design, Semantics, Implementation , 1992, Sci. Comput. Program..

[16]  Robert S. V. Pascoe,et al.  A history of data-flow languages , 1994, IEEE Annals of the History of Computing.

[17]  Rajeev Alur,et al.  Decision Problems for Timed Automata: A Survey , 2004, SFM.

[18]  Robin Milner,et al.  Communication and concurrency , 1989, PHI Series in computer science.

[19]  Janusz A. Brzozowski,et al.  Derivatives of Regular Expressions , 1964, JACM.