Lezione 2 – EJB Ingegneria del software Modulo 3 - Tecniche d’implementazione Unità didattica 1 - Ingegneria dei componenti Ernesto Damiani Università degli Studi di Milano 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