Research Article
Automatic Analysis of Complex Interactions in Microservice Systems
Algorithm 1
Encoding an asynchronous interaction behavior.
Input: a microservice system Ba = (C, c0, F, M, Δ) | Output: a CSP# process | (1) | {buffer12,…, buffern−1n} = gen_buffers(Ba·C) | (2) | set {buffer12,…, buffern−1n}’s size | (3) | gen_message_variable(Ba·M}) | (4) | for MSi ∈ (MS1, MS2, …, MSn) do | (5) | {σ1,…, σn} = trace(MSi) | (6) | for σj ∈ (σ1,…, σn) do | (7) | z = 1 | (8) | while (m = getHead(σj))! = null | (9) | if type(m) = = “!” | (10) | Pz() = buffersrc(m)_dst(m)!action(m) ⟶ Pz+1() | (11) | else | (12) | Pz() = buffersrc(m)_dst(m)[xz = = action(m)]?action(m) ⟶ Pz+1() | (13) | z = z + 1 | (14) | end if | (15) | end while | (16) | PMSi() = P1() | (17) | end for | (18) | end for | (19) | System () = PMS1()|||PMS1()|||…|||PMSn() |
|