presentazione - Università di Bologna

L!ve T!tle: software per
la consultazione degli
andamenti dei titoli di
borsa online
Reti di Calcolatori LS
Nuzzi Nicola
Mat 197597
1
Introduzione
► Sviluppo
delle tecnologie va di pari passo
con lo sviluppo dell’economia.
► Campo
borsa.
► Siti
applicativo: compravendita di titoli di
web già presenti online
2
http:://it.finance.yahoo.com
3
Paradigma Client/Server
► Client
utilizza il server che ha a disposizione
risorse e metodi condivisi.
► Esempio:
RMI (limitato a Java).
► Si
pensa a CORBA come metodo per
progettare oggetti remoti indipendenti dal
linguaggio di programmazione e dalle
macchine di esecuzione.
4
CORBA
► Common
Object Request Broker Architecture
► Componenti






fondamentali:
ORB: object request broker
IDL: interface definition language
BOA/POA: basic object adapter/portable o.a.
SII/DII: static invocation interface/dinamic i.i.
IR/OR: interface repository/object r.
GIOP/IIOP:general interorb protocol/internet io.p
5
Architettura Corba
INTERFACE REPOSITORY
COMPILATORE IDL
CLIENT
DII
IDL
(stub)
IMPLEMENTATION REP.
SERVANT (object)
ORB INTERFACE
IDL
(skel)
DSI
OA
GIOP/IIOP
ORB CORE
6
Architettura del prototipo
► Client/Server
su macchina comune
(estendibile a macchine separate in una
versione finale)
► Costruzione
di un file IDL per la trasparenza
di linguaggio. Nel file sono specificati i
metodi e gli oggetti remoti.
7
Stub e Skeleton
► La
compilazione del file IDL permette la
generazione automatica di Stub lato client e
Skeleton lato server
► Tramite lo Stub si lavora sul messaggio lato
client (lo stub agisce come proxy)
► Tramite lo Skeleton si prende la richiesta del
client e la si “adatta” al server
► Il superamento dell’eterogeneità è dato da
un componente detto Adattatore (OA)
8
CORBA IDL – Stub e Skeleton
LATO CLIENT: LINGUAGGI
DI PROGRAMMAZIONE (VARI)
LATO SERVER: LINGUAGGI
DI PROGRAMMAZIONE (VARI)
INTERFACCIA IDL
STUB
SKELETON
ORB
9
Digressione: comunicazione
ORBORB
► ORB:
object request broker.
► Coordinatore delle richieste in maniera trasparente
dalla posizione e implementazione dell’oggetto
remoto.
► La comunicazione da orb a orb di sistemi CORBA
diversi avviene attraverso protocolli di
interoperabilità orb to orb; standardizzazione con
GIOP, su TCP/IP molto usato IIOP (Internet InterOrb Protocol)
10
Realizzazione del prototipo
► Implementazione
dell’IDL per gli oggetti e i
metodi remoti
► Generazione tramite idlj (compilatore idl di
Sun) delle classi Stub e Skeleton
► Implementazione delle classi Client e Server
(con classi accessorie che ne conseguono)
con conseguente implementazione “reale”
degli oggetti
11
Struttura completa del sistema
TITLE.IDL
Codice sorgente
del cliente (Java)
Codice stub generato
automaticamente
Software
Client
Codice sorgente
del server (Java)
Librerie
CORBA
Codice skeleton gen.
automaticamente
Software
Server
12
Naming Service
► Si
fa utilizzo di un servizio di Naming con nomi
unici per rendere disponibile un servant ad un
client remoto.
► Parliamo (ed utilizziamo) infatti un servant come
implementatore dei servizi e dei metodi del server.
► Operazione di binding: si associa un nome ad un
riferimento
► Operazione di naming resolution: risoluzione del
nome per recuperare un riferimento al servizio
13
Realizzazione lato server/client
►
Ricapitolando:
 Il server:
 Inizializza l’orb mediante la init
 Prima che l’oggetto sia utilizzabile dal client deve essere connesso all’orb mediante la
connect (non utilizziamo un oa)
 Per ottenere un riferimento agli oggetti disponibili il server utilizza la
resolve_initial_references
 Ottenuto il riferimento viene utilizzata la narrow per recuperare il NamingContext
 Si effettua il binding utilizzando la rebind tra il NameComponent opportuno (nome e
tipo) e l’istanza del servant
 Il client:
 Effettua le stesse operazioni per ottenere il riferimento al Naming Service
 Effettua la resolve per ottenere un riferimento all’oggetto remoto (Title nel caso del
prototipo)
14
Gestione a polling dell’interrogazione
► L’interrogazione
per la verifica della
presenza di nuove versioni del database dei
titoli è realizzata mediante polling.
► Il client interroga il server ad intervalli
ripetuti (con step impostabile dall’esterno).
15
Sviluppi futuri
► Lo
sviluppo del progetto ha permesso di prendere
“parziale” confidenza con i meccanismi di
elaborazione remota di Corba e con l’indipendenza
dal linguaggio mediante IDL.
► Non
è proprio uno sviluppo futuro, ma nella
realizzazione non prototipale è necessaria una
modifica per l’effettiva distributività del software.
► Utilizzo
dei meccanismi di Callback per il
reperimento dei nuovi valori.
16
Bibliografia
►
[1] A. Corradi – Dispense del corso di Reti di Calcolatori LS. Università di
Bologna, facoltà di Ingegneria. Anno accademico 2004-2005.
►
[2] G. Morello – Java e Corba. Manuale Pratico di Java – dalla teoria alla
programmazione. Volume 2.
►
[3] L. Bettini – Java+IDL=CORBA. Mokabyte n. 22 Settembre 1998
www.mokabyte.it
►
[4] Sun Corp. – Java IDL Examples –
java.sun.com/j2se/docs/guide/idl/jidlExample3.html
►
[5] K. Johnson – Remoting.Corba Wiki (C#) – kristoperhjohnson.net/cgibin/rc/wiki.pl?Tutorials/Callback
►
[6] A. Santoro, A. Termini – Programmazione Corba in Java –
www.dis.uniroma.it/~santoroa
17