Bonjour,
je vous explique grosso-modo le cahier de charge du projet que je dois réaliser.
Dans une boite qui fait de la distribution (vente) les commerciaux se déplacent au niveau des clients afin de réaliser des commandes.
à partir d'une application, le commercial présente au client le catalogue de produits et par la suite, le client établi un bon de commande depuis cette même application (en cours de réalisation).
Cette commande doit être envoyée directement au siège de la boite (via une connexion 3G) afin de procéder à la livraison du client (facturation, destockage,livraison...etc).
Pour résumer nous avons deux applications :
L'application 1: Installée au niveau du siège de l'entreprise : celle-ci a le rôle d'afficher en permanence les commandes envoyées depuis l'application 2
L'application 2: Celle-ci est installée au niveau de chaque commercial et a pour rôle de présenter le catalogue des produits et d'envoyer les bons de commandes à l'application 1.
Mes principales contraintes sont :
Le client ne peut malheureusement pas obtenir une adresse IP fixe.
Nous ne pouvons pas souscrire à des solutions payantes par internet...
Maintenant, d'un point de vue réalisation, j’hésite entre deux architectures (ou plutôt approches) :
Approche 1 : Applications Client/Serveur :
J'ai crée la base de données HF client/serveur. celle-ci est stockée au niveau du siège. les commerciaux se connectent directement à la base et réalisent leurs commandes à distance depuis une connexion 3G.
Pour contourner le problème d'adresse IP dynamique, j'utilise la formule gratuite de NO-IP en ajoutant une redirection par le port 4900 au niveau du routeur du siège.
J'ai fais quelques essais, et tout fonctionne pour le mieux pour le moment. Cependant, je ne suis pas rassuré d'utiliser NO-IP car mon application dépendra toujours de ce service gratuit aujourd'hui mais qui sait demain?
Approche 2 : Passer à partir des mails
Pour l'application 2 (commercial): au lieu d'acceder à la base et d'y ajouter des enregistrements, l'application envoie un mail pour chaque commande réalisée ; dont le contenu (message) est structuré (sous forme d'un fichier xml par exemple), que défini une commande et contientra toutes les informations nécessaires pour interpréter la commande (IdClient,IdProduit,Qt,...etc)
Au niveau de l'application 1 (siège) : celle-ci devra "scruter" la boite de réception mail et récupérer tous les mails non lus et les traiter par la suite (interprétation et insersoin dans la base).
L'avantage de cette approche est que la base est inaccessible ce qui rend l'application plus sécurisée, de plus il n'est pas nécessaire que l'application 1 soit en ligne au moment de la réalisations des commandes. Cependant je me demande si c'est une solution fiable ? est-ce qu'un mail peut pour une raison ou un autre ne pas être envoyés sans que l'utilisateur en soit informer ?
Voilà, je m'excuse de la longueur de ce message et si vous êtes arrivé jusqu'ici en sa lecture je vous en remercie. Je suis preneur de tout conseil que vous pourriez m'apporter.
Merci
Réda
Partager