1 / 121

Architetture parte II

Architetture parte II. a.a. 2004-2005 parte 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

Télécharger la présentation

Architetture parte II

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Architettureparte II a.a. 2004-2005 parte 2 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) 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 Tecnologie Web

  4. Come realizzare una componente Data Code Proxy / Wrapper Data Ext. method Ext. method …. Ext. method Data Code Int. Method ... Int. Method Traditional Obj. Obj. Obj. Obj. OO 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 Tecnologie Web

  6. OLE = COM COM e DCOM: le origini Microsoft ActiveX Pre 1996 Post 1996 COM DCOM (Distributed COM) OLE1 OLE2 OLE COM+ OLE = Object Linking and Embedding COM = Component Object Model COM+ = Estensione della tecnologia COM Tecnologie Web

  7. COM e DCOM QueryInterface AddRef IUnknown Release Interfaccia 1 Oggetto COM Interfaccia n Tecnologie Web

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

  9. Ereditarietà in DCOM • Ereditarietà dell’interfaccia: SI • Ereditarieta dell’implementazione: NO • Polimorfismo degli oggetti DCOM: SI Tecnologie Web

  10. Ereditarietà per Contenimento (o delegazione) Tecnologie Web

  11. Ereditarietà per Aggregazione 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 Tecnologie Web

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

  14. Active Controls Active Scripting Visual Basic form-based application MFC/SDK application Logic and abstractions Durablestate Java applet or application Architettura Three-Tier (DNA) 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 Tecnologie Web

  16. Object Request Broker Market Share Object Transaction Monitors (OTM) Ambiente di esecuzione evoluto Tecnologie Web

  17. Microsoft COM+: costruire applicazioni scalabili Clients Network Receiver Queue Connections Context Security Management Configuration Thread Pool Service Logic Synchronisation Shared Data Server Tecnologie Web

  18. Clients Network Receiver Queue Connections Context Security Management Configuration Thread Pool Service Logic Synchronisation Shared Data Windows NT Server 4.0 COM+: i servizi integrati nella piattaforma Tecnologie Web

  19. Programmazione con MTS/COM+ Set ctxObject = GetObjectContext() YOUR CODE YOUR CODE Set objfoo = ctxObject.CreateInstance() YOUR CODE YOUR CODE ctxObject.SetComplete ctxObject.SetAbort An MTS Application “Voglio accedere al mio contesto” “Chiama un altro oggetto” No TX codeNo Thread code No Locking code Etc. “Bene: riusa, fà commit, fà pulizia” “Ci sono problemi: aiutami!” 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.) 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, ... 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) 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 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 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 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 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 Tecnologie Web

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

  29. Home Object (Remote) Elementi di un ambiente EJB EJB Server EJB Container Crea, distrugge, cerca Sicurezza - accesso ai dati - transazioni, ... 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à 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 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> 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) Tecnologie Web

  34. Sviluppo di un EJB Tecnologie Web Si veda ...

  35. Formati di deployment J2EE • Ogni prodotto richiede file “deployment descriptor” proprietari per descrivere le caratteristiche non standard (load balancing, gestione guasti, risorse…) 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; } 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) 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) {} } Tecnologie Web

  39. 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(); } } } Tecnologie Web

  40. Interazioni fra le classi J2EE Tecnologie Web

  41. EJB Objects Pool Deployment Descriptor lookup interfaccia home con JNDI EJB Jar ejbActivate(..) ejbPassivate(..) EJB Container findByPrimaryKey(..) EJB Home new o activate create(..) Istanza del bean Client isCallerInRole(..) Naming Service metodi del bean es. ejbRemove() metodi di business EJB Context EJB Object es. addPrestito(..) contesto di esecuzione fornito in automatico dal container ad ogni chiamata Architettura Enterprise JavaBeans 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) Tecnologie Web

  43. Mapping fra Entity Beans e DB 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: Tecnologie Web

  45. Service Oriented Architecture • Perché nasce la SOA • Web Services • .NET • Java Tecnologie Web

  46. 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 Tecnologie Web

  47. 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 Tecnologie Web

  48. Service Oriented Architecture • Business to Business integration • Integrazione di applicazioni sviluppate su piattaforme eterogenee • Evoluzione middleware • E-business workflow Tecnologie Web

  49. 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 Tecnologie Web

  50. Service-oriented or Event-driven 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 Client Server Interface proxy Interfacestub 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 Source Sink Tecnologie Web

More Related