AmbientTalk paper

AmbientTalk: Object-oriented Event-driven Programming in Mobile Ad hoc Networks: In this paper, we describe AmbientTalk: a domainspecific language for orchestrating service discovery and composition in mobile ad hoc networks. AmbientTalk is a distributed object-oriented programming language whose actor-based, eventdriven concurrency model makes it highly suitable for composing service objects across a mobile network. The language is a so-called ambient-oriented programming language which treats network partitions as a normal mode of operation. We describe AmbientTalk’s object model, concurrency model and distributed communication model in detail. We also highlight the major influences from other languages and middleware that have shaped AmbientTalk’s design.

In this paper, we introduce AmbientTalk, a distributed object-oriented programming language which has been designed for m"obile ad hoc networks from the ground up. AmbientTalk is a small, dynamically typed object-oriented language. What makes the language suitable for composing services across a mobile network is its actor-based, eventdriven concurrency model in combination with its built-in peer-to-peer, publish/subscribe service discovery abstractions. AmbientTalk has previously been described as an exemplar of the ambient-oriented programming (AmOP) paradigm [11]. We will revisit the key characteristics of the AmOP paradigm in section III. The language described in this paper is actually AmbientTalk/2, an updated version of the language as it is presented in [11]. However, we will simply refer to the updated language as AmbientTalk because it supplants its predecessor while staying true to its fundamental characteristics.

Mobile networks

There are two discriminating properties of mobile networks, which clearly set them apart from traditional, fixed computer networks: applications are deployed on mobile devices which are connected by wireless communication links with a limited communication range. Such networks exhibit two phenomena which are rare in their fixed counterparts:

• Volatile Connections. Mobile devices equipped with wireless media possess only a limited communication range, such that two communicating devices may move out of earshot unannounced. The resulting disconnections are not always permanent: the two devices may meet again, requiring their connection to be re-established. Quite often, such transient network partitions should not affect an application, allowing both parties to continue their collaboration where they left off. Dealing with partial failures is not a new ingredient of distributed systems, but these more frequent transient disconnections do expose applications to a much higher rate of partial failure than that which most distributed languages or middleware have been designed for. In mobile networks, disconnections become so omnipresent that they should be considered the rule, rather than an exceptional case.

• Zero Infrastructure. In a mobile network, devices that offer services spontaneously join with and disjoin from the network. Moreover, a mobile ad hoc network is often not manually administered. As a result, in contrast to stationary networks where applications usually know where to find collaborating services via URLs or similar designators, applications in mobile networks have to find their required services dynamically in the environment. Services have to be discovered on proximate devices, possibly without the help of shared infrastructure. This lack of infrastructure requires a peer-to-peer communication model, where services can be directly advertised to and discovered on proximate devices.

(This sounds a lot like the desire to do ad-hoc discovery operations, a la what we saw with Jini and JXTA back in the day. The timing--this paper was posted in 2007, I think--is about right for it, too.)

Ambient-oriented Programming

In * J. Dedecker, T. Van Cutsem, S. Mostinckx, T. D’Hondt, and W. De Meuter, “Ambient-oriented Programming in Ambienttalk,” in Proceedings of the 20th European Conference on Object-oriented Programming (ECOOP), ser. Lecture Notes in Computer Science, D. Thomas, Ed., vol. 4067. Springer, 2006, pp. 230–254* we have described an ambient-oriented programming language as a programming language that adheres to a set of well-defined characteristics. The two characteristics which deal directly with the hardware characteristics of mobile networks described in the previous section are non-blocking communication and ambient acquaintance management.

Non-blocking communications

In an AmOP language, all distributed communication is non-blocking, i.e. asynchronous. The main reason behind this strict asynchrony is that communicating parties remain loosely-coupled. It is this loose coupling which significantly reduces the impact of volatile connections on a distributed application. With respect to communication, two degrees of coupling between communicating parties can be distinguished, as explained in detail in P. T. Eugster, P. A. Felber, R. Guerraoui, and A.-M. Kermarrec, “The many faces of publish/subscribe,” ACM Comput. Surv., vol. 35, no. 2, pp. 114–131, 2003.:


Tags: language   concept   actor  

Last modified 28 April 2025