1 / 20

On the Implementation of JavaSymphony

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

min
Télécharger la présentation

On the Implementation of JavaSymphony

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. Contents • Overview • JavaSymphony class library • dynamic virtual architectures - VAs • distributed remote objects - JSObjects • JavaSymphony Runtime System • Benchmarks • Conclusions and future works

  3. 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

  4. 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

  5. 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

  6. 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

  7. 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

  8. 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

  9. JavaSymphony Runtime System

  10. JSShell - Administration GUI • Manages the physical resources • Monitors JS Applications

  11. 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

  12. 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”

  13. OAS - Object Agent System (2)

  14. OAS - Object Agent System (3) Types of Jobs in JavaSymphony

  15. 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

  16. Benchmarks Goals: • Test simple operations in JavaSymphony • remotely • locally • Evaluates the cost as Rate = #ops / time (ops/sec).

  17. Benchmarks(Remote) Object Creation

  18. BenchmarksRemote method invocation

  19. BenchmarksMigration and method invocation

  20. 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/

More Related