Skip to Main Content
Being able to adapt themselves to changing environments represents an important requirement for the modern software systems. Distributed systems face a changing, evolving communication environment due to mobility, large scale deployment, new and unpredictable user behaviours. As the programming of such systems becomes more complex, new programming models have been used for creating applications. Communication between different system components is based on two main communication models: communication by messages and communication by remote method invocations. The choice of synchronous communication via remote method invocations or of message-based asynchronous communication still remains an early decision made at the time of the application design. In this article we propose an adaptive mechanism for dynamic and transparent switching of the communication model used between the components of a distributed system. This mechanism, aimed especially at large scale applications and mobile systems, offers the possibility to adapt the communication model to the execution context of an application and the changes in its communication environment.