Architectural Description Tool

Context

This tools aims to describe the global jSeduite infrastructure. The first usage is to automatically generate diagrams from the description. Others application can use this representation to automate the generation of bundles, …

The underlying engine is the Prolog inference engine, which provides a very efficient backend for this kind of job.

Describing the architecture

The architecture description file is named jSeduite.pl, in the $JSEDUITE_HOME/architecture/description folder.

You'll describe the jSeduite architecture by expressing a set of logical facts. The facts syntax is really simple, and the only thing you have to know is you can't use a name which starts by an upper case character.

The following list contains all available facts, and the corresponding semantic :

Extracting diagrams

The arch_gen.sh shell script can generate graphviz diagrams from this representation.

Extracting dependency graph from Website

The arch_gen.php script bind prolog to php and allow dynamic generation of dependency graph.

Installing the script

You'll just have to retrieve the raw script from here: arch_gen.php.

As the web script will automagically synchronize its descriptor from the SVN repository, the www user MUST be able to write data inside the folder you're using.

Then, open the script and specialize it for your own web server, by editing the three following constants:

define("SWIPL","/opt/local/bin/swipl");
define("NEATO","/sw/bin/neato");
define("FONT_PATH","/System/Library/Fonts");

Running the script

Assuming you've deploy the script inside a folder available at the URL http://server.domain/arch_gen.php:

<div align="center" >
  <img src="http://server.domain/arch_gen.php?target=entity" />
</div>
<html>
  <div align="center" >
    <img src="http://server.domain/arch_gen.php?target=entity" />
  </div>
</html>

For this website, the script is reachable here: http://www.jseduite.org/webarch_gen/arch_gen.php?target=