I web service X3 

Prerequisiti

Il server XTEND accede al back-office X3 solo attraverso la chiamata di web service X3 per l'accesso ai dati o l'elaborazione delle azioni utenti.

Il programmatore XTEND deve aver acquisito una buona conoscenza dello sviluppo dei web service X3 prima di intraprendere la realizzazione di un'applicazione XTEND (architettura, pool di connessioni, pubblicazione, test...).

In compenso non è richiesta alcuna competenza in sviluppo per programmare la chiamata dei web service utilizzando le classi stub/proxy.

Il server di web services

E' indispensabile disporre di almeno un server di web services sul quale saranno pubblicati i sotto-programmi o oggetti X3 utilizzati dalle applicazioni XTEND.

E' possibile scegliere ad esempio lo stesso server X3WEB che ospita il server XTEND.

La prima fase consiste nell'assicurarsi che tale server sia configurato correttamente.

Identificazione del serveur

Il server di web service è identificato da un hostname ed una porta tcp. Nel seguito di questo documento verrà utilizzato l'indirizzo hostname:28880.

SOAP/HTTP

Simple Object Access Protocol e Hypertext Transfer Protocol sono i protocolli utilizzati per la chiamata dei web services X3

Il server di web service deve essere accessibile

Assicurarsi che l'indirizzo hostname:port sia accessibile a partire dal server XTEND.

port è la porta del server web frontal. Il valore di default è 28880

Per fare ciò è sufficiente verificare che l'indirizzo http://hostname:28880/root/ visualizzi correttamente la pagina di benvenuto del server di amministrazione dopo aver inserito la password (sage/sage) di default.

Se la pagina non appare
  • assicurarsi che i servizi Apache/Tomcat siano stati avviati
  • assicurarsi che l'istruzione 'ping hostname' restituisca una risposta

Le soluzioni/dossier X3 devono essere pubblicate

Tutte le soluzioni/dossier X3 alle quali accedono le applicazioni XTEND devono essere pubblicate sul server X3WEB che ospita il server di web services.

Questa operazione viene effettuata dall'amministratore via la console X3 al momento della configurazione del server X3WEB.

L'elenco delle applicazioni pubblicate è accessibile dal menù 'Home/Administration'

I pool di connessioni devono essere avviati

Pool di connessione

Il server di web services mette a disposizione delle applicazioni terze un insieme di connessioni X3 (client X3 di tipo web service) raggruppate per 'gruppo di entrata' o 'pool'.

I pool di connessioni vengono creati e configurati con la console X3. La console permette inoltre di parametrizzare il numero di connessioni del pool.

Il numero di connessioni attribuito al pool determina il numero di richieste (SOAP) che è possibile elaborare simultaneamente con questo pool. Quando tutte le connessioni sono occupate, le richieste vengono accodate.

Configurazione del server

Il server di web service deve disporre di almeno un pool di connessione (gruppo di entrate) per soluzione/dossier che pubblica dei web service a destinazione delle applicazioni XTEND.

Tali pool di connessione devono essere con stato 'avviato'e devono disporre di almeno una connessione libera (<poolentry>) .

L'elenco dei pool di connessioni è accessibile attraverso la funzione 'Server di web services/Pool di connessioni'.

Tempi di risposta

I tempi di risposta di un'applicazione XTEND e quindi la 'fluidità' del sito web dipendono fortemente dai tempi di risposta ottenuti alla chiamata dei web service. Si consiglia di controllare regolarmente:

  • La disponibilità delle connessioni dei pool di web service
  • Dimensionare correttamente il numero di connessioni dei pool (licenze web service)
  • la percentuale di sovraccarico del server X3
  • Attenzione ai job batch

Pubblicazione dei web service

La pubblicazione dei web service viene effettuata dalla funzione X3/
'Sviluppo>Dizionario programmi>Programmi>Web services'.

Web service oggetto X3

Per pubblicare un web service oggetto è sufficiente creare una scheda web service indicando il nome di pubblicazione (chiamato anche alias) ed il codice dell'oggetto (più il codice transazione).

La pubblicazione di un oggetto X3 dà accesso a tutte le azioni dell'oggetto (leggere, creare, registrare, cancellare di default) ed alla lista di selezione.

Il bottone di azione 'Elimina' permette di 'spubblicare' il web service.

Web service sotto-programma

Per pubblicare un web service sotto-programma bisogna innanzitutto creare una scheda sotto-programma che permetta di dichiarare i parametri ed i gruppi di pubblicazione mediante la funzione:
'Sviluppo>Dizionario programmi>Programmi>Sotto-programmi'

Bisogna poi pubblicare questo web service (bottone pubblicazione) ed attribuirgli un alias come per il web service oggetto.

Gruppi di pubblicazione

I gruppi di pubblicazione permettono di associare logicamente dei parametri (con stessa dimensione) per formare delle entità distinte.

Ogni gruppo (o entità) può essere considerato come un record di una tabella o come un tipo struttura o record.

Vengono utilizzati nella parametrizzazione XTEND per effettuare i 'mapping' tra i parametri dei web service e le entità XTEND.

Per i sotto programmi

Esempio di un sotto programma che restituisce 6 parametri che rappresentano un elenco di indirizzi di consegna (shipaddr, shipcity, shipzip) ed un elenco di indirizzi di fatturazione (invaddr, invcity, invzip). Tali parametri potranno essere raggruppati in 2 entità o gruppi logici SHIPADDR e INVADDR.

Per gli oggetti

I nomi dei gruppi di pubblicazione sono generati da X3. Corrispondono ai codici dei blocchi delle videate.

Test dei web service

Si consiglia vivamente di testare i web service sotto-programmi o oggetti X3 utilizzando la funzione 'Tester di web service' del server X3WEB prima di utilizzarli in una applicazione XTEND.

Identificazione dei web service in XTEND

XTEND localizza un web service utilizzando un identificativo univoco valido per tutti i siti XTEND del dossier X3.

Tale identificativo fa riferimento alla scheda di identificazione di un web service contenente tra l'altro le coordinate del server di web service (hostname e port) e l'alias del pool di connessioni.

Funzione
'Sviluppo>Strumenti>Diversi>Pool Web services'