I am creating a distributed service system. It runs in the cloud on heterogeneous hardware. I am using C# .NET for business logic and C++ for different physics\chemical calculations. Having three logic applications and 2xN heavy calculation applications. There are external web clients, which connect to logic applications, but for now, we do not care for them. Therefore, server side connected applications:
- They interact via heavily extended proprietary ZeroMQ analog middleware - so there is a finite set of communication patterns between applications.
- There is a protocol (Protobuf based) via which applications encode messages. Different types of messages are sent on same communication channels (for example 10 types of requests with 10 types of responses for each Request-Reply channel)
I wonder if there is a mathematical model in terms of which I can describe my Peer to peer services system. Of course, I need a model that can be useful: one that after its creation I would be capable to gain some new knowledge about properties of my distributed application.
I looked at a few
- Petri networks and they can provide reachability, liveness
- Queueing theory, which generally seems to lead to Stochastic Petri Nets
After few days of research, my small brain collapsed because I need a Colored Hierarchical Stochastic Petri Net and all I would get from it would be reachability and liveness of components and connections may be also maximal/normal messages passing volumes.
To create such model timing, message type’s interaction and publishing stats would be required as well as directions of message streams. Computational logic can stay as a black box.
So I wonder - is there any other mathematical model which could provide more data on system behavior in terms of prediction/reasoning, what data it would require?