Tecnologie di implementazione - SisInf Lab

Sistemi Informativi
DEE - Politecnico di Bari
Tecnologie di implementazione
Corso di ingegneria del software
Marina Mongiello
Sistemi Informativi
DEE - Politecnico di Bari
•
•
•
•
•
•
•
•
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
Marina Mongiello
Sistemi Informativi
DEE - Politecnico di Bari
Architetture dei sistemi distribuiti
• Tecnologie per architetture
– Client server
– A oggetti distribuiti
– A servizi distribuiti
Marina Mongiello
Sistemi Informativi
DEE - Politecnico di Bari
Component based software 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
Marina Mongiello
Sistemi Informativi
DEE - Politecnico di Bari
•
•
•
•
Elementi fondamentali
Componenti indipendenti
Standard dei componenti
Middleware
Un processo di sviluppo
Marina Mongiello
Sistemi Informativi
DEE - Politecnico di Bari
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
Marina Mongiello
Sistemi Informativi
DEE - Politecnico di Bari
Altre 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]
Marina Mongiello
Sistemi Informativi
DEE - Politecnico di Bari
•
Standardizzato
•
Indipendente
•
Componibile
•
Consegnabile
•
Documentato
–
Caratteristiche dei componenti
Ogni componente deve essere conforme a un modello di componente standardizzato che
definisce interfacce, metadata,documentazione,
–
–
Non deve essere necessario utilizzare altri componenti specifici
Il codice sorgente non è disponibile, quindi il componente non deve essere compilato
–
–
Tutte le interazioni avvengono attraverso interfacce pubbliche
Deve fornire accesso esterno alle sue informazioni
–
È binario, non deve essere compilato
–
Deve essere specifica la sintassi e la semantica di tutte le interfacce del componente
Marina Mongiello
Sistemi Informativi
DEE - Politecnico di Bari
Punti 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
Marina Mongiello
Sistemi Informativi
DEE - Politecnico di Bari
•
Definizione :
–
•
Middleware
“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]
Marina Mongiello
Sistemi Informativi
DEE - Politecnico di Bari
•
Comunicazione 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
•
Può essere realizzata
–
–
–
–
–
–
pipe
socket
memory mapped file
chiamata di procedura remota
scambio di messaggi
mailbox
–
–
–
–
a basso livello
a livello di linguaggio di programmazione
a livello applicativo
mediante software (middleware: DBMS, Web server application server, ecc.)
Marina Mongiello
Sistemi Informativi
DEE - Politecnico di Bari
•
Categorie 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
Marina Mongiello
Sistemi Informativi
DEE - Politecnico di Bari
Modelli 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
Marina Mongiello
Sistemi Informativi
DEE - Politecnico di Bari
Osservazioni: Strumenti software
• Il successo o il fallimento del CBSE è legata alla
disponibilità di software middleware
Marina Mongiello
Sistemi Informativi
DEE - Politecnico di Bari
•
•
•
•
•
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
Marina Mongiello
Sistemi Informativi
DEE - Politecnico di Bari
OMG
• 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)
Marina Mongiello
Sistemi Informativi
Sun
DEE - Politecnico di Bari
• 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
Marina Mongiello
Sistemi Informativi
DEE - Politecnico di Bari
Implementazione di applicazioni client
/server per il web
Applicazione web
Definizione:
• Un’applicazione web è un sistema che permette ai propri
utenti di eseguire una logica di business con un browser
web
[Conallen, 2000]
Marina Mongiello
Sistemi Informativi
DEE - Politecnico di Bari
Caratteristiche 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
Marina Mongiello
Sistemi Informativi
DEE - Politecnico di Bari
Application 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
Marina Mongiello
Sistemi Informativi
DEE - Politecnico di Bari
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
Marina Mongiello
Sistemi Informativi
DEE - Politecnico di Bari
Script 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)
Marina Mongiello
Sistemi Informativi
DEE - Politecnico di Bari
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)
Marina Mongiello
Sistemi Informativi
DEE - Politecnico di Bari
Accesso 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
Marina Mongiello
Sistemi Informativi
Tecnologie
DEE - Politecnico di Bari
• 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
Marina Mongiello
Sistemi Informativi
DEE - Politecnico di Bari
BCE
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
Marina Mongiello
Sistemi Informativi
DEE - Politecnico di Bari
•
•
Classi 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.
Marina Mongiello
Sistemi Informativi
DEE - Politecnico di Bari
•
•
Classi 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.
Marina Mongiello
Sistemi Informativi
DEE - Politecnico di Bari
•
•
Classi 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.
Marina Mongiello
Sistemi Informativi
DEE - Politecnico di Bari
BCDE
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
Marina Mongiello
Sistemi Informativi
DEE - Politecnico di Bari
BCE
Marina Mongiello
Sistemi Informativi
Architettura
di un’Applicazione web a tre strati
DEE - Politecnico di Bari
Tier 2
Tier 1
Tier 3
193.204.59.75
pagine
HTML
http://193.204.59.227:80
Browser
TCP
Servlet
Internet
Internet
TCP
193.204.59.227
IP
IP
protocollo
accesso
rete
protocollo
accesso
rete
Livello di
presentazione
Applicazione
HTTP
HTTP
193.204.59.86
Web
Server
pagina
HTML
Livello della
logica di business
Marina Mongiello
TCP
IP
protocollo
accesso
rete
Livello Dati
Sistemi Informativi
DEE - Politecnico di Bari
Architettura 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
Marina Mongiello
Sistemi Informativi
DEE - Politecnico di Bari
Architettura n-Tier
http
http
• Database
• Sistemi
legacy
Application
server
http
http
rete
orb
orb
Web
server
• servlet
• JSP
• ASP
Thin client
• applicazioni
• web browser
• HTML
• applet
• java
script
• componenti
CORBA
• componenti
DCOM
• componenti
EJB
DBMS
Servizi comuni
•
•
•
•
rete
Marina Mongiello
connettività a database
naming e directory service
gestione delle transazioni
comunicazione remota
• CORBA
• DCOM
• RMI
Sistemi Informativi
DEE - Politecnico di Bari
•
•
•
•
•
Architettura 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.
Marina Mongiello
Sistemi Informativi
DEE - Politecnico di Bari
Java 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
Marina Mongiello
Sistemi Informativi
DEE - Politecnico di Bari
•
•
•
•
Enterprise 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
Marina Mongiello
Sistemi Informativi
DEE - Politecnico di Bari
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
•
maggiore è l’utenza che è prevista per il sito maggiore deve essere la sicurezza che regola accessi e logica
dell’applicazione.
Sicurezza
Integrabilità
•
capacità di combinare tecnologie recenti e vecchie, adattandosi il più possibile ai sistemi già presenti migliorandone le
funzionalità;
Marina Mongiello
Sistemi Informativi
DEE - Politecnico di Bari
Architettura 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 utente
2. Business: la logica applicativa
3. Data Layer: contiene i dati necessari all’applicazione
Marina Mongiello
Sistemi Informativi
DEE - Politecnico di Bari
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…
Marina Mongiello
Sistemi Informativi
DEE - Politecnico di Bari
Web/EJB container
L'architettura Java EE definisce due tipi di container:
1. i Web container:
•
2.
forniscono un ambiente di esecuzione per Servlet e JSP (Java
Server Pages)
gli EJB container:
•
forniscono un ambiente di esecuzione per Enterprise Java
Bean (EJB)
Marina Mongiello
Sistemi Informativi
DEE - Politecnico di Bari
Web container
Il Web container rappresenta il front-end sul Web di un'architettura Java EE
1.
Gestisce le richieste http provenienti dal Web
2.
3.
–
1.
2.
3.
riceve la richiesta del Client
esegue le azioni opportune per soddisfare tale richiesta
restituisce la risposta al Client stesso
invocando uno dei componenti che sono al suo interno: Servlet e JSP
Gestisce il multithreading, anche a livello di "pool di thread:
•
Garantendo così
1.
2.
buone prestazioni
facilità di sviluppo
Gestisce la politica di sicurezza
•
consente di autenticare gli utenti che accedono al servizio consentendo o meno l'accesso a
determinate risorse.
Marina Mongiello
Sistemi Informativi
DEE - Politecnico di Bari
EJB 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.
Marina Mongiello
Sistemi Informativi
DEE - Politecnico di Bari
Pattern 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)
Marina Mongiello
Sistemi Informativi
DEE - Politecnico di Bari
Client tier
I componenti client possono essere di due tipi:
· Web client
· Application client
Marina Mongiello
Sistemi Informativi
DEE - Politecnico di Bari
Web 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.
Marina Mongiello
Sistemi Informativi
DEE - Politecnico di Bari
Application 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.
Marina Mongiello
Sistemi Informativi
DEE - Politecnico di Bari
Comunicazione 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.
Marina Mongiello
Sistemi Informativi
DEE - Politecnico di Bari
Middle Tier
Contiene due elementi distinti :
• Jsp/Servlet
• Enterprise javabean
Marina Mongiello
Sistemi Informativi
DEE - Politecnico di Bari
•
Servlet:
•
pagina JSP
–
–
–
Servlet/jsp
è una classe Java che dinamicamente elabora azioni di richiesta informazioni e costruisce
delle risposte adeguate.
è 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.
Marina Mongiello
Sistemi Informativi
DEE - Politecnico di Bari
JSP
• È 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
Marina Mongiello
Sistemi Informativi
DEE - Politecnico di Bari
Servlet
• 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)
Marina Mongiello
Sistemi Informativi
DEE - Politecnico di Bari
Enterprise 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 database
i 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.
Marina Mongiello
Sistemi Informativi
DEE - Politecnico di Bari
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.
Marina Mongiello
Sistemi Informativi
DEE - Politecnico di Bari
EIS Tier
Enterprise Information System
Contiene
– software per la gestione generale del sistema
– infrastrutture di sistema come mainframe per la gestione dei
processi di transazione
– database per la memorizzazione.
Marina Mongiello
Sistemi Informativi
DEE - Politecnico di Bari
Esempio
Marina Mongiello
Sistemi Informativi
DEE - Politecnico di Bari
Modelli 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
Marina Mongiello
Sistemi Informativi
DEE - Politecnico di Bari
•
•
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.
2.
3.
un servlet controlla la comunicazione del cliente
i Bean gestiscono la Business logic dell’applicazione
nelle pagine JSP risiede la presentazione o visualizzazione dei dati, risiede
principalmente in pagine JSP.
Marina Mongiello
Sistemi Informativi
DEE - Politecnico di Bari
•
•
•
•
•
•
•
•
microsoft
Tecnplogie proprietarie
Asp
Asp .Net (per applicazioni e servizi web)
C#
J#
(visual basic .NET)
Ruby
Ecc.
Marina Mongiello
Sistemi Informativi
DEE - Politecnico di Bari
•
•
•
•
•
•
•
•
•
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.
Marina Mongiello
Sistemi Informativi
DEE - Politecnico di Bari
Implementazione di un’architettura a
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
Marina Mongiello
Sistemi Informativi
DEE - Politecnico di Bari
•
•
CORBA
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
Marina Mongiello
Sistemi Informativi
DEE - Politecnico di Bari
1.
Modello di oggetto per gli oggetti applicativi CORBA è un versione
di un’interfaccia incapsulata
•
2.
3.
4.
Elementi dello standard
occorre un linguaggio per la descrizione delle interfacce interface
definition language (IDL)
Mediatore di richieste degli oggetti, ORB
Insieme di servizi generici(directory, transazioni, persistenza)
Insieme di componenti comuni
Marina Mongiello
Sistemi Informativi
DEE - Politecnico di Bari
Modello 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
Marina Mongiello
Sistemi Informativi
DEE - Politecnico di Bari
Comunicazione 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
Marina Mongiello
Sistemi Informativi
DEE - Politecnico di Bari
•
•
•
•
•
Comunicazione 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
Marina Mongiello
Sistemi Informativi
DEE - Politecnico di Bari
Web 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
Marina Mongiello
Sistemi Informativi
DEE - Politecnico di Bari
Cenni 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
Marina Mongiello
Sistemi Informativi
DEE - Politecnico di Bari
Vantaggi
• La decentralizzazione del meccanismo di elaborazione
comporta significativi vantaggi quando il sistema evolve
poiché occorre apportare poche modifiche quando il
sistema cambia
Marina Mongiello
Sistemi Informativi
DEE - Politecnico di Bari
Standard-based web service
• Web service hanno un ruolo importante nell’ambito della
tecnologia .NET
• Quando la tecnologia fu rilasciata, web service standardbased acquistarono notevole importanza
Marina Mongiello
Sistemi Informativi
DEE - Politecnico di Bari
Web 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
Marina Mongiello
Sistemi Informativi
DEE - Politecnico di Bari
Component 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
Marina Mongiello
Sistemi Informativi
DEE - Politecnico di Bari
Altre 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
Marina Mongiello
Sistemi Informativi
DEE - Politecnico di Bari
•
Tecnologie 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
Marina Mongiello
Sistemi Informativi
DEE - Politecnico di Bari
XML
• Gli standard per i web service si basano su XML
– Linguaggio di markup “human and machine understandable”
(Skonnard e Gudgin, 2002)
Marina Mongiello
Sistemi Informativi
DEE - Politecnico di Bari
Architetture 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
Marina Mongiello
Sistemi Informativi
DEE - Politecnico di Bari
Il 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
Marina Mongiello