Andre's Blog

Andre's Requirement Specification Of CISystem

20160703 About This Document

This document is the requirement specification of CISystem, a continuously integrating system of network nodes providing resources required for executing jobs.

20160703 Nodes

The network of nodes shall be independent of a single master node to reduce the problem that when the master goes down the whole network stops working.

When a node goes down an other node can take over its work.

Sub-Requirements :

20160703 R2 Joblists And jobs

20160703 R3 Resources And Scheduling

"Scheduling resources is like playing Tetris", this is how a former colleague has described the concept and I think it fits perferctly.

What I want to describe with the following requirement rules is, a job of a joblist is started when there is a resource available to perform the job and there is no other joblist which was started earlier with a node requiring the resource :

20160703 R4 Controlling Joblists And Jobs

20160703 R5 Execution Of Jobs

20160703 R6 Configuration And Templates

20160703 R7 A Plugin API Shall Not Be Required

It took me some days to understand I want to have such a requirement like this one.

This requirement does not mean CISystem will be the greatest software and simply supports anything you need.

It means when you need to change the behaviour of CISystem, then you shall be able to achieve this only with executing your scripts, providing them your configuration files and adapting your scripts and configuration files on-the-fly using the replacement maps.

That would mean you don't need to learn my API, use the language I have decided for such plugins and don't have to deal with the problem, that it takes a lot of time to solve your problem with my API.

It does not mean you don't have to write code, but I think it is always better to have the option to choose which code you want to write in which language.

Select where to go ...

The Blog
My Technical Blogs
Blogs Of Friends