Synchronisation de serveurs. Cas assez complexe. Des idées ?

Synchronisation de serveurs. Cas assez complexe. Des idées ? - Algo - Programmation

Marsh Posté le 06-07-2004 à 21:13:06    

Soit une architecture 4/3 :
 
GNX : Serveur Oracle, contenant la base d'un ERP.
INT : Serveur Web, contenant un intranet utilisant GNX.
DBW : Serveur Oracle, contenant la base de données d'un site web.
WEB : Serveur Web, contenant un site e-commerce utilisant DBW.
 
INT peut utiliser GNX. (odbc)
WEB peut utiliser DBW. (odbc)
WEB a un serveur FTP, auquel GNX peut accéder.
 
Aucune autre interaction.
 
Trois types d'utilisateurs :
- Externes : Ils peuvent consulter WEB, et y télécharger des documents.
- Filliales : Ils peuvent consulter WEB, et y déposer des documents.
- Interne : Ils peuvent consulter WEB, et y déposer des documents, ainsi que sur INT.
 
Actuellement, GNX contient une table référençant des millieirs de produits.
INT contient une application capable de générer un catalogue papier à partir des documents. Cette application ne peut pas être déployée sur WEN.
Les trois types d'utilisateurs doivent pouvoir accéder à l'intéralité des documents sur WEB.
Actuellement, la mise en ligne d'un document se fait de façon manuelle. Nous devons passer par une méthode "automatique" (c'est l'utilisateur qui le fait via une interface).
Les documents en question peuvent faire plusieurs dizaines de Mo, et les utilisateurs peuvent uploader des dizaines de ces documents "d'un coup".
La base GNX centralise actuellement les référencement des documents, et ça doit rester ainsi.
L'application qui génère les documents sur INT sait les récupérer à partir de WEB.
WEB a un serveur FTP que seul GNX est capable d'atteindre.
GNX envoie les mises à jour du référencement des documents à WEB régulièrement.
WEB ne peut pas utiliser cette information directement dans GNX (trop de traffic, et ligne trop instable)
La base GNX ne peux pas être modifiée structurellement.
Nous sommes owner de la base DBW.
GNX n'a pas accès à DBW.
INT n'a pas accès à DNW.
 
Ca va vous avez tout bien assimilé ? Je crois que j'ai rien oublié :)
 
Bon, maintenant, le but du jeu...
 
-> Un utilisateur doit pouvoir uploader sur WEB des documents, et ces documents doivent se référencer dans DBW et GNX, afin d'être consultables par INT.
-> INT ne peut pas être utilisé pour cette tâche, car les utilisateur "filliale" ne pourraient pas uploader de documents.
 
J'ai à disposition :
- Intégrateur Oracle (dans le sens GNX -> DBW)
- FTP (dans le sens GNX -> DBW)
- ASP (INT -> GNX) et (WEB -> DBW)
- Script bash (sur GNX)
- VB (sur WEB)
 
Une application VB peut être déployée sur les PC des utilisateurs "interne" et "filliale".
 
J'ai un début de piste pour traîter le problème, mais il nécessite un FTP sur WEB accessible aux utilisateurs "interne" et "filliale", ce qui risque de poser problème. Je devrais pouvoir m'en passer, mais je ne maîtrise pas suffisament pour être sûr de moi.
Je ne vous donne pas tout de suite ma solution, je préfèrerais avoir quelques suggestions "à froid" avant de vous embrouiller avec ma solution à la russe.
 
J'oubliais... Une solution si possible faisable en moins d'une semaine. Bah ouais, j'ai un planning super rush :sweat: M'enfin bon, ça fait deux mois que je prévient qu'ils m'en demandent trop d'un coup, si y'a des trucs en génération 2, ben tant pis... (6 semaines pour faire ça + la base DBW et le site sur WEB... C'est vraiment chaud, le site a lui-seul a demandé 9 mois à 3 personnes pour sa V1... j'en sais quelquechose, je faisais partie des 3 :D)
M'enfin bon, je m'écarte du sujet là ;)


Message édité par Arjuna le 06-07-2004 à 21:17:43
Reply

Marsh Posté le 06-07-2004 à 21:13:06   

Reply

Marsh Posté le 07-07-2004 à 00:57:53    

Ca inspire pas les foules... :sweat:
 
Bon, la solution que j'ai imaginé.
 
Une appli en VB distribuée chez les utilisaturs internes et filliales.
Cette appl interroge via HTTP le serveur "WEB" afin de choisir la classification des produits.
 
Ensuite, on indique la liste des fichiers à uploader, en les associant aux éléments voulus (des produits, des familles ou des news)
Pour éviter que l'upload fasse chier l'utilisateur, on passe l'appli en systray pendant l'upload via HTTP (là c'est la grande inconnue, c'est faisable mais je sais pas comment).
Le serveur "WEB" publie ces fichiers, et en fait une liste dans son répertoire FTP avec les associations éléments/documentsn et crée les relations dans la base "DBW".
 
Pendant ce temps, sur le serveur "GNX", un bash tourne toutes les heures par exemple, et vérifié que des fichiers ne sont pas en attente sur le FTP de "WEB".
S'il y en a, il les traîte en intégrant les données dans sa table dédiée aux documents et les renomme en local afin de garder une trace. Sur le FTP il fait pareil, il les renomme pour qu'on n risque pas de perdre d'info (au pire c'est pas dramatique mais bon)
 
Avec ce système, on met à jour tous les serveurs, puisque "INT" tape dans "GNX" qui est mis à jour, le tout avec un delta de moins d'une heure.
 
Ca semble jouable, mais ca pose plusieurs problèmes :
1) Le transfert par HTTP peut planter à cause d'un timeout serveur lié à une connection en upload trop lente. Là ça pose problème.
2) Ca fait deux programmes à développer et maintenir. (plus les quelques pages ASP utilisées par l'appli VB sur le serveur "WEB" )
 
Avez-vous une meilleure idée ?


Message édité par Arjuna le 07-07-2004 à 00:59:21
Reply

Marsh Posté le 07-07-2004 à 14:22:29    

Y'a quelqu'un ? :hello:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed