Research Proposal The Phoenix Project - PowerPoint PPT Presentation

1 / 55
About This Presentation
Title:

Research Proposal The Phoenix Project

Description:

Research Proposal. The Phoenix Project. October 2004. Bordeaux. INRIA - LaBRI ... Sapan Bhatia, INRIA and R gion Aquitaine Fellowship (since 9/03) ... – PowerPoint PPT presentation

Number of Views:57
Avg rating:3.0/5.0
Slides: 56
Provided by: Charles515
Category:

less

Transcript and Presenter's Notes

Title: Research Proposal The Phoenix Project


1
Research ProposalThe Phoenix Project
October 2004 Bordeaux
2
Personnel
  • Faculty members (ex Compose)
  • Charles Consel, Prof., Dept of Telecom, ENSEIRB
    / LaBRI
  • Laurent Réveillère, Assoc. Prof., Dept of
    Telecom, ENSEIRB / LaBRI
  • PhD students
  • Sapan Bhatia, INRIA and Région Aquitaine
    Fellowship (since 9/03)
  • Laurent Burgy, Région Aquitaine Fellowship (since
    10/04)
  • Laurence Caillot, Industrial Fellowship --
    Altexia (since 10/03)
  • Fabien Latry, INRIA Fellowship (since 10/04)
  • Mathieu Minard, Industrial Fellowship -- Thomson
    (since 10/02)
  • Nicolas Palix, INRIA Fellowship (since 10/04)
  • External collaborator
  • Julia Lawall, DIKU, University of Copenhagen

3
Research Area
  • Network
  • Telecom
  • Computer
  • Broadcast

Service Creation
4
Requirements
  • Network
  • Telecom
  • Computer
  • Broadcast
  • Software intensive
  • Robustness critical
  • Performance critical

Service Creation
5
Requirements
  • Software intensive
  • Robustness critical
  • Performance critical

6
Requirements
  • Hardware features
  • Network capabilities
  • Customer needs
  • Software intensive
  • Robustness critical
  • Performance critical

7
Requirements
  • Research Issues
  • Low level and intricate
  • Multiple areas of expertise
  • Time-to-market
  • Hardware features
  • Network capabilities
  • Customer needs
  • Software intensive
  • Robustness critical
  • Performance critical

8
Requirements
  • Commodity services
  • Safety, security, dependability
  • Openness vs. robustness
  • Software intensive
  • Robustness critical
  • Performance critical

9
Requirements
  • Research Issues
  • Correctness
  • Resource control
  • Security
  • Safety, security, dependability
  • Commodity services
  • Openness vs. robustness
  • Software intensive
  • Robustness critical
  • Performance critical

10
Requirements
  • Software intensive
  • Robustness critical
  • Performance critical
  • Space and time
  • Multimedia activities
  • Multiple layers

11
Requirements
  • Research Issues
  • Time/space optimization
  • Activity specific
  • Multiple layers
  • Software intensive
  • Robustness critical
  • Performance critical
  • Space and time
  • Multimedia activities
  • All levels

12
Claim Progr. Language Enabling Technology
  • Language design
  • Program analysis
  • Program transformation
  • Software intensive
  • Robustness critical
  • Performance critical

13
Claim Progr. Language Enabling Technology
  • DS notations abstractions
  • High level
  • Concise
  • Language design
  • Program analysis
  • Program transformation

14
Claim Progr. Language Enabling Technology
  • Language design
  • Program analysis
  • Program transformation
  • Critical DS properties
  • Detected/guaranteed properties
  • Design parameters

15
Claim Progr. Language Enabling Technology
  • Language design
  • Program analysis
  • Program transformation
  • Time/space optimizations
  • DS analyses
  • DS optimizations

16
Required Expertise
  • Programming languages
  • Software engineering
  • Systems
  • Networking
  • Telecommunications

17
Our Expertise
  • Programming languages
  • Software engineering
  • Systems
  • Networking
  • Telecommunications

18
Our Expertise
  • Programming languages
  • Software engineering
  • Systems
  • Networking
  • Telecommunications
  • Program specialization
  • Domain-specific languages

19
Program Specialization
Component developer
Component user
Specializable component
Specialization values
Source code
Specialization declarations
Specialization
Analyses Transformations
  • Compile time
  • Run time

Specializable component
Specialized component
20
An Example Sockets
int tcp_mini_sendmsg (struct sock sk, void msg,
int size) int tocopy0, copied0 while
(tocopy (size lt sk-gttcp-gtmss) ? size
sk-gttcp-gtmss) if (copied (free_space
(sk-gtwrite_queue-gtprev.space))) if (copied gt
tocopy) copied tocopy add_data
(sk-gtwrite_queue.prev, msg, copied) size
size - copied msg msg copied
else struct skbuff skb alloc_new_skb()
add_data(skb, msg, tocopy) size size -
tocopy msg msg tocopy entail
(sk-gtwrite_queue, skb) return size
21
An Example Sockets
constant_size_sendtcp_mini_sendmsg
( socket(struct sock) S() sk, S(int) size)
int tcp_mini_sendmsg (struct sock sk, void msg,
int size) int tocopy0, copied0 while
(tocopy (size lt sk-gttcp-gtmss) ? size
sk-gttcp-gtmss) if (copied (free_space
(sk-gtwrite_queue-gtprev.space))) if (copied gt
tocopy) copied tocopy add_data
(sk-gtwrite_queue.prev, msg, copied) size
size - copied msg msg copied
else struct skbuff skb alloc_new_skb()
add_data(skb, msg, tocopy) size size -
tocopy msg msg tocopy entail
(sk-gtwrite_queue, skb) return size
22
An Example Sockets
constant_size_sendtcp_mini_sendmsg
( socket(struct sock) S() sk, S(int) size)
int tcp_mini_sendmsg (struct sock sk, void msg,
int size) int tocopy0, copied0 while
(tocopy (size lt sk-gttcp-gtmss) ? size
sk-gttcp-gtmss) if (copied (free_space
(sk-gtwrite_queue-gtprev.space))) if (copied gt
tocopy) copied tocopy add_data
(sk-gtwrite_queue.prev, msg, copied) size
size - copied msg msg copied
else struct skbuff skb alloc_new_skb()
add_data(skb, msg, tocopy) size size -
tocopy msg msg tocopy entail
(sk-gtwrite_queue, skb) return size
23
An Example Sockets
constant_size_sendtcp_mini_sendmsg
( socket(struct sock) S() sk, S(int) size)
int tcp_mini_sendmsg (struct sock sk, void msg,
int size) int tocopy0, copied0 while
(tocopy (size lt sk-gttcp-gtmss) ? size
sk-gttcp-gtmss) if (copied (free_space
(sk-gtwrite_queue-gtprev.space))) if (copied gt
tocopy) copied tocopy add_data
(sk-gtwrite_queue.prev, msg, copied) size
size - copied msg msg copied
else struct skbuff skb alloc_new_skb()
add_data(skb, msg, tocopy) size size -
tocopy msg msg tocopy entail
(sk-gtwrite_queue, skb) return size
24
An Example Sockets
sk size 1400
int tcp_mini_sendmsg (struct sock sk, void msg,
int size) int tocopy0, copied0 while
(tocopy (size lt sk-gttcp-gtmss) ? size
sk-gttcp-gtmss) if (copied (free_space
(sk-gtwrite_queue-gtprev.space))) if (copied gt
tocopy) copied tocopy add_data
(sk-gtwrite_queue.prev, msg, copied) size
size - copied msg msg copied
else struct skbuff skb alloc_new_skb()
add_data(skb, msg, tocopy) size size -
tocopy msg msg tocopy entail
(sk-gtwrite_queue, skb) return size
25
An Example Sockets
sk size 1400
int tcp_mini_sendmsg (void msg) struct skbuff
skb alloc_new_skb() add_data(skb, msg,
1400) entail (sk-gtwrite_queue, skb) return
0
26
Program Specialization Contributions
  • Specialization declarations
  • Program analyses
  • Context/flow/return sensitive binding-time
    analysis
  • Evaluation-time analysis
  • Action analysis
  • Program transformations
  • Compile time
  • Run time
  • Data specialization
  • Program specializer Tempo
  • Languages C, C, Java
  • Software architectures
  • Components
  • IPC
  • RPC
  • Signals
  • TCP/IP
  • Gains time (and/or) space

SOSP95, POPL96, PLDI99, ECOOP99, ASE00,
CD02, EMSOFT04, LCN04 HOSC99, HOSC00,
TOCS01, TOPLAS03, HOSC04, SCP04
27
Our Domain-Specific Languages
  • DSL development methodologies PLILP98, LNCS04
  • DSLs
  • Devil A DSL for device drivers ASE00,
    OSDI00, DSN01
  • Plan-P A DSL for programmable routers SRDS97
  • Spidle A DSL for stream processing GPCE03
  • Call/C A DSL for telephony services

28
Domain-Specific Languages Benefits
  • Domain-specific notations and abstractions
  • Domain-specific verifications
  • Domain-specific optimizations
  • Domain-specific code generation
  • Domain-specific development tools

29
Domain-Specific Languages
  • Domain-specific notations and abstractions
  • Abstractions (port, register, variable)
  • Behavioral types (stable, volatile, trigger)
  • Domain-specific verifications
  • Strong typing (def., R/W, size)
  • No omission (at least once)
  • No double definition (at most once)
  • Domain-specific optimizations
  • I/O transactions
  • Domain-specific code generation
  • Multiple targets (I/O, memory, I2C)
  • Domain-specific development tools
  • Textual tools
  • Graphical tools

Application
API
System
API
Driver
DevIL
DI
Device
30
An Example Devil
Devil
... variable dx x_high3..0 x_low3..0,
volatile signed int(8) variable dy
y_high3..0 y_low3..0, volatile signed
int(8)
31
TelecommunicationsWhen Teaching Meets Research
  • Telephony over IP (dept. of Telecom _at_ ENSEIRB)
  • Courses
  • Labs
  • Signalling platforms SIP based
  • SER / LiveCom / Servlet
  • Deployed
  • Programmed

32
Research Directions
  • DSLs for communication services
  • Supporting infrastructure
  • Application areas

33
Research Directions
  • DSLs for communication services
  • Supporting infrastructure
  • Application areas

Requests
Server
Client
Protocol
Protocol
Responses
34
Research Directions
  • DSLs for communication services
  • A DSL paradigm for protocol-based service
    families LNCS04
  • Service robustness
  • Capability-based DSLs
  • Resource control

Service Logic
Service
Service
Service
DSL
Service
Service
Service
Service
Requests
Server
Client
Protocol
Protocol
Responses
35
Research Directions
  • DSLs for communication services
  • A DSL paradigm for protocol-based service
    families
  • Service robustness
  • Capability-based DSLs
  • Resource control

Protocol
Platform
Domain
Design
DSL
Transformers
Analyzers
Requests
Server
Client
Protocol
Protocol
Responses
36
Research Directions
  • DSLs for communication services
  • A DSL paradigm for protocol-based service
    families
  • Service robustness
  • Capability-based DSLs
  • Resource control

(Un-)trusted Owner End-user
Capabilities
Service
Compiler
Requests
Server
Client
Protocol
Protocol
Responses
37
Research Directions
  • DSLs for communication services
  • A DSL paradigm for protocol-based service
    families
  • Service robustness
  • Capability-based DSLs
  • Resource control

Service
Res. Control
Compiler
Server
Res. Control
Deployment
Res. Control
Invocation
Requests
Execution
Res. Control
Client
Protocol
Protocol
Responses
38
Research Directions
  • Supporting infrastructure
  • Programmable client-server model ASE03
  • High-performance servers
  • High-performance systems components

Service P1
Sv(rq, ctx(p) ) rp
Service P2
Service P3
Requests
Service P4
Programmable Server
Protocol
Protocol
Responses
39
Research Directions
  • Supporting infrastructure
  • Programmable client-server model
  • High-performance servers
  • High-performance systems components

DS optimizations
DS adaptations
DS analyses
Requests
High-Perform. Server
Client
Protocol
Protocol
Responses
40
Research Directions
  • Supporting infrastructure
  • Programmable client-server model
  • High-performance servers
  • High-performance systems components

    LCN04,EMSOFT04

Configurable OS
Usage Context
Specializer
Requests
Server
Client
Protocol
Protocol
Responses
Configured OS
41
Research Directions
  • Application areas
  • Multimedia streaming services GPCE03
  • Telephony services

Streaming logic Spidle
  • Terminal features
  • Bandwidth
  • Billing
  • Preferences

Service P1
Sv(rq, ctx(p) ) rp
Service P2
Service P3
Requests
Service P4
Programmable Server
RTSP
RTSP
Responses
42
Research Directions
  • Application area
  • Multimedia streaming services
  • Telephony services ICIN04

Service logic Call/C
  • Time
  • Parties
  • Billing
  • Preferences

Service P1
Sv(rq, ctx(p) ) rp
Service P2
Service P3
Requests
Service P4
Programmable Server
SIP
SIP
Responses
43
Session Initiation Protocol
  • SIP Session Initiation Protocol (IETF)
  • Signalling protocol
  • Purpose
  • Initiate, modify and terminate sessions between
    parties
  • Locate parties
  • Invoke applications VoIP, video, IM, alerts,
    games
  • Client-Server model
  • IP based (openness)

44
Programming Telephony ServicesExisting Solutions
  • Safe but too restrictive
  • SIP Call Processing Language (SIP-CPL)
  • Expressive but unsafe
  • Microsoft SIP APIs C
  • SIP Express Router C-like and C
  • SIP Servlet Java

45
Programming Telephony ServicesCall/C
  • Domain-specific notations and abstractions
  • Types (return value, SIP addr)
  • Exceptions (timers, resources)
  • Events (provisional responses)
  • Domain-specific verifications
  • No call loss
  • Valid state transition
  • Domain-specific optimizations
  • Server state management
  • Domain-specific code generation
  • Exception handling (multiple platforms)
  • Domain-specific development tools
  • Textual tools
  • Graphical tools

46
An Example of a Telephony ServiceIn Call/C
deployment open group_head_info response
incoming() struct user_info user
get_group_head_info() response r select
(SUBJECT) case "Member" select (r
forward ) case /Error/Client/Busy
r forward user.assistant_head
case /Error/Client r forward
user.voicemail case "Private" r
forward user.home, user.voicemail case
"Group" r par forward user.group_members
if (r ! /Success/Ok) r forward
user.voicemail case "Voicemail" r
forward user.voicemail default r
forward user.secretary return r
47
An Example of a Telephony ServiceIn SER (1)
Preliminaries
----------- global configuration parameters
------------- check_viano dnsno
rev_dnsno fifo"/tmp/ser_fifo
------------------ module loading
------------------------ loadmodule
"/usr/local//lib/ser/modules/mysql.so" loadmodule
"/usr/local//lib/ser/modules/sl.so" loadmodule
"/usr/local//lib/ser/modules/tm.so" loadmodule
"/usr/local//lib/ser/modules/rr.so" loadmodule
"/usr/local//lib/ser/modules/maxfwd.so" loadmodule
"/usr/local//lib/ser/modules/usrloc.so" loadmodul
e "/usr/local//lib/ser/modules/registrar.so" loadm
odule "/usr/local//lib/ser/modules/auth.so" loadmo
dule "/usr/local//lib/ser/modules/auth_db.so
-----------------specific module
loading------------------ This module is loaded
to export rewriting uri functions loadmodule
"/usr/local//lib/ser/modules/group_head_info.so-
----------------- setting module-specific
parameters ---- modparam("usrloc", "db_mode",
2) modparam("auth_db", "calculate_ha1",
yes) modparam("rr", "enable_full_lr", 1)
48
An Example of a Telephony ServiceIn SER (2)
Main Routing Logic
route if (!mf_process_maxfwd_header("10"))
sl_send_reply("483","Too Many Hops")
break if ( msglen gt max_len )
sl_send_reply("513", "Message too big")
break record_route() if
(loose_route()) t_relay() break
if (urimyself) if
(method"REGISTER") if
(!www_authorize("borabora.enseirb.fr",
"subscriber")) www_challenge("borabora.e
nseirb.fr", "0") break
save("location") break if
(!lookup("location")) sl_send_reply("404",
"Not Found") break
if(method"INVITE") if
(!www_authorize("borabora.enseirb.fr",
"subscriber")) www_challenge("borabora.e
nseirb.fr", "0") break
route(1) if (!t_relay())
sl_reply_error()
49
An Example of a Telephony ServiceIn SER (3)
Specific Routing Logic
route1 if(is_present_hf("Subject"))
if(search("SsUuBbJjEeCcTt
Member\r\n\n")) if(!t_relay())
sl_reply_error()
t_on_failure("1") if(search("SsUu
BbJjEeCcTt Private\r\n\n"))
rewriteuri_home() if(!t_relay())
sl_reply_error()
t_on_failure("2")
if(search("SsUuBbJjEeCcTt
Group\r\n\n")) rewriteuri_group_membe
rs() if(!t_relay())
sl_reply_error()
t_on_failure("3")
if(search("SsUuBbJjEeCcTt
Voicemail\r\n\n"))
rewriteuri_voicemail() if(!t_relay())
sl_reply_error() else
if(search("SsUuBbJjEeCcTt
Secretary\r\n\n"))
rewriteuri_secretary() if(!t_relay())
sl_reply_error()

50
An Example of a Telephony ServiceIn SER (4)
Failure Handlers
failure_route1 if(status "486")
rewriteuri_assistanthead() if(status
"4.." status!"486") rewriteuri_voicemail(
) if(!t_relay()) sl_reply_error()
failure_route2 if(status "6..")
sl_reply_error() else
rewriteuri_voicemail() if(!t_relay())
sl_reply_error() failure_route3
rewriteuri_voicemail() if(!t_relay())
sl_reply_error()
51
DSL Benefits
deployment open group_head_info response
incoming() struct user_info user
get_group_head_info() response r select
(SUBJECT) case "Member" select (r
forward ) case /Error/Client/Busy
r forward user.assistant_head
case /Error/Client r forward
user.voicemail case "Private" r
forward user.home, user.voicemail case
"Group" r par forward user.group_members
if (r ! /Success/Ok) r forward
user.voicemail case "Voicemail" r
forward user.voicemail default r
forward user.secretary return r
  • High level
  • Low expertise
  • Concise
  • Robustness

route1 if(is_present_hf("Subject"))
if(search("SsUuBbJjEeCcTt\
Member\r\n\n"))
if(!t_relay()) sl_reply_error()
t_on_failure("1")
if(search("SsUuBbJjEeCcTt\
Private\r\n\n"))
rewriteuri_home() if(!t_relay())
sl_reply_error()
t_on_failure("2")
if(search("SsUuBbJjEeCcTt\
Group\r\n\n"))
rewriteuri_group_members()
if(!t_relay()) sl_reply_error()
t_on_failure("3")
if(search("SsUuBbJjEeCcTt\
Voicemail\r\n\n"))
rewriteuri_voicemail() if(!t_relay())
sl_reply_error() else
if(search("SsUuBbJjEeCcTt\
Secretary\r\n\n"))
rewriteuri_secretary() if(!t_relay())
sl_reply_error()

----------- global configuration parameters
------------- check_viano dnsno
rev_dnsno fifo"/tmp/ser_fifo
------------------ module loading
------------------------ loadmodule
"/usr/local//lib/ser/modules/mysql.so" loadmodule
"/usr/local//lib/ser/modules/sl.so" loadmodule
"/usr/local//lib/ser/modules/tm.so" loadmodule
"/usr/local//lib/ser/modules/rr.so" loadmodule
"/usr/local//lib/ser/modules/maxfwd.so" loadmodule
"/usr/local//lib/ser/modules/usrloc.so" loadmodul
e "/usr/local//lib/ser/modules/registrar.so" loadm
odule "/usr/local//lib/ser/modules/auth.so" loadmo
dule "/usr/local//lib/ser/modules/auth_db.so
-----------------specific module
loading------------------ This module is loaded
to export rewriting uri functions loadmodule
"/usr/local//lib/ser/modules/group_head_info.so-
----------------- setting module-specific
parameters ---- modparam("usrloc", "db_mode",
2) modparam("auth_db", "calculate_ha1",
yes) modparam("rr", "enable_full_lr", 1)
route if (!mf_process_maxfwd_header("10"))
sl_send_reply("483","Too Many Hops")
break if ( msglen gt max_len )
sl_send_reply("513", "Message too big")
break record_route() if
(loose_route()) t_relay() break
if (urimyself) if
(method"REGISTER") if
(!www_authorize("borabora.enseirb.fr",
"subscriber")) www_challenge("borabora.e
nseirb.fr", "0") break
save("location") break if
(!lookup("location")) sl_send_reply("404",
"Not Found") break
if(method"INVITE") if
(!www_authorize("borabora.enseirb.fr",
"subscriber")) www_challenge("borabora.e
nseirb.fr", "0") break
route(1) if (!t_relay())
sl_reply_error()
failure_route1 if(status "486")
rewriteuri_assistanthead() if(status
"4.." status!"486") rewriteuri_voicemail(
) if(!t_relay()) sl_reply_error()
failure_route2 if(status "6..")
sl_reply_error() else
rewriteuri_voicemail() if(!t_relay())
sl_reply_error() failure_route3
rewriteuri_voicemail() if(!t_relay())
sl_reply_error()
52
Funding
  • Embedded Systems Microsoft / 2003-2004
  • Web Services Microsoft / 2003-2004
  • ACI Security COrSS 2003-2006
  • Ambiant Intelligence for the Networked Home
    Environment (AMIGO) E.U. / 2004-2007
  • Robust Multimedia Applications for Mobile
    Terminals Region Aquitaine / 2003-2004
  • 2 industrial fellowships CIFRE

53
Academic Collaborations
  • Inside INRIA
  • Arles Ubiquitous computing
  • Obasco DSL operating systems
  • Outside INRIA
  • Julia Lawall, DIKU, University of Copenhagen
    DSL, specialization, program analysis
  • Calton Pu, Georgia Institute of Technology DSL
    systems specialization
  • Jonathan Walpole, Wu-Chang Feng, Wu-Chi Fen,
    Portland State University Multimedia streaming,
    DSL for operating systems and networking

54
Visibility
  • Invited talks GPCE03, LDTA02, Microsoft01-03,
    Dagstuhl03, GeorgiaTech03, Yale University04
  • PC member of conferences CC05, PLDI04,
    ECOOP04, PLDI02, ESOP02, POPL00
  • Award Best Ph.D. Thesis from ACM SIGOPS France
  • Community building IFIP working group 2.11
    (Program Generation)
  • Publications (results)

55
Conclusions
  • Hot area creation of communication services
  • Strong interest
  • Academic
  • Industry
  • Approach programming language technologies
  • Numerous research issues
  • Foundational work
  • Promising applications
Write a Comment
User Comments (0)
About PowerShow.com