Transfert de fichier sur TCP/IP

Version Desktop


Support technique : 


Avertissement :

Ce produit est payant dans la version actuelle. Le coût en est de 15 € par poste installé. La version téléchargeable est complète mais limitée à 31 jours d'utilisation.

En cas de problème, envoyer des emails au support technique indiqué ci-dessus.

Deux évolutions programmées:

La prochaine version (Desktop 2.0) inclura les fonctionnalités suivantes:

Lancement des travaux sous un compte utilisateur différent de celui sous lequel est ouverte la session windows (implique le cryptage des données émises car l'ensemble Utilisateur/Mot de passe/Nom de domaine ne doit pas être visible sur le réseau)

Reprise paramétrable d'un transfert en cas de rupture de liaison :Nombre de reprises maximum et possibilité de reprise en milieu de fichier (intéressant pour les gros tansferts)

Postage d'une requête de transfert par programmation à partir d'une station autre que celle hébergeant le programme client.

Cryptage de la totalité des données émises

La version serveur fonctionnera en mode service windows. (elle inclura évidemment les fonctions ci dessus)



  • Présentation de l'application
  • Documentation utilisateur


  • Transfert de fichier sur TCP/IP

    Ce produit permet d'automatiser des transferts de fichiers, et le lancement d'un programme (.exe ou .bat) sur le poste client et/ou sur le serveur à l'issu de celui ci, et en fonction de son statut d'exécution (OK on Non)

    La version Desktop s'exécutant dans une session windows, il est nécessaire de laisser celle ci ouverte sur la station. Autrement dit, la version desktop ne s'exécute pas en mode service. Cela entraîne également que les droits windows utilisés seront ceux de la session ouverte sur le poste. Il pourra donc y avoir des problèmes de droits d'accès aux fichiers suivant les cas.

    Cette version se compose de 3 modules exécutables:

    TCPClient.exe: C'est le client de transfert.

    TCPServer.exe: C'est le serveur de transfert.

    TCPFTPd.exe: Editeur des fichiers de définition de transfert.

    Cette version intègre une interface de programmation sous la forme d'un contôle OCX: TCPFTPo.ocx. Ce composant permet de créer directement un nouveau transfert de fichier à partir d'un programme utilisateur écrit en VB. Un exemple est également fourni sous la forme de trois fichiers VB dans le répertoire "Sample"

    La notion de client et de serveur recouvre simplement le fait que le serveur est à l'écoute d'une connexion pour effectuer le transfert, et le client déclenche la connexion vers le serveur. Sur une même station, un programme serveur peut s'exécuter en même temps qu'un programme client, mais seule, une occurrence de chacun des programmes pourra être lancée sur une station donnée.

    La manipulation des fichiers de transfert à l'aide de l'éditeur de fichiers devra s'effectuer avec précaution car le programme client effectue également des mises à jour sur ce fichier. On aura donc intérêt à arrêter le programme client pendant qu'on effectue les mises à jour, ou encore à dupliquer le fichier de transfert pour effectuer les changements.

    L'ensemble fonctionne sur un système d'écoute des ports TCP, aussi il faudra décider au préalable quel est le port utilisé pour le serveur. Dans un réseau d'ordinateurs complexe ayant plusieurs serveurs et plusieurs clients, on aura avantage à normaliser ces ports, et, par exemple, à toujours utiliser le même pour les serveurs, ainsi que pour les ports de commandes des clients si l'interface de programmation est utilisée.

    Chaque programme serveur et chaque programme client créera dynamiquement une occurrence de serveur  par transfert, aussi il n'y a pas de limite de simultanéité,  (du moins théoriquement).

    La précision horaire de déclenchement des transferts est de l'ordre de la minute. Un transfert peut donc se déclencher dans la minute avant, ou la minute après, l'heure indiquée.

    Retour en haut ???


    Documentation

    Rappel: Le serveur est à l'écoute d'une demande de transfert, le client va demander à un serveur de lancer un transfert. Cela quel que soit le sens du transfert.

    Programme Serveur

    Programme Client

    Editeur

    Interface de programmation


    Serveur

    Le programme serveur s'exécute en mode invisible. Seule l'icône apparaît dans la barre de tâche. Un clic droit permet d'accéder au menu sous forme flottante, et un double clic permet d'afficher la fenêtre du serveur. Pour le rendre à nouveau invisible, il suffit de l'icôniser.

    La fenêtre se présente de la manière suivante:

    Les informations affichées sont les suivantes:

    Nombre de transferts actifs: Nombre de transferts en cours à l'instant de l'affichage.

    Serveur N°: Indique combien de serveurs simultanés ont été nécessaire jusqu'à présent, et pour chacun d'eux, leur état, ainsi que les paramètres du transfert en cours si le serveur est actif. La barre de défilement verticale permet de changer de serveur de transfert affiché si le nombre de serveur est supérieur à 1.

    Filtre d'adresses autorisée: Cette boite de saisie permet de définir les adresses IP des stations autorisées à demander un transfert de fichier. Cela permet d'éviter qu'une station "pirate" vienne demander un transfert, ou via une demande de transfert, puisse lancer un travail sur le serveur. Au premier démarrage, il n'y a pas de filtre, aussi il est important, si on ne se trouve pas dans un réseau sécurisé, de mettre les valeurs adéquates dans ce champ. L'exemple fourni indique au serveur qu'il ne doit accepter des connexions qu'en provenance de stations dont l'adresse IP est soit 172.16.2.x (x allant de 1 à 254)  soit 172.16.1.x. On peut évidemment fixer des adresses complètes comme 172.16.2.10. Le caractère * peut se trouver n'importe où et sert de joker (exemple: 172.16.*.10 autoriserait toutes les stations du réseau 172.16.x.y avec y=10 exclusivement, et x=1 à 254). On peut également mettre autant d'étoiles que voulu (Exemple: *.*.*.10 autoriserait n'importe quelle station dont l'adresse IP se termine par 10)

    La première chose à faire après avoir lancé le programme serveur est de vérifier le port d'écoute. Cela peut se faire via le menu principal.

    Paramètres:

    Port d'écoute : Fixe le numéro de port TCP utilisé par le serveur pour recevoir les demandes de transfert. Ce port ne doit pas être utilisé par un autre produit.

    Enregister le filtre d'adresses: Permet de mémoriser le filtre utilisé pour accepter les connexions TCP/IP.

    Quitter: Ciao, Adios, Goodbye, Aufwiedersehn, au revoir.

    Historique:

    Ce menu permet d'accéder à l'historique des transferts vus du serveur.

    Retour en haut ???


     Historique de transfert ou Liste des transferts

    La fenêtre se présente ainsi:

    Cette fenêtre est utilisée sous une forme similaire pour lister les historiques ou les définitions des transferts. Les menus accessibles sont dépendants du contexte depuis lequel cette fenêtre a été appelée.

    Les titres des colonnes permet de trier la liste du celle ci en ordre croissant.

    Fichier:

    Ouvrir: Permet de sélectionner le fichier désiré.

    Enregistrer: Sauvegarde le fichier courant.

    Enregistrer sous: permet de faire une copie de sauvegarde après modifications.

    Copier: Permet de recopier un fichier sous un autre nom sans modification.

    Ajouter: Permet d'ajouter une entrée. Ce sous menu n'est accessible que si on travaille sur un fichier de transfert.

    Supprimer: Permet de supprimer une (ou plusieurs dans le cas d'une sélection multiple) entrée de la liste.

    Quit: Retour au menu appelant

    Un double clic sur une ligne de la liste permet d'ouvrir une fenêtre détaillant l'entrée sélectionnée.

     


     Détail d'un transfert (création, mise à jour ou historique)

    La fenêtre se présente ainsi:

    Les boutons et les informations modifiables sont dépendants du contexte d'appel.

    Les informations nécessaires (en mode Mise A Jour ou Création) sont:

    Adresse du serveur distant (peut être un nom DNS au lieu d'une adresse IP)

    Port du serveur distant

    Sens de transfert

    Nom du fichier local

    Nom du fichier sur le serveur (chemin complet)

    Date/Heure de début

    Le bouton "Ping" permet de vérifier si le serveur indiqué est accessible à l'instant.

    Les autres informations sont les suivantes:

    Traitements à lancer: Permet d'indiquer le chemin complet du programme exécutable (.exe ou .bat) qui sera lancé à l'issu de transfert, tant du coté serveur que du coté client, et en fonction de son statut de fin (OK ou NOK)

    Périodicité: Indique la périodicité du transfert. Suivant la périodicité choisie, l'utilisateur pourra saisir la fréquence dans la boite de saisie libre ou dans la boite de saisie d'heure. Le transfert sera relancé automatiquement suivant cette périodicité et cette fréquence. (par défaut, pas de périodicité. Si la fréquence est laissée à 0, dans l'une ou l'autre de boites de saisie, le transfert ne sera lancé qu'une seule fois)

    Tous les jours: Permet d'indiquer les jours pour lesquels le transfert en question peut avoir lieu. Par défaut, les transferts ne s'exécutent pas le samedi et dimanche. Ces zones seront utilisées pour calculer la date/heure du prochain transfert. Pour cela on décalera le dernier lancement de la valeur indiquée en fréquence, suivant la périodicité.

    Exemple: Un transfert journalier  de fréquence 2 lancé un vendredi, ne sera relancé que le mardi suivant (Vendredi + 2J -> Dimanche - pas de transfert - +2J -> Mardi)

    Cette notion est relative à chaque transfert et sa modification n'affecte que le transfert en question.

    Attention: La périodicité permet de saisir des valeurs décimales. Il faudra donc faire attention car 1.5 Jour décalera de 36 heures, et 1.5 semaine décalera de 10,5 Jours, soit 252 heures. Le calcul sera d'autant plus difficile que l'utilisateur utilisera des fractions compliquées. Par exemple: quand sera relancé ce transfert se terminant ce jeudi avec une périodicité hebdomadaire de 1.33 sachant que le samedi,  lundi, et mercredi on ne fait pas ce transfert, qu'il démarrait à 22h00 le jeudi en question et que l'heure de rechargement du fichier (Cf Client ) de transfert est 23h30 ???

    Retour en haut ???


     Client

    Le programme client s'exécute également en mode invisible. Un double clic permet d'afficher la fenêtre.

    Cette fenêtre permet de visualiser l'activité prévue pour la journée.

    La partie "transferts terminés" n'affiche que les transferts qui se sont terminés depuis le lancement de l'application client, ou si celle ci était active depuis plus d'une journée, les transferts ayant eu lieu depuis le rechargement du fichier de transfert.

    Le fichier de transfert est rechargé une fois par jour (à 0h00 par défaut) par le programme client. Aussi, on veillera à ne pas fixer de transfert à cette heure ci précisément car il se pourrait qu'il ne soit pas aléatoirement lancé.

    Le sens du transfert est vu du client. Emission signifie donc du client vers le serveur, et Réception, du serveur vers le client.

    La fenêtre présente trois zones d'information. Suivant la zone d'affichage, un clic droit permet d'accéder à deux menus flottant:

    Le menu "Arrêt immédiat" n'est accessible que dans la zone "En cours" ou "En attente", et le menu "Lancement immédiat" n'est accessible que dans la zone "En attente" ou "Terminé".

    L'indicateur coloré de la zone "terminé" permet de visualiser immédiatement si le transfert est OK ou Non (Couleur Verte si OK et Rouge si Non)

    Enfin, on peut trier la zone "En attente" en double cliquant dans le titre de la colonne "hh:mm" afin d'avoir les transfert en ordre de lancement, ou dans la colonne "Fichier Local" pour les avoir en ordre alpha sur le nom de fichier local.

    Lorsqu'un transfert est lancé, il passe de la zone "En attente", vers la zone "En cours". Puis lorsqu'il est terminé, il passe de la zone "En cours" vers la zone "Terminé". Si un périodicité était indiquée sur le transfert,  le système calcule alors la date/heure du prochain lancement, et une entrée est crée dans la zone "En attente". Le nouveau transfert se positionne en queue de liste. Pour avoir un affichage en ordre d'heure de déclenchement, pensez au "double clic" dans la colonne "hh:mm"

    Menus

    Fichier:

    Ouvrir: Permet de sélectionner le fichier de transfert désiré. Le fichier sélectionné deviendra le fichier de transfert actif.

    Enregistrer: Sauvegarde la table des transferts dans le fichier de transfert actif.

    Enregistrer sous: permet de sauvegarder le fichier de transfert sous un autre nom. Le nouveau fichier deviendra le fichier de transfert actif.

    Copier: Permet de recopier un fichier sous un autre nom sans modification du fichier de transfert actif.

    Ajouter un transfert: Permet d'ajouter un nouveau transfert. Ce transfert sera ajouté à la liste, mais pas dans le fichier. Pour cela, il faudra cliquer sur le menu "Enregistrer" ou "Enregistrer sous"

    Définition des transferts: Permet d'afficher la liste des transferts définis dans le fichier de transfert actif. Il faudra faire très attention, car à cet instant, le programme client est susceptible d'enregistrer les mises à jour de planification dans le même fichier, au fur et à mesure de la fin des transferts en cours.

    Historique des transferts: Permet d'accéder à l'affichage de l'historique, vu du coté client.

    Quitter: Ciao, Adios, Goodbye, Aufwiedersehn, au revoir.

     

    Réafficher: Permet de rafraîchir l'affichage (utile quand on a créé ou modifié un transfert)

    Interface: Permet de définir le port TCP d'écoute du client accessible à partir de l'interface de programmation. Ce port doit être différent de celui utilisé par le programme serveur si celui ci est également lancé sur le poste.

    L'heure courante est indiquée en haut et à droite dans la barre de menu. Un clic dessus permet d'afficher le menu permettant de régler l'heure de rechargement de la liste des transferts. Par défaut cette heure est 0h00, mais on peut fixer n'importe quelle heure du jour.

    Ce sera toujours l'heure du client qui sera le déclencheur du transfert, aussi attention au décalage d'heure entre les machines.

    Retour en haut ???


     Editeur

    Ce programme permet de créer et de modifier des listes de transferts. La fenêtre se présente ainsi:

    Le menu transfert permet d'afficher une liste similaire à la liste des historiques.

    L'utilisation est identique. Historique

    Comme indiqué sur la fenêtre, il faudra faire attention au fichier manipulé pour ne pas engendrer de conflit d'accès et des pertes d'information. Le plus simple consiste à copier le fichier sous un autre nom et travailler sur cette copie. Attention toutefois, car après enregistrement, le fichier de transferts actif deviendra le fichier sauvegardé. Pour rendre cela effectif, il faudra impérativement arrêter le programme client (s'il est actif) puis le relancer en veillant à ce que le bon fichier soit ouvert (ce qui doit être normalement le cas si aucun transfert ne s'est terminé après la sortie de l'éditeur). C'est pourquoi il est très fortement conseillé d'arrêter le programme client pendant les modifications du fichier de transfert.

    Retour en haut ???


     Interface de programmation

    Le contrôle "TCPFTPo.ocx" fourni permet de disposer d'une interface de programmation autorisant un proramme VB à communiquer avec le programme client pour planifier des transferts de fichier. Pour l'utiliser, il suffit de l'intégrer à son projet VB (Projet, Composant, puis aller chercher le contrôle ocx dans le répertoire d'installation).

    Un exemple est fourni. Il faudra veiller à remettre le contrôle dans le projet pour que cela fonctionne correctement.

    les caractéristiques du contrôle sont les suivantes:

    Enumération TrfRepeat : Indique la périodicité (EveryDay, EveryHour, EveryWeek)

    Enumération TrfSens: Indique le sens du transfert (FromServer, ToServer)

    Propiétés:

    FTPFichierClient (String): Chemin complet du fichier local

    FTPFichierServer (String): Chemin complet du fichier serveur

    FTPHostName (String): Adresse du serveur

    FTPPortNum (Integer): N° du port TCP du serveur

    FTPFirstLaunch (Date): Date/heure de permier lancement du transfert

    FTPRepeat (TrfRepeat): Périodicité

    FTPFrequence (single): Fréquence de lancement (si horaire, alors heure décimale ex: 0.25 -> 15 minutes)

    FTPOKClientJob (String): Traitement sur poste client si transfert OK

    FTPNOKClientJob (String): Traitement sur poste client si transfert pas OK

    FTPOKServerJob (String): Traitement sur poste serveur si transfert OK

    FTPNOKServerJob (String): Traitement sur poste serveur si transfert pas OK

    FTPOnly (0 to 6 Boolean): Jours de lancement valide (0 -> Dimanche, 6 -> Samedi)

    CmdPortNum (Integer): Numéro de port TCP pour poster la demande de création de transfert (Cf Client)

    ErrNum (Integer): Numéro d'erreur. Attention, 0 signifie pas d'erreur. La liste des erreurs est la suivante:

    0: Pas d'erreur. Traitement OK

    1: Erreur système

    2:Client inaccessible - Le programme client n'a pas répondu dans le temps imparti

    3:Création invalide - Le programme client n'a pas correctement traité la demande

    4:Réception inattendue - Un message est arrivé sur le port TCP de manière invalide

    5:Réponse inattendue - Le programme client n'a pas répondu correctement à la requète.

    11: Erreur de paramétrage du transfert (un paramètre obligatoire manque ou est invalide)

    Retour en haut ???