Skip to content

Commit

Permalink
add illustrations for concepts and example
Browse files Browse the repository at this point in the history
  • Loading branch information
stvales committed Aug 20, 2021
1 parent eaeb363 commit db6c72c
Show file tree
Hide file tree
Showing 5 changed files with 11 additions and 3 deletions.
14 changes: 11 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,10 +34,15 @@ Ingescape is a framework for the orchestration of broker-free distributed hetero
Ingescape brings a neat and easy model-based approach to describe and enforce the communications between agents. The model supports:

- **Data flow** : Agents expose named and typed inputs and outputs. Each agent describes a mapping between its inputs and outputs of other agents resulting in a global data flow architecture. Ingescape data flow uses high-speed, low-latency PUB/SUB communications from outputs of  agents to inputs of other agents, with the optional capability to dispatch data between workers for workload distribution.


![three agents mapped together into a platform](./doc/images/three_agents_mapped_together_into_a_platform.png)

- **Request/reply services**: Agents expose named services with named and typed parameters that are equivalent to REST-like web services on one hand and RPC/RMI solutions on the other hand. Any agent can both expose its own services and use services from other agents, without strict client/server segmentations.

![services sequence](./doc/images/services_sequence.png)

Because Ingescape is developed in C, it can be used out of the box in C++ and Objective-C and bindings can be created for practically any programming language on any operating system. At the moment,  official bindings exist for C#, Python, QML Javascript and NodeJS Javascript. Android Java, ORacle JRE Java and web-app Javascript are also supported with some peculiarities. If you need support for another language, please create an issue or - even better - submit your binding as a merge request!
Because Ingescape is developed in C, it can be used out of the box in C++ and Objective-C and bindings can be created for practically any programming language on any operating system. At the moment,  official bindings exist for C#, Python, QML Javascript and NodeJS Javascript. Android Java, Oracle JRE Java and web-app Javascript are also supported with some peculiarities. If you need support for another language, please create an issue or - even better - submit your binding as a merge request!


## Scope and Goals
Expand Down Expand Up @@ -225,8 +230,11 @@ To illustrate the use of mappings between inputs/outputs and the use of services

Both agents are coded to map their input to each other's output. It is illustrated this way :

In the same way, the services are designed to communicate this way:
[Ajouter diagramme de séquence avec les deux agents et les deux services]
![example mapping](./doc/images/example_mapping.png)

Services are designed to communicate this way:

![example services sequence](./doc/images/example_services_sequence.png)


### The code and compilation
Expand Down
Binary file added doc/images/example_mapping.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/images/example_services_sequence.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/images/services_sequence.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit db6c72c

Please sign in to comment.