In more details the Comanche Web Server contains seven sub-components - request receiver, logger, scheduler, request analyser, request dispatcher, file request handler, error request handler. Behaviour of Comanche Web Server is the following: after the request receiver is called with an input stream, it calls the scheduler (sequential in this case) with a single Runnable parameter which execute the given Runnable. Afterwards request analyser reads the input stream, using logger the stream is logged and if the input stream starts with GET the request analyser calls request dispatcher. Request dispatcher first using file request handler tries to find the file which name is in the input stream (after "GET ") and prints it. Providing it is not successful it using error request handler prints the error message.
size of the system with the control component and n users without symmetry reduction.
| n | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
|---|---|---|---|---|---|---|---|
| size of the system with n users | 43 | 242 | 1 126 | 4 910 | 20 830 | 87 230 | 362 878 |
- information involving verification of the reachability properties on the model.
| l | 0 | 1 | 2 | 3 | 4 | 5 |
|---|---|---|---|---|---|---|
| Cutoff | 1 | 2 | 3 | 4 | 5 | 6 |
- The following table describes all reachable states in the system with any number of clients. For example
1 2 3 4 5 6 7
R * - * - * 1 *
describes that if the control component is in the state R then it is possible that an arbitrary number of users are in the local states 1, 3, 5, 7 (symbol "*"), no user is in the states 2, 4 (symbol "-"), and exactly one user is in the state 6 (symbol "1").
- The (l+1)-tuples after each line denotes all unreachable (l+1)-tuples which do not contain an unreachable i+1-tuple for some i < l. An interesting fact is that such tuples are only 1+1-tuples and 2+1-tuples
Reachable states Unreachable l+1-tuples
1 2 3 4 5 6 7
A * - * - * - * (A,2), (A,4), (A,6)
B * 1 * - * - * (B,2,2),(B,4), (B,6)
C * - * - * - * (C,2), (C,4), (C,6)
D * - * - * - * (D,2), (D,4), (D,6)
E * - * - * - * (E,2), (E,4), (E,6)
F * - * - * - * (F,2), (F,4), (F,6)
G * - * - * - * (G,2), (G,4), (G,6)
H * - * - * - * (H,2), (H,4), (H,6)
I * - * - * - * (I,2), (I,4), (I,6)
J * - * - * - * (J,2), (J,4), (J,6)
K * - * - * - * (K,2), (K,4), (K,6)
L * - * - * - * (L,2), (L,4), (L,6)
M * - * 1 * - * (M,2), (M,4,4),(M,6)
N * - * - * - * (N,2), (N,4), (N,6)
O * - * - * - * (O,2), (O,4), (O,6)
P * - * - * - * (P,2), (P,4), (P,6)
Q * - * - * - * (Q,2), (Q,4), (Q,6)
R * - * - * 1 * (R,2), (R,4), (R,6,6)
S * - * - * - * (S,2), (S,4), (S,6)
T * - * - * - * (T,2), (T,4), (T,6)
"*" - an arbitrary number of users, "-" - no user, "1" - exactly one user.