UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA Facoltà di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica Enterprise Information Portal: integrazione di servizi Web mediante portlet sviluppato con tecnologia Open Source Relatore Ing. Maurizio Vincini Correlatore Ing. Francesco Guerra Tesi di Laurea Luca Bonzagni Buongiorno, Mi chiamo Luca Bonzagni e nel corso della tesi mi sono occupato degli Enterprise Information Portal e dell’integrazione di servizi Web mediante portlet sviluppati con tecnologia Open Source. Anno Accademico 2001-2002
Parte della tesi è frutto di uno stage sostenuto presso GruppoPro S. p Parte della tesi è frutto di uno stage sostenuto presso GruppoPro S.p.a. di Crespellano (BO). Parte del lavoro che presento è frutto di uno stage che ho sostenuto in Gruppo Pro, azienda leader nel settore dell’Information Comunication Tecnology italiano Che da oltre 20 anni sviluppa e fornisce soluzioni informatiche per la gestione d’impresa. Come descritto nella slide questa azienda ha sede centrale a Crespellano in provincia di Bologna.
Nascita della Extended Enterprise Introduzione: Nascita della Extended Enterprise “Azienda capace di estendersi oltre i propri confini fisici aziendali grazie all’aiuto di sistemi informatici connessi in rete” Problemi: Recupero dati da sorgenti eterogenee La larga diffusione di Internet anche in ambito aziendale dovuta principalmente alla semplicità d’uso e ai bassi costi della connettività ha reso possibile in questi anni la nascita delle prime Extended Enterprise cioè di Aziende capaci di estendersi realmente oltre i propri confini fisici aziendali grazie all’utilizzo di sistemi informatici in grado di collegare processi interni all’azienda con processi extraziendali, attraverso l’uso delle reti. La nascita di queste prime Aziende estese pone le aziende produttrici di soluzioni informatiche come Gruppo Pro di fronte a tre fondamentali problematiche : La necessità di creare software in grado di recupero dati provenienti da sorgenti eterogenee. (applicazioni,database gerarchici,documenti strutturati,documenti non strutturati,servizi fruibili da web) 2) Gestire ed unificare le informazioni recuperate in modo da poter fornire conoscenza e servizi completi agli utilizzatori 3) Creare una infrastruttura informatica capace di Integrare i servizi e le informazioni recuperate in un unico punto di accesso chiamato Enterprise Information Portal. Gestire ed unificare le informazioni recuperate Integrare le informazioni ed i servizi recuperati in un unico punto di accesso chiamato “Enterprise Information Portal”
Definizione: Enterprise Information Portal Introduzione: Definizione: Enterprise Information Portal È un sistema di distribuzione di informazioni basato sul Web Evolve le tecnologie dei Portali Internet quali Excite, Msn, Yahoo! Portal Services: personalizzazione dei contenuti personalizzazione della loro rappresentazione (del Layout) l’Enterprise Information Portal si può definire come: un sistema di distribuzione delle informazioni basato sul web che evolve/estendo le tecnologie dei moderni portali come Excite,Msn e Yahoo rendendoli interattivi ad un livello superiore. Infatti gli EIP permettono di personalizzare i contenuti del portale (cioè l’utente può scegliere quali servizi ed informazioni visualizzare) e di personalizzare la loro visualizzazione (cioè di decidere il layout della propria pagina).
Obiettivo della tesi: 1. Analisi di EIP commerciali “WebSphere” prodotto da IBM “MySAP Portal” prodotto da SAP “BEA WebLogicPortal” di BEA 2. Analisi di un EIP OpenSource: Jetspeed Architettura e Tecnologie integrate Strumenti per la pubblicazione Sviluppo di un portlet per l’integrazione di servizi Web L’Obiettivo della tesi è stato innanzitutto visualizzare la situazione attuale in ambito commerciale degliEIP. A tale scopo sono stati analizzati i prodotti di IBM,SAP e BEA. Quindi si è rivolta l’attenzione verso la tecnologia OpenSource ed in particolar modo verso Jetspeed che attualmente risulta uno dei prodotti più completi per la realizzazione di Enterprise Information Portal. Di Jetspeed si è analizzata in dettaglio l’architettura, la tecnologia integrata e gli strumenti dedicati alla pubblicazione dei contenuti nel web. A conclusione della tesi si è realizzato un’applicativo capace di integrare, nel contesto di un EIP, servizi Web disponibili nel sito universitario. Il fatto che per accedere ai servizi universitari occorra superare fase di autenticazioni diverse a seconda degli amministratori del sistema, è stato necessario analizzare le varie tipologie standard di autenticazione. Quindi è stato fatto lo sviluppo ed il deployment del portlet nel server universitario. Dopo vedremo una breve demo. Analisi delle procedure di autenticazione Sviluppo e deployment del portlet
Come si presenta un EIP all’utente Dal punto di vista dell’utente un EIP si presenta come una comune pagina WEB con alcuni settori caratteristici; In particolare si nota Un settore di Personalization , nel quale il portale riconosce l’utente connesso. Chiaramente tale riconoscimento avviene tramite un fase di Login al portale nella quale è possibile suddividere gli utenti in base a classificazioni impostate dall’amministratore del sistema e dare loro i relativi diritti di accesso ai servizi ed ai contenuti. Un settore di customization nel quale l’utente può decidere quali contenuti integrare nella pagina web, quale layout, e quindi con quali colori e quali disposizioni rendere visibili i contenuti scelti. La parte principale di un EIP è rappresentata dai portlet. Dal punto di vista utente i portlet sono delle finestre che vengono integrate all’interno della pagina web. E sono le applicazioni che permettono di integrare in modo indipendente vari contenuti e servizi, nel contesto di una stessa pagina. L’EIP si presenta all’utente come una pagina web caratterizzata da 3 sezioni particolari: La prima riguarda la personalisation : fase conclusiva dell’autenticazione al portale, l’utente si identifica con il login;il portale lo riconosce e gli rende disponibili i servizi in base ai diritti di accesso configurati dall’amministratore. Un’altra è la barra di customizzazione che permette all’utente di scegliere quali servizi tra quelli disponibili vuole visualizzare.Sempre attraverso la barra di customizzazione, l’utente può personalizzare la visualizzazione dei contenuti scelti. La terza sezione che rappresenta il cuore dell’EIP è rappresentata dai Portlets, ovvero finestre integrabili nel portale che permettono l’utilizzo vero e proprio dei servizi scelti nella sezione di customizzazione.
Username: ----------- Password: ----------- Portal Services Username: ----------- Password: ----------- Personalization A B C D E F Servizi Disponibili Amministrazione Posta Intranet News Stud News fac. Search Customization Content Aggregation Nella barra di personalization l’utente esegue l’autenticazione al Portale inserendo uno Username ed una password. A questo punto l’EIP controlla che l’utente sia registrato ed in caso affermativo seleziona le risorse accessibili in base ai diritti di accesso impostati precedentemente dall’amministratore per quel determinato utente. Nella fase di customizzazione l’utente decide quali contenuti effettivamente visualizzare e quale layout utilizzare per la loro visualizzazione. L’effettiva aggregazione dei contenuti,scelti dall’utente , avviene grazie ai portlets: finestre che vengono integrate nel portale e hanno il compito di visualizzare i contenuti ed i servizi.
Portlet Componente Web Estende le capacità di un Web Server (J2EE) Sviluppato in Java Estende le capacità di un Web Server (J2EE) Inserirsi / agire autonomamente nel Portale Aggregazione di più portlet in una stessa pagina Il portlet si presenta quindi come una finestra con una barra di menù attraverso la quale decidere la tipologia di visualizzazione del portlet nel portale. Il potlet è un componente web che estende le capacità di un server web e solitamente è programmato in Java I portlets sono specificatamente progettati per: inserirsi e agire autonomamente nel contesto del portale essere aggregati nel contesto di un portale.( Solitamente infatti più portlet vengono integrati nella stessa pagina) Al fine di fornire interoperabilità fra Portale e portlets sono state definite delle [Portlet] specification: un set di APIs cioè di Interfacce standard per gestire in modo autonomo i portlet dalla Struttura del portale. Portlet Specifications: Interfacce standard per l’interoperabilità fra portlets e Portale
EIP Architecture: multilivello J2EE Client Tier Middle Tier EIS Tier Questa slide presenta più in dettaglio la piattaforma sulla quale appoggia un Enterprise Information Portal: Come la maggior parte delle applicazioni Web Based l’architettura di riferimento è quella multilivello presentata dalla J2EE: Occorre collegare un utente (client tier) ai dati ed ai servizi raggiungibili attraverso la rete e quindi memorizzati su DB e sistemi informatici remoti. Per far comunicare queste due entità la J2EE inserisce fra questi un terzo strato chiamato Middle tier il quale fa da ponte fra i precedenti: Il middle tier è composto da altre due sottolivelli: EJB container che ha la capacità di entrare nelle logiche di business aziendale ed estrapolare i dati Il Web Container ha il compito di visualizzare i dati all’utente utilizzando pagine statiche o dinamiche Quindi l’utente si connette con un browser alla rete, esegue una richiesta al web container il quale la ridireziona all’EJB Container il quale a sua volta estrapola dai sistemi aziendali i dati. Quindi a ritroso i dati passano dall’EJB Container al Web Container i quali pubblicherà le informazioni ricevuti al client.
Architettura di un EIP Portal Engine: Portlet Engine: Portlet: Assembla la Portal Page iniziale Posiziona un I-frame per ogni singolo portlet Portlet Engine: Riceve la richiesta dal Portal Engine Richiama il singolo portlet attraverso il suo URL Portlet: Legge i dati da una sorgente persistente Processa i dati reperiti Li spedisce al Portlet Engine che a sua volta inserisce uno script nella Portal Page
Integrazione di servizi Web Obiettivo: Integrare, nel contesto di un EIP sviluppato con Jetspeed, servizi disponibili all’interno del sito della facoltà dedicati ai docenti: Amministrazione pagina docente Intranet di Facoltà Inserimento di News Posta Altri Servizi Problema: Tipologie di Autenticazioni diverse In ambito universitario si è sviluppato un portlet per integrare, nel contesto di un EIP sviluppato con Jetspeed servizi preesistenti dedicati ai docenti e fruibili via web. Nella slide compare la lista dei dei servizi analizzati ed integrati. Il problema riscontrato durante lo sviluppo dell’applicativo è stato quello di trovare un unico metodo per accedere alle diverse tipologie di autenticazione utilizzate nelle procedure universitarie. Tale problematica ci ha portato ad analizzare le procedure standard di autenticazione attualmente utilizzate in ambito internet.
Tipologie di Autenticazione Request HTTP ad un URL Username Password Parametri estesi (PE) Autenticazione Quando un Web client richiede ad un servizio web l’autenticazione di un utente, viene mandata una request http verso un URL (che rappresenta un programma eseguibile) con l’aggiunta di uno Username, una Password ed eventuali parametri extra che chiameremo parametri estesi. In base al posizionamento di tutti questi dati all’interno della request si individuano diverse tipologie di autenticazione che sono state ragruppate nella tabella riportata nella slide. La cosa importante è sottolineare che con una Request HTTP con metodo Get è possibile accedere ad un servizio inserendo i parametri per l’autenticazione in un’unica stringa insieme all’URL, in tal caso ci sono 3 possibilità: Senza autenticazione (solo PE) Autenticazione di tipo Form Autenticazione di tipo Basic Con una Request HTTP metodo POST i parametri vengono invece raccolti attraverso un form ed inviati in modo automatico nell’Header della richiesta quando l’utente clicca il pulsante di submit. In tal caso i parametri non sono visibili ed è assolutamente necessario inviare i dati con un Form. 1)Senza autenticazione (solo PE) 2)Autenticazione Form (vengono efettivamente richiesti nome utente e password) Creazione di una stringa composta
URL?username&Password Soluzione adottata HTTP: Get HTTP: Post Get: URL?username&Password Get: Pagina JSP Servizio Web Servizio Web Post: Servizio Come vedremo nella demo quando il portlet accede ad un servizi che richiede autenticazione con metodo Get, il servizio sarà direttamente visualizzabile nel portlet. Quando si richiede un servizio che usa un’autenticazione con metodo Post non si accederà direttamente al servizio, ma si visualizzerà il pulsante di un form generato dinamicamente da una pagina JSP in base ai parametri dell’autenticazione. E quindi per accedere al servizio sarà necessario cliccare il pulsante visualizzato nel portlet.
DEMO dell’applicazione L’Enterprise Information Portal è stato installato su server universitario ed è attualmente disponibile al sito: http://apollo.ing.unimo.it/jportal
Conclusioni e sviluppi futuri Apache Tomcat (v. 4.1) & Microsoft Server IIS (v. 5) Il Portlet implementato integra nel contesto di un EIP servizi e pagine web accessibili anche tramite Autenticazione, realizzate con tecnologia JSP ASP PHP HTML Accessibili con protocolli HTTP HTTPS Ambito Aziendale: aprire al web applicazioni e sistemi informativi proprietari quali l’ERP. Ambito Universitario: creare punti di accesso personalizzati ai servizi universitari per (Docenti/Studenti/Aziende Convenzionate…) Per permettere il funzionamento di Jetspeed e quindi della demo che avete visto nel contesto universitario è stato necessario configurare il server universitario Microsoft (IIS) in collaborazione al server di Apache Tomcat 4.1. Questa collaborazione è stata necessaria perché IIS non supporta le pagine dinamiche sviluppate con tecnologia JSP invece integrata in Jetspeed. Jetspeed si è rivelato un sistema avanzato per la realizzazione di EIP, senza dover riprogettare le basi architetturali. Jetspeed non ha costi di licenze ma non integra quei tool di sviluppo e tool amministrativi che caratterizzano i prodotti commerciali Jetspeed è un sistema avanzato per la realizzazione di EIP, senza dover riprogettare le basi architetturali. Jetspeed non ha costi di licenze ma non integra i tool di sviluppo e amministrativi che caratterizzano i prodotti commerciali