timed global protocol HTTP(role Client, role Proxy1, role Proxy2, role Server)
{
OpenTCPConnection() from Client to Proxy1 within [0;1] using a and resetting ();
OpenTCPConnection() from Proxy1 to Proxy2 within [0;1] using a and resetting ();
OpenTCPConnection() from Proxy2 to Server within [0;1] using a and resetting ();
choice at Server
{
Fail() from Server to Proxy2 within [0;1] using a and resetting ();
Fail() from Proxy2 to Proxy1 within [0;1] using a and resetting ();
Fail() from Proxy1 to Client within [0;1] using a and resetting ();
} or {
Success() from Server to Proxy2 within [0;1] using a and resetting ();
Success() from Proxy2 to Proxy1 within [0;1] using a and resetting ();
Success() from Proxy1 to Client within [0;1] using a and resetting ();
rec Loop {
choice at Client
{
RequestGet() from Client to Proxy1 within [0;1] using a and resetting ();
RequestGet() from Proxy1 to Proxy2 within [0;1] using a and resetting ();
RequestGet() from Proxy2 to Server within [0;1] using a and resetting ();
choice at Server
{
Response200() from Server to Proxy2 within [0;1] using a and resetting ();
Response200() from Proxy2 to Proxy1 within [0;1] using a and resetting ();
Response200() from Proxy1 to Client within [0;1] using a and resetting ();
continue Loop within [0;1] using a and resetting ();
} or {
Response404() from Server to Proxy2 within [0;1] using a and resetting ();
Response404() from Proxy2 to Proxy1 within [0;1] using a and resetting ();
Response404() from Proxy1 to Client within [0;1] using a and resetting ();
continue Loop within [0;1] using a and resetting ();
} or {
Response418() from Server to Proxy2 within [0;1] using a and resetting ();
Response418() from Proxy2 to Proxy1 within [0;1] using a and resetting ();
Response418() from Proxy1 to Client within [0;1] using a and resetting ();
continue Loop within [0;1] using a and resetting ();
}
} or {
RequestPut() from Client to Proxy1 within [0;1] using a and resetting ();
RequestPut() from Proxy1 to Proxy2 within [0;1] using a and resetting ();
RequestPut() from Proxy2 to Server within [0;1] using a and resetting ();
choice at Server
{
Response200() from Server to Proxy2 within [0;1] using a and resetting ();
Response200() from Proxy2 to Proxy1 within [0;1] using a and resetting ();
Response200() from Proxy1 to Client within [0;1] using a and resetting ();
continue Loop within [0;1] using a and resetting ();
} or {
Response404() from Server to Proxy2 within [0;1] using a and resetting ();
Response404() from Proxy2 to Proxy1 within [0;1] using a and resetting ();
Response404() from Proxy1 to Client within [0;1] using a and resetting ();
continue Loop within [0;1] using a and resetting ();
} or {
Response418() from Server to Proxy2 within [0;1] using a and resetting ();
Response418() from Proxy2 to Proxy1 within [0;1] using a and resetting ();
Response418() from Proxy1 to Client within [0;1] using a and resetting ();
continue Loop within [0;1] using a and resetting ();
}
} or {
RequestPost() from Client to Proxy1 within [0;1] using a and resetting ();
RequestPost() from Proxy1 to Proxy2 within [0;1] using a and resetting ();
RequestPost() from Proxy2 to Server within [0;1] using a and resetting ();
choice at Server
{
Response200() from Server to Proxy2 within [0;1] using a and resetting ();
Response200() from Proxy2 to Proxy1 within [0;1] using a and resetting ();
Response200() from Proxy1 to Client within [0;1] using a and resetting ();
continue Loop within [0;1] using a and resetting ();
} or {
Response404() from Server to Proxy2 within [0;1] using a and resetting ();
Response404() from Proxy2 to Proxy1 within [0;1] using a and resetting ();
Response404() from Proxy1 to Client within [0;1] using a and resetting ();
continue Loop within [0;1] using a and resetting ();
} or {
Response418() from Server to Proxy2 within [0;1] using a and resetting ();
Response418() from Proxy2 to Proxy1 within [0;1] using a and resetting ();
Response418() from Proxy1 to Client within [0;1] using a and resetting ();
continue Loop within [0;1] using a and resetting ();
}
} or {
Close() from Client to Proxy1 within [0;1] using a and resetting ();
Close() from Proxy1 to Proxy2 within [0;1] using a and resetting ();
Close() from Proxy2 to Server within [0;1] using a and resetting ();
}
}
}
}