Cuayollotl Framework

A middleware (MW) is a software layer that provides a programming abstraction as well as masking the heterogeneity of the underlying networks, hardware, operating systems and programming languages.

Why to develop a Middleware?
There are many reasons why we decide to develop a specialized MW. For example:

  • take advantage of available equipment,
  • distribute work,
  • increase the components easily,
  • reduce processing times,
  • for conceiving the system as a whole not as a set of components.

The main goal of our implementation is to support the architecture, so we try to reproduce all the features described above.

System Structure
The system is composed of two types of nodes.
BigNodes: A BigNode is a computational abstraction of a brain area. For example the hippocampus. Each BigNode is composed of:

  • a set of Smallnodes,
  • a socket object that is responsible for:
    • manage the communication with other BigNodes and its SmallNodes,
    • handle requests for sending and receiving information for the area that represents,
    • preprocess the information coming from the network to be interpreted by the area that represents,
    • preprocess the information that is sent to be processed by another node

SmallNodes: A SmallNode is part of a computational abstraction of a brain area. For example the hippocampus. Each SmallNode has:

  • a function that try to simulate the specifications outlined in the system,
  • a socket object that is responsible for:
    • manage the communication with its BigNode and other nodes,
    • handle requests for sending and receiving information for the area that represents,
    • preprocess the information coming from the network to be interpreted by the area that represents,
    • preprocess the information that is sent to be processed by another node