La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Generazione di codice dinamico per la realizzazione di catene di servizi componibili Progetto di Reti di Calcolatori LS A.A. 2007/08 Studente: Silvia Cereda.

Presentazioni simili


Presentazione sul tema: "Generazione di codice dinamico per la realizzazione di catene di servizi componibili Progetto di Reti di Calcolatori LS A.A. 2007/08 Studente: Silvia Cereda."— Transcript della presentazione:

1 Generazione di codice dinamico per la realizzazione di catene di servizi componibili Progetto di Reti di Calcolatori LS A.A. 2007/08 Studente: Silvia Cereda (matr. 0000260292)

2 Obiettivo Creazione di un ambiente di integrazione e composizione di servizi atomici dislocati su nodi diversi Contesto Java EE Servizi come metodi invocabili su EJB Utilizzo di un supporto per la generazione dinamica del bytecode Maggiore efficienza rispetto all'uso di un compilatore

3 Manipolazione del bytecode Manipolazione dinamica del codice come requisito fondamentale in sistemi aperti a variazioni Maggiore efficienza rispetto all'utilizzo di un compilatore Reflection utile ma poco adatta ad invocazioni frequenti Necessità di agire anche su codice preesistente

4 Framework considerati BCEL ( http://jakarta.apache.org/bcel ) Implementazione ad “alto livello” Non vengono maneggiati i dettagli interni del formato delle classi Java Utilizzo di API per i vincoli statici delle classi Componenti binari, strutture dati delle specifiche JVM,... API per contenuto dinamico Creazione e trasformazione di metodi e attributi

5 Framework considerati Serp ( http://serp.sourceforge.net/ ) Obiettivo: massimizzare l'efficienza dei costi minimizzando i costi Facilità di utilizzo Possibilità di lavorare con metodi di “alto livello” potendo accedere anche ai dettagli di basso livello Lentezza nella generazione delle classi Dispendio di memoria per la generazione delle classi

6 Framework considerati ASM ( http://asm.objectweb.org/ )http://asm.objectweb.org/ Elaborazione delle classi sequenziale basata sull'utilizzo di un Visitor Non mantiene strutture persistenti in memoria Elaborazione a catena delle classi ClassReader per il parsing del bytecode ClassAdapter per filtrare l'output ClassWriter per scrivere la classe

7 Confronto performance ASM è la soluzione più efficiente! A) Utilizzo di un classloader standard B) Serializzazione e deserializzazione di ogni classe prima della compilazione C) Ricomputazione, dopo l'esecuzione di B), della massima grandezza dello stack di ogni metodo Confronto tra le performance dei framework analizzati: misura del tempo di caricamento di un “gran numero di classi” da un.jar Fonte: http://asm.objectweb.org/current/asm-eng.pdfhttp://asm.objectweb.org/current/asm-eng.pdf

8 Architettura

9 Brick: contiene un servizio elementare Executor: accetta le richieste, ottiene la catena desiderata dal Coordinator, la esegue e restituisce il risultato all'utente Coordinator: interpella un ClassLoader per avere la catena esistente,se non esiste avverte all'ASMBlackSmith di crearla ASMBlackSmith: crea il bytecode delle catene

10 Richiesta catena - askChain()

11 ASMBlackSmith Riceve i Brick ordinati che formano la catena Invoca ArrayList build(ArrayList bricks) Delega all'ASMHammer la costruzione della catena Parte statica Inizializzazione del sistema, signature, costruttore Parte dinamica Per ogni Brick crea il bytecode relativo al servizio Restituisce il bytecode della catena formata dalla serie dei Brick

12 Chain Invocazione dal cliente per l'esecuzione della catena: Object execute(actualPar) actualPar: array di parametri d'invocazione ordinati Object per la generalizzazione dei parametri di ritorno Chain implementa l'interfaccia IChain e il suo metodo execute

13 Conclusioni E' stato realizzato un servizio di composizione di servizi elementari dislocati su nodi diversi E' stata realizzata un'interfaccia web per la registrazione e utilizzo di tali servizi e la composizione ed utilizzo di catene di servizi Alta efficienza data dall'utilizzo del framework ASM A regime In fase di compilazione delle cateen

14 Sviluppi futuri Aggiunta di controlli di sicurezza nelle fasi di utilizzo Sviluppo di un framework completo per la composizione di servizi Creazione ed utilizzo di un meta-linguaggio per la composizione di servizi


Scaricare ppt "Generazione di codice dinamico per la realizzazione di catene di servizi componibili Progetto di Reti di Calcolatori LS A.A. 2007/08 Studente: Silvia Cereda."

Presentazioni simili


Annunci Google