Distributing The Interface And The Application

The interface facilities in existing systems like X |Scheifler and Gettys, 19861 are designed to have many users on many machines (processors).

The machines have a client/server relationship with the interface running on the server and the applications running on the clients. Users require one server but may connect to any number of clients. In this model, which tasks should be performed by the client and which should be done by the server (i.e., the partitioning of the application and the interface) is not always clear. For example, who is responsible for updating the display when part of it is destroyed?

These systems require the designers to partition their product into application and interface parts which are distributed over the client and server.

Eva, on the other hand, encourages but does not require this partitioning and can distribute both the application and the interface over many machines. Eva is used in a single user, multiprocessor environment similar to that found in Adagio [Tanner, et al., 1985]. Because the components of Eva are Actors [Hewitt, Bishop and Steiger, 1973] (light weight processes) they are well defined and concrete. Each component is a self-contained object which has its own resources (including processing power) and communicates with other objects using a message passing protocol (e.g., Harmony [Gentleman 85]). This increased modularity makes it easy to incorporate new hardware into the system.