Abstract
Most object-oriented languages offer a limited number of invocation semantics. At best, they define a default mode of synchronous invocation, plus some keywords to express additional semantic attributes, e.g. synchronisation. The very few approaches that offer rich libraries of invocation abstractations usually introduce significant overhead and do not support the composition of those abstractions.
This paper describes a pragmatic approach for abstracting invocation semantics with emphasise on remote invocations. Invocation semantics, such as synchronous, asynchronous, remote, transactional or replicated, are all considered first class citizens. Using an elegant combination of the Strategy and Decorator design patterns, we suggest an effective way to compose various invocation semantics. We completely separate the class definition from the invocation semantics of its methods and we go a step further towards full polymorphism: the invocation of the same method can have different semantics on two objects of the same class. The very same invocation on a given object may even vary according to the client performing the invocation.
Original language | English |
---|---|
Title of host publication | Workshop proceedings of ECOOP'00, Cannes, June 2000 |
Place of Publication | IEEE |
Publication status | Published - Jun 2000 |
Fields of science
- 102 Computer Sciences
- 102009 Computer simulation
- 102011 Formal languages
- 102013 Human-computer interaction
- 102029 Practical computer science
- 102022 Software development
- 102024 Usability research