PROGETTO RUBRICA PUBBLICA ATENEO

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "PROGETTO RUBRICA PUBBLICA ATENEO"

Transcript

1 PROGETTO RUBRICA PUBBLICA ATENEO Progetto per l esame di Web 2.0. Prof. Andrea Perego Autori: Dante Attanasio Domenico Gaglioti

2 PROGETTO RUBRICA PUBBLICA ATENEO... 1 OBIETTIVI... 3 SITUAZIONE ATTUALE... 3 SOLUZIONE... 3 OVERVIEW SISTEMA... 4 Flusso informativo... 4 Autenticazione... 6 Sicurezza e Denial of service... 6 Privacy... 7 SPECIFICHE... 7 V-Card... 7 RDF/XML Web Services SOAP Web Services REST IMPLEMENTAZIONE Mappatura database Funzione di ricerca nel database Web services Fogli di stile XSLT ONTOLOGIA Rubrica_ateneo.owl Istanze dell ontologia EVOLUZIONI ATTUALE SITO WEB BIBLIOGRAFIA... 34

3 Obiettivi L obiettivo del progetto è quello di rendere disponibile, tramite protocolli standard i dati relativi ai contatti, al ruolo e alla struttura di afferenza del personale di varie tipologie che afferisce all Università degli Studi dell Insubria. Queste attività possono essere riassunte come la ristrutturazione della Rubrica Pubblica di Ateneo. Una delle prime applicazioni che usufruirà di tale servizio sarà una pagina del nuovo sito web d Ateneo. Situazione attuale Attualmente i dati della rubrica di Ateneo sono memorizzati su un database Sql Server che viene interrogato e popolato da una applicazione web realizzata in proprio all interno del centro S.I.C. con tecnologia Asp.Net e denominata Servizi On Line. Tale applicazione è usata in Ateneo per gestire le richieste e i servizi degli utenti. Tramite task pianificati denominati DTS (Data Transformation Services) di Sql Server, i dati di interesse per la rubrica pubblica vengono quotidianamente esportati sul database dell attuale sito Web nottetempo. Questa modalità di esportazione presenta grossi svantaggi: i dati esposti sulla rubrica Internet non sono aggiornati in tempo reale, ma soltanto dopo l esecuzione del task giornaliero. le procedure create per l esportazione non sono riutilizzabili per altre applicazioni i dati restano chiusi nel database e non sono disponibili per altre applicazioni Soluzione La soluzione prevede di esportare i dati tramite Internet utilizzando un formato standard: V-CARD. I dati saranno quindi interrogabili mediante 2 web service: un web service SOAP realizzato in ASP.NET e pubblicato sul server web IIS 6, già installato nei server d Ateneo. Questo servizio è pensato per l integrazione di applicazioni che necessitano di protocolli di rete sicuri e affidabili come SOAP. Un web service REST realizzato sempre in ASP.NET che sia interrogabile da chiunque, anche da un semplice browser tramite un semplice URL. Entrambi i servizi restituiranno un documento RDF/XML e sarà carico del client tradurre i dati nel formato desiderato tramite fogli di stile. Al client saranno comunque forniti dei fogli di stile

4 reperibili on-line per effettuare le trasformazioni del documento RDF nei formati più comuni, tra cui XHTML, XML e ovviamente VCARD. Una delle applicazioni già note che sfrutterà questi servizi (nel dettaglio il servizio web REST) sarà una pagina web del nuovo sito di Ateneo. Overview sistema I web services dovranno fornire i dati relativi ai contatti di una persona. Verrà interrogato il database per restituire la lista di persone trovate corrispondenti al nominativo indicato dall utente e per ognuno la lista dei suoi contatti. Per ogni utente i dati che verranno forniti saranno i seguenti: Nome e cognome Struttura di afferenza dell Ateneo Ruolo e funzione di afferenza all Ateneo (personale tecnico\amministrativo, docente, etc ) Lista di contatti (mail, fax, telefono) Flusso informativo La richiesta iniziale parte da un client, un qualsiasi agente che sia in grado di interrogare un web services SOAP o REST. In base al web services scelto dovrà passare come parametro una stringa contenente il nome (o parte di esso) che si desidera cercare. Sono accettate soltanto stringhe di almeno 5 caratteri, questo per evitare ricerche sull intera rubrica che potrebbero rallentare il server. Il servizio web userà il parametro ricevuto con la richiesta per effettuare una query sul database ed estrarre i dati. Questi saranno formattati in un documento RDF/XML come da specifiche W3C (1) per il formato VCARD, integrato con le informazioni aggiuntive dell ontologia del sistema. Il documento verrà inviato al client sfruttando lo stesso protocollo di rete usato per la richiesta iniziale. Il grafico in Figura 1 illustra il flusso informativo:

5 Figura 1 - Flusso informativo In Figura 2 è mostrato un diagramma di caso d uso, nel quale l attore utente effettua la richiesta che viene ricevuta dall attore Web Services nella sua generalizzazione (REST o SOAP) ed esegue l azione di ricerca dell utente, a sua volta composta da 3 azioni: l interrogazione al database, la creazione del documento RDF/XML e l eventuale trasformazione nel formato desiderato (XHTML,XML,VCARD). Figura 2 - Diagramma casi d'uso Infine in Figura 3 è mostrata la sequenza di una possibile interrogazione dei web services:

6 Figura 3 - Diagramma di sequenza E importante evidenziare come, per ottimizzare le richieste al WebServices, sia sufficiente una sola chiamata per ottenere tutte le informazioni richieste contenute dal documento RDF/XML. Per ottenere poi i formati desiderati il lavoro è demandato al browser che deve soltanto scaricare i fogli di stile da un repository (che al momento corrisponde allo stesso sito del WebService ma potrebbe essere spostato in qualsiasi posto ottimizzando le risorse). Autenticazione Il servizio di visualizzazione\esportazione dei dati di rubrica non richiede un processo di autenticazione, in quanto i contatti dei dipendenti dell Ateneo sono pubblici e attualmente pubblicati sul sito web dell Università dell Insubria e disponibili senza processi di autenticazione. Sicurezza e Denial of service Essendo questo servizio disponibile al pubblico è necessario predisporre dei sistemi di sicurezza che salvaguardino il servizio web da tecniche di hacking come la sql injection, il cross scripting etc Il linguaggio di programmazione ASP.NET prevede ed implementa delle tecniche che consentono di ostacolare questi meccanismi. Analizzando per esempio la tecnica di sql injection, questa tecnica consiste nello sfruttare i parametri di input del servizio web come cavallo di troia per lanciare script o comandi dannosi per il database. Questa tecnica può essere neutralizzata con

7 un attento esame dei parametri di input, prima di usarli per comporre query SQL. ASP.NET prevede l utilizzo di oggetti definiti Parameter, in cui vengono effettuati controlli sulla tipologia del parametro (intero, date time, stringa etc ) e per i parametri di tipo stringa vengono individuati pattern di stringhe potenzialmente pericolosi e neutralizzati. Per quanto riguarda invece Denial of Service, questa è una tecnica del tutto diversa, il cui obiettivo è quello di rendere il servizio web inutilizzabile sovraccaricandolo di richieste in modo che il server esaurisca le risorse disponibili per soddisfarle tutte e vada quindi in crash. Anche in questo caso, l applicazione ASP.NET prevede tecniche per evitare questo tipo di attacchi (come specificato nella documentazione msdn (2) ). Per esempio: Le richieste possono essere limitate in dimensione (default 4Mb). Per ogni richiesta di un client, viene controllato che questo sia ancora connesso prima di inserire in coda la richiesta. Questo consente di evitare che un hacker possa inviare una serie di richieste simultanee e poi si disconnetta I tempi di esecuzione di una richiesta hanno un timeout configurabile. Questo consente di evitare che una richiesta vada in loop occupando tutte le risorse del server Privacy Tutti i dati esportati dal servizio web non contengono dati sensibili, quindi non ci sono particolari problemi di privacy per la diffusione su Internet tramite i servizi web. Specifiche V-Card I dati della rubrica di Ateneo sono tipi di dati molto comuni e usati in diversi ambiti e da diversi tipi di applicazioni (client di posta, pagine web, cellualari e smart phone). E quindi importante che il web service possa esportare tali dati adattandosi alle esigenze del client che lo interroga. Sono previste quindi 4 formati possibili di diffusione de contatti di un utente: o V-CARD formattato tramite RDF/XML secondo specifiche W3C (1): questo consentirà a tutte le applicazioni web di ottenere i dati in un formato più comune, intuitivo e facilmente renderizzabile in ambito web mediante trasformazione XSLT in linguaggio XHTML. Questo è il formato che viene sempre restituito al browser. La trasformazione negli altri formati avviene tramite fogli di stile;

8 o o V-CARD trasformato in codice XHTML ottenuto tramite trasformazione con foglio di stile dal formato RDF. I dati dell utente vengono rappresentati in uno specchietto riassuntivo, con una struttura minimale, pensata per essere integrata all interno di altre applicazioni; o V-CARD formattato tramite XML: questo formato viene trasformato direttamente dal formato RDF/XML mediante un foglio di stile e ricalca in maniera fedele la struttura del documento originale, semplicemente non contiene predicati RDF. E pensato per applicazioni che non supportano RDF o V-CARD formattato come indicato nel documento RFC (3):utilizzando questo protocollo standard si consente lo scambio dei contatti tra varie applicazioni e vari dispositivi, soprattutto mobili. Nel RFC è definito il formato e i campi che saranno utilizzati per l implementazione del web service. RFC 2426 (4) è stato usato per attingere le specifiche dei campi utilizzati nella nostra implementazione. Nei contatti V-CARD verranno mappati i campi presenti sulla rubrica pubblica, quindi il nome e il cognome, i dati relativi al ruolo della persona all interno dell Ateneo e la struttura di afferenza. Infine la lista di tutti i contatti disponibili, telefoni, mail etc In Tabella 1 è presente la lista dei campi V-CARD che verranno utilizzati nel progetto: (i campi contrassegnati in rosso sono obbligatori, quindi devono essere sempre presenti in ogni contatto V- CARD): Tabella 1 - Elenco campi formato V-CARD Nome campo Descrizione Esempio MIME DIRECTORY FEATURES Name Source Usato come nome da visualizzare nelle informazioni di MIME TYPE (spesso associato al campo source) Indica l origine del contatto (solitamente un ldap, un database o un AD) IDENTIFICATION TYPES Dante Attanasio

9 fn Nome completo, seguendo la Dante Attanasio semantica X.520 Common Name Attribute n Indica le varie parti del nome, Attanasio;Dante includendo prefissi o suffissi onorifici TELECOMMUNICATIONS ADDRESSING TYPE TEL;TYPE=work Un singolo numero telefonico **** formattato in base allo standard X.500. Type indica che questo numero è lavorativo TEL;TYPE=work,cell Come sopra, per la fonia mobile ******* TEL;TYPE=work,fax Come sopra, fax **** Casella di IMPP;TYPE=sip Eventuale account sip X-SKYPE Eventuale account skype ORGANIZATIONAL TYPES TITLE Titolo della persona (inserito soltanto per il personale docente) ORG Campo fisso composta dall organizzazione e la struttura di afferenza Università Insubria;Centro SIC Esempio di contatto vcard BEGIN:VCARD VERSION:3.0 FN:DANTE ATTANASIO N:ATTANASIO;DANTE ORG:Università Insubria;CENTRO DI SERVIZI SISTEMI INFORMATIVI E COMUNICAZIONE; TEL;TYPE=WORK,CELL: TEL;TYPE=WORK,FAX:

10 TEL;TYPE=WORK: URL:www.uninsubria.it X-SKYPE:dante.attanasio X-SIP:dante.attanasio_sip END:VCARD Il formato V-CARD è un formato di testo che risulta molto leggero per la diffusione ma presenta degli svantaggi notevoli: Non è un formato strutturato Non consente di fornire una semantica delle informazioni che contiene, come relazioni tra i dati, proprietà etc Non è un documento trasformabile in formati diversi, come invece può essere un documento XML o RDF/XML RDF/XML Il Resource Description Framework (RDF) è lo strumento base proposto da W3C per la codifica, lo scambio e il riutilizzo di metadati strutturati e consente l'interoperabilità tra applicazioni che si scambiano informazioni sul Web. L'RDF Data Model si basa su tre principi chiave: 1. Qualunque cosa può essere identificata da un Universal Resource Identifier (URI). 2. The least power: utilizzare il linguaggio meno espressivo per definire qualunque cosa. 3. Qualunque cosa può dire qualunque cosa su qualunque cosa. Il W3C ha definito anche una rappresentazione in questo formato per i contatti V-CARD, in quanto il formato testuale usato dai sistemi di posta risulta poco adatto per lo scambio tra applicazioni di vario tipo, soprattutto in ambito web, per i motivi sopra descritti. I punti di forza di questa rappresentazione sono i seguenti: Formato strutturato che grazie ai predicati rdf contiene una descrizione degli oggetti rappresentati E una struttura dati derivata da xml ed è facilmente integrabile nel web2.0 grazie a protocolli di web services molto diffusi nella rete

11 Ontology Web Language è un linguaggio di markup estensione di RDF usato per rappresentare la semantica di un sistema, specificando delle classi, delle proprietà e delle relazioni tra di esse. Lo scopo di OWL è quindi quello di creare delle ontologie che descrivano delle basi di conoscenza, su cui sia possibile effettuare delle deduzioni e integrarle con altre ontologie sfruttando i diffusi strumenti e protocolli di comunicazione tipici dell ambiente web (XML, web services, http etc..). Web Services SOAP Simple Object Access Protocol è un protocollo per lo scambio di informazioni sulla rete. Il W3C ha standardizzato il tipo di servizio che sfrutta il protocollo Http per lo scambio dei pacchetti. Un oggetto SOAP si basa anch esso sul metalinguaggio XML e ha una sua struttura divisa essenzialmente in 2 parti: Il segmento opzionale Header contiene meta-informazioni come quelle che riguardano il routing, la sicurezza e le transazioni. Il segmento obbligatorio Body trasporta il contenuto informativo e talora viene detto carico utile, o payload. Questo deve seguire uno schema definito dal linguaggio XML Schema. Web Services REST Questo tipo di servizio web è stato introdotto per soddisfare i requisiti del più grosso cliente dell applicazione in oggetto, cioè il portale di Ateneo. REST non è un vero e proprio protocollo ma è più un architettura di rete che ha come principio base il concetto di risorsa (fonti di informazioni), a cui si può accedere tramite un identificatore globale (un URI). Per utilizzare le risorse, le componenti di una rete (componenti client e server) comunicano attraverso una interfaccia standard (ad es. HTTP) e si scambiano rappresentazioni di queste risorse (il documento che trasmette le informazioni). Nel nostro caso il protocollo utilizzato per la comunicazione è proprio HTTP e la risorsa è un documento RDF/XML contenente i contatti di un dipendente dell Ateneo. Implementazione Mappatura database I campi del contatto V-CARD saranno mappati sul database esistente dei Servizi On Line. In Figura 4 Schema E-R Database è specificato il diagramma completo dello schema E-R della parte di database utilizzato per la visualizzazione dei dati inerenti i contatti dell utente.

12 Figura 4 Schema E-R Database Lo schema mostra i collegamenti della tabella utenti, che ovviamente contiene i dati anagrafici dell utente. L utente può avere delle strutture di afferenza, per ogni struttura un ruolo diverso. Infine, i Servizi On Line gestiscono le richieste dell utente, in particolare la casella di posta elettronica e le utenze telefoniche. Per entrambe sono quindi presenti delle entità specifiche che gestiscono le varie tipologie di dati e lo stato in cui si trovano. Infine è presente un entità Contatti_usr che consente all utente di inserire dei contatti personali. Tutte queste tabelle saranno disponibili al web services sotto forma di una vista che effettua il join tra le diverse tabelle dello schema e che è denominata come V_RUBRICA_PUBBLICA. Su questa vista verrà effettuata questa query:

13 SELECT DISTINCT cognome,nome,ruolo FROM V_RUBRICA_PUBBLICA WHERE cognome + ' ' + nome LIKE '%?NOME%' Ogni riga di risultato rappresenta un contatto. Ogni riga contiene anche le informazioni anagrafiche dell utente, che nel caso abbia più di un contatto sono duplicate. In Tabella 2 è visualizzato un esempio dei risultati del metodo cerca_persone indicato nel paragrafo successivo. Tabella 2 - Risultati interrogazione vista Cognome Nome Ruolo Matricola Id Tipo Contatto CSA utente contatto ATTANASIO DANTE Personale Tecnico Amministrativo ATTANASIO DANTE Personale Tecnico Amministrativo ATTANASIO DANTE Personale Tecnico Amministrativo ATTANASIO DANTE Personale Tecnico Amministrativo P Fax P Tel P Cell P a.it I campi cognome e nome saranno usati per i campi name, fn e n. Ruolo mappa il campo role. Il campo id_utente e il campo matricola_csa sono due diversi identificativi dell utente, il primo sul database, il secondo nei sistemi di contabilità dell Ateneo Carriere e Stipendi. Entrambi possono essere utili in possibili integrazioni con altri sistemi. Dalle altre colonee vengono estratti i vari contatti degli utenti, ed in base al campo tipo_contatto vengono tipizzati e formattati nel rispettivo campo. I tipi di contatto per cui non è prevista una mappatura verranno ignorati. Funzione di ricerca nel database Entrambi i web services implementano una funzione principale che, data una stringa, effettua la ricerca sul database con la query sopra specificata. Il risultato della query viene quindi formattato in codice RDF/XML come specificato nei paragrafi seguenti.

14 String Cerca_persone(string nome):, passando come parametro una stringa contenente il nome (o una sua parte) restituisce un documento RDF/XML (sempre di tipo stringa) contenente la lista degli utenti corrispondenti ai criteri indicati. o Parametri: nome: Il parametro passato a questo metodo sarà utilizzato come filtro sui campi nome e cognome dell utente nel database. Deve avere almeno 5 caratteri. Nella prima versione del progetto il numero di parametri si limita al nome, ma in versioni successive si possono prevedere ulteriori filtri, per esempio sulla struttura di afferenza o sul ruolo della persona (per esempio Docente o Personale Tecnico Amministrativo). o Return value: E un documento XML/RDF che contiene la lista degli utenti corrispondenti ai criteri indicati nel parametro con la lista di tutti i dati e di tutti i contatti dell utente. La funzione è stata realizzata mediante ASP.NET e il seguente è il codice che genera il documento RDF/XML: //restituisce un documento XML con la lista degli utenti corrispondenti al pattern indicato public XmlDocument searchusers(string name,string struttura_par, string id_utente_par) //effettua la connessione al database SqlCommand cmd = conn.createcommand(); SqlCommand cmd2 = conn.createcommand(); name = name.tolower(); XmlDocument x = new XmlDocument(); DataSet ds = new DataSet(); name = name.replace("'", "''"); name = name.replace(";", ""); name = name.replace(",", ""); name = name.replace("\"", ""); //query che effettua la ricerca degli utenti sulla vista v_rubrica_pubblica cmd.commandtext = "SELECT DISTINCT id_utente,matricola_csa,cognome,nome,ruolo,tipo_contatto,contatto,struttura,indirizzo FROM V_RUBRICA_PUBBLICA "; string and=" WHERE "; //if (id_utente_par!= "") // // cmd.commandtext += and + " id_utente=" + id_utente_par; // //else //

15 if (name!= "") cmd.commandtext += and + " cognome + ' ' + nome and = " AND "; //if (struttura_par!= "") // // cmd.commandtext += and + " struttura LIKE '%" + struttura_par + "%'"; // and = " AND "; // // cmd.commandtext+=" order by id_utente,tipo_contatto,contatto"; SqlParameter par_nome = new DbType.String); par_nome.value = "%" + name + "%"; cmd.parameters.add(par_nome); SqlDataAdapter da_emp = new SqlDataAdapter(cmd); try conn.open(); //inizializzo il file di risposta caricando un file xml di template x.load(server.mappath(template)); //inizializzo le variabili string id_utente = "-1"; string matricola_csa = ""; string cognome = ""; string nome = ""; string struttura = ""; string ruolo = ""; string tipo_contatto = ""; string contatto = ""; string indirizzo = ""; XmlNodeList nodi = x.getelementsbytagname("rdf:rdf"); XmlNode root = nodi.item(0); XmlNode user = x.createelement("employee");//istanzio user per primo utilizzo int users = -1; string[] strutture=new string[5]; int i_strutture = 0; //carico la lista delle struttura da_emp.fill(ds, "employee"); for (int i = 0; i < ds.tables["employee"].rows.count; i++) if (id_utente!= ds.tables["employee"].rows[i]["id_utente"].tostring()) //incremento il contatore users++; //resetto i contatori i_strutture = 0; strutture = new string[5]; //immagazzino i nuovi dati dell'utente cognome = ds.tables["employee"].rows[i]["cognome"].tostring().trim().replace("'","''"); nome = ds.tables["employee"].rows[i]["nome"].tostring().trim().replace("'", "''"); bool isstruttura = cognome.contains("generici");

16 if (isstruttura) cognome = ""; struttura = ds.tables["employee"].rows[i]["struttura"].tostring().replace("'", "''").Replace(" ", "%20"); ruolo = ds.tables["employee"].rows[i]["ruolo"].tostring(); if (isstruttura) ruolo = "Struttura"; tipo_contatto = ds.tables["employee"].rows[i]["tipo_contatto"].tostring(); contatto = ds.tables["employee"].rows[i]["contatto"].tostring(); indirizzo = ds.tables["employee"].rows[i]["indirizzo"].tostring(); id_utente = ds.tables["employee"].rows[i]["id_utente"].tostring(); matricola_csa = ds.tables["employee"].rows[i]["matricola_csa"].tostring(); //creo il tag per il nuovo utente con l'about rdf user = x.createelement("employee",namespace_local); XmlAttribute a = x.createattribute("rdf","about",namespace_rdf); //a.value = nome + "%20" + cognome; a.value = matricola_csa; user.attributes.append(a); root.appendchild(user); XmlNode id_user = x.createelement("id_user",namespace_local); id_user.innertext = id_utente; user.appendchild(id_user); XmlNode m_csa = x.createelement("matricola_csa", NAMESPACE_LOCAL); m_csa.innertext = matricola_csa; user.appendchild(m_csa); NAMESPACE_VCARD); NAMESPACE_VCARD); NAMESPACE_RDF); NAMESPACE_VCARD); //creo i tag dei dati anagrafici vcard:fn,vcard:n (family e given name) XmlNode fn = x.createnode(xmlnodetype.element, "v", "fn", fn.innertext = nome + " " + cognome; user.appendchild(fn); XmlNode fnn = x.createnode(xmlnodetype.element, "v", "n", XmlNode rdf = x.createnode(xmlnodetype.element, "rdf", "Description", XmlNode n = x.createnode(xmlnodetype.element, "v", "family", n.innertext = cognome; rdf.appendchild(n); n = x.createnode(xmlnodetype.element, "v", "given", NAMESPACE_VCARD); n.innertext = nome; rdf.appendchild(n); fnn.appendchild(rdf); user.appendchild(fnn); //get struttura //user.appendchild(getstruttura(x,struttura,indirizzo,ruolo)); //strutture[i_strutture++] = struttura; //inserire is enrolled to n = x.createelement("isenrolledto",namespace_local); a = x.createattribute("rdf","resource",namespace_rdf); a.value = struttura;

17 n.attributes.append(a); user.appendchild(n); //se la struttura non è stata inserita, inserirla XmlNode s = getstruttura(x, struttura, indirizzo, ruolo); if (s!= null) root.appendchild(s); strutture[i_strutture++] = struttura; //aggiungo il primo contatto user.appendchild(getcontatto(x, tipo_contatto, contatto)); else //se la struttura è diversa ne inserisco un altro isenrolledto e faccio un altro check bool uguale=false; struttura = ds.tables["employee"].rows[i]["struttura"].tostring().replace("'", "''").Replace(" ", "%20"); for (int j = 0; j < strutture.length; j++) if (strutture[j]!= null) if (strutture[j] == struttura) uguale = true; break; if (!uguale) ruolo = ds.tables["employee"].rows[i]["ruolo"].tostring(); indirizzo = ds.tables["employee"].rows[i]["indirizzo"].tostring(); NAMESPACE_RDF); //inserire is enrolled to XmlNode n = x.createelement("isenrolledto",namespace_local); XmlAttribute a = x.createattribute("rdf", "resource", a.value = struttura; n.attributes.append(a); user.appendchild(n); //se la struttura non è stata inserita, inserirla XmlNode s = getstruttura(x, struttura, indirizzo, ruolo); if (s!= null) root.appendchild(s); strutture[i_strutture++] = struttura; //ricarico i dati del contatto seguente tipo_contatto = ds.tables["employee"].rows[i]["tipo_contatto"].tostring(); if (contatto!= ds.tables["employee"].rows[i]["contatto"].tostring()) //se il contatto è diverso da quello precedente lo aggiunge //questo controllo consente di evitare il problema per cui, lato database, i contatti venivano

18 //duplicati se l'utente aveva più afferenze contatto = ds.tables["employee"].rows[i]["contatto"].tostring(); //aggiungi gli ulteriori contatti user.appendchild(getcontatto(x, tipo_contatto, contatto)); catch (Exception ex) //intercetto eccezioni, in caso di errori. Popolare un file di log finally //chiudo l'ultimo contatto e chiudo il file da_emp.dispose(); ds.dispose(); conn.close(); return x; Web services L implementazione dei 2 tipi di web services è praticamente identica, cambia soltanto la modalità di connessione al servizio. Il web services SOAP è interrogabile da un client compatibile all indirizzo Il client dovrà aprire una socket, connettersi al servizio web SOAP del quale potrà vedere i metodi esposti, quindi potrà chiamare il metodo e passare il parametro. Infine otterrà un documento RDF/XML che verrà passato all applicazione che ha lanciato il client SOAP e che potrà formattare il documento sfruttuando il foglio di stile xslt disponibile on-line oppure trasformando con un foglio di stile xslt personalizzato. Il webservices REST invece non necessita di una socket di connessione, bensì è sufficiente passare il parametro name a questo URI: In Figura 5 è mostrato il risultato di una chiamata usando come parametro il pattern Attanasio :

19 Figura 5 - Esempio ricerca con un singolo risultato Il documento RDF/XML, se non specificato con altri parametri illustrati nei paragrafi seguenti,trasforma il documento in una pagina XHTML usando il foglio di stile on-line descritto in seguito. Inserendo attan anziché attanasio si ottengono 2 risultati che vengono visualizzati come mostrato in Figura 6:

20 Figura 6 - Esempio ricerca con più di 1 risultato Il codice XHTML ottenuto è volutamente minimale, in quanto questa visualizzazione serve soltanto per avere un risultato leggibile per utenti o applicazioni che non usano questo web service integrato in altre applicazioni. Inoltre, il codice generato può facilmente essere riutilizzato da altre applicazioni per integrare questi semplici specchietti all interno della propria struttura XHTML (come avviene per il portale di Ateneo mostrato in Figura 7 ).

21 Figura 7 - Risultato ricerca integrato con il sito di Ateneo Il foglio di stile usato per la trasformazione XHTML è il seguente: A sua volta il foglio di stile usa un foglio di stile CSS per la visualizzazione dei contenuti ed è disponibile anch esso on-line a questo indirizzo: E però possibile per l utente ottenere il codice RDF/XML senza che siano applicate trasformazioni; per fare ciò è sufficiente aggiungere all URI sopra indicata il parametro rdf=1 come nel seguente esempio:

22 ottenendo così il documento RDF mostrato nello specchietto seguente: <rdf:rdf xml:base="http://w3.ateneo.uninsubria.it/insubriawebservicesrest/rubrica.aspx?name="> <Employee rdf:about="p006010"> <id_user>1196</id_user> <matricola_csa>p006010</matricola_csa> <v:fn>dante ATTANASIO</v:fn> <v:n> <rdf:description> <v:family>attanasio</v:family> <v:given>dante</v:given> </rdf:description> </v:n> <isenrolledto rdf:resource="centro%20di%20servizi%20sistemi%20informativi%20e%20comunicazione"/> <v: > <rdf:description> </rdf:value> </rdf:description> </v: > <v: > <rdf:description> </rdf:description> </v: > <v: > <rdf:description> </rdf:description> </v: > <v: > <rdf:description> </rdf:description> </v: > <v:tel> <rdf:description> <rdf:value> </rdf:value> <rdf:type rdf:resource="http://www.w3.org/2001/vcard-rdf/3.0#work"/> <rdf:type rdf:resource="http://www.w3.org/2001/vcard-rdf/3.0#fax"/> </rdf:description> </v:tel> <v:tel> <rdf:description> <rdf:value> </rdf:value> <rdf:type rdf:resource="http://www.w3.org/2001/vcard-rdf/3.0#work"/> </rdf:description> </v:tel> </Employee> <OrgUnit rdf:about="centro%20di%20servizi%20sistemi%20informativi%20e%20comunicazione"> <hasemployees rdf:resource="s300167"/> <hasemployees rdf:resource="px92721"/> <hasemployees rdf:resource="p006010"/> <hasemployees rdf:resource="p001269"/> <hasemployees rdf:resource="p001110"/> <hasemployees rdf:resource="px95819"/> <hasemployees rdf:resource="p001219"/> <hasemployees rdf:resource="p006028"/>

23 <hasemployees rdf:resource="p001256"/> <hasemployees rdf:resource="p000157"/> <hasemployees rdf:resource="p001214"/> <hasemployees rdf:resource="p001169"/> <hasemployees rdf:resource="p001033"/> <hasemployees rdf:resource="p001014"/> <hasemployees rdf:resource="p001006"/> <hasemployees rdf:resource="p001258"/> <hasemployees rdf:resource="p001293"/> <hasemployees rdf:resource="p001292"/> <hasemployees rdf:resource="p035027"/> <hasemployees rdf:resource="p001103"/> <hasemployees rdf:resource="p001091"/> <hasemployees rdf:resource="p001100"/> <hasemployees rdf:resource="p001170"/> <hasemployees rdf:resource="p001266"/> <hasemployees rdf:resource="p001066"/> <hasemployees rdf:resource="p001736"/> <hasemployees rdf:resource="p001098"/> <v:org> <rdf:description> <v:orgname>universita' Insubria</v:orgname> <v:orgunit>centro%20di%20servizi%20sistemi%20informativi%20e%20comunicazione</v:orgunit> <v:orgaddress>via Valleggio COMO (Piano 0) </v:orgaddress> <v:role>personale Tecnico Amministrativo</v:role> </rdf:description> </v:org> </OrgUnit> </rdf:rdf> Passando invece il parametro xml=1, si ottiene un documento XML, che può risultare più leggero e fruibile per alcune applicazioni che non supportano il formato RDF. Il browser riceve sempre un documento in formato RDF, che però tramite il foglio di stile (disponibile on-line) sotto indicato viene trasformato direttamente dal browser nel seguente documento XML <users> <user id_user="1196" name="dante ATTANASIO"> <id_user>1196</id_user> <matricola_csa>p006010</matricola_csa> <fn>dante ATTANASIO</fn> <n> <family>attanasio</family> <given>dante</given> </n> <isenrolledto>centro DI SERVIZI SISTEMI INFORMATIVI E COMUNICAZIONE</isEnrolledTo> <org name="centro%20di%20servizi%20sistemi%20informativi%20e%20comunicazione"> <orgname>universita' Insubria</orgname> <orgunit>centro%20di%20servizi%20sistemi%20informativi%20e%20comunicazione</orgunit> <orgaddress>via Valleggio COMO (Piano 0) </orgaddress> <role>personale Tecnico Amministrativo</role> <hasemployees matricola_csa="s300167"/> <hasemployees matricola_csa="px92721"/> <hasemployees matricola_csa="p006010"/> <hasemployees matricola_csa="p001269"/>

24 <hasemployees matricola_csa="p001110"/> <hasemployees matricola_csa="px95819"/> <hasemployees matricola_csa="p001219"/> <hasemployees matricola_csa="p006028"/> <hasemployees matricola_csa="p001256"/> <hasemployees matricola_csa="p000157"/> <hasemployees matricola_csa="p001214"/> <hasemployees matricola_csa="p001169"/> <hasemployees matricola_csa="p001033"/> <hasemployees matricola_csa="p001014"/> <hasemployees matricola_csa="p001006"/> <hasemployees matricola_csa="p001258"/> <hasemployees matricola_csa="p001293"/> <hasemployees matricola_csa="p001292"/> <hasemployees matricola_csa="p035027"/> <hasemployees matricola_csa="p001103"/> <hasemployees matricola_csa="p001091"/> <hasemployees matricola_csa="p001100"/> <hasemployees matricola_csa="p001170"/> <hasemployees matricola_csa="p001266"/> <hasemployees matricola_csa="p001066"/> <hasemployees matricola_csa="p001736"/> <hasemployees matricola_csa="p001098"/> </org> </ > <tel> </tel> <fax> </fax> </user> </users> L integrazione con la pagina di ricerca del personale presente sul nuovo sito web, userà proprio questo sistema, dato che ingloberà il codice xml ottenuto dal servizio web all interno del codice XML che viene creato runtime dal CMS di Ateneo. Infine, è possibile ottenere anche il formato VCARD, semplicemente inserendo il parametro vcard=1in coda alla richiesta: In questo caso il foglio di stile usato è comunque disponibile a questo indirizzo, ma la trasformazione viene realizzata lato server per consentire al browser di ricevere il documento già con un mime type corretto, anziché come semplice stringa:

25 Questo foglio di stile trasforma il documento RDF/XML in un documento di tipo testo in formato VCARD, in modo che sia un oggetto che l utente possa salvare (Figura 8) e caricare nei vari client che supportano il formato vcard (come per esempio la maggior parte dei client di posta elettronica come mostrato in Figura 9). Figura 8 - Esempio di salvataggio file vcf

26 Figura 9 - Esempio di un contatto importato in un'applicazione di Windows I web services sono entrambi realizzati in ASP.NET ed usano un codice molto simile per chiamare la funzione sopra descritta e passare il documento RDF/XML come risposta, il seguente è il codice eseguito alla chiamata della pagina del servizio REST: protected void Page_Load(object sender, EventArgs e) if (Request.QueryString.Count > 0) //metodo che viene chiamato al caricamento della pagina if (Request.QueryString["rdf"]!= null) //se viene passato il parametro rdf=1 carico un template che non punta a nessun file xslt e restituisce l'rdf pulito template = "template_data.xml"; if (Request.QueryString["vcard"]!= null) //se viene passato il parametro vcard=1 carico un template xml che punta al foglio di stile rubrica_vcard.xslt template = "template_vcard.xml";

27 if (Request.QueryString["xml"]!= null) //se viene passato il parametro xml=1 carico un template xml che punta al foglio di stile rubrica_toxml.xslt template = "template_xml.xml"; //se nessuno dei due precedenti è stato impostato carico il template di default che usa il foglio di stile rubrica.xslt che trasforma il documento RDF\XML in un documento XHTML string name = ""; string struttura = ""; string id_user = ""; //if (Request.QueryString["name"]!= null Request.QueryString["struttura"]!=null Request.QueryString["id_user"]!=null) if (Request.QueryString["name"]!= null && Request.QueryString["name"].ToString().Length >= 4) //se il parametro name contiene dei dati name = ""; if (Request.QueryString["name"]!= null) name = Request.QueryString["name"].ToString(); struttura = ""; if (Request.QueryString["struttura"]!= null) struttura = Request.QueryString["struttura"].ToString(); id_user = ""; if (Request.QueryString["id_user"]!= null) id_user = Request.QueryString["id_user"].ToString(); if (Request.QueryString["vcard"]!= null) Response.Clear(); Response.ContentType = "text/v-card"; Response.ContentEncoding = System.Text.Encoding.UTF32; //Response.ContentEncoding = System.Text.Encoding.i; XmlDocument doc = searchusers(name, "", ""); XslCompiledTransform myxsltransform = new XslCompiledTransform(); myxsltransform.load(server.mappath("rubrica_vcard.xslt").tostring()); XmlNodeReader reader = new XmlNodeReader(doc); myxsltransform.transform(reader, null, Response.OutputStream); Response.AppendHeader("Content-Disposition", "attachment;filename=" + name + ".vcf"); Response.Flush(); Response.End(); return; else Response.Clear(); Response.ContentType = "text/xml";//imposto il mimetype if (Request.QueryString["xml"]!= null) WriteRubrica(name, struttura, id_user, Response.OutputStream, OP_SEARCH_USERS_XML); else WriteRubrica(name, struttura, id_user, Response.OutputStream, OP_SEARCH_USERS);

28 Response.Flush(); Response.End(); return; else risposta_errore(); else risposta_errore(); public void WriteRubrica(string name, string struttura, string id_user, Stream stream, int type) //XmlTextWriter ijo = (XmlTextWriter)XmlTextWriter.Create(stream); XmlWriterSettings settings = new XmlWriterSettings(); settings.encoding = new UTF8Encoding(false); //settings.encoding = Encoding.GetEncoding("UTF-32");//imposto encoding del file xml settings.indent = true; settings.omitxmldeclaration = false; using (XmlWriter writer = XmlWriter.Create(stream, settings)) XmlDocument doc = new XmlDocument();//crea un documento xml if (type == OP_SEARCH_USERS_XML) doc = searchusers(name, struttura, id_user);//richiama il metodo searchusers che restituisce il documento RDF\XML XslCompiledTransform myxsltransform = new XslCompiledTransform(); myxsltransform.load(server.mappath("rubrica_toxml.xslt").tostring()); XmlNodeReader reader=new XmlNodeReader(doc); myxsltransform.transform(reader, writer); else if (type == OP_PARS_NOT_VALID) doc.load(server.mappath("template_empty.xml")); doc.writecontentto(writer); else if (type == OP_SEARCH_USERS) doc = searchusers(name, struttura, id_user);//richiama il metodo searchusers che restituisce il documento RDF\XML else if (type == OP_SEARCH_STRUTTURE) doc = getcontattistruttura(name); else if (type == OP_LIST_STRUTTURE) doc = getlistastrutture(); doc.writecontentto(writer);//scrive il documento al writer, che è lo stream di oupput dell'oggetto Response, cioè l'oggetto che risponde alla richiesta HTTP

29 Fogli di stile XSLT I fogli di stile sono usati per 3 scopi principali nell applicazione: Il file rubrica.xslt è usato per trasformare il documento RDF/XML in un documento XHTML Il file rubrica_toxml.xslt è usato per convertire da RDF/XML a XML Il file rubrica_vcard.xslt è usato per trasformare il documento RDF/XML in un file VCARD con estensione vcf. Il file rubrica_ateneo.xslt è usato per trasformare l ontologia rubrica_ateneo.owl in un documento XHTML leggibile da un browser per gli utenti finali Rubrica.xslt Il foglio di stile rubrica.xslt, trasforma il documento RDF/XML in un documento XHTML molto semplice che presenta la lista di utenti in cui per ognuno visualizza uno specchietto con le informazioni riguardo al ruolo e alla struttura di afferenza e la lista dei contatti. Questo foglio di stile disponibile all indirizzo è la modalità di default con cui viene trasformato l output su una richiesta al servizio web REST. Ovviamente questo foglio di stile è comunque disponibile per qualsiasi applicazione abbia un documento XML aderente alla ontologia definita. Il file con il codice XSLT è raggiungibile a questo indirizzo: Rubrica_toxml.xslt Questo foglio di stile trasforma il documento RDF originario in un documento analogo ma in formato XML. Questo nasce dall esigenza di avere, per l integrazione con il portale di Ateneo, la lista dei contatti in formato diverso da RDF, non supportato dal cms, dato che la porzione di codice XML generata dal servizio WEB deve essere inglobata in un documento XML più ampio generato run-time dal CMS. L intero documento XML viene poi a sua volta trasformato con dei fogli di stile lato server dal CMS. Nei fogli di stile caricati nel cms sarà presente la parte di codice necessaria alla trasformazione in XHTML definita nel file RUBRICA.XSLT. Il file rubrica_toxml.xslt è raggiungibile a questo indirizzo:

30 Rubrica_vcard.xslt Questo foglio di stile converte il documento XML\RDF in un file testuale aderente allo standard VCARD. Nel caso ci siano più utenti nel documento originario, il formato v-card consente di inserire più contatti accodando le schede v-card nel file. Il file rubrica_vcard.xslt è disponibile a questo indirizzo: Rubrica_ateneo.xslt Questo foglio di stile traduce il documento OWL in un documento XHTML, per renderlo leggibile agli utenti che devono consultare l ontologia. Ontologia Rubrica_ateneo.owl L ontologia della nostra applicazione si basa innanzitutto su un ontologia già esistente che viene importata, cioè l ontologia VCARD ( ). Questa ontologia descrive tutte le classi, le proprietà e le relazioni necessarie per descrivere le varie tipologie di contatti esistenti e le relative associazioni ad una persona. Abbiamo esteso questa ontologia introducendo delle proprietà e delle classi più aderenti al nostro sistema riguardanti un dipendente, definito dalla classe Employee e la sua afferenza ad una unità organizzativa del nostro Ateneo, definita dalla classe OrgUnit. In Figura 10 è mostrato il diagramma di classe per l ontologia:

31 Figura 10 - Diagramma classe ontologia Le proprietà di queste 2 classi sono rappresentate a questo indirizzo: Nella classe Employee è definita la proprietà isenrolledto. Questa proprietà definisce per il soggetto Employee, il predicato isenrolledto, cioè l afferenza all oggeto, cioè una unità organizzativa. Questa proprietà ha una cardinalità minima di una unità organizzativa, cioè un dipendente deve afferire almeno ad una struttura, e non esiste invece un limite superiore. Nella classe OrgUnit è presente la proprietà inversa di isenrolledto, cioè hasemployees, nella quale per il soggetto, cioè l unità organizzativa, vale il predicato hasemployees, cioè ha afferenza con l oggetto, cioè un dipendente. Anche in questo caso, una struttura deve avere almeno 1 dipendente afferente, mentre non c è limite massimo. Infine, per la classe Employee è stato definita una data properties id_user che non era definita nell ontologia vcard e che è un attributo specifico dell ontologia della nostra applicazione web. E stata inoltre aggiunta anche la proprietà matricola_csa che rappresenta la matricola del personale nel sistema di Carriere e Stipendi di Ateneo. Questo valore viene usato per istanziare l entità Employee. Sia matricola_csa che id_user sono due valori che identificano un utente. E stato scelto di esportarli entrambi, in quanto possono essere molto utili come chiave per l integrazione in vari sistemi, come per esempio per tutti i sistemi di Ateneo che usano la matricola come chiave univoca del dipendente.

PROGETTO RUBRICA PUBBLICA ATENEO

PROGETTO RUBRICA PUBBLICA ATENEO PROGETTO RUBRICA PUBBLICA ATENEO Progetto per l esame di Web 2.0. Prof. Andrea Perego Autori: Dante Attanasio Domenico Gaglioti 1 PROGETTO RUBRICA PUBBLICA ATENEO... 1 OBIETTIVI... 3 SITUAZIONE ATTUALE...

Dettagli

Esercitazione 8. Basi di dati e web

Esercitazione 8. Basi di dati e web Esercitazione 8 Basi di dati e web Rev. 1 Basi di dati - prof. Silvio Salza - a.a. 2014-2015 E8-1 Basi di dati e web Una modalità tipica di accesso alle basi di dati è tramite interfacce web Esiste una

Dettagli

maildocpro Manuale Installazione

maildocpro Manuale Installazione maildocpro Manuale Installazione versione 3.4 maildocpro Manuale Installazione - Versione 3.4 1 Indice Indice... 2 Creazione database... 3 Database: MAILDOCPRO... 3 Database: SILOGONWEB... 5 Configurazione

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

HTML 1. HyperText Markup Language

HTML 1. HyperText Markup Language HTML 1 HyperText Markup Language Introduzione ad HTML Documenti HTML Tag di markup Formattazione del testo Collegamenti ipertestuali Immagini Tabelle Form in linea (moduli) Tecnologie di Sviluppo per il

Dettagli

APPENDICE B Le Active Server Page

APPENDICE B Le Active Server Page APPENDICE B Le Active Server Page B.1 Introduzione ad ASP La programmazione web è nata con la Common Gateway Interface. L interfaccia CGI tuttavia presenta dei limiti: ad esempio anche per semplici elaborazioni

Dettagli

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER L architettura CLIENT SERVER è l architettura standard dei sistemi di rete, dove i computer detti SERVER forniscono servizi, e computer detti CLIENT, richiedono

Dettagli

Servizi web in LabVIEW

Servizi web in LabVIEW Servizi web in LabVIEW Soluzioni possibili, come si utilizzano. 1 Soluzioni possibili WEB SERVER Dalla versione 5.1 di LabVIEW è possibile implementare un Web server che consente di operare da remoto sul

Dettagli

b) Dinamicità delle pagine e interattività d) Separazione del contenuto dalla forma di visualizzazione

b) Dinamicità delle pagine e interattività d) Separazione del contenuto dalla forma di visualizzazione Evoluzione del Web Direzioni di sviluppo del web a) Multimedialità b) Dinamicità delle pagine e interattività c) Accessibilità d) Separazione del contenuto dalla forma di visualizzazione e) Web semantico

Dettagli

Internet Architettura del www

Internet Architettura del www Internet Architettura del www Internet è una rete di computer. Il World Wide Web è l insieme di servizi che si basa sull architettura di internet. In una rete, ogni nodo (detto host) è connesso a tutti

Dettagli

Corso di Informatica. Prerequisiti. Modulo T3 B3 Programmazione lato server. Architettura client/server Conoscenze generali sui database

Corso di Informatica. Prerequisiti. Modulo T3 B3 Programmazione lato server. Architettura client/server Conoscenze generali sui database Corso di Informatica Modulo T3 B3 Programmazione lato server 1 Prerequisiti Architettura client/server Conoscenze generali sui database 2 1 Introduzione Lo scopo di questa Unità è descrivere gli strumenti

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

Enrico Fagnoni BOTK IN A NUTSHELL

Enrico Fagnoni <e.fagnoni@e-artspace.com> BOTK IN A NUTSHELL Enrico Fagnoni BOTK IN A NUTSHELL 20/01/2011 1 Business Ontology ToolKit Business Ontology Toolkit (BOTK) è un insieme estensibile di strumenti per realizzare applicazioni basate

Dettagli

RenderCAD S.r.l. Formazione

RenderCAD S.r.l. Formazione Corso Descrizione La durata di questo corso è complessivamente di ore 150 di cui 85 ore di teoria, 35 ore di pratica e 30 ore di stage in azienda. Nel nostro territorio esiste una richiesta di tale figura,

Dettagli

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

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

Dettagli

Uso dei data bases con PHP. Prof. Francesco Accaino Iis Altiero Spinelli Sesto Sa Giovanni

Uso dei data bases con PHP. Prof. Francesco Accaino Iis Altiero Spinelli Sesto Sa Giovanni Uso dei data bases con PHP Prof. Francesco Accaino Iis Altiero Spinelli Sesto Sa Giovanni MDAC MDAC è l acronimo di Microsoft Data Access Component e fa parte della tecnologia Microsoft denominata Universal

Dettagli

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment Obiettivi d esame PHP Developer Fundamentals on MySQL Environment 1.0 Ambiente di sviluppo 1.1 Web server e database MySQL Comprendere la definizione dei processi che si occupano di fornire i servizi web

Dettagli

Tecnologie e Programmazione Web

Tecnologie e Programmazione Web Presentazione 1 Tecnologie e Programmazione Web Html, JavaScript e PHP RgLUG Ragusa Linux Users Group SOftware LIbero RAgusa http://www.solira.org - Nunzio Brugaletta (ennebi) - Reti 2 Scopi di una rete

Dettagli

INFORMATICA. Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE.

INFORMATICA. Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE. INFORMATICA Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE. APPLICAZIONI WEB L architettura di riferimento è quella ampiamente diffusa ed

Dettagli

Configurazione Stampe

Configurazione Stampe Configurazione Stampe Validità: Febbraio 2013 Questa pubblicazione è puramente informativa. SISECO non offre alcuna garanzia, esplicita od implicita, sul contenuto. I marchi e le denominazioni sono di

Dettagli

Il DBMS Oracle. Express Edition. Donatella Gubiani e Angelo Montanari

Il DBMS Oracle. Express Edition. Donatella Gubiani e Angelo Montanari Gubiani & Montanari Il DBMS Oracle 1 Il DBMS Oracle Express Edition Donatella Gubiani e Angelo Montanari Il DBMS Oracle Il DBMS Oracle Oracle 10g Express Edition Il DBMS Oracle (nelle sue versioni più

Dettagli

Primi passi con Jamio Composer. Dall idea applicativa alla soluzione in pochi minuti

Primi passi con Jamio Composer. Dall idea applicativa alla soluzione in pochi minuti Primi passi con Jamio Composer Dall idea applicativa alla soluzione in pochi minuti Comporre una nuova soluzione applicativa Jamio Composer è l ambiente di modellazione della piattaforma Jamio. Le soluzioni

Dettagli

Laboratorio di RETI DI CALCOLATORI

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

Dettagli

Dispensa di database Access

Dispensa di database Access Dispensa di database Access Indice: Database come tabelle; fogli di lavoro e tabelle...2 Database con più tabelle; relazioni tra tabelle...2 Motore di database, complessità di un database; concetto di

Dettagli

HTML e Linguaggi. Politecnico di Milano Facoltà del Design Bovisa. Prof. Gianpaolo Cugola Dipartimento di Elettronica e Informazione

HTML e Linguaggi. Politecnico di Milano Facoltà del Design Bovisa. Prof. Gianpaolo Cugola Dipartimento di Elettronica e Informazione HTML e Linguaggi Politecnico di Facoltà del Design Bovisa Prof. Gianpaolo Cugola Dipartimento di Elettronica e Informazione cugola@elet.polimi.it http://home.dei.polimi.it/cugola Indice Il linguaggio del

Dettagli

HTML 1 AVVISO. Terminologia. Introduzione ad HTML. HyperText Markup Language

HTML 1 AVVISO. Terminologia. Introduzione ad HTML. HyperText Markup Language HTML 1 HyperText Markup Language AVVISO Martedì 4 ottobre in laboratorio ci saranno 2 turni: 11:00 12:15 matricole pari 12:30 13:45 matricole dispari Introduzione ad HTML Documenti HTML Tag di markup Formattazione

Dettagli

Livello cinque (Livello application)

Livello cinque (Livello application) Cap. VII Livello Application pag. 1 Livello cinque (Livello application) 7. Generalità: In questo livello viene effettivamente svolto il lavoro utile per l'utente, contiene al suo interno diverse tipologie

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

WHITE PAPER Per Sql-Injection si intendono comunemente tutti quegli attacchi ad un'applicazione, solitamente Web, in cui il programma esegue query su di un database SQL utilizzando variabili passate dall'utente

Dettagli

Architetture Web I Server Web e gli Standard della Comunicazione

Architetture Web I Server Web e gli Standard della Comunicazione Architetture Web I Server Web e gli Standard della Comunicazione Alessandro Martinelli alessandro.martinelli@unipv.it 1 Aprile 2014 Architetture Web I Server Web e gli Standard della Comunicazione Il Server

Dettagli

Tecniche Multimediali

Tecniche Multimediali Chiedersi se un computer possa pensare non è più interessante del chiedersi se un sottomarino possa nuotare Edsger Dijkstra (The threats to computing science) Tecniche Multimediali Corso di Laurea in «Informatica»

Dettagli

Il Web-Service SDMX dell ISTAT

Il Web-Service SDMX dell ISTAT Il Web-Service SDMX dell ISTAT Versione: 1.0.0 Data: 05/06/2014 Autore: Approvato da: Modifiche Versione Modifiche Autore Data Indice dei contenuti 1 Introduzione... 4 2 Creazione dell esempio d uso...

Dettagli

Ministero dell Istruzione dell Università e della Ricerca M070 ESAME DI STATO DI ISTITUTO TECNICO INDUSTRIALE

Ministero dell Istruzione dell Università e della Ricerca M070 ESAME DI STATO DI ISTITUTO TECNICO INDUSTRIALE Pag. 1/1 Sessione ordinaria 2010 Seconda prova scritta Ministero dell Istruzione dell Università e della Ricerca M070 ESAME DI STATO DI ISTITUTO TECNICO INDUSTRIALE CORSO DI ORDINAMENTO Indirizzo: INFORMATICA

Dettagli

Semantic Web: linguaggi e tecnologie

Semantic Web: linguaggi e tecnologie Corso di Laurea Specialistica in Ingegneria Gestionale Corso di Sistemi Informativi A. A. 2012-2013 Semantic Web: linguaggi e tecnologie Eufemia TINELLI Dal Web al Semantic Web: Motivazioni Il Web dovrebbe

Dettagli

Basi di dati - Basi di dati e Web

Basi di dati - Basi di dati e Web - e Web Sistemi informativi su Web e Web Il Web è nato come interfaccia di accesso a informazioni distribuite su più siti, ma specificamente predisposte pagine HTML Il Web è divenuto una piattaforma generale

Dettagli

Servizi Web del CRM. Interazione con il CRM mediante flussi XML. Validità: Febbraio 2013

Servizi Web del CRM. Interazione con il CRM mediante flussi XML. Validità: Febbraio 2013 Servizi Web del CRM Interazione con il CRM mediante flussi XML Validità: Febbraio 2013 Questa pubblicazione è puramente informativa. SISECO non offre alcuna garanzia, esplicita od implicita, sul contenuto.

Dettagli

Sistema integrato dei portali RAS: specifiche di integrazione

Sistema integrato dei portali RAS: specifiche di integrazione Sistema integrato dei portali RAS: specifiche di integrazione Linee guida tecniche per l'integrazione con il presentation layer del CMS RAS Data: File: Allegato 3 - Specifiche di integrazione SIP-RAS.odt

Dettagli

Nicolò Carandini HTTP, Web Services e RestSharp (II parte) 1

Nicolò Carandini HTTP, Web Services e RestSharp (II parte) 1 Nicolò Carandini HTTP, Web Services e RestSharp (II parte) 1 HTTP, Web Services e RestSharp Dopo aver descritto nella prima parte di quest articolo 1 le basi su cui poggia la comunicazione nel Word Wide

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

Navigazione automatica e rilevazione di errori in applicazioni web

Navigazione automatica e rilevazione di errori in applicazioni web Politecnico di Milano Navigazione automatica e rilevazione di errori in applicazioni web Relatore: Prof. Stefano Zanero Fabio Quarti F e d e r i c o V i l l a A.A. 2006/2007 Sommario Obiettivo: Illustrare

Dettagli

Questo punto richiederebbe uno sviluppo molto articolato che però a mio avviso va al di là delle possibilità fornite al candidato dal tempo a disposizione. Mi limiterò quindi ad indicare dei criteri di

Dettagli

CAPITOLO 10 - TECNOLOGIA ASP.NET - WEB FORM

CAPITOLO 10 - TECNOLOGIA ASP.NET - WEB FORM INTRODUZIONE Nel capitolo 5, dedicato all ambiente di sviluppo, si è descritto come implementare un progetto Web tramite lo strumento di sviluppo Microsoft Visual Studio 2010. Un progetto web (o sito web)

Dettagli

19. LA PROGRAMMAZIONE LATO SERVER

19. LA PROGRAMMAZIONE LATO SERVER 19. LA PROGRAMMAZIONE LATO SERVER Introduciamo uno pseudocodice lato server che chiameremo Pserv che utilizzeremo come al solito per introdurre le problematiche da affrontare, indipendentemente dagli specifici

Dettagli

Corso di Laurea Specialistica in Ingegneria Informatica. Corso di Linguaggi e Tecnologie Web A. A. 2011-2012. Real world Semantics.

Corso di Laurea Specialistica in Ingegneria Informatica. Corso di Linguaggi e Tecnologie Web A. A. 2011-2012. Real world Semantics. Corso di Laurea Specialistica in Ingegneria Informatica Corso di Linguaggi e Tecnologie Web A. A. 2011-2012 Real world Semantics Eufemia TINELLI Pubblicare metadati su Web Pubblicare file RDF sul web MIME-type

Dettagli

Sommario 1 INTRODUZIONE...3 2 OVERVIEW...4 3 L ARCHITETTURA DI KENDO...6 4 REQUISITI TECNICI...19. Kendo: Datasheet. 2.1 Target di riferimento...

Sommario 1 INTRODUZIONE...3 2 OVERVIEW...4 3 L ARCHITETTURA DI KENDO...6 4 REQUISITI TECNICI...19. Kendo: Datasheet. 2.1 Target di riferimento... Sommario 1 INTRODUZIONE...3 2 OVERVIEW...4 2.1 Target di riferimento... 4 2.2 Scenari d uso e applicazioni... 5 3 L ARCHITETTURA DI KENDO...6 3.1 Analyzing... 7 3.1.1 Crawling... 8 3.1.2 3.1.3 Grabbing

Dettagli

Architetture Web I Server Web e gli Standard della Comunicazione

Architetture Web I Server Web e gli Standard della Comunicazione Architetture Web I Server Web e gli Standard della Comunicazione Alessandro Martinelli alessandro.martinelli@unipv.it 27 Marzo 2012 Architetture Architetture Web Protocolli di Comunicazione Il Client Side

Dettagli

PROGRAMMA CORSO Analista Programmatore JAVA - ORACLE

PROGRAMMA CORSO Analista Programmatore JAVA - ORACLE PROGRAMMA CORSO Analista Programmatore JAVA - ORACLE 1. JAVA 1.1 Introduzione a Java Introduzione Cosa è Java 1.2 Sintassi e programmazione strutturata variabili e metodi tipi di dati, array operatori

Dettagli

Architettura del Directory Service D Ateneo Alessandro Cantelli

Architettura del Directory Service D Ateneo Alessandro Cantelli Architettura del Directory Service D Ateneo Alessandro Cantelli Seminario Ingegneria Bologna, 2/03/2006 Introduzione ai sistemi di Identity Management e Directory Service Struttura logica e fisica della

Dettagli

BIMPublisher Manuale Tecnico

BIMPublisher Manuale Tecnico Manuale Tecnico Sommario 1 Cos è BIMPublisher...3 2 BIM Services Console...4 3 Installazione e prima configurazione...5 3.1 Configurazione...5 3.2 File di amministrazione...7 3.3 Database...7 3.4 Altre

Dettagli

ALLEGATO C STANDARD TECNICI DELLA BORSA CONTINUA NAZIONALE DEL LAVORO

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

Dettagli

Introduzione a RDF (Resource Description Framework)

Introduzione a RDF (Resource Description Framework) Introduzione a RDF (Resource Description Framework) Abbiamo visto che uno degli obiettivi del Web Semantico è quello di rendere le risorse comprensibili e utilizzabili da agenti software. Un ruolo molto

Dettagli

FileMaker Server 12. Pubblicazione Web personalizzata con XML

FileMaker Server 12. Pubblicazione Web personalizzata con XML FileMaker Server 12 Pubblicazione Web personalizzata con XML 2007 2012 FileMaker, Inc. Tutti i diritti riservati. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker e Bento

Dettagli

L Iniziativa egovernment.net per l Italia

L Iniziativa egovernment.net per l Italia L Iniziativa egovernment.net per l Italia Porte di Dominio per la Cooperazione Applicativa Allegato 1 Porta di Dominio.NET Versione 1.0, Aprile 2002 Soluzioni per l Interoperabilità e la Cooperazione Applicativa

Dettagli

AJAX. Goy - a.a. 2006/2007 Servizi Web 1. Cos'è il Web 2.0

AJAX. Goy - a.a. 2006/2007 Servizi Web 1. Cos'è il Web 2.0 AJAX Goy - a.a. 2006/2007 Servizi Web 1 Cos'è il Web 2.0 Web 2.0 = termine introdotto per la prima volta nel 2004 come titolo di una conferenza promossa dalla casa editrice O Reilly L'idea è che ci si

Dettagli

Come funziona internet

Come funziona internet Come funziona internet Architettura client server URL/URI Richiesta (Request) Risposta (Response) Pagina url e uri Uno Uniform Resource Identifier (URI, acronimo più generico rispetto ad "URL") è una stringa

Dettagli

Architettura Connettore Alfresco Share

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

Dettagli

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

Concetti fondamentali dei database database Cos'è un database Principali database

Concetti fondamentali dei database database Cos'è un database Principali database Concetti fondamentali dei database Nella vita di tutti i giorni si ha la necessità di gestire e manipolare dati. Le operazioni possono essere molteplici: ricerca, aggregazione con altri e riorganizzazione

Dettagli

Il Protocollo HTTP e la programmazione di estensioni Web

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

Dettagli

Indice PARTE PRIMA L INIZIO 1

Indice PARTE PRIMA L INIZIO 1 Indice Introduzione XIII PARTE PRIMA L INIZIO 1 Capitolo 1 Esplorare il World Wide Web 3 1.1 Come funziona il World Wide Web 3 1.2 Browser Web 10 1.3 Server Web 14 1.4 Uniform Resource Locators 15 1.5

Dettagli

MANUALE DI INTEGRAZIONE API SMSSmart (v 2.2)

MANUALE DI INTEGRAZIONE API SMSSmart (v 2.2) MANUALE DI INTEGRAZIONE API SMSSmart (v 2.2) Questo documento contiene le informazioni necessarie per l interfacciamento con il gateway SMS di SMSSmart. Il suo utilizzo è riservato ai clienti che abbiano

Dettagli

createsession existssession alivesession deletesession deleteallsession getcredit getcreditsubaccount addtransactionsubaccount addsubaccount

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

Dettagli

JDBC: Introduzione. Java Database Connectivity (JDBC): parte 1. Schema dei legami tra le classi principali. Principali classi/interfacce di JDBC

JDBC: Introduzione. Java Database Connectivity (JDBC): parte 1. Schema dei legami tra le classi principali. Principali classi/interfacce di JDBC JDBC: Introduzione Java Database Connectivity (JDBC): parte 1 Gianluca Moro DEIS - Università di Bologna gmoro@deis.unibo.it Java Database Connectivity è il package Java per l accesso a database relazionali

Dettagli

Esercizi di JavaScript

Esercizi di JavaScript Esercizi di JavaScript JavaScript JavaScript é un linguaggio di programmazione interpretato e leggero, creato dalla Netscape. E' presente a patire da Netscape 2 in tutti i browser ed é dunque il linguaggio

Dettagli

XML INVITO ALLO STUDIO EUROPEAN NETWORK OF INNOVATIVE SCHOOLS

XML INVITO ALLO STUDIO EUROPEAN NETWORK OF INNOVATIVE SCHOOLS XML INVITO ALLO STUDIO EUROPEAN NETWORK OF INNOVATIVE SCHOOLS CSS e XML Per formatare i documenti XML è possibile seguire due strade: Quando non c è bisogno della potenza elaborativa di XSL, l utilizzo

Dettagli

BizTalk server fa parte dell offerta di Microsoft per la grande azienda.

BizTalk server fa parte dell offerta di Microsoft per la grande azienda. Web Service Dopo le applicazioni desktop e quelle per Internet, i servizi Web sono la terza componente essenziale delle applicazioni.net. I Web Service sono una nuova tecnologia che permette la realizzazione

Dettagli

Siti web centrati sui dati Architettura MVC-2: i JavaBeans

Siti web centrati sui dati Architettura MVC-2: i JavaBeans Siti web centrati sui dati Architettura MVC-2: i JavaBeans 1 ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010 Limiti dell approccio SEVLET UNICA La servlet svolge tre tipi di funzioni distinte: Interazione con

Dettagli

ProgettoSMS. Manuale Gateway Web Services

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

Dettagli

Web Services Dogane LINEE GUIDA

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

Dettagli

La Document Orientation. Come implementare un interfaccia

La Document Orientation. Come implementare un interfaccia La Document Orientation Come implementare un interfaccia Per eliminare l implementazione di una interfaccia da parte di una classe o documento, occorre tirarla su di esso tenendo premuto il tasto ctrl.

Dettagli

CdL MAGISTRALE in INFORMATICA

CdL MAGISTRALE in INFORMATICA 05/11/14 CdL MAGISTRALE in INFORMATICA A.A. 2014-2015 corso di SISTEMI DISTRIBUITI 7. I processi : il naming Prof. S.Pizzutilo Il naming dei processi Nome = stringa di bit o di caratteri utilizzata per

Dettagli

OnLine Italiano Manuale dell utente

OnLine Italiano Manuale dell utente OnLine Italiano Manuale dell utente Versione documentazione: ITA2005-a Informazioni sul Copyright Il software descritto in questo documento e tutti i dati inclusi nel pacchetto di installazione sono forniti

Dettagli

Master in Evidence-Based Practice e Metodologia della Ricerca Clinico Assistenziale Mita Parenti. Introduzione ai Database Relazionali

Master in Evidence-Based Practice e Metodologia della Ricerca Clinico Assistenziale Mita Parenti. Introduzione ai Database Relazionali Master in Evidence-Based Practice e Metodologia della Ricerca Clinico Assistenziale Mita Parenti Introduzione ai Database Relazionali Obiettivo e Struttura del corso Comprendere i concetti e gli aspetti

Dettagli

JDBC versione base. Le classi/interfacce principali di JDBC

JDBC versione base. Le classi/interfacce principali di JDBC JDBC versione base Java Database Connectivity è il package Java per l accesso a database relazionali il package contiene interfacce e classi astratte uno dei pregi è la completa indipendenza del codice

Dettagli

DATABASE. Progettare una base di dati. Database fisico e database logico

DATABASE. Progettare una base di dati. Database fisico e database logico DATABASE Progettare una base di dati Database fisico e database logico Un DB è una collezione di tabelle, le cui proprietà sono specificate dai metadati Attraverso le operazioni sulle tabelle è possibile

Dettagli

Java Server Pages (JSP) JSP o Servlet? Java Server Pages (JSP) Java Server Pages Costituiscono un estensione della tecnologia delle servlet

Java Server Pages (JSP) JSP o Servlet? Java Server Pages (JSP) Java Server Pages Costituiscono un estensione della tecnologia delle servlet Java Server Pages (JSP) Introduzione alle JSP Linguaggio di scripting lato server HTML-embedded Una pagina JSP contiene sia HTML sia codice Il client effettua la richiesta per la pagina JSP La parte HTML

Dettagli

Il Web-Service SDMX dell ISTAT

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

Dettagli

Capitolo 4 Pianificazione e Sviluppo di Web Part

Capitolo 4 Pianificazione e Sviluppo di Web Part Capitolo 4 Pianificazione e Sviluppo di Web Part Questo capitolo mostra come usare Microsoft Office XP Developer per personalizzare Microsoft SharePoint Portal Server 2001. Spiega come creare, aggiungere,

Dettagli

DOCFINDERWEB SERVICE E CLIENT

DOCFINDERWEB SERVICE E CLIENT DOCFINDERWEB SERVICE E CLIENT Specifiche tecniche di interfacciamento al Web Service esposto da DocPortal Versione : 1 Data : 10/03/2014 Redatto da: Approvato da: RICCARDO ROMAGNOLI CLAUDIO CAPRARA Categoria:

Dettagli

Sistemi Informativi e WWW

Sistemi Informativi e WWW Premesse Sistemi Informativi e WWW WWW: introduce un nuovo paradigma di diffusione (per i fornitori) e acquisizione (per gli utilizzatori) delle informazioni, con facilità d uso, flessibilità ed economicità

Dettagli

RDF RDFS RDF/XML. Dott.sa Vincenza Anna Leano vincenzaanna.leano@unina.it. Basi di Dati II mod. B Prof. F. Cutugno A.A. 2010/2011

RDF RDFS RDF/XML. Dott.sa Vincenza Anna Leano vincenzaanna.leano@unina.it. Basi di Dati II mod. B Prof. F. Cutugno A.A. 2010/2011 RDF RDFS RDF/XML Dott.sa Vincenza Anna Leano vincenzaanna.leano@unina.it Basi di Dati II mod. B Prof. F. Cutugno A.A. 2010/2011 ESEMPIO Concetto Il prof Cutugno insegna Basi di Dati II Rappresentazione

Dettagli

Introduzione al Semantic Web

Introduzione al Semantic Web Corso di Laurea Specialistica in Ingegneria Gestionale Corso di Sistemi Informativi Modulo II A. A. 2013-2014 Giuseppe Loseto Dal Web al Semantic Web 2 Dal Web al Semantic Web: Motivazioni Il Web dovrebbe

Dettagli

Personalizzazione Stampe

Personalizzazione Stampe Personalizzazione Stampe Validità: Dicembre 2013 Questa pubblicazione è puramente informativa. 24 ORE SOFTWARE non offre alcuna garanzia, esplicita od implicita, sul contenuto. I marchi e le denominazioni

Dettagli

Attacchi alle applicazioni web: SQL injection e Cross-site scripting (XSS)

Attacchi alle applicazioni web: SQL injection e Cross-site scripting (XSS) UNIVERSITÀ DEGLI STUDI DI CATANIA Facoltà di Ingegneria Corso di laurea Specialistica in Ingegneria Informatica Tesina di Sicurezza nei Sistemi informativi Simona Ullo Attacchi alle applicazioni web: SQL

Dettagli

PHP e MySQL. Guida scaricata da www.webstyling.it

PHP e MySQL. Guida scaricata da www.webstyling.it Home -> Manuali & Tutorials -> Guida PHP PHP e MySQL E' possibile realizzare delle applicazioni in php appoggiandosi ad un database, quale ad esempio MySQL. Con le novità introdotte ai tempi di MySQL 4.1

Dettagli

FileMaker 12. Guida ODBC e JDBC

FileMaker 12. Guida ODBC e JDBC FileMaker 12 Guida ODBC e JDBC 2004 2012 FileMaker, Inc. Tutti i diritti riservati. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker e Bento sono marchi di FileMaker, Inc.

Dettagli

FormScape V3.1: SUPPORTO XML

FormScape V3.1: SUPPORTO XML FormScape V3.1: SUPPORTO Maggio 2004 FormScape V3, la Soluzione Intelligente per Creare, Gestire, Visualizzare e Distribuire i Tuoi Documenti FormScape V3 Page 1 Introduzione Il formato si sta affermando

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

Approfondimento: i sistemi di gestione delle basi di dati (DBMS)

Approfondimento: i sistemi di gestione delle basi di dati (DBMS) Approfondimento: i sistemi di gestione delle basi di dati (DBMS) Prerequisito essenziale della funzionalità delle basi di dati è il controllo e la fruibilità dell informazione in esse contenuta: a tale

Dettagli

Internet e Tecnologia Web

Internet e Tecnologia Web INTERNET E TECNOLOGIA WEB Corso WebGis per Master in Sistemi Informativi Territoriali AA 2005/2006 ISTI- CNR c.renso@isti.cnr.it Internet e Tecnologia Web...1 TCP/IP...2 Architettura Client-Server...6

Dettagli

Corso di Informatica Modulo T3 B1 Programmazione web

Corso di Informatica Modulo T3 B1 Programmazione web Corso di Informatica Modulo T3 B1 Programmazione web 1 Prerequisiti Architettura client/server Elementi del linguaggio HTML web server SQL server Concetti generali sulle basi di dati 2 1 Introduzione Lo

Dettagli

LABORATORIO. 2 Lezioni su Basi di Dati Contatti:

LABORATORIO. 2 Lezioni su Basi di Dati Contatti: PRINCIPI DI INFORMATICA CORSO DI LAUREA IN SCIENZE BIOLOGICHE Gennaro Cordasco e Rosario De Chiara {cordasco,dechiara}@dia.unisa.it Dipartimento di Informatica ed Applicazioni R.M. Capocelli Laboratorio

Dettagli

Nuvola It Data Space

Nuvola It Data Space MANUALE UTENTE INDICE 1. Descrizione servizio... 3 1.1. Informazioni sul servizio di Telecom Italia... 3 1.2. Ruoli e Autenticazione per il servizio di Telecom Italia... 3 1.3. Strumenti... 5 1.4. Documentazione...

Dettagli

Tecnologie per il Web. Il web: Architettura HTTP HTTP. SSL: Secure Socket Layer

Tecnologie per il Web. Il web: Architettura HTTP HTTP. SSL: Secure Socket Layer Tecnologie per il Web Il web: architettura e tecnologie principali Una analisi delle principali tecnologie per il web Tecnologie di base http, ssl, browser, server, firewall e proxy Tecnologie lato client

Dettagli

Web Intelligence. Argomenti 10/5/2010. abaroni@yahoo.com

Web Intelligence. Argomenti 10/5/2010. abaroni@yahoo.com Web Intelligence Argomenti Cap.1 Introduzione Cap.2 Creazione/Modifica di QUERY (semplici,custom,unioni) Cap.3 Uso dei Filtri e delle Condizioni Slide 2 - Copyright 2007 Business Objects SA - All Rights

Dettagli

Definizione delle interfacce di colloquio fra le componenti

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

Dettagli

Laboratorio di reti II: Java Server Pages

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

Dettagli

Enterprise @pplication Integration Software S.r.l.

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

Dettagli