Brevet FR2803672A1 — publié le 20010713

Domaine technique La présente invention concerne les applications de transfert de fichiers entre un poste de travail client et un serveur web, le poste de travail étant connecté au web par un réseau local (LAN) ou un grand réseau (WAN), et plus particulièrement un système pour transférer des fichiers de données entre un poste de travail client et un serveur web. Contexte Le transfert des fichiers de données entre un serveur web et un poste de travail client se fait au moyen d'applications telles qu'un explorateur web ou un logiciel pour client de transfert de fichiers. Ce type de logiciel nécessite un protocole de transfert tel que le Hypertext Transfer Protocol (HTTP) utilisé lorsqu'un explorateur web transfère des fichiers de données à partir de serveurs web distants pour afficher graphiquement leurs contenus sur le moniteur du poste de travail. HTTP convient pour charger des fichiers HTML et les petits graphiques en mode points affichés avec eux, mais il n'est pas conçu pour transférer de gros fichiers de données. En revanche, un autre protocole, le File Transfer Protocol (FTP), est capable de charger de gros fichiers et de reprendre le transfert après une interruption. Le transfert de fichiers par le moyen des pièces jointes d'e-mails étant inefficace ou irréalisable lorsqu'il s'agit de gros documents, le protocole FTP est la seule solution standard utilisable pour envoyer de nouvelles pages HTML sur un site web ou partager des fichiers comportant des graphiques. De nombreuses applications TCP/IP peuvent fonctionner sur Internet, la plupart d'entre elles étant des applications client/serveur. A chaque fois qu'une demande de connexion est reçue, une opération est lancée tant du côté du poste de travail client que du serveur. Plusieurs opérations peuvent se dérouler simultanément sur le poste de travail client comme sur le serveur. Pour faciliter ce processus, à chaque application (FTP par exemple) est assignée une adresse unique que l'on appelle un port. L'application concernée est liée à ce port. Des milliers de ports peuvent être utilisés sur un serveur ou un poste de travail client. Une affectation de port standard se définit comme un "framework". Par exemple, FTP utilise le port TCP 21 et HTTP le port TCP 80. D'autres valeurs peuvent être utilisée pour ces applications si nécessaire. De nos jours, un nombre croissant de gros utilisateurs, de travailleurs à domicile et gestionnaires Internet professionnels exploitent à fond le potentiel de ce protocole en utilisant des clients FTP (logiciels de transfert de fichiers conçus pour les clients) pour minimiser le temps de connexion. En fait, pour quiconque a affaire à Internet, l'expression "client FTP" devrait être associée à celles d'"e-mail" et dl "explorateur" pour décrire les besoins d'un ordinateur efficace. I1 est très courant d'utiliser un explorateur web ou d'autres applications internes pendant qu'un fichier est en cours de chargement, or cela affecte les performances tant de l'application que du transfert de fichier, prolonge l'attente et provoque parfois des erreurs. La principale raison en est que certaines ressources sont partagées car le transfert de fichier utilise une grande quantité de ressources matérielles et logicielles interne. C'est pourquoi il est nécessaire de réduire le nombre de ressources matérielles et logicielles situées dans le système de traitement central qui est normalement impliqué dans le mécanisme de chargement des fichiers, afin d'améliorer les performances aussi bien du transfert de fichier que des autres tâches en cours dans le poste. Résumé de l'invention C'est pourquoi la présente invention a pour principal objet de proposer un système pour connecter directement le réseau d'un poste de travail client à son disque dur, et contourner le bus système central, la mémoire centrale et le processeur central afin d'obtenir un transfert des fichiers de données plus rapide et de permettre aux autres tâches en cours dans le processeur central de profiter de toutes les ressources disponibles. L'invention concerne par conséquent un système pour charger un fichier de données d'un serveur web sur un poste de travail client via un réseau sur lequel est connecté le poste client, ce dernier possédant un disque dur pour stocker le fichier des données transférées via un bus SCSI. Le poste de travail client possède aussi une mémoire à double accès pour stocker provisoirement le fichier de données, une unité logique de réseau interconnectée entre le réseau et le port d'entrée de la mémoire à double accès pour recevoir le fichier de données du réseau et le transmettre à la mémoire à double accès, et une unité logique SCSI interconnectée entre le port de sortie de la mémoire à double accès et le bus SCSI pour transférer le fichier de données de la mémoire à double accès vers le disque dur via le bus SCSI. Cette invention concerne aussi un système pour charger un fichier de données d'un serveur web sur un poste de travail client via un réseau sur lequel est connecté le poste client, ce dernier possédant un disque dur pour stocker le fichier de données transféré via un bus SCSI. Le poste de travail client possède aussi une mémoire à double accès pour stocker provisoirement le fichier de données, une unité logique de réseau interconnectée entre le réseau et le port d'entrée port de la mémoire à double accès pour recevoir le fichier de données du réseau et le transmettre à la mémoire à double accès, et une unité logique SCSI interconnectée entre le port de sortie de la mémoire à double accès et le bus SCSI bus pour transférer le fichier de données de la mémoire à double accès vers le disque dur via le bus SCSI. Brève description des dessins On comprendra mieux les objets, caractéristiques et avantages susmentionnés, entre autres, de l'invention à la lecture de sa description plus détaillée ci-après, en se référant aux dessins d'accompagnement suivants - La figure 1 est un schéma fonctionnel représentant l'environnement dans lequel un poste de travail client peut être connecté à un réseau à l'aide d'un système conforme à l'invention. - La figure 2 est un schéma fonctionnel représentant les éléments matériels d'un poste de travail client selon l'état actuel de la technique. - La figure 3 est un schéma fonctionnel représentant les éléments matériels d'un poste de travail client selon l'invention. - La figure 4 est un schéma fonctionnel détaillé du poste de travail client selon l'invention représenté sur la figure 3. - La figure 5 représente l'architecture logicielle du poste de travail client selon l'invention. - La figure 6 représente les différentes couches logicielles dans une application client FTP/serveur web. Description détaillée de l'invention L'architecture matérielle d'un poste de travail client actuel est représentée sur la figure 2. Avec une telle architecture, le transfert des fichiers utilise les éléments matériels suivants un adaptateur LAN (ou WAN) 201, une mémoire centrale de poste de travail 202, un bus système 203, un adaptateur de système pilote SCSI 204, un disque dur 205, un processeur 206, un arbitre de bus système 207, et les ressources logicielles suivantes un gestionnaire d'adaptateur LAN, un gestionnaire d'adaptateur SCSI, une interface client, un IP de pile de système d'exploitation et un protocole de transfert de fichiers tel que FTP sont activés par le processeur 206. Le poste de travail client 10 comprend au minimum le processeur 206, la mémoire centrale 202, l'adaptateur LAN 201 et l'adaptateur SCSI 204, tous ces éléments communicant par le bus système commun 203. C'est pourquoi l'arbitre 207 est nécessaire pour gérer l'affectation du bus. Le disque dur 205 est connecté à l'adaptateur SCSI 204 via un bus SCSI externe 208. L'adaptateur SCSI et le bus peuvent facilement être remplacés par un autre bus et d'autres unités du type IDE. Un transfert de fichier implique les opérations suivantes - une fois que la connexion est établie, le fichier est reçu par l'adaptateur LAN qui transfère les données par giclées vers la mémoire centrale via le bus système, - chaque giclée est transférée de la mémoire centrale vers l'adaptateur SCSI via le bus système, - l'adaptateur SCSI enregistre chaque giclée sur le disque dur via le bus SCSI, - ces opérations sont répétées jusqu'à ce que le fichier soit reçu. On notera que chaque transfert de données est contrôlé par le protocole de transfert de fichier exécuté par le processeur. Du point de vue matériel, les transferts de données passent par la mémoire centrale et le bus système. Par conséquent, pendant chaque transfert de données, le processeur cesse son activité, ce qui réduit les performances du poste de travail client. La figure 3 représente la nouvelle architecture du poste client selon l'invention. Elle est basée sur un nouvel adaptateur LAN 301 qui active une unité logique LAN 302, un contrôleur SCSI 303, une mémoire à double accès 304, une unité logique d'interface de bus système 305 et un microcontrôleur 306. Un bus SCSI de poste de travail client 208 connecte un adaptateur SCSI naturel 204 et l'unité logique SCSI 303 sur le disque dur 205. On admet que TCP/IP est le protocole standard utilisé pour les opérations de réseau. Le type d'opération à effectuer est indiqué dans ce qu'on appelle le "numéro de port" qui identifie le protocole de transfert de fichiers à utiliser. La fonction d'analyse de port ne sélectionne que les paquets dont le numéro de port correspond au protocole traité par le microcontrôleur 306. Un seul port à la fois est affecté à une application, ce filtrage permettant de décider si le paquet est traité par le microcontrôleur 306 et la pile IP locale activée dans l'adaptateur LAN ou par le processeur (206) et la pile IP principale contrôlée par le système d'exploitation. Un autre test qui peut être effectué pour éviter les erreurs ou les trames invalides consiste à contrôler les champs des adresses IP Source et Destination pour vérifier que la trame appartient à un flux connu, et bien sûr à contrôler la numéro de séquence pour s'assurer que la trame est bien celle prévue. Ces tests peuvent être exécutés par le microcontrôleur 306. La fonction d'analyse de port analyse le numéro de port et décide quand effectuer une opération de transfert de fichier. Selon l'affectation du port, ce transfert de fichier se fait soit via le bus système/la mémoire centrale 203, soit localement via la mémoire à double accès 304. Dans ce dernier cas, les opérations de transfert de fichier n'utilisent plus la mémoire centrale et le bus système, ce qui améliore les performances du poste de travail client. Cette nouvelle architecture est ainsi ouverte à n'importe quel type d'applications. Sur la version préférentielle, lorsque le client demande à l'adaptateur LAN de traiter un transfert direct de fichier vers la mémoire, il donne d'abord pour le chargement l'identifiant de flux qui permet le traitement local. Cet identifiant peut être l'adresse source et destination et le numéro de port qui indique aussi le protocole de transfert utilisé. Le microcontrôleur 306 est alors en mesure de détecter ce flux entrant (dans le cas du chargement vers le client) sur le contrôleur LAN 302. Les paquets de données sont envoyés vers un port de la mémoire à double accès 304. Les données stockées en mémoire sont transférées, grâce au contrôleur SCSI 303, de l'autre port de la mémoire à double accès 304 vers le disque dur 205 via le bus SCSI 208. Les paquets de contrôle de ce flux sont gérés localement par le microcontrôleur 306. Le mécanisme de chargement vers le serveur est plus simple car le client peut se contenter d'indiquer l'emplacement du fichier dans la mémoire et sa destination avec le protocole de transfert de fichier à utiliser. Le microcontrôleur 306 initialise une session de transfert de fichier avec l'emplacement distant, prend le fichier sur le disque dur 205 et le met dans la mémoire à double accès 304 à l'aide du bus SCSI 208 et du contrôleur SCSI 303. Ce chargement peut se faire paquet par paquet selon la taille du fichier. Ce fichier segmenté en paquets est ensuite transmis de la mémoire à double accès 304 vers le LAN par le contrôleur LAN 302. Toutes les données et les opérations de contrôle sont gérées par le microcontrôleur 306. On notera que la présente invention s'applique à n'importe quel type de protocole de transfert de fichiers. Par exemple, les protocoles suivants peuvent être supportés : File Transfer Protocol (FTP), Trivial File Transfer Protocol (TFTP), Network File Server (NFS) et Hyper Text Transfer Protocol (HTTP). La figure 4 est un schéma fonctionnel représentant l'architecture matérielle de l'adaptateur LAN utilisé dans le système correspondant à l'invention. Le microcontrôleur 306 est le c#ur de l'adaptateur. Sa mémoire morte interne contient la zone de code opération où réside la routine d'exploration de port et un protocole de transfert de fichiers. La logique du bus système est faite d'un connecteur d'adaptateur 420 qui permet de connecter l'adaptateur dans le poste de travail et transporte les signaux matériels suivants bus de données, bus d'adresses, signaux de contrôle (lecture, écriture, byte de validation), demande de bus, garantie de bus, interruptions, et une interface de bus système VLSI 410 qui exécute les fonctions suivantes adaptation de protocole de bus, adaptation de synchronisation de bus et traduction d'adresse, une FIFO de transmission pour permettre la transmission de données de l'adaptateur vers la mémoire centrale, une FIFO de réception pour permettre la transmission de données de la mémoire centrale vers l'adaptateur et une boîte à lettres pour permettre la communication entre le processeur et le microcontrôleur 306. L'unité logique LAN 302 de la figure 3 est faite d'un connecteur LAN 402, une interface analogique 412, un contrôleur LAN 422, un tampon 450 pour accéder au bus local 401, un tampon 430 connecté au port gauche de la mémoire à double accès 304 et un décodeur d'adresses 440 qui contrôle le fonctionnement des tampons. L'unité logique SCSI de la figure 3 est faite d'un connecteur SCSI 403, une interface analogique 413, un contrôleur SCSI 423 et un tampon 431 pour accéder au bus local 401. Le contrôleur SCSI 423 et le tampon 431 sont connectés au port droit de la mémoire à double accès 304. Sur la version préférentielle, le contrôleur SCSI 423 de l'adaptateur LAN est un système maître sur le bus SCSI tel que celui situé dans l'adaptateur principal SCSI du poste de travail. Les deux systèmes maîtres SCSI partagent le bus SCSI et les systèmes esclaves (disque dur) à l'aide d'une méthode d'arbitrage de bus connue. Cette architecture n'a aucun impact sur les performances car le débit des bus SCSI est très élevé par rapport au débit de transfert des fichiers. Le décodeur logique de sélection de circuit 432 décode l'adresse présente sur le bus local (401). Par conséquent, le microcontrôleur 306 et le processeur du poste de travail peuvent accéder tous les deux aux périphériques. Quatre signaux de sélection de circuit sont générés . le signal de sélection de circuit contôleur LAN, le signal de sélection de circuit contrôleur SCSI, le signal de sélection de circuit port-droit-mémoire et le signal de sélection de circuit port-gauche-mémoire. Le décodeur d'adresses 440 génère les signaux de contrôle pour les tampons, les contrôleurs, la mémoire statique à double accès et l'interface de bus système. Selon que l'accès est de type esclave ou maître, les éléments activés sont les suivants: - Le tampon 450 et le contrôleur LAN 422 sont activés lorsque l'adresse se trouve dans la zone d'accès esclave du contrôleur LAN. - Le tampon 450, le tampon 440 et la mémoire statique du port gauche 304 sont activés lorsque l'adresse se trouve dans la zone d'accès esclave de la mémoire statique du port gauche. - Le tampon 431 et la mémoire statique du port droit 304 sont activés lorsque l'adresse se trouve dans la zone d'accès esclave de la mémoire statique du port droit. - Le tampon 431 et le contrôleur SCSI 423 sont activés lorsque l'adresse se trouve dans la zone d'accès esclave du contrôleur SCSI. - Le tampon 430 et la mémoire statique du port gauche 304 sont activés lorsque l'adresse se trouve dans la zone d'accès maître du contrôleur LAN par rapport à la mémoire à double accès. - Le tampon 450 et le bus système VLSI 410 sont activés lorsque l'adresse se trouve dans la zone d'accès maître du contrôleur LAN par rapport à la mémoire centrale. - La mémoire statique du port droit 304 est activée lorsque l'adresse se trouve dans la zone d'accès maître du contrôleur SCSI par rapport à la mémoire à double accès. On notera que la topographie mémoire du microcontrôleur 306 est composée de neuf plages d'adresses concernant les composants suivants, chaque plage d'adresses étant de type esclave lorsque le microcontrôleur contrôle l'adresse hors du bus local 401 ou de type maître lorsque le périphérique (contrôleur SCSI ou LAN) contrôle le bus . la mémoire morte interne ROS comme esclave, le contrôleur LAN comme esclave, la mémoire statique du port gauche comme esclave, la mémoire statique du port droit comme esclave, le contrôleur SCSI comme esclave, le contrôleur LAN comme maître de la mémoire à double accès (cette plage d'adresses est utilisée par le contrôleur LAN pour transférer des données de/vers la mémoire statique du port gauche), le contrôleur LAN comme maître de la mémoire centrale (cette plage d'adresses est utilisée par le contrôleur LAN pour transférer des données de/vers la mémoire centrale), le contrôleur SCSI comme maître (cette plage d'adresses est utilisée par le contrôleur SCSI pour transférer des données de/vers la mémoire statique du port droit) et la RAM interne comme esclave. Comme le montre la figure 5, le processeur 206 contrôle les couches suivantes : une interface client 501, une application capable d'activer le transfert de fichiers 502, une pile TCP/IP 503, un protocole de transfert de fichiers tel que DTP 504, un gestionnaire d'adaptateur LAN 505 (ces opérations logicielles permettent au processeur central 206 de communiquer avec le microcontrôleur 306) et un gestionnaire d'adaptateur SCSI 506. Le microcontrôleur (306) de l'adaptateur LAN contrôle les couches suivantes un protocole de communication avec le processeur 510, un protocole de transfert de fichiers 511, une fonction d'exploration de port 512, un gestionnaire de contrôleur LAN 513 et un gestionnaire de contrôleur SCSI 514. On notera que la fonction d'exploration de port permet de différencier les flux qui sont traités par la pile IP locale (y compris le protocole de transfert de fichiers) dans le microcontrôleur 306 de ceux qui sont traités par la pile IP centrale dans le processeur 206. Un flux se caractérise au moins par les adresses IP source et destination et par le numéro de port. Sur la figure 6, le protocole de transfert de fichiers du serveur/client comprend deux sous-couches appelées protocole de transfert de données (Data Transfer Protocol - DTP) utilisées pour gérer le transfert des données et un interpréteur de protocole (Protocol Interpreter - PI) utilisé comme protocole de contrôle. Par conséquent, le serveur web contrôle deux couches de programmes différentes le DTP serveur 603, le PI client 604 et une interface client 605 qui permet au client 606 d'activer un transfert de fichier entre l'unité de fichier serveur 607 l'unité de fichier client 608. Le protocole FTP qui est utilisé dans la version préférentielle comme protocole de transfert de fichiers est mis en #uvre à l'aide du protocole TCP. Comme le montre la figure 6, FTP utilise des connexions de commande et de données séparées. L'interpréteur de protocole (PI) met en #uvre le protocole FTP lui-même tandis que le protocole de transfert de données (DTP) réalise concrètement le transfert des données. Le protocole FTP et le transfert des données utilisent des sessions TCP entièrement séparées. Avant qu'une application FTP démarre, le microcontrôleur (306) initialise l'accès direct du contrôleur LAN avec une adresse de type maître vers la mémoire centrale. Par conséquent, le contrôleur LAN communique directement avec le processeur via la mémoire centrale. Lorsque le client contrôle l'application FTP (WS-FTP pour Windows), la session commence avec une procédure d'ouverture de session, puis représente graphiquement le client et le serveur sous forme de deux tableaux de répertoires et de fichiers mis en opposition. Pour appliquer FTP à un fichier, le client le sélectionne et clique sur le sens dans lequel il désire transférer le fichier (du serveur vers le client dans cet exemple). Le microcontrôleur 306 initialise alors l'accès direct du contrôleur LAN avec une adresse de type maître vers la mémoire à double accès (304). Par conséquent, le contrôleur LAN 302 va mémoriser localement les données entrantes du réseau. Les connexions données sont initialisées le serveur vers un port d'un poste de travail client identifié comme commande port. La routine d'exploration de port analyse les commandes port entrantes. Lorsque la commande port de transfert de fichier est détectée, le microcontrôleur 306 contrôle la routine de transfert de fichiers entre le contrôleur LAN 302 et le contrôleur SCSI 303. Le contrôleur LAN 422 enregistre la giclée de données dans la mémoire à double accès 304 tandis que le contrôleur SCSI 423 lit ces données pour les enregistrer sur le disque dur via le bus SCSI. Ces opérations se poursuivent jusqu'à ce que tout le fichier soit reçu. Ensuite, le microcontrôleur (306) informe le processeur qui alerte l'application FTP. REVENDICATIONS 1. Système pour charger un fichier de données d'un serveur web (11) sur un poste de travail client (10) via un réseau (12) auquel est connecté ledit poste de travail client, celui-ci comprenant un disque dur (205) pour enregistrer ledit fichier de données transféré sur un bus SCSI (208), ledit poste de travail client comprenant une mémoire à double accès (304), ladite mémoire à double accès destinée à mémoriser provisoirement ledit fichier de données ayant un port d'entrée et un port de sortie, une unité logique de réseau (302) interconnectée entre ledit réseau et ledit port d'entrée pour recevoir ledit fichier de données dudit réseau et le transmettre à ladite mémoire à double accès, et une unité logique SCSI (303) interconnectée entre ledit port de sortie et ledit bus SCSI pour transférer ledit fichier de données de ladite mémoire à double accès vers le dit disque dur via ledit bus SCSI. 2. Système conforme à la revendication 1, ledit poste de travail client (10) comprenant un microcontrôleur (309) pour contrôler la routine de transfert de fichiers entre ladite unité logique de réseau (302) et ladite unité logique SCSI (303). 3. Système conforme à la revendication 2, ledit poste de travail client (10) comprenant un contrôleur de réseau (422) pour enregistrer les giclées dudit fichier de données dans ladite mémoire à double accès (304) et un contrôleur SCSI (423) pour lire lesdites giclées et les enregistrer sur ledit disque dur (205) via ledit bus SCSI (208). 4. Système conforme à la revendication 2 ou 3, ledit microcontrôleur (306) comprenant des moyens d'exploration de port pour déterminer, lorsque des données sont reçues, le numéro de port utilisé et donc le protocole de transfert de fichiers à utiliser pour effectuer le transfert du fichier de données. 5. Système pour charger un fichier de données d'un poste de travail client (10) sur un serveur web (11) via un réseau (12) auquel est connecté ledit poste de travail client, celui-ci comprenant un disque dur (205) sur lequel est enregistré ledit fichier de données à transférer sur un bus SCSI (208), ledit poste de travail client comprenant une mémoire à double accès (304) pour mémoriser provisoirement ledit fichier de données, ladite mémoire à double accès possédant un port d'entrée et un port de sortie, une unité logique SCSI (303) connectée audit bus SCSI pour recevoir ledit fichier de données dudit disque sur ledit bus SCSI et le transmettre à ladite mémoire à double accès, et une unité logique de réseau (302) interconnectée entre ledit réseau et ledit port de sortie pour transmettre ledit fichier de données sur ledit réseau. 6. Système conforme à la revendication 5, ledit poste de travail client (10) comprenant un microcontrôleur (309) pour contrôler la routine de transfert de fichiers entre ladite unité logique SCSI (303) et ladite unité logique de réseau (302). 7. Système conforme à la revendication 6, ledit poste de travail client (10) comprenant un contrôleur SCSI (423) pour lire les giclées dudit fichier de données émises par ledit disque dur (205) et les transférer vers ladite mémoire à double accès (304) via ledit bus SCSI (208), et un contrôleur de réseau (422) pour lire les giclées émises par ladite mémoire à double accès avant de les transmettre audit réseau (12). 8. Système conforme à la revendication 7, ledit microcontrôleur (306) comprenant des moyens d'exploration de port pour déterminer le numéro de port utilisé et donc le protocole de transfert de fichiers à utiliser pour réaliser le transfert du fichier de données lorsque des données doivent être transférées dudit disque dur (205) vers ledit réseau (12).