the phoenix project - citi members, personal...

55
Research Proposal The Phoenix Project

Upload: vuongkien

Post on 31-Mar-2019

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: The Phoenix Project - CITI Members, Personal homepageperso.citi.insa-lyon.fr/.../Journee_ARES_PHOENIX_(2)_12-01-2005.pdf · 2 Phoenix Proposal Oct 2004 INRIA -LaBRI Personnel Faculty

Research Proposal

The Phoenix Project

���������

��� ����

Page 2: The Phoenix Project - CITI Members, Personal homepageperso.citi.insa-lyon.fr/.../Journee_ARES_PHOENIX_(2)_12-01-2005.pdf · 2 Phoenix Proposal Oct 2004 INRIA -LaBRI Personnel Faculty

INRIA - LaBRIPhoenix Proposal Oct 20042

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)– 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

Page 3: The Phoenix Project - CITI Members, Personal homepageperso.citi.insa-lyon.fr/.../Journee_ARES_PHOENIX_(2)_12-01-2005.pdf · 2 Phoenix Proposal Oct 2004 INRIA -LaBRI Personnel Faculty

INRIA - LaBRIPhoenix Proposal Oct 20043

Research Area

�������� �����

� ��� ����

� ��������

�������� �����

� ��� ����

� ��������

����������������

Page 4: The Phoenix Project - CITI Members, Personal homepageperso.citi.insa-lyon.fr/.../Journee_ARES_PHOENIX_(2)_12-01-2005.pdf · 2 Phoenix Proposal Oct 2004 INRIA -LaBRI Personnel Faculty

INRIA - LaBRIPhoenix Proposal Oct 20044

Requirements

�������� �����

� ��� ����

� ��������

�������� �����

� ��� ����

� ��������

����������������

� Software intensive� Robustness critical� Performance critical

Page 5: The Phoenix Project - CITI Members, Personal homepageperso.citi.insa-lyon.fr/.../Journee_ARES_PHOENIX_(2)_12-01-2005.pdf · 2 Phoenix Proposal Oct 2004 INRIA -LaBRI Personnel Faculty

INRIA - LaBRIPhoenix Proposal Oct 20045

Requirements

� Software intensive� Robustness critical� Performance critical

Page 6: The Phoenix Project - CITI Members, Personal homepageperso.citi.insa-lyon.fr/.../Journee_ARES_PHOENIX_(2)_12-01-2005.pdf · 2 Phoenix Proposal Oct 2004 INRIA -LaBRI Personnel Faculty

INRIA - LaBRIPhoenix Proposal Oct 20046

Requirements

� Hardware features� Network capabilities� Customer needs

� Software intensive� Robustness critical� Performance critical

Page 7: The Phoenix Project - CITI Members, Personal homepageperso.citi.insa-lyon.fr/.../Journee_ARES_PHOENIX_(2)_12-01-2005.pdf · 2 Phoenix Proposal Oct 2004 INRIA -LaBRI Personnel Faculty

INRIA - LaBRIPhoenix Proposal Oct 20047

Requirements

� Hardware features� Network capabilities� Customer needs

� Software intensive� Robustness critical� Performance critical

Research Issues� Low level and intricate� Multiple areas of expertise� Time-to-market

Page 8: The Phoenix Project - CITI Members, Personal homepageperso.citi.insa-lyon.fr/.../Journee_ARES_PHOENIX_(2)_12-01-2005.pdf · 2 Phoenix Proposal Oct 2004 INRIA -LaBRI Personnel Faculty

INRIA - LaBRIPhoenix Proposal Oct 20048

Requirements

� Commodity services� Safety, security, dependability…� Openness vs. robustness

� Software intensive� Robustness critical� Performance critical

Page 9: The Phoenix Project - CITI Members, Personal homepageperso.citi.insa-lyon.fr/.../Journee_ARES_PHOENIX_(2)_12-01-2005.pdf · 2 Phoenix Proposal Oct 2004 INRIA -LaBRI Personnel Faculty

INRIA - LaBRIPhoenix Proposal Oct 20049

Requirements

� Safety, security, dependability…� Commodity services� Openness vs. robustness

� Software intensive� Robustness critical� Performance critical

Research Issues� Correctness� Resource control� Security

Page 10: The Phoenix Project - CITI Members, Personal homepageperso.citi.insa-lyon.fr/.../Journee_ARES_PHOENIX_(2)_12-01-2005.pdf · 2 Phoenix Proposal Oct 2004 INRIA -LaBRI Personnel Faculty

INRIA - LaBRIPhoenix Proposal Oct 200410

Requirements

� Space and time� Multimedia activities� Multiple layers

� Software intensive� Robustness critical� Performance critical

Page 11: The Phoenix Project - CITI Members, Personal homepageperso.citi.insa-lyon.fr/.../Journee_ARES_PHOENIX_(2)_12-01-2005.pdf · 2 Phoenix Proposal Oct 2004 INRIA -LaBRI Personnel Faculty

INRIA - LaBRIPhoenix Proposal Oct 200411

Requirements

� Space and time� Multimedia activities� All levels

� Software intensive� Robustness critical� Performance critical

Research Issues� Time/space optimization� Activity specific� Multiple layers

Page 12: The Phoenix Project - CITI Members, Personal homepageperso.citi.insa-lyon.fr/.../Journee_ARES_PHOENIX_(2)_12-01-2005.pdf · 2 Phoenix Proposal Oct 2004 INRIA -LaBRI Personnel Faculty

INRIA - LaBRIPhoenix Proposal Oct 200412

Claim: Progr. Language = Enabling Technology

→ Language design→ Program analysis→ Program transformation

� Software intensive� Robustness critical� Performance critical

Page 13: The Phoenix Project - CITI Members, Personal homepageperso.citi.insa-lyon.fr/.../Journee_ARES_PHOENIX_(2)_12-01-2005.pdf · 2 Phoenix Proposal Oct 2004 INRIA -LaBRI Personnel Faculty

INRIA - LaBRIPhoenix Proposal Oct 200413

Claim: Progr. Language = Enabling Technology

� Language design� Program analysis� Program transformation

� DS notations & abstractions� High level� Concise

Page 14: The Phoenix Project - CITI Members, Personal homepageperso.citi.insa-lyon.fr/.../Journee_ARES_PHOENIX_(2)_12-01-2005.pdf · 2 Phoenix Proposal Oct 2004 INRIA -LaBRI Personnel Faculty

INRIA - LaBRIPhoenix Proposal Oct 200414

Claim: Progr. Language = Enabling Technology

� Language design� Program analysis� Program transformation

� Critical DS properties� Detected/guaranteed properties� Design parameters

Page 15: The Phoenix Project - CITI Members, Personal homepageperso.citi.insa-lyon.fr/.../Journee_ARES_PHOENIX_(2)_12-01-2005.pdf · 2 Phoenix Proposal Oct 2004 INRIA -LaBRI Personnel Faculty

INRIA - LaBRIPhoenix Proposal Oct 200415

Claim: Progr. Language = Enabling Technology

� Language design� Program analysis� Program transformation

� Time/space optimizations� DS analyses� DS optimizations

Page 16: The Phoenix Project - CITI Members, Personal homepageperso.citi.insa-lyon.fr/.../Journee_ARES_PHOENIX_(2)_12-01-2005.pdf · 2 Phoenix Proposal Oct 2004 INRIA -LaBRI Personnel Faculty

INRIA - LaBRIPhoenix Proposal Oct 200416

Required Expertise

� Programming languages� Software engineering� Systems� Networking� Telecommunications

Page 17: The Phoenix Project - CITI Members, Personal homepageperso.citi.insa-lyon.fr/.../Journee_ARES_PHOENIX_(2)_12-01-2005.pdf · 2 Phoenix Proposal Oct 2004 INRIA -LaBRI Personnel Faculty

INRIA - LaBRIPhoenix Proposal Oct 200417

Our Expertise

� Programming languages� Software engineering� Systems� Networking� Telecommunications

Page 18: The Phoenix Project - CITI Members, Personal homepageperso.citi.insa-lyon.fr/.../Journee_ARES_PHOENIX_(2)_12-01-2005.pdf · 2 Phoenix Proposal Oct 2004 INRIA -LaBRI Personnel Faculty

INRIA - LaBRIPhoenix Proposal Oct 200418

Our Expertise

� Programming languages� Software engineering� Systems� Networking� Telecommunications

� Program specialization� Domain-specific languages

Page 19: The Phoenix Project - CITI Members, Personal homepageperso.citi.insa-lyon.fr/.../Journee_ARES_PHOENIX_(2)_12-01-2005.pdf · 2 Phoenix Proposal Oct 2004 INRIA -LaBRI Personnel Faculty

INRIA - LaBRIPhoenix Proposal Oct 200419

Program Specialization

���������� �������� ��������������

�������������

���������

�������������

���������

��������������

������

����������

���������

��������������

������

�� �

��������������

�����������

��������

���������������� ��� �������

� ��������

Page 20: The Phoenix Project - CITI Members, Personal homepageperso.citi.insa-lyon.fr/.../Journee_ARES_PHOENIX_(2)_12-01-2005.pdf · 2 Phoenix Proposal Oct 2004 INRIA -LaBRI Personnel Faculty

INRIA - LaBRIPhoenix Proposal Oct 200420

An Example: Sockets

i nt t cp_mi ni _sendmsg ( st r uct sock * sk, voi d * msg, i nt si ze){

i nt t ocopy=0, copi ed=0;whi l e ( t ocopy = ( s i ze < sk- >t cp- >mss) ? si ze : sk- >t cp- >mss) {

i f ( copi ed = ( f r ee_space ( sk- >wr i t e_queue- >pr ev. space) ) ) {i f ( copi ed > t ocopy) copi ed = t ocopy;add_dat a ( sk- >wr i t e_queue. pr ev, msg, copi ed) ;s i ze = s i ze - copi ed; msg = msg + copi ed;

}el se {

st r uct skbuf f * skb = al l oc_new_skb( ) ;add_dat a( skb, msg, t ocopy) ;s i ze = s i ze - t ocopy; msg = msg + t ocopy;ent ai l ( sk- >wr i t e_queue, skb) ;

}}

r et ur n s i ze;}

Page 21: The Phoenix Project - CITI Members, Personal homepageperso.citi.insa-lyon.fr/.../Journee_ARES_PHOENIX_(2)_12-01-2005.pdf · 2 Phoenix Proposal Oct 2004 INRIA -LaBRI Personnel Faculty

INRIA - LaBRIPhoenix Proposal Oct 200421

An Example: Sockets

i nt t cp_mi ni _sendmsg ( st r uct sock * sk, voi d * msg, i nt si ze){

i nt t ocopy=0, copi ed=0;whi l e ( t ocopy = ( s i ze < sk- >t cp- >mss) ? si ze : sk- >t cp- >mss) {

i f ( copi ed = ( f r ee_space ( sk- >wr i t e_queue- >pr ev. space) ) ) {i f ( copi ed > t ocopy) copi ed = t ocopy;add_dat a ( sk- >wr i t e_queue. pr ev, msg, copi ed) ;s i ze = s i ze - copi ed; msg = msg + copi ed;

}el se {

st r uct skbuf f * skb = al l oc_new_skb( ) ;add_dat a( skb, msg, t ocopy) ;s i ze = s i ze - t ocopy; msg = msg + t ocopy;ent ai l ( sk- >wr i t e_queue, skb) ;

}}

r et ur n s i ze;}

������������������� ������������������������� ���������������������������

Page 22: The Phoenix Project - CITI Members, Personal homepageperso.citi.insa-lyon.fr/.../Journee_ARES_PHOENIX_(2)_12-01-2005.pdf · 2 Phoenix Proposal Oct 2004 INRIA -LaBRI Personnel Faculty

INRIA - LaBRIPhoenix Proposal Oct 200422

An Example: Sockets

i nt t cp_mi ni _sendmsg ( st r uct sock * sk, voi d * msg, i nt si ze){

i nt t ocopy=0, copi ed=0;whi l e ( t ocopy = ( s i ze < sk- >t cp- >mss) ? si ze : sk- >t cp- >mss) {

i f ( copi ed = ( f r ee_space ( sk- >wr i t e_queue- >pr ev. space) ) ) {i f ( copi ed > t ocopy) copi ed = t ocopy;add_dat a ( sk- >wr i t e_queue. pr ev, msg, copi ed) ;s i ze = s i ze - copi ed; msg = msg + copi ed;

}el se {

st r uct skbuf f * skb = al l oc_new_skb( ) ;add_dat a( skb, msg, t ocopy) ;s i ze = s i ze - t ocopy; msg = msg + t ocopy;ent ai l ( sk- >wr i t e_queue, skb) ;

}}

r et ur n s i ze;}

������������������� ������������������������� ���������������������������

Page 23: The Phoenix Project - CITI Members, Personal homepageperso.citi.insa-lyon.fr/.../Journee_ARES_PHOENIX_(2)_12-01-2005.pdf · 2 Phoenix Proposal Oct 2004 INRIA -LaBRI Personnel Faculty

INRIA - LaBRIPhoenix Proposal Oct 200423

An Example: Sockets

i nt t cp_mi ni _sendmsg ( st r uct sock * sk, voi d * msg, i nt si ze){

i nt t ocopy=0, copi ed=0;whi l e ( t ocopy = ( s i ze < sk- >t cp- >mss) ? si ze : sk- >t cp- >mss) {

i f ( copi ed = ( f r ee_space ( sk- >wr i t e_queue- >pr ev. space) ) ) {i f ( copi ed > t ocopy) copi ed = t ocopy;add_dat a ( sk- >wr i t e_queue. pr ev, msg, copi ed) ;s i ze = si ze - copi ed; msg = msg + copi ed;

}el se {

st r uct skbuf f * skb = al l oc_new_skb( ) ;add_dat a( skb, msg, t ocopy) ;s i ze = si ze - t ocopy; msg = msg + t ocopy;ent ai l ( sk- >wr i t e_queue, skb) ;

}}

r et ur n s i ze;}

������������������� ������������������������� ���������������������������

Page 24: The Phoenix Project - CITI Members, Personal homepageperso.citi.insa-lyon.fr/.../Journee_ARES_PHOENIX_(2)_12-01-2005.pdf · 2 Phoenix Proposal Oct 2004 INRIA -LaBRI Personnel Faculty

INRIA - LaBRIPhoenix Proposal Oct 200424

An Example: Sockets

i nt t cp_mi ni _sendmsg ( st r uct sock * sk, voi d * msg, i nt si ze){

i nt t ocopy=0, copi ed=0;whi l e ( t ocopy = ( s i ze < sk- >t cp- >mss) ? si ze : sk- >t cp- >mss) {

i f ( copi ed = ( f r ee_space ( sk- >wr i t e_queue- >pr ev. space) ) ) {i f ( copi ed > t ocopy) copi ed = t ocopy;add_dat a ( sk- >wr i t e_queue. pr ev, msg, copi ed) ;s i ze = si ze - copi ed; msg = msg + copi ed;

}el se {

st r uct skbuf f * skb = al l oc_new_skb( ) ;add_dat a( skb, msg, t ocopy) ;s i ze = si ze - t ocopy; msg = msg + t ocopy;ent ai l ( sk- >wr i t e_queue, skb) ;

}}

r et ur n s i ze;}

�����������������

Page 25: The Phoenix Project - CITI Members, Personal homepageperso.citi.insa-lyon.fr/.../Journee_ARES_PHOENIX_(2)_12-01-2005.pdf · 2 Phoenix Proposal Oct 2004 INRIA -LaBRI Personnel Faculty

INRIA - LaBRIPhoenix Proposal Oct 200425

An Example: Sockets

i nt t cp_mi ni _sendmsg ( voi d * msg){

st r uct skbuf f * skb = al l oc_new_skb( ) ;add_dat a( skb, msg, 1400) ;ent ai l ( sk- >wr i t e_queue, skb) ;

r et ur n 0;}

�����������������

Page 26: The Phoenix Project - CITI Members, Personal homepageperso.citi.insa-lyon.fr/.../Journee_ARES_PHOENIX_(2)_12-01-2005.pdf · 2 Phoenix Proposal Oct 2004 INRIA -LaBRI Personnel Faculty

INRIA - LaBRIPhoenix Proposal Oct 200426

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������������������ ������������������� ������������ ��������

�����������������������������������������������

Page 27: The Phoenix Project - CITI Members, Personal homepageperso.citi.insa-lyon.fr/.../Journee_ARES_PHOENIX_(2)_12-01-2005.pdf · 2 Phoenix Proposal Oct 2004 INRIA -LaBRI Personnel Faculty

INRIA - LaBRIPhoenix Proposal Oct 200427

Our Domain-Specific Languages

� DSL development methodologies ������������������ DSLs

– Devil – A DSL for device drivers ��������� ���� ������– Plan-P – A DSL for programmable routers ��� �����– Spidle – A DSL for stream processing � �������– Call/C – A DSL for telephony services– …

Page 28: The Phoenix Project - CITI Members, Personal homepageperso.citi.insa-lyon.fr/.../Journee_ARES_PHOENIX_(2)_12-01-2005.pdf · 2 Phoenix Proposal Oct 2004 INRIA -LaBRI Personnel Faculty

INRIA - LaBRIPhoenix Proposal Oct 200428

Domain-Specific Languages: Benefits

� Domain-specific notations and abstractions� Domain-specific verifications� Domain-specific optimizations� Domain-specific code generation� Domain-specific development tools

Page 29: The Phoenix Project - CITI Members, Personal homepageperso.citi.insa-lyon.fr/.../Journee_ARES_PHOENIX_(2)_12-01-2005.pdf · 2 Phoenix Proposal Oct 2004 INRIA -LaBRI Personnel Faculty

INRIA - LaBRIPhoenix Proposal Oct 200429

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

������

������

����

� ����������

���

��

�����

Page 30: The Phoenix Project - CITI Members, Personal homepageperso.citi.insa-lyon.fr/.../Journee_ARES_PHOENIX_(2)_12-01-2005.pdf · 2 Phoenix Proposal Oct 2004 INRIA -LaBRI Personnel Faculty

INRIA - LaBRIPhoenix Proposal Oct 200430

An Example: Devil

out b( MSE_READ_X_LOW, MSE_CONTROL_PORT) ;dx = ( i nb( MSE_DATA_PORT) & 0xf ) ;out b( MSE_READ_X_HI GH, MSE_CONTROL_PORT) ;dx | = ( i nb( MSE_DATA_PORT) & 0xf ) << 4;out b( MSE_READ_Y_LOW, MSE_CONTROL_PORT ) ;dy = ( i nb( MSE_DATA_PORT) & 0xf ) ;out b( MSE_READ_Y_HI GH, MSE_CONTROL_PORT) ;but t ons = i nb( MSE_DATA_PORT) ;dy | = ( but t ons & 0xf ) << 4;

Exi st i ngcode

. . .var i abl e dx = x_hi gh[ 3. . 0] # x_l ow[ 3. . 0] , vol at i l e : s i gned i nt ( 8) ;var i abl e dy = y_hi gh[ 3. . 0] # y_l ow[ 3. . 0] , vol at i l e : s i gned i nt ( 8) ;

����

Page 31: The Phoenix Project - CITI Members, Personal homepageperso.citi.insa-lyon.fr/.../Journee_ARES_PHOENIX_(2)_12-01-2005.pdf · 2 Phoenix Proposal Oct 2004 INRIA -LaBRI Personnel Faculty

INRIA - LaBRIPhoenix Proposal Oct 200431

TelecommunicationsWhen Teaching Meets Research

� Telephony over IP (dept. of Telecom @ ENSEIRB)– Courses– Labs

� Signalling platforms – SIP based– SER / LiveCom / Servlet– Deployed– Programmed

Page 32: The Phoenix Project - CITI Members, Personal homepageperso.citi.insa-lyon.fr/.../Journee_ARES_PHOENIX_(2)_12-01-2005.pdf · 2 Phoenix Proposal Oct 2004 INRIA -LaBRI Personnel Faculty

INRIA - LaBRIPhoenix Proposal Oct 200432

Research Directions

� DSLs for communication services� Supporting infrastructure� Application areas

Page 33: The Phoenix Project - CITI Members, Personal homepageperso.citi.insa-lyon.fr/.../Journee_ARES_PHOENIX_(2)_12-01-2005.pdf · 2 Phoenix Proposal Oct 2004 INRIA -LaBRI Personnel Faculty

INRIA - LaBRIPhoenix Proposal Oct 200433

Research Directions

������

!�"�����

!��������

������

#�������

#�������

� DSLs for communication services� Supporting infrastructure� Application areas

Page 34: The Phoenix Project - CITI Members, Personal homepageperso.citi.insa-lyon.fr/.../Journee_ARES_PHOENIX_(2)_12-01-2005.pdf · 2 Phoenix Proposal Oct 2004 INRIA -LaBRI Personnel Faculty

INRIA - LaBRIPhoenix Proposal Oct 200434

Research Directions

������

!�"�����

!��������

������

#�������

#�������

� DSLs for communication services– A DSL paradigm for protocol-based service families ���������– Service robustness– Capability-based DSLs– Resource control

�������

D SL

������������������������������������������

��������$�%��

Page 35: The Phoenix Project - CITI Members, Personal homepageperso.citi.insa-lyon.fr/.../Journee_ARES_PHOENIX_(2)_12-01-2005.pdf · 2 Phoenix Proposal Oct 2004 INRIA -LaBRI Personnel Faculty

INRIA - LaBRIPhoenix Proposal Oct 200435

Research Directions

������

!�"�����

!��������

������

#�������

#�������

� DSLs for communication services– A DSL paradigm for protocol-based service families– Service robustness– Capability-based DSLs– Resource control

D SL

���%�

�����#������� #�������

���������

������������

Page 36: The Phoenix Project - CITI Members, Personal homepageperso.citi.insa-lyon.fr/.../Journee_ARES_PHOENIX_(2)_12-01-2005.pdf · 2 Phoenix Proposal Oct 2004 INRIA -LaBRI Personnel Faculty

INRIA - LaBRIPhoenix Proposal Oct 200436

Research Directions

������

!�"�����

!��������

������

#�������

#�������

� DSLs for communication services– A DSL paradigm for protocol-based service families– Service robustness– Capability-based DSLs– Resource control �������

��������

������������

&'�()������ �

�*���

+� (����

, �

Page 37: The Phoenix Project - CITI Members, Personal homepageperso.citi.insa-lyon.fr/.../Journee_ARES_PHOENIX_(2)_12-01-2005.pdf · 2 Phoenix Proposal Oct 2004 INRIA -LaBRI Personnel Faculty

INRIA - LaBRIPhoenix Proposal Oct 200437

Research Directions

������

!�"�����

!��������

������

#�������

#�������

� DSLs for communication services– A DSL paradigm for protocol-based service families– Service robustness– Capability-based DSLs– Resource control

�������

��������!��-

�������

���������

.���������

+��������

!��-

�������

!��-

�������

!��-

�������

Page 38: The Phoenix Project - CITI Members, Personal homepageperso.citi.insa-lyon.fr/.../Journee_ARES_PHOENIX_(2)_12-01-2005.pdf · 2 Phoenix Proposal Oct 2004 INRIA -LaBRI Personnel Faculty

INRIA - LaBRIPhoenix Proposal Oct 200438

Research Directions

#��%��������

������

!�"�����

!��������

#�������

#�������

� Supporting infrastructure– Programmable client-server model ��������– High-performance servers– High-performance systems components

��������#/

��������#

��������#0

��������#�

Sv(rq, ctx(p) )= rp

Page 39: The Phoenix Project - CITI Members, Personal homepageperso.citi.insa-lyon.fr/.../Journee_ARES_PHOENIX_(2)_12-01-2005.pdf · 2 Phoenix Proposal Oct 2004 INRIA -LaBRI Personnel Faculty

INRIA - LaBRIPhoenix Proposal Oct 200439

Research Directions

1�%2(#������-

������

!�"�����

!��������

#�������

#�������

� Supporting infrastructure– Programmable client-server model

– High-performance servers– High-performance systems components

������

���������������

��� ��������� ����������

Page 40: The Phoenix Project - CITI Members, Personal homepageperso.citi.insa-lyon.fr/.../Journee_ARES_PHOENIX_(2)_12-01-2005.pdf · 2 Phoenix Proposal Oct 2004 INRIA -LaBRI Personnel Faculty

INRIA - LaBRIPhoenix Proposal Oct 200440

Research Directions

������

!�"�����

!��������

#�������

#�������

� Supporting infrastructure– Programmable client-server model

– High-performance servers– High-performance systems components �����������������

������

�����%��� ���

�����%���������

�����������

'��%�

�������

Page 41: The Phoenix Project - CITI Members, Personal homepageperso.citi.insa-lyon.fr/.../Journee_ARES_PHOENIX_(2)_12-01-2005.pdf · 2 Phoenix Proposal Oct 2004 INRIA -LaBRI Personnel Faculty

INRIA - LaBRIPhoenix Proposal Oct 200441

Research Directions

#��%��������

������

!�"�����

!��������

!��#

!��#

� Application areas– Multimedia streaming services � �������– Telephony services

��������#/

��������#

��������#0

��������#�

Sv(rq, ctx(p) )= rp

��������%���%���3���� ��

� �����������������

� ��� *� �2

� ������%

� #����������,

Page 42: The Phoenix Project - CITI Members, Personal homepageperso.citi.insa-lyon.fr/.../Journee_ARES_PHOENIX_(2)_12-01-2005.pdf · 2 Phoenix Proposal Oct 2004 INRIA -LaBRI Personnel Faculty

INRIA - LaBRIPhoenix Proposal Oct 200442

Research Directions

#��%��������

������

!�"�����

!��������

�.#

�.#

� Application area– Multimedia streaming services– Telephony services ���������

��������#/

��������#

��������#0

��������#�

Sv(rq, ctx(p) )= rp

����������%���3�����4�

� ����

� #������

� ������%

� #����������,

Page 43: The Phoenix Project - CITI Members, Personal homepageperso.citi.insa-lyon.fr/.../Journee_ARES_PHOENIX_(2)_12-01-2005.pdf · 2 Phoenix Proposal Oct 2004 INRIA -LaBRI Personnel Faculty

INRIA - LaBRIPhoenix Proposal Oct 200443

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)

Page 44: The Phoenix Project - CITI Members, Personal homepageperso.citi.insa-lyon.fr/.../Journee_ARES_PHOENIX_(2)_12-01-2005.pdf · 2 Phoenix Proposal Oct 2004 INRIA -LaBRI Personnel Faculty

INRIA - LaBRIPhoenix Proposal Oct 200444

Programming Telephony Services:Existing 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 – …

Page 45: The Phoenix Project - CITI Members, Personal homepageperso.citi.insa-lyon.fr/.../Journee_ARES_PHOENIX_(2)_12-01-2005.pdf · 2 Phoenix Proposal Oct 2004 INRIA -LaBRI Personnel Faculty

INRIA - LaBRIPhoenix Proposal Oct 200445

Programming Telephony Services:Call/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

Page 46: The Phoenix Project - CITI Members, Personal homepageperso.citi.insa-lyon.fr/.../Journee_ARES_PHOENIX_(2)_12-01-2005.pdf · 2 Phoenix Proposal Oct 2004 INRIA -LaBRI Personnel Faculty

INRIA - LaBRIPhoenix Proposal Oct 200446

An Example of a Telephony ServiceIn Call/C

depl oyment open gr oup_head_i nf o;

r esponse i ncomi ng( ) {

st r uct user _i nf o user = get _gr oup_head_i nf o( ) ;r esponse r ;

sel ect ( SUBJECT) {case " Member" :

sel ect ( r = f or war d { } ) {case /Error/Client/Busy:

r = f or war d { user . assi st ant _head } ;case /Error/Client:

r = f or war d { user . voi cemai l } ;}

case " Private" :r = f or war d { user . home, user . voi cemai l } ;

case " Group" :r = par f or war d { user . gr oup_member s } ; i f ( r ! = /Success/Ok) r = f or war d { user . voi cemai l } ;

case " Voicemail" :r = f or war d { user . voi cemai l } ;

def aul t :r = f or war d { user . secr et ar y } ;

}r et ur n r ;

}

Page 47: The Phoenix Project - CITI Members, Personal homepageperso.citi.insa-lyon.fr/.../Journee_ARES_PHOENIX_(2)_12-01-2005.pdf · 2 Phoenix Proposal Oct 2004 INRIA -LaBRI Personnel Faculty

INRIA - LaBRIPhoenix Proposal Oct 200447

An Example of a Telephony ServiceIn SER (1) – Preliminaries

# - - - - - - - - - - - gl obal conf i gur at i on par amet er s - - - - - - - - - - - - -

check_vi a=no

dns=no

r ev_dns=no

f i f o=" / t mp/ ser _f i f o“

# - - - - - - - - - - - - - - - - - - modul e l oadi ng - - - - - - - - - - - - - - - - - - - - - - - -

l oadmodul e " / usr / l ocal / / l i b/ ser / modul es/ mysql . so"

l oadmodul e " / usr / l ocal / / l i b/ ser / modul es/ sl . so"

l oadmodul e " / usr / l ocal / / l i b/ ser / modul es/ t m. so"

l oadmodul e " / usr / l ocal / / l i b/ ser / modul es/ r r . so"

l oadmodul e " / usr / l ocal / / l i b/ ser / modul es/ maxf wd. so"

l oadmodul e " / usr / l ocal / / l i b/ ser / modul es/ usr l oc. so"

l oadmodul e " / usr / l ocal / / l i b/ ser / modul es/ r egi st r ar . so"

l oadmodul e " / usr / l ocal / / l i b/ ser / modul es/ aut h. so"

l oadmodul e " / usr / l ocal / / l i b/ ser / modul es/ aut h_db. so“

# - - - - - - - - - - - - - - - - - speci f i c modul e l oadi ng- - - - - - - - - - - - - - - - - -

# Thi s modul e i s l oaded t o expor t r ewr i t i ng ur i f unct i ons

l oadmodul e " / usr / l ocal / / l i b/ ser / modul es/ gr oup_head_i nf o. so“ -

# - - - - - - - - - - - - - - - - - set t i ng modul e- speci f i c par amet er s - - - -

modpar am( " usr l oc" , " db_mode" , 2)

modpar am( " aut h_db" , " cal cul at e_ha1" , yes)

modpar am( " r r " , " enabl e_f ul l _l r " , 1)

Page 48: The Phoenix Project - CITI Members, Personal homepageperso.citi.insa-lyon.fr/.../Journee_ARES_PHOENIX_(2)_12-01-2005.pdf · 2 Phoenix Proposal Oct 2004 INRIA -LaBRI Personnel Faculty

INRIA - LaBRIPhoenix Proposal Oct 200448

An Example of a Telephony ServiceIn SER (2) – Main Routing Logic

r out e{i f ( ! mf _pr ocess_maxf wd_header ( " 10" ) ) {

s l _send_r epl y( " 483" , " Too Many Hops" ) ;br eak;

} ;i f ( msg: l en > max_l en ) {

s l _send_r epl y( " 513" , " Message t oo bi g" ) ;br eak;

} ;r ecor d_r out e( ) ;i f ( l oose_r out e( ) ) {

t _r el ay( ) ;br eak;

} ;

i f ( ur i ==mysel f ) {i f ( met hod==" REGI STER" ) {

i f ( ! www_aut hor i ze( " bor abor a. ensei r b. f r " , " subscr i ber " ) ) {www_chal l enge( " bor abor a. ensei r b. f r " , " 0" ) ;br eak;

} ;save( " l ocat i on" ) ;br eak;

} ;i f ( ! l ookup( " l ocat i on" ) ) {

s l _send_r epl y( " 404" , " Not Found" ) ;br eak;

} ;i f ( met hod==" I NVI TE" ){

i f ( ! www_aut hor i ze( " bor abor a. ensei r b. f r " , " subscr i ber " ) ) {www_chal l enge( " bor abor a. ensei r b. f r " , " 0" ) ;br eak;

} ;r out e( 1) ;

} ;

} ;i f ( ! t _r el ay( ) ) { s l _r epl y_er r or ( ) ; } ;

}

Page 49: The Phoenix Project - CITI Members, Personal homepageperso.citi.insa-lyon.fr/.../Journee_ARES_PHOENIX_(2)_12-01-2005.pdf · 2 Phoenix Proposal Oct 2004 INRIA -LaBRI Personnel Faculty

INRIA - LaBRIPhoenix Proposal Oct 200449

An Example of a Telephony ServiceIn SER (3) – Specific Routing Logic

r out e[ 1] {i f ( i s_pr esent _hf ( " Subj ect " ) ) {

i f ( sear ch( " ^ [ Ss] [ Uu] [ Bb] [ J j ] [ Ee] [ Cc] [ Tt ] : [ ] * Member [ \ r \ n] [ \ n] " ) ) {i f ( ! t _r el ay( ) ) {

s l _r epl y_er r or ( ) ;} ;t _on_f ai l ur e( " 1" ) ;

} ;i f ( sear ch( " ^ [ Ss] [ Uu] [ Bb] [ J j ] [ Ee] [ Cc] [ Tt ] : [ ] * Pr i vat e[ \ r \ n] [ \ n] " ) ) {

r ewr i t eur i _home( ) ;i f ( ! t _r el ay( ) ) {

s l _r epl y_er r or ( ) ;} ;t _on_f ai l ur e( " 2" ) ;

} ;i f ( sear ch( " ^ [ Ss] [ Uu] [ Bb] [ J j ] [ Ee] [ Cc] [ Tt ] : [ ] * Gr oup[ \ r \ n] [ \ n] " ) ) {

r ewr i t eur i _gr oup_member s( ) ;i f ( ! t _r el ay( ) ) {

s l _r epl y_er r or ( ) ;} ;t _on_f ai l ur e( " 3" ) ;

} ;i f ( sear ch( " ^ [ Ss] [ Uu] [ Bb] [ J j ] [ Ee] [ Cc] [ Tt ] : [ ] * Voi cemai l [ \ r \ n] [ \ n] " ) ) {

r ewr i t eur i _voi cemai l ( ) ;i f ( ! t _r el ay( ) ) {s l _r epl y_er r or ( ) ;

} ;}

el se i f ( sear ch( " ^ [ Ss] [ Uu] [ Bb] [ J j ] [ Ee] [ Cc] [ Tt ] : [ ] * Secr et ar y[ \ r \ n] [ \ n] " ) ) {r ewr i t eur i _secr et ar y( ) ;i f ( ! t _r el ay( ) ) {

s l _r epl y_er r or ( ) ;} ;

} ;}

}

Page 50: The Phoenix Project - CITI Members, Personal homepageperso.citi.insa-lyon.fr/.../Journee_ARES_PHOENIX_(2)_12-01-2005.pdf · 2 Phoenix Proposal Oct 2004 INRIA -LaBRI Personnel Faculty

INRIA - LaBRIPhoenix Proposal Oct 200450

An Example of a Telephony ServiceIn SER (4) – Failure Handlers

f ai l ur e_r out e[ 1] {i f ( st at us == " 486" ) {

r ewr i t eur i _assi st ant head( ) ;} ;i f ( st at us =~ " 4. . " && st at us! =" 486" ) {

r ewr i t eur i _voi cemai l ( ) ;} ;i f ( ! t _r el ay( ) ) {

s l _r epl y_er r or ( ) ;} ;

}

f ai l ur e_r out e[ 2] {i f ( st at us =~ " 6. . " ) {

s l _r epl y_er r or ( ) ;}el se {

r ewr i t eur i _voi cemai l ( ) ;i f ( ! t _r el ay( ) ) {

s l _r epl y_er r or ( ) ;} ;

} ;}

f ai l ur e_r out e[ 3] {r ewr i t eur i _voi cemai l ( ) ;i f ( ! t _r el ay( ) ) {

s l _r epl y_er r or ( ) ;} ;

}

Page 51: The Phoenix Project - CITI Members, Personal homepageperso.citi.insa-lyon.fr/.../Journee_ARES_PHOENIX_(2)_12-01-2005.pdf · 2 Phoenix Proposal Oct 2004 INRIA -LaBRI Personnel Faculty

INRIA - LaBRIPhoenix Proposal Oct 200451

# - - - - - - - - - - - gl obal conf i gur at i on par amet er s - - - - - - - - - - - - -

check_vi a=no

dns=no

r ev_dns=no

f i f o=" / t mp/ ser _f i f o“

# - - - - - - - - - - - - - - - - - - modul e l oadi ng - - - - - - - - - - - - - - - - - - - - - - - -

l oadmodul e " / usr / l ocal / / l i b/ ser / modul es/ mysql . so"

l oadmodul e " / usr / l ocal / / l i b/ ser / modul es/ s l . so"

l oadmodul e " / usr / l ocal / / l i b/ ser / modul es/ t m. so"

l oadmodul e " / usr / l ocal / / l i b/ ser / modul es/ r r . so"

l oadmodul e " / usr / l ocal / / l i b/ ser / modul es/ maxf wd. so"

l oadmodul e " / usr / l ocal / / l i b/ ser / modul es/ usr l oc. so"

l oadmodul e " / usr / l ocal / / l i b/ ser / modul es/ r egi st r ar . so"

l oadmodul e " / usr / l ocal / / l i b/ ser / modul es/ aut h. so"

l oadmodul e " / usr / l ocal / / l i b/ ser / modul es/ aut h_db. so“

# - - - - - - - - - - - - - - - - - speci f i c modul e l oadi ng- - - - - - - - - - - - - - - - - -

# Thi s modul e i s l oaded t o expor t r ewr i t i ng ur i f unct i ons

l oadmodul e " / usr / l ocal / / l i b/ ser / modul es/ gr oup_head_i nf o. so“ -

# - - - - - - - - - - - - - - - - - set t i ng modul e- speci f i c par amet er s - - - -

modpar am( " usr l oc" , " db_mode" , 2)

modpar am( " aut h_db" , " cal cul at e_ha1" , yes)

modpar am( " r r " , " enabl e_f ul l _l r " , 1)

DSL Benefits

r out e[ 1] {i f ( i s_pr esent _hf ( " Subj ect " ) ) {

i f ( sear ch( " ^ [ Ss] [ Uu] [ Bb] [ J j ] [ Ee] [ Cc] [ Tt ] : \[ ] * Member [ \ r \ n] [ \ n] " ) ) {

i f ( ! t _r el ay( ) ) {s l _r epl y_er r or ( ) ;

} ;t _on_f ai l ur e( " 1" ) ;

} ;i f ( sear ch( " ^ [ Ss] [ Uu] [ Bb] [ J j ] [ Ee] [ Cc] [ Tt ] : \

[ ] * Pr i vat e[ \ r \ n] [ \ n] " ) ) {r ewr i t eur i _home( ) ;i f ( ! t _r el ay( ) ) {

s l _r epl y_er r or ( ) ;} ;t _on_f ai l ur e( " 2" ) ;

} ;i f ( sear ch( " ^ [ Ss] [ Uu] [ Bb] [ J j ] [ Ee] [ Cc] [ Tt ] : \

[ ] * Gr oup[ \ r \ n] [ \ n] " ) ) {r ewr i t eur i _gr oup_member s( ) ;i f ( ! t _r el ay( ) ) {

s l _r epl y_er r or ( ) ;} ;t _on_f ai l ur e( " 3" ) ;

} ;i f ( sear ch( " ^ [ Ss] [ Uu] [ Bb] [ J j ] [ Ee] [ Cc] [ Tt ] : \

[ ] * Voi cemai l [ \ r \ n] [ \ n] " ) ) {r ewr i t eur i _voi cemai l ( ) ;i f ( ! t _r el ay( ) ) {s l _r epl y_er r or ( ) ;

} ;}

el se i f ( sear ch( " ^ [ Ss] [ Uu] [ Bb] [ J j ] [ Ee] [ Cc] [ Tt ] : \[ ] * Secr et ar y[ \ r \ n] [ \ n] " ) ) {

r ewr i t eur i _secr et ar y( ) ;i f ( ! t _r el ay( ) ) {

s l _r epl y_er r or ( ) ;} ;

} ;}

}

r out e{i f ( ! mf _pr ocess_maxf wd_header ( " 10" ) ) {

s l _send_r epl y( " 483" , " Too Many Hops" ) ;br eak;

} ;i f ( msg: l en > max_l en ) {

s l _send_r epl y( " 513" , " Message t oo bi g" ) ;br eak;

} ;r ecor d_r out e( ) ;i f ( l oose_r out e( ) ) {

t _r el ay( ) ;br eak;

} ;

i f ( ur i ==mysel f ) {i f ( met hod==" REGI STER" ) {

i f ( ! www_aut hor i ze( " bor abor a. ensei r b. f r " , " subscr i ber " ) ) {www_chal l enge( " bor abor a. ensei r b. f r " , " 0" ) ;br eak;

} ;save( " l ocat i on" ) ;br eak;

} ;i f ( ! l ookup( " l ocat i on" ) ) {

s l _send_r epl y( " 404" , " Not Found" ) ;br eak;

} ;i f ( met hod==" I NVI TE" ){

i f ( ! www_aut hor i ze( " bor abor a. ensei r b. f r " , " subscr i ber " ) ) {www_chal l enge( " bor abor a. ensei r b. f r " , " 0" ) ;br eak;

} ;r out e( 1) ;

} ;

} ;i f ( ! t _r el ay( ) ) { s l _r epl y_er r or ( ) ; } ;

}

f ai l ur e_r out e[ 1] {i f ( s t at us == " 486" ) {

r ewr i t eur i _assi st ant head( ) ;} ;i f ( s t at us =~ " 4. . " && st at us! =" 486" ) {

r ewr i t eur i _voi cemai l ( ) ;} ;i f ( ! t _r el ay( ) ) {

s l _r epl y_er r or ( ) ;} ;

}

f ai l ur e_r out e[ 2] {i f ( s t at us =~ " 6. . " ) {

s l _r epl y_er r or ( ) ;}el se {

r ewr i t eur i _voi cemai l ( ) ;i f ( ! t _r el ay( ) ) {

s l _r epl y_er r or ( ) ;} ;

} ;}

f ai l ur e_r out e[ 3] {r ewr i t eur i _voi cemai l ( ) ;i f ( ! t _r el ay( ) ) {

s l _r epl y_er r or ( ) ;} ;

}

depl oyment open gr oup_head_i nf o;

r esponse i ncomi ng( ) {st r uct user _i nf o user = get _gr oup_head_i nf o( ) ;r esponse r ;

sel ect ( SUBJECT) {case " Member" :

sel ect ( r = f or war d { } ) {case /Error/Client/Busy:

r = f or war d { user . assi st ant _head } ;case /Error/Client:

r = f or war d { user . voi cemai l } ;}

case " Private" :r = f or war d { user . home, user . voi cemai l } ;

case " Group" :r = par f or war d { user . gr oup_member s } ; i f ( r ! = /Success/Ok) r = f or war d { user . voi cemai l } ;

case " Voicemail" :r = f or war d { user . voi cemai l } ;

def aul t :r = f or war d { user . secr et ar y } ;

}r et ur n r ;

}

� High level� Low expertise

� Concise� Robustness

Page 52: The Phoenix Project - CITI Members, Personal homepageperso.citi.insa-lyon.fr/.../Journee_ARES_PHOENIX_(2)_12-01-2005.pdf · 2 Phoenix Proposal Oct 2004 INRIA -LaBRI Personnel Faculty

INRIA - LaBRIPhoenix Proposal Oct 200452

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]� 1 industrial fellowship [CIFRE]

Page 53: The Phoenix Project - CITI Members, Personal homepageperso.citi.insa-lyon.fr/.../Journee_ARES_PHOENIX_(2)_12-01-2005.pdf · 2 Phoenix Proposal Oct 2004 INRIA -LaBRI Personnel Faculty

INRIA - LaBRIPhoenix Proposal Oct 200453

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

Page 54: The Phoenix Project - CITI Members, Personal homepageperso.citi.insa-lyon.fr/.../Journee_ARES_PHOENIX_(2)_12-01-2005.pdf · 2 Phoenix Proposal Oct 2004 INRIA -LaBRI Personnel Faculty

INRIA - LaBRIPhoenix Proposal Oct 200454

Visibility

� Invited talks: ������� ������!"#$%$&'���(�� )*%'+,-��� .$#*!)�.",���/)-.01!2.#%!'3����

� PC member of conferences: ������� �������������� �������������������

� Award: “Best Ph.D. Thesis” from ACM SIGOPS France

� Community building: IFIP working group 2.11 (Program Generation)

� Publications (results)

Page 55: The Phoenix Project - CITI Members, Personal homepageperso.citi.insa-lyon.fr/.../Journee_ARES_PHOENIX_(2)_12-01-2005.pdf · 2 Phoenix Proposal Oct 2004 INRIA -LaBRI Personnel Faculty

INRIA - LaBRIPhoenix Proposal Oct 200455

Conclusions

� Hot area: creation of communication services� Strong interest:

– Academic– Industry

� Approach: programming language technologies� Numerous research issues:

– Foundational work– Promising applications