Actors: a model of concurrent computation in distributed systems
Actors: a model of concurrent computation in distributed systems
Abstractions for Software Architecture and Tools to Support Them
IEEE Transactions on Software Engineering - Special issue on software architecture
Coordinating distributed objects: an actor-based approach to synchronization
Coordinating distributed objects: an actor-based approach to synchronization
The Java Language Specification
The Java Language Specification
Abstracting Interactions Based on Message Sets
ECOOP '94 Selected papers from the ECOOP'94 Workshop on Models and Languages for Coordination of Parallelism and Distribution, Object-Based Models and Languages for Concurrent Systems
Modular specification of interaction policies in distributed computing
Modular specification of interaction policies in distributed computing
A Framework for Evaluating Distributed Object Models and its Application to Web Engineering
Annals of Software Engineering
A Hierarchical Model for Coordination of Concurrent Activities
COORDINATION '99 Proceedings of the Third International Conference on Coordination Languages and Models
Hi-index | 0.00 |
Java supports heterogeneous applications by transforming a heterogeneous network of machines into a homogeneous network of Java virtual machines. This approach abstracts over many of the complications that arise from heterogeneity, providing a uniform API to all components of an application. However, for many applications heterogeneity is an intentional feature where components and resources are co-located for optimal performance. We argue that Java's API does not provide an effective means for building applications in such an environment. Specifically, we suggest improvements to Java's existing mechanisms for maintaining consistency (e.g. synchronized), and controlling resources (e.g. thread scheduling). We also consider the recent addition of a CORBA API in JDK 1.2. We argue that while such an approach provides greater flexibility for heterogeneous applications, many key problems still exist from an architectural standpoint. Finally, we consider the future of Java as a foundation for component-based software in heterogeneous environments and suggest architectural abstractions which will prove key to the successful development of such systems. We drive the discussion with examples and suggestions from our own work on the Actor model of computation.