About: Semys

01 Semys consists of a library for group communication and an architecture to build a sequential consistent system.
The system is a centralized (server) based group of modules that implement the functions.
02 A centralized system is understood to be one where the intelligence is implemented at a central point.
Although the group of modules themselves build a distributed system, the clients that connect to this system depend on its intelligence.
03 A module represents a 'logical' process, which is run by one or more sequential consistent 'physical' processes (typically on different host machines).
As long as at least one process of the module is running, the function of the module and any connection to it are uninterrupted.
04 Lost members of a module may rejoin during runtime.
The state data of the module is replicated from a stable, running process to the newly starting process.
After the new process has recovered (within seconds), it is an equal stable process as all others.
05 One module, the Center Module, is the main registration point for all other modules. All communication between the modules is run via the Center Module, forming a star topology.
06 All communication is realized with messages, which are routed through the system. This messaging system is the base for building a sequential consistent system.
Messages are transported in a serialized binary format.
07 The Semys library provides an abstract transporter interface for custom extensions and contains predefined transporter for TCP and loopback connections.
Both IPv4 and IPv6 can be used with the TCP transporter.
08 The Semys library that implements the group communication protocols is written in C. Platform dependant functions have been abstracted, so the library can be built and used on linux, unix and Microsoft Windows operating systems.
Both 32bit and 64bit processor architectures are supported.
Compatibility with Big-endianness has been implemented, but not yet tested.
09 The Semys architecture that forms the basic set of classes for messages and modules is implemented in C++, C#. Compatibility and interoperability have been ensured here as well.
It is even possible for example to run a module by a C# process on a 32bit Windows machine and a C++ process on a 64bit unix machine.
10 Semys can be used for a system that needs to continue to run during and after crash scenarios (e.g. one server crashes).

Goto: Main Page; This page is part of the Semys software documentation. See About: Documentation for details.