Académique Documents
Professionnel Documents
Culture Documents
M E MO I R E D E ST A GE
Maître de stage
Michel Wrzesien - Team Leader Web Development
Selligent Corporate
Etudiant
Rémy Liscia - Informatique 2ème année
1.2-L’entreprise : Selligent
Selligent est un éditeur de logiciels destinés aux moyennes entreprises.
Cette société Wallonne créée en 1990 compte aujourd’hui des filiales en
Allemagne, au Canada et en France. Ses partenaires de distribution
couvrent toute la planète : Europe, Asie, Amérique du Nord, Golfe et
Afrique du Nord. Les logiciels qu’elle édite sont des logiciels de CRM
(Customer Relationship Management, en français GRC : Gestion de la
Relation Clientèle).
Les 45 employés du siège à Charleroi sont en charge de la R&D (recherche
et développement), des contrôles qualité (tests), du help desk (assistance
clientèle), du marketing et de l’administration.
Employant 90 personnes dans tout le groupe (principalement des
commerciaux et des intégrateurs, qui vendent, personnalisent et installent
Rémy Liscia 5
Intégration d’un outil de surveillance à un logiciel existant - Le contexte du stage
1.3-L’activité : la CRM
Aussi appelée Gestion de la Relation Clientèle (GRC), la CRM permet aux
entreprises de mettre en avant les relations qu’elles ont avec leurs clients,
relations axées sur le cycle prospection, vente, maintenance et relance.
1.4.1-Philosophie de Selligent
Les logiciels proposés par Selligent répondent à une philosophie global
and local. Ceci signifie que les développeurs de Selligent fournissent une
application de base très complète mais entièrement personnalisable
(fonctionnel et design) et à laquelle peuvent s’ajouter des composants
programmés supplémentaires, adaptés à l’activité de l’utilisateur. La
personnalisation de l’application et l’ajout de nouvelles fonctionnalités sont
effectués soit par l’entreprise utilisatrice (administrateurs, services
informatiques, etc), soit par des intégrateurs et consultants partenaires ou
employés de Selligent.
Intégration d’un outil de surveillance à un logiciel existant - Le contexte du stage
2.1-Présentation
Selligent Xi for Web est un logiciel multi utilisateurs, très convivial,
utilisable par un navigateur Web, entièrement sécurisé, ce qui permet une
utilisation à distance.
Ce logiciel est très complet mais il est possible d’ajouter de nombreuses
fonctionnalités en fonction des besoins de chaque entreprise utilisatrice.
2.2-Fonctionnalités CRM
Voici les fonctionnalités CRM offertes par le logiciel :
-informatisation des forces de ventes (itinérantes et/ou sédentaires) :
gestion des processus commerciaux (plannings, publipostage, outils de
prévisions).
-informations marketing :
gestion de campagnes de publicité, identification de profils de
consommateurs, télémarketing, outils d’analyse pour déterminer les
retombées des opérations précédentes.
-gestion des services aux clients :
gestion des garanties et des contrats, du service après-vente, de la
maintenance, des réclamations.
2.3-Technologies utilisées
Rémy Liscia 9
Intégration d’un outil de surveillance à un logiciel existant - Logiciel Selligent Xi for Web
2.3.2-Architecture .NET
Suite à l’abandon des technologies COM, .NET a été adopté par Selligent.
L’appellation .NET est imprécise car il s’agit en réalité d’un label que
Microsoft attache à plusieurs de ses technologies.
Evoquons les principales :
2.3.2.1-Framework .NET
framework .NET), le choix entre les langages est donc effectué en fonction
des goûts et habitudes du développeur, et non plus imposé par des
contraintes d’implémentation.
2.3.2.4-.NET à Selligent
2.3.3-Programmation avec C#
Le langage adopté par Selligent pour la programmation des services .NET
est C#.
Il s’agit d’un langage de programmation conçu par Microsoft. Il est
fortement inspiré de C++ et Java. Microsoft présente C# comme suit :
“C# est un langage de programmation simple, moderne et objet orienté
dérivé de C et de C++. C# est fermement enraciné dans la famille des
langages C et C++. C# vise à combiner la productivité élevée de Visual
Basic et la force brute de C++.”
Intégration d’un outil de surveillance à un logiciel existant - Logiciel Selligent Xi for Web
2.3.5.1-Présentation
Fin 2002, les développeurs de Selligent ont migré vers les nouvelles
techniques offertes par le framework .NET de Microsoft. Comme évoqué
plus haut, C++ a été délaissé au profit de C# et ASP.NET va remplacer
ASP. Par contre, il n’est pas à l’ordre du jour de transformer les anciens
composants COM et pages ASP à la technologie .NET, les changements
étant beaucoup trop importants et coûteux.
L’architecture du logiciel Selligent Xi for Web, baptisée en interne Selligent
.NET, est un modèle n-tiers : client, serveur multicouches et données,
dont voici un schéma récapitulatif :
Intégration d’un outil de surveillance à un logiciel existant - Logiciel Selligent Xi for Web
2.3.5.2-Client
personnel (PDA). Côté client, les technologies mises en oeuvre sont HTML,
CSS, XSLT, JavaScript et VBScript.
2.3.5.3-Serveur
Côté serveur, on distingue les user scripts des business scripts. Les
premiers concernent l’interfaçage utilisateur avec les pages ASP et
ASP.NET hébergées sur un serveur Microsoft IIS. Les business scripts sont
les composants COM et les services .NET utilisés par l’application et
appelés par les pages ASP et ASP.NET. Actuellement, environ 10% des
business scripts sont des services .NET mais cette proportion est appelée
à croître.
Les business scripts peuvent être décomposés en facade, business et data
objects. Les premiers transforment les informations à transmettre aux
user scripts ; les business objects sont chargés des opérations évoluées
du logiciel ; les data objects s’occupent de l’accès et de la récupération
des données.
2.3.5.4-Données
Les données sont stockées dans des bases de données gérées par
Microsoft SQL Server ou Oracle. Les bases de données utilisées par le
logiciel Selligent Xi for Web contiennent un maximum d’informations : en
plus des tables contenant les données “classiques” (tables sur les sociétés,
les accès, les personnes, etc), les bases de données contiennent les
propriétés des champs de formulaires, la mise en forme graphique et
toute autre information personnalisable pour les utilisateurs.
Les queries SQL au moteur de bases de données sont par conséquent très
nombreuses. Or, chaque query a un coût qui n’est pas négligeable. Pour
limiter le nombre de queries, les développeurs de Selligent ont mis au
point deux techniques :
La première, appelée “object pooling”, consiste à récupérer lors du
démarrage de l’application toutes les données lentes à charger et à traiter,
par exemple, les informations concernant l’interface. Cette fonctionnalité
utilise environ 150 queries. Ces données sont chargées une seule fois puis
mémorisées et tous les utilisateurs vont récupérer ces informations
Intégration d’un outil de surveillance à un logiciel existant - Logiciel Selligent Xi for Web
2.3.5.5-Usage du XML
2.3.5.6-Sessions
2.3.5.7-Interopérabilité
2.4-Conclusion
Grâce à ces choix techniques, le logiciel Selligent Xi for Web remplit les
critères de qualité suivants : performance, fonctionnalité, flexibilité et
facilité de mise en oeuvre.
Intégration d’un outil de surveillance à un logiciel existant - Description du projet
3-Description du projet
3.1-Contrat
Selligent a l’habitude de recevoir des stagiaires et leur confie dans tous les
cas un travail réel et pas un cas de programmation d’école qui ne servirait
jamais à autre chose qu’à la soutenance du mémoire de stage.
Il m’a donc été confié un projet nommé en interne “trace”. Ce projet
devait être impérativement terminé à la fin de mon stage car il devait être
intégré à la version 6.10.400 du logiciel mise sur le marché fin juin.
J’ai pu travailler durant tout le stage avec de nombreuses personnes qui
m’ont guidé dans l’analyse et la conception de cet outil.
3.2-Présentation
Le projet qui m’a été attribué durant le stage est la conception d’un outil
de trace. Il s’agit d’une fonctionnalité ajoutée au logiciel Selligent Xi for
Web. Ce composant existe déjà dans le logiciel Selligent Xi for Windows et
son absence dans la version Web mécontentait les clients.
3.3-Fonctionnalités
L'instrumentation de trace permet aux développeurs et aux
administrateurs de surveiller la santé de Selligent Xi for Web fonctionnant
dans des conditions réelles (par opposition à une exécution dans un
débogueur). Parfois, l'utilisation d'un débogueur peut cacher des bogues
et masquer des problèmes de performance et de threads. Le traçage est
un outil de surveillance et de résolution de problèmes très important pour
cette application qui est distribuée multicouches. Les applications de ce
genre contiennent souvent des problèmes que l’on ne peut observer que
lorsque le logiciel est sous une lourde charge et dans les conditions
aléatoires inhérentes à un environnement réel.
3.4-Utilisateurs
En conjuguant des fonctions d’optimisation, de monitoring, d’audit, de
configuration, de détection des anomalies, cet outil répond aux attentes
Rémy Liscia 18
Intégration d’un outil de surveillance à un logiciel existant - Description du projet
3.5-Fonctionnement détaillé
Le mécanisme de trace récupère les événements (exceptions…) provoqués
par le logiciel ainsi que les queries SQL générées par le logiciel lors des
appels aux bases de données. Toutes ces informations sont triées puis
sauvegardées dans des fichiers.
On distingue deux mécanismes de trace, répondant à des besoins
différents :
-il y a la trace globale qui est lancée par l’administrateur depuis un
outil de configuration. Cette trace récupère toutes les informations
et queries SQL générées par le logiciel, quelques soient les
utilisateurs qui en sont à l’origine (certaines queries sont
anonymes).
-il y a la trace utilisateur qui est soit lancée par l’administrateur
depuis un outil de configuration soit par l’utilisateur lui-même
depuis son interface. Cette trace récupère toutes les informations et
queries SQL générées par l’utilisateur précisé. Ce dernier pourra
afficher dans son interface toute la trace qui a été récupérée.
A terme, ces fonctionnalités seront reprises dans un outil de monitoring
qui effectuera d’autres opérations. Il s’agit donc de concevoir des
composants réutilisables.
Intégration d’un outil de surveillance à un logiciel existant - Etapes du projet
4-Etapes du projet
4.1-Documentation
Lors de mon arrivée, je ne connaissais pas l’entreprise, ni les logiciels
qu’elle publiait. Quelques visites sur leur site Web m’avaient donné une
petite idée de leur activité (la CRM) mais ça restait très flou pour moi. Dès
mon arrivée à Selligent, j’ai donc été informé par plusieurs personnes
(Walter Tricknot, Pascal Evrard) des technologies utilisées, des logiciels
édités et du projet qui allait m’être confié.
En plus de plusieurs réunions d’information, j’ai dû pousser mes
connaissances par moi-même en me documentant sur divers ouvrages
(anglophones). Cette documentation consista d’abord par l’étude des
fonctionnalités des logiciels de Selligent (fonctions CRM), des technologies
utilisées par ces logiciels (COM, DNA, .NET), de l’architecture complexe du
logiciel Selligent Xi for Web et enfin par l’apprentissage du langage C# qui
était nécessaire pour les développements ultérieurs.
Souvent ennuyeuse et harassante, je tire tout de même un bilan positif de
cette période de documentation. L’apprentissage de toutes ces
technologies m’a énormément apporté, au même titre qu’un
enseignement à l’IUT. La bonne maîtrise (ou au moins la compréhension)
de ces techniques s’est révélée payante pour la suite. J’ai vraiment eu le
sentiment d’avoir appris des concepts très importants dans l’informatique
d’aujourd’hui.
Quant à l’étude d’un nouveau langage de programmation, je
l’appréhendais grandement. A tort car C# est un langage proche de C++
que je maîtrisais bien et de Java dont j’avais eu une initiation à l’IUT. La
syntaxe et les mécanismes du langage ne me posèrent donc pas beaucoup
de problèmes, à l’inverse des concepts propres au framework .NET
(remoting, services Web, graphisme, etc) que je laissais finalement de
côté.
Il m’a fallu deux semaines pour me mettre au niveau que l’on me
demandait.
Rémy Liscia 20
Intégration d’un outil de surveillance à un logiciel existant - Etapes du projet
4.2-Analyse
L’analyse était un passage obligé dans ce projet que j’appréhendais
énormément en raison de l’aperçu que j’en ai eu à l’IUT. J’ai vite changé
d’opinion.
L’équipe des quatre analystes est fortement liée aux développeurs. Ils
prennent des décisions techniques et fonctionnelles ensemble par le biais
de très fréquentes réunions.
Walter Tricknot et Jenny Migliore m’ont encadré pour l’analyse du projet
de trace. Ils m’ont d’abord présenté leur travail, avec l’appui de nombreux
exemples. Ils utilisent comme méthode d’analyse OMT (Object Modeling
Technique) qui est antérieure à UML mais tout de même orientée objet.
Malgré son universalité, ils reprochent à UML de ne proposer qu’une
syntaxe, sans aucune méthode d’analyse clairement spécifiée. Les
méthodes existantes basées sur UML ne répondent pas aux besoins de
Selligent : Rational Rose et d’autres méthodologies basées sur UML ont
été testées par le passé mais aucune ne s’est révélée satisfaisante. Ces
méthodes, très complètes, prenaient énormément de temps et la
rédaction des documents d’analyse finissait par être plus longue que le
développement à proprement parler.
C’est pourquoi Selligent a adopté OMT qui permet de couvrir l'ensemble
des processus d'analyse et de conception en utilisant le même formalisme.
L'analyse repose sur trois points de vue : statique, dynamique et
fonctionnel.
En pratique, il m’a d’abord fallu rédiger un document texte qui énonçait
les besoins liés à ce projet (cf. documents d’analyse en annexe).
La modélisation statique qui suivait consistait à identifier et à documenter
les classes au format texte. Ensuite, il a fallu réaliser un diagramme de
classes reprenant ces informations et qui présente l’ensemble des classes
du système d’information et des liaisons entre ces classes.
Les diagrammes sont réalisés à Selligent grâce à Visio, produit Microsoft
de la suite Office qui fournit des outils visuels.
La modélisation dynamique est composée des principaux scénarios de
séquences au format texte et sous la forme de diagrammes. Il s’agit là
d’identifier toutes les principales séquences d’événements. Les
Intégration d’un outil de surveillance à un logiciel existant - Etapes du projet
4.3-Développement
4.3.1-Langage et environnement
Depuis quelques mois, tous les nouveaux développements de Selligent
sont effectués en C#. Le passage à ce langage ne s’est pas fait sans âpres
discussions. Pour ma part, je n’ai vu que des avantages à C#. J’ai
vraiment eu le sentiment d’utiliser un langage de programmation plus
clair, plus intuitif, moins complexe que C++, que j’avais appris à l’IUT.
Cela dit, à de plus hauts niveaux de programmation, certains
développeurs de Selligent affirment que C++ était un langage bien plus
puissant. Voici leurs arguments :
-L’héritage multiple de classes, permis en C++, n’est pas autorisé en C#.
-Les pointeurs sont automatiques en C#. Leur utilisation est masquée, ce
qui a pour conséquence que l’on ne se rend pas toujours compte de ce
que l’on fait.
-Autre absence dans C# : les templates (patrons) qui apportaient
beaucoup de puissance.
-La copie de code dans le fichier binaire (mot-clé include) n’a pas
d’équivalent en C#. Elle est remplacée par l’ajout de références.
-On trouve en Visual C++ des macros, absentes en C#.
Revoici ces arguments discutés par les adeptes de C# à Selligent :
L’impossibilité en C# d’utiliser l’héritage multiple, de manipuler les
pointeurs encourage une programmation plus intuitive et un code plus
lisible. Le remplacement de la copie de code par l’ajout de référence réduit
la redondance de code binaire et allège les fichiers dll et exe.
Le problème des templates peut être contourné par la dérivation entre
plusieurs dll. Les macros sont des lourdeurs évitables impossibles à
déboguer.
De plus, il existe une multitude de types en C++ (par exemple, 20 types
pour des chaînes de caractères en C++ contre 2 en C#) ce qui rend le
code encore plus opaque.
En outre, pour utiliser COM, il a été ajouté à C++ une couche ATL qui
imposait beaucoup de limitations et qui ne permettait donc pas au final
d’exploiter au mieux C++.
Intégration d’un outil de surveillance à un logiciel existant - Etapes du projet
4.3.4-Interface utilisateur
J’ai ensuite eu l’opportunité de découvrir le côté visuel du logiciel.
Selligent Xi for Web possède un outil de configuration accessible, comme
le reste de l’application, depuis un navigateur Web. Il me fallait procéder à
une modification de certaines pages de cet outil de configuration afin que
la trace puisse être activée, désactivée et configurée depuis cet outil. J’ai
Intégration d’un outil de surveillance à un logiciel existant - Etapes du projet
4.4-Tests
Tout au long du développement, je faisais subir à mon application toutes
sortes de tests. Cependant, durant la plus grande partie du
développement, seules les classes de démarrage du logiciel envoyaient
des messages au mécanisme de trace ; bien que ces classes envoient
jusqu’à 12 messages par seconde pendant quelques secondes (surtout des
queries SQL) et que la trace fonctionnait sans problème, je ne peux
prétendre avoir testé la trace dans des conditions réelles d’utilisation.
J’aurais peut-être l’occasion de réaliser des tests plus sérieux avant la fin
du stage.
Il faut cependant savoir que seuls les tests unitaires et d’intégration sont
à la charge des développeurs de Selligent, étant donné qu’un département
Intégration d’un outil de surveillance à un logiciel existant - Etapes du projet
4.5-Récapitulatif
Avec en moyenne deux réunions hebdomadaires avec l’informaticien qui
supervisait mon stage (analyste ou développeur), je pouvais avancer
efficacement en pouvant rectifier le tir si je partais dans la mauvaise
direction. C’était aussi l’occasion pour moi de demander plus
d’informations sur les concepts complexes que j’avais eu à affronter.
J’ai également assisté à quelques réunions de toute l’équipe de R&D qui
m’ont fait apparaître comment une vingtaine d’informaticiens parviennent
à travailler ensemble.
Les dix semaines du stage se sont réparties ainsi :
Deux semaines de documentation, deux semaines d’analyse et cinq
semaines de développement, avec très souvent des interactions entre les
trois : la documentation n’a pas cessé durant le développement et
l’analyse a été peaufinée tout au long du projet.
La dernière semaine du stage verra probablement la finalisation du projet
Intégration d’un outil de surveillance à un logiciel existant - Le bilan du stage
5.1-Bilan du projet
Au tout début du stage, lorsque j’ai réalisé l’étendue de ce qui
m’attendait, en plus du “simple” développement de mon projet, à savoir la
compréhension des technologies mises en oeuvre et que j’aurais à utiliser,
je fus effrayé car cela me paraissait aussi indigeste qu’impossible à
assimiler par soi-même en si peu de temps. Puis vinrent la lecture des
ouvrages et les explications promulguées par les informaticiens de
Selligent. Là, la documentation ne fut pas vraiment source d’ennuis mais
avais-je bien compris tous ces concepts ? Enfin, le développement me fit
apparaître les lacunes que j’avais, les points de la documentation que
j’avais négligés ou mal interprétés et je dus donc me replonger dans les
livres.
Les conclusions que je tire de cette auto apprentissage sont que le plus
important est de ne pas hésiter à affronter la complexité, quitte à
questionner ensuite le maître de stage ou un professeur ou encore à aller
chercher des compléments d’information sur Internet. Savoir affronter
l’inconnu pour le maîtriser me semble primordial dans ce métier.
En outre, la réalisation du projet m’a apporté de nouvelles connaissances
techniques. Il me semble que, sans pour autant les maîtriser totalement,
ma compréhension du principe des technologies .NET de Microsoft est un
atout majeur car il s’agit vraisemblablement de méthodes de
développement d’avenir.
Enfin, la conduite d’un projet concret et dont la finalité est d’être utilisée
dans des cas de production réels est extrêmement motivant et valorisant.
Rémy Liscia 31
Intégration d’un outil de surveillance à un logiciel existant - Le bilan du stage
Annexes
Glossaire
ASP et ASP.NET (Active Server Pages)
Langages Microsoft de programmation Web qui proposent une
dynamicité côté serveur et qui permettent de créer de puissantes
applications Internet.
C# (prononcer “see sharp”)
Langage de programmation récent (certifié ISO en avril 2003) créé
par Microsoft pour son framework .NET. Il reprend les points positifs
de C++ et de Java.
C++
Langage de programmation conçu en 1982 qui reprend le langage C
en y ajoutant principalement les possibilités de la programmation
“orientée objet”.
COM (Component Object Model)
Modèle d’objets et ensemble de règles programmatiques,
permettant aux objets (composants) d’interagir les uns avec les
autres par le truchement d’interfaces. On parle de norme binaire à
propos de COM car cette spécification concerne la réutilisation du
code machine.
CRM ou GRC (Customer Relationship Management, en français : Gestion
de la Relation Clientèle)
Ensemble de méthodes qui permettent aux entreprises de mettre
en avant les relations qu’elles ont avec leurs clients, relations axées
sur le cycle prospection, vente, maintenance et relance.
DNA (Distributed interNet Applications Architecture)
Architecture tripartie basée sur COM et destinée à faciliter la
création d’applications Windows distribuées.
IIS (Internet Information Server)
Serveur (de Microsoft) réseau ou Web de fichiers et d’applications,
compatible avec de nombreux protocoles.
Rémy Liscia 34
Intégration d’un outil de surveillance à un logiciel existant - Annexes
Interopérabilité
Capacité des applications, des composants… à coopérer en se
passant des données, en appelant les méthodes des uns ou des
autres, etc.
Logiciel à base de composants
Logiciel dont les fonctionnalités sont réparties sur une multitude de
composants COM capables d’interagir.
OMT (Object Modeling Technique)
Méthode d’analyse orientée objet qui a pour principal atout
d’indiquer clairement la marche à suivre.
Query SQL (en français : requête SQL)
Opération qui consiste à extraire d'une table (d'une base de
données) tout ou partie des éléments qui s'y trouvent.
R&D (Recherche et Développement)
Dans le cas d’une entreprise informatique, département chargé de
la recherche et de l’exploitation de nouvelles technologies, ainsi que
de la production logicielle.
Selligent
Société basée à Gosselies près de Charleroi (Belgique), éditeur de
logiciels de CRM.
Selligent.NET
Technologie serveur mise en oeuvre pour le logiciel Selligent Xi for
Web, basée sur les technologies ASP.NET et C#.
Selligent Xi
Gamme de produits logiciels commercialisés par Selligent.
Comprend une version Windows et une version Web.
Selligent Xi for Web
Produit phare de Selligent. Basé sur une architecture distribuée à
client léger. La version 7.0 est prévue pour l’été 2003.
SOAP (Simple Object Access Protocol)
Protocole d’échange d’information dans un environnement distribué.
Il est basé sur XML.
SQL (Structured Query Language)
Langage de définition, de manipulation et de contrôle des données
utilisé pour les bases de données relationnelles.
Intégration d’un outil de surveillance à un logiciel existant - Annexes
SQL Server
Système de gestion de bases de données de Microsoft.
UML (Unified Modeling Language)
Notation permettant de modéliser un problème de façon standard.
XML (eXtensible Markup Language)
Langage standard de description des données (alors que HTML est
un langage de représentation des données).
XSLT (eXtensible Stylesheet Language Transformations)
Langage de transformation de documents XML en autres documents
(de type XML, HTML, texte, RTF, etc).
Bibliographie
Ouvrages
Designing for scalability with Microsoft Windows DNA (Microsoft
programming series – Sten and Per Sundblad)
Au coeur de COM+ (Microsoft press – Guy et Henry Eddon)
C# and the .NET Platform (Apress – Andrew Troelsen)
OMT – Modélisation et conception orientée objet (Masson – James
Rumbaugh)
OOP in .NET (U2U - Win Uyttersprot)
Advanced .NET Remoting (Apress – Ingo Rammer)
Documents numériques
MSDN for Visual Studio.NET et http://msdn.microsoft.com
http://www.selligent.com et documentation à usage interne
http://www.bvamyfra.fr
http://www.dotnet-fr.org
http://dotnet.developpez.com
http://www.dotnetguru.org
Intégration d’un outil de surveillance à un logiciel existant - Annexes
Chronologie du stage
Lundi 14 avril 2003 avec Walter Tricknot : présentation des logiciels
Selligent Xi, des architectures.
Début de la documentation
Jeudi 17 avril 2003 avec Walter Tricknot, Jenny Migliore, Laurent De
Greef pour faire le point sur mes travaux de documentation et pour
discuter du projet SQLTrace ; Cette réunion fait apparaître que l’idée de
départ concernant le projet ne pourra être réalisée car l’architecture du
logiciel “Selligent Xi for Web” ne le permet pas (il est possible d’identifier
le client (côté client) et de tracer les requêtes SQL (côté base de données)
mais cela risque d’être trop lourd par rapport à l’application).
Mardi 22 avril 2003 avec Walter Tricknot, Laurent De Greef, Pascal
Evrard, Paula Gonzaga de Sa, Jenny Migliore : réévaluation du projet
SQLTrace et prises de décisions techniques et fonctionnelles: SQLTrace
devient Trace (fonctions étendues).
Mercredi 23 avril 2003 avec Pascal Evrard pour une explication détaillée
de la réunion de la veille.
Vendredi 25 avril 2003 avec Pascal Evrard pour définir le projet d’un
point de vue et mettre en évidence les questions importantes.
Lundi 28 avril 2003 avec toute l’équipe R&D (22 personnes) pour une
réunion de mise au point globale au retour de congés du directeur du
département R&D.
Lundi 28 avril 2003 avec Walter Tricknot et Jenny Migliore pour parler
analyse : ils m’ont présenté leur méthode d’analyse, il s’agit d’OMT, une
méthode antérieure à UML mais qu’ils préfèrent car elle indique plus
clairement la marche à suivre.
Début de l’analyse
Mardi 6 mai 2003 avec Walter Tricknot, Jenny Migliore et Pascal Evrard
pour faire le point sur l’analyse et affiner le projet.
Vendredi 9 mai 2003 avec Pascal Evrard pour déterminer comment
débuter la programmation.
Début de la programmation
Lundi 12 mai 2003 : appel de l’IUT représenté par Monsieur Barrios.
Intégration d’un outil de surveillance à un logiciel existant - Annexes
Brochure de publicité
Voir dernière page
Projet Trace – Analyse
Étape 1 : énoncé
LE BESOIN GLOBAL
Trop souvent, les développeurs de Selligent perdent du temps en essayant en
vain de localiser l’origine d’anomalies ; il en est de même pour le help desk qui
doit souvent essayer de comprendre des problèmes, exposés à distance,
rencontrés par des utilisateurs ou des intégrateurs ; les administrateurs de
systèmes sur lesquels le logiciel Selligent ne fonctionne pas parfaitement (par
exemple : ralentissement du système) ne parviennent pas à déterminer
précisément l’origine de cette anomalie ; ces mêmes administrateurs qui
souhaitent effectuer des contrôles (de sécurité) ou des statistiques d’utilisation
n’en ont pas les moyens ; les consultants chargés de configurer et de
personnaliser le logiciel chez le client souhaitent connaître la localisation des
informations dans la base de données, l’ordre d’exécution, le principe de
fonctionnement… Actuellement, aucun outil ne répond aux attentes de tous ces
acteurs primordiaux et dont le logiciel Selligent ne saurait se passer.
Il convient donc d’élaborer un outil qui puisse améliorer les conditions de travail
de tous.
Ainsi, cet outil devra faciliter l’optimisation de l’application, le monitoring, l’audit,
la configuration, la détection et la résolution des anomalies.
Analyse – page 39
Souvent, de simples queries à la base de données suffisent à ralentir de manière
conséquente toute l’application. Il est donc nécessaire de pouvoir connaître
quelles sont les queries SQL les plus lourdes.
“ces mêmes administrateurs qui souhaitent effectuer des contrôles (de sécurité)
ou des statistiques d’utilisation n’en ont pas les moyens”
De multiples opérations d’audit peuvent être décidées par les administrateurs ; il
peut s’agir de contrôles de sécurité (par exemple : déterminer les tentatives de
connexion échouées afin de savoir s’il y a des essais de piratage), ou de
statistiques par exemple : savoir qui se connecte le plus).
“les consultants chargés de configurer et de personnaliser le logiciel chez le client
souhaitent connaître la localisation des informations dans la base de données,
l’ordre d’exécution, le principe de fonctionnement”
La personnalisation du logiciel passe parfois par l’ajout de nouveaux composants.
La conception de ces composants est effectuée par des personnes externes à
l’équipe de R&D (des consultants, des intégrateurs) qui n’ont pas forcément une
juste représentation des aspects techniques du logiciel. Il faut donc leur fournir
une idée de la localisation des données en affichant les queries SQL.
Analyse – page 40
Lorsque la trace sera lancée, il ne sera plus possible d’afficher les informations de
la précédente trace.
L’administrateur pourra lancer la trace d’un utilisateur via la config du logiciel, en
cochant simplement une option pour cet utilisateur.
A ce moment, et durant toute la période où la trace sera active, l’utilisateur sera
prévenu qu’il est “tracé” grâce à une icône sur l’interface du logiciel.
Lorsque l’utilisateur se déconnectera, sa trace restera quand même à l’état actif.
La trace de cet utilisateur sera accessible et visualisable via le fichier texte
présent sur le serveur.
L’administrateur pourra de plus activer une trace globale, par l’intermédiaire de la
config. Cette trace récupèrera tous les évènements et toutes les queries SQL.
Cela permettra de récupérer aussi les queries anonymes, c’est-à-dire celles qui
servent lors du démarrage de l’application à charger les informations partagées
(pool) par tous les utilisateurs.
Le seul moyen de désactiver la trace sera de repasser par la config. Ainsi, la
fermeture du logiciel ne désactivera pas la trace et celle-ci sera de nouveau active
dès le redémarrage du logiciel.
Là aussi, la visualisation de la trace se fera directement par l’accès au fichier
texte généré sur le serveur.
Analyse – page 41
Projet Trace – Analyse
Étape 2 : modélisation statique
Analyse – page 42
Projet Trace – Analyse
Étape 3 : modélisation dynamique
Analyse – page 44
RecordsetContainer (ou CommandContainer, TableReader, TableWriter)
vérifie si une Trace globale est active ; le cas échéant, le message est
transmis à la Trace en question dans le composant.
Celui-ci vérifie la pertinence du message. Si le message est validé, il est
transmis à la Trace correspondante dans le service de manière
asynchrone.
La Trace instanciée dans le service écrit le message dans le fichier
(création du fichier s’il n’existe pas).
5 – Désactivation d’une Trace
Lorsque l’état en mémoire ou dans la base de registres concernant la
Trace est désactivé, RecordsetContainer (ou CommandContainer,
TableReader, TableWriter) envoie un message au composant qui désactive
la Trace en question.
Celle-ci transmet au service un message de désactivation.
Le service désactive cette Trace.
Analyse – page 45
Analyse – page 46
Analyse – page 47
Analyse – page 48
Projet Trace – Analyse
Étape 4 : modélisation fonctionnelle
CREER UN MESSAGE
En entrée
L’acteur RecordsetContainer (ou autre…) fournit l’utilisateur.
Opérations
Vérifier que la trace est active
Créer un message
En sortie
L’acteur message est instancié
ENVOYER UN MESSAGE
En entrée
L’acteur message fournit tous ses attributs
Opérations
Sérialiser le message
Envoi asynchrone du message par remoting
En sortie
Néant
ECRIRE UN MESSAGE
En entrée
Le texte qui correspond au message sérialisé
Opérations
Écriture dans le fichier
En sortie
Analyse – page 49
Néant
Analyse – page 50