Object or Relation or Aspect?

Ilia Bider
Who is Agent: Object or Relation
2nd Workshop on Object-Oriented Language Engineering for the Post-Java Era : Back to Dynamicity. (2004)

DL: http://prog.vub.ac.be/~wdmeuter/PostJava04/

を読んでみて感じたこと。


この論文では AOP については触れられていなかったけど、僕は何らかの関係があるように感じた。特に前に日記で書いた「Reactive Aspects」と関係がある気がした。


それと、最近取り組んでいる:

AttrAOP - Attribute-based Aspect Oriented Programming
http://www.ncfreak.com/asato/software/attraop.html

との関係。


特に、あるイベントに反応してオブジェクト(アスペクト)が動作するというとらえ方。より具体的な例の一つは、ある条件に反応してアスペクトの機能がオンやオフになるような状態。AttrAOP の例で書くと:


/**
* @aspect
*/
public class MyAspect {

/**
* @advice after() : // なんらかのイベント
*/
private void event1() {
activate(); // 自分自身をオンに。
}
/**
* @advice after() : // なんらかのイベント
*/
private void event2() {
deactivate(); // 自分自身をオフに。
}

// その他のアドバイス
/**
* @advice before() : //
*/
private void myAdvice() {
// 何か。
}
}

具体的な結論は何も言えないけど、少し真面目に考えてみる価値はありそうな気がする。あと、エージェントも関係ありそうだし、それにしたがってエージェントとアスペクトの関係も気になる。


関連:
具体的に関連しているかどうかは曖昧だけど、上の論文を読んでいるときに、頭に ``ちらついた'' 論文としては:

Kevin Sullivan, Lin Gu and Yuanfang Cai.
Non-Modularity in Aspect-Oriented Languages: Integration as a Crosscutting Concern for AspectJ.
Proceedings of the 1st international conference on Aspect-oriented software development, Enschede, The Netherlands, April 2002.

DL: http://www.cs.virginia.edu/~eos/Publications.htm

Kouhei Sakurai, Hidehiko Masuhara, Naoyasu Ubayashi, Saeko Matsuura and Seiichi Komiya.
Association Aspects.
AOSD 2004.

http://www.graco.c.u-tokyo.ac.jp/~masuhara/tmp/aosd2004.pdf

あとコネクタという用語も出てきたので:

Jonathan Aldrich, Craig Chambers, and David Notkin.
ArchJava: Connecting Software Architecture to Implementation.
ICSE 2002.

DL: http://www-2.cs.cmu.edu/~aldrich/archjava/