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 abstractions 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. To reduce the overhead induced by the flexibility underlying our approach, we rely on just-in-time stub generation techniques.
Technical areas: Adaptive Communication Systems, Distributed Systems, Architecture
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Agha, G., Hewitt, C., Wegner, P., Yonezawa, A.(eds.): Proceedings of the OOPSLA/ECOOP 1990 Workshop on Object-Based Concurrent Programming. ACM OOPS Messenger 2(2) (1991)
Agha, G., Wegner, P., Yonezawa, A.(eds.): Proceedings of the ACM Sigplan Workshop on Object-Based Concurrent Programming. ACM Sigplan 24(4) (1989)
Agha, G., Wegner, P., Yonezawa, A.: Research Directions in Concurrent Object-Oriented Programming. MIT Press, Cambridge (1993)
Bergmans, L.: Composing Concurrent Objects. ISBN 90-9007359-0
Briot, J.-P., Guerraoui, R., Lohr, K.-P.: Concurrency and Distribution in Object-Oriented Programming. ACM Computing Surveys (September 1998)
Dijkstra, E.: Hierarchical Ordering of Sequential Processes. Acta Informatica 1(2), 115–138 (1971)
Guerraoui, R., Capobianchi, R., Lanusse, A., Roux, P.: Nesting Actions through Asynchronous Message Passing: the ACS Protocol. In: Lehrmann Madsen, O. (ed.) ECOOP 1992. LNCS, vol. 615, pp. 170–184. Springer, Heidelberg (1992)
Guerraoui, R., Nierstrasz, O., Riveill, M.: ECOOP-WS 1993. LNCS, vol. 791. Springer, Heidelberg (1994)
Garbinato, B., Guerraoui, R.: Using the Strategy Design Pattern to Compose Reliable Distributed Protocols. In: Proceedings of the Usenix Conference on Object-Oriented Technologies and Systems (COOTS 1997), Usenix (June 1997)
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1995)
Hof, M.: Just-in-Time Stub Generation. In: Proc. Joint Modular Languages Conference 1997, Hagenberg, March 1997. LNCS (1997) ISSN 0302-9743
Hof, M.: Composable Message Semantics in Object-Oriented Languages. PhD Thesis University of Linz (1999)
Keller, R., Hölzle, U.: Binary Component Adaptation. In: Jul, E. (ed.) ECOOP 1998. LNCS, vol. 1445, p. 307. Springer, Heidelberg (1998)
Liskov, B., Sheifler, R.: Guardians and Actions: Linguistic Support for Robust, Distributed Programs. ACM Transactions on Programming Languages and Systems 5(3) (1983)
The Object Management Group, http://www.omg.org
Tripathi, A., Noonan, T.: Design of a Remote Procedure Call System for Object-Oriented Distributed Programming. Software-Practice and Experience 28(1), 23–47 (1998)
Tokoro, M., Nierstrasz, O., Wegner, P. (eds.): ECOOP-WS 1991. LNCS, vol. 612. Springer, Heidelberg (1992)
Waldo, J., Wyant, G., Wollrath, A., Kendall, S.: A Note on Distributed Computing. Technical Report, Sun Microsystems Laboratories, Inc. (November 1994)
Yonezawa, A., Tokoro, M. (eds.): Object-Oriented Concurrent Programming. MIT Press, Cambridge (1987)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2000 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Hof, M. (2000). Composable Message Semantics in Oberon. In: Weck, W., Gutknecht, J. (eds) Modular Programming Languages. JMLC 2000. Lecture Notes in Computer Science, vol 1897. Springer, Berlin, Heidelberg. https://doi.org/10.1007/10722581_2
Download citation
DOI: https://doi.org/10.1007/10722581_2
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-67958-5
Online ISBN: 978-3-540-44519-7
eBook Packages: Springer Book Archive