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

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

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

Programmazione di rete in Java

Programmazione di rete in Java Programmazione di rete in Java Reti di calcolatori Una rete di calcolatori è un sistema che permette la condivisione di dati informativi e risorse (sia hardware sia software) tra diversi calcolatori. Lo

Dettagli

Introduzione. E un sistema EAI molto flessibile, semplice ed efficace:

Introduzione. E un sistema EAI molto flessibile, semplice ed efficace: Overview tecnica Introduzione E un sistema EAI molto flessibile, semplice ed efficace: Introduce un architettura ESB nella realtà del cliente Si basa su standard aperti Utilizza un qualsiasi Application

Dettagli

Laboratorio di Sistemi Fattoriale di un numero Jsp [Java]

Laboratorio di Sistemi Fattoriale di un numero Jsp [Java] Desideriamo realizzare una applicazione web che ci consenta di calcolare il fattoriale di un numero. L'esercizio in sé non particolarmente difficile, tuttavia esso ci consentirà di affrontare il problema

Dettagli

Integrazione di servizi: Enterprise Service Bus (ESB) e Business Process Execution Language (BPEL)

Integrazione di servizi: Enterprise Service Bus (ESB) e Business Process Execution Language (BPEL) Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria Integrazione di servizi: Enterprise Service Bus (ESB) e Business Process Execution Language (BPEL) Corso di Sistemi Distribuiti Stefano

Dettagli

1 EJB e Portal Component Object http://desvino.altervista.org

1 EJB e Portal Component Object http://desvino.altervista.org 1 EJB e Portal Component Object http://desvino.altervista.org In questo tutorial studiamo come sfruttare la tecnologia EJB, Enterprise JavaBean, all interno del SAP Netweaver Portal. In breve, EJB è un

Dettagli

La fase di realizzazione. La fase di realizzazione (cont.) Traduzione in Java del diagramma degli use case

La fase di realizzazione. La fase di realizzazione (cont.) Traduzione in Java del diagramma degli use case Università degli Studi di Roma La Sapienza Corso di Laurea in Ingegneria dell Informazione Sede di Latina Corso di Laurea in Ingegneria dell Informazione Consorzio Nettuno La fase di realizzazione si occupa

Dettagli

BPEL: Business Process Execution Language

BPEL: Business Process Execution Language Ingegneria dei processi aziendali BPEL: Business Process Execution Language Ghilardi Dario 753708 Manenti Andrea 755454 Docente: Prof. Ernesto Damiani BPEL - definizione Business Process Execution Language

Dettagli

Elementi di Informatica e Programmazione

Elementi di Informatica e Programmazione Elementi di Informatica e Programmazione Le Reti di Calcolatori (parte 2) Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Docente: Daniela

Dettagli

Ultimo aggiornamento sett13

Ultimo aggiornamento sett13 Ultimo aggiornamento sett13 INDICE 1. Invio singolo SMS tramite richiesta POST/GET HTTP...3 1.1 - Messaggi singoli concatenati...4 2. Invio multiplo SMS tramite richiesta POST/GET HTTP...4 2.1 - Messaggi

Dettagli

ISTRUZIONI PER IL SERVIZIO SPCOOP - RICEZIONE

ISTRUZIONI PER IL SERVIZIO SPCOOP - RICEZIONE ISTRUZIONI PER IL SERVIZIO SPCOOP - RICEZIONE Pag. 1 di 14 INDICE 1. Glossario... 3 2. il servizio SPCoop - Ricezione... 5 3. Il web-service RicezioneFatture... 8 3.1 Operazione RiceviFatture... 9 3.1.1

Dettagli

R.Focardi Laboratorio di Ingegneria del Software 6. 1

R.Focardi Laboratorio di Ingegneria del Software 6. 1 Networking Java permette comunicazioni in rete basate sul concetto di socket, che permette di vedere la comunicazione in termini di flusso (stream), in modo analogo all input-output di file, usando Stream

Dettagli

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni client

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni client Versione 25.4.05 Sistemi informativi applicati (reti di calcolatori): appunti delle lezioni Architetture client/server: applicazioni client 1 Architetture client/server: un esempio World wide web è un

Dettagli

Architettura SPC e porta di dominio per le PA

Architettura SPC e porta di dominio per le PA Libro bianco sulla SOA v.1.0 Allegato 2_1 Architettura SPC e porta di dominio per le PA vs 02 marzo 2008 Gruppo di Lavoro SOA del ClubTI di Milano Premessa L architettura SPC e la relativa porta di dominio

Dettagli

Le Reti Informatiche

Le Reti Informatiche Le Reti Informatiche modulo 10 Prof. Salvatore Rosta www.byteman.it s.rosta@byteman.it 1 Nomenclatura: 1 La rappresentazione di uno schema richiede una serie di abbreviazioni per i vari componenti. Seguiremo

Dettagli

Codici sorgenti di esempio per l'invio di email da pagine WEB per gli spazi hosting ospitati presso ITESYS SRL.

Codici sorgenti di esempio per l'invio di email da pagine WEB per gli spazi hosting ospitati presso ITESYS SRL. Data: 8 Ottobre 2013 Release: 1.0-15 Feb 2013 - Release: 2.0 - Aggiunta procedura per inviare email da Windows con php Release: 2.1-20 Mar 2013 Release: 2.2-8 Ottobre 2013 - Aggiunta procedura per inviare

Dettagli

12.5 UDP (User Datagram Protocol)

12.5 UDP (User Datagram Protocol) CAPITOLO 12. SUITE DI PROTOCOLLI TCP/IP 88 12.5 UDP (User Datagram Protocol) L UDP (User Datagram Protocol) é uno dei due protocolli del livello di trasporto. Come l IP, é un protocollo inaffidabile, che

Dettagli

/** * VETTORE DINAMICO elementi */ private Vector elementi; /** * METODO COSTRUTTORE */ public coda() { elementi=new Vector(); }

/** * VETTORE DINAMICO elementi */ private Vector elementi; /** * METODO COSTRUTTORE */ public coda() { elementi=new Vector(); } import java.util.*; class coda * Questa classe contiene tutti i metodi per la gestione della coda * @author D'Ambrosio Giovanni Classe 4D I.T.I.S. Grottaminarda * @version 26/02/2010 * VETTORE DINAMICO

Dettagli

Programmazione Java: Variabili membro, Metodi La parola chiave final

Programmazione Java: Variabili membro, Metodi La parola chiave final Programmazione Java: Variabili membro, Metodi La parola chiave final romina.eramo@univaq.it http://www.di.univaq.it/romina.eramo/tlp Roadmap Definire una classe» Variabili membro» Metodi La parola chiave

Dettagli

I file di dati. Unità didattica D1 1

I file di dati. Unità didattica D1 1 I file di dati Unità didattica D1 1 1) I file sequenziali Utili per la memorizzazione di informazioni testuali Si tratta di strutture organizzate per righe e non per record Non sono adatte per grandi quantità

Dettagli

Routing (instradamento) in Internet. Internet globalmente consiste di Sistemi Autonomi (AS) interconnessi:

Routing (instradamento) in Internet. Internet globalmente consiste di Sistemi Autonomi (AS) interconnessi: Routing (instradamento) in Internet Internet globalmente consiste di Sistemi Autonomi (AS) interconnessi: Stub AS: istituzione piccola Multihomed AS: grande istituzione (nessun ( transito Transit AS: provider

Dettagli

Inter Process Communication. Laboratorio Software 2008-2009 C. Brandolese

Inter Process Communication. Laboratorio Software 2008-2009 C. Brandolese Inter Process Communication Laboratorio Software 2008-2009 C. Brandolese Introduzione Più processi o thread Concorrono alla relaizzazione di una funzione applicativa Devono poter realizzare Sincronizzazione

Dettagli

Oggetti Lezione 3. aspetti generali e definizione di classi I

Oggetti Lezione 3. aspetti generali e definizione di classi I Programmazione a Oggetti Lezione 3 Il linguaggio Java: aspetti generali e definizione di classi I Sommario Storia e Motivazioni Definizione di Classi Campi e Metodi Istanziazione di oggetti Introduzione

Dettagli

I name server DNS. DNS: Domain Name System. Esempio di DNS. DNS: Root name server. DNS: queries ripetute

I name server DNS. DNS: Domain Name System. Esempio di DNS. DNS: Root name server. DNS: queries ripetute DNS: Domain Name System I name DNS Persone: identificatori: CF, nome, Numero di Passaporto Host e router Internet: Indirizzo IP ( bit) - usato per instradare i pacchetti nome, per es., massimotto.diiie.unisa.it

Dettagli

Finestra.java. static String nomicolonne[] = {"ind.","cognome","nome","telefono","e-mail"}; //nomi delle colonne della tabella

Finestra.java. static String nomicolonne[] = {ind.,cognome,nome,telefono,e-mail}; //nomi delle colonne della tabella import java.awt.*; import java.awt.event.actionevent; import java.awt.event.actionlistener; import java.awt.event.windowevent; import java.awt.event.windowlistener; import java.io.*; import java.util.*;

Dettagli

Analisi dei requisiti e casi d uso

Analisi dei requisiti e casi d uso Analisi dei requisiti e casi d uso Indice 1 Introduzione 2 1.1 Terminologia........................... 2 2 Modello della Web Application 5 3 Struttura della web Application 6 4 Casi di utilizzo della Web

Dettagli

Scuola Specializzazione Istruzione Superiore. Object Oriented Programming (OOP) Introduzione alla programmazione orientata agli oggetti

Scuola Specializzazione Istruzione Superiore. Object Oriented Programming (OOP) Introduzione alla programmazione orientata agli oggetti Scuola Specializzazione Istruzione Superiore Object Oriented Programming (OOP) Introduzione alla programmazione orientata agli oggetti Michele Batocchi ITC Vittorio Emanuele II Perugia A.S. 2007/2008 Introduzione

Dettagli

MODALITÀ DI QUALIFICAZIONE DELLA PORTA DI DOMINIO

MODALITÀ DI QUALIFICAZIONE DELLA PORTA DI DOMINIO MODALITÀ DI QUALIFICAZIONE DELLA PORTA DI DOMINIO Versione 1.1 INDICE 1. PREFAZIONE 3 1.1 Autori 3 1.2 Modifiche Documento 3 1.3 Riferimenti 4 1.4 Acronimi e Definizioni 4 2. OBIETTIVI E CONTESTO DI RIFERIMENTO

Dettagli

Abstract Data Type (ADT)

Abstract Data Type (ADT) Abstract Data Type Pag. 1/10 Abstract Data Type (ADT) Iniziamo la nostra trattazione presentando una nozione che ci accompagnerà lungo l intero corso di Laboratorio Algoritmi e Strutture Dati: il Tipo

Dettagli

Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati

Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati Condizione di sincronizzazione Qualora si voglia realizzare una determinata politica di gestione delle risorse,la decisione se ad

Dettagli

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica Fondamenti di Informatica Algebra di Boole: Concetti di base Fondamenti di Informatica - D. Talia - UNICAL 1 Algebra di Boole E un algebra basata su tre operazioni logiche OR AND NOT Ed operandi che possono

Dettagli

Zeroshell come client OpenVPN

Zeroshell come client OpenVPN Zeroshell come client OpenVPN (di un server OpenVpn Linux) Le funzionalità di stabilire connessioni VPN di Zeroshell vede come scenario solito Zeroshell sia come client sia come server e per scelta architetturale,

Dettagli

INTRODUZIONE, LINGUAGGIO, HANDS ON. Giuseppe Cirillo g.cirillo@unina.it

INTRODUZIONE, LINGUAGGIO, HANDS ON. Giuseppe Cirillo g.cirillo@unina.it INTRODUZIONE, LINGUAGGIO, HANDS ON Giuseppe Cirillo g.cirillo@unina.it Il linguaggio C 1972-Dennis Ritchie 1978-Definizione 1990-ANSI C 1966 Martin Richars (MIT) Semplificando CPL usato per sviluppare

Dettagli

Le funzioni. Funzioni. Funzioni. Funzioni. Funzioni. Funzioni

Le funzioni. Funzioni. Funzioni. Funzioni. Funzioni. Funzioni Funzioni Le funzioni Con il termine funzione si intende, in generale, un operatore che, applicato a un insieme di operandi, consente di calcolare un risultato, come avviene anche per una funzione matematica

Dettagli

Protocollo HTTP. Alessandro Sorato

Protocollo HTTP. Alessandro Sorato Un protocollo è un insieme di regole che permettono di trovare uno standard di comunicazione tra diversi computer attraverso la rete. Quando due o più computer comunicano tra di loro si scambiano una serie

Dettagli

Estensione di un servizo di messaggistica per telefonia mobile (per una società di agenti TuCSoN)

Estensione di un servizo di messaggistica per telefonia mobile (per una società di agenti TuCSoN) Estensione di un servizo di messaggistica per telefonia mobile (per una società di agenti TuCSoN) System Overview di Mattia Bargellini 1 CAPITOLO 1 1.1 Introduzione Il seguente progetto intende estendere

Dettagli

Mod. 4: L architettura TCP/ IP Classe 5 I ITIS G. Ferraris a.s. 2011 / 2012 Marcianise (CE) Prof. M. Simone

Mod. 4: L architettura TCP/ IP Classe 5 I ITIS G. Ferraris a.s. 2011 / 2012 Marcianise (CE) Prof. M. Simone Paragrafo 1 Prerequisiti Definizione di applicazione server Essa è un servizio che è in esecuzione su un server 1 al fine di essere disponibile per tutti gli host che lo richiedono. Esempi sono: il servizio

Dettagli

Il modello client/server consente a due processi di condividere risorse e di cooperare per il raggiungimento di un obiettivo.

Il modello client/server consente a due processi di condividere risorse e di cooperare per il raggiungimento di un obiettivo. In una rete di ampie dimensioni, ciascuna sottorete (es. LAN, WAN) è connessa ad altre sottoreti tramite router. Internet è un insieme di reti connesse tra loro. Essenzialmente, in una rete alcune macchine

Dettagli

! Programmazione strutturata ! TDA. ! Classi, incapsulamento, ! OO. ! Scambio messaggi, eredità, polimorfismo. ! OO in Java

! Programmazione strutturata ! TDA. ! Classi, incapsulamento, ! OO. ! Scambio messaggi, eredità, polimorfismo. ! OO in Java Riassunto Rassegna API - 1 Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/ mizzaro@uniud.it Programmazione, lezione 17 3 maggio 2015! Programmazione

Dettagli

Introduzione alla Programmazione ad Oggetti in C++

Introduzione alla Programmazione ad Oggetti in C++ Introduzione alla Programmazione ad Oggetti in C++ Lezione 1 Cosa è la Programmazione Orientata agli Oggetti Metodologia per costruire prodotti software di grosse dimensioni che siano affidabili e facilmente

Dettagli

Energy risk management

Energy risk management Il sistema di supporto alle tue decisioni Energy risk management Un approccio orientato agli attori M.B.I. Srl, Via Francesco Squartini 7-56121 Pisa, Italia - tel. 050 3870888 - fax. 050 3870808 www.powerschedo.it

Dettagli

Decreto 2 novembre 2005 Regole tecniche per la formazione, la trasmissione e la validazione, anche temporale, della posta elettronica certificata

Decreto 2 novembre 2005 Regole tecniche per la formazione, la trasmissione e la validazione, anche temporale, della posta elettronica certificata Decreto 2 novembre 2005 Regole tecniche per la formazione, la trasmissione e la validazione, anche temporale, della posta elettronica IL MINISTRO PER L'INNOVAZIONE E LE TECNOLOGIE - Visto l articolo 17

Dettagli

Universita' di Ferrara Dipartimento di Matematica e Informatica. Algoritmi e Strutture Dati. Rappresentazione concreta di insiemi e Hash table

Universita' di Ferrara Dipartimento di Matematica e Informatica. Algoritmi e Strutture Dati. Rappresentazione concreta di insiemi e Hash table Universita' di Ferrara Dipartimento di Matematica e Informatica Algoritmi e Strutture Dati Rappresentazione concreta di insiemi e Hash table Copyright 2006-2015 by Claudio Salati. Lez. 9a 1 Rappresentazione

Dettagli

Inter-Process Communication

Inter-Process Communication Inter-Process Communication C. Baroglio a.a. 2002-2003 1 Introduzione In Unix i processi possono essere sincronizzati utilizzando strutture dati speciali, appartenti al pacchetto IPC (inter-process communication).

Dettagli

Lezione n 1! Introduzione"

Lezione n 1! Introduzione Lezione n 1! Introduzione" Corso sui linguaggi del web" Fondamentali del web" Fondamentali di una gestione FTP" Nomenclatura di base del linguaggio del web" Come funziona la rete internet?" Connessione"

Dettagli

Cos è un protocollo? Ciao. Ciao 2:00. tempo. Un protocollo umano e un protocollo di reti di computer:

Cos è un protocollo? Ciao. Ciao 2:00. <file> tempo. Un protocollo umano e un protocollo di reti di computer: Cos è un protocollo? Un protocollo umano e un protocollo di reti di computer: Ciao Ciao Hai l ora? 2:00 tempo TCP connection request TCP connection reply. Get http://www.di.unito.it/index.htm Domanda:

Dettagli

Arduino: Programmazione

Arduino: Programmazione Programmazione formalmente ispirata al linguaggio C da cui deriva. I programmi in ARDUINO sono chiamati Sketch. Un programma è una serie di istruzioni che vengono lette dall alto verso il basso e convertite

Dettagli

Configuration Managment Configurare EC2 su AWS. Tutorial. Configuration Managment. Configurare il servizio EC2 su AWS. Pagina 1

Configuration Managment Configurare EC2 su AWS. Tutorial. Configuration Managment. Configurare il servizio EC2 su AWS. Pagina 1 Tutorial Configuration Managment Configurare il servizio EC2 su AWS Pagina 1 Sommario 1. INTRODUZIONE... 3 2. PROGRAMMI NECESSARI... 4 3. PANNELLO DI CONTROLLO... 5 4. CONFIGURARE E LANCIARE UN ISTANZA...

Dettagli

Interfaccia Web per customizzare l interfaccia dei terminali e

Interfaccia Web per customizzare l interfaccia dei terminali e SIP - Session Initiation Protocol Il protocollo SIP (RFC 2543) è un protocollo di segnalazione e controllo in architettura peer-to-peer che opera al livello delle applicazioni e quindi sviluppato per stabilire

Dettagli

Ambienti di sviluppo integrato

Ambienti di sviluppo integrato Ambienti di sviluppo integrato Un ambiente di sviluppo integrato (IDE - Integrated Development Environment) è un ambiente software che assiste i programmatori nello sviluppo di programmi Esso è normalmente

Dettagli

Informatica per la comunicazione" - lezione 9 -

Informatica per la comunicazione - lezione 9 - Informatica per la comunicazione" - lezione 9 - Protocolli di livello intermedio:" TCP/IP" IP: Internet Protocol" E il protocollo che viene seguito per trasmettere un pacchetto da un host a un altro, in

Dettagli

Corso di Programmazione ad Oggetti

Corso di Programmazione ad Oggetti Corso di Programmazione ad Oggetti Introduzione alla programmazione ad oggetti a.a. 2008/2009 Claudio De Stefano 1 La programmazione modulare Un programma può essere visto come un insieme di moduli che

Dettagli

PRESENTAZIONE DI UN SMS AL GATEWAY

PRESENTAZIONE DI UN SMS AL GATEWAY Interfaccia Full Ascii Con questa interfaccia è possibile inviare i dati al Server utilizzando solo caratteri Ascii rappresentabili e solo i valori che cambiano tra un sms e l altro, mantenendo la connessione

Dettagli

Descrizioni VHDL Behavioral

Descrizioni VHDL Behavioral 1 Descrizioni VHDL Behavioral In questo capitolo vedremo come la struttura di un sistema digitale è descritto in VHDL utilizzando descrizioni di tipo comportamentale. Outline: process wait statements,

Dettagli

Middleware Laboratory. Dai sistemi concorrenti ai sistemi distribuiti

Middleware Laboratory. Dai sistemi concorrenti ai sistemi distribuiti Dai sistemi concorrenti ai sistemi distribuiti Problemi nei sistemi concorrenti e distribuiti I sistemi concorrenti e distribuiti hanno in comune l ovvio problema di coordinare le varie attività dei differenti

Dettagli

La gestione documentale con il programma Filenet ed il suo utilizzo tramite la tecnologia.net. di Emanuele Mattei (emanuele.mattei[at]email.

La gestione documentale con il programma Filenet ed il suo utilizzo tramite la tecnologia.net. di Emanuele Mattei (emanuele.mattei[at]email. La gestione documentale con il programma Filenet ed il suo utilizzo tramite la tecnologia.net di Emanuele Mattei (emanuele.mattei[at]email.it) Introduzione In questa serie di articoli, vedremo come utilizzare

Dettagli

SPECIFICHE TECNICHE OPERATIVE DELLE REGOLE TECNICHE DI CUI ALL ALLEGATO B DEL DM 55 DEL 3 APRILE 2013. Versione 1.1

SPECIFICHE TECNICHE OPERATIVE DELLE REGOLE TECNICHE DI CUI ALL ALLEGATO B DEL DM 55 DEL 3 APRILE 2013. Versione 1.1 SPECIFICHE TECNICHE OPERATIVE DELLE REGOLE TECNICHE DI CUI ALL ALLEGATO B DEL DM 55 DEL 3 APRILE 2013 Versione 1.1 INDICE 1. INTRODUZIONE 4 1.1 DEFINIZIONI 4 2. MODALITÀ DI EMISSIONE DELLE FATTURE ELETTRONICHE

Dettagli

Documentazione tecnica

Documentazione tecnica Documentazione tecnica Come spedire via Post 1.1) Invio di Loghi operatore 1.2) Invio delle Suonerie (ringtone) 1.3) Invio di SMS con testo in formato UNICODE UCS-2 1.4) Invio di SMS multipli 1.5) Simulazione

Dettagli

Inizializzazione degli Host. BOOTP e DHCP

Inizializzazione degli Host. BOOTP e DHCP BOOTP e DHCP a.a. 2002/03 Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/~auletta/ Università degli studi di Salerno Laurea e Diploma in Informatica 1 Inizializzazione degli Host Un

Dettagli

Il World Wide Web: nozioni introduttive

Il World Wide Web: nozioni introduttive Il World Wide Web: nozioni introduttive Dott. Nicole NOVIELLI novielli@di.uniba.it http://www.di.uniba.it/intint/people/nicole.html Cos è Internet! Acronimo di "interconnected networks" ("reti interconnesse")!

Dettagli

MIB PER IL CONTROLLO DELLO STATO DI UN SERVER FTP

MIB PER IL CONTROLLO DELLO STATO DI UN SERVER FTP Università degli Studi di Pisa Facoltà di Scienze Matematiche,Fisiche e Naturali Corso di Laurea in Informatica Michela Chiucini MIB PER IL CONTROLLO DELLO STATO DI UN SERVER

Dettagli

MODBUS-RTU per. Specifiche protocollo di comunicazione MODBUS-RTU per controllo in rete dispositivi serie. Expert NANO 2ZN

MODBUS-RTU per. Specifiche protocollo di comunicazione MODBUS-RTU per controllo in rete dispositivi serie. Expert NANO 2ZN per Expert NANO 2ZN Specifiche protocollo di comunicazione MODBUS-RTU per controllo in rete dispositivi serie Expert NANO 2ZN Nome documento: MODBUS-RTU_NANO_2ZN_01-12_ITA Software installato: NANO_2ZN.hex

Dettagli

UML: Class Diagram. Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it

UML: Class Diagram. Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it UML: Class Diagram Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it Dipartimento di Ingegneria Informatica e delle Telecomunicazioni Università di Catania Class Diagram Forniscono una vista strutturale

Dettagli

Applicazione: DoQui/Index - Motore di gestione dei contenuti digitali

Applicazione: DoQui/Index - Motore di gestione dei contenuti digitali Riusabilità del software - Catalogo delle applicazioni: Applicativo verticale Applicazione: DoQui/Index - Motore di gestione dei contenuti digitali Amministrazione: Regione Piemonte - Direzione Innovazione,

Dettagli

Web Conferencing Open Source

Web Conferencing Open Source Web Conferencing Open Source A cura di Giuseppe Maugeri g.maugeri@bembughi.org 1 Cos è BigBlueButton? Sistema di Web Conferencing Open Source Basato su più di quattordici componenti Open-Source. Fornisce

Dettagli

Interfaccia HTTP enduser Specifiche tecniche 03.10.2013

Interfaccia HTTP enduser Specifiche tecniche 03.10.2013 i-contact srl via Simonetti 48 32100 Belluno info@i-contact.it tel. 0437 30419 fax 0437 1900 125 p.i./c.f. 0101939025 Interfaccia HTTP enduser Specifiche tecniche 03.10.2013 1. Introduzione Il seguente

Dettagli

Cross Software ltd Malta Pro.Sy.T Srl. Il gestionale come l'avete sempre sognato... Pag. 1

Cross Software ltd Malta Pro.Sy.T Srl. Il gestionale come l'avete sempre sognato... Pag. 1 Il gestionale come l'avete sempre sognato... Pag. 1 Le funzionalità di X-Cross La sofisticata tecnologia di CrossModel, oltre a permettere di lavorare in Internet come nel proprio ufficio e ad avere una

Dettagli

Business Process Modeling and Notation e WebML

Business Process Modeling and Notation e WebML Business Process Modeling and Notation e WebML 24 Introduzione I Web Service e BPMN sono standard de facto per l interoperabilità in rete a servizio delle imprese moderne I Web Service sono utilizzati

Dettagli

Appunti di Sistemi Operativi. Enzo Mumolo e-mail address :mumolo@units.it web address :www.units.it/mumolo

Appunti di Sistemi Operativi. Enzo Mumolo e-mail address :mumolo@units.it web address :www.units.it/mumolo Appunti di Sistemi Operativi Enzo Mumolo e-mail address :mumolo@units.it web address :www.units.it/mumolo Indice 1 Cenni su alcuni algoritmi del Kernel di Unix 1 1.1 Elementi di Unix Internals.................................

Dettagli

BlackBerry Java SDK. Integration Guide Version: 7.0. Guida allo sviluppo

BlackBerry Java SDK. Integration Guide Version: 7.0. Guida allo sviluppo BlackBerry Java SDK Integration Guide Version: 7.0 Guida allo sviluppo SWD-1638866-1215040530-0 Contents 1 Integrazione con le applicazioni BlackBerry Device Software... 6 Richiamo di un'applicazione BlackBerry

Dettagli

SOFTWARE GESTIONE SMS DA INTERFACCE CL MANUALE D INSTALLAZIONE ED USO

SOFTWARE GESTIONE SMS DA INTERFACCE CL MANUALE D INSTALLAZIONE ED USO CLSMS SOFTWARE GESTIONE SMS DA INTERFACCE CL MANUALE D INSTALLAZIONE ED USO Sommario e introduzione CLSMS SOMMARIO INSTALLAZIONE E CONFIGURAZIONE... 3 Parametri di configurazione... 4 Attivazione Software...

Dettagli

Sistemi Web-Based - Terminologia. Progetto di Sistemi Web-Based Prof. Luigi Laura, Univ. Tor Vergata, a.a. 2010/2011

Sistemi Web-Based - Terminologia. Progetto di Sistemi Web-Based Prof. Luigi Laura, Univ. Tor Vergata, a.a. 2010/2011 Sistemi Web-Based - Terminologia Progetto di Sistemi Web-Based Prof. Luigi Laura, Univ. Tor Vergata, a.a. 2010/2011 CLIENT: il client è il programma che richiede un servizio a un computer collegato in

Dettagli

Concetto di Funzione e Procedura METODI in Java

Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Metodi e Sottoprogrammi Mentre in Java tramite le classi e gli oggetti è possibile

Dettagli

PROPOSTE SISTEMA DI CITIZEN RELATIONSHIP MANAGEMENT (CRM) REGIONALE

PROPOSTE SISTEMA DI CITIZEN RELATIONSHIP MANAGEMENT (CRM) REGIONALE PROPOSTE SISTEMA DI CITIZEN RELATIONSHIP MANAGEMENT (CRM) REGIONALE Versione 1.0 Via della Fisica 18/C Tel. 0971 476311 Fax 0971 476333 85100 POTENZA Via Castiglione,4 Tel. 051 7459619 Fax 051 7459619

Dettagli

più del mercato applicazioni dei processi modificato. Reply www.reply.eu

più del mercato applicazioni dei processi modificato. Reply www.reply.eu SOA IN AMBITO TELCO Al fine di ottimizzare i costi e di migliorare la gestione dell'it, le aziende guardano, sempre più con maggiore interesse, alle problematiche di gestionee ed ottimizzazione dei processi

Dettagli

Le funzionalità di un DBMS

Le funzionalità di un DBMS Le funzionalità di un DBMS Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: DBMS.pdf Sistemi Informativi L-A DBMS: principali funzionalità Le

Dettagli

AA 2006-07 LA RICORSIONE

AA 2006-07 LA RICORSIONE PROGRAMMAZIONE AA 2006-07 LA RICORSIONE AA 2006-07 Prof.ssa A. Lanza - DIB 1/18 LA RICORSIONE Il concetto di ricorsione nasce dalla matematica Una funzione matematica è definita ricorsivamente quando nella

Dettagli

INTERNET e RETI di CALCOLATORI A.A. 2014/2015 Capitolo 4 DHCP Dynamic Host Configuration Protocol Fausto Marcantoni fausto.marcantoni@unicam.

INTERNET e RETI di CALCOLATORI A.A. 2014/2015 Capitolo 4 DHCP Dynamic Host Configuration Protocol Fausto Marcantoni fausto.marcantoni@unicam. Laurea in INFORMATICA INTERNET e RETI di CALCOLATORI A.A. 2014/2015 Capitolo 4 Dynamic Host Configuration Protocol fausto.marcantoni@unicam.it Prima di iniziare... Gli indirizzi IP privati possono essere

Dettagli

Talento LAB 4.1 - UTILIZZARE FTP (FILE TRANSFER PROTOCOL) L'UTILIZZO DI ALTRI SERVIZI INTERNET. In questa lezione imparerete a:

Talento LAB 4.1 - UTILIZZARE FTP (FILE TRANSFER PROTOCOL) L'UTILIZZO DI ALTRI SERVIZI INTERNET. In questa lezione imparerete a: Lab 4.1 Utilizzare FTP (File Tranfer Protocol) LAB 4.1 - UTILIZZARE FTP (FILE TRANSFER PROTOCOL) In questa lezione imparerete a: Utilizzare altri servizi Internet, Collegarsi al servizio Telnet, Accedere

Dettagli

CORSO DI ALGORITMI E PROGRAMMAZIONE. JDBC Java DataBase Connectivity

CORSO DI ALGORITMI E PROGRAMMAZIONE. JDBC Java DataBase Connectivity CORSO DI ALGORITMI E PROGRAMMAZIONE JDBC Java DataBase Connectivity Anno Accademico 2002-2003 Accesso remoto al DB Istruzioni SQL Rete DataBase Utente Host client Server di DataBase Host server Accesso

Dettagli

Pila.h versione 6. class Pila { private: int marker; int * contenuto; public:

Pila.h versione 6. class Pila { private: int marker; int * contenuto; public: 1 Pila.h versione 6 struct Pila { private: int size; int defaultgrowthsize; int marker; int * contenuto; void cresci(int increment); public: Pila(int initialsize) ; Pila(); ~Pila() ; void copy(pila * to)

Dettagli

Indicizzazione terza parte e modello booleano

Indicizzazione terza parte e modello booleano Reperimento dell informazione (IR) - aa 2014-2015 Indicizzazione terza parte e modello booleano Gruppo di ricerca su Sistemi di Gestione delle Informazioni (IMS) Dipartimento di Ingegneria dell Informazione

Dettagli

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof.

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof. Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 009-10 prof. Viviana Bono Blocco 9 Metodi statici: passaggio parametri, variabili locali, record

Dettagli

Sottoprogrammi: astrazione procedurale

Sottoprogrammi: astrazione procedurale Sottoprogrammi: astrazione procedurale Incapsulamento di un segmento di programma presente = false; j = 0; while ( (j

Dettagli

Regole tecniche del servizio di trasmissione di documenti informatici mediante posta elettronica certificata

Regole tecniche del servizio di trasmissione di documenti informatici mediante posta elettronica certificata Regole tecniche del servizio di trasmissione di documenti informatici mediante posta elettronica certificata Pagina 1 di 48 INDICE 1 MODIFICHE DOCUMENTO...4 2 RIFERIMENTI...4 3 TERMINI E DEFINIZIONI...4

Dettagli

Sistemi avanzati di gestione dei Sistemi Informativi

Sistemi avanzati di gestione dei Sistemi Informativi Esperti nella gestione dei sistemi informativi e tecnologie informatiche Sistemi avanzati di gestione dei Sistemi Informativi Docente: Email: Sito: Eduard Roccatello eduard@roccatello.it http://www.roccatello.it/teaching/gsi/

Dettagli

Semplici Algoritmi di Ordinamento

Semplici Algoritmi di Ordinamento Fondamenti di Informatica Semplici Algoritmi di Ordinamento Fondamenti di Informatica - D. Talia - UNICAL 1 Ordinamento di una sequenza di elementi Esistono molti algoritmi di ordinamento. Tutti ricevono

Dettagli

Elementi di semantica denotazionale ed operazionale

Elementi di semantica denotazionale ed operazionale Elementi di semantica denotazionale ed operazionale 1 Contenuti! sintassi astratta e domini sintattici " un frammento di linguaggio imperativo! semantica denotazionale " domini semantici: valori e stato

Dettagli

DigitPA. Dominio.gov.it Procedura per la gestione dei sottodomini di terzo livello

DigitPA. Dominio.gov.it Procedura per la gestione dei sottodomini di terzo livello DigitPA Dominio.gov.it Procedura per la gestione dei sottodomini di terzo livello Versione 3.0 Dicembre 2010 Il presente documento fornisce le indicazioni e la modulistica necessarie alla registrazione,

Dettagli

Le Stringhe. Un introduzione operativa. Luigi Palopoli

Le Stringhe. Un introduzione operativa. Luigi Palopoli Le Stringhe p.1/19 Le Stringhe Un introduzione operativa Luigi Palopoli ReTiS Lab - Scuola Superiore S. Anna Viale Rinaldo Piaggio 34 Pontedera - Pisa Tel. 050-883444 Email: palopoli@sssup.it URL: http://feanor.sssup.it/

Dettagli

iphone in azienda Guida alla configurazione per gli utenti

iphone in azienda Guida alla configurazione per gli utenti iphone in azienda Guida alla configurazione per gli utenti iphone è pronto per le aziende. Supporta Microsoft Exchange ActiveSync, così come servizi basati su standard, invio e ricezione di e-mail, calendari

Dettagli

Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2007-2008. - lezione 14 - Thread in Java

Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2007-2008. - lezione 14 - Thread in Java Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2007-2008 Alessandro Longheu http://www.diit.unict.it/users/alongheu alessandro.longheu@diit.unict.it - lezione 14 - Thread in Java 1 Cos è un

Dettagli

PROGRAMMAZIONE ORIENTATA AGLI OGGETTI in C++

PROGRAMMAZIONE ORIENTATA AGLI OGGETTI in C++ PROGRAMMAZIONE ORIENTATA AGLI OGGETTI in C++ Classi ed oggetti. Classi derivate, ereditarietà e polimorfismo. Template Capitoli 12, 13, 14 Luis Joyannes Aguilar. Fondamenti di Programmazione in C++. Algoritmi,

Dettagli

Classi ed Oggetti in JAVA

Classi ed Oggetti in JAVA Classi ed Oggetti in JAVA Dott. Ing. Leonardo Rigutini Dipartimento Ingegneria dell Informazione Università di Siena Via Roma 56 53100 SIENA Uff. 0577233606 rigutini@dii.unisi.it www.dii.unisi.it/~rigutini/

Dettagli

Manipolazione di testi: espressioni regolari

Manipolazione di testi: espressioni regolari Manipolazione di testi: espressioni regolari Un meccanismo per specificare un pattern, che, di fatto, è la rappresentazione sintetica di un insieme (eventualmente infinito) di stringhe: il pattern viene

Dettagli

P a s q u a l e t t i V e r o n i c a

P a s q u a l e t t i V e r o n i c a PHP: OOP Pasqualetti Veronica Oggetti Possiamo pensare ad un oggetto come ad un tipo di dato più complesso e personalizzato, non esistente fra i tipi tradizionali di PHP, ma creato da noi. 2 Gli oggetti

Dettagli

Mobile Messaging SMS. Copyright 2015 VOLA S.p.A.

Mobile Messaging SMS. Copyright 2015 VOLA S.p.A. Mobile Messaging SMS Copyright 2015 VOLA S.p.A. INDICE Mobile Messaging SMS. 2 SMS e sistemi aziendali.. 2 Creare campagne di mobile marketing con i servizi Vola SMS.. 3 VOLASMS per inviare SMS da web..

Dettagli

esercizi Esercizi / problemi

esercizi Esercizi / problemi Sistemi informativi applicati (reti di calcolatori): esercizi 1 Esercizi / problemi 1. Creare un applicazione che calcoli la media aritmetica dei seguenti valori interi: 35, 117, 23 e ne visualizzi il

Dettagli

Servizi DNS - SMTP FTP - TELNET. Programmi. Outlook Express Internet Explorer

Servizi DNS - SMTP FTP - TELNET. Programmi. Outlook Express Internet Explorer Servizi DNS - SMTP FTP - TELNET Programmi Outlook Express Internet Explorer 72 DNS Poiché riferirsi a una risorsa (sia essa un host oppure l'indirizzo di posta elettronica di un utente) utilizzando un

Dettagli