Charles Consel 1, Fabien Latry 1, and Julien Mercadal 1 IPTComm – July 2007 1 Phoenix Research Group INRIA / LaBRI Staging Telephony.

Slides:



Advertisements
Similar presentations
Ernst Oberortner Vienna University of Technology.
Advertisements

An IMS testbed for SIP applications
1 Verification by Model Checking. 2 Part 1 : Motivation.
Software Requirements
Andrea Maurino Web Service Design Methodology Batini, De Paoli, Maurino, Grega, Comerio WP2-WP3 Roma 24/11/2005.
© 2005 by Prentice Hall Appendix 3 Object-Oriented Analysis and Design Modern Systems Analysis and Design Fourth Edition Jeffrey A. Hoffer Joey F. George.
© 2005 by Prentice Hall Chapter 13 Finalizing Design Specifications Modern Systems Analysis and Design Fourth Edition Jeffrey A. Hoffer Joey F. George.
Chapter 1: The Database Environment
1 Copyright © 2010, Elsevier Inc. All rights Reserved Fig 2.1 Chapter 2.
By D. Fisher Geometric Transformations. Reflection, Rotation, or Translation 1.
A Stepwise Approach to Developing Languages for SIP Telephony Service Creation Nicolas Palix*, Charles Consel*, Laurent Réveillère*, Julia Lawall * Phoenix.
REQ Enrollment in Demand Response Programs Process Flow Engineering Firm Retail Customer Demand Response Service Provider (DRSP) Distribution Company.
Document #07-12G 1 RXQ Customer Enrollment Using a Registration Agent Process Flow Diagram (Switch) Customer Supplier Customer authorizes Enrollment.
Document #07-12G 1 RXQ Customer Enrollment Using a Registration Agent Process Flow Diagram (Switch) Customer Supplier Customer authorizes Enrollment.
Business Transaction Management Software for Application Coordination 1 Business Processes and Coordination.
18 Copyright © 2005, Oracle. All rights reserved. Distributing Modular Applications: Introduction to Web Services.
1 Copyright © 2005, Oracle. All rights reserved. Introducing the Java and Oracle Platforms.
Sampling Research Questions
Elton Mathias and Jean Michael Legait 1 Elton Mathias, Jean Michael Legait, Denis Caromel, et al. OASIS Team INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis,
Jeopardy Q 1 Q 6 Q 11 Q 16 Q 21 Q 2 Q 7 Q 12 Q 17 Q 22 Q 3 Q 8 Q 13
Jeopardy Q 1 Q 6 Q 11 Q 16 Q 21 Q 2 Q 7 Q 12 Q 17 Q 22 Q 3 Q 8 Q 13
0 - 0.
DIVIDING INTEGERS 1. IF THE SIGNS ARE THE SAME THE ANSWER IS POSITIVE 2. IF THE SIGNS ARE DIFFERENT THE ANSWER IS NEGATIVE.
MULTIPLYING MONOMIALS TIMES POLYNOMIALS (DISTRIBUTIVE PROPERTY)
Addition Facts
Year 6 mental test 5 second questions
Making the System Operational
1 Data Link Protocols By Erik Reeber. 2 Goals Use SPIN to model-check successively more complex protocols Using the protocols in Tannenbaums 3 rd Edition.
ZMQS ZMQS
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 14 Slide 1 Object-oriented Design 1.
1 IP Telephony (VoIP) CSI4118 Fall Introduction (1) A recent application of Internet technology – Voice over IP (VoIP): Transmission of voice.
BT Wholesale October Creating your own telephone network WHOLESALE CALLS LINE ASSOCIATED.
IH&RA Hotel booking platform
Configuration management
Software change management
11 Contracts CS 4311 Wirfs Brock et al., Designing Object-Oriented Software, Prentice Hall, (Chapter 6)
Chapter 1: Introduction to Scaling Networks
© 2005 Avaya Inc. All rights reserved. A Client-Side Architecture for Supporting Pervasive Enterprise Communications Amogh Kavimandan, Reinhard Klemm,
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 31 Slide 1 Service-centric Software Engineering.
© 2011 TIBCO Software Inc. All Rights Reserved. Confidential and Proprietary. Towards a Model-Based Characterization of Data and Services Integration Paul.
Application Server Based on SoftSwitch
GpiI-2C Identifying software project stages, tasks and deliverables
ABC Technology Project
The case for Speech March, Think of the following kinds of applications … Do they have something in common? 2 ? ?
1 Kerberos Anita Jones November, Kerberos * : Objective Assumed environment Assumed environment –Open distributed environment –Wireless and Ethernetted.
Request Tracker IT Partners Conference Oliver Thomas 19 April 2005.
Symantec Education Skills Assessment SESA 3.0 Feature Showcase
TU e technische universiteit eindhoven / department of mathematics and computer science 1 Empirical Evaluation of Learning Styles Adaptation Language Natalia.
1 UML ++ Mohamed T IBRAHIM University of Greenwich -UK.
Component-Based Software Engineering Main issues: assemble systems out of (reusable) components compatibility of components.
1 Breadth First Search s s Undiscovered Discovered Finished Queue: s Top of queue 2 1 Shortest path from s.
Software Requirements
Database System Concepts and Architecture
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software processes 2.
Lecture 5: Requirements Engineering
Chapter 11 Software Evolution
1. 2 Captaris Workflow Microsoft SharePoint User Group 16 May 2006.
Executional Architecture
Chapter 5 Test Review Sections 5-1 through 5-4.
This work was partially funded by the RNTL initiative (LUTIN project) 1 Refactoring to Object-Oriented Design Patterns Mikal Ziane (LIP6 and Université.
2009 – E. Félix Security DSL Toward model-based security engineering: developing a security analysis DSML Véronique Normand, Edith Félix, Thales Research.
Addition 1’s to 20.
25 seconds left…...
Week 1.
We will resume in: 25 Minutes.
Step 1: Enter your “21 Character Employee Id Or Alternate User Id” Step 2: Enter Personal Password & Click Login NOTE : (First use password is “21 Character.
From Model-based to Model-driven Design of User Interfaces.
INRIA - LaBRICharles Consel Jan-06 1 Domain-Specific Software Engineering Charles Consel Phoenix Research Group LaBRI /INRIA-Futurs January 2006.
DSLs: The Good, the Bad, and the Ugly Charles Consel INRIA / University of Bordeaux.
ENSEIRB, FranceCall/CSeptember 29, 2003 Call/C: A Domain Specific Language for IP Telephony Services Claus Brabrand [ joint work with Charles Consel &
Presentation transcript:

Charles Consel 1, Fabien Latry 1, and Julien Mercadal 1 IPTComm – July Phoenix Research Group INRIA / LaBRI Staging Telephony Service Creation: A Language Approach

Phoenix Group - INRIA / LaBRI IPTComm - July Context Why ? – Expectations among users to create telephony services. What ? – Call routing services, – Signaling-related operations. Where ? – Located on network servers.

Phoenix Group - INRIA / LaBRI IPTComm - July Challenges in Call Routing Services Call routing is an intricate task, requiring expertise in a number of areas – Distributed systems, networking, telecommunications. Diversity management is very challenging – Programmers : end-user, PABX administrator, telephony carrier, – Technologies: APIs, languages, platforms. Reliability of call routing services is a strong pre-requisite – Domain properties to verify.

Phoenix Group - INRIA / LaBRI IPTComm - July Bridging The Gap Gap between business IT Telephony expert service logic Implementation expert technologies

Phoenix Group - INRIA / LaBRI IPTComm - July Bridging The Gap public class Example { [...] private AddressFactory factory = getAddressFactory(); public void processRequest (Request rq){... } public class Example { [...] private AddressFactory factory = getAddressFactory(); public void processRequest (Request rq){... } Domain Knowledge Domain Knowledge What How GAP Call routing domain – Telephony experts, – High level (e.g., modeling) – Code generation difficult. Call routing implementation – Implementation experts, – Technology dependant, – Code verification difficult.

Phoenix Group - INRIA / LaBRI IPTComm - July Our Approach Aim – Providing a language for each kind of experts, – Improving: » Accessibility of routing service programming, » Reliability of service development. Idea – Relying on programming languages, and specifically on domain- specific languages (DSLs), – Introducing a layered architecture of DSLs, – Leveraging high-level tools to compile and verify services.

Phoenix Group - INRIA / LaBRI IPTComm - July Domain-specific language » Domain-specific notations and concepts, » Abstracting implementation details, » Easing program development. Different kinds of DSLs – Modeling the domain vs. programming the domain » A DSL may or may not require programming skills. – Domain-specific modeling language (DSML) » Centered around end-user; requires domain expertise (e.g., CPL). – Domain-specific programming language (DSPL) » Centered around implementation; requires programming expertise (e.g., SPL). Domain-Specific Languages

Phoenix Group - INRIA / LaBRI IPTComm - July Bridging The Gap public class Example { [...] private AddressFactory factory = getAddressFactory(); public void processRequest (Request rq){... } public class Example { [...] private AddressFactory factory = getAddressFactory(); public void processRequest (Request rq){... } Domain Knowledge Domain Knowledge What How GAP DSML Implementation Modeling Implementation

Phoenix Group - INRIA / LaBRI IPTComm - July A Layered Approach DSML – Targets the DSPL – Verification of domain properties DSPL – Interface between the domain and the implementation – Generates implementation DSML Implementation Modeling Implementation Programming DSPL

Phoenix Group - INRIA / LaBRI IPTComm - July A DSPL as a Pivotal Layer Bridge the gap, but also – Simplify the compilation, – Enable to have a variety of DSMLs, – Target multiple implementations. DSPL Preference / Constraint / Trust level / Purpose / Abstraction level /… DSML 1 Implementation 1 DSML 2 Implementation 2 … …

Phoenix Group - INRIA / LaBRI IPTComm - July Staging Processings DSPL DSML 1 Implementation 1 DSML 2 Implementation 2 … … Verification related to the domain Verification related to the program DSML Compilation DSPL Compilation

Phoenix Group - INRIA / LaBRI IPTComm - July Processing DSMLs: Case Study DSMLs – CPL – Call Processing Language (CPL) » XML-based scripting language, » Domain experts, non-programmers. – VisuCom » Graphical language, » Domain experts, non-programmers DSPL – SPL – Session Processing Language (SPL) » Abstracts over underlying protocols, platform, » Programmers. High-level tools – Program generation, – Program verification.

Phoenix Group - INRIA / LaBRI IPTComm - July Processing DSMLs: Case Study Compilation Verification Stratego/XT TLC Model Checker Stratego/XT Error Report SPL Program CPL or VisuCom Program TLA+ Specification

Phoenix Group - INRIA / LaBRI IPTComm - July Compilation: From CPL to SPL service example { processing { dialog { INVITE() response incoming INVITE() { response r = forward if (r == /ERROR/CLIENT/BUSY_HERE) { return forward } else if (r == /ERROR) { if (FROM == { return forward 'tel: '; } return r; } SPL CPL

Phoenix Group - INRIA / LaBRI IPTComm - July Compilation: From CPL to SPL service example { processing { dialog { INVITE() response incoming INVITE() { response r = forward if (r == /ERROR/CLIENT/BUSY_HERE) { return forward } else if (r == /ERROR) { if (FROM == { return forward 'tel: '; } else { return r; } return r; } RuleRedirectNonTerminal : stat1* stat2* -> |[ response r = forward callee ; if ( r == /ERROR/CLIENT/BUSY_HERE ) { stat1* } else { stat2* } ]| where new => r RuleFROMTest : stat1* -> |[ if (FROM == caller) { stat1* } ]|

Phoenix Group - INRIA / LaBRI IPTComm - July Verification of Call Routing Properties Properties – No duplicate redirect, – No redirect to the caller, – No infeasible path, – Service interaction. NoTwiceRedirectToTheSameURI ( n 1..Len(signalingActions) : m n+1..Len(signalingActions) : signalingActions[n] "Continuation" signalingActions[n] signalingActions[m]) NoRedirectToTheCaller ( x Contacts : n 1..Len(callerTests) : x callerTests[n] m 1..Len(signalingActions) : signalingActions[m] x) Consistency ( x Contacts : n 1..Len(callerTests) : x callerTests[n]) (date {})

Phoenix Group - INRIA / LaBRI IPTComm - July Verification of Call Routing Properties Properties – No redirect to the caller, – No duplicate redirect, – No infeasible path, – Service interaction. Incoming call no Is the day of the call Tuesday ? Forward call to Bobs phone... yes Redirect call to Bobs voice mail Is the date of the call between 07/12 and 07/17 ? no Redirect call to Bobs cell phone yes Weekly meeting Annual holidays CPL

Phoenix Group - INRIA / LaBRI IPTComm - July VisuCom Graphical environment Tightly coupled with information systems

Phoenix Group - INRIA / LaBRI IPTComm - July VisuCom Service Model Call routing logic Contact database Service checking Evolution of the service logic with respect to data sources – Description of the service logic : static – Data on which the service relies on : dynamic Service : dynamic Need for consistency checking

Phoenix Group - INRIA / LaBRI IPTComm - July Verification of Call Routing Properties Properties – No redirect to the caller, – No duplicate redirect, – No infeasible path, – Service interaction. VisuCom Data model: Group customer: Alice, Bob, Daniel Group VIP: Frank No intersection

Phoenix Group - INRIA / LaBRI IPTComm - July TLC Error Report TLC Version 2.0 of January 16, 2006 Model-checking Implied-temporal checking--satisfiability problem has 2 branches. Finished computing initial states: 1 distinct state generated. Error: Invariant Consistency is violated. The behavior up to this point is: STATE 1: /\ callerTests = > /\ currentNode = "Incoming" /\ signalingActions = > STATE 2: /\ callerTests = > /\ currentNode = "CustomerGroup" /\ signalingActions = > STATE 3: /\ callerTests = > /\ currentNode = "VIPGroup" /\ signalingActions = > STATE 4: /\ callerTests = > /\ currentNode = "Forward" /\ signalingActions = > 5 states generated, 5 distinct states found, 2 states left on queue. The depth of the complete state graph search is 4.

Phoenix Group - INRIA / LaBRI IPTComm - July Assessment Benefits of the layered view of DSLs – Simplification of the DSML processings, – Specific treatment at each layer. High-level compilation approach – Compilation more amenable to existing high-level program generation tools, – A bridge between a DSML and its implementation. High-level verification approach – Verification more amenable to existing verification tools, – Verification of domain-properties.

Phoenix Group - INRIA / LaBRI IPTComm - July Conclusion An approach to improving the development and the verification of call routing services. – Accessibility of routing service programming, – Development of reliable services. Approach – Relying on a layered view of domain-specific languages, – Leveraging high-level tools to compile and verify services. Validation of the approach for a realistic case study.