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

Save this PDF as:
 WORD  PNG  TXT  JPG

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

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

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

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

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

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

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

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

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

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

Release Notes di OpenSPCoop2. Release Notes di OpenSPCoop2

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

Dettagli

Sistemi 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Creare client statici

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

Dettagli

Architettura 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

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

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

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

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

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

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

WEBsfa: l automazione della forza vendita via Web

WEBsfa: l automazione della forza vendita via Web WEBsfa: l automazione della forza vendita via Web White Paper 1 Gennaio 2005 White Paper Pag. 1 1/1/2005 L automazione della Forza Vendita Le aziende commerciali che che sviluppano e alimentano il proprio

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

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

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

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

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

SISTEMI OPERATIVI DISTRIBUITI

SISTEMI OPERATIVI DISTRIBUITI SISTEMI OPERATIVI DISTRIBUITI E FILE SYSTEM DISTRIBUITI 12.1 Sistemi Distribuiti Sistemi operativi di rete Sistemi operativi distribuiti Robustezza File system distribuiti Naming e Trasparenza Caching

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

ICT (Information and Communication Technology): ELEMENTI DI TECNOLOGIA

ICT (Information and Communication Technology): ELEMENTI DI TECNOLOGIA ICT (Information and Communication Technology): ELEMENTI DI TECNOLOGIA Obiettivo Richiamare quello che non si può non sapere Fare alcune precisazioni terminologiche IL COMPUTER La struttura, i componenti

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

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

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

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

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

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

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

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

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

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

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

2G, l evoluzione della piattaforma Team nel Web 2.0 Roma, 7 dicembre 2011. Andrea Carnevali R&D Director GESINF S.r.l.

2G, l evoluzione della piattaforma Team nel Web 2.0 Roma, 7 dicembre 2011. Andrea Carnevali R&D Director GESINF S.r.l. 2G, l evoluzione della piattaforma Team nel Web 2.0 Roma, 7 dicembre 2011 Andrea Carnevali R&D Director GESINF S.r.l. Il progetto 2G è il nome della piattaforma che consentirà l evoluzione tecnologica

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

automation using workflow technology and web services Vassilacopoulos Med. Inform. (September 2003) vol. 28, no. 3,

automation using workflow technology and web services Vassilacopoulos Med. Inform. (September 2003) vol. 28, no. 3, Emergency healthcare process automation using workflow technology and web services M. Poulymenopoulou, F. Malamateniou, G. Vassilacopoulos Med. Inform. (September 2003) vol. 28, no. 3, 195 207 Processo

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

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

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

Dettagli

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

Programmazione Web. Introduzione

Programmazione Web. Introduzione Programmazione Web Introduzione 2014/2015 1 Un'applicazione Web (I) 2014/2015 Programmazione Web - Introduzione 2 Un'applicazione Web (II) 2014/2015 Programmazione Web - Introduzione 3 Un'applicazione

Dettagli

RMI Remote Method Invocation

RMI Remote Method Invocation RMI Remote Method Invocation [Pagina intenzionalmente vuota] (1 12 2004) slide 4:1/18 (p.106) Un applicazione RMI è un applicazione distribuita ad oggetti. Applicazione RMI tipica, strutturata in: server:

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

Internet e protocollo TCP/IP

Internet e protocollo TCP/IP Internet e protocollo TCP/IP Internet Nata dalla fusione di reti di agenzie governative americane (ARPANET) e reti di università E una rete di reti, di scala planetaria, pubblica, a commutazione di pacchetto

Dettagli

Seminario di Sistemi Distribuiti RPC su SOAP

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

Dettagli

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

Basi di dati. Corso di Laurea in Ingegneria Informatica Canale di Ingegneria delle Reti e dei Sistemi Informatici - Polo di Rieti

Basi di dati. Corso di Laurea in Ingegneria Informatica Canale di Ingegneria delle Reti e dei Sistemi Informatici - Polo di Rieti Basi di dati Corso di Laurea in Ingegneria Informatica Canale di Ingegneria delle Reti e dei Sistemi Informatici - Polo di Rieti Anno Accademico 2008/2009 Introduzione alle basi di dati Docente Pierangelo

Dettagli

Rational Unified Process Introduzione

Rational Unified Process Introduzione Rational Unified Process Introduzione G.Raiss - A.Apolloni - 4 maggio 2001 1 Cosa è E un processo di sviluppo definito da Booch, Rumbaugh, Jacobson (autori dell Unified Modeling Language). Il RUP è un

Dettagli

B.P.S. Business Process Server ALLEGATO C10

B.P.S. Business Process Server ALLEGATO C10 B.P.S. Business Process Server ALLEGATO C10 REGIONE BASILICATA DIPARTIMENTO PRESIDENZA DELLA GIUNTA REGIONALE UFFICIO SISTEMA INFORMATIVO REGIONALE E STATISTICA Via V. Verrastro, n. 4 85100 Potenza tel

Dettagli

IBM Software Demos The Front-End to SOA

IBM Software Demos The Front-End to SOA Oggi, imprese piccole e grandi utilizzano software basato sull'architettura SOA (Service-Oriented Architecture), per promuovere l'innovazione, ottimizzare i processi aziendali e migliorare l'efficienza.

Dettagli

Applicazione: Servizio periferico per l'invio telematico delle domande di nulla osta al lavoro

Applicazione: Servizio periferico per l'invio telematico delle domande di nulla osta al lavoro Riusabilità del software - Catalogo delle applicazioni Appl_vo/Verticale Applicazione: Servizio periferico per l'invio telematico delle domande di nulla osta al lavoro Amministrazione: Ministero dell Interno

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

Flavio De Paoli depaoli@disco.unimib.it

Flavio De Paoli depaoli@disco.unimib.it Flavio De Paoli depaoli@disco.unimib.it 1 Il web come architettura di riferimento Architettura di una applicazione web Tecnologie lato server: Script (PHP, Pyton, Perl), Servlet/JSP, ASP Tecnologie lato

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

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

F.O.A.M. Free Object Access Method. Un introduzione. Documento: Introduzione FOAM.doc Versione: 0.03.2k30131 Autore: Mario Meo Colombo

F.O.A.M. Free Object Access Method. Un introduzione. Documento: Introduzione FOAM.doc Versione: 0.03.2k30131 Autore: Mario Meo Colombo F.O.A.M. Free Object Access Method Un introduzione Documento: Introduzione FOAM.doc Versione: 0.03.2k30131 Autore: Mario Meo Colombo Il protocollo FOAM. FOAM (Free Object Access Method) è un protocollo

Dettagli

@2011 Politecnico di Torino. Pag. 1. Architettura distribuita. Architetture Client/Server. Architettura centralizzata. Architettura distribuita

@2011 Politecnico di Torino. Pag. 1. Architettura distribuita. Architetture Client/Server. Architettura centralizzata. Architettura distribuita Architettura client/ stazioni utente Basi di ati Architetture /Server B locali M BG Architettura centralizzata Un architettura è centralizzata quando i dati e le (programmi) risiedono in un unico Tutta

Dettagli

Cluster per architetture a componenti

Cluster per architetture a componenti Luca Cabibbo Architetture Software Cluster per architetture a componenti Dispensa ASW 442 ottobre 2014 Un buon progetto produce benefici in più aree. Trudy Benjamin 1 -Fonti [IBM] Clustering Solutions

Dettagli

NAL DI STAGING. Versione 1.0

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

Dettagli

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

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

La rete Internet. Percorso di Preparazione agli Studi di Ingegneria. Università degli Studi di Brescia. Docente: Massimiliano Giacomin

La rete Internet. Percorso di Preparazione agli Studi di Ingegneria. Università degli Studi di Brescia. Docente: Massimiliano Giacomin La rete Internet Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 Che

Dettagli