Framework Software Elements

The whole AKIRA's Framework is written in C++.
The complexity of the framework derives not only by its own core
components but also by the large set of third parts libraries
integrated. Each external object was merged with AKIRA's Kernel to
assume a specific macro role in the whole system logic. The components
integrated are:


1) Zthread Library (by Eric Crahen). Advanced platform-independent,
Object-Oriented threading and synchronization library. Designed and
tested under POSIX & Win32 systems. This lib is the object who takes
care of the system modules multithreading and synchronization
management.


2) Matrix Template Library and Iterative Template Library (by University
of Notre Dame). Any matrix operation (also data structures allocation
and management) related to the math core of AKIRA is delegated to these
libraries.


3) Expat (by James Clark). THE reference point among xml-parser libs. It
is used to parse any content in the system, that is always XML encoded.


4) StarFLIP++ (by University of Technology in Vienna, Wolfgang Slany).
It is a very big software used to solve complex optimisation problems
formalized using Fuzzy Logic constructs and constraints. We
extract a single FLIP++ module from the whole object: the Fuzzy Logic
Engine. It
is used into AKIRA to model, together with the Fuzzy Cognitive Maps, a
single agent behaviour.


5) Mersenne Twister (by Makoto Matsumoto & Takuji Nishimura). A random
number generator lib far away from the standard system libs having
the same role. It is fast, with very low memory request, and formally
correct to build robust probabilities model.


6) ACE (by Douglas C. Schmidt).The ADAPTIVE Communication Environment is a freely available, open-source object-oriented (OO) framework that implements many core patterns for concurrent communication software. ACE provides a rich set of reusable C++ wrapper facades and framework components that perform common communication software tasks across a range of OS platforms. The communication software tasks provided by ACE include event demultiplexing and event handler dispatching, signal handling, service initialization, interprocess communication, shared memory management, message routing, dynamic (re)configuration of distributed services, concurrent execution and synchronization. In AKIRA it is used to implements the whole communication managing.


7) PostgreSQL (by PostgreSQL Team). One of the most popular and world
wide used open source database. It is used to store Agent's state and
Persistent Knowledge information.


8) DoxyGen (by Dimitri van Heesch). AKIRA's comments are written in
DoxyGen language.


Each of these components play a fundamental role in the whole
system. But how they really interact with each others? at what
level of the architecture they are used?
In order to answer to these questions we need to explain more about AKIRA's
architecture and its computational model.