Epigraphe
« Toutes sont claires pour celui qui est intelligent,
et droites pour ceux qui ont trouvé la science. »
(Proverbes 8 : 9)
Dédicace
A mon père Frederick-Flavien KABEYA et à ma
mère Elisée FUNDU, en signe d'amour, de reconnaissance et de
gratitude pour tous les soutiens et les sacrifices dont ils ont fait preuve
à mon égard.
Ames très chères soeurs, aucun mot ne pourra
décrire vos dévouements et vos sacrifices.
A tous les gens qui ont cru en moi et qui me donnent l'envie
d'aller en avant, votre soutien et vos encouragements me donnent la force de
continuer.
Nous vous dédions ce travail en vous souhaitant un
avenir radieux et plein de bonnes promesses.
KABEYA MUKULU Rodian
Remerciements
A Jéhovah de l'Ancien Testament qui est
Jésus-Christ dans le nouveau testament, lui le Dieu Tout Puissant
l'Auteur du souffle de ma vie ;
A mes très chers parents pour exprimer toute la
reconnaissance, la fierté et le profond amour que je porte pour vous,
pour les sacrifices que vous aviez consentis pour ma réussite.
Vous trouverez ici le témoignage de mon attachement, ma
reconnaissance, ma gratitude et mon respect ;
A la direction générale de l'Institut
Supérieur Pédagogie et Technique de Kinshasa (I.S.P.T-KIN), au
corps professoral;
A la direction générale de la
Société Nationale d'Electricité (SNEL), au IKS ;
AuProfesseur ANGOMA MONGA SINDANI Blaise, pour une excellente
direction, son aide, son partage d'expériences, de connaissances et sa
confiance;
A mon oncle Guylain LUKESU ainsi qu'à ma tante
Léa KABEYA pour leurs soutiens tant moral que
matériel ;
A tous les membres de la famille : Vence, Debbie, Divine,
Olga KABEYA, Géraldine KUTIMA, Abraham MUKANZA, Hervé et Dina
ZAYA pour leur soutien moral ;
A tous les amis : Joël MBUYI ; Emmanuel
TOMBO ; Elie TSHIMANGA; Flavia NGAWANI ; Christ BEYEYE ; Marc
BOWALA ; Amigo, Voldy TSOKI, Alliance MANZ, Glody KOBI et que
sais-je encore, pour leur soutien moral ;
A tous ceux qui de près ou de loin nous ont soutenus
d'une manière ou d'une autre, nous disons cordialement merci. Et que
vous trouviez en ce mot l'expression de notre profonde reconnaissance.
FIGURES ET TABLEAUX
Figure I.1
|
: Système distribué
|
Figure I.2
|
: Réseau de communication (intergiciel)
|
Figure I.3
|
: Architecture pair à pair
|
Figure I.4
|
: Architecture middleware
|
Figure I.5
|
: Architecture middleware (ISO)
|
Figure I.6
|
: Architecture MOM à plusieurs Brokers
|
Figure I.7
|
: Architecture protocole et API
|
Figure I.8
|
: Architecture JORAM
|
Figure II.1
|
: ERP (modules principales)
|
Figure III.1
|
: Organigramme administratif SNEL
|
Figure III.2
|
: Organigramme distribution SNEL
|
Figure IV.1
|
: Architecture de conception ActiveMQ
|
Figure IV.2
|
: Architecture de conception ActiveMQ JMS
|
Figure IV.3
|
: Présentation d'un acteur humain
|
Figure IV.4
|
: Présentation d'un acteur système
|
Figure IV.5
|
: Présentation d'un cas d'utilisation
|
Figure IV.6
|
: Présentation d'une relation include
|
Figure IV.7
|
: Présentation d'une relation de
généralisation
|
Tableau IV.1
|
: Identification des acteurs et cas d'utilisation
|
Figure IV.8
|
: Diagramme de cas d'utilisation
|
Tableau IV.2
|
: Description de cas d'utilisation s'authentifier
|
Tableau IV.3
|
: Description de cas d'utilisation visualiser DB
|
Tableau IV.4
|
: Description de cas d'utilisation gérer facture
|
Tableau IV.5
|
: Description de cas d'utilisation gérer client
|
Tableau IV.6
|
: Description de cas d'utilisation créer client
|
Tableau IV.7
|
: Description de cas d'utilisation mettre à jour
client
|
Tableau IV.8
|
: Description de cas d'utilisation supprimer client
|
Tableau IV.9
|
: Description de cas d'utilisation gérer DB
|
Tableau IV.10
|
: Description de cas d'utilisation gérer tables
|
Tableau IV.11
|
: Description de cas d'utilisation se déconnecter
|
Figure IV.9
|
: Diagramme de cycle de développement en V
|
Figure IV.10
|
: Diagramme de séquence s'authentifier
|
Figure IV.11
|
: Diagramme d'activité s'authentifier
|
Figure IV.12
|
: Interface MyBANK non connecté
|
Figure IV.13
|
: Interface MyBANK connecté
|
Figure IV.14
|
: Interface MyBANK saisie et envoie message
|
Figure IV.15
|
: Interface SNEL non connecté
|
Figure IV.16
|
: Interface SNEL NOTIFY connecté
|
Figure IV.17
|
: Interface SNEL NOTIFY réception message
|
Figure IV.18
|
: Choix de la langue d'installation Odoo
|
Figure IV.19
|
: Démarrage d'installation Odoo
|
Figure IV.20
|
: Licence Odoo
|
Figure IV.21
|
: Type d'installation All On In
|
Figure IV.22
|
: Configuration connexion PostgreSQL
|
Figure IV.23
|
: Emplacement et espace requit dans le serveur
|
Figure IV.24
|
: Fin de la copie de fichiers système
|
Figure IV.25
|
: Fin d'installation Odoo
|
Figure IV.26
|
: Configuration Serveur SMTP
|
Figure IV.27
|
: Configuration Serveur POP
|
Figure IV.28
|
: Connexion sur la machine serveur (Host1)
|
Figure IV.29
|
: Connexion sur Host2
|
Figure IV.30
|
: Login
|
Figure IV.31
|
: Clients
|
Figure IV.32
|
: Création client
|
Figure IV.33
|
: Génération numéro facture
|
Figure IV.34
|
: Validité paiement
|
Figure IV.35
|
: PostgreSQL (DB Bank)
|
Figure IV.36
|
: DB Bank (table gestion)
|
Figure IV.37
|
: PostgreSQL (DB postgres)
|
Figure IV.38
|
: DB postgres (table gestion)
|
Figure IV.39
|
: PostgreSQL (DB SNEL)
|
Figure IV.40
|
: DB SNEL table pour des factures payées ou non
|
Figure IV.41
|
: DB SNEL table pour des factures payées ou non
|
Figure IV.42
|
: DB SNEL table pour des factures payées
|
Figure IV.43
|
: DB SNEL table pour des factures payées
|
SIGLES ET ABREVIATIONS
SNEL
|
: Société Nationale d'Electricité
|
ERP
|
: Entreprise Resource
Planning
|
PGI
|
: Progiciel de Gestion
Intégré
|
DB
|
: Database
|
SGBD
|
: Système de
Gestion de Base de données
|
XML
|
:
eXtensibleMarkupLanguage
|
RPC
|
: RemoteProcedure Call
|
GTK
|
: GimpToolKit
|
SMTP
|
: Simple Mail Transfer
Protocol
|
POP
|
: Post Office Protocol
|
SSII
|
: Société de
Service et d'Ingénierie Informatique
|
DSI
|
: Direction des
Systèmes d'Information
|
PSA
|
: Professional Service
Automatique
|
ESA
|
: Entreprise Service
Automatique
|
MRP
|
: MaterialRequirement
Planning
|
BSD
|
: Berkeley Software
Distribution
|
MVC
|
: Modèle Vu
Controleur
|
GRC
|
: Gestion de la Relation
Client
|
HTML 5
|
: Hyper TextMarkupLanguage
(version 5)
|
CSS 3
|
: Cascading Style Sheet
(version 3)
|
TCP
|
: Transmission Control Protoco
|
IP
|
: Internet Protocol
|
AMQP
|
: Advanced Message Queuing Protocol
|
HTTP
|
: HyperText Transfer Protocol
|
SQL
|
:
StructuredQueryLanguage
|
SVG
|
: ScalableVectorGraphic
|
GPL v3
|
: General Public
License
|
GMAO
|
: Gestion de Maintenance
Assisté par Ordinateur
|
CMS
|
: Composant Monté
en Surface
|
RAD
|
: Rapid Application
Developement
|
SMC
|
: Supply Chain
Management
|
EDI
|
: Electronic Data
Interchange
|
ETCS
|
: European Computer Trade
Show
|
CRM
|
: Customer Relationship
Management
|
GNU
|
: Cousin de l'Unix
(Système d'exploitation et noyau, Unix)
|
POS
|
: Point Of Sale
|
IKS
|
: Informatique Kinshasa Sud
|
PME
|
: Petite et Moyenne Entreprise
|
PMI
|
: Petite et Moyenne Industrie
|
UML
|
: UnifiedModelingLanguage
|
ISO
|
: International Organization for Standardisation
|
P2P
|
: Peer to peer
|
API
|
: Application Programming Interface
|
JDBC
|
: Java Data Base connection
|
JMS
|
: Java Messaging System
|
MOT
|
: Middleware Orienté Transaction
|
MOO
|
: Middleware Orienté Objet
|
MOM
|
: Middleware Orienté Message
|
INTRODUCTION GÉNÉRALE
0.1 Aperçu sur le sujet
Actuellement, avec le
développement de la technologie de l'information, les entreprises sont
de plus en plus font face à une panoplie de logiciels pour la gestion de
leurs processus au quotidien. Le traitement de l'information dans l'entreprise
est en pleine mutation. Toutes les entreprises, aussi bien nationales et
qu'internationales, les PME et les PMI, sont confrontées aux besoins
changeant du marché tels que : acquisitions, fusions et solutions
collaboratives.
Aujourd'hui, l'informatique a pénétré
dans tous les domaines de la vie quotidienne, nous citons : domaine
financier, économique, politique, industriel, etc. l'informatique
apparait comme un mode d'organisation répondant le mieux aux besoins
d'une société cherchant sa voie vers un type nouveau de
croissance dans les différents domaines de la vie. Elle offre aux
grandes entreprises de production, la possibilité de réaliser en
temps record des calculs complexes requis dans les industries.
Mais elle intervient également dans le secteur de
l'enseignement, les banques, les assurances ou encore les commerces, ainsi
qu'à domicile. Grace à la conception et à la fabrication
assistée par ordinateur, l'informatique est un outil important dans tous
les métiers nécessitant une modélisation
préalable.
Etant donnée la diversité de systèmes
existants au sein d'une entreprise ainsi que de la nécessité de
collaboration entre ces entreprises, l'utilisation des logiciels dits
middleware `intergiciel' deviennent de plus en plus incontournables. La mise en
oeuvre d'un intergiciel (middleware) facilite donc la communication entre des
différents logiciels et présente de nombreux avantages tels
que : cohérence et homogénéité des
informations, intégrité et unicité des données de
base, partage du même système d'information, solution multi
référentiels et multi législations, gain de
productivité....
Dans ce projet, nous
envisageons grâce à un système informatique de haut niveau
faire communiquer deux systèmes d'information
hétérogènes d'un côté,les banques et d'un
autre, La SNELen utilisant le middleware ActiveMQ. Nous allons mettre
également en place au sein de la SNEL, un module de gestion des factures
en utilisant l'ERP Odoo, que nous aurons à détailler tout long de
ce rapport. Nous comptons dans le cadre de mémoire TFE de licence nous
focaliser sur le processus denotification automatiquelors despaiements de
facture par voie bancaire.
Ainsi, le travail réalisé a été
divisé en quatre chapitres. Dans le premier chapitre, il sera question
de donner les généralités sur les intergiciels. Dans le
second chapitre, nous présentons un état de l'art sur les ERPs.
Le troisième chapitre abordera de l'analyse et critique de l'existant.
Et le dernier chapitre sera consacré àla conception et
l'implémentation de notre projet.
C'est pourquoi notre sujet est intitulé
« Refonte du système d'information de la SNEL par la mise
en place d'un module ERP pour la gestion automatique de paiement des factures
par voie bancaire grâce à l'intergicielActiveMQ»
Dans ce travail, notre
préoccupation majeure est d'améliorer le système gestion
de paiement de facture en automatisant le processus au travers d'une
collaboration temps réel avec les banques. Celles-ci informent le
Système d'Information de la SNEL via un intergiciel de messagerie afin
de rendre le travail de la finance et du commercial de la SNEL plus optimal en
quittant l'approche traditionnelle vers une nouvelle gestion numérique
par l'automatisation des activités opérationnelles.
0.2 PROBLEMATIQUE
La problématique désigne l'ensemble de questions
posées dans un domaine de la science, en vue d'une recherche des
solutions.
Ce travail traite de l'informatisation
de processus de notificationdes banques à la finance de la
Société Nationale d'Electricité, afin d'optimiser la
gestion de paiement et permettre à la société
elle-même d'avoir les informations fiables sur la gestion des paiements
de ses clients. Aussi cette solution permettra aux clients d'effectuer le
paiement dans n'importe quelle banque collaborant avec la SNEL.
Et d'après les investigations que nous avons
menées dans le cadre de notre travail, nous nous sommes rendu compte que
la Société Nationale d'Electricité continue toujours
à utiliser la gestion manuelle des toutes les opérations
liées au paiement de facture. Par conséquent, ellea du mal
à faire un bon suivi sur les différents paiements et avoir un
état réel de la situation de ses finances à un instant
donné.
Alors nous nous sommes posé quelques questions de
précision :
Ø La manière dont la SNEL arrive à avoir
les informations sur les paiements par voie bancaires des factures de ses
clients est-elle efficace par rapport aux objectifs du service
demandé ?
Ø Qu'est ce qui explique la lenteur et les pertes de
données au sein de cet établissement ?
Ø Le système informatique pourra-il
améliorer la gestion de ce service ?
0.3 HYPOTHESE
Une hypothèse est une proposition relative à
une explication admise provisoirement avant d'être confirmée ou
infirmée.
Dans le cadre de notre travail, nous émettons les
hypothèses que voici : Compte tenu des grandes
préoccupations telles que révélées dans la
problématique, nous envisageons l'amélioration du système
de gestion existant par l'informatisation du processus de gestion de paiement
de facture au travers d'une communication temps réel avec les
différentes banques.Ceci permettra d'éradiquer les erreurs de
traitement et la mauvaise conservation des données.
0.4 CHOIX ET INTERET
DU SUJET
a. Choix du sujet
Le choix thématique de ce sujet a été
motivé par trois raison, à savoir :
Ø La contrainte qu'ont les étudiants finalistes
de différents cycles de l'enseignement supérieur et universitaire
de réaliser un travail de qualité à la fin de leur
formation;
Ø Les besoins réels des entreprises congolaises
à intégrer dans leur système d'information un module la
gestion automatisée de paiement de facture au travers de n'importe
quelle banque ou service monétique.
Ø Faciliter les clients à payer leurs factures
dans faire des longs trajets pour trouver une agence de paiement de ladite
société.
b. Intérêt du sujet
L'intérêt du sujet que nous développons
est de chercher les voies et moyens de mettre un système pour
l'épanouissement du service de finance et commercial dans le souci
d'améliorer ses conditions de travail avec l'aide des procédures
informatiques.
0.5 BUT ET OBJECTIFS
POURSUIVIS
Nous comptons dans les années avenir centraliser les
données clients par la mise en place d'un système d'information
temps réel pour le compte de la Société Nationale
d'Electricité pour sa meilleure gestion de toutes ses fonctions. Nous
comptons aussi proposer un intergiciel pouvant interagir plusieurs
systèmes hétérogènes tant dans le monde de finance
que dans la production industrielle.
0.6 METHODES ET TECHNIQUES UTILISEES
a. Méthodes utilisées
En vue de doter ce travail d'un caractère scientifique,
il est important d'opter une méthode parmi tant d'autres. Elle s'entend
comme un cheminement cohérent de la pensée humaine en vue de
donner une solution définitive à un problème de fond.
Selon R.PINTO et M. GRAWITZ, la
méthode est un ensemble d'opérations intellectuelles par
lesquelles une discipline cherche à atteindre la vérité
qu'elle poursuit, la démontre et la vérifie.
Ainsi pour l'élaboration de ce travail, nous optons
pour la méthode suivante :
Ø Méthode
structuro-fonctionnelle : qui nous permet d'analyser la structure
concernée ainsi que son fonctionnement et elle nous a doté des
techniques et méthodes à suivre pour la conception d'une
application informatique.
b. Techniques utilisées
Nous avons utilisé deux techniques pour élaborer
ce travail de fin de cycle, à savoir : les techniques documentaires
et d'interview.
Ø Technique documentaires : a
été d'une grande utilité pour collecter les données
à partir des différents documents mis à notre
disposition ;
Ø Technique d'interview :
grâce à cette technique, nous avons obtenu des informations par le
jeu des questions et réponses auprès des interlocuteurs ;
0.7 DELIMITATION DU SUJET
La délimitation du sujet consiste à cadrer ou
à circonscrire les contours et les sphères de la recherche.
A ce stade, nous ne pouvons pas embrasser tous les services de
cet établissement. Ainsi, nous voulons circonscrire les champs de notre
étude sur les échanges des données entreles banques et la
snel ainsi que côté gestion facturationde la snelsans toucher les
autres fonctions.
0.8 SUBDIVISION DU
TRAVAIL
Hormis l'introduction générale et la conclusion
générale, notre travail est subdivisé en quatre (4)
chapitres, à savoir :
Ø Les généralités sur les
intergiciels;
Ø L'état de l'art sur les
ERPs;
Ø L'étude et analyse de
l'existant ;
Ø Conception et l'implémentation des
applications.
CHAPITRE I. GENERALITES SUR
LES INTERGICIELS
I.1 INTRODUCTION
Ce chapitre définit, donne le rôle, et
l'historique résumant les grandes étapes de l'évolution et
présente toutes les fonctions de l'intergiciel, les besoins auxquels
elles répondent, ainsi que le système distribué.Et les
principales types et sortes, l'analyse simple d'intergiciel en
générale et celui de MOMs en particulier et les problèmes
que pose leur conception.
I.2 DEFINITIONS
D'INTERGICIEL
L'intergiciel (ou middleware en anglais) désigne les
logiciels servant d'intermédiaire entre d'autres logiciels. On utilise
généralement du middleware comme intermédiaire de
communication entre des applications complexes, distribuées sur un
réseau informatique.
On appelle middleware, l'ensemble des couches réseaux
et des services logiciels qui permettant le dialogue entre les
différents composants d'une application repartie. Ce dialogue se base
sur un protocole applicatif commun, définie par l'API de middleware.
I.3 ROLE D'UN
INTERGICIEL
Un intergiciel se situe au-dessus du système
d'exploitation (OS pour OperatingSystem) et en dessous des applications
(c'est-à-dire des clients et/ou des services) de son hôte.
L'utilisation d'un intergiciel permet de développer des
applications viala réutilisation/assemblage de services
déployés au travers de différents objetscommunicants
indépendamment de leur localisation, langage de programmation,
système d'exploitation et matériel.
Un intergiciel fournit différentes
fonctionnalités/facilités pour l'implémentation
d'applications distribuées. Dans la littérature, les
fonctionnalités offertes d'un intergiciel sont souvent
présentées comme étant les services de l'intergiciel
à ne pas confondre, dans notre contexte, avec les services de
l'architecture des services de messagerie.
I.4HISTORIQUE
Le terme middleware semble être apparu vers 1990, mais
des systèmes intergiciels existaient bien avant cette date. Des
logiciels commerciaux de communication par messages étaient disponibles
à la fin des années 1970.
La référence classique sur l'appel de
procédure à distance est (Birrell and Nelson 1984), mais des
constructions analogues, liées à des langages particuliers,
existaient déjà auparavant (la notion d'appel de procédure
à distance apparaît dans white 1976 et une première
réalisation est proposée dansBrinch Hansen 1978.
Vers le milieu des années 1980, plusieurs projets
développent des infrastructures intergicielles pour objets
répartis, et élaborent les principaux concepts qui vont
influencer les normes et les produits futurs. Les précurseurs sont
Cronus (Schantz et al. 1986) et Eden (Almes et al. 1985), suivis par Amoeba
(Mullender et al. 1990),ANSAware (ANSA),Arjuna (Parrington et al. 1995, Argus
(Liskov 1988), Chorus/COOL (Lea et al. 1993),Clouds (Dasgupta et al.
1989,Comandos (Cahill et al. 1994,Emerald (Jul et al. 1988),(GothicBanatre and
Banatre 1991), Guide (Balter et al. 1991), Network Objects (Birrell et al.
1995), SOS (Shapiro et al. 1989), et Spring (Mitchell et al. 1994).
L'Open Software Foundation (OSF), qui deviendra plus tard
l'Open Group, est créée en 1988 dans le but d'unifier les
diverses versions du système d'exploitation Unix. Cet objectif ne fut
jamais atteint, mais l'OSF devait spécifier une plate-forme
intergicielle, le DistributedComputingEnvironment (DCE) [Lendenman 1996], qui comportait notamment un service
d'appel de procédure à distance, un système réparti
de gestion de fichiers, un serveur de temps, et un service de
sécurité.
L'Object Management Group (OMG) est créé en 1989
pour définir des normes pour l'intergiciel à objets
répartis. Sa première proposition (1991) fut la
spécification de CORBA 1.0 (la version courante, en 2005, est CORBA 3).
Ses propositions ultérieures sont des normes pour la modélisation
(UML, MOF) et les composants (CCM).
L'Object Database Management Group (ODMG) définit des
normes pour les bases de données à objets, qui visent à
unifier la programmation par objets et la gestion de données
persistantes.
Le modèle de référence de l'Open
DistributedProcessing (RM-ODP), a été conjointement défini
par deux organismes de normalisation, l'ISO et l'ITU-T. Il propose un ensemble
de concepts définissant un cadre générique pour le calcul
réparti ouvert, plutôt que des normes spécifiques.
La définition du langage Java par Sun Microsystems en
1995 ouvre la voie à plusieurs intergiciels, dont Java Remote Method
Invocation (RMI) [Wollrath et al. 1996] et les
Enterprise JavaBeans (EJB) [Monson-Haefel 2002].
Ces systèmes, et d'autres, sont intégrés dans une
plate-forme commune, J2EE.
Microsoft développe à la même
époque le Distributed Component Object Model (DCOM) [Grimes 1997], un intergiciel définissant
des objets répartis composables, dont une version
améliorée est COM+ [Platt 1999]. Son
offre courante est .NET, plate-forme intergicielle pour la construction
d'applications réparties et de services pour le Web.
La première conférence scientifique
entièrement consacrée à l'intergiciel a lieu en 1998.
Parmi les thèmes actuels de la recherche sur l'intergiciel, on peut
noter les techniques d'adaptation (réflexivité, aspects),
l'administration et notamment les travaux sur les systèmes autonomes
(pouvant réagir à des surcharges ou à des
défaillances), et l'intergiciel pour appareils mobiles et environnements
ubiquitaires.
I.5 SYSTEME DISTRIBUE
I.5.1 Définition
Un système distribué est un système
disposant d'un ensemble d'entités communicantes, installées sur
une architecture d'ordinateurs indépendants reliés par un
réseau de communication, dans le but de résoudre en
coopération une fonctionnalité applicative commune.
Autrement dit, un système distribué est
défini comme étant un ensemble des ressources physiques et
logiques géographiquement dispersées et reliées par un
réseau de communication dans le but de réaliser une tâche
commune. Cet ensemble donne aux utilisateurs une vue unique des données
du point de vue logique.
Un système distribué est un ensemble
d'entités autonomes de calcul (ordinateurs, processeurs, processus,
processus léger etc.) interconnectées et qui peuvent
communiquer.
Figure I.1 : Système
distribué
I.5.2 Intérêt des
systèmes distribués
Les systèmes distribués ont plusieurs raisons de
leur existence.
Ø Partage des ressources (données, programme,
services) qui permet un travail collaboratif ;
Ø Accès distant, c'est-à-dire qu'un
même service peut être utilisé par plusieurs acteurs
situés à des endroits différents ;
Ø Amélioration des performances : la mise en
commun de plusieurs unités de calcul permet d'effectuer des calculs
parallélisés en des temps plus courts ;
Ø Confidentialité : les données brutes ne
sont pas disponibles partout au même moment, seules certaines vues sont
exportées ;
Ø Disponibilité des données en raison de
l'existence de plusieurs copies ;
Ø Maintien d'une vision unique de la base de
données malgré la distribution ;
Ø Réalisation des systèmes à
grande capacité d'évolution ;
Ø Augmentation de la fiabilité grâce
à la duplication de machines ou de données, ce qui induit
à une réalisation des systèmes à haute
disponibilité.
I.5.3 Quelques domaines
d'application des systèmes distribués
Les systèmes distribués sont rencontrés
dans notre vie quotidienne :
Ø La gestion intégrée des informations
d'une entreprise (guichet de banque, agence de voyage,..) ;
Ø Internet : l'internet, aujourd'hui, constitue un
grand exemple d'un système distribué le plus large au monde
contenant de nombreux sous-systèmes selon le protocole
considéré. Exemple : Web (http), bittorrent (peer-to-peer).
Des nombreux utilisateurs partout dans le monde peuvent
utiliser des services offerts par l'internet comme le WWW, le FTP (File
Transfert Protocol) et tant d'autres applications. On remarque ici une
collection de réseaux d'ordinateurs interconnectés.
Et les programmes s'y exécutant interagissent
grâce aux échanges de messages en utilisant un moyen de
communication ou un autre ;
Ø Le WWW représente un système
distribué logique consistant en un nombre considérable de
ressources (pages web, fichiers de données et services)
référencées par des URL (Uniform Ressource Locator) ;
Ø Les téléphones portables ;
Ø Le contrôle et organisation d'activités
en temps réel (télévision interactive).
I.5.4 Difficulté de mise
en oeuvre
La mise en oeuvre des systèmes distribués
engendre un certain nombre de difficultés dont voici quelques-unes :
I.5.4.1 Gestion de
l'hétérogénéité et Cohérence des
données
Lors de la mise en place d'un système distribué,
il est nécessaire que l'ensemble des composants travaillent avec des
données cohérentes. Cette cohérence des données est
d'autant plus problématique lorsque l'on commence à redonder
certains composants pour augmenter la capacité de traitement et/ou la
disponibilité du système.
En effet, les données comme le cache applicatif, le
contenu d'une base de données ou bien les variables de session des
utilisateurs Web doivent être synchronisées entre les
différentes instances d'un composant afin d'assurer une cohérence
dans les traitements réalisés.
I.5.4.2 Gestion des composants
Un système distribué étant composé
d'un ensemble de composants logiciels répartis sur plusieurs serveurs
physiques. Il est nécessaire pour assurer la maintenance corrective et
évolutive du système de dresser une cartographie complète
de ce système.
I.5.4.3 Disponibilité et détection
d'arrêts
Dans un système distribué,
l'indisponibilité d'un seul composant du système (serveur, base
de données, ...) peut rendre indisponible le système complet. On
mesure alors la disponibilité de ce type de système à
celle de son maillon le plus faible.
Pour couvrir ce risque, il est nécessaire de mettre en
place en amont une architecture permettant d'assurer la disponibilité
cible pour tous les composants. Une fois que cette architecture est en
production, des opérateurs doivent à l'aide de logiciels
s'assurer de la détection au plus tôt d'un
e défaillance de l'un des composants de
l'architecture.
I.5.4.4Gestion de la séquentialité
La mise en place d'un cluster de type actif/actif provoque la
création de deux points d'entrée au système. Dans le cas
d'un système distribué d'échange de données par
exemple, il est alors possible que deux modifications successives du même
objet soient dirigées vers deux noeuds différents du cluster, ce
qui dans l'absolu peut aboutir à une situation où le message le
plus récent est diffusé en premier vers l'application
destinataire.
Si aucune gestion de la séquentialité des
messages n'est faite, le message le plus ancien viendra écraser dans les
applications destinataires le message le plus récent.
I.5.5 Caractéristiques
des systèmes distribués
La performance d'un système distribué se
révèle dans ces caractéristiques. Ces
caractéristiques ci-dessous devraient être prises en compte lors
de la conception d'un système distribué.
I.5.5.1 Interopérabilité
Dans un système distribué, ilse pose un vrai
problème de coopération entre différents composants du
système. En effet, ce problème peut être vu au niveau de la
couche matériel (différents réseaux physiques et
plateforme matérielle), de la couche système d'exploitation
(divers OS utilisés (UNIX, Windows, Mac OS, Solaris)), de la couche
application (langages de programmation différents) et de la couche
middleware (.NET pour Microsoft, Corba pour le Consortium OMG). On parle de
l'hétérogénéité, un problème dans le
partage des ressources dans un système distribué.
L'interopérabilité est une
caractéristique importante qui désigne la capacité
à rendre compatibles deux systèmes quelconques. A son tour, la
compatibilité est la capacité qu'ont deux systèmes
à communiquer sans ambiguïté.
En effet, l'interopérabilité vise à
réduire le vrai problème de
l'hétérogénéité en la masquant par
l'utilisation d'un protocole unique de communication (exemple de TCP/IP pour
l'Internet). Pour les échanges des messages, il faut utiliser des
standards qui cachent les différences entre les différentes
plateformes.
Actuellement, il existe deux approches principales de
standardisation pour masquer l'hétérogénéité
: les middlewares et les machines virtuelles.
Concrètement, un middleware est
représenté par des processus et des ressources d'un ensemble
d'ordinateurs, qui interagissent les uns avec les autres. Ies middlewares
améliorent la communication en offrant des abstractions telles que :
Ø Le RMI (Remote Method Invocation) qui est la
possibilité, pour un objet, d'invoquer la méthode d'un autre
objet situé sur une plateforme distante ;
Ø La notification d'événement pour la
propagation d'informations d'une plateforme vers une autre ou plusieurs autres
plateformes ou composants d'une application distribuée ;
Ø La communication entre groupe de processus ;
Ø La gestion de la duplication des données
partagées ;
Ø La transmission de données multimédia
en temps réel.
Les machines virtuelles permettent de supporter le code mobile
désignant la possibilité de transfert de code d'une machine
source à une machine de destination et son exécution sur cette
machine.
Au cas des différentes plateformes, le code produit sur
l'une ne peut fonctionner sur l'autre. Pour éviter ce problème,
le code mobile est généré d'un langage source pour une
machine virtuelle donnée (exemple de la JVM).
En effet, chaque plateforme doit disposer d'une couche
logicielle qui implémente la machine virtuelle car cette dernière
représente une généralisation des middlewares offrant les
mêmes services.
Figure I.2 : Réseau de
communication
I.5.5.2 Partage des ressources
Le partage des ressources est le facteur principal de
motivation pour construire les systèmes répartis. Des ressources
telles que des imprimantes, des dossiers, des pages Web ou des disques de base
de données sont contrôlées par des serveurs du type
approprié. Par exemple, les serveurs Web contrôlent des pages Web
et d'autres ressources d'enchaînement. Des ressources sont
consultées par des clients - par exemple, les clients du web des
serveurs s'appellent généralement les browsers (navigateurs) ;
I.5.5.3 Ouverture
Cette caractéristique fait mention de
l'extensibilité dans la mesure où des composants peuvent
être ajoutés, remplacés ou supprimés dans un
système distribué sans en affecter les autres. Et lorsque nous
parlons des composants, nous voyons les matériels (les
périphériques, mémoires, interfaces, etc. et les logiciels
(protocoles, pilote, etc.). L'ouverture nécessite que les interfaces
logicielles soient documentées et accessibles aux développeurs
d'applications.
Il se pose un vrai problème avec l'ouverture au sens
que les composants d'un système distribué sont
hétérogènes. Alors, cette qualité d'ouverture est
accordée aux systèmes supportant sans ambages :
Ø L'ajout de l'ordinateur au niveau de la couche
matérielle ;
Ø L'ajout de nouveaux services au niveau application,
middleware et système d'exploitation ;
Ø La réimplantation des services anciens.
I.5.5.4 Expansible
Nous disons qu'un système distribué est
expansible lorsque les modifications du système et des applications ne
sont pas nécessaires quant à l'augmentation de la taille de ce
système.
I.5.5.5 Performance
Dans ce cas, le système doit s'adapter à bien
fonctionner même quand le nombre d'utilisateurs ou de ressources
augmentent.
I.5.5.6 Transparence
La transparence cache aux utilisateurs l'architecture, la
distribution des ressources, le fonctionnement de l'application ou du
système distribué pour apparaître comme une application
unique cohérente.
La norme ISO (1995) définit différents niveaux
de transparences telle que la transparence d'accès, de localisation, de
concurrence, de réplication, demobilité, de panne, de
performance, d'échelle).
Ø Transparence d'accès :il s'agit d'utiliser les
mêmes opérations pour l'accès aux ressources distantes que
pour les celles locales ;
Ø Transparence à la localisation :
l'accès aux ressources indépendamment de leur emplacement doit
être inconnue à l'utilisateur ;
Ø Transparence à la concurrence : il s'agit de
cacherà l'utilisateur l'exécution possible de plusieurs processus
en parallèle avec l'utilisation desressources partagées en
évitant des interférences ;
Ø Transparence à la réplication : la
possibilité de dupliquer certains éléments/ressources
(fichiers de base de données) pour augmenter la fiabilité
etaméliorer les performances doit être cachée à
l'utilisateur ;
Ø Transparence de mobilité : il s'agit de
permettre la migration des ressources et des clients à
l'intérieur d'un système sans influencer le déroulementdes
applications ;
Ø Transparence de panne : il s'agit de permettre aux
applications des utilisateurs d'achever leurs exécutions malgré
les pannes qui peuvent affecter lescomposants d'un système (composants
physiques ou logiques) ;
Ø Transparence à la modification de
l'échelle : il s'agit de la possibilité d'une extension
importante d'un système sans influence notable sur lesperformances des
applications.
Ø Transparence à la reconfiguration: il s'agit
de cacher à l'utilisateur la possibilité de reconfigurer le
système pour en augmenter les performances enfonction de la charge ;
En effet, la transparence n'est pas toujours possible dans
certains cas. Notons le cas de la duplication d'une imprimante des
caractéristiques différentes pour besoin des performances dans le
système. Cependant, l'utilisateur doit toutefois avoir la
possibilité de spécifier concrètement sur quelle
imprimante il souhaite imprimer ses documents.
I.5.5.7 Sécurité
Le problème de sécurité se pose dans tout
système informatique. Dans un système distribué, les
ressources doivent être protégées contre des utilisations
abusives et malveillantes. En particulier, le problème de piratage des
données sur le réseau de communication. En ces raisons, il est
préférable d'utiliser des périphériques ou
logiciels licenciés. Outre, les connexions doivent être
sécurisées par authentification avec les éléments
distants ainsi que les messages circulant sur ce réseau doivent
être cryptés en vue d'éviter des conséquences
graves.
Le concept de sécurité des systèmes
d'information recouvre un ensemble de méthodes, techniques et outils
chargés de protéger les ressources d'un système
d'information afin d'assurer :
Ø la disponibilité des services : les services
(ordinateurs, réseaux, périphériques, applications...) et
les informations (données, fichiers...) doivent êtreaccessibles
aux personnes autorisées quand elles en ont besoin ;
Ø la confidentialité des informations : les
informations n'appartiennent pas à tout le monde ; seuls peuvent y
accéder ceux qui en ont le droit ;
Ø l'intégrité des systèmes : les
services et les informations (fichiers, messages...) ne peuvent être
modifiés que par les personnes autorisées(administrateurs,
propriétaires...).
I.5.5.8. Concurrence
Le problème de la concurrence permet l'accès
simultané à des ressources par plusieurs processus. Ce
problème se pose pour les systèmes distribués comme pour
les systèmes centralisés.
En effet, il y a bien d'autres ressources dont l'accès
simultané n'est pas possible. Dans ce cas, leur manipulation ne peut se
faire que par un processus à la fois. Le cas des ressources physiques
telles que l'imprimante mais aussi des ressources logiques telles que les
fichiers, les tables des bases de données, etc.
Dans ce cas, les applications distribuées (reparties)
actuelles autorisent l'exécution de plusieurs services en concurrence
(cas de l'accès à une base de données). Chaque demande est
prise en compte par un processussimple appelé thread ; et la gestion de
la concurrence fait appel aux mécanismes de synchronisation
classiques.
I.5.5.9. Tolérance aux pannes
Une panne peut être comprise comme une faille au sein du
système pouvant conduire à des résultats erronés
comme aussi engendrer l'arrêt de toute ou partie d'un système
distribué.Les pannes peuvent résulter des différentes
couches et se propager éventuellement aux autres.
Peut-être, c'est une raison matérielle ou logique
liée à la conception des applications, des middlewares et des
systèmes d'exploitation.
Ainsi, un système distribué doit être
conçu pour masquer ce genre des pannes aux utilisateurs.
La panne de certains serveurs (ou leur
réintégration dans le système après la
réparation) ne doit pas perturber l'utilisation du système en
terme de fonctionnalité.
I.5.5.10. Disponibilité
Dans un système distribué,
l'indisponibilité d'un seul composant du système (serveur, base
de données, ...) peut rendre indisponible le système complet
alors qu'il doit rendre en permanence des services et d'une façon
correcte. On mesure alors la disponibilité de ce type de système
à celle de son maillon le plus faible.
Ces risques d'indisponibilité du système peuvent
être dus :
Ø aux pannes empêchant le système ou
à ses composants de fonctionner correctement ;
Ø aux surcharges dues à des sollicitations
excessives d'une ressource ;
Ø aux attaques de sécurité pouvant
causer, d'une façon ou d'une autre, des dysfonctionnements, les
incohérences et pertes de données et même l'arrêt du
système.
Pour couvrir ce risque, plusieurs solutions peuvent être
envisageables :
Ø mettre en place en amont une architecture permettant
d'assurer la disponibilité cible pour tous les composants. Une fois que
cette architecture est en production, des opérateurs doivent à
l'aide de logiciels s'assurer de la détection au plus tôt d'une
défaillance de l'un des composants de l'architecture.
Ø veiller à la réplication des
données au sein de ce système (c'est la solution que nous avons
choisi dans le cadre de notre travail).
I.5.6 Architecture
distribuée
L'architecture d'un environnement informatique ou d'un
réseau est dite distribuée lorsque toutes les ressources ne se
trouvent pas au même endroit ou sur la même machine. Ce concept
s'oppose à celui d'architecture centralisée dont une version est
l'architecture client-serveur que nous allons aussi voir dans cette partie.
En effet, la programmation orientée objet a permis le
développement des architectures distribuées en fournissant des
bibliothèques de haut-niveau pour faire dialoguer des objets
répartis sur des machines différentes entre eux. Les objets
distribués sur le réseau communiquent par messages en s'appuyant
sur l'une des technologies telles que CORBA, RMI, les services web XML, .Net
Remoting, Windows Communication Foundatation, etc.
Les architectures distribuées reposent sur la
possibilité d'utiliser des objets qui s'exécutent sur des
machines réparties sur le réseau et communiquent par messages au
travers du réseau.
I.5.6.1. Avantages des architectures
distribuées
Ø Augmentation des ressources : la distribution des
traitements sur les ordinateurs d'un réseau augmente les ressources
disponibles;
Ø Répartition des données et des services
: (cas de l'architecture 3-tiers à la base de la plupart des
applications distribuées de commerce électronique permettant
d'interroger et de mettre à jour des sources de données
réparties) ;
I.5.6.2. Types d'architecture distribuée
I.5.6.2.1. Architecture client-serveur
Le client server est avant tout un mode de dialogue entre deux
processus. Le premier appelé client, demande l'exécution de
services au second appelé serveur. Le serveur accomplit les services et
envoi en retour des réponses. En général, un serveur est
capable de traiter les requêtes de plusieurs clients.
Un serveur permet donc de partager des ressources entre
plusieurs clients qui s'adressent à lui par des requêtes
envoyées sous forme de messages.
Par extension, le client désigne également
l'ordinateur sur lequel est exécuté le logiciel client, et le
serveur, l'ordinateur sur lequel est exécuté lelogiciel
serveur.
Le client serveur étant un mode de dialogue, il peut
être utilisé pour réaliser de multiples fonctions.
Parlant de l'architecture client-serveur, nous distinguons
trois types d'acteurs principaux:
a. Client
Un client est un processus demandant l'exécution d'une
opération à un autre processus (fournisseur des services) par
l'envoi d'un message contenant le descriptif de l'opération à
exécuter et attendant la réponse à cette opération
par un message en retour.
Caractéristiques d'un client :
Ø Il est actif le premier (ou maître) ;
Ø Il envoie des requêtes au serveur ;
Ø Il attend et reçoit les réponses du
serveur.
Parlant aussi de client, nous en distinguons trois types :
· Client léger : est une application accessible
via une interface web consultable à l'aide d'un navigateur web ;
· Client lourd : est une application cliente graphique
exécuté sur le système d'exploitation de l'utilisateur
possédant les capacités de
traitementévoluées ;
· Client riche : est une combinaison du client
léger et client lourd dans lequel l'interface graphique est
décrite avec une grammaire basée sur lasyntaxe XML.
b. Serveur
On appelle serveur un processus accomplissant une
opération sur demande d'un client et lui transmettant le
résultat. Il est la partie de l'application qui offre un service, il
reste à l'écoute des requêtes du client et répond au
service demandé par lui. En effet, un serveur est
généralement capable de servir plusieurs clients
simultanément.
Caractéristiques d'un serveur :
Ø Il est initialement passif (ou esclave, en attente
d'une requête) ;
Ø Il est à l'écoute, prêt à
répondre aux requêtes envoyées par des clients ;
Ø Dès qu'une requête lui parvient, il la
traite et envoie une réponse.
Nous distinguons plusieurs types de serveur en fonction des
services rendus : Serveur d'application, serveur de base de données,
serveur des fichiers, etc.
c. Middleware
Comme nous l'avons dit ci-haut le middleware est l'ensemble
des services logiciels qui assurent l'intermédiaire entre les
applications et le transport de données dans le réseau afin de
permettre les échanges des requêtes et des réponses entre
client et serveur de manière transparente.
Le client serveur étant un mode de dialogue, il peut
être utilisé pour réaliser de multiples fonctions. Il
existe donc différents types de client-serveur qui ont été
définis : le client serveur de présentation, le client serveur de
données et le client serveur de procédures.
I.5.6.2.2. Architecture pair-à-pair
(peer-to-peer ou P2P)
Le pair-à-pair est un modèle de réseau
informatique proche du modèle client-serveur mais où chaque
ordinateur connecté au réseau est susceptible de jouer tour
à tour le rôle de client et celui de serveur.
P2P est une architecture pouvant être centralisée
(les connexions passant par un serveur central intermédiaire) ou
décentralisée (les connexions se faisant directement).
Le pair-à-pair peut servir au partage de fichiers en
pair à pair, au calcul distribué ou à la communication
entre noeuds ayant la même responsabilité dans le
système.
La particularité des architectures pair-à-pair
réside dans le fait que les données peuvent être
transférées directement entre deux postes connectés
auréseau, sans transiter par un serveur central.
Cela permet ainsi à chaque ordinateur d'être
à la fois serveur de données et client des autres. On appelle
souvent noeudles postes connectés par un protocole réseau
pair-à-pair.
Outre, les systèmes de partage de fichiers
pair-à-pair permettent de rendre les ressources d'autant disponibles
qu'elles sont populaires, et donc répliquées sur un grand nombre
de noeuds.
Cela permet alors de diminuer la charge (en nombre de
requêtes) imposée aux noeuds partageant les fichiers dans le
réseau.
C'est ce qu'on appelle le passage à l'échelle.
Cette architecture permet donc de faciliter le partage des ressources. Elle
rend aussi la censure ou les attaques légales ou pirates plus
difficiles.
Figure I.3 : Architecture
pair-à-pair
Ces atouts font des systèmes pair-à-pair des
outils de choix pour décentraliser des services qui doivent assurer une
haute disponibilité tout en permettant de faibles coûts
d'entretien. Toutefois, ces systèmes sont plus complexes à
concevoir que les systèmes client-serveur.
I.5.7Les perspectives des
architectures distribuées
L'une des évolutions attendues dans les temps à
venir est le remplacement des achats de logiciels informatiques par des
locations de ces mêmes logiciels, pour le temps nécessaire
à leur utilisation.
On peut imaginer, par exemple, qu'il sera possible, à
partir d'un logiciel de traitement de texte, de faire appel à
différents services de corrections orthographiques disponibles sur
Internet, et dont on louera les services selon les besoins.
I.6CARACTERISTIQUES DES
INTERGICIELS
I.6.1 Les middlewares
synchrones
Un autre mécanisme courant est l'appel synchrone (c),
dans lequel A (le client d'un service fourni par B) envoie un message de
requêteB et attend une réponse (cette émission est
bloquante). Ce patron est utilisé dans le RPC. Les interactions
synchrone et asynchrone peuvent être combinées, par exemple dans
diverses formes de < RPC asynchrone >.
Le but est de permettre au demandeur d'un service de continuer
son exécution après l'envoi de sa requête. Le
problème est alors pour le demandeur de récupérer les
résultats, ce qui peut être fait de plusieurs manières. Par
exemple, le fournisseur peut informer le demandeur, par un
évènement asynchrone, que les résultats sont disponibles ;
ou le demandeur peut appeler le fournisseur a un moment ultérieur pour
voir l'état de l'exécution.
Comme son nom l'indique, une communication synchrone
désigne une liaison doublée d'un processus visant à
synchroniser deux systèmes en présence, leur base de
données métier respective par exemple. A l'inverse, les flux
asynchrones mettent en oeuvre des échanges qui ne dépendent pas
de l'état des applications impliquées. Ils sont
exécutés à intervalles variables selon les ressources
disponibles, en utilisant des références temporelles
différentes.
C'est comme les appels téléphoniques avec les
opérateurs mobiles où l'appelé doit être joignable
ou disponiblepour se communiquer sinon il n'y aura pas communication.
I.6.2 Les middlewares
asynchrones
Comparable avec le cas des sms ou de chat avec les réseaux
sociaux, même-si le récepteur n'est pas disponible cela
n'empêche pas à l'émetteur d'envoyer son message car le
message sera envoyé et restera dans la file d'attente jusqu'à ce
que le récepteur soit joignable pour le recevoir
Une forme de communication plus élaborée est le
passage asynchrone de messages persistants. Un message est un bloc
d'information qui est transmis d'un émetteur à un
récepteur. Cette émission est non bloquante (l'émetteur
continu son travail).
L'attribut < persistant > signifie que le système
de communication assure un rôle de tampon : si le récepteur attend
le message, le système de communication le lui délivre ; sinon,
le message reste disponible pour une lecture ultérieure.
Deux modes de communication par message asynchrone existent :
Ø Communication directe entre processus
(agents) ;
Ø Communication indirecte (boîtes aux lettres).
Grâce à cette caractéristique, les
dispositifs asynchrones ont tendance à mieux gérer les goulets
d'étranglement qui peuvent intervenir lors d'un problème
d'accessibilité de l'environnement serveur. Par nature, le couplage
applicatif qu'ils mettent en oeuvre est en effet plus lâche que pour les
fonctions synchrones.
Ce qui leur permet de pallier les difficultés de
disponibilité momentanées de manière plus efficace.
I.7ARCHITECTURES DE
MIDDLEWARE
Figure I.4 : Architecture de
middleware
Figure I.5 : Architectures de middleware
(ISO)
I.8 TYPES DE MIDDLEWARE
I.8.1 Middleware orienté
accès aux données
Ø Dialoguer avec un système de gestion de base
de données:
Requêtes select, insert, update, delete...
Ø Deux couches distinctes :
· La couche propre au SGBD (SQLNet, TDS ...) ;
· La couche de l'outil de développement (ODBC,
ADO, JDBC...)
I.8.2 Middleware orienté
transaction (Le MOT)
Il est à préciser que l'on appelle transaction
ou unité de travail. C'est une suite d'action qui change l'état
de manière contrôlé. Il n'y a pas de demi-mesure, soit le
travail a été effectué soit non. Si pour une raison
quelconque la transaction n'a pu se terminer, on replace le système dans
son état de départ.
Une transaction a un début et une fin que l'on doit
obligatoirement atteindre pour que les modifications soient validées.
Une transaction possède 4 attributs principaux:
1. Atomicité: c'est une unité de travail
indivisible. Soit toutes les opérations sont jouées, soit
aucune ;
2. Cohérence: tout système qui subit une
transaction passe d'un état cohérent à un nouvel
état cohérent. Si ce nouvel état ne peut être
atteint, le système retourne à son état initial
(rollback) ;
3. Isolation: les transactions s'exécutent
simultanément mais de façon isolée, sans interfaces entre
elles ni connaissances des états intermédiaires ;
4. Durabilité: Suite à une transaction, ses
effets sur les données sont persistants.
Un MOT est un environnement réparti qui prend en charge
l'exécution d'une application et la vérification de son bon
fonctionnement en intégrant des mécanismes transactionnels. En
plus des aspects purement transactionnels, ils offrent un outil de gestion
optimisé et partagé des ressources, un outil de communication et
un outil d'administration et de supervision.
Les MOT permettent au programmeur de ne pas s'occuper des
problèmes de simultanéités d'accès, de
défaillance du système, de ruptures de connexions. Ils
fournissent le moteur pour faire tourner les applications au-dessus des OS et
du matériel. Ils assurent une cohérence transactionnelles et
facilite le découpage des applications en services.
Il existe différents moniteurs transactionnels comme
Tuxedo de BEA ou CIS d'IBM
Ø Transaction: séquence d'opérations
élémentaires ;
Ø Elle est exécutée comme une seule
opération indivisible :
· Transaction valide: toutes les opérations sont
menées à terme ;
· Transaction invalide, si au moins une des
opérations n'a pas pu être achevée.
Ø Transaction doit avoir les propriétés
ACID
Exemple de transaction :
Virement bancaire
Ø Deux opérations indissociables dans une
transaction:
· Débiter le compte clients ;
· Créditer le compte client.
a. Points forts
· Fonctionnement ACID ;
· Fiabilité ;
· Facilité d'intégration avec les bases de
données.
b. Points faibles
· Création d'une surcharge ;
· Portabilité réduite (pas de standard pour
la définition des services sur les serveurs de composants).
I.8.3 Middleware orienté
objet (Le MOO)
Pour permettre à différentes applications de
communiquer entre elles, il faut des règles et des formats communs
d'appels de services pour permettre aux différents objets de communiquer
entre eux car les composants peuvent être de natures différentes.
Tout d'abord ils peuvent être sur des machines différentes ayant
des OS différents. Ils peuvent aussi avoir été
conçus dans des langages différents.
Il existe trois modèles de composants objets qui sont
complémentaires et interopérable. Il s'agit du modèle
CORBA, des composant Java EJB et enfin de DCOM de Microsoft.
Ø Gestion d'applications distribuées :
Une fonction est sur une machine et collabore au sein de l'application
avec une fonction sur une autre machine ;
Ø Une vision très différente de
l'interopérabilité:
· Parfois accessible par plusieurs langages ;
· Parfois accessible par plusieurs plateformes ;
· Parfois les deux.
Ø Couplage fort (technique,
métier) ;
Ø Points forts
(Fiabilité ;Capacité d'intégrer les messages
et les transactions)
Ø Points faibles (L'extension
(scalability) est limitée).
I.8.4 Middleware orienté
message (MOM)
I.8.4.1 Définition
Les middlewares orienté messages sont des outils
permettant aux applications d'interagir en échangeant des messages de
manières asynchrone et fiable.
On l'a vu, les MOMs sont des middlewares, des outils
d'échange qui permettent à des applications de communiquer en
échangeant des messages. Une application « A » doit adresser
un message à une application « B », qui tourne
(peut-être) sur un serveur différent.
I.8.4.2 Descriptions
L'application « A » confie son message au MOM, qui
se charge de l'acheminer et de le remettre à l'application « B
».L'objet véhiculé par le MOM entre deux applications est
appelé message.Mais rien n'est imposé quant à ce que
représente ce message, sa taille, ou encore le format des données
qu'il véhicule.
Pour l'essentiel, ces questions ne concernent que
l'application « A » et l'application « B », qui doivent
partager un certain nombre de conventions, afin de se comprendre.
Le MOM, quant à lui, ne s'intéresse donc pas au
contenu du message, il ne fait que le transmettre, et il le remet au
destinataire sans y avoir apporté de changement.
I.8.4.3 Différences
a. MOM, EAI, ESB
À la différence d'un MOM, un outil d'EAI
(Enterprise Application Integration), est aussi en charge de réaliser
transformations sur lesinformations portées par les messages, afin
d'adapter les données del'émetteur aux formats
gérés par le destinataire.
Un EAI englobe donc les fonctionnalités du MOM, et y
ajoute des possibilités facilitant l'intégration des applications
au niveau des données transférées.
Dans un MOM, comme on l'a vu, les applications doivent parler
le même langage, tandis qu'un EAI au contraire prend en charge les
traductionsentre représentations différentes.
Un EAI est donc un middleware qui a comme principales
fonctions :
· L'interconnexion des systèmes
hétérogènes.
· La gestion de la transformation des messages.
· La gestion du routage des messages.
L'ESB, Enterprise Service Bus, est un concept plus ambitieux
encore, qui se présente comme le socle uniforme d'une architecture SOA
globale. Là où l'EAI peut prendre en charge des transformations
de formats permettant à une application A d'interopérer avec une
application B.L'ESB généralise le concept, en posant pour
principe qu'il suffit qu'uneapplication A soit interfacée à l'ESB
pour qu'elle puisse interopérer par son intermédiaire avec toute
autre application interfacée à l'ESB.
Et par ailleurs, la connexion à l'ESB n'est pas
exclusivement à base de messages, elle doit supporter une grande
diversité de modes d'échange et de protocoles.
b. EDA, Event Driven Architecture
Puisque nous évoquons quelques acronymes en vogue, il
faut parler aussi du concept EDA, « Event-Driven Architecture »,
architecture pilotée par les événements, qui est à
certains égards une alternative à l'approche SOA.
L'approche EDA part de l'idée que tout traitement est
d'une certaine manière exécuté en réaction à
un événement. Et bien sûr, tout traitement est par ailleurs
générateur d'événements.
Ainsi, la vente d'un produit est un événement,
qui induit un ensemble de traitements relatifs par exemple à la gestion
des stocks, à la comptabilité, à la logistique, à
la relation client, etc. Tout est événement, tout est
réaction à des événements, et il en va de
même pour nous-mêmes, êtres humains, qui agissent en
réaction à un ensemble de stimuli externes.
Dans l'approche EDA, la réaction à un
événement n'est pas un traitement synchrone. Elle peut avoir des
exigences de rapidité, mais elle est par essence asynchrone. Alors que
l'approche SOA, même si elle peut se décliner dans une logique
asynchrone, est malgré tout par essence une approche synchrone. Et bien
sûr, les MOMs sont le support naturel d'une approche EDA.
Un dernier acronyme à trois lettres pour la route: CEP,
pour « Complex Event Processing », traitement
d'événements complexes, consiste àidentifier, puis
traiter, des événements complexes à partir
d'unecombinaison d'événements simples. C'est donc un
conceptcomplémentaire à l'approche EDA, partant du principe qu'il
ne suffit pasde réagir à des événements
individuels, il faut être en mesure d'identifierdes
événements de plus haut niveau, comme résultante
d'événementsélémentaires. Par exemple: un ordre de
vente, plus un autre ordre devente, plus encore un ordre de vente...
égal une crise financière,événement complexe, s'il
en est.
I.8.4.4 Des échanges asynchrones
Les échanges de messages mis en oeuvre par les MOMs
sont asynchrones. Cela signifie que les applications ne sont pas en attente
d'une réponse à leur message. En fait, il est possible qu'un
message de réponse soit attendu, mais dans ce cas il n'y a pas de
délai garanti pour cette réponse, de sorte que l'application ne
doit pas se bloquer en attente de la réponse, et encore moins faire
attendre un utilisateur. Le caractère asynchrone ne dit rien quant au
délai d'acheminement du message : il peut être très rapide,
de quelques millisecondes à peine, mais il ne doit pas être
considéré comme assuré.
I.8.4.5 Des échanges fiables
L'une des qualités attendues des MOMs est de garantir
l'acheminement des messages quelles que soient les circonstances, les
aléas, et en particulier y compris dans le cas où la
connectivité réseau est interrompue, où le serveur distant
est arrêté, ou bien où l'application destinatrice n'est pas
en mesure de réceptionner les messages. Dans tous ces cas de figure, le
MOM doit conserver les messages qui lui sont confiés jusqu'à ce
qu'ils aient été remis, et même, jusqu'à ce qu'ils
aient été correctement traités par l'application
destinatrice.
Nous verrons que cette fiabilité de l'acheminement peut
être rendue plus ou moins forte, selon les paramètres et la
configuration du MOM.
Les échanges à base de MOM ne sont pas, par
nature, en mode requête / réponse, comme peut l'être un
échange HTTP par exemple. Il estpossible bien sûr que
l'application destinatrice émette à son tour unmessage, que l'on
peut considérer comme une réponse, mais il s'agitalors seulement
d'une utilisation particulière du MOM.
I.8.4.6 Brokers
Les brokers sont des programmes gérant le flux de
messages. En d'autres termes, un MOM est composé d'un ou de plusieurs
brokers. Comme le montre la figure suivante, c'est avec les brokers que les
applications clientes communiquent, au travers de l'API.
Figure I.6: Architecture MOM à plusieurs
brokers
Un broker est un serveur au sens logiciel du terme,
c'est-à-dire un processus qui est à l'écoute des
requêtes qui peuvent lui être adressées par d'autres
processus, les applications clientes.
Une plateforme MOM ou plateforme middleware est donc
constitué d'un ensemble des brokers et des passerelles.
I.8.4.7 Protocoles et APIs
Lorsqu'une application échange avec un broker, par
exemple pour lui remettre un message, et de même lorsqu'un broker
échange avec un autre broker, ces échanges mettent en oeuvre un
protocole réseau. Le protocole définit les commandes
invoquées et leurs paramètres, ainsi que la représentation
des données, entêtes et corps, constituant les messages.
Figure I.7 Architecture protocole et API
Ce protocole est généralement invisible pour les
applications, qui ne voient que des appels de fonctions, des APIs. Et de
même, pour ce qui est des échanges entre deux brokers d'un
même MOM, le protocole peut être considéré comme une
affaire privée, interne, relevant purement de l'implémentation du
MOM. C'est pourquoi on s'intéresse généralement davantage
à l'ouverture des MOMs en termes d'APIs qu'en termes de protocoles
d'échange.
Ø Points forts (Tolérance de
panne ; Idéal pour la communication de groupes) ;
Ø Points faibles (Le même
message pourra être délivré plusieurs fois ;
L'extensibilité et l'hétérogénéité
sont limitées ; Ne supporte pas les propriétés des
transactions (ACID)).
I.9 SORTES DE
MIDDLEWARE
I.9.1 Les middlewares
payants
1. DCOM
Microsoft DCOM est souvent appelé «COM on the
wire». Il supporte les objets distants en exécutant un protocole
appelé ORPC (Object RemoteProcedure Call).
Un client DCOM appelle les méthodes exposées
d'un serveur DCOM en acquérant un pointeur sur l'une des interfaces de
l'objet serveur. L'objet client commence ensuite à appeler les
méthodes exposées de l'objet serveur via le pointeur d'interface
acquis, comme si l'objet serveur résidait dans l'espace adresse du
client.
Comme la spécification COM est au niveau binaire, les
composants du serveur DCOM peuvent être écrits dans divers
langages de programmation tels que C++, Java, Object Pascal (Delphi), Visual
Basic et même COBOL. Tant qu'une plateforme prend en charge les services
COM, DCOM peut être implémenté sur la plate-forme.
Cependant, il n'est pratiquement pas disponible sauf les systèmes
Windows.
2. RMI
Sun Java RMI est un ORB natif intégré en langage
Java. Il prend en charge les invocations de méthodes sur des objets
distants. Du point de vue de la programmation pratique, le développement
d'applications distribuées en RMI est plus simple que le
développement avec des sockets, car il n'est pas nécessaire de
concevoir un protocole, qui est une tâche sujette aux erreurs.
Dans RMI, le développeur a l'illusion d'appeler une
méthode locale à partir d'un fichier de classe local, alors que
les arguments sont envoyés à la cible distante et
interprétés, et les résultats sont renvoyés aux
appelants.
Le protocole sous-jacent pour RMI est Java Remote Method
Protocol (JRMP).
3. EntireX
Un logiciel middleware pour grands systèmes, Unix et
NT. Cette version permet désormais la communication entre des
applications XML et non XML et également entre les applications Corba et
non Corba. EntireX est compatible avec les plates-formes.
HP-UX 11, Sun Solaris 2. 7, SuSE Linux 6. 4 et Windows
2000.
I.9.2 Les middlewares open
sources
1. Java Open ReliableAsynchronous Messaging (ou
JORAM)
1.1. Présentation
JORAM Messaging, est leMiddleware de consortium Object Web.
Object Web est aussi connu pour son serveur d'application Java
nommé Jonas auquel est d'ailleurs intégré JORAM. JORAM est
sortie en 1999 et est distribué sous licence LGPL depuisMai 2000.
1.2 . Architecture
Figure I.8:Architecture JORAM
1.3 . Implémentation
JORAM a une architecture interne élégante,
basée sur le modèle d'agent.Un agent est un composant logiciel
répondant à certains événements. Dans le cas de
JORAM, les événements sont sous forme de messages.Les queues et
les topics sont ainsi représentés par des agents.
Un utilisateur connecté à la plateforme est
également représenté par un agent dit proxy. Cette
approche offre une grande flexibilité, car elle permet la
création et la suppression d'agents à la volée et sur
n'importe quel broker. Un broker est donc uniquement un serveur d'agent (ouun
container d'agent). À l'instar des EJB, ces agents ne peuvent pas encore
être déplacés de broker en broker.
Le code source récupéré du SVN JORAM est
assez bien documenté. Il est fait de « beans»
séparés en Interfaces et Implémentations. Dansl'ensemble,
le code respecte les bonnes pratiques de développement Java.
1.3.1 Langages pris en charge
Les langages par lesquels on peut accéder à
JORAM sont :
Ø Java via l'interface JMS.
Ø C et C++ : À l'aide de JNI, permettant ainsi
de simuler un environnement JMS.
1.3.2 Protocoles pris en charge
Le protocole interne de JORAM est propriétaire, et
n'est pas documenté. Nous estimons que c'est un handicap dans la mesure
où cela tend à limiter le nombre d'environnements dans lesquels
des APIs sont offertes, et à rendre plus difficiles les interconnexions.
Joram le désigne simplement par « TCP », mais il est
évident qu'il y a un protocole, non spécifié, au-dessus de
TCP/IP.
Ainsi, JORAM ne s'appuie pas sur des protocoles standards
comme AMQP ou STOMP.
JORAM met à disposition des passerelles permettant
d'étendre le nombre de protocoles gérés tout en se basant
sur le protocole dit
« TCP ».
Ø Passerelle SOAP (grâce à un serveur
d'application) : Permet la communication en SOAP avec le broker, donc en
principe depuis des environnements autres que Java.
Ø Passerelle Mail : Cette passerelle permet d'envoyer
et de recevoir des messages JMS en s'appuyant sur du SMTP (Protocole de mail).
Pour cela JORAM utilise des queues et topics spécifiques. Cette
passerelle est réalisée en Java.
Ø Passerelle FTP : JORAM réserve des queues
spécifiques pour les canaux FTP. Cette passerelle fonctionne sur le
même principe que la passerelle Mail. Elle est destinée à
l'échange de messages volumineux. Cette passerelle est
réalisée en Java.
1.3.3 Interfaces prises en charge
Selon les classes d'interface :
Ø Gestion des messages JORAM prend en charge le JMS 1.1
et est compatible avec JMS 1.0.2b. JORAM a aussi implémenté une
interface JMS 1.1 destinée, au Framework J2ME, la version de
l'environnement Java destinée aux mobiles, téléphones et
PDAs. JORAM peut donc être mis en oeuvre à partir de terminaux
mobiles compatibles Java.
JORAM prend aussi en charge JCA 1.5, lui permettant de se
connecter aux différents PGI du marché (Open ERP, ...) qui le
gèrent.
Ø Interfaces d'Administration, Monitoring,
Configuration.
JORAM supporte l'interface d'administration JMX. Il est
intégrable et configurable en Java. Il supporte aussi le JAAS
pourl'authentification et les habilitations.
1.4. Gestion des messages
Outre les fonctionnalités standards, JORAM gère
:
La notion de hiérarchie des topics : Chaque topic peut
être lié à un autre (et un seul) et recevoir tous ses
messages. À son tour, le parent topic reçoit tous les messages de
ces parents et les envoie à tous ses topics fils. Il n'est pas possible
de faire de traitement avec JORAM.
1.4.1 Persistance des messages
La persistance peut être gérée sur le
système de fichier, dans une base java embarquée (Derby, voir
plus loin pour plus de détail), ou sur une base de données
relationnelle externe via JDBC.
Derby est un système de gestion de base de
données relationnelle embarquée. « Embarquée »
veut simplement dire qu'il n'est pas nécessaire d'avoir un serveur de
base de données, au sens d'un processus distinct.
La base de données est dans le même processus que
l'application. Le support de stockage de la base Derby est le fichier. Derby
est une méthode avancée de lecture et d'écriture sur des
fichiers.Nous n'avons pas trouvé, dans les documentations fournies par
JORAM, d'information sur les optimisations possibles de la
gestion de la persistance.
1.4.2 Répartition de charge et haute
disponibilité avec plusieurs sites
Comme on l'a évoqué, JORAM est construit
selon une architecture à base d'agents. Cette architecture est
l'objet d'un livre blanc disponiblesur le site du produit.
Grâce à son architecture, JORAM assure :
Ø La disponibilité : pour rappel, la
défaillance d'un serveur n'affecte que les clients JMS connectés
à ce serveur. Les autres continuent à fonctionner en
accédant à d'autres copies du domaine. La synchronisation des
domaines se fait d'une manière transparente, selon un principe
maître-esclave.
Ø Répartition de charge : les applications
clientes sont réparties sur plusieurs serveurs de telle sorte que la
charge engendrée par la gestion des domaines soit répartie entre
les serveurs. Cette répartition peut soit être
réalisée manuellement (configuration et utilisation du «
Store and Forward »), soit être confiée à un
load-balancer.
1.5. Interopérabilité avec d'autres
MOMs
JORAM fournit un squelette de passerelle avec d'autres MOM
gérant leJMS 1.1.
1.5.1 Gestion de la sécurité et d'un
annuaire
JORAM peut être configuré pour utiliser des
connexions SSL / TLS.
Il gère l'authentification et l'autorisation.
Des fichiers de configuration au format XML sont
utilisés pour définir la configuration de sécurité.
Il est possible également de personnaliser la gestion de la
sécurité au travers JAAS.
Mais ces aspects ne sont pas suffisamment
documentés.
1.5.1 Administration
JORAM met à disposition une interface graphique
d'administration. Elle se base sur l'utilisation de JMX.
2. ActiveMQ
2.1. Présentation
Sorti en 2004, ActiveMQ est le MOM open source de la fondation
Apache. Il est distribué sous licence Apache 2.0.
Active MQ s'appuie sur quelques autres projets Apache :
Ø Apache Camel : Implémentation partielle des
« Entreprise Integration Patterns », que nous avons
évoqués plus haut.
Ø Jetty : Serveur d'application Java
intégré à Active MQ
Et Active MQ est à son tour utilisé par quelques
autres grands projets :
Ø ESB : Active MQ est utilisé par plusieurs ESBs
(Enterprise Service Bus) tels qu'Apache Service Mix et Mule.
Ø Serveur J2EE : Active MQ est intégré au
serveur d'application Geronimo (certifié JEE5) comme fournisseur JMS par
défaut.
Ø Axis et CXF : Extension de Active MQ.
2.1. Caractéristiques principales du
produit
2.1.1 Langages d'implémentation
Le code source récupéré du SVN, ne semble
pas toujours être d'une qualité exemplaire. La mise en forme du
code laisse à désirer et certaines parties ne respectent pas les
bonnes pratiques de codage Java : peu d'interfaces, classes et méthodes
trop longues, ... Mais la robustesse du produit est néanmoins
réputée.
2.1.2 Langages pris en charge
La diversité des langages et environnements
supportés est particulièrement grande, et c'est un des grands
atouts de Active MQ.
Comme on l'a évoqué, l'aptitude à faire
échanger des applications hétérogènes fait partie
des missions naturelles d'un middleware.
Les langages à partir desquelles on peut accéder
à Active MQ sont :
Ø C : grâce à la bibliothèque
OpenWire C Client ;
Ø C++ : grâce à CMS : C'est une
bibliothèque C / C++ proposant des interfaces similaires à
JMS ;
Ø Ajax, RESTful et SOAP : sous condition d'utilisation
des passerelles proposées par Active MQ. (La passerelle est sous forme
d'un servlet Java, fonctionnant sur Jetty, ou autre) ;
Ø .Net : grâce à NMS : C'est une
bibliothèque .Net proposant des interfaces similaires à
JMS ;
Ø Delphi and FreePascal grâce à Habari
Active MQ Client ;
Ø Perl, PHP, Pike, Python, Ruby, grâce au
protocole STOMP et aux librairies client correspondantes.
On voit que le choix du duo STOMP et OpenWire comme protocole
de communication a ouvert la voie à l'implémentation d'APIs dans
de nombreux environnements.
De plus, s'agissant de protocoles ouverts et bien
spécifiés, il est possible de réaliser un client STOMP
vers ActiveMQ depuis de nouveaux environnements s'il en manquait à la
liste.
2.1.3 Protocoles pris en charge
Les protocoles prit en charge par Active MQ sont les suivants
:
Ø AMQP : Ce protocole est pris en charge,e mais comme
sa définition est volatile, Active MQ prend en charge uniquement les
versions 0.8 / 0.9 ;
Ø OpenWire : Protocole de communication
messages ;
Ø STOMP : Protocole de communication messages ;
Ø JXTA : C'est un protocole permettant de créer
des réseaux au-dessus des réseaux. JXTA (pour juxtapose),
défini par une série de protocoles légers conçus
pour gérer n'importe quelle application peer-to-peer. JXTA est
compatible avec l'ensemble des plateformes informatiques.
L'implémentation Java est basée sur du XML. Avec Active MQ, il
agit en tant que connecteur ;
Ø XMPP : Le protocole de messagerie instantanée
utilisé par Jabber. Ainsi, on peut se connecter au MOM grâce
à un client de messagerie de type Jabber ;
Ø En ce qui concerne les protocoles proposés par
des passerelles :
Grâce aux sous-projets Axis et CXF de Apache, Active MQ
gère SOAP, REST, ...
Ø TCP ;
2.1.4 Interfaces prises en charge
Selon les classes d'interface :
Ø Messagerie ;
Ø JCA 1.5 sous Java ;
Ø JMS 1.1 et 1.0.2b sous Java ;
Ø NMS à partir des plateformes .Net ;
Ø CMS à partir des plateformes C/C++ ;
Ø Administration, Monitoring, Configuration ;
Ø JMX, XML, Spring, Java DSL et par messages.
2.2. Gestion des messages
Mis à part la gestion standard des messages
imposée par la spécification JMS 1.1, Active MQ gère :
Ø Groupe de messages : Ceci est un concept
intéressant dans la mesure où il assure que tous les messages
d'un même groupe soient reçus par un consommateur
déterminé. Les messages d'un groupe X seront consommés
uniquement par le consommateur privilégié. Si celui-ci meurt,
Active MQ choisit automatiquement un autre consommateur suivant la
configuration.
Ø Notion de sélecteur de messages compatible
avec XPATH (et SQL 92 issue de la spécification JMS).
Ø Cependant, il n'y a pas de notion de priorité
des messages. Il est possible de la simuler en utilisant des groupes de
messages ou bien des sélecteurs.
Ø Destination virtuelle : Il est possible de
définir des topics et des queues redirigeant vers des composants du
même domaine (topic vers topic et queue vers queue).
Ø « Total Ordering» : Active MQ a la
possibilité d'assurer que l'ordre de réception des messages
correspond bien à l'ordre d'envoi.
Ø Et bien d'autres, issues des EIP.
2.2.1 Traitement des messages
Le traitement des messages d'Active MQ est sans doute son plus
célèbre atout, après celui de sa grande
connectivité. À l'aide du projet Camel qui est
intégré, il a la possibilité de traiter les messages selon
les modèles d'intégration d'entreprises (EIP).
Citons un exemple faisant d'Active MQ un EAI à part
entière. Les fonctionnalités de routage et de transformation
représentent les caractéristiques principales des EAIs.
2.2.2 Gestion des transactions
Bien qu'il n'existe pas de documentation sur la méthode
de gestion des transactions en interne, ActiveMQ nous donne quelques pistes.
Par exemple, la journalisation du « Message Store »
permet la reprise sur incident sans perte de données lors d'un «
rollback» (retour arrière).
Attention, par défaut, le routage et la transformation
des messages ne sont pas transactionnels. Une « Dead Message Queue »
est présente.
2.2.3 Persistance des messages
Active MQ a introduit un mode de persistance appelé
« Active MQ Message Store » qui joint un stockage de données
sous forme de fichiers avec un système de journalisation et de mise en
cache. Il affiche des performances supérieures au système de
persistance sur fichier ou base de données seule. Il affiche aussi une
meilleure fiabilité, car il a été bâti pour le
transactionnel.
Regardons de plus près son fonctionnement.Lors de
l'écriture d'une donnée, le message réside en cache
(Mémoire volatile). On construit sa référence
(identification) qui sera stockée dans le journal des
références. Périodiquement, une copie du journal des
références caché est réalisée sur le support
persistant. Ceci représente le journal des références
persistant. De plus, si la donnée n'a pas été
consultée depuis longtemps (configurable), elle est
déplacée vers média persistant (d'une façon
transactionnelle) et ses références sont mises à jour
(cache et persistant).
Lors d'une lecture, on accède soit directement à
la donnée en cache, soit dans le média de stockage.Lors d'une
transaction, Active MQ ne modifie que les références des
messages.Active MQ recommande d'avoir un nombre de messages inférieur
à 1 million par page de cache. Le nombre de page de cache n'est pas
limité.
2.3 Interopérabilité avec d'autres
MOMs
Active MQ fournit une passerelle JMS aisément
configurable (DSL, Spring XML). L'authentification est aussi prise en compte
par les fichiers de configuration. Ces fichiers de configuration peuvent
être intégrés à ceux d'Active MQ.
2.4 Gestion de la sécurité et d'un
annuaire
L'authentification et la gestion des droits sont
intégrées sous forme de plugins dans Active MQ. Les plugins
proposés par défaut s'appuient sur JAAS ou sur des fichiers
XML.L'interconnexion entre brokers peut aussi être
sécurisée par mot de passe et / ou chiffrement (SSL). Il est
possible d'encapsuler les connexions dans du SSL entre les clients et un broker
pour sécuriser les échanges. Le SSL se comporte donc comme un
connecteur à part entière.Il possible de lier la
sécurité de la plateforme avec un serveur LDAP.
Active MQ fournit une interface de personnalisation via des
«Interceptors». Il est un ainsi possible d'étendre les
possibilités de Active MQ très facilement.
L'exemple le plus commun serait la gestion de
l'authentification. Les «Interceptors» permettent de modifier
certains comportements internes sans changer le coeur d'Active MQ et en
compatibilité avec les versions futures.
2.5 Administration
Le monitoring et l'administration de la plateforme sont
proposés :
Ø à travers de l'interface JMX ;
Ø au moyen d'une interface web (web console) ;
Ø par des messages : cette fonctionnalité est
aussi disponible à distance via le protocole XMPP (Voir le
Glossaire).
Active MQ propose des « Advisory Message » (message
d'information) qui permettent de connaître l'état du
système. Voici des exemples de métriques :
Ø Les connexions clients ;
Ø les files d'attentes créées et
détruites par les applications ;
Ø les messages expirés
Ø etc...
Les « Advisory Messages » sont organisés en
queues et topics protégés par mot de passe. On peut y
accéder à partir d'un simple client Active MQ (JMS ou autre).
Active MQ implémente aussi des « Mirrored Queues
» : les messages envoyés à une file d'attente seront, de
manière transparente, envoyés sur un Topic. Même si cette
fonctionnalité est à utiliser avec précaution, elle permet
à un ou plusieurs clients de suivre l'état d'une file d'attente.
C'est l'application du design «WireTap» (les écoutes
téléphoniques pratiquées par les espions) d'EIP.
De plus, Active MQ nous fournit une interface d'administration
Web.
Cette interface est démarrée par défaut
à l'aide de Jetty. Elle démarre par défaut à
l'adresse suivante : HTTP://0.0.0.0:8161/admin
2.6 Configuration et déploiement
Active MQ peut être installé sur n'importe quelle
plateforme supportant au minimum Java 5.
Ø Active MQ est configurable en utilisant des fichiers
XML intégrables à Spring.
Ø Active MQ se configure aussi à l'aide de Java
DSL.
Ø Active MQ peut aussi être configuré et
lancé à partir d'un autre programme (Java), c'est la notion de
« Embedded Broker » : le broker n'est plus un processus
indépendant auquel le programme s'adresse par le réseau, il
tourne dans le même processus que le programme client.
Active MQ est livré avec un ensemble d'exemples
codés en Java ou en Ruby. Tous les cas d'utilisation d'Active MQ ne sont
pas couverts par la trentaine d'exemples fournis.
3. MOM Open Message Queue (OMQ)
3.1 Présentation
OMQ est le Middleware Orienté Message de Sun. Il a
été développé pour fonctionner conjointement avec
GlassFish (Open ESB). Le principal contributeur est la communauté Sun /
Java.
OMQ a été réalisé pour fonctionner
avec GlassFish, le serveur d'application de Sun. Cependant, OMQ peut facilement
fonctionner tout seul ou avec d'autres types de serveur d'application Java.OMQ
est distribué sous deux licences : CDDL ou GPL v2.
3.2 Caractéristiques principales du
produit
3.2.1 Langages d'implémentation
Les sources, récupérables du site Internet de la
solution sont mal organisées. D'une part, on constate la présence
de binaires, de fichiers C et autres. De plus, il n'y a pas de système
de compilation automatique du type MAVEN ou ANT.
Ø Les seuls langages pris en compte sont
:
· Java via JMS 1.1 il ne gère pas le JMS 1.0.2)
· C : l'API est propriétaire Java,
Ø Protocoles pris en charge
Les protocoles externes pris en charge sont les suivants :
· UMS comme Universal Messaging System : C'est un
protocole de communication comparable à AMQP. Sun ne le
met guère en avant, étant données ses limitations en
termes fonctionnalités et de performance. UMS est basé sur du
XML, ce qui alourdit un peu les échanges.
A l'aide de passerelles, OMQ gère aussi le :
· SOAP : sur un support HTTP à partir d'un serveur
d'application.
· HTTP : passerelle sur un serveur d'application.
Ø Interfaces prises en charge
Selon les classes d'interface :
· Messagerie
§ JCA 1.5 sous Java ;
§ JMS 1.1 sous Java ;
§ API C : Elle est propriétaire à Java.
· Administration, Monitoring et configuration
§ JES : Java Monitoring plateforme Support ;
§ JAAS.
3.2.2 Gestion des messages
OMQ ne gère pas la priorité des messages ;
OMQ gère la compression et la décompression des messages à
la volée.Pour finir avec la gestion des messages, OMQ gère la
validation des contenus XML : « XML Schema Validation ».
Ø Traitement des messages (Le
traitement des messages n'est pas pris en compte par OMQ).
Ø Gestion des transactions
La gestion de transaction est offerte à la fois
à partir du C et du Java. OMQ propose aussi des interfaces du type XA /
JTA.
La gestion interne des transactions n'est pas
spécifiée.
Ø Persistance des messages
Il est possible de réaliser de la persistance sur le
système de fichier. La persistance est aussi disponible dans des bases
de données telles que : Oracle, MySQL, PostgresSQL, Java DB (Derby),
toutes accédées via JDBC.
Ø Interopérabilité avec d'autres
MOMs
Sun ne fournit aucun bridge JMS ou autre. Il est ainsi
à notre charge d'en créer ou d'en adapter un (open source)
à nos besoins.
Ø Gestion de la sécurité et d'un
annuaire
OMQ support SSL / TLS comme mode d'encryptions des messages.
Celui-ci peut se placer aussi bien entres applications et brokers
qu'inter-brokers.
Les applications clientes (consommatrices ou productrices)
peuvent se connecter grâce à un couple (nom d'utilisateur, mot de
passe). Les mots de passe sont encodés à l'aide de l'algorithme
MD5.
OMQ gère les groupes d'utilisateurs. On peut
personnaliser les accès aux éléments des brokers (queues,
topics, administration, monitoring) par utilisateurs ou par groupes.
Les supports de stockage des éléments de
sécurité sont:
· Fichier de configurations sous format XML
· LDAP
3.2.3 Administration
OMQ fournit aussi des outils d'administration en ligne de
commande permettant, à l'aide de scripts (shell ou autres),
d'automatiser certaines tâches. A titre d'exemple, « imqadmin »
et « imqcmd » permettent de gérer un parc de brokers, de
recharger une nouvelle configuration, ... Ces outils se montrent ainsi
particulièrement utiles.
Un monitoring du middleware est possible par messages. Il suit
les mêmes concepts que les « Advisory Messages » d'Active MQ.
La plateforme OMQ implémente JMX.
4 Configuration et déploiement
OMQ est réalisé en Java. Voici la liste des
systèmes d'exploitation dont Sun annonce le support :
Ø Solaris 9 ou 10.
Ø RedHat Entreprise Linux Advanced/ Entreprise
Server ;
Ø Windows XP / 2000 Server / 2009 Server ;
Ø Le fonctionnement sur une Linux Debian semble tout
à fait satisfaisant.
Toujours selon Sun, OMQ peut aussi bien tourner sous une
architecture Sparc que x86. Il requiert un minimum de 256 Mo de RAM, mais Sun
recommande 2 Go de Ram pour de la HA ou pour de gros volumes de messages.
Lors du téléchargement du paquet du site de Sun,
on remarque la présence d'un installateur graphique.
En ce qui concerne les exemples, ils sont au nombre de 41,
illustrant : JMS, JMX, le monitoring, et SOAP. On constate aussi la
présence d'une dizaine d'exemples montrant l'utilisation de l'API C. Les
exemples se limitent à l'utilisation des services de messageries et de
monitoring d'OMQ. Dommage qu'aucun exemple ne montre la mise en place d'une
plateforme en cluster ou high-availability (haute disponibilité).
I.10 INTERGICIELS DANS
L'ENVIRONNEMENT INDUSTRIEL
I.10.1 Industrie
électronique
Un intergiciel pour étiquettes
électroniques est un logiciel tiers destiné à
simplifier l'accès et l'exploitation des informations stockées
dans des étiquettes RFID issues de l'industrie électronique.
Les étiquettes électroniques sont le plus
souvent utilisées pour des besoins de marquage et de
traçabilité d'objets (suivi de palettes, de livres, de
chaînes de montage de voitures, sous la forme d'étiquettes
électroniques de gondole dans les grandes surfaces...) aussi bien que
d'êtres vivants (élevage, suivi d'animaux sauvages, ou encore
suivi de la chaine du froid). La conception et le développement de
nouveaux logiciels pour ces applications et pour bien d'autres
(monétique, authentification...) s'avèrent néanmoins
souvent délicat.
L'intégration, au sein des systèmes
d'information, des informations stockées dans la mémoire des
étiquettes électroniques est entravé par des
difficultés techniques liées à l'organisation de leurs
collectes mais aussi de leur filtrage.
C'est à cette fin que sont conçus les
intergiciels pour étiquettes électroniques. Ils ont pour
ambitions de :
1. gérer un parc hétérogène de
lecteurs ;
2. traiter les données issues des lecteurs (formatage,
agrégation, filtrage) ;
3. collecter des données lues à
distance ;
4. Notifier les événements significatifs
survenus dans l'infrastructure (apparition de nouvelles étiquettes,
retraits de lecteurs...).
Une entreprise produit des biens dans une usine (U). Ces
produits sont marqués d'une étiquette RFID et son
acheminés chez un transporteur (T). Ce transporteur regroupe les
produits par palette, et appose une étiquette électronique sur
chaque palette. Enfin, ces produits sont livrés chez un distributeur (D)
qui les stocke à l'arrière de la boutique. Chacun des
intermédiaires U, T et D possède un système d'information
qui lui est propre.
L'usine possède donc les informations sur les familles
de produits, le transporteur les associations palettes/produits, et le
distributeur l'association entre un identifiant et une famille de produit. Il
peut ainsi faire l'inventaire de ses stocks quasi-instantanément. Il
faut donc rendre communes et accessibles aux 3 entités les
données locales de chacune afin de rendre efficace le système
d'information.
Il existe aujourd'hui différents intergiciels assumant
tout ou partie de ces fonctions, dont certains sont des logiciels libres.
1.10.1.1 Principaux intergiciels pour
étiquettes électroniques
a. WinRFID
WinRFID est un intergiciel développés en
Microsoft .NET WinRFIDa cinq couches principales :
· Une couche traite le matériel - lecteurs,
étiquettes et d'autres capteurs.
· Une autre résume les protocoles de
lecteur-étiquette ;
· Vient la couche informatique, qui traite les
données produites par le réseau du lecteur ;
· Puis une couche constitue le cadre de XML pour la
représentation de données et d'information ;
· Enfin la couche supérieure traite la
présentation de données selon les conditions des utilisateurs ou
des différentes applications d'entreprise ;
La couche matériel traite l'abstraction de trois
éléments de l'infrastructure de RFID - lecteurs,
étiquettes et interfaces d'entrée-sortie. L'abstraction rend
très simple de dériver n'importe quel lecteur ou
d'étiquette.
Le composant protocole permet d'envelopper la syntaxe de
commande et la sémantique d'une série de protocoles
édités tels qu'ISO 15693, ISO 14443, A/B d'ISO 18000-6, ICode,
EPC classe 0 et EPC classe 1.
La couche présentation des données facilite la
visualisation de données pour la prise de décision.
b. IBM WebSphere RFID Middleware
Le middleware RFID IBM Websphere est composé de trois
éléments : l'infrastructure dispositif RFID Websphere (WRDI). Qui
permet de déployer entre autres les contrôleurs, les lecteurs et
les imprimantes RFID. Tous ces appareils étant pilotés par le
WRDI. Le WRDI permet également de filtrer et agréger les
données RFID en éliminant les doublons et en identifiant les
événements RFID pour minimiser le trafic sur le réseau.
Le serveur RFID Premises WebSphere permet un
déploiement de la RFID en entrepôt, dans des centres de
distribution ou des ateliers. C'est une plate-forme applicative J2EE permettant
d'intégrer les événements RFID provenant des
différents capteurs mis en place dans l'entreprise dans les processus
métier. le logiciel IBM WebSphere Business Integration ne fait pas
à proprement partie du middleware mais peut-être
considéré comme la partie émergée de l'iceberg
puisqu'il permet l'intégration des processus RFID dans les applications
métier de l'entreprise.
c. AspireRFID
Le projet d'AspireRFID vise à développer et
promouvoir un middleware open-source, léger, conforme aux standards,
évolutif et intégré avec plusieurs outils pour faciliter
le développement, le déploiement et la gestion des applications
basées sur RFID et sur les capteurs. Il met en oeuvre plusieurs
spécifications des consortiums comme EPC Global, NFC Forum, JCP et
OSGiAlliance. AspireRFID, fournit aussi un ensemble d'outils permettant aux
consultants RFID de déployer des solutions RFID sans avoir besoin de la
programmation ennuyeuse à bas niveau. AspireRFID permet les
spécifications des processus permis par RFID.
En conséquence, les outils produisent tous les objets
RFID exigés pour déployer ces solutions sur
l'AspireRfidmiddleware.
L'architecture d'Aspire RFID se compose :
· D'une couche d'abstraction de matériel, dont le
rôle est d'unifier la façon dont l'intergiciel ASPIRE agit avec
les lecteurs RFID des différents fournisseurs qui supportent
lesdifférents protocoles ;
· La couche "Reader Core Proxy" qui permet de transformer
un lecteur non conforme à la norme EPC en un lecteur conforme ;
· Une couche "Serveur de Filtrage et de Collection" qui
permet d'btenir uniquement les données utile à l'application.
d. Fosstrak
Fosstrak est une plate-forme logicielle open-source RFID qui
met en application les caractéristiques de réseau d'EPC. En
outre, AspireRFID utilise Fosstrak. Fosstrak possède :
· un serveur de filtrage et d'agrégation des
données ;
· un client autonome et WEB afin de pouvoir configurer
les serveurs de filtrage.
Tous les modules de Fosstrak implémentent la
spécification EPCglobal.
e. RFID Gateway
· RFID Gateway est une solution qui respecte les standard
EPC ;
· RFID Gateway possède une architecture modulaire
pour une mise en oeuvre progressive, possédant une capacité
d'extension. Il est basé sur une architecture JAVA et ainsi compatible
avec tout environnement JAVA sous Windows / Unix ;
· RFID GateWay permet également une
intégration rapide avec les applications d'entreprise
I.10.2 Industrie du jeu
vidéo
La production d'un jeu vidéo comprend plusieurs
étapes et nécessite un lourd travail de programmation à
plusieurs niveaux. Plutôt que de concevoir leurs propres solutions
logicielles, certains studios de développement peuvent recourir à
des technologies logicielles qui leur permettent de diminuer leurs
délais de production.
Cet ensemble de technologies comprend des engins
(gameengines), des intergiciels, qui sont soit des solutions logicielles
franchisées produites par des entreprises tierces et des outils
logiciels spécifiques (Maya, 3D Max), soit des suites logiciels
standardisées utilisées par les graphistes, les ingénieurs
du son, etc.
Les intergiciels de jeux vidéo sont pour l'instant peu
étudiés. Il nous apparaît alors d'autant plus
intéressant de comprendre cette industrie de l'intergiciel et son
rôle dans la filière de production d'un jeu vidéo.
Les engins et les intergiciels
Game middlewaresont des logiciels qui permettent d'automatiser
des suites de tâches de programmation nécessaires à la
production des jeux vidéo. Les intergiciels et les engins peuvent plus
précisément viser la gestion de l'intelligence artificielle (la
manière dont le jeu réagit aux actions du joueur), le graphisme,
les processus de texturage, l'animation ou encore le design de personnages. Ils
vont être destinés à certains types de jeux, chaque genre
de jeux nécessitant des technologies logicielles ad hoc
consacrées à en gérer les caractères particuliers.
Il existe des engins spécialisés dans les jeux
d'aventure, dans les jeux de tir à la première personne (FPS) ou
encore dans les jeux en ligne massivement multi-joueurs(MMO).
Ces engins sont conçus par les gros éditeurs ou
par des sociétés spécialisées et sont repris et
modifiés par des studios de développement de jeux (franchise) ou
par des communautés de développeurs si le code de l'engin ou du
middleware est ouvert.
Si tel est le cas, le code peut être modifié par
des communautés de développeurs extérieurs à
l'industrie. Ainsi, le jeu de tir à la première personne Half
Life sorti à la fin des années 1990 comprenait un engin dont le
code a été ouvert et retravaillé par une communauté
de développeurs pour mener à la production d'un nouveau jeu de
tir à la première personne, distribué en ligne et qui a
remporté un large succès auprès de la communauté
des joueurs.
Il existe même à l'intention de ces
communautés des sites répertoriant des solutions intergicielles
pour les développeurs. Il y a donc une circulation des outils logiciels
entre les sociétés spécialisées dans la production
d'intergiciels, les studios de développement de jeux vidéo et les
communautés de développeurs qui retravaillent le code d'engins ou
d'intergiciels existants pour y rajouter des fonctionnalités.
Les engins et les intergiciels peuvent renvoyer au même
type de logiciel, lanuance étant que les outils logiciels conçus
à l'externe sont considérés comme des intergiciels, tandis
que les solutions logicielles conçues à l'interne et qui sont
propres à une entreprise ou à un jeu sont des engins. Les engins
peuvent donc par la suite devenir des intergiciels s'ils sont revendus à
des sociétés tierces. La catégorisation dépend donc
du contexte de circulation de la technologie logicielle, qui devient tour
à tour engin ou intergiciel. Il existe aussi des solutions
intermédiaires : un engin acquis en franchise auprès d'une
société par un studio de développement peut faire l'objet
d'une personnalisation aux fins d'un jeu spécialement conçu par
le studio en question. Par exemple, la série du jeu d'aventure
SplinterCellconçue par Ubisoft utilisait l'engin Unreal
développé par une société extérieure pour
produire un autre jeu. Le marché des intergiciels dépend de
l'adoption par les studios de développement d'outils logiciels externes
et de la moindre production d'engins en interne. Ces technologies
intergicielles sont particulièrement importantes pour les
développeurs indépendants qui n'auraient pas les capacités
financières de concevoir leurs propres technologies.
Le développement de ces technologies logicielles est
fortement corrélé au développement des canaux de diffusion
des jeux vidéo, via Internet notamment (Bowen et Deuze, 2009), ce qui
entraîne une nouvelle demande pour la production rapide de nouveaux jeux
vidéo.
L'offre intergicielle tend de ce fait à
s'élargir. Certains packages d'intergiciels (middleware system)
proposent toutes les fonctions de base d'un type de jeu,
déclinées sous la forme de composants séparés --
par exemple la plateforme d'optimisation 3D Umbra Occlusion Booster
(Mäkinen, 2009). Les fonctionnalités des intergiciels et des engins
sont fortement dépendantes de l'évolution des matériels
informatiques. Selon OtsoMäkinen, le directeur de la technologie de la
société Umbra Software, les processeurs Intel ont joué sur
l'écart promotionnel de son logiciel un rôle crucial dans le
développement de nouveaux algorithmes et de nouveaux modèles de
programmation pour la nouvelle génération d'intergiciels.
I.11 AVANTAGES ET
INCONVENIENTS DU MIDDLEWARE
I.11.1 Avantages
Middleware est considéré comme un logiciel de
connectivité, car il fonctionne à rejoindre applications
grâce à la communication des mécanismes. Dans sa fonction,
le middleware est l'interface entre les applications logicielles
assistée et plates-formes d'applications, la création
d'évolutivité, de transparence et
d'interopérabilité. Logiciel middleware aide à la
connectivité de base de données en fournissant un accès
aux interfaces API de base de données.
L'avantage d'utiliser le middleware est la connectivité
de base de données standard et simplifiée, le logiciel fournit
des logiciels simplifiés.
· Le middleware vise à faciliter la programmation
distribué ou répartie.
· Développement, évolution,
réutilisation des applications.
· Portabilité des applications entre
plates-formes.
· Interopérabilité d'applications
hétérogènes.
I.11.2
Inconvénients
Toutefois, les inconvénients de ce type de middleware,
RPC en particulier, notamment la réplication, les problèmes
d'équilibrage de charge, d'évolutivité limitée et
le faible niveau de tolérance aux pannes. L'absence de soutien direct
dans divers domaines, les développeurs doivent faire face à ces
aspects, l'ajout d'un niveau élevé de complexité des
systèmes.
L'inconvénient des systèmes asynchrones est la
tête de réseau et lent serveur de traitement de message. Autres
inconvénients comprennent des limitations sur les plates-formes de
support de protocole doivent avoir prouvé moins populaire. Chacun des
produits middleware est conçu avec des différences
inhérentes, ce qui rend difficile de choisir le vendeur. Programmeur
Access Limited est l'un des principaux inconvénients.
RPC a une capacité de plate-forme, qui toutefois, les
inconvénients de ce type de middlewarecomprennent la réplication,
des problèmes d'équilibrage de charge, évolutivité
limitée et une faible tolérance aux pannes. L'absence de soutien
direct dans divers domaines exige des développeurs pour répondre
à ces questions, l'ajout d'un niveau élevé de
complexité des systèmes.
I.12CONCLUSION
Dans ce chapitre, nous nous sommes focalisés sur les
conceptsde base des systèmes distribués les intergiciels (MOMs)
en particulier. Nous avons donné en détail les
caractéristiques des systèmes distribués, leurs
architectures ainsi que les domaines concrets de leur application.
Le choix d'un MOM ; le choix du bon système MOM
représente un investissement important et le risque de se tromper peut
avoir un impact non négligeable sur votre avenir. Certains
critères de sélection peuvent être utilisés pour
choisir la perle rare des systèmes.
CHAPITRE II. ETAT DE L'ART SUR
LES ERPs
II.1 INTRODUCTION
Dans ce chapitre, nous allons présenter un état
de l'art sur le progiciel de gestion intégré en
générale(ERP).
II.2 PRESENTATION GENERALE DES ERP
II.2.1. DEFINITIONS ET
HISTORIQUE
a) Définitions
ERP vient de l'anglais (Enterprise Resource Planning).
Littéralement, ERP signifie donc : (Planification des ressources de
l'entreprise). On utilise parfois dans le monde francophone la
dénomination PGI : (Progiciel de gestion intégré).
Quoiqu'il en soit, un ERP a pour principale définition (Outil
informatisé de pilotage de l'entreprise).
A l'aide de ce système unifié, les utilisateurs
de différents métiers travaillent dans un environnement
applicatif identique qui repose sur une base de
données unique. Ce modèle permet d'assurer
l'intégrité des données, la non-redondance de
l'information, ainsi que la réduction des temps de
traitement.
Caractéristiques :
Ø Il émane d'un éditeur unique ;
Ø En cas d'impact d'un module, l'information est mise
à jour en temps réel dans l'ensemble des autres modules
associés ;
Ø C'est un système qui garantit la piste d'audit
: il est facile de retrouver et d'analyser l'origine de chaque
information ;
Ø Il peut couvrir l'ensemble du Système
d'Information (SI) de l'entreprise (sauf si l'entreprise ne choisit dans un
premier temps d'implémenter que certains modules de l'ERP) ;
Il garantit l'unicité des informations qu'il contient
puisqu'il n'a qu'une seule base de données au sens logique.
b) Historique
L'origine des PGI se trouve dans les méthodes de
planification des besoins en composants qui ont été
développées dans le cadre d'un impératif
d'intégration de plus en plus poussée des fonctions de gestion de
l'entreprise.
Dans les années 1960, Joseph
Orlicky étudie le programme de production de Toyota et
conçoit le MaterialRequirements Planning (MRP). Puis Oliver
Wight et George Plosslmettent au point le MRP into manufacturing resource
planning (MRP2). D'où une évolution en trois phases:
· MRP0, en
anglais MaterialRequirements Planning Zero (littéralement,
« planification des besoins en matières 0 ») :
méthode de calcul des besoins matière, mise au point en
1965 ;
· MRP1, en
anglais MaterialRequirements Planning One : première
application industrielle de la gestion intégrée des flux de
production, mise au point en 1971 ;
· MRP2, enanglais Material
Requirements Planning Two (litt. « planification des ressources
pour la fabrication 2 ») : en plus du calcul des besoins nets en
matières premières et composants, effectue une planification des
lancements en tenant compte des capacités des ressources par
période ; mise au point en 1979.
À partir de 1990 environ, la logique
introduite par le MRP s'étend progressivement à
l'ensemble des fonctions de l'entreprise, pour donner l'« ERP
» (E comme entreprise). Cette transition est facilitée
par :
Ø L'état des systèmes d'information dont
« les applications de base sont installées dans
différents départements (services clients, marketing,
ventes, comptabilité, fournisseurs, production, distribution,
personnel) et ne permettent pas aux utilisateurs de partager un langage
commun. Si des interfaces entre ces différents domaines de l'entreprise
ont été mises en place, elles sont rarement en temps réel
et les exemples où la même donnée est saisie deux ou trois
fois, voire plus, ne sont pas rares. (...) les coûts induits sont
inestimables : perte de temps, manque d'efficacité, mauvaise
visibilité, mauvais processus décisionnel, duplication d'effort,
taux d'erreur élevé. (...) Dysfonctionnements qui se traduisent
(...) par un mauvais service client et une perte de compétitivité
de l'entreprise ».
Ø « Le développement de logiciel est
un domaine (...) encore au stade artisanal où l'approche composant -
autrement dit l'approche objet- n'en est encore qu'à ses
débuts ». Le développement logiciel dépend
fortement de la capacité individuelle du développeur et n'est pas
conduit par la recherche systématique du réemploi de ce qui a
bien fonctionné dans le passé. « Le composant logiciel
(l'objet) n'occupe pas la place qui devrait être la sienne alors qu'une
nouvelle industrie logicielle est en train d'émerger qui s'inspire des
concepts des ateliers de production des industries
manufacturières : recherche, engineering, nomenclature, montage,
assemblage, version, pièces détachées, inventaire,
réutilisabilité, contrôle qualité ».
Ø Les objets logiciels ne sont pas les seuls
éléments à devoir faire l'objet d'une meilleure
intégration. Les composants techniques issus de fournisseurs divers et
indépendants ne facilitent pas l'intégration :
systèmes d'exploitation, protocoles de communication, base de
données, Interface Homme/machines, machine serveur et machines client,
réseau local et étendu, composants bureautiques et
multimédias, etc.
Ø Enfin, les profondes modifications
nécessitées par le passage informatique à l'an
2000 ont fait que les progiciels de gestion intégrés ont
été considérés comme une opportunité
technique à saisir pour remplacer des systèmes informatiques
vieillissants et difficilement convertibles pour des raisons d'obsolescence
technique. L'expansion considérable de ces logiciels dans
les années 1990 s'explique en grande partie par les
améliorations techniques apportées dans la conception et la mise
à jour des systèmes d'information, mais aussi par les
opportunités conjointes de refonte des organisations ouvertes à
cette occasion.
II.2.1 DESCRIPTION
a) Familles
On distingue néanmoins deux familles de
produits :
Ø les outils de type PSA (Professional Service
Automation) qui s'adressent à des activités de service
qui nécessitent une organisation en mode projet : ils sont
centrés sur le service des fonctionnalités de gestion de projet
et éventuellement sur celles du GRC/CRM, ce qui ne couvre donc pas
l'ensemble des fonctions de l'entreprise à la manière d'un
PGI.
Ø les outils de type ESA (Enterprise Service
Automation) plus conformes à la définition d'un PGI. Les
solutions d'ESA sont en effet capables de servir les fonctions usuelles d'un
outil de GRC/CRM, (comme la prise de commande ou l'élaboration d'une
proposition commerciale) mais également la plupart des fonctions de
gestion administrative d'une entreprise.
Le principe fondateur d'un PGI est de construire
des applications informatiques :
Ø de manière modulaire et
intégrée au niveau des traitements offerts (les
différents modules qui le composent sont indépendants mais
parfaitement compatibles entre eux) ;
Ø de manière rigoureuse et cohérente
au niveau des données gérées (partage d'une base
de données unique et commune).
II.2.2 EVALUATION DE L'EMPLOI D'ERP
a) Mise en oeuvre des ERP
Un projet PGI est un projet de transformation. Pour qu'un PGI
soit un succès il faut une mobilisation complète de
l'entreprise.
Ø La DG ou les directions métiers sont
mobilisées dès la phase de choix d'un PGI avec
l'élaboration d'un business case qui vise à partager
largement dans l'entreprise, les raisons de la mise en place, le
périmètre visé et les gains attendus ;
Ø Une phase de sélection permet à
l'entreprise de trouver les partenaires qui vont l'accompagner,
généralement un éditeur (du PGI), un intégrateur
(ou SSII spécialisée) pour la mise en oeuvre et parfois
un cabinet de conseil pour la refonte des processus et
l'accompagnement des changements ;
Ø Les PGI sont mis en place dans les organisations en
« mode projet ». La méthodologie utilisée
s'appuie sur les démarches et outils de gestion de projets,
de gestion des risques et surtout de conduite de
changement nécessaire pour les projets de transformation et donc
essentielle pour les projets PGI ;
b) Avantages
Les PGI (opposés
aux applications dédiées) présentent plusieurs
avantages :
Avantages natifs des PGI :
Ø Intégration des processus de
gestion, largement exploitée par les entreprises pour optimiser le suivi
financier et le contrôle de gestion ;
Ø Cohérence et homogénéité
des informations (un seul fichier articles, un seul fichier clients,
etc.) ;
Ø Intégrité et unicité
du Système d'information ;
Ø Partage du même système d'information
facilitant la communication interne et externe ;
Ø Fiabilité. Une entreprise optant pour un PGI
bénéficie généralement d'un outil
éprouvé par de nombreuses entreprises de son secteur
d'activité et par conséquent en fiabilisation continue au titre
de la maintenance éditeur ;
Ø Évolutivité, garantie par la
cohérence du modèle de données qui constitue le socle de
tous les processus / fonctionnalités SI couverts par le PGI. Le PGI
permet une implémentation adaptée et progressive de ces processus
/ fonctionnalités ;
Ø Rationalisation de l'architecture applicative et
technique : diminution du nombre d'outils et par conséquent des
interfaces entre ces outils, potentielle diminution ou optimisation des
machines et serveurs supportant le système d'information.
Ø Minimisation des coûts : pas d'interface
entre les modules, synchronisation des traitements, maintenance corrective
simplifiée car assurée directement par l'éditeur et non
plus par le service informatique de l'entreprise (celui-ci garde
néanmoins sous sa responsabilité la maintenance
évolutive : amélioration des fonctionnalités,
évolution des règles de gestion, etc.) ;
Ø Globalisation de la formation (même logique,
même ergonomie) ;
Ø Diminution du nombre de salariés ayant pour
mission principale la saisie comptable (aide-comptable);
Ø Maîtrise des coûts et des délais
de mise en oeuvre et de déploiement ;
Ø Disponibilité et maturité (au niveau
coûts, délais, qualité) des prestations de service
dédiées au PGI.
Opportunités liées à
l'implémentation d'un PGI
Ø Favoriser l'intégration entre les
départements, matérialiser la stratégie et les politiques
de gestion de l'entreprise dans le système d'information ;
Ø Rapprochement des métiers et de la DSI,
appropriation du système d'information par les métiers. Les PGI
étant nativement calqués sur les processus métier et
flexibles, ils favorisent l'émergence d'une population métier
sensibilisée aux aspects techniques du PGI et d'une population DSI
sensibilisée à ses aspects métier ;
Ø Étendre l'intégration du système
d'information à la supplychain amont et aval (fournisseurs et
clients) ;
Ø Standardiser les processus SI et déployer les
standards sur l'ensemble des organisations de l'entreprise.
Ce dernier point est essentiel et la mise en oeuvre d'un PGI
dans une entreprise est fréquemment associée à une
révision en profondeur de l'organisation des tâches et à
une optimisation et standardisation des processus, en s'appuyant sur le
« cadre normatif » du PGI.
c) Désavantages
Les PGIs ne sont cependant pas exempts
d'inconvénients :
Ø La mise en oeuvre peut s'avérer complexe si le
périmètre fonctionnel est mal déterminé ou trop
mouvant ou le projet mal piloté ;
Ø coût élevé
de 300 000 € minimum pour un progiciel fiable et de
qualité, mais pouvant rapidement monter beaucoup plus haut, en fonction
de l'industrie et de la complexité du projet. L'option fonctionnellement
riche des solutions de logiciels libres si elle réduit les
coûts de licence, ne supprime pas les coûts d'accompagnement et de
formation. Le paramètre coût est également fonction de la
lourdeur et de la rigidité de mise en oeuvre de l'outil qui peuvent
être accrues par les difficultés de son appropriation par les
utilisateurs ;
Ø périmètre fonctionnel non adapté
au besoin réel de l'organisation : le progiciel peut être
surdimensionné et donc sous-utilisé s'il est plus large que les
besoins effectifs de l'organisation, ou au contraire être
sous-dimensionné s'il n'est pas capable de couvrir l'ensemble des
besoins avérés ;
Ø nécessité d'une bonne connaissance
des processus de l'entreprise (par exemple, une petite commande et
une grosse commande nécessitent deux processus différents :
il est important de savoir pourquoi, de savoir décrire les
différences entre ces deux processus de façon à bien les
paramétrer et à adapter le fonctionnement standard du PGI aux
besoins de l'entreprise) ;
Ø captivité vis-à-vis de
l'éditeur : le progiciel choisi ne peut pas toujours s'adapter
à l'organisation qui s'équipe. Le choix d'une solution devient
fortement structurant pour l'entreprise, et, au-delà d'un simple
paramétrage, ce sera à l'organisation de s'adapter au progiciel
(et non l'inverse). Par ailleurs, l'outil PGI risque d'être
extrêmement lourd et couteux à gérer notamment s'il
nécessite une maintenance continuelle et s'il rend la moindre adaptation
(voire son abandon pour un autre produit) très difficile.
L'émergence récente de plusieurs
PGI libres permet de minimiser les inconvénients de coût
(liés à l'acquisition des licences logicielles), de
rigidité et surtout de captivité. L'utilisation de formats
ouverts facilite également les échanges de données,
en interne et vers l'extérieur.
Pour finir, la pérennité de l'éditeur est
un élément majeur à vérifier avant de s'engager
dans un projet PGI. Le vrai coût est celui du temps passé en
interne, plus que celui de l'achat des licences. La validité du
modèle économique du partenaire retenu, dans le temps, est un
critère fondamental. Quel que soit le produit retenu, à
méthode de travail égale et périmètre fonctionnel
identique, les coûts ne sont pas forcément très
éloignés d'une société à l'autre quand on
compare les acteurs historiques qui durent dans cet environnement très
concurrentiel.
II.3 ETUDES COMPARATIVES DES ERP
Figure 1I.1 : ERP (principales
modules)
II.3.1 LES ERP PAYANTS (LICENCE PAYANTE)
Les
ERP payants ont des licences payantes.Voici six ERP propriétaires :
a)Helios ERP
Il permet de modéliser simplement le fonctionnement de
votre entreprise d'industrie mécanique et il est adapté aux
exigences des secteurs Aéronautique, Automobile, Biens d'Equipements,
Armement et Ferroviaire. Hélios II, c'est une gestion orientée
logistique client et une traçabilité complète : traitement
automatique des contrats logistiques EDI, Plan de production, pilote d'atelier
en temps réel, gestion de la matière (chutes, fibrage), bilans
d'affaires, analyse financière, gestion de la qualité
complète et intégrée, portail d'accès Internet
clients. Dans la gestion de production classique, Helios ERP assure la
maîtrise des coûts et des délais ainsi qu'une
traçabilité complète des flux sur l'ensemble des processus
de la "supplychain".
b) Sage ERP X3
L'éditeur Sage propose deux
déclinaisons différentes :
Ø L'édition Standard, plus
particulièrement destinée aux petites structures (50 à 500
personnes), qui souhaitent une mise en place rapide et des moyens de mise en
oeuvre réduits et maîtrisés ;
Ø L'édition Premium, destinée aux
entreprises à partir de 500 salariés, organisées en
multi-sociétés, multi-sites, souhaitant intégrer à
leur système d'information les filiales étrangères, avec
une forte personnalisation des processus métiers dans les secteurs
négoce, services, industriels.
Structure fonctionnelle
Sage ERP X3 est une progicielle multi-devise,
multi-société, multi-dépôts et multi-sites.Par
législation standard, c'est un progiciel entièrement
préparé, intégrant un pré-paramétrage
complet : états légaux, plan comptable de
référence lorsqu'il existe, fichiers bancaires, règles de
taxe (TVA exemple).
Sage ERP X3 intègre en standard différentes
fonctions de gestion d'entreprise :
Ø gestion financière (Comptabilité
générale, analytique, budgétaire et auxiliaire) ;
Ø gestion commerciale (ne gère pas les
transferts et la maintenance) ;
Ø gestion industrielle (Production, Contrôle de
gestion industriel) ;
Ø gestion de services (Support client).
c) One up
Est un éditeur de logiciel, qui propose aux entreprises
un ERP, qui permet à celles-ci de relier entre eux l'ensemble des
processus sous-jacents à toute entreprise (facturation,
comptabilité, paie) et des processus qui lui sont spécifiques
(logistique, relation client, suivi d'avancement...).
d)Cumatica
Construit sur la meilleure plateforme cloud du monde, avec un
modèle de licence unique et centré sur le client, Acumatica offre
une suite d'applications entièrement intégrées. C'est
actuellement la seule solution sécurisée d'ERP Cloud,
basée sur un navigateur facile à utiliser, personnalisé et
équipé d'une flexibilité de déploiement et de
paiement.
La solution d'ERP sur le cloud qu'Acumatica propose permet de
profiter de l'évolutivité des applications et de coûts
matériels réduits. En effet, les clients peuvent construire un
cloud interne pour réduire les coûts de matériel tout en
maintenant un contrôle accru sur l'intégration ou acquérir
un ERP Cloud sans avoir à gérer le matériel, le logiciel
et les mises à niveau grâce à la version en SaaS.
e)Auriga
Expert reconnu des progiciels de gestion propose aux
établissements d'enseignement supérieur et de formation continue
des solutions qui allient performance et expertise métier.
Paramétrable, la suite AURION s'adapte à votre configuration.
Modulaire, l'ERP s'adapte à vos besoins fonctionnels : Inscriptions,
suivi des cursus, notation, certification, crédits ECTS,
diplômes, plannings, relations entreprises, facturation des frais de
formation, gestion des concours, web, pilotage.
AURION permet une gestion complète de toutes les
activités d'un établissement de formation, quelles que soient sa
taille, sa spécialité, son organisation :
Ø suivi administratif et pédagogique des
étudiants, de leur scolarité ;
Ø gestion des ressources humaines et préparation
de la paie des intervenants, enseignants,...
Ø planification et optimisation logistique des
ressources : cours, matériels, salles,...
Ø suivi des relations avec les partenaires : stages,
emplois, taxe d'apprentissage, évènements de promotion,
prospection, fundraising,...
Ø facturation des frais de formations ;
Ø organisation des concours d'entrée
f) SAP
SAP (Systems, Applications and Products for data processing en
anglais et Systeme, AnwendungenundProdukte in der Datenverarbeitung en
allemand) est par abus de langage le nom utilisé pour désigner un
progiciel de gestion intégré développé et
commercialisé par l'éditeur de ce produit (SAP AG).
Le nom exact du progiciel a été plusieurs fois
modifié au fur et à mesure de l'évolution des versions. En
parallèle de l'évolution du produit, la société SAP
a utilisé plusieurs terminologies commerciales pour désigner son
offre telles que mySAP.com, mySAP ERP ou mySAP Business Suite. Les logiciels
SAP reposent aujourd'hui sur une architecture technique commune appelée
SAP NetWeaver dont le principal composant est le Web AS (Web Application
Server). Les modules sont les composants fonctionnels du système SAP
ERP. On peut distinguer trois familles de modules fonctionnels : logistique,
gestion comptable et ressources humaines. En parallèle, SAP a
développé une offre sur la mise en conformité
réglementaire par rapport aux exigences de développement
durable.
La société SAP a également étendu
les fonctionnalités de son logiciel pour couvrir les processus propres
à chaque secteur d'activité et l'a décliné en 23
solutions qui sont : Aérospatiale et défense, Automobile, Banque,
Produits chimiques, Biens de consommation, Bâtiment et Travaux Publics,
Services financiers, Santé (établissements de soin), Enseignement
supérieur et recherche, Haute technologie, Équipement industriel,
Assurances, Industrie des médias, Industrie textile, Industrie
minière, Pétrole et gaz naturel, Industrie pharmaceutique,
Services professionnels, Administration et secteur public, Commerce de
détail et distribution, Prestations de services,
Télécommunications, Production, transport et distribution
d'énergie.
II.3.2. LES ERP GRATUITS (OPEN SOURCE)
Les ERP gratuit ont des licences non-payantes. Voici six ERP
libre et gratuit :
a)Ekylibre
Est un progiciel de gestion intégré pour
entreprise, distribué sous licence libre (GPLv3), qui répond de
manière efficace à la complexité et aux besoins croissants
des entreprises agricoles. Il est basé sur une modélisation
durable inspirée de la recherche CEMAGRIM et de l'étude
d'exploitations agricoles pilotes. Ekylibre a été conçu
dans l'esprit d'une consultation multi-utilisateurs et multiplateforme
(Smartphone, tablette, ordinateur) sans avoir à installer d'application
supplémentaire .Le leitmotiv du projet est «simple mais
complet».
Aspects techniques
Au niveau technique, il utilise le frameworkhttp, la base de
données Postgresq/ (avec le cartouche spatial Postgis). Les standards
utilisés reposent sur HTML5, CSS3, SVG et XML.
Fonctions
Ekylibre permet de gérer toutes vos productions, votre
comptabilité, vos ventes, vos approvisionnements, votre
traçabilité, vos documents réglementaires... de
façon collaborative au sein de votre entreprise.
b)Axelor Business Suite
ERP Axelor Business Suite, écrit en JAVA. Au menu,
gestion de la relation clients, des ventes, des achats, du stock, de la
production, comptabilité, RH, gestion documentaire, gestion de projets.
Il inclut aussi un outil de conception graphique des processus (BPM).
c) Apache OFBiz
Est un logiciel libre et open source intégré
constitué d'une suite d'applications pour l'entreprise et utilisé
pour automatiser de nombreuses procédures d'entreprise. C'est le seul
projet de cette envergure (progiciel de gestion intégré) qui soit
géré uniquement par une communauté internationale
d'utilisateurs (individuels et entreprises) sans une entreprise unique en
arrière-plan.
Apache OFBiz intègre notamment les
fonctionnalités suivantes :
Ø Progiciel de gestion intégré (PGI ou
ERP : Enterprise Ressource Planning)-planification des ressources ;
Ø Comptabilité GRC (CRM: Customer Relationship
Management) ;
Ø Commerce électronique (e-commerce) ;
Ø Gestion de la chaîne logistique (GCL, SCM :
supplychain management) ;
Ø Planification des besoins en composants
(MRP) ;
Ø Gestion de Maintenance Assistée par Ordinateur
(GMAO ou CMMS) Gestion de l'architecture d'entreprise (EAM : Enterprise
architecture management) ;
Ø Gestion de projet ;
Ø Gestion des ressources humaines ;
Ø Gestion de contenu (CMS) En relation avec les
données de l'ERP. Permet une intégration directe, au sein de la
gestion de contenu, de tableaux, graphiques... ;
Ø Marketing Campagnes, sondages, listes de
contacts ;
Ø Point de vente (POS). Gestion de points de vente,
éventuellement en réseau reliés à une base de
données centrale. La gestion des points de vente peut se faire avec
autant de niveaux (départementaux, régionaux, etc.) que
nécessaire en utilisant une synchronisation sécurisée
(reprise sur erreur) par Internet.
d) SQL Ledger
Est un logiciel libre de comptabilité en partie double
et un progiciel de gestion intégré (PGI). Les données
comptables sont stockées sur un serveur SQL et un navigateur web
ordinaire sert d'interface utilisateur. Ce système utilise le langage
Perl et un module Perl de traitement des bases de données ainsi que
PostgreSQL, Oracle et DB2 pour le stockage des données.
SQL Ledger est distribué sous les termes de la licence
publique générale GNU.
e) ERP5
Est aujourd'hui le Progiciel de Gestion Intégré
en licence libre le plus avancé du marché tant par
l'étendue de sa couverture fonctionnelle que par les technologies qu'il
met en oeuvre.
Les Atouts Spécifiques d'ERP5
Ø Hautes Performances : ERP5 est
utilisé par de grandes entreprises pour des applications critiques dans
le secteur bancaire, aérospatial, de la santé, du transport, de
l'habillement et du secteur public. La capacité de l'application
à servir un grand nombre d'utilisateurs et des volumes de données
importants est un facteur distinctif majeur d'ERP5.
Ø 100% Libre (Open Source) : tous les
modules d'ERP5 sont diffusés sous licence GPL (GNU General Public
Licence) et l'architecture logicielle d'ERP5 est constituée
exclusivement de composantes libres : Linux, Python, Zope, MySQL, OpenLDAP.
Ø Couverture Fonctionnelle : ERP5
couvre tous les domaines de gestion de l'entreprise : la gestion comptable et
financière, la gestion des achats et des ventes, la gestion des
données produits et des stocks, la gestion de production et la
logistique, la gestion de projets, la gestion des ressources humaines et de la
paie ainsi que le Knowledge Management.
Ø Accessibilité : ERP5 est une
application 100% web utilisable depuis n'importe quel PC ou terminal portable
connecté à internet. ERP5 dispose d'une interface
spécifique pour son utilisation depuis un téléphone
mobile. Grâce au moteur de synchronisation SyncML d'ERP5, vous pouvez
également synchroniser des données avec d'autres applications et
notamment avec votre agenda ou carnet d'adresse de manière à
accéder à vos données même lorsque vous n'êtes
pas connecté.
Ø Environnement de Développement Rapide
(RAD) : ERP5 peut être adapté rapidement à vos
besoins par l'écriture de scripts Python. Le système peut
être modifié à chaud et les toutes les modifications
apportées deviennent effectives sans arrêt et redémarrage
de l'application. L'environnement de configuration d'ERP5 est lui aussi 100%
web et autorise le travail collaboratif d'équipes distantes sur un
même projet.
f) Odoo (Open ERP)
Odoo, anciennement OpenERP1 et Tiny ERP, est initialement un
progiciel open-source de gestion intégré comprenant de
très nombreux modules permettant de simplifier la gestion d'entreprise
dans son ensemble. Le logiciel est utilisé par plus de deux millions
d'utilisateurs pour gérer leurs entreprises à travers le monde.
Serveur client web
Dans un, un client est le logiciel qui envoie des
demandes à un
serveur.
Il peut s'agir d'un logiciel manipulé par une personne. Est
appelé client aussi bien l'ordinateur depuis lequel les
demandes sont envoyées que le logiciel qui contient les instructions
relatives à la formulation des demandes et la personne qui opère
les demandes.
L'ordinateur client est généralement un
ordinateur personnel ordinaire, équipés de logiciels relatifs aux
différents types de demandes qui vont être envoyées, comme
un
navigateur
web, un logiciel client pour le
World wide
web.
N'importe quel navigateur (Internet Explorer, Firefox Mozilla,
google chrome) peut être utilisé comme client léger pour
Odoo.
II.4 Architecture
(serveur-client web)
Dans un réseau informatique,
un client est le logiciel qui envoie des demandes à
un serveur. Il peut s'agir d'un logiciel manipulé par une personne.
Est appelé client aussi bien l'ordinateur depuis lequel les
demandes sont envoyées que le logiciel qui contient les instructions
relatives à la formulation des demandes et la personne qui opère
les demandes.
L'ordinateur client est généralement un
ordinateur personnel ordinaire, équipés de logiciels relatifs aux
différents types de demandes qui vont être envoyées, comme
un navigateur web, un logiciel client pour le World wide web.
N'importe quel navigateur (Internet Explorer, Firefox Mozilla,
google chrome) peut être utilisé comme client léger pour
Odoo.
Figure II.2 : Architecture technique d'un ERP ou
PGI (OpenERP ou Odoo)
CONCLUSION
Au-delà de ces acronymes, L'ERP est un
progiciel qui permet de gérer l'ensemble des processus
opérationnels d'une entreprise, en intégrant plusieurs fonctions
dans un système. Autrement dit, à savoir qu'un
ERP serait la « colonne vertébrale » d'une
entreprise.
De manière globale, les logiciels
ERP s'adressent aux entreprises menant des projets
nécessitant de multiples compétences et devant coordonner le
travail de plusieurs équipes ou au moins de plusieurs personnes. On peut
considérer qu'un logiciel ERP est
nécessaire pour conduire un projet où une dizaine de personnes
doivent intervenir. Ils peuvent être gratuits ou propriétaires
(payants) au niveau des licences.
Le choix d'un ERP ; le choix du bon système ERP
représente un investissement important et le risque de se tromper peut
avoir un impact non négligeable sur votre avenir. Certains
critères de sélection peuvent être utilisés pour
choisir la perle rare des systèmes. On peut citer : les
activités métiers de l'entreprise, la préférence
des utilisateurs, le coût, le nombre des fonctionnalités
supportées etc.
CHAPITRE III. ETUDE ET
ANALYSE DE L'EXISTANT
III.1 INTRODUCTION
Dans ce chapitre, nous allons présenter la SNEL qui est
le cadre de notre projet. Nous allons également décrire le
système existant pour le paiement de facture qui présente des
limites dans le système de paiement évolué. En critiquant
l'existant, nous allons proposer une solution pour pallier à ces
problèmes et faire ressortir les besoins fonctionnels et non
fonctionnels pour concevoir un nouvel outil de paiement pour le cas de la
SNEL.
III.2
PRESENTATION DE LA SOCIETE NATIONALE D'ELECTRICITE
III.2.1 Historique de la SNEL.
La Société Nationale d'Electricité, SNEL
en sigle est une société d'Etat dont le siège est
situé sur l'avenue de la justice au numéro 2831 dans la commune
de la Gombe à Kinshasa, capitale de la République
Démocratique du Congo.
Cette entreprise a été créée par
l'ordonnance loi n° 70/033 du 16 mai 1970. Elle est dotée d'une
personnalité juridique et est placée sous un double tutelle,
celle du Ministère de ressource hydraulique et
électricité, en ce qui concerne la gestion technique, et celle du
portefeuille pour la gestion administrative et financière.
Soucieux de répondre aux besoins
énergétiques du pays, les pouvoirs publics, par ordonnance loi
n°67- 391 du 23 septembre 1967, instituant le comité de
contrôle technique et Financier pour les travaux d'Inga, lequel
comité sera remplacé en 1970 par la SNEL.
A la suite de la mise en oeuvre de la centrale d'Inga I le 24
Novembre 1972, SNEL devenait effectivement productrice, transporteuse et
distributrice d'énergie électrique â l'instar d'une
société d'Etat, REGIDESO, et des sept sociétés
commerciales privées existantes, ayant le même objet social.
Il s'agit de :
· COLECTRIC ;
· COMECTRICK ;
· FORCE DE L'EST;
· SOGEFOR ;
· SOGELEC ;
· COGELIN.
C'est par ordonnance n°74/012 du 14 juillet 1974 portant
reprise par la SNEL des droits, obligations des anciennes
sociétés citées ci-dessus que la SNEL aura le monopole
relatif à la gestion de l'ensemble des activités en rapport avec
l'électricité en RDC.
Cette loi traduit la volonté de l'Etat d'assurer le
contrôle direct de la production, du transport et de la distribution de
l'énergie électrique, ressource stratégique en
matière de développement économique et social du pays.
Toutefois, en ce qui concerne la REGIDESO, la reprise totale
par SNEL des activités électriques de cette
société, y compris ses centrales, n'interviendra qu'en 1979.
Depuis lors, la SNEL contrôle en réalité toutes les grandes
centrales hydroélectricités et thermiques du pays, seules
quelques mini- centrales hydroélectricités du secteur minier et
des petites centrales thermiques intégrées aux installations
d'entreprise isolées continuent à relever du secteur
privé.
Pour ce faire, partant des anciennes sociétés
productrices et distributrices de l'énergie électrique ayant des
structures et des cultures différentes, il a fallu :
ü Traduire dans les faits une véritable
société d'électricité à l'échelon
national et international;
ü Définir son développement à court,
moyen et long termes en rapport avec les objectifs généraux lui
assignés par l'Etat : produire transporter et distribuer
l'énergie électrique â moindre cout. .
Accomplissant au mieux ces deux objectifs, la SNEL poursuivi
sa mission de maitre d'oeuvre pour les travaux d'aménagement du site
d'Inga dont la première phase, Inga 1 (351 MW), officiellement
démarrée le 01 janvier 1968 fut inaugurée le 24 novembre
1972. La deuxième phase, Inga II (1424 MW), ses installations entre en
service en 1982.
Cette période des grands travaux a été
couronnée par la construction de la ligne plus moins 500 kV en courant
continu Inga- Kolwezi (1704 km), la plus longue au monde.
Entrée en service industriel en 1983, cette ligne
était initialement destinée à l'approvisionnement en
énergie électrique des mines et usines du Katanga, dans le sud du
pays.
Aujourd'hui, elle permet la desserte de quelques pays
d'Afrique Australe (Zambie, Zimbabwe, et Afrique du sud). La
nécessité de la SNEL, devenu aujourd'hui un acquit, était
un préalable à la conception et à la définition
d'un plan de développement à long termes de la
société.
Ce processus plan de réformes, Accompagné d'une
nationalisation progressive des cadres de direction et de commandement en
remplacement de personnel expatrié, a abouti à la situation
où, depuis 1989, la SNEL ne compte plus que des nationaux dans ses
effectifs.
III.3OBJECFIFS, MISSION ET ORGANISATION DE LA SNEL.
III.3.1 Objectifs et mission
La SNEL a pour mission et objectifs qui lui sont
confiés par l'Etat Congolais de produire, transporter et distribuer
l'énergie électrique en en vue de la commercialisation sur toute
étendue de la République Démocratique du Congo.
En plus de ce qui est repris ci-dessous, la SNEL s'occupe de
la construction, de l'équipement et exploitation de tous les ouvrages,
installations et usines servent au captage des eaux ou infrastructures des
sources d'énergie.
Au-delà des activités techniques de production,
transport, distribution et utilisation de l'énergie électrique
sous toutes ses formes. La SNEL est chargée de promouvoir La vente de
cette énergie en conformité avec les dispositions légales
en la matière.
III.3.2 Organisation administrative et financière de
la SNEL.
L'Organisation administrative et financière de la SNEL
est dirigée par les Décrets n°09/2 du 24 avril 2009 portant
respectivement mesures transitoires relatives à la transformation des
entreprises publiques et liste des entreprises publiques transformées en
sociétés commerciales, établissements publics et services
publics tels que complétés et modifiés par les
Décret n°10/12 du 29/04/2010.
III.3.2.1 Organes de gestion
L'Organisation administrative de la SNEL est structurée
de la manière suivante :
Ø Le Conseil d'Administration
Celui-ci investi des pouvoirs étendus pour poser tous
les actes d'administration et de disposition en rapport avec l'objet social de
l'entreprise.
Ø La Direction
générale
Celle-ci gère les affaires courantes de l'entreprise
suivant la délégation des pouvoirs conférés par le
conseil d'Administration.
Elle est composée d'un Administrateur-Directeur
Général et d'un Administrateur Directeur Général
Adjoint.
Ø Le Comité de Direction
Le comité de Direction estime structure consultative et
technique composée, outre la Direction Générale, de tous
les directeurs de Départements et est organisée suivant note de
service n°DGJ1 08/09 du 22/06/2009.
Ø Collège des Commissaires aux
Comptes
Ce Collège assure le contrôle des opérations
financières de l'entreprise.
Cadre Organique (Organigramme) :
Macro Structure de la Société Nationale
d'Electricité « SNEL sarl »
Administrateur Délégué
Direction Générale Adjoint
Conseil d'Administration
Control Général
Secrétariat Général
Organisation et Système d'information
Etudes Planification, Normes et Standards
Transport
En Provinces Distribution
Distribution de Kinshasa
Ressources Humaines
Approvisionnement et Marches
Commercial
Equipement et Electrification rurale
Finances
Figure 3.1 : Organigramme Administratif
SNEL
III.4
DEPARTEMENT DE DISTRIBUTION DE KINSHASA
Le Département de distribution de Kinshasa (DDK) en
sigle est installé à Kinshasa dans la commune de la GOMBE sur
l'avenue du commerce au n°1097, il s'occupe de la distribution et de la
commercialisation de l'énergie électrique dans la ville province
de Kinshasa, Cette distribution s'effectue en moyenne et basse tension.
Le Département de Distribution de Kinshasa est
constitué de cinq Directions centrales et cinq Directions
Régionales appelées DKX.
Ø Directions Centrales.
ü DEM : Direction d'Exploitation et Maintenance ;
ü DCK : Direction Commerciale de Kinshasa ;
ü DAF : Direction Administrative et Financière
;
ü SET : Secrétariat Technique
ü TRAV : Entité de travaux.
Ø Directions Régions (DKX)
ü DKE : Direction Régionale de
Kinshasa Est
Cette Direction de la distribution de l'énergie
électrique du coté Est de la ville de Kinshasa et dans les
communes ci-après :
ND'JILI, MASINA, KIMBANSEKE, N'SELE et MALUKU.
ü DKO : Direction Régionale de Kinshasa
Ouest
Elle s'occupe de la distribution de l'énergie
électrique du côté Ouest de ville de Kinshasa et de
communes ci-après: BANDALUNGWA, KINTAMBO, NGALIEMA, UNE PARTIE DE
SELEMBAO et MONT- NGAFULA.
ü DKC : Direction Régionale de Kinshasa
Centre.
Elle s'occupe de la distribution de l'énergie
électrique dans la partie centre de Kinshasa ; il s'agit des communes
suivantes :
KALAMU, NGIRI- NGIIU, MAKALA, BUMBU, et UNE PARTIE de
MONT-NGAFULA.
ü DKS : Direction Régionale Kinshasa
Sud.
Cette Direction est chargée de la distribution de
l'énergie électrique dans les communes ci-après : LIMETE,
LEMBA, MATETE, KISENSO et NGABA.
ü DKN : Direction Régionale de Kinshasa
Nord.
Cette Direction s'occupe de la distribution de
l'énergie électrique dans des communes ci-après : GOMBE,
KINSHASA, BARUMBU, LINGWALA et Kasa-Vubu.
· Organigramme
DDK
Secrétariat
DCK
DKC
DKS
DKN
DKO
DKE
ASG
DOT
DEM
DAF
Figure 3.2 : Organigramme Distribution
SNEL
Légende :
· DDK: Département de distribution de Kinshasa;
· DIKE : Direction Régionale de Kinshasa Est;
· DKO: Direction Régionale Kinshasa Ouest;
· DKN: Direction Régionale Kinshasa Nord;
· DKS: Direction Régionale Kinshasa Sud;
· DKC : Direction Régionale Kinshasa Centre;
· DEM: Direction d'Exploitation et Maintenance;
· DAF : Direction Administrative et Financière;
· ASG: Administration et Service
Généraux;
· DOT: Direction d'Etudes Opérationnelle et
Travaux;
· DCK : Direction Commerciale de Kinshasa.
III.5
CRITIQUE DE L'EXISTANT
Au
sein de la Société Nationale d'Electricité SNEL en sigle,
le système de paiement de facture est totalement manuel. La
société à un service des Agents de contrôle et de
dépôt de facture auprès de leurs clients, et de l'autre
côté, les clients doivent se diriger à la SNEL en vue de
s'acquitter de leur paiement de facture, et même coté paiement
bancaire les clients paient à la banque et doivent apporter leurs
preuves de paiements aux services commercial et finance de SNEL. Ce qui ne
permet pas aux clients de payer leurs factures de manière permanente.
Bien que ce mode de paiement se fait suivant une bonne structuration de charge
et service permettant la gestion et le contrôle des entités
concernées.
Sans
en tenir compte, les forces que l'on observe dans ce système, nous
estimons qu'elle laisse encore à désirer car le temps
d'exécution des taches demeure encore important et les résultats
fournis sont peu fiables. (Perte de temps, perte de documents...)
III.6 SOLUTION PROPOSEE
Pour remédier à tous ces problèmes des
longues procédures de notification des clients eux-mêmes pour les
paiements bancaires du système actuel de paiement de facture de la SNEL,
nous allons concevoir et implémenter une application
intermédiaire (intergiciel) entre les banques et la snel, et aussi
implémenter un ERP pour la gestion de la facturation coté snel.
C'est une solution qui épargnera les clients ou
abonnés de faire les navettes de la banque à la snel apportant
les bordereaux de paiement pour s'enregistrer et se régulariser. Et
permettra à la banque de notifier la snelsur les informations des
paiements bancaires de ses abonnés (clients), ainsi que faciliter la
gestion de la facturation de la snel.
Tout compte fait, nous retenons que le système
proposé demeure efficace et adapté pour un traitement rapide et
fiable des informations au sein de la Société qui aspire au
progrès.
III.7 ETUDES DES BESOINS
Dans cette étape, nous devons faire une bonne
étude enfin de dégager les besoins qui nous faciliteront pour
mieux réaliser notre application.
III.7.1 Besoins Fonctionnels
Après une étude de notre système, nous
avons pu soulever les besoins fonctionnels ci - après :
III.7.1.1 Les problèmes à
résoudre
Ø L'intégration de logiciels d'origines
divers ;
Ø L'accès aux logiciels de l'intérieur ou
de l'extérieur de l'entreprise ;
Ø Le développement rapide des
applications ;
Et a comme objectifs :
Ø Cacher la répartition ;
Ø Cacher
l'hétérogénéité ;
Ø Fournir des interfaces uniformes ;
Ø Fournir un ensemble des services communs.
III.7.1.2 Principe
Assure la communication entre les applications quels que
soient :
Ø Les ordinateurs impliqués ;
Ø Les caractéristiques matériel et
logiciel ;
Ø Les réseaux informatiques ;
Ø Les protocoles réseaux ;
Ø Les systèmes d'exploitation
impliqués.
III.7.2 Besoins non
Fonctionnels
Nôtre solution doit être facilement utilisable
pour permettre auxusagers concernés du côté des banques et
du côté de la SNELqui manipule un ordinateurà être
très à l'aise quand ils l'auront. Ce qui relève les
besoins suivants :
Ø La convivialité : Nos
applications doivent être conviviales c.à.d. facilement
utilisables.
Ø La sureté : Nos
applications doivent correctement fonctionner, sans erreurs ou sans
difficultés.
3.1. CONCLUSION
Dans ce troisième chapitre, nous avons
présenté le cadre de notre projet. Nous avons par la suite
procédé à la description de l'existant afin de comprendre
les défaillances de ce système, au critique de l'existant pour
arriver à dégager toutes les défaillances de ce
système et à la proposition d'une solution. Nous avons ressorti
après étude de besoins, toutes les fonctions principales
répondant aux besoins fonctionnels et non fonctionnels.
CHAPITRE IV. CONCEPTION ET
IMPLEMENTATION DES APPLICATIONS
IV.1 INTRODUCTION
Après l'étape d'analyse, nous allons dans cette
partie du travail concevoir et implémenter les futures applications.
Nous présenterons le langage de modélisation et nos
différents choix technique y compris les langages de programmations
utilisés, et enfin nous présenterons les interfaces
réelles de notre application.
IV.2 MODELISATION
IV.2.1 Spécification
des besoins
Cette dernière représente la phase de
départ pour le développement d'un logiciel, dans laquelle nous
allons identifier les besoins de notre application. Nous distinguons des
besoins fonctionnels qui présentent les fonctionnalités attendues
de notre application et les besoins non fonctionnels pour éviter le
développement d'une application non satisfaisante. Ici nous allons plus
signifier les besoins fonctionnels
Notre travail consiste à concevoir et
implémenter une application pour la vulgarisation du découpage
territorial en république démocratique enfin de permettre aux
utilisateurs d'accéder facilement aux informations liées à
la nouvelle réforme territoriale
IV.2.1.1 Spécification des besoins fonctionnels
Il s'agit de la toute première étape du
processus de développement et vise à effectuer un premier
repérage des besoins fonctionnels du système à
modéliser. Il est aussi valable de dire que cette partie est
réservée à la description des exigences fonctionnelles des
différents acteurs du système ; ces besoins se regroupent en deux
parties selon l'utilisation. Nous citons donc en premier lieu le front office
ou la partie client et le back office qui représente la partie
administration.
a. Front office
Ø Connection : Cette fonction
permettra aux utilisateurs (banque et/ou snel) de se connecter au middleware
(intergiciel) ;
Ø Saisie : Celle-ci permettra
à l'utilisateur banque de saisir les informations du paiement de la
facture du le client ;
Ø Envoyer : C'est la fonction qui
produira le messager et l'envoyer au consommateur ou récepteur
(snel) ;
Ø Recevoir : C'est la fonction
qui commencera à recevoir le message produit par la banque ;
Ø Stockage : C'est la fonction
quipermettra à l'utilisateur banque et/ou snel d'enregistrer les
informations de la paie sur la facture du client mais chacun dans sa base de
données ;
Ø Gestion facture : Cette
dernière permet à l'utilisateur snel de gérer toutes les
informations de la facturation et du paiement du client.
b. Back office
Cette partie du système sera accessible que par
l'administrateur ; il contient essentiellement les fonctionnalités
suivantes :
Ø Gestion des utilisateurs snel ;
Ø Gestion des bases de données snel ;
IV.2.2 Langage de
modélisation
Avant de programmer l'application et se lancer dans
l'écriture du code ; il faut d'abord organiser les idées, les
documenter, puis organiser la réalisation en définissant les
étapes de la réalisation. Cette démarche antérieure
à l'écriture, s'appelle modélisation.
Modéliser consiste à représenter
virtuellement une situation du monde réel enfin de simplifier la
démarche de conception d'un système. Il existe plusieurs
méthodes d'analyse pour modéliser, nous pouvons cités
entre autres : Merise, UML.
En regardant les objectifs fixés pour la
réalisation de notre application, nous remarquons que nous sommes face
à une application qui devra rester ouverte pour les améliorations
futures. De ce fait, il est très important d'utiliser un langage
universel pour la modélisation afin de clarifier la conception et de
faciliter les échanges. Notre choix est donc porté sur le langage
UML puisqu'il convient mieux.
UnifiedModelingLanguage (UML) est un langage de
modélisation objet, il permet donc de modéliser vos objets et
ainsi représenter votre application sous forme des diagrammes.
Notre choix s'est basé sur les points forts de ce
langage notamment sa standardisation et les divers diagrammes qu'il propose.
Aussi UML présente le meilleur outil pour schématiser des
systèmes complexes sous un format graphique et textuel simplifié
et normalisé.
IV.2.2.1 Les avantages d'UML
Ø Universel ;
Ø Adopté par les grandes entreprises ;
Ø Notation unifié ;
Ø Facile à comprendre ;
Ø Limite les risques d'erreur
IV.2.3 Middleware
IV.2.3.1 Fonctionnement
Si on pouvait résumer l'intérêt d'un
middleware en une seule phrase, nous dirons qu'il sert à créer la
connexion entre plusieurs applications qui n'étaient pas
forcément conçus pour communiquer entre eux, par échanges
ou interopérabilité.
Ces entités peuvent être intégrées
sur plusieurs réseaux pas forcément reliés entre eux, le
middleware se chargera d'en assurer la connexion malgré tout.
IV.2.3.2 Architecture de conception
SNEL
Ma banque
ActiveMQ
Figure IV.1 Architecture de
conceptionActiveMQ
Figure IV.2 Architecture de conceptionActiveMQ
JMS
IV.2.3.3 Différence entre un middleware et un
ERP
Le middleware se doit d'assurer la communication entre les
opérateurs et l'ERP. L'ERP (progiciel de gestion intégrée)
restant lui dans son rôle de coordination des activités de
l'entreprise.
Le middleware est l'outil terrain et grâce à
cela, il permet au niveau de la ligne de production ou des utilisateurs de la
logistique notamment, de proposer des écrans simplifiés
permettant de faciliter les saisies et donc de les fiabiliser.
Et l'ERP est une application dont le but est de coordonner
l'ensemble des activités dites verticales autour d'un même
système d'information. Le middleware est dans ce cas, la « la
brique Terrain» du système d'information(c'est en quelque sorte un
connecteur d'entités distantes).
IV.2.4 Le diagramme de cas
d'utilisation
Les diagrammes de cas d'utilisation sont des diagrammes UML
utilisés pour donner une vision globale du comportement fonctionnel d'un
système logiciel. Ils sont utiles pour des présentations
auprès de la direction ou des acteurs d'un projet, mais pour le
développement, les cas d'utilisation sont plus appropriés. Un cas
d'utilisation représente une unité discrète d'interaction
entre un utilisateur (humain ou machine) et un système. Il est une
unité significative de travail. Dans un diagramme de cas d'utilisation,
les utilisateurs sont appelés acteurs (actors), ils interagissent avec
les cas d'utilisation (use cases).
UML définit une notation graphique pour
représenter les cas d'utilisation, cette notation est appelée
diagramme de cas d'utilisation. UML ne définit pas de standard pour la
forme écrite de ces cas d'utilisation, et en conséquence il est
aisé de croire que cette notation graphique suffit à elle seule
pour décrire la nature d'un cas d'utilisation. Dans les faits, une
notation graphique peut seulement donner une vue générale
simplifiée d'un cas ou d'un ensemble de cas d'utilisation. Les
diagrammes de cas d'utilisation sont souvent confondus avec les cas
d'utilisation, bien que ces deux concepts soient reliés, les cas
d'utilisation sont bien plus détaillés que les diagrammes de cas
d'utilisation.
IV.2.4.1 Les éléments d'un diagramme de
cas d'utilisation
a. Un acteur
Un acteur est l'idéalisation d'un rôle
joué par une personne externe, un processus ou une chose qui interagit
avec un système. Il se représente par un petit bonhomme
(stickman); sous-titré par le nom de l'acteur.
Utilisateur banque
Figure IV.3Présentation d'un acteur
humain
Il est également possible de représenter un
acteur sous la forme d'un rectangle lorsqu'il s'agit d'un système.
Utilisateur banque
Figure IV.4 Présentation d'un acteur
humain
b. Le cas d'utilisation
Un cas d'utilisation est une unité cohérente
représentant une fonctionnalité visible de l'extérieur. Il
réalise un service de bout en bout, avec un déclenchement, un
déroulement et une fin, pour l'acteur qui l'initie. Un cas d'utilisation
modélise donc un service rendu par le système, sans imposer le
mode de réalisation de ce service.
Un cas d'utilisation se représente par un ovale
contenant le nom du cas (un verbe à l'infinitif), et optionnellement,
au-dessus du nom.
Se connecter
Figure IV.5 Présentation d'un cas
d'utilisation
IV.2.4.2 Relations entre les cas d'utilisation
Trois types de relations sont pris en charge par la norme UML
et sont graphiquement représentées par des types particuliers de
ces relations.
a. L'inclusion
Un cas A inclut un cas B si le comportement décrit par
le cas A inclut le comportement du cas B : le cas A dépend de B. Lorsque
A est sollicité, B l'est obligatoirement, comme une partie de A.
Cette dépendance est symbolisée par :
<<include>>. Par exemple, l'accès à l'interface de
gestion de compte inclut nécessite une authentification.
Recevoir message
Se connecter
Utilisateur snel
Figure IV.6 Présentation d'une relation
include
b. L'extension
La relation d'extension est probablement la plus utile, car
elle a une sémantique qui a un sens du point de vue métier au
contraire des deux autres qui sont plus des artifices d'informaticiens.
On dit qu'un cas d'utilisation A étend un cas
d'utilisation B lorsque le cas d'utilisation A peut être appelé au
cours de l'exécution du cas d'utilisation B. Exécuter B peut
éventuellement entraîner l'exécution de A : Cette
dépendance est symbolisée par le stéréotype
<<extend>>.
c. La généralisation
Un cas A est une généralisation d'un cas B si B
est un cas particulier de A, la consultation d'un compte via Internet est un
cas particulier de la consultation; Cette relation de
généralisation/spécialisation est présentée
dans la plupart des diagrammes UML et se traduit par le concept
d'héritage dans les langages orientés objet.
Administrateur
Figure IV.7 Présentation d'une relation de
généralisation
IV.2.5 Analyse du
système (ERP)
IV.2.5.1 Identification des acteurs et cas
d'utilisation
L'identification des acteurs en interaction avec le
système simplifie grandement la collecte des besoins fonctionnels car il
suffit alors d'analyser acteur par acteur et de vérifier pour chacun
qu'il dispose de toutes les fonctionnalités qui lui seront utile au
regard de sa mission et du périmètre du projet. Ainsi une analyse
perspicace des fonctionnalités souhaitées et de l'environnement
même du projet induit la détermination des cas d'utilisation
répertoriés dans le tableau.
ACTEURS
|
CAS D'UTILISATIONS
|
Utilisateur banque
|
Se connecter à l'intergiciel
|
Saisir les informations des paiements factures
|
Enregistrer ces informations dans la base de données
|
Envoyer les messages
|
Administrateur Odoo SNEL
|
Se connecter
|
Gérer les utilisateurs
|
Gérer la facturation
|
Gérer les bases de données
|
Tableau IV.1 Identification des acteurs et cas
d'utilisation
IV.2.5.2 Présentation de diagramme de cas
d'utilisation
Ci-dessous nous présentons le diagramme de cas
d'utilisation pour la compréhension du fonctionnement du
système.
Figure IV.8 : Diagramme de cas
d'utilisation
IV.2.5.3 Quelques descriptions des cas
d'utilisations
1. Description de cas d'utilisation
« S'authentifier »
Sommaire
|
Titre
|
S'authentifier
|
Résumé
|
Ce cas d'utilisation permet à l'utilisateur (snel et
administrateur) de s'identifier au système pour avoir accès aux
fonctionnalités de ce dernier.
|
Acteurs
|
Utilisateur snel et l'administrateur
|
Description des enchainements
|
Pré condition
|
Post condition
|
-
|
-
|
Scénario nominal
|
1. L'utilisateur sollicite la connexion;
2. Le système affiche le formulaire d'authentification;
3. L'utilisateur rempli le formulaire et renvoi au
système ;
4. Le système vérifie l'authenticité et
affiche l'interface demandé.
|
Scénario alternatif
|
4b. L'authentification non valide ;
5. Le système affiche une notification d'erreur ;
6. Possibilité de remplir le formulaire
d'authentification de nouveau.
|
Tableau IV.2 Description de cas d'utilisation
« S'authentifier »
2. Description de cas d'utilisation
« Visualiser DB »
Sommaire
|
Titre
|
Visualiser DB
|
Résumé
|
Ce cas d'utilisation permettra aux utilisateurs de visualiser
la base de données.
|
Acteurs
|
Utilisateur banque, snel et/ou l'administrateur
|
Description des enchainements
|
Pré condition
|
Post condition
|
S'authentifier
|
-
|
Scénario nominal
|
1. L'utilisateur sollicite l'authentification ;
2. Le système affiche le formulaire
d'authentification ;
3. L'utilisateur rempli le formulaire d'authentification et
renvoi au système ;
4. Le système vérifie et l'authentification et
donne accès à la base de données ;
5. L'utilisateur peut voir les données de la DB
|
Scénario alternatif
|
4b. L'authentification non valide ;
6. Le système affiche une notification d'erreur
;
7. Possibilité de remplir le formulaire
d'authentification de nouveau.
|
Tableau IV.3 Description de cas d'utilisation
« Visualiser DB »
3. Description de cas d'utilisation
« Gérer facture »
Sommaire
|
Titre
|
Gérer facture
|
Résumé
|
Ce cas d'utilisation permettra aux utilisateurs (snel et/ou
administrateur) de faire la gestion de facture de client de la snel.
|
Acteurs
|
Utilisateursnel et/ou l'administrateur
|
Description des enchainements
|
Pré condition
|
Post condition
|
S'authentifier
|
Faire tous les processus de la facturation (créer,
valider facture)
|
Scénario nominal
|
1. L'utilisateur sollicite l'authentification ;
2. Le système affiche le formulaire
d'authentification ;
3. L'utilisateur rempli le formulaire d'authentification et
renvoi au système ;
4. Le système vérifie et l'authentification et
donne accès au système ;
5. L'utilisateur sélectionne le menu
(comptabilité) de la gestion de facture ;
6. Le système affiche les interfaces de la gestion
facture
|
Scénario alternatif
|
4b. L'authentification non valide ;
7. Le système affiche une notification
d'erreur ;
8. Retour à l'interface d'authentification.
|
Tableau IV.4 Description de cas d'utilisation
« Gérer facture »
4. Description de cas d'utilisation
« Gérer Client »
Sommaire
|
Titre
|
Gérer client
|
Résumé
|
Ce cas d'utilisation permettra aux utilisateurs de faire la
gestion client.
|
Acteurs
|
L'utilisateur snel et/ou l'administrateur
|
Description des enchainements
|
Pré condition
|
Post condition
|
S'authentifier
|
-
|
Scénario nominal
|
1. L'utilisateur sollicite l'authentification ;
2. Le système affiche le formulaire
d'authentification ;
3. L'utilisateur rempli le formulaire d'authentification et
renvoi au système ;
4. Le système vérifie et l'authentification et
donne accès aux systèmes ;
5. L'administrateur sélectionne le menu de la gestion
client ;
6. Le système affiche les interfaces de la gestion
client.
|
Scénario alternatif
|
4b. L'authentification non valide ;
7. Le système affiche une notification
d'erreur ;
8. Retour à l'interface d'authentification.
|
Tableau IV.5 Description de cas d'utilisation
« Gérer Client »
5. Description de cas d'utilisation
« Créer client »
Sommaire
|
Titre
|
Créer client
|
Résumé
|
Ce cas d'utilisation permettra aux utilisateurs (snel et/ou
administrateur) de créer d'utilisateurs snel.
|
Acteurs
|
L'utilisateur snel et/ou l'administrateur
|
Description des enchainements
|
Pré condition
|
Post condition
|
S'authentifier
|
-
|
Scénario nominal
|
1. L'utilisateur sollicite l'authentification ;
2. Le système affiche le formulaire
d'authentification ;
3. L'utilisateur rempli le formulaire d'authentification et
renvoi au système ;
4. Le système vérifie et l'authentification et
donne accès aux systèmes ;
5. L'administrateur sélectionne le menu de la gestion
clients ;
6. Le système affiche les interfaces de la gestion
clients ;
7. L'administrateur sélectionne le bouton créer
clients ;
8. Le système affiche le formulaire de la
création du client ;
9. L'administrateur rempli le formulaire et renvoi les
informations rempli au système ;
10. Le système crée le client.
|
Scénario alternatif
|
4b. L'authentification non valide ;
11. Le système affiche une notification
d'erreur ;
12. Retour à l'interface d'authentification.
|
Tableau IV.6 Description de cas d'utilisation
« Créer client »
6. Description de cas d'utilisation « Mettre
à jourclient »
Sommaire
|
Titre
|
Mettre à jourclient
|
Résumé
|
Ce cas d'utilisation permettra à l'utilisateur de
modifierles informations desclients.
|
Acteurs
|
L'utilisateur snel et/ou l'administrateur
|
Description des enchainements
|
Pré condition
|
Post condition
|
S'authentifier
|
-
|
Scénario nominal
|
1. L'utilisateur sollicite l'authentification ;
2. Le système affiche le formulaire
d'authentification ;
3. L'utilisateur rempli le formulaire d'authentification et
renvoi au système ;
4. Le système vérifie et l'authentification et
donne accès aux systèmes ;
5. L'administrateur sélectionne le menu de la gestion
clients ;
6. Le système affiche les interfaces de la gestion
clients ;
7. L'administrateur sélectionne le client ;
8. Le système affiche le formulaire du client;
9. L'administrateur modifie le formulaire et renvoi les
informations rempli au système ;
10. Le système enregistre les modifications du client.
|
Scénario alternatif
|
4b. L'authentification non valide ;
11. Le système affiche une notification
d'erreur ;
12. Retour à l'interface d'authentification.
|
Tableau IV.7 Description de cas d'utilisation
« Mettre à jour client »
7. Description de cas d'utilisation « Supprimer
client »
Sommaire
|
Titre
|
Supprimer client
|
Résumé
|
Ce cas d'utilisation permettra à l'utilisateur de
supprimerles clientssnel enregistrés.
|
Acteurs
|
L'utilisateur snel et/ou l'administrateur
|
Description des enchainements
|
Pré condition
|
Post condition
|
S'authentifier
|
-
|
Scénario nominal
|
1. L'utilisateur sollicite l'authentification ;
2. Le système affiche le formulaire
d'authentification ;
3. L'utilisateur rempli le formulaire d'authentification et
renvoi au système ;
4. Le système vérifie et l'authentification et
donne accès aux systèmes ;
5. L'administrateur sélectionne le menu de la gestion
client ;
6. Le système affiche les interfaces de la gestion
client ;
7. L'administrateur sélectionne et supprimele
client ;
8. Le système enregistre la suppression du
client ;
|
Scénario alternatif
|
4b. L'authentification non valide ;
9. Le système affiche une notification
d'erreur ;
10. Retour à l'interface d'authentification.
|
Tableau IV.8 Description de cas d'utilisation
« Supprimer client »
8. Description de cas d'utilisation
« Gérer DB »
Sommaire
|
Titre
|
Créer DB
|
Résumé
|
Ce cas d'utilisation permettra à l'administrateur de
créer des bases de données.
|
Acteurs
|
L'administrateur
|
Description des enchainements
|
Pré condition
|
Post condition
|
S'authentifier
|
-
|
Scénario nominal
|
1. L'utilisateur sollicite l'authentification ;
2. Le système affiche le formulaire
d'authentification ;
3. L'utilisateur rempli le formulaire d'authentification et
renvoi au système ;
4. Le système vérifie et l'authentification et
donne accès aux systèmes ;
5. L'administrateur sélectionne le menu de la gestion
DB ;
6. Le système affiche les interfaces de la gestion des
bases de données ;
|
Scénario alternatif
|
4b. L'authentification non valide ;
7. Le système affiche une notification
d'erreur ;
8. Retour à l'interface d'authentification.
|
Tableau IV.9 Description de cas d'utilisation
« Gérer DB »
9. Description de cas d'utilisation
« Gérer tables »
Sommaire
|
Titre
|
Gérer tables
|
Résumé
|
Ce cas d'utilisation permettra à l'administrateur de
créer, modifier, supprimer les tables dans la base de données.
|
Acteurs
|
L'administrateur
|
Description des enchainements
|
Pré condition
|
Post condition
|
S'authentifier
|
-
|
Scénario nominal
|
1. L'utilisateur sollicite l'authentification ;
2. Le système affiche le formulaire
d'authentification ;
3. L'utilisateur rempli le formulaire d'authentification et
renvoi au système ;
4. Le système vérifie et l'authentification et
donne accès aux systèmes ;
5. L'administrateur sélectionne le menu de la gestion
DB ;
6. Le système affiche les interfaces de la gestion
utilisateurs ;
7. L'administrateur sélectionne tables ;
8. Le système autorise l'accès au menu gestion
tables.
|
Scénario alternatif
|
4b. L'authentification non valide ;
9. Le système affiche une notification
d'erreur ;
10. Retour à l'interface d'authentification.
|
Tableau IV.10 Description de cas d'utilisation
« Gérer tables »
10. Description de cas d'utilisation « Se
déconnecter »
Sommaire
|
Titre
|
Se déconnecter
|
Résumé
|
Ce cas d'utilisation permettra aux administrateurs (snel et
administrateur) de se déconnecter du système.
|
Acteurs
|
L'administrateur
|
Description des enchainements
|
Pré condition
|
Post condition
|
S'authentifier
|
-
|
Scénario nominal
|
1. L'utilisateur sollicite l'authentification ;
2. Le système affiche le formulaire
d'authentification ;
3. L'utilisateur rempli le formulaire d'authentification et
renvoi au système ;
4. Le système vérifie et l'authentification et
donne accès aux systèmes ;
5. L'utilisateur peut se déconnecter ;
6. Le système affiche le formulaire de la connexion.
|
Scénario alternatif
|
4b. L'authentification non valide ;
11. Le système affiche une notification
d'erreur ;
12. Retour à l'interface d'authentification.
|
Tableau IV.11 Description de cas d'utilisation
« Gérer tables »
IV.2.6Le cycle de
développement en V et Conception détaillée
IV.2.6.1 Le cycle de développement en V
De nos jours, la méthodologie adoptée dans
l'analyse et la conception des systèmes représente un choix
stratégique pour le bureau d'études afin de mener à terme
les projets tout en respectant les délais annoncés au client et
avec la qualité demandée.
Vu l'évolution des besoins des utilisateurs finaux, les
applications d'entreprise deviennent de plus en plus complexes et difficiles
à concevoir et à développer.
Pour la conception, le développement et la
réalisation de notre application, nous avons opté pour
l'application du processus de développement V qui demeure actuellement
le cycle de vie le plus connu et certainement le plus convenable aux projets
complexes.
Ce processus nous a accompagné du début de
projet jusqu'à l'implémentation. Son principe est qu'avec toute
décomposition doit être décrite la recomposition, et que
toute description d'un composant doit être accompagnée de test qui
permettront de s'assurer qu'il correspond à sa description. Ceci rend
explicite la préparation des dernières phases
(validation-vérification) par les premières (construction du
l'application) et on sait progressivement si on s'approche de ce que le client
désire.
Figure IV.9 : Diagramme de cycle de
développement en V
IV.2.6.2 Conception détaillée
Cette étape se fera par étape afin d'aboutir
à un système fonctionnel reflétant une
réalité physique. Mais nous allons résumant les cas ou
prendre qu'un seul cas d'utilisations.
IV.2.6.2.1 Diagrammes de séquences
Un diagramme de séquence est un diagramme d'interaction
dont le but est de décrire comment les objets collaborent au cours du
temps et quelles responsabilités ils assument. Il décrit un
scénario d'un cas d'utilisation.
Un Diagramme de Séquence est une forme de diagramme
d'interaction, ce qui montre que les objets comme des lignes de sauvetage
réduisant la page. Interactions représentés au fil du
temps sont dessinées comme des connecteurs de message de la source Ligne
de Vie à la Ligne de Vie cible. Les diagrammes de séquence sont
bonnes à montrer les objets qui communiquent avec d'autres objets. Et
quels sont les messages déclencher ces communications.
IV.2.6.2.1.1 Quelques définitions
Ø Ligne de vie : représentation de l'existence d'un
élément participant dans un diagramme de séquence. Cela
peut être un acteur ou le système en modélisation
d'exigences, des objets logiciels en conception préliminaire ou
conception détaillée.
Ø Message : élément de communication
unidirectionnel entre objets qui déclenche une activité dans
l'objet destinataire.
Ø La réception d'un message provoque un
événement dans l'objet récepteur.
Ø La flèche pointillée représente un
retour au sens UML. Cela signifie que le message en question est le
résultat direct du message précédent.
Ø Message synchrone : l'objet
émetteur se bloque en attendant la réponse de l'objet
récepteur du message.
Ø Message asynchrone : l'objet
émetteur n'attend pas la réponse de l'objet récepteur du
message et continue son activité.
IV.2.6.2.1.2 Diagramme de séquence «
S'authentifier »
Figure IV.10 : Diagramme de séquence «
S'authentifier »
IV.2.6.2.2Diagramme d'activité
Dans UML, un diagramme d'activité est utilisé
pour afficher la séquence des activités. Les diagrammes
d'activité représentent le flux de travail à partir d'un
point de départ au point d'arrivée. Détaillant les
nombreux sentiers de décision, qui existent dans la progression des
événements contenus dans l'activité. Ils peuvent
être utilisés à des situations de détail, où
le traitement parallèle peut survenir dans l'exécution de
certaines activités. Les diagrammes d'activités sont utiles pour
la modélisation d'entreprise où ils sont utilisés pour
détailler les processus impliqués dans des activités
commerciales.
2.2.1Diagramme d'activité « S'authentifier
»
Figure IV.11 : Diagramme d'activité «
S'authentifier »
IV.3 CHOIX TECHNIQUES
IV.3.1 Langages de programmation
1. Java Messaging System ou JMS
JMS est une API, et cette API correspond à des services
d'échange entre des producteurs et des consommateurs de messages,
s'appuyant sur des concepts que nous avons présentés.
Au-delà de l'API donc, JMS définit les fonctionnalités
centrales des MOMs.
JMS spécifie le service, mais ne spécifie pas
comment ce service est mis en oeuvre. Chaque fournisseur, JMS Provider, est
libre de ses choix d'implémentation. Comme on l'a vu plus haut, les
protocoles d'échanges peuvent également être
considérés comme des choix d'implémentation propres
à certains MOMs, même si nous considérons qu'ils ont une
réelle importance.
La spécification JMS n'est pas en tous points complets.
Certaines fonctions essentielles au fonctionnement d'une plateforme MOM ne sont
pas décrites dans la spécification et font donc l'objet
d'implémentations particulières. C'est le cas en particulier pour
la configuration et l'administration du service de messagerie, pour la
sécurité (intégrité et confidentialité des
messages) et pour certains paramètres de qualité de service.
Par ailleurs, la plupart des MOMs proposent des fonctions
additionnelles qui se présentent comme des atouts spécifiques par
rapport aux offres concurrentes (par exemple les topics
hiérarchisés, des fonctions de sécurité et des
mécanismes de haute disponibilité, etc.). Bien sûr, la mise
en oeuvre de ces fonctionnalités se fait au détriment de la
capacité à changer de MOM, en respectant l'API JMS.Comme d'autres
spécifications d'interface, comme le SQL par exemple, la promesse de
pouvoir changer d'implémentation de MOM JMS de manière
transparente, n'est pas facilement tenue. Mais ce n'est pas très
grave.
La spécification commune apporte déjà le
bénéfice d'une communauté de vision, d'approches, et de
compétences. Un architecte peut raisonner sur la base d'un MOM sans
savoir nécessairement de quelle « marque » il sera, et un
développeur qui a pratiqué JMS avec un premier MOM, pourra
presque immédiatement en pratiquer un second.
2. Python
Python est un langage de programmation objet
interprété, multi-paradigme et multiplateformes. Il favorise la
programmation impérative structurée, fonctionnelle et
orientée objet. Il est doté d'un typage dynamique fort, d'une
gestion automatique de la mémoire par ramasse-miettes et d'un
système de gestion d'exceptions ; il est ainsi similaire à Perl,
Ruby, Scheme, Smalltalk et Tcl.
Le langage Python est placé sous une licence libre
proche de la licence BSD4 et fonctionne sur la plupart des plates-formes
informatiques, des supercalculateurs aux ordinateurs centraux5, de Windows
à Unix avec notamment GNU/Linux en passant par macOS, ou encore Android,
iOS, et aussi avec Java ou encore .NET. Il est conçu pour optimiser la
productivité des programmeurs en offrant des outils de haut niveau et
une syntaxe simple à utiliser.
Il est également apprécié par certains
pédagogues qui y trouvent un langage où la syntaxe, clairement
séparée des mécanismes de bas niveau, permet une
initiation aisée aux concepts de base de la programmation Il est
également apprécié par certains pédagogues qui y
trouvent un langage où la syntaxe, clairement séparée des
mécanismes de bas niveau permet une initiation aisée aux
concepts de base de la programmation.
IV.3.2 Base de données PostgreSQL
PostgreSQL un système de gestion de base de
données relationnelle et objet (SGBDRO). C'est un outil libre disponible
selon les termes d'une licence de type BSD.
Depuis la version 8.0, PostgreSQL fonctionne également
nativement sur Windows. Avant la version 8, il fallait une couche de
compatibilité POSIX (par exemple cygwin) pour faire
fonctionner PostgreSQL sur ce système d'exploitation.
PostgreSQL est largement reconnu pour son comportement stable,
proche d'Oracle. Mais aussi pour ses possibilités de programmation
étendues, directement dans le moteur de la base de données,
via PL/pgSQL. Le traitement interne des données peut aussi
être couplé à d'autres modules externes compilés
dans d'autres langages.
PostgreSQL est la base de données utilisée par
Odoo pour stocker les données système et utilisateur. Et utilise
des plateformes pour l'administration, mais pour notre travail nous avons
utilisés pgAdmin.
pgAdmin :
a.
Définition
Est la plateforme d'administrateur et de développement
libre la plus populaire et la plus riche pour PostgreSQL.
b. Rôle
Conçu pour répondre aux besoins de tous les
utilisateurs, de l'écriture de requêtes SQL simple aux
développements de base de données complexes.
c. Interfaces
Nous
permet de visualiser l'ensemble des données dans la base de
données de l'application, enfin d'apporter les modifications
possibles.
IV.3.3 Choix du MOM et de l'ERP
De tous les MOMset PGIsvu ci-haut nous optons pour ActiveMQ et
Odoo par ce qu'ils remplissent beaucoup des critères qu'on a pu
détaillés précédemment
IV.4 PRESENTATION DES
APPLICATIONS
IV.4.1 ActiveMQ
(Intergiciel)
MyBank représente l'application que la banque utilise
et une fois les informations saisies, le bouton envoyer sert à
enregistrer dans la base de données de la banque et envoyer le message
à SNEL NOTIFY qui est du côté de la SNEL et ce dernier
à son tour sert qu'à recevoir le message rien de plus.
a) MyBank
Ø IntefaceMyBank non connecté au broker
Figure IV.12 : IntefaceMyBank non connecté
au broker
Ø IntefaceMyBank connecté au broker (la partie
en jaune sera désactive)
Figure IV.13 : IntefaceMyBank connecté au
broker
Ø Saisie et envoie du message
Figure IV.14 :MyBank saisie et envoie
b) SNEL NOTIFY
Ø Interface SNEL NOTIFY non connecté au broker
Figure IV.15 : SNEL NOTIFY non connecté au
broker
Ø Interface SNEL NOTIFY connecté au broker (la
partie en rouge sera désactive)
Figure IV.16 : SNEL NOTIFY connecté au
broker
Ø Interface SNEL NOTIFY réception message
Figure IV.17 : SNEL NOTIFY réception
message
IV.4.2Odoo
IV.4.2.1 Installation et Configuration d'odooversion
11
a) Choix de la
langue
C'est la première étape, le choix de la langue,
il y en a que deux (Français et Anglais). Choisissez le French
(français).
Figure IV.18 : Choix de la langue à
l'installation d'odoo
b) Programme
d'installation
Appuyer sur le bouton Suivant pour démarrer le processus
d'installation.
Figure IV.19 : Démarrage du processus
d'installation d'odoo
Appuyer encore sur le bouton Suivant pour accepter la licence,
car elle est gratuite.
Figure IV.20 : Licence de
l'application
Cette fois-ci, il faut choisir le type d'installation (All In
One) et cocher sur le Serveur odoo et Installation de la base de données
PostgreSQL. Pour installer tout dans un.
Figure IV.21:Type d'installation All In One
Configuration des informations de connexion pour la base de
données PostgreSQL.
Figure IV.22 : Configuration pour la connexion
PostgreSQL
Choix de l'emplacement et l'espace requis dans la machine
serveur.
Figure IV.23 : Emplacement et espace requis dans
le serveur
Fin d'extraction de tous les fichiers système de
l'application, vous devez appuyer sur le bouton Suivant pour terminer
l'installation d'odoo et de PostgreSQL.
Figure IV.24 : Fin de la copie de fichiers
système
C'est la fin de l'installation de l'application. En appuyer sur
le bouton Fermer l'application vous ramène dans un navigateur web et
lance l'application automatiquement.
Figure IV.25 : Fin d'installation de
l'application
c) Configuration
Odoo
Après l'installation de l'application, la création
de la base et la configuration des informations de l'entreprise. Nous avons
configuré les serveurs de courriels sortants et la passerelle de
messagerie pour la réception.
Configuration du serveur SMTP
Figure IV.26 : Configuration Serveur
SMTP
Configuration du serveur POP
Figure IV.27 : Configuration Serveur
POP
IV.4.2.2 Modules Comptabilité
a. Accès ou
Lancement de l'application
Pour
lancer l'application, il nous faut un navigateur ou un moteur de recherche vue
que c'est une application web.
L'adresse de connexion pour la machine serveur
est :
http://adresseIPserveurOdoo:8069
Adresse IP serveur Odoo : sera remplacé
par l'adresse IP de la machine hébergeant le serveur Odoo.
8069 : est le numéro du port TCP
utilisé pour accéder à l'application.
Ainsi,
nous pouvons aussi accéder à l'application à partir de
n'importe quelle machine du LAN pouvant communiquer avec la machine serveur.
Exemple de Configuration
Machine serveur Odoo PC1 :
Adresse IP : 192.168.1.1
Masque : 255.255.255.0
Autre machine P :
Adresse IP : 192.168.1.2
Masque : 255.255.255.0
Nous
n'avons pas utilisé la configuration de la passerelle car les machines
sont directement connectées et sont dans le même
sous-réseau. Dans le cas contraire, l'utilisation de la passerelle est
indispensable.
Pour
se connecter avec le P l'adresse de connexion est :
http://192.168.1.1:8069.
Ceci veut dire je lance l'application se trouvant dans le PC 192.168.1.1,
accessible au port 8069.
Figure 4.36 : connexion sur la machine serveur
(Host1).
Figure IV.28 : connexion sur Host2.
b. Login
Pour accéder dans l'application, il nous faut en avance
être un utilisateur créé par l'administrateur avec un
courriel et un mot de passe à mettre pour y avoir accès.
L'utilisateur peut ou ne pas être un employé,
mais plutôt une personne qui est autorisé à
l'application.
Figure IV.29 : Login
c. Clients
Figure IV.30 : Clients
d. Création du client
Figure IV.31 : Création du
client
e. Création facture
Figure IV.32 : Création facture
f. La génération du numéro
facture
Figure IV.33 : Génération
numéro facture
g. Validation du paiement
Figure IV.34 : Validation du paiement
IV.4.2.3 pgAdmin
a. Base de données coté
MyBANK
Figure IV.35 :PostgreSQL (DB Bank)
Figure IV.36 :DB Bank (table gestion
facture)
b. Base de données coté SNEL
1. Enregistrement message reçu
Figure IV.46 : PostgreSQL (DB
postgres)
Figure IV.37 : DB postgres (table gestion
facture)
2. Gestion facture
Figure IV.38 : PostgreSQL (DB SNEL)
Figure IV.39 : DB SNELtable pour des factures
(payées ou non)
Figure IV.40 : DB SNEL table pour des factures
(payées ou non)
Figure IV.41 : DB SNEL table pour des factures
(payées)
Figure IV.42 : DB SNEL table pour des factures
(payées)
CONCLUSION GENERALE
Tout au long de notre stage au sein de la SNEL, nous avons
remarqué un besoin réel d'informatiser le Système
d'Information en générale, et en particulier la gestion de
factures surtout pour les clients qui payent par voie bancaire. Ce
désir a trouvé réponse au travers de projet proposé
l'actuelledirection générale de la société qui a
pour projet d'informatiserplusieurs processus entre-autre la notification des
banques sur les factures payées.
La gestion de la facturation (ou la gestion de la
comptabilité) est une tâche délicate dans l'entreprise
compte tenu de l'importance du facteur finance dans une société.
Une meilleure organisation au travers des outils adéquats permet
auxcomptables d'être opérationnels et efficient dans leurs
tâches quotidiennes.
Primo, dans ce travail, nous avons parlé des
middlewares et par la suite nous avant choisi d'utiliser ActiveMQ qui est un
middleware orienté message suivant les intérêts et les buts
poursuivis dans notre travail.
Secundo, nous avons présenté un état de
l'art sur les ERP au travers d'une étude comparative de quelques
solutions après avoir brossé l'intérêt d'avoir un
ERP au sein d'une entreprise cette comparaison nous a permis de choisir l'ERP
Odoo qui est le progiciel le plus utilisé dans la catégorie
« open source ». Au travers de cette plateforme, nous avons
lancé l'informatisation du Système d'Information de la SNEL en se
focalisant essentiellement sur « la mise en place des modules gestion
de facture ».
A notre humble avis, la gestion de factures au sein de la
Société Nationale d'Electricité pourra bien marcher avec
les nouveaux outils de travail mis à leur disposition. Nous prierons
aussi aux responsables de la SNEL de planifier une formation professionnelle
avant la mise en place de l'application pour permettre aux agents
particulièrement aux agents de finance, commerciale d'être aptes
aux exigences de ces nouvelles applications.
En grosso modo, ce travail nous a permis de nous familiariser
avec le middleware ActiveMQ et le progiciel Odoo qui nécessite de bonnes
connaissances avant de pouvoir effectuer un travail de qualité. Aussi,
mis à part l'apport technique, ce mémoire TFE nous a ouvert
à la dynamique du logiciel libre.
Comme perspectives, nous comptons dans les années
à venir approfondir notre connaissance sur ActiveMQ et finaliser
l'application de notification et aussi coté ERP Odoo,
intégrer le maximum des modules en vue de l'informatisation de la
SNEL.
ANNEXES
Quelques codes :
· Bouton envoyer
buttonEnoyer.setOnAction(e -> {
try {
TextMessagetextMessage = session.createTextMessage();
textMessage.setText(textAreaNomClient.getText() + "@" +
textAreaNumFact.getText() + "@" + textAreaMontantP.getText() + "@" +
comboAreaDevise.getSelectionModel().getSelectedItem().toString() + "@" +
cal.getTime());
textMessage.setStringProperty("Code",
textFieldVers.getText());
textMessage.setStringProperty("from", codeUser);
// enregistrement
ConnectionBankBDbankBD = new ConnectionBankBD();
int a = bankBD.insert(textAreaNomClient.getText(),
textAreaNumFact.getText(), Double.parseDouble(textAreaMontantP.getText()),
comboAreaDevise.getSelectionModel().getSelectedItem().toString(), cal);
// envoie
if (a == 1) {
messageProducer.send(textMessage);
textAreaMontantP.setText("");
textAreaNomClient.setText("");
textAreaNumFact.setText("");
} else {
JOptionPane.showMessageDialog(null, "Echecd'enregistrement",
"Erreur", JOptionPane.ERROR_MESSAGE);
}
} catch (JMSException ex) {
ex.printStackTrace();} });
· Insertion DB Bank
public intinsert(String nom_client, String numFact, double
montant, String devise, Calendar date) {
int a = 0;
String requete = "insert into
gestion_facture(nom_client,numero_facture,montant_paye,devise_paye,date_eng)
values(?,?,?,?,?)";
try {
PreparedStatementps = connection.prepareStatement(requete);
ps.setString(1, nom_client);
ps.setString(2, numFact);
ps.setDouble(3, montant);
ps.setString(4, devise);
ps.setString(5, date.getTime().toString());
a = ps.executeUpdate();
} catch (SQLException ex) {
System.out.println("ErreurInserer:::" + ex);
}
return a;
}
BIBLIOGRAPHIE
I. OUVRAGES
- Notes du cours d'Atelier de Génie Logiciel (AGL), P.A
Blaise ANGOMA, 2017-2018 ;
- Rodian KABEYA, Conception et Implémentation d'une
Application de Gestion des Ressources Humaines avec l'ERP Odoo, « cas
de l'I.S.P.T.-KIN », 2015-2016 ;
- Manager avec les ERP, 3ème édition, Jean-Louis
Lequeux NORMES ET AUTRES REFERENCES ;
- Emile I .T I S O P E N, Middleware Orienté
Message ;
- MOM & JMS, Ada Diaconescu ;
- Dany KAMBERE, Conception et Implémentation d'une
Application mobile pour la vulgarisation du découpage territorial «
Cas de la RDC et ses 26 provinces »,2016-2017.
II. WEBOGRAPHIE - SITES WEB
-
http://middleware.smile.fr/Concepts-des-moms-et-jms/Qu-est-ce-qu-un-middleware
- http://www.cio.com
- http://www.erp-infos.com
- https://www.odoo.com
-
https://fr.wikipedia.org/wiki/PostgreSQL
-
https://agipme.fr/2014/10/architecture-odoo-8.html
-
https://fr.wikipedia.org/wiki/Client-serveur
-
https://www.open-dsi.fr/crm-open-source-gratuit-entreprises-open-dsi/
-
https://www.choisirmonerp.com
-
http://www.bortzmeyer.org/protocole-postgresql.html
-
https://www.postgresql.org/docs/current/static/protocol.html
-
https://fr.wikipedia.org/wiki/Liste_de_progiciels_de_gestion_intégrés
-
http://www.apsia.eu/fr/solutions/acumatica-erp
-
http://www.entreprise-erp.com/articles/oracle-peoplesoft.html
-
https://m.youtube.com/watch?v=IYkY_njR9fE
-
https://www.atelog2i.com/non-classe/a-quoi-sert-un-middleware
TABLE DES MATIERES
Epigraphe
1
Dédicace
2
Remerciements
3
FIGURES ET TABLEAUX
4
SIGLES ET ABREVIATIONS
6
INTRODUCTION GÉNÉRALE
8
0.1 Aperçu sur le sujet
8
0.2 PROBLEMATIQUE
9
0.3 HYPOTHESE
10
0.4 CHOIX ET INTERET DU SUJET
10
0.5 BUT ET OBJECTIFS POURSUIVIS
10
0.6 METHODES ET TECHNIQUES UTILISEES
10
0.7 DELIMITATION DU SUJET
11
0.8 SUBDIVISION DU TRAVAIL
11
CHAPITRE I. GENERALITES SUR LES INTERGICIELS
12
I.1 INTRODUCTION
12
I.2 DEFINITIONS D'INTERGICIEL
12
I.3 ROLE D'UN INTERGICIEL
12
I.4 HISTORIQUE
12
I.5 SYSTEME DISTRIBUE
14
I.5.1 Définition
14
I.5.2 Intérêt des systèmes
distribués
14
I.5.3 Quelques domaines d'application des
systèmes distribués
15
I.5.4 Difficulté de mise en oeuvre
16
I.5.5 Caractéristiques des systèmes
distribués
17
I.5.6 Architecture distribuée
21
I.5.7 Les perspectives des architectures
distribuées
24
I.6 CARACTERISTIQUES DES INTERGICIELS
25
I.6.1 Les middlewares synchrones
25
I.6.2 Les middlewares asynchrones
25
I.7 ARCHITECTURES DE MIDDLEWARE
26
I.8 TYPES DE MIDDLEWARE
27
I.8.1 Middleware orienté accès aux
données
27
I.8.2 Middleware orienté transaction (Le
MOT)
27
I.8.3 Middleware orienté objet (Le MOO)
28
I.8.4 Middleware orienté message (MOM)
29
I.9 SORTES DE MIDDLEWARE
32
I.9.1 Les middlewares payants
32
I.9.2 Les middlewares open sources
33
I.10 INTERGICIELS DANS L'ENVIRONNEMENT
INDUSTRIEL
44
I.10.1 Industrie électronique
44
I.10.2 Industrie du jeu vidéo
47
I.11 AVANTAGES ET INCONVENIENTS DU MIDDLEWARE
48
I.11.1 Avantages
48
I.11.2 Inconvénients
49
I.12 CONCLUSION
49
CHAPITRE II. ETAT DE L'ART SUR LES ERPs
50
II.1 INTRODUCTION
50
II.2 PRESENTATION GENERALE DES ERP
50
II.2.1 DESCRIPTION
52
II.2.2 EVALUATION DE L'EMPLOI D'ERP
52
II.3 ETUDES COMPARATIVES DES ERP
56
II.3.1 LES ERP PAYANTS (LICENCE PAYANTE)
56
II.3.2. LES ERP GRATUITS (OPEN SOURCE)
59
II.4 Architecture (serveur-client web)
62
CONCLUSION
63
CHAPITRE III. ETUDE ET ANALYSE DE L'EXISTANT
64
III.1 INTRODUCTION
64
III.2 PRESENTATION DE LA SOCIETE NATIONALE
D'ELECTRICITE
64
III.3 OBJECFIFS, MISSION ET ORGANISATION DE LA
SNEL.
66
III.3.1 Objectifs et mission
66
III.3.2 Organisation administrative et
financière de la SNEL.
66
III.4 DEPARTEMENT DE DISTRIBUTION DE KINSHASA
68
III.5 CRITIQUE DE L'EXISTANT
70
III.6 SOLUTION PROPOSEE
70
III.7 ETUDES DES BESOINS
70
III.7.1 Besoins Fonctionnels
70
III.7.2 Besoins non Fonctionnels
71
3.1. CONCLUSION
71
CHAPITRE IV. CONCEPTION ET IMPLEMENTATION DES
APPLICATIONS
72
IV.1 INTRODUCTION
72
IV.2 MODELISATION
72
IV.2.1 Spécification des besoins
72
IV.2.2 Langage de modélisation
73
IV.2.3 Middleware
74
IV.2.4 Le diagramme de cas d'utilisation
75
IV.2.5 Analyse du système (ERP)
77
IV.2.6 Le cycle de développement en V et
Conception détaillée
84
IV.3 CHOIX TECHNIQUES
88
IV.4 PRESENTATION DES APPLICATIONS
90
IV.4.1 ActiveMQ (Intergiciel)
90
IV.4.2 Odoo
93
CONCLUSION GENERALE
107
ANNEXES
108
BIBLIOGRAPHIE
110
|