YALPS

Your Applications Like Planetlab & Simulation

YALPS is an open-source Java library designed to facilitate the development, deployment, and testing of distributed applications. Applications written using YALPS can be run both in simulation and in real-world mode without changing a line of code or even recompiling the sources. A simple change in a configuration file will load the application in the proper environment. A number of feature make YALPS useful both for the design and evaluation of research prototypes and for the development of applications to be released to the public. A YALPS application is organized as a collection of Tasks whose life cycle is controlled by a TaskManager abstraction. The TaskManager allows tasks to be scheduled for immediate, deferred, or periodic execution as well as canceled upon request. Tasks can be associated with application-specific TaskGroups to facilitate their management. The programmer can easily enable or disable a subset of an application simply by managing the corresponding TaskGroup. Moreover, the two available implementations of the TaskManager (SimulatedTaskManger and ExecutorTaskManager) make it possible to run the same application as a simulation or in a real deployment without a single change in the code. Communication is also handled by an abstract component, YALPS's CommunicationLayer, which is specialized in a real-world and a simulation version. Applications communicate by means of application-defined messages which are then routed either through UDP/TCP or through YALPS's simulation infrastructure. In both cases, YALPS's communication layer offers features for testing and evaluating distributed protocols and applications. Communication channels can be tuned to incorporate message losses or to constrain their outgoing bandwidth. This makes it possible to simulate constrained links or other challenging network scenarios in testbed environments such as PlanetLab or in cluster deployments. These testing features can easily be turned off when applying YALPS in a real-world application. To improve performance in bandwidth intensive applications, YALPS also gives programmers an easy way to personalize message serialization. Developers can freely choose whether their messages should be serialized using Java's standard serialization or using a more efficient custom mechanism implemented through YALPS's interface. Custom serialization is mostly useful in real deployments. In simulation, YALPS developers can specify that their messages follow the immutable pattern thereby allowing YALPS to skip serialization and reach larger simulation scales. YALPS's support for experiments also includes skeleton classes peer-to-peer nodes and for bootstrapping servers. These include facilities such as the detection of heavily loaded or clockdrifted hosts and can be freely extended by developers. The same holds for YALPS's logging facilities, which by default include the ability to evaluate bandwidth consumption and identify particularly time consuming tasks. Finally, YALPS includes a set of bash scripts that facilitate the task of deploying and running applications in large scale testbeds. YALPS scripts will automatically deploy the application on the desired nodes and launch it, possibly changing its parameters according to the specified configuration files (in java-property format). Once the experiments have terminated, YALPS can collect results either using its scripts or by means of application messages sent to a Bootstrap node.
News
  • alpha release: Oct 6, 2010
  • Source: download latest
  • Jar: download latest
  • Tutorial & API: download latest
  • Examples: download latest
  • Javadoc: online version
Project Summary
Tracker Tracker

 - Bugs ( 0 ouvert(s) / 0total )
Bug Tracking System

 - Support ( 0 ouvert(s) / 0total )
Tech Support Tracking System

 - Patches ( 0 ouvert(s) / 0total )
Patch Tracking System

 - Feature Requests ( 1 ouvert(s) / 1total )
Feature Request Tracking System

 - Public tracker ( 1 ouvert(s) / 1total )
GossiPeer v0.2


Forums Forums ( 2 messages in 2 forums )
Docs Doc Manager
SCM SCM Tree ( 4 commits, 96 adds )
FTP Released Files
Powered By GForge Collaborative Development Environment