Multi-instances
Ce chapitre décrit une utilisation plus poussée et technique du déploiement de la solution SAINet afin de permettre une redondance et de meilleures performances grâce à la répartition de charge.
Les principaux éléments sont décrits dans l’architecture générale.
Architecture
Le schéma ci-dessous représente un exemple d’architecture possible de la solution:
Dans cette configuration, le Load balancer possède une adresse publique qui sera utilisée directement par le client riche et le client Web.
Portails SAINet
De manière générale, un portal SAINet doit être accessible publiquement et pouvoir communiquer avec le serveur SAINet. Par conséquent, il est mis dans une zone DMZ.
La configuration de ce réseau dépend de chaque installation et relève du service informatique.
Load balancer
C’est le point d’entrée principal de SAINet. Il s’agit d’une machine et/ou une application qui va simplement rediriger les requêtes sur une des instances du serveur SAINet en arrière-plan.
Le Load balancer pourrait également se trouver dans le réseau privé et l’accès se faire à travers un VPN.
Le nom de l’instance est définie par la propriété server.sainet.instance.name
. Chaque instance doit
porter un nom différent afin de pouvoir être identifiée de manière unique.
Les requêtes d’un même client riche/web doivent être redirigées sur la même instance !
Afin de pouvoir effectuer cette redirection, l’instance du serveur SAINet qui répond à une requête va toujours injecter le header Sai-Server-Instance
.
Ce header doit ensuite être transmis en retour au client lors de la réponse par le Load balancer. Pour les prochains appels, le client injectera ce header
dans la requête afin de permettre au Load balancer de rediriger l’appel correctement.
En résumé, si le header Sai-Server-Instance
est présent (et que l’instance est disponible), le Load balancer redirige la requête sur l’instance mentionnée.
Dans le cas contraire, le Load balancer est libre de rediriger la requête vers l’instance qu’il souhaite.
Gestion électronique de documents
Chaque instance doit avoir une vision de la GED en accord avec la base de données. Dans l’exemple ci-dessus, les deux instances accèdent au même partage réseau et voient donc les mêmes fichiers.
Il est nécessaire de définir les propriétés relatives à la GED (sainet.fs.root.ged
ou SAINET_EDMS_GED
)
afin de préciser l’emplacement de la GED.
Base de données
Les instances doivent accéder à la même base de données. Cela est nécessaire car certaines données doivent être communes entre les instances (typiquement pour les verrous afin d’informer un utilisateur qu’un autre est en train de travailler sur le même enregistrement).