Contract-based synchronization of IP telecommunication services: a case study

Communication middleware, like J2EE and OCCAS, facilitates development and deployment of IP telecommunication services by automating various cross-cutting concerns, such as those related to messaging and security. This middleware is highly concurrent, with threads executing methods that an application programmer writes to carry out the service logic. While the middleware manages life-cycle concerns of threads, the problem of synchronizing them is left to the application programmer. Unfortunately, this synchronization code can be complex and prone to error. Moreover, it can easily obscure the service logic. Our prior work proposed solving these problems using a middleware framework to automatically synchronize concurrent service executions based on declarative synchronization contracts. This paper describes an implementation of our synchronization framework and a case study using it. The case study demonstrates the extent to which contract-based synchronization facilitates refinement of a finite-state design to code and improves design transparency. It also examines the impact on performance of the subject application. A conclusion of the case study is that contract-based synchronization could provide a foundation for automatic generation of IPT services from finite-state designs.

[1]  Per Brinch Hansen,et al.  Operating System Principles , 1973 .

[2]  Ivar Jacobson,et al.  Object Design: Roles, Responsibilities, and Collaborations , 2002 .

[3]  Stuart Kent,et al.  Navigation Expressions in OO Modelling , 1998 .

[4]  Vijay K. Gurbani,et al.  Characterizing Session Initiation Protocol (SIP) Network Performance and Reliability , 2005, ISAS.

[5]  Gregory W. Bond,et al.  ECharts for SIP servlets: a state-machine programming environment for VoIP applications , 2007, IPTComm '07.

[6]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[7]  Tevfik Bultan,et al.  Verifiable concurrent programming using concurrency controllers , 2004 .

[8]  Yi Huang,et al.  A thread synchronization model for SIP servlet containers , 2009, IPTComm.

[9]  Filip De Turck,et al.  ISE01-2: J2EE-based Middleware for Low Latency Service Enabling Platforms , 2006, IEEE Globecom 2006.

[10]  Domenico Ferrari Client requirements for real-time communication services , 1990 .

[11]  Dieter Zöbel,et al.  The Deadlock problem: a classifying bibliography , 1983, OPSR.

[12]  David Notkin,et al.  Using role components in implement collaboration-based designs , 1996, OOPSLA '96.

[13]  Arthur J. Bernstein,et al.  Concurrency in programming and database systems , 1993 .

[14]  Yi Huang,et al.  On Mechanisms for Deadlock Avoidance in SIP Servlet Containers , 2008, IPTComm.

[15]  R. E. Kurt Stirewalt,et al.  The universe model: an approach for improving the modularity and reliability of concurrent programs , 2000, SIGSOFT '00/FSE-8.

[16]  Domenico Ferrari,et al.  Client requirements for real-time communication services , 1990, IEEE Communications Magazine.

[17]  Michael Philippsen,et al.  Fair multi-branch locking of several locks , 1997 .

[18]  Yi Huang,et al.  Prototyping synchronization policies for existing programs , 2009, 2009 IEEE 17th International Conference on Program Comprehension.

[19]  James W. Havender Avoiding Deadlock in Multitasking Systems , 1968, IBM Syst. J..

[20]  Erich M. Nahum,et al.  Evaluating SIP server performance , 2007, SIGMETRICS '07.

[21]  Mauricio Cortes,et al.  On SIP performance , 2004, Bell Labs Technical Journal.

[22]  Michael Scharf,et al.  Measurement of the SIP Parsing Performance in the SIP Express Router , 2007, EUNICE.

[23]  Eric Cheung,et al.  Compositional Control of IP Media , 2009, IEEE Transactions on Software Engineering.

[24]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[25]  Martin Fowler,et al.  Patterns of Enterprise Application Architecture , 2002 .