200 likes | 281 Views
On the Implementation of JavaSymphony. Alexandru Jugravu, Thomas Fahringer Institute for Software Science , University of Vienna Liechtensteinstr. 22, A-1090, Vienna, Austria {aj, tf}@par.univie.ac.at. HIPS 2003, Nice France, Apr. 2003. Contents. Overview JavaSymphony class library
E N D
On the Implementation of JavaSymphony Alexandru Jugravu, Thomas Fahringer Institute for Software Science , University of Vienna Liechtensteinstr. 22, A-1090, Vienna, Austria {aj, tf}@par.univie.ac.at HIPS 2003, Nice France, Apr. 2003
Contents • Overview • JavaSymphony class library • dynamic virtual architectures - VAs • distributed remote objects - JSObjects • JavaSymphony Runtime System • Benchmarks • Conclusions and future works
Overview JavaSymphony - new object-oriented programming paradigm of concurrent and distributed systems • portability (100 % Java) • higher level programming • simple access to resources • explicit control of locality and parallelism • performance-oriented
JavaSymphony class library • dynamic virtual architectures (VAs) • API for system parameters • single- and multi-threaded JSObjects • distribution/migration of objects and code • asynchronous and one-sided (remote) method invocation • Distributed events • Distributed synchronization mechanism
Dynamic virtual architectures - VAs VAs - abstraction of physical architectures (computing resources) • high level and simple access to distributed resources • API for system parameters • top-down or bottom-up creation • dynamic modification • lock/unlock mechanism for exclusive modification • release of resources
level-1 VA • Physical resources: • SMP node • Workstation • PC LAN 1 LAN 2 level-2 VA • Cluster of level-1 VAs • SMP cluster • Cluster of workstations/PCs level-3 VA • Cluster of level-2 VAs • Wide area network LAN level-4 VA • Cluster of level-3 VAs • Arbitrary complex GRID architecture
Distributed remote objects - JSObjects JSObjects - solution for distributing code and data in JavaSymphony • remote access to Java Objects • remote method invocation: synchronous, asynchronous and one-sided • multi-threaded and single-threaded objects • lock/unlock mechanism for exclusive access to objects • migration of objects • persistent objects
JavaSymphony Runtime System Components: • JavaSymphony Administration Shell (JS-Shell) • Network Agent System - 1NA/node • Object Agent System • 1 PubOA/node (Public Object Agent) • 1 AppOA/application (Application Object Agent) • Event Agent System - 1EvA/node
JSShell - Administration GUI • Manages the physical resources • Monitors JS Applications
NAS - Network Agent System • 1 Network Agent (NA) / node • Starts associated PubOA and EvA. • Monitors the parameters of physical resources • NAs organized in a tree structure by JSShell
OAS - Object Agent System • 1 Public Object Agent (PubOA) / node and 1 Application Object Agent (AppOA)/ JS application. • Interacts directly with JS applications. • Manages: • Remote Objects: creation, migration, method invocation, lock/unlock, release • Codebase: transfer, load • Virtual Architectures: creation, lock/unlock, release (in collaboration with NAS) • Interaction based on a “Job Mechanism”
OAS - Object Agent System (3) Types of Jobs in JavaSymphony
EvA EvA EvA EvA Object Event Agent 1a. Register consumer 2a. Distributed registration 2a 1b. Produce event 2b 2b. Distribute event 3b. Notify consumer 1a 3b 1b 4b. Process event (invoke) 4b EvAS - Event Agent System • 1 Event Agent (EvA) / node JSEventConsumer Consumer Producer Event Agent JSEventProducer Object
Benchmarks Goals: • Test simple operations in JavaSymphony • remotely • locally • Evaluates the cost as Rate = #ops / time (ops/sec).
Conclusions • JS tries to simplify distributed and parallel Java programming • request for arbitrary complex computing infrastructures • events, synchronization, multi-threaded objects, migration, etc… • Explicit control of locality, parallelism, and load balancing at a high level • no RMI, socket or thread programming • JS - 100% Java and Java RMI, agent based implementation • remote interaction between agents based on Job mechanism • Suitable for coarse/middle grained parallelism • Future work: mobile computing, GRID www.par.univie.ac.at/project/javasymphony/