A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

121
a.a. 2004/05 Tecnologie Web 1 Architetture parte II a.a. 2004-2005 parte 2

Transcript of A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

Page 1: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 1

Architettureparte II

a.a. 2004-2005

parte 2

Page 2: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 2

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 3: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 3

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 4: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 4

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 5: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 5

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 6: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 6

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 7: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 7

COM e DCOMCOM e DCOM

IUnknown

Interfaccia 1

Interfaccia n

Oggetto COMOggetto COM

QueryInterface

AddRef

Release

Page 8: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 8

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 9: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 9

Ereditarietà in DCOM

• Ereditarietà dell’interfaccia: SI

• Ereditarieta dell’implementazione: NO

• Polimorfismo degli oggetti DCOM: SI

Page 10: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 10

Ereditarietà per Contenimento (o delegazione)

Page 11: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 11

Ereditarietà per Aggregazione

Page 12: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 12

Interfacce

• In COM/DCOM le interfacce sono immutabili• Globally Unique IDentifiers (GUID) di 16 byte

per definire univocamente e immutabilmente le interfacce

• Le interfacce risolvono il problema del versioning

Page 13: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 13

Esempio Visual Basic (VBA)

Sub ControlloOrtografico()Sub ControlloOrtografico() Dim Obj as ObjectDim Obj as Object Set Set ObjObj = = CreateObjectCreateObject(“Excel.Application”)(“Excel.Application”) Parola = InputBox(“Scrivi una parola”)Parola = InputBox(“Scrivi una parola”) If If Obj.CheckSpellingObj.CheckSpelling(Parola) then(Parola) then MsgBox(“Parola valida”)MsgBox(“Parola valida”) ElseElse MsgBox(“Parola errata”)MsgBox(“Parola errata”) End ifEnd ifEnd SubEnd Sub

Page 14: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 14

Logic and Logic and abstractionsabstractions

Active ControlsActive Controls

Active ScriptingActive Scripting

Visual Basic form-Visual Basic form-based applicationbased application

MFC/SDK applicationMFC/SDK application

Java applet Java applet or applicationor application

DurableDurablestatestate

Architettura Three-Tier (DNA)

Page 15: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 15

Business Objects• Rappresentano oggetti dell’applicazione (cliente,

conto corrente, fattura, automobile, …)• Realizzano le “business rules”• Saranno utilizzati in combinazioni non predicibili

a priori (connessioni dinamiche ritardate)• Sono realizzati come componenti installate sul

secondo livello di un’architettura three-tier

Page 16: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 16

Object Transaction Monitors (OTM)

Object Request BrokerObject Request Broker

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

Ambiente di esecuzione evolutoAmbiente di esecuzione evoluto

Page 17: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 17

ClientsClients

ServerServer

NetworkNetwork

Microsoft COM+: costruire applicazioni scalabili

Thread PoolThread Pool

QueueQueue

ConnectionsConnections

ContextContext SecuritySecurity

Shared DataShared Data

ReceiverReceiver

SynchronisationSynchronisationService LogicService Logic

Co

nfig

uratio

nC

on

figu

ration

Man

agem

ent

Man

agem

ent

Page 18: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 18

COM+: i servizi integrati nella piattaforma

ClientsClients

Windows NT Server 4.0Windows NT Server 4.0

NetworkNetwork

Thread PoolThread Pool

QueueQueue

ConnectionsConnections

ContextContext SecuritySecurity

Shared DataShared Data

ReceiverReceiver

SynchronisationSynchronisationService LogicService Logic

Co

nfig

uratio

nC

on

figu

ration

Man

agem

ent

Man

agem

ent

Page 19: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 19

Programmazione con MTS/COM+

Set ctxObject = GetObjectContext()YOUR CODE YOUR CODE

Set objfoo = ctxObject.CreateInstance()YOUR CODEYOUR CODE

ctxObject.SetComplete

ctxObject.SetAbort

Set ctxObject = GetObjectContext()YOUR CODE YOUR CODE

Set objfoo = ctxObject.CreateInstance()YOUR CODEYOUR CODE

ctxObject.SetComplete

ctxObject.SetAbort

““Voglio accedere al Voglio accedere al mio contesto”mio contesto”

““Chiama un altro Chiama un altro oggetto”oggetto”

““Bene: riusa, Bene: riusa, fà commit, fà pulizia”fà commit, fà pulizia”

““Ci sono problemi: Ci sono problemi: aiutami!”aiutami!”

No TX codeNo TX codeNo Thread codeNo Thread codeNo Locking codeNo Locking code

Etc.Etc.

Page 20: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 20

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 21: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 21

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 22: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 22

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 23: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 23

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 24: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 24

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 25: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 25

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 26: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 26

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 27: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 27

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 28: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 28

CICS

JSPServlet

Session Bean

JCAResourceManager

Message-DrivenBean

EntityBean

Applet

Browser

DBMS

QQ

ERP

J2ME

ServerDesktop

Applicazioni J2EE

Page 29: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 29

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 30: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 30

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 31: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 31

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 32: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 32

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 33: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 33

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 34: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 34

Sviluppo di un EJB

Si veda ...

Page 35: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 35

Formati di deployment J2EE

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

Page 36: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 36

Dichiarazione di un’interfaccia remota (Object)

import javax.ejb.EJBObject;import java.rmi.RemoteException;import java.math.*;

public interface Converter extends EJBObject { public BigDecimal dollarToYen(BigDecimal dollars) throws RemoteException; public BigDecimal yenToEuro(BigDecimal yen) throws RemoteException;}

Page 37: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 37

Esempio: creazione dell’interfaccia Home

import java.io.Serializable;import java.rmi.RemoteException;import javax.ejb.CreateException;import javax.ejb.EJBHome;

public interface ConverterHome extends EJBHome { Converter create() throws RemoteException,

CreateException;} (si veda http://java.sun.com/j2ee/tutorial/1_3-fcs/ per l’esempio completo)

Page 38: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 38

Esempio: implementazione dei metodi esposti

import java.rmi.RemoteException; import javax.ejb.SessionBean; import javax.ejb.SessionContext; import java.math.*;

public class ConverterBean implements SessionBean {

public BigDecimal dollarToYen(BigDecimal dollars) { … implementazione ... }

public BigDecimal yenToEuro(BigDecimal yen) { … implementazione ... }

public ConverterBean() {} public void ejbCreate() {} public void ejbRemove() {} public void ejbActivate() {} public void ejbPassivate() {} public void setSessionContext(SessionContext sc) {}}

Page 39: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 39

Esempio: il clientimport javax.naming.Context; import javax.naming.InitialContext; import javax.rmi.PortableRemoteObject; import

java.math.BigDecimal;

public class ConverterClient { public static void main(String[] args) { try { Context initial = new InitialContext(); Object objref = initial.lookup ("java:comp/env/ejb/SimpleConverter");

ConverterHome home = (ConverterHome)PortableRemoteObject.narrow(objref, ConverterHome.class);

Converter currencyConverter = home.create(); BigDecimal param = new BigDecimal ("100.00"); BigDecimal amount = currencyConverter.dollarToYen(param); System.exit(0);

} catch (Exception ex) {System.err.println(”!!!"); ex.printStackTrace(); } } }

Page 40: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 40

Interazioni fra le classi J2EE

Page 41: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 41

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 42: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 42

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 43: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 43

Mapping fra Entity Beans e DB

Page 44: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 44

Dichiarazione di dati CMP public class OrderBean implements EntityBean{

public Integer orderId;public String customerName;public Address customerAddress;// some code

}

<entity><description>CMP Entity Bean</description><display-name>Order</display-name><ejb-name>Order</ejb-name><home>order.OrderHome</home><remote>order.Order</remote><ejb-class>order.OrderBean</ejb-class><persistence-type>Container</persistence-type><primkey-field>orderId</primkey-field><prim-key-class>java.lang.Integer</prim-key-class><reentrant>False</reentrant><cmp-field>

<field-name>orderId</field-name></cmp-field><cmp-field>

<field-name>customerName</field-name></cmp-field><cmp-field>

<field-name>customerAddress</field-name></cmp-field>

</entity>

deployment descriptor:

Page 45: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 45

Service Oriented Architecture

• Perché nasce la SOA

• Web Services– .NET– Java

Page 46: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 46

Esempio di E-business workflow IPrima:• Acme manufacturing utilizza software

proprietario per organizzare prese della Federal Express

Adesso

• Acme utilizza il sito della Federal Express per seguire il percorso del pacco

Page 47: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 47

Esempio di E-business workflow IIPrima:• Acme manufacturing ordina un computer

dalla Dell e ne segue il procedimento con telefonate

Adesso

• Acme utilizza il sito della Dell per seguire le fasi di processamento dell’ordine, preproduzione, produzione, preparazione alla consegna e spedizione

Page 48: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 48

Service Oriented Architecture• Business to Business integration

• Integrazione di applicazioni sviluppate su piattaforme eterogenee

• Evoluzione middleware

• E-business workflow

Page 49: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 49

Service Oriented ArchitectureUtilità nel descrivere i processi aziendali in

forma leggibile su Web dai clienti

Utilità nel descrivere i processi aziendali in forma leggibile da macchine

Page 50: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 50

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 51: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 51

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

Page 52: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 52

Trans-action

file

FTP

ORBl

Message

Gateway

APPC

APPC

CICS gateway

ORB

Messagequeue

Messagequeue

Messagequeue

Down-loadfile

Down-loadfile

Down-loadfile

HTTP/XML

Trans-action

file Screenscrape

ScreenscrapeScreen

scrapeTrans-action

file

CICS gatewayTrans-action

file

SocketsRPC

La complessità dei sistemi informativi aziendali nasce dalla sovrapposizione nel

tempo delle soluzioni

Page 53: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 53

Enterprise

ASPs and

Outsourcers

Suppliers

Subsidiary

Consumers

Business Customer

s & Dealers

Data CenterERP HR

Billing

Web-BasedIntermediaries

Suppliers

Web-BasedIntermediaries

SalesBranch

Virtual Enterprise

Soluzione: un’infrastruttura aziendale di intercomunicazione fra le applicazioni

Shop Floor

ShippingDept

ServicePurchasing Marketing

Infrastruttura aziendale di Intercomunicazione

Business Customers

Page 54: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 54

Service Oriented Architectures (SOA)

Infrastruttura integrazione

Page 55: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 55

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 56: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 56

Service-Oriented Architecture : The architecture of interfaces

Service Interface

Service Implementation

ServiceSoftware component that is a business-complete logical unit of work, accessible programmatically from independently designed contexts via a direct openly documented interface

SOAApplication software topology consisting of services and service consumers (clients) in loosely coupled 1-to-1 relationships InterfaceInterface

proxy

Service Consumer (Client)

Page 57: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 57

All-New Service

Wrapped Service

Composite Service

Serviceinterface

Serviceimplementation

Non-SOAapplications

Service Consumer

Service Consumer

Service Implementation:What Happens Behind The Interface

Page 58: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 58

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 59: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 59

Funzioni di un Integration Broker

Messaging, Gateways,

File Transfer

Me

tada

ta M

ana

gem

ent

De

velo

pmen

t To

ols

Ma

na

gem

en

t To

ols

Se

curi

ty a

nd

Dire

cto

ry

Business Process Management

Process Manager

Communication, Data Movement

Transformation

Intelligent Routing

Message Broker

Event and StateMonitoring

BusinessActivityMonitor

Page 60: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 60

Esempio di Architettura Multicanale

Page 61: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 61

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 62: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 62

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 63: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 63

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 64: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 64

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 65: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 65

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 66: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 66

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 67: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 67

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 68: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 68

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 69: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 69

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 70: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 70

Simple API for XML (SAX).

Page 71: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 71

Document Object Model (DOM)

Page 72: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 72

Trasformazioni XSLT

XSLT (eXtensible Stylesheet Language for Transformations)

Page 73: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 73

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 74: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 74

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 75: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 75

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 76: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 76

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 77: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 77

JVM e CLR

Page 78: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 78

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 79: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 79

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 80: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 80

Enterprise Services

ASP.NETASP.NET

Enterprise Enterprise ServicesServices

ADO.NETADO.NET {{

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

Page 81: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 81

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 82: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 82

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 83: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 83

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 84: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 84

JWSDP• Java Web Services Development Pack come

infrastruttura per lo sviluppo di applicazioni Web-based

• Tecnologie di– accesso a Database mediante JDBC– gestione di XML– gestione di applicazioni Server-side (Servlets, JSP) – Gestione dei Web Services

Page 85: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 85

JWSDP• JAXP – processa documenti XML utilizzando

diversi parsers• JAXB – permette la corrispondenza tra elementi

XML a classi Java• JAXM – invia messaggi SOAP su Internet in

modo standard• JAXR – permette di accedere ai business

registries e condividere le informazioni• JAX-RPC – invia chiamate a messaggi SOAP e

riceve la risposta

Page 86: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 86

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: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 87

Composizione di WS (I)

• Servizio composto: utilizza altri servizi per fornire il servizio richiesto

• Middleware per la composizione di servizi fornisce astrazioni e infrastrutture per la definizione ed esecuzione del servizio composto

Page 88: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 88

Composizione di WS (II)

Esempio: supply chain

Supplier I

Supplier II

Supply chain

contabilità fornitori

Page 89: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 89

Composizione di WS (III)

• Modello e linguaggio di composizione

• ambiente di sviluppo

• Ambiente di esecuzione

Page 90: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 90

Dimensioni del modello di composizione di WS

• Modello delle componenti

• Modello di orchestrazione

• Modello dei dati e di accesso ai dati

• Modello di selezione

• Transazioni

• Gestione delle eccezioni

Page 91: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 91

BPEL: Business Process Execution Language for Web Services

• Linguaggio che supporta la specifica di composizione e coordinazione

• Specifiche per processo eseguibile per definire l’implementazione logica di un servizio composto

• Comportamento esterno del servizio e implementazione interna

Page 92: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 92

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 93: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 93

Software Engineering

• Ciclo di vita del software

• OO Design e UML

Page 94: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 94

Requisiti di Sistema

validazione

Requisiti Software

validazione

Disegno di Sistema

validazione

Disegno di Dettaglio

validazione

Programmazione

Unit Test

Test

Avviamento e Manutenzione

Il Ciclo di Vita del Software(a cascata)

Analysis PhaseAnalysis Phase

System DesignSystem Design

Object DesignObject Design

ImplementationImplementation

Delivery & Delivery & MaintenanceMaintenance

Page 95: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 95

Esempio Waterfall

• Design dell’architettura– Top-down design– Decidere il linguaggio di programmazione– Decidere sul riuso– Design delle interfacce dei moduli– Tutte le decisioni di design devono essere

giustificate chiaramente

Page 96: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 96

Esempio Waterfall (cont.)

• Detailed Design– Design delle strutture dati e degli algoritmi dei moduli

• Codifica– Tradurre il design dettagliato in codice

• Testing– Test con dati tipici, dati errati

– Stress testing

• Manutenzione

Page 97: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 97

Problemi del Waterfall

• Non accade– Progetti reali tendono a non seguire un flusso

sequenziale• Attività sono fatte opportunisticamente durante tutte le “fasi”

• Non prevede incertezza e modifica dei requisiti– Like ordering with no chance to look around, compare

prices, change your mind, etc. (McCracken and Jackson, 1981)

• Consegna solo alla fine (lunga attesa)

Page 98: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 98

Quando il Waterfall funziona

• Progetti molto semplici

• Progetti dove i requisiti sono stabili e orientati alla matematica e il sistema può essere testato facilmente– Esempio: centrale nucleare

Page 99: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 99

Prototyping

• “When a new system concept or new technology is used, one has to build a system to throw awayto throw away, for even the best planning is not so omniscient as to get it right the first time.” (Brooks, 1975)

• Modelli da eliminare utilizzati per capire I requisiti ed esporre i rischi

• Non devono essere basati sul codice (es., arta)

Page 100: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 100

Natura del prototyping

Un approccio plan-based adatto a piccoli, agili sviluppi durante l’analisi dei requisiti

Page 101: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 101

Analisi dei requisiti

Prototyping

Prodotto ingegnerizzato

Requisiti

QuickDesign

CostruirePrototype

ValutarePrototype

RaffinarePrototype

Modifiche?Yes

No

(Pressman, 1996)

Page 102: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 102

Problemi del Prototyping

• Cliente vede una versione funzionante che può non essere costruita con qualità e manutabilità in mente e non capisce che deve essere gettata via

• E’ difficile da gettare via in ogni caso…– Compromessi di implementazione utilizzati per

veloci prototipi possono diventare parte della versione funzionante

Page 103: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 103

Incrementale

• Forma originale: “Evolutionary delivery” (Gilb, 1988)

• Sistema consegnato in pezzi, alta priorità viene prima

• Incrementi iniziali informano requisiti per futuri incrementi

• Dimensione degli incrementi varia (originalmente un massimo di alcune settimane)

Page 104: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 104

Incrementale

Def outlinerequisiti

IntegrazIncrement.

Validaz.sistema

Assegn. requisitiagli incrementi

Design systemarchitecture

Svilup Incremsistema

Validaz.Increment.

SistemaFinale

Sistema incompleto

(Sommerville, 2001)

Page 105: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 105

Extreme Programming (XP)

• “Listening, Testing, Coding, Designing. That's all there is to software. Anyone who tells you different is selling something.” – Kent Beck

• Processo software evolutivo e Lightweight

Page 106: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 106

XP Valori e Principi

• 4 Valori:– Semplicità– Comunicazione– Feedback– Coraggio

Principi base: Feedback rapido Assume

semplicità Cambiamenti

incrementali Abbraccia il

cambiamento Lavoro di qualità

Page 107: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 107

XP Practices

• Planning game

• Releases corte

• Metafore

• Design semplice

• Testing

• Refactoring

Pair programming Proprietà collettiva Continuous

integration Settimana di 40 ore Cliente On-site Standards di

codifica

Page 108: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 108

Extreme Programming

(Wells, 2000)

Page 109: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 109

UML per documentare le applicazioni three-tier

• L’UML è un linguaggio di modellazione accettato come standard da importanti organizzazioni ed aziende (OMG e Microsoft fra le altre) particolarmente adatto alla descrizione di applicazioni three-tier e/o a componenti.

• Molte metodologie (per esempio Rational Unified Process) sono basate su UML

• UML è composto da una serie di formalismi, fra di essi citiamo quelli più utili a descrivere il progetto in esame:

– Use case diagrams

– Class diagrams

– Sequence diagrams

– Component diagrams

Un articolo che spiega i passi dello sviluppo da UML a EJB cliccare qui

Page 110: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 110

Componenti di UML

Page 111: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 111

Use Case Diagrams

• Gli Use Case descrivono delle funzioni elementari viste dal punto di vista dell’utente finale

• L’elenco degli Use Case rappresenta l’intera copertura funzionale dell’applicazione

• Ogni Use Case può essere descritto con un testo allegato o con altri diagrammi (sequence e activity) che ne descrivono il comportamento dettagliato

Receive Alert

Input relationship data

Customer

Confirm Contract

Page 112: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 112

Class Diagrams

Login<<servlet>>

Update Contract Data<<servlet>>

ContractManager<<Session EJB>>

Customer<<Entity EJB>>

Contract<<Entity EJB>>

0..*

1..1

• I class diagram rappresentano le componenti logiche dell’applicazione

• possono rappresentare: componenti grafiche, procedure, dati…

• le classi possono avere attributi e metodi associati

Tier 1 Tier 3Tier 2

Page 113: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 113

Sequence Diagrams• I Sequence diagrams descrivono, per uno specifico use case, le interazioni

che intervengono fra le classi

• Dai sequence diagrams si ottengono dati utili all’analisi delle comunicazioni in rete

• Realizzando sequence diagram per ogni use case dell’applicazione si certifica la completezza dei class diagram

: Update Contract Data

: Client : ContractManager

: Contract : Customer

input new dataupdate( ) setMaxAmount( )

sendAlert( )

Firewallhttp

FirewallIIOP

WS AS

Page 114: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 114

Component Diagram

• I Component Diagram descrivono i moduli software che compongono l’applicazione

• Si possono descrivere le relazioni fra le classi e le componenti che implementano tali classi (interfacce)

• Dai component diagram alcuni strumenti CASE permettono la generazione di codice (Java, VB, C++ …)

Contract<<Entity EJB>>

Contract

ContractHome

Page 115: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 115

Un esempio: una BibliotecaDiagramma degli Use Case

Acquisizione nuovo libro o CD

Restituzione

Prestito di un libro o CD

Utente Biblioteca

Nuova iscrizione

<<estende>>

Bibliotecario

Page 116: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 116

Descrizione dello Use Case “Prestito”

USE CASE: Prestito

ACTOR:

Bibliotecario

PRECONDIZIONI:

Un iscritto alla biblioteca si presenta per un prestito di un libro o CD

DESCRIZIONE:

L’iscritto può richiedere direttamente il titolo del libro o CD, nel caso non si ricordasse esattamente il titolo, può indicarne l’autore.

Il bibliotecario effettua la ricerca e viene visualizzata una lista di libri o CD che possono essere presi in prestito e li propone all’iscritto.

L’iscritto ne seleziona uno e lo chiede in prestito.

Il bibliotecario va a reperire il libro o CD e registra l’effettuato prestito.

ECCEZIONI:

Il libro o CD non è disponibile in biblioteca: il prestito non viene effettuato.

Il libro o CD è già in prestito: il prestito non viene effettuato.

La persona richiedente non è ancora iscritto: il bibliotecario lo iscrive e poi continua l’operazione di prestito.

L’iscritto ha già troppi libri o CD in prestito: il prestito non viene effettuato.

POSTCONDIZIONI:

Prestito effettuato: libro o CD esce dalla biblioteca.

Page 117: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 117

Finestra “Ricerca”

Page 118: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 118

Finestra “Prestito”

Page 119: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 119

Diagrammma delle Classi

Libro

Editore : String

CD

Casa_Discografica : String

Prestito

Data : Date

Crea()

ElencoIscritti

NuovaIscrizione()

RicercaIscritto()

Iscritto

Nome : String

String

NArticoli : Number

NuovoPrestito()

RilasciaPrestito()

+Elenco_Iscritti

+Iscritto

Biblioteca

OraApertura : Ora

OraChiusura : Ora

RicercaPerTitolo()

RicercaPerAutore()

ProdottoMultimediale

Titolo : String

Autore : String

Locazione

RichiestaDisponibilità()

RendiIndisponibile()

RendiDisponibile()

+prestito

+prestito

prestito

1

*

+appartiene1

+appartiene*

appartiene

Page 120: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 120

Sequence Diagram dello Use Case “prestito”

: BibliotecarioUniversitaria :

Biblioteca : Prodotto

Multimediale : Finestra Prestito : Finestra Ricerca : Prestito : Iscritto : ElencoIscritti

1: Attiva finestra

2: RicercaPerAutore (String)

3: RicercaPerTitolo (String)

6: Attiva finestra

7: RicercaIscritto( )

8: Crea ( )

9: NuovoPrestito ( )

10: RendiIndisponibile ( )11: conferma

5: lista

4: RichiestaDisponibilità ( )

alternativi

Page 121: A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2.

a.a. 2004/05 Tecnologie Web 121

State Diagram di “Prodotto Multimediale”

Iniziale

Eliminato

In Acquisto

Acquistato

acquisto Registrato

Disponibile

In Prestito

Disponibile

inventario

catalogazione

In Prestito

restituzione

perdita

prestito

richiesta