Università degli studi di Napoli “Federico II”
Facoltà di Ingegneria
Corso di laurea in Ingegneria Informatica
Capri Feb. 2004
Integrazione di meccanismi adattativi in
un ORB CORBA utilizzando la
programmazione orientata agli aspetti
Relatore
Ch.mo Prof. Domenico Cotroneo
Candidato
Luciano D’Andrea
Matricola 41/2143
Correlatore
Ing. Armando Migliaccio
www.mobilab.unina.it
[email protected]
::. Contesto
Capri Feb. 2004
Sistemi di mobile computing:
 Ad hoc computing
Contesto di esecuzione dinamico e
non predicibile
 Nomadic computing
Applicazioni
in
grado
di
modificare il loro comportamento
www.mobilab.unina.it
[email protected]
::. Contesto
 Environment dei middleware tradizionali:
 Nodi e reti fisse
 Contesto di elaborazione statico
 Features delle piattaforme middleware per supportare l’adattatività
 Analizzare il contesto
 Cambiare il comportamento di un sistema
www.mobilab.unina.it
[email protected]
Capri Feb. 2004
::. Obiettivo
Integrazione di meccanismi adattativi su una piattaforma CORBA
Fornire all’ambiente di sviluppo:
 Metodi in grado di definire specifiche e
vincoli da rispettare
 Meccanismi adattativi in grado di variare
dinamicamente il comportamento delle
applicazioni
Utilizzo dell’Aspect-Oriented Programming (AOP)
www.mobilab.unina.it
[email protected]
Capri Feb. 2004
::. Aspect-Oriented Programming
Capri Feb. 2004
Paradigma di programmazione che si basa sulla Separation of Concerns (SoC)
 Decomposizione delle funzionalità di un sistema software in vari concerns
(competenza o area di interesse):
 Core concern (ben modellati dall’ OOP)
 Crosscutting concern (logging, tracing, sicurezza,…)
www.mobilab.unina.it
[email protected]
::. AspectJ
Capri Feb. 2004
AOP introduce una nuova unità modulare, detta aspect, che realizza in maniera
separata un crosscutting concern
AspectJ è l’estensione aspect-oriented di Java
che introduce nuovi costrutti nel linguaggio:
 pointcut (join point)
 advice
 inter-type declaration
www.mobilab.unina.it
[email protected]
::. Adattatività mediante AOP
Join point model:
 Il join point è un punto nell’esecuzione di un
programma.
codice programma
Capri Feb. 2004
Aspect
 Il pointcut è un costrutto, all’interno di un
aspect, che definisce un join point
pointcut
 L’advice è un costrutto dell’aspect che definice
il codice da inserire (before, after o around)
Quando viene riscontrato un joinpoint definito da
un pointcut, si inserisce l’advice associato.
join point
advice
L’adattatività può essere vista come un concern
separato e può essere implementata in un aspect
www.mobilab.unina.it
[email protected]
::. Approccio
Capri Feb. 2004
Modifica dell’IDLCompiler per integrare gli aspect sulla piattaforma CORBA
IDLCompiler
_InterfaceNameStub.java
FileName.idl
ADACompiler
InterfaceNamePOA.java
+
AdaStub.aj
AdaSkeleton.aj
Java Compiler + AspectJ Compiler
_InterfaceNameStub.class
www.mobilab.unina.it
InterfaceNamePOA.class
[email protected]
::. Scenario di studio
Capri Feb. 2004
Fornire meccanismi in grado di modificare il comportamento delle applicazioni in
base a vincoli e specifiche
Sono stati affrontati due esempi concreti di specifiche:
 Delay
 Fault tolerance
www.mobilab.unina.it
[email protected]
::. Strategia di adattamento al delay
Capri Feb. 2004
 Definire il vincolo sul delay
inter-type declaration
 Intercettare l’esecuzione ad servizio di un oggetto
CORBA
pointcut
 Valutare il valore di delay (T* e Tmonitor) e
applicare una strategia in grado di ridurre il delay
www.mobilab.unina.it
advice
[email protected]
::. Adaptive Stub
Capri Feb. 2004
public void stubFile.setDelay(double T) {this.delay=T;}
pointcut requestServiceNumDelay(stubFile
stub, paramsType paramsName) :
execution(retType srvName(ParamsType)) && args(paramsName) && target(stub);
retType around(stubFile stub, paramsType paramsName) :
requestServiceNumDelay(stub, paramsName) {
...
}
www.mobilab.unina.it
[email protected]
::. Strategia di adattamento alla fault tolerance
 Definire il tipo di operation mode:
 Livello di ridondanza: 1MR, 2MR, 3MR
 Adjudication strategy: First Avalaible (FA), Major Voting (MV),
Fail Silent (FS)
1MR
FA
2MR
3MR




MV
FS
www.mobilab.unina.it

[email protected]
Capri Feb. 2004
::. Strategia di adattamento alla fault tolerance
 Intercettare l’esecuzione dell’operazione
 Inoltrare la richiesta alle repliche e creare la risposta in base al tipo
di adjudication strategy
www.mobilab.unina.it
[email protected]
Capri Feb. 2004
::. Adaptive Skeleton
public void skeletonFile.setOpMode(int num, String AdjStr)
pointcut executionServiceNum(paramsType paramsName) :
call(retType srvName(paramsType)) && within(skeletonFile) &&
args(parmasName);
retType around(paramsType paramsName) :
executionServiceNum(paramsName) {
...
}
www.mobilab.unina.it
[email protected]
Capri Feb. 2004
::. Conclusioni e sviluppi futuri
Capri Feb. 2004
 L’AOP si è dimostrato uno strumento efficace per realizzare l’adattività dei
middleware:
 Intervenendo sulle applicazioni e sul middleware in maniera trasparente
 Fornendo una logica flessibile a specifiche differenti
 I risultati dell’analisi condotta aprono scenari per nuovi sviluppi quali:
 Estensione delle casistiche di vincoli e specifiche
 Utilizzo dei meccanismi aspect-oriented a run-time
www.mobilab.unina.it
[email protected]
Scarica

Template