Création et intégration des services de téléphonie sur IP « JAIN » Réalisé par : Ayman HENTATI Encadré par : Mr. Zied CHOUKAIR Dédicaces À l’âme de mon papa, que dieu le bénisse... À ma maman, la plus exquise des mères... À mon bienveillant frère Haitham... À ma chère sœur Amal... À ma chère Taouba... À tous mes amis qui m'ont réchauffés le cœur par leurs e-mails dans toute cette période et qui m’ont soutenu à la mort de mon père: Amine, Ahmed, Sebti, Sinda, Khaoula, Khaled, Walid, Raouya, Abdallah, Anas, Saousan, Salma… Avant-propos Ce présent travail a été réalisé au sein de SUP’COM. Il s’inscrit dans le cadre de mon projet de fin d’études à l’école supérieure des communications de Tunis (SUP’COM). Au terme de ce travail, je tiens à rendre un grand hommage à mon encadreur Mr. Zied CHOUKAIR qui m’a suivi durant ces trois mois de travail, m’apportant attention et rigueur dans l’analyse des résultats obtenus. Je tiens également à remercier Mr Mounir FRIKHA, Chef de département à SUPCOM pour le soutien moral qu'il m'a donné. Un grand remerciement aux membres de jury qui ont bien voulu nous honorer de leur présence et de juger ce travail. Enfin, je veux exprimer de mes fonds, ma reconnaissance à ma mère pour l'amour dont elle m'a entouré, pour son aide et ses sacrifices. Résumé : Dans le passé, quand un client demandait un nouveau service, l’opérateur de réseaux devait demander à l’équipementier ou au fournisseur de services de fournir de nouveaux paramètres dans les réseaux. Donc, les opérateurs dépendaient fortement de leurs équipementiers car ils étaient les seuls à être capables de modifier les réseaux. De plus, les fournisseurs de services ont toujours tendance à développer des services propriétaires suivant leurs propres normes. Ces contraintes rendent les modifications et la création de nouveaux services difficiles et très longues. La technologie JAIN, basé sur la plateforme JAVA, introduit la portabilité des services entre systèmes et permet de remplacer toutes les interfaces propriétaires par d’autres qui sont standards Dans ce contexte, notre travail consiste à concevoir une plate-forme de messagerie en se basant sur les spécifications de JAIN. Mots clés : NGN, JAIN, JAIN SLEE, SBB, SIP, Messagerie instantanée, Présence, Adaptateur de ressource Glossaire API Une Interface de programmation (en anglais Application Programming Interface) définit la manière dont un composant informatique peut communiquer avec un autre. Activity Une activité représente un ensemble d’événements. AC (Activity Context) Un contexte d'activité représente l'activité fondamentale dans la SLEE. Elle tient également les attributs en commun que les entités SBB veulent partager Event Un évènement est un composant logique qui permet de diffuser l'information entre les différentes entités de la SLEE EJB (Enterprise Java Bean) C’est le composant le plus élémentaire dans la J2EE. IM (Instant Messaging) Messagerie synchrone qui permet de recevoir et d'envoyer instantanément des messages. JAIN (Java API for Integrated Network) C’est une initiative au sein de la Java Community Process, dont l'objectif est le développement d'interfaces de programmation permettant la création de services de téléphonie (voix et données). J2EE (Java to Enterprise Edition) C’est une spécification pour le langage de programmation Java de Sun plus particulièrement destiné aux applications d'entreprise. JCP Le Java Community Process (JCP) est une organisation créée par Sun en 1998. Son but est de coordonner l'évolution du langage Java et des technologies qui lui sont associées. OSA (Open Services Architecture) C’est une architecture de services ouverte quia été spécifié par le 3GPP destinée aux services mobiles. Parlay C’est la couche API de OSA Presence C’est un système de notification de présence, indiquant si les individus de la liste de contacts sont simultanément en ligne et leur disponibilité pour discuter. Proxy Il s'occupe de relayer les appels, il agit à la fois comme client et serveur. RA (Resource Adaptor) Assure le mapping entre les messages protocolaires et les événements. Registrar Cet équipement associe un utilisateur à un identifiant unique connu par les tierces personnes. SBB (Service Building Bloc) C’est le composant le plus élémentaire dans la SLEE. SLEE (Service Logic Execution Environment) C’est une spécification pour le langage de programmation Java de Sun plus particulièrement destiné aux applications de communications. Elle est destiné pour héberger des services temps réels de type Voix/Donné. 3GPP (Third Generation Partnership Project) Une organisation internationale qui permet l’établissement des spécifications techniques pour l’ensemble de système de la téléphonie 3 G. UML (Unified Modeling Language) C’est un langage servant à décrire des modèles d’un système (réel ou logiciel) avec des notations. UML se base sur les concepts orientés objets. Table des matières INTRODUCTION GENERALE Partie I : CONCEPTS GENERAUX Chapitre1 : Les réseaux NGN Introduction :........................................................................................................................................................1 I. Architecture du réseau NGN :..................................................................................................................1 II. Le réseau d’accès :........................................................................................................................................2 II.1. Les réseaux d’accès fixes :....................................................................................................................2 II.2. Les technologies radio locale :.............................................................................................................2 II.3. Les réseaux d’accès mobiles :...............................................................................................................3 III. La couche transport :...................................................................................................................................3 IV. La couche contrôle : ....................................................................................................................................4 IV.1. Les entités fonctionnelles du cœur du réseau : ................................................................................4 IV.1.1. La Média Gateway (MG) : ........................................................................................................4 IV.1.2. La Signalling Gateway (SG) : ....................................................................................................4 IV.1.3. Le serveur d’appel : ....................................................................................................................4 IV.2. Les Familles protocolaires : .................................................................................................................5 V. La couche service : .......................................................................................................................................6 Conclusion :............................................................................................................................................................6 Chapitre2 : La technologie JAIN Introduction : ........................................................................................................................................................7 I. Aperçu historique de JAIN : ......................................................................................................................7 II. Avantages et intérêts de JAIN : ................................................................................................................8 II.1. La portabilité des services : ..................................................................................................................8 II.2. La convergence du réseau : ..................................................................................................................9 II.3. La sécurité de l’accès au réseau : ..........................................................................................................9 III. L’Architecture et les interfaces JAIN : ....................................................................................................9 III.1. Les couches d’abstractions : .................................................................................................................9 III.2. Principe des interfaces JAIN : ............................................................................................................10 III.3. L’architecture de JAIN : ......................................................................................................................11 IV. Les différentes APIs de JAIN : ...............................................................................................................12 V. JAIN SIP API : ............................................................................................................................................13 VI. JAIN SLEE : ................................................................................................................................................13 VI.1. La spécification de JAIN SLEE : .....................................................................................................14 VI.1.1. Le modèle d’évènement : ........................................................................................................15 VI.1.2. Le modèle de composant : .......................................................................................................16 VI.1.3. La capacité d’administration : ..................................................................................................17 VI.1.4. La capacité de ressource : .........................................................................................................17 VI.2. Les composantes de bases du JAIN SLEE : ..................................................................................18 VI.2.1. L’adaptateur de ressource : ......................................................................................................18 VI.2.2. Le routeur d’évènements : .......................................................................................................19 VI.2.3. L’évènement : .............................................................................................................................19 VI.2.4. L’activité et le contexte d’activité : ..........................................................................................19 VI.2.5. Les composants SBB (Service Building Block): ...................................................................20 VI.2.6. Les composants de gestion et de contrôle des services : ....................................................20 VII. JAIN et OSA/Parlay : .........................................................................................................................21 Conclusion ..........................................................................................................................................................22 Partie II : ANALYSE, CONCEPTION ET REALISATION DU PROJET Chapitre 3 : Analyse des besoins Introduction : .....................................................................................................................................................24 I. Identification des besoins : .....................................................................................................................24 II. Modèles des besoins : ...............................................................................................................................25 II.1. Acteurs : ...............................................................................................................................................25 II.2. Les diagrammes de cas d’utilisation : ...............................................................................................25 II.2.1. L’adaptateur de ressource : ......................................................................................................25 II.2.2. Les services : ..............................................................................................................................25 II.2.3. Le client de messagerie instantanée : .....................................................................................26 II.3. Modèle de l’interface homme machine de SUP Messenger : .......................................................26 II.4. Les diagrammes d’activités : ..............................................................................................................27 II.4.1. L’adaptateur de ressource : ......................................................................................................27 II.4.2. Les services : ..............................................................................................................................28 II.4.3. Le client de messagerie instantanée : .....................................................................................29 Conclusion : ........................................................................................................................................................29 Chapitre 4 : Conception Introduction : .....................................................................................................................................................30 I. Conception générale : ...............................................................................................................................30 II. Conception détaillée : ...............................................................................................................................31 II.1. Représentation statique : ....................................................................................................................31 II.1.1. Les diagrammes de paquetages : .............................................................................................32 II.1.1.1. Diagramme de paquetages de SUP Messenger : ..........................................................32 II.1.1.2. Diagramme de paquetages de SIPRA : .........................................................................33 II.1.1.3. Diagramme de paquetages des services : ......................................................................33 II.1.2. Les diagrammes de classes : ....................................................................................................34 II.1.2.1. Diagramme de classes de SUP Messenger : .................................................................35 II.1.2.2. Diagramme de classes de SIPRA : .................................................................................36 II.1.2.3. Diagramme de classes des services : ..............................................................................37 II.2. Représentation dynamique : ..............................................................................................................38 Conclusion : ........................................................................................................................................................38 Chapitre 5 : Réalisation et présentation Introduction : .....................................................................................................................................................39 I. Atelier de travail : .......................................................................................................................................39 I.1. Rational Rose : ........................................................................................................................................39 I.2. Java : .........................................................................................................................................................39 I.3. Le plugin EclipSLEE : ..........................................................................................................................40 I.4. Le serveur Mobicents : ..........................................................................................................................40 II. Scénario : ......................................................................................................................................................40 Conclusion : ........................................................................................................................................................44 CONCLUSION GENERALE ...........................................................................................................45 ANNEXE A ................................................................................................................................................... 46 ANNEXE B.................................................................................................................................................... 54 BIBLIOGARPHIE.....................................................................................................................................57 Liste des figures Figure 1.1 : Principe d’architecture d’un réseau NGN..............................................................................................2 Figure 2.1 : Architecture de base de JAIN.................................................................................................................7 Figure 2.2 : Passage des systèmes propriétaires aux systèmes ouverts.....................................................................8 Figure 2.3 : Les différentes couches et APIs de JAIN..............................................................................................10 Figure 2.4 : Exemple d’introduction d’une interface JAIN......................................................................................10 Figure 2.5 : Architecture en couche de JAIN............................................................................................................11 Figure 2.6 : Les différentes JAIN SIP API ...............................................................................................................13 Figure 2.7 : Le modèle d’évènement de JAIN..........................................................................................................16 Figure 2.8 : Architecture de JAIN SLEE..................................................................................................................18 Figure 2.9 : Rôle de l’adaptateur de ressource..........................................................................................................19 Figure 2.10 : L’activité et le contexte d’activité.........................................................................................................20 Figure 3.1 : Diagramme de cas d’utilisation de SIPRA ............................................................................................25 Figure 3.2 : Diagramme de cas d’utilisation des services.........................................................................................26 Figure 3.3 : Diagramme de cas d’utilisation de SUP Messenger..............................................................................26 Figure 3.4 : Modèle de l’interface homme machine du SUP Messenger..................................................................27 Figure 3.5 : Diagramme d’activité de SIPRA............................................................................................................27 Figure 3.6 : Diagramme d’activité des services.........................................................................................................28 Figure 3.7 : Diagramme d’activité de SUP Messenger.............................................................................................29 Figure 4.1 : Architecture générale du projet..............................................................................................................31 Figure 4.2 : Diagramme de paquetage de SUP Messenger......................................................................................32 Figure 4.3 : Diagramme de paquetage des services .................................................................................................34 Figure 4.4 : Diagramme de classes de SUP Messenger............................................................................................35 Figure 4.5 : Diagramme de classes de SIPRA ..........................................................................................................36 Figure 4.6 : Diagramme de classes du Proxy............................................................................................................36 Figure 4.7 : Diagramme de classes du Registrar.......................................................................................................37 Figure 4.8 : Diagramme de classes du Presence service ..........................................................................................37 Figure 4.9 : Diagramme de séquence de tout le système .........................................................................................38 Figure 5.1 : Démarrage du serveur ............................................................................................................................40 Figure 5.2 : Déploiement du SIPRA..........................................................................................................................41 Figure 5.3 : Déploiement des services.......................................................................................................................41 Figure 5.4 : Interface de démarrage du premier client .............................................................................................41 Figure 5.5 : Etat du client après la connexion ..........................................................................................................42 Figure 5.6 : Interface de démarrage du deuxième client..........................................................................................42 Figure 5.7 : Initiation d’une session de chatting.......................................................................................................42 Figure 5.8 : Spécification de l’adresse du correspondant..........................................................................................42 Figure 5.9 : Aymen commence à envoyer le premier message.................................................................................43 Figure 5.10 : Mohamed reçoit le message de Aymen................................................................................................43 Liste des tableaux Tableau 2.1: Comparaison entre le système de communication et le système d’entreprise ………………....14 Tableau 4.1: Définition des paquetages et des classes de SUP Messenger……………...……………………32 Tableau 4.2: Définition des classes de SIPRA.........................................................................................…....33 Tableau 4.3: Définition des classes des différents paquetages des services......................................…..........33 Introduction Générale L’environnement de service des opérateurs de télécommunications est aujourd’hui particulièrement complexe avec l’intégration de services très divers provenant du monde Internet. Cette complexité provient du mariage entre les télécommunications et l’informatique. Le réseau intelligent autour du réseau téléphonique a longtemps été le vecteur de cette intégration et a permis un certain succès à ce mariage avec l’arrivée de services comme la carte prépayée ou le numéro vert. Cependant, modifier un service ou créer un nouveau service accessible par le réseau téléphonique nécessite la modification de tous les noeuds du réseau qui sont des commutateurs très complexes. De plus, les fournisseurs de services ont toujours tendance à développer des services propriétaires suivant leurs propres normes. Ces contraintes rendent les modifications et la création de nouveaux services difficiles et très longues dans le contexte d’un marché très concurrentiel comme aujourd’hui. D’ailleurs, ces services sont très coûteux du fait de la complexité et du nombre de commutateurs à modifier dans le réseau. C'est dans ce contexte que la technologie JAIN, basé sur la plateforme JAVA, introduit la portabilité des services entre systèmes et permet des accès sécurisés aux ressources des différents réseaux. Elle constitue ainsi une architecture de nouvelle génération qui permet de remplacer toutes les interfaces propriétaires par d’autres qui sont standards. En effet, la spécification des APIs JAIN se fait au sein du JCP (Java Community Process) ce qui permet à tout ce qui est intéressé de participer. Dans ce cadre, notre travail consiste à proposer un prototype de plate-forme de messagerie basée sur ces spécifications. Partie I : CONCEPTS GENERAUX Les réseaux NGN Chapitre 1 Les réseaux NGN Introduction : L’évolution progressive du monde des télécoms vers des réseaux et des services de nouvelle génération est aujourd’hui une tendance forte qui suscite l’intérêt d’une majorité d’acteurs. Elle résulte de la conjonction d’un ensemble de facteurs favorables dont : • les évolutions profondes du secteur des télécommunications ; • le développement de gammes de services nouveaux ; • les progressions technologiques d’envergure dans le domaine des réseaux de données. Il en résulte de ce contexte et afin de s’adapter aux grandes tendances qui sont la recherche de souplesse d’évolution du réseau, la distribution de l’intelligence dans le réseau, et l’ouverture à des services tiers, une évolution vers un nouveau modèle de réseaux et de services appelé NGN (Next Generation Networks). Les NGN sont basés sur une évolution progressive vers le « tout IP » et sont modélisées en couches indépendantes dialoguant via des interfaces ouvertes et normalisées. Les réseaux de télécommunications traditionnels évolueront vers un modèle ouvert, distribué, fortement basé sur le protocole IP et la transmission en mode paquet en général. Cette évolution technologique, tout en étant transparente pour les utilisateurs, se fera de manière progressive pour les opérateurs. . Ce chapitre présentera une étude descriptive de l’ensemble de ces nouveaux concepts globalement désignés sous l’appellation NGN. Il inclut aussi une synthèse des évolutions technologiques majeures et le détail des nouveaux concepts liés aux NGN. I. Architecture du réseau NGN : Les réseaux de nouvelle génération peuvent être présentés comme un concept permettant de définir et déployer des réseaux évolutifs et favorisant pour les fournisseurs de services et les opérateurs la création et la gestion de services innovants. Les services doivent être évolutifs et accessibles indépendamment du réseau d’accès utilisé. Le NGN est caractérisé par plusieurs éléments essentiels : • Un cœur de réseau unique et mutualisé pour tous types d’accès et de services ; • Une architecture de cœur de réseau en trois couches : Transport, Contrôle et Services. • Une évolution du transport en mode paquet (une convergence progressive vers le tout IP) ; -1- Les réseaux NGN • Des interfaces ouvertes et normalisées entre chaque couche, et notamment au niveau des couches contrôle et services afin de permettre la réalisation de services indépendants du réseau ; • Le support d’applications multiples, multimédia, temps réel, en mobilité totale, adaptables à l’utilisateur et aux capacités des réseaux d’accès et des terminaux ; • La prise en compte de réseaux d’accès multiples ; • La prise en compte de terminaux multiples. Figure1.1 : Principe d’architecture d’un réseau NGN II. Le réseau d’accès : Ce paragraphe présente les principales technologies d'accès actuellement connues dont la généralisation contribuera à alimenter le besoin et le développement des NGN. II.1. Les réseaux d’accès fixes : Les réseaux d'accès fixes s'adaptent progressivement au support de services de données à haut débit: • Le réseau téléphonique commuté, initialement support des services voix, a permis une ouverture à des services voix/données haut débit grâce aux technologies xDSL accessibles aux nouveaux opérateurs par le biais du dégroupage de la boucle locale. • L'accès Ethernet, initialement conçu pour fournir des services de données (IF) en entreprises, voit son usage s'étendre en termes de débit, de périmètre d'utilisation et de services transportés (voix et donnée, multimédia). II.2. Les technologies radio locale : Plusieurs technologies permettent de fournir des services voix et données fixes en utilisant un accès radio. On citera notamment la boucle locale radio. les réseaux locaux sans fil et Bluetooth. Ces technologies assez récentes, seront l’objet de mutations et développements très importants. Quant aux réseaux satellitaires, plusieurs tentatives de déploiement déjà relativement anciennes ont mené à des échecs (avant tout d'ordre économique du fait des coûts -2- Les réseaux NGN particulièrement élevés de déploiement), mais ils pourraient, dans les prochaines années, trouver enfin leur place parmi les réseaux d'accès effectivement utilisés pour fournir des services « fixes ». II.3. Les réseaux d’accès mobiles : Plusieurs réseaux d'accès radio fournissant des services de radiocommunications mobiles publics sont présentés. Le GSM est une technologie historiquement orientée vers les services voix et données bas débit mature et très largement répandue, mais évolue actuellement avec l'ajout de services de transmission de données en mode paquet (GPRS), et à court terme avec l'émergence de la nouvelle génération « convergente » voix/données/multimédia: l'UMTS. III. La couche transport : La couche Transport gère l'acheminement du trafic vers sa destination. Les principales évolutions du réseau de transport concernent les technologies de transmission et de commutation utilisées sur les liaisons qui interconnectent les réseaux d'accès au coeur de réseau. Maintenant, la question pertinente est de savoir comment les backbones sont susceptibles d'évoluer afin de supporter un très haut débit, et surtout le transport unifié de flux mixtes voix/donnée/multimédia avec une qualité de service adéquate. Tout d'abord il faut distinguer entre le niveau réseau de transmission et le niveau réseau de commutation dans un «réseau de transport» (couche transport) • Le réseau de transmission correspond au réseau physique de liens et de nœuds qui desservent une zone (un immeuble, une ville, une région, un pays ou un continent). • Le réseau de commutation correspond à certains noeuds qui permettent d'acheminer une communication à travers le réseau de transmission en fonction de sa destination. Dans les architectures traditionnelles, un opérateur possède (ou loue) un réseau de transmission sur lequel s'appuient en général plusieurs réseaux de commutation, le premier est consacré uniquement à la commutation de la voix, le second pour la commutation de données. Ainsi, pour les NGN, on parvient à fusionner ces deux réseaux en un seul. Si l'on visualise les technologies mises en jeu en s'appuyant sur le modèle en couches OSI (Open System Interconnection), la séparation entre réseau de transmission et réseau de commutation est très nette. Pour la mise en oeuvre de ces réseaux de transport « de nouvelle génération », on peut mettre en évidence deux évolutions majeures des réseaux de transport au niveau des réseaux de transmission et des réseaux de commutation. Concernent les réseaux de transmission, les techniques dominantes sont remises en cause. -3- Les réseaux NGN En effet, le multiplexage TDM (Time Division Multiplexing), utilisée en grande majorité dans les réseaux actuels, est une technique de transmission adaptée pour la commutation de circuits alors que la tendance actuelle est de migrer les réseaux de transmission actuels vers un réseau de transmission unique, neutre, voire favorable à la commutation de paquets et donc on assiste aujourd'hui à des nombreux développements autour du multiplexage WDM et aussi à des plusieurs évolutions liées à l'optique et au WDM. IV. La couche contrôle : Les évolutions au niveau de la couche contrôle sont majeures. Plusieurs nouveaux mécanismes et protocoles sont mis en jeu et donc une nouvelle architecture qui découle. La couche Contrôle se compose de serveurs dits « Softswitch » gérant d'une part les mécanismes de contrôle d'appel (pilotage de la couche transport, gestion des adresses), et d'autre part l'accès aux services (profils d'abonnés, accès aux plates-formes de services à valeur ajoutée). IV.1. Les entités fonctionnelles au cœur du réseau : IV.1.1. La Média Gateway (MG) : Les Gateways ont un rôle essentiel: elles assurent non seulement l'acheminement du trafic, mais aussi l'inter fonctionnement avec les réseaux externes et avec les divers réseaux d'accès. La Media Gateway est située au niveau du transport des flux média entre le réseau RTC et les réseaux en mode paquet, ou entre le coeur de réseau NGN et les réseaux d'accès. Elle a pour rôle le codage et la mise en paquets du flux média reçu du RTC et vice versa (conversion du trafic TDM IP) et aussi la transmission, suivant les instructions du Media Gateway Controller, des flux média reçus de part et d'autre. IV.1.2. La Signalling Gateway (SG) : La fonction Signalling Gateway a pour rôle de convertir la signalisation échangée entre le réseau NGN et le réseau externe interconnecté selon un format compréhensible par les équipements chargés de la traiter, mais sans l'interpréter (ce rôle étant dévolu au Media Gateway Controller). Notamment, elle assure l'adaptation de la signalisation par rapport au protocole de transport utilisé. Cette fonction est souvent implémentée physiquement dans le même équipement que la Media Gateway, d'où le fait que ce dernier terme est parfois employé abusivement pour recouvrir les deux fonctions MG + SG. IV.1.3. Le serveur d’appel : Dans un réseau NGN, c'est le MGC qui possède « l'intelligence ». Il gère: • L'échange des messages de signalisation transmise de part et d'autre avec les passerelles de signalisation, et l'interprétation de cette signalisation. • Le traitement des appels: dialogue avec les terminaux H.323, SIP voire MGCP, -4- Les réseaux NGN communication avec les serveurs d'application pour la fourniture des services. • Le choix du MG de sortie selon l'adresse du destinataire, le type d'appel, la charge du réseau, etc. • La réservation des ressources dans le MG et le contrôle des connexions internes au MG (commande des Media Gateways). Donc dans l'architecture des réseaux NGN, le serveur d'appel, aussi appelé Softswitch ou Media Gateway Controller (MGC) est le nœud central qui supporte l'intelligence de communication. IV.2. Les Familles protocolaires : La convergence des réseaux voix/données ainsi que le fait d'utiliser un réseau en mode paquet pour transporter des flux multimédia, ayant des contraintes de « temps réel », a nécessité l'adaptation de la couche Contrôle, En effet ces réseaux en mode paquet étaient généralement utilisés comme réseau de transport mais n'offraient pas de services permettant la gestion des appels et des communications multimédia. Cette évolution a conduit à l'apparition de nouveaux protocoles, principalement concernant la gestion des flux multimédia, au sein de la couche Contrôle. On peut classer les protocoles de contrôle en différents groupes: • Les protocoles de contrôle d'appel permettant l'établissement, généralement à l'initiative d'un utilisateur, d'une communication entre deux terminaux ou entre un terminal et un serveur; les deux principaux protocoles sont H.323, norme de l'UIT et SIP, standard développé à l'IETF. • Les protocoles de commande de Media Gateway qui sont issus de la séparation entre les couches Transport et Contrôle permettent au Softswitch ou Media Gateway Controller de gérer les passerelles de transport ou Media Gateway. MGCP (Media Gateway Control Protocol) de l'IETF et H.248/MEGACO, développé conjointement par l'UIT et l’IETF, sont actuellement les protocoles prédominants. • Les protocoles de signalisation entre les serveurs de contrôle (ou Media Gateway Controller) permettant la gestion du plan contrôle au niveau du coeur de réseau avec des protocoles tels que BICC (Bearer Independant Call Control), SIP-T (SIP pour la téléphonie) et H.323. L'interconnexion avec les réseaux de signalisation SS7 se fait généralement via des passerelles de signalisation ou Signalling Gateways par l'utilisation de protocole tel que SIGTRAN. De plus, l'interconnexion de ces réseaux de données avec les réseaux existants de téléphonie -5- Les réseaux NGN (TDM avec signalisation SS7) a nécessité le développement de protocoles dédiés à l'interconnexion des réseaux et au transport de la signalisation SS7 sur des réseaux en mode paquet. V. La couche service : Actuellement, les services sont dédiés à un type de réseau; services Réseau Intelligent sur le réseau téléphonique pour les terminaux téléphoniques (fixes ou mobiles), et services mail, web, news sur les réseaux IP. L'apparition des nouveaux réseaux d'accès tels que l'UMTS, le GPRS, I'xDSL, l'Ethernet longue distance, et la multiplication des terminaux communicants (téléphone mobile GPRS/UMTS, PDA) et la convergence des coeurs de réseaux, poussent à une transformation de l'architecture des plates-formes de services. Cette nouvelle architecture doit offrir la possibilité aux clients d'accéder aux services, quelle que soit la nature des terminaux et le type de protocole utilisé pour accéder aux plates-formes de services, via un réseau de transport unifié, en mode paquet. Le service rendu doit être adapté aux besoins et aux moyens des clients. Conclusion : Globalement, l'évolution vers les NGN représente encore à ce jour un sujet relativement amont, notamment du point de vue des opérateurs et dans une moindre mesure des purs fournisseurs de services. En effet, la conjoncture actuelle influe fortement sur les positions vis-à-vis des NGN puisque les acteurs sont confrontés à des problématiques de financement et de pérennité, ce qui les met dans un contexte peu favorable à des évolutions techniques et à l'apparition de nouveaux business models. Mais on peut dire que la migration vers les NGN apparaît comme un processus inévitable du fait de la convergence voix/données/image et fixe/mobile. Elle a déjà attiré l’intérêt d’un certain nombre d'acteurs en France, en Europe et dans d'autres continents. Encore faut il anticiper pour suivre et analyser ses impacts. Dans le chapitre suivant on va présenter JAIN qui un exemple d’architecture de réseau NGN. On va scruter tous les détails qui se rapportent à cette technologie. On va surtout mettre l’accent sur le point fort de cette architecture : le développement des services. -6- La technologie JAIN Chapitre 2 La technologie JAIN Introduction : JAIN est un ensemble d’API (Application Program Interfaces) JAVA qui permet de développer rapidement de nouveaux services pour des réseaux de télécommunication voix ou données, indépendamment des serveurs utilisés (matériel). De plus, JAIN étant basé sur la plateforme JAVA, il introduit la portabilité des services entre systèmes et permet des accès sécurisés aux ressources des différents réseaux. La technologie JAIN change radicalement le marché des télécommunications en permettant le passage de systèmes fermés et propriétaires à des systèmes ouverts offrant une interconnexion totale des différents réseaux existant (PSTN, IP, ATM, GSM, WLAN). Ceci peut être constaté dans la figure 2.1 qui donne un premier aperçu sur l’architecture de JAIN Actuellement, plus de 80 entreprises font partie et sont actives dans la communauté de développement de la technologie JAIN sous le contrôle de SUN, qui garantit ainsi la qualité des nouvelles APIs, leur homogénéité et leur compatibilité à long terme. Figure 2.1 : Architecture de base de JAIN I. Aperçu historique de JAIN : Créé par SUN en 1998, JAIN étend la plate-forme JAVA à l’industrie des fournisseurs de services. Son but est de répondre aux exigences des réseaux de télécommunication de la nouvelle génération, en offrant des API permettant de développer des applications et services pour les réseaux intelligents. Les développements des API JAIN sont menés de front en Asie, en Europe et aux Etats-Unis par les membres de la communauté. Celle-ci se compose de plus de 80 entreprises comprenant des fournisseurs de matériels, des fournisseurs d’équipements réseaux, des fournisseurs de protocoles et des développeurs de services. -7- La technologie JAIN La communauté de JAIN travail en étroite collaboration avec d’autre groupement d’entreprises tel que l’ETSI, le Parlay Group et 3GPP afin de garantir des API de qualités. II. Avantages et intérêts de JAIN : Actuellement les solutions viennent d’un vendeur qui fournit dans une grande boite totalement propriétaire du matériel, logiciel du serveur et des services. Les clients dépendent donc de ce vendeur, il en résulte des coûts d’extensions et de maintenances élevés. Avec JAIN on obtient une solution ou les différentes parties du serveur proviennent de vendeurs différents, le client peut ainsi choisir les différentes parties en fonction de ses besoins. La figure 2.2 présente la transition entre les systèmes actuels propriétaires fermés à des systèmes ouverts dans lesquels chaque couche est séparée, introduisant de ce fait la liberté d’action à tous les niveaux. Figure 2.2 : Passage des systèmes propriétaires aux systèmes ouverts Le fondement de JAIN s’appuie essentiellement sur la portabilité de la plate-forme JAVA. Ceci s’est traduit par la standardisation de la couche de signalisation en des APIs qui visent à enrichir le cœur du langage JAVA et qui a servi pour définir un environnement de création, de test et de déploiement de nouveaux services de télécom. Dés lors, la portabilité des services, la convergence du réseau ainsi que la sécurité d’accès au réseau, introduites par la définition de ces APIs, représentent le point fort de JAIN : II.1. La portabilité des services : Dans le domaine des télécoms, on n’a jamais parlé de la portabilité de services vu que les interfaces restaient propriétaires jusqu’à l’avènement des concepts NGN. En fait, les coûts de développement des services étaient élevés puisqu’il faut respecter les contraintes de compatibilité. Par rapport à tous ces problèmes JAIN permet au développeurs de services télécoms de franchir toutes ces barrières et leur fournir des APIs Java assurant l’intégrité des réseaux tout en uniformisant leurs interfaces. -8- La technologie JAIN II.2. La convergence du réseau : Les services télécoms actuels sont spécifiques à un seul type de réseau (PSTN, Paquet, Wireless) malgré qu’ils soient déjà interconnectés. Le modèle d’appel JAIN représente un haut niveau d’abstraction des protocoles de signalisation et des méthodes d’accès au service. Ceci est obtenu grâce à l’ensemble des primitives prédéfinies par les nouveaux APIs permettant d’observer, d’initialiser, de traiter et de manipuler l’appel indépendamment de sa nature et de son contenu. II.3. La sécurité de l’accès au réseau : Le nouveau bouquet de service fourni par JAIN peut être hébergé soit par une plate-forme appartenant au réseau de l’opérateur soit chez une tierce personne qui est généralement une société de prestation de services télécoms. Pour le deuxième cas de figure, la communauté de JAIN a définit l’interface JAIN Parlay. Cette interface permet à ce genre de services d’accéder aux ressources réseaux de l’opérateur et de bénéficier de quelques fonctions spécifiques sans toucher à la sécurité et l’intégrité du réseau. En remarque donc que cette interface agit comme un firewall pour protéger le réseau de l’opérateur de toute menace extérieure. III. L’Architecture et les interfaces JAIN : Avant de scruter l’architecture de JAIN, faut il tout d’abord, présenter la communauté qui a définit les notions de base de cette technologie. En fait, il s’agit de deux groupes de recherches. Le premier est spécialisé dans la définition des interfaces standards pour les différents protocoles de signalisation d’où le nom PEG (Protocol Expert Group). Alors que la spécification des APIs requis pour la création des services était dédié au AEG (Application Expert Group). Cette « divergence » brossée à travers cette séparation ne va pas contourner les objectifs de JAIN puisque la spécialisation à mon sens permet de créer des gens plus compétents dans le domaine. Ce qui va entraîner plus de précision et de performance au niveau des spécifications. III.1. Les couches d’abstractions : Il a donc été nécessaire de définir un environnement d’exécution indépendant du protocole de signalisation. Pour cela, plusieurs couches d’abstraction ont été crées, il définit aussi une librairie de composant, d’outils de développement et un environnement de création de services Comme nous l’avons dit, JAIN définit des couches d’abstractions, elles sont au nombre de trois : • Network layer: Il s’agit d’une couche définissant le protocole de communication choisit. 9 Télécommunication : Réseaux intelligent (AIN/IN) ou SS7 avec beaucoup de protocole ISUP, TCAP, NAP … 9 Wireless : SS7 avec des applications mobiles (MAP) -9- La technologie JAIN 9 VoIP : SIP, MGCP, Megaco, H.323 • Signaling layer: Il s’agit d’une couche représentant les logiciels chargés de la gestion des communications. 9 Télécommunication : Signaling Service Point (SSP) 9 Wireless : Mobile Switching Centers (MSC) 9 VoIP : Proxy, redirect serveur, H 323 gatekeeper, media gateway controllers • Service layer : Il s’agit d’une couche représentant les services de base. 9 Télécommunication : Service Contrôle Points (SCP) 9 Wireless : Base Station Controllers (BSC), Home Location Registers (HLR) … 9 VoIP : Serveur d’applications internet Figure 2.3 : Les différentes couches et APIs de JAIN III.2. Principe des interfaces JAIN : JAIN propose des API qui interface les différentes couches des réseaux. Ainsi, un développeur de services peut créer des services en se basant sur l’interface utilisée, sans se soucier des primiti propriétaires primitifs du matériel. Figure 2.4 : Exemple d’introduction d’une interface JAIN -10- La technologie JAIN III.3. L’architecture de JAIN : La couche protocolaire de JAIN est définit par la standardisation des protocoles, tels que : SIP, MGCP, H.323, TCAP, INAP, etc., en des interfaces standard. Dès lors, la couche application peut utiliser des ‘’Protocol Stack’’ de différents fournisseurs. Ce qui assure un niveau de portabilité élevé pour les services. En outre, la couche application fournit un modèle d’appel unique pour les différents protocoles supportés par la couche soujacente. L’idée fondamentale est de procurer pour des sessions de différentes natures (multimédia, multi protocole,…) une machine d’état unique afin d’accéder aux services. Celle-ci est accessible via les APIs JCC/JCAT. Admettant que l’architecture de la technologie JAIN est plus au moins claire, on va s’intéresser maintenant à la couche service afin de découvrir le comportement du service dans les différents niveaux. En fait, une application ou un service au niveau protocolaire peut communiquer directement avec les adaptateurs de JAIN. Ces derniers sont des méthodes de classe Java, des événements, ou des interfaces de Java qui encapsulent les ressources du réseau. Les ressources peuvent être implémentées en Java, C, C++, et ainsi de suite, alors qu’un adaptateur de ressource doit être obligatoirement conforme aux spécifications de JAIN. Ce niveau le plus bas de l'abstraction ne fournit aucun dispositif à l'application pour traiter différents types de protocoles. Par exemple, une application qui a besoin d'une session enjambant INAP et SIP devra manipuler les deux protocoles. Un service ou une application au prochain niveau d'abstraction de JAIN, le niveau de contrôle d’appel JAIN ou le niveau des services de confiances, ne doit pas se rendre compte que certaines sessions emploient des protocoles différents. Donc, les fournisseurs qui vendent un produit conforme au JCC doivent fournir trace des échanges entre le contrôleur d’appel JAIN et un ou plusieurs adaptateurs protocolaires. Figure 2.5 : Architecture en couche de JAIN -11- La technologie JAIN La figure 2.5 illustre d’une façon claire notre analyse citée ci-dessus.. En effet, elle nous permet de découvrir toutes les composantes constituants chaque couche. On remarque par exemple des rectangles qui porte la lettre ‘’A’’. Ces derniers représentent les différents types d’adaptateurs. D’autres cercles qui portent tantôt la lettre ‘’S’’ pour dire service tant tôt la lettre ‘’P’’ pour dire politique de service. On remarque la présence d’autres composantes tel que « JAIN Call Control », l’interface « JAIN Parlay », sans oublier, bien entendu, la « SLEE container » qu’on peut le voir comme l’orchestre de tous ces éléments. La SLEE est la partie la plus valorisante dans notre projet puisqu’elle va héberger nos services. Pour cette raison on a consacré toute une partie pour le détailler. IV. Les différentes APIs de JAIN : La technologie de JAIN permet l'intégration de l'Internet et des protocoles du réseau intelligent, désignés sous le nom « réseaux intégrés ». Deux types d’APIs ont été définis : des APIs relatives à la standardisations des interfaces d’accès aux services et une autre classe d’APIs propre au conteneurs d’applications. Les interfaces standard mettent à la disposition du langage de programmation Java tous les protocoles de télécoms. En revanche, les conteneurs d'applications fournissent un environnement standard d'exécution pour des services de télécommunication. Ces services emploient typiquement ces interfaces standard pour des communications par l'intermédiaire des adaptateurs de ressources. SIP, un protocole actuellement populaire au monde des télécoms, parce qu'il possède l’avantage de ne pas être attaché à un médium particulier et est sensé être indépendant du protocole de transport des couches basses. De plus il peut être étendu et s’adapter aux évolutions futures. Pour cette raison JAIN offre le JAIN SIP 1.1 APIs en tant qu'élément du Java APIs pour les communications. En utilisant le SIP, on peut développer nos propres services comme par exemple le fameux « SIP Gateway », qui est nécessaire pour créer et contrôler les connexions. Les spécifications définissent deux types de conteneurs d'applications Java pour les communications : les Servlets SIP et la JAIN/SLEE. Les servlets SIP, similaire au servlets HTTP elles sont prévues pour développer tout type de services. Elles peuvent interagir avec d’autres sources de données tout en garantissant une bonne sécurité, il est en effet possible de confiner les servlets à n’utiliser que les ressources de la machine virtuelle. La JAIN SLEE a pour vocation de permettre la création de services disponibles, fiables et modulaires qui sont portables entre les vendeurs JAIN SLEE. Dans notre projet on va s’intéresser à JAIN SLEE. En fait, nos services seront par la suite -12- La technologie JAIN hébergés par ce type de conteneur. Pour cette raison nous allons consacrer toute une partie de ce chapitre afin de détailler ce composant. Mais faut il tout d’abord mettre l’accent sur JAIN SIP API puisque dans notre application on a opté pour le protocole SIP. V. JAIN SIP API : La communauté Java n’a pas tardé de s'intéresser à SIP. Il en découle de nombreuses implémentations du protocole pour différents supports. La première implémentation fut JAIN. Elle permet d'avoir un contrôle très fin sur les messages. L'API inclue un ensemble d'objets et d'interfaces qui fournissent des abstractions de haut niveau pour représenter les concepts SIP, libérant le programmeur des détails fins comme la gestion des transactions, mais permettant l'accès aux champs importants du message SIP (From, To, Request- URI, Contact). Ainsi, l'API a pour but de permettre aux applications d'avoir un contrôle sur la signalisation SIP tout en cachant toute la complexité sous-jacente qui n'est pas appropriée pour les développeurs. Figure 2.6 : Les différentes JAIN SIP API La figure ci-dessus montre qu’en plus de JAIN SIP il existe d’autre APIs qui sont : • JAIN SIP Lite, il s’agit d’une API haut niveau fournissant une abstraction du stack SIP, elle peut être utilisée pour créer un agent SIP. • JAIN SIP Servelts. Actuellement seule la spécification de JAIN SIP est disponible, elle est fournie avec une bonne documentation qui décrit toutes les méthodes de l’interface. VI. JAIN SLEE : La plate-forme JAIN SLEE permet aux exploitants de réseaux d'intégrer des services dans les infrastructures en place, ce qui permet de protéger les investissements existants tout en développant des applications futures en utilisant les outils standards de Java. Dés lors, elle est en train d'être adoptée à l'échelle mondiale par les exploitants de réseaux de téléphonie fixe ou de sans fil. -13- La technologie JAIN VI.1. La spécification de JAIN SLEE : La spécification JAIN SLEE fournit une norme permettant aux développeurs java d'élaborer et de déployer des services dans des systèmes en temps réel comme les réseaux de transmission vocale ou de données ou les systèmes d'automatisation industrielle. En fait, les systèmes de communications sont des systèmes asynchrones basés sur le modèle d’évènement. Contrairement aux systèmes d’entreprises qui utilisent typiquement les méthodes d’invocations directes. Une architecture existante d'entreprise est définie par les spécifications de « Entreprise JavaBeans ». Le tableau ci-dessous fournit une vue d'ensemble des différentes caractéristiques des systèmes d'entreprises et de communications. Tableau 2.1: Comparaison entre le système de communication et le système d’entreprise Comme le montre ce tableau, il y a des différences substantielles entre les systèmes de communications et les systèmes d'entreprises. Les spécifications d'EJB répondent aux exigences des systèmes d'entreprises. Alors que la SLEE répond aux exigences des systèmes de communications actuels. Bien que les conteneurs existants de J2EE traitent également les événements asynchrones (JMS), ils n'ont pas été conçus pour ça. Une SLEE, d'autre part, a été spécifiquement conçue pour les systèmes de télécommunications à haute fréquence et qui sont complètement asynchrones. Ainsi, une SLEE remplit les exigences des systèmes de communications bien meilleurs que n'importe quel conteneur d'EJB. -14- La technologie JAIN Pour répondre aux exigences des systèmes de communications et incorporer d'autres conditions principales des serveurs d'applications conduits par les événements les fonctions suivantes ont été identifiées en tant que motivateurs principaux pour la spécification de JAIN SLEE : • Le modèle d'événement • Le modèle de composant • La capacité d’administration • La capacité de ressource VI.1.1. Le modèle d’évènement : L’acheminement d'événements entre les ressources de données et les composants de la SLEE, y compris l’acheminement d'événements entre composants, est la fonction de base du SLEE. Le modèle d'événement de la SLEE est basé sur un modèle « publish/subscribe » (semblable à JMS). Ce modèle découple les producteurs d'événements des sources d'événements par l'intermédiaire d'un mécanisme d'adressage indirect qui conduit l'événement des sources aux consommateurs, et désigné sous le nom du mécanisme d’acheminement d'événements de la SLEE. Ce mécanisme décrit comment un événement émis par un producteur d'événement est conduit et fourni grâce au routeur d’évènements à une ou plusieurs instances des composants intéressées par cet évènement. Plus précisément, Les consommateurs d'événement s’attachent à un ou plusieurs « Activity Context » afin de spécifier l’ensemble d’événements dont ils ont besoin. Par ailleurs, les producteurs d'événements publient des événements auprès des «Activity Context ». Dés lors, un producteur d'événements ne se rend pas directement compte de ses consommateurs d'événement et un consommateur d'événement ne se rend pas directement compte de ses producteurs d'événement. Les «Activity Context » définis par la SLEE maintiennent les échanges entre les producteurs d'événement ainsi que leurs consommateurs. La figure ci-dessous illustre ce que on vient de citer. -15- La technologie JAIN Figure 2.7 : Le modèle d’évènement de JAIN Le modèle d'événement de SLEE a les avantages suivants : • Favorise un découplage du producteur d'événement du consommateur d'événement. Ceci facilite la fixation des pannes, car une erreur au niveau du producteur d’évènement aura moins de chance pour se propager jusqu’au consommateur d'événement et vice versa. • Permet au SLEE de savoir les rapports les consommateurs d'événement et leurs producteurs. Ceci permet au SLEE de fournir des dispositifs à valeurs ajoutées importants tels que le “garbage collection” des consommateurs d'événements qui ne recevront plus des événements. • Améliore la robustesse car les producteurs d'événement ne doivent pas mettre en application le code de distribution d'événement qui est conforme aux modèles ou aux conventions documentées. • L'application a un modèle flexible de distribution d'événement qui reçoit seulement les événements d'intérêt. Certaines applications peuvent exiger seulement la distribution d'événements d'un type spécifique, alors que d'autres applications exigent la distribution d'événements d’un type différent. VI.1.2. Le modèle de composant : Le modèle de composant est visé aux applications asynchrones. Ce modèle élimine des références directes entre les producteurs d'événements (les ressources du réseau) et les consommateurs d'événements (les composants d'applications). -16- La technologie JAIN Un composant de SLEE s'appelle un module de service (SBB : Service Building Block).Il est hébergé par le conteneur de la SLEE. Un SBB est conforme à certaines restrictions de programmation. Le conteneur lui représente un environnement d'exécution et lui fournit l'infrastructure de service suivante : • La gestion du cycle de vie de la ressource • La sécurité • La persistance • Les transactions Un descripteur de déploiement permet une association entre l'infrastructure des services et les SBBs hébergés par le conteneur au temps de déploiement. Les composants de SLEE reçoivent des demandes sous forme d'événements qui représentent typiquement une occurrence exigeant le traitement d'une application. Elle diffuse l'information décrivant l'occurrence, telle que la source d'événement. Un composant actif dans le SLEE peut employer des événements pour signaler, appeler, ou communiquer avec d'autres applications fonctionnant dans la SLEE. Le modèle de composant du SLEE modélise l'interface externe d'une application comme un ensemble d'événements que l'application peut recevoir. Chaque type d'événement est manipulé par sa propre méthode pour imposer une interface bien définie. VI.1.3. La capacité d’administration : Afin d'administrer et de contrôler les différents éléments d’un système, un administrateur a besoin de manipuler les valeurs qui caractérisent la configuration de ce système. Le SLEE définit des interfaces de gestion en utilisant MBean’s (Managed Beans) conformément aux spécifications du JMX (Java Management Extentions). Un MBean est une représentation externe d'un domaine fonctionnel et physique d'un système. VI.1.4. La capacité de ressource : Les applications développées dans le SLEE doivent communiquer avec des ressources du réseau. Une ressource représente un système qui est externe à la SLEE (tel que des protocoles stacks ou des bases de données). Ces ressources ne sont pas nécessairement développées en Java ce qui implique qu’ils ne supportent pas le modèle évènementiel. Pour résoudre ce problème d’interopérabilité, l'architecture JSLEE définit comment les applications hébergées par la SLEE peuvent interagir avec ces ressources à travers les adaptateurs de ressources. -17- La technologie JAIN VI.2. Les composantes de bases du JAIN SLEE : L’API du SLEE défini une interface standard pour le développement d’applications de télécommunications portables. Les spécifications de cet API ont été menées par David Ferry de la société “ Open Cloud” et Swee Lim de la société “Sun Microsystems”. Le vote d'approbation finale a accepté les spécifications du 17 février, 2004. En plus des sociétés qui ont mené ces spécifications le groupe d'experts pour ce JSR ainsi d’autres compagnies telles que Siemens AG, IBM, Motorola, et NTT Corporation. JAIN SLEE intègre un modèle d'événement avec un composant de programmation tout en incorporant aussi des interfaces d'administration par l'intermédiaire de JMX, un adaptateur de ressources pour le réseau, des interfaces de profils génériques, un système de gestion de persistance pour les états de redondance, des systèmes de contrôle d'accès concurrent comme les minuteries, des systèmes d'alarmes, un système de suivi d'utilisation et des traces. La figure ci-dessous présente l’architecture de JAIN SLEE et les relations entre ses différents composants : Figure 2.8 : Architecture de JAIN SLEE VI.2.1. L’adaptateur de ressource : Les adaptateurs de ressource communiquent avec les systèmes externes au SLEE, tels que, les composants du réseaux, les protocoles stacks, les bases de données, etc. Selon l'architecture du SLEE, un adaptateur de ressource est une implémentation propre au vendeur d'un type d'adaptateur de ressource. Une instance d'un adaptateur de ressources dans la SLEE s'appelle une entité d'adaptateur de ressources. Le type d'adaptateur de ressource déclare tous les types d'événements qui peuvent être produits ainsi que toutes les activités que l’adaptateur peut introduire. Quand un adaptateur de ressources passe un événement au SLEE, il doit fournir son objet et son type et une activité qui -18- La technologie JAIN l’encapsule (Voir figure). Les spécifications n'énoncent pas comment cette information est passée au SLEE. Figure 2.9 : Rôle de l’adaptateur de ressource VI.2.2. Le routeur d’évènements : Les spécifications de SLEE définissent comment un événement émis par un producteur d'événement est conduit et fourni à un ou plusieurs composants qui lui sont intéressés. Pour ce faire la SLEE est équipée d’un routeur logique d’évènements. Celui-ci reçoit des événements émis de tous les producteurs d'événements et les achemine aux différentes instances correspondantes. VI.2.3. L’évènement : Les objets d'événements diffusent l'information entre les différentes entités du SLEE. Seulement les SBB consomment et produisent des événements, alors que toutes les autres entités telles que les adaptateurs de ressources, la SLEE elle-même peuvent seulement les produire. Chaque événement est représenté par un objet d'événement (sous-classe de java.lang.Object) et un type. Le type d'événement détermine comment le SLEE conduira l'événement, par exemple, quels sont les objets SBB qui doivent recevoir l'événement. Un SBB reçoit les évènements du contexte d’activité qui lui est attaché. Le développeur doit définir une méthode abstraite pour l’exécution de chaque évènement que le SBB en a besoin. Cette méthode est généralement exécutée par la SLEE. Dans le cas d’un évènement initiateur la SLEE doit crée un objet SBB avant de lui acheminer l’évènement. VI.2.4. L’activité et le contexte d’activité : Les classes d’activités comprennent les deux entités logiques, activité et contexte d'activité, et leurs représentations d'objet en Java, objet d'activité et objet d’interface de contexte d'activité Une activité représente un ensemble d’événements. La représentation Java de cette entité logique est l'objet d'activité, qui est créé soit par l'adaptateur de ressource ou les équipements de gestion de la SLEE. JccCall est un exemple d'objet d'activité faisant partie de Java Call Control APIs qui -19- La technologie JAIN représente un appel téléphonique. Figure 2.10 : L’activité et le contexte d’activité Un contexte d'activité représente l'activité fondamentale dans la SLEE et tient également les attributs en commun que les entités SBB veulent partager. Les objets SBB peuvent accéder aux contextes d'activité par l'objet interface de contexte d'activité. Un SBB peut utiliser une interface de contexte d’activité générique comme il peut étendre cette interface pour définir des attributs supplémentaires qu’il veut partager avec d’autres objets. Les objets d'activités sont produits par des événements de réseau. Les adaptateurs de ressources écoutent ces événements et créent les objets d’activités appropriées. Ces objets sont placés dans le contexte d'activité du SLEE. Dès lors, le SLEE est maintenant responsable de la livraison des événements produits aux objets du SBB. Vice versa, un objet du SBB peut accéder à l'interface du contexte d'activité pour obtenir l'accès à l'objet d'activité courante. VI.2.5. Les composants SBB (Service Building Block): Le SBB est le composant le plus élémentaire dans la SLEE. Il est inspiré de l’EJB sur lesquels se basent les systèmes d’entreprise « J2EE ». Un composant SBB définit : • Les types d’événements qu’il peut recevoir et traiter. • Des méthodes pour traiter chaque type d’événement. • Les relations ‘’Child ‘’ qui le rattache à des composantes SBB ‘’Child’’. • Les données qu’il désire partager avec les autres composants par l’intermédiaire d’un ensemble d’attributs d’activity context. Le développeur d’un SBB implémente ce qu’on appelle un SBB Abstract Class de l’interface SBB déjà définie dans les spécifications de la SLEE. VI.2.6. Les composants de gestion et de contrôle des services : Pour contrôler efficacement les services, les échanges d'événement et les ressources, il est -20- La technologie JAIN nécessaire de surveiller et mesurer l'exécution, l'utilisation et la disponibilité de ces attributs, tout en estimant leurs situations futures. Les spécifications de la SLEE définissent un certain nombre de composantes qui peuvent être employées pour répondre à ces exigences. • Le temporisateur : cette fonction procure à des applications la possibilité d'effectuer des actions périodiques, ou lancer des actions et des contrôles à un temps postérieur pour s’assurer qu’ils ont été bien accomplies. Le temporisateur contrôle un certain nombre de temporisateurs, dont chacun est indépendant des autres. • Le service d'alarme : des alarmes sont employées pour informer des applications de gestion qu'un changement inattendu d'état s'est produit dans un élément de réseau. Les composants de SBB emploient le service d'alarme pour produire des avis d'alarme destinés à la consommation par des clients de gestion externe au SLEE. L'envoi des alarmes aux applications de gestion est automatiquement déclenché quand un état particulier devient vrai. Ces clients de gestion peuvent être une console de gestion de réseau ou un moteur de politique de gestion. • Service de mesure des statistiques : les statistiques sont des caractéristiques de l’application ou du réseau qui sont périodiquement demandées par les applications de gestion. Un client de gestion peut employer les paramètres de ce service pour surveiller le taux d'utilisation de chaque application. • Composant de gestion de profil : Ce service permet aux applications de rechercher des profils stockés dans des tables de profil. Les profils contiennent des données stockées dans la SLEE. VII. JAIN et OSA/Parlay : A peu près au même moment où la communauté JAIN se mettait en place et débutait ses travaux, British Telecom (BT), Microsoft, Nortel, Siemens et Ulticom formaient le Parlay Group, qui a donné le jour à une panoplie d’APIs orientée objet et indépendante du langage d’exploitation, afin de faciliter la création de services dans les réseaux publics de tous types. Les APIs d’applications définies par le groupe Parlay doivent permettre un accès ouvert mais sécurisé à un ensemble de fonctionnalités aujourd’hui rendues par les différents réseaux privés ou publics. Il est attendu de la publication de ces APIs qu’elles soient utilisées par une plus grande communauté de développeurs afin de dynamiser le développement de nouveaux services de télécommunications, nous l’avons déjà dit. Mais pour ce faire, les spécifications que définit Parlay ont besoin d’un modèle architectural standardisé permettant aussi de tenir en compte des abonnés mobiles, et le modèle OSA -21- La technologie JAIN développé conjointement par le 3GPP s’est avéré idéal pour une mise en commun des efforts du Parlay Group avec le groupe de travail du 3GPP, qui ont dès lors collaboré à l’édification d’un standard commun OSA/Parlay. OSA/Parlay n’offre pas seulement la possibilité aux opérateurs d’ouvrir leurs réseaux à des parties tierces, mais s’adresse également aux opérateurs câblés comme aux opérateurs sans fils, en proposant sans différenciation aucune une nouvelle méthode peu coûteuse, rapide et efficace pour créer leurs propres services en fonction de la demande qu’ils perçoivent. Au premier abord et avec raison, le lecteur pourra penser que Parlay et JAIN sont en compétition, étant donné les nombreuses similarités dans les buts qu’ils se sont fixés. Mais s’ils ont été en compétition à leurs débuts, cela n’a pas duré, les deux parties s’étant rapidement rendues comptes que la collaboration apporterait plus à chacun que la compétition. Les deux groupes maintiennent toutefois certaines dissimilitudes, notamment sur les points suivants : • Parlay ne se limite pas à une utilisation de ses API par Java mais se veut indépendant du langage utilisé. • Parlay propose des APIs de services uniquement: contrairement à JAIN, Parlay ne dispose pas d’APIs pour communiquer directement avec les protocoles réseaux, car ce n’est pas là son but. • Un autre objectif majeur de Parlay est de fournir un environnement dans lequel des acteurs tiers (third parties) puissent écrire des applications s’exécutant en dehors de l’espace de confiance (trusted space) du fournisseur de services, via différents mécanismes de sécurités intégrés à Parlay. Conclusion : La technologie JAIN a un potentiel immense. Elle bouleverse complètement le marché des télécommunications en permettant un accès direct au développement de services par tous les acteurs de télécommunications dans le monde indépendamment des systèmes. Avec le principe adopté par la communauté JAIN qui supprime les différences entre réseaux et qui apporte la sécurité, il n’existe plus que deux limites à la création de services. La première est physique, c’est la taille du réseau mondial, la seconde est l’imagination. A ce stade, la première partie est achevée. On va par la suite passer à la partie la plus valorisante du rapport : l’étape d’analyse, de conception et de réalisation du projet. -22- Partie II Partie II : Analyse, Conception et Réalisation -23- Analyse des Besoins Chapitre 3 Analyse des besoins Introduction : Comme tout processus de réalisation d’un projet, on va commencer par la première phase qui est l’analyse. En effet, elle consiste à présenter, dans un premier lieu, le cahier des charges, ensuite l’identification des besoins, pour en tirer à la fin les diagrammes correspondants tels que les diagrammes des cas d’utilisation et le diagramme d’activité. I. Identification des besoins : Au cours de ce projet, on se propose de mettre en place une plate-forme de messagerie instantanée utilisant JAIN. Parmi les traitements possibles cette plate-forme doit effectuer des actions spécifiques lorsqu’un appel est initié ou bien mettre à jour les informations du centre d’appel. Notre travail consiste à développer un prototype de service de messagerie instantanée utilisant JAIN. Pour ce faire, on a déjà signalé que notre étude sera basée essentiellement sur la dernière version des spécifications JAIN SLEE 1.0. En outre, on a décidé que notre prototype traitera du SIP vue que c’est un protocole d’avenir qui se caractérise par sa rapidité et sa simplicité. Par rapport à ça, on se retrouve face aux besoins suivants : (1). Il faut tout d’abord développer un adaptateur de ressource SIP qui permet de passer du monde protocolaire à base des messages SIP au monde événementiel qui caractérise la JSLEE. Ceci permet au développeur de service de bénéficier par la suite d’une abstraction de la couche de signalisation SIP. Seulement, il faut comme même tenir compte des types d’événements qui vont encapsuler les messages SIP. (2). Par référence à l’architecture SIP, on doit développer les services suivants : Un service Proxy qui va s’occuper de relayer la signalisation des appels. Un service Registrar qui fait associer un utilisateur à un identifiant unique connu par les tierces personnes. Un service de présence et de messagerie instantanée pour gérer les informations en présence des différents utilisateurs déjà inscrits dans le Registrar et pour acheminer leurs messages. -24- Analyse des Besoins On doit rappeler que ces services vont être hébergés par la JSLEE. On doit donc les développer selon le modèle événementiel en tenant compte du type d’événement qui vont être générés par l’adaptateur de ressource. (3). On se propose de développer un client de messagerie instantanée pour valider les services. Ce client doit permettre à un utilisateur donné de s’inscrire auprès du Registrar. Comme s’il aura une adresse logique qu’il peut la communiquer à tout le monde. En plus, ce client permet essentiellement d’ouvrir une session de chatting avec un autre utilisateur qui doit être déjà inscrit. II. Modèles des besoins : D’après la partie précédente, on peut distinguer trois centres d’intérêts dans ce projet. Chacun d’entre eux demande une analyse détaillée à part. Dés lors, on a décidé d’étudier au fur et à mesure chaque composant tout seul. II.1. Acteurs : Un acteur est une catégorie d’utilisateurs, il représente un rôle joué par une personne, un logiciel, un matériel, un automate qui exploite les données du système et qui interagit avec. II.2. Les diagrammes de cas d’utilisation : Un cas d’utilisation modélise un service rendu par le système. Il exprime les interactions acteurs/systèmes et apporte une valeur ajoutée à l’acteur concerné, un cas d’utilisation est donc une abstraction d’une partie du comportement du système. II.2.1. L’adaptateur de ressource : Dans ce cas il y a deux types d’acteurs : Les ressources du réseau et les SBBs. Les composantes du réseau envoient à l’adaptateur de ressource des requêtes encapsulées dans des messages SIP. Alors que les SBBs envoient des requêtes sous forme d’événements. Mapping entre message SIP et Evénement inclut Création d'une AC Network Resource SBBs Figure 3.1 : Diagramme de cas d’utilisation de SIPRA II.2.2. Les services : Dans cette partie, les différents cas d’utilisation identifiés sont : • L’acheminement des messages de signalisation. • Association de l’utilisateur à un identifiant unique. • Transfert des IM. -25- Analyse des Besoins • Notification des changements des états des autres utilisateurs. Ainsi le diagramme de cas d’utilisation déduit est le suivant : Acheminier les messages de signalisation Association à un identifiant unique User Transfert des IM inclut Notification des changements des états des autres utilisateurs Collecte des informations de présence Figure 3.2 : Diagramme de cas d’utilisation des services II.2.3. Le client de messagerie instantanée : Le client de messagerie instantanée permet à son utilisateur de s’enregistrer auprès d’un service Registrar. Puis Il demander d’initier une session de chatting avec un autre utilisateur, luimême doit être déjà présent. Ainsi le diagramme de cas d’utilisation déduit est le suivant : User Enregistrement inclut Ouvrir une session de IM inclut Authentification Ajouter un contact Se déconnecter Figure 3.3 : Diagramme de cas d’utilisation de SUP Messenger II.3. Modèle de l’interface homme machine de SUP Messenger : Ce modèle est applicable seulement pour le client de messagerie instantanée « SUP Messenger ». En fait, tous les composants qui restent vont être déployés à travers des commandes dos. -26- Analyse des Besoins Interface d’authentification Interface d’ajout de contact Interface d’envoi et de réception des IM Figure 3.4 : Modèle de l’interface homme machine du SUP Messenger II.4. Les diagrammes d’activités : Les diagrammes d'activité sont utilisés pour montrer la façon dont les traitements sont créés, comment ils démarrent, les nombreux chemins décisionnels qu'ils peuvent emprunter, ainsi que les opérations effectuées en parallèle. Un diagramme d'activité ne modélise pas en général l’exact comportement interne d'un programme (comme le fait le diagramme de séquences) mais montre plutôt les traitements et les étapes généraux à un haut niveau d'abstraction. II.4.1. L’adaptateur de ressource : Ecouter les messages SIP Recevoir un message Scruter les champs du message SI la méthode est connue Ignorer le message Non Oui Créer une activité Figure 3.5 : Diagramme d’activité de SIPRA -27- Analyse des Besoins II.4.2. Les services : Recevoir une demande d’enregistrement Enregistrer l’utilisateur et lui associer un identifiant Emettre un acquittement Recevoir une demande d’initiation d’une session d’IM Vérifier la présence du correspondant Non Oui Mettre à jour les informations de présence Envoyer une notification à la source et ouvrir une session d’IM Acheminer les messages de la conversation Figure 3.6 : Diagramme d’activité des services -28- Analyse des Besoins II.4.3. Le client de messagerie instantanée : Figure 3.7 : Diagramme d’activité de SUP Messenger Conclusion : A ce stade, l’analyse des besoins est achevée, et comme les différents cas d’utilisation ainsi que les activités sont extraites, la phase de conception dispose maintenant de la matière d’œuvre pour mener sa mission. -29- Conception Chapitre 4 Conception Introduction : La conception constitue la deuxième phase dans le processus de réalisation de notre projet. Elle permet de représenter les notions saillantes des différentes parties, et ainsi de formaliser les connaissances préliminaires de tous les composants, notamment par l’exploitation des diagrammes de classes. I. Conception générale : L’analyse des besoins, dans la section précédente, trace les grandes lignes de l’architecture de chaque composant du projet. En effet, six modules principaux sont envisagés et qui interagissent derrière l’interface Homme Machine du client de messagerie SUP Messenger. Les deux premiers modules représentent le cœur de SUP Messenger. En fait, on distingue un module qui permet de gérer les sessions de chatting appelé ‘’Messenger’’. Alors que le deuxième module a pour mission de collecter les informations de présence des différents utilisateurs et de notifier le client en cas de changements de leurs états. Les quatre modules restants doivent être déployés du côté du serveur d’application une fois il est actif. En premier lieu, chaque message envoyé par une ressource du réseau à la SLEE doit être adapté à l’environnement d’exécution du service en question. Autrement dit, il faut prévoir un module qui assure le passage du monde protocolaire à base des messages SIP au monde événementiel. Pour ce faire, on a déjà prévu un adaptateur de ressource qu’on a appelé SIPRA. Puis, les événements qui vont être générés par le SIPRA arrivent au niveau du routeur d’événements de la SLEE. Ce dernier va les acheminer au ‘’SBB root’’ du service Proxy qui décidera selon leurs types vers quel service faut il encore les envoyer. Dans notre cas, le client doit tout d’abord demander une connexion auprès du serveur de messagerie instantanée. Pour ce faire, le Proxy va relayer le client au niveau du serveur. Ensuite, il va demander du service Registrar de lui attribuer un identifiant unique qui lui permet d’être joignable le temps qu’il est connecté. Une fois que le client est identifié le Registrar donne la main au service de présence pour achever son enregistrement. En ce moment, le client peut initier une session de chatting. Il va donc se renseigner sur l’état de son correspondant (On line ou Off line) avant de lui envoyer un message. -30- Conception En conclusion, tous les modules qui constituent le noyau de l’application, sont présentés dans la figure ci-dessous : IHM Registrar Se connecter Presence Envoyer un IM SIPRA Afficher l’état Proxy Messenger Presence Utilisateur Figure 4.1 : Architecture générale du projet II. Conception détaillée : Selon la méthodologie UML suivie dans ce projet, la conception détaillée se base essentiellement sur la présentation statique par les diagrammes de classe et dynamique par le diagramme de séquence. II.1. Représentation statique : Un diagramme de classes représente la structure du système sous la forme de classes et de relations entre ces classes. Une classe est une description abstraite d’un ensemble d’objets ayant : - des propriétés similaires, - un comportement commun, - des relations communes avec d’autres objets, - des sémantiques communes. Les importantes relations pouvant exister entre les classes sont l’héritage, la composition et l’association. On peut regrouper ces classes en paquetages. Les paquetages sont des éléments d'organisation des modèles. Il permettent de : • Regrouper des éléments de modélisation, selon des critères purement logiques. • d'encapsuler des éléments de modélisation (ils possèdent une interface). • structurer un système en catégories (vue logique) et sous-systèmes (vue des composants). Donc les paquetages servent de "briques" de base dans la construction d'une architecture. Dans notre cas il’ y a trois parties indépendantes. Nous allons donc détailler chacune à part. -31- Conception II.1.1. Les diagrammes de paquetages : II.1.1.1. Diagramme de paquetages de SUP Messenger : On a déjà signalé dans la partie précédente que SUP Messenger se compose de deux modules qu’on a appelé respectivement Messenger et Presence. Chacun d’entre eux comporte un ensemble de classes résumées dans le tableau ci-dessous : Paquetages Messenger Classes Spécifications AlertInstantMessaging Génère les messages d’erreur AuthenticationProcess Gère la procédure d’authentification de l’utilisateur ChatFrame Représente la boîte de dialogue de l’utilisateur ChatSession Gère une session de chatting ChatSessionManager Gère plusieurs sessions de chatting InstantMessagingFrame Représente la première fenêtre de démarrage ListenerInstantMessaging Détecter la réception d’un message XMLParser Gère les différentes infos du client enregistré dans un fichier XML Presence IMAckProcessing Permet de traiter un acquittement IMByeProcessing Permet de traiter la demande fermeture d’une session IMMessageProcessing Permet de traiter la demande d’envoi d’un message IMNotifyProcessing Permet de traiter une notification IMRegisterProcessing Permet de traiter la demande d’enregistrement IMSubscribeProcessing Permet de traiter la demande d’inscription auprès du serveur de présence IMUserAgent C’est le cœur de l’application. PresenceManager Gère les informations de présence Presentity Fournit les informations de présence Subscriber Demande de notification des changements des informations de présence Tableau 4.1: Définition des paquetages et des classes de SUP Messenger uses sup.sip.Presence Sup.Sip.Messenger uses Figure 4.2 : Diagramme de paquetage de SUP Messenger -32- Conception II.1.1.2. Diagramme de paquetages de SIPRA : L’adaptateur de ressource est composé d’un seul paquetage appelé SIPRA. Il comporte les classes suivantes : Classes Spécifications ActivityContextInterfaceFactoryImp Implémente l’interface ActivityContextInterfaceFactory SipRaActivityHandle Acheminer les événements de l’activité à une interface unique AC SIPRaFactory SIPRaProvider Créer les transactions clients et serveurs et envoyer les requêtes et les réponses SipResourceAdaptor Assure le mapping SIP Message et événement SIP. SipRaStack Gère les Listing Point côté réseau ainsi que le SipRaProvider Interfaces Spécifications ResourceAdaptorSbbInterface Permet aux composantes SBB d’interagir avec le SIPRA ActivityContextInterfaceFactory Fournit l’interface Java du SIPRA avec l’Activité Tableau 4.2: Définition des classes de SIPRA II.1.1.3. Diagramme de paquetages des services : Paquetages Proxy Classes Spécifications ProxySbb Définit les différents types d’événements SIP supportés par ce service ainsi que leurs traitements SipProxySbb Gère les transactions client et serveur ProxySbbActivityContextInterface Fournit l’interface Java de l’objet ProxySbb Registrar LocationService Gère les informations de localisation du client LocationServiceException Traite les exceptions possibles au moment d’exécution Registrar Définit le processus d’enregistrement du client RegistrarSbb Définit les différents types d’événements SIP supportés par ce service ainsi que leurs traitements -33- Conception RegistrarActivityContextInterface Fournit l’interface Java de l’objet RegistrarSbb Presence PresenceSbb Définit les différents types d’événements SIP supportés par ce service ainsi que leurs traitements PresentityManager Gère les informations de présence des clients Subscriber Envoi des demandes de notification pour tout changement d’état des informations de présence Notifier Gère les notifications PresenceActivityContextInterface Fournit l’interface Java PresenceSbb Tableau 4.3: Définition des classes des différents paquetages des services uses Proxy uses Registrar Presence Figure 4.3 : Diagramme de paquetage des services II.1.2. Les diagrammes de classes : II.1.2.1. Diagramme de classes de SUP Messenger : -34- de l’objet -35- ChatSessionManager 1..1 n 1..1 XMLParser 1..1 1..1 1..1 AlertInstantMessaging n 1..1 ChatFrame InstantMessagingFrame Subscriber PresenceManager Presentity IMACKProcessing SUP.SIP.Messenger n AuthenticationProcess 1..1 1..1 IMUserAgent IMByeProcessing Figure 4.4 : Diagramme de classes de SUP Messenger ListenerInstantMessaging IMSubscribeProcessing IMRegisterProcessing IMNotifyProcessing IMMessageProcessing SUP.SIP.Presence n ChatSession Conception Conception II.1.2.2. Diagramme de classes de SIPRA : <<Interface>> ResourceAdaptorSbbInterface SipRaStack SIPRaFactory SIPRaProvider <<Interface>> ActivityContextInterfaceFactory SipResourceAdaptor ActivityContextInterfaceFactoryImpl Figure 4.5 : Diagramme de classes de SIPRA II.1.2.3. Diagramme de classes des services : ProxySBB 1..1 1..1 <<Interface>> ProxySbbActivityContextInterface SIPProxySBB Figure 4.6 : Diagramme de classes du Proxy -36- SipRAActivityHandle Conception RegistrarActivityContextInterface 1..1 1..1 LocationService RegistrarSBB 0..1 0..1 LocationServiceException 0..1 0..1 Registrar Figure 4.7 : Diagramme de classes du Registrar PresenceSBB 1..1 1..1 1..1 1..n Subscriber PresentityManager n <<Interface>> PresenceActivityContextInterface n n n Notifier Figure 4.8 : Diagramme de classes du Presence service II.2. Représentation dynamique : -37- Conception SIPRA User Agent1 Register SIP Message Proxy Registrar Presence User Agent2 Mapping to Register event Register Register 200 Ok 200 Ok Ack SIP Message Subscribe SIP Message Subscribe Subscribe 200 Ok 200 Ok Ack SIP Message Notify Notify Notify SIP Message Ack SIP Message 200 Ok 200 Ok Message SIP Message Message1 Message2 200 Ok 200 Ok Message SIP Message Ack SIP Message Ack SIP Message Figure 4.9 : Diagramme de séquence de tout le système Conclusion Ainsi la conception du projet est achevée et les différents modules architecturaux et fonctionnels sont bien définis pour être implémentés. Dès lors, la phase suivante sera l’implémentation de ces différents modules. -38- Réalisation et présentation Chapitre 5 Réalisation et présentation Introduction : L’implémentation constitue la dernière étape dans le processus de réalisation de ce projet. Pour cela, on présentera par la suite un scénario complet qui va parcourir toutes les étapes de la mise en place du serveur ainsi que le déploiement des différents composants. Mais tout d’abord, on va présenter notre atelier de travail. I. Atelier de travail : Notre atelier se compose d’un outil d’analyse et de conception « Rational Rose », un environnement de développement orienté objet « Java », un plugin pour le développement de service conforme aux spécifications de JAIN SLEE 1.0 et une plate-forme de VOIP libre certifié pour JSLEE 1.0. I.1. Rational Rose : Rational Rose est conçue pour fournir un ensemble complet d’outils de modélisation graphique, d’analyse et de conception dans le développement de logiciels basés sur les modèles UML (Unified Modeling Language), COM (Component Object Modeling), OMT (Object Modeling Technique) et Booch ("93method for visual modeling"). Rational Rose utilise la modélisation graphique pour raisonner sur des problèmes complexes en s’appuyant sur des modèles organisés. Un modèle facilite la compréhension du problème et permet de décrire les caractéristiques essentielles d’un système. On a profité des avantages majeurs de cet outil afin de bien modéliser notre projet qui est basé essentiellement sur le modèle orienté objet. I.2. Java : Le choix des bons outils de travail est une tâche critique sur laquelle repose le bon déroulement de l'étape de conception. Pour la réalisation de ce projet on était obligé d’utiliser la plate-forme de développement Java vue que JAIN n’est qu’une extension pour celle-ci. En outre, Ce choix est justifié par le fait que ce langage : • utilise le concept orienté objet et s'apprête parfaitement à notre cas. • permet la création d'interfaces graphiques sophistiquées (menus déroulants, boutons, cases à cocher,...) essentielles pour la conception de l'interface graphique de SUP_Messenger. • inclue le concept du modèle évènementiel. . -39- Réalisation et présentation • présente le grand avantage d'être portable sur plusieurs plates-formes (Windows, Linux,...). Tous ces avantages se conforment aux spécifications de JAIN qu’on a déjà présentées dans la première partie de ce rapport. I.3. Le plugin EclipSLEE : EclipSLEE est un environnement graphique de création de service pour le développement rapide des services à valeur ajoutée de JAIN SLEE. C'est un projet qui a été conduit par la communauté de Mobicents. I.4. Le serveur Mobicents : Mobicents est une application serveur basée sur un modèle événementiel de haute scalabilité et un modèle de composant très robuste. C’est la première et la seule plate-forme de VOIP libre qui a été certifiée pour SLEE 1.0. Mobicents complète J2EE et assure la convergence voix/vidéo/donné dans les réseaux de nouvelle génération. Elle va nous servir pour valider notre application. II. Scénario : Afin de mettre en évidence notre travail, on se propose, dans ce paragraphe, de présenter un scénario qui va présenter les différentes phases de déploiement de chaque composant. Etape 1 : Démarrer le serveur Ceci se fait par la commande suivante : run –c all –b 127.0.0.1 Figure 5.1 : Démarrage du serveur Etape 2 : Déployer l’adaptateur de ressource : Après avoir démarrer le serveur, on doit déployer le SIPRA par la commande : ant deploySIPRA -40- Réalisation et présentation Figure 5.2 : Déploiement du SIPRA Etape 3 : Déployer les services : Une fois le SIPRA est bien installé on doit déployer les services grâce à la commande : ant deplyservice Figure 5.3 : Déploiement des services Etape 4 : Démarrer le premier client : Figure 5.4 : Interface de démarrage du premier client -41- Réalisation et présentation Etape 5 : Se connecter au serveur : Figure 5.5 : Etat du client après la connexion Etape 6 : Faire de même pour l’autre client : Figure 5.6 : Interface de démarrage du deuxième client Etape 7: Initier une session de chatting de l’un à l’autre. Figure 5.7 : Initiation d’une session de chatting Etape 8: Spécifier l’adresse du correspondant : Figure 5.8 : Spécification de l’adresse du correspondant -42- Réalisation et présentation Etape 9 : Commencer la discussion : . Figure 5.9 : Aymen commence à envoyer le premier message Figure 5.10 : Mohamed reçoit le message de Aymen -43- Réalisation et présentation Conclusion : Ce chapitre a été consacré à l’implémentation des différents composants du projet. En outre, On a suivi les différentes étapes nécessaires pour faire fonctionner toute la chaîne SIP. En fin, il faut avouer que ce travail ne représente qu’un cas d’utilisation de la SLEE. En effet, cette nouvelle technologie présente un domaine très vaste pour le déploiement des services de future génération. -44- Conclusion Générale Conclusion Générale L’étude détaillée des notions de bases permettant d’aborder ce sujet a constitué la première étape à satisfaire. Aussi, a –t-on établi dans une seconde partie le modèle architectural d’implémentation de ce projet. L’analyse, la conception et la réalisation ont été les axes de travail adoptés lors de la dernière partie. Au terme de ce travail, on est de plus en plus conscient de la richesse du sujet et de ses perspectives d’extension. D’ailleurs, on n’a pas développé un service qui tient compte de la transmission de la voix tel que VOICE CHAT ou bien le cas des systèmes IVR. Dès lors, On projette de développer d’avantage cette nouvelle problématique dans nos futurs travaux. -45- Conclusion Générale Annexe A Le Protocoles SIP I. Histoire du protocole SIP : Le protocole SIP tel qu'il est connu est la réunion de deux protocoles s'inspirant des protocoles de gestion de vidéoconférence. D'un côté SIPv1, un mécanisme pour mettre en place des communications point à point ou multicast. Ce protocole reposait sur des échanges de message en mode texte. Son concept prédominant était l'enregistrement auprès de serveurs de conférence. De l'autre côté, le protocole SCIP (Simple Conference Invitation Protocol) avait le même but mais se basait sur le protocole HTTP (Hyper Text Transfert Protocol) reprenant notamment les codes de réponse. L'identification des utilisateurs se faisait grâce à des adresses e-mails dans le but de leur fournir un identifiant unique quelque soit le mode de communication choisi. Le RFC2543 premièrement établi a été rendu obsolète par le RFC3261 publié en Juin 2002. II. Architecture de SIP : Les éléments de base autour de SIP sont peu nombreux. L'entité avec laquelle l'utilisateur interagit est appelée le client. Il peut être soit matériel soit logiciel. Un client matériel est appelé un hard phone, il ressemble à un téléphone classique mais embarque une pile SIP. Un client logiciel est un soft phone, il émule sur un ordinateur les fonctions d'un téléphone. Les autres éléments sont des serveurs qui forment ce que l'on appelle une plateforme de signalisation. Serveur Registrar : Cet équipement associe un utilisateur à un identifiant unique connu par les tierces personnes. Un utilisateur doit s'enregistrer pour être visible comme décrit à la figure A.1. Figure A.1. Principe de l'enregistrement -46- Conclusion Générale Serveur Location : Cet équipement est une table de correspondance entre une adresse symbolique et une adresse physique. Un utilisateur s'inscrit auprès du Registrar en lui spécifiant une adresse physique. C'est cette adresse physique qui va être enregistrée face à l'identifiant de l'utilisateur. Serveur Proxy SIP : Le Proxy s'occupe de relayer la signalisation des appels, il agit à la fois comme un client et un serveur puisqu'il émet et reçoit des requêtes. Le comportement d'un serveur Proxy est illustré par la figure A.2 Figure A.2. Fonctionnement du serveur Proxy Serveur Redirect : Le redirect permet de rediriger certains appelants vers d'autres serveurs. Ainsi, les clients concernés s'adresseront directement à ces serveurs les fois suivantes, comme on peut le voir à la figure. Figure A.3.Fonctionnement du serveur Outre l'utilisation d'un serveur comme Proxy ou redirect, une distinction importante à faire entre les serveurs est s'ils gèrent des états ou non. Sans gestion des états, le serveur traite chaque message arrivant comme nouveau, il est indépendant du précèdent et aucune trace des messages -47- Conclusion Générale n'est gardée. Dans ce cas, les réponses ne peuvent être associées aux requêtes. L'autre solution, peut-être plus intéressante en termes de programmation, est beaucoup plus lourde puisqu'on ne considère plus chaque message indépendamment mais comme faisant partie d'une transaction. Ainsi, il faut garder trace de chaque message afin de savoir dans quel état on se trouve. Le problème avec cette alternative est que la gestion des états consomme beaucoup de ressources : mémoire notamment. Elle est donc difficilement applicable dans les installations de très grande envergure comme les opérateurs. III. Messages SIP : Le protocole SIP repose sur le même modèle de transactions que HTTP à base de requêtes/réponses. Ces transactions consistent en un échange de messages, dont vous pouvez voir un exemple à la figure A.4 qui sont constitués de différents en-têtes spécifiant l'appelant, l'appelée, le sujet de l'appel et la route empruntée pour la délivrance de ce message. Chaque transaction est constituée d'une requête qui invoque une méthode particulière sur le serveur et d'au moins une réponse. Il existe six méthodes dans le noyau SIP qui sont décrites par la figure A.5. REGISTER sip:borabora.enseirb.fr SIP/2.0 Via: SIP/2.0/UDP 147.210.177.88:5060;rport;branch=z9hG4bK16C8CB9433A5 From: Laurent BURGy <sip:[email protected]>;tag=3341381679 To: Laurent BURGy <sip:[email protected]> Contact: "Laurent BURGy" <sip:[email protected]:5060> Call-ID: [email protected] CSeq: 44319 REGISTER Expires: 1800 Max-Forwards: 70 User-Agent: X-Lite release 1103a Content-Length: 0 Figure A.4.Exemple de message SIP Figure A.5.Les six méthodes du noyau SIP -48- Conclusion Générale Les réponses reprennent les codes définis dans la norme HTTP. Les codes sont constitués de trois chapitres dont le premier caractérise la classe de réponse. Les réponses 1XX sont des réponses provisoires ou informationnelles. Les réponses 2xx, 4XX, 5XX et 6XX sont des réponses finales. La classe 2xx indique un succès. Les classes 4xx, 5xx, 6xx indiquent des erreurs soit du client, soit du serveur ou un échec global. La classe 3xx est un peu à part puisqu'elle indique une redirection temporaire ou définitive. Le protocole SIP peut également être étendu, ce qui consiste à ajouter des en-têtes ou des codes de réponse. Un exemple d'extension est SIMPLE. SIMPLE apporte le support de la messagerie instantanée à SIP. Cette extension est notamment utilisée dans Windows Messenger. Elle ajoute principalement une méthode pour s'enregistrer auprès d'un serveur à des événements particuliers. Ainsi, l'utilisateur peut être notifié de la connexion d'un de ses contacts. Le corps des messages est transporté grâce à une nouvelle méthode MESSAGE. IV. Comportements de clients et serveurs SIP : Le protocole SIP a été défini pour utiliser à la fois les protocoles de transport TCP et UDP. De plus il fournit son propre mécanisme pour fiabiliser les sessions. Fiabilisation des requêtes : Les serveurs reçoivent une ou plusieurs copies des requêtes et retransmettent la réponse appropriée. Après avoir reçu une requête CANCEL d’un client, un PS renvoie une requête CANCEL sur toutes les branches n'ayant pas encore reçu de réponse finale. Quand un UAS reçoit une requête, il compare le CALL-ID de cette requête à ceux des appels en cours : · Si le CALL-ID correspond à l’un d’eux, il compare alors le tag de l’URL TO de la requête avec celui de l’appel en cours et rejette la requête s'ils ne correspondent pas. L’UAS compare également le tag de l’URL FROM de la requête avec ceux des appels existant. S'il correspond à l’un d’enx, les Cseq sont alors comparés. Si le Cseq de la requête est inférieur ou égal à celui de l’appel courant, la requête est une retransmission, sinon, c’est une nouvelle requête. Dans ce cas, si le champ d’en-tête de la nouvelle requête ne correspond à aucun de ceux des appels existants, un nouvel appel est créé. · Si le CALL-ID ne correspond à aucun d’eux, un nouvel appel est créé. Fiabilisation des réponses : Avant d’envoyer une réponse finale, un serveur doit constamment envoyer des réponses provisoires. En effet, si un PS, RS, UAS ou RG ne peut pas répondre à une requête dans les 200 ms, il doit renvoyer une réponse provisoire (code1xx) dès que possible. Les réponses sont associées aux requêtes grâce aux en-têtes TO, FROM, CALL-ID, Cseq et le premier Via -49- Conclusion Générale d'en-tête. Elles doivent donner fin aux retransmissions des requêtes même si ces dernières possèdent un en-tête Via leur demandant d'acheminer les réponses jusqu'au client final. Il arrive qu’un PS reçoive une réponse ne le concernant pas (le PS n’a pas enregistré de requête y correspondant). Si le champ d’en-tête Via indique que le prochain serveur auquel sera transmis la réponse utilise TCP, alors le PS contacté ouvre une connexion TCP à cette adresse. Ainsi, les PS doivent se préparer à recevoir des réponses aux entrées où sont ouvertes des connexions TCP passives, même lorsque beaucoup de réponses arrivent aux entrées où sont ouvertes des connexions TCP actives. Notons qu’une connexion TCP est dite active lorsqu’elle a été initialisée par un PS et passive lorsqu’elle est acceptée par un PS mais ouverte par une autre entité. Les réponses de code 100 ne doivent pas être retransmises alors que les autres réponses de code 1xx peuvent l’être après que le serveur a retransmis les réponses en cours. Les réponses de code 2xx sont retransmises en accord avec le champ d’en-tête Via et une fois qu’un PS a reçu une telle réponse, il ne doit pas retransmettre de réponse d’autres codes (1xx et 3xx à 6xx). Les réponses de code 3xx à 6xx sont retransmises par chaque PS jusqu’à ce que la prochain PS traversé jusqu'au client envoie un acquittement ACK ou un message d’annulation CANCEL. Un PS doit conserver l’état d’une transaction pendant au moins 32 secondes après réception de la première réponse définitive autre que la réponse OK (code 200) afin de pouvoir retransmettre cette réponse. Pour transporter des messages SIP, l’on a vu que les protocoles TCP et UDP (unicast et multicast) étaient utilisés. Les protocoles de transport ont besoin des adresses source et destination afin d’établir des connexions. Dans une même connexion, plusieurs sessions SIP peuvent être ouvertes. Cas de sessions unicast transportées par UDP : Les réponses sont retournées à l’adresse listée dans le champ d’en-tête Via et non à l’adresse source de la requête directement. Cas de sessions multicast transportées par UDP : Un client recevant une requête en multicast ne doit pas vérifier si l’identificateur de machine, contenu dans la requête URI, correspond avec son propre identificateur de machine mais doit renvoyer sa réponse en multicast aussitôt. Une telle réponse conserve alors le même temps de vie (ttl) que la requête, contenu dans le champ d’en-tête Via de cette dernière. Pour éviter toute inondation de réponses, un serveur ne doit pas envoyer de requête en multicast avec un code d’état autre que 2xx ou 6xx. De plus, le serveur retardera sa réponse d’une durée -50- Conclusion Générale aléatoire et uniformément distribuée entre 0 et 1 seconde. Enfin, il ne doit pas non plus répondre à des requêtes CANCEL. Cas de sessions transportées par TCP : Une simple connexion TCP peut transporter plusieurs transactions SIP. Une transaction contient aucune ou plusieurs réponses provisoires, suivies de une ou plusieurs réponses définitives. Le client maintient la connexion ouverte au moins jusqu’à ce que la première réponse définitive lui soit retournée. Si la connexion est fermée avant, elle sera traitée comme une requête CANCEL par le serveur. De même, le serveur ne devrait pas fermer une connexion TCP avant qu’il n’ait envoyé sa réponse finale, mais peut le faire s’il le souhaite. Cependant, c’est le client qui est responsable de la fermeture de la connexion. V. SIP face à ses concurrents : V.1. H.323 : La norme H323 est le principal concurrent de SIP pour la transmission de sons, données et vidéo en temps réel sur les réseaux IP. Normalisé depuis 1996, elle fait partie de la série H.32x qui traite de la vidéoconférence au travers des différents réseaux et concerne les réseaux LAN et Internet. Elle a été développée par l’IUT pour des réseaux ne garantissant pas une qualité de service, tandis que SIP est né de l’IETF. Le magazine 01Réseaux de décembre 1999 parle de l’affrontement entre le " mastodonte " H.323 contre le " sournois " SIP. L’avantage incontesté d’H.323 réside dans sa maturité, il existe en effet de nombreux produits (plus de 30) utilisant ce standard approuvé maintenant internationalement, adopté par de grandes entreprises telles Cisco, IBM, Intel, Microsoft, Netscape, etc. Si l'on considère les cinq principaux logiciels de visioconférence : Picturel 550 (adaptation de Netmeeting de Microsoft), Proshare 500 (adaptation de Netmeeting de Microsoft), Trinicon 500 plus (PC Conférence), Smartstation (adaptation de Netmeeting de Microsoft), Cruiser 150 (Meetingpoint 4.0), tous utilisent sur IP la norme H.323. La conséquence directe de la compatibilité de tous les logiciels de communication avec la norme H.323 est un niveau d’interopérabilité très élevé, grand point fort d'H.323. En effet, cela permet à plusieurs utilisateurs d'échanger des données audio et vidéo sans faire attention aux types de média qu'ils utilisent. Cette norme détermine quatre entités fonctionnant ensemble : le terminal la passerelle (gateway) le Multipoint Control Unit (MCU) le gatekeeper -51- Conclusion Générale Le terminal est la machine qui permet la communication : il peut être un PC multimédia ou bien un téléphone adapté à IP. La passerelle relie le réseau de voix sur IP et le réseau téléphonique commuté (RTC). La MCU gère les conférences en multicast (à plus de 3 utilisateurs). Et enfin le gatekeeper (garde barrière) combine des fonctions d'administration de la bande passante avec celles de PBX virtuels. Il établit la relation entre les alias des terminaux (adresse H.323 de l'utilisateur) et leur adresses IP. Comme pour SIP les adresses de type email sont possibles, ainsi que les numéros de téléphone. V.2. MEGACO : La convergence de la voix et des données conduit l'évolution d'une nouvelle génération de réseaux et crée l'opportunité d'un nouveau marché. HSS (Hughes Software Systems), par exemple, a développé une série de protocoles pour suivre la convergence des différentes technologies. MEGACO en est issu. Megaco peut être combiné avec Multiquick Voice (marque déposée par HSS) afin d'apporter une solution rapide de voix sur réseaux de paquets (IP) ou de mettre en place une passerelle avec les réseaux téléphoniques existant (RTC). Ce protocole gère l'interface entre le Media Gateway Controller (MGC, traîte la signalisation) et les Media Gateway (MG, convertit les signaux audio en paquets) définis par l'architecture H.323 adopté par l'IETF et l'ITU. Megaco est au centre des solutions d'intégration de voix sur IP et peut être intégré à des produits comme les commutateurs de centraux, les passerelles, les serveurs d'accès au réseau, les modems PABx…pour développer une solution de convergence de voix et de données. L'un de ses avantages est sa portabilité à travers les OS (Operating Systems) et les plateformes. En effet, les ports d'entrée sont standardisés pour les environnements suivant : Sun-Solaris, Windows NT et Vx Works. VI. Perspectives d’avenir de SIP : Il est évidant que H.323 est omniprésent dans la communication temps réel sur IP, lui offrant une grande interopérabilité. L’avenir du protocole SIP n’est pas très radieux. Pourtant les atouts de SIP sur ses concurrents sont réels et non négligeables. Premièrement, SIP se caractérise comme étant un protocole plus rapide. Tout d’abord la séparation entre ses champs d’en-tête et son corps du message facilite le traitement des messages et diminue leur temps de transition dans le réseau. De plus, le nombre des en-têtes est limité (36 au maximum et en pratique, moins d'une dizaine d'en-têtes sont utilisées simultanément), ce qui allège l'écriture et la lecture des requêtes et réponses. -52- Conclusion Générale Deuxièmement, SIP est un protocole indépendant de la couche transport : il peut aussi bien s’utiliser avec TCP que UDP. De plus, il sépare les flux de données de ceux la signalisation : en effet, une requête et sa réponse peuvent prendre deux chemins différents, ce qui rend plus souple l'évolution "en direct" d'une communication (arrivée d'un nouveau participant, changement de paramètres…). Enfin, la description de SIP est beaucoup plus simple que celle d'H.323 (153 pages de RFC contre 736), il est plus léger et donc plus facile à mettre en œuvre, sans être moins complet pour autant. C'est pour cela que la revue 01Réseaux de décembre 1999 se montre optimiste quant à l'avenir de SIP : " La rapidité des processus de standardisation de l’IETF fait qu’en septembre 1999 toute l’industrie rassemblée à Atlanta pour le salon VON (Voice over the Net) a employé des produits utilisant SIP consacrant ainsi la mort prochaine du "dinosaure" H.323 ". HSS dont nous avons parlé ci-dessus (c.f. Megaco) a développé une solution utilisant le protocole SIP : Protoquick SIP Stack et nous montre ainsi que SIP, même s'il n'est pas encore appliqué, a de l'avenir devant lui. VII. Problème de la mobilité et URI : Avec la téléphonie classique, nous appelions un lieu, le numéro de téléphone faisant office d'adresse pour un routage basique : la région, l'agglomération, le centre d'acheminement, la prise. Avec l'avènement du téléphone portable, le numéro n'indiquait plus un lieu mais un équipement. Malgré tout, nous ne sommes jamais sûrs de pouvoir réellement contacter la bonne personne. Aujourd'hui la téléphonie sur IP tend à faire exploser le nombre des équipements pouvant jouer le rôle d'un téléphone. Ainsi, il ne sera pas rare de disposer de trois ou quatre équipements que l'on pourra enregistrer pour recevoir des appels. Il devient de plus en plus difficile de contacter une personne puisqu'on ne sait pas quel équipement est apte à recevoir l'appel. La solution est l'utilisation d'URIs, Uniform Resource Indicator, qui ont le même format que des adresses emails. Elles contiennent principalement un nom d'utilisateur et un nom de domaine. Quand il s'enregistre auprès du serveur Registrar, l'utilisateur spécifie l'adresse IP de l'équipement sur lequel il est connecté. L'URI de l'utilisateur est ensuite associée à cet adresse IP et il est seulement connu de l'extérieur par cet URI. -53- Conclusion Générale Annexe B La messagerie instantanée I. Histoire de la messagerie : Les hommes cherchent à communiquer depuis longtemps, mais ils n'ont pas toujours été aussi efficaces qu'aujourd'hui. En 1800, envoyer un message de Londres à Calcutta prenait deux ans. On écrivait une lettre et la confiait à un bateau à voiles, qui naviguait le long des côtes occidentales de l'Europe, de l'Afrique, passait le cap de Bonne Espérance, remontait le long des côtes orientales de l'Afrique, puis à travers l'océan Indien... avec probablement des arrêts dans presque tous les ports. En 1914, envoyer le même message prenait un mois. Le canal de Suez était désormais ouvert et les bateaux à vapeur traversaient la mer Méditerranée pour atteindre la mer Rouge, grande innovation. Dans les années 80, FedEx et autres étaient capables de transmettre le même message en deux jours par avion. Au début des années 90, quand Internet a été ouvert à l'utilisation commerciale, l'utilisation de l'email s'est généralisée, avec un temps de transport de l'ordre de 10 minutes, dépendant du nombre et de l'engorgement des de serveurs intermédiaires (vérifications anti-spam et anti-virus) et de la fréquence avec laquelle vous relevez votre boîte aux lettres. Puis la messagerie instantanée apparut. Elle apporta : • la vitesse : chaque message passait de Londres à Calcutta en quelques dixièmes de secondes (et presque toujours en moins d'une seconde) • le statut : on peut savoir quand la personne avec qui on veut parler est en ligne, et si elle est en face de son ordinateur ou s'est absentée. • la discussion en temps réel : on peut discuter en temps réel avec son interlocuteur, quasiment comme dans une conversation téléphonique. II. Présentation du service d’IM : Les services de messagerie instantanée combinent l'accès à un service permettant d'envoyer et de recevoir des messages instantanément et l'accès à une liste de contacts référencés par l'utilisateur, dont la disponibilité est précisée par les outils d'accès au service. On distingue plusieurs types de services. -54- Conclusion Générale II.1. Les services de messagerie fixe : Ce sont les services les plus nombreux. Ils sont en général accessibles à travers des logiciels spécifiques, appelés clients, qui sont en général accessibles gratuitement. Après enregistrement des utilisateurs, ces logiciels leur permettent d'échanger des messages, le plus souvent texte, en temps réel. Les grands noms du secteur sont MSN, avec son client MSN Messenger, AOL, avec AOL Instant Messaging, Yahoo!, avec Yahoo! Messenger. II.2. Les services de messagerie mobile : Ces services, encore rares, constituent un champ d'expérimentation encore réel pour la plupart des opérateurs de services mobiles à ce jour. Etant peu diffusés, ces services reposent sur les mêmes caractéristiques fonctionnelles que les services fixes. Toutefois, dans le cas des mobiles, les messages envoyés et/ou les messages reçus sont facturés aux utilisateurs, de même que dans certains cas l'accès au service. Dans ce domaine, le fournisseur d'infrastructures, d'accès, de services est bien souvent le même. En effet, dans bien des cas, ces trois rôles sont tenus par l'"opérateur mobile". Ces services pourraient être mis en oeuvre en intégrant différentes solutions techniques: • En utilisant l'envoi et la réception de SMS ou de MMS à partir d'un client logiciel présent sur le terminal de l'abonné, • En utilisant l'envoi de trames XML (XMPP), au dessus d'une session TCP/IP en mode GPRS (chaque trame, ou message, pouvant en ce cas être facturé) • En utilisant des sessions SIP sur IP, également mises en place au dessus d'une session GPRS (dans ce cas, chaque trame sera facturée également). III. Architecture du service d’IM : La messagerie instantanée requiert l'emploi d'un logiciel client qui se connecte à un serveur de messagerie instantanée. Elle diffère du courrier électronique du fait que les conversations se déroulent instantanément (quasiment en temps réel, les contraintes temporelles n'étant pas fortes dans ces systèmes). Conformément à la RFC 2778 la plupart des services modernes offrent un système de notification de présence, indiquant si les individus de la liste de contacts sont simultanément en ligne et leur disponibilité pour discuter. Ce qui veut dire que les nouveaux systèmes de messagerie instantanée supportent deux services détaillés ci-dessous : -55- Conclusion Générale III.1. Le service de présence : Ce service est composé de deux types de clients qui peuvent êtres combinés lors de leur implémentation mais qu’on va les traiter séparément. Le premier type de client s’appelle « PRESENTITY ». Il fournit les informations de présences « PRESENCE INFORMATION » au service afin d’être sauvegardées et distribuées. Alors que l’autre type de client est appelé « WATCHER ». Celui-ci reçoit les informations de présences de la part du service de différentes manières qui dépendent de son type. En fait, il y a deux types de « WATCHER » : • Les FETCHER qui demandent simplement les informations de présences présente dans le PRESENTITY. • Les SUBSCRIBER qui demandent du service les notifications concernant tout changement des informations de présences. PRESENCE SERVICE PRESENTITY WATCHER Figure B.1. Architecture du service de présence III.2. Le service de messagerie instantanée : De même le service de messagerie a deux types de client comme il est présenté par la figure cidessous : • Les SENDER qui fournissent les messages au service afin de les envoyés. • Les INSTANT INBOX qui reçoivent les messages captés par le service. INSTANT MESSAGING SENDER INSTANT INBOX Figure B.2. Architecture du service de messagerie instantanée -56- Conclusion Générale Bibliographie Articles [1] D. Tait, J. de Keijzer, and R. Goedman,“ JAIN: A NewApproach to Services in Communication Networks ”, IEEE Communications Magazine 2000. [2] R. Bhat e R.Gupta , “ JAIN Protocol APIs ” , IEEE Communications Magazine, January 2000 . [3] C. Harris, “ JAIN SIP Release 1.0 Specification”, Sun Microsystems 2001. [4] G. De Marco, P. Asprino, A. Fresa, M. Longo, ’’ Developing new generation network services’’ [5] M. Day Lotus and J. Rosenberg Dynamicsoft, H. Sugano Fujitsu, la RFC 2778, ‘’A Model for Presence and Instant Messaging’’, February 2000, [6] Sun Microsystems, “The JAIN APIs” [7] Tao Sun and William D. Tucker, ‘’A SoftBridge with Carrier Grade Reliability Using JAIN SLEE’’ [8] S. B. Lim and D Ferry, “JAIN SLEE 1.0 Specification, final release“, Sun Microsystems, Inc. and Open Cloud Limited March 2004 [9] J. Rosenberg, H. Schulzrinne, G. Camarillo, A. Johnston, J. Peterson, R. Sparks, M. Handley, E. Schooler, la RFC 3261 ’’ SIP: Session Initiation Protocol’’, June 2002 [10] Schweizer Laurent, ‘’ Script et APIs pour la gestion des serveurs SIP’’, June 2002 [11] Swee Boon Lim and David Ferry, ‘’JAIN SLEE 1.0 Specification, Proposed final draft 1’’, June 2004. [12] Swee Lim, Phelim O’Doherty, David Ferry and David Page, ’’ JAIN JAIN™ SLEE Tutorial’’ [13] Phelim O'Doherty and Mudumbai Ranganathan, ’’JAINTM SIP API Specification’’ Sites Internet http://www.jcp.org/ http://www.dev-java.net/ http://www.jainslee.org http://java.sun.com/products/jain/article_slee_principles.html http://java.sun.com/products/jain/JAIN-SLEE-Tutorial.pdf http://www.chez.com/jaaayyy/html/ProjetSIP/ -57-