Unearthing LegacyWare. Based on CIM/WMI/WBEM, with a web ui. Survol is a Python agent and a web interface which aim to help
understanding a legacy application.
A set of machines, processes, databases, programs etc .... all
communicating with each other,
manipulating your data, and whose software architecture has become, as
time passes, complicated, intricated, difficult to understand, and
undocumented.
Survol allows to display any software entity or resources running on a
computer. Simply said, it is a library of Python scripts, each of them
displaying a particular facet of an information system.
This scripts are run on Survol agents, these agents running on a
machine of the user application network.
The web interface then displays and summarizes all the information
coming from the agents.
It is not necessary to have an agent on all machines because many
scripts can get information from other machines than the one they
are running on. Strictly said, it is possible to run without
an agent at all.
The
data model of Survol is based on classes, each of them defining a type
of computer resources: Processes, machines, files etc...
Its borrows extensively its ontology and terminology from Common Information Model, CIM, an existing industrial standard. Therefore, it interacts freely with CIM implementations such as Microsoft WMI,
OpenLMI, OpenPegasus,
WBEM and any other software based on this standard.
It
is very easy to add new scripts, to display a specific kind of
information, only your application defines. When resources types are
not defined by CIM, Survol adds its own resource classes, in a very
simply way.
If a user application defines its resources classes, it is very easy to
add ones, along with associated scripts, in open or proprietary source
code, without complicated setup. Just create a directory and add a new
script at the right place, that's it.
The
data model built by Survol, from one or several of its agents, is a set
of triples: Subject, relation, object, the core data type found in the Semantic web, another standard. Survol has several display modes, for the same set of triples:
Interactive mode, fully interactive, designed for investigating, browsing, drilling into applications internals. It uses D3, a nice JavaScript library for manipulating graphs.
Print
mode, where the rendered view cannot be modified but is designed to be
nicely printed for reporting or presentations. The appearance is very
close to the interactive one, but the layout is much more stable. Its
uses Graphviz, an open source graph visualization software.
The HTML mode, convenient to generate reports in plain text, reports which can be saved, and compared.
Installation:
Agents can be installed a number of ways. Basically, each agent is a
HTTP server. Therefore, it can be run by Apache, IIS etc... Also,
Survol comes with its own simple HTTP server, if necessary. As of
technical prerequisites, the host machine needs to run Python, any
recent version (2 or 3). If a script needs a Python module which is
missing, only this script will not run, the rest will be allright. For
the interface, it is a set of HTML pages, so you can copy them wherever
you want.