Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del...

77
Sistemi Sistemi Informativi Informativi DEE - Politecnico di Bari DEE - Politecnico di Bari Tecnologie di implementazione Tecnologie di implementazione Corso di ingegneria del software

Transcript of Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del...

Page 1: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari

Tecnologie di implementazioneTecnologie di implementazione

Corso di ingegneria del software

Page 2: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari Sommario Sommario

• Principali architetture dei sistemi distribuiti• Component based software engineering• Componenti • Comunicazione nei processi distribuiti• Middleware • Applicazioni distribuite per il web• Oggetti distribuiti • Servizi distribuiti

Page 3: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari Architetture dei sistemi distribuitiArchitetture dei sistemi distribuiti

• Tecnologie per architetture – Client server – A oggetti distribuiti– A servizi distribuiti

Page 4: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari

Component based software Component based software engineering (CBSE)engineering (CBSE)

• Component based software engineering (CBSE)– Definizione [È il processo di definizione,

implementazione e integrazione o composizione di componenti indipendenti debolmente accoppiati, nei sistemi]

• È nata come approccio basato sul riutilizzo per lo sviluppo di sistemi software

Page 5: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari Elementi fondamentaliElementi fondamentali

• Componenti indipendenti• Standard dei componenti• Middleware• Un processo di sviluppo

Page 6: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari Componente Componente

• Definizione :– Una parte modulare, utilizzabile e sostituibile di un

sistema che comprende l’implementazione es espone una serie di interfacce”

[OMG]

È un elemento costitutivo del software

Page 7: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari Altre definizioniAltre definizioni

• Un elemento software che si conforma a un modello di componente, che può essere consegnato indipendentemente e composto senza modifiche secondo uno standard di composizione – [Councill e Heineman, 2001]

• Un’unità di composizione soltanto con interfacce definite per contratto e dipendenze esplicite di contesto. Un componente software può essere consegnato indipendentemente ed è soggetto a composizione da terze parti– [Szyperski,2002]

Page 8: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari Caratteristiche dei componentiCaratteristiche dei componenti

• Standardizzato– Ogni componente deve essere conforme a un modello di componente

standardizzato che definisce interfacce, metadata,documentazione, • Indipendente

– Non deve essere necessario utilizzare altri componenti specifici – Il codice sorgente non è disponibile, quindi il componente non deve essere

compilato• Componibile

– Tutte le interazioni avvengono attraverso interfacce pubbliche– Deve fornire accesso esterno alle sue informazioni

• Consegnabile – È binario, non deve essere compilato

• Documentato – Deve essere specifica la sintassi e la semantica di tutte le interfacce del

componente

Page 9: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari Punti di vistaPunti di vista

• Il significato del termine componente differisce a seconda del punto di vista dell’ingegnere del software che lo utilizza– Orientato agli oggetti

• Un componente contiene un insieme di classi che collaborano fra loro

– Modulo (vista convenzionale)• Ruoli svolti

– Componente di controllo– Componente di dominio– Componente dell’infrastuttura

– Orientata al processo• Catalogo di componenti software esistenti, componenti progettuali

o di codice disponibile

Page 10: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari Middleware Middleware

• Definizione :– “Una classe di tecnologie software progettate per gestire l’eterogeneità e la complessità nei sistemi distribuiti”

• Si tratta di uno strato software posto tra il sistema operativo ed il software applicativo che fornisce un livello di astrazione di programmazione distribuita

– Sostanzialmente si tratta di un meccanismo di comunicazione tra processi (IPC)

• The classical definition of an operating system is “the software that makes the hardware useable.” Similarly, middleware can be considered to be the software that makes a distributed system programmable.

• Just as a bare computer without an operating system could be programmed with great difficulty, programming a distributed system is in general much more difficult without middleware, especially when heterogeneous operation is required. Likewise, it is possible to program an application with an assembler language or even machine code, but most programmers find it far more productive to use high-level languages for this purpose, and the resulting code is of course also portable.

[David E. Bakken]

Page 11: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari Comunicazione tra processiComunicazione tra processi

• Tecnologie software che consentono a diversi processi la comunicazione mediante scambio di dati ed informazioni

– È supportata dai sistemi operativi multitasking per consentire lo scambio di dati ed informazioni tra processi anche in ambiente distribuito

• Si tratta di meccanismi disponibili a diversi livelli – pipe– socket – memory mapped file– chiamata di procedura remota– scambio di messaggi– mailbox

• Può essere realizzata – a basso livello – a livello di linguaggio di programmazione – a livello applicativo – mediante software (middleware: DBMS, Web server application server, ecc.)

Page 12: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari Categorie di middlewareCategorie di middleware

• Remote procedure call (RPC)– Nelle architetture client server

• Remote data access– Fornisce servizi simili al RPC utilizzato per accedere a basi di dati

remote tramite costrutti SQL• Message oriented middleware (MOM)

– Astrazione del mailbox • Transaction Processing monitor

– Consente di eseguire transazioni in un sistema distribuito• Distributed Object

– Invocazione di un oggetto remoto nello spazio di indirizzi dell’oggetto chiamante

Page 13: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari Modelli di componentiModelli di componenti

• È la definizione degli standard per l’implementazione, la documentazione e la consegna del componente

• Sono disponibili molti modelli di componenti, i più noti:– OMG Corba: http://www.corba.org– Microsoft .NET http://www.msdn– Sun Enterprise Java beans http://java.sun.com/products

Page 14: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari Osservazioni: Strumenti softwareOsservazioni: Strumenti software

• Il successo o il fallimento del CBSE è legata alla disponibilità di software middleware

Page 15: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari Microsoft Microsoft

• COM (component object model) e OLE ( object linking and embedding)

• DCOM (distributed COM) deriva da COM e OLE con l’aggiunta di Microsoft transaction server e Active directory supporta eterogeneità nell’uso dei linguaggi ma non a livello di sistema operativo e di fornitore

• COM+ generazione successiva di DCOM che semplifica notevolmente la programmazione

• SOAP framework basato su XML e HTTP, ha specifiche pubbliche e fornisce eterogeneità a livello di linguaggio e fornitore

• .NET ha eterogeneità di linguaggio e fornitore rispetto ai goal stabiliti

Page 16: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari OMGOMG

• Corba: Common Object Request Broker Architecture– Standard per oggetti distribuiti– Rappresenta il middleware più largamente diffuso – offre eterogeneità di linguaggi di programmazione e

implementazioni dei fornitori

• CCM (corba component model)

Page 17: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari SunSun

• RMI: remote method invocation– Permette ad oggetti eseguiti su macchine virtuali

diverse (eseguite su computer diversi) di comunicare per mezzo di chiamate a metodi remoti

• Java beans:– Componenti software riusabili

• Enterprise javabeans

Page 18: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari

Implementazione di applicazioni Implementazione di applicazioni client /server per il webclient /server per il web

Applicazione webDefinizione:• Un’applicazione web è un sistema che permette

ai propri utenti di eseguire una logica di business con un browser web[Conallen, 2000]

Page 19: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari Caratteristiche generaliCaratteristiche generali

• La logica di business può risiedere sul server e/o sul client

• Un’applicazione web è un tipo di sistema Client/server con un sito web

• Un browser internet presenta le pagine web fornite dal server web

• Le pagine web possono essere statiche o dinamiche – Oppure una pagina può essere un modulo che l’utente può

riempire: form

Page 20: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari Application serverApplication server

• Un’applicazione web può includere un server applicativo application server per gestire la logica applicativa e monitorare lo stato dell’applicazione

• Il monitoraggio dello stato è un’attività importante che permette di tenere traccia delle azioni dei clienti collegati

Page 21: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari Tecniche di monitoraggio Tecniche di monitoraggio

• Memorizzare nel browser un indicatore cookie: – Una breve stringa di caratteri che rappresenta lo stato di un

utente collegato– Timeout di sessione:

• È possibile imporre un timeout sull’attività di un utente collegato: – ad es. se l’utente non è attivo per 15 minuti il server si disconnette dal

client » (il cookie può essere rimosso dalla macchina client)

• Permette al server web o applicativo di migliorare il monitoraggio nel caso di un numero elevato si utenti collegati

Page 22: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari Script e appletScript e applet

• Sono usati per rendere dinamica la pagina client.• Uno script è un programma interpretato dal

browser• Un’applet è una componente compilata che si

esegue nel contesto del browser ma ha solo un limitato accesso alle altre risorse del computer client (per ragioni si sicurezza)

Page 23: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari Pagine server Pagine server

Definizione:• Pagina server

– una pagina web che ha script eseguiti dal server

• Ha accesso a tutte le risorse del server database • Gestisce le sessioni con i client• Imposta i “cookie” nel browser • Costruiscono le pagine client (ossia i documenti pagina

dagli oggetti business del server e li invia al client)

Page 24: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari Accesso ai datiAccesso ai dati

• Per permettere a script nelle pagine server di accedere al database sono usate librerie standard

• Tecnologie impiegate: – Open Database Connectivity ODBC– Java Database Connectivity JDBC– Remote Data Objects RDP – ActiveX data Objects ADO

Page 25: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari TecnologieTecnologie

• La tecnologie del server– Può basarsi su pagine HTML (HyperText Markup

Language) contenenti script – quali ASP Active Server Pages o JSP Java Server Pages

• La tecnologia delle pagine web– Può essere costruita su script client (JavaScript o

VBScript)– Documenti XML (eXtensible markup Language), applet

Java, controlli JavaBeans o ActiveX

Page 26: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari BCEBCE

Pattern BCE

1. suddivide la logica di un’applicazione in 3 categorie mutuamente esclusive:– Boundary– Control– Entity

2. consente una guida all’identificazione e alla rappresentazione:– dei confini tra il sistema e i suoi attori– dell’informazione usata dal sistema– della logica di controllo del sistema

Page 27: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari Classi BoundaryClassi Boundary

• Identificate mediante lo stereotipo<<Boundary>>

• Le classi Boundary 1. Descrivono gli oggetti che rappresentano l’interfaccia

tra attore e sistema– ossia delimitano il confine del sistema.

2. Isolano il sistema dai cambiamenti dell’ambiente esterno consentendo usabilità e interfacciamento con altri sistemi.

Page 28: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari Classi ControlClassi Control

• Identificate mediante lo stereotipo <<Control>>• Le classi Control

1. Descrivono gli oggetti che percepiscono gli eventi generati dall’utente e che controllano l’esecuzione di un processo di business.

2. Gestiscono le interazioni tra collezioni di oggetti– pertanto coordinano il comportamento delle classi entity e ne

usano i contenuti.

3. Sono indipendenti dall’ambiente esterno, in quanto non subiscono modifiche in seguito al cambiamento di tale ambiente e non sopravvivono all’interazione cui prendono parte.

Page 29: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari Classi EntityClassi Entity

• Identificate mediante lo stereotipo <<Entity>>• Le classi Entity

1. descrivono gli oggetti che rappresentano le entità del dominio applicativo.

2. sono classi passive in quanto:– i loro oggetti non avviano mai l’interazione– solitamente sopravvive alla singola interazione

3. accedono direttamente al database per la raccolta dei dati da elaborare.

Page 30: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari BCDEBCDE

L’approccio BCE richiederebbe almeno un punto di accesso al DB per ogni classe Entity il che comporterebbe almeno due svantaggi:

• scarso Information Hiding in caso di elevato numero di classi Entity• Complesità nella comunicazione tra classi Entity e database in caso

di database avente struttura differente da quella delle classi Entity (eg. DB Relazionale)

Soluzione • BCDE (Boundary Control Database Entity) introduce le

classi Database che furniscono l’interfaccia tra classi entity e database

Page 31: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari BCEBCE

Page 32: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari Architetturadi un’Applicazione web a tre strati

Tier 1 Tier 2

TCP

IP

protocollo

accesso

rete

TCP

IP

protocollo

accesso

rete

pagine

HTML

http://193.204.59.227:80

193.204.59.86193.204.59.227

HTTP

Internet

HTTP

Web

ServerBrowser

193.204.59.75

Internet

TCP

IP

protocollo

accesso

rete

Applicazione

Tier 3

Livello di

presentazione

Livello della

logica di business

Livello Dati

Servlet

pagina

HTML

Page 33: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari Architettura n-tierArchitettura n-tier

Mediante un’architettura n-Tier la logica dell’applicazione può essere maggiormente differenziata e suddivisa in base alla sua funzionalità.

È possibile stratificare la logica di una generica applicazione in 5 aree distinte:

• User • Presentation• Business• Integrator • Data Layer

Page 34: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari

Architettura n-Tier

Application server

Thin client• applicazioni• web browser

• HTML• applet• java

script

rete

Web server

• servlet• JSP• ASP

• componentiCORBA

• componentiDCOM

• componentiEJB

DBMS

Servizi comuni• connettività a database• naming e directory service• gestione delle transazioni• comunicazione remota

• CORBA• DCOM• RMI

• Database• Sistemi

legacy

http

http

http

http

orborborborb

orb

rete

Page 35: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari Architettura n-tierArchitettura n-tier

• User Interface costituita da un’interfaccia utente, ad esempio un web browser, che gira attraverso un firewall oppure un’applicazione a finestre per Windows.

• Presentation Logic definisce ciò che l’interfaccia utente deve mostrare e come devono essere soddisfatte le richieste dell’utente.

• Business Logic modella i ruoli dell’applicazione, spesso attraverso l’interazione con lo schema dei dati.

• Infrastructure Service sono funzionalità aggiuntive, necessarie da alcuni componenti dell’applicazione, ad esempio un supporto alle transazioni.

• Data Layer è la fonte di immagazzinamento dei dati.

Page 36: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari Java EEJava EE

La Java Enterprise Edition 1. deriva dalla piattaforma precedente realizzata dalla Sun

– la J2SE (java 2 Standard Edition)– e da java2EE ( java 2 enterprise edition)

2. Aggiunge tra le sue potenzialità la possibilità di unire componenti a livello enterprise mantenendo il sistema stabile e sicuro.

3. Attualmente java EE 6

Page 37: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari Enterprise applicationsEnterprise applications

• Software che fornisce funzionalità di supporto alla business logic di un’impresa, generalmente di tipo commerciale con lo scopo di migliorare produttività ed efficienza

• I servizi offerti sono generlamente business oriented: shopping online, pagamento online catalogazione interattiva, CRM, ERP, HR management, manufacturing, EAI, Enterprise form automation ecc.

• Requisiti necessari: scalabilità, robustezza, efficienza• Generlamente sono applicazioni con interfacce verso altre

applicazioni enterprise gestite in maniera centralizzata

Page 38: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari Vantaggi Vantaggi

Requisiti derivanti della scelta di una piattaforma legata a Java come sistema di sviluppo.• Applicazioni lato-server

– affidabilità, – scalabilità, – sicurezza – portabilità.

• Applicazioni web-based– Efficienza

• tempi di risposta ad una richiesta http devono essere minimi– Sicurezza

• maggiore è l’utenza che è prevista per il sito maggiore deve essere la sicurezza che regola accessi e logica dell’applicazione.

– Integrabilità• capacità di combinare tecnologie recenti e vecchie, adattandosi il più possibile ai sistemi già presenti

migliorandone le funzionalità;

Page 39: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari Architettura java EEArchitettura java EE

La piattaforma Java EE è una piattaforma a componenti che si basa su un’architettura n-Tier – il sistema è fortemente modulare ed espandibile.

suddivisione logica di un’applicazione: 1. Presentation: interfaccia utente2. Business: la logica applicativa 3. Data Layer: contiene i dati necessari all’applicazione

Page 40: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari Container Container

Il concetto fondamentale che sta alla base della piattaforma EE è quello di "container".

I container rappresentano ambienti che forniscono servizi aggiuntivi alle applicazioni in esecuzione e che sono standardizzati nelle specifiche EE.

Alcuni esempi di servizi offerti dai container sono:• gestione delle richieste di un eventuale Client• gestione del multi-thread• supporto alle transazioni• collegamento ad altri componenti in altri tier• collegamento a database• gestione della sicurezza• etc…

Page 41: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari Web/EJB containerWeb/EJB container

L'architettura Java EE definisce due tipi di container: 1. i Web container:

• forniscono un ambiente di esecuzione per Servlet e JSP (Java Server Pages)

2. gli EJB container: • forniscono un ambiente di esecuzione per Enterprise

Java Bean (EJB)

Page 42: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari Web containerWeb container

Il Web container rappresenta il front-end sul Web di un'architettura Java EE1. Gestisce le richieste http provenienti dal Web

1. riceve la richiesta del Client 2. esegue le azioni opportune per soddisfare tale richiesta 3. restituisce la risposta al Client stesso

– invocando uno dei componenti che sono al suo interno: Servlet e JSP2. Gestisce il multithreading, anche a livello di "pool di thread:

• Garantendo così 1. buone prestazioni 2. facilità di sviluppo

3. Gestisce la politica di sicurezza • consente di autenticare gli utenti che accedono al servizio consentendo o meno

l'accesso a determinate risorse.

Page 43: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari EJB ContainerEJB Container

L'EJB container fornisce un ambiente di esecuzione per Enterprise Java Bean, che sono i componenti che realizzano la logica applicativa del sito.

Le specifiche relative a questi componenti descrivono appunto come questi debbano interfacciarsi con il substrato software fornito dal container.

Page 44: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari Pattern BCE e JavaPattern BCE e Java

secondo il paradigma BCE, la logica di un’applicazione web basata su java2 è divisa in tre livelli logici fondamentali:

• Client Tier– Application client– Web client

• Middle Tier – Web container: Jsp/Servlet – EJB container: Enterprise javabean

• EIS Tier – Enterprise information system (RDBMS,ERP, Legacy systems)

Page 45: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari Client tierClient tier

I componenti client possono essere di due tipi:· Web client· Application client

Page 46: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari Web clientWeb client

Un Web client si compone di due parti: 1. una pagina web dinamica scritta in linguaggi come HTML e

XML, generata da componenti all’interno del livello Web 2. un browser Web in grado di visualizzare le pagine ricevute

dal Server.

All’interno della pagina è possibile che vi sia un’applet, una piccola applicazione scritta in linguaggio Java, eseguita dalla Java Virtual Machine (JVM) installata sul browser.

Page 47: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari Application clientApplication client

• funziona all’interno di una macchina Client e consente all’utilizzatore di gestire lavori che richiedono un’interfaccia utente molto ricca

• ha un aspetto grafico (GUI) creato tramite le classi di Swing e AWT di Java, è comunque possibile utilizzare una comune interfaccia su linea di comando.

• ha accesso diretto ai bean del livello Business • se i requisiti dell’applicazione lo autorizzano, il client può

generare una connessione HTTP ad una servlet che sta girando nel livello Web.

Page 48: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari Comunicazione al livello clientComunicazione al livello client

la comunicazione al livello client avviene con i livelli intermedi racchiusi tutti all’interno del Server.

Il client comunica con il livello Business e con quello Web direttamente o, nel caso di un client funzionante in un browser, tramite pagine JSP o applet.

L’applicazione J2EE può essere costruita sulla base di due client diametralmente opposti un “browser-based client” e un “application client”

la scelta dipende dal compromesso che si vuole seguire:– lasciare molte funzionalità al client, e quindi rimanere più vicino

possibile all’utente – dare più funzionalità possibili al server per alleggerire il lavoro della

macchina Client.

Page 49: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari Middle TierMiddle Tier

Contiene due elementi distinti :• Jsp/Servlet • Enterprise javabean

Page 50: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari Servlet/jspServlet/jsp

• Servlet:– è una classe Java che dinamicamente elabora azioni di richiesta informazioni e

costruisce delle risposte adeguate. • pagina JSP

– è un documento di testo che fornisce un approccio più naturale nella creazione di concetti statici.

– All’interno di una pagina JSP possiamo trovare del codice HTML, del codice Java o chiamate a classi Java già compilate e pronte per essere utilizzate.

Servlet e jsp sono intercambiabili

Vantaggio delle pagine JSP: • non è necessario eseguire la loro compilazione, in quanto il Web Browser

interpreta il codice Java al suo interno.

Page 51: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari JSPJSP

• È un’estensione della tecnologia delle servlet• Si usa quando la maggior parte del contenuto

inviato al client è testo statico e markup e solo una piccola parte del contenuto viene generata dinamicamente con del codice java

Page 52: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari ServletServlet

• Si usano quando una piccola parte del contenuto che viene inviato al client è testo statico o markup

• Alcune servlet non producono contenuto, ma eseguono compiti per conto dle client e invocano altre servlet o JSP per fornire una risposta

• Implementa l’interfaccia Servlet, i cui metodi sono invocati automaticamente ( dal contenitore di servlet)

Page 53: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari Enterprise BeanEnterprise Bean

Questa parte del sistema si occupa di risolvere le problematiche vere e proprie di un’applicazione. Tutto ciò è gestito dagli Enterprise JavaBean presenti al suo interno:

un Enterprise Bean riceve dati dai programmi client e se necessario li elabora. Si occupano di operazioni complesse quali l’interrogazione di un databasei dati vengono inviati al database per essere mantenuti, oppure compiono il

percorso inverso, tornano cioè al client che li ha richiesti per essere eventualmente presentati all’utente.

un Enterprise Bean può recuperare dati memorizzati all’interno del database, elaborarli e in seguito inviarli al programma client che li ha richiesti.

Page 54: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari Dinamica Dinamica

Come il livello Client anche il livello Web può avere componenti JavaBean in grado di prendere gli input dell’utente e indirizzarli poi ad altri JavaBean residenti nel livello Business per essere elaborati

Esistono due tipi di collegamento che esistono il livello web all’interno del livello server e il livello Client.

Page 55: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari EIS TierEIS Tier

Enterprise Information SystemContiene

– software per la gestione generale del sistema– infrastrutture di sistema come mainframe per la

gestione dei processi di transazione– database per la memorizzazione.

Page 56: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari Esempio Esempio

Page 57: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari Modelli architetturaliModelli architetturali

Lo sviluppo di applicazioni di diversa complessità porta alla definizione di due modelli architetturali:

1. modello per piccole e semplici applicazioni, consigliato per applicazioni statiche.

2. architettura indicata per lo sviluppo di applicazioni che usano componenti come Servlet e Bean

Page 58: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari Osservazioni Osservazioni

• Il passaggio dal primo al secondo modello avviene quando lo sviluppatore si trova in presenza di cambiamenti, aggiornamenti o espansioni dell’applicazione.

• È meglio non considerare il primo modello se non in caso di applicazioni molto piccole e statiche, ma riferirsi direttamente al secondo in cui:1. un servlet controlla la comunicazione del cliente2. i Bean gestiscono la Business logic dell’applicazione 3. nelle pagine JSP risiede la presentazione o visualizzazione dei dati,

risiede principalmente in pagine JSP.

Page 59: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari microsoftmicrosoft

• Tecnplogie proprietarie• Asp• Asp .Net (per applicazioni e servizi web)• C#• J#• (visual basic .NET)• Ruby• Ecc.

Page 60: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari ASP (Active Server Page)ASP (Active Server Page)

• ASP è un linguaggio di programmazione per la creazione di pagine web dinamiche che su piattaforma Windows• affinché il codice ASP possa essere interpretato, c'è bisogno che il Web server utilizzato sia un server Active X come ad

esempio IIS o Personal Web Server (anche se per quest’ultimo ci sono alcune limitazioni di utilizzo). • Esistono anche versioni per Netscape Enterprise, Lotus Domino, Solaris. • E moduli aggiuntivi, scritti in Java, per server Unix (Linux, Novell, Sun, Macintosh, HPUX, SGI, SCO,Dec Alpha, IBM OS/2,

RS/6000, AS/400, S/390, Apache, FastTrack/Enterprise servers, Sun WebServer, Java WebServer,IIS, WebSphere and Lotus Domino).

• Il linguaggio supporta il concetto di variabile che in questo caso non deve essere necessariamente dichiarata. • Active Server Page permette di sfruttare le variabili di tipo , cioè variabili che possono contenere qualsiasi tipo di valore

ad eccezione di vettori o matrici. • Una variabile può essere globale (dichiarata al di fuori di procedure), locale (dichiarata all’interno di procedure), di

sessione (disponibile per tutte le pagine), di applicazione (disponibile per un’applicazione richiesta da un utente).• ASP mette a disposizione la possibilità di gestire collezioni di dati, statiche o provenienti da form, eventualmente

possono essere definiti array multidimensionali. • ASP mette a disposizione del linguaggio di scripting 7 diversi oggetti che, grazie ai loro metodi, consentono il controllo

del server e della comunicazione server-client. Questi oggetti, che sono detti oggetti built-in, vengono automaticamente istanziati all'inizio dell'esecuzione di ogni pagina.

Page 61: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari

Implementazione di un’architettura a Implementazione di un’architettura a oggetti distribuiti oggetti distribuiti

• Richiede un middleware per gestire la comunicazione tra gli oggetti distribuiti– il middleware è detto Object Request Broker (ORB)

• Gli oggetti possono essere implementati utilizzando linguaggi di programmazione diversi, eseguiti su piattaforme diverse e non aver bisogno di conoscere tutti i nomi degli altri oggetti del sistema

Page 62: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari CORBACORBA

• Standard definito da OMG• Secondo lo standard un’applicazione distribuita è fornita da una

serie di componenti– Oggetti applicativi progettati e implementati per questa applicazione– Oggetti standard definiti da OMG per uno specifico dominio che

coprono diversi campi• finanza, commercio elettronico, servizio sanitario

– Servizi CORBA fondamentali che forniscono servizi distribuiti da base come gestione di directory e di protezione

– Funzionalità orizzontali CORBA come interfacce utente, gestione del sistema

• Si tratta di funzionalità comuni a molti domini di applicazione e le funzionalità sono utilizzate in diverse applicazioni

Page 63: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari Elementi dello standardElementi dello standard

1. Modello di oggetto per gli oggetti applicativi CORBA è un versione di un’interfaccia incapsulata

• occorre un linguaggio per la descrizione delle interfacce interface definition language (IDL)

2. Mediatore di richieste degli oggetti, ORB3. Insieme di servizi generici(directory, transazioni,

persistenza)4. Insieme di componenti comuni

Page 64: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari Modello oggetto CorbaModello oggetto Corba

• Come per un qualunque oggetto, il modello considera l’oggetto come un incapsulamento di attributi e servizi– Gli oggetti Corba devono avere una definizione

dell’interfaccia separata che definisce gli attributi e le operazioni pubbliche dell’oggetto

Page 65: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari Comunicazione tra gli oggettiComunicazione tra gli oggetti

• Le interfacce degli oggetti sono definite usando un linguaggio di definizione standard e language independent:– Un oggetto accede ad un servizio offerto da un altro oggetto

mediante l’interfaccia IDL

• Gli oggetti corba hanno un identificatore chiamato IOR (Interoperable object reference)

• L’orb è a conoscenza degli oggetti che richiedono i servizi e delle loro interfacce

Page 66: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari Comunicazione tra oggettiComunicazione tra oggetti

• L’oggetto chiamante ha uno stub IDL associato che definisce l’interfaccia dell’oggetto del fornitore del servizio chiamato

• l’oggetto che fornisce il servizio ha uno skeleton IDL che collega l’interfaccia all’implementazione dei servizi

• Quando un servizio è chiamato attraverso l’interfaccia, lo skeleton produce una chiamata al servizio qualunque sia il linguaggio di implementazione

• Quando il metodo è stato eseguito lo skeleton traduce i risultati in IDL in modo che l’oggetto chiamante possa accedervi.

• Un oggetto che fornisce servizi e utilizza servizi di altri oggetti ha sia uno skeleton che uno stub IDL per ogni oggetto che li utilizza

Page 67: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari Web servicesWeb services

• Non è una tecnologia specifica per applicazioni web nonostante la presenza del termine web

• Il termine web sta ad indicare che usa tecnologie per il web, web server e HTTP, per fornire un insieme di servizi che possono essere invocati da altri programmi sulla rete

Page 68: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari Cenni storiciCenni storici

• Il concetto di web service risale agli anni 1990 introdotta da sun con la campagna” le rete è il computer”

• L’idea è quella di risolvere i problemi di business distribuendo la soluzione a problemi discreti a componenti specializzate distribuite sulla rete

Page 69: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari Vantaggi Vantaggi

• La decentralizzazione del meccanismo di elaborazione comporta significativi vantaggi quando il sistema evolve poiché occorre apportare poche modifiche quando il sistema cambia

Page 70: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari Standard-based web serviceStandard-based web service

• Web service hanno un ruolo importante nell’ambito della tecnologia .NET

• Quando la tecnologia fu rilasciata, web service standard-based acquistarono notevole importanza

Page 71: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari Web service e componentiWeb service e componenti

• Un web service è una collezione di funzioni impacchettate e pubblicate su una rete per poter essere utilizzate da altri programmi client

• Da un alto livello di astrazione un web service è semplicemente un altro tipo di RPC

• La differenza è nei concetti che il web service porta alla RPC:– Così come i modelli a componenti hanno reso praticabile il

riuso di componenti , così i web service rendono pratica la RPC fornendo un insieme di standard per individuare e invocare i servizi

Page 72: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari Component model /service modelComponent model /service model

• I modelli a componenti definiscono le modalità in cui le componenti interagiscono e secondo cui possono essere individuate ed esaminate a livello di programmazione

• I web service definiscono un meccanismo analogo per il discovery di metadati funzionali

Page 73: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari Altre caratteristicheAltre caratteristiche

• Ogni web service può interagire con qualunque altro web service

• I web service possono essere aggregati per fornire funzionalità di alto livello

• I web service sono componenti software e quindi possono invocare altri web service

Page 74: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari Tecnologie per web serviceTecnologie per web service

• SOAP: Simple Object Access Protocol– Definisce un’organizzazione per lo scambio di dati strutturati tra i

webservice• WSDL: Web Service Description Language

– Linguaggio di descrizione dei webservice che definisce come possono essere rappresentate le interfacce dei webservice

• UDDI: Universal Description, Discovery And Integration– Descrizione, scoperta e integrazione universale– Standard di ricerca che definisce come possono essere organizzate le

informazioni di descrizione dei servizi utilizzate dai richiedenti dei servizi per trovarli

Page 75: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari XMLXML

• Gli standard per i web service si basano su XML– Linguaggio di markup “human and machine

understandable” (Skonnard e Gudgin, 2002)

Page 76: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari Architetture applicativeArchitetture applicative

• Sono architetture debolmente accoppiate dove i collegamenti ai servizi possono cambiare durante l’esecuzione:– Alcuni sistemi possono essere costruiti usando

solamente web service altri possono comprendere web service e componenti sviluppati localmente

Page 77: Sistemi Informativi DEE - Politecnico di Bari Tecnologie di implementazione Corso di ingegneria del software.

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari Il middlewareIl middleware

• Il middleware deve garantire la comunicazione trasparente tra gli oggetti:

È richiesto a due livelli:• Comunicazione logica:

– fornisce funzionalità che permettono agli oggetti su computer diversi di scambiarsi dati e controllare le informazioni

• Standard sviluppati sono CORBA, COM per facilitare la comunicazione tra oggetti su piattaforme diverse

• Componenti:– Il middleware fornisce una base per lo sviluppo di componenti

compatibili• Standard come EJB, CORBA, ActiveX forniscono una base per

l’implementazione di componenti con metodi standard che possono essere interrogati e utilizzati da altri componenti