Brevet FR2823044A1 — publié le 20021004

DISPOSITIF ET PROCÉDÉ D'ÉCHANGE DE FLUX ENTRE UN DISPOSITIF CLIENT ET UN SERVEUR BASÉS SUR UN PROTOCOLE D'ADAPTATION DE CONTENU DE FICHIERS INTERNET DE TYPE ICAP L'invention concerne un dispositif et un procédé d'échange de flux entre un dispositif client disposant d'un fichier Internet et un serveur apte à assurer à la demande du dispositif client un service de transformation dudit fichier, la communication entre le dispositif client et le serveur étant basée sur un protocole d'adaptation de contenu de fichiers Internet de type iCAP. Le domaine de l'invention est celui de la communication entre des équipements d'un réseau de télécommunication de type Internet et des serveurs hébergeant des services à valeur ajoutée en l'occurrence, les services de transformation ou d'adaptation de contenu. Dans la pratique, un contenu se présente sous la forme d'un fichier. La communication est basée sur un protocole d'adaptation de contenu de type iCAP, acronyme anglais de Internet Content Adaptation Protocol , défini par un groupe de sociétés dans le cadre de l'iCAP forum. On peut citer comme exemples de services de transformation de contenu, des services de transformation de fichiers tels que la conversion de documents Word en documents RTF, la recherche de virus dans un fichier, la traduction automatique d'un fichier, la catégorisation de contenus par analyse sémantique renvoyant un fichier correspondant aux thèmes principaux du document, en vue par exemple d'un contrôle parental lorsque des thèmes licencieux ont été détectés, etc. Un exemple de transformation de contenu selon le protocole iCAP est illustré sur la figure 1 : a) une requête HTTP est envoyée de l'ordinateur 1 d'un utilisateur vers un proxy cache 3 configuré dans le navigateur ( browser en anglais) de l'ordinateur ; l'ordinateur 1 peut être remplacé par tout autre équipement apte à envoyer une requête HTTP, de même le cache 3 peut être remplacé par un routeur ou par tout autre équipement du réseau Internet, b) le cache 3 envoie une requête HTTP au serveur Web 2 contenant cette page, c) le serveur Web renvoie la page demandée au cache 3, d) le cache 3 agissant comme dispositif client iCAP, plus simplement appelé client iCAP, demande un service de transformation de contenu au serveur iCAP 4, en lui transmettant la page Web ; la transformation de contenu demandée pourrait tout aussi bien concerner la requête HTTP elle-même et être demandée directement, à l'issue de l'étape a) ou à l'issue de l'étape c), c'est-à-dire après que la réponse HTTP ait été envoyée ; dans la suite, on désignera par fichier Internet, une réponse HTTP comportant une ou plusieurs entêtes et un contenu, ou une requête HTTP ne comportant en général pas de contenu mais au moins une entête ; e) le serveur iCAP 4 traite cette demande en mettant en oeuvre le service de transformation de fichier demandé puis répond au cache 3 en renvoyant le fichier transformé, par exemple la page traitée, f) le cache 3 retourne à l'ordinateur 1 de l'utilisateur la réponse du serveur iCAP 4 et stocke cette réponse. Comme illustré dans cet exemple, le rôle du protocole iCAP consiste à relier un client iCAP 3 au serveur iCAP 4. Actuellement pour pouvoir implémenter ce protocole iCAP entre un client 3 et un serveur 4 correspondant aux étapes d) et e) précédentes, il est indispensable comme représenté figure 2, de développer une couche spécifique 41 au sein du service de transformation de fichier 40 mis en oeuvre par le serveur iCAP 4. Cela impose en particulier un développement spécifique pour chaque service de transformation de fichier. De plus, ces développements sont lourds et coûteux. Le but de la présente invention est donc de réduire voire de supprimer le développement spécifique nécessaire à chaque service pour qu'il soit compatible avec le protocole iCAP. L'invention a pour objet un dispositif d'échange de flux entre un client disposant d'un fichier Internet et un serveur apte à assurer à la demande du client, au moins un service de transformation dudit fichier, la communication entre le client et le serveur étant basée sur un protocole d'adaptation de contenu de fichiers Internet de type iCAP, principalement caractérisé en ce qu'il comporte un adaptateur des flux de type iCAP en fichiers aptes à être utilisés directement par ledit serveur ou ledit client ; et en ce que l'adaptateur comprend des moyens de communication avec le client et le serveur et un fichier de configuration dans lequel est (sont) déclaré (s) le (s) service (s) de transformation. L'adaptateur comporte avantageusement un module de communication apte à gérer la communication avec le client et/ou un module d'extraction des entêtes et du contenu du fichier Internet et/ou un module de préanalyse des entêtes et/ou un module de création de fichiers d'interface entre l'adaptateur et le serveur et/ou un module d'appel du service d'adaptation du serveur et/ou un module de réponse et/ou un module de contrôle d'intégrité du fichier transformé destiné au client et/ou un module de reconstitution du fichier transformé destiné au client. L'adaptateur peut être intégré au serveur. L'invention concerne également un procédé d'échange de flux entre un client disposant d'un fichier Internet, et un serveur apte à assurer au moins un service de transformation de fichier, la communication entre le client et le serveur étant basée sur un protocole d'adaptation de contenu de fichiers Internet de type iCAP, caractérisé en ce qu'il consiste à placer un adaptateur des flux de type iCAP en fichiers aptes à être utilisés entre le client et le serveur et en ce qu'il comporte les étapes suivantes : a-l'envoi d'un fichier Internet, par ledit client à l'adaptateur, b-l'adaptation du fichier Internet par l'adaptateur et envoi du fichier adapté audit serveur, c-l'exécution de la transformation du fichier adapté, par ledit serveur et envoi du fichier transformé audit adaptateur, d-l'adaptation du fichier transformé par l'adaptateur e-l'envoi du fichier transformé et adapté audit client. Selon une caractéristique de l'invention, l'étape b-consiste pour l'adaptateur à - extraire les entêtes et éventuellement le contenu du fichier Internet fourni par le client, - procéder à une pré-analyse des entêtes, - générer des fichiers d'interface, - appeler le service de transformation du serveur, - se mettre en attente d'une réponse du serveur. L'étape d-consiste avantageusement pour l'adaptateur à - vérifier le paramètre de retour de l'appel et contrôler l'intégrité du fichier transformé, lorsque le contrôle d'intégrité le commande, reconstitution du fichier transformé. Selon une caractéristique additionnelle, le procédé selon l'invention comporte une étape préalable d'initialisation de l'adaptateur consistant à déclarer dans un fichier de configuration de l'adaptateur, le ou les services de transformation. D'autres particularités et avantages de l'invention apparaîtront clairement à la lecture de la description faite à titre d'exemple non limitatif et en regard des dessins annexés sur lesquels : la figure 1 déjà décrite représente schématiquement les étapes d'appel à un système de transformation de fichier, la figure 2 déjà décrite représente schématiquement le fonctionnement d'un système actuel de transformation de fichier, la figure 3 représente schématiquement un système de transformation de fichier selon l'invention, la figure 4 représente schématiquement les principaux éléments fonctionnels d'un dispositif d'échanges de flux iCAP selon l'invention, la figure 5 représente schématiquement un exemple de fichier Internet, les figures 6a), 6b) et 6c) représentent schématiquement des éléments fonctionnels d'un dispositif selon l'invention respectivement lors d'un appel de service de transformation, de l'exécution de ce service et de la réponse, la figure7 est un diagramme de relations entre classes. Comme représenté figure 3, l'invention consiste à prévoir un adaptateur 5 de préférence dans le serveur 4, pour d'une part dans le sens client-serveur, adapter les fichiers pour qu'ils puissent être directement utilisés par les services de transformation de fichier 40 et d'autre part dans le sens serveur-client, assurer un contrôle d'intégrité du fichier transformé et éventuellement sa reconstitution. L'adaptateur 5 permet de formaliser les échanges entre le client iCAP 3 et les services de transformation de fichier grâce à une adaptation des flux iCAP des étapes d) et e) pour les rendre compatibles avec des services de transformation de fichiers 40 sans qu'il soit nécessaire de développer une couche iCAP au niveau des services de transformation de fichier. Ceci permet alors de définir des services de transformation de fichiers, modulaires, évolutifs et indépendants des couches iCAP. On va à présent décrire le fonctionnement de l'adaptateur selon l'invention, en relation avec la figure 4 : - l'adaptateur 5 est tout d'abord initialisé afin notamment de connaître (le ou) les services de transformation qui pourront être invoqués : dans un fichier de configuration sont entrés en plus des paramètres de fonctionnement (port de communication, taille de la file d'attente des demandes de services de transformation, répertoire où sont générés des fichiers d'interface avec le serveur,...), les noms des services de transformation et les paramètres spécifiques associés aux services de transformation et la manière de les invoquer (chemin d'accès, modèle de compilation du service (utilisant des librairies statiques ou dynamiques ou des exécutables),...) ; dans un exemple de réalisation, les paramètres de fonctionnement ont été initialisés par les champs et les valeurs suivants : le port de communication, server. default port=8080 la taille de la file d'attente, server. default~backlog=20 le répertoire, server. tempdirectory=/home/cbe/files le chemin d'accès à des fichiers spécifiques d'un service de filtrage, SVC. def~directory= /home/filtrage/SVC/def - étant initialisé, l'adaptateur 5 est en attente de connexion provenant du client iCAP 3 via un module de communication 50 lui permettant ainsi de converser avec le client iCAP 3 et de stocker temporairement l'ensemble des données échangées pendant les phases de communication. Lorsque la transformation de fichier concerne une réponse du serveur Web 2, ces données représentées figure 5, comportent outre un contenu, les entêtes HTTP émises depuis le navigateur Web de l'ordinateur 1, les entêtes HTTP retournées par le serveur Web 2 de destination, ainsi que les entêtes iCAP concernant le client iCAP 3. Lorsque la transformation de fichier concerne une requête, ces données comportent les entêtes HTTP émises depuis le navigateur Web de l'ordinateur 1, ainsi que les entêtes iCAP concernant le client iCAP 3 ; les autres données existent éventuellement dans le cas où la transformation est demandée après l'étape c) représentée figure 1, mais ne sont pas concernées puisqu'il s'agit d'une transformation de requête. On se reporte à la figure 4. Le module 50 gère de manière classique la liaison TCP/IP et le protocole iCAP en ouvrant notamment un port de communication TCP ; ce module 50 est en attente tant qu'aucune requête iCAP ne lui parvient. Lors de la réception d'une requête iCAP, le module crée un nouveau canal ( socket ) de communication chargé d'assurer le traitement du service de transformation demandé par le client 3 ; le port de communication ainsi libéré se remet en attente d'une autre requête. On peut par exemple utiliser l'instruction suivante écrite en langage C++ sous le système d'exploitation LINUX : TheIcapAdapter > handleNewClients () ; Les données émises par le client 3 sont transmises vers un module 500 via le canal de communication créé. Le module de communication 50 comporte en outre des moyens de stockage temporaire de l'ensemble des données échangées pendant les phases de communication. - au moyen du module 500, l'adaptateur 5 extrait les entêtes et le contenu des données reçues du module 50, analyse les entêtes, crée quatre fichiers isolant les différentes entêtes du contenu, en utilisant par exemple l'instruction int iCr=CreateFiles (new~fd, cCanal, Exceed) ; après une mise en forme précise, l'adaptateur 5 redirige ensuite le flux de données vers le service de transformation 40 demandé en utilisant par exemple l'instruction if (~ServiceIcap) returnValue=~ServiceIcap - > CallService (new-fd, cCanal,-icapRootDirectory, Exceed) ; le service demandé 40 peut être localisé sur le serveur 4 ou être distant et invoqué à travers le réseau Internet par exemple. Le module 500 se met ensuite en attente d'une réponse du service de transformation ; - le fichier transformé retourné par le service 40 est contrôlé par le module 500 qui en vérifie l'intégrité ; le fichier transformé subira éventuellement une mise en forme, voire même un ensemble d'actions supplémentaires pour le rendre conforme au protocole iCAP ; - le fichier contrôlé est délivré au client iCAP 3 via le module de communication 50 et le canal de communication ouvert pour traiter ce service de transformation est fermé, en utilisant par exemple l'instruction CicapGlobals : : ManageResponse (Filtrage, Long file, rootDirectory, socketfd) ;. Le diagramme représenté figure 7, illustre les relations existant entre les classes utilisées dans les instructions précédentes. On va à présent décrire plus en détail les fonctionnalités du module 500 en relation avec les figures 6a), 6b) et 6c) correspondant respectivement à un appel de service de transformation, à l'exécution de la transformation et à la réponse. Lors d'un appel de service de transformation, les données sont transmises par le module de communication 50 vers un module 51 d'extraction des entêtes et du contenu. Ce module 51 sépare les différents champs propres à chacune des entêtes et invoque pour chaque entête, le module 52 de pré-analyse des entêtes. Le module 52 de pré-analyse des entêtes vérifie dans un premier temps que le service de transformation invoqué est disponible sur le serveur iCAP ; en l'occurrence, il vérifie que le service de transformation invoqué est décrit dans le fichier de configuration de l'adaptateur. Si ce n'est pas le cas, il retourne une erreur au client iCAP 3, via le module de communication 50, sans passer par le serveur iCAP. Le module 52 analyse également le type de requête iCAP : modification de réponse Web ou modification de requête Web. Dans le mode modification de requête, il n'est en général pas nécessaire d'extraire le contenu ni même l'entête HTTP du serveur Web. Le module 52 identifie les éventuels paramètres associés à l'exécution du service. Le module 52 retourne les résultats au module d'extraction 51 qui appelle les modules 53a, 53b, 53c, 53d de création des fichiers d'interface en sortie. Les modules 53a, 53b, 53c, 53d créent les quatre fichiers offrant aux services de transformation de fichier 40, une interface commune facilitant les transformations à effectuer sur les fichiers : - l'entête du serveur iCAP 4 est enregistrée dans un fichier iCAP-Out qui contient alors les informations relatives au client iCAP 3 ainsi que certains champs de la requête ou de la réponse HTTP selon qu'il s'agit du mode modification de requête ou modification de réponse, - l'entête HTTP émise par l'ordinateur 1 qui contient des informations relatives au navigateur client ainsi qu'au serveur Web invoqué, est enregistrée dans un fichier HTTPClient-Out, - l'entête HTTP retournée par le serveur Web 2 qui contient des informations relatives au contenu de la réponse, son adresse URL, son type, sa longueur est enregistrée dans un fichier HTTPServ-Out ; ce fichier peut être vide lorsqu'il s'agit du mode modification de requête ; - le contenu de la réponse du serveur Web, expurgée des entêtes (fichier html, gif, j peg,...) ; ce fichier peut être vide lorsqu'il s'agit du mode modification de requête. Chaque nom de fichier est complété par un numéro d'index incrémenté d'une unité à chaque nouvelle requête iCAP. Chaque module 53a, 53b, 53c et 53d de création de fichier envoie un code de retour au module 51 d'extraction pour indiquer le résultat de l'opération, ainsi que les noms des fichiers. Une fois les entêtes analysées et les fichiers créés, le module d'extraction 51 invoque le module 54 d'appel des services de transformation 40. Ce module 54 appelle le service de transformation concerné en fournissant un ensemble de paramètres comportant notamment le nom de la fonction d'appel du service, l'adresse et le port du serveur iCAP où se situe le service et les noms des fichiers d'interface précédemment définis. Comme indiqué figure 6b), le service de transformation 40 exécute alors la transformation en relation avec les modules 53a, 53b, 53c et 53d permettant d'accéder aux fichiers d'interface, et retourne les données transformées à un module de réponse 55. Le module de réponse 55 représenté figure 6c), récupère les données du service de transformation 40. Parmi ces données figure un code de retour de la fonction d'appel du service indiquant que la transformation a été correctement effectuée ; lorsque ce n'est pas le cas et qu'un problème a été détecté, le code de retour qui est alors un code d'erreur étendu permet au module de réponse 55 un diagnostic rapide du problème détecté. Parmi ces données figurent également des informations supplémentaires sous forme de quatre fichiers d'interface en entrée correspondant aux fichiers d'interface en sortie. Chacun de ces fichiers reflète la transformation de fichier intervenue ; il en résulte : un complément de modification de l'entête iCAP, d'éventuelles modifications de l'entête HTTP client, d'éventuelles modifications de l'entête HTTP serveur, les données résultant du fichier transformé. Le module de réponse 55 peut utiliser ces fichiers pour appeler un nouveau service iCAP et ainsi enchaîner les services de transformation dans la mesure où les données et paramètres sont disponibles et déjà répertoriés. Cette fonctionnalité peut être activée lorsque les services à enchaîner ont le même nom générique. Un service de contrôle de virus peut par exemple succéder à un service de contrôle parental interdisant l'accès à des pages Web pour lesquelles des sujets licencieux ont été détectés, ces deux services étant reconnus sous le nom générique contrôle . Après avoir reçu les données transformées, le module de réponse 55 invoque le module 56 de contrôle d'intégrité. Le module 56 vérifie l'intégrité des données en effectuant notamment des tests de cohérence entre par exemple la longueur du fichier transformé et l'information de l'entête relative à cette longueur. Les données contrôlées sont alors transmises au module 57 de reconstitution des fichiers. Le module 57 crée ou complète l'entête iCAP avec les informations sur la nature du serveur iCAP 4. Il modifie les entêtes HTTP de l'ordinateur 1 et/ou du serveur Web 2 en fonction des consignes du module 56 de contrôle d'intégrité ; en cas d'absence d'un ou plusieurs fichiers d'interface en entrée, le module 57 peut les recréer à partir des fichiers d'interface en sortie. Une fois reconstitué, le fichier est transmis au module de communication 50 qui le retourne au client iCAP 3 ayant initialisé la requête iCAP. REVENDICATIONS 1. Dispositif d'échange de flux entre un dispositif client (3) disposant d'un fichier Internet et un serveur (4) apte à assurer à la demande du dispositif client (3), au moins un service de transformation dudit fichier, la communication entre le dispositif client (3) et le serveur (4) étant basée sur un protocole d'adaptation de contenu de fichiers Internet de type iCAP, caractérisé en ce qu'il comporte un adaptateur (5) des flux de type iCAP en fichiers aptes à être utilisés directement par ledit serveur (4) ou ledit dispositif client (3) ; et en ce que l'adaptateur (5) comprend des moyens de communication avec le dispositif client (3) et le serveur (4) et un fichier de configuration dans lequel est (sont) déclaré (s) le (s) service (s) de transformation. 2. Dispositif selon la revendication précédente, caractérisé en ce que l'adaptateur (5) comporte un module (50) de communication apte à gérer la communication avec le dispositif client (3). 3. Dispositif selon l'une des revendications précédentes, caractérisé en ce que l'adaptateur (5) comporte un module (51) d'extraction des entêtes et du contenu du fichier Internet. 4. Dispositif selon la revendication précédente, caractérisé en ce que l'adaptateur (5) comporte un module (52) de pré-analyse des entêtes. 5. Dispositif selon l'une des revendications précédentes, caractérisé en ce que l'adaptateur (5) comporte au moins un module (53a ou 53b ou 53c ou 53d) de création de fichiers d'interface entre l'adaptateur (5) et le serveur (4). 6. Dispositif selon l'une des revendications précédentes, caractérisé en ce que l'adaptateur (5) comporte un module (54) d'appel du service d'adaptation du serveur (4). 7. Dispositif selon l'une des revendications précédentes, caractérisé en ce que l'adaptateur (5) comporte un module (55) de réponse. 8. Dispositif selon l'une des revendications précédentes, caractérisé en ce que l'adaptateur (5) comporte un module (56) de contrôle d'intégrité du fichier transformé destiné au dispositif client (3). 9. Dispositif selon l'une des revendications précédentes, caractérisé en ce que l'adaptateur (5) comporte un module (57) de reconstitution du fichier transformé destiné au dispositif client (3). 10. Dispositif selon l'une des revendications précédentes, caractérisé en ce que l'adaptateur (5) est intégré au serveur (4). 11. Procédé d'échange de flux entre un dispositif client disposant d'un fichier Internet, et un serveur apte à assurer au moins un service de transformation de fichier, la communication entre le dispositif client et le serveur étant basée sur un protocole d'adaptation de contenu de fichiers Internet de type iCAP, caractérisé en ce qu'il consiste à placer un adaptateur des flux de type iCAP en fichiers aptes à être utilisés entre le dispositif client et le serveur et en ce qu'il comporte les étapes suivantes : a-l'envoi d'un fichier Internet, par ledit dispositif client à l'adaptateur, b-l'adaptation du fichier Internet par l'adaptateur et envoi du fichier adapté audit serveur, c-l'exécution de la transformation du fichier adapté, par ledit serveur et envoi du fichier transformé audit adaptateur, d-l'adaptation du fichier transformé par l'adaptateur e-l'envoi du fichier transformé et adapté audit dispositif client. 12. Procédé selon la revendication précédente, caractérisé en ce que l'étape b-consiste pour l'adaptateur à - extraire les entêtes et éventuellement le contenu du fichier Internet fourni par le dispositif client, - procéder à une pré-analyse des entêtes, - générer des fichiers d'interface, - appeler le service de transformation du serveur, - se mettre en attente d'une réponse du serveur. 13. Procédé selon l'une des revendications 11 ou 12, caractérisé en ce que l'étape d-consiste pour l'adaptateur à - vérifier le paramètre de retour de l'appel et contrôler l'intégrité du fichier transformé, lorsque le contrôle d'intégrité le commande, reconstitution du fichier transformé. 14. Procédé selon l'une des revendications 11 à 13, caractérisé en ce qu'il comporte une étape préalable d'initialisation de l'adaptateur consistant à déclarer dans un fichier de configuration de l'adaptateur, le ou les services de transformation.