1 / 58

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

gaerwn
Download Presentation

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. 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

  8. 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

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

  10. 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

  11. 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

  12. 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

  13. 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

  14. 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

  15. 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

  16. 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

  17. 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

  18. 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

  19. 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

  20. 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

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

  22. 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

  23. 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

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

  25. 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

  26. 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

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

  28. 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

  29. 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

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

  31. HTTP/XML Screenscrape FTP Screenscrape Trans- action file Trans- action file CICS gateway Down- load file Down- load file Down- load file Sockets ORB Gateway RPC ORBl APPC Trans- action file Trans- action file Message queue Message queue Message queue Screenscrape CICS gateway APPC Message La complessità dei sistemi informativi aziendali nasce dalla sovrapposizione nel tempo delle soluzioni Tecnologie Web

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

  33. Service Oriented Architectures (SOA) Infrastruttura integrazione Tecnologie Web

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

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

  36. Service Implementation:What Happens Behind The Interface All-New Service Wrapped Service Service Consumer Composite Service Serviceinterface Serviceimplementation Non-SOAapplications Tecnologie Web

  37. Join Flussi di esecuzione Client 1 Service Oriented Server 2/Client 2 Server 1 Server 3 Server 4 Module 4 Event1 Module 1 Fork Event2 Module 3 Event Driven Module 5 Event3 Module 2 Tecnologie Web

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

  39. Esempio di Architettura Multicanale Tecnologie Web

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

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

  42. WSDL Abstract Implementation Port Type Operation • WSDL allows Web services to be self-describing. • A WSDL document includes nine basic XML elements: Messages <types> … </types> <parts> … </parts> • Five abstract elements — port type, operation, message, part and type • Three concrete elements — service, port and binding • Onedefinition element — provides definitions relating to the service. MapsTo Binding Port Associated With Protocol End Point End Point Tecnologie Web

  43. WSDL Document Elements Tecnologie Web

  44. UDDI Registry Data Structures Tecnologie Web

  45. Import Service Port Mapping WSDL to UDDI Business Entity UDDI Registration File tModel Business Service Finds BindingTemplate Points To Points To Service Implementation Service Interface Import Imports WSDL File Types Message PortType Binding Tecnologie Web

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

  47. Evoluzione delle soluzioni Microsoft ……. .NET DNA2000 Internet Network Computing COM+ DNA Loose Coupling MTS Enterprise Quality of Service DCOM Three-Tier Architecture Transactional Components COM Distributed Components Components 1990s 2000s Tecnologie Web

  48. 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) Tecnologie Web

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

  50. Managed Process ASP.Net ISAPI DLL Hosting the .NET Framework CLR XML Web Service objects ASP.Net Web Server Network Service-Client SOAP MethodRequest SOAP MethodResponse Tecnologie Web

More Related