Author: glandais Date: 2008-01-10 16:00:55 +0000 (Thu, 10 Jan 2008) New Revision: 110 Added: trunk/simexplorer-si/src/simexplore-is.xsd trunk/simexplorer-si/src/simexplorer-is.xml trunk/simexplorer-si/src/site/fr/rst/devel/architecture.abw trunk/simexplorer-si/src/site/fr/rst/devel/architecture.rst trunk/simexplorer-si/src/site/fr/rst/devel/architecture.xhtml trunk/simexplorer-si/src/site/fr/rst/devel/authorization.jpg trunk/simexplorer-si/src/site/fr/rst/devel/authorization.uxf trunk/simexplorer-si/src/site/fr/rst/devel/developpement.abw trunk/simexplorer-si/src/site/fr/rst/devel/diagramme1.dia trunk/simexplorer-si/src/site/fr/rst/devel/diagramme1.png trunk/simexplorer-si/src/site/fr/rst/devel/implementation.rst trunk/simexplorer-si/src/site/fr/rst/devel/migration.rst trunk/simexplorer-si/src/site/fr/rst/devel/nok.png trunk/simexplorer-si/src/site/fr/rst/devel/ok.png trunk/simexplorer-si/src/site/fr/rst/devel/screenshots/ trunk/simexplorer-si/src/site/fr/rst/devel/screenshots/Screenshot-1.png trunk/simexplorer-si/src/site/fr/rst/devel/screenshots/Screenshot-2.png trunk/simexplorer-si/src/site/fr/rst/devel/screenshots/Screenshot-3.png trunk/simexplorer-si/src/site/fr/rst/devel/screenshots/Screenshot-4.png trunk/simexplorer-si/src/site/fr/rst/devel/screenshots/Screenshot-5.png trunk/simexplorer-si/src/site/fr/rst/devel/screenshots/Screenshot.png trunk/simexplorer-si/src/site/fr/rst/devel/sequence1.uxf trunk/simexplorer-si/src/site/fr/rst/devel/template.uxf trunk/simexplorer-si/src/site/fr/rst/devel/uok.png trunk/simexplorer-si/src/site/fr/rst/devel/version.uxf trunk/simexplorer-si/src/test.xml trunk/simexplorer-si/src/test.xsd trunk/simexplorer-si/src/xmi/images/applications.png trunk/simexplorer-si/src/xmi/images/authorization.png trunk/simexplorer-si/src/xmi/images/storage.png trunk/simexplorer-si/src/xmi/specsSI.xmi Modified: trunk/simexplorer-si/src/xmi/images/data.png trunk/simexplorer-si/src/xmi/images/entities.png trunk/simexplorer-si/src/xmi/simexplorer-si.zargo Log: Documents de travail Added: trunk/simexplorer-si/src/simexplore-is.xsd =================================================================== Added: trunk/simexplorer-si/src/simexplorer-is.xml =================================================================== Added: trunk/simexplorer-si/src/site/fr/rst/devel/architecture.abw =================================================================== --- trunk/simexplorer-si/src/site/fr/rst/devel/architecture.abw (rev 0) +++ trunk/simexplorer-si/src/site/fr/rst/devel/architecture.abw 2008-01-10 16:00:55 UTC (rev 110) @@ -0,0 +1,420 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE abiword PUBLIC "-//ABISOURCE//DTD AWML 1.0 Strict//EN" "http://www.abisource.com/awml.dtd"> +<abiword template="false" version="2.4.6" xmlns:svg="http://www.w3.org/2000/svg" xid-max="480" xmlns:dc="http://purl.org/dc/elements/1.1/" fileformat="1.1" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:awml="http://www.abisource.com/awml.dtd" xmlns="http://www.abisource.com/awml.dtd" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" props="dom-dir:ltr; document-footnote-restart-section:0; document-endnote-type:numeric; document-endnote-place-enddoc:1; document-endnote-initial:1; lang:fr-FR; document-endnote-restart-section:0; document-footnote-restart-page:0; document-footnote-type:numeric; document-footnote-initial:1; document-endnote-place-endsection:0"> +<!-- ======================================================================== --> +<!-- This file is an AbiWord document. --> +<!-- AbiWord is a free, Open Source word processor. --> +<!-- More information about AbiWord is available at http://www.abisource.com/ --> +<!-- You should not edit this file by hand. --> +<!-- ======================================================================== --> + +<metadata> +<m key="dc.format">application/x-abiword</m> +<m key="abiword.generator">AbiWord</m> +</metadata> +<history version="60" edit-time="56556" last-saved="1196101722" uid="e5b61a06-9845-11dc-84e0-f93525e6000d"> +<version id="1" started="1195658750" uid="0abf655a-9846-11dc-84e0-f93525e6000d" auto="0" top-xid="328"/> +<version id="3" started="1195658775" uid="55ff20f0-984b-11dc-97cb-8f99009bf653" auto="0" top-xid="330"/> +<version id="11" started="1195723478" uid="2b673fac-990a-11dc-8d16-acd61ab3f596" auto="0" top-xid="332"/> +<version id="14" started="1195813646" uid="5d32eb8a-99af-11dc-8b35-982ad6d9719b" auto="0" top-xid="437"/> +<version id="60" started="1196067628" uid="6a36dbb6-9c4d-11dc-9e05-9e041a8dd754" auto="0" top-xid="468"/> +</history> +<styles> +<s type="P" name="Normal" followedby="Current Settings" props="font-family:Times New Roman; margin-top:0pt; text-align:left; font-variant:normal; margin-left:0pt; bgcolor:transparent; widows:2; font-style:normal; text-indent:0in; text-position:normal; font-weight:normal; margin-right:0pt; font-size:12pt; margin-bottom:0pt; text-decoration:none; line-height:1.0; color:000000; lang:fr-FR; font-stretch:normal"/> +<s type="C" name="Reference" props="font-size:10pt"/> +</styles> +<pagesize pagetype="Custom" orientation="portrait" width="17.715278" height="11.691667" units="in" page-scale="1.000000"/> +<section xid="1" props="page-margin-right:25.4mm; columns:1; page-margin-header:0.0mm; page-margin-left:25.4mm; page-margin-footer:0.0mm; page-margin-top:25.4mm; page-margin-bottom:25.4mm"> +<p style="Normal" xid="2"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">=======================================</c></p> +<p style="Normal" xid="3" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">SimExplorer SI - Dossier d'architecture</c></p> +<p style="Normal" xid="4"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">=======================================</c></p> +<p style="Normal" xid="5"></p> +<p style="Normal" xid="6" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. contents:: :depth: 3</c></p> +<p style="Normal" xid="7" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. sectnum::</c></p> +<p style="Normal" xid="8"></p> +<p style="Normal" xid="9" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Introduction</c></p> +<p style="Normal" xid="10"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">============</c></p> +<p style="Normal" xid="11"></p> +<p style="Normal" xid="12" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Ce document détaille la solution proposée en réponse à la demande d'un outil d'exploration de simulation.</c></p> +<p style="Normal" xid="13"></p> +<p style="Normal" xid="14" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Architecture conceptuelle</c></p> +<p style="Normal" xid="15"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">=========================</c></p> +<p style="Normal" xid="16"></p> +<p style="Normal" xid="17" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Rappel des fonctions de l'application</c></p> +<p style="Normal" xid="18"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">-------------------------------------</c></p> +<p style="Normal" xid="19"></p> +<p style="Normal" xid="20" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">L'application permet l'utilisation d'outils de simulation dans un environnement multi-utilisateurs. Un mode client léger met à disposition la gestion des utilisateurs et la consultation des paramÚtres des simulations. Ce mode est accessible avec un simple navigateur. Avec un logiciel fourni (nommé aussi client lourd), l'utilisateur peut de même gérer les utilisateurs, mais aussi les simulations afin de les lancer. Une fonction de synchronisation met à jour les données locales par rapport aux données centralisées.</c></p> +<p style="Normal" xid="21"></p> +<p style="Normal" xid="22" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Chaque fonction est limitée en fonction des droits de l'utilisateur connecté. Cet utilisateur, en fonction des groupes auxquels il appartient, obtient des droits sur les simulations et les utilisateurs (création, modification, suppression).</c></p> +<p style="Normal" xid="23"></p> +<p style="Normal" xid="24" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Les modifications des paramÚtres des simulations sont sauvegardé afin de conserver un historique. Cet historique se synchronise avec les données centralisées et les données de l'utilisateur.</c></p> +<p style="Normal" xid="25"></p> +<p style="Normal" xid="26" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Décomposition de l'application en modules</c></p> +<p style="Normal" xid="27"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">-----------------------------------------</c></p> +<p style="Normal" xid="28"></p> +<p style="Normal" xid="29" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">L'authentification s'appuie sur un module unique. Celui ci permet d'authentifier les utilisateurs se connectant via le client léger ou le client lourd. Un premier niveau impératif nécessite l'appartenance de l'utilisateur à un groupe destiné à contenir les accrédités à utiliser l'application. Ce module fourni aussi les groupes d'appartenance d'un utilisateur, afin de déterminer ses droits. Enfin, ce module permet l'édition des utilisateurs et des groupes par les utilisateurs avec pouvoir.</c></p> +<p style="Normal" xid="30"></p> +<p style="Normal" xid="31" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Les autorisations sont gérées conjointement avec l'authentification. Une simulation a des droits associés en fonction de son propriétaire et son groupe d'appartenance. Ses droits sont décorélés des données métier, seul un identifiant technique permet aux services d'interroger le module d'autorisation afin de valider l'accÚs à une simulation. Le niveau de granularité des droits est similaire à la gestion des modes sur les fichiers. Les droits sur les actions création/modification/exécution sont alloués en fonction de l'utilisateur/groupe/autre.</c></p> +<p style="Normal" xid="32"></p> +<p style="Normal" xid="33" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Le stockage est un module dupliqué à la fois sur le serveur gérant les données centralisées et sur chaque client lourd. Celui-ci a la charge de conserver les données dans une base, et de stocker les données volumineuses dans le systÚme de fichier. Il est capable de persister les objets utilisés par l'application. Un mécanisme de synchronisation permet de mettre à jour les données locales et les données centralisées en fonction de rÚgles de gestion de versionnement.</c></p> +<p style="Normal" xid="34"></p> +<p style="Normal" xid="35" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">La logique métier de l'application est contenue dans des services. Ceux ci peuvent être exécutés localement, lors de l'exécution d'une simulation sur le client lourd par exemple. Certains services sont présents uniquement sur le serveur, parce qu'ils nécessitent les modules d'autorisation et les données centralisées. Le client lourd fait alors appel à ces services dans un mode appel distant.</c></p> +<p style="Normal" xid="36"></p> +<p style="Normal" xid="37" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Le module d'interface est composé de deux parties. CÃŽté serveur, l'utilisateur accÚde avec un navigateur Internet standard à l'application. Les pages sont servies par un serveur web utilisant un contrÃŽleur. Celui ci interagit avec les services afin de présenter les données à l'utilisateur. CÃŽté client, l'interface graphique s'appuie aussi sur un contrÃŽleur utilisant les services.</c></p> +<p style="Normal" xid="38"></p> +<p style="Normal" xid="39"></p> +<p style="Normal" xid="40" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Exigences et contraintes</c></p> +<p style="Normal" xid="41"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">------------------------</c></p> +<p style="Normal" xid="42"></p> +<p style="Normal" xid="43" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Contraintes d'urbanisme</c></p> +<p style="Normal" xid="44"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">_______________________</c></p> +<p style="Normal" xid="45"></p> +<p style="Normal" xid="46" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Le client lourd doit s'intégrer dans SimExplorer RCP.</c></p> +<p style="Normal" xid="47"></p> +<p style="Normal" xid="48" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Les services déployés sur le serveur et mis à disposition du client lourd doivent pouvoir être réutilisés par des applications tierces.</c></p> +<p style="Normal" xid="49"></p> +<p style="Normal" xid="50" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Le serveur doit être en mesure de lancer des simulations et de récupérer les résultats.</c></p> +<p style="Normal" xid="51"></p> +<p style="Normal" xid="52" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Exigences et contraintes liées à des fonctionnalités particuliÚres</c></p> +<p style="Normal" xid="53"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">__________________________________________________________________</c></p> +<p style="Normal" xid="54"></p> +<p style="Normal" xid="55" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Un serveur d'authentification.existant pourra être réutilisé dans la mesure où il est accessible via des protocoles standards. Une note précisant le fonctionnement de ce serveur devra être fourni afin de rendre possible son utilisation. ex : LDAP</c></p> +<p style="Normal" xid="56"></p> +<p style="Normal" xid="57" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Les appels de lancement des simulations devra être formalisés dans une note. Ceux ci pourront alors être intégrés dans les services.</c></p> +<p style="Normal" xid="58"></p> +<p style="Normal" xid="59" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">L'authentification implique l'établissement d'une connexion sécurisée entre le client et le serveur, afin de ne pas faire passer en clair les mots de passe sur le réseau. Le serveur disposera d'un certificat afin de crypter les flux.</c></p> +<p style="Normal" xid="60"></p> +<p style="Normal" xid="61" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Contraintes d'ergonomie</c></p> +<p style="Normal" xid="62"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">_______________________</c></p> +<p style="Normal" xid="63"></p> +<p style="Normal" xid="64" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">L'application web se doit d'être compatible avec les navigateurs récents : Firefox2+ et IE6+.</c></p> +<p style="Normal" xid="331" props="text-align:left; dom-dir:ltr"></p> +<p style="Normal" xid="332" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">L'application client lourd est un application standard type bureautique, et doit être compatible avec le maximum de plateformes. Le lancement de l'application doit se faire simplement par un raccourci.</c></p> +<p style="Normal" xid="65"></p> +<p style="Normal" xid="66" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Volumétrie</c></p> +<p style="Normal" xid="67"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">__________</c></p> +<p style="Normal" xid="68"></p> +<p style="Normal" xid="69" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Les données associées aux simulations sont parfois trÚs volumineuses (>100Mo). Ces données doivent être stockées en local mais aussi sur le serveur, avec des transferts entre le client et le serveur.</c></p> +<p style="Normal" xid="70"></p> +<p style="Normal" xid="71" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Contraintes et exigences liées à l'exploitation</c></p> +<p style="Normal" xid="72"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">_______________________________________________</c></p> +<p style="Normal" xid="73"></p> +<p style="Normal" xid="74" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Lors de la mise à jour de l'application, la base de données doit être synchrone avec l'applicatif. De même, le client lourd doit être à jour par rapport à la version déployée sur le serveur.</c></p> +<p style="Normal" xid="75"></p> +<p style="Normal" xid="76" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Les données doivent pouvoir être simplement sauvegardées et restaurées.</c></p> +<p style="Normal" xid="77"></p> +<p style="Normal" xid="78" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Architecture logique</c></p> +<p style="Normal" xid="79"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">====================</c></p> +<p style="Normal" xid="80"></p> +<p style="Normal" xid="81" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Schéma d'architecture logique</c></p> +<p style="Normal" xid="82"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">-----------------------------</c></p> +<p style="Normal" xid="83"></p> +<p style="Normal" xid="84" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:fr-FR">.. image::</c><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt"> diagramme1.png</c></p> +<p style="Normal" xid="85" props="text-align:left; dom-dir:ltr"></p> +<p style="Normal" xid="87" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Description des flux</c></p> +<p style="Normal" xid="88"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">--------------------</c></p> +<p style="Normal" xid="89"></p> +<p style="Normal" xid="90" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt"> #. Serveur web</c></p> +<p style="Normal" xid="91"></p> +<p style="Normal" xid="92" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt"> L'interface client léger passe par ce flux. L'authentification se fera en HTTPS, le reste de l'application pourra être au choix en HTTP ou en HTTPS. Le contenu sera constitué de pages XHTML compatibles avec les navigateurs récents.</c></p> +<p style="Normal" xid="93"></p> +<p style="Normal" xid="94" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt"> #. Interface client lourd</c></p> +<p style="Normal" xid="95"></p> +<p style="Normal" xid="96" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt"> C'est à travers ce canal que l'utilisateur interagit avec l'application.</c></p> +<p style="Normal" xid="97"></p> +<p style="Normal" xid="98" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt"> #. Serveur d'authentification</c></p> +<p style="Normal" xid="99"></p> +<p style="Normal" xid="100" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt"> Le framework d'authentification utilise un serveur externe afin d'authentifier les utilisateurs. Ce flux dépend du serveur.</c></p> +<p style="Normal" xid="101"></p> +<p style="Normal" xid="102" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt"> #. Autorisations</c></p> +<p style="Normal" xid="103"></p> +<p style="Normal" xid="104" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt"> Toutes les informations relatives à la protection des accÚs aux simulations sont retrouvées via ce lien vers une base de données.</c></p> +<p style="Normal" xid="105"></p> +<p style="Normal" xid="106" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt"> #. Persistance cÃŽté serveur</c></p> +<p style="Normal" xid="107"></p> +<p style="Normal" xid="108" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt"> Les objets sont stockés dans une base de donnée à travers ce flux.</c></p> +<p style="Normal" xid="109"></p> +<p style="Normal" xid="110" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt"> #. Persistance cÃŽté client</c></p> +<p style="Normal" xid="111"></p> +<p style="Normal" xid="112" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt"> De même, les objets sont stockés dans une base de données. Nous sommes ici en présence d'une base de données embarquée, afin de rendre le client lourd autonome.</c></p> +<p style="Normal" xid="113"></p> +<p style="Normal" xid="114" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt"> #. SystÚme de fichiers serveur</c></p> +<p style="Normal" xid="115"></p> +<p style="Normal" xid="116" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt"> Les données volumineuses sont stockées dans le systÚme de fichier plutÃŽt que dans la base.</c></p> +<p style="Normal" xid="117"></p> +<p style="Normal" xid="118" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt"> #. SystÚme de fichiers client</c></p> +<p style="Normal" xid="119"></p> +<p style="Normal" xid="120" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt"> De la même façon que sur le serveur, les données sont stockées sous forme de fichiers dans le systÚme de fichier de l'utilisateur.</c></p> +<p style="Normal" xid="121"></p> +<p style="Normal" xid="122" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt"> #. Services distants</c></p> +<p style="Normal" xid="123"></p> +<p style="Normal" xid="124" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt"> La communication entre le client lourd et le serveur passe par ce flux. Celui ci est crypté et intégré à haut niveau dans l'application. Les appels de service se font de façon transparente, de façon similaire à un appel local.</c></p> +<p style="Normal" xid="125"></p> +<p style="Normal" xid="126"></p> +<p style="Normal" xid="127" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Initialisation des entrepÃŽts de données</c></p> +<p style="Normal" xid="128"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">---------------------------------------</c></p> +<p style="Normal" xid="129"></p> +<p style="Normal" xid="130" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Pour l'authentification, un groupe d'utilisateur doit être créé afin d'accueillir les personnes accréditées. De plus, un groupe d'administrateur avec un utilisateur doit exister afin de permettre l'administration des utilisateurs. Ces deux groupes seront à spécifier lors de l'installation.</c></p> +<p style="Normal" xid="131"></p> +<p style="Normal" xid="132" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Si l'application doit utiliser un serveur d'authentification existant, le groupe des administrateurs doit avoir les droits de lister les utilisateurs amenés à être ajouté aux personnes accréditées.</c></p> +<p style="Normal" xid="133"></p> +<p style="Normal" xid="134" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Les bases de données d'autorisation et de stockage peuvent être initialisés lors du lancement de l'application de façon automatique. Si les droits de création de table et de champs n'est pas autorisé pour l'application, un script doit être exécuté avant le déploiement d'une nouvelle version afin de mettre à jour la base et migrer les données.</c></p> +<p style="Normal" xid="135"></p> +<p style="Normal" xid="136" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">CÃŽté client, le problÚme ne se pose pas, la base de données est embarquée dans l'application.</c></p> +<p style="Normal" xid="137"></p> +<p style="Normal" xid="138" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Les modules de l'application</c></p> +<p style="Normal" xid="139"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">----------------------------</c></p> +<p style="Normal" xid="140"></p> +<p style="Normal" xid="141" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Le module authentification</c></p> +<p style="Normal" xid="142"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">__________________________</c></p> +<p style="Normal" xid="143"></p> +<p style="Normal" xid="144" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">La technologie JAAS (Java Authentication and Authorization Service) a été retenue. La partie autorisation est utilisée uniquement pour valider l'accÚs de l'utilisateur authentifié à l'application.</c></p> +<p style="Normal" xid="145"></p> +<p style="Normal" xid="146" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Plusieurs méthodes d'authentification sont déjà implantées (login/mot de passe/groupes dans une base de données avec JDBC, LDAP, ...).</c></p> +<p style="Normal" xid="147"></p> +<p style="Normal" xid="148" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Les modules services</c></p> +<p style="Normal" xid="149"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">____________________</c></p> +<p style="Normal" xid="150"></p> +<p style="Normal" xid="151" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Les services sont contenus dans des EJB (Entreprise Java Bean). Chaque service est un composant disposant d'outils facilitant la mise en oeuvre des transactions et la distribution.</c></p> +<p style="Normal" xid="152"></p> +<p style="Normal" xid="153" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Ces services sont destinés à contenir toute la logique métier.</c></p> +<p style="Normal" xid="154"></p> +<p style="Normal" xid="155" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Les services contiennent aussi le contexte d'authentification de l'appelant.</c></p> +<p style="Normal" xid="156"></p> +<p style="Normal" xid="157" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Le module autorisation </c></p> +<p style="Normal" xid="158"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">______________________</c></p> +<p style="Normal" xid="159"></p> +<p style="Normal" xid="160" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Grâce au contexte d'authentification des EJB, les appels au module d'autorisation vont sécurisés les accÚs aux données.</c></p> +<p style="Normal" xid="161"></p> +<p style="Normal" xid="162" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Le module stockage</c></p> +<p style="Normal" xid="163"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">__________________</c></p> +<p style="Normal" xid="164"></p> +<p style="Normal" xid="165" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Ce module repose en grande partie sur la technologie JPA (Java Persistence API). Elle permet un mapping entre les objets et la base de données de façon transparente et interropérable. Le choix de la base de données n'est alors plus vérouillé, de nombreux systÚmes étant compatibles. Afin de gérer les volumétries associées aux simulations, certaines propriétés seront stockées sur le disque dur.</c></p> +<p style="Normal" xid="166"></p> +<p style="Normal" xid="167" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Lors de l'accÚs à une donnée, le module gérant les autorisations est appelé afin de vérifier les droits. De même, lorsque l'utilisateur crée une nouvelle entité, les droits lui sont associés via ce service.</c></p> +<p style="Normal" xid="168"></p> +<p style="Normal" xid="169" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Le module interface</c></p> +<p style="Normal" xid="170"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">___________________</c></p> +<p style="Normal" xid="171"></p> +<p style="Normal" xid="172" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">CÃŽté client léger, le site est réalisé avec Tapestry 5. Ce framework apporte le développement orienté objet au applications web. De nombreuses fonctionnalités sont incluses et facilitent le développement.</c></p> +<p style="Normal" xid="173"></p> +<p style="Normal" xid="174" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">CÃŽté client lourd, le framework JAXX est utilisé. Ce framework transforme des XML décrivant l'interface en classes Java.</c></p> +<p style="Normal" xid="175"></p> +<p style="Normal" xid="474"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Développement de l'application</c></p> +<p style="Normal" xid="177"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">------------------------------</c></p> +<p style="Normal" xid="178"></p> +<p style="Normal" xid="179" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Lors de la construction de Simexplorer SI, nous utilisons le framework ToPIA ainsi que différents outils développés par Code Lutin. Ceux ci sont tous sous licence LGPL.</c></p> +<p style="Normal" xid="180"></p> +<p style="Normal" xid="181" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">A partir du modÚle conceptuel, le process de développement génÚre une partie de l'application, entre autre sous la forme d'interfaces à implémenter. Nous obtenons alors :</c></p> +<p style="Normal" xid="182" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt"> - les entités persistées</c></p> +<p style="Normal" xid="183" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt"> - les interfaces des services</c></p> +<p style="Normal" xid="184" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt"> - les interfaces des composants des pages web</c></p> +<p style="Normal" xid="185"></p> +<p style="Normal" xid="186"></p> +<p style="Normal" xid="187" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Architecture physique</c></p> +<p style="Normal" xid="188"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">=====================</c></p> +<p style="Normal" xid="189"></p> +<p style="Normal" xid="190" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Architecture logicielle</c></p> +<p style="Normal" xid="191"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">-----------------------</c></p> +<p style="Normal" xid="192"></p> +<p style="Normal" xid="193" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">L'ensemble de l'application est développée avec le langage Java. La version de référence lors du développement de l'application est JRE 6 Update 3.</c></p> +<p style="Normal" xid="194"></p> +<p style="Normal" xid="195" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Serveur Web</c></p> +<p style="Normal" xid="196"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">___________</c></p> +<p style="Normal" xid="197"></p> +<p style="Normal" xid="198" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Le serveur web est constitué d'un Apache 2.2. Le module mod_proxy_ajp permet de ne pas lancer le serveur d'application en root et d'avoir accÚs au port HTTP et HTTPS.</c></p> +<p style="Normal" xid="200"></p> +<p style="Normal" xid="201" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Serveur Applicatif</c></p> +<p style="Normal" xid="202"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">__________________</c></p> +<p style="Normal" xid="203"></p> +<p style="Normal" xid="204"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">+------------------------+------------------------+------------------------+------------------------+------------------------+</c></p> +<p style="Normal" xid="205" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">| |JBoss 4.2.2 GA |Geronimo JEE5 2.0.2 |JOnAS 5.0 M1 |GlassFish V2 |</c></p> +<p style="Normal" xid="206"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">+========================+========================+========================+========================+========================+</c></p> +<p style="Normal" xid="207" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">|EJB3 | |ok| [#jba]_ | |ok| [#grc]_ | |ok| [#joa]_ | |uok| |</c></p> +<p style="Normal" xid="208"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">+------------------------+------------------------+------------------------+------------------------+------------------------+</c></p> +<p style="Normal" xid="209" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">|- RemoteBinding | |ok| [#jbb]_ | |ok| [#grd]_ | |uok| | |uok| |</c></p> +<p style="Normal" xid="210"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">+------------------------+------------------------+------------------------+------------------------+------------------------+</c></p> +<p style="Normal" xid="211" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">|- SSL | |ok| [#jbc]_ | |ok| [#gra]_ | |uok| | |ok| [#gfd]_ |</c></p> +<p style="Normal" xid="212"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">+------------------------+------------------------+------------------------+------------------------+------------------------+</c></p> +<p style="Normal" xid="213" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">|- SecurityDomain | |ok| [#jbd]_ | |uok| | |ok| [#joc]_ | |ok| [#gfe]_ |</c></p> +<p style="Normal" xid="214"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">+------------------------+------------------------+------------------------+------------------------+------------------------+</c></p> +<p style="Normal" xid="215" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">|- WebService | |ok| [#jbe]_ | |ok| [#gre]_ | |ok| [#job]_ | |ok| [#gfa]_ |</c></p> +<p style="Normal" xid="216"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">+------------------------+------------------------+------------------------+------------------------+------------------------+</c></p> +<p style="Normal" xid="217" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">| * Sécurisé | |ok| [#jbe]_ | |uok| [#gre]_ | |uok| | |ok| [#gff]_ |</c></p> +<p style="Normal" xid="218"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">+------------------------+------------------------+------------------------+------------------------+------------------------+</c></p> +<p style="Normal" xid="219" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">| * WebServiceContext | |ok| [#jbe]_ | |ok| [#gre]_ | |ok| [#job]_ | |uok| |</c></p> +<p style="Normal" xid="220"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">+------------------------+------------------------+------------------------+------------------------+------------------------+</c></p> +<p style="Normal" xid="221" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">|- SessionContext | |uok| | |uok| | |uok| | |uok| |</c></p> +<p style="Normal" xid="222"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">+------------------------+------------------------+------------------------+------------------------+------------------------+</c></p> +<p style="Normal" xid="223" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">|JPA | |ok| [#jbf]_ | |ok| [#grf]_ | |ok| [#jof]_ | |ok| [#gfb]_ |</c></p> +<p style="Normal" xid="224"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">+------------------------+------------------------+------------------------+------------------------+------------------------+</c></p> +<p style="Normal" xid="225" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">|- XML datasource | |ok| [#jbg]_ | |ok| [#grj]_ | |ok| [#joe]_ | |uok| |</c></p> +<p style="Normal" xid="226"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">+------------------------+------------------------+------------------------+------------------------+------------------------+</c></p> +<p style="Normal" xid="227" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">|- persistence.xml | |ok| [#jbh]_ | |ok| [#grg]_ | |ok| [#jog]_ | |uok| |</c></p> +<p style="Normal" xid="228"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">+------------------------+------------------------+------------------------+------------------------+------------------------+</c></p> +<p style="Normal" xid="229" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">|- orm.xml | |uok| | |ok| [#grh]_ | |ok| [#joh]_ | |ok| [#gfc]_ |</c></p> +<p style="Normal" xid="230"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">+------------------------+------------------------+------------------------+------------------------+------------------------+</c></p> +<p style="Normal" xid="231" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">|Servlet | |ok| [#jbi]_ | |ok| [#gri]_ | |uok| | |uok| |</c></p> +<p style="Normal" xid="232"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">+------------------------+------------------------+------------------------+------------------------+------------------------+</c></p> +<p style="Normal" xid="233" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">|- JAAS | |ok| [#jbj]_ | |ok| [#grb]_ | |ok| [#jod]_ | |uok| |</c></p> +<p style="Normal" xid="234"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">+------------------------+------------------------+------------------------+------------------------+------------------------+</c></p> +<p style="Normal" xid="235" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">|Corba | |uok| | |uok| | |uok| | |uok| |</c></p> +<p style="Normal" xid="236"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">+------------------------+------------------------+------------------------+------------------------+------------------------+</c></p> +<p style="Normal" xid="237"></p> +<p style="Normal" xid="238" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. |ok| image:: ok.png</c></p> +<p style="Normal" xid="239" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. |nok| image:: nok.png</c></p> +<p style="Normal" xid="240" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. |uok| image:: uok.png</c></p> +<p style="Normal" xid="241"></p> +<p style="Normal" xid="242" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#jba] http://docs.jboss.org/ejb3/app-server/reference/build/reference/en/html/index.html</c></p> +<p style="Normal" xid="243" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#jbb] http://docs.jboss.org/ejb3/app-server/tutorial/jndibinding/jndi.html</c></p> +<p style="Normal" xid="244" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#jbc] http://docs.jboss.org/ejb3/app-server/reference/build/reference/en/html/transport.html</c></p> +<p style="Normal" xid="245" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#jbd] http://docs.jboss.org/ejb3/app-server/tutorial/security/security.html</c></p> +<p style="Normal" xid="246" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#jbe] http://labs.jboss.com/jbossws/docs/jaxws_userguide-2.0/index.html</c></p> +<p style="Normal" xid="247" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#jbf] http://labs.jboss.com/file-access/default/members/jbossas/freezone/docs/Server_Configuration_Guide/beta422/html/EJB3_Services-Entity_Beans.html</c></p> +<p style="Normal" xid="248" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#jbg] http://labs.jboss.com/file-access/default/members/jbossas/freezone/docs/Server_Configuration_Guide/beta422/html/Connectors_on_JBoss-Configuring_JDBC_DataSources.html</c></p> +<p style="Normal" xid="249" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#jbh] http://labs.jboss.com/file-access/default/members/jbossas/freezone/docs/Server_Configuration_Guide/beta422/html/ch01s02s01.html</c></p> +<p style="Normal" xid="250" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#jbi] http://labs.jboss.com/file-access/default/members/jbossas/freezone/docs/Getting_Started_Guide/beta422/html/ch01s07.html</c></p> +<p style="Normal" xid="251" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#jbj] http://labs.jboss.com/file-access/default/members/jbossas/freezone/docs/Server_Configuration_Guide/beta422/html/Security_on_JBoss-J2EE_Declarative_Security_Overview.html</c></p> +<p style="Normal" xid="252"></p> +<p style="Normal" xid="253" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#grc] http://openejb.apache.org/</c></p> +<p style="Normal" xid="254" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#grd] http://openejb.apache.org/jndi-names.html</c></p> +<p style="Normal" xid="255" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#gra] http://www.ibm.com/developerworks/opensource/library/os-ag-corba1/</c></p> +<p style="Normal" xid="256" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#gre] http://cwiki.apache.org/GMOxPMGT/geronimo-20-web-services-support.html</c></p> +<p style="Normal" xid="257" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#grf] http://openjpa.apache.org/builds/1.0.1/apache-openjpa-1.0.1/docs/manual/jpa_overview_intro.html</c></p> +<p style="Normal" xid="258" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#grj] http://cwiki.apache.org/GMOxDOC11/geronimo-connector-11xsd.html#geronimo-connector-1.1.xsd-definitioninstanceType</c></p> +<p style="Normal" xid="259" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#grg] http://openjpa.apache.org/builds/1.0.1/apache-openjpa-1.0.1/docs/manual/jpa_overview_persistence.html</c></p> +<p style="Normal" xid="260" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#grh] http://openjpa.apache.org/builds/1.0.1/apache-openjpa-1.0.1/docs/manual/jpa_overview_meta.html</c></p> +<p style="Normal" xid="261" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#gri] http://cwiki.apache.org/GMOxKB/jetty-or-tomcat.html</c></p> +<p style="Normal" xid="262" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#grb] http://www.ibm.com/developerworks/opensource/library/os-ag-security/</c></p> +<p style="Normal" xid="263"></p> +<p style="Normal" xid="264" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#joa] http://www.easybeans.org/doc/userguide/en/chunk-integrated/ejb3_introduction.html</c></p> +<p style="Normal" xid="265" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#joc] http://jonas.objectweb.org/current/doc/doc-en/integrated/configuration_guide.html#config.security</c></p> +<p style="Normal" xid="266" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#job] http://wiki.easybeans.org/xwiki/bin/view/Main/JAXWS</c></p> +<p style="Normal" xid="267"></p> +<p style="Normal" xid="268" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#jof] http://www.jpox.org/docs/jpa/index.html</c></p> +<p style="Normal" xid="269" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#joe] http://jonas.objectweb.org/current/doc/doc-en/integrated/configuration_guide.html#N11268</c></p> +<p style="Normal" xid="270" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#jog] http://www.jpox.org/docs/jpa/persistence_xml.html</c></p> +<p style="Normal" xid="271" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#joh] http://www.jpox.org/docs/jpa/orm_xml.html</c></p> +<p style="Normal" xid="272"></p> +<p style="Normal" xid="273" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#jod] http://jonas.objectweb.org/current/doc/doc-en/integrated/configuration_guide.html#N10F4F</c></p> +<p style="Normal" xid="274"></p> +<p style="Normal" xid="275" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#gfd] http://blogs.sun.com/swchan/entry/enterprise_java_bean_over_ssl</c></p> +<p style="Normal" xid="276" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#gfe] http://java.sun.com/developer/technicalArticles/J2EE/security_annotation/</c></p> +<p style="Normal" xid="277" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#gfa] http://wiki.glassfish.java.net/Wiki.jsp?page=WebServicesTechnologies</c></p> +<p style="Normal" xid="278" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#gff] https://glassfish.dev.java.net/javaee5/docs/AG/ablrk.html#ablry</c></p> +<p style="Normal" xid="279" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#gfb] https://glassfish.dev.java.net/javaee5/persistence/</c></p> +<p style="Normal" xid="280" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#gfc] https://glassfish.dev.java.net/javaee5/persistence/persistence_faq.html#5</c></p> +<p style="Normal" xid="281"></p> +<p style="Normal" xid="282" props="text-align:left; dom-dir:ltr"></p> +<p style="Normal" xid="285" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">SGBD</c></p> +<p style="Normal" xid="286"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">____</c></p> +<p style="Normal" xid="287"></p> +<p style="Normal" xid="288" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Pour la base sur le serveur, les performances et la stabilité de PostgreSQL ont été retenues. CÃŽté client lourd, la base de donnée embarquée H2 est utilisée. Un export XML sera réalisé pour l'interopérabilité.</c></p> +<p style="Normal" xid="289"></p> +<p style="Normal" xid="290"></p> +<p style="Normal" xid="291" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Choix technologiques transverses</c></p> +<p style="Normal" xid="292"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">________________________________</c></p> +<p style="Normal" xid="293"></p> +<p style="Normal" xid="294" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Dans la perspective de réutilisation, les services publiés utiliseront des protocoles standardisés et inter opérables, afin de ne pas limiter le choix du langage.</c></p> +<p style="Normal" xid="295"></p> +<p style="Normal" xid="296" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">La technologie ... a été choisie pour son support de la sécurité et son utilisation courante dans différents langages et sur différents systÚmes d'exploitation.</c></p> +<p style="Normal" xid="297"></p> +<p style="Normal" xid="298" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Solution aux contraintes d'ergonomie</c></p> +<p style="Normal" xid="299"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">____________________________________</c></p> +<p style="Normal" xid="300"></p> +<p style="Normal" xid="301" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">L'application web respectera les standards W3C XHTML.</c></p> +<p style="Normal" xid="302"></p> +<p style="Normal" xid="303" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">L'application client lourd utilise le framework Swing, disponible sur un grand nombre de plateformes. Sur celles où Java Web Start est disponible, l'application pourra être installée par un simple clic sur le site du client léger.</c></p> +<p style="Normal" xid="304"></p> +<p style="Normal" xid="305" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Dimensionnement</c></p> +<p style="Normal" xid="306"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">_______________</c></p> +<p style="Normal" xid="307"></p> +<p style="Normal" xid="308" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Une attention particuliÚre devra être faite à la taille des partitions lors de l'intégration en fonction de la volumétrie cible. De même, cÃŽté client, l'utilisateur doit être informé de l'espace utilisé par l'application par rapport à son espace disponible. La synchronisation doit vérifier au préalable la suffisance d'espace.</c></p> +<p style="Normal" xid="309"></p> +<p style="Normal" xid="310" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">En supposant que chaque simulation prend environ 100ko de paramÚtres, que 10 utilisateurs utilisent l'application en créant 5 simulations par jour, on obtient environ 10Go de paramÚtres de simulation sur 10 ans.</c></p> +<p style="Normal" xid="311"></p> +<p style="Normal" xid="312" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Solution pour l'exploitation du systÚme</c></p> +<p style="Normal" xid="313"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">_______________________________________</c></p> +<p style="Normal" xid="314"></p> +<p style="Normal" xid="315"></p> +<p style="Normal" xid="316" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Lors de la mise à jour de l'application, plusieurs aspects doivent être gérés. Tout d'abord la base de données doit être synchrone avec l'applicatif. Ceci devra se faire automatiquement avec une migration des données executée lors du déploiement d'une nouvelle version.</c></p> +<p style="Normal" xid="317"></p> +<p style="Normal" xid="318" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Dans un environnement client/serveur, il est nécessaire de garantir la compatibilité entre les deux applications. Ainsi, le serveur mettra à disposition dans la mesure du possible les services avec une compatibilité ascendante. Si la version du client est obsolÚte, l'utilisateur est notifié et il ne peut plus utiliser l'application en mode connecté.</c></p> +<p style="Normal" xid="319"></p> +<p style="Normal" xid="320"></p> +<p style="Normal" xid="321" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">ModÚle conceptuel</c></p> +<p style="Normal" xid="322"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">-----------------</c></p> +<p style="Normal" xid="329"></p> +<p style="Normal" xid="353" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Entités des données</c></p> +<p style="Normal" xid="410" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">___________________</c></p> +<p style="Normal" xid="411" props="text-align:left; dom-dir:ltr"></p> +<p style="Normal" xid="412" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. </c><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:fr-FR">image</c><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">:: ../../../../xmi/images/data.png</c></p> +<p style="Normal" xid="413" props="text-align:left; dom-dir:ltr"></p> +<p style="Normal" xid="414" props="text-align:left; dom-dir:ltr"></p> +<p style="Normal" xid="415" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Entités des authorisations</c></p> +<p style="Normal" xid="416" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">__________________________</c></p> +<p style="Normal" xid="417" props="text-align:left; dom-dir:ltr"></p> +<p style="Normal" xid="418" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. </c><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:fr-FR">image</c><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">:: ../../../../xmi/images/entities.png</c></p> +<p style="Normal" xid="419" props="text-align:left; dom-dir:ltr"></p> +<p style="Normal" xid="420" props="text-align:left; dom-dir:ltr"></p> +<p style="Normal" xid="421" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Services de stockage</c></p> +<p style="Normal" xid="422" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">____________________</c></p> +<p style="Normal" xid="423" props="text-align:left; dom-dir:ltr"></p> +<p style="Normal" xid="424" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. </c><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:fr-FR">image</c><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">:: ../../../../xmi/images/storage.png</c></p> +<p style="Normal" xid="425" props="text-align:left; dom-dir:ltr"></p> +<p style="Normal" xid="426" props="text-align:left; dom-dir:ltr"></p> +<p style="Normal" xid="427" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Services d'authorisation</c></p> +<p style="Normal" xid="428" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">________________________</c></p> +<p style="Normal" xid="429" props="text-align:left; dom-dir:ltr"></p> +<p style="Normal" xid="430" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. </c><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:fr-FR">image</c><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">:: ../../../../xmi/images/authorization.png</c></p> +<p style="Normal" xid="431" props="text-align:left; dom-dir:ltr"></p> +<p style="Normal" xid="432" props="text-align:left; dom-dir:ltr"></p> +<p style="Normal" xid="433" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Application web</c></p> +<p style="Normal" xid="434" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">_______________</c></p> +<p style="Normal" xid="435" props="text-align:left; dom-dir:ltr"></p> +<p style="Normal" xid="436" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. image:: ../../../../xmi/images/applications.png</c></p> +<p style="Normal" xid="347" props="margin-top:0.0000in; margin-left:0.0000in; text-indent:0.0000in; dom-dir:ltr; margin-bottom:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"></p> +<p style="Normal" xid="323" props="font-family:Times New Roman; font-size:12pt; color:000000; lang:fr-FR; text-position:normal; font-weight:normal; font-style:normal; text-decoration:none"></p> +<p style="Normal" xid="324" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Séquences d'utilisation</c></p> +<p style="Normal" xid="325"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">-----------------------</c></p> +<p style="Normal" xid="326"></p> +<p style="Normal" xid="469"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Gestion des authorisations</c></p> +<p style="Normal" xid="471"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">__________________________</c></p> +<p style="Normal" xid="472"></p> +<p style="Normal" xid="473" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:fr-FR">.. image:: ./authorization.jpg</c></p> +<p style="Normal" xid="470"></p> +<p style="Normal" xid="327" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Ãcrans de l'application</c></p> +<p style="Normal" xid="328"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">-----------------------</c></p> +<p style="Normal" xid="438"></p> +<p style="Normal" xid="439"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Liste des éléments</c></p> +<p style="Normal" xid="440"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">__________________</c></p> +<p style="Normal" xid="456"></p> +<p style="Normal" xid="457"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:fr-FR">.. image:: ./screenshots/Screenshot.png</c></p> +<p style="Normal" xid="441"></p> +<p style="Normal" xid="442"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Importer un élément</c></p> +<p style="Normal" xid="443"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">___________________</c></p> +<p style="Normal" xid="444"></p> +<p style="Normal" xid="458"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:fr-FR">.. image:: ./screenshots/Screenshot-1.png</c></p> +<p style="Normal" xid="459" props="margin-top:0.0000in; margin-left:0.0000in; text-indent:0.0000in; dom-dir:ltr; margin-bottom:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"></p> +<p style="Normal" xid="445" props="font-family:Bitstream Vera Sans Mono; font-size:12pt; color:000000; lang:fr-FR; text-position:normal; font-weight:normal; font-style:normal; text-decoration:none"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Liste des utilisateurs</c></p> +<p style="Normal" xid="446"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">______________________</c></p> +<p style="Normal" xid="447"></p> +<p style="Normal" xid="460"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:fr-FR">.. image:: ./screenshots/Screenshot-2.png</c></p> +<p style="Normal" xid="461" props="margin-top:0.0000in; margin-left:0.0000in; text-indent:0.0000in; dom-dir:ltr; margin-bottom:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"></p> +<p style="Normal" xid="448" props="font-family:Bitstream Vera Sans Mono; font-size:12pt; color:000000; lang:fr-FR; text-position:normal; font-weight:normal; font-style:normal; text-decoration:none"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Ajouter/éditer un utilisateur</c></p> +<p style="Normal" xid="449"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">_____________________________</c></p> +<p style="Normal" xid="450"></p> +<p style="Normal" xid="462"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:fr-FR">.. image:: ./screenshots/Screenshot-3.png</c></p> +<p style="Normal" xid="463" props="margin-top:0.0000in; margin-left:0.0000in; text-indent:0.0000in; dom-dir:ltr; margin-bottom:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"></p> +<p style="Normal" xid="451" props="font-family:Bitstream Vera Sans Mono; font-size:12pt; color:000000; lang:fr-FR; text-position:normal; font-weight:normal; font-style:normal; text-decoration:none"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Liste des groupes</c></p> +<p style="Normal" xid="452"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">_________________</c></p> +<p style="Normal" xid="453"></p> +<p style="Normal" xid="464"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:fr-FR">.. image:: ./screenshots/Screenshot-4.png</c></p> +<p style="Normal" xid="465" props="margin-top:0.0000in; margin-left:0.0000in; text-indent:0.0000in; dom-dir:ltr; margin-bottom:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"></p> +<p style="Normal" xid="454" props="font-family:Bitstream Vera Sans Mono; font-size:12pt; color:000000; lang:fr-FR; text-position:normal; font-weight:normal; font-style:normal; text-decoration:none"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Ajouter/éditer un groupe</c></p> +<p style="Normal" xid="455"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">________________________</c></p> +<p style="Normal" xid="466"></p> +<p style="Normal" xid="467" props="font-family:Bitstream Vera Sans Mono; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:fr-FR">.. image:: ./screenshots/Screenshot-5.png</c></p> +<p style="Normal" xid="468" props="font-family:Bitstream Vera Sans Mono; dom-dir:ltr; font-style:normal; margin-left:0.0000in; lang:fr-FR; margin-bottom:0.0000in; text-indent:0.0000in; text-position:normal; margin-top:0.0000in; font-weight:normal; margin-right:0.0000in; text-decoration:none; text-align:left; line-height:1.000000; font-size:12pt"></p> +</section> +</abiword> Property changes on: trunk/simexplorer-si/src/site/fr/rst/devel/architecture.abw ___________________________________________________________________ Name: svn:executable + * Added: trunk/simexplorer-si/src/site/fr/rst/devel/architecture.rst =================================================================== --- trunk/simexplorer-si/src/site/fr/rst/devel/architecture.rst (rev 0) +++ trunk/simexplorer-si/src/site/fr/rst/devel/architecture.rst 2008-01-10 16:00:55 UTC (rev 110) @@ -0,0 +1,390 @@ +======================================= +SimExplorer SI - Dossier d'architecture +======================================= + +.. contents:: :depth: 3 +.. sectnum:: + +Introduction +============ + +Ce document détaille la solution proposée en réponse à la demande d'un outil d'exploration de simulation. + +Architecture conceptuelle +========================= + +Rappel des fonctions de l'application +------------------------------------- + +L'application permet l'utilisation d'outils de simulation dans un environnement multi-utilisateurs. Un mode client léger met à disposition la gestion des utilisateurs et la consultation des paramÚtres des simulations. Ce mode est accessible avec un simple navigateur. Avec un logiciel fourni (nommé aussi client lourd), l'utilisateur peut de même gérer les utilisateurs, mais aussi les simulations afin de les lancer. Une fonction de synchronisation met à jour les données locales par rapport aux données centralisées. + +Chaque fonction est limitée en fonction des droits de l'utilisateur connecté. Cet utilisateur, en fonction des groupes auxquels il appartient, obtient des droits sur les simulations et les utilisateurs (création, modification, suppression). + +Les modifications des paramÚtres des simulations sont sauvegardé afin de conserver un historique. Cet historique se synchronise avec les données centralisées et les données de l'utilisateur. + +Décomposition de l'application en modules +----------------------------------------- + +L'authentification s'appuie sur un module unique. Celui ci permet d'authentifier les utilisateurs se connectant via le client léger ou le client lourd. Un premier niveau impératif nécessite l'appartenance de l'utilisateur à un groupe destiné à contenir les accrédités à utiliser l'application. Ce module fourni aussi les groupes d'appartenance d'un utilisateur, afin de déterminer ses droits. Enfin, ce module permet l'édition des utilisateurs et des groupes par les utilisateurs avec pouvoir. + +Les autorisations sont gérées conjointement avec l'authentification. Une simulation a des droits associés en fonction de son propriétaire et son groupe d'appartenance. Ses droits sont décorélés des données métier, seul un identifiant technique permet aux services d'interroger le module d'autorisation afin de valider l'accÚs à une simulation. Le niveau de granularité des droits est similaire à la gestion des modes sur les fichiers. Les droits sur les actions création/modification/exécution sont alloués en fonction de l'utilisateur/groupe/autre. + +Le stockage est un module dupliqué à la fois sur le serveur gérant les données centralisées et sur chaque client lourd. Celui-ci a la charge de conserver les données dans une base, et de stocker les données volumineuses dans le systÚme de fichier. Il est capable de persister les objets utilisés par l'application. Un mécanisme de synchronisation permet de mettre à jour les données locales et les données centralisées en fonction de rÚgles de gestion de versionnement. + +La logique métier de l'application est contenue dans des services. Ceux ci peuvent être exécutés localement, lors de l'exécution d'une simulation sur le client lourd par exemple. Certains services sont présents uniquement sur le serveur, parce qu'ils nécessitent les modules d'autorisation et les données centralisées. Le client lourd fait alors appel à ces services dans un mode appel distant. + +Le module d'interface est composé de deux parties. CÃŽté serveur, l'utilisateur accÚde avec un navigateur Internet standard à l'application. Les pages sont servies par un serveur web utilisant un contrÃŽleur. Celui ci interagit avec les services afin de présenter les données à l'utilisateur. CÃŽté client, l'interface graphique s'appuie aussi sur un contrÃŽleur utilisant les services. + + +Exigences et contraintes +------------------------ + +Contraintes d'urbanisme +_______________________ + +Le client lourd doit s'intégrer dans SimExplorer RCP. + +Les services déployés sur le serveur et mis à disposition du client lourd doivent pouvoir être réutilisés par des applications tierces. + +Le serveur doit être en mesure de lancer des simulations et de récupérer les résultats. + +Exigences et contraintes liées à des fonctionnalités particuliÚres +__________________________________________________________________ + +Un serveur d'authentification.existant pourra être réutilisé dans la mesure où il est accessible via des protocoles standards. Une note précisant le fonctionnement de ce serveur devra être fourni afin de rendre possible son utilisation. ex : LDAP + +Les appels de lancement des simulations devra être formalisés dans une note. Ceux ci pourront alors être intégrés dans les services. + +L'authentification implique l'établissement d'une connexion sécurisée entre le client et le serveur, afin de ne pas faire passer en clair les mots de passe sur le réseau. Le serveur disposera d'un certificat afin de crypter les flux. + +Contraintes d'ergonomie +_______________________ + +L'application web se doit d'être compatible avec les navigateurs récents : Firefox2+ et IE6+. + +L'application client lourd est un application standard type bureautique, et doit être compatible avec le maximum de plateformes. Le lancement de l'application doit se faire simplement par un raccourci. + +Volumétrie +__________ + +Les données associées aux simulations sont parfois trÚs volumineuses (>100Mo). Ces données doivent être stockées en local mais aussi sur le serveur, avec des transferts entre le client et le serveur. + +Contraintes et exigences liées à l'exploitation +_______________________________________________ + +Lors de la mise à jour de l'application, la base de données doit être synchrone avec l'applicatif. De même, le client lourd doit être à jour par rapport à la version déployée sur le serveur. + +Les données doivent pouvoir être simplement sauvegardées et restaurées. + +Architecture logique +==================== + +Schéma d'architecture logique +----------------------------- + +.. image:: diagramme1.png + +Description des flux +-------------------- + + #. Serveur web + + L'interface client léger passe par ce flux. L'authentification se fera en HTTPS, le reste de l'application pourra être au choix en HTTP ou en HTTPS. Le contenu sera constitué de pages XHTML compatibles avec les navigateurs récents. + + #. Interface client lourd + + C'est à travers ce canal que l'utilisateur interagit avec l'application. + + #. Serveur d'authentification + + Le framework d'authentification utilise un serveur externe afin d'authentifier les utilisateurs. Ce flux dépend du serveur. + + #. Autorisations + + Toutes les informations relatives à la protection des accÚs aux simulations sont retrouvées via ce lien vers une base de données. + + #. Persistance cÃŽté serveur + + Les objets sont stockés dans une base de donnée à travers ce flux. + + #. Persistance cÃŽté client + + De même, les objets sont stockés dans une base de données. Nous sommes ici en présence d'une base de données embarquée, afin de rendre le client lourd autonome. + + #. SystÚme de fichiers serveur + + Les données volumineuses sont stockées dans le systÚme de fichier plutÃŽt que dans la base. + + #. SystÚme de fichiers client + + De la même façon que sur le serveur, les données sont stockées sous forme de fichiers dans le systÚme de fichier de l'utilisateur. + + #. Services distants + + La communication entre le client lourd et le serveur passe par ce flux. Celui ci est crypté et intégré à haut niveau dans l'application. Les appels de service se font de façon transparente, de façon similaire à un appel local. + + +Initialisation des entrepÃŽts de données +--------------------------------------- + +Pour l'authentification, un groupe d'utilisateur doit être créé afin d'accueillir les personnes accréditées. De plus, un groupe d'administrateur avec un utilisateur doit exister afin de permettre l'administration des utilisateurs. Ces deux groupes seront à spécifier lors de l'installation. + +Si l'application doit utiliser un serveur d'authentification existant, le groupe des administrateurs doit avoir les droits de lister les utilisateurs amenés à être ajouté aux personnes accréditées. + +Les bases de données d'autorisation et de stockage peuvent être initialisés lors du lancement de l'application de façon automatique. Si les droits de création de table et de champs n'est pas autorisé pour l'application, un script doit être exécuté avant le déploiement d'une nouvelle version afin de mettre à jour la base et migrer les données. + +CÃŽté client, le problÚme ne se pose pas, la base de données est embarquée dans l'application. + +Les modules de l'application +---------------------------- + +Le module authentification +__________________________ + +La technologie JAAS (Java Authentication and Authorization Service) a été retenue. La partie autorisation est utilisée uniquement pour valider l'accÚs de l'utilisateur authentifié à l'application. + +Plusieurs méthodes d'authentification sont déjà implantées (login/mot de passe/groupes dans une base de données avec JDBC, LDAP, ...). + +Les modules services +____________________ + +Les services sont contenus dans des EJB (Entreprise Java Bean). Chaque service est un composant disposant d'outils facilitant la mise en oeuvre des transactions et la distribution. + +Ces services sont destinés à contenir toute la logique métier. + +Les services contiennent aussi le contexte d'authentification de l'appelant. + +Le module autorisation +______________________ + +Grâce au contexte d'authentification des EJB, les appels au module d'autorisation vont sécurisés les accÚs aux données. + +Le module stockage +__________________ + +Ce module repose en grande partie sur la technologie JPA (Java Persistence API). Elle permet un mapping entre les objets et la base de données de façon transparente et interropérable. Le choix de la base de données n'est alors plus vérouillé, de nombreux systÚmes étant compatibles. Afin de gérer les volumétries associées aux simulations, certaines propriétés seront stockées sur le disque dur. + +Lors de l'accÚs à une donnée, le module gérant les autorisations est appelé afin de vérifier les droits. De même, lorsque l'utilisateur crée une nouvelle entité, les droits lui sont associés via ce service. + +Le module interface +___________________ + +CÃŽté client léger, le site est réalisé avec Tapestry 5. Ce framework apporte le développement orienté objet au applications web. De nombreuses fonctionnalités sont incluses et facilitent le développement. + +CÃŽté client lourd, le framework JAXX est utilisé. Ce framework transforme des XML décrivant l'interface en classes Java. + +Développement de l'application +------------------------------ + +Lors de la construction de Simexplorer SI, nous utilisons le framework ToPIA ainsi que différents outils développés par Code Lutin. Ceux ci sont tous sous licence LGPL. + +A partir du modÚle conceptuel, le process de développement génÚre une partie de l'application, entre autre sous la forme d'interfaces à implémenter. Nous obtenons alors : + - les entités persistées + - les interfaces des services + - les interfaces des composants des pages web + + +Architecture physique +===================== + +Architecture logicielle +----------------------- + +L'ensemble de l'application est développée avec le langage Java. La version de référence lors du développement de l'application est JRE 6 Update 3. + +Serveur Web +___________ + +Le serveur web est constitué d'un Apache 2.2. Le module mod_proxy_ajp permet de ne pas lancer le serveur d'application en root et d'avoir accÚs au port HTTP et HTTPS. + +Serveur Applicatif +__________________ + ++------------------------+------------------------+------------------------+------------------------+------------------------+ +| |JBoss 4.2.2 GA |Geronimo JEE5 2.0.2 |JOnAS 5.0 M1 |GlassFish V2 | ++========================+========================+========================+========================+========================+ +|EJB3 | |ok| [#jba]_ | |ok| [#grc]_ | |ok| [#joa]_ | |uok| | ++------------------------+------------------------+------------------------+------------------------+------------------------+ +|- RemoteBinding | |ok| [#jbb]_ | |ok| [#grd]_ | |uok| | |uok| | ++------------------------+------------------------+------------------------+------------------------+------------------------+ +|- SSL | |ok| [#jbc]_ | |ok| [#gra]_ | |uok| | |ok| [#gfd]_ | ++------------------------+------------------------+------------------------+------------------------+------------------------+ +|- SecurityDomain | |ok| [#jbd]_ | |uok| | |ok| [#joc]_ | |ok| [#gfe]_ | ++------------------------+------------------------+------------------------+------------------------+------------------------+ +|- WebService | |ok| [#jbe]_ | |ok| [#gre]_ | |ok| [#job]_ | |ok| [#gfa]_ | ++------------------------+------------------------+------------------------+------------------------+------------------------+ +| * Sécurisé | |ok| [#jbe]_ | |uok| [#gre]_ | |uok| | |ok| [#gff]_ | ++------------------------+------------------------+------------------------+------------------------+------------------------+ +| * WebServiceContext | |ok| [#jbe]_ | |ok| [#gre]_ | |ok| [#job]_ | |uok| | ++------------------------+------------------------+------------------------+------------------------+------------------------+ +|- SessionContext | |uok| | |uok| | |uok| | |uok| | ++------------------------+------------------------+------------------------+------------------------+------------------------+ +|JPA | |ok| [#jbf]_ | |ok| [#grf]_ | |ok| [#jof]_ | |ok| [#gfb]_ | ++------------------------+------------------------+------------------------+------------------------+------------------------+ +|- XML datasource | |ok| [#jbg]_ | |ok| [#grj]_ | |ok| [#joe]_ | |uok| | ++------------------------+------------------------+------------------------+------------------------+------------------------+ +|- persistence.xml | |ok| [#jbh]_ | |ok| [#grg]_ | |ok| [#jog]_ | |uok| | ++------------------------+------------------------+------------------------+------------------------+------------------------+ +|- orm.xml | |uok| | |ok| [#grh]_ | |ok| [#joh]_ | |ok| [#gfc]_ | ++------------------------+------------------------+------------------------+------------------------+------------------------+ +|Servlet | |ok| [#jbi]_ | |ok| [#gri]_ | |uok| | |uok| | ++------------------------+------------------------+------------------------+------------------------+------------------------+ +|- JAAS | |ok| [#jbj]_ | |ok| [#grb]_ | |ok| [#jod]_ | |uok| | ++------------------------+------------------------+------------------------+------------------------+------------------------+ +|Corba | |uok| | |uok| | |uok| | |uok| | ++------------------------+------------------------+------------------------+------------------------+------------------------+ + +.. |ok| image:: ok.png +.. |nok| image:: nok.png +.. |uok| image:: uok.png + +.. [#jba] http://docs.jboss.org/ejb3/app-server/reference/build/reference/en/html/inde... +.. [#jbb] http://docs.jboss.org/ejb3/app-server/tutorial/jndibinding/jndi.html +.. [#jbc] http://docs.jboss.org/ejb3/app-server/reference/build/reference/en/html/tran... +.. [#jbd] http://docs.jboss.org/ejb3/app-server/tutorial/security/security.html +.. [#jbe] http://labs.jboss.com/jbossws/docs/jaxws_userguide-2.0/index.html +.. [#jbf] http://labs.jboss.com/file-access/default/members/jbossas/freezone/docs/Serv... +.. [#jbg] http://labs.jboss.com/file-access/default/members/jbossas/freezone/docs/Serv... +.. [#jbh] http://labs.jboss.com/file-access/default/members/jbossas/freezone/docs/Serv... +.. [#jbi] http://labs.jboss.com/file-access/default/members/jbossas/freezone/docs/Gett... +.. [#jbj] http://labs.jboss.com/file-access/default/members/jbossas/freezone/docs/Serv... + +.. [#grc] http://openejb.apache.org/ +.. [#grd] http://openejb.apache.org/jndi-names.html +.. [#gra] http://www.ibm.com/developerworks/opensource/library/os-ag-corba1/ +.. [#gre] http://cwiki.apache.org/GMOxPMGT/geronimo-20-web-services-support.html +.. [#grf] http://openjpa.apache.org/builds/1.0.1/apache-openjpa-1.0.1/docs/manual/jpa_... +.. [#grj] http://cwiki.apache.org/GMOxDOC11/geronimo-connector-11xsd.html#geronimo-con... +.. [#grg] http://openjpa.apache.org/builds/1.0.1/apache-openjpa-1.0.1/docs/manual/jpa_... +.. [#grh] http://openjpa.apache.org/builds/1.0.1/apache-openjpa-1.0.1/docs/manual/jpa_... +.. [#gri] http://cwiki.apache.org/GMOxKB/jetty-or-tomcat.html +.. [#grb] http://www.ibm.com/developerworks/opensource/library/os-ag-security/ + +.. [#joa] http://www.easybeans.org/doc/userguide/en/chunk-integrated/ejb3_introduction... +.. [#joc] http://jonas.objectweb.org/current/doc/doc-en/integrated/configuration_guide... +.. [#job] http://wiki.easybeans.org/xwiki/bin/view/Main/JAXWS + +.. [#jof] http://www.jpox.org/docs/jpa/index.html +.. [#joe] http://jonas.objectweb.org/current/doc/doc-en/integrated/configuration_guide... +.. [#jog] http://www.jpox.org/docs/jpa/persistence_xml.html +.. [#joh] http://www.jpox.org/docs/jpa/orm_xml.html + +.. [#jod] http://jonas.objectweb.org/current/doc/doc-en/integrated/configuration_guide... + +.. [#gfd] http://blogs.sun.com/swchan/entry/enterprise_java_bean_over_ssl +.. [#gfe] http://java.sun.com/developer/technicalArticles/J2EE/security_annotation/ +.. [#gfa] http://wiki.glassfish.java.net/Wiki.jsp?page=WebServicesTechnologies +.. [#gff] https://glassfish.dev.java.net/javaee5/docs/AG/ablrk.html#ablry +.. [#gfb] https://glassfish.dev.java.net/javaee5/persistence/ +.. [#gfc] https://glassfish.dev.java.net/javaee5/persistence/persistence_faq.html#5 + + +SGBD +____ + +Pour la base sur le serveur, les performances et la stabilité de PostgreSQL ont été retenues. CÃŽté client lourd, la base de donnée embarquée H2 est utilisée. Un export XML sera réalisé pour l'interopérabilité. + + +Choix technologiques transverses +________________________________ + +Dans la perspective de réutilisation, les services publiés utiliseront des protocoles standardisés et inter opérables, afin de ne pas limiter le choix du langage. + +La technologie ... a été choisie pour son support de la sécurité et son utilisation courante dans différents langages et sur différents systÚmes d'exploitation. + +Solution aux contraintes d'ergonomie +____________________________________ + +L'application web respectera les standards W3C XHTML. + +L'application client lourd utilise le framework Swing, disponible sur un grand nombre de plateformes. Sur celles où Java Web Start est disponible, l'application pourra être installée par un simple clic sur le site du client léger. + +Dimensionnement +_______________ + +Une attention particuliÚre devra être faite à la taille des partitions lors de l'intégration en fonction de la volumétrie cible. De même, cÃŽté client, l'utilisateur doit être informé de l'espace utilisé par l'application par rapport à son espace disponible. La synchronisation doit vérifier au préalable la suffisance d'espace. + +En supposant que chaque simulation prend environ 100ko de paramÚtres, que 10 utilisateurs utilisent l'application en créant 5 simulations par jour, on obtient environ 10Go de paramÚtres de simulation sur 10 ans. + +Solution pour l'exploitation du systÚme +_______________________________________ + + +Lors de la mise à jour de l'application, plusieurs aspects doivent être gérés. Tout d'abord la base de données doit être synchrone avec l'applicatif. Ceci devra se faire automatiquement avec une migration des données executée lors du déploiement d'une nouvelle version. + +Dans un environnement client/serveur, il est nécessaire de garantir la compatibilité entre les deux applications. Ainsi, le serveur mettra à disposition dans la mesure du possible les services avec une compatibilité ascendante. Si la version du client est obsolÚte, l'utilisateur est notifié et il ne peut plus utiliser l'application en mode connecté. + + +ModÚle conceptuel +----------------- + +Entités des données +___________________ + +.. image:: ../../../../xmi/images/data.png + + +Entités des authorisations +__________________________ + +.. image:: ../../../../xmi/images/entities.png + + +Services de stockage +____________________ + +.. image:: ../../../../xmi/images/storage.png + + +Services d'authorisation +________________________ + +.. image:: ../../../../xmi/images/authorization.png + + +Application web +_______________ + +.. image:: ../../../../xmi/images/applications.png + + +Séquences d'utilisation +----------------------- + +Gestion des authorisations +__________________________ + +.. image:: ./authorization.jpg + +Ãcrans de l'application +----------------------- + +Liste des éléments +__________________ + +.. image:: ./screenshots/Screenshot.png + +Importer un élément +___________________ + +.. image:: ./screenshots/Screenshot-1.png + +Liste des utilisateurs +______________________ + +.. image:: ./screenshots/Screenshot-2.png + +Ajouter/éditer un utilisateur +_____________________________ + +.. image:: ./screenshots/Screenshot-3.png + +Liste des groupes +_________________ + +.. image:: ./screenshots/Screenshot-4.png + +Ajouter/éditer un groupe +________________________ + +.. image:: ./screenshots/Screenshot-5.png Property changes on: trunk/simexplorer-si/src/site/fr/rst/devel/architecture.rst ___________________________________________________________________ Name: svn:executable + * Added: trunk/simexplorer-si/src/site/fr/rst/devel/architecture.xhtml =================================================================== --- trunk/simexplorer-si/src/site/fr/rst/devel/architecture.xhtml (rev 0) +++ trunk/simexplorer-si/src/site/fr/rst/devel/architecture.xhtml 2008-01-10 16:00:55 UTC (rev 110) @@ -0,0 +1,940 @@ +<?xml version="1.0" encoding="utf-8" ?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta name="generator" content="Docutils 0.5: http://docutils.sourceforge.net/" /> +<title>SimExplorer SI - Dossier d'architecture</title> +<style type="text/css"> + +/* +:Author: David Goodger (goodger at python.org) +:Id: $Id: html4css1.css 5196 2007-06-03 20:25:28Z wiemann $ +:Copyright: This stylesheet has been placed in the public domain. + +Default cascading style sheet for the HTML output of Docutils. + +See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to +customize this style sheet. +*/ + +/* used to remove borders from tables and images */ +.borderless, table.borderless td, table.borderless th { + border: 0 } + +table.borderless td, table.borderless th { + /* Override padding for "table.docutils td" with "! important". + The right padding separates the table cells. */ + padding: 0 0.5em 0 0 ! important } + +.first { + /* Override more specific margin styles with "! important". */ + margin-top: 0 ! important } + +.last, .with-subtitle { + margin-bottom: 0 ! important } + +.hidden { + display: none } + +a.toc-backref { + text-decoration: none ; + color: black } + +blockquote.epigraph { + margin: 2em 5em ; } + +dl.docutils dd { + margin-bottom: 0.5em } + +/* Uncomment (and remove this text!) to get bold-faced definition list terms +dl.docutils dt { + font-weight: bold } +*/ + +div.abstract { + margin: 2em 5em } + +div.abstract p.topic-title { + font-weight: bold ; + text-align: center } + +div.admonition, div.attention, div.caution, div.danger, div.error, +div.hint, div.important, div.note, div.tip, div.warning { + margin: 2em ; + border: medium outset ; + padding: 1em } + +div.admonition p.admonition-title, div.hint p.admonition-title, +div.important p.admonition-title, div.note p.admonition-title, +div.tip p.admonition-title { + font-weight: bold ; + font-family: sans-serif } + +div.attention p.admonition-title, div.caution p.admonition-title, +div.danger p.admonition-title, div.error p.admonition-title, +div.warning p.admonition-title { + color: red ; + font-weight: bold ; + font-family: sans-serif } + +/* Uncomment (and remove this text!) to get reduced vertical space in + compound paragraphs. +div.compound .compound-first, div.compound .compound-middle { + margin-bottom: 0.5em } + +div.compound .compound-last, div.compound .compound-middle { + margin-top: 0.5em } +*/ + +div.dedication { + margin: 2em 5em ; + text-align: center ; + font-style: italic } + +div.dedication p.topic-title { + font-weight: bold ; + font-style: normal } + +div.figure { + margin-left: 2em ; + margin-right: 2em } + +div.footer, div.header { + clear: both; + font-size: smaller } + +div.line-block { + display: block ; + margin-top: 1em ; + margin-bottom: 1em } + +div.line-block div.line-block { + margin-top: 0 ; + margin-bottom: 0 ; + margin-left: 1.5em } + +div.sidebar { + margin: 0 0 0.5em 1em ; + border: medium outset ; + padding: 1em ; + background-color: #ffffee ; + width: 40% ; + float: right ; + clear: right } + +div.sidebar p.rubric { + font-family: sans-serif ; + font-size: medium } + +div.system-messages { + margin: 5em } + +div.system-messages h1 { + color: red } + +div.system-message { + border: medium outset ; + padding: 1em } + +div.system-message p.system-message-title { + color: red ; + font-weight: bold } + +div.topic { + margin: 2em } + +h1.section-subtitle, h2.section-subtitle, h3.section-subtitle, +h4.section-subtitle, h5.section-subtitle, h6.section-subtitle { + margin-top: 0.4em } + +h1.title { + text-align: center } + +h2.subtitle { + text-align: center } + +hr.docutils { + width: 75% } + +img.align-left { + clear: left } + +img.align-right { + clear: right } + +ol.simple, ul.simple { + margin-bottom: 1em } + +ol.arabic { + list-style: decimal } + +ol.loweralpha { + list-style: lower-alpha } + +ol.upperalpha { + list-style: upper-alpha } + +ol.lowerroman { + list-style: lower-roman } + +ol.upperroman { + list-style: upper-roman } + +p.attribution { + text-align: right ; + margin-left: 50% } + +p.caption { + font-style: italic } + +p.credits { + font-style: italic ; + font-size: smaller } + +p.label { + white-space: nowrap } + +p.rubric { + font-weight: bold ; + font-size: larger ; + color: maroon ; + text-align: center } + +p.sidebar-title { + font-family: sans-serif ; + font-weight: bold ; + font-size: larger } + +p.sidebar-subtitle { + font-family: sans-serif ; + font-weight: bold } + +p.topic-title { + font-weight: bold } + +pre.address { + margin-bottom: 0 ; + margin-top: 0 ; + font-family: serif ; + font-size: 100% } + +pre.literal-block, pre.doctest-block { + margin-left: 2em ; + margin-right: 2em } + +span.classifier { + font-family: sans-serif ; + font-style: oblique } + +span.classifier-delimiter { + font-family: sans-serif ; + font-weight: bold } + +span.interpreted { + font-family: sans-serif } + +span.option { + white-space: nowrap } + +span.pre { + white-space: pre } + +span.problematic { + color: red } + +span.section-subtitle { + /* font-size relative to parent (h1..h6 element) */ + font-size: 80% } + +table.citation { + border-left: solid 1px gray; + margin-left: 1px } + +table.docinfo { + margin: 2em 4em } + +table.docutils { + margin-top: 0.5em ; + margin-bottom: 0.5em } + +table.footnote { + border-left: solid 1px black; + margin-left: 1px } + +table.docutils td, table.docutils th, +table.docinfo td, table.docinfo th { + padding-left: 0.5em ; + padding-right: 0.5em ; + vertical-align: top } + +table.docutils th.field-name, table.docinfo th.docinfo-name { + font-weight: bold ; + text-align: left ; + white-space: nowrap ; + padding-left: 0 } + +h1 tt.docutils, h2 tt.docutils, h3 tt.docutils, +h4 tt.docutils, h5 tt.docutils, h6 tt.docutils { + font-size: 100% } + +ul.auto-toc { + list-style-type: none } + +</style> +</head> +<body> +<div class="document" id="simexplorer-si-dossier-d-architecture"> +<h1 class="title">SimExplorer SI - Dossier d'architecture</h1> + +<div class="contents topic" id="contents"> +<p class="topic-title first">Contents</p> +<ul class="auto-toc simple"> +<li><a class="reference internal" href="#introduction" id="id40">1 Introduction</a></li> +<li><a class="reference internal" href="#architecture-conceptuelle" id="id41">2 Architecture conceptuelle</a><ul class="auto-toc"> +<li><a class="reference internal" href="#rappel-des-fonctions-de-l-application" id="id42">2.1 Rappel des fonctions de l'application</a></li> +<li><a class="reference internal" href="#d-composition-de-l-application-en-modules" id="id43">2.2 Décomposition de l'application en modules</a></li> +<li><a class="reference internal" href="#exigences-et-contraintes" id="id44">2.3 Exigences et contraintes</a><ul class="auto-toc"> +<li><a class="reference internal" href="#contraintes-d-urbanisme" id="id45">2.3.1 Contraintes d'urbanisme</a></li> +<li><a class="reference internal" href="#exigences-et-contraintes-li-es-des-fonctionnalit-s-particuli-res" id="id46">2.3.2 Exigences et contraintes liées à des fonctionnalités particuliÚres</a></li> +<li><a class="reference internal" href="#contraintes-d-ergonomie" id="id47">2.3.3 Contraintes d'ergonomie</a></li> +<li><a class="reference internal" href="#volum-trie" id="id48">2.3.4 Volumétrie</a></li> +<li><a class="reference internal" href="#contraintes-et-exigences-li-es-l-exploitation" id="id49">2.3.5 Contraintes et exigences liées à l'exploitation</a></li> +</ul> +</li> +</ul> +</li> +<li><a class="reference internal" href="#architecture-logique" id="id50">3 Architecture logique</a><ul class="auto-toc"> +<li><a class="reference internal" href="#sch-ma-d-architecture-logique" id="id51">3.1 Schéma d'architecture logique</a></li> +<li><a class="reference internal" href="#description-des-flux" id="id52">3.2 Description des flux</a></li> +<li><a class="reference internal" href="#initialisation-des-entrep-ts-de-donn-es" id="id53">3.3 Initialisation des entrepÃŽts de données</a></li> +<li><a class="reference internal" href="#les-modules-de-l-application" id="id54">3.4 Les modules de l'application</a><ul class="auto-toc"> +<li><a class="reference internal" href="#le-module-authentification" id="id55">3.4.1 Le module authentification</a></li> +<li><a class="reference internal" href="#les-modules-services" id="id56">3.4.2 Les modules services</a></li> +<li><a class="reference internal" href="#le-module-autorisation" id="id57">3.4.3 Le module autorisation</a></li> +<li><a class="reference internal" href="#le-module-stockage" id="id58">3.4.4 Le module stockage</a></li> +<li><a class="reference internal" href="#le-module-interface" id="id59">3.4.5 Le module interface</a></li> +</ul> +</li> +<li><a class="reference internal" href="#d-veloppement-de-l-application" id="id60">3.5 Développement de l'application</a></li> +</ul> +</li> +<li><a class="reference internal" href="#architecture-physique" id="id61">4 Architecture physique</a><ul class="auto-toc"> +<li><a class="reference internal" href="#architecture-logicielle" id="id62">4.1 Architecture logicielle</a><ul class="auto-toc"> +<li><a class="reference internal" href="#serveur-web" id="id63">4.1.1 Serveur Web</a></li> +<li><a class="reference internal" href="#serveur-applicatif" id="id64">4.1.2 Serveur Applicatif</a></li> +<li><a class="reference internal" href="#sgbd" id="id65">4.1.3 SGBD</a></li> +<li><a class="reference internal" href="#choix-technologiques-transverses" id="id66">4.1.4 Choix technologiques transverses</a></li> +<li><a class="reference internal" href="#solution-aux-contraintes-d-ergonomie" id="id67">4.1.5 Solution aux contraintes d'ergonomie</a></li> +<li><a class="reference internal" href="#dimensionnement" id="id68">4.1.6 Dimensionnement</a></li> +<li><a class="reference internal" href="#solution-pour-l-exploitation-du-syst-me" id="id69">4.1.7 Solution pour l'exploitation du systÚme</a></li> +</ul> +</li> +<li><a class="reference internal" href="#mod-le-conceptuel" id="id70">4.2 ModÚle conceptuel</a><ul class="auto-toc"> +<li><a class="reference internal" href="#entit-s-des-donn-es" id="id71">4.2.1 Entités des données</a></li> +<li><a class="reference internal" href="#entit-s-des-authorisations" id="id72">4.2.2 Entités des authorisations</a></li> +<li><a class="reference internal" href="#services-de-stockage" id="id73">4.2.3 Services de stockage</a></li> +<li><a class="reference internal" href="#services-d-authorisation" id="id74">4.2.4 Services d'authorisation</a></li> +<li><a class="reference internal" href="#application-web" id="id75">4.2.5 Application web</a></li> +</ul> +</li> +<li><a class="reference internal" href="#s-quences-d-utilisation" id="id76">4.3 Séquences d'utilisation</a><ul class="auto-toc"> +<li><a class="reference internal" href="#gestion-des-authorisations" id="id77">4.3.1 Gestion des authorisations</a></li> +</ul> +</li> +<li><a class="reference internal" href="#crans-de-l-application" id="id78">4.4 Ãcrans de l'application</a><ul class="auto-toc"> +<li><a class="reference internal" href="#liste-des-l-ments" id="id79">4.4.1 Liste des éléments</a></li> +<li><a class="reference internal" href="#importer-un-l-ment" id="id80">4.4.2 Importer un élément</a></li> +<li><a class="reference internal" href="#liste-des-utilisateurs" id="id81">4.4.3 Liste des utilisateurs</a></li> +<li><a class="reference internal" href="#ajouter-diter-un-utilisateur" id="id82">4.4.4 Ajouter/éditer un utilisateur</a></li> +<li><a class="reference internal" href="#liste-des-groupes" id="id83">4.4.5 Liste des groupes</a></li> +<li><a class="reference internal" href="#ajouter-diter-un-groupe" id="id84">4.4.6 Ajouter/éditer un groupe</a></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="section" id="introduction"> +<h1><a class="toc-backref" href="#id40">1 Introduction</a></h1> +<p>Ce document détaille la solution proposée en réponse à la demande d'un outil d'exploration de simulation.</p> +</div> +<div class="section" id="architecture-conceptuelle"> +<h1><a class="toc-backref" href="#id41">2 Architecture conceptuelle</a></h1> +<div class="section" id="rappel-des-fonctions-de-l-application"> +<h2><a class="toc-backref" href="#id42">2.1 Rappel des fonctions de l'application</a></h2> +<p>L'application permet l'utilisation d'outils de simulation dans un environnement multi-utilisateurs. Un mode client léger met à disposition la gestion des utilisateurs et la consultation des paramÚtres des simulations. Ce mode est accessible avec un simple navigateur. Avec un logiciel fourni (nommé aussi client lourd), l'utilisateur peut de même gérer les utilisateurs, mais aussi les simulations afin de les lancer. Une fonction de synchronisation met à jour les données locales par rapport aux données centralisées.</p> +<p>Chaque fonction est limitée en fonction des droits de l'utilisateur connecté. Cet utilisateur, en fonction des groupes auxquels il appartient, obtient des droits sur les simulations et les utilisateurs (création, modification, suppression).</p> +<p>Les modifications des paramÚtres des simulations sont sauvegardé afin de conserver un historique. Cet historique se synchronise avec les données centralisées et les données de l'utilisateur.</p> +</div> +<div class="section" id="d-composition-de-l-application-en-modules"> +<h2><a class="toc-backref" href="#id43">2.2 Décomposition de l'application en modules</a></h2> +<p>L'authentification s'appuie sur un module unique. Celui ci permet d'authentifier les utilisateurs se connectant via le client léger ou le client lourd. Un premier niveau impératif nécessite l'appartenance de l'utilisateur à un groupe destiné à contenir les accrédités à utiliser l'application. Ce module fourni aussi les groupes d'appartenance d'un utilisateur, afin de déterminer ses droits. Enfin, ce module permet l'édition des utilisateurs et des groupes par les utilisateurs avec pouvoir.</p> +<p>Les autorisations sont gérées conjointement avec l'authentification. Une simulation a des droits associés en fonction de son propriétaire et son groupe d'appartenance. Ses droits sont décorélés des données métier, seul un identifiant technique permet aux services d'interroger le module d'autorisation afin de valider l'accÚs à une simulation. Le niveau de granularité des droits est similaire à la gestion des modes sur les fichiers. Les droits sur les actions création/modification/exécution sont alloués en fonction de l'utilisateur/groupe/autre.</p> +<p>Le stockage est un module dupliqué à la fois sur le serveur gérant les données centralisées et sur chaque client lourd. Celui-ci a la charge de conserver les données dans une base, et de stocker les données volumineuses dans le systÚme de fichier. Il est capable de persister les objets utilisés par l'application. Un mécanisme de synchronisation permet de mettre à jour les données locales et les données centralisées en fonction de rÚgles de gestion de versionnement.</p> +<p>La logique métier de l'application est contenue dans des services. Ceux ci peuvent être exécutés localement, lors de l'exécution d'une simulation sur le client lourd par exemple. Certains services sont présents uniquement sur le serveur, parce qu'ils nécessitent les modules d'autorisation et les données centralisées. Le client lourd fait alors appel à ces services dans un mode appel distant.</p> +<p>Le module d'interface est composé de deux parties. CÃŽté serveur, l'utilisateur accÚde avec un navigateur Internet standard à l'application. Les pages sont servies par un serveur web utilisant un contrÃŽleur. Celui ci interagit avec les services afin de présenter les données à l'utilisateur. CÃŽté client, l'interface graphique s'appuie aussi sur un contrÃŽleur utilisant les services.</p> +</div> +<div class="section" id="exigences-et-contraintes"> +<h2><a class="toc-backref" href="#id44">2.3 Exigences et contraintes</a></h2> +<div class="section" id="contraintes-d-urbanisme"> +<h3><a class="toc-backref" href="#id45">2.3.1 Contraintes d'urbanisme</a></h3> +<p>Le client lourd doit s'intégrer dans SimExplorer RCP.</p> +<p>Les services déployés sur le serveur et mis à disposition du client lourd doivent pouvoir être réutilisés par des applications tierces.</p> +<p>Le serveur doit être en mesure de lancer des simulations et de récupérer les résultats.</p> +</div> +<div class="section" id="exigences-et-contraintes-li-es-des-fonctionnalit-s-particuli-res"> +<h3><a class="toc-backref" href="#id46">2.3.2 Exigences et contraintes liées à des fonctionnalités particuliÚres</a></h3> +<p>Un serveur d'authentification.existant pourra être réutilisé dans la mesure où il est accessible via des protocoles standards. Une note précisant le fonctionnement de ce serveur devra être fourni afin de rendre possible son utilisation. ex : LDAP</p> +<p>Les appels de lancement des simulations devra être formalisés dans une note. Ceux ci pourront alors être intégrés dans les services.</p> +<p>L'authentification implique l'établissement d'une connexion sécurisée entre le client et le serveur, afin de ne pas faire passer en clair les mots de passe sur le réseau. Le serveur disposera d'un certificat afin de crypter les flux.</p> +</div> +<div class="section" id="contraintes-d-ergonomie"> +<h3><a class="toc-backref" href="#id47">2.3.3 Contraintes d'ergonomie</a></h3> +<p>L'application web se doit d'être compatible avec les navigateurs récents : Firefox2+ et IE6+.</p> +<p>L'application client lourd est un application standard type bureautique, et doit être compatible avec le maximum de plateformes. Le lancement de l'application doit se faire simplement par un raccourci.</p> +</div> +<div class="section" id="volum-trie"> +<h3><a class="toc-backref" href="#id48">2.3.4 Volumétrie</a></h3> +<p>Les données associées aux simulations sont parfois trÚs volumineuses (>100Mo). Ces données doivent être stockées en local mais aussi sur le serveur, avec des transferts entre le client et le serveur.</p> +</div> +<div class="section" id="contraintes-et-exigences-li-es-l-exploitation"> +<h3><a class="toc-backref" href="#id49">2.3.5 Contraintes et exigences liées à l'exploitation</a></h3> +<p>Lors de la mise à jour de l'application, la base de données doit être synchrone avec l'applicatif. De même, le client lourd doit être à jour par rapport à la version déployée sur le serveur.</p> +<p>Les données doivent pouvoir être simplement sauvegardées et restaurées.</p> +</div> +</div> +</div> +<div class="section" id="architecture-logique"> +<h1><a class="toc-backref" href="#id50">3 Architecture logique</a></h1> +<div class="section" id="sch-ma-d-architecture-logique"> +<h2><a class="toc-backref" href="#id51">3.1 Schéma d'architecture logique</a></h2> +<img alt="diagramme1.png" src="diagramme1.png" /> +</div> +<div class="section" id="description-des-flux"> +<h2><a class="toc-backref" href="#id52">3.2 Description des flux</a></h2> +<blockquote> +<ol class="arabic"> +<li><p class="first">Serveur web</p> +<p>L'interface client léger passe par ce flux. L'authentification se fera en HTTPS, le reste de l'application pourra être au choix en HTTP ou en HTTPS. Le contenu sera constitué de pages XHTML compatibles avec les navigateurs récents.</p> +</li> +<li><p class="first">Interface client lourd</p> +<p>C'est à travers ce canal que l'utilisateur interagit avec l'application.</p> +</li> +<li><p class="first">Serveur d'authentification</p> +<p>Le framework d'authentification utilise un serveur externe afin d'authentifier les utilisateurs. Ce flux dépend du serveur.</p> +</li> +<li><p class="first">Autorisations</p> +<p>Toutes les informations relatives à la protection des accÚs aux simulations sont retrouvées via ce lien vers une base de données.</p> +</li> +<li><p class="first">Persistance cÃŽté serveur</p> +<p>Les objets sont stockés dans une base de donnée à travers ce flux.</p> +</li> +<li><p class="first">Persistance cÃŽté client</p> +<p>De même, les objets sont stockés dans une base de données. Nous sommes ici en présence d'une base de données embarquée, afin de rendre le client lourd autonome.</p> +</li> +<li><p class="first">SystÚme de fichiers serveur</p> +<p>Les données volumineuses sont stockées dans le systÚme de fichier plutÃŽt que dans la base.</p> +</li> +<li><p class="first">SystÚme de fichiers client</p> +<p>De la même façon que sur le serveur, les données sont stockées sous forme de fichiers dans le systÚme de fichier de l'utilisateur.</p> +</li> +<li><p class="first">Services distants</p> +<p>La communication entre le client lourd et le serveur passe par ce flux. Celui ci est crypté et intégré à haut niveau dans l'application. Les appels de service se font de façon transparente, de façon similaire à un appel local.</p> +</li> +</ol> +</blockquote> +</div> +<div class="section" id="initialisation-des-entrep-ts-de-donn-es"> +<h2><a class="toc-backref" href="#id53">3.3 Initialisation des entrepÃŽts de données</a></h2> +<p>Pour l'authentification, un groupe d'utilisateur doit être créé afin d'accueillir les personnes accréditées. De plus, un groupe d'administrateur avec un utilisateur doit exister afin de permettre l'administration des utilisateurs. Ces deux groupes seront à spécifier lors de l'installation.</p> +<p>Si l'application doit utiliser un serveur d'authentification existant, le groupe des administrateurs doit avoir les droits de lister les utilisateurs amenés à être ajouté aux personnes accréditées.</p> +<p>Les bases de données d'autorisation et de stockage peuvent être initialisés lors du lancement de l'application de façon automatique. Si les droits de création de table et de champs n'est pas autorisé pour l'application, un script doit être exécuté avant le déploiement d'une nouvelle version afin de mettre à jour la base et migrer les données.</p> +<p>CÃŽté client, le problÚme ne se pose pas, la base de données est embarquée dans l'application.</p> +</div> +<div class="section" id="les-modules-de-l-application"> +<h2><a class="toc-backref" href="#id54">3.4 Les modules de l'application</a></h2> +<div class="section" id="le-module-authentification"> +<h3><a class="toc-backref" href="#id55">3.4.1 Le module authentification</a></h3> +<p>La technologie JAAS (Java Authentication and Authorization Service) a été retenue. La partie autorisation est utilisée uniquement pour valider l'accÚs de l'utilisateur authentifié à l'application.</p> +<p>Plusieurs méthodes d'authentification sont déjà implantées (login/mot de passe/groupes dans une base de données avec JDBC, LDAP, ...).</p> +</div> +<div class="section" id="les-modules-services"> +<h3><a class="toc-backref" href="#id56">3.4.2 Les modules services</a></h3> +<p>Les services sont contenus dans des EJB (Entreprise Java Bean). Chaque service est un composant disposant d'outils facilitant la mise en oeuvre des transactions et la distribution.</p> +<p>Ces services sont destinés à contenir toute la logique métier.</p> +<p>Les services contiennent aussi le contexte d'authentification de l'appelant.</p> +</div> +<div class="section" id="le-module-autorisation"> +<h3><a class="toc-backref" href="#id57">3.4.3 Le module autorisation</a></h3> +<p>Grâce au contexte d'authentification des EJB, les appels au module d'autorisation vont sécurisés les accÚs aux données.</p> +</div> +<div class="section" id="le-module-stockage"> +<h3><a class="toc-backref" href="#id58">3.4.4 Le module stockage</a></h3> +<p>Ce module repose en grande partie sur la technologie JPA (Java Persistence API). Elle permet un mapping entre les objets et la base de données de façon transparente et interropérable. Le choix de la base de données n'est alors plus vérouillé, de nombreux systÚmes étant compatibles. Afin de gérer les volumétries associées aux simulations, certaines propriétés seront stockées sur le disque dur.</p> +<p>Lors de l'accÚs à une donnée, le module gérant les autorisations est appelé afin de vérifier les droits. De même, lorsque l'utilisateur crée une nouvelle entité, les droits lui sont associés via ce service.</p> +</div> +<div class="section" id="le-module-interface"> +<h3><a class="toc-backref" href="#id59">3.4.5 Le module interface</a></h3> +<p>CÃŽté client léger, le site est réalisé avec Tapestry 5. Ce framework apporte le développement orienté objet au applications web. De nombreuses fonctionnalités sont incluses et facilitent le développement.</p> +<p>CÃŽté client lourd, le framework JAXX est utilisé. Ce framework transforme des XML décrivant l'interface en classes Java.</p> +</div> +</div> +<div class="section" id="d-veloppement-de-l-application"> +<h2><a class="toc-backref" href="#id60">3.5 Développement de l'application</a></h2> +<p>Lors de la construction de Simexplorer SI, nous utilisons le framework ToPIA ainsi que différents outils développés par Code Lutin. Ceux ci sont tous sous licence LGPL.</p> +<dl class="docutils"> +<dt>A partir du modÚle conceptuel, le process de développement génÚre une partie de l'application, entre autre sous la forme d'interfaces à implémenter. Nous obtenons alors :</dt> +<dd><ul class="first last simple"> +<li>les entités persistées</li> +<li>les interfaces des services</li> +<li>les interfaces des composants des pages web</li> +</ul> +</dd> +</dl> +</div> +</div> +<div class="section" id="architecture-physique"> +<h1><a class="toc-backref" href="#id61">4 Architecture physique</a></h1> +<div class="section" id="architecture-logicielle"> +<h2><a class="toc-backref" href="#id62">4.1 Architecture logicielle</a></h2> +<p>L'ensemble de l'application est développée avec le langage Java. La version de référence lors du développement de l'application est JRE 6 Update 3.</p> +<div class="section" id="serveur-web"> +<h3><a class="toc-backref" href="#id63">4.1.1 Serveur Web</a></h3> +<p>Le serveur web est constitué d'un Apache 2.2. Le module mod_proxy_ajp permet de ne pas lancer le serveur d'application en root et d'avoir accÚs au port HTTP et HTTPS.</p> +</div> +<div class="section" id="serveur-applicatif"> +<h3><a class="toc-backref" href="#id64">4.1.2 Serveur Applicatif</a></h3> +<table border="1" class="docutils"> +<colgroup> +<col width="20%" /> +<col width="20%" /> +<col width="20%" /> +<col width="20%" /> +<col width="20%" /> +</colgroup> +<thead valign="bottom"> +<tr><th class="head"> </th> +<th class="head">JBoss 4.2.2 GA</th> +<th class="head">Geronimo JEE5 2.0.2</th> +<th class="head">JOnAS 5.0 M1</th> +<th class="head">GlassFish V2</th> +</tr> +</thead> +<tbody valign="top"> +<tr><td>EJB3</td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#jba" id="id1">[1]</a></td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#grc" id="id2">[11]</a></td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#joa" id="id3">[21]</a></td> +<td><img alt="uok" src="uok.png" /></td> +</tr> +<tr><td><ul class="first last simple"> +<li>RemoteBinding</li> +</ul> +</td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#jbb" id="id4">[2]</a></td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#grd" id="id5">[12]</a></td> +<td><img alt="uok" src="uok.png" /></td> +<td><img alt="uok" src="uok.png" /></td> +</tr> +<tr><td><ul class="first last simple"> +<li>SSL</li> +</ul> +</td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#jbc" id="id6">[3]</a></td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#gra" id="id7">[13]</a></td> +<td><img alt="uok" src="uok.png" /></td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#gfd" id="id8">[29]</a></td> +</tr> +<tr><td><ul class="first last simple"> +<li>SecurityDomain</li> +</ul> +</td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#jbd" id="id9">[4]</a></td> +<td><img alt="uok" src="uok.png" /></td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#joc" id="id10">[22]</a></td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#gfe" id="id11">[30]</a></td> +</tr> +<tr><td><ul class="first last simple"> +<li>WebService</li> +</ul> +</td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#jbe" id="id12">[5]</a></td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#gre" id="id13">[14]</a></td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#job" id="id14">[23]</a></td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#gfa" id="id15">[31]</a></td> +</tr> +<tr><td><ul class="first last simple"> +<li>Sécurisé</li> +</ul> +</td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#jbe" id="id16">[5]</a></td> +<td><img alt="uok" src="uok.png" /> <a class="footnote-reference" href="#gre" id="id17">[14]</a></td> +<td><img alt="uok" src="uok.png" /></td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#gff" id="id18">[32]</a></td> +</tr> +<tr><td><ul class="first last simple"> +<li>WebServiceContext</li> +</ul> +</td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#jbe" id="id19">[5]</a></td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#gre" id="id20">[14]</a></td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#job" id="id21">[23]</a></td> +<td><img alt="uok" src="uok.png" /></td> +</tr> +<tr><td><ul class="first last simple"> +<li>SessionContext</li> +</ul> +</td> +<td><img alt="uok" src="uok.png" /></td> +<td><img alt="uok" src="uok.png" /></td> +<td><img alt="uok" src="uok.png" /></td> +<td><img alt="uok" src="uok.png" /></td> +</tr> +<tr><td>JPA</td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#jbf" id="id22">[6]</a></td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#grf" id="id23">[15]</a></td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#jof" id="id24">[24]</a></td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#gfb" id="id25">[33]</a></td> +</tr> +<tr><td><ul class="first last simple"> +<li>XML datasource</li> +</ul> +</td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#jbg" id="id26">[7]</a></td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#grj" id="id27">[16]</a></td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#joe" id="id28">[25]</a></td> +<td><img alt="uok" src="uok.png" /></td> +</tr> +<tr><td><ul class="first last simple"> +<li>persistence.xml</li> +</ul> +</td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#jbh" id="id29">[8]</a></td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#grg" id="id30">[17]</a></td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#jog" id="id31">[26]</a></td> +<td><img alt="uok" src="uok.png" /></td> +</tr> +<tr><td><ul class="first last simple"> +<li>orm.xml</li> +</ul> +</td> +<td><img alt="uok" src="uok.png" /></td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#grh" id="id32">[18]</a></td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#joh" id="id33">[27]</a></td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#gfc" id="id34">[34]</a></td> +</tr> +<tr><td>Servlet</td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#jbi" id="id35">[9]</a></td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#gri" id="id36">[19]</a></td> +<td><img alt="uok" src="uok.png" /></td> +<td><img alt="uok" src="uok.png" /></td> +</tr> +<tr><td><ul class="first last simple"> +<li>JAAS</li> +</ul> +</td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#jbj" id="id37">[10]</a></td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#grb" id="id38">[20]</a></td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#jod" id="id39">[28]</a></td> +<td><img alt="uok" src="uok.png" /></td> +</tr> +<tr><td>Corba</td> +<td><img alt="uok" src="uok.png" /></td> +<td><img alt="uok" src="uok.png" /></td> +<td><img alt="uok" src="uok.png" /></td> +<td><img alt="uok" src="uok.png" /></td> +</tr> +</tbody> +</table> +<table class="docutils footnote" frame="void" id="jba" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label"><a class="fn-backref" href="#id1">[1]</a></td><td><a class="reference external" href="http://docs.jboss.org/ejb3/app-server/reference/build/reference/en/html/index.html">http://docs.jboss.org/ejb3/app-server/reference/build/reference/en/html/index.html</a></td></tr> +</tbody> +</table> +<table class="docutils footnote" frame="void" id="jbb" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label"><a class="fn-backref" href="#id4">[2]</a></td><td><a class="reference external" href="http://docs.jboss.org/ejb3/app-server/tutorial/jndibinding/jndi.html">http://docs.jboss.org/ejb3/app-server/tutorial/jndibinding/jndi.html</a></td></tr> +</tbody> +</table> +<table class="docutils footnote" frame="void" id="jbc" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label"><a class="fn-backref" href="#id6">[3]</a></td><td><a class="reference external" href="http://docs.jboss.org/ejb3/app-server/reference/build/reference/en/html/transport.html">http://docs.jboss.org/ejb3/app-server/reference/build/reference/en/html/transport.html</a></td></tr> +</tbody> +</table> +<table class="docutils footnote" frame="void" id="jbd" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label"><a class="fn-backref" href="#id9">[4]</a></td><td><a class="reference external" href="http://docs.jboss.org/ejb3/app-server/tutorial/security/security.html">http://docs.jboss.org/ejb3/app-server/tutorial/security/security.html</a></td></tr> +</tbody> +</table> +<table class="docutils footnote" frame="void" id="jbe" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label">[5]</td><td><em>(<a class="fn-backref" href="#id12">1</a>, <a class="fn-backref" href="#id16">2</a>, <a class="fn-backref" href="#id19">3</a>)</em> <a class="reference external" href="http://labs.jboss.com/jbossws/docs/jaxws_userguide-2.0/index.html">http://labs.jboss.com/jbossws/docs/jaxws_userguide-2.0/index.html</a></td></tr> +</tbody> +</table> +<table class="docutils footnote" frame="void" id="jbf" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label"><a class="fn-backref" href="#id22">[6]</a></td><td><a class="reference external" href="http://labs.jboss.com/file-access/default/members/jbossas/freezone/docs/Server_Configuration_Guide/beta422/html/EJB3_Services-Entity_Beans.html">http://labs.jboss.com/file-access/default/members/jbossas/freezone/docs/Server_Configuration_Guide/beta422/html/EJB3_Services-Entity_Beans.html</a></td></tr> +</tbody> +</table> +<table class="docutils footnote" frame="void" id="jbg" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label"><a class="fn-backref" href="#id26">[7]</a></td><td><a class="reference external" href="http://labs.jboss.com/file-access/default/members/jbossas/freezone/docs/Server_Configuration_Guide/beta422/html/Connectors_on_JBoss-Configuring_JDBC_DataSources.html">http://labs.jboss.com/file-access/default/members/jbossas/freezone/docs/Server_Configuration_Guide/beta422/html/Connectors_on_JBoss-Configuring_JDBC_DataSources.html</a></td></tr> +</tbody> +</table> +<table class="docutils footnote" frame="void" id="jbh" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label"><a class="fn-backref" href="#id29">[8]</a></td><td><a class="reference external" href="http://labs.jboss.com/file-access/default/members/jbossas/freezone/docs/Server_Configuration_Guide/beta422/html/ch01s02s01.html">http://labs.jboss.com/file-access/default/members/jbossas/freezone/docs/Server_Configuration_Guide/beta422/html/ch01s02s01.html</a></td></tr> +</tbody> +</table> +<table class="docutils footnote" frame="void" id="jbi" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label"><a class="fn-backref" href="#id35">[9]</a></td><td><a class="reference external" href="http://labs.jboss.com/file-access/default/members/jbossas/freezone/docs/Getting_Started_Guide/beta422/html/ch01s07.html">http://labs.jboss.com/file-access/default/members/jbossas/freezone/docs/Getting_Started_Guide/beta422/html/ch01s07.html</a></td></tr> +</tbody> +</table> +<table class="docutils footnote" frame="void" id="jbj" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label"><a class="fn-backref" href="#id37">[10]</a></td><td><a class="reference external" href="http://labs.jboss.com/file-access/default/members/jbossas/freezone/docs/Server_Configuration_Guide/beta422/html/Security_on_JBoss-J2EE_Declarative_Security_Overview.html">http://labs.jboss.com/file-access/default/members/jbossas/freezone/docs/Server_Configuration_Guide/beta422/html/Security_on_JBoss-J2EE_Declarative_Security_Overview.html</a></td></tr> +</tbody> +</table> +<table class="docutils footnote" frame="void" id="grc" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label"><a class="fn-backref" href="#id2">[11]</a></td><td><a class="reference external" href="http://openejb.apache.org/">http://openejb.apache.org/</a></td></tr> +</tbody> +</table> +<table class="docutils footnote" frame="void" id="grd" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label"><a class="fn-backref" href="#id5">[12]</a></td><td><a class="reference external" href="http://openejb.apache.org/jndi-names.html">http://openejb.apache.org/jndi-names.html</a></td></tr> +</tbody> +</table> +<table class="docutils footnote" frame="void" id="gra" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label"><a class="fn-backref" href="#id7">[13]</a></td><td><a class="reference external" href="http://www.ibm.com/developerworks/opensource/library/os-ag-corba1/">http://www.ibm.com/developerworks/opensource/library/os-ag-corba1/</a></td></tr> +</tbody> +</table> +<table class="docutils footnote" frame="void" id="gre" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label">[14]</td><td><em>(<a class="fn-backref" href="#id13">1</a>, <a class="fn-backref" href="#id17">2</a>, <a class="fn-backref" href="#id20">3</a>)</em> <a class="reference external" href="http://cwiki.apache.org/GMOxPMGT/geronimo-20-web-services-support.html">http://cwiki.apache.org/GMOxPMGT/geronimo-20-web-services-support.html</a></td></tr> +</tbody> +</table> +<table class="docutils footnote" frame="void" id="grf" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label"><a class="fn-backref" href="#id23">[15]</a></td><td><a class="reference external" href="http://openjpa.apache.org/builds/1.0.1/apache-openjpa-1.0.1/docs/manual/jpa_overview_intro.html">http://openjpa.apache.org/builds/1.0.1/apache-openjpa-1.0.1/docs/manual/jpa_overview_intro.html</a></td></tr> +</tbody> +</table> +<table class="docutils footnote" frame="void" id="grj" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label"><a class="fn-backref" href="#id27">[16]</a></td><td><a class="reference external" href="http://cwiki.apache.org/GMOxDOC11/geronimo-connector-11xsd.html#geronimo-connector-1.1.xsd-definitioninstanceType">http://cwiki.apache.org/GMOxDOC11/geronimo-connector-11xsd.html#geronimo-connector-1.1.xsd-definitioninstanceType</a></td></tr> +</tbody> +</table> +<table class="docutils footnote" frame="void" id="grg" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label"><a class="fn-backref" href="#id30">[17]</a></td><td><a class="reference external" href="http://openjpa.apache.org/builds/1.0.1/apache-openjpa-1.0.1/docs/manual/jpa_overview_persistence.html">http://openjpa.apache.org/builds/1.0.1/apache-openjpa-1.0.1/docs/manual/jpa_overview_persistence.html</a></td></tr> +</tbody> +</table> +<table class="docutils footnote" frame="void" id="grh" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label"><a class="fn-backref" href="#id32">[18]</a></td><td><a class="reference external" href="http://openjpa.apache.org/builds/1.0.1/apache-openjpa-1.0.1/docs/manual/jpa_overview_meta.html">http://openjpa.apache.org/builds/1.0.1/apache-openjpa-1.0.1/docs/manual/jpa_overview_meta.html</a></td></tr> +</tbody> +</table> +<table class="docutils footnote" frame="void" id="gri" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label"><a class="fn-backref" href="#id36">[19]</a></td><td><a class="reference external" href="http://cwiki.apache.org/GMOxKB/jetty-or-tomcat.html">http://cwiki.apache.org/GMOxKB/jetty-or-tomcat.html</a></td></tr> +</tbody> +</table> +<table class="docutils footnote" frame="void" id="grb" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label"><a class="fn-backref" href="#id38">[20]</a></td><td><a class="reference external" href="http://www.ibm.com/developerworks/opensource/library/os-ag-security/">http://www.ibm.com/developerworks/opensource/library/os-ag-security/</a></td></tr> +</tbody> +</table> +<table class="docutils footnote" frame="void" id="joa" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label"><a class="fn-backref" href="#id3">[21]</a></td><td><a class="reference external" href="http://www.easybeans.org/doc/userguide/en/chunk-integrated/ejb3_introduction.html">http://www.easybeans.org/doc/userguide/en/chunk-integrated/ejb3_introduction.html</a></td></tr> +</tbody> +</table> +<table class="docutils footnote" frame="void" id="joc" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label"><a class="fn-backref" href="#id10">[22]</a></td><td><a class="reference external" href="http://jonas.objectweb.org/current/doc/doc-en/integrated/configuration_guide.html#config.security">http://jonas.objectweb.org/current/doc/doc-en/integrated/configuration_guide.html#config.security</a></td></tr> +</tbody> +</table> +<table class="docutils footnote" frame="void" id="job" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label">[23]</td><td><em>(<a class="fn-backref" href="#id14">1</a>, <a class="fn-backref" href="#id21">2</a>)</em> <a class="reference external" href="http://wiki.easybeans.org/xwiki/bin/view/Main/JAXWS">http://wiki.easybeans.org/xwiki/bin/view/Main/JAXWS</a></td></tr> +</tbody> +</table> +<table class="docutils footnote" frame="void" id="jof" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label"><a class="fn-backref" href="#id24">[24]</a></td><td><a class="reference external" href="http://www.jpox.org/docs/jpa/index.html">http://www.jpox.org/docs/jpa/index.html</a></td></tr> +</tbody> +</table> +<table class="docutils footnote" frame="void" id="joe" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label"><a class="fn-backref" href="#id28">[25]</a></td><td><a class="reference external" href="http://jonas.objectweb.org/current/doc/doc-en/integrated/configuration_guide.html#N11268">http://jonas.objectweb.org/current/doc/doc-en/integrated/configuration_guide.html#N11268</a></td></tr> +</tbody> +</table> +<table class="docutils footnote" frame="void" id="jog" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label"><a class="fn-backref" href="#id31">[26]</a></td><td><a class="reference external" href="http://www.jpox.org/docs/jpa/persistence_xml.html">http://www.jpox.org/docs/jpa/persistence_xml.html</a></td></tr> +</tbody> +</table> +<table class="docutils footnote" frame="void" id="joh" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label"><a class="fn-backref" href="#id33">[27]</a></td><td><a class="reference external" href="http://www.jpox.org/docs/jpa/orm_xml.html">http://www.jpox.org/docs/jpa/orm_xml.html</a></td></tr> +</tbody> +</table> +<table class="docutils footnote" frame="void" id="jod" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label"><a class="fn-backref" href="#id39">[28]</a></td><td><a class="reference external" href="http://jonas.objectweb.org/current/doc/doc-en/integrated/configuration_guide.html#N10F4F">http://jonas.objectweb.org/current/doc/doc-en/integrated/configuration_guide.html#N10F4F</a></td></tr> +</tbody> +</table> +<table class="docutils footnote" frame="void" id="gfd" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label"><a class="fn-backref" href="#id8">[29]</a></td><td><a class="reference external" href="http://blogs.sun.com/swchan/entry/enterprise_java_bean_over_ssl">http://blogs.sun.com/swchan/entry/enterprise_java_bean_over_ssl</a></td></tr> +</tbody> +</table> +<table class="docutils footnote" frame="void" id="gfe" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label"><a class="fn-backref" href="#id11">[30]</a></td><td><a class="reference external" href="http://java.sun.com/developer/technicalArticles/J2EE/security_annotation/">http://java.sun.com/developer/technicalArticles/J2EE/security_annotation/</a></td></tr> +</tbody> +</table> +<table class="docutils footnote" frame="void" id="gfa" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label"><a class="fn-backref" href="#id15">[31]</a></td><td><a class="reference external" href="http://wiki.glassfish.java.net/Wiki.jsp?page=WebServicesTechnologies">http://wiki.glassfish.java.net/Wiki.jsp?page=WebServicesTechnologies</a></td></tr> +</tbody> +</table> +<table class="docutils footnote" frame="void" id="gff" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label"><a class="fn-backref" href="#id18">[32]</a></td><td><a class="reference external" href="https://glassfish.dev.java.net/javaee5/docs/AG/ablrk.html#ablry">https://glassfish.dev.java.net/javaee5/docs/AG/ablrk.html#ablry</a></td></tr> +</tbody> +</table> +<table class="docutils footnote" frame="void" id="gfb" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label"><a class="fn-backref" href="#id25">[33]</a></td><td><a class="reference external" href="https://glassfish.dev.java.net/javaee5/persistence/">https://glassfish.dev.java.net/javaee5/persistence/</a></td></tr> +</tbody> +</table> +<table class="docutils footnote" frame="void" id="gfc" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label"><a class="fn-backref" href="#id34">[34]</a></td><td><a class="reference external" href="https://glassfish.dev.java.net/javaee5/persistence/persistence_faq.html#5">https://glassfish.dev.java.net/javaee5/persistence/persistence_faq.html#5</a></td></tr> +</tbody> +</table> +</div> +<div class="section" id="sgbd"> +<h3><a class="toc-backref" href="#id65">4.1.3 SGBD</a></h3> +<p>Pour la base sur le serveur, les performances et la stabilité de PostgreSQL ont été retenues. CÃŽté client lourd, la base de donnée embarquée H2 est utilisée. Un export XML sera réalisé pour l'interopérabilité.</p> +</div> +<div class="section" id="choix-technologiques-transverses"> +<h3><a class="toc-backref" href="#id66">4.1.4 Choix technologiques transverses</a></h3> +<p>Dans la perspective de réutilisation, les services publiés utiliseront des protocoles standardisés et inter opérables, afin de ne pas limiter le choix du langage.</p> +<p>La technologie ... a été choisie pour son support de la sécurité et son utilisation courante dans différents langages et sur différents systÚmes d'exploitation.</p> +</div> +<div class="section" id="solution-aux-contraintes-d-ergonomie"> +<h3><a class="toc-backref" href="#id67">4.1.5 Solution aux contraintes d'ergonomie</a></h3> +<p>L'application web respectera les standards W3C XHTML.</p> +<p>L'application client lourd utilise le framework Swing, disponible sur un grand nombre de plateformes. Sur celles où Java Web Start est disponible, l'application pourra être installée par un simple clic sur le site du client léger.</p> +</div> +<div class="section" id="dimensionnement"> +<h3><a class="toc-backref" href="#id68">4.1.6 Dimensionnement</a></h3> +<p>Une attention particuliÚre devra être faite à la taille des partitions lors de l'intégration en fonction de la volumétrie cible. De même, cÃŽté client, l'utilisateur doit être informé de l'espace utilisé par l'application par rapport à son espace disponible. La synchronisation doit vérifier au préalable la suffisance d'espace.</p> +<p>En supposant que chaque simulation prend environ 100ko de paramÚtres, que 10 utilisateurs utilisent l'application en créant 5 simulations par jour, on obtient environ 10Go de paramÚtres de simulation sur 10 ans.</p> +</div> +<div class="section" id="solution-pour-l-exploitation-du-syst-me"> +<h3><a class="toc-backref" href="#id69">4.1.7 Solution pour l'exploitation du systÚme</a></h3> +<p>Lors de la mise à jour de l'application, plusieurs aspects doivent être gérés. Tout d'abord la base de données doit être synchrone avec l'applicatif. Ceci devra se faire automatiquement avec une migration des données executée lors du déploiement d'une nouvelle version.</p> +<p>Dans un environnement client/serveur, il est nécessaire de garantir la compatibilité entre les deux applications. Ainsi, le serveur mettra à disposition dans la mesure du possible les services avec une compatibilité ascendante. Si la version du client est obsolÚte, l'utilisateur est notifié et il ne peut plus utiliser l'application en mode connecté.</p> +</div> +</div> +<div class="section" id="mod-le-conceptuel"> +<h2><a class="toc-backref" href="#id70">4.2 ModÚle conceptuel</a></h2> +<div class="section" id="entit-s-des-donn-es"> +<h3><a class="toc-backref" href="#id71">4.2.1 Entités des données</a></h3> +<img alt="../../../../xmi/images/data.png" src="../../../../xmi/images/data.png" /> +</div> +<div class="section" id="entit-s-des-authorisations"> +<h3><a class="toc-backref" href="#id72">4.2.2 Entités des authorisations</a></h3> +<img alt="../../../../xmi/images/entities.png" src="../../../../xmi/images/entities.png" /> +</div> +<div class="section" id="services-de-stockage"> +<h3><a class="toc-backref" href="#id73">4.2.3 Services de stockage</a></h3> +<img alt="../../../../xmi/images/storage.png" src="../../../../xmi/images/storage.png" /> +</div> +<div class="section" id="services-d-authorisation"> +<h3><a class="toc-backref" href="#id74">4.2.4 Services d'authorisation</a></h3> +<img alt="../../../../xmi/images/authorization.png" src="../../../../xmi/images/authorization.png" /> +</div> +<div class="section" id="application-web"> +<h3><a class="toc-backref" href="#id75">4.2.5 Application web</a></h3> +<img alt="../../../../xmi/images/applications.png" src="../../../../xmi/images/applications.png" /> +</div> +</div> +<div class="section" id="s-quences-d-utilisation"> +<h2><a class="toc-backref" href="#id76">4.3 Séquences d'utilisation</a></h2> +<div class="section" id="gestion-des-authorisations"> +<h3><a class="toc-backref" href="#id77">4.3.1 Gestion des authorisations</a></h3> +<img alt="./authorization.jpg" src="./authorization.jpg" /> +</div> +</div> +<div class="section" id="crans-de-l-application"> +<h2><a class="toc-backref" href="#id78">4.4 Ãcrans de l'application</a></h2> +<div class="section" id="liste-des-l-ments"> +<h3><a class="toc-backref" href="#id79">4.4.1 Liste des éléments</a></h3> +<img alt="./screenshots/Screenshot.png" src="./screenshots/Screenshot.png" /> +</div> +<div class="section" id="importer-un-l-ment"> +<h3><a class="toc-backref" href="#id80">4.4.2 Importer un élément</a></h3> +<img alt="./screenshots/Screenshot-1.png" src="./screenshots/Screenshot-1.png" /> +</div> +<div class="section" id="liste-des-utilisateurs"> +<h3><a class="toc-backref" href="#id81">4.4.3 Liste des utilisateurs</a></h3> +<img alt="./screenshots/Screenshot-2.png" src="./screenshots/Screenshot-2.png" /> +</div> +<div class="section" id="ajouter-diter-un-utilisateur"> +<h3><a class="toc-backref" href="#id82">4.4.4 Ajouter/éditer un utilisateur</a></h3> +<img alt="./screenshots/Screenshot-3.png" src="./screenshots/Screenshot-3.png" /> +</div> +<div class="section" id="liste-des-groupes"> +<h3><a class="toc-backref" href="#id83">4.4.5 Liste des groupes</a></h3> +<img alt="./screenshots/Screenshot-4.png" src="./screenshots/Screenshot-4.png" /> +</div> +<div class="section" id="ajouter-diter-un-groupe"> +<h3><a class="toc-backref" href="#id84">4.4.6 Ajouter/éditer un groupe</a></h3> +<img alt="./screenshots/Screenshot-5.png" src="./screenshots/Screenshot-5.png" /> +</div> +</div> +</div> +</div> +</body> +</html> Property changes on: trunk/simexplorer-si/src/site/fr/rst/devel/architecture.xhtml ___________________________________________________________________ Name: svn:executable + * Added: trunk/simexplorer-si/src/site/fr/rst/devel/authorization.jpg =================================================================== (Binary files differ) Property changes on: trunk/simexplorer-si/src/site/fr/rst/devel/authorization.jpg ___________________________________________________________________ Name: svn:executable + * Name: svn:mime-type + application/octet-stream Added: trunk/simexplorer-si/src/site/fr/rst/devel/authorization.uxf =================================================================== --- trunk/simexplorer-si/src/site/fr/rst/devel/authorization.uxf (rev 0) +++ trunk/simexplorer-si/src/site/fr/rst/devel/authorization.uxf 2008-01-10 16:00:55 UTC (rev 110) @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="UTF-8"?><umlet_diagram><element><type>com.umlet.element.base.SequenceDiagram</type><coordinates><x>20</x><y>20</y><w>790</w><h>510</h></coordinates><panel_attributes>user|_storageManager_|_loggableManager_|_credentialManager_ +1->>2:1,2:getElement(12) +2->>4:1,2,4:getCurrentLoggedActor() +4->2:1,2,4:actor +2->>2:1,2:getElement(12) +2->>3:1,2,3:getCredentials(element) +3->2:1,2,3:itemCredential +2->1:1,2:element +1->1:1:Modify element +1->>2:1,2:saveElement(element) +2->>3:1,2,3:getCredentials(element.parent) +3->2:1,2,3:itemCredential +2->>2:1,2:saveElement(element) +2->>3:1,2:registerElement(element) +2->1:1,2:element +</panel_attributes><additional_attributes></additional_attributes></element></umlet_diagram> \ No newline at end of file Property changes on: trunk/simexplorer-si/src/site/fr/rst/devel/authorization.uxf ___________________________________________________________________ Name: svn:executable + * Added: trunk/simexplorer-si/src/site/fr/rst/devel/developpement.abw =================================================================== --- trunk/simexplorer-si/src/site/fr/rst/devel/developpement.abw (rev 0) +++ trunk/simexplorer-si/src/site/fr/rst/devel/developpement.abw 2008-01-10 16:00:55 UTC (rev 110) @@ -0,0 +1,54 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE abiword PUBLIC "-//ABISOURCE//DTD AWML 1.0 Strict//EN" "http://www.abisource.com/awml.dtd"> +<abiword template="false" styles="unlocked" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:math="http://www.w3.org/1998/Math/MathML" xid-max="32" xmlns:dc="http://purl.org/dc/elements/1.1/" fileformat="1.1" xmlns:svg="http://www.w3.org/2000/svg" xmlns:awml="http://www.abisource.com/awml.dtd" xmlns="http://www.abisource.com/awml.dtd" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.9.1" xml:space="preserve" props="dom-dir:ltr; document-footnote-restart-section:0; document-endnote-type:numeric; document-endnote-place-enddoc:1; document-endnote-initial:1; lang:fr-FR; document-endnote-restart-section:0; document-footnote-restart-page:0; document-footnote-type:numeric; document-footnote-initial:1; document-endnote-place-endsection:0"> +<!-- ======================================================================== --> +<!-- This file is an AbiWord document. --> +<!-- AbiWord is a free, Open Source word processor. --> +<!-- More information about AbiWord is available at http://www.abisource.com/ --> +<!-- You should not edit this file by hand. --> +<!-- ======================================================================== --> + +<metadata> +<m key="dc.format">application/x-abiword</m> +<m key="abiword.generator">AbiWord</m> +</metadata> +<history version="10" edit-time="2201" last-saved="1197912765" uid="f4025158-acc0-11dc-9495-ead58c2affe3"> +<version id="10" started="1197910595" uid="13efae3e-acc6-11dc-9495-ead58c2affe3" auto="0" top-xid="2"/> +</history> +<styles> +<s type="P" name="Normal" followedby="Current Settings" props="font-family:Times New Roman; margin-top:0pt; color:000000; margin-left:0pt; text-position:normal; widows:2; font-style:normal; text-indent:0in; font-variant:normal; margin-right:0pt; lang:fr-FR; line-height:1.0; font-size:12pt; text-decoration:none; margin-bottom:0pt; font-weight:normal; bgcolor:transparent; text-align:left; font-stretch:normal"/> +</styles> +<pagesize pagetype="Custom" orientation="portrait" width="450.000000" height="297.000000" units="mm" page-scale="1.000000"/> +<section xid="1" props="page-margin-right:25.4mm; page-margin-footer:12.7mm; page-margin-header:12.7mm; page-margin-left:25.4mm; page-margin-top:25.4mm; page-margin-bottom:25.4mm"> +<p style="Normal" xid="2"><c props="font-family:Bitstream Vera Sans Mono">Documentation développement Simexplorer-SI</c></p> +<p style="Normal" xid="3"></p> +<p style="Normal" xid="4"><c props="font-family:Bitstream Vera Sans Mono">Stockage des données</c></p> +<p style="Normal" xid="5"></p> +<p style="Normal" xid="6"><c props="font-family:Bitstream Vera Sans Mono">Découpage</c></p> +<p style="Normal" xid="7"></p> +<p style="Normal" xid="8" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono">Les données ont été décomposées en trois groupes :</c></p> +<p style="Normal" xid="9" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono"> * les meta-données de chaque élément, permettant de l'identifier, de connaître son type, son parent en version, etc</c></p> +<p style="Normal" xid="10" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono"> * le contenu indexé, provenant d'une librairie, de résultat, etc. C'est sur ce contenu que la recherche full text sera faite</c></p> +<p style="Normal" xid="11" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono"> * les données à proprement parler, qui sont stockées sur le systÚme de fichier. On conserve dans ces fichiers les meta données, afin de permettre la reconstruction d'une base à partir d'un dossier.</c></p> +<p style="Normal" xid="12" props="text-align:left; dom-dir:ltr"></p> +<p style="Normal" xid="13" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono">Stockage des meta données</c></p> +<p style="Normal" xid="14" props="text-align:left; dom-dir:ltr"></p> +<p style="Normal" xid="15" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono">Une interface permet la gestion de meta-données : Database.</c></p> +<p style="Normal" xid="16" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono">Son implémentation est faite par LuceneDatabase.</c></p> +<p style="Normal" xid="17" props="text-align:left; dom-dir:ltr"></p> +<p style="Normal" xid="18" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono">Stockage des données</c></p> +<p style="Normal" xid="19" props="text-align:left; dom-dir:ltr"></p> +<p style="Normal" xid="20" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono">Une interface permet la gestion du stockage de données : AttachmentHandler.</c></p> +<p style="Normal" xid="21" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono">Son implémentation est faite par FileSystemAttachmentHandler.</c></p> +<p style="Normal" xid="22" props="text-align:left; dom-dir:ltr"></p> +<p style="Normal" xid="23" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono">Stockage des données et des meta données</c></p> +<p style="Normal" xid="24" props="text-align:left; dom-dir:ltr"></p> +<p style="Normal" xid="25" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono">Les deux interfaces sont utilisées dans StorageEngine. Cette classe permet en plus de stocker des données temporaires.</c></p> +<p style="Normal" xid="26" props="text-align:left; dom-dir:ltr"></p> +<p style="Normal" xid="27" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono">Service de gestion des données</c></p> +<p style="Normal" xid="28" props="text-align:left; dom-dir:ltr"></p> +<p style="Normal" xid="31" props="text-align:left; dom-dir:ltr"></p> +<p style="Normal" xid="32" props="text-align:left; dom-dir:ltr"></p> +<p style="Normal" xid="29" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono">Service publié</c></p> +</section> +</abiword> Added: trunk/simexplorer-si/src/site/fr/rst/devel/diagramme1.dia =================================================================== (Binary files differ) Property changes on: trunk/simexplorer-si/src/site/fr/rst/devel/diagramme1.dia ___________________________________________________________________ Name: svn:executable + * Name: svn:mime-type + application/octet-stream Added: trunk/simexplorer-si/src/site/fr/rst/devel/diagramme1.png =================================================================== (Binary files differ) Property changes on: trunk/simexplorer-si/src/site/fr/rst/devel/diagramme1.png ___________________________________________________________________ Name: svn:executable + * Name: svn:mime-type + application/octet-stream Added: trunk/simexplorer-si/src/site/fr/rst/devel/implementation.rst =================================================================== --- trunk/simexplorer-si/src/site/fr/rst/devel/implementation.rst (rev 0) +++ trunk/simexplorer-si/src/site/fr/rst/devel/implementation.rst 2008-01-10 16:00:55 UTC (rev 110) @@ -0,0 +1,99 @@ +=============================== +SimExplorer SI - Implémentation +=============================== + +.. contents:: :depth: 3 +.. sectnum:: + +Découpage +========= + +Module entities +--------------- + +Ce premier module a trois objectifs : + #. les classes de données + #. les types de contenus attachés aux données + #. les "usines" à instances, capables d'instancier les données, et de sérialiser/désérialiser en XML + +Classes de données +__________________ + +Ce sont des classes sérializables. Elles représentent le modèle de données fournies. +Le type "LoggableElement" se voit rattaché une association vers un "MetaDataEntity". Cette classe contient +toutes les propriétés nécessaires au fonctionnement de Simexplorer SI. + +Types de contenus +_________________ + +Afin de traiter les contenus attachés aux données, ContentType permet de spécifier le type d'un contenu en +fournissant le MIME type et une méthode virtuelle de conversion d'un flux en texte, afin de l'afficher ou de +l'indexer pour la recherche. + +Factories +_________ + +Ces classes servent à charger/sauver les objets sous la forme de fichiers XML. + +Module storage +-------------- + +Database +________ + +Cette interface spécifie comment les meta données doivent être gérées. +On y trouvera : + #. ouverture/fermeture/commit + #. insertion d'élément + #. Récupération d'un élément dans sa dernière version, ou dans une version spécifique + grâce à l'obtention de toutes ses versions + #. Recherche paginée d'élements (ie comptage et extraction d'un sous ensemble des résultats) : + - par propriétés + - par type + - par recherche dans le contenu + #. Suppression d'un élément + +Une implémentation est fournie, basée sur Lucene. + +Attachment +__________ + +On trouvera dans cette interface les méthodes nécessaires à la gestion du stockage des flux. +Ainsi, on peut stocker/retrouver/effacer un flux. +Un flux est l'association d'une meta donnée, d'un champ et d'un contenu (InputStream). + +Une implementation est fournie, basée sur le système de fichiers. + +Engine +______ + +On trouvera dans ce dernier package l'association de "Database" et "Attachment". +On retrouvera grosso modo les méthodes disponibles dans "Database", agrémentées des flux de contenu, +en convertissant les contenus attaché aux meta données en données indexables par exemple. +StorageEngine propose aussi le stockage de flux temporaires, afin de dupliquer des InputStream. + +Module service +-------------- + +Ce module est constitué d'une interface du service et de ses implémentations. +On retrouvera dans cette interface tout ce qui est nécessaire au fonctionnement de : + #. l'application web, en accès EJB + #. le service de stockage local du client lourd, en instance locale + #. la connexion au serveur central, en accès EJB + +Module web +---------- + +L'accès au service EJB se fait via StorageServiceFactory. Si le proxy n'a pas été initialisé, +on recherche l'EJB via des propriétés JNDI propres à JBoss. +Un ContextListener ouvre le service lors du lancement du serveur, et le ferme à son arrêt. + +Un composant Layout permet de définir toutes les pages. Les autres pages utilisent alors +uniquement ce composant dans leur page, et mette leur contenu propre à l'intérieur. + +Authentification/Autorisations +============================== + +On souhaite pouvoir gérer des utilisateurs et des groupes ayant des droits sur les entités de l'application. + +L'authentification \ No newline at end of file Added: trunk/simexplorer-si/src/site/fr/rst/devel/migration.rst =================================================================== --- trunk/simexplorer-si/src/site/fr/rst/devel/migration.rst (rev 0) +++ trunk/simexplorer-si/src/site/fr/rst/devel/migration.rst 2008-01-10 16:00:55 UTC (rev 110) @@ -0,0 +1,190 @@ +ToPIA Migration Service +======================= + +ToPIA Migration Service est un module ToPIA chargᅵ d'effectuer la migration +d'une base de donnᅵes existante sans perte de donnᅵes. + +Configuration +------------- +Ce service doit disposer de quelques proprietᅵs de configuration pour effectuer +la migration d'une base de donnᅵes. + +Ces propriᅵtᅵs sont fournies au service via un TopiaContext et font donc partie +de la configuration de l'application. + + +Configuration de la base de donnᅵes +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +:: + + hibernate.dialect=org.hibernate.dialect.H2Dialect + hibernate.connection.username=sa + hibernate.connection.password= + hibernate.connection.driver_class=org.h2.Driver + + topia.persistence.directories=directory1,directory2 + topia.persistence.classes=classImpl1,classImpl2 + topia.persistence.properties.file=??? + +Ces informations servent ᅵ crᅵer une configuration hibernate (qui contient les +informations de connexion et les mappings de l'application). + +Les lignes commencant par "hibernate" sont spᅵcifiques ᅵ hibernate et au type de +base de donnᅵes utilisᅵ. Les lignes suivantes sont spᅵcifiques ᅵ ToPIA mais +contiennent les mappings indispensable pour crᅵer le schᅵma de la base de +donnᅵes aprᅵs migration. + + +Configuration des mappings +~~~~~~~~~~~~~~~~~~~~~~~~~~ +La configuration doit contenir ces propriᅵtᅵs : + +:: + + topia.service.migration.mappingsdir=oldmappings + topia.service.migration.modelnames=model1,model2,model3 + +qui spᅵcifie le rᅵpertoire de recherche des anciens mappings pour les diffᅵrents +modᅵles. + +Ce dossier contient ensuite un sous-dossier par modᅵle comportant chacun un +sous-dossier par version par version (nommᅵ X, *X* ᅵtant la version), avec pour +chaque dossier, l'ensemble des mappings hibernate de cette version. + +Exemple : + +:: + + oldmappings/ + model1/ + 1/ + Class1.hbm.xml + Class2.hbm.xml + Class3.hbm.xml + 2/ + Class1.hbm.xml + Class2New.hbm.xml + Class3.hbm.xml + 2.2/ + Class2.hbm.xml + Class3.hbm.xml + Class4New.hbm.xml + + +Configuration de la version +~~~~~~~~~~~~~~~~~~~~~~~~~~~ +La configuration doit contenir une propriᅵtᅵ : + +:: + + topia.service.migration.version=3.5.1 (exemple) + +Cette propriᅵtᅵs renseigne la version *courante* de l'application. + + +Configuration du callback +~~~~~~~~~~~~~~~~~~~~~~~~~ +Il est possible de dᅵfinir une classe de type MigrationCallbackHandler, pour +interagir, par exemple, avec l'utilisateur et lui demander s'il faut migrer la +base de donnᅵes. + +Ces //callback// doivent implᅵmenter MigrationCallbackHandler et se trouver dans +la configuration: + +:: + + topia.service.migration.callbackhandlers=org.codelutin.test.SwingCallbackHandler + + +Configuration du service +~~~~~~~~~~~~~~~~~~~~~~~~ +Enfin pour utiliser le service, il faut l'activer. La configuration doit +contenir la propriᅵtᅵs suivante : + +:: + + topia.service.migration=org.codelutin.topia.security.TopiaSecurityServiceImpl + + +Utilisation +----------- +Ce module ᅵtant un service ToPIA, il doit ᅵtre activᅵ pour pouvoir s'exᅵcuter. + +Il commence par se connecter au SGBD, vᅵrifie si les versions diffᅵrent, et +effectue la migration si besoin. + +Classes de migration +~~~~~~~~~~~~~~~~~~~~ +Pour savoir comment migrer les donnᅵes, le dᅵveloppeur utilisant le module de +migration doit produire des classes Java de migration (une par classe +nᅵcᅵssitant une modification et par version). + +Ces classes doivent : + +- hᅵriter de la classe ``AbstractMigration`` ou de l'interface ``Migration`` +- se trouver dans un sous package des classes d'implᅵmentation rᅵfᅵrencᅵes + par les mappings. Ce package doit se nommer VnVm oᅵ: + + - *n* est la version de dᅵpart de migration + - *m* la version d'arrivᅵe + +- respecter une convention de nommage de la forme + MigrationClass oᅵ: + + - *Class* est le nom de l'entitᅵ devant ᅵtre migrᅵe + + Exemple, pour migrer une Personne d'une version 2 ᅵ 2.1: + ``V2V2_1.MigratePersonne.java`` + + Note: les "." ᅵtant interdits dans le nom de fichier, ils sont remplacᅵs par + le caractᅵre "_". + +Ensuite, chaque classe doit : + +- implᅵmenter au moins la mᅵthode ``migrate(MapAdapter, MapHelper)`` + cette mᅵthode prend une MapAdapter en paramᅵtre, pour modifier un tuple et un + MapHelper pouvant servir ᅵ retrouver des informations sur le reste des tuples + de la base +- surcharger (si besoin) la mᅵthode ``public ProxyClass migrateFrom()`` dans le + cas oᅵ les tuples ᅵ modifier proviennent d'une classe diffᅵrente de la classe + courante. + +Exemple : + +Ici, la modification porte sur la transformation de l'attribut ``timestampNaissance`` +de la classe ``domaine.Personne`` en une nouvelle table ``domaine.Naissance``, effectᅵe +dans le changement de la version 1 ᅵ la version 2 : + +:: + + // migrateFrom() + public ProxyClass migrateFrom() { + return new SimpleProxyClass("domaine.Personne"); + } + + // migrate(MapAdapter, MapHelper) + public void migrate(MapAdapter map, MapHelper helper) { + + // map d'entree vide, conversion du timestamp + // en jour, mois, annee + try { + Long timestamp = (Long) map.getOldValue("timestampNaissance"); + Calendar c = Calendar.getInstance(); + c.setTimeInMillis(timestamp); + map.setValue("jour", c.get(Calendar.DAY_OF_MONTH)); + map.setValue("mois", c.get(Calendar.MONTH)); + map.setValue("annee", c.get(Calendar.YEAR)); + } catch (ExceptionAttributeUndefined e) { + e.printStackTrace(); + } + } + +Donc cette classe : + +- doit se nommer ``MigrateNaissance.java`` et se trouver dans le package + ``domaine.V1V2`` +- redᅵfinit la methode migrateFrom() pour indiquer que les donnees proviennent de + ``domaine.Personne`` +- implᅵmente ``migrate()`` pour produire des tuples de type ``domaine.Naissance`` + ᅵ partir de tuples ``domaine.Personne`` Property changes on: trunk/simexplorer-si/src/site/fr/rst/devel/migration.rst ___________________________________________________________________ Name: svn:executable + * Added: trunk/simexplorer-si/src/site/fr/rst/devel/nok.png =================================================================== (Binary files differ) Property changes on: trunk/simexplorer-si/src/site/fr/rst/devel/nok.png ___________________________________________________________________ Name: svn:executable + * Name: svn:mime-type + application/octet-stream Added: trunk/simexplorer-si/src/site/fr/rst/devel/ok.png =================================================================== (Binary files differ) Property changes on: trunk/simexplorer-si/src/site/fr/rst/devel/ok.png ___________________________________________________________________ Name: svn:executable + * Name: svn:mime-type + application/octet-stream Added: trunk/simexplorer-si/src/site/fr/rst/devel/screenshots/Screenshot-1.png =================================================================== (Binary files differ) Property changes on: trunk/simexplorer-si/src/site/fr/rst/devel/screenshots/Screenshot-1.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/simexplorer-si/src/site/fr/rst/devel/screenshots/Screenshot-2.png =================================================================== (Binary files differ) Property changes on: trunk/simexplorer-si/src/site/fr/rst/devel/screenshots/Screenshot-2.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/simexplorer-si/src/site/fr/rst/devel/screenshots/Screenshot-3.png =================================================================== (Binary files differ) Property changes on: trunk/simexplorer-si/src/site/fr/rst/devel/screenshots/Screenshot-3.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/simexplorer-si/src/site/fr/rst/devel/screenshots/Screenshot-4.png =================================================================== (Binary files differ) Property changes on: trunk/simexplorer-si/src/site/fr/rst/devel/screenshots/Screenshot-4.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/simexplorer-si/src/site/fr/rst/devel/screenshots/Screenshot-5.png =================================================================== (Binary files differ) Property changes on: trunk/simexplorer-si/src/site/fr/rst/devel/screenshots/Screenshot-5.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/simexplorer-si/src/site/fr/rst/devel/screenshots/Screenshot.png =================================================================== (Binary files differ) Property changes on: trunk/simexplorer-si/src/site/fr/rst/devel/screenshots/Screenshot.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/simexplorer-si/src/site/fr/rst/devel/sequence1.uxf =================================================================== --- trunk/simexplorer-si/src/site/fr/rst/devel/sequence1.uxf (rev 0) +++ trunk/simexplorer-si/src/site/fr/rst/devel/sequence1.uxf 2008-01-10 16:00:55 UTC (rev 110) @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="UTF-8"?><umlet_diagram><element><type>com.umlet.element.base.SequenceDiagram</type><coordinates><x>0</x><y>0</y><w>750</w><h>180</h></coordinates><panel_attributes>ui|_storageManager_|_versionManager_|_loggableManager_ +1->>2:1,2:saveElement(element, true) +2->>3:1,2,3:getVersions(element.id) +3.>2:1,2,3:[1.0, 1.1, 1.2, 2.0, 2.1]</panel_attributes><additional_attributes></additional_attributes></element></umlet_diagram> \ No newline at end of file Property changes on: trunk/simexplorer-si/src/site/fr/rst/devel/sequence1.uxf ___________________________________________________________________ Name: svn:executable + * Added: trunk/simexplorer-si/src/site/fr/rst/devel/template.uxf =================================================================== --- trunk/simexplorer-si/src/site/fr/rst/devel/template.uxf (rev 0) +++ trunk/simexplorer-si/src/site/fr/rst/devel/template.uxf 2008-01-10 16:00:55 UTC (rev 110) @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?><umlet_diagram><element><type>com.umlet.element.base.SequenceDiagram</type><coordinates><x>20</x><y>20</y><w>390</w><h>330</h></coordinates><panel_attributes>_alpha:A_|_beta:B_|_gamma:G_ +1->>2:1,2 +2-/>1:async Msg. +3->>>1:1,3 +1.>3:1,3:async return Msg +1->1:1:self +iframe{:interaction frame +2->3:2,3:async Msg. +iframe}</panel_attributes><additional_attributes></additional_attributes></element></umlet_diagram> \ No newline at end of file Property changes on: trunk/simexplorer-si/src/site/fr/rst/devel/template.uxf ___________________________________________________________________ Name: svn:executable + * Added: trunk/simexplorer-si/src/site/fr/rst/devel/uok.png =================================================================== (Binary files differ) Property changes on: trunk/simexplorer-si/src/site/fr/rst/devel/uok.png ___________________________________________________________________ Name: svn:executable + * Name: svn:mime-type + application/octet-stream Added: trunk/simexplorer-si/src/site/fr/rst/devel/version.uxf =================================================================== --- trunk/simexplorer-si/src/site/fr/rst/devel/version.uxf (rev 0) +++ trunk/simexplorer-si/src/site/fr/rst/devel/version.uxf 2008-01-10 16:00:55 UTC (rev 110) @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?><umlet_diagram><element><type>com.umlet.element.base.SequenceDiagram</type><coordinates><x>20</x><y>20</y><w>330</w><h>390</h></coordinates><panel_attributes>_server_|user1|_user2_ +2->>2:2:création/édition +2->>1:1,2:commit + +1->>2:1,2 +2-/>1:async Msg. +3->>>1:1,3 +1.>3:1,3:async return Msg +1->1:1:self +iframe{:interaction frame +2->3:2,3:async Msg. +iframe}</panel_attributes><additional_attributes></additional_attributes></element></umlet_diagram> \ No newline at end of file Added: trunk/simexplorer-si/src/test.xml =================================================================== --- trunk/simexplorer-si/src/test.xml (rev 0) +++ trunk/simexplorer-si/src/test.xml 2008-01-10 16:00:55 UTC (rev 110) @@ -0,0 +1,1633 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ExplorationApplication> + <metadata> + <uuid>f7c5c08a-a029-405d-8682-3c8f33fb738e</uuid> + <name>c5d910c6-2db5-4a53-a5cb-21638d01894b</name> + <type>ExplorationApplication</type> + <description>test</description> + <version>3.4</version> + <latestversion>1</latestversion> + <creationdate>1199700035626</creationdate> + <hash>b252f70d-be3c-447b-af4b-6a72323bfe39</hash> + <descriptors> + <descriptor> + <name>3</name> + <value>9cc17dd8-af7e-4426-878c-b81f97287d15</value> + </descriptor> + <descriptor> + <name>2</name> + <value>0081a9bf-54c5-41db-ba91-5811f152d210</value> + </descriptor> + <descriptor> + <name>1</name> + <value>3b1e1037-bca2-413d-9ece-367e89301bfb</value> + </descriptor> + <descriptor> + <name>0</name> + <value>bb821dbe-5a00-44ce-90c0-5f727ce7ce51</value> + </descriptor> + <descriptor> + <name>7</name> + <value>ccfa1dae-48d5-40a5-bf60-7efd75f7420e</value> + </descriptor> + <descriptor> + <name>6</name> + <value>24e48660-ffa2-47b3-867b-ba13c2b02aae</value> + </descriptor> + <descriptor> + <name>5</name> + <value>6b3b3892-6741-4c30-8a2a-465cc76f242f</value> + </descriptor> + <descriptor> + <name>4</name> + <value>e8c2cba4-816b-45df-aeed-751fa711b8a4</value> + </descriptor> + </descriptors> + </metadata> + <data> + <explorationdata> + <metadata> + <uuid>f7300135-3581-4328-93d1-dc11ceba88e9</uuid> + <name>5d61898e-cb72-480f-a99a-33bed9cc12ed</name> + <type>ExplorationData</type> + <description>test</description> + <version>1.2.0</version> + <latestversion>1</latestversion> + <creationdate>1199700035642</creationdate> + <hash>e2e8800d-43b5-477f-8d44-167367d2c9c1</hash> + <descriptors> + <descriptor> + <name>3</name> + <value> + 0399d385-c362-4fab-89cc-48f1bc841475 + </value> + </descriptor> + <descriptor> + <name>2</name> + <value> + 2f57461c-5f0f-4d66-9c3b-6243068e483f + </value> + </descriptor> + <descriptor> + <name>1</name> + <value> + cc63a1fb-2351-48aa-8b96-a2889eca460f + </value> + </descriptor> + <descriptor> + <name>0</name> + <value> + b1a140ed-75d6-4bb8-af16-8f602bdfd37f + </value> + </descriptor> + <descriptor> + <name>7</name> + <value> + e1814825-5bec-449e-bb29-a4870d82ee1a + </value> + </descriptor> + <descriptor> + <name>6</name> + <value> + 202b6835-191b-4552-9cb2-1b29839180c7 + </value> + </descriptor> + <descriptor> + <name>5</name> + <value> + 1ccf5683-f760-4ca8-b230-e99b1588c0e9 + </value> + </descriptor> + <descriptor> + <name>4</name> + <value> + 992670b7-8e06-4dc2-87f4-b7e9762bf58e + </value> + </descriptor> + <descriptor> + <name>8</name> + <value> + f39b8cea-e856-4301-9eb2-62bea3d98ab5 + </value> + </descriptor> + </descriptors> + </metadata> + <result /> + <values> + <value> + <constant> + <name> + b5421c19-bfe0-481c-b9f1-6cba51b0b3d4 + </name> + <type>java.lang.Integer</type> + </constant> + <value>-251042343</value> + </value> + <value> + <constant> + <name> + 464f7352-9c1b-4993-9784-b67a731f3d8a + </name> + <type>java.lang.Integer</type> + </constant> + <value>1330352354</value> + </value> + <value> + <constant> + <name> + 0d32576f-2f9e-4239-8bee-0271179a443a + </name> + <type>java.lang.Integer</type> + </constant> + <value>-1292071150</value> + </value> + </values> + </explorationdata> + <explorationdata> + <metadata> + <uuid>90dbf702-25fd-43eb-a3b3-cc1c39b6d24b</uuid> + <name>904634d2-5179-48f7-9344-eaf4882452fe</name> + <type>ExplorationData</type> + <description>test</description> + <version>1.0.1</version> + <latestversion>1</latestversion> + <creationdate>1199700035640</creationdate> + <hash>4bdb8884-6a50-4a13-98d4-e4dbe3d8cbdc</hash> + <descriptors> + <descriptor> + <name>11</name> + <value> + 0ec5c273-fda2-4037-91c4-6f557f1d623d + </value> + </descriptor> + <descriptor> + <name>12</name> + <value> + 82452a7a-8b2f-4d55-b339-275c26e15589 + </value> + </descriptor> + <descriptor> + <name>3</name> + <value> + 6d36fee4-3907-4dcd-b09b-5bec05df6383 + </value> + </descriptor> + <descriptor> + <name>2</name> + <value> + b53058be-fc38-4c14-b392-b1d5f70e5ba1 + </value> + </descriptor> + <descriptor> + <name>1</name> + <value> + 53d24cb2-68fe-4a00-9dba-f231b45652b1 + </value> + </descriptor> + <descriptor> + <name>10</name> + <value> + 6364e6a5-387a-4626-9757-be4a88df22f7 + </value> + </descriptor> + <descriptor> + <name>0</name> + <value> + 133480c8-d195-4e73-b5ef-83ebfe5dfeb9 + </value> + </descriptor> + <descriptor> + <name>7</name> + <value> + e97e30b0-c15f-426f-a9ce-1837a8de582f + </value> + </descriptor> + <descriptor> + <name>6</name> + <value> + 3a797f5a-f264-427a-a09f-95b6ee41ffb9 + </value> + </descriptor> + <descriptor> + <name>5</name> + <value> + 61187423-ca4b-483d-be55-bcb6c1005c70 + </value> + </descriptor> + <descriptor> + <name>4</name> + <value> + 799fd1ba-706a-4e72-ba20-d61b1b62cb4f + </value> + </descriptor> + <descriptor> + <name>9</name> + <value> + b480113a-e61a-4c70-8836-19d41e98c5f3 + </value> + </descriptor> + <descriptor> + <name>8</name> + <value> + 87aa8075-542f-4e69-811b-ed0e36b70b2f + </value> + </descriptor> + </descriptors> + </metadata> + <result /> + <values> + <value> + <constant> + <name> + 805b6571-e663-436b-ac0f-5ae3460f70de + </name> + <type>java.lang.Integer</type> + </constant> + <value>1421994135</value> + </value> + <value> + <constant> + <name> + cdb6223b-5f45-46f9-b760-56370968e55d + </name> + <type>java.lang.Integer</type> + </constant> + <value>-1869214744</value> + </value> + <value> + <constant> + <name> + a1e0a32b-1b6d-4fb4-a986-67f368c6e734 + </name> + <type>java.lang.Integer</type> + </constant> + <value>-1707015162</value> + </value> + </values> + </explorationdata> + <explorationdata> + <metadata> + <uuid>51c71f31-63aa-4d3f-bccc-c8809d89c9cd</uuid> + <name>ac37ddab-f5f5-4679-b65b-1f2b3ce6151b</name> + <type>ExplorationData</type> + <description>test</description> + <version>1.3.0</version> + <latestversion>1</latestversion> + <creationdate>1199700035639</creationdate> + <hash>b3ba77d4-e889-4a41-95a8-6e3dc20584c5</hash> + <descriptors> + <descriptor> + <name>3</name> + <value> + 3aa7a4dd-7e47-42c7-a1d8-7b122cef0a5b + </value> + </descriptor> + <descriptor> + <name>2</name> + <value> + 86669376-3b57-4a71-ac1f-c0178dccbaa7 + </value> + </descriptor> + <descriptor> + <name>1</name> + <value> + 4cb8d1dc-5163-45b4-8854-105a2e1ff8c9 + </value> + </descriptor> + <descriptor> + <name>0</name> + <value> + 5e7b4c08-8588-45f9-89e9-03c64ce41804 + </value> + </descriptor> + <descriptor> + <name>7</name> + <value> + 2e799975-5b00-4408-9d66-e253671e35d9 + </value> + </descriptor> + <descriptor> + <name>6</name> + <value> + 54c7366d-1090-4904-9a37-50f2cb0a0b62 + </value> + </descriptor> + <descriptor> + <name>5</name> + <value> + db13a9c6-0671-4b9b-bee5-5160800a6b97 + </value> + </descriptor> + <descriptor> + <name>4</name> + <value> + 0d5c8074-2879-4591-a7a7-b2984bb6fb2b + </value> + </descriptor> + <descriptor> + <name>8</name> + <value> + a611cfdf-d7d0-41b3-bdea-d8405298c2d7 + </value> + </descriptor> + </descriptors> + </metadata> + <result /> + <values> + <value> + <constant> + <name> + b3d67f99-e185-4d4c-86d6-c989caf2178b + </name> + <type>java.lang.Integer</type> + </constant> + <value>-1272664950</value> + </value> + <value> + <constant> + <name> + df4d1c9a-c5bd-48d7-b068-4e8009316926 + </name> + <type>java.lang.Integer</type> + </constant> + <value>349253762</value> + </value> + <value> + <constant> + <name> + 8595032c-21a4-4beb-978a-6a5bca7dfbcb + </name> + <type>java.lang.Integer</type> + </constant> + <value>-2034017147</value> + </value> + <value> + <constant> + <name> + d824e208-906e-49dd-86fd-92e091b73461 + </name> + <type>java.lang.Integer</type> + </constant> + <value>-63517148</value> + </value> + </values> + </explorationdata> + <explorationdata> + <metadata> + <uuid>e96a758f-4c0e-4ef3-bf67-216ec451033c</uuid> + <name>1c58ff6a-b903-4062-982a-c3fdcfd3acfe</name> + <type>ExplorationData</type> + <description>test</description> + <version>3.4</version> + <latestversion>1</latestversion> + <creationdate>1199700035638</creationdate> + <hash>a34c80e2-5aab-4386-9d5e-a7941e5bb17f</hash> + <descriptors> + <descriptor> + <name>3</name> + <value> + da7e32eb-8ef7-4dc0-8413-394f1fa6a904 + </value> + </descriptor> + <descriptor> + <name>2</name> + <value> + cf3be1ab-4a18-4291-8638-5b029e664d77 + </value> + </descriptor> + <descriptor> + <name>1</name> + <value> + fc1a898d-e75e-4f90-ae7a-b122b454bce5 + </value> + </descriptor> + <descriptor> + <name>0</name> + <value> + b33847d7-33e7-4c12-8f16-af3d6ebc5da4 + </value> + </descriptor> + <descriptor> + <name>7</name> + <value> + e3da71f4-d716-474f-93cc-0f4a09c4233c + </value> + </descriptor> + <descriptor> + <name>6</name> + <value> + 092c0d5e-6708-4294-b150-fc1efb87a616 + </value> + </descriptor> + <descriptor> + <name>5</name> + <value> + 6d7e1d1d-8199-4122-adc6-fd58898f8137 + </value> + </descriptor> + <descriptor> + <name>4</name> + <value> + 04b97275-6abe-481b-b11a-f90b4201ff62 + </value> + </descriptor> + <descriptor> + <name>8</name> + <value> + c6012864-70a3-4054-833a-f52dbc3b8d9d + </value> + </descriptor> + </descriptors> + </metadata> + <result /> + <values> + <value> + <constant> + <name> + 1c534910-1ffb-445d-bd9e-6b40a811e0cf + </name> + <type>java.lang.Integer</type> + </constant> + <value>-606798577</value> + </value> + <value> + <constant> + <name> + 0e166e06-63bd-4157-9a6e-548fa60edd38 + </name> + <type>java.lang.Integer</type> + </constant> + <value>565097214</value> + </value> + <value> + <constant> + <name> + 8a9034ee-8770-4d3a-a910-19325779fda2 + </name> + <type>java.lang.Integer</type> + </constant> + <value>-1686499581</value> + </value> + <value> + <constant> + <name> + ca8959e4-923c-4672-87b5-05a540906113 + </name> + <type>java.lang.Integer</type> + </constant> + <value>1952692035</value> + </value> + </values> + </explorationdata> + </data> + <components> + <component> + <metadata> + <uuid>780746b4-4d85-4c1b-bc22-2d8e408a8794</uuid> + <name>5f792ae5-6e9c-4a5c-8a85-8b723218b822</name> + <type>Component</type> + <description>test</description> + <version>1.4.4</version> + <latestversion>1</latestversion> + <creationdate>1199700035662</creationdate> + <hash>fc274528-2e2e-4ccf-9f6e-f91e823cd7fe</hash> + <descriptors> + <descriptor> + <name>3</name> + <value> + ceba242a-0986-4cd9-884a-079795c82952 + </value> + </descriptor> + <descriptor> + <name>2</name> + <value> + 0352b7e0-4d71-4031-a015-c785720f4bff + </value> + </descriptor> + <descriptor> + <name>1</name> + <value> + 388d7d75-801e-4067-9fbb-585f0d5b32fc + </value> + </descriptor> + <descriptor> + <name>0</name> + <value> + bcd1b47e-5cb7-49a5-ae2e-859659b2757d + </value> + </descriptor> + <descriptor> + <name>7</name> + <value> + 9af36ac5-bf0e-4e25-9962-228e5100df27 + </value> + </descriptor> + <descriptor> + <name>6</name> + <value> + 53fb696d-2c55-47c7-af94-9aef5dbba3c2 + </value> + </descriptor> + <descriptor> + <name>5</name> + <value> + e9c1eb39-9751-4e44-896a-8cfe0cf80efc + </value> + </descriptor> + <descriptor> + <name>4</name> + <value> + a1a6a2a8-69e7-4475-9813-ddde38d63b50 + </value> + </descriptor> + <descriptor> + <name>8</name> + <value> + 22bf7aa8-1055-4431-bcb8-927d30d3d273 + </value> + </descriptor> + </descriptors> + </metadata> + <constants> + <constant> + <name>59b4349d-58ff-4b17-a42f-1cfb699f8e87</name> + <type>java.lang.String</type> + </constant> + <constant> + <name>fd24040e-5426-47b6-a0b8-802ab0d61f28</name> + <type>java.lang.String</type> + </constant> + <constant> + <name>ece9449d-bdcb-4891-8871-9bd5f9a213b5</name> + <type>java.lang.String</type> + </constant> + <constant> + <name>deef705a-4cca-49f6-9699-b78974295011</name> + <type>java.lang.String</type> + </constant> + </constants> + <codes> + <code> + <language> + 0be149ec-0fad-447d-bfe5-60bea93447c1 + </language> + <code>ce410204-c193-4849-ba14-3366fcf5793f</code> + </code> + <code> + <language> + 1311b469-81cc-4172-aa9a-be5ada24845a + </language> + <code>6bd8e47f-010e-4069-a30d-231b160a23e3</code> + </code> + <code> + <language> + 5522b5e0-bc41-4045-a6df-b664a4193407 + </language> + <code>fa06611f-6297-4b24-a2d6-35123ca1e8f6</code> + </code> + </codes> + <libraries> + <library> + <metadata> + <uuid> + 1a388016-0ca1-4040-9577-7bcfe22ef859 + </uuid> + <name> + 0d05df09-5aeb-4a1a-ba3b-cf0d9628c75d + </name> + <type>Library</type> + <description>test</description> + <version>2.3</version> + <latestversion>1</latestversion> + <creationdate>1199700035678</creationdate> + <hash> + de2a143b-d5cf-4a7e-b1ce-84b5a58f3130 + </hash> + <descriptors> + <descriptor> + <name>3</name> + <value> + 6331fed8-3cdb-4a2e-979b-eba79b64af74 + </value> + </descriptor> + <descriptor> + <name>2</name> + <value> + b29e8777-9c4d-4470-9e00-0adc6cf419fc + </value> + </descriptor> + <descriptor> + <name>10</name> + <value> + 3f4c5332-6aff-4b28-9ae3-6bc7aa564b2c + </value> + </descriptor> + <descriptor> + <name>1</name> + <value> + 1902fb52-62c0-41c0-b9a9-5608c78c7361 + </value> + </descriptor> + <descriptor> + <name>0</name> + <value> + 56da036f-e9e9-4170-8e35-a49dd8f9e01d + </value> + </descriptor> + <descriptor> + <name>7</name> + <value> + a7374808-3d0d-42f1-9e97-88d7558541de + </value> + </descriptor> + <descriptor> + <name>6</name> + <value> + 202998d6-dc36-4586-ba6a-8ff8c2a4985a + </value> + </descriptor> + <descriptor> + <name>5</name> + <value> + a914b872-b3fa-42f1-b619-10e7bca10d3f + </value> + </descriptor> + <descriptor> + <name>4</name> + <value> + 35724543-9044-4a87-94fd-f0759c6e6f8f + </value> + </descriptor> + <descriptor> + <name>9</name> + <value> + e9d6218d-4757-40c2-85a8-bb076e92fedb + </value> + </descriptor> + <descriptor> + <name>8</name> + <value> + 5e04183b-6f1b-48a6-bf6d-b44a799e32c7 + </value> + </descriptor> + </descriptors> + </metadata> + </library> + <library> + <metadata> + <uuid> + 254b9105-720c-4350-a2d8-a92db19ee388 + </uuid> + <name> + f09a4526-49c1-4a4e-8dc2-e3239ac51c58 + </name> + <type>Library</type> + <description>test</description> + <version>1.3</version> + <latestversion>1</latestversion> + <creationdate>1199700035674</creationdate> + <hash> + d9bc5d6c-1e9c-42d4-a5c3-d51317436a16 + </hash> + <descriptors> + <descriptor> + <name>3</name> + <value> + d60e441e-9c65-4a49-a555-47fa73a01cc7 + </value> + </descriptor> + <descriptor> + <name>2</name> + <value> + 74730122-d73d-4a0a-bce7-551640d0695b + </value> + </descriptor> + <descriptor> + <name>1</name> + <value> + 49100e40-323d-4137-ad62-237a074b4d4c + </value> + </descriptor> + <descriptor> + <name>0</name> + <value> + 33ef7950-18e9-41d2-9378-62a5a5a4d223 + </value> + </descriptor> + <descriptor> + <name>5</name> + <value> + 6fd4ba41-2b59-4fb4-ba4f-3ed6e7ce940f + </value> + </descriptor> + <descriptor> + <name>4</name> + <value> + efdab15f-d65a-44ea-8623-db9f09207756 + </value> + </descriptor> + </descriptors> + </metadata> + </library> + <library> + <metadata> + <uuid> + 83d4a361-a180-4c08-8fd9-9cb5cad77f9c + </uuid> + <name> + c404c318-7860-45d0-b660-4f6c404c8664 + </name> + <type>Library</type> + <description>test</description> + <version>3.2</version> + <latestversion>1</latestversion> + <creationdate>1199700035672</creationdate> + <hash> + 49d7fe09-7d8d-41b5-8d7a-37c052a4acf1 + </hash> + <descriptors> + <descriptor> + <name>11</name> + <value> + 51990c64-3063-4275-8466-3c5728c0eb5b + </value> + </descriptor> + <descriptor> + <name>12</name> + <value> + 9d638958-9e78-4dc8-b18d-09b8f6f4691f + </value> + </descriptor> + <descriptor> + <name>3</name> + <value> + 476d493d-805b-4ddd-b148-cba8e096f3cb + </value> + </descriptor> + <descriptor> + <name>2</name> + <value> + bd33efc8-0500-4115-806a-3cd5d19d9fd2 + </value> + </descriptor> + <descriptor> + <name>1</name> + <value> + dbd48e8e-119f-40e7-8f55-5025a462b9a7 + </value> + </descriptor> + <descriptor> + <name>10</name> + <value> + 90e574f4-80a6-4c42-8238-cb0a8a87f32b + </value> + </descriptor> + <descriptor> + <name>0</name> + <value> + fdf9345a-df3f-4fbc-87ac-44ff3d80c723 + </value> + </descriptor> + <descriptor> + <name>7</name> + <value> + 53a17894-14cb-4897-a567-eb68b21a6dd2 + </value> + </descriptor> + <descriptor> + <name>6</name> + <value> + 74187f2c-2694-4076-bc11-6e72fb940f2b + </value> + </descriptor> + <descriptor> + <name>5</name> + <value> + fe3f2dcd-5437-4381-b39a-713ed07f371e + </value> + </descriptor> + <descriptor> + <name>4</name> + <value> + c373a86a-ba75-4b4d-8e17-fa01233bc0d3 + </value> + </descriptor> + <descriptor> + <name>9</name> + <value> + cb8a5759-aaf8-48b2-b4e0-99c28811273a + </value> + </descriptor> + <descriptor> + <name>8</name> + <value> + 4117edc6-7597-42fd-a9a4-13d355d82d95 + </value> + </descriptor> + </descriptors> + </metadata> + </library> + <library> + <metadata> + <uuid> + 152295b1-9869-40ef-8554-d9a6a4763dde + </uuid> + <name> + b1652685-1655-457d-bbb8-7a08535f2fac + </name> + <type>Library</type> + <description>test</description> + <version>4.4</version> + <latestversion>1</latestversion> + <creationdate>1199700035675</creationdate> + <hash> + 2caf9e86-80a9-4fa7-867b-5850321f1dd3 + </hash> + <descriptors> + <descriptor> + <name>3</name> + <value> + f80b25e7-683a-4456-baa7-26aac2cb7043 + </value> + </descriptor> + <descriptor> + <name>2</name> + <value> + 609ba46f-5d0c-4148-8e8b-af85b98517a3 + </value> + </descriptor> + <descriptor> + <name>1</name> + <value> + 4371755d-92fd-44b5-b9cd-0f2073602b47 + </value> + </descriptor> + <descriptor> + <name>0</name> + <value> + ee2e68e4-d470-4f0b-a921-c69ec24bf332 + </value> + </descriptor> + <descriptor> + <name>6</name> + <value> + 7aa9d35f-a239-42d3-8549-ac6ed6f95668 + </value> + </descriptor> + <descriptor> + <name>5</name> + <value> + a812f592-d572-4301-a5f4-c6914bfef48c + </value> + </descriptor> + <descriptor> + <name>4</name> + <value> + 59fedb12-08f9-46ed-8025-30034cea4d80 + </value> + </descriptor> + </descriptors> + </metadata> + </library> + </libraries> + </component> + <component> + <metadata> + <uuid>670d1eeb-7398-4469-b6d0-eb733fb5f519</uuid> + <name>95654093-4b99-4573-a966-01e1c6c453da</name> + <type>Component</type> + <description>test</description> + <version>4.3</version> + <latestversion>1</latestversion> + <creationdate>1199700035663</creationdate> + <hash>6797366c-0b5e-4057-8ee9-40f9a3be55e2</hash> + <descriptors> + <descriptor> + <name>3</name> + <value> + e5838159-28c6-4f04-84b5-aaa3f695b0ba + </value> + </descriptor> + <descriptor> + <name>2</name> + <value> + 9f05d3fd-5c81-40d7-8678-ef75211d56be + </value> + </descriptor> + <descriptor> + <name>1</name> + <value> + 1c7eff18-152a-4d46-8014-aff462239171 + </value> + </descriptor> + <descriptor> + <name>0</name> + <value> + efe91657-742d-4933-9415-96268eccd4ab + </value> + </descriptor> + <descriptor> + <name>7</name> + <value> + d5e9e19a-791f-49fb-9b30-72305c6ceb71 + </value> + </descriptor> + <descriptor> + <name>6</name> + <value> + 7480222c-cb6a-4d8f-9b27-cb6e24aaa408 + </value> + </descriptor> + <descriptor> + <name>5</name> + <value> + aa43cc4e-0a65-4f3a-a3a8-79b86b14e17b + </value> + </descriptor> + <descriptor> + <name>4</name> + <value> + ab11f7c6-e5e3-4531-a8bc-631c9cbc9ff1 + </value> + </descriptor> + </descriptors> + </metadata> + <constants> + <constant> + <name>979e4310-8b7c-44b6-b788-e58a2db94a4f</name> + <type>java.lang.String</type> + </constant> + <constant> + <name>5dde5c4e-4139-4abd-90b4-343f24a9708f</name> + <type>java.lang.String</type> + </constant> + <constant> + <name>2c9acc6a-3a1a-4c10-878c-47f2b1bc81a7</name> + <type>java.lang.String</type> + </constant> + </constants> + <codes> + <code> + <language> + f42acf3a-84c6-484f-8351-32e3240d8bc3 + </language> + <code>621f4446-02e5-4551-9b10-d98c91bd7d28</code> + </code> + <code> + <language> + 8ea39aff-39eb-4438-a019-01f8b73f0b05 + </language> + <code>7fe3a735-95d6-4e88-9747-35ef70f0845c</code> + </code> + <code> + <language> + 0fc241dd-4acb-4dd3-8c12-10202e634823 + </language> + <code>131fee52-6cfb-4de0-acb5-4533bb913bde</code> + </code> + <code> + <language> + 77021bf5-e73a-4d50-8661-bf30fef6c30d + </language> + <code>06b136d6-9169-46a9-8b1c-6b9f635054d8</code> + </code> + </codes> + <libraries> + <library> + <metadata> + <uuid> + abceccca-12de-4642-9735-c3c89027d442 + </uuid> + <name> + 7b2b3a07-7829-4069-955b-8291d8dce440 + </name> + <type>Library</type> + <description>test</description> + <version>3.2</version> + <latestversion>1</latestversion> + <creationdate>1199700035680</creationdate> + <hash> + ac2f3669-e90a-4be6-8844-f986994a145c + </hash> + <descriptors> + <descriptor> + <name>3</name> + <value> + f8c4e55c-5497-4780-895a-163b43eea1cc + </value> + </descriptor> + <descriptor> + <name>2</name> + <value> + aa286d5e-0965-4750-960e-feb3c23e772a + </value> + </descriptor> + <descriptor> + <name>10</name> + <value> + 0a5167f9-c2d9-4504-a728-97a045f3347a + </value> + </descriptor> + <descriptor> + <name>1</name> + <value> + b113e7a4-dd4f-42fa-b253-fb4a862e76b9 + </value> + </descriptor> + <descriptor> + <name>0</name> + <value> + 0a370804-981f-42fd-8f41-faa6f8f08d2e + </value> + </descriptor> + <descriptor> + <name>7</name> + <value> + 68a99e09-c7a1-43bc-956a-ac9a1966e20c + </value> + </descriptor> + <descriptor> + <name>6</name> + <value> + 104b99a7-5850-4606-b038-57517c4f9086 + </value> + </descriptor> + <descriptor> + <name>5</name> + <value> + f50e113e-c1ff-40b4-a10e-aaf088af44f3 + </value> + </descriptor> + <descriptor> + <name>4</name> + <value> + d11ba719-2802-453b-878d-0c6079542b4e + </value> + </descriptor> + <descriptor> + <name>9</name> + <value> + b21328d2-19c1-4c0a-92ab-dc36f31c4404 + </value> + </descriptor> + <descriptor> + <name>8</name> + <value> + 911e3de1-9df3-4ec1-b160-8e4d925e15cb + </value> + </descriptor> + <descriptor> + <name>11</name> + <value> + 076d4305-fd1e-4e54-8c9c-40bbb72c80ae + </value> + </descriptor> + </descriptors> + </metadata> + </library> + <library> + <metadata> + <uuid> + be41ccc8-3ff3-478f-8709-b9cb77938525 + </uuid> + <name> + c63ffd86-95b2-4dd3-85ff-a5865e01b851 + </name> + <type>Library</type> + <description>test</description> + <version>4.4</version> + <latestversion>1</latestversion> + <creationdate>1199700035681</creationdate> + <hash> + 62e2f90f-039f-471e-bbcf-3a32fa0cecc5 + </hash> + <descriptors> + <descriptor> + <name>3</name> + <value> + 552dc19a-6b26-44d1-91ad-eb3f788c349b + </value> + </descriptor> + <descriptor> + <name>2</name> + <value> + 01207df6-8b6f-4b9f-988a-1f697fc714d2 + </value> + </descriptor> + <descriptor> + <name>10</name> + <value> + 463f90b7-c81d-4bd7-ab60-2033b9e034a0 + </value> + </descriptor> + <descriptor> + <name>1</name> + <value> + 6766d9c9-ab63-4cc9-acb8-29548a448e0f + </value> + </descriptor> + <descriptor> + <name>0</name> + <value> + 2011369e-d8fe-4142-94e6-5ebd1f70ba65 + </value> + </descriptor> + <descriptor> + <name>7</name> + <value> + 523cd69a-7560-4f78-9b16-2928985848d8 + </value> + </descriptor> + <descriptor> + <name>6</name> + <value> + 0e242647-b402-4646-aa26-84bed9f5a18c + </value> + </descriptor> + <descriptor> + <name>5</name> + <value> + 39d6d890-6311-4e99-a1e4-fb6a2224d9fa + </value> + </descriptor> + <descriptor> + <name>4</name> + <value> + 3de7e60d-50db-482f-8fdb-155ce2b37282 + </value> + </descriptor> + <descriptor> + <name>9</name> + <value> + b32cc483-174c-47f2-ade8-3ce19a569d12 + </value> + </descriptor> + <descriptor> + <name>8</name> + <value> + a0a37d20-9f5a-4961-889e-b96d75e8dc3d + </value> + </descriptor> + </descriptors> + </metadata> + </library> + <library> + <metadata> + <uuid> + 0ed955e4-da66-4f84-b134-a01cc1907d57 + </uuid> + <name> + 9351aad9-fa32-4580-88a2-09f843e2b212 + </name> + <type>Library</type> + <description>test</description> + <version>2.3.3</version> + <latestversion>1</latestversion> + <creationdate>1199700035683</creationdate> + <hash> + efd0e393-1a78-4585-8b4e-54a907624dae + </hash> + <descriptors> + <descriptor> + <name>3</name> + <value> + cd364723-d0c2-4a92-ac64-8f2f392c7093 + </value> + </descriptor> + <descriptor> + <name>2</name> + <value> + 87048fb0-36f5-485a-9d9e-f8bf1622e169 + </value> + </descriptor> + <descriptor> + <name>1</name> + <value> + 61a1bb67-c8b6-4528-b447-9b3337b7e8f8 + </value> + </descriptor> + <descriptor> + <name>0</name> + <value> + 75da3f45-a17f-49c6-8df7-afe85d19ff41 + </value> + </descriptor> + <descriptor> + <name>7</name> + <value> + 28dd472a-77af-409e-bb07-6dc1d8aa0789 + </value> + </descriptor> + <descriptor> + <name>6</name> + <value> + c54ad1cd-00ef-4100-b4c2-14c6ae1b59b4 + </value> + </descriptor> + <descriptor> + <name>5</name> + <value> + 4aa51666-bf78-4496-81c5-ea6ff89c8f4a + </value> + </descriptor> + <descriptor> + <name>4</name> + <value> + 2dbc2587-0148-4882-84e9-b895887fbe43 + </value> + </descriptor> + </descriptors> + </metadata> + </library> + <library> + <metadata> + <uuid> + 99783169-ef28-457b-af18-8a67716b1c72 + </uuid> + <name> + 8a44a9fc-8469-44a3-9a99-6347c2543579 + </name> + <type>Library</type> + <description>test</description> + <version>2.3</version> + <latestversion>1</latestversion> + <creationdate>1199700035681</creationdate> + <hash> + 9e769d9f-0732-42de-baa4-79a802aeda88 + </hash> + <descriptors> + <descriptor> + <name>3</name> + <value> + 6f8511c1-8d09-4bb4-85b2-0fab7040ec13 + </value> + </descriptor> + <descriptor> + <name>2</name> + <value> + 243a9adb-347d-4824-a4af-cfb1eff1231e + </value> + </descriptor> + <descriptor> + <name>1</name> + <value> + 365b46f6-1aff-441c-8a76-c5614727895e + </value> + </descriptor> + <descriptor> + <name>0</name> + <value> + bda11d43-becd-43d4-b123-b78c19cf5bcb + </value> + </descriptor> + <descriptor> + <name>7</name> + <value> + 459fd238-2d1b-4b82-9516-880ec5d2db23 + </value> + </descriptor> + <descriptor> + <name>6</name> + <value> + 68b89242-e3b5-4718-93dd-8d28fedb3108 + </value> + </descriptor> + <descriptor> + <name>5</name> + <value> + c59c569b-bbde-4a6b-af6a-3728f4ae8557 + </value> + </descriptor> + <descriptor> + <name>4</name> + <value> + 3467ad2f-dfff-4de9-ba0d-6019611e91bc + </value> + </descriptor> + <descriptor> + <name>8</name> + <value> + 269275b6-830c-4fd2-b376-5d42cdc6108d + </value> + </descriptor> + </descriptors> + </metadata> + </library> + </libraries> + </component> + <component> + <metadata> + <uuid>553770f9-621b-4486-9c16-a50dc0fa1a60</uuid> + <name>33769065-a05d-48ec-b7d1-fb8f7da0f284</name> + <type>Component</type> + <description>test</description> + <version>4.1.3</version> + <latestversion>1</latestversion> + <creationdate>1199700035651</creationdate> + <hash>f0c9d9bc-b01f-4946-b77d-510c8a254be5</hash> + <descriptors> + <descriptor> + <name>3</name> + <value> + ad87c7b4-ac1f-4e2f-8939-8caa420445ed + </value> + </descriptor> + <descriptor> + <name>2</name> + <value> + f6a2884a-f1b8-41f5-9eb0-c845aee7d1e3 + </value> + </descriptor> + <descriptor> + <name>1</name> + <value> + d897c3c9-bfb7-4269-a261-efab5da2222c + </value> + </descriptor> + <descriptor> + <name>0</name> + <value> + 0283d422-25ba-4eb4-afc4-f081334e7eb7 + </value> + </descriptor> + <descriptor> + <name>6</name> + <value> + faf2d7fc-0757-40a5-8113-5c37d9a63ef4 + </value> + </descriptor> + <descriptor> + <name>5</name> + <value> + 17e632aa-d1be-4a54-9929-aa90b88af8ad + </value> + </descriptor> + <descriptor> + <name>4</name> + <value> + 3df3fc2f-fcc1-4f41-9bac-68f1b6bcddd2 + </value> + </descriptor> + </descriptors> + </metadata> + <constants> + <constant> + <name>d4e38ebd-f1fc-4b86-9a81-1525f26d54bb</name> + <type>java.lang.String</type> + </constant> + <constant> + <name>2171229a-9fa6-4d74-9460-6c07c33e1995</name> + <type>java.lang.String</type> + </constant> + <constant> + <name>3b01fea1-35ea-465a-944b-f76bee0808ad</name> + <type>java.lang.String</type> + </constant> + </constants> + <codes> + <code> + <language> + 2f3fd2d8-c331-4005-b48b-45c284a7a32a + </language> + <code>5def8bef-2bbb-4cf7-8f8c-59115f4244eb</code> + </code> + <code> + <language> + fb84167a-787e-45c6-b758-97ac24cbf483 + </language> + <code>c7ec8d67-c5e1-4224-931f-096af3834aac</code> + </code> + <code> + <language> + 2e8856b8-5c0a-42a4-9dfd-ad4384ede34c + </language> + <code>0f9957d4-c6d8-48ec-9e90-52355b320bbc</code> + </code> + </codes> + <libraries> + <library> + <metadata> + <uuid> + acdfb388-ad0d-400e-83da-64f12baf5e5e + </uuid> + <name> + 08fcbbbb-6a12-4360-968f-f10cf7a3693f + </name> + <type>Library</type> + <description>test</description> + <version>3.3.1</version> + <latestversion>1</latestversion> + <creationdate>1199700035684</creationdate> + <hash> + 7e7caf9f-9b01-4539-8ae2-2ba90a81fb96 + </hash> + <descriptors> + <descriptor> + <name>3</name> + <value> + 063a85e3-4df2-4c26-a674-19e8e1788c2c + </value> + </descriptor> + <descriptor> + <name>2</name> + <value> + ded33cf7-10d3-4c67-bf4e-9b6fb7c9a134 + </value> + </descriptor> + <descriptor> + <name>1</name> + <value> + 3c22a9e0-384a-4590-a0aa-ae8d7e95006d + </value> + </descriptor> + <descriptor> + <name>0</name> + <value> + 520b213e-4ef5-4318-8429-b821749b8e17 + </value> + </descriptor> + <descriptor> + <name>7</name> + <value> + 65635cd6-0d1d-4918-89ef-9d3841ed793e + </value> + </descriptor> + <descriptor> + <name>6</name> + <value> + 81fd92ce-dcb8-4653-ba15-0a1cef15c36f + </value> + </descriptor> + <descriptor> + <name>5</name> + <value> + f4331f88-42ee-4bf5-b432-fcc48930c710 + </value> + </descriptor> + <descriptor> + <name>4</name> + <value> + c450f134-aa08-441e-830a-76a8fab0d47e + </value> + </descriptor> + <descriptor> + <name>9</name> + <value> + 258ff3b1-cd5a-41f9-9f5e-281ac70057d5 + </value> + </descriptor> + <descriptor> + <name>8</name> + <value> + 76b06c86-d007-4d25-af45-85c38abde3fe + </value> + </descriptor> + </descriptors> + </metadata> + </library> + <library> + <metadata> + <uuid> + 748f5ba0-3e24-4056-ae7d-e8db5790f594 + </uuid> + <name> + 59a74744-0a8b-40a1-8a7f-bddda1511c3a + </name> + <type>Library</type> + <description>test</description> + <version>2.1.4</version> + <latestversion>1</latestversion> + <creationdate>1199700035684</creationdate> + <hash> + 46b71761-4513-430e-a790-eb026b7a6b87 + </hash> + <descriptors> + <descriptor> + <name>3</name> + <value> + 4aeb2eaf-0d7c-4d7e-88fb-ae63addc959e + </value> + </descriptor> + <descriptor> + <name>2</name> + <value> + 625b096f-c393-4260-87a2-bbe252ac041f + </value> + </descriptor> + <descriptor> + <name>1</name> + <value> + 4a865f21-d34d-4241-845f-6cd81ab0a823 + </value> + </descriptor> + <descriptor> + <name>0</name> + <value> + 76e2cb83-6f23-41b8-b8ff-3af56d92d3c1 + </value> + </descriptor> + <descriptor> + <name>7</name> + <value> + 5b9b0b80-3f79-4eff-bc10-fc7289d00821 + </value> + </descriptor> + <descriptor> + <name>6</name> + <value> + b1a51e9c-6df8-47d4-bf10-43afbd6ead2e + </value> + </descriptor> + <descriptor> + <name>5</name> + <value> + 2a8771d1-333b-42a7-9fbd-61621300b59b + </value> + </descriptor> + <descriptor> + <name>4</name> + <value> + fa2b9c11-3126-48b1-a10e-5e1f25bfaa16 + </value> + </descriptor> + <descriptor> + <name>8</name> + <value> + a037353c-7eee-4566-83a0-de898b2ac043 + </value> + </descriptor> + </descriptors> + </metadata> + </library> + <library> + <metadata> + <uuid> + 4aa2d328-8cb5-4eb2-8ea0-313270149569 + </uuid> + <name> + b383b520-df0f-4b11-9299-e87e31aea22f + </name> + <type>Library</type> + <description>test</description> + <version>0.2</version> + <latestversion>1</latestversion> + <creationdate>1199700035685</creationdate> + <hash> + a85871fd-a5a2-4e51-8d68-2d0ab68f07f0 + </hash> + <descriptors> + <descriptor> + <name>3</name> + <value> + 123a171d-6c3c-4d78-bfbe-6edaf7517e04 + </value> + </descriptor> + <descriptor> + <name>2</name> + <value> + 8dd77075-56bf-434d-91b6-2441a1fcb611 + </value> + </descriptor> + <descriptor> + <name>1</name> + <value> + 86397ada-708e-4cee-9436-886eab22e331 + </value> + </descriptor> + <descriptor> + <name>0</name> + <value> + b8abefd7-48ad-48ad-b7b7-27dda8c01deb + </value> + </descriptor> + <descriptor> + <name>7</name> + <value> + 4ff40a21-a5ab-4c38-b1e0-3979d6826f0b + </value> + </descriptor> + <descriptor> + <name>6</name> + <value> + b8ea399d-54f1-402a-baad-6d36a9c61cf4 + </value> + </descriptor> + <descriptor> + <name>5</name> + <value> + fa6fcbe6-25c3-479e-9787-9a08379e9fbe + </value> + </descriptor> + <descriptor> + <name>4</name> + <value> + dbb4e6d8-6ab4-4d18-95cb-1529365f2cd2 + </value> + </descriptor> + </descriptors> + </metadata> + </library> + </libraries> + </component> + </components> +</ExplorationApplication> \ No newline at end of file Added: trunk/simexplorer-si/src/test.xsd =================================================================== --- trunk/simexplorer-si/src/test.xsd (rev 0) +++ trunk/simexplorer-si/src/test.xsd 2008-01-10 16:00:55 UTC (rev 110) @@ -0,0 +1,155 @@ +<?xml version="1.0" encoding="UTF-8"?> +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" + elementFormDefault="qualified"> + <xs:element name="ExplorationApplication"> + <xs:complexType> + <xs:complexContent> + <xs:extension base="metadata"> + <xs:sequence> + <xs:element ref="data" /> + <xs:element ref="components" /> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + </xs:element> + <xs:element name="data"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" ref="explorationdata" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="explorationdata"> + <xs:complexType> + <xs:complexContent> + <xs:extension base="metadata"> + <xs:sequence> + <xs:element ref="result" /> + <xs:element ref="values" /> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + </xs:element> + <xs:element name="result"> + <xs:complexType /> + </xs:element> + <xs:element name="values"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" ref="value" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="components"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" ref="component" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="component"> + <xs:complexType> + <xs:complexContent> + <xs:extension base="metadata"> + <xs:sequence> + <xs:element ref="constants" /> + <xs:element ref="codes" /> + <xs:element ref="libraries" /> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + </xs:element> + <xs:element name="constants"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" ref="constant" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="codes"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" ref="code" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="libraries"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" ref="library" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="library" type="metadata" /> + <xs:complexType name="metadata"> + <xs:sequence> + <xs:element ref="metadata" /> + </xs:sequence> + </xs:complexType> + <xs:element name="metadata"> + <xs:complexType> + <xs:sequence> + <xs:element ref="uuid" /> + <xs:element ref="name" /> + <xs:element ref="type" /> + <xs:element ref="description" /> + <xs:element ref="version" /> + <xs:element ref="latestversion" /> + <xs:element ref="creationdate" /> + <xs:element ref="hash" /> + <xs:element ref="descriptors" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="uuid" type="xs:string" /> + <xs:element name="description" type="xs:NCName" /> + <xs:element name="version" type="xs:NMTOKEN" /> + <xs:element name="latestversion" type="xs:integer" /> + <xs:element name="creationdate" type="xs:integer" /> + <xs:element name="hash" type="xs:string" /> + <xs:element name="descriptors"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" ref="descriptor" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="descriptor"> + <xs:complexType> + <xs:sequence> + <xs:element ref="name" /> + <xs:element ref="value" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="value"> + <xs:complexType mixed="true"> + <xs:choice minOccurs="0" maxOccurs="unbounded"> + <xs:element ref="constant" /> + <xs:element ref="value" /> + </xs:choice> + </xs:complexType> + </xs:element> + <xs:element name="constant"> + <xs:complexType> + <xs:sequence> + <xs:element ref="name" /> + <xs:element ref="type" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="code"> + <xs:complexType mixed="true"> + <xs:choice minOccurs="0" maxOccurs="unbounded"> + <xs:element ref="code" /> + <xs:element ref="language" /> + </xs:choice> + </xs:complexType> + </xs:element> + <xs:element name="language" type="xs:string" /> + <xs:element name="name" type="xs:NMTOKEN" /> + <xs:element name="type" type="xs:NCName" /> +</xs:schema> Added: trunk/simexplorer-si/src/xmi/images/applications.png =================================================================== (Binary files differ) Property changes on: trunk/simexplorer-si/src/xmi/images/applications.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/simexplorer-si/src/xmi/images/authorization.png =================================================================== (Binary files differ) Property changes on: trunk/simexplorer-si/src/xmi/images/authorization.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Modified: trunk/simexplorer-si/src/xmi/images/data.png =================================================================== (Binary files differ) Modified: trunk/simexplorer-si/src/xmi/images/entities.png =================================================================== (Binary files differ) Added: trunk/simexplorer-si/src/xmi/images/storage.png =================================================================== (Binary files differ) Property changes on: trunk/simexplorer-si/src/xmi/images/storage.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Modified: trunk/simexplorer-si/src/xmi/simexplorer-si.zargo =================================================================== (Binary files differ) Added: trunk/simexplorer-si/src/xmi/specsSI.xmi =================================================================== --- trunk/simexplorer-si/src/xmi/specsSI.xmi (rev 0) +++ trunk/simexplorer-si/src/xmi/specsSI.xmi 2008-01-10 16:00:55 UTC (rev 110) @@ -0,0 +1,736 @@ +<?xml version="1.0" encoding="UTF-8"?> +<XMI xmlns:UML="http://schema.omg.org/spec/UML/1.3" verified="false" timestamp="2007-11-29T14:29:37" xmi.version="1.2" > + <XMI.header> + <XMI.documentation> + <XMI.exporter>umbrello uml modeller http://uml.sf.net</XMI.exporter> + <XMI.exporterVersion>1.5.8</XMI.exporterVersion> + <XMI.exporterEncoding>UnicodeUTF8</XMI.exporterEncoding> + </XMI.documentation> + <XMI.metamodel xmi.name="UML" href="UML.xml" xmi.version="1.3" /> + </XMI.header> + <XMI.content> + <UML:Model isSpecification="false" isLeaf="false" isRoot="false" xmi.id="m1" isAbstract="false" name="ModÚle UML" > + <UML:Namespace.ownedElement> + <UML:Stereotype isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="folder" isRoot="false" isAbstract="false" name="folder" /> + <UML:Stereotype isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="11" isRoot="false" isAbstract="false" name="datatype" /> + <UML:Stereotype isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="interface" isRoot="false" isAbstract="false" name="interface" /> + <UML:Model stereotype="2" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="1" isRoot="false" isAbstract="false" name="Logical View" > + <UML:Namespace.ownedElement> + <UML:Package stereotype="2" isSpecification="false" isLeaf="false" visibility="public" namespace="1" xmi.id="8" isRoot="false" isAbstract="false" name="Datatypes" > + <UML:Namespace.ownedElement> + <UML:DataType stereotype="11" isSpecification="false" isLeaf="false" visibility="public" namespace="8" xmi.id="10" isRoot="false" isAbstract="false" name="int" /> + <UML:DataType stereotype="11" isSpecification="false" isLeaf="false" visibility="public" namespace="8" xmi.id="12" isRoot="false" isAbstract="false" name="char" /> + <UML:DataType stereotype="11" isSpecification="false" isLeaf="false" visibility="public" namespace="8" xmi.id="13" isRoot="false" isAbstract="false" name="bool" /> + <UML:DataType stereotype="11" isSpecification="false" isLeaf="false" visibility="public" namespace="8" xmi.id="14" isRoot="false" isAbstract="false" name="float" /> + <UML:DataType stereotype="11" isSpecification="false" isLeaf="false" visibility="public" namespace="8" xmi.id="15" isRoot="false" isAbstract="false" name="double" /> + <UML:DataType stereotype="11" isSpecification="false" isLeaf="false" visibility="public" namespace="8" xmi.id="16" isRoot="false" isAbstract="false" name="short" /> + <UML:DataType stereotype="11" isSpecification="false" isLeaf="false" visibility="public" namespace="8" xmi.id="17" isRoot="false" isAbstract="false" name="long" /> + <UML:DataType stereotype="11" isSpecification="false" isLeaf="false" visibility="public" namespace="8" xmi.id="18" isRoot="false" isAbstract="false" name="unsigned int" /> + <UML:DataType stereotype="11" isSpecification="false" isLeaf="false" visibility="public" namespace="8" xmi.id="19" isRoot="false" isAbstract="false" name="unsigned short" /> + <UML:DataType stereotype="11" isSpecification="false" isLeaf="false" visibility="public" namespace="8" xmi.id="20" isRoot="false" isAbstract="false" name="unsigned long" /> + <UML:DataType stereotype="11" isSpecification="false" isLeaf="false" visibility="public" namespace="8" xmi.id="21" isRoot="false" isAbstract="false" name="string" /> + <UML:DataType stereotype="11" isSpecification="false" isLeaf="false" visibility="public" namespace="8" xmi.id="8KwjAV84slCS" isRoot="false" isAbstract="false" name="undef" /> + </UML:Namespace.ownedElement> + </UML:Package> + <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="1" xmi.id="23" isRoot="false" isAbstract="false" name="SI" /> + <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="1" xmi.id="24" isRoot="false" isAbstract="false" name="SimExplorer Client" /> + <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="1" xmi.id="25" isRoot="false" isAbstract="false" name="HTTP Client" /> + <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="1" xmi.id="30" isRoot="false" isAbstract="false" name="LoggableElement" > + <UML:Classifier.feature> + <UML:Attribute isSpecification="false" visibility="private" xmi.id="48" type="49" name="name" /> + <UML:Attribute isSpecification="false" visibility="private" xmi.id="OQwmRjL3VZFG" type="49" name="type" /> + <UML:Attribute isSpecification="false" visibility="private" xmi.id="50" type="49" name="description" /> + <UML:Attribute isSpecification="false" visibility="private" xmi.id="52" type="10" name="versionID" /> + <UML:Attribute isSpecification="false" visibility="private" xmi.id="53" type="17" name="creationDate" /> + <UML:Attribute isSpecification="false" visibility="private" xmi.id="55" type="10" name="owner" /> + <UML:Attribute isSpecification="false" visibility="private" xmi.id="56" type="10" name="group" /> + <UML:Attribute isSpecification="false" visibility="private" xmi.id="57" type="10" name="rights" /> + <UML:Attribute isSpecification="false" visibility="private" xmi.id="70" type="49" name="checksum" /> + <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="212" isRoot="false" isAbstract="true" isQuery="false" name="diff" > + <UML:BehavioralFeature.parameter> + <UML:Parameter isSpecification="false" visibility="private" xmi.id="213" value="" type="30" name="element" /> + </UML:BehavioralFeature.parameter> + </UML:Operation> + <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="228" isRoot="false" isAbstract="false" isQuery="false" name="addSubversion" > + <UML:BehavioralFeature.parameter> + <UML:Parameter isSpecification="false" visibility="private" xmi.id="229" value="" type="30" name="element" /> + </UML:BehavioralFeature.parameter> + </UML:Operation> + <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="230" isRoot="false" isAbstract="false" isQuery="false" name="deleteCurrentVersion" > + <UML:BehavioralFeature.parameter> + <UML:Parameter isSpecification="false" visibility="private" xmi.id="232" value="" type="231" name="recursive" /> + </UML:BehavioralFeature.parameter> + </UML:Operation> + </UML:Classifier.feature> + </UML:Class> + <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="1" xmi.id="31" isRoot="false" isAbstract="false" name="Library" > + <UML:GeneralizableElement.generalization> + <UML:Generalization xmi.idref="71" /> + </UML:GeneralizableElement.generalization> + </UML:Class> + <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="1" xmi.id="32" isRoot="false" isAbstract="false" name="Component" > + <UML:GeneralizableElement.generalization> + <UML:Generalization xmi.idref="74" /> + </UML:GeneralizableElement.generalization> + </UML:Class> + <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="1" xmi.id="33" isRoot="false" isAbstract="false" name="Function" /> + <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="1" xmi.id="34" isRoot="false" isAbstract="false" name="ExplorationApplication" > + <UML:GeneralizableElement.generalization> + <UML:Generalization xmi.idref="80" /> + </UML:GeneralizableElement.generalization> + </UML:Class> + <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="1" xmi.id="35" isRoot="false" isAbstract="false" name="ExplorationData" > + <UML:GeneralizableElement.generalization> + <UML:Generalization xmi.idref="77" /> + </UML:GeneralizableElement.generalization> + <UML:Classifier.feature> + <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="205" isRoot="false" isAbstract="false" isQuery="false" name="setConstantValue" > + <UML:BehavioralFeature.parameter> + <UML:Parameter isSpecification="false" visibility="private" xmi.id="206" value="" type="86" name="c" /> + <UML:Parameter isSpecification="false" visibility="private" xmi.id="207" value="" type="185" name="value" /> + </UML:BehavioralFeature.parameter> + </UML:Operation> + <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="sDZBZ5ClNq0L" isRoot="false" isAbstract="false" isQuery="false" name="getConstantValue" > + <UML:BehavioralFeature.parameter> + <UML:Parameter kind="return" xmi.id="fAdB7O3w7Dcb" type="185" /> + <UML:Parameter isSpecification="false" visibility="private" xmi.id="0KUxEe9rtkFt" value="" type="86" name="constant" /> + </UML:BehavioralFeature.parameter> + </UML:Operation> + </UML:Classifier.feature> + </UML:Class> + <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="1" xmi.id="49" isRoot="false" isAbstract="false" name="String" /> + <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="1" xmi.id="58" isRoot="false" isAbstract="false" name="Descriptor" > + <UML:Classifier.feature> + <UML:Attribute isSpecification="false" visibility="private" xmi.id="59" type="49" name="name" /> + <UML:Attribute isSpecification="false" visibility="private" xmi.id="60" type="49" name="value" /> + </UML:Classifier.feature> + </UML:Class> + <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="1" xmi.id="86" isRoot="false" isAbstract="false" name="Constant" > + <UML:Classifier.feature> + <UML:Attribute isSpecification="false" visibility="private" xmi.id="154" type="49" name="name" /> + <UML:Attribute isSpecification="false" visibility="private" xmi.id="155" type="156" name="type" /> + </UML:Classifier.feature> + </UML:Class> + <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="1" xmi.id="96" isRoot="false" isAbstract="false" name="File" > + <UML:Classifier.feature> + <UML:Attribute isSpecification="false" visibility="private" xmi.id="97" type="49" name="name" /> + <UML:Attribute isSpecification="false" visibility="private" xmi.id="98" type="49" name="location" /> + <UML:Attribute isSpecification="false" visibility="private" xmi.id="99" type="49" name="checksum" /> + </UML:Classifier.feature> + </UML:Class> + <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="1" xmi.id="149" isRoot="false" isAbstract="false" name="nouvelle_classe" /> + <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="1" xmi.id="151" isRoot="false" isAbstract="false" name="Object[]" /> + <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="1" xmi.id="153" isRoot="false" isAbstract="false" name="String[]" /> + <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="1" xmi.id="156" isRoot="false" isAbstract="false" name="Class" /> + <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="1" xmi.id="183" isRoot="false" isAbstract="false" name="ConstantValue" > + <UML:Classifier.feature> + <UML:Attribute isSpecification="false" visibility="private" xmi.id="184" type="185" name="value" /> + </UML:Classifier.feature> + </UML:Class> + <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="1" xmi.id="185" isRoot="false" isAbstract="false" name="Object" /> + <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="1" xmi.id="186" isRoot="false" isAbstract="false" name="Repository" /> + <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="1" xmi.id="231" isRoot="false" isAbstract="false" name="boolean" /> + <UML:Association isSpecification="false" visibility="public" namespace="1" xmi.id="36" name="" > + <UML:Association.connection> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="OehXMzc6R5S7" aggregation="aggregate" type="32" name="" /> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="zQlN0Bsscn4o" aggregation="none" type="31" name="" multiplicity="n" /> + </UML:Association.connection> + </UML:Association> + <UML:Association isSpecification="false" visibility="public" namespace="1" xmi.id="39" name="" > + <UML:Association.connection> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="k6QcvETJsArD" aggregation="aggregate" type="35" name="" /> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="7TJYYjdV7Oq8" aggregation="none" type="32" name="" /> + </UML:Association.connection> + </UML:Association> + <UML:Association isSpecification="false" visibility="public" namespace="1" xmi.id="42" name="" > + <UML:Association.connection> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="ai0AV2wD8Lo3" aggregation="aggregate" type="32" name="" /> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="ZHLQPCdUdu09" aggregation="none" type="33" name="" /> + </UML:Association.connection> + </UML:Association> + <UML:Association isSpecification="false" visibility="public" namespace="3" xmi.id="61" name="" > + <UML:Association.connection> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="false" xmi.id="1DkgwikeDJHe" aggregation="none" type="30" name="" /> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="zqk1VKjvTVf9" aggregation="none" type="58" name="" multiplicity="0..*" /> + </UML:Association.connection> + </UML:Association> + <UML:Generalization isSpecification="false" child="31" visibility="public" namespace="1" xmi.id="71" parent="30" discriminator="" name="" /> + <UML:Generalization isSpecification="false" child="32" visibility="public" namespace="1" xmi.id="74" parent="30" discriminator="" name="" /> + <UML:Generalization isSpecification="false" child="35" visibility="public" namespace="1" xmi.id="77" parent="30" discriminator="" name="" /> + <UML:Generalization isSpecification="false" child="34" visibility="public" namespace="1" xmi.id="80" parent="30" discriminator="" name="" /> + <UML:Association isSpecification="false" visibility="public" namespace="1" xmi.id="90" name="" > + <UML:Association.connection> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="Vak8SkH4NtoM" aggregation="aggregate" type="35" name="" /> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="MdwVRe7IKxFI" aggregation="none" type="86" name="" /> + </UML:Association.connection> + </UML:Association> + <UML:Association isSpecification="false" visibility="public" namespace="1" xmi.id="93" name="" > + <UML:Association.connection> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="ZFrQZog4MOBo" aggregation="aggregate" type="32" name="" /> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="6QtRIfoeGk7i" aggregation="none" type="86" name="constants" multiplicity="1..n" /> + </UML:Association.connection> + </UML:Association> + <UML:Association isSpecification="false" visibility="public" namespace="1" xmi.id="100" name="" > + <UML:Association.connection> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="OCyg8DyhQn8z" aggregation="aggregate" type="32" name="" /> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="Zm2tBDiHbZjt" aggregation="none" type="96" name="codes" multiplicity="n" /> + </UML:Association.connection> + </UML:Association> + <UML:Association isSpecification="false" visibility="public" namespace="1" xmi.id="103" name="" > + <UML:Association.connection> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="EXVUFcAbp6Fx" aggregation="aggregate" type="32" name="" /> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="JCckzihXVjQg" aggregation="none" type="96" name="structures" multiplicity="n" /> + </UML:Association.connection> + </UML:Association> + <UML:Association isSpecification="false" visibility="public" namespace="1" xmi.id="122" name="" > + <UML:Association.connection> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="u6vWfcPr7vKM" aggregation="aggregate" type="34" name="" /> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="VSxIZBDqNoYK" aggregation="none" type="32" name="" /> + </UML:Association.connection> + </UML:Association> + <UML:Association isSpecification="false" visibility="public" namespace="1" xmi.id="125" name="" > + <UML:Association.connection> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="WGr1xGfsKbO0" aggregation="aggregate" type="31" name="" /> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="BlpJe7f8abQ7" aggregation="none" type="33" name="" multiplicity="n" /> + </UML:Association.connection> + </UML:Association> + <UML:Association isSpecification="false" visibility="public" namespace="1" xmi.id="128" name="" > + <UML:Association.connection> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="false" xmi.id="mcx9QWTukJwh" aggregation="none" type="33" name="" /> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="XZZr8vpKhfdJ" aggregation="none" type="96" name="code" multiplicity="1" /> + </UML:Association.connection> + </UML:Association> + <UML:Association isSpecification="false" visibility="public" namespace="1" xmi.id="131" name="" > + <UML:Association.connection> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="false" xmi.id="kGRKrqRbQNiq" aggregation="none" type="33" name="" /> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="tAkbTeI0CspK" aggregation="none" type="96" name="inputDataStructure" multiplicity="1" /> + </UML:Association.connection> + </UML:Association> + <UML:Association isSpecification="false" visibility="public" namespace="1" xmi.id="134" name="" > + <UML:Association.connection> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="false" xmi.id="nfeSIHk2YBNN" aggregation="none" type="33" name="" /> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="zmxP9fF0pybG" aggregation="none" type="96" name="outputDataStructure" multiplicity="1" /> + </UML:Association.connection> + </UML:Association> + <UML:Association isSpecification="false" visibility="public" namespace="1" xmi.id="158" name="" > + <UML:Association.connection> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="auEmk47Vhjwz" aggregation="composite" type="34" name="" /> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="zg1VrMsr7pEE" aggregation="none" type="35" name="explorations" multiplicity="1..n" /> + </UML:Association.connection> + </UML:Association> + <UML:Association isSpecification="false" visibility="public" namespace="1" xmi.id="161" name="" > + <UML:Association.connection> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="TUFGQoVygjlQ" aggregation="composite" type="34" name="" /> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="lquQXqPWWP1L" aggregation="none" type="32" name="" /> + </UML:Association.connection> + </UML:Association> + <UML:Association isSpecification="false" visibility="public" namespace="1" xmi.id="164" name="" > + <UML:Association.connection> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="jsAqhP58rIPF" aggregation="composite" type="32" name="" /> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="6uDnbwBLk5lI" aggregation="none" type="86" name="constants" multiplicity="0..n" /> + </UML:Association.connection> + </UML:Association> + <UML:Association isSpecification="false" visibility="public" namespace="1" xmi.id="171" name="" > + <UML:Association.connection> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="v9mPYolHgt6L" aggregation="composite" type="34" name="" /> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="I9U7RrMVjaII" aggregation="none" type="32" name="" /> + </UML:Association.connection> + </UML:Association> + <UML:Association isSpecification="false" visibility="public" namespace="1" xmi.id="174" name="" > + <UML:Association.connection> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="UUdFXNVTWHs4" aggregation="composite" type="34" name="" /> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="5bJjVP5lWXtx" aggregation="none" type="35" name="" /> + </UML:Association.connection> + </UML:Association> + <UML:Association isSpecification="false" visibility="public" namespace="1" xmi.id="180" name="" > + <UML:Association.connection> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="MDT3njLGBxVj" aggregation="aggregate" type="34" name="" /> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="KyAqF0sJaB23" aggregation="none" type="32" name="components" multiplicity="0..n" /> + </UML:Association.connection> + </UML:Association> + <UML:Association isSpecification="false" visibility="public" namespace="1" xmi.id="187" name="" > + <UML:Association.connection> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="Z5o5af3wtUze" aggregation="composite" type="186" name="" /> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="BJuNGN4aJEQZ" aggregation="none" type="34" name="applications" multiplicity="0..n" /> + </UML:Association.connection> + </UML:Association> + <UML:Association isSpecification="false" visibility="public" namespace="1" xmi.id="190" name="" > + <UML:Association.connection> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="CIqmRsp0wc6W" aggregation="composite" type="186" name="" /> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="F7R8ZOlkhd7x" aggregation="none" type="31" name="libraries" multiplicity="0..n" /> + </UML:Association.connection> + </UML:Association> + <UML:Association isSpecification="false" visibility="public" namespace="1" xmi.id="197" name="" > + <UML:Association.connection> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="false" xmi.id="z9XINvrYBhKd" aggregation="none" type="35" name="" /> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="Y8dSkhwzmN6L" aggregation="none" type="183" name="valuesMap" multiplicity="1..n" /> + </UML:Association.connection> + </UML:Association> + <UML:Association isSpecification="false" visibility="public" namespace="1" xmi.id="200" name="" > + <UML:Association.connection> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="mp6TSBPRLwig" aggregation="composite" type="186" name="" /> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="qZE1FXelfGDP" aggregation="none" type="32" name="components" multiplicity="0..n" /> + </UML:Association.connection> + </UML:Association> + <UML:Association isSpecification="false" visibility="public" namespace="1" xmi.id="214" name="" > + <UML:Association.connection> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="v9MiVQ1HF5ig" aggregation="composite" type="30" name="" /> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="H75a2nGsLTtY" aggregation="none" type="30" name="" /> + </UML:Association.connection> + </UML:Association> + <UML:Association isSpecification="false" visibility="public" namespace="1" xmi.id="217" name="" > + <UML:Association.connection> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="false" xmi.id="0WHfmU2hbMN4" aggregation="none" type="30" name="childs" multiplicity="0..n" /> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="nPJ0U2gj7kJ9" aggregation="none" type="30" name="parent" multiplicity="1" /> + </UML:Association.connection> + </UML:Association> + <UML:Association isSpecification="false" visibility="public" namespace="1" xmi.id="233" name="" > + <UML:Association.connection> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="XYzq1tO1Pfg9" aggregation="aggregate" type="30" name="" /> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="7goh2ClnZ5o1" aggregation="none" type="58" name="descriptors" multiplicity="0..n" /> + </UML:Association.connection> + </UML:Association> + <UML:Association isSpecification="false" visibility="public" namespace="1" xmi.id="B2zME5gw4DaC" name="" > + <UML:Association.connection> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="false" xmi.id="gIrxFvmXAZOS" aggregation="none" type="32" name="" /> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="xshuetfptfC7" aggregation="none" type="31" name="" multiplicity="n" /> + </UML:Association.connection> + </UML:Association> + <UML:Interface stereotype="interface" isSpecification="false" isLeaf="false" visibility="public" namespace="1" xmi.id="0pBuvPUWvg71" isRoot="false" isAbstract="true" name="Structure" /> + <UML:Association isSpecification="false" visibility="public" namespace="1" xmi.id="DS8SoqJnhmyf" name="" > + <UML:Association.connection> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="c7ZVW21Ri8Rt" aggregation="composite" type="32" name="" /> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="mSOyciinBoGx" aggregation="none" type="0pBuvPUWvg71" name="" multiplicity="0..n" /> + </UML:Association.connection> + </UML:Association> + <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="1" xmi.id="SANjhlRxGZ3W" isRoot="false" isAbstract="false" name="Code" > + <UML:Classifier.feature> + <UML:Attribute isSpecification="false" visibility="private" xmi.id="lZfoWZ2BKBPT" type="49" name="language" /> + <UML:Attribute isSpecification="false" visibility="private" xmi.id="UHYhe0GPL1w1" type="49" name="code" /> + </UML:Classifier.feature> + </UML:Class> + <UML:Association isSpecification="false" visibility="public" namespace="1" xmi.id="8WjIhfF3OQKi" name="" > + <UML:Association.connection> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="CLOF02ESAaBs" aggregation="composite" type="32" name="" /> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="JbnZ8o3EKnW1" aggregation="none" type="SANjhlRxGZ3W" name="" multiplicity="0..n" /> + </UML:Association.connection> + </UML:Association> + <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="1" xmi.id="I4mI36G7DZSn" isRoot="false" isAbstract="false" name="Result" /> + <UML:Association isSpecification="false" visibility="public" namespace="1" xmi.id="jdf9In4cX0Dg" name="" > + <UML:Association.connection> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="IpkaFFTVJDoM" aggregation="none" type="35" name="" /> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="I2RTctGJUtQk" aggregation="none" type="I4mI36G7DZSn" name="" multiplicity="0..1" /> + </UML:Association.connection> + </UML:Association> + </UML:Namespace.ownedElement> + <XMI.extension xmi.extender="umbrello" > + <diagrams> + <diagram snapgrid="0" showattsig="1" fillcolor="#ffffc0" linewidth="0" zoom="112" showgrid="0" showopsig="1" usefillcolor="1" snapx="10" canvaswidth="990" snapy="10" showatts="1" xmi.id="9" documentation="" type="1" showops="1" showpackage="0" name="diagramme de classes" localid="900000" showstereotype="0" showscope="1" snapcsgrid="0" font="Sans Serif,9,-1,5,50,0,0,0,0,0" linecolor="#ff0000" canvasheight="628" > + <widgets> + <classwidget usesdiagramfillcolor="0" width="292" showattsigs="601" x="238" fillcolor="#ffffc0" y="22" showopsigs="601" linewidth="none" height="208" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="30" showoperations="1" showpackage="0" showscope="1" usesdiagramusefillcolor="0" font="Sans Serif,9,-1,5,50,1,0,0,0,0" linecolor="#ff0000" /> + <classwidget usesdiagramfillcolor="1" width="61" showattsigs="601" x="732" fillcolor="none" y="358" showopsigs="601" linewidth="none" height="32" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="31" showoperations="1" showpackage="0" showscope="1" usesdiagramusefillcolor="1" font="Sans Serif,9,-1,5,75,0,0,0,0,0" linecolor="none" /> + <classwidget usesdiagramfillcolor="0" width="91" showattsigs="601" x="537" fillcolor="#ffffc0" y="350" showopsigs="601" linewidth="none" height="32" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="32" showoperations="1" showpackage="0" showscope="1" usesdiagramusefillcolor="0" font="Sans Serif,9,-1,5,75,0,0,0,0,0" linecolor="#ff0000" /> + <classwidget usesdiagramfillcolor="0" width="224" showattsigs="601" x="253" fillcolor="#ffffc0" y="274" showopsigs="601" linewidth="none" height="32" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="34" showoperations="1" showpackage="0" showscope="1" usesdiagramusefillcolor="0" font="Sans Serif,9,-1,5,50,0,0,0,0,0" linecolor="#ff0000" /> + <classwidget usesdiagramfillcolor="0" width="313" showattsigs="601" x="46" fillcolor="#ffffc0" y="355" showopsigs="601" linewidth="none" height="56" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="35" showoperations="1" showpackage="0" showscope="1" usesdiagramusefillcolor="0" font="Sans Serif,9,-1,5,75,0,0,0,0,0" linecolor="#ff0000" /> + <classwidget usesdiagramfillcolor="0" width="104" showattsigs="601" x="677" fillcolor="#ffffc0" y="66" showopsigs="601" linewidth="none" height="56" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="58" showoperations="1" showpackage="0" showscope="1" usesdiagramusefillcolor="0" font="Sans Serif,9,-1,5,50,0,0,0,0,0" linecolor="#ff0000" /> + <classwidget usesdiagramfillcolor="0" width="104" showattsigs="601" x="305" fillcolor="#ffffc0" y="502" showopsigs="601" linewidth="none" height="56" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="86" showoperations="1" showpackage="0" showscope="1" usesdiagramusefillcolor="0" font="Sans Serif,9,-1,5,50,0,0,0,0,0" linecolor="#ff0000" /> + <classwidget usesdiagramfillcolor="0" width="116" showattsigs="601" x="135" fillcolor="#ffffc0" y="472" showopsigs="601" linewidth="none" height="40" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="183" showoperations="1" showpackage="0" showscope="1" usesdiagramusefillcolor="0" font="Sans Serif,9,-1,5,50,0,0,0,0,0" linecolor="#ff0000" /> + <classwidget usesdiagramfillcolor="1" width="88" showattsigs="601" x="670" fillcolor="none" y="155" showopsigs="601" linewidth="none" height="32" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="186" showoperations="1" showpackage="0" showscope="1" usesdiagramusefillcolor="1" font="Sans Serif,9,-1,5,50,0,0,0,0,0" linecolor="none" /> + <notewidget usesdiagramfillcolor="1" width="101" x="833" fillcolor="none" y="357" linewidth="none" height="50" usefillcolor="1" isinstance="0" xmi.id="204" showstereotype="1" text="Plugin architecture" usesdiagramusefillcolor="1" font="Sans Serif,9,-1,5,50,0,0,0,0,0" linecolor="none" /> + <notewidget usesdiagramfillcolor="1" width="99" x="28" fillcolor="none" y="23" linewidth="none" height="118" usefillcolor="1" isinstance="0" xmi.id="DQlyKHw7rVUH" text="type value belongs to an enumeration defining." usesdiagramusefillcolor="1" font="Sans Serif,9,-1,5,50,0,0,0,0,0" linecolor="none" /> + <interfacewidget usesdiagramfillcolor="1" width="89" x="486" fillcolor="none" y="510" drawascircle="0" showopsigs="601" linewidth="none" height="48" usefillcolor="1" showpubliconly="0" isinstance="0" xmi.id="0pBuvPUWvg71" showoperations="1" showpackage="0" showscope="1" showstereotype="1" usesdiagramusefillcolor="1" font="Sans Serif,9,-1,5,75,1,0,0,0,0" linecolor="none" /> + <classwidget usesdiagramfillcolor="0" width="125" showattsigs="601" x="613" fillcolor="#ffffc0" y="440" showopsigs="601" linewidth="none" height="56" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="SANjhlRxGZ3W" showoperations="1" showpackage="0" showscope="1" usesdiagramusefillcolor="0" font="Sans Serif,9,-1,5,75,0,0,0,0,0" linecolor="#ff0000" /> + <classwidget usesdiagramfillcolor="1" width="55" showattsigs="601" x="41" fillcolor="none" y="504" showopsigs="601" linewidth="none" height="32" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="I4mI36G7DZSn" showoperations="1" showpackage="0" showscope="1" usesdiagramusefillcolor="1" font="Sans Serif,9,-1,5,75,0,0,0,0,0" linecolor="none" /> + <notewidget usesdiagramfillcolor="1" width="214" x="80" fillcolor="none" y="549" linewidth="none" height="75" usefillcolor="1" isinstance="0" xmi.id="GCOqzDx6ErUV" text="Contains all the result of the exploration and its simulation results. All these datas are zipped in a archive." usesdiagramusefillcolor="1" font="Sans Serif,9,-1,5,50,0,0,0,0,0" linecolor="none" /> + </widgets> + <messages/> + <associations> + <assocwidget totalcounta="3" indexa="1" totalcountb="5" indexb="1" linewidth="none" widgetbid="30" widgetaid="31" xmi.id="71" type="500" linecolor="none" > + <linepath> + <startpoint startx="746" starty="358" /> + <endpoint endx="330" endy="230" /> + <point x="746" y="264" /> + <point x="330" y="264" /> + </linepath> + </assocwidget> + <assocwidget totalcounta="3" indexa="1" totalcountb="5" indexb="2" linewidth="none" widgetbid="30" widgetaid="32" xmi.id="74" type="500" linecolor="none" > + <linepath> + <startpoint startx="558" starty="350" /> + <endpoint endx="330" endy="230" /> + <point x="558" y="264" /> + <point x="330" y="264" /> + </linepath> + </assocwidget> + <assocwidget totalcounta="3" indexa="1" totalcountb="5" indexb="3" linewidth="none" widgetbid="30" widgetaid="35" xmi.id="77" type="500" linecolor="none" > + <linepath> + <startpoint startx="180" starty="355" /> + <endpoint endx="330" endy="230" /> + <point x="180" y="264" /> + <point x="330" y="264" /> + </linepath> + </assocwidget> + <assocwidget totalcounta="2" indexa="1" totalcountb="5" indexb="4" linewidth="none" widgetbid="30" widgetaid="34" xmi.id="80" type="500" linecolor="none" > + <linepath> + <startpoint startx="365" starty="274" /> + <endpoint endx="365" endy="230" /> + </linepath> + </assocwidget> + <assocwidget totalcounta="3" indexa="1" totalcountb="3" indexb="2" linewidth="none" widgetbid="35" widgetaid="34" xmi.id="158" type="510" linecolor="none" > + <linepath> + <startpoint startx="327" starty="306" /> + <endpoint endx="327" endy="355" /> + </linepath> + <floatingtext usesdiagramfillcolor="1" width="32" x="251" fillcolor="none" y="330" linewidth="none" posttext="" role="702" height="32" usefillcolor="1" pretext="" isinstance="0" xmi.id="AtaXWEgeuTJx" text="1..n" usesdiagramusefillcolor="1" font="Sans Serif,9,-1,5,50,0,0,0,0,0" linecolor="none" /> + <floatingtext usesdiagramfillcolor="1" width="95" x="283" fillcolor="none" y="333" linewidth="none" posttext="" role="710" height="20" usefillcolor="1" pretext="+" isinstance="0" xmi.id="5SlCC2KiaJWb" text="explorations" usesdiagramusefillcolor="1" font="Sans Serif,9,-1,5,50,0,0,0,0,0" linecolor="none" /> + </assocwidget> + <assocwidget totalcounta="4" indexa="1" totalcountb="2" indexb="1" linewidth="none" widgetbid="86" aclsegindex="0" assocclass="183" widgetaid="32" xmi.id="164" type="510" linecolor="none" > + <linepath> + <startpoint startx="537" starty="382" /> + <endpoint endx="409" endy="502" /> + </linepath> + <floatingtext usesdiagramfillcolor="1" width="32" x="384" fillcolor="none" y="476" linewidth="none" posttext="" role="702" height="20" usefillcolor="1" pretext="" isinstance="0" xmi.id="zfpXwM77Fhel" text="0..n" usesdiagramusefillcolor="1" font="Sans Serif,9,-1,5,50,0,0,0,0,0" linecolor="none" /> + <floatingtext usesdiagramfillcolor="1" width="77" x="411" fillcolor="none" y="480" linewidth="none" posttext="" role="710" height="20" usefillcolor="1" pretext="+" isinstance="0" xmi.id="d2kC7WBAzwL9" text="constants" usesdiagramusefillcolor="1" font="Sans Serif,9,-1,5,50,0,0,0,0,0" linecolor="none" /> + </assocwidget> + <assocwidget totalcounta="3" indexa="2" totalcountb="2" indexb="1" linewidth="none" widgetbid="32" widgetaid="34" xmi.id="180" type="501" linecolor="none" > + <linepath> + <startpoint startx="419" starty="306" /> + <endpoint endx="537" endy="367" /> + <point x="419" y="367" /> + </linepath> + <floatingtext usesdiagramfillcolor="1" width="32" x="501" fillcolor="none" y="338" linewidth="none" posttext="" role="702" height="32" usefillcolor="1" pretext="" isinstance="0" xmi.id="0kxzfI7evw9r" showstereotype="1" text="0..n" usesdiagramusefillcolor="1" font="Sans Serif,9,-1,5,50,0,0,0,0,0" linecolor="none" /> + <floatingtext usesdiagramfillcolor="1" width="96" x="440" fillcolor="none" y="363" linewidth="none" posttext="" role="710" height="20" usefillcolor="1" pretext="+" isinstance="0" xmi.id="wLNqmglPhUZm" text="components" usesdiagramusefillcolor="1" font="Sans Serif,9,-1,5,50,0,0,0,0,0" linecolor="none" /> + </assocwidget> + <assocwidget totalcounta="4" indexa="1" totalcountb="2" indexb="1" linewidth="none" widgetbid="34" widgetaid="186" xmi.id="187" type="510" linecolor="none" > + <linepath> + <startpoint startx="710" starty="187" /> + <endpoint endx="477" endy="294" /> + <point x="710" y="294" /> + </linepath> + <floatingtext usesdiagramfillcolor="1" width="32" x="481" fillcolor="none" y="268" linewidth="none" posttext="" role="702" height="32" usefillcolor="1" pretext="" isinstance="0" xmi.id="HU7wygiwOfu3" showstereotype="1" text="0..n" usesdiagramusefillcolor="1" font="Sans Serif,9,-1,5,50,0,0,0,0,0" linecolor="none" /> + <floatingtext usesdiagramfillcolor="1" width="94" x="478" fillcolor="none" y="297" linewidth="none" posttext="" role="710" height="20" usefillcolor="1" pretext="+" isinstance="0" xmi.id="GGyVydFuwcii" text="applications" usesdiagramusefillcolor="1" font="Sans Serif,9,-1,5,50,0,0,0,0,0" linecolor="none" /> + </assocwidget> + <assocwidget totalcounta="4" indexa="2" totalcountb="3" indexb="2" linewidth="none" widgetbid="31" widgetaid="186" xmi.id="190" type="510" linecolor="none" > + <linepath> + <startpoint startx="710" starty="187" /> + <endpoint endx="792" endy="358" /> + <point x="710" y="245" /> + <point x="792" y="245" /> + </linepath> + <floatingtext usesdiagramfillcolor="1" width="32" x="764" fillcolor="none" y="330" linewidth="none" posttext="" role="702" height="32" usefillcolor="1" pretext="" isinstance="0" xmi.id="JutDVcvk40g0" text="0..n" usesdiagramusefillcolor="1" font="Sans Serif,9,-1,5,50,0,0,0,0,0" linecolor="none" /> + <floatingtext usesdiagramfillcolor="1" width="68" x="796" fillcolor="none" y="332" linewidth="none" posttext="" role="710" height="20" usefillcolor="1" pretext="+" isinstance="0" xmi.id="v1fqvpiC5gf1" text="libraries" usesdiagramusefillcolor="1" font="Sans Serif,9,-1,5,50,0,0,0,0,0" linecolor="none" /> + </assocwidget> + <assocwidget totalcounta="3" indexa="2" totalcountb="2" indexb="1" linewidth="none" widgetbid="183" widgetaid="35" xmi.id="197" type="512" linecolor="none" > + <linepath> + <startpoint startx="188" starty="411" /> + <endpoint endx="188" endy="472" /> + </linepath> + <floatingtext usesdiagramfillcolor="1" width="32" x="142" fillcolor="none" y="438" linewidth="none" posttext="" role="702" height="32" usefillcolor="1" pretext="" isinstance="0" xmi.id="bWveCYgUTXhw" text="1..n" usesdiagramusefillcolor="1" font="Sans Serif,9,-1,5,50,0,0,0,0,0" linecolor="none" /> + <floatingtext usesdiagramfillcolor="1" width="84" x="188" fillcolor="none" y="439" linewidth="none" posttext="" role="710" height="20" usefillcolor="1" pretext="+" isinstance="0" xmi.id="gOw32o6xpmoj" text="valuesMap" usesdiagramusefillcolor="1" font="Sans Serif,9,-1,5,50,0,0,0,0,0" linecolor="none" /> + </assocwidget> + <assocwidget totalcounta="4" indexa="3" totalcountb="3" indexb="2" linewidth="none" widgetbid="32" widgetaid="186" xmi.id="200" type="510" linecolor="none" > + <linepath> + <startpoint startx="710" starty="187" /> + <endpoint endx="618" endy="350" /> + <point x="710" y="294" /> + <point x="618" y="294" /> + </linepath> + <floatingtext usesdiagramfillcolor="1" width="32" x="588" fillcolor="none" y="325" linewidth="none" posttext="" role="702" height="32" usefillcolor="1" pretext="" isinstance="0" xmi.id="sPeg9QPkuIN4" showstereotype="1" text="0..n" usesdiagramusefillcolor="1" font="Sans Serif,9,-1,5,50,0,0,0,0,0" linecolor="none" /> + <floatingtext usesdiagramfillcolor="1" width="96" x="622" fillcolor="none" y="329" linewidth="none" posttext="" role="710" height="20" usefillcolor="1" pretext="+" isinstance="0" xmi.id="7beBbK9Gg4Jg" text="components" usesdiagramusefillcolor="1" font="Sans Serif,9,-1,5,50,0,0,0,0,0" linecolor="none" /> + </assocwidget> + <assocwidget totalcounta="2" indexa="1" visibilityB="200" totalcountb="2" indexb="1" linewidth="none" widgetbid="31" widgetaid="204" roleBdoc="" documentation="" roleAdoc="" type="513" changeabilityA="900" changeabilityB="900" linecolor="none" visibilityA="200" > + <linepath> + <startpoint startx="833" starty="374" /> + <endpoint endx="793" endy="374" /> + </linepath> + </assocwidget> + <assocwidget totalcounta="2" indexa="1" totalcountb="5" indexb="4" linewidth="none" widgetbid="30" widgetaid="30" xmi.id="217" type="512" linecolor="none" > + <linepath> + <startpoint startx="238" starty="74" /> + <endpoint endx="238" endy="178" /> + <point x="130" y="70" /> + <point x="130" y="166" /> + </linepath> + <floatingtext usesdiagramfillcolor="1" width="32" x="204" fillcolor="none" y="45" linewidth="none" posttext="" role="701" height="32" usefillcolor="1" pretext="" isinstance="0" xmi.id="UuDOAaT1ZzG7" text="0..n" usesdiagramusefillcolor="1" font="Sans Serif,9,-1,5,50,0,0,0,0,0" linecolor="none" /> + <floatingtext usesdiagramfillcolor="1" width="32" x="207" fillcolor="none" y="176" linewidth="none" posttext="" role="702" height="32" usefillcolor="1" pretext="" isinstance="0" xmi.id="DSl0FbPNY39X" text="1" usesdiagramusefillcolor="1" font="Sans Serif,9,-1,5,50,0,0,0,0,0" linecolor="none" /> + <floatingtext usesdiagramfillcolor="1" width="54" x="183" fillcolor="none" y="73" linewidth="none" posttext="" role="709" height="20" usefillcolor="1" pretext="+" isinstance="0" xmi.id="q1YHYEBgpppO" text="childs" usesdiagramusefillcolor="1" font="Sans Serif,9,-1,5,50,0,0,0,0,0" linecolor="none" /> + <floatingtext usesdiagramfillcolor="1" width="60" x="176" fillcolor="none" y="156" linewidth="none" posttext="" role="710" height="20" usefillcolor="1" pretext="+" isinstance="0" xmi.id="7zem1xStL6XU" text="parent" usesdiagramusefillcolor="1" font="Sans Serif,9,-1,5,50,0,0,0,0,0" linecolor="none" /> + </assocwidget> + <assocwidget totalcounta="2" indexa="1" totalcountb="2" indexb="1" linewidth="none" widgetbid="58" widgetaid="30" xmi.id="233" type="501" linecolor="none" > + <linepath> + <startpoint startx="530" starty="94" /> + <endpoint endx="677" endy="94" /> + </linepath> + <floatingtext usesdiagramfillcolor="1" width="32" x="626" fillcolor="none" y="44" linewidth="none" posttext="" role="702" height="32" usefillcolor="1" pretext="" isinstance="0" xmi.id="X0y6zECBexBu" text="0..n" usesdiagramusefillcolor="1" font="Sans Serif,9,-1,5,50,0,0,0,0,0" linecolor="none" /> + <floatingtext usesdiagramfillcolor="1" width="89" x="592" fillcolor="none" y="101" linewidth="none" posttext="" role="710" height="20" usefillcolor="1" pretext="+" isinstance="0" xmi.id="zbOKgwm8ozXz" text="descriptors" usesdiagramusefillcolor="1" font="Sans Serif,9,-1,5,50,0,0,0,0,0" linecolor="none" /> + </assocwidget> + <assocwidget totalcounta="2" indexa="1" visibilityB="200" totalcountb="3" indexb="1" linewidth="none" widgetbid="30" widgetaid="DQlyKHw7rVUH" roleBdoc="" documentation="" roleAdoc="" type="513" changeabilityA="900" changeabilityB="900" linecolor="none" visibilityA="200" > + <linepath> + <startpoint startx="127" starty="46" /> + <endpoint endx="238" endy="46" /> + </linepath> + </assocwidget> + <assocwidget totalcounta="2" indexa="1" totalcountb="2" indexb="1" linewidth="none" widgetbid="31" widgetaid="32" xmi.id="B2zME5gw4DaC" type="512" linecolor="none" > + <linepath> + <startpoint startx="628" starty="372" /> + <endpoint endx="732" endy="372" /> + </linepath> + <floatingtext usesdiagramfillcolor="1" width="16" x="714" fillcolor="none" y="349" linewidth="none" posttext="" role="702" height="20" usefillcolor="1" pretext="" isinstance="0" xmi.id="xJwnyoRrSHi7" text="n" usesdiagramusefillcolor="1" font="Sans Serif,9,-1,5,50,0,0,0,0,0" linecolor="none" /> + </assocwidget> + <assocwidget totalcounta="4" indexa="2" totalcountb="2" indexb="1" linewidth="none" widgetbid="0pBuvPUWvg71" widgetaid="32" xmi.id="DS8SoqJnhmyf" type="510" linecolor="none" > + <linepath> + <startpoint startx="569" starty="382" /> + <endpoint endx="569" endy="510" /> + </linepath> + <floatingtext usesdiagramfillcolor="1" width="32" x="571" fillcolor="none" y="488" linewidth="none" posttext="" role="702" height="20" usefillcolor="1" pretext="" isinstance="0" xmi.id="vzMjDJMm2g5f" text="0..n" usesdiagramusefillcolor="1" font="Sans Serif,9,-1,5,50,0,0,0,0,0" linecolor="none" /> + </assocwidget> + <assocwidget totalcounta="4" indexa="3" totalcountb="2" indexb="1" linewidth="none" widgetbid="SANjhlRxGZ3W" widgetaid="32" xmi.id="8WjIhfF3OQKi" type="510" linecolor="none" > + <linepath> + <startpoint startx="612" starty="382" /> + <endpoint endx="613" endy="440" /> + </linepath> + <floatingtext usesdiagramfillcolor="1" width="32" x="615" fillcolor="none" y="418" linewidth="none" posttext="" role="702" height="20" usefillcolor="1" pretext="" isinstance="0" xmi.id="JKucthA1VDGq" text="0..n" usesdiagramusefillcolor="1" font="Sans Serif,9,-1,5,50,0,0,0,0,0" linecolor="none" /> + </assocwidget> + <assocwidget totalcounta="3" indexa="1" totalcountb="2" indexb="1" linewidth="none" widgetbid="I4mI36G7DZSn" widgetaid="35" xmi.id="jdf9In4cX0Dg" type="503" linecolor="none" > + <linepath> + <startpoint startx="59" starty="411" /> + <endpoint endx="59" endy="504" /> + </linepath> + <floatingtext usesdiagramfillcolor="1" width="32" x="61" fillcolor="none" y="482" linewidth="none" posttext="" role="702" height="20" usefillcolor="1" pretext="" isinstance="0" xmi.id="j0rDtIyYlJjG" text="0..1" usesdiagramusefillcolor="1" font="Sans Serif,9,-1,5,50,0,0,0,0,0" linecolor="none" /> + </assocwidget> + <assocwidget totalcounta="2" indexa="1" visibilityB="200" totalcountb="2" indexb="1" linewidth="none" widgetbid="GCOqzDx6ErUV" widgetaid="I4mI36G7DZSn" roleBdoc="" documentation="" roleAdoc="" type="513" changeabilityA="900" changeabilityB="900" linecolor="none" visibilityA="200" > + <linepath> + <startpoint startx="80" starty="536" /> + <endpoint endx="80" endy="549" /> + </linepath> + </assocwidget> + </associations> + </diagram> + <diagram snapgrid="0" showattsig="1" fillcolor="#ffffc0" linewidth="0" zoom="100" showgrid="0" showopsig="1" usefillcolor="1" snapx="10" canvaswidth="957" snapy="10" showatts="1" xmi.id="157" documentation="" type="1" showops="1" showpackage="0" name="v1" localid="900000" showstereotype="0" showscope="1" snapcsgrid="0" font="Sans Serif,9,-1,5,50,0,0,0,0,0" linecolor="#ff0000" canvasheight="576" > + <widgets> + <classwidget usesdiagramfillcolor="1" width="170" showattsigs="601" x="73" fillcolor="none" y="95" showopsigs="601" linewidth="none" height="32" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="34" showoperations="1" showpackage="0" showscope="1" usesdiagramusefillcolor="1" font="Sans Serif,9,-1,5,75,0,0,0,0,0" linecolor="none" /> + <classwidget usesdiagramfillcolor="1" width="313" showattsigs="601" x="264" fillcolor="none" y="176" showopsigs="601" linewidth="none" height="56" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="35" showoperations="1" showpackage="0" showscope="1" usesdiagramusefillcolor="1" font="Sans Serif,9,-1,5,75,0,0,0,0,0" linecolor="none" /> + <classwidget usesdiagramfillcolor="1" width="91" showattsigs="601" x="364" fillcolor="none" y="81" showopsigs="601" linewidth="none" height="32" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="32" showoperations="1" showpackage="0" showscope="1" usesdiagramusefillcolor="1" font="Sans Serif,9,-1,5,75,0,0,0,0,0" linecolor="none" /> + <notewidget usesdiagramfillcolor="1" width="340" x="137" fillcolor="none" y="219" linewidth="none" height="89" usefillcolor="1" isinstance="0" xmi.id="179" showstereotype="1" text="Chaque composant peut avoir un arbre de versions. Donc chaque exploration d'une EA doit préciser quelle version de chaque composant utiliser." usesdiagramusefillcolor="1" font="Sans Serif,9,-1,5,50,0,0,0,0,0" linecolor="none" /> + </widgets> + <messages/> + <associations> + <assocwidget totalcounta="2" indexa="1" totalcountb="2" indexb="1" linewidth="none" widgetbid="32" widgetaid="35" xmi.id="39" type="501" linecolor="none" > + <linepath> + <startpoint startx="448" starty="187" /> + <endpoint endx="448" endy="113" /> + <point x="448" y="187" /> + </linepath> + </assocwidget> + <assocwidget totalcounta="2" indexa="1" totalcountb="2" indexb="1" linewidth="none" widgetbid="32" widgetaid="34" xmi.id="171" type="510" linecolor="none" > + <linepath> + <startpoint startx="243" starty="109" /> + <endpoint endx="364" endy="109" /> + </linepath> + </assocwidget> + <assocwidget totalcounta="2" indexa="1" totalcountb="2" indexb="1" linewidth="none" widgetbid="35" widgetaid="34" xmi.id="174" type="510" linecolor="none" > + <linepath> + <startpoint startx="153" starty="127" /> + <endpoint endx="264" endy="190" /> + <point x="153" y="190" /> + </linepath> + </assocwidget> + </associations> + </diagram> + <diagram snapgrid="0" showattsig="1" fillcolor="#ffffc0" linewidth="0" zoom="100" showgrid="0" showopsig="1" usefillcolor="1" snapx="10" canvaswidth="957" snapy="10" showatts="1" xmi.id="177" documentation="" type="1" showops="1" showpackage="0" name="v2" localid="900000" showstereotype="0" showscope="1" snapcsgrid="0" font="Sans Serif,9,-1,5,50,0,0,0,0,0" linecolor="#ff0000" canvasheight="576" > + <widgets> + <classwidget usesdiagramfillcolor="1" width="170" showattsigs="601" x="73" fillcolor="none" y="179" showopsigs="601" linewidth="none" height="32" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="34" showoperations="1" showpackage="0" showscope="1" usesdiagramusefillcolor="1" font="Sans Serif,9,-1,5,75,0,0,0,0,0" linecolor="none" /> + <classwidget usesdiagramfillcolor="1" width="313" showattsigs="601" x="168" fillcolor="none" y="82" showopsigs="601" linewidth="none" height="56" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="35" showoperations="1" showpackage="0" showscope="1" usesdiagramusefillcolor="1" font="Sans Serif,9,-1,5,75,0,0,0,0,0" linecolor="none" /> + <classwidget usesdiagramfillcolor="1" width="91" showattsigs="601" x="347" fillcolor="none" y="163" showopsigs="601" linewidth="none" height="32" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="32" showoperations="1" showpackage="0" showscope="1" usesdiagramusefillcolor="1" font="Sans Serif,9,-1,5,75,0,0,0,0,0" linecolor="none" /> + <notewidget usesdiagramfillcolor="1" width="272" x="83" fillcolor="none" y="249" linewidth="none" height="80" usefillcolor="1" isinstance="0" xmi.id="178" showstereotype="1" text="Une version d'une EA a sa liste de composant qui est utilisée pour chaque exploration se référant à cette EA." usesdiagramusefillcolor="1" font="Sans Serif,9,-1,5,50,0,0,0,0,0" linecolor="none" /> + </widgets> + <messages/> + <associations> + <assocwidget totalcounta="2" indexa="1" totalcountb="2" indexb="1" linewidth="none" widgetbid="35" widgetaid="34" xmi.id="158" type="510" linecolor="none" > + <linepath> + <startpoint startx="243" starty="179" /> + <endpoint endx="243" endy="138" /> + </linepath> + <floatingtext usesdiagramfillcolor="1" width="32" x="158" fillcolor="none" y="142" linewidth="none" posttext="" role="702" height="32" usefillcolor="1" pretext="" isinstance="0" xmi.id="ufkidFh8FfDC" text="1..n" usesdiagramusefillcolor="1" font="Sans Serif,9,-1,5,50,0,0,0,0,0" linecolor="none" /> + <floatingtext usesdiagramfillcolor="1" width="95" x="43" fillcolor="none" y="140" linewidth="none" posttext="" role="710" height="20" usefillcolor="1" pretext="+" isinstance="0" xmi.id="WaF2eMZbxytb" text="explorations" usesdiagramusefillcolor="1" font="Sans Serif,9,-1,5,50,0,0,0,0,0" linecolor="none" /> + </assocwidget> + <assocwidget totalcounta="3" indexa="1" totalcountb="3" indexb="1" linewidth="none" widgetbid="32" widgetaid="34" xmi.id="122" type="501" linecolor="none" > + <linepath> + <startpoint startx="243" starty="181" /> + <endpoint endx="347" endy="181" /> + </linepath> + </assocwidget> + <assocwidget totalcounta="3" indexa="2" totalcountb="3" indexb="2" linewidth="none" widgetbid="32" widgetaid="34" xmi.id="161" type="510" linecolor="none" > + <linepath> + <startpoint startx="243" starty="195" /> + <endpoint endx="347" endy="195" /> + </linepath> + </assocwidget> + </associations> + </diagram> + </diagrams> + </XMI.extension> + </UML:Model> + <UML:Model stereotype="2" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="3" isRoot="false" isAbstract="false" name="Use Case View" > + <UML:Namespace.ownedElement> + <UML:Association isSpecification="false" visibility="public" namespace="3" xmi.id="45" name="" > + <UML:Association.connection> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="false" xmi.id="iQ9TfmZ7KZxU" aggregation="none" type="8KwjAV84slCS" name="" /> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="Vb2PTkfzhjy4" aggregation="none" type="42" name="" /> + </UML:Association.connection> + </UML:Association> + <UML:Association isSpecification="false" visibility="public" namespace="3" xmi.id="51" name="" > + <UML:Association.connection> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="false" xmi.id="kVZfSgY84fZh" aggregation="none" type="8KwjAV84slCS" name="" /> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="S9okilEBLHYm" aggregation="none" type="8KwjAV84slCS" name="" /> + </UML:Association.connection> + </UML:Association> + <UML:Association isSpecification="false" visibility="public" namespace="3" xmi.id="61" name="" > + <UML:Association.connection> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="false" xmi.id="1DkgwikeDJHe" aggregation="none" type="30" name="" /> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="zqk1VKjvTVf9" aggregation="none" type="58" name="" multiplicity="0..*" /> + </UML:Association.connection> + </UML:Association> + <UML:Association isSpecification="false" visibility="public" namespace="3" xmi.id="87" name="" > + <UML:Association.connection> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="false" xmi.id="HsKa7sK834my" aggregation="none" type="8KwjAV84slCS" name="" /> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="kWcwpuamiKnD" aggregation="none" type="74" name="" /> + </UML:Association.connection> + </UML:Association> + <UML:Dependency isSpecification="false" visibility="public" namespace="3" xmi.id="95" client="-1" name="<<includes>>" supplier="42" /> + <UML:Association isSpecification="false" visibility="public" namespace="3" xmi.id="126" name="" > + <UML:Association.connection> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="false" xmi.id="cW952mEHeWpl" aggregation="none" type="8KwjAV84slCS" name="" /> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="M9rQCdMw9ysw" aggregation="none" type="125" name="" /> + </UML:Association.connection> + </UML:Association> + <UML:Association isSpecification="false" visibility="public" namespace="3" xmi.id="135" name="" > + <UML:Association.connection> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="false" xmi.id="qQiYjWkL2rP2" aggregation="none" type="125" name="" /> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="dbJG881SGrqS" aggregation="none" type="8KwjAV84slCS" name="" /> + </UML:Association.connection> + </UML:Association> + <UML:Association isSpecification="false" visibility="public" namespace="3" xmi.id="141" name="" > + <UML:Association.connection> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="false" xmi.id="UCMc9FYxfFUM" aggregation="none" type="125" name="" /> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="lEil55ogg5wm" aggregation="none" type="74" name="" /> + </UML:Association.connection> + </UML:Association> + <UML:Association isSpecification="false" visibility="public" namespace="3" xmi.id="144" name="" > + <UML:Association.connection> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="false" xmi.id="CwFQn3sHGCrN" aggregation="none" type="125" name="" /> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="ROK5doRO2775" aggregation="none" type="8KwjAV84slCS" name="" /> + </UML:Association.connection> + </UML:Association> + <UML:Association isSpecification="false" visibility="public" namespace="3" xmi.id="147" name="" > + <UML:Association.connection> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="false" xmi.id="Ctmtzgd9csZP" aggregation="none" type="125" name="" /> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="uPfAbUX1sp6V" aggregation="none" type="42" name="" /> + </UML:Association.connection> + </UML:Association> + </UML:Namespace.ownedElement> + </UML:Model> + <UML:Model stereotype="2" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="4" isRoot="false" isAbstract="false" name="Component View" > + <UML:Namespace.ownedElement> + <UML:Component executable="0" isSpecification="false" isLeaf="false" visibility="public" namespace="4" xmi.id="vzxggfzIe8bb" isRoot="false" isAbstract="false" name="nouveau_composant" /> + </UML:Namespace.ownedElement> + </UML:Model> + <UML:Model stereotype="2" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="5" isRoot="false" isAbstract="false" name="Deployment View" > + <UML:Namespace.ownedElement/> + </UML:Model> + <UML:Model stereotype="2" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="6" isRoot="false" isAbstract="false" name="Entity Relationship Model" > + <UML:Namespace.ownedElement/> + </UML:Model> + </UML:Namespace.ownedElement> + </UML:Model> + </XMI.content> + <XMI.extensions xmi.extender="umbrello" > + <docsettings viewid="9" documentation="" uniqueid="GCOqzDx6ErUV" /> + <listview> + <listitem open="1" type="800" label="Vues" > + <listitem open="1" type="801" id="1" > + <listitem open="0" type="807" id="9" label="diagramme de classes" /> + <listitem open="0" type="807" id="157" label="v1" /> + <listitem open="0" type="807" id="177" label="v2" /> + <listitem open="1" type="813" id="156" /> + <listitem open="1" type="813" id="SANjhlRxGZ3W" > + <listitem open="0" type="814" id="lZfoWZ2BKBPT" /> + <listitem open="0" type="814" id="UHYhe0GPL1w1" /> + </listitem> + <listitem open="0" type="813" id="32" /> + <listitem open="0" type="813" id="86" > + <listitem open="0" type="814" id="154" /> + <listitem open="0" type="814" id="155" /> + </listitem> + <listitem open="1" type="813" id="183" > + <listitem open="0" type="814" id="184" /> + </listitem> + <listitem open="0" type="813" id="58" > + <listitem open="0" type="814" id="59" /> + <listitem open="0" type="814" id="60" /> + </listitem> + <listitem open="1" type="813" id="34" /> + <listitem open="1" type="813" id="35" > + <listitem open="0" type="815" id="205" /> + <listitem open="0" type="815" id="sDZBZ5ClNq0L" /> + </listitem> + <listitem open="0" type="813" id="96" > + <listitem open="0" type="814" id="97" /> + <listitem open="0" type="814" id="98" /> + <listitem open="0" type="814" id="99" /> + </listitem> + <listitem open="1" type="813" id="33" /> + <listitem open="1" type="813" id="25" /> + <listitem open="1" type="813" id="31" /> + <listitem open="1" type="813" id="30" > + <listitem open="0" type="814" id="48" /> + <listitem open="0" type="814" id="OQwmRjL3VZFG" /> + <listitem open="0" type="814" id="50" /> + <listitem open="0" type="814" id="52" /> + <listitem open="0" type="814" id="53" /> + <listitem open="0" type="814" id="55" /> + <listitem open="0" type="814" id="56" /> + <listitem open="0" type="814" id="57" /> + <listitem open="0" type="814" id="70" /> + <listitem open="0" type="815" id="212" /> + <listitem open="0" type="815" id="228" /> + <listitem open="0" type="815" id="230" /> + </listitem> + <listitem open="1" type="813" id="185" /> + <listitem open="1" type="813" id="151" /> + <listitem open="1" type="813" id="186" /> + <listitem open="1" type="813" id="I4mI36G7DZSn" /> + <listitem open="1" type="813" id="23" /> + <listitem open="1" type="813" id="24" /> + <listitem open="1" type="813" id="49" /> + <listitem open="1" type="813" id="153" /> + <listitem open="1" type="813" id="231" /> + <listitem open="1" type="813" id="149" /> + <listitem open="1" type="817" id="0pBuvPUWvg71" /> + <listitem open="0" type="830" id="8" > + <listitem open="1" type="829" id="13" /> + <listitem open="1" type="829" id="12" /> + <listitem open="1" type="829" id="15" /> + <listitem open="1" type="829" id="14" /> + <listitem open="1" type="829" id="10" /> + <listitem open="1" type="829" id="17" /> + <listitem open="1" type="829" id="16" /> + <listitem open="1" type="829" id="21" /> + <listitem open="0" type="829" id="8KwjAV84slCS" /> + <listitem open="1" type="829" id="18" /> + <listitem open="1" type="829" id="20" /> + <listitem open="1" type="829" id="19" /> + </listitem> + </listitem> + <listitem open="1" type="802" id="3" /> + <listitem open="1" type="821" id="4" > + <listitem open="1" type="822" id="vzxggfzIe8bb" /> + </listitem> + <listitem open="1" type="827" id="5" /> + <listitem open="1" type="836" id="6" /> + </listitem> + </listview> + <codegeneration> + <codegenerator language="Java" /> + </codegeneration> + </XMI.extensions> +</XMI>