Linee guida per lo sviluppo dei servizi applicativi in ambiente CARTe

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Linee guida per lo sviluppo dei servizi applicativi in ambiente CARTe"

Transcript

1 Linee guida per lo sviluppo dei servizi applicativi in ambiente CARTe Versione /07/2010

2 1 Introduzione Uso del Componente di Integrazione della Porta di Dominio Modalità d'uso trasparente dei Servizi Uso del Servizio IntegrationManager Invocazione di una porta delegata tramite Integration Manager Accesso ai messaggi ricevuti tramite Integration Manager Contenuti delle Risposte Applicative La gestione degli errori nell'interazione tra Servizio Applicativo e Porta Delegata Aspetti di integrazione nei Profili Asincroni Interscambio di Informazioni tra SIL e PdD Integrazione tramite QUERY_STRING Integrazione tramite l uso dell Header SOAP etoscana uso del meccamismo dei Filtri JMS Impostazione delle proprietà da parte del SIL Pubblicatore Proxy CART Mediatori TSB Il linguaggio di configurazione Alcuni Esempi L'esempio delle Comunicazioni Obbligatorie Utilizzo di Synapse per il TSB...31 Allegato A: Interfaccia WSDL del Servizio di IntegrationManager...44 Allegato B : Header SOAP etoscana Domande Frequenti... 71

3 1 Introduzione Nella specifica SPCoop, un dominio è definito come il confine di responsabilità di un ente o soggetto amministrativo e racchiude al suo interno tutte le applicazioni da esso gestite. Il confine applicativo del Dominio è rappresentato dalla Porta di Dominio (PdD), attraverso la quale devono transitare tutte le comunicazioni da e verso il dominio. Le Porte di Dominio si parlano tra di loro scambiandosi richieste e risposte in un formato parte della specifica SPCoop, denominato busta egov. Tuttavia il formato della busta non è parlato nativamente dalle applicazioni, pertanto la Porta di Dominio deve anche occuparsi di convertire le richieste applicative nel formato busta egov. Facendo riferimento a questa problematica, i compiti della Porta di Dominio vengono solitamente classificati in due componenti: il componente di cooperazione, che riguarda la comunicazione tra le Porte di Dominio e quello di integrazione, che riguarda la comunicazione tra i Servizi Applicativi dell Ente e la Porta di Dominio. Il componente di integrazione si differenzia a sua volta in due diversi moduli: la porta delegata e la porta applicativa. In particolare la porta delegata è utilizzata come proxy per l accesso al servizio destinazione, mentre la porta applicativa deve essere in grado di gestire la consegna dei contenuti delle buste egov ricevute al corrispondente servizio applicativo interno al dominio destinazione. Differentemente da quanto avviene per il componente di cooperazione (busta egov), per il componente di integrazione la specifica SPCoop si limita a presentare un esempio di massima di una sua possibile realizzazione. Al fine di uniformare le interfacce del livello applicativo verso l infrastruttura CARTE, in questo documento vengono quindi presentate le interfacce esposte dalle Porte di Dominio verso i Servizi Applicativi. 2 Uso del Componente di Integrazione della Porta di Dominio Le interazioni tra i servizi applicativi e le porte delegate e applicative delle Porte di Dominio che li ospitano devono avvenire tramite richieste SOAP 1.1. I protocolli supportati sono http ed https. Ogni richiesta del Servizio Applicativo deve essere autenticata dalla Porta di Dominio con l'utilizzo di autenticazione basic in caso di http o di https. E altresì possibile utilzzare certificati X.509, in tal proposito si fa presente che : - RT può produrre il certificato digitale utilizzando un contratto di fornitura dei certificati stipulato con una C.A. - CART accetta anche certificati prodotti da terzi o self signed - CART non fornisce i certificati 3/73

4 In generale le interazioni tra i servizi applicativi e la porta di dominio possono avvenire in due modi: 1. modalità trasparente: prevede che il servizio applicativo utilizzi (in caso di porta delegata) o esponga (in caso di porta applicativa) le interfacce applicative native dei servizi, esattamente come registrate negli accordi di servizio; in tal caso la Porta di Dominio agisce come un proxy trasparente con funzionalità di imbustamento e sbustamento egov dei messaggi applicativi; utilizzando questa modalità, gli applicativi potranno continuare ad operare esattamente come se stessero interagendo direttamente con il servizio applicativo dell'altro Ente; 2. uso del Servizio Integration Manager della PdD: prevede di utilizzare le interfacce di un apposito web service di Integrazione, messo a disposizione dalla Porta di Dominio per la spedizione e/o la ricezione di messaggi applicativi da parte dei servizi applicativi del proprio Dominio di Servizi. 2.1 Modalità d'uso trasparente dei Servizi Questa modalità prevede che il servizio applicativo utilizzi (in caso di porta delegata) o esponga (in caso di porta applicativa) le interfacce applicative native dei servizi, così come registrate negli accordi di servizio; in tal caso la Porta di Dominio agisce come un proxy SOAP trasparente con funzionalità di imbustamento e sbustamento egov dei messaggi applicativi; utilizzando questa modalità, gli applicativi continuano ad operare esattamente come se stessero interagendo direttamente con il servizio applicativo dell'altro Ente. L'invocazione della porta delegata in modalità trasparente può essere realizzata tramite gli strumenti del linguaggio di programmazione nativo del servizio applicativo, utilizzando ad esempio stub creati tramite il proprio ambiente di sviluppo Web Services (ad esempio wsdl2java in Axis), facendo riferimento direttamente al WSDL del servizio da utilizzare, così come registrato nell'accordo di servizio. In questo caso la principale modifica rispetto all'invocazione dell'effettivo servizio destinazione sarà la URL utilizzata per l'invocazione http, che dovrà essere quella corrispondente alla porta delegata del servizio esposta dalla PdD. Il codice che segue mostra un esempio, usando Axis 1.4, di invocazione di una porta delegata usando gli stub del servizio. try { HelloWSServiceLocator locator = new HelloWSServiceLocator(); Locator.setHelloWorldEndpointAddress("http://nal/cart/PD/HelloWorld"); HelloWS port = locator.gethelloworld(); String msg = port.sayhello(); } catch (AxisFault e) { 4/73

5 } Come si può notare, è sufficiente settare l endpoint del servizio alla URL della Porta Delegata da indirizzare, senza ulteriori modifiche al codice applicativo. Ovviamente non è obbligatorio utilizzare degli stub per l invocazione del servizio, ma si può utilizzare qualunque altra modalità supportata dal proprio ambiente di lavoro per la programmazione di web services. 2.2 Uso del Servizio IntegrationManager Prevede di utilizzare le interfacce di un apposito web service di Integrazione, messo a disposizione dalla Porta di Dominio per la spedizione e/o la ricezione di messaggi applicativi da parte dei servizi applicativi del proprio Dominio di Servizi. L'interfaccia WSDL completa dell'integration manager è disponibile in allegato A. A titolo descrittivo si mostra di seguito l'interfaccia esposta dal Web Service, espressa in linguaggio java: interface IntegrationManager { SPCoopMessage invocaportadelegata( String portadelegata, SPCoopMessage msg) SPCoopMessage sendrispostaasincronasimmetrica( String portadelegata,spcoopmessage msg) String[] getallmessagesid() String[] getallmessagesidbyservice( String tiposervizio, String servizio, String azione) 5/73

6 String[] getnextmessagesid(int n) String[] getnextmessagesidbyservice( int n, String tiposervizio, String servizio, String azione) SPCoopMessage getmessage(string idegov) SPCoopMessage getmessagebyreference(string riferimentomsg) void deletemessage(string idegov) void deletemessagebyreference(string riferimentomsg) public void deleteallmessages() } L'oggetto di base su cui lavorano le varie operazioni supportate dall IntegrationManager è l SPCoopMessage, che contiene varie informazioni relative al messaggio e un array di byte corrispondente al messaggio SOAP vero e proprio. La struttura della classe SPCoopMessage è mostrata a titolo descrittivo in linguaggio java nel riquadro seguente. public class SPCoopMessage implements java.io.serializable { public void setmessage(byte [] m) public byte[] getmessage() public boolean getimbustamento() public void setimbustamento(boolean imbustamento) public String getidapplicativo() public void setidapplicativo(string applicativo) 6/73

7 public String getservizioapplicativo() public void setservizioapplicativo(string servizioapplicativo) public String getservizioapplicativodestinatario() public void setservizioapplicativodestinatario(string servizioapplicativodestinatario) } public SPCoopHeaderInfo getspcoopheaderinfo() public void setspcoopheaderinfo(spcoopheaderinfo spcoopheaderinfo) Come risulta dalla struttura della classe mostrata nel riquadro precedente, l oggetto SPCoopMessage riferisce un ulteriore oggetto di tipo SPCoopHeaderInfo che raccoglie tutte le informazioni relative all header SPCoop della busta egov accessibili dai servizi applicativi. La struttura della classe SPCoopHeaderInfo è mostrata a titolo descrittivo in linguaggio java nel riquadro seguente. public class SPCoopHeaderInfo implements java.io.serializable { public String gettipomittente() public void settipomittente(string type ) public String getmittente() public void setmittente(string m ) public String gettipodestinatario() public void settipodestinatario(string type ) public String getdestinatario() 7/73

8 public void setdestinatario(string s ) public String getservizio() public void setservizio(string s ) public String gettiposervizio() public void settiposervizio(string type ) public String getazione() public void setazione(string a ) public String getid() public void setid(string id ) public String getriferimentomessaggio() public void setriferimentomessaggio(string rif ) public String getidcollaborazione() public void setidcollaborazione(string idcollaborazione) } Invocazione di una porta delegata tramite Integration Manager Il codice che segue mostra un esempio, in Axis 1.4, di invocazione di una porta delegata usando il servizio di IntegrationManager. IntegrationManagerServiceLocator locator = 8/73

9 new IntegrationManagerServiceLocator(); locator.setintegrationmanagerendpointaddress(imurl); port = locator.getintegrationmanager(username,password); // Costruzione Messaggio SPCoop msg = new SPCoopMessage(); // soapmessagetosend è il messaggio SOAP da spedire // espresso come array di byte msg.setmessage(soapmessagetosend); try { SPCoopMessage msgresponse = port.invocaportadelegata(locationpd,msg); } catch(exception e){ } System.out.println("ClientError: "+e.getmessage()); Accesso ai messaggi ricevuti tramite Integration Manager Il codice che segue mostra un esempio, in axis 1.4, di accesso ai messaggi ricevuti su una porta applicativa usando il servizio di IntegrationManager. IntegrationManagerServiceLocator locator = new IntegrationManagerServiceLocator(); locator.setintegrationmanagerendpointaddress(integrationmanagerurl); 9/73

10 port = locator.getintegrationmanager(username,password); String []ids = port.getallmessagesid(); for (int i=0; i<ids.length; i++ ) { SPCoopMessage msg = port.getmessage(ids[i]); // processa il messaggio ricevuto come byte array... processmessage(msg.getmessage()); } deletemessage(ids[i]); Nell esempio precedente viene prima utilizzata l operazione getallmessagesid per accedere all elenco dei messaggi ricevuti e quindi l operazione di getmessage per prelevare i singoli messaggi. Dopo il processamento di un messaggio, si procede alla sua rimozione. Oltre a questi due metodi di base, il servizio di IntegrationManager fornisce ulteriori interfacce per gestire in vario modo i messaggi in arrivo per un SIL. Nel riquadro successivo vengono elencate le varie interfacce utili per l accesso ai messaggi. String[] getallmessagesid() // restituisce gli identificatori di tutti i messaggi disponibili // in coda per il SIL richiedente String[] getallmessagesidbyservice( String tiposervizio, String servizio, String azione) // restituisce gli identificatori di tutti i messaggi disponibili in // coda per il SIL corrispondente al servizio ed all azione // indicati in input 10/73

11 String[] getnextmessagesid(int n) // restituisce i primi n identificatori di messaggi disponibili // in coda per il SIL String[] getnextmessagesidbyservice( int n, String tiposervizio, String servizio, String azione) // restituisce i primi n identificatori di messaggi disponibili // in coda per il SIL corrispondenti al servizio ed all azione // indicati in input SPCoopMessage getmessage(string idegov) // restituisce il messaggio identificato dall identificatore in input SPCoopMessage getmessagebyreference(string riferimentomsg) // restituisce il messaggio identificato dall identificatore // di riferimentomessaggio in input void deletemessage(string idegov) // cancella il messaggio identificato dall id in input void deletemessagebyreference(string riferimentomsg) // cancella il messaggio identificato dall id di riferimentomessaggio // in input 11/73

12 public void deleteallmessages() // cancella tutti i messaggi in coda per il SIL richiedente 3 Contenuti delle Risposte Applicative Nel caso del profilo Sincrono, le risposte (ricevute dalla PdD nel caso di invocazioni della porta delegata o inviate dalla PdD nel caso di invocazioni dei Servizi Applicativi abbinati alle Porte Applicative), sono direttamente generate dai Servizi Applicativi erogatori e trasparentemente restituiti dalla PdD ai servizi fruitori. La stessa cosa succede per i profili Asincroni Simmetrico e Asimmetrico, che corrispondono concettualmente ad una coppia di interazioni sincrone correlate tra loro. Per questo motivo, l Integration Manager non può essere usato per l accesso ai messaggi ricevuti dai servizi applicativi con profili Sincroni ed Asincroni. Infatti questi messaggi non possono essere tenuti dalla Porta di Dominio in attesa di una successiva richiesta del SIL, ma devono essere immediatamente girati al servizio applicativo per poter ottenere la risposta da girare al richiedente. Nel caso del profilo Oneway, invece, la PdD mittente restituisce la risposta al servizio fruitore immediatamente, senza attendere di ricevere una risposta dal servizio applicativo erogatore del servizio. In questo caso il servizio fruitore riceverà quindi una risposta creata dalla PdD con SOAP body vuoto. 4 La gestione degli errori nell'interazione tra Servizio Applicativo e Porta Delegata In funzione del fatto che si usi la modalità di invocazione trasparente o i servizi dell'integrationmanager per l invocazione di una porta delegata della Porta di Dominio, cambia il modo in cui le condizioni di errore vengono gestite dal servizio applicativo. Nel caso in cui si usino i servizi dell'integrationmanager eventuali condizioni di errore generate dalla Porta di Dominio saranno restituite all'interno di un eccezione gestita dal servizio IntegrationManager, il cui formato è rappresentato di seguito in linguaggio java. public class SPCoopException { public java.lang.string getcodiceeccezione(); public void setcodiceeccezione(java.lang.string codiceeccezione); 12/73

13 public java.lang.string getdescrizioneeccezione(); public void setdescrizioneeccezione(java.lang.string descrizioneeccezione); public java.lang.string getidentificativofunzione(); public void setidentificativofunzione(java.lang.string identificativofunzione); public java.lang.string getidentificativoporta(); public void setidentificativoporta(java.lang.string identificativoporta); public java.lang.string getoraregistrazione(); public void setoraregistrazione(java.lang.string oraregistrazione); public java.lang.string gettipoeccezione(); public void settipoeccezione(java.lang.string tipoeccezione); } Le eventuali eccezioni generate dal Servizio Applicativo originale saranno invece trasportate come SOAPFault all interno del campo messaggio dell oggetto SPCoopMessage. Nel caso in cui si utilizzi la modalità trasparente, sarà invece possibile, in caso di eccezione SOAPFault, testare il campo FaultActor per riconoscere e gestire i casi di errore dovuti all'interazione con la porta di dominio (valore "it.toscana.regione.cart.pdd") da quelli puramente applicativi. Nel frammento di codice seguente vediamo, a titolo di esempio, come gestire questa situazione nel caso specifico del linguaggio java usando Axis 1.4 come web-services engine. try { HelloWSServiceLocator locator = new HelloWSServiceLocator(); 13/73

14 locator.sethelloworldendpointaddress("http://nal/carte/pd/getdate"); HelloWS port = locator.gethelloworld(); String msg = port.sayhello(); } catch (AxisFault e) { if("it.toscana.regione.cart.pdd".equals(e.getfaultactor())){ System.out.println("Ricevuto Messaggio di Errore PdD[" + e.getfaultcode() + "]:"); System.out.println(e.getFaultString()); }else{ System.out.println("Ricevuto SOAPFault applicativo"); System.out.println("Actor: "+e.getfaultactor()); System.out.println("Code: "+e.getfaultcode()); System.out.println("String: "+e.getfaultstring()); } } catch (Exception e) { System.out.println("ClientError: "+e.getmessage()); e.printstacktrace(); } Come evidenziato nell'esempio, il particolare codice di eccezione generato dalla Porta di Dominio potrà essere ottenuto tramite il campo FaultCode del messaggio di Fault, la descrizione dell errore nel campo FaultString. Il messaggio applicativo d errore sarà presente nel campo detail del 14/73

15 messaggio di Fault, ottenibile nel caso dell esempio tramite il metodo getfaultdetails della classe AxisFault. Ecco un esempio di messaggio di errore generato nel caso in invocazione di una porta delegata inesistente: <soapenv:envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/xmlschema" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"> <soapenv:body> <soapenv:fault> <faultcode>soapenv:openspcoop_org_401</faultcode> <faultstring>la porta delegata invocata non esiste </faultstring> Location[HelloWorl] urlinvocazione[helloworl] <faultactor>openspcoop</faultactor> <detail> <egov_it_ecc:messaggiodierroreapplicativo xmlns:egov_it_ecc="http://www.cnipa.it/schemas/2003/egovit/exception1_0/" xmlns:xsd="http://www.w3.org/2001/xmlschema" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"> <egov_it_ecc:oraregistrazione> t09:48:27.812</egov_it_ecc:oraregistrazione> <egov_it_ecc:identificativoporta>openspcoopspcoopit</egov_it_ecc:identificativoporta > 15/73

16 <egov_it_ecc:identificativofunzione>ricezionecontenutiapplicativiws</egov_it_ecc:ident ificativofunzione> <egov_it_ecc:eccezione> <egov_it_ecc:eccezioneprocessamento codiceeccezione="openspcoop_org_401" descrizioneeccezione="la porta delegata invocata non esiste location[helloworl] urlinvocazione[helloworl]"/> </egov_it_ecc:eccezione> </egov_it_ecc:messaggiodierroreapplicativo> </detail> </soapenv:fault> </soapenv:body> </soapenv:envelope> In entrambi gli approcci, in caso di errore, la Porta di Dominio restituirà gli stessi codici di errore, elencati nella tabella seguente. FaultCode FaultString CART_500 Porta di Dominio Temporaneamente non Disponibile CART_401 Porta Delegata Inesistente CART_402 Autenticazione Fallita CART_403 Pattern Ricerca Porta Delegata Non Valido CART_404 Autorizzazione Fallita CART_405 Servizio SPCoop abbinato alla Porta Delegata Inesistente CART_406 Nessun Messaggio disponibile per il Servizio Applicativo 16/73

17 CART_407 Messaggio Richiesto Inesistente CART_4XX Generico errore client I servizi applicativi sono tenuti a gestire tutti gli errori generati dalla PdD, trattenendo i messaggi che hanno generato errore per una successiva rispedizione. In particolare, in caso di errore CART_500, il servizio applicativo è tenuto a sospendere temporaneamente per un tempo calcolato in maniera random, la spedizione di messaggi, in modo da favorire il decongestionamento dell infrastruttura. 5 Aspetti di integrazione nei Profili Asincroni I profili di collaborazione Asincroni, sia Simmetrici che Asimmetrici, al contrario degli altri profili previsti in SPCoop (Oneway e Sincrono) richiedono due interazioni, una richiesta di servizio ed una risposta del servizio che viene ritornata tramite una nuova interazione. Le buste egov prodotte sono quindi quattro (due per ogni interazione) e vengono correlate tra di loro attraverso l identificativo egov. Pertanto i servizi applicativi devono necessariamente scambiare con la porta di dominio l informazione relativa all'id egov utilizzato per la correlazione tra la richiesta e la successiva risposta. Nel caso si usi il servizio di IntegrationManager della Porta di Dominio è possibile utilizzare le interfacce di questo servizio per lo scambio dell id egov necessario per la correlazione. Nel caso in cui si utilizzi la modalità trasparente per l invocazione dei servizi Asincroni, sarà invece possibile utilizzare header del trasporto http, dovendo l'interfaccia applicativa rimanere quella originale del servizio applicativo invocato. Il codice che segue mostra un esempio di transazione asincrona asimmetrica tramite IntegrationManager. SPCoopMessage msg1 = new SPCoopMessage(); msg1.setmessage(soapmessagerichiesta); // invio richiesta asincrona e prelievo dell id di correlazione SPCoopMessage msg1response = port.invocaportadelegata( portadelegatarichiesta,msg1); idegovrichiesta = msg1response.getid(); 17/73

18 // Costruzione SPCoopHeaderInfo SPCoopHeaderInfo spcoopheaderinfo = new SPCoopHeaderInfo(); spcoopheaderinfo.setriferimentomessaggio(riferimentomessaggio); msg.setidapplicativo(idcorrelazioneapplicativa);... msg.setservizioapplicativo(nomeservizioapplicativo); // settaggio dell id di correlazione ed invio richiesta stato SPCoopMessage msg2 = new SPCoopMessage(); msg2.setmessage(soapmessagerichiestastato); SPCoopHeaderInfo spcoopheaderinfo2 = new SPCoopHeaderInfo(); spcoopheaderinfo2.setriferimentomessaggio(idegovrichiesta); msg2.setspcoopheaderinfo(spcoopheaderinfo2); SPCoopMessage msg2response = port.invocaportadelegata(portadelegatarichiestastato, msg2); Come evidenziato nell esempio, la correlazione della richiesta con la risposta, avviene prelevando l IDEgov della prima richiesta tramite il metodo getid, e settandolo come riferimentomessaggio della seconda richiesta tramite il metodo setriferimentomessaggio. Nel caso in cui si usi la modalità trasparente, le informazioni di correlazione potranno essere gestite tramite le proprietà SPCoopID ed SPCoopRiferimentoMessaggio, accessibili come mostrato nella successiva sezione Interscambio di Informazioni tra SIL e PdD. Il codice che segue mostra un esempio di utilizzo della modalità trasparente usando gli header del protocollo http come modalità di interscambio delle informazioni tra SIL e PdD. URL url = new URL(UrlPortaDelegataRichiesta); HttpURLConnection httpcon1 = (HttpURLConnection)url.openConnection(); 18/73

19 ... OutputStream out = httpcon1.getoutputstream(); out.write(soapmessagerichiesta); out.close();... String idegov = httpcon1.getheaderfields().get("spcoopid");... url = new URL(UrlPortaDelegataRichiestaStato); HttpURLConnection httpcon2 = (HttpURLConnection)url.openConnection();... httpcon2.setrequestproperty("spcoopriferimentomessaggio", idegov); OutputStream out = httpcon2.getoutputstream(); out.write(soapmessagerichiestastato); out.close();... 6 Interscambio di Informazioni tra SIL e PdD Alcune delle informazioni parte dell header SPCoop della busta egov possono essere scambiate tra il SIL e la PdD al momento dell invocazione di una porta delegata o tra la PdD ed il SIL al momento dell invocazione di una porta applicativa. In particolare le informazioni in questione variano in funzione delle specifiche precipuità degli Accordi di Servizio a cui la busta si riferisce e sono identificate tramite le seguenti keyword: SpCoopID SPCoopTipoMittente SPCoopMittente SPCoopTipoDestinatario SPCoopDestinatario 19/73

20 SPCoopTipoServizio SPCoopServizio SPCoopAzione SPCoopRiferimentoMessaggio SPCoopIdCollaborazione SPCoopIDApplicativo SPCoopServizioApplicativo SPCoopServizioApplicativoDestinatario Nel caso di uso dell IntegrationManager, tali informazioni sono accessibili tramite le interfacce di get/set della classe SPCoopHeaderInfo, già mostrata in precedenza. Nel caso di uso della modalità trasparente, tali informazioni sono invece accessibili tramite tre diverse modalità: 1. come header del trasporto http: in questo caso i nomi degli header saranno uguali alle informazioni sopra elencate; 2. come proprietà della QUERY_STRING della URL http invocata: in questo caso il nome della proprietà saranno uguali alle informazioni sopra elencate; 3. come informazioni interne all header SOAP etoscana, appositamente definito per l interscambio di tali informazioni nel CART; in questo caso le informazioni saranno rappresentate in accordo all xsd dell header etoscana riportato in appendice B. Va notato che la PdD del CART accetta in input e produce in output le informazioni necessarie usando contemporaneamente tutti le 3 modalità appena elencate. E quindi possibile, per il programmatore dei servizi applicativi, usare indifferentemente uno qualunque di tali modalità. Abbiamo già mostrato un esempio d uso dell interscambio di informazioni tra SIL e PdD sia tramite l uso dell Integration Manager che tramite l uso di header http nella modalità trasparente, nella precedente sezione 5 Aspetti di integrazione nei Profili Asincroni. Nel seguito vedremo un analogo esempio di codice, utilizzando le modalità alternative di integrazione tramite QUERY_STRING e tramite Header SOAP etoscana. E' importante evidenziare una nuova funzionalità della PdD associata all'utilizzo dell'attributo SPCoopServizioApplicativoDestinatario dell'header etoscana: infatti mediante l'utilizzo di questo attributo è possibile istruire la Porta di Dominio CART in modo tale che sia possibile indirizzare un messaggio ad uno specifico SIL di destinazione associato ad un determinato Ente erogatore. Questo meccanismo consente di poter gestire invii di messaggi verso un Ente destinatario al quale sono associati, per quel servizio, più SIL erogatori, selezionando un solo SIL destinatario fra quelli possibili: la PdD consegnerà il messaggio solo al SIL indicato escludendo dalla consegna i restanti SIL. Infatti tramite l'uso dell'header etoscana, il mittente ha la possibilità di impostare, mediante i meccanismi esposti nel seguito, l'attributo SPCoopServizioApplicativoDestinatario, per far si che 20/73

21 un determinato messaggio per il quale risulta valorizzato tale attributo, venga consegnato esclusivamente al SIL (se esistente e associato all'ente destinatario) indicato nell'attributo. Se il SIL indicato non figura fra i SIL associati al soggetto erogatore, verrà generato dalla PdD un messaggio di errore CART verso la PdD mittente. In generale se l'attributo non risulta valorizzato, la PdD procede alla consegna a tutti i SIL registrati per quella porta applicativa. 6.1 Integrazione tramite QUERY_STRING URL url = new URL(UrlPortaDelegataRichiesta); HttpURLConnection httpcon1 = (HttpURLConnection)url.openConnection();... OutputStream out = httpcon1.getoutputstream(); out.write(soapmessagerichiesta); out.close();... String idegov = httpcon1.getheaderfields().get("spcoopid");... url = new URL( UrlPortaDelegataRichiestaStato + "?SPCoopRiferimentoMessaggio=" + idegov ); HttpURLConnection httpcon2 = (HttpURLConnection)url.openConnection();... OutputStream out = httpcon2.getoutputstream(); 21/73

22 out.write(soapmessagerichiestastato); out.close();... Nel codice appena mostrato si può notare come il parametro SPCoopRiferimentoMessaggio venga passato aggiungendo un parametro della QUERY_STRING alla URL della porta delegata invocata, anziché usando il setting degli header http. 6.2 Integrazione tramite l uso dell Header SOAP etoscana URL url = new URL(UrlPortaDelegataRichiesta); HttpURLConnection httpcon1 = (HttpURLConnection)url.openConnection();... OutputStream out1 = httpcon1.getoutputstream(); out1.write(soapmessagerichiesta); out1.close();... InputStream responsestream = httpcon1.getinputstream(); Message response = new Message(responseStream); responsestream.close();... SOAPHeaderElement headeretoscana = null; java.util.iterator<?> iter = response.getsoapheader().examineallheaderelements(); while( iter.hasnext() ) { SOAPHeaderElement headerelement = (SOAPHeaderElement) iter.next(); //Controllo Actor 22/73

23 if(headerelement.getactor().equals( "http://it.regione.toscana.cart.pdd/etoscana") ) { headeretoscana = headerelement; break; } } String idegov = headeretoscana.getattribute("id-egov");... // Preparazione dell'header SOAP etoscana Name name = new PrefixedQName( "http://it.regione.toscana.cart.pdd/etoscana", "etoscana", "cart"); SOAPHeaderElement header = new org.apache.axis.message.soapheaderelement(name); header.setactor("http://it.regione.toscana.cart.pdd/etoscana"); header.addnamespacedeclaration("soap_env", "http://schemas.xmlsoap.org/soap/envelope/"); // Settaggio riferimentomessaggio per la correlazione asincrona header.setattribute("spcoopriferimentomessaggio", idegov); 23/73

24 // Aggiunta header al messaggio Soap. Si assume che il Messaggio Axis // da spedire sia disponibile nella variabile axismsgrichiestastato axismsgrichiestastato.getsoapenvelope().getheader().addchildelement(header); URL urlconnection = new URL(...todo...); HttpURLConnection httpconn = (HttpURLConnection) urlconnection.openconnection(); OutputStream out = httpconn.getoutputstream(); axismsgrichiestastato.writeto(out); out.close();... L'header etoscana non è un header obbligatorio per le comunicazioni tra SIL e PdD. Nel caso sia presente in un messaggio SOAP ricevuto dal servizio di Porta Delegata, permette la comunicazione dei valori necessari in fase di integrazione, come idendificativo di correlazione nei profili asincroni, id di collaborazione e id di correlazione applicativa. Di seguito viene mostrato un esempio di codice per inserire all'interno di un header etoscana un id di correlazione applicativa: SOAPEnvelope env = msg.getsoapenvelope(); SOAPHeader hdr = (SOAPHeader) env.getheader(); if(hdr==null) { } hdr = (SOAPHeader) env.addheader(); // Creazione header etoscana Name name = new PrefixedQName(" 24/73

Guida alla programmazione e integrazione di servizi in OpenSPCoop. Guida alla programmazione e integrazione di servizi in OpenSPCoop

Guida alla programmazione e integrazione di servizi in OpenSPCoop. Guida alla programmazione e integrazione di servizi in OpenSPCoop i Guida alla programmazione e integrazione di servizi in OpenSPCoop ii Copyright 2005-2008 Link.it s.r.l. iii COLLABORATORI TITOLO : Guida alla programmazione e integrazione di servizi in OpenSPCoop AZIONE

Dettagli

SDK-CART. Versione 1.1

SDK-CART. Versione 1.1 SDK-CART Versione 1.1 20/04/2008 Indice dei Contenuti 1 INTRODUZIONE...2 2 L USO DEL COMPONENTE DI INTEGRAZIONE DELLA PORTA DI DOMINIO... 2 2.1 Modalità d'uso trasparente dei Servizi...3 2.2 Uso del Servizio

Dettagli

INF-1: Specifiche Tecniche di Interfaccia

INF-1: Specifiche Tecniche di Interfaccia INF-1: Specifiche tecniche di Interfaccia INF-1: Specifiche Tecniche di Interfaccia Versione 1.1 Nome doc.: INF-1 Specifiche Interfaccia v1.0.doc Edizione: 1.0 Data emissione: 12/1/2007 INDICE Modifiche

Dettagli

Guida alla programmazione e integrazione di servizi in OpenSPCoop. Guida alla programmazione e integrazione di servizi in OpenSPCoop

Guida alla programmazione e integrazione di servizi in OpenSPCoop. Guida alla programmazione e integrazione di servizi in OpenSPCoop i Guida alla programmazione e integrazione di servizi in OpenSPCoop ii Copyright 2005-2011 Link.it s.r.l. iii Indice 1 Introduzione 1 2 Modalità d integrazione trasparente 1 3 Modalità d integrazione tramite

Dettagli

Gestione XML della Porta di Dominio OpenSPCoop

Gestione XML della Porta di Dominio OpenSPCoop i Gestione XML della Porta di Dominio ii Copyright 2005-2011 Link.it srl iii Indice 1 Introduzione 1 2 Hello World! 2 3 Configurazione XML della Porta di Dominio 5 3.1 Soggetto SPCoop...................................................

Dettagli

Manuale SDK di OpenSPCoop2 i. Manuale SDK di OpenSPCoop2

Manuale SDK di OpenSPCoop2 i. Manuale SDK di OpenSPCoop2 i Manuale SDK di OpenSPCoop2 ii Copyright 2005-2013 Link.it srl iii Indice 1 Introduzione 1 2 La Personalizzazione del Protocollo di Cooperazione 1 3 Il Software Development Kit 2 3.1 Gestione dei payload.................................................

Dettagli

Guida Utente della PddConsole. Guida Utente della PddConsole

Guida Utente della PddConsole. Guida Utente della PddConsole Guida Utente della PddConsole i Guida Utente della PddConsole Guida Utente della PddConsole ii Copyright 2005-2015 Link.it srl Guida Utente della PddConsole iii Indice 1 Introduzione 1 2 I protocolli di

Dettagli

Guida Utente della PddConsole. Guida Utente della PddConsole

Guida Utente della PddConsole. Guida Utente della PddConsole Guida Utente della PddConsole i Guida Utente della PddConsole Guida Utente della PddConsole ii Copyright 2005-2014 Link.it srl Guida Utente della PddConsole iii Indice 1 Introduzione 1 2 I protocolli di

Dettagli

Architettura Tecnica i. Architettura Tecnica

Architettura Tecnica i. Architettura Tecnica i Architettura Tecnica ii Copyright 2005-2011 Link.it s.r.l. iii Indice 1 Scopo del documento 1 1.1 Abbreviazioni..................................................... 1 2 Overview 1 2.1 La PdD........................................................

Dettagli

Guida Utente della PddConsole. Guida Utente della PddConsole

Guida Utente della PddConsole. Guida Utente della PddConsole Guida Utente della PddConsole i Guida Utente della PddConsole Guida Utente della PddConsole ii Copyright 2005-2014 Link.it srl Guida Utente della PddConsole iii Indice 1 Introduzione 1 2 Prerequisiti per

Dettagli

Manuale Gestione di OpenSPCoop 1.4 i. Manuale Gestione di OpenSPCoop 1.4

Manuale Gestione di OpenSPCoop 1.4 i. Manuale Gestione di OpenSPCoop 1.4 i Manuale Gestione di OpenSPCoop 1.4 ii Copyright 2005-2011 Link.it srl iii Indice 1 Introduzione 1 2 Prerequisiti per la Configurazione della Porta di Dominio 1 2.1 Verifica dell applicazione di gestione

Dettagli

SERVICE BROWSER. Versione 1.0

SERVICE BROWSER. Versione 1.0 SERVICE BROWSER Versione 1.0 25/09/2008 Indice dei Contenuti 1. Scopo del documento... 3 2. Introduzione... 3 3. Accordi di Servizio... 4 4. Servizi... 5 5. Servizio: Schede Erogatori... 8 6. Servizio:

Dettagli

Creare client statici

Creare client statici Client statico Creare client statici Un client statico crea, a partire dal WSDL di un servizio, un insieme di classi di supporto client-side (stub) Sono necessari solo 2 passi: 1. parsing del WSDL pubblicato

Dettagli

Architettura CART Versione 3.6 14/09/2010

Architettura CART Versione 3.6 14/09/2010 Versione 3.6 14/09/2010 Indice dei Contenuti 1. PREFAZIONE... 3 2. INTRODUZIONE... 3 3. ARCHITETTURA GENERALE DEL CART... 4 3.1. COMPONENTI DELL ARCHITETTURA E INTERFACCE... 7 3.1.1. Il Registro SICA Secondario...

Dettagli

ALLEGATO C STANDARD TECNICI DELLA BORSA CONTINUA NAZIONALE DEL LAVORO

ALLEGATO C STANDARD TECNICI DELLA BORSA CONTINUA NAZIONALE DEL LAVORO ALLEGATO C STANDARD TECNICI DELLA BORSA CONTINUA NAZIONALE DEL LAVORO Standard tecnici Gli standard tecnici di riferimento adottati sono conformi alle specifiche e alle raccomandazioni emanate dai principali

Dettagli

Release Notes di OpenSPCoop i. Release Notes di OpenSPCoop

Release Notes di OpenSPCoop i. Release Notes di OpenSPCoop i Release Notes di OpenSPCoop ii Copyright 2005-2011 Link.it srl iii Indice 1 Versione 1.4 1 1.1 Adeguamento al nuovo sistema di qualificazione di DigitPA............................. 1 1.2 Nuova modalità

Dettagli

Ministero del Lavoro e delle Politiche Sociali

Ministero del Lavoro e delle Politiche Sociali Ministero del Lavoro e delle Politiche Sociali Prospetto Informativo on-line Standard tecnici del sistema informativo per l invio telematico del Prospetto Informativo Documento: UNIPI.StandardTecnici Revisione

Dettagli

JBoss ESB Un caso d'uso italiano: La Porta di Dominio per la Cooperazione Applicativa

JBoss ESB Un caso d'uso italiano: La Porta di Dominio per la Cooperazione Applicativa JBoss ESB Un caso d'uso italiano: La Porta di Dominio per la Cooperazione Applicativa Andrea Leoncini JBoss Stefano Linguerri - Pro-netics Agenda JBoss ESB le SOA e la Porta di Dominio Le specifiche CNIPA

Dettagli

Tutorial di configurazione e programmazione di OpenSPCoop. Tutorial di configurazione e programmazione di OpenSPCoop

Tutorial di configurazione e programmazione di OpenSPCoop. Tutorial di configurazione e programmazione di OpenSPCoop i Tutorial di configurazione e programmazione di OpenSPCoop ii Copyright 2005-2011 Link.it s.r.l. iii Indice 1 Introduzione 1 2 Ambiente di sviluppo 1 3 Presentazione degli scenari di esempio 2 4 Comunicazione

Dettagli

Definizione delle interfacce di colloquio fra le componenti

Definizione delle interfacce di colloquio fra le componenti Definizione delle interfacce di colloquio fra le componenti (integrazione documento) 1 DOCUMENTO:. 1.2 Emesso da: EMISSIONE VERIFICA APPROVAZIONE Nome firma Verificato da: Approvato da: Area ISIC LISTA

Dettagli

PHP: Interfacce; Gestione errori ed eccezioni. Pasqualetti Veronica

PHP: Interfacce; Gestione errori ed eccezioni. Pasqualetti Veronica PHP: Interfacce; Gestione errori ed eccezioni i Pasqualetti Veronica Interfacce In PHP non si possono ereditare proprietà da più classi. 2 Per ovviare al problema si possono creare delle interfacce che

Dettagli

QUEUE : considerazioni. QUEUE : considerazioni. QUEUE : esempio. QUEUE : esempio

QUEUE : considerazioni. QUEUE : considerazioni. QUEUE : esempio. QUEUE : esempio QUEUE : considerazioni QUEUE : considerazioni Si è realizzata una struttura dati complessa utilizzandone una primitiva, l array. Il pregio di tale implementazione è il basso costo computazionale, mentre

Dettagli

Manuale gestione Porta di Dominio OpenSPCoop 1.1

Manuale gestione Porta di Dominio OpenSPCoop 1.1 i Manuale gestione Porta di Dominio ii Copyright 2005-2008 Link.it srl Questo documento contiene informazioni di proprietà riservata, protette da copyright. Tutti i diritti sono riservati. Non è permesso

Dettagli

Web Services con Axis Delia Di Giorgio Anna Celada 1 marzo 2005

Web Services con Axis Delia Di Giorgio Anna Celada 1 marzo 2005 Sommario Web Services con Axis Delia Di Giorgio Anna Celada 1 marzo 2005 Introduzione.................................................................................. 1 SOAP........................................................................................

Dettagli

Plus srl :: www.conplus.it :: info@conplus.it :: Via Morgagni, 4/A 37135 Verona :: Tel. +39 045 580 491 :: Fax 045 82 78 722

Plus srl :: www.conplus.it :: info@conplus.it :: Via Morgagni, 4/A 37135 Verona :: Tel. +39 045 580 491 :: Fax 045 82 78 722 PMF Web-Service Quick-Start Guide Guida Introduttiva Cliente Redatto da Francesco Buratto Redatto il 01 gennaio 2011 Riferimento PMF 2011 Introduzione PMFWS è un web-service HTTP che espone un interfaccia

Dettagli

QUALIFICAZIONE DELLA PORTA DI DOMINIO

QUALIFICAZIONE DELLA PORTA DI DOMINIO QUALIFICAZIONE DELLA PORTA DI DOMINIO IN MODALITÀ PROVVISORIA Versione 1.0 Qualificazione della Porta di INDICE 1. PROCESSO DI QUALIFICAZIONE DELLA PORTA DI DOMINIO IN MODALITÀ PROVVISORIA 3 2. DESCRIZIONE

Dettagli

Infrastruttura per la Cooperazione Applicativa - C.A.R.T.

Infrastruttura per la Cooperazione Applicativa - C.A.R.T. Infrastruttura per la Cooperazione Applicativa - C.A.R.T. Linee guida per lo sviluppo dei proxy applicativi page 1/36 Indice 1 Introduzione... 5 1.1Scopo... 5 1.2Acronimi e Abbreviazioni... 5 2Linee guide

Dettagli

PDD Developer Guide. Versione 1.0 del 25/08/2009

PDD Developer Guide. Versione 1.0 del 25/08/2009 PDD Developer Guide Versione 1.0 del 25/08/2009 Sommario 1 Introduzione... 4 1.1 Contesto... 4 1.2 Obiettivo... 4 1.3 Riferimenti... 4 1.4 Porta di Dominio... 4 2 Porta di Dominio Spicca... 5 2.1 Porte

Dettagli

Architettura Connettore Alfresco Share

Architettura Connettore Alfresco Share Direzione Sistemi Informativi Portale e Orientamento Allegato n. 2 al Capitolato Tecnico Indice Architettura Connettore Alfresco Share 1. Architettura del Connettore... 3 1.1 Componente ESB... 4 1.2 COMPONENTE

Dettagli

Client e Server comunicano tramite il protocollo SOAP.

Client e Server comunicano tramite il protocollo SOAP. In questo tutorial implementeremo un semplice SOAP web service in PHP che un client Java richiamerà. In questo modo mostreremo l'interoperabilità fra linguaggi diversi che SOAP permette di avere. La struttura

Dettagli

Laboratorio di Sistemi Distribuiti

Laboratorio di Sistemi Distribuiti Laboratorio di Sistemi Distribuiti Bianchi Marco Univ. Roma Tor Vergata December 6, 2006 Bianchi Marco (Univ. Roma Tor Vergata) Laboratorio di Sistemi Distribuiti December 6, 2006 1 / 29 SOAP (2/2) 1 Gestione

Dettagli

Certificazione di Proxy Applicativi e di applicazioni e servizi di cooperazione di Sistemi Informativi Locali

Certificazione di Proxy Applicativi e di applicazioni e servizi di cooperazione di Sistemi Informativi Locali Certificazione di Proxy Applicativi e di applicazioni e servizi di cooperazione di Sistemi Informativi Locali Ver. 1.0 11 Gennaio 2006 Riferimenti Documentazione CART - Regione Toscana [RT-PDK] Proxy Developer

Dettagli

Activation In sintesi: è inutile avere attivi degli oggetti se non vengono utilizzati

Activation In sintesi: è inutile avere attivi degli oggetti se non vengono utilizzati Activation In generale i Sistemi ad oggetti distribuiti sono progettati per lavorare con oggetti persistenti. Dato che questi sistemi saranno composti da migliaia (forse milioni) di tali oggetti, sarebbe

Dettagli

Programmazione su Reti

Programmazione su Reti Programmazione su Reti Esempio di applicazione Client Server su protocollo Soap Fabio Donatantonio Applicazione Applicazione Client-Server per la gestione di un elenco di persone con relativi dati. Viene

Dettagli

Gli XML Web Service. Prof. Mauro Giacomini. Complementi di Informatica Medica 2008/2009 1

Gli XML Web Service. Prof. Mauro Giacomini. Complementi di Informatica Medica 2008/2009 1 Gli XML Web Service Prof. Mauro Giacomini Medica 2008/2009 1 Definizioni i i i Componente.NET che risponde a richieste HTTP formattate tramite la sintassi SOAP. Gestori HTTP che intercettano richieste

Dettagli

Web Service SOAP e WSDL. Tito Flagella tito@link.it Lorenzo Nardi nardi80@gmail.com

Web Service SOAP e WSDL. Tito Flagella tito@link.it Lorenzo Nardi nardi80@gmail.com Web Service SOAP e WSDL Tito Flagella tito@link.it Lorenzo Nardi nardi80@gmail.com SOAP Originariamente: Simple Object Access Protocol E poi evoluto in un Framework per lo scambio di messaggi in XML 2

Dettagli

Il Gestore Eventi di OpenSPCoop i. Il Gestore Eventi di OpenSPCoop

Il Gestore Eventi di OpenSPCoop i. Il Gestore Eventi di OpenSPCoop i Il Gestore Eventi di OpenSPCoop ii Copyright 2005-2011 Link.it srl iii Indice 1 Introduzione 1 2 Configurazione di un Servizio SPCoop come Evento gestito dal GE 2 3 Configurazione di un Pubblicatore

Dettagli

Progetto interregionale ICAR Interoperabilità e Cooperazione Applicativa tra le Regioni.

Progetto interregionale ICAR Interoperabilità e Cooperazione Applicativa tra le Regioni. <Task AP3> Progetto interregionale ICAR Interoperabilità e Cooperazione Applicativa tra le Regioni AP3-Documento Descrittivo degli Accordi di Servizio Versione AP3-specificaADSv1.2.1.doc Pag. 1

Dettagli

19. Introduzione al multi-threading

19. Introduzione al multi-threading 19. Introduzione al multi-threading Marco Faella Dip. Ing. Elettrica e Tecnologie dell'informazione Università di Napoli Federico II Corso di Linguaggi di Programmazione II I thread I thread, o processi

Dettagli

Tutorial di configurazione e programmazione di OpenSPCoop. Tutorial di configurazione e programmazione di OpenSPCoop

Tutorial di configurazione e programmazione di OpenSPCoop. Tutorial di configurazione e programmazione di OpenSPCoop i Tutorial di configurazione e programmazione di OpenSPCoop ii Copyright 2005-2008 Link.it s.r.l. iii COLLABORATORI TITOLO : Tutorial di configurazione e programmazione di OpenSPCoop AZIONE NOME DATA FIRMA

Dettagli

SPECIFICHE TECNICHE INTEGRAZIONE SERVIZI MUDE

SPECIFICHE TECNICHE INTEGRAZIONE SERVIZI MUDE Pag. 1 di 11 VERIFICHE E APPROVAZIONI VERSIONE REDAZIONE CONTROLLO AUTORIZZAZIONE APPROVAZIONE EMISSIONE NOME DATA NOME DATA NOME DATA V01 Mauro Pavese 17/05/12 Mauro Pavese 29/11/2012 STATO DELLE VARIAZIONI

Dettagli

Sistemi Operativi (modulo di Informatica II)

Sistemi Operativi (modulo di Informatica II) Sistemi Operativi (modulo di Informatica II) La comunicazione tra processi Patrizia Scandurra Università degli Studi di Bergamo a.a. 2008-09 Sommario Processi cooperanti La comunicazione tra processi Necessità

Dettagli

Laboratorio di RETI DI CALCOLATORI

Laboratorio di RETI DI CALCOLATORI Laboratorio di RETI DI CALCOLATORI A.A. 2009-2010 I WEB SERVICES Carlo Mastroianni Laboratorio di Reti di Calcolatori - Orario lunedì, 11:30-13:30, aula 40B mercoledì, 10:00-11:30, laboratorio settimo

Dettagli

Il Web-Service SDMX dell ISTAT

Il Web-Service SDMX dell ISTAT Il Web-Service SDMX dell ISTAT Versione: 1.0.0 Data: 26/06/2014 Autore: Approvato da: Modifiche Versione Modifiche Autore Data Indice dei contenuti 1 Introduzione... 4 2 Esempio d uso... 5 2.1 Riferimento

Dettagli

Java Remote Method Invocation

Java Remote Method Invocation Java Remote Method Invocation Programmazione in Rete e Laboratorio Comunicazione distribuita Port1 Java VM1 Java VM2 Port 2 Matteo Baldoni Dipartimento di Informatica Universita` degli Studi di Torino

Dettagli

Gli EJB offrono vari vantaggi allo sviluppatore di una applicazione

Gli EJB offrono vari vantaggi allo sviluppatore di una applicazione Gli EJB offrono vari vantaggi allo sviluppatore di una applicazione Un ambiente di esecuzione che gestisce o naming di oggetti, sicurezza, concorrenza, transazioni, persistenza, distribuzione oggetti (location

Dettagli

createsession existssession alivesession deletesession deleteallsession getcredit getcreditsubaccount addtransactionsubaccount addsubaccount

createsession existssession alivesession deletesession deleteallsession getcredit getcreditsubaccount addtransactionsubaccount addsubaccount PROTOCOLLO DI INVIO SOAP SOAP è un protocollo per lo scambio di messaggi basato su protocollo HTTP e scambio dei dati in XML, quindi disponibile per qualsiasi piattaforma/linguaggio di programmazione,

Dettagli

I Servizi dell'architettura Web Services. Tito Flagella tito@link.it Lorenzo Nardi nardi80@gmail.com

I Servizi dell'architettura Web Services. Tito Flagella tito@link.it Lorenzo Nardi nardi80@gmail.com I Servizi dell'architettura Web Services Tito Flagella tito@link.it Lorenzo Nardi nardi80@gmail.com La struttura del messaggio SOAP Un messaggio SOAP consiste di: Envelope, identifica il contenuto del

Dettagli

Laboratorio di Sistemi Distribuiti Leonardo Mariani

Laboratorio di Sistemi Distribuiti Leonardo Mariani Laboratorio di Sistemi Distribuiti Leonardo Mariani ELECTION ALGORITHMS In molti sistemi distribuiti un processo deve agire da (o svolgere un ruolo particolare) per gli altri processi. Spesso non è importante

Dettagli

Mobilità di Codice. Massimo Merro Programmazione di Rete 128 / 144

Mobilità di Codice. Massimo Merro Programmazione di Rete 128 / 144 Mobilità di Codice Abbiamo già visto come un dato host possa trasmettere un oggetto (serializzabile) ad un altro host. Quest ultimo potrà eseguire l oggetto pur non possedendo il bytecode della classe

Dettagli

MONITORAGGIO UNITARIO PROGETTI 2007/2013 PROTOCOLLO DI COLLOQUI ANALISI ATTIVAZIONE SERVIZIO IGRUE IN SPCOOP. Link.it srl - Analisi Servizio IGRUE 1

MONITORAGGIO UNITARIO PROGETTI 2007/2013 PROTOCOLLO DI COLLOQUI ANALISI ATTIVAZIONE SERVIZIO IGRUE IN SPCOOP. Link.it srl - Analisi Servizio IGRUE 1 MONITORAGGIO UNITARIO PROGETTI 2007/2013 PROTOCOLLO DI COLLOQUI ANALISI ATTIVAZIONE SERVIZIO IGRUE IN SPCOOP Link.it srl - Analisi Servizio IGRUE 1 Panoramica L'attuale sistema IGRUE è composto da: Il

Dettagli

Enterprise @pplication Integration Software S.r.l.

Enterprise @pplication Integration Software S.r.l. SAP rel.1.0 : SAP State: Final Date: 03-27-200 Enterprise @pplication Integration Software S.r.l. Sede legale: Via Cola di Rienzo 212-00192 Rome - Italy Tel. +39.06.6864226 Sede operativa: viale Regina

Dettagli

Definizione delle interfacce di colloquio fra le componenti

Definizione delle interfacce di colloquio fra le componenti Definizione delle interfacce di colloquio fra le componenti 1 DOCUMENTO:. v 1.1 Emesso da: EMISSIONE VERIFICA APPROVAZIONE Nome Luca Menegatti firma Verificato da: Giancarlo Savoia Approvato da: Angelo

Dettagli

Release Notes di OpenSPCoop2. Release Notes di OpenSPCoop2

Release Notes di OpenSPCoop2. Release Notes di OpenSPCoop2 Release Notes di OpenSPCoop2 i Release Notes di OpenSPCoop2 Release Notes di OpenSPCoop2 ii Copyright 2005-2015 Link.it srl Release Notes di OpenSPCoop2 iii Indice 1 Versione 2.1 1 1.1 Gestione del protocollo

Dettagli

Seminario di Sistemi Distribuiti: RPC su SOAP

Seminario di Sistemi Distribuiti: RPC su SOAP Corso di Sistemi Distribuiti Prof. S. Balsamo Seminario di Sistemi Distribuiti: RPC su SOAP [ 777775] 1 INTRODUZIONE 3 2 RPC 3 3 SOAP (SIMPLE OBJECT ACCESS PROTOCOL) 3 4 UTILIZZO DI SOAP COME PROTOCOLLO

Dettagli

Specifiche di invocazione del sistema di monitoraggio e controllo servizi CART

Specifiche di invocazione del sistema di monitoraggio e controllo servizi CART Regione Toscana Specifiche di invocazione del sistema di monitoraggio e controllo servizi CART Stato del documento Definitiva Versione del documento 1.8 Data 29/05/13 Documento Acronimo del documento Specifiche

Dettagli

SMS API. Documentazione Tecnica YouSMS SOAP API. YouSMS Evet Limited 2015 http://www.yousms.it

SMS API. Documentazione Tecnica YouSMS SOAP API. YouSMS Evet Limited 2015 http://www.yousms.it SMS API Documentazione Tecnica YouSMS SOAP API YouSMS Evet Limited 2015 http://www.yousms.it INDICE DEI CONTENUTI Introduzione... 2 Autenticazione & Sicurezza... 2 Username e Password... 2 Connessione

Dettagli

La Fatturazione Elettronica con la PdD OpenSPCoop

La Fatturazione Elettronica con la PdD OpenSPCoop La Fatturazione Elettronica con la PdD OpenSPCoop del Proxy FatturaPA Link.it v1.0 del 7/11/2014 Indice 1 Premessa...3 2 Il contesto di riferimento...3 3 La Fatturazione Passiva...5 3.1 Scenari di utilizzo...6

Dettagli

Organizzazione della lezione. 15. Java Remote Method Invocation (3) Lo schema del Factory Design Pattern - 1. Factory design pattern

Organizzazione della lezione. 15. Java Remote Method Invocation (3) Lo schema del Factory Design Pattern - 1. Factory design pattern Organizzazione della lezione 15. Java Remote Method Invocation (3) Vittorio Scarano Corso di Programmazione Distribuita Laurea di I livello in Informatica Università degli Studi di Salerno Il design pattern

Dettagli

Introduzione al linguaggio Java: Servlet e JSP

Introduzione al linguaggio Java: Servlet e JSP Introduzione al linguaggio Java: Servlet e JSP Corso di Gestione della Conoscenza d Impresa A. A. 2006/2007 Dipartimento di Informatica Università degli Studi di Bari 1 Servlet e JSP: il contesto Un applicazione

Dettagli

REGIONE BASILICATA DIPARTIMENTO INFRASTRUTTURE, OO.PP. E MOBILITA

REGIONE BASILICATA DIPARTIMENTO INFRASTRUTTURE, OO.PP. E MOBILITA REGIONE BASILICATA DIPARTIMENTO INFRASTRUTTURE, OO.PP. E MOBILITA Ufficio Difesa del Suolo di Potenza INTEROPERABILITÀ E COOPERAZIONE APPLICATIVA Informatizzazione dell iter procedurale e dei controlli

Dettagli

Programmazione Java Avanzata

Programmazione Java Avanzata Programmazione Java Avanzata Introduzione a Servlet e Struts 2 Ing. Giuseppe D'Aquì 1 Testi Consigliati Java Enterprise in a nutshell, 3 rd edition (O'Reilly) Struts 2 in Action Brown, Davis, Stanlick

Dettagli

Processi BPEL. Obiettivi

Processi BPEL. Obiettivi Università degli studi di Roma Tor Vergata Facoltà di Ingegneria Processi BPEL Corso di Sistemi Distribuiti Stefano Iannucci Anno accademico 2009/10 Email: sd@chmod.it Obiettivi Esercitazione pratica su:

Dettagli

SISTEMI OPERATIVI. Sincronizzazione dei processi. Domande di verifica. Luca Orrù Centro Multimediale Montiferru 30/05/2007

SISTEMI OPERATIVI. Sincronizzazione dei processi. Domande di verifica. Luca Orrù Centro Multimediale Montiferru 30/05/2007 2007 SISTEMI OPERATIVI Sincronizzazione dei processi Domande di verifica Luca Orrù Centro Multimediale Montiferru 30/05/2007 Sincronizzazione dei processi 1. Si descrivano i tipi di interazione tra processi?

Dettagli

Session tracking Session tracking HTTP: è stateless, cioè non permette di associare una sequenza di richieste ad un dato utente. Ciò vuol dire che, in generale, se un browser richiede una specifica pagina

Dettagli

Specifica i tipi di oggetti a creare, utilizzando un istanza prototipo, e crea nuove istanze tramite la copia di questo prototipo.

Specifica i tipi di oggetti a creare, utilizzando un istanza prototipo, e crea nuove istanze tramite la copia di questo prototipo. Prototype 28 4. Prototype (GoF pag. 117) 4.1. Descrizione 4.2. Esempio Specifica i tipi di oggetti a creare, utilizzando un istanza prototipo, e crea nuove istanze tramite la copia di questo prototipo.

Dettagli

Web Services Dogane LINEE GUIDA

Web Services Dogane LINEE GUIDA Web Services Dogane LINEE GUIDA Pagina 1 di 17 Indice Indice... 2 1. INTRODUZIONE... 3 2. TEST FUNZIONALI SUI WEB SERVICES... 8 3. SICUREZZA... 14 4. FIRMA... 14 5. TRASFORMAZIONE CERTIFICATO DI FIRMA...

Dettagli

Connessione ad internet

Connessione ad internet Introduzione al C++ Connessione ad internet Istruzioni per la connessione internet: - una volta connessi, aprire un browser (firefox) - in Modifica/preferenze/avanzate/rete/impostazioni - attivare la modalità

Dettagli

Release Notes di OpenSPCoop2. Release Notes di OpenSPCoop2

Release Notes di OpenSPCoop2. Release Notes di OpenSPCoop2 i Release Notes di OpenSPCoop2 ii Copyright 2005-2014 Link.it srl iii Indice 1 Novità di OpenSPCoop-v2 rispetto ad OpenSPCoop 1 1.1 Protocollo di Cooperazione personalizzabile tramite plugin.............................

Dettagli

Introduzione alle applicazioni di rete

Introduzione alle applicazioni di rete Introduzione alle applicazioni di rete Definizioni base Modelli client-server e peer-to-peer Socket API Scelta del tipo di servizio Indirizzamento dei processi Identificazione di un servizio Concorrenza

Dettagli

Concetti fondamentali

Concetti fondamentali Node.js Concetti fondamentali by Stefano Burigat Esecuzione asincrona Quasi tutte le funzioni in node vengono eseguite in modo asincrono (a tal punto che molte funzioni hanno una versione sincrona che

Dettagli

RMI. Java RMI RMI. G. Prencipe prencipe@di.unipi.it

RMI. Java RMI RMI. G. Prencipe prencipe@di.unipi.it Java Remote Method Invocation -- RMI G. Prencipe prencipe@di.unipi.it RMI RMI è una tecnologia JAVA che permette a una JVM di comunicare con un altra JVM per farle eseguire metodi È possibile che oggetti

Dettagli

Web Services Security

Web Services Security Web Services Security Introduzione ai Web Services Davide Marrone Sommario Cosa sono i web services Architettura dei web services XML-RPC SOAP (Simple Object Access Protocol) WSDL (Web Services Description

Dettagli

Software per la gestione di musei di arte contemporanea1

Software per la gestione di musei di arte contemporanea1 Software per la gestione di musei di arte contemporanea1 Identificativo del progetto: CA Nome documento: System Design(SD) Identificativo del documento: 6 CA_SD_E1_R1 Data del documento: 21/05/2012 Prima

Dettagli

Servlet API. Programmazione in Ambienti Distribuiti A.A. 2003-04

Servlet API. Programmazione in Ambienti Distribuiti A.A. 2003-04 Servlet API Programmazione in Ambienti Distribuiti A.A. 2003-04 Servlet Interfaccia Java che modella il paradigma richiesta/elaborazione/risposta tipico delle applicazioni lato server Presuppone l esistenza

Dettagli

Java Web Services. Uso di Eclipse e Apache Axis

Java Web Services. Uso di Eclipse e Apache Axis Java Web Services Uso di Eclipse e Apache Axis 1 Gli strumenti utili per iniziare Axis (Web Service tool) Eclipse (IDE di sviluppo) Tomcat (servlet/jsp container) N.B. Eclipse e Tomcat possono essere sostituiti

Dettagli

Classificazione dei Web Services

Classificazione dei Web Services Web Services Programmazione in ambienti distribuiti Anno 2004-2005 Claudio Zunino Classificazione dei Web Services Interattiva il client è umano ed utilizza tipicamente un web browser Sviluppati usando

Dettagli

Seminario di Sistemi Distribuiti RPC su SOAP

Seminario di Sistemi Distribuiti RPC su SOAP Seminario di Sistemi Distribuiti RPC su SOAP Massimiliano Vivian [777775] Massimiliano Vivian 1 Introduzione La comunicazione delle informazioni è l elemento fondamentale per lo sviluppo dei sistemi. SOAP

Dettagli

fornitore di servizi utente all interazione tra utenti e sistemi

fornitore di servizi utente all interazione tra utenti e sistemi WEB SERVICES Successo del Web Negli anni passati il Web ha avuto un enorme successo principalmente per due motivi: Semplicità: Ubiquità Per un fornitore di servizi è semplice raggiungere un numero molto

Dettagli

Astrazioni sul controllo. Iteratori

Astrazioni sul controllo. Iteratori Astrazioni sul controllo Iteratori Nuove iterazioni Definendo un nuovo tipo come collezione di oggetti (p. es., set) si vorrebbe disporre anche di un operazione che consenta cicli (iterazioni) Es.: gli

Dettagli

Marco Faella Classi enumerate

Marco Faella Classi enumerate Marco Faella Classi enumerate 22 Lezione n. Parole chiave: Java Corso di Laurea: Informatica Insegnamento: Linguaggi di Programmazione II Email Docente: faella.didattica@gmail.com A.A. 2009-2010 Il problema

Dettagli

PORTA DI DOMINIO. Sistema pubblico di cooperazione: Versione 1.0. Sistema Pubblico di Connettività e Cooperazione

PORTA DI DOMINIO. Sistema pubblico di cooperazione: Versione 1.0. Sistema Pubblico di Connettività e Cooperazione Sistema Pubblico di Connettività e Cooperazione Sistema pubblico di cooperazione: PORTA DI DOMINIO Versione 1.0 Nome doc.: oop-portadominio_v1.0_20051014.doc Versione: 1.0 Data emissione: 14 ottobre 2005

Dettagli

SOAP e Web Services. SOAP: introduzione

SOAP e Web Services. SOAP: introduzione SOAP e Web Services 1 SOAP: introduzione Attualmente le applicazioni distribuite rappresentano una grossa parte della produzione software. Inoltre lo sviluppo di Internet e delle Intranet rende utile creare

Dettagli

Progettazione: Tecnologie e ambienti di sviluppo

Progettazione: Tecnologie e ambienti di sviluppo Contratto per l acquisizione di servizi di Assistenza specialistica per la gestione e l evoluzione del patrimonio software della Regione Basilicata. Repertorio n. 11016 del 25/09/2009 Progettazione: Tecnologie

Dettagli

Programmabilità di rete con l'infrastruttura Cisco basata sulle applicazioni

Programmabilità di rete con l'infrastruttura Cisco basata sulle applicazioni White paper Programmabilità di rete con l'infrastruttura Cisco basata sulle applicazioni Panoramica Questo documento analizza il supporto alla programmabilità nell'infrastruttura ACI (Application Centric

Dettagli

SMS IN. Rules SMS IN. Rules. Geodrop. Geodrop

SMS IN. Rules SMS IN. Rules. Geodrop. Geodrop SMS IN Rules SMS IN Rules } Geodrop Geodrop SMS In 2.3 Regole per la manipolazione dei messaggi Guida alla scrittura di condizioni complesse Guida alle condizioni complesse v1.0-it, 7 Dicembre 2012 Indice

Dettagli

I Servizi dell'architettura Web Services. Tito Flagella tito@link.it Lorenzo Nardi nardi80@gmail.com

I Servizi dell'architettura Web Services. Tito Flagella tito@link.it Lorenzo Nardi nardi80@gmail.com I Servizi dell'architettura Web Services Tito Flagella tito@link.it Lorenzo Nardi nardi80@gmail.com La struttura del messaggio SOAP Un messaggio SOAP consiste di: Envelope, identifica il contenuto del

Dettagli

Manuale di Integrazione sistema di pagamento JPayGate-RAS

Manuale di Integrazione sistema di pagamento JPayGate-RAS sistema di pagamento JPayGate-RAS Data: 09/12/09 File: Manuale di integrazione sistema di pagamento JPayGate-RAS.doc Versione: Redazione: Sardegna IT Sistema di Sommario Introduzione... 3 Descrizione del

Dettagli

Lezione 5: Socket SSL/ TLS. Corso di Programmazione in Rete Laurea Magistrale in Ing. Informatica Università degli Studi di Salerno

Lezione 5: Socket SSL/ TLS. Corso di Programmazione in Rete Laurea Magistrale in Ing. Informatica Università degli Studi di Salerno Lezione 5: Socket SSL/ TLS Corso di Programmazione in Rete Laurea Magistrale in Ing. Informatica Università degli Studi di Salerno 1 Outline Introduzione Gestione delle chiavi e dei certificati Comunicazione

Dettagli

Il linguaggio C# Eventi ed eccezioni

Il linguaggio C# Eventi ed eccezioni Tecniche di Programmazione avanzata Corso di Laurea Specialistica in Ingegneria Telematica Università Kore Enna A.A. 2009-2010 Alessandro Longheu http://www.diit.unict.it/users/alongheu alessandro.longheu@diit.unict.it

Dettagli

Linguaggio Java. Robusto. Orientato agli oggetti. Protegge e gestisce dagli errori. Non permette costrutti pericolosi

Linguaggio Java. Robusto. Orientato agli oggetti. Protegge e gestisce dagli errori. Non permette costrutti pericolosi Linguaggio Java Robusto Non permette costrutti pericolosi Eredità Multipla Gestione della Memoria Orientato agli oggetti Ogni cosa ha un tipo Ogni tipo è un oggetto (quasi) Protegge e gestisce dagli errori

Dettagli

Programmazione ad Oggetti Modulo A (Esame del 11/9/2015)

Programmazione ad Oggetti Modulo A (Esame del 11/9/2015) Programmazione ad Oggetti Modulo A (Esame del 11/9/2015) Esercizio 1 Considerate la seguente gerarchia di classi: class A { public void print(string s) { System.out.println(s); public void m1() { print("a.m1");

Dettagli

Laboratorio di reti II: Java Server Pages

Laboratorio di reti II: Java Server Pages Laboratorio di reti II: Java Server Pages Stefano Brocchi brocchi@dsi.unifi.it 6 aprile, 2009 Stefano Brocchi Laboratorio di reti II: Java Server Pages 6 aprile, 2009 1 / 34 JSP - Java Server Pages Le

Dettagli

Sommario. G. Piscitelli

Sommario. G. Piscitelli Sommario Interprocess Communication Processi (e thread) cooperanti Il paradigma produttore-consumatore Shared Memory e Inter Process Communication (IPC) facility Proprietà caratteristiche della comunicazione

Dettagli

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) 12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica,

Dettagli

ProgettoSMS. Manuale Gateway Web Services

ProgettoSMS. Manuale Gateway Web Services ProgettoSMS Manuale Gateway Web Services Indice Indice... 2 Introduzione... 3 http Web Services... 4 Risposta... 4 Descrizione delle costanti... 5 AnswerRecipientType... 5 ErrorID... 5 ProtocolType...

Dettagli

Approfondimento. Web Services

Approfondimento. Web Services Approfondimento Web Services Esame di Programmazione per il Web Fedele Ladisa INDICE Capitolo 1. Introduzione 1.1 Introduzione ai Web Services 1.2 Architettura dei Web Services 1.3 Stack protocollare di

Dettagli

Applicazioni web. Parte 5 Socket

Applicazioni web. Parte 5 Socket Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Applicazioni web Parte 5 Michele Tomaiuolo tomamic@ce.unipr.it Protocolli Internet I computer

Dettagli

Tecnologie Web L-A. Java e HTTP. Dario Bottazzi Tel. 051 2093541, E-Mail: dario.bottazzi@unibo.it, SkypeID: dariobottazzi. Java e TCP/IP in a Nutshell

Tecnologie Web L-A. Java e HTTP. Dario Bottazzi Tel. 051 2093541, E-Mail: dario.bottazzi@unibo.it, SkypeID: dariobottazzi. Java e TCP/IP in a Nutshell Tecnologie Web L-A Java e HTTP Dario Bottazzi Tel. 051 2093541, E-Mail: dario.bottazzi@unibo.it, SkypeID: dariobottazzi Java e TCP/IP in a Nutshell! java.net.inetaddress: rappresenta un indirizzo IP e

Dettagli

Oggetto: MASTER DI ALTA FORMAZIONE PROFESSIONALE IN PROGRAMMATORE JAVA PARTECIPAZIONE GRATUITA

Oggetto: MASTER DI ALTA FORMAZIONE PROFESSIONALE IN PROGRAMMATORE JAVA PARTECIPAZIONE GRATUITA Oggetto: MASTER DI ALTA FORMAZIONE PROFESSIONALE IN PROGRAMMATORE JAVA PARTECIPAZIONE GRATUITA Salerno Formazione, società operante nel settore della didattica, della formazione professionale e certificata

Dettagli