La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

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

Presentazioni simili


Presentazione sul tema: "A.a. 2004/05Tecnologie Web1 Architetture parte II a.a. 2004-2005 parte 2."— Transcript della presentazione:

1 a.a. 2004/05Tecnologie Web1 Architetture parte II a.a parte 2

2 a.a. 2004/05Tecnologie Web2 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)

3 a.a. 2004/05Tecnologie Web3 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

4 a.a. 2004/05Tecnologie Web4 Come realizzare una componente Data Ext. method …. Ext. method Int. Method... Int. Method Proxy / Wrapper Traditional OO Data Code Obj. Data Code

5 a.a. 2004/05Tecnologie Web5 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

6 a.a. 2004/05Tecnologie Web6 COM e DCOM: le origini Microsoft DCOM (Distributed COM) ActiveXOLECOM= COM OLE OLE1 OLE2 Pre 1996 Post 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+

7 a.a. 2004/05Tecnologie Web7 COM e DCOM IUnknown Interfaccia 1 Interfaccia n Oggetto COM QueryInterface AddRef Release

8 a.a. 2004/05Tecnologie Web8 COM e DCOM Client Oggetto Nello stesso processo Client Oggetto COM Client Process Server Process Sulla stessa macchina Tra due macchine (DCOM) COM DCE RPC Client Server Machine Client Machine COM Oggetto “Marshalling”

9 a.a. 2004/05Tecnologie Web9 Ereditarietà in DCOM Ereditarietà dell’interfaccia: SI Ereditarieta dell’implementazione: NO Polimorfismo degli oggetti DCOM: SI

10 a.a. 2004/05Tecnologie Web10 Ereditarietà per Contenimento (o delegazione)

11 a.a. 2004/05Tecnologie Web11 Ereditarietà per Aggregazione

12 a.a. 2004/05Tecnologie Web12 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

13 a.a. 2004/05Tecnologie Web13 Esempio Visual Basic (VBA) Sub ControlloOrtografico() Dim Obj as Object Dim Obj as Object Set Obj = CreateObject(“Excel.Application”) Set Obj = CreateObject(“Excel.Application”) Parola = InputBox(“Scrivi una parola”) Parola = InputBox(“Scrivi una parola”) If Obj.CheckSpelling(Parola) then If Obj.CheckSpelling(Parola) then MsgBox(“Parola valida”) MsgBox(“Parola valida”) Else Else MsgBox(“Parola errata”) MsgBox(“Parola errata”) End if End if End Sub

14 a.a. 2004/05Tecnologie Web14 Logic and abstractions Active Controls Active Scripting Visual Basic form- based application MFC/SDK application Java applet or application Durable state Architettura Three-Tier (DNA)

15 a.a. 2004/05Tecnologie Web15 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

16 a.a. 2004/05Tecnologie Web16 Object Transaction Monitors (OTM) Market Share Ambiente di esecuzione evoluto

17 a.a. 2004/05Tecnologie Web17 Clients Server Network Microsoft COM+: costruire applicazioni scalabili Thread Pool Queue Connections ContextSecurity Shared Data Receiver Synchronisation Service Logic ConfigurationManagement

18 a.a. 2004/05Tecnologie Web18 COM+: i servizi integrati nella piattaforma Clients Windows NT Server 4.0 Network Thread Pool Queue Connections ContextSecurity Shared Data Receiver Synchronisation Service Logic ConfigurationManagement

19 a.a. 2004/05Tecnologie Web19 Programmazione con MTS/COM+ Set ctxObject = GetObjectContext() YOUR CODE YOUR CODE Set objfoo = ctxObject.CreateInstance()YOUR CODE ctxObject.SetComplete ctxObject.SetAbort Set ctxObject = GetObjectContext() YOUR CODE YOUR CODE Set objfoo = ctxObject.CreateInstance()YOUR CODE ctxObject.SetComplete ctxObject.SetAbort “Voglio accedere al mio contesto” “Chiama un altro oggetto” “Bene: riusa, fà commit, fà pulizia” “Ci sono problemi: aiutami!” No TX code No Thread code No TX code No Thread code No Locking code Etc.

20 a.a. 2004/05Tecnologie Web20 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.)

21 a.a. 2004/05Tecnologie Web21 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,...

22 a.a. 2004/05Tecnologie Web22 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)

23 a.a. 2004/05Tecnologie Web23 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

24 a.a. 2004/05Tecnologie Web24 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

25 a.a. 2004/05Tecnologie Web25 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

26 a.a. 2004/05Tecnologie Web26 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

27 a.a. 2004/05Tecnologie Web27 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

28 a.a. 2004/05Tecnologie Web28 CICS JSP Servlet Session Bean JCA Resource Manager Message- Driven Bean Entity Bean Applet Browser DBMS Q Q ERP J2ME Server Desktop Applicazioni J2EE

29 a.a. 2004/05Tecnologie Web29 Elementi di un ambiente EJB EJB Container Home Object (Remote) Crea, distrugge, cerca Sicurezza - accesso ai dati - transazioni,... EJB Server

30 a.a. 2004/05Tecnologie Web30 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à

31 a.a. 2004/05Tecnologie Web31 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

32 a.a. 2004/05Tecnologie Web32 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:

33 a.a. 2004/05Tecnologie Web33 EJB Home Permette di creare istanze di oggetti di una classe e di cercarle Nome: Home Metodi: –create () –destroy () –interfaccia finder (solo per entity EJB)

34 a.a. 2004/05Tecnologie Web34 Sviluppo di un EJB Si veda...

35 a.a. 2004/05Tecnologie Web35 Formati di deployment J2EE –Ogni prodotto richiede file “deployment descriptor” proprietari per descrivere le caratteristiche non standard (load balancing, gestione guasti, risorse…)

36 a.a. 2004/05Tecnologie Web36 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; }

37 a.a. 2004/05Tecnologie Web37 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 per l’esempio completo)http://java.sun.com/j2ee/tutorial/1_3-fcs/

38 a.a. 2004/05Tecnologie Web38 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) {} }

39 a.a. 2004/05Tecnologie Web39 Esempio: il client import 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(); } }

40 a.a. 2004/05Tecnologie Web40 Interazioni fra le classi J2EE

41 a.a. 2004/05Tecnologie Web41 EJB Container Client EJB Jar Deployment Descriptor Deployment Descriptor Istanza del bean Naming Service Naming Service EJB Home EJB Context EJB Object lookup interfaccia home con JNDI findByPrimaryKey(..) create(..) new o activate 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

42 a.a. 2004/05Tecnologie Web42 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)

43 a.a. 2004/05Tecnologie Web43 Mapping fra Entity Beans e DB

44 a.a. 2004/05Tecnologie Web44 Dichiarazione di dati CMP public class OrderBean implements EntityBean { public Integer orderId; public String customerName; public Address customerAddress; // some code } CMP Entity Bean Order order.OrderHome order.Order order.OrderBean Container orderId java.lang.Integer False orderId customerName customerAddress deployment descriptor:

45 a.a. 2004/05Tecnologie Web45 Service Oriented Architecture Perché nasce la SOA Web Services –.NET –Java

46 a.a. 2004/05Tecnologie Web46 Esempio di E-business workflow I Prima: 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

47 a.a. 2004/05Tecnologie Web47 Esempio di E-business workflow II Prima: 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

48 a.a. 2004/05Tecnologie Web48 Service Oriented Architecture Business to Business integration Integrazione di applicazioni sviluppate su piattaforme eterogenee Evoluzione middleware E-business workflow

49 a.a. 2004/05Tecnologie Web49 Service Oriented Architecture Utilità nel descrivere i processi aziendali in forma leggibile su Web dai clienti Utilità nel descrivere i processi aziendali in forma leggibile da macchine

50 a.a. 2004/05Tecnologie Web50 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 Interface stub Interface proxy Client Server Service-oriented or Event-driven SourceSink 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

51 a.a. 2004/05Tecnologie Web51 Web Services Services Components Granularity Scope B2B Market, Global Enterprise Coarse Objects HTTP+SOAP MOM ORB Typical Access via Small Enterprise, Complex Application Homogeneous Application Program Tighter Looser Coupling Procedural Call Dalle procedure ai servizi

52 a.a. 2004/05Tecnologie Web52 La complessità dei sistemi informativi aziendali nasce dalla sovrapposizione nel tempo delle soluzioni

53 a.a. 2004/05Tecnologie Web53 Enterprise ASPs and Outsourcers Suppliers Subsidiary Consumers Business Customer s & Dealers Data Center ERP HR Billing Web-Based Intermediaries Suppliers Web-Based Intermediaries Sales Branch Virtual Enterprise Soluzione: un’infrastruttura aziendale di intercomunicazione fra le applicazioni Shop Floor Shipping Dept Service Purchasing Marketing Infrastruttura aziendale di Intercomunicazione Business Customers

54 a.a. 2004/05Tecnologie Web54 Service Oriented Architectures (SOA) Infrastruttura integrazione

55 a.a. 2004/05Tecnologie Web55 Enter Order Composite Services/ Process Objects Batch Client Customer Inventory Billing Call Center Browser B2C Retail B2B Sales A/R Get Inventory Update Inventory Get Balance Update Billing Elemental Services/ Business Objects Open Account Orders Inquire Balance Get Orders Update Orders Inquire Orders Get ID No. Get Address Change Address Client Applications SOA: il sistema informativo organizzato a Servizi

56 a.a. 2004/05Tecnologie Web56 Service-Oriented Architecture : The architecture of interfaces Service Interface Service Implementation Service Software component that is a business-complete logical unit of work, accessible programmatically from independently designed contexts via a direct openly documented interface SOA Application software topology consisting of services and service consumers (clients) in loosely coupled 1-to-1 relationships InterfaceInterface proxy Service Consumer (Client)

57 a.a. 2004/05Tecnologie Web57 All-New Service Wrapped Service Composite Service Service interface Service implementation Non-SOA applications Service Consumer Service Implementation: What Happens Behind The Interface

58 a.a. 2004/05Tecnologie Web58 Module 4 Module 3 Module 2 Module 5 Event 1 Module 1 Event Driven Event 2 Event 3 Fork Join Client 1 Server 1 Server 2/Client 2 Server 3Server 4 Service Oriented Flussi di esecuzione

59 a.a. 2004/05Tecnologie Web59 Funzioni di un Integration Broker Messaging, Gateways, File Transfer Metadata Management Development Tools Management Tools Security and Directory Business Process Management Process Manager Communication, Data Movement Transformation Intelligent Routing Message Broker Event and State Monitoring Business Activity Monitor

60 a.a. 2004/05Tecnologie Web60 Esempio di Architettura Multicanale

61 a.a. 2004/05Tecnologie Web61 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

62 a.a. 2004/05Tecnologie Web62 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

63 a.a. 2004/05Tecnologie Web63 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 … … Binding End Point Maps To Protocol Associated With Port

64 a.a. 2004/05Tecnologie Web64 WSDL Document Elements

65 a.a. 2004/05Tecnologie Web65 UDDI Registry Data Structures

66 a.a. 2004/05Tecnologie Web66 Service Interface Import Types Message PortType Binding Business Service BindingTemplate Finds Port Points To Import Service Business Entity Points To Imports Service Implementation UDDI Registration File WSDL File Mapping WSDL to UDDI tModel

67 a.a. 2004/05Tecnologie Web67 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

68 a.a. 2004/05Tecnologie Web68 Esempio di documento XML “http://www.miodtdserv.com/richiesta_pagamenti.dtd")> LIVELLO="Urgente" FIRMATA_DA="Mario Rossi"> Burlini Costruzioni spa Burlini Costruzioni spa OA1234X99 OA1234X99 LIT LIT

69 a.a. 2004/05Tecnologie Web69 Esempio di DTD

70 a.a. 2004/05Tecnologie Web70 Simple API for XML (SAX).

71 a.a. 2004/05Tecnologie Web71 Document Object Model (DOM)

72 a.a. 2004/05Tecnologie Web72 Trasformazioni XSLT XSLT (eXtensible Stylesheet Language for Transformations)

73 a.a. 2004/05Tecnologie Web73 COM DNA MTS.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

74 a.a. 2004/05Tecnologie Web74 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)

75 a.a. 2004/05Tecnologie Web75 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

76 a.a. 2004/05Tecnologie Web76 System System.DataSystem.Xml System.Web Globalization Diagnostics Configuration Collections Resources Reflection Net IO Threading Text ServiceProcess Security Design ADO SQLTypes SQL XPath XSLT Runtime InteropServices Remoting Serialization Serialization ConfigurationSessionState CachingSecurity Services Description Discovery Protocols UI HtmlControls WebControls System.Drawing Imaging Drawing2D Text Printing System.Windows.Forms DesignComponentModel Il Framework.Net

77 a.a. 2004/05Tecnologie Web77 JVM e CLR

78 a.a. 2004/05Tecnologie Web78 Running Process’ Memory SomeSources.exe IL Metadata JIT Compiler 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

79 a.a. 2004/05Tecnologie Web79 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

80 a.a. 2004/05Tecnologie Web80 Enterprise Services ASP.NET ADO.NET { Gli Enterprise Services forniscono i servizi di MTS/COM+ (transazioni, pooling risorse...)

81 a.a. 2004/05Tecnologie Web81 Network Managed Process ASP.Net ISAPI DLL Hosting the.NET Framework CLR XML Web Service objects SOAP Method Request SOAP Method Response Web Server Service-Client ASP.Net

82 a.a. 2004/05Tecnologie Web82 Esempio di Web Service con ASP.NET using System; using System.Web.Services; public class DateService:WebService{ [WebMethod] public String GetDateString() { return DateTime.Now.ToString("D"); } DateService.asmx Servizi implementati in file.ASMX

83 a.a. 2004/05Tecnologie Web83 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.cs Simple model for network communication –Object Instantiation –Method Call DateService type is a proxy object

84 a.a. 2004/05Tecnologie Web84 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

85 a.a. 2004/05Tecnologie Web85 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

86 a.a. 2004/05Tecnologie Web86 Soluzione Java per i Web Services OS Web Container EJB Container JVM Application Server SOAP Processor Local UDDI WSDL Servlets JSPs EJBs Connectors Internet Router Firewall Load Balancer Web Servers Integration Brokers RDBMS Legacy Middle Tier Front-End Tier Back-End Tier Application Server Subtier

87 a.a. 2004/05Tecnologie Web87 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

88 a.a. 2004/05Tecnologie Web88 Composizione di WS (II) Esempio: supply chain Supplier I Supplier II Supply chain contabilitàfornitori

89 a.a. 2004/05Tecnologie Web89 Composizione di WS (III) Modello e linguaggio di composizione ambiente di sviluppo Ambiente di esecuzione

90 a.a. 2004/05Tecnologie Web90 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

91 a.a. 2004/05Tecnologie Web91 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

92 a.a. 2004/05Tecnologie Web92 Gli standard XML Transports XML, XML Schemas, Encoding SOAP (WS Routing, WS Attachment, DIME) WSDL, UDDI, WS-Introspection WS-Coordination WS-Transaction WS-Security Reliable Messaging BPEL (Business Process Automation) IBM’s and Microsoft’s “Web Services Architecture” (as of September 2002) TBD Implemented Standards Proposed Standards Pre-Web Services Standards

93 a.a. 2004/05Tecnologie Web93 Software Engineering Ciclo di vita del software OO Design e UML

94 a.a. 2004/05Tecnologie Web94 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 Phase System Design Object Design Implementation Delivery & Maintenance

95 a.a. 2004/05Tecnologie Web95 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

96 a.a. 2004/05Tecnologie Web96 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

97 a.a. 2004/05Tecnologie Web97 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)

98 a.a. 2004/05Tecnologie Web98 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

99 a.a. 2004/05Tecnologie Web99 Prototyping to throw away“When a new system concept or new technology is used, one has to build a system to 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)

100 a.a. 2004/05Tecnologie Web100 Natura del prototyping Un approccio plan-based adatto a piccoli, agili sviluppi durante l’analisi dei requisiti

101 a.a. 2004/05Tecnologie Web101 Analisi dei requisiti Prototyping Prodotto ingegnerizzato Requisiti Quick Design Costruire Prototype Valutare Prototype Raffinare Prototype Modifiche? Yes No (Pressman, 1996)

102 a.a. 2004/05Tecnologie Web102 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

103 a.a. 2004/05Tecnologie Web103 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)

104 a.a. 2004/05Tecnologie Web104 Incrementale Def outline requisiti Integraz Increment. Validaz. sistema Assegn. requisiti agli incrementi Design system architecture Svilup Increm sistema Validaz. Increment. Sistema Finale Sistema incompleto (Sommerville, 2001)

105 a.a. 2004/05Tecnologie Web105 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

106 a.a. 2004/05Tecnologie Web106 XP Valori e Principi 4 Valori: –Semplicità –Comunicazione –Feedback –Coraggio Principi base: Feedback rapido Assume semplicità Cambiamenti incrementali Abbraccia il cambiamento Lavoro di qualità

107 a.a. 2004/05Tecnologie Web107 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

108 a.a. 2004/05Tecnologie Web108 Extreme Programming (Wells, 2000)

109 a.a. 2004/05Tecnologie Web109 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

110 a.a. 2004/05Tecnologie Web110 Componenti di UML

111 a.a. 2004/05Tecnologie Web111 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

112 a.a. 2004/05Tecnologie Web112 Class Diagrams Login > Update Contract Data > ContractManager > Customer > Contract > 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 1Tier 3Tier 2

113 a.a. 2004/05Tecnologie Web113 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 : Contract Manager : Contract : Customer input new data update( ) setMaxAmount( ) sendAlert( ) Firewall http Firewall IIOP WS AS

114 a.a. 2004/05Tecnologie Web114 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 > Contract Home

115 a.a. 2004/05Tecnologie Web115 Un esempio: una Biblioteca Diagramma degli Use Case Acquisizione nuovo libro o CD Restituzione Prestito di un libro o CD Utente Biblioteca Nuova iscrizione > Bibliotecario

116 a.a. 2004/05Tecnologie Web116 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.

117 a.a. 2004/05Tecnologie Web117 Finestra “Ricerca”

118 a.a. 2004/05Tecnologie Web118 Finestra “Prestito”

119 a.a. 2004/05Tecnologie Web119 Diagrammma delle Classi

120 a.a. 2004/05Tecnologie Web120 Sequence Diagram dello Use Case “prestito” : Bibliotecario Universitaria : 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

121 a.a. 2004/05Tecnologie Web121 State Diagram di “Prodotto Multimediale” Iniziale Eliminato In Acquisto Acquistato acquisto Registrato Disponibile In Prestito Disponibile inventario catalogazione In Prestito restituzione perdita prestito richiesta


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

Presentazioni simili


Annunci Google