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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Parte 3 Formati Digitali per Testi

Parte 3 Formati Digitali per Testi Parte 3 Formati Digitali per Testi M. Diligenti Sistemi Gestione Documentale 1 Lo standard ASCII Come rappresentare il testo in una sequenza di bytes? ASCII (American Standard Code for Information Interchange)

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

Quando si sa chiaramente come si deve comportare l applicazione si può analizzare una possibile soluzione applicativa.

Quando si sa chiaramente come si deve comportare l applicazione si può analizzare una possibile soluzione applicativa. Introduzione alla tecnologia JMX 1 Viene analizzata l architettura sottostante le Java Managment Extensions (JMX) mostrandone un utilizzo applicativo e analizzando altri possibili scenari d uso di Ivan

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

Web Semantico e Linked (Open) Data: dal Web dei documenti al Web dei dati. Tommaso Di Noia

Web Semantico e Linked (Open) Data: dal Web dei documenti al Web dei dati. Tommaso Di Noia Web Semantico e Linked (Open) Data: dal Web dei documenti al Web dei dati Tommaso Di Noia Politecnico di Bari http://sisinflab.poliba.it/dinoia/ t.dinoia@poliba.it Il Web dei documenti Il Web dei documenti:

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

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

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

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

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

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

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

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

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

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

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

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

Università di Bergamo Facoltà di Ingegneria. Applicazioni Internet B. Paolo Salvaneschi B6_1 V1.7. JSP parte A

Università di Bergamo Facoltà di Ingegneria. Applicazioni Internet B. Paolo Salvaneschi B6_1 V1.7. JSP parte A Università di Bergamo Facoltà di Ingegneria Applicazioni Internet B Paolo Salvaneschi B6_1 V1.7 JSP parte A Il contenuto del documento è liberamente utilizzabile dagli studenti, per studio personale e

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

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

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

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

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

Descrizione e gestione di workflow documentali con una appplicazione basata su XML

Descrizione e gestione di workflow documentali con una appplicazione basata su XML Descrizione e gestione di workflow documentali con una appplicazione basata su XML Maurizio Tesconi Ufficio Italiano W3C maurizio@w3c.it Andrea Marchetti IIT-CNR Andrea.Marchetti@iit.cnr.it Oreste Signore

Dettagli

Session tracking Session tracking HTTP: è stateless, cioè non permette di associare una sequenza di richieste ad un dato utente. Ciò vuol dire che, in generale, se un browser richiede una specifica pagina

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

Creazione ed uso di un data base in ACCESS Lezioni ed esercizi

Creazione ed uso di un data base in ACCESS Lezioni ed esercizi Creazione ed uso di un data base in ACCESS Lezioni ed esercizi 1 ACCESS Gli archivi Gli archivi sono un insieme organizzato di informazioni. Aziende Clienti e fornitori Personale Magazzino Enti pubblici

Dettagli

A. Veneziani - Classe V Abacus - Elementi di elaborazione Web con supporto ai DB basati su ASP e Access

A. Veneziani - Classe V Abacus - Elementi di elaborazione Web con supporto ai DB basati su ASP e Access A. Veneziani - Classe V Abacus - Elementi di elaborazione Web con supporto ai DB basati su ASP e Access Prologo Parlando di tecnologie Web legate a Microsoft è naturale integrare le funzioni di ASP 1 con

Dettagli

Indice. Introduzione Scopi del libro Lavorare con il database di esempio Organizzazione del libro Convenzioni utilizzate in questo libro

Indice. Introduzione Scopi del libro Lavorare con il database di esempio Organizzazione del libro Convenzioni utilizzate in questo libro Indice Introduzione Scopi del libro Lavorare con il database di esempio Organizzazione del libro Convenzioni utilizzate in questo libro XVII XVII XVIII XIX XXIII PARTE PRIMA SQL Server: Concetti di base

Dettagli

SCHEDE DI INFORMATICA GLI ARCHIVI E LE BASI DI DATI

SCHEDE DI INFORMATICA GLI ARCHIVI E LE BASI DI DATI SCHEDE DI INFORMATICA GLI ARCHIVI E LE BASI DI DATI Il Database è una collezione di archivi di dati ben organizzati e ben strutturati, in modo che possano costituire una base di lavoro per utenti diversi

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

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

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

Dettagli

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

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

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

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

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

Approfondimenti. Il controllo di SQL Injection nelle pagine ASP e ASP.NET. U.A. 5 - Database in rete con le pagine ASP e ASP.

Approfondimenti. Il controllo di SQL Injection nelle pagine ASP e ASP.NET. U.A. 5 - Database in rete con le pagine ASP e ASP. U.A. 5 - Database in rete con le pagine ASP e ASP.NET 269 Il controllo di SQL Injection nelle pagine ASP e ASP.NET Approfondimenti Con il termine SQL Injection si intende l aggiunta di istruzioni SQL nell

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

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

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

Una metodologia di progettazione di applicazioni web centrate sui dati

Una metodologia di progettazione di applicazioni web centrate sui dati Una metodologia di progettazione di applicazioni web centrate sui dati A L B E R T O B E L U S S I A N N O A C C A D E M I C O 2 0 1 1 / 2 0 1 2 Progettazione logica di un sito web centrato sui dati Si

Dettagli

Web Service: Introduzione. Algoritmi e sistemi di elaborazione - Vittorio Maniezzo - Università di Bologna

Web Service: Introduzione. Algoritmi e sistemi di elaborazione - Vittorio Maniezzo - Università di Bologna Web Service: Introduzione 1 Contenuti Background.NET Framework ASP.NET Web Service Concetti e architetture Progettazione e sviluppo di Web Service Utilizzo di Web Service 2 Sezione 1: Introduzione Inquadramento

Dettagli

Progetto Automi e Linguaggi Parser svliluppato con JLex e cup

Progetto Automi e Linguaggi Parser svliluppato con JLex e cup Progetto Automi e Linguaggi Parser svliluppato con JLex e cup Sviluppato da Santoro Carlo Maurizio Matricola:0108/528 Sviluppo terminato il: 18/06/06 TRACCIA DEL PROGETTO Si costruisca, utilizzando la

Dettagli

Architettura MVC-2: i JavaBeans

Architettura MVC-2: i JavaBeans Siti web centrati sui dati Architettura MVC-2: i JavaBeans Alberto Belussi anno accademico 2008/2009 Limiti dell approccio SEVLET UNICA La servlet svolge tre tipi di funzioni distinte: Interazione con

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

PROGETTO DI UN MIDDLEWARE PER L ACCESSO REMOTO A UN REPOSITORY

PROGETTO DI UN MIDDLEWARE PER L ACCESSO REMOTO A UN REPOSITORY Giampiero Allamprese 0000260193 PROGETTO DI UN MIDDLEWARE PER L ACCESSO REMOTO A UN REPOSITORY Reti di Calcolatori LS prof. Antonio Corradi A.A. 2007/2008 ABSTRACT L obiettivo di questo progetto è la realizzazione

Dettagli

Riassunto del corso e cenni ad argomenti avanzati

Riassunto del corso e cenni ad argomenti avanzati In breve Riassunto del corso e cenni ad argomenti avanzati.. Sono tutte sequenze di bit! 1 1 0 1 0 1 0 0 0 1 2 In breve In breve > Ipertesti in HTML Informazioni di natura non omogenea, cui si

Dettagli

L ARCHIVIAZIONE E LA GESTIONE DATI ATTRAVERSO L INTERAZIONE TRA MICROSOFT ACCESS ED EXCEL 1 INTRODUZIONE

L ARCHIVIAZIONE E LA GESTIONE DATI ATTRAVERSO L INTERAZIONE TRA MICROSOFT ACCESS ED EXCEL 1 INTRODUZIONE Roccatello Ing. Eduard L ARCHIVIAZIONE E LA GESTIONE DATI ATTRAVERSO L INTERAZIONE TRA MICROSOFT ACCESS ED EXCEL 1 INTRODUZIONE Agenda Presentazione docente Definizione calendario Questionario pre corso

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

Lezione 13 Content Provider

Lezione 13 Content Provider A cura di Carlo Pelliccia Come si è visto nelle due lezioni precedenti, secondi i meccanismi di gestione della sicurezza di Android, sia i file che i database sono solitamente di esclusiva proprietà dell

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

XLAB Manuale d uso e note operative NEWS ANIMATE.

XLAB Manuale d uso e note operative NEWS ANIMATE. XLAB Manuale d uso e note operative NEWS ANIMATE. Autore:Piero De Sabbata il 31/03/2008 Logbook Autore del documento: Piero De Sabbata - 31/03/2008 Storia delle modifiche al documento Autore modifica Data

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

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

Esercitazioni di Basi di Dati

Esercitazioni di Basi di Dati Esercitazioni di Basi di Dati A.A. 2008-09 Dispense del corso Utilizzo base di pgadmin III Lorenzo Sarti sarti@dii.unisi.it PgAdmin III PgAdmin III è un sistema di progettazione e gestione grafica di database

Dettagli

Introduzione ad AJAX

Introduzione ad AJAX Introduzione ad AJAX Asynchronous Javascript And XML (PWLS 6.9, 6.10) Complementi di Tecnologie Web A.A. 2011-2012 M.Franceschet, V.Della Mea e I.Scagnetto - 1 Limitazioni delle applicazioni web tradizionali

Dettagli

Indice generale. Parte I Anatomia del Web...21. Introduzione...xiii

Indice generale. Parte I Anatomia del Web...21. Introduzione...xiii Indice generale Introduzione...xiii Capitolo 1 La sicurezza nel mondo delle applicazioni web...1 La sicurezza delle informazioni in sintesi... 1 Primi approcci con le soluzioni formali... 2 Introduzione

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

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

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

Il linguaggio SQL. è di fatto lo standard tra i linguaggi per la gestione di data base relazionali.

Il linguaggio SQL. è di fatto lo standard tra i linguaggi per la gestione di data base relazionali. (Structured Query Language) : Il linguaggio è di fatto lo standard tra i linguaggi per la gestione di data base relazionali. prima versione IBM alla fine degli anni '70 per un prototipo di ricerca (System

Dettagli

Introduzione a ASP.NET

Introduzione a ASP.NET Introduzione a ASP.NET ASP.NET è una tecnologia lato server per lo sviluppo di Web Application. È parte integrante del Microsoft.NET Framework. J2EE :.NET Framework = servlet/jsp : ASP.net Non è un semplice

Dettagli

Istituto Angioy Informatica BASI DI DATI. Prof. Ciaschetti

Istituto Angioy Informatica BASI DI DATI. Prof. Ciaschetti Istituto Angioy Informatica BASI DI DATI Prof. Ciaschetti Introduzione e prime definizioni Una Base di dati o Database è un archivio elettronico opportunamente organizzato per reperire in modo efficiente

Dettagli

DATABASE RELAZIONALI

DATABASE RELAZIONALI 1 di 54 UNIVERSITA DEGLI STUDI DI NAPOLI FEDERICO II DIPARTIMENTO DI DISCIPLINE STORICHE ETTORE LEPORE DATABASE RELAZIONALI Dott. Simone Sammartino Istituto per l Ambiente l Marino Costiero I.A.M.C. C.N.R.

Dettagli

SOLUZIONE SECONDA PROVA INFORMATICA ITC ESAME DI STATO 2002/2003 TRAMONTANA

SOLUZIONE SECONDA PROVA INFORMATICA ITC ESAME DI STATO 2002/2003 TRAMONTANA Esame di Stato Istituto Tecnico Commerciale CORSO SPERIMENTALE Progetto "MERCURIO" Indirizzo: PROGRAMMATORI Soluzione della Seconda Prova - Tema di: INFORMATICA Anno Scolastico: 2002-2003 Riflessioni e

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

Il World Wide Web. Il Web. La nascita del Web. Le idee di base del Web

Il World Wide Web. Il Web. La nascita del Web. Le idee di base del Web Il World Wide Web Il Web Claudio Fornaro ver. 1.3 1 Il World Wide Web (ragnatela di estensione mondiale) o WWW o Web è un sistema di documenti ipertestuali collegati tra loro attraverso Internet Attraverso

Dettagli