root/trunk/doc/architecture.rst

Revision 580, 1.5 kB (checked in by haypo, 11 months ago)

Update ChangeLog? and agent list

  • Property svn:mime-type set to text/x-rst
  • Property svn:eol-style set to native

Fusil architecture

Fusil is a multi-agent system (MAS): it uses simple objets called "agents" exchanging messages though asynchronus "message (mail) transfer agent" (MTA). This architecture allows the whole project to be very modular and very customisable.

Each agent have a live() method called at each session "step", but also event handler. An event has a name and may contains arguments. The name is used in agent method name: eg. "on_session_start()" method is called when the session starts.

Some agents do change the environment and some other watchs for errors and strange behaviour of programs.

Action agents

  • CreateProcess: create a process
  • StdoutFile: created by CreateProcess to store process output
  • MangleFile: generate an invalid file using valid file
  • AutoMangle: MangleFile with autoconfiguration based on aggressivity factor

Network:

  • NetworkClient / NetworkServer: network client / server
  • TcpClient: TCP network client
  • UnixSocketClient: UNIX socket client
  • HttpServer: HTTP server

Probes

  • FileWatch: watch a text file, search specific text patterns like "segmentation fault"
  • CpuProbe: watch CPU used by the process created by CreateProcess
  • ProcessTimeWatch: watch process execution duration
  • WatchStdout: watch process output (stdout)
  • WatchProcess: watch process created by CreateProcess
  • AttachProcess: watch running process
  • Syslog: watch /var/log/messages and /var/log/syslog files
Note: See TracBrowser for help on using the browser.