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

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

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

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 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Portale regionale della Salute. Servizi di prenotazione prestazione e pagamento ticket.

Portale regionale della Salute. Servizi di prenotazione prestazione e pagamento ticket. Portale regionale della Salute Servizi di prenotazione prestazione e pagamento ticket. Specifiche di integrazione dei servizi di cooperazione applicativa e dei web services. Versione 1.10 16 Ottobre 2013

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

Spring WS Sviluppare WebService in Java

Spring WS Sviluppare WebService in Java Spring WS Sviluppare WebService in Java 1.1 Introduzione Nell ambito della programmazione Java è particolarmente utile avere una certa familiarità con i WebService e la tecnologia che li supporta. In particolare

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

Manuale di Integrazione IdM-RAS

Manuale di Integrazione IdM-RAS IdM-RAS Data: 30/11/09 File: Manuale di integrazione IdM-RAS.doc Versione: Redazione: Sardegna IT IdM-RAS Sommario 1 Introduzione... 3 2 Architettura del sistema... 4 2.1 Service Provider... 4 2.2 Local

Dettagli

UDP. Livello di Trasporto. Demultiplexing dei Messaggi. Esempio di Demultiplexing

UDP. Livello di Trasporto. Demultiplexing dei Messaggi. Esempio di Demultiplexing a.a. 2002/03 Livello di Trasporto UDP Descrive la comunicazione tra due dispositivi Fornisce un meccanismo per il trasferimento di dati tra sistemi terminali (end user) Prof. Vincenzo Auletta auletta@dia.unisa.it

Dettagli

Programmazione server-side: Java Servlet

Programmazione server-side: Java Servlet Programmazione server-side: Java Servlet Corso di Applicazioni Telematiche A.A. 2006-07 Lezione n.11 parte II Prof. Roberto Canonico Università degli Studi di Napoli Federico II Facoltà di Ingegneria Cos

Dettagli

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

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

Dettagli

Programmazione di sistemi distribuiti

Programmazione di sistemi distribuiti Programmazione di sistemi distribuiti I Sistemi Distribuiti, per loro natura, prevedono che computazioni differenti possano essere eseguite su VM differenti, possibilmente su host differenti, comunicanti

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

ProgettAzione V anno Unità 3 - Architetture per applicazioni web Lezione: Esempio sviluppo applicazioni

ProgettAzione V anno Unità 3 - Architetture per applicazioni web Lezione: Esempio sviluppo applicazioni Unità 3 - Architetture per applicazioni web Lezione: Esempio sviluppo applicazioni Web service Hello world con Visual Studio 2012 Si tratta di un semplice esempio di web service, infatti come tutti I programmi

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

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

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione XML: JDOM versione 2.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G.

Dettagli

Il Protocollo HTTP e la programmazione di estensioni Web

Il Protocollo HTTP e la programmazione di estensioni Web Il Protocollo HTTP e la programmazione di estensioni Web 1 Il protocollo HTTP È il protocollo standard inizialmente ramite il quale i server Web rispondono alle richieste dei client (prevalentemente browser);

Dettagli

Connessioni di rete. Progetto di reti di Calcolatori e Sistemi Informatici - Stefano Millozzi. PdR_09010 - Stefano Millozzi

Connessioni di rete. Progetto di reti di Calcolatori e Sistemi Informatici - Stefano Millozzi. PdR_09010 - Stefano Millozzi Connessioni di rete Progetto di reti di Calcolatori e Sistemi Informatici - Stefano Millozzi 1 Socket orientato alla connessione o non orientato alla connessione 2 Socket in astratto 3 Socket modalità

Dettagli

NAL DI STAGING. Versione 1.0

NAL DI STAGING. Versione 1.0 NAL DI STAGING Versione 1.0 14/10/2008 Indice dei Contenuti 1. Introduzione... 3 2. Installazione NAL di staging... 3 VMWare Server... 3 Preistallazione su server linux... 6 Preinstallazione su server

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

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

Specifiche Tecnico-Funzionali

Specifiche Tecnico-Funzionali AuthSIAR - Modulo di Autenticazione e Autorizzazione Sardegna IT S.r.l. Analisi Tecnico-Funzionale Assessorato all Agricoltura della Regione Sardegna SIAR Sistema Informativo Agricolo Regionale AuthSIAR

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

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

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

Il Registro dei Servizi di OpenSPCoop i. Il Registro dei Servizi di OpenSPCoop

Il Registro dei Servizi di OpenSPCoop i. Il Registro dei Servizi di OpenSPCoop i Il Registro dei Servizi di OpenSPCoop ii Copyright 2005-2011 Link.it srl iii Indice 1 Introduzione 1 2 Visualizzazione del registro dei servizi HTTP 1 3 Visualizzazione del registro dei servizi UDDI

Dettagli

WEB SERVICES SERVIZI PER RICEZIONE ED ELABORAZIONE MESSAGGI AMBIENTE PROVA

WEB SERVICES SERVIZI PER RICEZIONE ED ELABORAZIONE MESSAGGI AMBIENTE PROVA Pag. 1 di 16 WEB SERVICES SERVIZI PER RICEZIONE ED ELABORAZIONE MESSAGGI AMBIENTE PROVA Pag. 1 di 16 Pag. 2 di 16 1 GENERALITÀ... 3 1.1 CANALI DI COMUNICAZIONE DEI SISTEMI... 3 2 SOA DOMINIO ESTERNO...

Dettagli

Concetti Base Eccezioni Eccezioni e Metodi Gerarchia di Eccezioni. Java: Eccezioni. Damiano Macedonio

Concetti Base Eccezioni Eccezioni e Metodi Gerarchia di Eccezioni. Java: Eccezioni. Damiano Macedonio Dipartimento di Informatica, Università degli Studi di Verona Corso di Programmazione per Bioformatica lezione del 30 maggio 2014 Introduzione Un programma diviso in sezioni distinte Un approccio alla

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

PROGETTO WEB SERVICES DOGANE SERVIZI PER RICEZIONE ED ELABORAZIONE MESSAGGI AMBIENTE REALE

PROGETTO WEB SERVICES DOGANE SERVIZI PER RICEZIONE ED ELABORAZIONE MESSAGGI AMBIENTE REALE Pag. 1 di 12 PROGETTO WEB SERVICES DOGANE SERVIZI PER RICEZIONE ED ELABORAZIONE MESSAGGI AMBIENTE REALE Pag. 1 di 12 Pag. 2 di 12 1 GENERALITÀ... 3 1.1 CANALI DI COMUNICAZIONE DEI SISTEMI... 3 2 SOA DOMINIO

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

INDICE. Indice. Introduzione

INDICE. Indice. Introduzione V Indice Introduzione XIII Capitolo 1 La programmazione multithread 1 1.1 Cosa sono i thread 2 Utilizzare i thread per dare una possibilità ad altri task 9 Avvio ed esecuzione dei thread 10 Esecuzione

Dettagli

Consolidamento e sviluppo CART

Consolidamento e sviluppo CART Nome del progetto Consolidamento e sviluppo CART Acronimo del progetto TOSCART Documento Manuale interfaccia monitoraggio Acronimo del documento TOSCART-TEC-INTWEB-PMC Stato del documento Definitivo Versione

Dettagli

Sistemi Operativi. Lez. 13: primitive per la concorrenza monitor e messaggi

Sistemi Operativi. Lez. 13: primitive per la concorrenza monitor e messaggi Sistemi Operativi Lez. 13: primitive per la concorrenza monitor e messaggi Osservazioni I semafori sono strumenti particolarmente potenti poiché consentono di risolvere ogni problema di sincronizzazione

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

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

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

Laurea Specialistica in Informatica, Tecnologie Informatiche Anno Accademico 2008/2009 Reti Applicazioni e Servizi

Laurea Specialistica in Informatica, Tecnologie Informatiche Anno Accademico 2008/2009 Reti Applicazioni e Servizi Laurea Specialistica in Informatica, Tecnologie Informatiche Anno Accademico 2008/2009 Reti Applicazioni e Servizi Implementazione di una MIDlet che realizza un sistema di voto Christian Tiralosi Sviluppatori:

Dettagli

Programmazione Java Avanzata Concetti su Java

Programmazione Java Avanzata Concetti su Java Programmazione Java Avanzata Concetti su Java Ing. Giuseppe D'Aquì Testi di Riferimento Java ( R. Liguori, P. Liguori), O'Reilly Hops Tecniche Nuove (2008) Java Virtual Machine Il codice scritto in Java

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

Web Service medra per la gestione DOI

Web Service medra per la gestione DOI Web Service medra per la gestione DOI Versione documento: 1.0 Data creazione: 23 dicembre 2010 Data ultima modifica: 14 maggio 2012 1. Introduzione...2 2. medra WS...2 2.1. Operation UPLOAD...2 2.2. Operation

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

DESIGN PATTERNS Parte 6. State Proxy

DESIGN PATTERNS Parte 6. State Proxy DESIGN PATTERNS Parte 6 State Proxy STATE Il Design Pattern State nasce dall'esigenza di poter gestire gli stati di una classe senza dover usare dei costrutti come gli Enum e quindi delle switch. Prendiamo

Dettagli

Organizzazione della lezione. Lezione 18 Remote Method Invocation - 6. (con callback) L accesso al registry per il rebind()

Organizzazione della lezione. Lezione 18 Remote Method Invocation - 6. (con callback) L accesso al registry per il rebind() Organizzazione della lezione Lezione 18 Remote Method Invocation - 6 Vittorio Scarano Corso di Programmazione Distribuita (2003-2004) Laurea di I livello in Informatica Università degli Studi di Salerno

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

PC/CSA. Manuale di utilizzo del PC/CSA Specifiche tecniche per lo scarico automatico dei dati dei pagamenti delle violazioni al Codice della Strada

PC/CSA. Manuale di utilizzo del PC/CSA Specifiche tecniche per lo scarico automatico dei dati dei pagamenti delle violazioni al Codice della Strada PC/CSA Manuale di utilizzo del PC/CSA Specifiche tecniche per lo scarico automatico dei dati dei pagamenti delle violazioni al Codice della Strada PC/CSA-SPF-1.0 Versione del 18.04.2001 SOMMARIO 1 INTRODUZIONE

Dettagli