Chameleon: A Multi-Weaver Architecture

Onderwerp

Aspect Georienteerd Programmeren (Engels: Aspect Oriented Programming of afgekort:AOP) is een nieuw programmeerparadigma dat rond 1997 ontstaan is [1,2]. AOP heeft als doel om een betere “separation of concerns” te bekomen dan mogelijk in huidige ontwikkelingsparadigmas en introduceert hiervoor een nieuw soort module, genaamd aspect. Aspect “weven” verwijst naar de technologie om aspecten te integreren met een basis applicatie. AOP wordt zowel in de onderzoekswereld als de bedrijfswereld als een belangrijke nieuwe technologie aanzien. Bedrijven zoals IBM, BEA, BOEING, SIEMENS, JBOSS etc… hebben de AOP idee opgepikt en passen deze toe in de praktijk. Ook in Belgische bedrijfswereld begint AOP stilaan geaccepteerd te worden.

Aan het SSEL lab wordt gewerkt rond nieuwe AOP programmeertalen die bepaalde tekortkomingen aan de bestaande talen oplossen. Twee voorbeelden hiervan zijn FuseJ[3] en JAsCO[4]. Een terugkomend probleem in dit onderzoek is dat het uitvoeringsplatform (wever) voor elke taal telkens opnieuw moet ontworpen en geimplementeerd worden. Daarom stellen wij voor om een generiek uitvoeringsplatform te ontwerpen dat kan geconfigureerd worden door middel van plugins. Deze plugins laten toe de aspect beschrijving uit te voeren dmv van een bepaald wever-platform (bvb JBoss/AOP of JAsCo). Zodus moet er voor het implementeren van een nieuwe taal slechts een vertaler naar de abstracte API van het generiek uitvoeringsplatform geschreven worden en de taal kan onmiddelijk gebruik maken van al de verschillende wever-plugins.

Stage & thesis

De stage&thesis zijn in dit voorstel sterk gelinkt en zullen vloeiend in elkaar overgaan. Allereerst wordt er kennis gemaakt met de wetenschappelijke achtergrond en de verschillende technologieen vereist voor de thesis. Het praktische gedeelte van de stage omvat het ontwerpen en implementeren van een plugin voor de Eclipse IDE [5] voor de FuseJ taal. Deze goed omlijnde opdracht laat toe om in detail kennis te maken met AOP en het Eclipse framework en heeft als grote voordeel dat je 1) een concreet resultaat hebt voor je stage (wat noodzakelijk is) en 2) reeds met werk nuttig voor je thesis bezig bent.

De thesis heeft uiteraard een meer conceptueel karakter en vereist:

  1. Het ontwerpen van een abstracte API voor aspecten te representeren (op basis van de AOP talen gezien in de stage).
  2. Het ontwerpen van een API om plugins voor de multi-wever architectuur te creeren (op basis van de AOP uitvoeringsplatformen gezien in de stage).
  3. Het ontwerpen van de core multi-wever architectuur.
  4. Een beperkte proof-of-concept implementatie van de core en een proof-of-concept vertaling vanuit FuseJ naar de architectuur en minstens 1 plugin zodoende dat Chameleon gedemonstreerd kan worden.
  5. Integratie van de implementatie in de FuseJ Eclipse IDE plugin ontworpen in de stage.

Vereiste voorkennis

  • Een goede voorkennis van Java is wel nuttig.
  • Basis kennis OOSD

Referenties

 
teaching/thesis0506/proposals/chameleon.txt · Last modified: 13/03/2006 12:35 by bdefrain
 

© 2003-2010 • System and Software Engineering Lab • Submit comments and bugs to our Bugzilla or to the webmaster