JMS e Web services nello sviluppo di architetture EDA e SOA. Jürgen Assfalg. 28 febbraio 2006

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "JMS e Web services nello sviluppo di architetture EDA e SOA. Jürgen Assfalg. 28 febbraio 2006"

Transcript

1 JMS e WebServices nello sviluppo di architetture EDA e SOA 28 febbraio Contesto Temi Integrazione di applicazioni di scala enterprise caso di studio WS Applicazioni enterprise Architetture Evoluzione delle tecnologie SW EAI (Enterprise Applications Integration) SOA / EDA JMS 2

2 Per finalizzare l'uso della tecnologia alla soluzione di un problema reale, si consideri la gestione di un procedimento amministrativo, quale il rilascio di autorizzazione per trasporti eccezionali: La Provincia rilascia l'autorizzazione per il transito di convogli eccezionali lungo gli itinerari delle strade regionali e provinciali, nonché lungo le strade comunali previa acquisizione di nulla-osta del Comune territorialmente competente, se trattasi di percorso misto che riguarda sia strade regionali e/o provinciali sia comunali, oppure quando il percorso richiesto interessi più comuni [http://www.provincia.fi.it/] 3 Front-office (interazione con l'utente) Avvio del procedimento presentazione dell'istanza tramite modulo generalità del richiedente periodo e percorso previsti per il trasporto caratteristiche del mezzo ulteriori dichiarazioni Conclusione del procedimento rilascio dell'autorizzazione percorso costi 4

3 Nell'interazione tra Amministrazione e utente, un aspetto importante nella gestione del procedimento è la protocollazione di documenti in arrivo e in partenza registrazione del documento oggetto, argomento, mittente, destinatari,... assegnazione di un numero di protocollo numero progressivo (unico per ogni anno), data, classfica,... archiviazione del documento del cartaceo eventualmente anche digitalizzazione e archiviazione elettronica 5 Back-office Le attività svolte dietro le quinte dagli addetti al procedimento sono molteplici, e comprendono: esame dell'istanza verifica vincoli (ponti, gallerie, cantieri) sulle parti di percorso di propria competenza calcolo degli oneri eventuale richiesta nulla-osta ad altri Enti (es. Comuni interessati dal percorso) produzione dell'autorizzazione 6

4 Formalizzazione del problema: protocollo Inizialmente si intende realizzare un servizio software che consenta sia agli addetti allo sportello (front-office) sia alle varie applicazioni presenti nell'amministrazione una protocollazione unificata dei documenti Tipicamente le Amministrazioni dispongono di un'applicazione (il protocollo informatico) che, raccogliendo i dati tramite opportune maschere, consente agli addetti di registrare di documenti Quali sono le tecnologie per rendere disponibile il servizio anche alle applicazioni? 7 Insieme di tecnologie software progettate per consentire l'interazione tra applicazioni Per garantire un'elevata interoperabilità, le diverse componenti sono normate da organismi di standardizzazione (es. W3C, OASIS, WS-I,...) 8

5 Principali componenti SOAP (http://www.w3.org/tr/soap/) definisce come avviene il trasporto dei messaggi Web Service Description Language - WSDL (http://www.w3.org/tr/wsdl) definisce il formato dei messaggi, ovvero la struttura dell'informazione UDDI definisce indici e relativi criteri di ricerca per catalogare e cercare web services 9 Piattaforma Java Development Kit (http://java.sun.com/j2se/1.4.2/) linguaggio Java, VM Tomcat 5.0.x (http://tomcat.apache.org/) application server Axis 1.2.x (http://ws.apache.org/axis/) insieme di strumenti per l'implementazione di WS e relativi clients in Java Nota: si sono volutamente prese in considerazione versioni non troppo recenti, per garantire una maggiore stabilità dell'intera piattaforma 10

6 Axis prevede una modalità elementare per la realizzazione di Web Services, che prevede i seguenti passi: definizione di una classe che realizza il servizio installazione della classe su Axis Una volta realizzato il servizio sarà possibile consultarne il file WSDL in questo caso generato automaticamente da Axis descrive il formato dei messaggi accettati e prodotti dal servizio, nonché le operazioni previste accedervi tramite opportuno client 11 Implementazione della logica del servizio nel seguito è riportata una semplice classe, che realizza la logica elementare del servizio di protocollo, consentendo: la registrazione di un documento del documento si specifica l'oggetto il servizio restituisce il numero di protocollo associatogli la ricerca del documento, ovvero dell'oggetto associato ad un determinato numero di protocollo sono previsti meccanismi di sincronizzazione per garantire che il registro di protocollo sia tenuto correttamente anche in regime di concorrenza (es. sequenza di numeri strettamente monotona) 12

7 public class ProtocolloElementare { public int registra( String oggetto ) { return _registra( oggetto ); } public String cerca( int numero ) { return _cerca( numero ); } private static int _registra( String oggetto ) { int c; synchronized ( registro ) { } contatore++; registro.put( new Integer( contatore ), oggetto ); c = contatore; return c; } [...segue...] 13 [...] private static String _cerca( int numero ) { } String o; synchronized ( registro ) { } o = (String) registro.get( new Integer( numero ) ); return o; private static int contatore = 0; private static HashMap registro = new HashMap(); } 14

8 Operativamente, una volta scritto il file con la classe appena vista, per l'installazione è necessario copiare il file sorgente nella cartella di Axis %TOMCAT_HOME%\webapps\axis dove %TOMCAT_HOME% è la cartella in cui è stato installato Tomcat cambiare l'estensione da.java a.jws ProtocolloElementare.jws Per verificare la corretta installazione del servizio è sufficiente accedere alla pagina ipotizzando che Tomcat sia in ascolto sulla porta della macchina da cui si accede, e che Axis sia installato nella cartella sopra indicata 15 Per consultare il file WSDL si può selezionare il collegamento ipertestuale riportato nella pagina sopra, oppure accedervi direttamente all'indirizzo 16

9 WSDL è un formato XML per descrivere il servizio in termini di formato dei messaggi scambiati utilizzando anche XML Schema operazioni definite sull'endpoint ( terminale ) binding, ovvero come avviene l'aggancio al protocollo di trasporto (SOAP) indirizzo a cui è raggiungibile il servizio nel seguito è riportato il file WSDL prodotto automaticamente da Axis per il servizio elementare di protoccolo 17 messaggi endpoint 18

10 19 Tutto sommato facile... ma... la realizzazione del servizio si è ridotta alla scrittura di una classe Java il file WSDL, richiesto per ogni Web Service, è stato prodotto automaticamente da Axis quest'approccio non è sempre utilizzabile es. la classe deve appartenere al package predefinito manca il client per il servizio 20

11 Il procedimento generale è diverso: definizione di un servizio e delle operazioni, cioè definizione di un'interfaccia: + registra( : String ) : Protocollo + cerca( : int ) : String NOTA Rispetto alla prima implementazione del protocollo, che restituiva un intero, in questo caso si prevede un tipo definito ad hoc (Protocollo), che oltre al numero conterrà anche l'anno. Un tale tipo di dato non è previsto dagli standards XML Schema e SOAP (mentre lo sono, ad esempio, interi e stringhe), e quindi dovrà essere adeguatamente trattato 21 creazione del file WSDL qualora non si sia ancora esperti di WSDL si può sempre ricorrere a Java2WSDL (uno strumento fornito insieme ad Axis), che crea un file WSDL a partire da una classe o un'interfaccia Java java org.apache.axis.wsdl.java2wsdl --style document --use LITERAL -o protocollo.wsdl -l"http://localhost:10080/axis/services/wsservizio" -n "urn:protocollo" -p"protocollo" "urn:protocollo" protocollo.wsservizio in generale, l'editing diretto di un file WSDL risulta comunque essere un'attività abbastanza pesante, per cui si raccomanda l'uso di un editor XML o degli strumenti presenti negli ambienti di sviluppo integrati (es. Eclipse, con i plugins del progetto WTP) 22

12 generazione delle classi Java java org.apache.axis.wsdl.wsdl2java -s -p protocollo.wsdl protocollo.wsdl dato il file WSDL, il programma WSDL2Java del pacchetto Axis provvede a generare tutte le classi accessorie per realizzare, in maniera trasparente al programmatore, il collegamento tra client e server, secondo i protocolli previsti per lo specifico servizio (es. SOAP, HTTP,...) 23 In generale, WSDL2Java può generare per ogni tipo: una classe Java ed eventuale holder per ogni porttype: un'interfaccia Java per ogni binding una classe stub una classe skeleton un modello (template) per l'implementazione per ogni service: un'interfaccia Java del servizio un'implementazione del servizio (locator) 24

13 25 Server disponendo già di una classe che realizza la logica del registro di protocollo (la classe ProtocolloElementare, vista in precedenza), l'implementazione del Web Service si riduce al completamento della classe WSProtocolloSoapBindingImpl in maniera tale da adattare la classe esistente alla nuova interfaccia richiesta, cioè WSServizio v. anche design pattern Adapter 26

14 public class WSProtocolloSoapBindingImpl implements WSServizio { public Protocollo registra( String oggetto ) throws java.rmi.remoteexception { int numero = r.registra( oggetto ); Protocollo p = new Protocollo(); p.setnumero( protocollo ); p.setanno( 2006 ); return protocollo; } public String cerca( int numero ) throws java.rmi.remoteexception { return r.cerca( numero ); } static ProtocolloElementare r = new ProtocolloElementare(); } adattamento 27 Installazione del servizio copiare le varie classi sull'application server attivare il servizio su Axis utilizzando gli strumenti forniti con il pacchetto Axis java org.apache.axis.client.adminclient deploy.wsdd il formato WSDD (Web Sevice Deployment Descriptor), specifico del pacchetto Axis, serve per indicare al server informazioni utili per la configurazione del servizio operazioni e relativi parametri classe che implementazione il servizio mappatura dei parametri complessi 28

15 WSDD <deployment [...] > <service name="wsprotocollo" provider="java:rpc" style="rpc" use="encoded"> [...] <parameter name="wsdlserviceelement" value="wsservizioservice"/> <parameter name="wsdlserviceport" value="wsprotocollo"/> <parameter name="classname" value="protocollo.wsdl.wsprotocollosoapbindingimpl"/> <parameter name="wsdlporttype" value="wsservizio"/> <operation name="registra" qname="operns:registra" [...] returntype="rtns:protocollo"> <parameter qname="in0" type="tns:string"/> </operation> [...] <typemapping xmlns:ns="urn:protocollo" qname="ns:protocollo" type="java:protocollo.wsdl.protocollo" serializer="org.apache.axis.encoding.ser.beanserializerfactory" deserializer="org.apache.axis.encoding.ser.beandeserializerfactory" [...] /> [...] 29 Client (statico) l'accesso al servizio dal client richiede l'uso di un oggetto WSServizioServiceLocator, (classe generata automaticamente dallo strumento WSDL2Java di Axis), che serve per ottenere il riferimento al proxy locale del servizio stabilito il contatto con il servizio attraverso un oggetto locator, l'accesso al servizio avviene semplicemente invocando i metodi di un oggetto (il proxy, appunto) che implementa l'interfaccia WSServizio, senza curarsi di ciò che sta dietro 30

16 WSServizioService service = new WSServizioServiceLocator(); String endpointurl = "http://localhost:10080/axis/services/wsprotocollo"; WSServizio port = service.getwsprotocollo( new URL( endpointurl ) ); for ( int i = 0; i < numeroprove; i++ ) { String o = "prova " + i; int n = port.registra( o ).getnumero(); numeri[ i ] = n; } for ( int i = numeroprove; i > 0; i-- ) { int n = numeri[ i - 1 ]; String o = port.cerca( n ); } 31 Alternative al client statico Dynamic Proxy il proxy viene generato dinamicamente quando si accede al servizio; funziona finché non cambia la signature dei metodi usati dal client Dynamic Invocation si accede alle operazioni del servizio tramite chiamate standard Call call = (Call) service.createcall(); call.settargetendpointaddress( endpoint ); call.setoperationstyle( opstyle ); call.setoperationuse( opuse ); call.addparameter( new Qname( "http://ws", "numero"), XMLType.XSD_INT, ParameterMode.IN ); call.setoperationname( "cerca" ); call.setreturntype( XMLType.XSD_STRING ); 32

17 Per definire un Web service è utile capire alcuni dettagli relativi alla formattazione dei messaggi, sia a livello di definizione in WSDL che di trasmissione con SOAP WSDL prevede due parametri STILE (binding con SOAP) RPC DOCUMENT WRAPPED Java2WSDL: -y, --style <argument> USE (nella codifica del messaggio SOAP) ENCODED LITERAL Java2WSDL: -u, --use <argument> 33 Per comprendere gli effetti delle diverse combinazioni dei valori dei due parametri si può esaminare sia il file WSDL, sia il traffico SOAP tra client e server Per l'analisi del traffico si può utilizzare un'altro strumento di Axis: TCPMon java org.apache.axis.utils.tcpmon 9080 localhost il programma realizza un proxy TCP, che raccoglie tutto il traffico indirizzato alla porta locale 9080, lo registra, e quindi lo indirizza alla porta di localhost; analogamente per il traffico di ritorno è necessario cambiare l'indirizzo dell'endpoint fornito al client 34

18 Client richiesta risposta inolrata TCPMon richiesta inolrata risposta Server 35 Document - literal 36

19 ==== Request ==== POST /axis/services/wsprotocollodl HTTP/1.0 Header HTTP Content-Type: text/xml; charset=utf-8 Accept: application/soap+xml, application/dime, multipart/related, text/* User-Agent: Axis/1.2.1 Host: localhost:9080 Cache-Control: no-cache Pragma: no-cache SOAPAction: "" Content-Length: 302 <?xml version="1.0" encoding="utf-8"?> Messaggio SOAP <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> Corpo messaggio SOAP <in0 xmlns="urn:protocollo">prova 1</in0> </soapenv:body> </soapenv:envelope> 37 ==== Response ==== HTTP/ OK Server: Apache-Coyote/1.1 Content-Type: text/xml;charset=utf-8 Date: Mon, 27 Feb :42:38 GMT Connection: close <?xml version="1.0" encoding="utf-8"?> <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> <registrareturn xmlns="urn:protocollo"> <anno>2006</anno> <numero>1</numero> </registrareturn> </soapenv:body> </soapenv:envelope> 38

20 RPC - encoded 39 ==== Request ==== [...] <ns1:registra soapenv:encodingstyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="urn:protocollo"> <in0 xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">prova 1</in0> </ns1:registra> [...] 40

21 ==== Response ==== [...] <ns1:registraresponse soapenv:encodingstyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="urn:protocollo"> <registrareturn href="#id0"/> </ns1:registraresponse> <multiref id="id0" [...] xsi:type="ns2:protocollo" [...]> <anno href="#id1"/> <numero href="#id2"/> </multiref> <multiref id="id1" [...] xsi:type="xsd:int" [...]>2006</multiRef> <multiref id="id2" [...] xsi:type="xsd:int" [...]>1</multiRef> [...] 41 Wrapped - literal 42

22 ==== Request ==== [...] <registra xmlns="urn:protocollo"> <in0>prova 1</in0> </registra> [...] <in0 xmlns="urn:protocollo">prova 1</in0> ==== Response ==== [...] <registraresponse xmlns="urn:protocollo"> <registrareturn> <anno>2006</anno> <numero>1</numero> </registrareturn> </registraresponse> [...] <registrareturn xmlns="urn:protocollo"> <anno>2006</anno> <numero>1</numero> </registrareturn> 43 Document-literal messaggi SOAP più leggeri consente uso strumenti per XML (es. validazione) flessibilità nella definizione del servizio maggiori oneri per lo sviluppatore (XML Schema!) Wrapped-literal supera limite di un solo parametro in document-literal, accorpando più parametri in uno solo RPC-encoded Obsoleto le altre combinazioni irrilevanti 44

23 alternative SwA (SOAP with Attachments) con MIME il messaggio che transita è composto da più parti MIME multipart/related: la prima contiene la busta SOAP, le altre gli allegati. Buona interoperabilità Axis lo supporta JWSDP di SUN lo supporta WS-I ( WS-I Attachments Profile 1.0 ) Microsoft NON prevede supporto per SwA in.net. 46

24 L uso di SwA può essere descritta direttamente nel documento WSDL che descrive il web service che utilizza l invio e la ricezione di allegati. Server Message req = MessageContext.getCurrentContext().getRequestMessage(); Attachments msgatts = req.getattachmentsimpl(); AttachmentPart parts[] = new AttachmentPart[ msgatts.getattachmentcount() ]; Iterator it = msgatts.getattachments().iterator(); for ( int i = 0; it.hasnext(); i++) parts[ i ] = (AttachmentPart) it.next(); [...] DataHandler dh = parts[ 0 ].getdatahandler(); InputStream in = dh.getinputstream(); 47 Client Service service = new Service(); call = (Call) service.createcall(); call.settargetendpointaddress( endpoint ); call.setoperationstyle( opstyle ); call.setoperationuse( opuse ); call.addparameter( new Qname( "http://ws", "nome"), XMLType.XSD_STRING, ParameterMode.IN ); call.addparameter( new QName("http://ws", "length"), XMLType.XSD_INT, ParameterMode.IN ); call.setoperationname( "uploadattachmentswa" ); call.setreturntype( XMLType.AXIS_VOID ); DataHandler attachmentfile = new DataHandler( new FileDataSource( file ) ); call.setproperty( Call.ATTACHMENT_ENCAPSULATION_FORMAT, Call.ATTACHMENT_ENCAPSULATION_FORMAT_MIME); call.addattachmentpart( attachmentfile ); call.invoke( new Object[] { "Allegato.pdf", new Integer( filesize ) } ); call.removeallparameters(); 48

25 WS-Attachments con DIME (Direct Internet Message Encapsulation) unico formato supportato da Microsoft. DIME prevede un meccanismo di impacchettamento molto più efficiente del MIME. più veloce di SwA. Bassa interoperabilità sia DIME che WS-Attachments sono delle IETF Internet Drafts abbastanza datate (luglio 2002) nessuno sta portando avanti il processo di standardizzazione 49 Microsoft supporta solo DIME in.net tramite il pacchetto WSE (Web Services Enhancements). SUN lo supporta con SAAJ Axis lo supporta L uso di WS-Attachments può essere descritta direttamente nel documento WSDL che descrive il web service che utilizza l invio e la ricezione di allegati. 50

26 MTOM (SOAP Message Transmission and Optimization Mechanism) si basa su XOP (XML-binary Optimized Packaging) Working Draft della W3C tratta l'ottimizzazione dell invio di dati binari in un documento XML MTOM è anch essa una Working Draft della W3C 51 L invio di un documento come allegato è conveniente dimensione del documento non influisce su quella del messaggio SOAP: i tempi di creazione e parsing sono pressoché costanti con l aumentare della dimensione del documento il documento non deve essere codificato (come avviene invece con Base64 nel corpo) Tuttavia la non compatibilità degli standard SwA e WS-Attachments può limitare l interoperabilità 52

27 Conformità WSDL delle interfacce messaggi SOAP conforme con standards SwA e WS-Attachments servizio sviluppato con Axis opera in modo trasparente con entrambi gli standard dalla interfaccia Java di un servizio che riceve allegati, Axis non riesce a generare automaticamente una descrizione WSDL corretta del servizio Non conformità interoperabilità secondo WS-I Basic Profile Applicazioni aziendali, o anche sistemi informativi, oppure ancora elaborazione dati [M.Fowler, PoEA] Grandi quantità di dati persistenti Accesso concorrente da parte di più utenti Numerose maschere per immissione dati Spesso sono integrate con altre applicazioni 54

28 In molti casi le applicazioni nascono per soddisfare ben precise necessità di automazione di singole unità di un'organizzazione (dipartimenti), ovvero hanno lo scopo di replicare sul calcolatore consolidate procedure manuali 55 In questo scenario le applicazioni rappresentano lo strumento attraverso il quale si eseguono tutte le attività associate alla diverse fasi lungo cui si sviluppa una determinata procedura. Poiché tali applicazioni affrontano in profondità un determinato problema, si dice che hanno natura verticale. 56

29 Evoluzione delle architetture monolitiche incorporano tutte le routine per la gestione e la manipolazione dei dati non offrono altre aperture se non l'interfaccia utente 57 client/server, o a 2 livelli client: presentazione server: sorgente dati (DBMS) Database Server SQL Client Client GUI Business logic GUI Database logic Business logic Database logic 58

30 Vantaggi architettura semplice Svantaggi ridotta scalabilità richiede elevata larghezza di banda difficoltà di manutenzione logica applicativa distribuita (fat client) logica applicativa nel DBMS (stored procedures) 59 Quando la complessità della logica applicativa (regole, validazione, calcoli) è cresciuta, si sono identificati 3 livelli: Presentazione dei dati all'utente, ma anche ad un programma Dominio incorpora la logica applicativa Sorgente dati gestisce la persistenza dei dati 60

31 Client GUI Client GUI Middle-tier server Business logic Database logic Database Server RPC, DCOM, SQL 61 Solo lo sviluppo del web, e quindi la necessità di evitare la replicazione della logica di dominio in diverse interfacce, ha fatto decollare lo sviluppo delle architetture a 3 (o più) livelli In generale, si possono concepire applicazioni a N livelli. Tuttavia, le architetture a 2 o 3 livelli coprono la maggior parte delle applicazioni 62

32 Componenti in esecuzione su differenti nodi in maniera concorrente Cooperazione tra i componenti per lo svolgimento di compiti complessi Vantaggi: riusabilità dei componenti scalabilità del sistema (load balancing) condivisione di risorse alta disponibilità (fail-over) 63 La realizzazione di un sistema di applicazioni distribuite richiede un approccio differente da quello utilizzato per i sistemi centralizzati, in termini sia di architetture che di tecnologie 64

33 Protocolli e ed architetture client/server TCP/IP RPC Ambienti ad oggetti distribuiti da classi a componenti RMI DCOM CORBA EJB 65 Oggetti/componenti distribuiti presentano (anche solo per considerazioni relative alle prestazioni) una granularità meno fine rispetto alle classi un'interfaccia definita e relativamente stabile (non controllando sempre sia il client che il server) Limitati ad una singola organizzazione (o addirittura ad una sua sede) a causa di prestazioni sicurezza 66

34 Nasce dalla necessità di consolidare e aggregare il patrimonio informativo (es. data mining, data warehousing,...) integrare le procedure (es. cooperazione applicativa,...) adeguare i sistemi informativi alle misure organizzative in atto (es. fusioni, riorganizzazioni,...) maggiore competitività (es. riduzione dei tempi,...) 67 Diversi scenari: Business to consumer (B2C) utilizzata da soggetti esterni all'organizzazione es. commercio elettronico, prenotazione voli,... Business to business (B2B) scambio dati senza intervento umano es. gestione magazzino, pagamento elettronico Back-end eseguita periodicamente senza input diretto es. telecomunicazioni, invio newletter 68

35 Integrazione di applicazioni (Enterprise Application Integration, o EAI) e sistemi distribuiti sono tematiche diverse, che tuttavia si possono incontrare 69 Operazione complessa, che coinvolge ogni livello di un sistema informativo l'integrazione dei processi che realizzano le logiche aziendali deve guidare l'integrazione delle applicazioni le applicazioni devono agevolare lo scambio e l'elaborazione delle informazioni necessarie allo svolgimento dei processi punto di partenza è quindi un'attività di BPE/BPR modellazione e gestione dei processi (combinazione di attività, procedure, organizzazioni, informazioni richieste e prodotte, strumenti richiesti in ogni fase 70

36 A livello delle applicazioni, lo scopo è quello di mettere insieme dati e funzionalità di un'applicazione con quelli di un'altra. Per consentire l'integrazione delle applicazioni è necessario realizzare, oltre a quella dei processi, l'integrazione dei dati Identificazione, catalogazione e modelllazione dei dati, quindi possono essere condivisi/distribuiti tra DBMS 71 Per raggiungere una completa integrazione dei dati è necessario adottare degli standards, che promuovano la condivisione e la distribuzione dell'informazione COM+/DCOM, CORBA, EDI, JavaRMI, XML Per completare l'integrazione dei sistemi, devono essere integrate le piattaforme, ovvero le architetture, l'hardware, il software e l'infrastruttura telematica Processi e strumenti che consentano ai sistemi di comunicare in maniera ottimale e sicura 72

37 Principali architetture per la realizzazione di sistemi distribuiti: Service-Oriented Architecture (SOA) Event-Driven Architecture (EDA) Le architetture SOA ed EDA definiscono Quali sono i componenti ed i loro ruoli Le interfacce presentate da ogni componente Le modalità di interazione 73 SOA è un approccio alla progettazione client/server che prevede un accoppiamento lasco fra fornitori di servizi (service providers) e consumatori di servizi (service consumers). come anche per classi e componenti, l'obiettivo di SOA è il riuso di software, ad un livello di granularità ancora meno fine (riducendo quindi ulteriormente le dipendenze), ovvero ad un livello di astrazione più alto. netta separazione fra l'interfaccia e l'implementazione del servizio 74

38 l'interfaccia definisce un contratto tra fornitore e consumatore, e deve essere pubblica e vincolante per le parti definita a livello sintattico tramite un apposito linguaggio (IDL nel caso di Corba, WSDL nel caso di Web Services,...) progettazione per interfacce non è un concetto nuovo (può essere efficacemente applicato anche alla programmazione OO, ma nel momento in cui si travalicano i limiti di un'applicazione o addirittura di un'organizzazione esso è molto più vincolante l'implementazione realizza la logica applicativa ( business logic ), seguendo un approccio di tipo black-box 75 Nella pratica i servizi possono essere implementati: sviluppando un modulo ex-novo incapsulando un modulo software preesistente v. pattern Adapter componendo una serie di moduli preesistenti v. pattern Facade gli ultimi due consentono riuso di componenti 76

39 Ruoli: consumatore, fornitore e registro Fornitore espone una interfaccia documentata Interazioni sono tipicamente di tipo request / reply Interazioni 1:1 tra fornitore e consumatore delega dei ruoli (un fornitore può essere a sua volta un consumatore) utile un maggiore disaccoppiamento client/server find-bind-invoke (o Client-Dispatcher-Server) 77 Vantaggi: sviluppo incrementale di un sistema informativo riuso di componenti esistenti sviluppo a basso costo di nuove applicazioni (se esistono già i servizi è sufficiente comporli) chiarezza della topologia dell'applicazione (la trasparenza è imposta ad un livello più basso) 78

40 Limitazioni maggiore complessità (progetto interfaccia, stub/skeleton,... => non è vero che SOA è ingegneria del software semplice) altri falsi miti: indipendenza dalla tecnologia (per i singoli servizi, ma non per l'infrastruttura!) o dal venditore non ha senso per applicazioni in ambito locale che hanno vita breve non è raccomandato per applicazioni che richiedono un'interazione asincrona ed unidirezionale 79 Web Services sono lo strumento oggi più usato per la realizzazione di sistemi distribuiti con architettura SOA Web Services applicano i principi SOA: impongono Web Services Description Language (WSDL) per la definizione delle interfacce impongono SOAP come standard per il formato dei messaggi lasciano libertà nella scelta dei protocolli di comunicazione: HTTP, SMTP, FTP, etc. 80

41 Web Services rappresentano la soluzione che garantisce maggiore interoperabilità, e comportano oneri di gestione ridotti esistono implementazioni per numerosi linguaggi e piattaforme, e quindi consentotno il riuso di componenti già esistenti comunque, la relazione tra SOA e Web Services non è biunivoca WS rappresentano una possibile tecnologia per SOA, ma non sono l'unica; viceversa, possono essere utilizzati per implementare anche architetture diverse i WS hanno avuto e avranno ancora un ruolo non indifferente nella diffusione di SOA 81 Publish & Subscribe pubblicatore rileva cambiamenti di stato notifica i cambiamenti direttamente ai sottoscrittori 82

42 Message Oriented Middleware (MOM) consente la cooperazione applicativa secondo un modello EDA funzionalità di un Message Server scambio dei messaggi persistenza (database o file testuali) affidabilità del trasferimento filtraggio dei messaggi per ottimizzare la distribuzione 84

43 richiede standardizzazione dei messaggi realizza collegamenti 1:m (senza binding) il modulo sorgente (source) non fa (non può fare) alcuna ipotesi sulla destinazione (sink) il routing è determinato dalla destinazione e dal contenuto del messaggio per implementare nuove logiche è sufficiente aggiungere/rimuovere sorgenti e/o destinazioni 85 SOA Interazione req[/res] (bidirezionale) sincrona tipico, non necessario transazioni un nodo fa una richiesta per chiedere un'elaborazione il nodo chiamante conosce il chiamante (comunicazione diretta) e dipende da questo relazione 1:1 routing gestito dal client flusso lineare in una gerarchia di moduli interrogazione transazione composta EDA pubblicazione evento (unidirezionale) asincrona elaborazioni che si sviluppano nel tempo nodo genera un evento a seguito completamento elaborazione il nodo che genera evento non conosce chi lo processerà (comunicazione indiretta) relazione m:n routing determinato dal destinatario flussi asincroni e paralleli aggiornamento elaborazione multi-fase 86

44

45 89 ctx = new InitialContext(); Topic topic = (Topic) ctx.lookup( "topic" ); TopicConnectionFactory tcfactory = (TopicConnectionFactory) ctx.lookup( "tcf" ); ctx.close(); TopicConnection tconn = tcfactory.createtopicconnection(); TopicSession tsession = tconn.createtopicsession( true, 0 ); TopicPublisher tpublisher = tsession.createpublisher( topic ); TextMessage m = tsession.createtextmessage(); for ( int i = 0; i < N; i++ ) { m.settext( "Messaggio " + i ); tpublisher.publish( m ); } tsession.commit(); Topic publisher 90

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

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

Corso di Applicazioni Telematiche

Corso di Applicazioni Telematiche Service Oriented Architectures e Web Services Corso di Applicazioni Telematiche A.A. 20010-11 Prof. Simon Pietro Romano Università degli Studi di Napoli Federico II Facoltà di Ingegneria Cos è un Web Service?

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

Concetti base. Impianti Informatici. Web application

Concetti base. Impianti Informatici. Web application Concetti base Web application La diffusione del World Wide Web 2 Supporto ai ricercatori Organizzazione documentazione Condivisione informazioni Scambio di informazioni di qualsiasi natura Chat Forum Intranet

Dettagli

Interoperabilità e cooperazione applicativa tra sistemi informativi

Interoperabilità e cooperazione applicativa tra sistemi informativi Interoperabilità e cooperazione applicativa tra sistemi informativi Michele Ruta Dipartimento di Ingegneria Elettrica e dell Informazione Politecnico di Bari 1di 29 Indice Introduzione ai Port Community

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

POR Calabria FSE 2007/2013 Asse II Occupabilità Obiettivo operativo D1

POR Calabria FSE 2007/2013 Asse II Occupabilità Obiettivo operativo D1 Allegato n. 2 al Capitolato speciale d appalto. ENTE PUBBLICO ECONOMICO STRUMENTALE DELLA REGIONE CALABRIA POR Calabria FSE 2007/2013 Asse II Occupabilità Obiettivo operativo D1 Procedura aperta sotto

Dettagli

Sistemi Informativi Distribuiti

Sistemi Informativi Distribuiti Corso di Laurea Magistrale in Ingegneria Gestionale Corso di Sistemi Informativi Modulo II A. A. 2013-2014 SISTEMI INFORMATIVI MODULO II Sistemi Informativi Distribuiti 1 Sistemi informativi distribuiti

Dettagli

Architettura SW Definizione e Notazioni

Architettura SW Definizione e Notazioni Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - Stili Architetturali E. TINELLI Architettura SW Definizione e Notazioni Definizione ANSI/IEEE Std Std1471-2000

Dettagli

COME FARE PER. ARMONIZZARE IL SITO COL SISTEMA DI GESTIONE DOCUMENTALE DELL ENTE

COME FARE PER. ARMONIZZARE IL SITO COL SISTEMA DI GESTIONE DOCUMENTALE DELL ENTE COME FARE PER. ARMONIZZARE IL SITO COL SISTEMA DI GESTIONE DOCUMENTALE DELL ENTE Flavia Marzano marzano@cibernet.it 10/05/2004 ARPA Club Forum PA 2004 Contenuti Cenni normativi Sistema di gestione documentale:

Dettagli

Progettazione: Tecnologie e ambienti di sviluppo

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

Dettagli

Java Enterprise Edi.on. Gabriele Tolomei DAIS Università Ca Foscari Venezia

Java Enterprise Edi.on. Gabriele Tolomei DAIS Università Ca Foscari Venezia Java Enterprise Edi.on Gabriele Tolomei DAIS Università Ca Foscari Venezia Java Web Services Web Services: SOAP vs. RESTful 2 diversi.pi di Web Services I Web Services SOAP sono quelli classici Si basano

Dettagli

Introduzione all elaborazione di database nel Web

Introduzione all elaborazione di database nel Web Introduzione all elaborazione di database nel Web Prof.ssa M. Cesa 1 Concetti base del Web Il Web è formato da computer nella rete Internet connessi fra loro in una modalità particolare che consente un

Dettagli

Analisi e sperimentazione della piattaforma Web Service Notification nell ambito del controllo del traffico aereo

Analisi e sperimentazione della piattaforma Web Service Notification nell ambito del controllo del traffico aereo tesi di laurea Analisi e sperimentazione della piattaforma Web Service Notification Anno Accademico 2006/2007 relatore Ch.mo prof. Domenico Cotroneo Correlatore Ing. Christiancarmine Esposito candidato

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

Approfondimento. Web Services

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

Dettagli

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

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

fornitore di servizi utente all interazione tra utenti e sistemi

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

Dettagli

Introduzione ai Web Services Alberto Polzonetti

Introduzione ai Web Services Alberto Polzonetti PROGRAMMAZIONE di RETE A.A. 2003-2004 Corso di laurea in INFORMATICA Introduzione ai Web Services alberto.polzonetti@unicam.it Introduzione al problema della comunicazione fra applicazioni 2 1 Il Problema

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

Architetture Web. parte 1. Programmazione in Ambienti Distribuiti A.A. 2003-04

Architetture Web. parte 1. Programmazione in Ambienti Distribuiti A.A. 2003-04 Architetture Web parte 1 Programmazione in Ambienti Distribuiti A.A. 2003-04 Architetture Web (1) Modello a tre livelli in cui le interazioni tra livello presentazione e livello applicazione sono mediate

Dettagli

PROGETTI di E-government Area Sanità

PROGETTI di E-government Area Sanità PROGETTI di E-government Area Sanità Regione del Veneto Fabio Perina 15 dicembre 2004 Medici Di Base Cup IL ROGETTO Distretti Farmacie Repository Reparti Laboratori Sistema Accessi Gestore Eventi Comuni

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

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

Considera tutti i requisiti funzionali (use cases) NON deve necessariamente modellare i requisiti non funzionali

Considera tutti i requisiti funzionali (use cases) NON deve necessariamente modellare i requisiti non funzionali Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - Progettazione OO E. TINELLI Punto di Partenza Il modello di analisi E una rappresentazione minima del

Dettagli

Architettura e componenti per la cooperazione applicativa nella Pubblica Amministrazione. White Paper Oracle Novembre 2002

Architettura e componenti per la cooperazione applicativa nella Pubblica Amministrazione. White Paper Oracle Novembre 2002 Architettura e componenti per la cooperazione applicativa nella Pubblica Amministrazione White Paper Oracle Novembre 2002 Architettura e componenti Oracle per la cooperazione applicativa nella Pubblica

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-2008 Link.it s.r.l. iii COLLABORATORI TITOLO : Guida alla programmazione e integrazione di servizi in OpenSPCoop AZIONE

Dettagli

Design Patterns. Sommario. Architettura a 3 Livelli Concetti Generali Presentazione Dominio Sorgente Dati DIB 1. Design Patterns DIB 2

Design Patterns. Sommario. Architettura a 3 Livelli Concetti Generali Presentazione Dominio Sorgente Dati DIB 1. Design Patterns DIB 2 DIB 1 Sommario Architettura a 3 Livelli Concetti Generali Presentazione Dominio Sorgente Dati DIB 2 Architettura a 3 Livelli DIB 3 Architettura a 3 Livelli Presentazione Gestione dell interazione degli

Dettagli

SOAP e Web Services. SOAP: introduzione

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

Dettagli

Web services. 25/01/10 Web services

Web services. 25/01/10 Web services Web services Tecnologia per il computing distribuito standard W3C non dissimile da RMI, CORBA, EJB... Relazione con il Web Websites for humans, Web Services for software :-) un Web service ha un indirizzo

Dettagli

UNIVERSITÀ DEGLI STUDI DI FIRENZE FACOLTA DI INGEGNERIA DIPARTIMENTO DI SISTEMI E INFORMATICA. Elaborato di Tecnologie del Software per Internet

UNIVERSITÀ DEGLI STUDI DI FIRENZE FACOLTA DI INGEGNERIA DIPARTIMENTO DI SISTEMI E INFORMATICA. Elaborato di Tecnologie del Software per Internet UNIVERSITÀ DEGLI STUDI DI FIRENZE FACOLTA DI INGEGNERIA DIPARTIMENTO DI SISTEMI E INFORMATICA Elaborato di Tecnologie del Software per Internet JMSWEB 2 SISTEMA PER LO SCAMBIO DI MESSAGGI TRA APPLICAZIONI

Dettagli

Architetture Software

Architetture Software Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica Ingegneria del Software Architetture Software Giulio Destri Ing. del Sw: Architettura - 1 Scopo del modulo

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

Programmazione Java Avanzata

Programmazione Java Avanzata Programmazione Java Avanzata Accesso ai Dati Ing. Giuseppe D'Aquì Testi Consigliati Eclipse In Action Core J2EE Patterns - DAO [http://java.sun.com/blueprints/corej2eepatterns/patterns/dataaccessobject.html]

Dettagli

Descrizione generale. Architettura del sistema

Descrizione generale. Architettura del sistema Descrizione generale Sister.Net nasce dall esigenza di avere un sistema generale di Cooperazione Applicativa tra Enti nel settore dell Informazione Geografica che consenta la realizzazione progressiva

Dettagli

Sicurezza nei Web Services: Migrazione dell autenticazone di Web Services da ticket di sessione a WS-Security con token SAML

Sicurezza nei Web Services: Migrazione dell autenticazone di Web Services da ticket di sessione a WS-Security con token SAML Master Universitario di II livello in Interoperabilità Per la Pubblica Amministrazione e Le Imprese Sicurezza nei Web Services: Migrazione dell autenticazone di Web Services da ticket di sessione a WS-Security

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

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

Allegato 1 CIG 58703795FF PROCEDURA DI AFFIDAMENTO PER LA FORNITURA DI UNA PIATTAFORMA PER SERVICE MASHUP AND DELIVERY CAPITOLATO TECNICO

Allegato 1 CIG 58703795FF PROCEDURA DI AFFIDAMENTO PER LA FORNITURA DI UNA PIATTAFORMA PER SERVICE MASHUP AND DELIVERY CAPITOLATO TECNICO PROCEDURA DI AFFIDAMENTO PER LA FORNITURA DI UNA PIATTAFORMA PER SERVICE MASHUP AND DELIVERY CAPITOLATO TECNICO SOMMARIO 1 Oggetto della Fornitura... 3 2 Composizione della Fornitura... 3 2.1 Piattaforma

Dettagli

DBMS ed Applicazioni Motivazioni

DBMS ed Applicazioni Motivazioni DBMS ed Applicazioni Motivazioni Sin ora abbiamo visto SQL come linguaggio per interrogare DBMS da interfaccia interattiva Nella pratica, un efficace sfruttamento delle potenzialità dei DBMS deriva dalla

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

OLAP (On Line Analytical Processing)

OLAP (On Line Analytical Processing) OLAP (On Line Analytical Processing) Con il termine OLAP si intende la possibilità di effettuare analisi dei dati su strutture multidimensionali in maniera rapida, flessibile ed efficiente, attraverso

Dettagli

CdLM Informatica (DM 270/2004) Sistemi Distribuiti. Publish Subscribe. Angelastro Sergio Diomede Antonio Viterbo Tommaso

CdLM Informatica (DM 270/2004) Sistemi Distribuiti. Publish Subscribe. Angelastro Sergio Diomede Antonio Viterbo Tommaso CdLM Informatica (DM 270/2004) Sistemi Distribuiti Publish Subscribe Angelastro Sergio Diomede Antonio Viterbo Tommaso Outline Messaging System Messaging Benefits Synchronous and Asynchronous Call Semantics

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

Progetto di Applicazioni Software

Progetto di Applicazioni Software Progetto di Applicazioni Software Antonella Poggi Dipartimento di Informatica e Sistemistica Antonio Ruberti SAPIENZA Università di Roma Anno Accademico 2008/2009 Questi lucidi sono stati prodotti sulla

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

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

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

Progetto di Applicazioni Software

Progetto di Applicazioni Software Progetto di Applicazioni Software Antonella Poggi Dipartimento di Informatica e Sistemistica Antonio Ruberti SAPIENZA Università di Roma Anno Accademico 2010/2011 Questi lucidi sono stati prodotti sulla

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

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

Software per la gestione di musei di arte contemporanea1

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

Dettagli

Web Service Architecture

Web Service Architecture Giuseppe Della Penna Università degli Studi di L Aquila dellapenna@di.univaq.it http://dellapenna.univaq.it Engineering IgTechnology Info92 Maggioli Informatica Micron Technology Neta Nous Informatica

Dettagli

Corso di Informatica Modulo T3 B2 - Database in rete

Corso di Informatica Modulo T3 B2 - Database in rete Corso di Informatica Modulo T3 B2 - Database in rete 1 Prerequisiti Programmazione web Applicazione web Modello OSI Architettura client/server Conoscenze generali sui database Tecnologia ADO in Visual

Dettagli

Integrazione di Sistemi Informativi Sanitari attraverso l uso di Middleware Web Services

Integrazione di Sistemi Informativi Sanitari attraverso l uso di Middleware Web Services Consiglio Nazionale delle Ricerche Istituto di Calcolo e Reti ad Alte Prestazioni Integrazione di Sistemi Informativi Sanitari attraverso l uso di Middleware Web Services I. Marra M. Ciampi RT-ICAR-NA-06-04

Dettagli

CeBAS. Centrale Bandi e Avvisi Pubblici Regionali (DGR n. 1556 del 11.09.2009)

CeBAS. Centrale Bandi e Avvisi Pubblici Regionali (DGR n. 1556 del 11.09.2009) CeBAS Centrale Bandi e Avvisi Pubblici Regionali (DGR n. 1556 del 11.09.2009) Introduzione Il progetto CEBAS: la finalità è di migliorare l efficienza operativa interna dell Ente rispondere alle aspettative

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

Presentazione di Cedac Software

Presentazione di Cedac Software Agenda Presentazione di Cedac Software SOA ed ESB Analisi di un caso studio Esempi Q&A Presentazione di Cedac Software 1 2 Presentazione di Cedac Software S.r.l. Divisione Software Azienda nata nel 1994

Dettagli

Il Paradigma REST per lo sviluppo di applicazioni Web 2.0

Il Paradigma REST per lo sviluppo di applicazioni Web 2.0 tesi di laurea Anno Accademico 2006/2007 Il Paradigma REST per lo sviluppo di applicazioni Web 2.0 relatore Ch.mo prof. Domenico Cotroneo correlatore Ing. Marcello Cinque candidato Antonio Alonzi Matr.

Dettagli

Programmazione di Web Services

Programmazione di Web Services Luca Cabibbo Architetture Software Programmazione di Web Services Dispensa ASW 860 ottobre 2014 La scelta tra architetture può ben dipendere da quali sono gli svantaggi che il cliente può gestire meglio.

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

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

La Roadmap dello sviluppo per System i5: dalle Applicazioni Legacy alla SOA

La Roadmap dello sviluppo per System i5: dalle Applicazioni Legacy alla SOA IBM System i5 La Roadmap dello sviluppo per System i5: dalle Applicazioni Legacy alla SOA Massimo Marasco System i Technical Sales Support massimo_marasco@it.ibm.com Oriented Architecture (SOA) Servizio

Dettagli

8. Sistemi Distribuiti e Middleware

8. Sistemi Distribuiti e Middleware 8. Sistemi Distribuiti e Middleware Andrea Polini Ingegneria del Software Corso di Laurea in Informatica (Ingegneria del Software) 8. Sistemi distribuiti e Middleware 1 / 32 Sommario 1 Sistemi distribuiti

Dettagli

Indirizzi Internet e. I livelli di trasporto delle informazioni. Comunicazione e naming in Internet

Indirizzi Internet e. I livelli di trasporto delle informazioni. Comunicazione e naming in Internet Indirizzi Internet e Protocolli I livelli di trasporto delle informazioni Comunicazione e naming in Internet Tre nuovi standard Sistema di indirizzamento delle risorse (URL) Linguaggio HTML Protocollo

Dettagli

egovernment Stefano Bucci Un infrastruttura aperta per l integrazione e la cooperazione tra amministrazioni Sales Consultant Manager

egovernment Stefano Bucci Un infrastruttura aperta per l integrazione e la cooperazione tra amministrazioni Sales Consultant Manager egovernment Un infrastruttura aperta per l integrazione e la cooperazione tra amministrazioni Stefano Bucci Sales Consultant Manager Catania, 5 Dicembre 2002 Open e-government Un infrastruttura aperta

Dettagli

Reti locati e reti globali. Tecnologie: Reti e Protocolli. Topologia reti. Server e client di rete. Server hardware e server software.

Reti locati e reti globali. Tecnologie: Reti e Protocolli. Topologia reti. Server e client di rete. Server hardware e server software. Reti locati e reti globali Tecnologie: Reti e Protocolli Reti locali (LAN, Local Area Networks) Nodi su aree limitate (ufficio, piano, dipartimento) Reti globali (reti metropolitane, reti geografiche,

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

2.5. L'indirizzo IP identifica il computer di origine, il numero di porta invece identifica il processo di origine.

2.5. L'indirizzo IP identifica il computer di origine, il numero di porta invece identifica il processo di origine. ESERCIZIARIO Risposte ai quesiti: 2.1 Non sono necessarie modifiche. Il nuovo protocollo utilizzerà i servizi forniti da uno dei protocolli di livello trasporto. 2.2 Il server deve essere sempre in esecuzione

Dettagli

Architetture di sistema

Architetture di sistema Università di Bergamo Facoltà di Ingegneria Applicazioni Internet B Paolo Salvaneschi B1_1 V1.6 Architetture di sistema Il contenuto del documento è liberamente utilizzabile dagli studenti, per studio

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

Sommario. Introduzione... xvii. 1 Che cosa sono i servizi Web?... 1

Sommario. Introduzione... xvii. 1 Che cosa sono i servizi Web?... 1 Sommario Introduzione................................................... xvii Benvenuti!......................................................... xvii Questo libro fa al caso vostro?..........................................

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

UNIVERSITA DI FIRENZE Facoltà di Ingegneria. Persistenza Applicazioni Enterprise Uso dei modelli

UNIVERSITA DI FIRENZE Facoltà di Ingegneria. Persistenza Applicazioni Enterprise Uso dei modelli UNIVERSITA DI FIRENZE Facoltà di Ingegneria Persistenza Applicazioni Enterprise Uso dei modelli 1 IL problema della persistenza APPLICAZIONE (programmi) (oggetti) DATI PERSISTENTI (file, record) (basi

Dettagli

Il Pattern PROXY. Ex presentazione realizzata dallo studente Paolo Melchiori (matricola 65734) nell a.a. 2007-2008

Il Pattern PROXY. Ex presentazione realizzata dallo studente Paolo Melchiori (matricola 65734) nell a.a. 2007-2008 UNIVERSITÀ DEGLI STUDI DI BRESCIA FACOLTÀ DI INGEGNERIA CORSO DI LAUREA SPECIALISTICA IN INGEGNERIA INFORMATICA DIPARTIMENTO DI ELETTRONICA PER L'AUTOMAZIONE Il Pattern PROXY Ex presentazione realizzata

Dettagli

CdL MAGISTRALE in INFORMATICA A.A. 2014-15 corso di Sistemi Distribuiti. 8. Le architetture (prima parte) Prof. S.Pizzutilo

CdL MAGISTRALE in INFORMATICA A.A. 2014-15 corso di Sistemi Distribuiti. 8. Le architetture (prima parte) Prof. S.Pizzutilo CdL MAGISTRALE in INFORMATICA A.A. 2014-15 corso di Sistemi Distribuiti 8. Le architetture (prima parte) Prof. S.Pizzutilo I Sistemi Distribuiti Un Sistema Distribuito è un insieme di processori indipendenti

Dettagli

Maxpho Commerce 11. Gestione CSV. Data: 20 Settembre 2011 Versione : 1.1 Autore: Maxpho Srl

Maxpho Commerce 11. Gestione CSV. Data: 20 Settembre 2011 Versione : 1.1 Autore: Maxpho Srl Maxpho Commerce 11 Gestione CSV Data: 20 Settembre 2011 Versione : 1.1 Autore: Maxpho Srl Indice generale 1 - Introduzione... 3 1.1 - Il file CSV...3 1.2 - Modulo CSV su Maxpho... 3 1.3 - Modulo CSV Pro

Dettagli

Reti di Calcolatori. Master "Bio Info" Reti e Basi di Dati Lezione 2

Reti di Calcolatori. Master Bio Info Reti e Basi di Dati Lezione 2 Reti di Calcolatori Sommario Software di rete TCP/IP Livello Applicazione Http Livello Trasporto (TCP) Livello Rete (IP, Routing, ICMP) Livello di Collegamento (Data-Link) I Protocolli di comunicazione

Dettagli

Web Services. Scoperta del servizio UDDI. Descrizione del servizio WSDL. Accesso al servizio SOAP XML. Starto di comunicazione HTTP

Web Services. Scoperta del servizio UDDI. Descrizione del servizio WSDL. Accesso al servizio SOAP XML. Starto di comunicazione HTTP Web Services I web services servono a rendere interoperabili le applicazioni e favoriscono la loro integrazione. I servizi web sono applicazioni software che possono essere scoperte, descritte e usate

Dettagli

Progettazione di Sistemi Interattivi. Gli strati e la rete. Struttura e supporti all implementazione di applicazioni in rete (cenni)

Progettazione di Sistemi Interattivi. Gli strati e la rete. Struttura e supporti all implementazione di applicazioni in rete (cenni) Progettazione di Sistemi Interattivi Struttura e supporti all implementazione di applicazioni in rete (cenni) Docente: Daniela Fogli Gli strati e la rete Stratificazione da un altro punto di vista: i calcolatori

Dettagli

Framework. Impianti Informatici. Web application - tecnologie

Framework. Impianti Informatici. Web application - tecnologie Framework Web application - tecnologie Web Application: tecnologie 2 Java-based (J2EE) Sviluppata inizialmente da Sun Cross-platform e open source Gestire direttamente le funzionalità dell applicazione

Dettagli

Contenuti. Applicazioni di rete e protocolli applicativi

Contenuti. Applicazioni di rete e protocolli applicativi Contenuti Architettura di Internet Principi di interconnessione e trasmissione World Wide Web Posta elettronica Motori di ricerca Tecnologie delle reti di calcolatori Servizi Internet (come funzionano

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

Capitolo 16 I servizi Internet

Capitolo 16 I servizi Internet Capitolo 16 I servizi Internet Storia di Internet Il protocollo TCP/IP Indirizzi IP Intranet e indirizzi privati Nomi di dominio World Wide Web Ipertesti URL e HTTP Motori di ricerca Posta elettronica

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

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

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

Dettagli

Firewall applicativo per la protezione di portali intranet/extranet

Firewall applicativo per la protezione di portali intranet/extranet Firewall applicativo per la protezione di portali intranet/extranet Descrizione Soluzione Milano Hacking Team S.r.l. http://www.hackingteam.it Via della Moscova, 13 info@hackingteam.it 20121 MILANO (MI)

Dettagli

Architetture di sistema

Architetture di sistema Università di Bergamo Facoltà di Ingegneria Applicazioni Internet B Paolo Salvaneschi B1_1 V1.7 Architetture di sistema Il contenuto del documento è liberamente utilizzabile dagli studenti, per studio

Dettagli

Componenti Web: client-side e server-side

Componenti Web: client-side e server-side Componenti Web: client-side e server-side side Attività di applicazioni web Applicazioni web: un insieme di componenti che interagiscono attraverso una rete (geografica) Sono applicazioni distribuite logicamente

Dettagli

Tratte da (18. TECNICHE DI ACCESSO AI DATABASE IN AMBIENTE INTERNET)

Tratte da (18. TECNICHE DI ACCESSO AI DATABASE IN AMBIENTE INTERNET) Tratte da (18. TECNICHE DI ACCESSO AI DATABASE IN AMBIENTE INTERNET) Ipotesi di partenza: concetti di base del networking Le ipotesi di partenza indispensabili per poter parlare di tecniche di accesso

Dettagli

Elementi di Informatica e Programmazione

Elementi di Informatica e Programmazione Elementi di Informatica e Programmazione La Rete Internet Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Che cos è Internet? Il punto

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

Corso Web programming

Corso Web programming Corso Web programming Modulo T3 A1 Modelli di programmazione 1 Prerequisiti Concetto di rete Processi e thread Concetti generali sui database 2 1 Introduzione Un particolare ambito della programmazione

Dettagli

D3.2 Documento illustrante l architettura 3D Cloud per la realizzazione di servizi in modalità SaaS

D3.2 Documento illustrante l architettura 3D Cloud per la realizzazione di servizi in modalità SaaS D3.2 Documento illustrante l architettura 3D Cloud per la realizzazione di servizi in modalità SaaS Il modello SaaS Architettura 3D Cloud Il protocollo DCV Benefici Il portale Web EnginFrame EnginFrame

Dettagli

Appendice D. D. Web Services

Appendice D. D. Web Services D. D.1 : cosa sono I cosiddetti sono diventati uno degli argomenti più attuali nel panorama dello sviluppo in ambiente Internet. Posti al centro delle più recenti strategie di aziende del calibro di IBM,

Dettagli

Interoperabilità dei Protocolli Informatici delle pubbliche amministrazioni lucane

Interoperabilità dei Protocolli Informatici delle pubbliche amministrazioni lucane Interoperabilità dei Protocolli Informatici delle pubbliche amministrazioni lucane Incontro fornitori terze parti Potenza, 30 giugno 2011 Consorzio Integra e Centro Servizi Basilicata Regione Basilicata

Dettagli

JDBC di base. Le classi/interfacce principali di JDBC

JDBC di base. Le classi/interfacce principali di JDBC JDBC di base Java Database Connectivity è il package Java per l accesso a database relazionali il package contiene interfacce e classi astratte completa indipendenza del codice dal tipo di database o di

Dettagli