« A3 architecture » : différence entre les versions
Aucun résumé des modifications |
Aucun résumé des modifications |
||
Ligne 256 : | Ligne 256 : | ||
*OS? Linux, Windows, Android and MacOS OK. |
*OS? Linux, Windows, Android and MacOS OK. |
||
== Java utilities notes<br> == |
|||
to be filled<br> |
|||
== Bash Scripts notes<br> == |
|||
The a script covers various maintenance and convenience functions.<br> |
|||
It is located in ~/Scripts/a .<br> |
|||
It uses function and settings defined in ~/Scripts/bashrc and ~/Scripts/bashrcAlex . <br> |
|||
It covers very different functions, as visible in its help display (updated feb 2012)<br> |
|||
<pre>Alex Main host is MMU Local host is MMM |
|||
Usage a ceds (launch monitoring CEDS; only on MMU) |
|||
Usage a l(og) (view CEDS logFile) |
|||
CEDS is central-exec-daemon-script |
|||
Usage a fx (javafx front end) |
|||
Usage a u(p) (up central) |
|||
Usage a h(alt) (halt central) |
|||
Usage a gcc (compile engine) |
|||
Usage a gcc <args> (compile engine, then execute with args) |
|||
Usage a engi <args> (run engine with args) |
|||
Usage a ps (involved processes on this host) |
|||
Usage a psa(ll) (involved processes on all hosts) |
|||
Usage a f(ollow) (tail -f central stdout) |
|||
Usage a e(rror) (tail -f central stderr) |
|||
Usage a t(est) (test central and CEDS) |
|||
Usage a c(heck ssh cap) (check ssh capabilities; only on MMU) |
|||
Usage a engp(erf) (engine performance) |
|||
Usage a ba(ckup) (create a backup of critical source files) |
|||
Usage a info (general working context info) |
|||
Usage a wiki (open Alex wiki) |
|||
Usage a h(elp) (this help) |
|||
</pre> |
|||
<br> |
<br> |
Version du 15 février 2013 à 19:47
Intro
The A3 architecture is one of the possible Assotink architectures.
It was developed from october 2012 and is still under development in april 2013 ...
The A3 architecture divides the Assothink work in a trilogy of main working layers, plus 3 complementary side parts.
Part | Technology | Function |
---|---|---|
Engine Layer |
Linux, C project name : engine (main: engine.c) |
implemented (goal: computation speed, sizing efficiency) |
Transmission Layer |
Linux, Java project name : alexLib (main: central.java) |
Tranmission of information between engine layer and presentation layer; engine launching (goal: network efficiency) |
Presentation Layer |
Linux, Java, JavaFX project Name : alexFX (main: alexFX.java) |
User interface, working as a client to the central process. Access to passive jelly. Access to active jelly and engines. (goal: user friendliness, visibility on data and process) |
Resource Builder |
Linux, Java project name : alexRB (main: builder.java) |
Construction of passive jelly database. Organized in numerous steps. (goal: data cohesion, data availability) |
Java Utilities |
Linux, java project names: mslib,
techlib, structureLib, drawFXLib |
Generic tools for advanced java application development. Not only usable with Assothink. (goal: ease of development) |
Bash Scripts |
Linux, bash main bash scripts: a |
terminal-based front-end utilities to launch, monitor, test, debug... all other parts (goal: convenience) |
Engine layer (engine) notes
This layer implements the Assothink Excitation Propagation Model (EPM), or Assothink active Jelly, or Assothink brain.
The program is a C program: engine.c.
Only concepts, links, signals.
Load links data from a data server.
Runs autonomously, saving state .
A brain uses a brain slot: a host/port combination.
Many brains run at the same time in a network, or even on a machine.
Interaction
The engine layer interacts mainly with the transmission layer.
It is slightly controlled through the scripts components.
Suggested hardware
- standard PC
- mainly accessible trough network (remote shells)
- with Linux OS and JVM (installed by myself)
- with strong processor (fast) and gigabit ethernet!
- 4 Gb RAM, USB port, small HD, simple graphic controller
- compact
- without (no need) CD/DVD, advanced graphic, monitor, keyboard, mouse...
The EPM engine machine setup is standardized, simple, fast,
Transmission layer (alexLib) notes
The transmission layer works as a daemon.
Its main class is central.java.
The transmission layer is a java program, launched from the a script.
Interaction
This layer has two sides.
Interacting with its presentation layer clients, it
- delivers (begin of user session) the whole data set describing the passive jelly
- continuously delivers information produced by the engines
- receives orders from clients, and transmits then to engines
Interacting with the engine layer, it
- creates, kills and controls engine processes
- delivers orders defined by clients
- receives state information from the engines, propagates them to all subscribing clients
Functions
The controller is able to:
- read, analyse, display (or distribute) state data generated by the EPM engine
- send orders to the EPM engine
Orders
The tranmissted orders are:
- Wake Up (launch a new instance of EPM engine)
- Halt (the EPM engine process is terminated)
- Stop (the EPM engine is stopped: it continues to run, but does not perform any cycle)
- Resume (the EPM engine resumes: it performs repeated cycles until new orders are sent)
- Clear EPM memory (all excitation values are set to 0)
- N cycle (the EPM engine performs N cycles, then it is stopped)
- Set one-shot excitation for some nodes
- Set permanent excitation for some nodes
- Modify EPM parameters
- Modify permeabilities of specified EPM links
Suggested hardware
Roughly the same as the computing layer.
More server oriented: more disk and network efficiency, less CPU needs, high availablity.
Presentation layer (alexFX) notes
This is a javaFX front-end client applic running
- as stand-alone application
- within browsers
Many clients (presentation layer) may run and interact with the transmission layer simultaneously.
The presentation layer client allows
- to list all running engines to select any of them
- to display the state of the selected EPM engine
- to send to the selected EPM engine all orders handled by the EPM controller.
Suggested hardware
No specific hardware needed.
A standard PC with browser having good web access and good visualization hardware.
- The screen resolution should by high (at least 1500x1000 points).
- The graphic card should have average or high performance.
- The preferred browsers are google chrome (chromium) and firefox.
- The web access should be fast (>20Kbit/sec for download) and the network throughput should be high.
- OS? Linux, Windows, Android and MacOS OK.
Java utilities notes
to be filled
Bash Scripts notes
The a script covers various maintenance and convenience functions.
It is located in ~/Scripts/a .
It uses function and settings defined in ~/Scripts/bashrc and ~/Scripts/bashrcAlex .
It covers very different functions, as visible in its help display (updated feb 2012)
Alex Main host is MMU Local host is MMM Usage a ceds (launch monitoring CEDS; only on MMU) Usage a l(og) (view CEDS logFile) CEDS is central-exec-daemon-script Usage a fx (javafx front end) Usage a u(p) (up central) Usage a h(alt) (halt central) Usage a gcc (compile engine) Usage a gcc <args> (compile engine, then execute with args) Usage a engi <args> (run engine with args) Usage a ps (involved processes on this host) Usage a psa(ll) (involved processes on all hosts) Usage a f(ollow) (tail -f central stdout) Usage a e(rror) (tail -f central stderr) Usage a t(est) (test central and CEDS) Usage a c(heck ssh cap) (check ssh capabilities; only on MMU) Usage a engp(erf) (engine performance) Usage a ba(ckup) (create a backup of critical source files) Usage a info (general working context info) Usage a wiki (open Alex wiki) Usage a h(elp) (this help)