Davis Molinari Università del Piemonte Orientale Amedeo Avogadro Laurea in Informatica Relatore: Prof. Luigi Portinale Ana...
PORTALE WEB AZIENDALE   <ul><li>Quali servizi deve offrire? </li></ul><ul><ul><li>organizza e aggrega l'enorme quantità di...
L’ APPLICAZIONE ESISTENTE   <ul><li>Architettura </li></ul><ul><ul><li>Apache Tomcat 4.1 Application Server </li></ul></ul...
JAVA PORTLET <ul><li>Definizione: </li></ul><ul><ul><li>“ le portlet sono componenti web Java, gestite da un portlet conta...
PRINCIPIO DI FUNZIONAMENTO <ul><ul><li>Un client, dopo essere stato autenticato effettua una richiesta HTTP al portale. </...
PRINCIPIO DI FUNZIONAMENTO (SCHEMA) I clients interagiscono con le portlets tramite un paradigma request/response  impleme...
PORTLET A LIVELLO DI PRESENTAZIONE Esempio di risultato che forniscono a livello di interfaccia utente:   Ogni portlet pos...
WINDOW STATE DELLE PORTLET <ul><li>Il window state indica  l'ammontare di spazio all'interno della pagina del portale che ...
CICLO DI VITA DELLE PORTLET E PORTLET MODE <ul><li>Il ciclo di vita della portlet è gestito principalmente da quattro meto...
ARCHITETTURE DISPONIBILI E SOLUZIONI UTILIZZATE <ul><li>Pacchetto software non ben definito all’inizio, però supportante p...
Jakarta Pluto è un portlet container Open Source sviluppato dal progetto Apache Jakarta   Permette di testare il ciclo di ...
L’ APPLICAZIONE FINALE   <ul><li>Applicazione divisa in 5 moduli </li></ul><ul><ul><li>Modulo Rubrica </li></ul></ul><ul><...
CONCLUSIONI E CONOSCENZE ACQUISITE <ul><li>Conclusioni </li></ul><ul><ul><li>Finalmente uno standard per la realizzazione ...
Upcoming SlideShare
Loading in …5
×

Analisi e sviluppo di componenti standard JSR 168 per la realizzazione di Portali Web Aziendali

2,750 views

Published on

Presentazione della tesi discussa per la laurea di primo livello in Informatica.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,750
On SlideShare
0
From Embeds
0
Number of Embeds
59
Actions
Shares
0
Downloads
18
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Analisi e sviluppo di componenti standard JSR 168 per la realizzazione di Portali Web Aziendali

  1. 1. Davis Molinari Università del Piemonte Orientale Amedeo Avogadro Laurea in Informatica Relatore: Prof. Luigi Portinale Analisi e sviluppo di componenti standard JSR 168 per la realizzazione di Portali Web Aziendali
  2. 2. PORTALE WEB AZIENDALE <ul><li>Quali servizi deve offrire? </li></ul><ul><ul><li>organizza e aggrega l'enorme quantità di dati generati o raccolti dell'azienda </li></ul></ul><ul><ul><li>li presenta agli utenti attraverso un'interfaccia web semplice e personalizzabile </li></ul></ul><ul><li>Quali requisiti deve soddisfare? </li></ul><ul><ul><li>Scalabilità (far fronte ad aumenti di utenti e/o di attività) </li></ul></ul><ul><ul><li>Personalizzazione ( interfaccia e funzionalità adattabili alle esigenze dei singoli utenti ) </li></ul></ul><ul><ul><li>Integrazione (gestire sia dati strutturati (provenienti dai sistemi ERP, dai database aziendali ecc.) che non strutturati (documenti Word, Excel ecc.) presentandoli con un'unica interfaccia. ) </li></ul></ul><ul><ul><li>Flessibilità (adattamento a nuove fonti di dati o a nuove tecnologie) </li></ul></ul><ul><ul><li>Sicurezza (restrizioni di accesso e privilegi diversi in base all’utente o al gruppo di utenti) </li></ul></ul>
  3. 3. L’ APPLICAZIONE ESISTENTE <ul><li>Architettura </li></ul><ul><ul><li>Apache Tomcat 4.1 Application Server </li></ul></ul><ul><ul><li>Framework Struts </li></ul></ul><ul><ul><li>Database MySQL </li></ul></ul><ul><li>Livelli di astrazione </li></ul><ul><ul><li>Presentation Layer (Presentazione) </li></ul></ul><ul><ul><li>Business Logic Layer (Livello applicazione) </li></ul></ul><ul><ul><li>Data e Service Layer (trasmissione e memorizzazione dei dati) </li></ul></ul><ul><li>Obiettivo </li></ul><ul><ul><li>Porting a JSR 168 ed eliminazione Librerie Struts </li></ul></ul>DATA BASE Presentation layer Data & Service layer Business Logic layer
  4. 4. JAVA PORTLET <ul><li>Definizione: </li></ul><ul><ul><li>“ le portlet sono componenti web Java, gestite da un portlet container, che processano le richieste ricevute e generano come risposta contenuti dinamici. Esse vengono usate come componenti d'interfaccia utente pluggabili per fornire un livello presentazione ai sistemi informativi”. </li></ul></ul><ul><li>Generano frammenti di markup (HTML, XHTML) non pagine complete </li></ul><ul><li>Frammenti delle varie portlet aggregati per formare la pagina del portale </li></ul><ul><li>Contenuti diversi a seconda del singolo utente o del gruppo di cui fa parte </li></ul><ul><li>Portlet Container </li></ul><ul><ul><li>fornisce l’ambiente di runtime </li></ul></ul><ul><ul><li>gestisce il ciclo di vita delle portlet </li></ul></ul><ul><ul><li>memorizzazione delle preferences </li></ul></ul>Il portlet container NON si occupa dell’ aggregazione dei contenuti prodotti dalle varie portlet che è invece responsabilità del portale
  5. 5. PRINCIPIO DI FUNZIONAMENTO <ul><ul><li>Un client, dopo essere stato autenticato effettua una richiesta HTTP al portale. </li></ul></ul><ul><ul><li>La richiesta viene ricevuta dal portale. </li></ul></ul><ul><ul><li>Il portale determina se la richiesta contiene un azione mirata a qualcuna delle portlet associate alla pagina del portale. </li></ul></ul><ul><ul><li>Se esiste una portlet per quell'azione richiesta, il portale inoltra la domanda al portlet container che invocherà una chiamata ad essa. </li></ul></ul><ul><ul><li>Il portale, tramite il portlet container, invoca le portlet, per poter ottenere i frammenti di markup che dovranno essere inclusi nella pagina del portale risultante. </li></ul></ul><ul><ul><li>Il portale aggrega i vari markup prodotti dalle varie portlet richieste e restituisce al browser la pagina di risposta pronta per essere visualizzata dall’utente. </li></ul></ul>
  6. 6. PRINCIPIO DI FUNZIONAMENTO (SCHEMA) I clients interagiscono con le portlets tramite un paradigma request/response implementato e gestito dal portale
  7. 7. PORTLET A LIVELLO DI PRESENTAZIONE Esempio di risultato che forniscono a livello di interfaccia utente: Ogni portlet possiede un titolo, dei bottoni di controllo, ed altre decorazioni che vengono aggiunte dal portale e che la fanno assomigliare ad una classica interfaccia a finestra Si presentano in modo diverso a seconda del Window State
  8. 8. WINDOW STATE DELLE PORTLET <ul><li>Il window state indica l'ammontare di spazio all'interno della pagina del portale che dovrà essere assegnato al contenuto generato dalla portlet </li></ul><ul><li>Il portlet container quando invoca una portlet gli comunica qual è il suo window state corrente e la portlet può usare questa informazione per decidere la quantità di informazione da renderizzare </li></ul><ul><li>La specifica Portlet definisce tre possibili valori di window state di una portlet che sono NORMAL, MAXIMIZED and MINIMIZED </li></ul><ul><li>NORMAL: la portlet divide la pagina del portale con altre portlet. A volte può essere costretta a ridurre la quantità di contenuti da generare in output quando si trova in questo stato </li></ul><ul><li>MAXIMIZED: la portlet potrebbe essere l’unica da visualizzare nella pagina del portale oppure ha a disposizione più spazio rispetto ad eventuali altre portlet. In questo caso la portlet può generare una maggiore quantità di contenuti </li></ul><ul><li>MINIMIZED: la portlet genera un output minimo ad esempio solo il titolo o addirittura nessun output significativo </li></ul>
  9. 9. CICLO DI VITA DELLE PORTLET E PORTLET MODE <ul><li>Il ciclo di vita della portlet è gestito principalmente da quattro metodi previsti dall’interfaccia Portlet </li></ul><ul><li>Questi metodi vengono chiamati direttamente dal Portlet Container </li></ul><ul><li>init(): chiamato dal container quando la portlet viene istanziata al fine di contenere la logica che preparerà l'oggetto a gestire le richieste e distribuire i contenuti. </li></ul><ul><li>destroy(): viene chiamata quando il contenitore “distrugge” una portlet </li></ul><ul><li>processAction(): chiamata dopo che l'utente ha effettuato una richiesta, serve a processare dei dati avuti in input dall'azione dell'utente </li></ul><ul><li>render(): viene chiamata ogni volta che la portlet deve restituire dei dati </li></ul><ul><li>Implementazioni specifiche del metodo render() che lo specializzano ulteriormente a seconda della modalità di utilizzo della portlet </li></ul><ul><li>View Mode – metodo doView(): la portlet mostra i contenuti richiesti dall’utente </li></ul><ul><li>Edit Mode – metodo doEdit(): modalità in cui l’utente ha la possibilità di specificare le opzioni di personalizzazione e configurazione della portlet </li></ul><ul><li>Help Mode – metodo doHelp(): mostrare la pagina relativa alla guida d'utilizzo della portlet </li></ul>
  10. 10. ARCHITETTURE DISPONIBILI E SOLUZIONI UTILIZZATE <ul><li>Pacchetto software non ben definito all’inizio, però supportante pienamente la specifica JSR 168 Portlet </li></ul><ul><li>Diverse proposte a disposizione </li></ul><ul><ul><li>Commerciali </li></ul></ul><ul><ul><ul><li>Sun Java System Portal Server 6.2 </li></ul></ul></ul><ul><ul><ul><li>Hummingbird Enterprise 2004 Enterprise Webtop </li></ul></ul></ul><ul><ul><ul><li>IBM WebSphere Portal 5.0 </li></ul></ul></ul><ul><ul><ul><li>Oracle AS 10q Portal </li></ul></ul></ul><ul><ul><ul><li>Microsoft Office Share Point Portal Server 2003 </li></ul></ul></ul><ul><ul><li>Open Source </li></ul></ul><ul><ul><ul><li>JetSpeed – Apache J2EE Open Source Portal </li></ul></ul></ul><ul><ul><ul><li>uPortal - J2EE Open Source Portal for Universities </li></ul></ul></ul><ul><ul><ul><li>Cocoon 2 – Apache Web Communication Framework </li></ul></ul></ul><ul><ul><ul><li>PHPNUKE – PHP based Portal/Community System </li></ul></ul></ul><ul><li>Idea iniziale: SUN One Portal </li></ul><ul><li>Idea alternativa: Hummingbird Portal ( partner ICON BPS, quindi “prodotto interno”) </li></ul><ul><li>SVILUPPO INTERAMENTE EFFETTUATO SU JAKARTA PLUTO </li></ul>
  11. 11. Jakarta Pluto è un portlet container Open Source sviluppato dal progetto Apache Jakarta Permette di testare il ciclo di vita della proprie portlet Piattaforma di riferimento per lo sviluppo Screenshot di esempio SVILUPPO SUL PORTLET CONTAINER JAKARTA PLUTO
  12. 12. L’ APPLICAZIONE FINALE <ul><li>Applicazione divisa in 5 moduli </li></ul><ul><ul><li>Modulo Rubrica </li></ul></ul><ul><ul><li>Modulo Scadenziario </li></ul></ul><ul><ul><li>Modulo Procurement </li></ul></ul><ul><ul><li>Modulo Progetti </li></ul></ul><ul><ul><li>Modulo Archivio Documenti </li></ul></ul><ul><li>Una portlet per ogni modulo </li></ul><ul><li>Ogni portlet richiama più pagine JSP </li></ul><ul><li>Indipendenza tra le varie portlet </li></ul><ul><li>Un cliente può decidere quali portlet comprare o utilizzare nel proprio portale </li></ul><ul><li>Il portale permette di selezionare le portlet da mostrare ai singoli utenti o ai gruppi di utenti </li></ul>
  13. 13. CONCLUSIONI E CONOSCENZE ACQUISITE <ul><li>Conclusioni </li></ul><ul><ul><li>Finalmente uno standard per la realizzazione di Portali Web </li></ul></ul><ul><ul><li>Enorme successo riscosso da questa tecnologia </li></ul></ul><ul><ul><li>Tecnologia di punta per grosse aziende come Sun e IBM </li></ul></ul><ul><ul><li>Buono sviluppo in ambito Open Source </li></ul></ul><ul><ul><li>Miglioramento della portabilità tra i vari portali </li></ul></ul><ul><li>Conoscenze acquisite </li></ul><ul><ul><li>conoscenza e studio tecnologia Portlet JSR 168 </li></ul></ul><ul><ul><li>approfondimento conoscenza del linguaggio Java e pagine JSP </li></ul></ul><ul><ul><li>miglioramento conoscenza ambiente di sviluppo Borland JBuilder </li></ul></ul><ul><ul><li>buona esperienza in ambito lavorativo </li></ul></ul>

×