an application framework for event-driven, re-configurable distributed applications
DESCRIPTION
An Application Framework For Event-driven, Re-configurable Distributed Applications. M.Ranganathan Multimedia and Digital Video Group National Institute of Standards and Technology. Goals of the AGNI Project. - PowerPoint PPT PresentationTRANSCRIPT
An Application Framework For Event-driven, Re-configurable
Distributed Applications
M.RanganathanMultimedia and Digital Video Group
National Institute of Standards and Technology
Goals of the AGNI Project
• Design and build a secure , extensible, re-configurable, fault-tolerant middle-ware for peer-to-peer distributed applications.
• Develop peer-to-peer applications based on developed infra-structure.
• Evaluate architectures for Mobile Agent platforms via simulation.
Application Scenarios
• Distributed Event-driven applications:– Distributed testing, logging and monitoring.– Distributed control.– Conferencing, conference control.– Network Management.
Overview
• Built around the Mobile Streams abstraction.– A Mobile Stream is a named communication end-point.– Provides a FIFO ordering guarantee.– Name-location mapping can dynamically changed.
Basic idea: Start with the communication structure of the application.Attach handlers to communication end-points to define complete app.
Streams
STREAM (global name, ordering guarantee)
Handler Handler Handler
Messages
Overview
• Application is structured as a set of handlers that “react” to messages.
• System can be re-configured dynamically - Streams can be moved around in reaction to external changes.
Resource Control
• System is re-configurable and dynamically extensible– System can be extended by dynamically adding
Streams and handlers. – Reconfigured by moving around streams.
• Resource Control Mechanism – controls on mobility, message delivery,
reconfiguration, new stream creation and destruction.
Resource Control Mechanisms
• System-wide resource control.• Per-stream resource control.• Per-location resource control.
Application : Agent Monitor
• Track the location of agents in the distributed system.
• Reactive GUI application.• Allow user to easily deploy agents using a
GUI driven management tool.
Agent Monitor
Agent Debugger
• A tool to debug Agent Scripts.• Extension of tcl-debug debugger.• Goals:
– Location transparency.– Global stepping.– Global conditional breaks.
Agent Debugger Organization
Debugger GUI
Debugee Agent
Monitor Stream
MBOX
Per-locationController
Total ordering of messages
• Total order:– Messages can be sent concurrently.– Consumers consume messages in the same order.
• Application:– Collaborative sharing of unmodified Tk applications
using WYSIWIS model.– Dynamic reconfiguration to reduce latency.
Tk-Collaborative Toolkit
Event Dispatcher
Tk Application Tk Application
Tk Events Tk Events
Mobile
Tk Events Tk Events
Tk Events
Record and Replay of collaborative tools
• XCVW Multi-party conferencing tool.– Asynchronous interactions generated by each party.– Want to record the interactions while tool is being used
and replay tool live later keeping the same event sequencing.
– Live replay generates the same network load.• Joint work with MITRE (Supported by DARPA
under the IC&V project).• Uses the NIST Mobile Stream Infrastructure.
Organization
Causal Order via mobility• Can replace causal ordering of actions by
streams and FIFO messages (between streams).
A B AT2 T5T3
T6T1A
C
• Example: Sequence of actions to be performed on machines A B and C:
Applications: Testing and collaborative applications.
Application: Distributed Testing
• Simplifies the design and construction of distributed testers as follows:– Asynchronously and autonomous execution simplifies
logic to build testers.– Reduction of tester generated network load.– Reduction of control latency.– Encapsulation of protocols used in distributed testing.– Dynamic adaptation to failures.
Example
• Required sequence:– Start data producer at A.– Start data consumer at B.– Initiate the transfer of data from A to B– Report the timing.
• Agent :– Hop to A start producer– Hop to B start consumer– Hop back to A start transfer.– Gather result and report.
A Distributed web-based Test Harness
• A high level scripting environment to specify sequences of actions and execute them in a web-based environment.
T1
T3
T2T4
At location 2At location 1
At location 3
At location 1
Sequential { at 1 { do task T1 } concurrent {
at 2 {do task T2}at 3 {do task T3}
} at 1 {do task T4}}
Architecture
HTTPD
Browser Agnid Agnid Browser
Sequential { at 1 { do task T1 } concurrent {
at 2 {do task T2}at 3 {do task T3}
} at 1 {do task T4}}
Compiler
AGNI Streams Commands
System Organization
RELIABLECACHE/DIRECTORY MANAGER
CacheState
Control traffic
Unreliable Peer
Agent Daemon
CacheState
Unreliable Peer
Agent Daemon
Control traffic
Data
Hierarchical Directory Managers
Agent Daemon Organization
Stream (name)Stream (name)
LocationLocation
AgentAgent
Stream (name)Stream (name)
BriefcaseBriefcase
Tcl InterpTcl Interp
POSIX ThreadPOSIX Thread
AgentAgentBriefcaseBriefcase
Tcl InterpTcl Interp
POSIX ThreadPOSIX Thread
AgentAgentBriefcaseBriefcase
Tcl InterpTcl Interp
POSIX ThreadPOSIX Thread
AgentAgentBriefcaseBriefcase
Tcl InterpTcl Interp
POSIX ThreadPOSIX Thread
System Simulation
• We have built a complete simulation of system:– Most code re-used from actual implementation.– Underlying message interface is simulated.
• Allows experimentation with protocols and algorithms for re-configurable systems.
Future Plans
• Research Issues:– Security– Efficient inter-stream communication.– Resilience / Fault tolerance.
• Applications– Network management.– Distributed web-based testing.– Caching for collaborative applications.– Distributed resource-aware applications.