[aosd-discuss] dynamic role switching
stephan at cs.tu-berlin.de
Wed Dec 8 16:45:47 EST 2004
I'm happy to see the recent interest in role modeling and role programming.
I'd like to point you to another language with support for roles and collaborations:
ObjectTeams/Java (see http://www.ObjectTeams.org)
If you wonder, how Object Teams compares to the other models mentioned before,
here is a first comment on similarities:
+ Object Teams and Caesar share many properties, which should not surprise,
since both share some common roots and evolved in part from joint discussions.
Currently, Object Teams and Caesar are subject of the joint research project
+ EpsilonJ -- though not directly connected to Object Teams -- looks
_surprisingly_ similar. Consider these translations:
context -> team
requires -> playedBy
method import -> callout method binding
method export -> callin method binding
At a first glance, these translations might suffice to transform an EpsilonJ
program into an ObjectTeams/Java program (this is a very rough guess!).
EpsilonJ emphasizes the individual binding of role objects.
In ObjectTeams/Java, the default is an implicit creation of roles on-demand.
As a result, each team instance virtually has a role for each corresponding
base instance. ObjectTeams/Java provides several means to influence this
default behavior, such that selective bindings like in EpsilonJ can easily
be achieved, if you wish.
Another interesting similarity: Just like EpsilonJ, Object Teams has first
been explored by a language prototype using Ruby ;-) Our first case study
using this prototype has been completed in 2002 and was presented at AOSD'03.
The Java based version of Object Teams has been in classroom use since June
2003. An industrial case study is in progress.
Another recent approach, which had not been mentioned here, is the
Chameleon model by Kasper B. Graversen (http://www.itu.dk/~kbilsted/).
All these similarities make me believe all four languages are very close to
a sweet spot ;-)
More information about the discuss