Home

Réseaux de Services Avancés

image

Contents

1. g xC p qeCc Cette contrainte assure l existence d une composition close En prenant en compte I optimisation nous pouvons ajouter une fonction objectif optimiser sous les contraintes pr c dentes Soient c gt Q le co t d une instance de module 4 c gt 0 le co t d une copie d un port P amp 20 le co t d une copie d un port q c gt 0 le co t d une connexion d une copie p une copie q Ainsi la fonction objectif sera de la forme suivante Cozior 3 Pan Ee qe Pout telles que X z w sont des vecteurs associ s aux variables x yi Zi Wp q Le probl me lin aire obtenue est le suivant A H min f Z W lt les contraintes 1 2 3 4 IT Xi Yi Zi Wp q 21 3 8 Algorithme du probl me MC L algorithme pour r soudre le probl me MC comporte trois tapes 1 tape une Ecrire dans un fichier qui d crit le probl me MC les modules disponibles qu on souhaite composer et ainsi que le module cible qu on veut obtenir Cr er ou d finir le programme lin aire appropri On essaye de trouver la solution au probl me lin aire d fini pr c demment S il n y a pas de solution au probl me lin aire alors le probl me MC ne peut pas tre r solu Sinon passer l tape suivante 2 tape deux Poss dant une solution au probl me d optimisation pr c dent r cup rer les valeurs de variables x y Z Wp q proc der cr er des instances de modules
2. Un programme qui va prendre en entr e le r sultat de l op ration pr c dente doit appeler l outil ext rieur pour r soudre le probl me lin aire La solution sera stock e dans un autre fichier qui a l extension out ce fichier ressemble au suivant figure 3 10 17 e d A deux modules sont compatibles s ils s changent de services qui se matchent 29 Cette solution sert par la suite pour cr er les instances de modules les ports et les connexions Value of objective function 669 yl 16 yJ 16 zI 16 zJ 16 zP 8 zQ 9 WLI 16 WII 16 x_ml 4 x_m2 4 x_m3 3 Figure 3 10 Solution du programme lin aire 3 10 7 Module composite En se basant sur la solution du probl me lin aire et selon l tape trois de l algorithme d fini ci dessus un programme doit lire le fichier issu de la pr c dente phase et il effectue les op rations suivantes pour chaque variable x g n rer un nombre d instances gale la valeur indiqu e dans le fichier figure 3 10 Pour chaque variable y instancier un nombre de ports import s comme indiqu dans le fichier lu de la m me fa on cr er les ports de sortie export s par chaque instance en fin relie les ports export s avec les ports import s En fin ce composant doit fournir les interfaces import es et export es et qui sont d finies par un second fichier en entr e et fournies par le composant cit pr c demment Dans l exemple pr c
3. impl mentation de I architecture pr c dente cette impl mentation suit les tapes cit es ci dessous une grammaire sert a d finir le fichier de d part dans lequel on pr cise les modules disponibles 4 composer et le module cible Un fichier de composition doit prendre avec pr cision la forme d une grammaire dont la structure est donn e au paragraphe suivant voir figure 3 6 formul e avant d entamer le traitement un programme prend ce fichier de composition et le transforme en un programme lin aire lui aussi et son tour appelle un programme pour d finir la relation de compatibilit entre modules de d parts Le Solver r sout le probleme lin aire le r sultat est stock dans un autre fichier Le g n rateur va nous g n rer le code du module cible qui doit appeler un programme qui lui fournira des informations pr cises du module cible Dans le sch ma les rectangle sont des programmes les ellipses sont des fichiers et les fl ches repr sentent le flux d informations chang es entres ces programmes L impl mentation va suivre cette logique en va commencer cette cha ne qui sert nous d finir un langage sp cifique nos besoins 3 10 1 La Grammaire Le fichier d entr e sert d crire le probl me de composition r aliser Sa structure n cessite la d finition d une grammaire qui doit tre respect e pour chaque probl me MC Cette grammaire est la suivante constitue pour nous un langage
4. 28 min 6 ZJ 971 5x mi 4yI 27P 7 x_m2 8 yJ 2zQ 9x_m3 8 WLI 0 WII zJ lt 9 x_ml zJ dx ml zI lt 5 x_ml zI gt ix ml x_ml lt 6 ml gt 2 yl lt 7 x_m2 yl gt 4 x_m2 ZP lt 5 x_ m2 zP gt 2 x m2 x_m2 lt 5 x_m2 gt 4 yJ lt 7 x_m3 yJ gt 5 x_m3 ZQ lt 4 x_m3 zQ gt 3 x_m3 x_m3 lt 3 x_m3 gt 1 yl WL I yJ WJ_J zI WL I zJ WJ_J int x_m1 zJ zI x_m2 yl zP x_m3 yJ zQ WI_I WJ_J Figure 3 9 Programme lin aire 3 10 5 Relation de compatibilit Dans le programme lin aire pr c dent on peut remarquer facilement deux variables w qui pr sentent le nombre et le type de connexions Ces deux variables sont le r sultat d un programme qui va lire le fichier d entr e et constitue des ensembles un pour les ports d entr e et l autre pour les ports de sortie En d finissant la relation de compatibilit ce programme peut indiquer quel port d entr e peut tre connect quel port de sortie Et pour chaque connexion possible en aura une variable w indice le port entr e et port de sortie Dans notre exemple deux ports sont compatibles s ils sont du m me type c est dire s ils sont identiques ils ont les m me noms de m mes types Dans ce cas la relation de compatibilit repr sente l intersection des deux ensembles Et chaque l ment de cet ensemble on doit g n rer une variable w 3 10 6 R solution du programme lin aire
5. e pour se pr parer au sujet illustration des modules qu on veut utiliser dans nos programmes les op rations qui nous permettent d utiliser ces modules la conception des modules et son impl mentation et son interaction avec le mode ext rieur Apr s une d finition du probl me de composition de modules est donn e une formalisation du probl me est jug e importante et n cessaire elle repr sente notre th orie utilis e L algorithme qu on va utiliser et qui est divis en trois tapes est illustr dans le paragraphe suivant L architecture et son impl mentation sont mentionn es un diagramme de cette impl mentation est fourni Une grammaire du langage d entr e est donn e et qui permet surtout de pr ciser comment cette solution sera utilis e Un exemple d utilisation permet de mettre en vidence chaque tape de d veloppement et de clarifier le sujet Ce chapitre sera ferm par la g n ration de code du module composite Dans le troisi me chapitre on va donner un exemple d utilisation concret c est l exemple d une composition de deux modules un module repr sentant une camera digitale qui exporte des images l autre c est un module repr sentant une imprimante qui va les imprimer En fin la conclusion et les perspectives de ce rapport seront cit es dans le dernier chapitre Chapitre 2 La Technologie JINI 2 1 Introduction 7 Jini est un syst me orient service 1 2 3 les services so
6. elle d finie des r gles qu on doit respecter au moment de l criture du probl me de composition et les mots en majuscule pour exprimer Composition Module Input Output Ce langage peut r pondre nos probl mes de composition l objectif crucial de ce langage est d viter toute ambigu t et d exprimer d une mani re claire tout probl me de composition et elle permet un meilleur traitement par la suite dans les prochaine tapes 24 composition COMPOSITION comp_name definition definition INPUT modules_ent module_sort modules_ent modules_in modules_in modules_in MODULE module_name imp_exp mod_def E imp_exp EXPORTE interface L M cost imp_exp IMPORTE interface L M cost imp_exp E module_def d CONSTRAINTS L M cout cout COST cost module_sort OUTPUT module_name import_export import_export EXPORTE interface import_export IMPORTE interface import_export END 4 module_name n String comp_name String cost L M _ Integer interface String Figure 3 6 Grammaire du fichier d entr e 25 3 10 2 Exemple Dans cet exemple nous volons montrer la structure du fichier de composition Supposons qu on a trois modules disponibles comme indiqu dans la figure suivante figure 3 7 A Le module M1 est un module qu exporte deux services d finis par leurs interfaces I et J mais n
7. formalisation du probl me de composition Le travail r aliser consiste mettre en uvre une cha ne automatique pour composer de modules cette cha ne a en entr e une sp cification de modules disponibles et nous retourne en sortie une impl mentation Jini du module composite En termine ce rapport par un exemple illustratif 1 5 Plan Pour arriver notre objectif cit au dessus on va subdiviser ce rapport on trois chapitres Dans ce paragraphe on les citera bri vement Dans le chapitre deux on va aborder la technologie utilis e Jini Ce chapitre commence par une petite introduction qui va nous permettre d avoir une id e tr s simple sur cette technologie Puis dans le deuxi me point on parlera de la plate forme de cette technologie et au troisi me 5 point on discutera de son mod le de programmation bail v nements et transactions Dans le quatri me point on aborde en d tail l utilisation de cette technologie en particulier les trois processus n cessaires pour utiliser correctement cette architecture processus de d couverte processus d adh sion et processus de recherche On finira ce chapitre par le mode d emploi structure de client et de serveur ainsi qu un exemple d utilisation est donn pour mettre en vidence le mode de fonctionnement de la technologie Le deuxi me chapitre aborde le probl me de composition on va y entamer notre sujet D abord une introduction est donn
8. il aura ce repr sentant la fin de l tape de d couverte Puis il cr er l item de son service et utilise le repr sentant du LUS pour enregistrer le service Il reste apr s cette tapes de renouveler p riodiquement le bail sinon il peut l annuler Le code suivant illustre ces tapes Pseudo code Serveur D but Pr paration pour la d couverte D couvrir un LUS Cr er un item pour le service Enregistrer le service Renouveler p riodiquement le bail Fin Figure 2 6 Pseudo code Serveur 2 8 Exemple Afin d illustrer les structures du Client et du Serveur nous pr sentons dans cette section un exemple d utilisation Il s agit d un programme Jini qui fournit un service Claculator d fini par une interface Java qui limite les op rations que le client peut les appeler Une classe proxy qui est l impl mentation cette interface doit tre serializable le serveur localise un LUS 7 D Si Le code complet de cet exemple est donn dans l annexe A ici c est seulement juste pour donner une id e 8 Z SES Proxy est un repr sentant de service envoyer aux clients 14 et y installe une copie de cette proxy en d finissant une Item Une fois la proxy est pr sente dans le LUS le client peut la r cup rer en d finissant une requ te Template e interface public interface Calculator public double add double x double y public int add int x int y public double subtract do
9. imports new ServiceTemplate null Entry new Name Camera odule mod_Camera_2 Module Camera_2 service Serviceltem Camera_3 imports new ServiceTemplate null Entry new Name Camera Module mod_Camera_3 Module Camera_3 service Serviceltem Camera_4 imports new ServiceTemplate null Entry new Name Camera odule mod_Camera_4 Module Camera_4 service Les instances de Modules Serviceltem Printer_l imports new ServiceTemplate null Entry new Name Printer odule mod_Printer_1 odule Printer_l service Serviceltem Printer 2 imports new ServiceTemplate null Entry new Name Printer Module mod Printer _ 2 Module Printer 2 servicer Serviceltem Printer _ 3 imports new ServiceTemplate null Entry new Name Printer odule mod_Printer_3 odule Printer 2 servicer Serviceltem Printer 4 imports new ServiceTemplate null Entry new Name Printer odule mod Printer A odule Printer _4 service Le Connections Random ranCamera new Random zCamera ranCamera nextInt zCamera length 1 imports yCamera ranCamera nextInt yCamera length 1 zCamera ranCamera nextInt zCamera length 1 imports yCamera ranCamera nextInt yCamera length 1 37 nut nut nut nul nu nu nu nu L new L new L new l new Ll new l new 11 new 11 new zCamera imports yCamera zCamera imports yCamera zCamera
10. op ration permettent au module d changer des services avec le monde ext rieur il envoie des services par l op ration d exportation et r cup re des services par l op ration d importation Voici le code complet de cette ce module import jini module import common entry Cost import net jini core lookup Serviceltem import net jini core lookup ServiceTemplate import net jini core entry Entry import java io Serializable import net jini lookup entry Name import java io File public class Camera_Impl extends Module implements Camera Serializable public File GetImage File f new File cavalo jpg return f public Camera_Impl exports new Serviceltem null this new Entry new Name Camera public static void main String args new Camera_Impl try Thread currentThread sleep 10 1000L catch java lang InterruptedException exc 34 4 3 Imprimante Comme avec l appareil num rique le module qui repr sente l imprimante est tr s similaire Une interface publique qui d finie le service exporter par le module est donn e ci dessous elle comporte essentiellement une m thode publique qui permet d imprimer un document ou une image Comme indiqu cette m thode re oit comme argument un fichier et elle n a pas d argument de retour import java io File import java rmi RemoteException public interface Printer public void print File f throws RemoteExce
11. Importation Exportation ServicelDListener ServiceDiscoveryListener ServiceltemFilter public static Serviceltem items public Module public void exports Serviceltem item System setSecurityManager new java rmi RMISecurityManager LookupDiscoveryManager ldmgr null JoinManager jmgr null LeaseRenewalManager leaseMgr LeaseRenewalManager try ldmgr new LookupDiscoveryManager LookupDiscovery ALL_GROUPS null null jmgr new JoinManager item service item attributeSets this ldmgr leaseMgr catch Exception exc public Serviceltem imports ServiceTemplate template System setSecurityManager new java rmi RMISecurityManager ServiceDiscoveryManager sdmgr null LookupDiscoveryManager ldmgr null LookupCache cache null try ldmgr new LookupDiscoveryManager LookupDiscovery ALL_GROUPS null null sdmgr new ServiceDiscoveryManager ldmegr new LeaseRenewalManager cache sdmgr createLookupCache template this this catch Exception exc items cache lookup this 10 return cache lookup this public void servicelDNotify ServicelD id System out printin Un service export id toString public void serviceAdded ServiceDiscoveryEvent evt System out printin Un nouveau service evt getPostEventServiceltem service toString public void serviceRemoved ServiceDiscoveryEvent evt System out printin Un service suprim evt getPreEventServiceltem service toStrin
12. Module Composition University of California http gureni cs uiuc edu grosu download mod pdf 14 Bhaskaran Raman Sharad Agarwal Yan Chen The SAHARA Model for Service Composition Across Multiple Providers http www cs berkeley edu jshih Publications Pervasive02 pdf 15 Nikola Milanovic Vladimir Stantchev Jan Richling Miroslaw Malek Towards adaptive amp Composable Services http www informatik hu berlin de milanovi services pdf 16 Nikola Milanovic Vladimir Stantchev and Miroslaw Malek Definition of contracts for Service Composition http www informatik hu berlin de milanovi cdl pdf 17 Matthias Werner Jan Richlin Nikola Milanovic Vladimir Stantchev Composability Concepts for Dependable Embedded Systems http www informatik hu berlin de milanovi composability_concept pdf 18 Patrick Thomas Eugster Dynamic proxies for classes http icwww epfl ch publications documents IC_TECH_REPORT_200317 pdf 19 Emre K c man and Armando Fox Separation of Concerns in Networked Service Composition 15th March 2001 www stanford edu emrek pubs wascse01 ps 20 Bhaskaran Raman Randy H Katz An architecture for Highly Available Wide Area Service Composition http www cse iitk ac in bhaskar berkeley ccj ccj pdf 21 Toyotaro Suzumura Satoshi Matsuoka Hidemoto Nakada A Jini based Computing Portal System http www sc2001 org papers pap pap200 pdf 22 Ken Arnold The Jini Architecture Dynamic Services ina Flexible Network http
13. Serviceltem item_l imports new ServiceTemplate null Class Printer class null this exports item_1 new public static void main String new Module_Result try args Thread currentThread sleep 10000L catch java lang InterruptedException exc 38 Chapitre 5 CONCLUSION amp PERSPECTIVES 5 1 Conclusion Le travail r alis dans ce m moire suit les tapes logiques qu on a cit es dans les chapitres pr c dents la premi re tape est la d finition d un probl me de composition qui est divis en deux parties une partie consacr e aux modules disponibles ou de d part dans l autre partie on d fini le module cible le probl me est a d finir dans un fichier dont la structure est d finie par une grammaire On essaye a partir de ce probl me d en d duire un programme lin aire comme il est indiqu dans la formalisation du probl me Ce probl me lin aire est stocker dans un fichier ce probl me est a r soudre par un outil ext rieur qui va nous retourner la solution optimale du programme lin aire Un autre programme va prendre cette solution pour cr er le module composite qui est demand en entr e ce module composite est d fini par son code complet Toutes ces tapes constituent une cha ne compl te elles permettent d arriver une composition optimale et r pond aux besoins du client D apr s ce qu on a dit on peut en tirer comme conclusion les points
14. en importe aucun le module M2 importe un service d fini par I et exporte un autre service d fini par P le module M3 importe le service d fini par J et exporte celui d fini par Q A partir de ces module de d part nous souhaitons avoir et d une mani re automatique un autre module comme il est d fini dans la figure 3 7 B l I P J Q M1 gt M2 FI M3 J Figure 3 7 A Modules de d parts I P P gt 0 I MI J f Q gt M3 h Figure 3 7 B Module Cible Possible Le module cible qui doit fournir deux services la fois a une structure interne similaire indiqu e la figure 3 7 B mais cette derni re n est pas connue l avance par le client Cette structure en g n rale n est pas unique et peut prendre plusieurs compositions diff rentes Elle donn titre indicatif 26 3 10 3 Fichier d entr e Le fichier suivant illustre une structure possible de fichier de composition il respecte exactement la grammaire pr c dente Il est divis en deux parties une dite d entr e comporte la d finition de modules de d part et qui sont disponibles avant l op ration de composition Chaque module de d part a un nom qui permet de le distinguer des autres un certain nombre de ports d entr e et de sortie chaque port repr sente une interface l utilisateur peut imposer ces conditions en donnant le nombre de copies qu on peut utiliser pour chaque port qui est limit par une intervalle chaque copie
15. entre le syst me et les utilisateurs du syst me on peut consid rer un LUS comme un r positoire qui permet l enregistrement et la localisation de services Le service est un objet qui impl mente une interface le client ne peut appeler qui les m thodes d finies dans l interface que l on peut consid rer comme un contrat entre eux Dans la prochaine section on parlera en d taille des trois op rations n cessaires Le sch ma suivant nous indique la structure de la technologie Jini qui est fond e sur Java et RMI Elle fournit un mod le de programmation qui comporte bail Laising Ev nements distribu s Distributed Events et Transactions Une infrastructure compos e de processus de d couverte Discovery et d un processus de recherche Lookup 3 RMI Remote Methode Invocation c est la version Java de RPC 8 JavaSpace Services Jini Transaction Manager Discovery Infrastructure Security Lookup Leasing Mod le de programmation Distributed Events Transactions Java RMI Java VM Table 2 1 Structure du Jini 2 3 Mod le de programmation e Bail Il permet de g rer la dur e de vie des objets distribu s en tendant la notion de ramasse miettes aux environnements distribu s Chaque bail est n goci entre l utilisateur et le fournisseur de service Les baux sont exclusifs ou non exclusifs Les baux exclusifs assurent qu un seul utilisateur la fois peut utiliser la ressource tan
16. imports yCamera zCamera imports yCamera zCamera imports yCamera zCamera imports yCamera zCamera imports yCamera zCamera imports yCamera zCamera imports yCamera zCamera imports yCamera zCamera imports yCamera zCamera imports yCamera zCamera imports yCamera zCamera imports yCamera ranCamera nextInt zCamera 1 ngth ranCamera nextInt yCamera length ranCamera nextInt zCamera 1 ngth ranCamera nextInt yCamera length ranCamera nextInt zCamera 1 ngth ranCamera nextInt yCamera length ranCamera nextInt zCamera 1 ngth ranCamera nextInt yCamera length ranCamera nextInt ranCamera nextInt ranCamera nextInt ranCamera nextInt ranCamera nextInt ranCamera nextInt ranCamera nextInt ranCamera nextInt ranCamera nextInt ranCamera nextInt ranCamera nextInt zCamera length yCamera length ranCamera nextInt zCamera length yCamera length ranCamera nextInt zCamera length yCamera length ranCamera nextInt zCamera length yCamera length ranCamera nextInt zCamera length yCamera length ranCamera nextInt zCamera length yCamera length ranCamera nextInt zCamera length yCamera length ranCamera nextInt zCamera length yCamera length ranCamera nextInt zCamera length yCamera length ranCamera nextInt zCamera length yCamera length Exportations amp Importations
17. www sigda org Archives ProceedingArchives Dac Dac99 papers 1999 dac99 pdffil es 09_3 pdf 23 Kevin Bowers Kevin Mills and Scott Rose Self Adaptive Leasing for Jini http www 2 cs cmu edu kbowers bowersO3adaptive pdf 24 Jan Newmarch and Robin Kirk A Service Architecture for Scalable Distributed Audio http jan netcomp monash edu au publications scalable_audio pdf 25 Jim Waldo The Jini Architecture http www cse ttu edu tw cheng courses Java e717 pdf 26 ANDREAS SPECK ELKE PULVERMULLER Component Composition Validation 46 http matwbn icm edu pl ksiazki amc amc12 amc1253 pdf 27 Gregor G ossler and Joseph Sifakis Composition for Component Based Modeling http www verimag imag fr sifakis fmco02 pd 28 Larry Rudolph Review of the Ninja Architecture http www org lcs mit edu 6 964 ninja pdf 29 Marco Zennaro Jeff Ko Raja Sengupta and Stavros Tripakis service network architecture for a multivehicle search mission http www verimag imag fr tripakis papers svnets cdcO1 pdf 30 Vladimir Tosic David Mennie Bernard Pagurek Dynamic Service Composition and Its Applicability toE Business Software Systems The ICARIS Experience http www sce carleton ca netmanage papers TosicEtAIWOOBSO1SV pdf 31 Chakraborty D Chen H Service Discovery in the Future for Mobile Commerce ACM Crossroads Vol 7 Issue 2 Winter 2000 18 24 On line at http www acm org crossroads xrds7 2 service html 32 Rekesh John UPnP Jini
18. CalculatorClient private static final long WAITFOR 15 60 1000L public static void main String argv new CalculatorClient try Thread currentThread sleep 2 WAITFOR catch java lang InterruptedException e public CalculatorClient ServiceDiscoveryManager sdmgr null System setSecurityManager new RMISecurityManager LookupDiscoveryManager Idmgr null try Idmgr new LookupDiscoveryManager LookupDiscovery ALL_GROUPS null null sdmgr new ServiceDiscoveryManager ldmgr new LeaseRenewalManager catch Exception e Class classes new Class common Calculator class Entry entries null ServiceTemplate template new ServiceTemplate null classes entries Serviceltem item null try item sdmgr lookup template null WAITFOR catch Exception e if item null System out printIn aucun service System exit 1 if item service null System out printIn service null System exit 1 checkUI item private void checkUI Serviceltem item Entry attributes item attributeSets for int m 0 m lt attributes length m Entry attr attributes m if attr instanceof UIDescriptor checkForAWTFrame item UIDescriptor attr private void checkForA WTFrame Serviceltem item UlDescriptor desc Set attributes desc attributes Iterator iter attributes iterator while iter hasNext Object obj iter next if obj ins
19. LUS lookup client service b R cup ration du Registrar 12 lookup client service c Appel pour le Service lookup client service d r cup ration de service Figure 2 4 Processus de Recherche 2 7 Structures du Client amp Service On pr sente dans cette section les pseudo codes du client et du serveur la prochaine section illustrera par un exemple la structure du client et du service Les codes peuvent tre vari s mais d une mani re g n rale sont similaires aux structures suivantes donn es comme pseudo code Un client avant de r cup rer un repr sentant du LUS et comme il est cit plus haut doit effectuer une premi re tape appel e tape de d couverte permettant au client d avoir le moyen de communiquer avec le service de recherche et de r cup rer son repr sentant Puis une fois que le client poss de le repr sentant il peut lancer la recherche en fournissant une template le r sultat de cette tape est la r ception d une copie du service et il ne reste au client qu appeler ses m thodes Le pseudo code suivant illustre ces tapes 13 pseudo code Client D but Pr paration pour la d couverte D couvrir un LUS Pr paration d une template pour la recherche La recherche d un service Appel du service Fin Figure 2 5 Pseudo code client De sa part le serveur ne peut pas enregistrer ses services qu apr s la r cup ration du repr sentant du LUS
20. LUS les services sont organis s dans des groupes un groupe est connue par une chaine de caract res le groupe publique prend une chaine de caract res vide tous les LUS sont dans les groupes publiques 2 5 Processus d adh sion Un service qui veut s enregistrer aupr s du LUS doit suivre les tapes ci dessous 1 Le fournisseur de services envoie une requ te pour localiser un ou plusieurs LUS 2 Le LUS r pond par l envoi d un registrar 3 Le fournisseur de services faite une copie de l objet service et l envoie au LUS Les figures suivantes illustrent ce processus lookup service service provider service a Localisation d un LUS lookup service service provider service object b R cup ration du Registrar service provider object c Envoie du Service Figure 2 3 Processus d adh sion 2 6 Processus de Recherche 11 Les clients peuvent localiser les services en suivant les tapes suivantes 1 Un client qui veut acc der un service envoie une ou plusieurs requ tes au LUS 2 Les LUS qui sont en attente de requ tes en coutant un port d fini peuvent envoyer leur repr sentant au client 3 Le client utilise ce repr sentant pour demander le service 4 Le LUS envoie une copie du service au client Les figures suivantes illustrent ce processus processus de recherche lookup client service a Localisation d un
21. ServiceTemplate null new Class Camera class null yCamera 12 new ServiceTemplate null new Class Camera class null yCamera 13 new ServiceTemplate null new Class Camera class null yCamera 14 new ServiceTemplate null new Class Camera class null yCamera 15 new ServiceTemplate null new Class Camera class null Les Ports de srotie Serviceltem zPrinter new ServicelItem 8 zPrinter 0 imports new ServiceTemplate null new Class Printer class null zPrinter 1 imports new ServiceTemplate null new Class Printer class null zPrinter 2 imports new ServiceTemplate null new Class Printer class null zPrinter 3 imports new ServiceTemplate null new Class Printer class null zPrinter 4 imports new ServiceTemplate null new Class Printer class null zPrinter 5 imports new ServiceTemplate null new Class Printer class null zPrinter 6 imports new ServiceTemplate null new Class Printer class null zPrinter 7 imports new ServiceTemplate null new Class Printer class null Les Ports de srotie ServiceItem zCamera new ServicelItem 16 36 zCamera 0 imports new ServiceTemplate null new Class Cam
22. Universit Joseph Fourier Rapport de Master 2R Math matiques et Informatique Sp cialit Syst mes et Logiciels R seaux de Services Avanc s BEKHIEKH MOHAMMED Encadr par Stavros TRIPAKIS amp Sergio YOVINE Laboratoire d accueil Verimag Table des Mati res Chapitre EE 2 INTRODUCTION Se nc oo 3 1 1 iere e UU ut E 3 1 2 Leet nee E 4 1 3 Traya x en FAPPORT si seasessbevsassssaceebeadisaatalacscdedssvessvesse igi cdea snasdenesaiaadsactont eeeesadsandees 4 1 4 stunge e EE 5 1 5 NEE 5 LEEN CELA E E 7 La Technologi JINI sisi egiatungetegtereug esendergeeek SEENEN EES REES Reder 7 2 1 dese e le et EE 7 2 2 rie Eau 8 2 3 Mod le de programmation 9 24 Processus de d couverte oats seacccccdscecansnetcnes edads cca inndceeetadadsdcecensansiediecatdacecaasnsssadeatences 10 2 5 Processus d adh sion 11 2 6 Processus de Recherche ist coeds snschesassasecciaasandccesscccdaccaaanavdcsasceseccadasaaesaanceaaces 11 2 7 Structures du Client amp Service 13 Ch pitr 3 nina enceinte menu ennemie 16 Ees Moduleeeosg egkesb en Seege a o nee E idee 16 3 1 deele e ee EE 16 3 2 LES OD TATONS E 16 3 3 Les MOQUI S site cdesaas eve ccadsceicasasteaecadads ets candascedusaedcccennavsia eve ghia cadeas emi ee este 17 3 4 L int raction avec LUS 7 s cscs ssceccssciassiesncd cnaceseassnaennceacabdendtassedncesavendeide asiana 17 3 5 Exemple d utilisation sisie ciemos enaren davededasanacsteesedearounaterresoneee
23. a zCamera gt 2 x_Camera x_Camera lt 6 x_Camera gt 2 yCamera lt 7 x_ Printer yCamera gt 4 x_ Printer zPrinter lt 5 x_Printer zPrinter gt 2 x_Printer x_Printer lt 5 x_Printer gt 4 yCamera WCamera_Camera zCamera WCamera_Camera int x_Camera zCamera x_Printer yCamera zPrinter WCamera_Camera Figure 4 2 A Probl me de compositio B Programme lin aire 8 Cet exemple est inspir de 15 16 33 Value of objective function 384 yCamera 16 WCamera_Camera 16 zPrinter 8 x_Camera 4 zCamera 16 x_Printer 4 C Solution du P lin aire 4 2 appareil num rique Le module qui repr sente l appareil num rique est une classe qui h rite de la classe Module Cette classe impl mente l interface publique Camera cette interface d finit le service exporter par le module elle h rite l interface Remote elle comporte une seule m thode d clar e publique qui permet de r cup rer l image Car cette m thode est appel e d une mani re loign e une RemoteException est n cessaire voici le code de son code import java io File import java rmi RemoteException import java rmi Remote public interface Camera extends Remote public File GetImage throws RemoteException Cette interface sera impl ment e par une classe Camera_Impl qui impl mente aussi Serializable elle h rite deux op rations de la classe Module importe et exporte Ces deux
24. alcFrame item Calculator cFrame setBounds 20 20 300 300 cFrame setTitle Calculator cFrame setVisible true o Package service package service import ui CalcFrame import ui frameFactory import java rmi RMISecurityManager import net jini lookup JoinManager 41 import net jini core lookup ServicelD import net jini discovery LookupDiscovery import net jini core lookup ServiceRegistrar import java rmi RemoteException import net jini lookup ServicelDListener import net jini lease LeaseRenewalManager import net jini discovery LookupDiscoveryManager import net jini discovery DiscoveryEvent import net jini discovery DiscoveryListener import net jini core entry Entry import net jini lookup ui MainUT import net jini lookup ui factory Frame Factory import net jini lookup entry UIDescriptor import net jini lookup ui attribute UIFactoryTypes import java rmi MarshalledObject import java io IOException import java util Set import java util HashSet public class CalculatorServer implements ServicelDListener public static void main String argv new CalculatorServer Object keepAlive new Object synchronized keepAlive try keepAlive wait catch InterruptedException e public CalculatorServer System setSecurityManager new RMISecurityManager JoinManager joinMgr null Set typeNames new HashSet typeNames add FrameFactory TYPE_NAME Set at
25. and Salutation A look at some popular coordination framework for future network devices Technical Report California Software Lab 1999 http www cswl com whiteppr tech upnp html 33 Mennie David Pagurek Bernard An Architecture to Support Dynamic Composition of Service Components Presented at WCOP 2000 Sophia Antipolis France June 2000 On line at http www doc ic ac uk hf1 phd papers toread mennieOOarchitecture pdf 34 John McKim Dynamic Composition Using Jini and JavaSpaces October 19 1999 http www jini org meetings second jcm2_dynamic_softw_mitre pdf 35 Frank Sommers Survival of the fittest Jini services Part 1 09 21 2001 http www javaworld com javaworld jw 04 2001 jw 0413 jiniology html WEBOGRAPHIE 1 http www sun com jini 2 http www jini org 3 http java sun com products jdk rmi 4 http java sun com products jdk rmi 5 http www cswl com whiteppr tutorials jini html 6 http www artima com jini index html 7 http www kedwards com jini 8 http www cdegroot com cgi bin jini 9 http www javaworld com javaworld topicalindex jw ti jiniology html 10 http pandonia canberra edu au java jini tutorial Jini xml 11 http www cs auc dk illum jini 12 http members tripod com gsraj jini chapter 13 http www cs wustl edu mobilab Publications Papers 2004 14 http www javaworld com javaworld jw 04 2001 jw 0413 jiniology html 47
26. angage de d finition de services et de composition de modules 40 Annexe A Cet annexe est une pr sentation d taill e du code pr sent dans le chapitre deux il comporte quatre package common ui service et client o Le package common contient l interface Calculator ackage common import java awt Frame import java rmi public interface Calculator public double add double x double y public int add int x int y public double subtract double x double y public int subtract int x int y public double multiply double x double y public int multiply int x int y public double divide double x double y o Le package ui contient l impl mentation de l interface graphique import common Calculator import net jini lookup ui MainUT import net jini core lookup Serviceltem import java awt event import java awt public class CalcFrame extends Frame implements Calculator ActionListener KeyListener MainUI Nes bouttons de l intaerface public CalcFrame Serviceltem item String name super name this item item initializeUl initializeEventListeners setVisible false public CalcFrame private void initializeUI inisialisation des buttons de l interface private void initializeEventListeners ajoute de l couteur d v nements impl mentation de l interface Calculator public static void main String args Serviceltem item null CalcFrame cFrame new C
27. de ports et de connections en suivant la proc dure qui suit cr er x instances de Ai pout tout port d entr e de Ai il y aura en total y copies de p pour toutes les instances de Ai pout tout port de sortie de Ai il y aura en total z copies de q pour toutes les instances de Ai Assigner chaque instance ses copies d entr e et de sortie 3 tape trois On construit le module cible comme suit Initialement tous les ports sont d connect s partir d une copie quelconque d un port d entr e p et faire une connexion avec un n importe quelle copie libre d un port de sortie q r p ter a jusqu ce que tous les ports sont connect s 3 9 Architecture des programmes L algorithme pr c dent nous fournit la solution du probl me MC Dans cette section on va d crire une impl mentation de cet algorithme qui nous permettra de cr er un nouveau modules partir d autres qui sont d j disponibles Cette impl mentation est d crite par le sch ma suivant il pr sente les diff rents composants que nous devons utiliser et les donn es chang es entre eux En t te du diagramme on trouve un fichier qui d crit le probl me MC r aliser Un programme 22 prend en entr e ce fichier et qui envoie un autre programme deux fichiers repr sentent les deux ensembles Pin et Pout Pin est l ensemble des ports d entr e et Pout est l ensemble des ports de sortie Ce programme a partir d une d finition cla
28. de service est assur e par une op ration d exportation et la consommation est assur e par une op ration d importation L op ration de composition consiste prendre en entr e au moins deux modules et nous retourner s ils sont composables un seul module composite Ainsi m me si un service n est pas offert par un seul module il peut tre r alis par composition des services de plusieurs modules Le module composite peut avoir toutes ou une partie des fonctionnalit s de tous les modules de d part comme il peut engendrer de nouveaux fonctionnalit s Ces fonctionnalit s repr sentent son m tier c est ce qu il est visible de son ext rieur et nous voulons cacher les d tails de r alisation Deux modules sont dit composables si l un des services export s par l un est import par l autre L objective est de tester parmi les modules disponibles ceux qui sont composables et d une mani re automatique engendrer un nouveau module composite fournissant de nouveaux services ou il fourni l ensemble des services de d parts Les services export s par le module composite sont des services distribu s c est dire la composition doit se faire sans perte de distribution La composition doit tre implicite automatique intelligente 1 3 Travaux en rapport Beaucoup de travaux ont abord le sujet de composition que ce soit en orient objet orient composant ou en orient service on cite entre au
29. dent figure 3 7 le module compos exporte P et Q donc ce programme fait appel un autre pour r cup rer l information n cessaire et g n rer le code ad quat En se basant sur cette solution en aura une structure similaire a celle pr sent e dans la figure 3 11 30 Figure 3 11 Module composite 3 10 8 G n ration de code Le module composite illustr par le sch ma ci dessus peut tre g n r r comme suit e Instance de module une instance est cr e par le fragment de code suivant Serviceltem m2_3 imports new ServiceTemplate null null new Entry new Name m2 Module mod_m2_3 Module m2_3 service e Port d entr e un port est cr e par un fragment de code qui est similaire au suivant le nombre de copies de ce port gale yI comme dans la solution du probl me lin aire yl 16 ServiceTemplate yI new ServiceTemplate 16 yI 0 new ServiceTemplate null new Class I class null yI 1 new ServiceTemplate null new Class I class null yI 2 new ServiceTemplate null new Class I class null yI 3 new ServiceTemplate null new Class I class null yI 4 new ServiceTemplate null new Class I class null yI 5 new ServiceTemplate null new Class I class null yI 6 new ServiceTemplate null new Class I class null e Port de sortie prendra la forme du code suivant le nombre de copie de p
30. dis que les baux non exclusifs permettent aux utilisateurs multiples de partager une ressource Un syst me de bail a les caract ristiques suivantes o Il fourni une simple m thode bas e sur le temps pour I allocation et la r servation de ressources o Il fourni d une mani re uniforme une m thode pour renouveler ou annuler le bail o Il permet d utiliser ce bail d une mani re claire et vidente e Les transactions Il s agit d une mani re de regrouper un ensemble d op rations impliquant plusieurs entit s clients ou services afin d assurer un certain degr d atomicit dans l ex cution de ces op rations selon le principe du tout ou rien Une transaction enveloppe une s rie d op rations d un simple service ou de plusieurs services Une transaction doit respecter les trois propri t s dites ACID suivantes o Atomicit toutes les op rations group es dans une transaction terminent toutes avec succ s ou toutes chou es o Consistance une transaction doit pr server le syst me dans un tat consistant o Isolation un participant dans une transaction ne peut voir que les tats interm diaires entre les transactions o Durabilit les r sultats d une transaction doivent tre persistants de m me que l entit sur laquelle la transaction a t commit e e Les v nements distribu s Etendent la notion d v nement Java aux environnements distribu s l objectif est de permettr
31. donn dans les lignes suivantes package jini module public interface Exportation public void exports Serviceltem item throw java rmi RemoteException package module jini public interface Importation public Serviceltem imports ServiceTemplate template throw java rmi RemoteException 1 La grande partie de ce chapitre est tir e de 8 H Inspir de 8 Automated Module Composition 16 Ces deux op rations nous permettent d envoyer et de r cup rer de service de et vers le service de recherche et ce quelque soit sa localisation Un module qui appelle l op ration d exportation doit fournir en param tre un service item qui sera enregistr aupr s de service de recherche LUS cette op ration ne lui retournera rien Le module appelant l op ration d importation doit fournir comme param tre une template qui d finit sa requ te et r cup re l item du service demand 3 3 Les modules Un module est l impl mentation des interfaces Importation et Exportation qui sont cit es ci dessus Par cons quent toute classe qui h rite de cette classe peut utiliser directement ces les op rations importe et exporte Elle permettent sans avoir recours crire une dizaine de lignes de code envoyer et r cup rer le service Ile suffit au module d impl menter son interface m tier avec Serializable et utilise les op rations d importation et d exportation s il a besoin En br
32. e un objet dans une JVM d inscrire pour recevoir de notification sur l occurrence d un v nement sur un objet dans autre JVM Dans un tel syst me il y a deux parties o Un couteur loign qui a la possibilit d inscrire son int r t pour un certain type d v nements aupr s de g n rateur d v nement o Un g n rateur loign qui envoie un v nement loign pour indiquer l apparition de l v nement 2 4 Processus de d couverte Un fournisseur de service resp client doit localiser un LUS avant d enregistrer resp de r cup rer un service Il existe deux types de d couverte le premier est unicast on peut l utiliser quand la localisation du LUS est connue le Registrar est r cup r directement Alors le second est multicast on l utilise dans le cas o la localisation du LUS est inconnue nous devons diffuser une requ te de recherche en maintenant en tat d coute des r ponses On a trois protocoles de d couvertes o Le protocole multicast utilis par les entit s qui souhaitent d couvrir un LUS o Le protocole d annoncement permet au LUS d annoncer leurs pr sence o Le protocole unicast permet aux entit s de communiquer avec un LUS sp cifi Unicast une seule requ te est envoy e au LUS 5 Un Registrar est le repr sentant du LUS r cup r par le Client et le Serveur Multicast une requ te est diffus e tous les LUS 10 Dans un
33. ef tout module est une classe qui a la capacit d utiliser les op ration d importe et Exportation d exporte La figure suivante illustre ce qui pr c de Importation Void Exporte Item Importe Figure 3 1 Diagramme de classe 3 4 L interaction avec LUS On a vu dans le chapitre pr c dent qu un LUS est un r positoire de services les clients et les serveurs doivent tre capables de communiquer avec lui Dans notre travail on veut utiliser des modules d finies dans la pr c dente section nous souhaitons que l interaction avec le LUS soit plus claire et vidente et ne n cessite pas beaucoup de code Un module est un objet qui 7 Le Code complet de la classe Module est donn en annexe B il comporte l impl mentation des interfaces Importation et Exportation 17 consomme et produit de services il a deux ports un port d entr e qui lui permet l importation de services et port de sortie lui permet l exportation de services le module M pr sent dans la figure suivante importe le service S1 par son port d entr e et fournit un service S2 par son port de sortie Il n y a aucune restriction sur le nombre de services import s ou export s en effet un module peut appeler les op rations importe et exporte autant qu il veut Un service import ou export est log aupr s du LUS imports exports Figure 3 2 Interaction du module avec LUS Nos classes h riten
34. ement C est un r positoire qui sert enregistrer des services il agit comme un interm diaire entre le programme Client et le programme Serveur Un serveur qui a besoin de publier un service doit localiser un LUS en proc dant une tape de recherche Une fois la localisation du LUS est connue le Serveur envoie l objet repr sentant le service Puis le client qui conna t l interface peut effectuer une recherche de service pour r cup rer cet objet ce moment le client peut utiliser le service et selon le type de service publi il va appeler des m thodes locales ou loign es Donc une architecture Jini nous offre principalement trois op rations d couverte adh sion et recherche La premi re op ration nous permet d entamer un processus de d couverte pour localiser un LUS il y a deux types de d couverte une d couverte unicast utilis e si la localisation du LUS est connue d avance l autre est multicast utilis e dans le cas contraire La seconde op ration nous permet de proc der l enregistrement de service aupr s du LUS un identificateur unique est ajout au service qui permet de le distinguer des autres le serveur doit r cup rer le bail lease Un bail est la dur e de vie du service il nous permettra par la suite de renouveler ou d annuler le service La troisi me op ration permet aux clients de lancer un processus de recherche de service le client envoie au LUS une requ te pr cisa
35. er le probl me de composition de modules comme un programme lin aire Soit M Ay Ap Ayo ensemble de modules types Le programme lin aire contient les variables et les contraintes suivantes e x 1 0 n repr sente le nombre d instances pour chacun de modules 4 soit N 4 4 u Pour toute x on a la contrainte suivante SX lt u 1 Si u alors la contrainte pr c dente devient lt x e y dans Pin repr sente le nombre total de copies d un port d entr e p d un module 4 soit fa A P a 6 Chaque instance de A peut contribuer par a jusqu 6 copies de p Nous avons pour chaque p la contrainte suivante xa SE 2 Si 6 alors la contrainte pr c dente devient a lt y 5 Une relation de compatibilit de services est n cessaire pour la composition de deux modules 16 MC Module Composition voir 8 pour de plus amples informations 20 e z q dans Qou repr sente le nombre total de copies d un port de sortie q d un module 4 soit f A q a 6 Toute instance de A peut contribuer a jusqu 6 copies de q Nous avons pour chaque q la contrainte suivante x zo x bo 3 Si alors la contrainte pr c dente devient a lt z e wre p q dans C La relation de compatibilit repr sente le nombre de connections entre une copie p et une copie q Nous accompagnons wr avec les variables y et zo les contraintes suivantes y gt Wp q z 3 Wp q 4
36. era class null zCamera 1 imports new ServiceTemplate null new Class Camera class null zCamera 2 imports new ServiceTemplate null new Class Camera class null zCamera 3 imports new ServiceTemplate null new Class Camera class null zCamera 4 imports new ServiceTemplate null new Class Camera class null zCamera 5 imports new ServiceTemplate null new Class Camera class null zCamera 6 imports new ServiceTemplate null new Class Camera class null zCamera 7 imports new ServiceTemplate null new Class Camera class null zCamera 8 imports new ServiceTemplate null new Class Camera class null zCamera 9 imports new ServiceTemplate null new Class Camera class null zCamera 10 imports new ServiceTemplate null new Class Camera class null zCamera 1l imports new ServiceTemplate null new Class Camera class null zCamera 12 imports new ServiceTemplate null new Class Camera class null zCamera 13 imports new ServiceTemplate null new Class Camera class null zCamera 14 imports new ServiceTemplate null new Class Camera class null zCamera 15 imports new ServiceTemplate null new Class Camera class null Les instances de Modules Serviceltem Camera_l imports new ServiceTemplate null Entry new Name Camera Module mod Camera JL Module Camera_1 service Serviceltem Camera_2
37. es dace EEN 18 3 6 Le probleme MC nette EER EEEE E EEEE 19 3 7 Formalisation du Probl me 20 3 8 Algorithme du probl me MC 22 3 9 Architecture des programmes natai sanini 22 3 10 Tinple Me ntation i 54 88 EEE EE EE EEEE vevawesesetoee EEEE 24 SLO Toa GrAMMAIT esas eveveiaseaceweeescask caeeassneneeecseuesssieseseacsandsaeceeeesshdeeevassbel PEERS ERSEN 24 SD GEN EE 26 3 103 Pachter EE 27 3 10 4 Traduction du fichier d entr e 28 3 10 5 Relation de compatibilit ss 29 3 10 6 R solution du programme lin aire seseseeeeseesessrrsesriesssrttssreresssreressreessrrresssee 29 3 10 7 Module composite 30 3 10 8 G n ration d G de 4 rrcreiesnststss ressens le trete stat tnt one lh an este See 31 CAR er a a nn nt Oo 33 Un exemple d utilisation ner nent nlti set 33 4 1 regele le LE 33 4 2 Euren ele EE 34 4 3 reet 35 44 Module Composite vs geste ef R idt EERSTEN EA 36 CAPONE DGS EE 39 CONCLUSION amp PERSPECTIVES sccssscsccsrscosscessscescnsrcessoeessosessnsscestoeeseeeeces 39 5 1 CONGIUSION ES mens nee tennis dress sand EE SEEE 39 5 2 Perspectives rennes eat ea ai eoii tale psosbeee sean aai aaia 39 ANNEXE EE 41 Annexe TEE 45 DIBLIO CR A PAR een drain lets 46 Table de Figure Fig re2 l Le triangle d nude 7 Figure 2 2 Les trois op rations fondamentales 8 IEN 11 Figure 24 Processus NEE 13 Figure 25 Pseudo code ch
38. est g n r ind pendamment de la solution du probl me lin aire En fin le code g n r doit tre compilable autrement dit ne contenir pas d erreurs La totalit de code est une classe qui h rite de la classe module qui impl mente Serializable Reste noter qu un SecurityManager est n cessaire dans des programmes similaires ou il y a d importation et d exportation de code 32 Chapitre 4 Un exemple d utilisation 4 1 Introduction Dans ce chapitre nous voulons montrer par un exemple concret comment on peut utiliser notre m thodologie pour construire un module composite partir des modules existants Les modules de d part dans cet exemple pr sentent deux entit s mat rielles un appareil num rique et une imprimante chacune des entit s est repr sent e par un module L appareil num rique repr sent par un module qui exporte des images et l imprimante est repr sent e par un module qui importe des fichiers en entr e est les imprime en sortie Camera Printer Figure 4 1 Module composite COMPOSITION printer INPUT MODULE Camera EXPORTE Camera 2 5 9 CONSTRAINTS 2 6 COST 5 MODULE Printer IMPORTE Camera 4 7 4 EXPORTE Printer 2 5 2 CONSTRAINTS 4 5 COST 7 OUTPUT MODULE Print_image EXPORTE Printer END min 9 zCamera 5 x_Camera 4 yCamera 2 zPrinter 7 x_Printer 7 WCamera_Camera zCamera lt 5 x_Camer
39. et E 14 IR ET 14 Figure 3 1 Diagramme de CU ASB xcs nn nine diet etes 17 Heure 3 2 Interaction du module aver LUS unies 18 Pigure 3 3 Un probl me d Composition dues usant 19 Figure 320 Module CBS sa ouioui 20 Figure 3 5 Architecture des programmes usure 23 Figure 3 6 Crim e du fichier Ke 25 Figure 3 7 A lt Modules En EE 26 Figure 3 7 B Module Cible POSSIDI eee 26 Figure 3 8 Fichier de composition o vii cvcssscescnesssoarsncsrovsrcrscessetosnssessnasdesnnsanansaniorers 27 Figure 3 9 Programme NN a snie a E E E lace EE 29 Figure 3 10 2 Solution du programme n irens itie 30 Ereegnesser ege 31 Figure 4 1 Module Composite sms 33 Figure 4 2 A Probl me de compositio B Programme lin aire C Solution du P lin aire 33 Chapitre 1 INTRODUCTION 1 1 Introduction Jini est une technologie orient e service bas e sur l id e de r seau spontan et des f d ration de services Un service est l unit fondamentale dans une application Jini c est une impl mentation d une interface que l on peut consid rer comme un contrat le contrat d fini strictement la fa on par laquelle on peut utiliser le service Un service n est pas restreint aux entit s logicielles mais il peut tre une entit mat rielle et il peut inclure la capacit du r seau tendre de mat riel comme imprimante camera digitale PDA En Jini un service de recherche LUS joue un r le primordial dans son fonctionn
40. g public void serviceChanged ServiceDiscoveryEvent evt System out printin Un service modifi evt getPostEventServiceltem service toString public boolean check Serviceltem item return true 45 BIBLIOGRAPHIE 1 Scott Oaks amp Henry Wong Jini in a Nutshell 1 edition march 2000 2 W Keith Edwards Core Jini second edition 2000 3 Jan Newmarch A programmer s guide to Jini 4 Dipanjan Chakraborty Service Composition in Ad hoc Environments March 9 2004 5 Tango Kumaran Jini Technology An Overview Nov 2001 Barnes amp noble 6 W Keith Edwards amp Tom Rodden Jini example by example Juin 2001 Barnes amp noble 7 Ken Arnold The Jini Specifications Second edtion Dec 2000 Addison Wesley 8 Stavros Tripakis Automated Module Composition at Verimag http www verimag imag fr tripakis papers tacas03 web pdf 9 Sing Li With Ronald Ashri amp Jerome Scheuring Professional Jini aout 2000 10 Fredrik Andersson and Magnus Karlsson Secure Jini Services in Ad Hoc Networks 2000 11 Dirk Gorissen H20 Metacomputing Jini Lookup and Discovery University of Antwerp Faculty of Sciences 2003 2004 12 Jason I Hong An Overview of the Jini Coordination Framework University of California Berkeley 13 Michael Fahrmair Chris Salzmann Maurice Schoenmakers Managing Dynamic Distributed Jini Systems http www research ibm com Middleware2000 WiP_Papers carpat pdf 14 Grigore Rosu Abstract Semantics for
41. ire de la relation de compatibilit lui retournerait un fichier qui d crit les ports que l on peut connecter Une fois ce composant a l information complete il proc dera cr er le programme lin aire Un autre composant lit le fichier d entr e pour donner une description claire du module cible En utilisant un outil ext rieur le Solver a comme donn e le probl me lin aire et nous retourne la solution au probl me d optimisation en particulier des valeurs assign es aux variables Xj Yp Zo Wp q Fichi composition Cible java Compatibility jav Prob cible Generator java Figure 3 5 Architecture des programmes Une fois la solution au probl me lin aire disponible un composant n a qu a lire le fichier contenant cette solution et proc der l instanciation de modules et les ports import s et export s 23 et connecter ces instances pour construire la structure interne invisible par l ext rieure Pour qu il puisse construire la partie ext rieure il doit appeler un autre composant qui lui donnera la d finition de cette partie Enfin un programme sera imprim dans un fichier de sortie qui repr sente le module demand Cette architecture est d crite dans le diagramme ci dessus voir la figure 3 5 3 10 Impl mentation Dans la pr c dente section on a pr sent l impl mentation de algorithme de composition On parlera dans cette section et d une mani re d taill e de l
42. nt le type et les attributs de service demand Selon la demande du client le LUS pourrait r pondre au client en lui adressant un copie de service demand LUS en anglais Louukup Service au long de ce rapport on utilisera le terme service de recherche pour sa traduction 1 2 Probl matique Dans cette architecture nous avons vu que on a trois op rations elles permettent aux applications d utiliser les services fournis De plus les services sont enregistrer dans un r positoire Une application ou un client doit s adresser au r positoire pour avoir une copie du service s il existe un service r pondant sa demande Pour r pondre aux exigences d applications et leurs complexit s qui demandent un grand assemblage de services nous souhaitons tendre ces capacit s par d autre moyens efficaces et f conds La composition de services est un pas naturel dans ce champ elle permette de r pondre aux besoins de clients En n gociant un processus d assemblage nous voulons r pondre aux applications dans la cas o le service demand n existe pas L objectif est de rendre cette composition la plus automatique correcte et optimale Nous voulons pr senter le Serveur comme un module qui fourni un certain service et le Client est un autre module qui utilise ce service Nous souhaitons galement et particuli rement voir et a la fois un module comme un producteur et un consommateur de service la production
43. nt y organis s dans des f d rations Une f d ration est d finie comme un ensemble de services associ s Le but de Jini est de transformer le r seau en un outil flexible et facilement administr sur lequel les ressources peuvent tre facilement trouv es Le service est l entit de base qui peut prendre n importe qu elle forme logiciel mat riel Un syst me Jini est articul autour de trois axes e Les clients e Le s service de recherche Lookup Service LUS e Les services Le point central est service de recherche LUS C est lui qui cr e le lien entre les services et les clients Nous aurons donc une structure en triangle avec pour le sommet le LUS et comme base un ensemble de clients et de services Le sch ma type est repr sent par la figure suivante TCP RPRMT Figure2 1 Le triangle du Jini La partie importante de ce chapitre est tudie dans le tutorial 10 et pour de plus amples informations voir 1 2 3 5 6 7 2 2 Infrastructure Le syst me fonctionne autour de trois op rations L enregistrement d un service aupr s du LUS La recherche d un service par le client La connexion du client et d un service 1 Register 2 Lookup j Figure 2 2 Les trois op rations fondamentales L entit centrale d un syst me Jini est le service de recherche LUS qui enregistre des services disponibles sur le r seau C est galement le point principal de contact
44. on associe un cout Comme pour les ports le nombre de copies pour un module de d part est d fini par une contrainte et un cout est ajout pour chaque copie COMPOSITION comp_M5 INPUT MODULE ml EXPORTE i 2 5 9 EXPORTE j 3 8 2 CONSTRAINTS 2 6 COST 5 MODULE m2 IMPORTE i 4 7 4 EXPORTE p 2 5 2 CONSTRAINTS 4 5 COST 7 MODULE m3 IMPORTE j 2 3 1 EXPORTE q 5 6 6 CONSTRAINTS 1 3 COST 9 OUTPUT MODULE M4 EXPORTE p EXPORTE q END Figure 3 8 Fichier de composition En fin le module cible est d fini tout simplement par ces ports d entr e et de sortie il est galement distinguer par un nom qui lui sera ajout 27 3 10 4 Traduction du fichier d entr e Le fichier d fini dans le paragraphe pr c dent et qui est strictement conforme la grammaire sera traduit en un programme lin aire comme il est indiqu dans la formulation du probl me de composition Cette traduction est assur par un programme qui a comme entr e le fichier pr c dent il lit ligne par ligne le fichier et g n re les variables la fonction objectif et les contraintes Pour chaque module de d part il va g n r une variable x qui pr sente le nombre de copies de ce module et qui doit tre utilis es dans la composition Cette variable est multipli e par le co t du module est ajout e la fonction objectif une contrainte est ajout e l ensemble suivan
45. orts d entr e est lire dans la solution ici yi 3 ServiceItem zI new ServicelItem 16 zI 0 imports new ServiceTemplate null new Class I class null zI 1 imports new ServiceTemplate null new Class I class null zI 2 imports new ServiceTemplate null new Class I class null zI 3 imports new ServiceTemplate null new Class I class null zI 4 imports new ServiceTemplate null new Class I class null zI 5 imports new ServiceTemplate null new Class I class null Un module qui importe un certain service et exporte un autre utilise ce fragment de code mod_m2_3 items mm imports yI mm mod_m2_3 exports zP 1l1l e Connexion Une connexion aura la forme suivante Le Connections Random ranI new Random 31 zI ranI nextInt zI length 1 imports yI ranI nextInt yI length zIi ranI nextInt zI length 1 imports yI ranI nextInt yI length e Le module composite indiqu plus haut exporte p et q comme suit Serviceltem item_l imports new ServiceTemplate null new Class P class null this exports item 1 Serviceltem item 2 imports new ServiceTemplate null new Class Q class null this exports item_2 Ces lignes constituent la structure de code qui est dynamique c est dire qui d pend de la solution du probl me MC l autre code dit fig est le code qui est commun
46. ption L impl mentation de cette interface est r alis e par la classe suivante qui h rite aussi de la classe module dont elle peut utiliser n cessairement les op rations d importation A l inverse du module Camera ce module effectue une op ration d importation puis une op ration d exportation import jini module import common entry Cost import net jini core lookup Serviceltem import net jini core lookup ServiceTemplate import net jini core entry Entry import java io Serializable import net jini lookup entry Name import java io import javax print public class Printer_Impl extends Module implements Printer Serializable public void print File f System out printin Impression d image impl m ntation continuer public Printer_Impl Serviceltem item imports new ServiceTemplate null new Class Camera class null Camera camera Camera item service File f camera Getlmge Print f exports new Serviceltem null this new Entryl new Name Printer public static void main String args new Printer_Impl try Thread currentThread sleep 10 1000L catch java lang InterruptedException exc 35 4 4 Module composite Le code du module composite qui est la composition du module Camera et Printer ressemble aux lignes suivantes import java io import jini module Module import service common Camera import service common P
47. rinter import service common Camera import net jini core lookup ServiceTemplate import net jini core lookup Serviceltem import net jini core entry Entry import net jini lookup entry Name import java util Random public class Module_Result extends Module implements Serializable public Module Result System setSecurityManager new java rmi RMISecurityManager Les Ports d entr e ServiceTemplate yCamera new ServiceTemplate 16 yCamera 0 new ServiceTemplate null new Class Camera class null yCamera l new ServiceTemplate null new Class Camera class null yCamera 2 new ServiceTemplate null new Class Camera class null yCamera 3 new ServiceTemplate null new Class Camera class null yCamera 4 new ServiceTemplate null new Class Camera class null yCamera 5 new ServiceTemplate null new Class Camera class null yCamera 6 new ServiceTemplate null new Class Camera class null yCamera 7 new ServiceTemplate null new Class Camera class null yCamera 8 new ServiceTemplate null new Class Camera class null yCamera 9 new ServiceTemplate null new Class Camera class null yCamera 10 new ServiceTemplate null new Class Camera class null yCamera 11 new
48. suivants la composition est automatique du fait que le code du module composite est g n r automatiquement sans intervention de l utilisateur La solution est optimale comme on a vu que le probl me est transform un programme lin aire La compatibilit est assur e par un programme dans lequel on peut ajouter d autres propri t s fonctionnelles ou non fonctionnelles ou le modifier sans affecter l ensemble La d finition des ports est claire en effet un port est un service que ce soit import ou export Les op rations d importation et d exportation sont d finies explicitement elles permettent aux modules d importer ou d exporter des services sans aucun souci de son impl mentation 5 2 Perspectives Nous souhaiterons au futur et en se basant sur les r sultats du travail effectu compl ter notre effort par d autres moyens plus efficaces et plus conomiques dont on cite 39 o Notre travail est bas sur un fichier d entr e textuel nous souhaitons au futur avoir un moyen graphique pour d finir un probl me de composition pour une meilleure lisibilit o Les modules utilisent les op rations importe et exporte pour changer de services Jini avec le monde ext rieur Nous souhaiterons tendre ce moyen d autres technologies comme EJB et Web service et ce pour une meilleure exploitation des services disponibles o En visant un meilleur pouvoir d expression nous souhaitons avoir un l
49. t de la classe Module peuvent appeler les m thodes exports et 14 g DEER imports Pour illustrer nous donnons un exemple nous voulons cr er un service qui d fini par l interface Calculator voir exemple suivant 3 5 Exemple d utilisation Nous donnons cet exemple pour mettre en vidence comment cette conception de module peut tre utilis e Il s agit d un service d fini par une interface Calculator le module doit impl menter cette interface Un module a les deux op rations imports et exports Reste noter qu il doit de plus impl menter serializable packages n cessaires public class Calculatorlmpl extends Module implements Calculator Serializable l impl mentation est d finir ici public CalculatorImpl exports new Serviceltem null this new Entry new Name Calculator 7 Un port dans ce contexte consiste deux fa ades logiques qui signifient l entr e est la sortie 14 On utilise imports au lieu import pour viter la confusion avec import qui est un mot r serv en Java Dor navant on appel module toute classe qui h rite de la classe Module 18 public static void main String args System setSecurityManager new java rmi RMISecurityManager new CalculatorImpl tryl Thread currentThread sleep 10000 catch java lang InterruptedException exc exc printStackTrace System err e Des es Pour exporter le service il suffi
50. t pour tout programme d appeler la m thode exporte c est la m thode h rit e de la classe Module elle accepte comme param tre un Serviceltem 3 6 Le probl me MC Apr s avoir construit le mod le qui d finit clairement les modules et les op rations import et export On va dans ce paragraphe entrer dans le c ur du sujet qui est la composition de modules nous tenterons de donner un moyen simple et facile pour composer de modules disponibles Le sch ma suivant illustre bien notre probl matique figure 3 3 Dans ce sch ma on a deux modules et nous voulons avoir automatiquement le module composite ee M2 Figure 3 3 Un probl me de composition Ce sch ma repr sente un probl me de composition de deux modules M1 et M2 M1 est un module qui importe p et exporte g et M2 est un module qui importe g et exporte i Nous souhaitons obtenir un seul module M qui importe p et exporte i On remarque que le service export par M1 est celui import par M2 Cette composition est possible seulement si g export 19 par M1 est compatible avec q import par M2 L op ration de composition doit nous retourner un module qui ressemble au sch ma suivant Figure 3 4 Module Cible 3 7 Formalisation du Probl me La formulation que on est en train de citer ici est tirer de 8 Dans cette section on se contente de donner les grandes lignes de la formulation math matique au probl me Mc qui consiste formul
51. t sa d finition dans le fichier de composition Un module de d part a un certain nombre de ports d entr e et de sortie qui sont d finis par les clauses importe et exporte chaque port le programme doit g n rer une variable y si c est un port d entr e et z si c est un port de sortie Les variable y et z vont tre multipli es par leurs co ts respectifs et seront ajout es la fonction objectif Une contrainte est g n r e pour exprimer le nombre de copies utiliser pour chaque port Enfin car l utilisateur ne conna t pas la structure interne le programme doit tre capable de cr er une autre variable w pr sentant le nombre de connexions utilis es On associe cette variable un co t et on l ajoute la fonction objectif On prendra en consid ration la formulation du probl me on ajoute les deux contraintes en relation avec la variable w Il reste d clarer dans le programme que toutes les variables sont enti res et la fonction objectif est minimiser En utilisant le probl me de composition indiqu dans la figure 3 8 on aura le programme lin aire indiqu dans la figure 3 9 Ce programme lin aire sera r solue et utilis dans les prochaines tapes Ce programme lin aire comporte les variables formul es pr c demment ainsi que la fonction objective et les contrainte selon la formulation du probl me de composition MC Toutes les variables sont enti res selon toujours le m me formulation
52. tanceof UIFactoryTypes UlFactoryTypes types UIFactoryTypes obj if types isAssignableTo FrameFactory class 43 FrameFactory factory null try factory FrameFactory desc getUIFactory this getClass getClassLoader catch Exception e System out printin T l chargement de la Frame item Frame frame factory getFrame item frame setLocation 500 400 frame setSize 300 300 frame setTitle Calculator Veriamg frame setResizable false frame setVisible true 44 Annexe B Dans cet annexe on donne le code complet de la classe Module discut e au cours du chapitre 3 Elle impl mente essentiellement les interfaces importation et exportation ces deux interfaces permettent de d finir deux op rations importe et exporte package jini module import net jini core lookup Serviceltem import net jini core lookup ServiceTemplate import net jini core lookup ServiceRegistration import net jini core lookup ServicelD import net jini lookup JoinManager import net jini lookup ServicelDListener import net jini discovery LookupDiscovery import net jini discovery LookupDiscoveryManager import net jini lookup ServiceDiscoveryManager import net jini lookup ServiceDiscoveryListener import net jini lookup ServiceDiscoveryEvent import net jini lookup Serviceltem Filter import net jini lookup Lookup Cache import net jini lease LeaseRenewalManager public class Module implements
53. tout en connaissant l interface Le client est le service sont d accord sur cette interface autrement dit cette interface est connue D ailleurs le client et le service doivent d finir d une mani re tr s explicite la fa on dont ils communiquent avec le service de recherche et sans crire beaucoup de code pour arriver cet objectif Dans ce chapitre en lib rera le programmeur de cette fastidieuse tache en fournissant des op rations simples et efficaces Et on essaye d liminer la s paration entre ce qui est client de ce qui est serveur En effet notre id e est de faire des clients et des services des entit s similaires qui peuvent utiliser les m mes op rations Ces entit s sont les modules un module est un programme qui peut importer des services il est dans ce cas client comme il peut exporter des services et il est dans ce cas serveur l avantage est qu une entit peut la fois tre client et serveur et elle peut utiliser des services pour fournir d autres En bref un module est une entit capable d utiliser deux op rations importer et exporter 3 2 Les Op rations On a motiv dans le pr c dent paragraphe la n cessit d avoir les deux op rations importation et d exportation Dans ce paragraphe on va illustrer comment ces op rations vont tre impl ment es En effet ces deux op rations sont simplement d finies par deux interfaces Le code qui nous permet de d finir ces interfaces est
54. tres 14 Abstract Semantics for module composition 15 The Sahara model for service composition 20 Separation of Concerns for Dependable Embdded Systems 28 Component Composition Validation 29 Composition for Component Based Modeling 30 The Ninja Architecture Les travaux les plus r cents qui visent notre domaine sont fournis dans 16 17 18 Dans ces travaux on peut remarquer les points suivants la d finition des contrats n cessitent un langage sp cial bas sur un sch ma XML ce langage permet la pr cision des attributs du service les m thodes et les v nements De plus il utilise des machines abstraites et pour chaque m thode il essaye de tirer beaucoup d informations param tres invocation pr condition post condition invariant s curit d pendance un grand processus est d clench pour l extraction du contrat partir d une classe et la restitutions de toutes les information cit es ci dessus Dans 35 il y a un travail qui emploi les transactions pour coordonner l interaction fiable des services de Jini C est une sorte de composition de services Jini qui n cessite une bonne connaissance de Jini elle manque d automatisation et de g n ration automatique de l impl mentation 1 4 Contribution Notre objectif est de faire un lien th orie pratique entre une technologie orient e service Jini 1 2 3 et la composition de modules pr sent e dans 8 dans lequel il y a une bonne
55. tribs new HashSet attribs add new UIFactoryTypes typeNames MarshalledObject factory null try factory new MarshalledObject new frameFactory catch Exception e e printStackTrace System exit 2 UlDescriptor desc new UlDescriptor MainUT ROLE frameFactory TOOLKIT attribs factory Entry entries desc LookupDiscoveryManager mgr null leaseRenewalManager leaseMgr new LeaseRenewalManager try mgr new LookupDiscoveryManager LookupDiscovery ALL_GROUPS null null joinMgr new JoinManager new CalcFrame entries this mgr leaseMgr catch Exception e public void serviceIDNotify ServicelD serviceID System out println Reception du service ID servicelD toString o Package client package client import common Calculator import java rmi RMISecurityManager import net jini discovery LookupDiscovery import net jini core lookup ServiceTemplate import net jini discovery LookupDiscoveryManager 42 import net jini lookup ServiceDiscoveryManager import net jini core lookup Serviceltem import net jini lease LeaseRenewalManager import net jini core entry Entry import net jini lookup ui MainUI import net jini lookup ui factory FrameFactory import net jini lookup entry UIDescriptor import net jini lookup ui attribute UlFactoryTypes import java awt import javax swing import java util Set import java util Iterator import java net URL public class
56. uble x double y public int subtract int x int y public double multiply double x double y public int multiply int x int y public double divide double x double y e La proxy public class CalculatorImpl implements Calculator Serializable public CalculatorImpl String name e Le serveur public class CalculatorServer implements ServiceIDListener public static void main String argv new CalculatorServer Object keepAlive new Object synchronized keepAlive try keepAlive wait catch InterruptedException e public CalculatorServer Enrengistrement du service public void serviceIDNotify ServiceID servicelD System out printin Reception du service ID serviceID toString e Le Client public class CalculatorClient public static void main String argv new CalculatorClient try Thread currentThread sleep 2 WAITFOR catch java lang InterruptedException e public CalculatorClient R cup ration du service et affichage de 1l interface ServiceIDListener est une interface sert attendre la notification du LUS 15 Chapitre 3 Les Modules 3 1 Introduction On a vu dans le pr c dent chapitre que Jini est une architecture orient e service et comment les services sont cr s et comment ces services sont enregistr s aupr s d un LUS et comment un client peut les acc der et les utiliser

Download Pdf Manuals

image

Related Search

Related Contents

HP Deskjet 6520 User's Manual  Philips 330 Speaker User Manual    Manuale Utente User Manual ARCTAB  Packs jeunes  Philips Avance Collection Meat mincer HR2735/00  

Copyright © All rights reserved.
Failed to retrieve file