architetture architetture n-tier com (component object model) e dcom (distributed com) soa (service...

94
ARCHITETTURE Architetture N-Tier • COM (Component Object Model) e DCOM (Distributed COM) • SOA (Service Oriented Architecture) • Enterprise Java Beans • Microsoft .NET • Web Services

Upload: velia-monti

Post on 02-May-2015

230 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

ARCHITETTURE

• Architetture N-Tier

• COM (Component Object Model) e DCOM (Distributed COM)• SOA (Service Oriented Architecture)• Enterprise Java Beans• Microsoft .NET• Web Services

Page 2: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

Applicazioni Web-based e non

Elementi di base di un’applicazione• I dati da trattare (dati sugli utenti, sul servizio offerto,

etc.)• Logica applicativa (business logic), ovvero le

funzionalità che l’applicazione deve offrire, il tipo di trattamento dei dati previsto (quali operazioni si possono fare), etc.

• Interfaccia utente – interfaccia web (e.g., per browser, o testuale)

– stand-alone (applicazione locale alla macchina su cui gira)

Page 3: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

Architetture delle applicazioni

• Monoliti• Client/server (two-tier)• Three-tier• N-tier

Page 4: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

Monoliti (IT stovepipe) - I

• Popolari ai tempi dei mainframe• Monoliti:

– pezzi di codice indivisibili

– controllavano l’intera logica dell’applicazione, dalla gestione (e memorizzazione) dei dati, fino all’interfaccia utente

– gestivano applicazioni stand-alone

• Popolarità dovuta a:– mainframe adatti ad eseguire pochi processi stand-alone,

anzichè diversi processi comunicanti

– non c’erano ancora i database

Page 5: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

Monoliti (IT stovepipe) - II

Enterprise

User interface

Logic

Data Management

Page 6: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

Architetture client/server - I• Dalla fine degli anni ‘70 alla metà degli anni ‘80

– Diffusione di server più piccoli ed economici dei mainframe, e di workstations e PC

– Diffusione di RDBMS

• Suddivisione delle applicazioni in due parti:– backend (server): gestione di database (+ o – complessi) e

dei compiti di manipolazione dei dati– frontend (client): gestione interfaccia utente maggiore scalabilità, rispetto a monoliti (carico

computazionale distrbuito sui client) sviluppo più veloce di applicazioni che accedono agli

(stessi) dati

Page 7: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

Architetture client/server - III

Enterprise

User interface

Logic

Data Management

Client Client Client

Server

Page 8: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

Architetture client/server - IISvantaggi:• Traffico di messaggi intenso (frontend comunica

continuamente con server dati)• Logica di business non gestita in componente separata

dell’architettura: suddivisa tra frontend e backend client e server di applicazione dipendono l’uno

dall’altro– difficile riutilizzare interfaccia in servizio che accede a dati

diversi– difficile utilizzare DB da frontend diversi– tendenza a cablare la business logic nell’interfaccia utente

cambio di logica significa cambiare anche interfaccia

Page 9: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

Architetture client/server - IV

• Problema: mancato riconoscimento dell’importanza della business logic– Es: servizio accessibile da più device (telefonino, desktop)

stessa logica, interfaccia diversa

Enterprise

User interface

Logic

Data Management

ClientNuovo Client Nuovo Client

Server

AdapterAdapter

Page 10: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

Architetture three-tier - I

• Introdotte all’inizio degli anni ‘90

• Business logic trattata in modo esplicito:– livello 1: gestione dei dati (DBMS, file XML, …..)

– livello 2: business logic (processamento dati, …)

– livello 3: interfaccia utente (presentazione dati, servizi)

• Ogni livello ha obiettivi e vincoli di design propri

• Nessun livello fa assunzioni sulla struttura o implementazione degli altri:– livello 2 non fa assunzioni su rappresentazione dei dati, né

sull’implementazione dell’interfaccia utente

– livello 3 non fa assunzioni su come opera la business logic ..

Page 11: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

Architetture three-tier - II

• Non c’è comunicazione diretta tra livello 1 e livello 3– Interfaccia utente non riceve, né inserisce direttamente dati

nel livello di data management

– Tutti i passaggi di informazione nei due sensi vengono filtrati dalla business logic

• I livelli operano senza assumere di essere parte di una specifica applicazione applicazioni viste come collezioni di componenti

cooperanti ogni componente può essere contemporaneamente parte

di applicazioni diverse (e.g., database, o componente logica di configurazione di oggetti complessi)

Page 12: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

Architetture three-tier - III

BusinessRules

Enterprise

User interfacePresentation layer

LogicBusiness layer

Data ManagementData layer Data

ServiceData

ServiceData

Service

BusinessRules

BusinessRules

MotifClient

WindowsClient

TelephonyClient

MacClient

Page 13: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

Architetture three-tier - IV

User Interface

Application Logic

DBXML

Documents

Dataproviders

Serviceprovider

Serviceconsumer

Directoryservice

Page 14: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

Vantaggi di architetture three-tier - I

• Flessibilità e modificabilità di sistemi formati da componenti separate– componenti utilizzabili in sistemi diversi

– modifica di una componente non impatta sul resto del sistema (a meno di cambiamenti negli API)

– ricerca di bug più focalizzata (separazione ed isolamento delle funzionalità del sistema)

– aggiunta di funzionalità all’applicazione implica estensione delle sole componenti coinvolte (o aggiunta di nuove componenti)

Page 15: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

Vantaggi di architetture three-tier - II

• Interconnettività– API delle componenti superano il problema degli adattatori

del modello client server N interfacce diverse possono essere connesse allo stesso servizio etc.

– Facilitato l’accesso a dati comuni da parte di applicazioni diverse (uso dello stesso gestore dei dati da parte di business logics diverse)

• Gestione di sistemi distribuiti– Business logic di applicazioni distribuite (e.g., sistemi

informativi con alcuni server replicati e client remoti) aggiornabile senza richiedere aggiornamento dei client

– Aggiornamento dei client comunque costoso

Page 16: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

Vantaggi di architetture three-tier - III

• Applicazioni distribuite geograficamente– Data server centrale

– Business logic gestita da server logici regionali

– Client remoti (ev. con business logic per maggior scalabilità)

• Per ridurre traffico di rete e latency del servizio, anche il data server centrale può essere replicato (ma, gestione consistenza dati)

Page 17: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

Svantaggi di architetture three-tier - I

• Dimensioni delle applicazioni ed efficienza– Pesante uso della comunicazione in rete latenza del

servizio

– Comunicazione tra componenti richiede uso di librerie SW per scambio di informazioni codice voluminoso

• Legacy software– Molte imprese usano software vecchio (basato su modello

monolitico) per gestire i propri dati

• difficile applicare il modello three-tier per nuove applicazioni

• introduzione di adapters per interfacciare il legacy SW

Page 18: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

Three-tier è concettuale, non fisico

Si possono implementare architetture three-tier su due livelli di macchine, o anche su uno solo...

Data and Logic Server Clients

User Interface

User Interface

DataComponents

LogicRules

Page 19: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

Architetture n-Tier - I

Permettono configurazioni diverse. Elementi fondamentali:

• Interfaccia utente (UI)– gestisce interazione con utente

– può essere un web browser, WAP minibrowser, interfaccia grafica, …

• Presentation logic– definisce cosa UI presenta e come gestire le richieste utente

• Business logic– gestisce regole di business dell’applicazione

Page 20: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

Architetture n-Tier - II

• Infrastructure services– forniscono funzionalità supplementari alle componenti

dell’applicazione (messaging, supporto alle transazioni, …)

• Data layer: – livello dei dati dell’applicazione

Page 21: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

Architetture n-Tier - III

Browser

DBXML

Documents

Presentation Logic

Business LogicServices

Application client

Firewall

Page 22: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

Applicazione Web-based tipica - I

• Interfaccia utente: gestita sul browser utente• Logica applicativa: gestita sul server, che si

interfaccia al web attraverso Web Server• Livello dei dati: su database, eventualmente

localizzato su macchina diversa da quella del Web Server, per questioni di sicurezza

WebServer Business logic

Browserutente

HTTP

Page 23: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

Applicazione Web-based tipica - II

• Richiesta di pagina HTML statica (pagina HTML memorizzata nel file system dell’applicazione – il codice della pagina non viene generato eseguendo programmi applicativi sul server)

WebServer

Local File System

/htdocs/hello.html

Request: http://patzer/hello.html

Response: HTML code

Browserutente

Page 24: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

Applicazione Web-based tipica - III

• Richiesta di pagina dinamica (pagina HTML generata dinamicamente, sulla base della richiesta del client – codice della pagina generato eseguendo programmi applicativi sul server)

WebServer Business logic

Request: http://www.di.unito.it/service1.html

Response: pagina HTML di risposta, con eventuali linke bottoni per continuare interazione

Browserutente

Page 25: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

Browser Web• Può essere visto come interfaccia utente universale

– Invoca Web Server per richiedere pagine statiche o dinamiche

– Riceve contenuti web da Web Server invocato e li presenta sulla macchina dell’utente• Browser moderni (MS Explorer, Netscape Navigator, …)

interpretano codice HTML• Alcuni browser interpretano codice XML

– Può eseguire script (e.g., javascript) localmente, per effettuare semplici computazioni (e.g., controllo correttezza input utente)

– Può scaricare plug-in da Web Server per eseguire programmi localmente (e.g., animazioni Flash o altro)

Page 26: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

Web Server

• Programma che – gira su una macchina server accessibile da internet – resta in ascolto di richieste (da parte di client web)

su porta HTTP. E.g., http://www.di.unito.it:8080– gestisce le richieste che arrivano (recupera pagina

html richiesta, esegue programmi, invoca programmi associati a servizi richiesti, etc.)

– restituisce a client una risposta (risultato della richiesta, messaggio di errore)

Page 27: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

La Piattaforma J2EE

• J2SE: Java 2 Platform, Standard Edition. – Ambiente runtime per esecuzione di applicazioni Java e

insieme di API (Application Programming Interface) per sviluppare applicazioni di vario tipo (applets, applicazioni stand-alone, …)

• J2EE: Java 2 Platform, Enterprise Edition:– framework per lo sviluppo di applicazioni server-side

complesse

• J2ME: Java 2 Platform, Micro Edition:– framework per lo sviluppo di applicazioni su micro

device (PDA, telefonini Java-enabled, etc.)

Page 28: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

Proprietà

• J2EE: adatta allo sviluppo di applicazioni Web-based a livello di impresa, e.g., per commercio elettronico

• Il suo competitor è Microsoft .net• Impresa (enterprise): organizzazione di business• Enterprise software applications: applicazioni SW

che facilitano la gestione delle attività di impresa– interagire con clienti e partners via Internet

– facilitare l’interazione tra le varie parti di un’impresa, eventualmente distribuite geograficamente

– gestione del business: resource planning, gestione inventari, ...

Page 29: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

Caratteristiche di applicazioni “enterprise”

• Necessità informative: spesso le stesse informazioni sono utilizzate sotto forma diversa dai consumatori attività di business diverse processano le stesse informazioni, ma utilizzando formati diversi

• Complessità dei processi di business: necessità di raccogliere, gestire e condividere informazioni, basandosi su una logica complessa

• Eterogeneità delle applicazioni: un’impresa utilizza molte applicazioni basate su architetture e tecnologie diverse (legacy software)

Page 30: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

Requisiti di gestione del software d’impresa

• Velocizzazione del processo di sviluppo delle applicazioni: cambiano gli standard, le tecnologie, le applicazioni devono entrare in uso velocemente

• Affidabilità e disponibilità: il SW deve essere sempre accessibile (Web) ed essere affidabile (e.g., transazioni)

• Sicurezza: protezione delle informazioni dell’azienda • Scalabilità: accesso efficiente a risorse, tolleranza al

carico di milioni di utenti (Web)• Integrazione: le applicazioni vanno integrate nei

sistemi informativi già esistenti

Page 31: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

J2EE• Si sono sviluppate soluzioni diverse per affrontare i

vari problemi• J2EE: permette di integrare tali soluzioni e facilita lo

sviluppo del SW– Modello di programmazione con approccio alla costruzione

di applicazioni basato su API– Infrastruttura che permette di eseguire le applicazioni in

modo efficiente e scalabile• basato su Java portabile• basato sul concetto di Contenitore servizi di gestione di base

(messaggi, transazioni, ciclo di vita delle componenti, …) forniti dall’infrastruttura

• Modulare, componenti riusabili

Page 32: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

L’evoluzione del Client/Server

CLIENTSERVERPC

stand alonePC

networking

End User

HOSTsolution

MINIsolution

Enterprise

Page 33: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

Allocazione Delle Componenti

DataManagement

Logic/Control

Presentation

SERVER

CLIENT

NETWORK

Page 34: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

Classificazione delle soluzioni Client/Server

Data

Logic

Presentation

Data

Logic

Presentation

Data

Logic

Presentation

Logic

Data

Logic

Presentation

Data

Logic

Presentation

Data

Char. Terminal X-Terminal PC PC PC

TimesharingClient

PresentationDistributedApplication

CentralDatabase

DistributedDatabase

Server

Client

Centralized Decentralized

Page 35: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

Le “ere” del Client/Server

Da: Byte Aprile 95

Page 36: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

HTML Dinamico?????

InterneInternet t

(htpp)(htpp)

WebWebServerServer

HTMLHTML

JSPJSP servletservlet BusinessBusinessObjectsObjects DATIDATI

servletservlet

browserbrowser1. richiesta .jsp1. richiesta .jsp

4. ritorna html4. ritorna html

2. richiesta dati2. richiesta dati

3. generazione html3. generazione html

Tier 1Tier 1 Tier 2Tier 2 Tier 3Tier 3

Application server

Page 37: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

Architetture Two-Tiers e Three-Tiers

Market ShareMarket Share

1 s t Q t r 2 n d Q t r0

2 0

4 0

6 0

8 0

1 s t Q t r 2 n d Q t r

Market ShareMarket Share

1 s t Q t r 2 n d Q t r0

2 0

4 0

6 0

8 0

1 s t Q t r 2 n d Q t r

Market ShareMarket Share

1 s t Q t r 2 n d Q t r0

2 0

4 0

6 0

8 0

1 s t Q t r 2 n d Q t r

Market ShareMarket Share

1 s t Q t r 2 n d Q t r0

2 0

4 0

6 0

8 0

1 s t Q t r 2 n d Q t r

DB

DB

DB

Market ShareMarket Share

1 s t Q t r 2 n d Q t r0

2 0

4 0

6 0

8 0

1 s t Q t r 2 n d Q t r

Market ShareMarket Share

1 s t Q t r 2 n d Q t r0

2 0

4 0

6 0

8 0

1 s t Q t r 2 n d Q t r

Market ShareMarket Share

1 s t Q t r 2 n d Q t r0

2 0

4 0

6 0

8 0

1 s t Q t r 2 n d Q t r

Market ShareMarket Share

1 s t Q t r 2 n d Q t r0

2 0

4 0

6 0

8 0

1 s t Q t r 2 n d Q t r

DB

DB

DB

minore uso delle risorse

suddivisionepiù razionale dei compiti

livello intermedio

Page 38: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

Architetture Multi-TierDatabasDatabasee ServersServers

NC . NC . NetPCNetPC PC PC

ClientClient MobilMobilee

Mail/Mail/GroupwareGroupwareServersServers

MainframMainframeeSystemsSystems

Interfaccia Utente

Logica Applicativa

Dati

Page 39: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

Logica Logica ApplicativaApplicativa

Web+ActiveXWeb+ActiveXo applet Javao applet Java

Web+script lato serverWeb+script lato server(ASP, JSP o servlet)(ASP, JSP o servlet)

Visual Basic, C++, Delphi Visual Basic, C++, Delphi Client/ServerClient/Server

Lotus Notes, ExchangeLotus Notes, ExchangeGroupwareGroupware

Applicazioni real-timeApplicazioni real-timebatch, OLTP, M&Qbatch, OLTP, M&Q

PersistenzaPersistenzadei datidei dati

Architetture Three-Tier: molti tipi di interfacce utente, la stessa applicazione

Page 40: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

Componenti• Possiedono interfacce standard (almeno un per

l’introspezione)• Applicazioni non complete• Distribuibili separatamente• Utilizzabili in combinazioni non predicibili• Indipendenti dalle caratteristiche tecnologiche del

sistema finale• Sono oggetti (nel senso canonico)

Page 41: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

Componenti (2)

• Gruppi di programmi gestiti come unità di codice eseguibile, connettibili dinamicamente e accedibili attraverso interfacce documentate che possono essere identificate a run-time

Page 42: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

Come realizzare una componente

DataExt. method

Ext. method

….

Ext. methodInt. Method

...

Int. Method

Proxy / Wrapper

Traditional

OO

Data

Code

Obj.Obj.Obj.Obj.

Data

Code

Page 43: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

Java Beans

• Integrati nel layout grafico che li contiene

• Generano eventi per il mondo esterno

• Possiedono proprietà leggibili e modificabili

• Supportano l’introspezione

• Sono persistenti

• Sono personalizzabili

Page 44: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

COM e DCOM: le originiCOM e DCOM: le origini

MicrosoftMicrosoft

DCOMDCOM(Distributed COM)(Distributed COM)

ActiveXActiveXOLEOLE COMCOM==

COMCOM

OLEOLE

OLE1OLE1

OLE2OLE2

Pre 1996Pre 1996 Post 1996Post 1996

OLE = Object Linking and Embedding

COM = Component Object Model

COM+ = Estensione della tecnologia COM

OLE = Object Linking and Embedding

COM = Component Object Model

COM+ = Estensione della tecnologia COM

COM+COM+

Page 45: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

COM e DCOMCOM e DCOM

IUnknown

Interfaccia 1

Interfaccia n

Oggetto COMOggetto COM

QueryInterface

AddRef

Release

Page 46: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

COM e DCOMCOM e DCOM

ClientClient OggettoOggettoNello stesso Nello stesso processo processo

ClientClient OggettoOggettoCOMCOM

Client ProcessClient Process Server ProcessServer Process

Sulla stessa Sulla stessa macchinamacchina

Tra due macchineTra due macchine(DCOM)(DCOM)

COMCOMDCERPC

ClientClient

Server MachineServer MachineClient MachineClient Machine

COMCOM OggettoOggetto

““Marshalling”Marshalling”

Page 47: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

Ereditarietà in DCOM

• Ereditarietà dell’interfaccia: SI

• Ereditarieta dell’implementazione: NO

• Polimorfismo degli oggetti DCOM: SI

Page 48: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

Ereditarietà per Contenimento (o delegazione)

Page 49: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

Ereditarietà per Aggregazione

Page 50: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

Service Oriented Architectures (SOA)

Infrastruttura integrazione

Page 51: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

EnterOrder

Composite Services/Process Objects

Batch Client

CustomerInventory Billing

Call Center

Browser

B2C Retail B2B Sales

A/R

Get Inventory

Update Inventory

GetBalance

Update Billing

Elemental Services/Business Objects

Open Account

Orders

InquireBalance

Get Orders

Update Orders

InquireOrders

GetID No.

Get Address

Change Address

Client Applications

SOA: il sistema informativo organizzato a Servizi

Page 52: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

Service-oriented Architecture Interaction• Uses interface metadata

• One-to-one connections

• Client directs flow

• Linear path of execution

• Closed to unforeseen input once a flow is started

Interfacestub

Interface proxy

Client Server

Service-oriented or Event-driven

Source Sink

Event-driven Notification• Uses event descriptor metadata

• Many-to-many connections

• Sink (recipient) determines flow

• Dynamic, parallel, asynchronous flows

• Can react to new external input while process is in flight

Event

Page 53: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

Module 4

Module 3

Module 2

Module 5

Event1

Module 1

Event Driven

Event2

Event3

Fork

Join

Client 1

Server 1 Server 2/Client 2

Server 3 Server 4

Service Oriented

Flussi di esecuzione

Page 54: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

Java 2 Enterprise Edition (1)

• Standard Sun per le soluzioni “enterprise”, prevede le seguenti librerie:– Enterprise Java Beans (EJB): modello delle

componenti sul lato server– Java Naming and Directory Interface (JNDI)– Remote Method Invocation (RMI): accesso

distribuito in rete agli oggetti Java– Servlets: presentazione dinamica e gestione

sessioni per i client web

Page 55: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

Java 2 Enterprise Edition (2)

– Java Server Pages (JSP): facilitano la creazione di pagine HTML, DHTML e XML

– Java Messaging Service (JMS): comunicazione via message & queuing o publish & subscribe

– Java Transaction Service (JTA): gestione delle transizioni distribuite (XA o CORBA OTS)

– Java DataBase Connection (JDBC) accesso uniforme agli RDBMS

– Java Autentication and Authorization Service– JavaMail: accesso ai server di posta elettronica

Costruiti “sopra” i servizi CORBA

Page 56: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

Enterprise Java Beans• Entity EJB

– supportano accessi condivisi– rappresentano dati persistenti su DB– identificati da una chiave univoca (primary key)

• Session EJB– eseguono le richieste di un singolo client– vita per il tempo della connessione– implementano la logica di business

• Message-Driven EJB (v. 2.0)– in ricezione di messaggi asincroni (JMS o altri)– vita breve per l’elaborazione di un singolo messaggio

Page 57: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

CICS

JSPServlet

Session Bean

JCAResourceManager

Message-DrivenBean

EntityBean

Applet

Browser

DBMS

QQ

ERP

J2ME

ServerDesktop

Applicazioni J2EE

Page 58: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

Elementi di un ambiente EJB

EJB ContainerEJB Container

EJB instance

method-1()method-2()

HomeHome

Object (Remote)Object (Remote)

EJB instance

method-1()method-2()

Crea, distrugge, cercaCrea, distrugge, cerca

Sicurezza - accesso ai dati - transazioni, ...Sicurezza - accesso ai dati - transazioni, ...

EJB ServerEJB Server

Page 59: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

EJB Server

• Fornisce la Java Virtual Machine e le classi di supporto agli EJB

• Fornisce le funzioni di base di ORB e TP monitor

• Fornisce le funzioni di accesso ai DB

• Realizza il bilanciamento del carico e l’alta disponibilità

Page 60: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

EJB Container

• fornisce l’ambiente in cui gli EJB di una classe vengono eseguiti

• fornisce ai client l’accesso a EJB Home e Object• realizza, insieme all’EJB server, i servizi di base:

sicurezza, transazioni, naming, persistenza (dello stato)

• può gestire pool di oggetti della stessa classe

Page 61: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

EJB Object (Remote)

• Rappresenta l’interfaccia dell’EJB verso il mondo esterno

• Filtra ed integra i messaggi verso le istanze di EJB

• Coordina le transazioni

• Nome: <classe>

Page 62: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

EJB Home

• Permette di creare istanze di oggetti di una classe e di cercarle

• Nome: <classe>Home

• Metodi:– create ()– destroy ()– interfaccia finder (solo per entity EJB)

Page 64: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

Formati di deployment J2EE

– Ogni prodotto richiede file “deployment descriptor” proprietari per descrivere le caratteristiche non standard (load balancing, gestione guasti, risorse…)

Page 65: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

Interazioni fra le classi J2EE

Page 66: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

EJB ContainerEJB Container

ClientClient

EJB Jar

EJB Jar

DeploymentDescriptor

DeploymentDescriptor

Istanza del beanIstanza

del bean

NamingServiceNamingService

EJB HomeEJB

Home

EJB Context

EJB ContextEJB

ObjectEJB

Object

lookup interfaccia home con JNDI

findByPrimaryKey(..)

create(..)new o activate

EJB Objects

Pool

EJB Objects

Pool

ejbActivate(..)ejbPassivate(..)

isCallerInRole(..)

contesto di esecuzione fornito in automatico dal container ad ogni chiamata

metodi del bean es. ejbRemove()metodi di business

es. addPrestito(..)

Architettura Enterprise JavaBeans

Page 67: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

Persistenza ed EJB

• Bean-managed persistence (BMP)– i dati sono acceduti direttamente dal codice

attraverso librerie quali JDBC o SQLJ.

• Container-managed persistence (CMP)– il container gestisce la persistenza in modo

automatico.– Container-managed relationships (CMR)– EJB Query Language (EJB QL)

Page 68: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

Mapping fra Entity Beans e DB

Page 69: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

COM

DNAMTS

.NET

DNA2000

COM+

DCOM

…….

1990s 2000s

Distributed Components

Components

Transactional Components

Three-Tier Architecture

Enterprise Quality of Service

Loose Coupling

Internet Network Computing

Evoluzione delle soluzioni Microsoft

Page 70: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

Microsoft .NET (1)

• CLR (Common Language Runtime) – interprete di IL (Intermediate Language) derivabile da molti

linguaggi di programmazione: VB, C++, C#, Cobol

– tutti i linguaggi supportati diventano object oriented (ereditarietà, costruttori parametrici) superando i limiti di COM

– garbage collection della memoria

– gestione delle eccezioni

– sicurezza durante l’interpretazione

– compilatore just-in-time

– gestione delle versioni

• Spazi di nomi gerarchici (namespace)

Page 71: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

Microsoft .NET (2)

• Intercomunicazione fra oggetti COM e .NET

• ASP.NET: – sviluppo di pagine HTML dinamiche con gestione degli eventi sui

controlli visuali (Web Forms)

– sviluppo facilitato di Web Services

Page 72: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

System System

System.DataSystem.Data System.XmlSystem.Xml

System.WebSystem.Web

GlobalizationGlobalizationDiagnosticsDiagnosticsConfigurationConfigurationCollectionsCollections

ResourcesResourcesReflectionReflectionNetNetIOIO

ThreadingThreadingTextTextServiceProcessServiceProcessSecuritySecurity

DesignDesignADOADO

SQLTypesSQLTypesSQLSQL

XPathXPathXSLTXSLT

RuntimeRuntimeInteropServicesInteropServices

RemotingRemoting

SerializationSerialization

SerializationSerialization

ConfigurationConfiguration SessionStateSessionStateCachingCaching SecuritySecurity

ServicesServicesDescriptionDescription

DiscoveryDiscovery

ProtocolsProtocols

UIUIHtmlControlsHtmlControls

WebControlsWebControls

System.DrawingSystem.Drawing

ImagingImagingDrawing2DDrawing2D

TextTextPrintingPrinting

System.Windows.FormsSystem.Windows.Forms

DesignDesign ComponentModelComponentModel

Il Framework .Net

Page 73: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

JVM e CLR

Page 74: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

Running Process’ Memory

SomeSources.exe

IL

Metadata

JIT Compiler

10010100 10110000 10000000 1011101011011011 11010111 11000010 01110110

Native Machine Language

The CPU executes the JIT-compiled machine code directly

At execution time the IL and Metadata are JIT compiled

Executing a Managed Application

Page 75: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

Altre caratteristiche di .NET

• Librerie XML e web services• Tutti i linguaggi sono completamente OO

(ereditarietà) ed interoperabili (stesso MSIL)• Assembly (unità autodescrittive di deployment)• Versioning delle interfacce (fine del “DLL hell”)• Remoting• ADO.NET: vista dei dati basata su XML

Page 76: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

Enterprise Services

ASP.NETASP.NET

Enterprise Enterprise ServicesServices

ADO.NETADO.NET {{

Gli Enterprise Services forniscono i servizi di MTS/COM+ (transazioni, pooling risorse...)

Page 77: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

eXtensible Markup Language (XML)

• Standard del W3C

• Deriva dallo Standard Generalized Markup Language (SGML) come l’HTML

• Orientato alla rappresentazione dei dati

• Il formato di un documento XML è definito in un DTD (Data Type Definition)

• L’eXtensible Stylesheet Language (XSL) descrive le regole di trasformazione di documenti XML in altri documenti XML o HTML

Page 78: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

Esempio di documento XML<?xml version="1.0" encoding="UTF-8" ?><?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE RICHIESTA_PAGAMENTO<!DOCTYPE RICHIESTA_PAGAMENTO SYSTEM SYSTEM

“ “http://www.miodtdserv.com/richiesta_pagamenti.dtdhttp://www.miodtdserv.com/richiesta_pagamenti.dtd")")>>

<!--<!-- Messaggio relativo ad una richiesta di pagamento a Messaggio relativo ad una richiesta di pagamento a seguito di fattura seguito di fattura    -->-->

<<RICHIESTA_PAGAMENTORICHIESTA_PAGAMENTO>>

<<FATTURA APPROVATA_DAFATTURA APPROVATA_DA="="Mario RossiMario Rossi"" DATA DATA="="22-Set-22-Set-19991999““

LIVELLOLIVELLO="="UrgenteUrgente"" FIRMATA_DA FIRMATA_DA="="Mario RossiMario Rossi">">

<<CLIENTECLIENTE>>Burlini Costruzioni spaBurlini Costruzioni spa</</CLIENTECLIENTE>>

   <<ORDINE_ACQUISTOORDINE_ACQUISTO>>OA1234X99OA1234X99</</ORDINE_ACQUISTOORDINE_ACQUISTO>>

<<IMPORTOIMPORTO>>LIT 100.000LIT 100.000</</IMPORTOIMPORTO>>

   </</FATTURAFATTURA>>

</</RICHIESTA_PAGAMENTORICHIESTA_PAGAMENTO>>

Page 79: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

Esempio di DTD<?xml version="1.0" encoding="UTF-8" ?><?xml version="1.0" encoding="UTF-8" ?>

<!-- Dichiarazione del documento "Richiesta di Pagamento" --<!-- Dichiarazione del documento "Richiesta di Pagamento" -->>

<!ELEMENT <!ELEMENT RICHIESTA_PAGAMENTORICHIESTA_PAGAMENTO ( (FATTURAFATTURA)+>)+>

<!ELEMENT <!ELEMENT FATTURAFATTURA ( (CLIENTE, ORDINE_ACQUISTO, IMPORTOCLIENTE, ORDINE_ACQUISTO, IMPORTO)>)>

<!ATTLIST ARTICOLO <!ATTLIST ARTICOLO APPROVATA_DAAPPROVATA_DA CDATA #REQUIRED> CDATA #REQUIRED>

<!ATTLIST ARTICOLO <!ATTLIST ARTICOLO FIRMATA_DAFIRMATA_DA CDATA #REQUIRED> CDATA #REQUIRED>

<!ATTLIST ARTICOLO <!ATTLIST ARTICOLO DATADATA CDATA #IMPLIED> CDATA #IMPLIED>

<!ATTLIST ARTICOLO <!ATTLIST ARTICOLO LIVELLOLIVELLO (Urgente|Normale) " (Urgente|Normale) "NormaleNormale" >" >

<!ELEMENT <!ELEMENT CLIENTECLIENTE (#PCDATA)> (#PCDATA)>

<!ELEMENT <!ELEMENT ORDINE_ACQUISTOORDINE_ACQUISTO (#PCDATA)> (#PCDATA)>

<!ELEMENT <!ELEMENT IMPORTOIMPORTO (#PCDATA)> (#PCDATA)>

Page 80: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

I Web Services• Composizione di applicazioni attraverso componenti

distribuite sul WWW

• Standard, tutti basati sull’XML:

– SOAP (Simple Object Access Protocol) il protocollo di richiamo di procedure remote come web services

– WSDL (Web Services Description Language): il linguaggio di definizione dei web services

– UDDI (Universal Description, Discovery and Integration) il protocollo per ricercare i web services, una sorta di "elenco telefonico" o "pagine gialle" dei web services

Page 81: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

Formato dei messaggi SOAP

• SOAP Header– dati opzionali sulla chiamata stessa

(autenticazione, pagamento, dove sono dichiarati i tipi usati, …)

• SOAP Body– contiene i dati delle chiamate e/o i

risultati di ritorno

Page 82: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

WSDL• WSDL allows Web

services to be self-describing.

• A WSDL document includes nine basic XML elements:

• Five abstract elements — port type, operation, message, part and type

• Three concrete elements — service, port and binding

• One definition element — provides definitions relating to the service.

Abstract Implementation

Port Type

Operation

Messages <types> … </types> <parts> … </parts>

Binding

End Point End Point

MapsTo

ProtocolAssociated

WithPort

Page 83: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

definitionselement

<message>elements

<portType>element

typeselement

messageelement

portTypeelement

bindingelement

serviceelement

<?xml version="1.0"?><definitions name="StockQuote"

targetNamespace="http://example.com/stockquote.wsdl"xmlns:tns="http://example.com/stockquote.wsdl"xmlns:xsd1="http://example.com/stockquote.xsd"xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"xmlns="http://schemas.xmlsoap.org/wsdl/">

<types><schema targetNamespace="http://example.com/stockquote.xsd"

xmlns="http://www.w3.org/2000/10/XMLSchema"><element name="TradePriceRequest">

<complexType><all>

<element name="tickerSymbol" type="string"/></all>

</complexType></element>

</schema>

</types><message name="GetLastTradePriceInput">

<part name="body" element="xsd1:TradePriceRequest"/>

</message><portType name="StockQuotePortType">

<operation name="GetLastTradePrice"><input message="tns:GetLastTradePriceInput"/><output message="tns:GetLastTradePriceOutput"/>

</operation>

</portType><binding name="StockQuoteSoapBinding">

<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>

<operation name="GetLastTradePrice"><soap:operation soapAction="http://example.com/GetLastTradePrice"/>

<input><soap:body use="literal"/>

</input><output>

<soap:body use="literal"/></output>

</operation></binding><service name="StockQuoteService">

<documentation>My first service</documentation>

<port name="StockQuotePort" binding="tns:StockQuoteBinding">

<soap:address location="http://example.com/stockquote"/>

</port></service>

</definitions>

operationelement

portelement

WSDL Document Elements

Page 84: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

UDDI Registry Data Structures<businessEntity >authorizedName="0100003PAJ" operator=www.ibm.com/services/uddi businessKey="83B31400-7581-11D5-889B 0004AC49CC1E"> ......

.....

</businessEntity>

<businessServices><businessService serviceKey="7BB589E0-7586-11D5-889B-

0004AC49CC1E" businessKey="83B31400-7581-11D5-889B-0004AC49CC1E">

.....

.......

</businessServices>

<bindingTemplates> <bindingTemplatebindingKey="7BB6C260-7586-11D5-889B-0004AC49CC1E serviceKey"7BB589E0-7586-11D5-

8890004AC49CC1E">

</bindingTemplate>

<bindingTemplatebindingKey="7BBB0820-7586-11D5-889B-0004AC49CC1E serviceKey= "7BB589E0-7586-11D5-889B0004AC49CC1E">.....

</bindingTemplate></bindingTemplates>

<tModelauthorizedName="Harpo Marx operator="www.ibm.com/services/udi tModel key="983d-999a-4567>

.....

</tModel>

<publisherAssertions generic = "2.0"

operator="www.ibm.com/services/uddi" authorizedName="Sweeney Todd" xlmns =urn:sweeneysmeatpies.com:http>">.

</publisherAssertions>

"white pages"Name, description, contacts, categories

<tModelauthorizedName="Chico Marx"operator="www.ibm.com/services/uddi" tModel key="1234-3456-7da9">

.....

</tModel>

Referencesone or more

"green" pagesbusiness process, service description, bindings

tModelTechnical information for using the service

"yellow pages"Business categories (NAICS, UN/SPSC,

geographical taxonomies)

Publisher AssertionsAsserts a relationship between two Business

Entities

Referencesone or more

businessrelationship

Page 85: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

Service Interface

Import

Types

Message

PortType

Binding

Business Service

BindingTemplate Finds

Port

Points To

Import

Service

Business Entity

Points To

Imports

Service Implementation

UDDIRegistrationFile

WSDLFile

Mapping WSDL to UDDI

tModel

Page 86: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

Soluzione Java per i Web Services

OS

WebContainer

EJBContainer

JVM

Application Server

SOAPProcessor

LocalUDDI

WSDL

Servlets

JSPsEJBs

Connectors

Internet Router

Firewall

Load

Balancer

WebServers

IntegrationBrokers

RDBMS

Legacy

Middle TierFront-End Tier Back-End Tier

ApplicationServer Subtier

Page 87: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

Simple API for XML (SAX).

Page 88: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

Document Object Model (DOM)

Page 89: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

Trasformazioni XSLT

XSLT (eXtensible Stylesheet Language for Transformations)

Page 90: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

Network

Managed Process

ASP.Net ISAPI DLL

Hosting the .NET Framework CLR

XML Web Service objects

SOAP MethodRequest

SOAP MethodResponse

Web Server

Ser

vice

-Cli

ent

ASP.Net

Page 91: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

Esempio di Web Service con ASP.NET

<%@ WebService Language="C#" Class="DateService" %>using System;using System.Web.Services;

public class DateService:WebService{ [WebMethod] public String GetDateString() { return DateTime.Now.ToString("D"); }}

DateService.asmxDateService.asmx

• Servizi implementati in file .ASMX

Page 92: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

Esempio di richiamo di un Web Service in .NET

using System;

class App{ public static void Main(){ DateService webObj = new DateService(); webObj.Url = "http://www.miaazienda.com/Services/DateService.asmx"; String dateString = webObj.GetDateString(); Console.WriteLine(dateString); }}

DateClient.csDateClient.cs

• Simple model for network communication– Object Instantiation– Method Call

• DateService type is a proxy object

Page 93: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

Gli standard XML

Transports

XML, XML Schemas, Encoding

SOAP (WS Routing, WS Attachment, DIME)

WSDL, UDDI, WS-Introspection

WS-Coordination

WS-Transaction

WS-SecurityReliable

Messaging

BPEL (Business Process Automation)

IBM’s and Microsoft’s “Web Services Architecture”(as of September 2002)

TBD

ImplementedStandards

ProposedStandards

Pre-Web ServicesStandards

Page 94: ARCHITETTURE Architetture N-Tier COM (Component Object Model) e DCOM (Distributed COM) SOA (Service Oriented Architecture) Enterprise Java Beans Microsoft.NET

Web Services

Services

Components

Granularity

ScopeB2B Market,

Global Enterprise

Coarse

Objects

HTTP+SOAP

MOM

ORB

Typical Access via

Small Enterprise,Complex Application

Homogeneous Application

Program

Tighter LooserCoupling

Procedural

Call

Dalle procedure ai servizi