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. |