Object Model with Exchangeable Invocation Semantics

Abstract

Common object oriented systems have a fixed invocation semantic (synchronous procedure call). Some systems extend this concept with a fixed amount of additional semantics (RPC, best effort, asynchronous...). We claim that we have to go a step further and introduce invocation semantics as first class abstractions. We offer the possibility to write or compose completely new invocation semantics, and describe an efficient implementation.
We implemented a prototype and two concrete applications. First, we implemented a distributed object system, which introduces new semantics to forward invocations across a network. Second, we decorate local objects with additional semantics, e.g. transparent invocation logging, synchronization semantics... By putting our framework into an operating system, one gets a highly increased flexibility in the system's object model. We also show that the introduced delay is constant and neglectable.