Académique Documents
Professionnel Documents
Culture Documents
Logicielle
Master 2 Génie Informatique et Logiciel
Année 2023 – 2024
Révisions
I – Introduction
1 – Objet du document
API (Application Programming Interface) : est une interface logicielle qui permet de
connecter un logiciel (ou service) à un autre logiciel (ou service) afin d’échanger des
données et des fonctionnalités.
Back-end : domaine de développement web qui se concentre sur tous les processus
d’arrière-plan nécessaires qui se produisent du côté serveur d’un site web (voire une
application web ou une application mobile). C’est la partie invisible d’une application.
Composant : dans le cadre de ce document, un composant est défini comme une partie
de l’application web définissant une page ou un menu coté front-end.
JSON (Javascript Object Notation) : format des données permettant aux applications
d’échanger des informations de façon structurée.
Angular : framework pour applications clients, open source basée sur TypeScript qui
permet la création d’applications Web (particulièrement monopages).
II – Architecture de l’application
Principe 1 : Autonomie
Une caractéristique clé des micro-services est leur autonomie et leur capacité à
fonctionner indépendamment les uns des autres. L’autonomie est une mesure de contrôle
que l’implémentation du service a sur son environnement d’exécution et son schéma de
base de données. Cela améliore les performances et la fiabilité du service et donne aux
clients davantage de garanties quant à la qualité du service qu’ils peuvent en attendre.
Principe 3 : Réutilisabilité
Les équipes peuvent se mettre d'accord sur des modèles de communication pour
décider de la manière dont les micro-services doivent être adaptés pour être utilisés en
dehors des contextes dans lesquels ils ont été conçus.
Principe 5 : la composabilité
lien du lucidchart
3.1 – MS Opinion
Lien SQLDraw
3.1.2 – Explication
La table opinion est la table principale de ce micro service, celle-ci contient les données
principales sur les avis :
- L’ID
- La note
- Le commentaire
- Le pseudonyme de l’auteur si celui-ci souhaite être anonyme (ou ses initiales).
- Le statut de modération prenant les valeurs :
- PENDING : est en cours de modération automatique
- AUTOMATIC : a été automatiquement modéré
- FINISHED : a été manuellement modéré
- L’état d’acceptation de l’avis
- Le statut de visibilité de l’avis.
- La date de création
- La date de la dernière modification
- Plusieurs références vers les ID de l’utilisateur, du commerçant, de la commande
et d’un article.
- La raison si l’avis a été refusé.
Les tables product et merchant sont des tables contenant des données venant d’Ollca,
celles-ci. Nous prenons ici uniquement les informations que nous avons besoin, c’est-à-
dire :
- Le nom du produit ou du commerçant
- La description
- la catégorie
De plus, dans product, nous avons une référence vers le commerçant associé.
La table order contient les commandes, une commande ne contenant juste une liste de
produits.
Code Sortie
201 OpinionDto
POST /opinions CreateOpinionDto
400
200 List<OpinionDto>
GET /opinions-by-merchant N/A
404 > Avis inexistant
200 OpinionDto
3.2 – MS Invite
La première invitation est envoyée dans un délai de 48 heures après la date de retrait ou
de livraison de la commande. Si aucun avis n’a été rédigé dans un délai de 168 heures
après la date de retrait ou de livraison de la commande, une seconde invitation est
envoyée au client.
La table order stocke les informations sur les commandes reçues depuis Ollca :
a. l’identifiant de la commande auprès du système Ollca (id) ;
b. l’identifiant du client auprès du système Ollca (client_id) ;
c. si un avis a été déposé pour la commande (has_answered) - par défaut false ;
d. la date à laquelle la commande a été passée (created_at).
3.3 – MS Mailing
Afin de rester résilient en cas d’indisponibilité du serveur SMTP, les e-mails à envoyer
sont conservés en base de données afin de pouvoir les prendre en charge ultérieurement.
Les e-mails envoyés depuis plus d’un (1) mois sont automatiquement purgés de la base
de données à rythme quotidien.
La table email est peuplée avec l’e-mail à envoyer dès lors que le micro-service reçoit un
message dans le topic Kafka mail. Le champ sent_at d’une entrée est mis à jour dès
lors que le micro-service a envoyé l’e-mail en question avec succès.
Les demandes d’envoi déposées dans le topic mail sont consommées par le micro-service
Mailing qui persiste les données en base. Par défaut, une demande d’envoi possède le
statut SENDING : il est directement pris en charge pour un envoi vers le serveur SMTP.
Dans la mesure où le serveur SMTP est opérationnel, et que l’envoi réussit, alors le statut
de la demande d’envoi passe à SENT et le champ sent_at est peuplé avec la date
effective d’envoi. Au bout d’un mois passé la date d’envoi, l’entrée est purgée de la base
de données.
Si l’envoi échoue pour une raison quelconque, le statut passe à TO_BE_SENT et sera pris
en charge périodiquement par le micro-service jusqu’à ce que l’envoi réussisse. Cette
prise en charge se fera via un CRON qui traitera l’ensemble des demandes ayant le statut
TO_BE_SENT.
Nous ne pouvons pas garantir le taux de disponibilité du serveur SMTP. Par conséquent,
le micro-service a été conçu pour être résilient face aux éventuelles pannes du serveur
afin de ne pas “perdre” des demandes d’envoi si celles-ci venaient à arriver lors d’une
indisponibilité du serveur.
3.4 – MS AutoMod
MS AutoMod est composé pour le moment d’une unique table contenant la liste des
algorithmes énumérant les différents algorithmes disponibles pour la configuration.
Nature Auto-modération
Le service étant destiné à une utilisation interne, il ne propose que très peu de routes.
Celles-ci correspondent à la configuration de l’auto-modération, principalement les
algorithmes utilisés.
L’auto-modération en elle-même est gérée par le topic Kafka “moderation”.
204 N/A
SettingsDto
Champ Type Description
Liste des algorithmes à utiliser pour appliquer la
settings List<String>
modération automatique.
3.4.4 - Algorithmes
À définir.
Ce topic a pour objectif de modérer les différents avis. Tout d’abord, lorsque le micro-
service Opinion envoie un message sur ce topic, cela signifie que nous voulons
modérer un avis. Ensuite, le micro-service AutoMod va écouter ce message et va ensuite
le modérer. Les données échangés lors de cet échange seront :
- L’identifiant de l’avis
- L’identifiant du sujet
- Le type du sujet MERCHANT ou ARTICLE
- Le contenu de l’avis
“sujectId”: uuid,
“sujectType”: “MERCHANT” | “ARTICLE”,
“content”: string
}
}
Le type request est destiné pour demander que l’avis soit modéré. Et le type result
est destiné au résultat de la demande de modération.
4 - Cas d’utilisation
4.2 - Résumé:
ID Cas d’utilisation
UC_01 S'authentifier
Admin
Modérateur
Commerçons
Client
Visiteur
Actions Description
Flots secondaires
Diagramme de séquence
Maquette
Actions Description
Flots secondaires
Diagramme de séquence
Maquette
Actions Description
Flots secondaires
Diagramme de séquence
Maquette
Actions Description
Flots secondaires
Diagramme de séquence
Maquette
Actions Description
Condition d'arrêt
Diagramme de séquence
Maquette
Actions Description
Flots secondaires
Flots d'exceptions
Diagramme de séquence
Maquette
Actions Description
Flots secondaires
Diagramme de séquence
Maquette
Actions Description
Flots secondaires
Flots d'exceptions
Diagramme de séquence
Maquette
Actions Description
Flots secondaires
Flots d'exceptions
Diagramme de séquence
Maquette
Actions Description
Flots secondaires
Flots d'exceptions
Diagramme de séquence
Maquette
Actions Description
Flots secondaires
Diagramme de séquence
Maquette
Actions Description
Flots secondaires
Diagramme de séquence
Maquette
Actions Description
Diagramme de séquence
Maquette
Actions Description
Flots secondaires
Diagramme de séquence
Maquette
Actions Description
Flots secondaires
Flots d'exceptions
Diagramme de séquence
Maquette
Actions Description
Flots secondaires
Diagramme de séquence
Maquette
Actions Description
Diagramme de séquence
Maquette
Actions Description
Événements déclenchants Le client clique sur le lien envoyé par email, et sera dirigé
vers la page de rédaction.
Flots secondaires
Diagramme de séquence
Maquette
Actions Description
Condition d'arrêt
Flots secondaires
Flots d'exceptions
Diagramme de séquence
Actions Description
Condition d'arrêt
Flots secondaires
Flots d'exceptions
Maquette
Actions Description
Condition d'arrêt
Flots secondaires
Flots d'exceptions
Maquette
Actions Description
Flots secondaires
Flots d'exceptions
Diagramme de séquence
Maquette