Bonjour,
Je dois évaluer et choisir les technos qui pourront résoudre au mieux ma problématique dans le cadre de mon travail.
Je vais commencer par poser mon problème dans le domaine du décisionnel. Pour un client, je dois fournir un applicatif de type API (dll en C) qui sera utilisé sur son site web (qui proposera en plus d'autres services en sus de ceux fournis par notre API). Au passage, cette API sera protégé par un dongle physique et vendue pour un nombre maximum de connexions simultanées. Vous l'aurez surement compris, mon problème consiste à gérer le nombre de connexions simultanées en évitant que mon client ait la tentation de tricher!!!
Pour résumer le fonctionnement du futur site web, l'internaute accède au site web avec ou pas un "username" et un "password" (IHM conçu par un tiers et surement en ASP.NET). Le serveur web fait une requête à notre API qui lui octroie un jeton de licence pour une temps donné (TIMEOUT). Le serveur effectue autant de requêtes qu'il souhaite tant qu'il y a encore des jetons disponibles.
Pour un utilisateur connecté, le serveur envoie à notre API l'action que l'utilisateur souhaite effectuer ainsi que le "handle" de son jeton. En fonction de la validité du jeton (TIMEOUT atteint ...) notre API renvoie le résultat au serveur qui se charge de l'afficher en fonction de l'IHM.
Vous l'aurez compris, il serait assez aisé pour le concepteur du site web de demander un jeton, de le mettre en variable globale (donc accessible à toutes les sessions) et de leurrer notre API. Ainsi 200 utilisateurs pourraient utiliser notre API avec le même jeton de licence alors que le licence de notre API n'est valable que pour 50 connexions simultanées (en fait il n'en verrai qu'une dans le cas précis).
Tout en conservant l'API sous la forme d'une DLL en C, je ne vois pas trop comment faire pour résoudre mon problème.
J'ai tout d'abord penser à développer une IHM (à intégrer dans le site WEB) sous la forme d'une application RIA (silverlight, java ou autre). Cette dernière communiquera directement avec notre API stockée sur le serveur web. Bien-sur, cette application devra avoir son code illisible pour le concepteur du site web.
Q1: est-ce une idée qui tient la route?
Q2: Est-il possible à partir de l'application RIA (exécutée en local chez l'utilisateur si je ne me trompe pas) d'accéder à notre API stockée sur notre serveur? Si oui, par quelle(s) techno(s)?
Q3: avez-vous d'autres solutions à me proposer?
Jusqu'ici, nous n'avons développé que des applications Desktop dans le décisionnel. Et pour le compte de notre nouveau client, une version allégée et web de nos applications est nécessaires. Attention, rien à voir avec du cloud. En gros, nos applications Desktop servent à produire des modèles mathématiques et l'API web sert à l'exploitation de ces modèles.
De plus j'ai une autre problématique encore plus tordu!!!Notre API devra surement communiqué avec une deuxième API situé sur un deuxième serveur distant (genre enfermé dans un coffre fort et connecté à une base de données payante) pour effectuer des requêtes, récupérer les résultats et le retransmettre à l'utilisateur à l'origine de la commande.
Je ne sais pas si je suis clair, ni si ce forum est l'endroit adéquat pour ma question.
Merci par avance pour vos réponses.
Bonne journée.
Partager