Ingegneria del software Modulo 3 -Tecniche d’implementazione Unità didattica 1 -Ingegneria dei componenti Ernesto Damiani Università degli Studi di Milano Lezione 2 – EJB
EJB (Enterprise Java Beans) (1) Inizi anni ‘90 – Si passa dal modello applicativo client-server a due strati a modelli applicativi più flessibili a tre strati e multistrato – I nuovi modelli hanno separato la logica di business da servizi di sistema e l’interfaccia utente, ponendola in uno strato intermedio tra i due Servizi middleware – monitor di transazioni, middleware per il recapito di messaggi, intermediazione di richiesta oggetti Enfasi sui client leggeri e facili da attivare
EJB (Enterprise Java Beans) (2) Componenti lato server Alta disponibilità (24x7) Tollerante ai guasti Transazionale Ambiente multi-utente sicuro
J2EE (Java 2 Enterprise Edition) Piattaforma di sviluppo – Portabile – Multiutente – Sicura EJB è un caposaldo di J2EE È una specificazione, non un prodotto
Tecnologie J2EE EJB (Enterprise JavaBeans) RMI (Java Remote Method Invocation) JNDI (Java Naming and Directory Interface) JDBC (Java Database Connectivity) JTA e JTS (Java Transaction API and Service) JPS (Java Servlets e Java Server Pages) Java IDL - implementazione CORBA di Sun
COM (Component Object Model) Microsoft COM è stato il primo modello a componenti Viene da OLE (Object Linking and Embedding) DCOM (Distributed COM) consente la creazione e l’accesso a oggetti COM su un’altra macchina (nato nel 1996 con NT 4) Permette la comunicazione tra componenti
Disponibilità di COM Windows e Macintosh Software AG, Compaq hanno esteso il supporto DCOM su molte piattaforme UNIX Il mercato principale di COM era focalizzato su Windows
Un semplice oggetto COM Un oggetto COM ha metodi e uno stato – Indipendenti dal linguaggio L’accesso avviene attraverso l’interfaccia – Supporta più interfacce
Specificazione delle interfacce COM definisce uno standard a livello binario – Implementazione delle interfacce indipendente dal linguaggio Le interfacce sono definite in IDL (Interface Definition Language) Un’interfaccia ha un GUID come identificatore IUnknown IDispatch
Interfacce Estensione dell’interfaccia esistente per aggiungere nuove funzionalità Ad esempio, un vecchio word processor non funziona con una nuova versione del dizionario
Complementi sulle interfacce La nuova interfaccia aggiunge nuove funzionalità Qui, entrambe le versioni di word processor funzionano con tutte le versioni del dizionario FINE