L!ve T!tle: software per la consultazione degli andamenti dei titoli di borsa online

17
1 software per la software per la consultazione consultazione degli andamenti degli andamenti dei titoli di dei titoli di borsa online borsa online Reti di Calcolatori LS Reti di Calcolatori LS Nuzzi Nicola Nuzzi Nicola Mat 197597 Mat 197597

description

L!ve T!tle: software per la consultazione degli andamenti dei titoli di borsa online. Reti di Calcolatori LS Nuzzi Nicola Mat 197597. Introduzione. Sviluppo delle tecnologie va di pari passo con lo sviluppo dell’economia. Campo applicativo: compravendita di titoli di borsa. - PowerPoint PPT Presentation

Transcript of L!ve T!tle: software per la consultazione degli andamenti dei titoli di borsa online

Page 1: L!ve T!tle: software per la consultazione degli andamenti dei titoli di borsa online

11

L!ve T!tle: software L!ve T!tle: software per la consultazione per la consultazione degli andamenti dei degli andamenti dei titoli di borsa onlinetitoli di borsa online

Reti di Calcolatori LSReti di Calcolatori LS

Nuzzi NicolaNuzzi NicolaMat 197597Mat 197597

Page 2: L!ve T!tle: software per la consultazione degli andamenti dei titoli di borsa online

2

IntroduzioneIntroduzione►Sviluppo delle tecnologie va di pari Sviluppo delle tecnologie va di pari

passo con lo sviluppo dell’economia.passo con lo sviluppo dell’economia.

►Campo applicativo: compravendita di Campo applicativo: compravendita di titoli di borsa.titoli di borsa.

►Siti web già presenti onlineSiti web già presenti online

Page 3: L!ve T!tle: software per la consultazione degli andamenti dei titoli di borsa online

3

http:://it.finance.yahoo.comhttp:://it.finance.yahoo.com

Page 4: L!ve T!tle: software per la consultazione degli andamenti dei titoli di borsa online

4

Paradigma Client/ServerParadigma Client/Server►Client utilizza il server che ha a Client utilizza il server che ha a

disposizione risorse e metodi condivisi.disposizione risorse e metodi condivisi.

►Esempio: RMI (limitato a Java).Esempio: RMI (limitato a Java).

►Si pensa a Si pensa a CORBACORBA come metodo per come metodo per progettare oggetti remoti indipendenti progettare oggetti remoti indipendenti dal linguaggio di programmazione e dal linguaggio di programmazione e dalle macchine di esecuzione.dalle macchine di esecuzione.

Page 5: L!ve T!tle: software per la consultazione degli andamenti dei titoli di borsa online

5

CORBACORBA► Common Object Request Broker ArchitectureCommon Object Request Broker Architecture

► Componenti fondamentali:Componenti fondamentali: ORB: object request brokerORB: object request broker IDL: interface definition languageIDL: interface definition language BOA/POA: basic object adapter/portable o.a.BOA/POA: basic object adapter/portable o.a. SII/DII: static invocation interface/dinamic i.i.SII/DII: static invocation interface/dinamic i.i. IR/OR: interface repository/object r.IR/OR: interface repository/object r. GIOP/IIOP:general interorb protocol/internet io.pGIOP/IIOP:general interorb protocol/internet io.p

Page 6: L!ve T!tle: software per la consultazione degli andamenti dei titoli di borsa online

6

Architettura CorbaArchitettura CorbaINTERFACE REPOSITORY COMPILATORE IDL IMPLEMENTATION REP.

CLIENT SERVANT (object)

ORB INTERFACEDII IDL (stub)

IDL(skel) DSI

OA

G I O P / I I O P ORB CORE

Page 7: L!ve T!tle: software per la consultazione degli andamenti dei titoli di borsa online

7

Architettura del prototipoArchitettura del prototipo►Client/Server su macchina comune Client/Server su macchina comune

(estendibile a macchine separate in (estendibile a macchine separate in una versione finale)una versione finale)

►Costruzione di un Costruzione di un file IDLfile IDL per la per la trasparenza di linguaggio. Nel file sono trasparenza di linguaggio. Nel file sono specificati i metodi e gli oggetti specificati i metodi e gli oggetti remoti.remoti.

Page 8: L!ve T!tle: software per la consultazione degli andamenti dei titoli di borsa online

8

Stub e SkeletonStub e Skeleton►La compilazione del file IDL permette la La compilazione del file IDL permette la

generazione automatica di generazione automatica di Stub lato Stub lato client e Skeleton lato serverclient e Skeleton lato server

►Tramite lo Stub si lavora sul messaggio Tramite lo Stub si lavora sul messaggio lato client (lo stub agisce come proxy)lato client (lo stub agisce come proxy)

►Tramite lo Skeleton si prende la richiesta Tramite lo Skeleton si prende la richiesta del client e la si “adatta” al serverdel client e la si “adatta” al server

► Il superamento dell’eterogeneità è dato Il superamento dell’eterogeneità è dato da un componente detto da un componente detto AdattatoreAdattatore (OA) (OA)

Page 9: L!ve T!tle: software per la consultazione degli andamenti dei titoli di borsa online

9

CORBA IDL – Stub e SkeletonCORBA IDL – Stub e Skeleton

LATO CLIENT: LINGUAGGIDI PROGRAMMAZIONE (VARI)

LATO SERVER: LINGUAGGIDI PROGRAMMAZIONE (VARI)

INTERFACCIA IDL

STUB SKELETON

ORB

Page 10: L!ve T!tle: software per la consultazione degli andamenti dei titoli di borsa online

10

Digressione: comunicazione Digressione: comunicazione ORBORBORBORB

►ORBORB: object request broker.: object request broker.► Coordinatore delle richieste in maniera Coordinatore delle richieste in maniera

trasparente dalla posizione e trasparente dalla posizione e implementazione dell’oggetto remoto.implementazione dell’oggetto remoto.

► La comunicazione da orb a orb di sistemi La comunicazione da orb a orb di sistemi CORBA diversi avviene attraverso protocolli CORBA diversi avviene attraverso protocolli di interoperabilità orb to orb; di interoperabilità orb to orb; standardizzazione con standardizzazione con GIOPGIOP, su TCP/IP molto , su TCP/IP molto usato usato IIOPIIOP (Internet Inter-Orb Protocol) (Internet Inter-Orb Protocol)

Page 11: L!ve T!tle: software per la consultazione degli andamenti dei titoli di borsa online

11

Realizzazione del prototipoRealizzazione del prototipo► Implementazione dell’IDL per gli Implementazione dell’IDL per gli

oggetti e i metodi remotioggetti e i metodi remoti►Generazione tramite idlj (compilatore Generazione tramite idlj (compilatore

idl di Sun) delle classi Stub e Skeletonidl di Sun) delle classi Stub e Skeleton► Implementazione delle classi Client e Implementazione delle classi Client e

Server (con classi accessorie che ne Server (con classi accessorie che ne conseguono) con conseguente conseguono) con conseguente implementazione “reale” degli oggettiimplementazione “reale” degli oggetti

Page 12: L!ve T!tle: software per la consultazione degli andamenti dei titoli di borsa online

12

Struttura completa del Struttura completa del sistemasistema

TITLE.IDL

Codice sorgentedel cliente (Java)

Codice stub generatoautomaticamente

SoftwareClient

Software Server

LibrerieCORBA

Codice sorgentedel server (Java)

Codice skeleton gen.automaticamente

Page 13: L!ve T!tle: software per la consultazione degli andamenti dei titoli di borsa online

13

Naming ServiceNaming Service► Si fa utilizzo di un Si fa utilizzo di un servizio di Namingservizio di Naming con nomi con nomi

unici per rendere disponibile un servant ad un unici per rendere disponibile un servant ad un client remoto.client remoto.

► Parliamo (ed utilizziamo) infatti un servant come Parliamo (ed utilizziamo) infatti un servant come implementatore dei servizi e dei metodi del implementatore dei servizi e dei metodi del server.server.

►Operazione di binding: si associa un nome ad un Operazione di binding: si associa un nome ad un riferimentoriferimento

►Operazione di naming resolution: risoluzione del Operazione di naming resolution: risoluzione del nome per recuperare un riferimento al servizionome per recuperare un riferimento al servizio

Page 14: L!ve T!tle: software per la consultazione degli andamenti dei titoli di borsa online

14

Realizzazione lato Realizzazione lato server/clientserver/client

► Ricapitolando:Ricapitolando:

Il server:Il server: Inizializza l’orb mediante la initInizializza l’orb mediante la init Prima che l’oggetto sia utilizzabile dal client deve essere connesso all’orb Prima che l’oggetto sia utilizzabile dal client deve essere connesso all’orb

mediante la connect (non utilizziamo un oa)mediante la connect (non utilizziamo un oa) Per ottenere un riferimento agli oggetti disponibili il server utilizza la Per ottenere un riferimento agli oggetti disponibili il server utilizza la

resolve_initial_referencesresolve_initial_references Ottenuto il riferimento viene utilizzata la narrow per recuperare il Ottenuto il riferimento viene utilizzata la narrow per recuperare il

NamingContextNamingContext Si effettua il binding utilizzando la rebind tra il NameComponent opportuno Si effettua il binding utilizzando la rebind tra il NameComponent opportuno

(nome e tipo) e l’istanza del servant(nome e tipo) e l’istanza del servant

Il client:Il client: Effettua le stesse operazioni per ottenere il riferimento al Naming ServiceEffettua le stesse operazioni per ottenere il riferimento al Naming Service Effettua la resolve per ottenere un riferimento all’oggetto remoto (Title nel Effettua la resolve per ottenere un riferimento all’oggetto remoto (Title nel

caso del prototipo)caso del prototipo)

Page 15: L!ve T!tle: software per la consultazione degli andamenti dei titoli di borsa online

15

Gestione a polling Gestione a polling dell’interrogazionedell’interrogazione

►L’interrogazione per la verifica della L’interrogazione per la verifica della presenza di nuove versioni del presenza di nuove versioni del database dei titoli è realizzata database dei titoli è realizzata mediante polling.mediante polling.

► Il client interroga il server ad intervalli Il client interroga il server ad intervalli ripetuti (con step impostabile ripetuti (con step impostabile dall’esterno).dall’esterno).

Page 16: L!ve T!tle: software per la consultazione degli andamenti dei titoli di borsa online

16

Sviluppi futuriSviluppi futuri► Lo sviluppo del progetto ha permesso di Lo sviluppo del progetto ha permesso di

prendere “parziale” confidenza con i prendere “parziale” confidenza con i meccanismi di elaborazione remota di Corba e meccanismi di elaborazione remota di Corba e con l’indipendenza dal linguaggio mediante IDL.con l’indipendenza dal linguaggio mediante IDL.

► Non è proprio uno sviluppo futuro, ma nella Non è proprio uno sviluppo futuro, ma nella realizzazione non prototipale è necessaria una realizzazione non prototipale è necessaria una modifica per l’effettiva distributività del modifica per l’effettiva distributività del software.software.

► Utilizzo dei meccanismi di Callback per il Utilizzo dei meccanismi di Callback per il reperimento dei nuovi valori.reperimento dei nuovi valori.

Page 17: L!ve T!tle: software per la consultazione degli andamenti dei titoli di borsa online

17

BibliografiaBibliografia► [1] A. Corradi – Dispense del corso di Reti di Calcolatori LS. Università [1] A. Corradi – Dispense del corso di Reti di Calcolatori LS. Università

di Bologna, facoltà di Ingegneria. Anno accademico 2004-2005.di Bologna, facoltà di Ingegneria. Anno accademico 2004-2005.

► [2] G. Morello – Java e Corba. Manuale Pratico di Java – dalla teoria [2] G. Morello – Java e Corba. Manuale Pratico di Java – dalla teoria alla programmazione. Volume 2.alla programmazione. Volume 2.

► [3] L. Bettini – Java+IDL=CORBA. Mokabyte n. 22 Settembre 1998 [3] L. Bettini – Java+IDL=CORBA. Mokabyte n. 22 Settembre 1998 www.mokabyte.itwww.mokabyte.it

► [4] Sun Corp. – Java IDL Examples – [4] Sun Corp. – Java IDL Examples – java.sun.com/j2se/docs/guide/idl/jidlExample3.html java.sun.com/j2se/docs/guide/idl/jidlExample3.html

► [5] K. Johnson – Remoting.Corba Wiki (C#) – [5] K. Johnson – Remoting.Corba Wiki (C#) – kristoperhjohnson.net/cgi-bin/rc/wiki.pl?Tutorials/Callbackkristoperhjohnson.net/cgi-bin/rc/wiki.pl?Tutorials/Callback

► [6] A. Santoro, A. Termini – Programmazione Corba in Java – [6] A. Santoro, A. Termini – Programmazione Corba in Java – www.dis.uniroma.it/~santoroawww.dis.uniroma.it/~santoroa