Peer-2-Peer Network with a Distributed Sitite Space.

Warning: Article mostly obsolete, Stitie Space 1.2 will be redesigned & reimplemented as in: Stitie Machine 1.2 'Satellite' update for 29.06.2017. i won't delete this article however, perhaps use later as a source of ideas, perhaps i'll use these in some form or another still.

-=- A Spherical Double-Spiral. -=-

Can be used in forming Distributed Objects in 3D,
including Distributed Stitie Space in 3D, or Distributed Hash Table in 3D,

... it has a communication cycle & fairly efficiently uses 3D Space,
... without forcing client object to reach inside, past the outer layer.
a client object can, for example scan,
(using directional/cone multicast wireless communication for example)
for 108 closest data structure objects, with load report,
then can choose either at random or by workload an object to communicate with.

... see also, if You wish: Stitie Grid.

A POV-Ray source code available for: download.
Credits: Andrea Lohmüller + Friedrich A. Lohmüller.


One can look at Stitie Space as on a data structure that manages objects storing & communication in 3D-addressed space.

Most of ideas in this article requires a version 1.2 of Stitie Space, or later, however.

In-space objects communication.

Objects within can communicate with each other without accessing Stitie Space if they have coordinates & can find path - with or without using the 'long-range links'.

This fits well with peer-2-peer communication model.

Distributed Stitie Space.

When target object's coordinates are not available, Stitie Space can be contacted for these. Client object can request for other information & services as well, but these are more expensive than independent communication & performance.

Many requests to Stitie Space in short time-frame can cause a system overload, delays in communication or crashes. But Stitie Space can be replicated & distributed in similar way as the Distributed Hash Table.

In this case response or a service might not be immediate, because of data synchronization with other Stitie Space instances, and because of not locking resources & services for other client objects - a client object sends request to one of Stitie Spaces, then waits for response - perhaps on a concurrent thread as well. When a Distributed Stitie Space is synchronized (with other Stitie Space instances) & has available time for that, it just sends to a client object information it needs, or performs a service. Security Certificates & Privileges are considered as well.

Stitie Space Services might include:
- Communication between objects - for example when objects move often & when their coordinates change with time - when there are no proper long-range communication links,
- Handling requests to reform Space with MATEN or Prism functionalities,
- Establishing long-range communication links between client objects,
- Reserving destination Coordinates & Empty Movement Paths before a client object movement in space - for a given amount of time, at least.
- Updating coordinates registry in space after reaching destination by a client object.

See also, if You wish or need, ... : Agile Transformation of Information State.


Reasons behind 'Ola AH' Programming Language.

High-level Programming Languages allow for thinking abstractly - on a high level of abstraction - about solutions for problems to be solved by computers.

Mere library with extra semantics (meaning, use cases) for a language is often not enough, because elegant syntax (grammar, keywords) allows for simpler thinking, for acquiring paradigms (ways of perceiving & thinking), for acquiring idioms (good practices), for easier understanding of complex tricks & their use, for easier & faster coding.

With fewer lines of code there's less errors, programs are written, understood & maitained faster.

When reality changes, companies have to adapt & rewrite software quickly - preferably before competition releases their own competing products or services - high level programming languages are tools that give companies this advantage.

'Ola AH' Programming Language is fairly general-purpose language, but has found it's niches as well.


Stitie Space & Robot Swarm Concurrency.


One of use cases for 'Ola AH' Programming Language is for coordinating the robot swarms.

While not a language for the Real-Time Systems, 'Ola AH' can handle concurrency for such swarms well enough.

Communication & Leadership Hierarchy Tree.

Assuming that physical objects can fly in space, their coordinates can be transformed to a coordinating system that contains Stitie Space.

Physical objects form task groups under a leader machine, leader machines also form task groups with their own leaders ... up to the coordinating system with the Stitie Space.

Physical objects can communicate wirelessly using directional rays, to avoid the wireless communication collisions with so many objects. Messages reach their leaders, up to the coordinating system with the Stitie Space.

Coordinator - individual synchronization.

Messages from individual machines can reach coordinator machine by following the communication hierarchy tree. Messages are received by CommunicationSynchronizer object, then Stitie Space is updated.

Messages can be sent to the groups of individual machines as well, using the CommunicationSynchronizer object & the wireless communication (either a broadcast, a directional multicast or series of unicasts for example) - target machines know which parts of the code are addressed to them by their identifier.

Decision Precondition Events.

When a task group reaches it's objectives, then event can be fired by CommunicationSynchronizer object, also a SpaceAware machine can check its own coordinates in Stitie Space & fire events as well.

A precondition token is created in the ConcurrencyFlowGraph object as in the 'Token Game' & 'Decision Filters' articles.

With enough of tokens at proper places (for example, when all of the three task groups reach their targets) next decision can proceed.

Clock Deadline Events.

We can have a clock object which produces the clock events, and use these to control behavior of machines by sending messages wirelessly via the CommunicationSynchronizer object, to control the deadlines for individual physical objects.

A clock object can affect the precondition tokens existence in the ConcurrencyFlowGraphObject as well, to affect decisions made that way.

See also if You wish, or need, ... (including comments) : 'Ola AH': a Concurrent or the Real-Time Language?