Vous êtes sur la page 1sur 30

Dveloppementdune applicationwebde gestiondelinstruction professionnelledes oprateursetcontrleurs ariensutilisantJavaet Struts

Auteur MatreDeStage Entreprise Etablissement Anne Dpartement Priode Version:07septembre2007 CyrilMottier SgtMichelGavois ArmedelAir INSAdeRennes 3 Informatique 02.07.07 31.08.07

RapportdestageCyrilMottier 3INFOanne2006/2007

Tabledesmatires
Remerciements.......................................................................................................................................3 I. Introduction.....................................................................................................................................4 A. Prsentationdelentreprise........................................................................................................4 B. LerseauSIGAPAIR.....................................................................................................................5 C. Lesujetdustage..........................................................................................................................6 II. Giproca:uneapplicationwebutilisantStruts................................................................................6 A. Prsentationdubesoin...............................................................................................................6 B. Etudedelexistant.......................................................................................................................7 C. Analyseduproblme ..................................................................................................................8 . D. Dveloppementdelapplication.................................................................................................8 1. 2. 3. 4. i. ii. Choixdestechnologiesutilises..............................................................................................8 Prparationdelenvironnementdetravail.............................................................................9 Ralisationduntemplatecomplet.........................................................................................9 Dveloppementdelapplication...........................................................................................10 LeframeworkStruts..........................................................................................................10 LadmarchededveloppementduneapplicationutilisantStruts..................................11

iii. Exemplededveloppementdunformulairederecherche...............................................11 iv. Notionssupplmentairesutilises.....................................................................................12 III. IV. Conclusion.................................................................................................................................13 Annexes.....................................................................................................................................14

DiagrammedesclassesUMLdelapplication(Fig1)........................................................................15 DiagrammedesclassesUMLdelapartieressourceshumaines(Fig2)............................................16 CopiedcrandelinterfacegraphiquedeGiproca(Fig3)................................................................17 DiagrammedeGanttdemonstage(Fig4).......................................................................................18 Diagrammedescasdutilisation(Fig5)............................................................................................18 RechercheActionServlet.java(Code1)...............................................................................................19 LesdiffrentsJavaBean(Code2).......................................................................................................21 RechercheMulticriteresAction.java(Code3).....................................................................................23 Lesvuesdelarecherche(Code4)......................................................................................................28 Strutsconfig.xml(Code5).................................................................................................................29 V. Rfrences.....................................................................................................................................29 VI. 2|P a g e Glossaire....................................................................................................................................30

RapportdestageCyrilMottier 3INFOanne2006/2007

Remerciements
Mesremerciementsvontauxpersonnessuivantes: ToutdabordleLcl (LieutenantColonel)WulfranVanneronsanslequelcestagenaurait pu treralis.Ilmasympathiquementaccueillidanssonunitetmaconfiunepartnonngligeable delaralisationdunprojetconsquent.Ilatdungrandsoutienlorsdelarelecturedecerapport destage. LeSgt(Sergent)MichelGavoispoursonattentionlorsdelaralisationduprojet.Saractivit etlaqualitdesoncouteonttmotivantesetinstructives.Ilasurpondremesquestions,tant techniquesqueconceptuellesoufonctionnelles,etaexaminmescodessourcesetmescrits. Le Cdt (Commandant) Lerousseau, le Cne (Capitaine) Lajoie et le Maj (Major) Valade pour leurprsentationdelexistantetleursrponsesauxquestionssurleprojetfinalsouhait. LensembledesmembresdelASSI01.617quimontgentimentaccueilli.Ilsontgalementsu rpondremesinterrogationsconcernantleursactivitssurlerseauSIGAPAIRenconservantune atmosphredetravailconvivialeetdtendue.

3|P a g e

RapportdestageCyrilMottier 3INFOanne2006/2007

I.

Introduction
A. Prsentationdelentreprise

LArmedelAirfaitpartie,aumme titre que la Gendarmerie Nationale, lArme deTerreetlaMarineNationale,duMinistre de la Dfense. Cre en 1933, elle dispose aujourdhui de plusieurs bases ariennes en mtropole ainsi quen outremer et ltranger. MonstagesestdroulsurlesitedeCinqMarsLaPilerattachlaBA705(BaseArienne) deTours.Situ25kmlOuestdeTours,cesiteregroupesur25hectares,2missionsprincipales: Lasurveillanceetlecontrlearien, LagestiondesentreptsdelArmedelAir; CettepremiremissionestgarantieparleCDC07.927(CentredeDtectionetdeContrle).Ilas surelesmissionsdesretarienneainsiquelecontrledela circulationarienne militaire.Ilest galementchargdelacoordinationdessauvetagesencasdaccidentsdaronefscivilsoumilitaires. LEAA 00.609 (Entrept de LArme de lAir) rceptionne, stocke et redistribue en fonction des besoinsetdemandes,unepartiedesmatrielsservantauxunitsdelArmedelAir:pneumatiques daronefs,matrielslectroniquesetinformatiques LesitedeCinqMarsLaPileestgalementcharg,depuis1994,delazoneariennededfense Nord. LASSI 01.617 de Cinq Mars La Pile (Antenne de Soutien des Systmes dInformations)madoncaccueillipendant2mois.Depuis2001,lArmedelAir sest dote dun systme dinformation des ressources humaines appel SIGA PAIR(SystmedeGestionetdAdministrationduPersonneldelarmedelAIR). Cesystmerelielesorganismesdedirectiondesressourceshumainesdesbases ariennes, des commandements et de ladministration centrale. LASSI a pour missions prioritaires dassurerlacohrenceetlamisejourdusystmedinformationglobaletdeveillerladisponibilit et la performance des serveurs informatiques SIGAPAIR. Pour ce faire, lantenne est spare en deuxsections: lasectionDonnesquitentedeconserverlapertinenceetlacohrencedesinformations encorrigeantlescollisionsdedonnesdtectessurlerseauSIGAPAIR.Elleadoncunrle dadministrateurdedonnesenassurantlesuivietlarplicationdeslignes, lasectionSystmequisoutientetadministrelensembledesserveursetassurelesup porttechniquenationalSIGAPAIR.Elleestaussichargededistribueretdappliquertoutes volutionsdesapplicationsdeproductionetdinterrogationsurlesserveursetsurlespostes 4|P a g e

RapportdestageCyrilMottier 3INFOanne2006/2007 clients.Ellejoueenfinlerlededveloppeurlogicielousystmelorsquelecommandement abesoinduneapplicationdimportanceraisonnablelopposdesprojetsimportantsgn ralementsoustraitdesindustriels.Cestdoncdanslecadredudveloppementduneap plicationdetaillemoyennequemonstageateffectu.

OrganigrammedelASSI

B. LerseauSIGAPAIR
SIGAPAIRreprsenteunensembledebasesdedonnesdistribuesetrpliques.

ReprsentationdurseauSIGAPAIR

5|P a g e

RapportdestageCyrilMottier 3INFOanne2006/2007 Ce rseau met ainsi disposition des 2500 cadres chargs de la gestion et de ladministration denviron100000personnes(militairesactifsouderserve),unoutilprsentanttouteslesgaranties defiabilit,descuritetdedisponibilit. Surleplanfonctionnel,ilsagitde: Disposerdinformationsindividuellesetcollectivescompltesetfiables, Raliserlestravauxdadministration,degestionoudestudesprvisionnelles. Surleplantechnique,ilsagitde: Mieuxutiliserlesressources(matrielles,logicielles,personnelles), Responsabiliserlesutilisateurs. Le mode de fonctionnement de SIGAPAIR est de type client/serveur en mode client lger. Lensemble du systme est dploy sur 62 sites et comprend 60 bases de donnes, 60 serveurs dapplication,120serveursderseauxet1500postesclientsrpartisenFranceetltranger(Dji bouti,Sngal,LaRunion).LessystmesdexploitationsontdetypeUNIX(AIX4.3)pourlesser veursdedonnesetWindowsNTpourlesserveursbureautiques.Enfin,leSGBDutilisestIngresII 2.0(Intelligent GraphicRElationalSystem).CedernierestconsidrcommeunSGBDdeclasseen treprise(aummetitrequeletrsrenommOracle).

C. Lesujetdustage
LeCDCdelabasedeCinqMarsLaPileestcomposdedeuxescadronsconstitusdunecentaine depersonneschacun.Afindemieuxgrerlesinformationssurchacundesmilitairesdelunit(une unitestleregroupementdeplusieursescadrons),lecommandementademandlASSIdedve lopper une application permettant daccder facilement lensemble des informations propres chaquecontrleuretoprateur(informationsgnrales,grades,licences,stageseffectus). Lapplication,dansunsoucideportabilit,atdveloppeenutilisantlelangageJavaetleser veurapplicatifTomcatletouttantmontsuruneplateformeLinux.Leregroupementdecesdeux technologiespermetdecreruneapplicationfonctionnantparinterfaceweb. Laralisationdunetelleapplicationtaitunprojetassezconsquent.Cederniertaitgalement voutremodifirgulirementafindesatisfaireauxdemandesducommandementetdesuivre lesvolutionsdesdiffrentesmodalitsdelabanquederessourceshumainesmilitaires(migration deSIGAPAIRverssaversion6prvuepourdbut2008).Afindefaciliterledveloppementetdesa tisfaireauxcontraintesprcdemmentcites,leframeworkStruts(version1.3.8)adonctutilis.

II.

Giproca:uneapplicationwebutilisantStruts
A. Prsentationdubesoin

6|P a g e

RapportdestageCyrilMottier 3INFOanne2006/2007 Lunit du CDC est compose denviron 200 hommes et femmes se relayant chaque jour et 24 heuressur24afindeffectuerlecontrleetlasurveillancedelespacenordarienfranais.Lecom mandementduCDCsoccupedoncdeffectuerlemanagementdelensembledecesmilitaires.Cha cundentreeuxsontmunisdinformationspersonnellesquidfinissentsonniveauauseindelunit (grade,licencesobtenues,statut,stageseffectus,).Cesinformationstantmodifiesassezrgu lirement(unelicencedoitenmoyennetremisejourtouslesans),ildevenaitindispensableau commandementdeseprocureruneapplicationuniquedonnantaccslensembledesinformations descontrleursetoprateursariensprsentssurlesitededtectiondeCinqMarsLaPile. Suiteunentretiendenviron3heuresaveclesintresss(CdtLerousseauetCneLajoie),ilat dcidderalisercetteapplicationenutilisantuneinterfaceweb.Celapermettaitunevisualisation efficace et simple sur un navigateur web. Le client web Firefox 2.x tant disponible sur de nom breusesmachines,autorisparlArmedelAiretsimpleinstaller,ilatchoisicommeplateforme client. Lapplication de Gestion de lInstruction PRofessionnelle des Oprateurs et Contrleurs A riens(Giproca)devaitfourniraucommandement desinformationsdjexistantessurlerseauSI GAPAIR(nom,prnom,situationfamiliale,visitemdicale,passeport,)etenincluredenouvelles (licences,stages,formationmilitaire,). LecommandementduCDCtantsoucieuxduparcoursdeleursmembres,ilavaitgalementde mandunehistorisationdelaplupartdespropritsdesmilitaires(escadron,grade,situationfami liale,statut,). Pour des raisons de scurit et de secret militaire (donnes classes confidentielles person nelles), le commandant Lerousseau avait demand que lapplication permette de dfinir plusieurs niveaux daccs. Certains profils devaient par exemple avoir tous les droits (criture et lecture de lensembledesinformations)alorsquedautresnedevaitaccderquenlecturecertainesinforma tions (un sousofficier ne devait accder qu ses propres informations par exemple). Dans une mmeoptiquedescurit,ilatdciddesparertotalement lesinformationsentrela basede donnesdelArmedelAir(SIGAPAIR)etGiproca.Lasaisiedesinformationsditesgnralesneres taitdoncfaisablequpartirdurseauSIGAPAIRalorsquelensembledesinformationspropresau CDCdevaitsefairelaidedelanouvelleapplication.Enfin,unecomparaisondesdeuxtablesaurait lieudemanirequotidienneafindeconserverlacohrenceentrelesdeuxsystmesdinformations (aujourprs).

B. Etudedelexistant
Commeexpliqucidessus,lapplicationdesuivipeuttrespareendeuxpartiesdistinctes.La premire regroupe lensemble des informations personnelles et communes chaque militaire de lArmedelAir(nom,prnom,grade,datedentreenservice).Cesinformationstaientdispo niblessurlerseaudesressourceshumainesdelArmedelAir.Lasecondepartiesoccupequant elle de donnes propres aux militaires du CDC (licences, stages, statut, formation militaire, ). Il nexistaitenrevancheaucunedonnenumriqueconcernantcettepartie.Afindesaisirlensemble desinformations,ilavaitdonctdemanddecreruneinterfacedesaisiepourrempliretmodifier cesinformations.

7|P a g e

RapportdestageCyrilMottier 3INFOanne2006/2007 Dunpointdevueapplicatif,leprojetestpartidezro:eneffet,aucuneapplicationdesuivides informationsconcernantlesmilitairesduCDCinterfacewebnexistaitlorsdelacrationdeGipro ca.IlatoutdemmetaitpossiblederutiliserunepartiedumodleconceptueldedonnedeSI GAPAIRafindemodliserlapremirepartieduprojet.

C. Analyseduproblme
SuitelentretienaveclecommandementduCDCetltudedelexistant,nousavonsdbut lanalyseduproblme.CetteanalyseconsistaitsimplementcrerlediagrammedeclasseUMLdes donnes ncessaires lapplication Giproca. Ce diagramme devait nanmoins prsenter une archi tecturepermettantundveloppementpropreetfaciledenotreinterfaceweb.Commelemontrele schma de la figure 1 (voir Annexe), le modle de lapplication comportait un ensemble important dobjets diffrents. Mon stage ne durant que 9 semaines, il ma donc t demand de ne raliser quune partie de lapplication. Cette partie est reprsente sur la figure 2 (voir Annexe) et ne con cerne en ralit que les donnes directement rattaches une personne disponibles sur le rseau desressourceshumainesdelArmedelAir. Alaidedunlogicieldegnielogiciel(PowerAMC),cediagrammeUMLaensuitettransform enunmodleconceptueldedonne(MCD).Cemmelogicielafinalementpermisdegnrerdune partlestablesdelabasededonnesetdautrepartlesclassesJava(classesmtiers)permettantle dveloppementdeGiproca.

D. Dveloppementdelapplication
1. Choixdestechnologiesutilises GiprocaatraliselaidedulangageJava.Cettetechnologiequijouitenoutredunenoto rit indniable dispose dun modle objet parmi les meilleurs du march. Elle permet galement auxlogicielsdtreexportablessurnimportequelleplateforme(WindowsNt,Linux,).LeJavadis poseensuitedunframeworkconsquentetpermettantlaccsauxbasesdedonnesrelationnelles tellequePostgreSQLgrceauJDBC(JavaDataBaseConnectivity).Enfin,leprojetnencessitaitabso lument pas de manipulation systme. Il sen suit donc que lutilisation dun langage dit bas niveau commeleCouC++ntaitpasutileoubnfique. LeSGBD(SystmedeGestiondeBasedeDonnes)choisittaitdoncPostgreSQL.Cettebasede donneestautoriseparlArmedelAirestfaitfiguredexempleparmilesdiffrentsSGBDlibresdu march.Pourfinir,PostgreSQLesttoujoursmaintenuparunecommunautactivedinformaticiens. Le serveur applicatif exploit pour raliser Giproca se nomme Tomcat. Il a t utilis pour les mmeraisonsquePostgreSQL. Enfin,danslebutdobteniruncodeditpropreetsparantaumieuxledesignducontenudyna mique, le dveloppement sest pos sur le framework Struts dans sa version 1.3.8. Lutilisation de cettetechnologiepermetparlasuiteunemodificationsimpledelapplicationpuisquellesuitlemo dleMVC(voirexplicationplusbas). 8|P a g e

RapportdestageCyrilMottier 3INFOanne2006/2007 2. Prparationdelenvironnementdetravail Afinderaliserleprojet,ilafalluinstallerunenvironnementdetravailcompletpuisquelquipe dedveloppementdelASSIneprogrammaitprincipalementsesapplicationswebquenPHPMySQL. Laprparationdenotreenvironnementdetravailsestdoncdcomposeendeuxtapes: lacrationdunserveurweb, linstallationdunIDEsurstationdedveloppement. LinstallationduserveuradbutparlamiseenplacedelOSLinux(distri butionMandriva2006)surunemachinedelamarqueBull.Ilaensuitetn cessaire de crer le serveur applicatif Java. Nous avons donc commenc par installerlamachinevirtuelleJava.LapplicationTomcataensuitetmiseen place.CouplelamachinevirtuelleJava,ellepermet,linstardApache,defaireofficedeserveur Java(etnonPHPouhttpcommelefaitcourammentApache). Noustionsmaintenantpourvudunserveurapplicatifmaissansgrandint rtpuisquecederniernedisposaitdaucunebasededonnerelationnelle.Nous avons donc intgrer le SGBD PostgreSQL notre plateforme Linux. Suite linstallationdecettebasededonnes,lacrationdidentifiantsetdemotsde passedeconnexionatraliseafindegrerlesdroitsdaccsauSGBDdenotreserveurapplicatif. Enfin,danslebutdefaciliternotretravailauseindelquipe,jaipro pos un utilitaire de travail collaboratifutilis lors du projet de fin de troisime anne: Subversion (successeurdeCVS).Lesmembresdelquipeontalorsdciddessayercetteapplicationfacilitant le travail en groupe et facilitant les retours et changements de version. Pour ce faire, nous avons installleserveurSubversionsurnotremachineLinux. Dans un deuxime temps, jai dbut linstallation des stations de dveloppement. Dans le but de faciliter et doptimiser le dve loppement,jaimontunserveurlocalTomcatsurchacunedesma chinesdetravail.Celavitaitdespertesdetempsinutilesdeconnexionftpousshetderedmarrage duserveur. Finalement,linterfacededveloppementutiliseatleclbre IDEEclipse.CetIDEafaitsespreuvesdanslemondeprofessionnelet estgalementautorisparlArmedelAir.Afindorienterlinterface de dveloppement vers la cration dapplications web, jai intgr le plugin WTP (Web Tools Platform) ainsi que Struts lensemble des stationsdetravail.LepluginSubclipsefaisantofficedeclientSubversionatinstallafindautoriser letravailcollaboratif. 3. Ralisationduntemplatecomplet

9|P a g e

RapportdestageCyrilMottier 3INFOanne2006/2007 Contrairementuneentreprisediteclassique,lArmedelAirsedoitdecrerintgralementces applications.LensembledestechnologiesutilisesdanslArmedelAiront,aupralable,tvali desparunorganismespcial.Cestlaraisonpourlaquelleilafallucrerlesthtiquecompltedu site.Etantdjaccoutumcegenrededveloppementetpuisquelanalyseduproblme(cration des diagrammes de classes UML, MCD, ) tait en cours, on ma demand de crer un template complet.Cetemplatedevaitprsenteruneinterfacewebergonomiqueetclaire.Vulimportancede lapplication,ilsemblaitindispensablequelinterfacesoitmuniedungrandnombredemenus.Jai doncchoisidecrerunmenuhorizontalconstitudongleteuxmmemunisdesousmenus.Larali sation de ce template a t effectue en suivant les normes XHTML Strict 1.1 et CSS 2.1 du W3C (World Wide Web Consortium). Fonctionnant sous Opera 9 et Internet Explorer 7, ce template navait besoin dtre compatible quavec le navigateur Firefox 2.x. Pour satisfaire aux diffrentes rsolutionsdescransduCDC,letemplatesadaptelarsolutiondelcransurlequelilsaffiche conditionquecettederniresoitsuprieureougale800x600pixels.Unecopiedcranestdispo nibleenannexesurlafigure3. 4. Dveloppementdelapplication i. LeframeworkStruts Struts est un framework du dveloppement dapplication web du projet Jakarta Struts de l'ApacheSoftwareFoundation.Ilcherchefourniruncadrestandarddedveloppement d'applica tion web en Java respectant l'architecture dite MVC (ModleVueContrleur). Struts utilise des technologiesstandards:JavaServlets,JavaBeans,ResourceBundles,etXML. Le modle MVC cherche dfinir une mthode de programmation permettant de sparer les trois aspects principaux dun projet : le modle qui reprsente lensemble des bases de donnes et/ouobjetscontenantlinformationutilelapplication,lavuequireprsentelesthtiquedusiteet lensembledesdonnesgraphiquesfournieslutilisateurparlinterfacewebetlecontrleurquifait officedepasserelleentrelemodleetlavueeneffectuantlesoprationsdeconnexionncessaires. Onpeutdoncreprsentercemodlel'aideduschmareprsentcidessous.

SchmadelarchitecturetypeduneapplicationutilisantStruts

10|P a g e

RapportdestageCyrilMottier 3INFOanne2006/2007 LedveloppementduneapplicationlaidedeStrutsseffectueparhritagedeclasses.Lefra mework fournit un ensemble de classes qui sont facilement extensibles. Pour crer une nouvelle actionpersonnalise,ilsuffitdoncdecrerunenouvelleclassehritantdelaclassedfiniedansle frameworkStrutsetnommdefaonvidente"Action". En ce qui concerne le modle, le framework peut interagir avec les technologies standards daccsauxdonnescommeJDBC(technologieutiliselorsdemonstage)ouEJBainsiquetousles packagestiercepartiecommeHibernate,iBATISouObjectRelationalBridge.Enfin,lavuefonctionne enutilisantXML,XSLT,XHTML,CSS,JavaServerPages(cestroisdernirestechnologiesonttutili seslorsdemonstage),etdautressystmesdeprsentation. ii. LadmarchededveloppementduneapplicationutilisantStruts

LedveloppementduneapplicationutilisantStrutssuit,engnral,ladmarchedcriteci dessous: ladfinitiondesvues.Ondistinguelesvuesquisontdesformulairesetlesautres. chaque vue formulaire donne naissance une dfinition dans le fichier struts config.xml.Onydfinitlesinformationssuivantes: lenomdelaclasseBeanquicontiendralesdonnesduformulaireainsiquel'in dicationdtatdevalidationdesdonnes(vrifiesounon).Siellesdoiventtre vrifiesetqu'elless'avrentinvalides,ondoitindiquerlavueenvoyerenr ponseauclientdanscecas. lenomdelaclasseActionchargedetraiterleformulaire. lenomdetouteslesvuessusceptiblesd'treenvoyesenrponseauclientune foisquelarequteattraite.LaclasseActionchoisiral'uned'ellesselonler sultatdutraitement. chaque vue fait l'objet d'une page JSP. Les exemples de vues, notamment les vues formulaires,illustrentlutilisationdunebibliothquedebalisespropresStruts. l'crituredesclassesJavabeancorrespondantauxvuesformulaires l'crituredesclassesActionchargesdetraiterlesformulaires l'crituredesventuellesclassesmtieroud'accsauxdonnes Exemplededveloppementdunformulairederecherche

iii.

DanslebutdeprsentersuccinctementledveloppementduneapplicationwebutilisantStruts, tudionslexemplesuivant.Cetexempletraitedunformulairederecherchedemilitairesetadopte larchitecturereprsentesurceschma:

11|P a g e

RapportdestageCyrilMottier 3INFOanne2006/2007

SchmadelapartierecherchedeGiproca Ilyavaittroisvues(voirCode5) Lecontrleurestdfinimanuellement.Celapermetdedfinirdesconstantesextraitesdela basededonnescommelesgradesoulesescadronsexistants(quisontdescritresdere cherche). Le servlet ntant instanci quune seule et unique fois, cela limite les accs au SGBDcommelemontrelecodesourceCode1 ListePersonneBeanprsentenannexeCode2estlaclassequimmoriselarponseditemul tiple:lensembledespersonnescorrespondantauxcritresderecherche. InfosPersonneBean, en annexe Code 3, mmorise les informations propres une seule et uniquepersonne(casdunerechercherponseunique) Enfin RechercheMulticriteresAction (Code 4) est la classe analysant les donnes du formu laireprsentsurRecherche.Multicriteres.jspetredirigesur: Affichage.Infos.Unique.jspsirponseunique Recherche.Multicriteres.jspsirponsemultipleouaucunrsultat Erreurs.Systeme.jspsiuneerreursystmesurvient(erreurSQLouexceptionJava) Les sourcesCode6 donnent lextrait du fichier strutsconfig.xml permettant la coordination des troisentits:modle,vueetcontrleur. Notionssupplmentairesutilises

iv.

DurantlacrationdeGiproca,jaigalementutilisdiffrentestechnologiesadjacentesStruts. Cespluginsadditionnelsapportaientplusieursavantagessurledveloppementetsurlutilisationde notreapplication: UtilisationdesTiles:cepluginapermisdapprofondiretdefaciliterlasparationde lesthtiqueetdelaprogrammationinterne.Cettetechnologiepermettaitdedfinir untemplaterutilisablepourlensembledusite.Ilntaitainsiplusncessaireded finiruneenttedepage(contenantlemenuetletitredelapage)etunpieddepage chaque vue, le modle de chaque page tant dfini dans un fichier XML: tiles defs.xml 12|P a g e

RapportdestageCyrilMottier 3INFOanne2006/2007 Utilisation de Validator: ce plugin permet de gnrer automatiquement les m thodes de validation dun formulaire. Il autorise galement la gnration automa tique dune prvalidation JavaScript du cot client. Cela vite ainsi des transferts inutiles dinformations avec le serveur applicatif et soulage le rseau. La dfinition des formats seffectue laide dexpressions rgulires galement dans des fichiers XML:validator.xmletvalidatorrules.xml.

III.

Conclusion

Cesneufsemainesauseindel'Armedel'Airfranaiseonttplusqu'enrichissantespourmoi. En tant que futur ingnieur, il me paraissait indispensable d'effectuer un stage me permettant de dcouvrirdenouvellestechnologies,denouvellesmthodesdetravailetunnouvelenvironnement de dveloppement. Mon sjour l'ASSI a concrtis mes attentes en rpondant ces contraintes. Celafutd'autantplusfacilequel'quipeasum'intgreretm'aiderdansmaprogressionsurleprojet Giproca.Toutenmesupervisant,MichelGAVOIS,monmatredestage,m'alaissunemargedema nuvreimportante(rsolutiondeproblmes,implmentationdesolutionspersonnelles). Leprojetdecestagetaitcomposd'unensembledetechnologiesactuelles.Bienquelaplupart decestechnologiessoientdjacquises(CSS,XHTML,Java,...)celam'apermisdemeperfectionner dansdesdomainesassezpeuutilisslorsdemaformation(JDBC).J'aigalementdcouvertdenou velles technologies telles que Struts ou les JavaServerPages. Ces technologies ayant une approche entrepreneurialed'undveloppementd'application,j'aidcouvertunetouteautremanirededve lopper.Jemesuisdoncretrouvconfrontuneprogrammationbeaucoupplusglobaleetdivise en couches. Cela permet une modification plus aise et une retouche du code plus facile pour les successeursreprenantleprojet. J'ai galement approfondi mes connaissances sur certains logiciels de dveloppement comme Eclipse, Notepad++ ou Firefox. En effet, je pense rellement tre devenu beaucoup plus productif avec l'environnement de dveloppement intgr Eclipse qu'avant ce stage. J'ai dcouvert un en sembledefonctionnalitstotalementinconnuesmonarrivedansl'quipededveloppement.Ce stageabiensrtl'occasiondedcouvrirdenouveauxlogiciels.J'ainotammentutilislelogiciel propritairedegnielogicielPowerAMC.Cederniernousapermisdecrerlesdiagrammesdeclasse etdegnrerleMCD,leMLDetleframeworkdeGiproca. Cestagem'aensuitepermisd'avoirunenouvelleapprochedudveloppementlogicielindustriel. En effet, je ne pensais pas qu'autant d'applications taient dveloppes en utilisant une interface web.J'aigalementeulachancederaliserceprojetenpassantpartouteslesphasesdedvelop pement (analyse des besoins, tude de l'existant, analyse du problme, dveloppement, tests et rdactiondedocumentation). Enfin,d'unpointdevueunpeuplustechnique,cestagem'apermisdedcouvrirune"autre"in formatique.J'aieul'occasiond'assisteretd'aiderl'installationd'unserveurdeproductionutilisant lesystmed'environnementLinux(Mandriva2006).Lesvisitesdelabaselorsdemonarrivem'ont galementmontrunenvironnementquim'taittotalementinconnu:lesgrossystmesoulesys 13|P a g e

RapportdestageCyrilMottier 3INFOanne2006/2007 tme UNIX. En effet, j'ai pu dcouvrir des serveurs totalement diffrents (au niveau hardware et software)denosmachinesclassiques.IlsutilisaientdesOScommeAIX4.3.3ouGCOS7. Enconclusion,jesuistrssatisfaitd'avoirparticiplacrationd'uneapplicationenassistant l'ensembledesphasesdedveloppement.LadcouverteduframeworkStrutsm'agalementbeau coup plu car c'est une approche trs industrielle et trs ordonne d'un projet. Ce stage m'a donc permisdetoucherdesnotionsquejen'auraisprobablementjamaisaborddanslecadred'unpro jetpersonnelouscolaire.

IV.

Annexes

14|P a g e

RapportdestageCyrilMottier 3INFOanne2006/2007

DiagrammedesclassesUMLdelapplication(Fig1)

15|P a g e

RapportdestageCyrilMottier 3INFOanne2006/2007

DiagrammedesclassesUMLdelapartieressourceshumaines(Fig2)

16|P a g e

RapportdestageCyrilMottier 3INFOanne2006/2007

CopiedcrandelinterfacegraphiquedeGiproca(Fig3)

17|P a g e

RapportdestageCyrilMottier 3INFOanne2006/2007

DiagrammedeGanttdemonstage(Fig4)

Diagrammedescasdutilisation(Fig5)

18|P a g e

RapportdestageCyrilMottier 3INFOanne2006/2007 packageassi.struts.eots.recherche; importjavax.servlet.ServletException; importorg.apache.struts.action.*; importassi.struts.eots.globals.VariablesGlobales; importassi.struts.eots.sql.*; @SuppressWarnings("serial") publicclassRechercheActionServletextendsActionServlet{ privateActionErrorserreursServlet=newActionErrors(); publicvoidinit()throwsServletException{ super.init(); //Oninitialisel'ensembledesinformationsncessaire //lapartierecherchedel'application try{ GradeSQLgraSQL=newGradeSQL(); EscadronSQLescSQL=newEscadronSQL(); SituFamilleSQLsitSQL=newSituFamilleSQL(); SexeSQLsexSQL=newSexeSQL(); VariablesGlobales.ensGrades=graSQL.getEnsembleGrades(); VariablesGlobales.ensEscadrons=escSQL.getEnsembleEscadrons(); VariablesGlobales.ensSituations=sitSQL.getEnsembleSituationDeFamille(); VariablesGlobales.ensSexes=sexSQL.getEnsembleSexes(); getServletContext().setAttribute("g_listeGrades",VariablesGlo bales.ensGrades); getServletContext().setAttribute("g_listeEscadrons",VariablesGlo bales.ensEscadrons); getServletContext().setAttribute("g_listeSituations",VariablesGlo bales.ensSituations); getServletContext().setAttribute("g_listeSexes",VariablesGlo bales.ensSexes); }catch(Exceptione){ erreursServlet.add(ActionMessages.GLOBAL_MESSAGE,newActionMes sage("InitServletError",e.toString())); } } publicActionErrorsgetErreursServlet(){returnerreursServlet;} }
RechercheActionServlet.java(Code1)

ListePersonneBean.java: packageassi.struts.eots.recherche; 19|P a g e

RapportdestageCyrilMottier 3INFOanne2006/2007 importjava.util.*; importassi.struts.eots.metiers.Personne; publicclassListePersonneBeanimplementsjava.io.Serializable{ //Cettetablecontiendraplusieurslignes //Chaqueligneseracomposedespropritssuivantes //etdanscetordre:grade,nomd'usage,prnom,nia privateString[][]table=null; publicListePersonneBean(LinkedList<Personne>ens){ table=newString[ens.size()][4]; //Enfin,onremplitaveclesinfosdelapersonne Iterator<Personne>it=ens.iterator(); inti=0; while(it.hasNext()){ intj=0; Personnecurrent=it.next(); table[i][j++]=current.getGradeActuel().lcGrade; table[i][j++]=current.nomUsage; table[i][j++]=current.prenom; table[i][j++]=current.nia+""+current.cle_nia; i++; } } publicString[][]getTable(){returntable;} publicString[]getTable(inti){returntable[i];} } InfosPersonneBean.java: packageassi.struts.eots.recherche; importassi.struts.eots.metiers.PersonneInfosSimple; publicclassInfosPersonneBeanimplementsjava.io.Serializable{ privateString[]infosPersonne; privateStringreferer; publicInfosPersonneBean(PersonneInfosSimplepers,Stringref){ infosPersonne=pers.toArray(false);; referer=ref; } publicStringgetInfosPersonne(inti){returninfosPersonne[i];} publicString[]getInfosPersonne(){returninfosPersonne;} publicStringgetReferer(){returnreferer;} }

20|P a g e

RapportdestageCyrilMottier 3INFOanne2006/2007
LesdiffrentsJavaBean(Code2)

packageassi.struts.eots.recherche; importjava.io.IOException; importjavax.servlet.ServletException; importjava.sql.*; importjava.util.LinkedList; importjavax.servlet.http.*; importorg.apache.struts.action.*; importassi.struts.eots.exception.SQLConnectionBaseException; importassi.struts.eots.metiers.Personne; importassi.struts.eots.sql.*; publicclassRechercheMulticriteresActionextendsAction{ publicActionForwardexecute(ActionMappingmapping,ActionFormform, HttpServletRequestrequest,HttpServletResponseresponse) throwsIOException,ServletException{ //Rcuprationetvrificationdeserreursdelaservlet ActionErrorserrors=((RechercheActionServlet)this.getServlet()).getErreursServlet(); if(!errors.isEmpty()){ this.saveErrors(request,errors); returnmapping.findForward("afficherErreursSysteme"); } //Dclarationd'untableaud'erreurspermettantdelesenregistrer //siuneerreursurvient. ActionErrorstabErreurs=newActionErrors(); //Rcuprationdesdonnesduformulaire Stringnom=(String)((RechercheMultiForm)form).get("nom"); Stringprenom=(String)((RechercheMultiForm)form).get("prenom"); Stringgrade=(String)((RechercheMultiForm)form).get("grade"); Stringescadron=(String)((DynaActionForm)form).get("escadron"); Stringsexe=(String)((DynaActionForm)form).get("sexe"); Stringsituation=(String)((DynaActionForm)form).get("situation"); //Onnettoieleschainesdecaractrescidessusafinqu'elles //neprovoquepasd'erreurSQL.(attentionauapostrophessimples //parexemple). nom.replaceAll("'","''"); prenom.replaceAll("'","''"); //Onseconnectelabasemaintenantetoneffectueunerecherche //enfonctiondesparamtresnonnulls. PersonneSQLpersSQL=null; try{ persSQL=newPersonneSQL(); }catch(ClassNotFoundExceptionexc1){ 21|P a g e

RapportdestageCyrilMottier 3INFOanne2006/2007 tabErreurs.add(ActionErrors.GLOBAL_MESSAGE,newActionMes sage("ProgError","ClassNotFoundExceptionlance")); saveErrors(request,tabErreurs); returnmapping.findForward("afficherErreursSysteme"); }catch(SQLConnectionBaseExceptionexc2){ tabErreurs.add(ActionErrors.GLOBAL_MESSAGE,newActionMes sage("SQLConnectionError")); saveErrors(request,tabErreurs); returnmapping.findForward("afficherErreursSysteme"); }catch(SQLExceptionexc3){ tabErreurs.add(ActionErrors.GLOBAL_MESSAGE,newActionMes sage("ProgError","SQLExceptionlanceparlacrationdustatement")); saveErrors(request,tabErreurs); returnmapping.findForward("afficherErreursSysteme"); } try{ //Suivantlenombredersultatonafficheunevuediffrente //Eneffet,sionaunseulrsultatonaffichelesinfosdela //personneenquestion,sinon(onaplusieursrsultats)onreste //surlavuerecherchemulticritresetonafficheletableaudes //personnescorrespondantesauxcritres. LinkedList<Personne>ensPersonne= persSQL.getEnsemblePersonnesParCriteres(nom,prenom,grade,escadron,sexe,situation); persSQL.setHistoriqueGrades(ensPersonne); intnb_lignes=persSQL.getNbPersonnesParCriteres(nom,prenom,grade, escadron,sexe,situation); if(nb_lignes==0){ tabErreurs.add(ActionErrors.GLOBAL_MESSAGE,newActionMes sage("NoResultsFound")); saveErrors(request,tabErreurs); returnmapping.findForward("afficherErreursRecherche"); } elseif(nb_lignes==1){ Stringnia_personne=ensPersonne.getFirst().nia; request.setAttribute("infosPersonne",newInfosPersonne Bean(persSQL.getPersonneParNIA(nia_personne),"multi")); returnmapping.findForward("afficherInfoUnique"); }else{ request.setAttribute("listePersonnes",newListePersonne Bean(ensPersonne)); returnmapping.findForward("afficherInfosMultiples"); } }catch(SQLExceptione){ tabErreurs.add(ActionErrors.GLOBAL_MESSAGE,newActionMes sage("SQLQueryError",e.toString())); 22|P a g e

RapportdestageCyrilMottier 3INFOanne2006/2007 } } } e.printStackTrace(); saveErrors(request,tabErreurs); returnmapping.findForward("afficherErreursSysteme");

RechercheMulticriteresAction.java(Code3)

Recherche.Multicriteres.jsp: <%@pagelanguage="java"contentType="text/html;charset=ISO88591"pageEncoding="ISO 88591"%> <%@tagliburi="/WEBINF/strutshtml.tld"prefix="html"%> <%@tagliburi="/WEBINF/strutsbean.tld"prefix="bean"%> <%@tagliburi="/WEBINF/strutslogic.tld"prefix="logic"%> <p>Leformulairecidessousvouspermetd'accderunerecherches'effectuantsur l'ensembledupersonnel.L'ensembledesinformationsrenseignersontbienentendufaculta tives.</p> <pclass="warning">Larecherchesurlesnomsetprnomss'effectueensuivantune rglesimpleetprcise:seullesnoms/prnomscontenantlemotdonnsontconservsl'issuede larecherche.Ainsisivoustapezseulement'AL'danslachamp'NOM',vousobtiendreztouslesnoms contenantpar'AL'(parexemple'ALBERT'ou'RIALBET').Larechercheestgalementinsensiblela cassedescaractres.</p> <html:formaction="/rechercheMulticriteres"styleId="boite_recherche"> <html:xhtml/> <tableclass="left"> <tr> <tdclass="titre_champ">Nom:</td> <tdclass="champ"><html:textname="rechercheMultiForm" property="nom"/><spanclass="exemple">ex:MARTIN,dup...</span></td> </tr> <tr> <tdclass="titre_champ">Prnom:</td> <tdclass="champ"><html:textname="rechercheMultiForm" property="prenom"/><spanclass="exemple">ex:Cline,Mic...</span></td> </tr> <tr> <tdclass="titre_champ">Grade:</td> <tdclass="champ"> <html:selectname="rechercheMultiForm"proper ty="grade"> <html:optionvalue="SansImportance">Sans Importance</html:option> <html:optionscollection="g_listeGrades" property="nomGrade"/> </html:select> </td> </tr> 23|P a g e

RapportdestageCyrilMottier 3INFOanne2006/2007 ty="escadron"> Importance</html:option> property="nomEscadron"/> value="I"/></td> value="M"/></td> value="F"/></td> <tr> </tr> <tr> </tr> <tr>

<tdclass="titre_champ">Escadron:</td> <tdclass="champ"> <!<selectsize="3"> <optionselected>Sansimportance</option> <option>Premierescadron</option> <option>Secondescadron</option> </select>> <html:selectname="rechercheMultiForm"proper <html:optionvalue="SansImportance">Sans <html:optionscollection="g_listeEscadrons"

</html:select> </td>

<tdclass="titre_champ">Sexe:</td> <tdclass="champ"> <tablestyle="width:auto"> <tr> <td>Sansimportance:</td> <td><html:radioproperty="sexe" </tr> <tr> <td>M:</td> <td><html:radioproperty="sexe" </tr> <tr> <td>F:</td> <td><html:radioproperty="sexe"

</tr> </table> </td>

<tdclass="titre_champ">Situationfamiliale:</td> <tdclass="champ"> <!<select> <optionselected>Sansimportance</option> <option>Clibataire</option> <option>EnConcubinage</option> <option>Pacs</option> <option>Mari</option> <option>Divorc</option> </select>> <html:selectname="rechercheMultiForm"proper 24|P a g e

RapportdestageCyrilMottier 3INFOanne2006/2007 ty="situation"> <html:optionvalue="SansImportance">Sans Importance</html:option> <html:optionscollection="g_listeSituations" property="lcSituation"/> </html:select> </td> </tr> <tr><tdstyle="textalign:center"cols pan="2"><html:submit>Rechercher</html:submit></td></tr> </table> </html:form> <html:errors/> <logic:presentname="listePersonnes"> <divclass="box"> <h2>Rsultatsdelarecherche</h2> <tablestyle="width:100%;"> <tr> <td> <strong>Grade</strong> </td> <td> <strong>Nom</strong> </td> <td> <strong>Prnom</strong> </td> <td> <strong>Nia</strong> </td> </tr> <logic:iterateid="indice_i"name="listePersonnes"proper ty="table"> <tr> <logic:iterateid="indice_j"name="indice_i"> <td> <bean:writename="indice_j"/> </td> </logic:iterate> </tr> </logic:iterate> </table> </div> </logic:present> Affichage.Infos.Personne.jsp: <%@pagelanguage="java"contentType="text/html;charset=ISO88591"pageEncoding="ISO 25|P a g e

RapportdestageCyrilMottier 3INFOanne2006/2007 88591"%> <%@tagliburi="/WEBINF/strutshtml.tld"prefix="html"%> <%@tagliburi="/WEBINF/strutsbean.tld"prefix="bean"%> <%@tagliburi="/WEBINF/strutslogic.tld"prefix="logic"%> <%@pageimport="assi.struts.eots.recherche.InfosPersonneBean"%> <divclass="box"> <h2>Informationsgnralessur <bean:writename="infosPersonne"property="infosPersonne[0]"/> <% String[]tab=((InfosPersonne Bean)request.getAttribute("infosPersonne")).getInfosPersonne(1).split(""); out.print(tab[0]); %> </h2> <imgsrc="http://annuv2.air.defense.gouv.fr/images/anonyme.jpg" style="float:right;height:150px;width:120px;"/> <divclass="sous_bloc"> <h3>Noms</h3> <divclass="forma_ligne"> <spanclass="titre_ligne">Nomd'usage::</span> <spanclass="valeur_ligne"><bean:write name="infosPersonne"property="infosPersonne[0]"/></span> </div> <divclass="forma_ligne"> <spanclass="titre_ligne">Nompatronymique::</span> <spanclass="valeur_ligne"><bean:write name="infosPersonne"property="infosPersonne[3]"/></span> </div> <divclass="forma_ligne"> <spanclass="titre_ligne">Prnoms::</span> <spanclass="valeur_ligne"><bean:write name="infosPersonne"property="infosPersonne[1]"/></span> </div> </div> <divclass="sous_bloc"> <h3>Identifiants</h3> <divclass="forma_ligne"> <spanclass="titre_ligne">NIA::</span> <spanclass="valeur_ligne"><bean:write name="infosPersonne"property="infosPersonne[2]"/></span> </div> <divclass="forma_ligne"> <spanclass="titre_ligne">ClNIA::</span> <spanclass="valeur_ligne"><bean:write name="infosPersonne"property="infosPersonne[4]"/></span> </div> <divclass="forma_ligne"> <spanclass="titre_ligne">NID::</span> <spanclass="valeur_ligne"><bean:write 26|P a g e

RapportdestageCyrilMottier 3INFOanne2006/2007 name="infosPersonne"property="infosPersonne[5]"/></span> </div> <divclass="forma_ligne"> <spanclass="titre_ligne">Badge::</span> <spanclass="valeur_ligne"><bean:write name="infosPersonne"property="infosPersonne[6]"/></span> </div> </div> <divclass="sous_bloc"> <h3>Contact</h3> <divclass="forma_ligne"> <spanclass="titre_ligne">Numrotlphonefixe::</span> <spanclass="valeur_ligne"><bean:write name="infosPersonne"property="infosPersonne[8]"/></span> </div> <divclass="forma_ligne"> <spanclass="titre_ligne">Numrotelphoneportable ::</span> <spanclass="valeur_ligne"><bean:write name="infosPersonne"property="infosPersonne[9]"/></span> </div> <divclass="forma_ligne"> <spanclass="titre_ligne">Courriel::</span> <spanclass="valeur_ligne"><bean:write name="infosPersonne"property="infosPersonne[10]"/></span> </div> </div> <divclass="forma_ligne"> <spanclass="titre_ligne">Datedenaissance::</span> <spanclass="valeur_ligne"><bean:writename="infosPersonne" property="infosPersonne[7]"/></span> </div> <divclass="forma_ligne"> <spanclass="titre_ligne">VolantaireOPEX::</span> <spanclass="valeur_ligne"><bean:writename="infosPersonne" property="infosPersonne[11]"/></span> </div> <divclass="forma_ligne"> <spanclass="titre_ligne">VolantaireOPIN::</span> <spanclass="valeur_ligne"><bean:writename="infosPersonne" property="infosPersonne[12]"/></span> </div> <divclass="forma_ligne"> <spanclass="titre_ligne">VolantaireOutreMer::</span> <spanclass="valeur_ligne"><bean:writename="infosPersonne" property="infosPersonne[13]"/></span> </div> </div> <logic:equalname="infosPersonne"property="referer"value="nia"> <html:linkpage="/retourRechercheNIA.do">Retourlarecherche 27|P a g e

RapportdestageCyrilMottier 3INFOanne2006/2007 NIA</html:link> </logic:equal> <logic:equalname="infosPersonne"property="referer"value="multi"> <html:linkpage="/retourRechercheMulticriteres.do">Retourlarecherche multicritres</html:link> </logic:equal> Erreurs.Sytemes.jsp: <%@pagelanguage="java"contentType="text/html;charset=ISO88591"pageEncoding="ISO 88591"%> <%@tagliburi="/WEBINF/strutshtml.tld"prefix="html"%> <p>Leserreurssystmesuivantessesontproduites:</p> <html:errors/> <html:linkpage="/retourRechercheMulticriteres.do">Retourlare cherche</html:link>
Lesvuesdelarecherche(Code4)

<?xmlversion="1.0"encoding="iso88591"?> <!DOCTYPEstrutsconfigPUBLIC "//ApacheSoftwareFoundation//DTDStrutsConfiguration1.3//EN" "http://36.74.12.66:8080/projet/dtds/strutsconfig_1_3.dtd"> <strutsconfig> <formbeans> <formbeanname="rechercheMultiForm" type="assi.struts.eots.recherche.RechercheMultiForm"> <formpropertyname="nom"type="java.lang.String"/> <formpropertyname="prenom"type="java.lang.String"/> <formpropertyname="grade"type="java.lang.String"/> <formpropertyname="escadron"type="java.lang.String"/> <formpropertyname="sexe"type="java.lang.String"/> <formpropertyname="situation"type="java.lang.String"/> </formbean> </formbeans> <globalforwards> <forwardname="aller_vers_index_recherches"path="indexRecherches.do"/> </globalforwards> <actionmappings> <!Dbutdesactionspourlarecherchemulticritres> <action path="/rechercheMulticriteres" name="rechercheMultiForm" 28|P a g e

RapportdestageCyrilMottier 3INFOanne2006/2007 validate="false" scope="session" type="assi.struts.eots.recherche.RechercheMulticriteresAction"> <forwardname="afficherErreursSysteme"path="erreurs.systeme"/> <forwardname="afficherInfoUnique"path="infos.personne"/> <forwardname="afficherInfosMultiples"path="recherche.multicriteres"/> <forwardname="afficherErreursRecherche"path="recherche.multicriteres" /> </action> <action path="/retourRechercheMulticriteres" parameter="recherche.multicriteres" type="org.apache.struts.actions.ForwardAction"/> <action path="/accesRechercheMulticriteres" parameter="recherche.multicriteres" type="org.apache.struts.actions.ForwardAction"/> <!Findesactionspourlarecherchemulticritres> </actionmappings> <messageresourcesparameter="assi.struts.eots.recherche.AppsResources"null="false"/> <pluginclassName="org.apache.struts.tiles.TilesPlugin"> <setpropertyproperty="definitionsconfig"value="/WEBINF/tilesdefs.xml"/> <setpropertyproperty="moduleAware"value="true"/> <setpropertyproperty="definitionsparservalidate"value="true"/> </plugin> <pluginclassName="org.apache.struts.validator.ValidatorPlugIn"> <setpropertyproperty="pathnames"value="/WEBINF/validatorrules.xml,/WEB INF/validator.xml"/> </plugin> </strutsconfig>
Strutsconfig.xml(Code5)

V.

Rfrences
ApacheSoftwareFoundation(http://www.apache.org) LeframeworkStruts(http://struts.apache.org) Siteofficieldel'Armedel'AirMinistredelaDfense(http://www.defense.gouv.fr/air/) PostgreSQL,leSGBDOpenSourcederfrence(http://www.postgresqlfr.org) Subversion:Tigris.org(http://subversion.tigris.org) ApacheTomcat(http://tomcat.apache.org) W3C,TheWorldWideWebConsortium(http://www.w3c.org)

29|P a g e

RapportdestageCyrilMottier 3INFOanne2006/2007

VI.

Glossaire
ASSI:AntennedeSoutiendesSystmesdInformations CDC:CentredeDtectionetdeContrle Cdt:Commandant Cne:Capitaine Giproca:GestiondelInstructionPRofessionnelledesOprateursetContrleursAriens (nomdonnelapplicationpermettantcettegestion) JDBC:JavaDataBaseConnectivity JSP:JavaServerPages Lcl:LieutenantColonel Maj:Major MCD:ModleConceptueldeDonnes MVC:ModleVueContrleur OS:OperatingSystem(systmedexploitation) SGBD:SystmedeGestiondeBasedeDonnes Sgt:Sergent SIGAPAIR:SystmedInformationdeGestionetdAdministrationduPersonneldelarmede lAIR(NomdurseaudesressourceshumainesdelArmedelAir) W3C:WorldWideWebConsortium WTP:WebToolsPlatform

30|P a g e

Vous aimerez peut-être aussi