Compilatore CPL per reti SIP con tecnologie JAVA avanzate Relatori: Ing. Maurizio Morisio Ing. Paolo Falcarin Dott.ssa Patricia Lago Candidato: Marco De Nittis Scenario - NGN NGN – Next Generation Network: Reti di Telecomunicazione Astrazione delle interfacce • Convergenza (PSTN – IP) Servizi • Interoperabilità e riusabilità Services Applications Common API PSTN 2 IP GSM Settembre 2003 Protocollo SIP SIP – Session Initiation Protocol Gateway PSTN-VoIP Proxy Server SIP Rete IP Proxy Server PSTN Rete IP sip:[email protected] Terminali SIP - VoIP 3 Settembre 2003 Personalizzazione profili Esempio: redirezione condizionale •Profili cablati •Complicato modificare Profile Server INVITE sip:[email protected] Proxy [email protected] Setup Chiamata Voice mailbox 4 Settembre 2003 Linguaggio CPL CPL – Call Processing Language (IETF) Struttura semplice basata su XML Comportamento all’arrivo di una chiamata <cpl> <incoming> <time-switch> <time dtstart="20030703T180000" duration="PT8H" freq="daily"> <location url="sip:[email protected]" clear="yes" /> </time> </time-switch> </incoming> </cpl> 5 Settembre 2003 Obiettivo Creazione di un’architettura software con le seguenti caratteristiche: 6 Gestione profili utente di telefonia IP Supporto reti SIP (Session Initiation Protocol) Velocità di setup chiamate Semplicità di personalizzazione profili Funzionalità Java avanzate Settembre 2003 Soluzioni realizzate Obiettivo: migliori prestazioni Profili come classi Java • Creazione classi runtime • Compilatore CPL – Java • Dynamic Classloading Cache • Riduzione delle chiamate remote 7 Settembre 2003 Architettura Attivazione profili Cache Profile Manager JAIN SIP Proxy Gestione dei profili Memorizzazione Profili Repository Tomcat Profile Server Manager Gestione delle chiamate Rete IP 8 Settembre 2003 Scenario – Chiamata 3. Controllo Cache 4. Richiesta Profilo 2. Richiesta Profilo Profile Manager JAIN SIP Proxy 5. Profilo Repository 6. Restituzione Profilo 7. Inoltro chiamata SIP 1. Chiamata SIP Rete IP 8. Comunicazione VoIP 9 Settembre 2003 Scenario – Inserimento profili Profile Manager 4. Notifica (RMI) Tomcat 2. Compilazione profilo Profile Server Manager JAIN SIP Proxy 1. Profilo CPL (HTTP) 3. Memorizzazione Repository Utente 10 Settembre 2003 Gestione dei profili Creazione profili • Una classe Java per ogni profilo • Compilatore CPL verso Java • Memorizzazione del bytecode Uso dei profili • Classloader personalizzato • Creazione oggetti profilo tramite reflection • L’implementazione può cambiare runtime • Meccanismo di cache Script CPL Compilatore CPL Classe Java (bytecode) Dynamic Classloading Oggetto Profilo Operazioni indipendenti 11 Settembre 2003 Strumenti utilizzati SIP Proxy • Implementazione NIST (National Institute of Standard and Technologies) JAIN SIP (Java API for Integrated Network) • Specifica JCP v1.1 – estensione Java • Implementazione NIST v1.2 Web server (Apache Tomcat) • Java Server Pages 12 Settembre 2003 Risultati ottenuti Rapidità di chiamata: Ordine dei decimi di secondo Paragonabile al proxy originale T (s) 0.8 0.6 Proxy SIP non modificato 0.4 Proxy con ProfileManager 0.2 Prima Chiamata 13 Chiamate Successive Settembre 2003 Confronti Prestazioni migliori rispetto ad altre soluzioni: Interpretazione CPL Chiamate a profile server remoto Soluzione con server remoto Proxy 14 RPC Profile Server Soluzione con ProfileManager Proxy Profili Profile Server Manager Settembre 2003 Sviluppi futuri Miglioramenti: Aspect-Oriented Programming • Indipendenza dal proxy utilizzato Estensione ad altri linguaggi (SCML) Protocollo di aggiornamento dei profili Altre applicazioni: Generica architettura per la gestione dei profili 15 Settembre 2003