English / Japanese
What is Round ?
Round is a new open source framework developed for distributed system developers and researchers to build distributed applications and frameworks more easily.
The name “Round” derives from “Knights of the Round Table“, meaning that every node in a cluster has an equal role and the cluster has no mater node.
Round is a new basic framework for distributed systems, supports to develop various distributed frameworks or applications such as the following:
- Consensus Services (Chubby, ZooKeeper, etcd, …)
- Distributed Frameworks (Hadoop, Storm, Spark …)
- Distributed File Systems (GFS, HDFS, …)
- Distributed Database Systems (Dynamo, Cassandra, …)
- Distributed Resource Managements (Mesos, YARN, …)
Round is designed on the basis of the following principles.
Simplicity is the most valued principle. The core module of Round is very simple, and has only minimum functions are implemented.
Orthogonality is another important one as well as simplicity. Considering those principles, no redundancy functions are implemented to keep the core module simple.
The technical specifications of the core functions are clearly defined and released free for users. Basically, the specifications are defined to extend some de facto standard specifications.
The initial version of core functions are implemented with C++, whereas the core module can be done with other programming languages such as Java and Go based on the public specifications.
Round’s core functions are very small like Microkernel, and the all other basic functions to build distributed frameworks or applications are supplied as core modules. Developers can build distributed frameworks or applications using the core functions and modules as the following.
Round supports both message passing model and shared memory model as the parallel distributed programming model. In Round, the message passing model originates in actor model and CSP (Communicating Sequential Processes), and the shared memory model is based on Paxos protocol.
Open Standard Protocols
In Round, there are the following features to develop distributed frameworks and applications easily.
In typical cloud systems, users have to set some configuration to start distributed services. Round is designed based on Zeroconf not to set any configurations by users.
For example, a node is added into a cluster of Round automatically after the new node is started without configuration. Other nodes in the same network are received event messages when a node is added or removed.
Zeroconf is a tecnology to find services without user configuration. In Round, all new nodes are added into a cluster without special configuration and the nodes are available automatically.
Basically, Round is a decentralized distributed system framework,
every nodes in a cluster has equal roll, the cluster has no master node.
In addition, Round has a function which elects a leader node to build centric distributed frameworks and applications automatically.
Each node run as an autonomous actor based on the specified behaviors by developers. The nodes communicates messages to other nodes in the same or other clusters based on the specified behaviors autonomously.
Round is a autonomous programming model like Game of Life. The node has the behavior codes itself. The node runs based on the behavior codes and handles any events autonomously.
Each node is an autonomous and a programmable RPC node.
In Round, you can build distributed frameworks and applications to add behavior scripts and connect events into the scripts dynamically.
Please check the following site to know about Round in more detail and get the source codes 🙂