ingegneria del software i n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Ingegneria del software I PowerPoint Presentation
Download Presentation
Ingegneria del software I

Loading in 2 Seconds...

play fullscreen
1 / 20

Ingegneria del software I - PowerPoint PPT Presentation


  • 103 Views
  • Uploaded on

Ingegneria del software I. Seminario 3:Enterprise Java Beans. Enterprise Java Beans. Architettura per sistema ad oggetti distribuito transazionale, basato su componenti Mantengono logica di impresa e permettono meccanismo uniforme di comunicazione con client Agiscono entro un container.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Ingegneria del software I' - brick


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
ingegneria del software i

Ingegneria del software I

Seminario 3:Enterprise Java Beans

enterprise java beans
Enterprise Java Beans
  • Architettura per sistema ad oggetti distribuito transazionale, basato su componenti
  • Mantengono logica di impresa e permettono meccanismo uniforme di comunicazione con client
  • Agiscono entro un container
enteprise java container
Enteprise Java Container
  • Container definisce ambiente sicuro di esecuzione per un bean.
  • Gestisce tutti gli aspetti runtime
    • accessi remoti
    • sicurezza
    • persistenza
    • transazioni
    • concorrenza
    • accesso a risorse.
deployment di ejbs
Deployment di EJBs
  • Scrivere una Bean Class
  • Scrivere una Remote Interface
  • Scrivere la Home Interface (create, activate)
  • Scrivere l’ejb-jar.xml
  • Scrivere gli xml per le specifiche piattaforme
  • Creare Naked EJB tramite un jar
  • Trasformare Naked in Deployable
  • Deploy dell’ejb
  • Richiamarlo dal client
convertitorebean
ConvertitoreBean

Package …;

Import javax.ejb.*;

Import java.util.*;

Public class ConvertitoreBean Implements SessionBean {

private SessionContext ctx;

public ConvertitoreBean() {}

public void setSessionContext(SessionContext c){

ctx=c;

}

public void ejbCreate();

public void ejbRemove();

public void ejbPassivate();

public void ejbActivate();

public double converti(int lire) {

return lire/1936.27;

}

}

home interface convertitorehome
Home Interface: ConvertitoreHome

Package …;

Import javax.ejb.*;

Import java.rmi.*;

Public Interface ConvertitoreHome extends EJBHome {

public Convertitore create() throws CreateException, RemoteException

}

remote interface convertitore
Remote Interface: Convertitore

Package …;

Import javax.ejb.*;

Import java.rmi.*;

Public Interface Convertitore extends EJBObject {

public double converti(int lire) throws RemoteException;

}

naked ejb
Naked EJB

<!DOCTYPE ejb-jar …>

<ejb-jar>

<enterprise-beans>

<session>

<ejb-name>ConvBean</ejb-name>

<home>ConvertitoreHome</home>

<remote>Convertitore</remote>

<ejb-class>ConvertitoreBean</ejb-class>

<session-type>Stateless</session-type>

<transaction-type>Container</transaction-type>

</session>

</enterprise-beans>

</ejb-jar>

client
Client

Package client;

Import javax.naming.*;

Import java.rmi.*;

Import …;

Class Client {

public static void main(String args[]){

try{

InitialContext ic = new InitialContext();

ConvertitoreHome home = (ConvertitoreHome) PortableRemoteObject.narrow(ic.lookup(“ConvEuro”),ConvertitoreHome.class);

Convertitore convertitore = (Convertitore) home.create();

double euro= convertitore.converti(8500);

System.out.println(“Risultato:”+euro);

}catch (Exception e){

System.out.println(e);

}

}

}

responsabilit dell implementazione
Responsabilità dell’implementazione
  • Scheletri per interface EJBHome e EJBObject non implementati dal Bean, ma dal container.
  • Metodi invocati dal client sono prima gestiti dal container,
    • applica controlli (e.g. persistenza, transazionalità, accesso)
    • delega al bean la realizzazione
tipi di bean
Tipi di Bean
  • Entity
    • oggetti che rappresentano entità nella logica di impresa
    • mantenuto in modo persistente
  • Session
    • oggetti che rappresentano processi nella logica di impresa
    • definiscono caratteristiche dell’attivazione
tipi di entit
Tipi di entità
  • Rappresenta dati mantenuti in un database.
  • Fornisce interfaccia object-oriented al database
  • Persistenza gestita
    • dal container
    • dal bean
container managed persistence
Container Managed Persistence
  • Campi dell’entità associati a elementi nel database
  • Bean non ha codice per accedere il database.
  • Accessi e modifiche dei campi passano per il container
  • Container sincronizza lo stato del bean con il database.
bean managed persistence
Bean Managed Persistence
  • Entity bean contiene codice di accesso al database (JDBC)
  • Responsabile per leggere e scrivere il proprio stato nel database.
  • Necessità di lettura o aggiornamento indicate dal container.
  • Container può gestire locking e transazionalità
session bean
Session bean
  • Gestiscono le interazioni delle entità, accedono a risorse, eseguono compiti per il client
  • Non sono persistenti
  • Incapsulano business logic di un’architettura three-tiered
tipi di sessione
Tipi di sessione
  • Stateless
    • comportamento simile a procedure: operano solo sugli argomenti passati
    • sono transienti
  • Stateful
    • incapsulano logica di business e stato specifici a un client
    • Mantengono stato di business fra invocazioni di metodi
message driven bean
Message Driven Bean
  • Client non usano interfacce, inviano messaggi. Bean definisce solo la classe
  • Simili a stateless session: non legati a client specifico
  • Container può assegnare un messaggio a qualsiasi istanza del bean
  • Bean può rispondere a client diversi
  • Variabili del bean possono mantenere stato, verso altri bean o verso connessioni
  • Rispondono a messaggi JMS
  • Comportamento simile a listener. Viene attivato metodo onMessage(Message msg)