IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AS/400 Discussion :

Protocole de communication le plus rapide entre AS400 et Windows


Sujet :

AS/400

  1. #1
    Invité
    Invité(e)
    Par défaut Protocole de communication le plus rapide entre AS400 et Windows
    Bonjour,

    J'aimerai mettre en place une communication entre un serveur AS400 et un serveur windows (les deux héberge deux applications différentes).

    Application A sur AS400.
    Application W sur Windows.


    L'application A va envoyé des données à l'application W et cette dernière fera un traitement et va ré-envoyé le résultat.

    Sachant que ces données seront de l'ordre de quelques octets, j'aimerai savoir si il existe un moyen de communication qui pourra faire ces allé/retour en 1sec voir moins.

    Le format des données c'est du XML.


    FTP je pense que c'est long...
    IFS l'application windows ne peut pas être modifié pour accéder a ces données directement sur l'IFS.
    WebService a priori les performances ne sont pas top top


    Merci d'avance pour votre aide.

  2. #2
    Membre éprouvé
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Octobre 2006
    Messages
    691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Octobre 2006
    Messages : 691
    Points : 996
    Points
    996
    Par défaut
    Bonjour,

    Personnellement je fais des échanges en XML avec un serveur web hébergeant une boutique tournant sous Prestashop, et c'est super rapide...
    J'ai utilisé la bibliothèque LIBHTTP (avec HTTPAPI) de Scott Klement pour récupérer le fichier sur l'URL, et c'est tout.
    Je génère mes propres XML avec un script PHP (j'ai un Zend Server tout bête sur le serveur i), et je te promet que çà rame pas !

    Mais quand tu penses que le FTP ou les Web Services sont trop lents, détrompe toi.
    Après, il y a des questions sur le réseau. Les machines sont sur le même réseau interne ou pas ?

  3. #3
    Invité
    Invité(e)
    Par défaut
    Hello,
    Merci pour ta réponse.

    Je parle ici d'un flux de 5 à 20 commandes par minute, les machines ne sont pas sur le même réseau.

    En gros, j'appel l'application W depuis l'application A et j'ai besoin de recevoir la réponse en 1sec (Allé/retour des données sur le réseau)

    J'ai besoin d'un truc qui peut être utilisé avec l'AS400.


    Donc tu penses que le Webservice ou FTP peut acheminé un fichier et le faire revenir en moins d'1sec ?

  4. #4
    Membre éprouvé
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Octobre 2006
    Messages
    691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Octobre 2006
    Messages : 691
    Points : 996
    Points
    996
    Par défaut
    Résumons. Tu me dis si je me trompe, après on envisagera plusieurs solutions, pour moi on est pas limités.
    - Le system i ne transmet pas de données. Il appelle juste le système Windows pour lui demander d'envoyer des données. Ok ?
    - Les deux machines ne sont pas sur le même réseau. Y a t'il un serveur Web capable de répondre à une demande HTTP sur le système Windows ?
    - Est-ce qu'il y a un tunnel IP entre les 2 machines ?
    - Le système Windows peut t'il être installé avec i Access pour exécuter une commande distante ?
    - Le système Windows a t'il un serveur SQL, et si oui peut t'il s'interfacer avec DB2 Udb ?
    - Le système i est t'il déjà disponible comme serveur Web ? Si oui Zend Server (pas Zend Core) est t'il installé ?
    - Quelle est la version d'OS sur les 2 systèmes ?

    En fait il y a plein de possibilités pour faire ce que tu désires. Reste à trouver la bonne solution, c'est à dire la plus simple, et la plus efficace.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Alors,

    - Le system i ne transmet pas de données. Il appelle juste le système Windows pour lui demander d'envoyer des données. Ok ?

    Si le système AS400 envoie des données vers le système Windows pour traitement et retour.

    - Les deux machines ne sont pas sur le même réseau. Y a t'il un serveur Web capable de répondre à une demande HTTP sur le système Windows ?

    Je ne pense pas.

    - Est-ce qu'il y a un tunnel IP entre les 2 machines ?

    Aucune idée sur çà

    - Le système Windows peut t'il être installé avec i Access pour exécuter une commande distante ?

    Actuellement non, mais je pense que c'est faisable.

    - Le système Windows a t'il un serveur SQL, et si oui peut t'il s'interfacer avec DB2 Udb ?

    Je pense qu'il a un serveur SQL, pour le moment non il n'est pas interfacer.

    - Le système i est t'il déjà disponible comme serveur Web ? Si oui Zend Server (pas Zend Core) est t'il installé ?

    Non

    - Quelle est la version d'OS sur les 2 systèmes ?

    Le 1er AS400 tourne sous la dernière version de l'OS400, pour le windows je ne sais pas quel version mais ça doit être une version de Windows server.

  6. #6
    Membre éprouvé
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Octobre 2006
    Messages
    691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Octobre 2006
    Messages : 691
    Points : 996
    Points
    996
    Par défaut
    Hé bé, il te manque plein de pré requis pour les solutions que j'avais envisagées.
    La seule bonne nouvelle est que tu as la dernière version d'OS sur le système i, la 7.1 donc.
    Si on peut interfacer les deux BD, SQL te permet de définir un champ de type XML qui te permettra d'écrire et lire tes données.

    Si tes 2 machines ne sont pas sur le même réseau, tu as déjà un temps de réponse minimum sur l'entrée et la sortie de données. Pour rester dans la limite d'une seconde, il va pas falloir que tes lignes patinent...
    Bref, Sur le system i disposes tu du logiciel HTTP Server (DG1) ? Si la réponse est non, et que tu ne prévoies pas de l'installer, les options vont se réduire.
    Si le système Windows ne disposes pas non plus d'un serveur Web, on se retrouve même très limité.

    La première chose à voir est, comment relier les deux systèmes.
    Là je ne peux pas faire grand chose pour toi, tu connais ta topologie réseau, les deux systèmes doivent pouvoir se voir directement, sans passer par des DNS externes, sinon les temps de réponse risquent d'en pâtir. L'idéal étant le tunnel IPSec.


    Si le serveur Windows a un serveur HTTP, alors je pense que le plus simple est de créer un web service sur ce serveur. Le serveur i lui transmet les données en paramètre, et récupère aussitôt les données. Rapide, simple, efficace, facile à maintenir. Rien d'autre à faire, le pied.

    Si le serveur Windows ne peut avoir de serveur HTTP. On aura forcément bien plus de travail, et les temps s'en ressentiront. Voyons ce qu'on devra faire et les solutions possibles.

    Problème n° 1, comment le serveur i va t'il envoyer sa demande au Windows.
    Soit le Windows attend en permanence une donnée et on peut envisager de déposer un fichier XML dans un dossier (sur Mac çà marche tout seul, avec les automatismes de dossier, mais sous Windows je ne sais pas si on peut faire un truc semblable).
    Soit le serveur i demande à exécuter une commande distante (i Access indispensable).

    Ensuite, si j'ai bien compris le serveur i attend alors la réponse. Plusieurs possibilités.
    Le serveur Windows a accès à l'IFS, y écrit la réponse et sur le serveur i on utilise un logiciel comme MONIFS. Le hic étant qu'on doit identifier la réponse étant liée à la demande. Pas forcément simple.
    Le serveur Windows n'a pas accès à l'IFS. Il faut que tu aies un serveur HTTP sur le serveur i, et idéalement, le Zend server, pour que le Windows appelle un script PHP, chargé de récupérer le fichier indiqué, voir de le traiter. PHP est bien plus rapide qu'on ne pense pour le traitement de données, malgré qu'il soit interprété.

    Autre solution, tout faire en FTP. Mais encore une fois c'est l'attente du retour qui posera problème.

    Alors franchement, pour moi, la bonne solution, c'est un serveur web avec PHP sur les deux serveurs, et un Web Service.
    Ou au moins sur le Windows et tu utilises la bibliothèque LIBHTTP pour l'appeler, et attendre la réponse (ce que j'utilise pour ma part).

  7. #7
    Invité
    Invité(e)
    Par défaut
    Merci m4k-Hurrican pour ton aide

    Alors le serveur et l'application sous windows accepte une communication HTTP, donc si cette méthode est rapide, alors OUI on peut le faire mais c'est quoi les pré-requis dans ce cas ?

    Sinon, j'ai pensé aussi à un mode de communication sockets, tu penses quoi ?

  8. #8
    Membre éprouvé
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Octobre 2006
    Messages
    691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Octobre 2006
    Messages : 691
    Points : 996
    Points
    996
    Par défaut
    Si ton serveur Windows accepte les requêtes HTTP, on a une très bonne voie d'accès.
    C'est la méthode que j'utilise personnellement en plus...
    Le plus efficace à mon avis est donc de créer un Web Service sur ce serveur, qui prend en paramètres les données en provenance du serveur i, et renvoie donc un fichier XML.
    Sur le serveur i, il te faut installer les outils de Scott Klement que tu trouveras ici. Justement il utilise des sockets pour communiquer.
    Çà va te permettre de faire le Get nécessaire à l'appel et de récupérer le fichier XML. Ceci avec une facilité déconcertante.
    Ensuite il te faut simplement traiter ce fichier XML...

  9. #9
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Merci m4k-Hurrican

    Je vais creusé cette piste

    Merci bcp pour ton aide ^^

Discussions similaires

  1. Réponses: 20
    Dernier message: 23/01/2014, 01h00
  2. Plus rapide entre Year et Between
    Par cmoiscrat dans le forum Développement
    Réponses: 4
    Dernier message: 29/07/2009, 08h40
  3. Réponses: 3
    Dernier message: 22/04/2009, 13h06
  4. Réponses: 0
    Dernier message: 16/03/2009, 20h50
  5. Réponses: 9
    Dernier message: 19/06/2006, 15h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo