580 likes | 738 Views
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
E N D
Architettureparte II a.a. 2004-2005 parte 2 Tecnologie Web
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
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
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
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
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
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
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
Object Request Broker Market Share Object Transaction Monitors (OTM) Ambiente di esecuzione evoluto Tecnologie Web
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
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
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
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
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
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
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
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
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
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
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
Sviluppo di un EJB Tecnologie Web Si veda ...
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
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
Service Oriented Architecture • Perché nasce la SOA • Web Services • .NET • Java Tecnologie Web
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
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
Service Oriented Architecture • Business to Business integration • Integrazione di applicazioni sviluppate su piattaforme eterogenee • Evoluzione middleware • E-business workflow Tecnologie Web
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
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
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
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
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
Service Oriented Architectures (SOA) Infrastruttura integrazione Tecnologie Web
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
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
Service Implementation:What Happens Behind The Interface All-New Service Wrapped Service Service Consumer Composite Service Serviceinterface Serviceimplementation Non-SOAapplications Tecnologie Web
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
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
Esempio di Architettura Multicanale Tecnologie Web
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
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
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
WSDL Document Elements Tecnologie Web
UDDI Registry Data Structures Tecnologie Web
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
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
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
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
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
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