Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    231

    [CONSIGLIO] Web Service con PHP e AS400

    Ciao a tutti,
    tra non molto, dovrò realizzare un'applicazione che preleva dati interrogando una macchina AS400.

    Da pochi giorni conosco il significato di WEB SERVICE e SOAP, dopo aver studiato la guida di HTML.IT, chiarendomi parecchi dubbi.

    Ho letto diverse discussioni e noto anche che ZEND sta spingendo parecchio su questa cosa.

    So per certo che, sulla partizione UNIX della macchina AS400 installeranno PHP 5, quindi il Server sarà in PHP; sul Client, stessa cosa ci sarà PHP5 ma probabilmente su macchina WINDOWS.

    Avevo pensato di affidarmi alla classe nuSOAP, come letto nella guida, ma avevo anche letto che abilitando l'estenzione SOAP di PHP5, essa risulta essere più performante.

    Cosa ne pensate?

    Voi che strada mi consigliate da seguire?

    Vi saluto e grazie, Max
    http://www.mdlwork.com

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2006
    Messaggi
    833
    Posso dirti che utilizzo ZENDCORE da quasi due anni, tutte le applicazioni che utilizzo
    prelevano i dati dal db2 del AS400, sono veloci ed e' facile gestire il webserver.
    Aggiungici che e' gratuito quindi potresti provare a installare ZENDCORE 2.5.2 sul i5
    e vedere come ti trovi. Ovviamente dipende da cosa devi fare, pero' conta che puoi
    "entrare" direttamente nel db2 tramite il pase con statement sql, puoi chiamare programmi
    rpg, cl... non e' male dal mio punto di vista.

    Tieni presente che tutti i lavori che utilizzerai apriranno dei lavori, nel sottosistema
    ZEND, in batch quindi le performance sono relative alla macchina, se la macchina e'
    un S20 che lavora con la % sistema ASP utilizzata sempre al 100% non sara' performante
    per niente, ma come qualunque applicazione girera' su quella macchina, dipende tutto dalla macchina, non tanto dagli script o dalle classi.

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    231

    ...

    Olè finalmente una risposta alla parola "AS400", che sembra essere un argomento "piccante"

    L'esatte prestazioni della macchina ancora sono sconosciute, ma sicuramente vanno considerate...

    Diciamo che l'interrogazione si basa soprattutto su:

    - dato un ID restituiscimi l'intera anagrafica, etc etc

    Sicuramente avrai capito e chissà quante volte l'avrai fatto

    Cosa interessante sono anche le chiamate ai programmi RPG, che sicuramente dovrò fare..

    Ma oltre a Zend Core mi serve altro in particolare?

    Ciao e ancora grazie, MAX
    http://www.mdlwork.com

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2006
    Messaggi
    833
    Scusa se rispondo sola ora, allora se la macchina e' nuova non avrai nessun problema con le prestazioni, e' stato ottimizzato al meglio l'engine per l'sql

    Per l'anagrafica e' "banale", es. clienti.php che ricevera' l'id del cliente

    $user="utente del as400 (deve avere una jobd con in lista la libreria del file clienti";
    $password="password del utente as";
    $db='Nome del database della macchina dove c'e' il file clienti (WRKRDBDIRE)';
    $dbh = db2_pconnect($db, $user, $password);


    $sql = "select * from LIBRERIA.ANCL200F where concli = '$_SESSION[idcliente]'
    and conatv <> 'A'";
    $stmt = db2_exec($dbh, $sql, array('cursor' => DB2_SCROLLABLE));

    while ($row = db2_fetch_array($stmt)) {
    if (!$row=="") {
    $CONCLI = $row[7];
    $CONNOM = $row[8];
    $CONEMA = $row[11];
    .....

    echo "$CONCLI, $CONNOM, $CONEMA...
    ";

    Le chiamate a un rpg o a un cl ancora piu' semplici: esempio di un programma che riceve cliente e numero

    codice:
    /* Apertura connessione al server */
    
    $conn = i5_connect("localhost", "UTENTEAS400", "PASSWORDAS400");
    
    $customerSRVCLI = $_SESSION['name'];
    $customerSRVNUM = $_SESSION['code'];
    
    /* Errore durante la connessione al server */
    if (!$conn) die("
    1 connessione".i5_errno()." msg=".i5_errormsg()); 
    
    /* Definizione parametri da passare al programma */
    $description = array(
    array("Name"=>"name", "IO"=>I5_IN, "Type"=>I5_TYPE_CHAR, "Length"=>"10"),
    array("Name"=>"code", "IO"=>I5_IN, "Type"=>I5_TYPE_PACKED, "Length"=>"7")
    );
    		
    /* Apertura programma con la definizione dei parametri LIBRERIA/PROGRAMMA*/	
    $pgm = i5_program_prepare("ACSSI_OBJ/HWEB22" , $description);
    
    /* Errore apertura programma */
    if (!$pgm) die("
    2 error. =".i5_errno()." msg=".i5_errormsg());
    
    /* Impostazione parametri di input con le variabili passate dal chiamante con il metodo POST */
    $parmIn = array(
    	"NAME"=>$_SESSION["name"],
    	"CODE"=>$_SESSION["code"],
    	);
    				
    /* Richiamo programma */		
    $ret = i5_program_call($pgm, $parmIn);
    
    /* Errore richiamo programma */
    if (!$ret) die("
    Program call error. Error number=".i5_errno()." msg=".i5_errormsg());
    
    /* Chiusura programma */
    i5_program_close($pgm);
    
    /* Chiusura connessione */
    i5_close($conn);
    Ma oltre a Zend Core mi serve altro in particolare?

    E infine oltra a zend non ti serve niente (guarda le ptf che richiede il prodotto),
    quindi installi zendcore crei il file login.php chiami il file clienti.php e basta.

    Ti ripeto mi trovo molto bene con questo prodotto, quindi buon divertimento

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    231

    grande!

    Grazie!!

    Terrò a mente questo esempio e appena avrò la possibilità farò subito delle prove

    Ti saluto MAX
    http://www.mdlwork.com

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.