Frequently Asked Questions
Domande generiche
- D. Cos´è un web service?
- R. Un web service è una funzione software accessibile via rete (internet). La semplificazione, rispetto al passato, sta nel fatto che non c´è piú bisogno di studiare tanta documentazione su protocolli, linguaggi e comunicazione.
- D. Perché avete scelto di utilizzare i web service?
- R. Perchè introducono una astrazione che semplifica il compito dello sviluppatore riducendo il tutto a qualche linea di codice. Con i web service è possibile accedere ai nostri servizi con un client in qualunque linguaggio di programmazione e ovunque ubicato nel mondo senza doversi preoccupare di conformarsi a formati particolari e di creare complesse applicazioni per la comunicazione.
- D. Cos´è il WSDL?
- R. L´acronimo WSDL, pronunciato “uìsdol”, sta per Web Service Description Language ed è un file che descrive il web service in tutte le sue caratteristiche. Il WSDL è regolato da uno standard del W3C, World Wide Web Consortium, comunità che si occupa di definire standard di lunga durata per la crescita del Web.
- D. Cos´è SOAP?
- R. SOAP sta per Simple Object Access Protocol, ed è uno dei tre standard, con WSDL e XML, che stabilisce la differenza tra un web service ed un normale servizio erogato via web. Anche il protocollo SOAP è regolato da uno standard W3C che lo definisce come protocollo per l´interscambio di informazioni strutturate in strutture decentralizzate e distribuite. I messaggi SOAP viaggiano su internet come normali messaggi HTTP su protocollo TCP.
Domande generiche
- D. Come posso registrarmi al servizio?
- R. Deve prelevare il contratto in formato PDF, compilarlo, effettuare il bonifico ed inviare i documenti richiesti.
- D. Devo registrarmi ad ogni servizio?
- R. No, è prevista un´unica iscrizione per l´utilizzo di tutti i servizi disponibili.
- D. Dove posso vedere il numero di crediti disponibili?
- R. È a disposizione un web service gratuito che restituisce come risultato il numero di crediti disponibili.
- D. Per testare il mio client devo avere credito disponibile?
- R. No, ad ogni utente è fornito un profilo di test che permette di interrogare la banca dati, dai contenuti alterati, ma con struttura identica alla banca dati reale, corrispondente ad uno studio.
- D. Come posso cambiare il mio username?
- R. Non è possibile cambiare lo username.
- D. Come posso cambiare la mia password?
- R. È a disposizione un web service gratuito che permette di cambiare la propria password.
- D. Quali sono i requisiti della password?
- R. Deve essere compresa tra 8 e 15 caratteri e deve contenere almeno un carattere numerico.
- D. Quanto tempo dura la mia password?
- R. La password non è soggetta a scadenza ma è valida per tutta la durata della registrazione al servizio.
- D. Posso usare la mia registrazione da più postazioni?
- R. L´accesso al servizio è legato ad uno o più indirizzi IP.
- D. Quali sono gli orari in cui è garantito il servizio?
- R. Il servizio è garantito dal Lunedì al Venerdì (escluse le festività) dalle 9 alle 16.
- D. Quali sono gli orari del supporto?
- R. Il supporto è fornito dal Lunedì al Venerdì (escluse le festività) dalle 9 alle 16. Per usufruirne fare riferimento alla pagina dell´assistenza.
- D. Qual è il modo migliore per chiedere assistenza?
- R. Sicuramente l´email, avendo cura di indicare il proprio username, il tipo di problema riscontrato e l´ora ed il giorno in cui si è verificato.
- D. Fornite un software per l´interrogazione?
- R. No, non è previsto, ma è possibile anche usare uno dei software gratuiti reperibili su Internet. A questa pagina ne sono disponibili alcuni.
- D. Ricevo un errore quando invoco il web service, cosa posso fare?
- R. Cerchi il messaggio di errore nell´apposita sezione dell´assistenza.
- D. I servizi richiedono una autenticazione?
- R. Si, l´autenticazione è richiesta per tutti i servizi. Le credenziali di autenticazione viaggiano nell´header del messaggio SOAP mediante UsernameToken con PasswordText così come definito dallo standard Web Service Security.
- D. Come posso aggiungere le credenziali al messaggio SOAP?
- R. Ogni linguaggio di programmazione mette a disposizione un insieme di API per questo scopo. In Java, ad esempio, uno dei modi possibili è questo:
Accesso al servizio
- D. E´ previsto un utilizzo di prova dei vostri web service?
- R. No, non è previsto. Tuttavia, agli utenti registrati al servizio, è fornita la possibilità di testare i client mediante una utenza di test non soggetta a fatturazione. Le utenze di test accedono ad una banca dati dal contenuto alterato.
- D. Posso collegarmi sia da casa che dall'ufficio?
- R. No, non è possibile. Per utilizzare il servizio è necessario avere un indirizzo IP statico e registrato al servizio.
- D. I web service richiedono una autenticazione?
- R. Si, tutti i nostri web service richiedono una autenticazione mediante UsernameToken con password di tipo plaintext così come definito dallo standard WS Security.
- D. Come faccio ad aggiungere il token per l´autenticazione al mio client Java?
-
R. Un esempio di implementazione con Apache Axis 1.4 è il seguente:
- SOAPFactory f = new SOAPFactoryImpl();
- SOAPElement sec = f.createElement("Security", "wsse", "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd");
- SOAPElement ust = f.createElement("UsernameToken", "wsse", "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd");
- ust.addAttribute(f.createName("Id", "wsu", "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"), "UsernameToken-26553312");
- SOAPElement us = f.createElement("Username", "wsse", "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd");
- us.addTextNode(username);
- SOAPElement ps = f.createElement("Password", "wsse", "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd");
- ps.addAttribute(f.createName("Type"), "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText");
- ps.addTextNode(password);
- ust.addChildElement(us);
- ust.addChildElement(ps);
- sec.addChildElement(ust);
- SOAPHeaderElement she = new SOAPHeaderElement(sec);
- call.addHeader(she);
N.B.: Le istruzioni saranno ovviamente differenti a seconda del linguaggio di programmazione, delle librerie e delle versioni utilizzate.
Development tips
- Errore: GenericFault: “SOAP Fault when Extracting WS Basic Credentials”
- Soluzione: Questo errore si ottiene in risposta al fallimento dell'autenticazione e può verificarsi, principalmente, per due motivi:
- Non sono state fornite le credenziali per l'autenticazione (userid e password);
- Le credenziali fornite sono errate.
- Errore: env:Server: “Errore sicurezza: la numerosità del campo (Count) è minore del valore minimo definito dal sistema”
- Soluzione: I criteri di selezione del campione adottati sono troppo restrittivi e si intercetta un numero di elementi che non soddisfa i criteri di riservatezza imposti dall'applicazione.
- Errore: AuthorizationFault: Errore durante il controllo dell'autorizzazione per lo userId {nome_utente}
- Soluzione: E´ stato richiesto di eseguire il web service su uno studio non disponibile. Controllare il nome dello studio indicato nella richiesta e verificare che effettivamente sia uno studio tra quelli disponibili.
- Errore: env:Server: Errore interno durante la query al database {messaggio_specifico}
- Soluzione: L´applicazione ha riscontrato una anomalia durante la creazione della query. Questo può essere dovuto ad una divisione per zero in una operazione. Ricontrollare il parametro xml. Ad ogni modo il messaggio sarà indicativo del tipo di errore occorso.
- Errore: env:Server : Errore validazione XML. Errore durante il parsing del file xml
- Soluzione: L´XML fornito come parametro non è corretto. Controllare che sia well-formed e che sia valido secondo lo schema XSD corrispondente.
- Errore: env:Server: Non è possibile invocare il panel su funzioni con raggruppamento
- Soluzione: Non è possibile richiedere una analisi di panel sui web service di distribuzione di frequenza (sia normale che not null).
- Errore: env:Server: Il campo {nome_campo} non è ammesso come input della funzione
- Soluzione: E' stato fornito un xml con un campo in input che non è presente nell'xsd di riferimento.