## 6 Multi-Service Dependency
### Application Level Data  
The work that will be discussed in this section utilises application-level data to identify the dependent services/components in a distributed environment. [PERSON] et al. [73] proposed a technique to identify dependencies between a set of distributed components out of system execution console logs. It first parses each log message into its keys and parameters. Next, it finds dependent log key pairs belonging to different components by exploiting the co-occurrence analysis of the keys and their corresponding parameters. Later, it uses the \begin{table}
\begin{tabular}{c c c} \hline \hline
**Method** & **Specification** & **Remarks** \\ \hline [PERSON] et al. [65] & Extracting dependencies between distributed services components using two concepts of popularity and frequency & - \\ \hline Leslie Graph [66] & Discovering different granularities of dependencies for network management, using distributed (the sending and receiving patterns) and centralised approaches & The Leslie Graph is not stable across long time-periods and may show a dependency on servers no longer in use \\ \hline Orion [67] & Identifying dependent systems through finding typical spikes in their delay distributions & It requires a large number of statistical samples to reliably extract service dependencies. It may miss dependencies that rarely occur \\ \hline [PERSON] et al. [68] & Modelling the strength and temporal ordering of influence between components by constructing constructs Structure-of-Influence Graphs and enables noise-robust modelling of diverse systems & Abstracting components as anomaly signals, calculates components’ normalised cross-correlation \\ \hline [PERSON] et al. [69] & An approach based on message indexation and aggregation to generate a size-efficient Aggregated Correlation Graph & - \\ \hline [PERSON] et al. [70] & A tool for semi-automated correlation of process events from the correlations between messages (key-based correlation, reference-based correlation or both) & For long logs that are correlated, it finds a correlation between all pairs of correlated messages, which requires a long amount of time and high space complexity of the computing graph \\ \hline [PERSON] et al. [63] & Dynamic component dependency discovery. It discovers inter-service and intra-service dependencies through activity patterns of the output and input channels and of the services in a time window & The method does not require stable dependence relationships, or large amounts of evidence data over long periods \\ \hline [PERSON] et al. [71] & Finding independent service and dependent service based on the delay distributions of the network messages the system makes a distinction between pairs and subsequently builds dependency graphs \\ \hline DISTIA [72] & Predicting impacts of one system call both within and across all processes by partially ordering the distributed method-execution & - \\ \hline \hline \end{tabular}
\end{table} 
Table 6: Different approaches of multi-service dependency from Network data. Bayesian decision theory to determine the dependency direction of each dependent log key pair. To remove false positive detection, it applies time delay consistency additionally. [PERSON] et al. [74] presented the CSight (for \"concurrency insight\") tool for inferring Communicating FSM (CFSM) models from the execution traces of the concurrent and distributed systems. A CFSM is a set of pre-process FSMs that interact over first-in-first-out (FIFO) channels. CSight uses the ShiVector2 tool to automatically compute and insert vector timestamps into logs of concurrent systems. Then, it mines invariants based on such heuristics as \"always followed by\", \"never followed by\" and \"always precedes an event instance\", and creates a concrete FSM. It abstracts the concrete FSM into an initial abstract FSM (AFSM) using a first-k-in-channels partitioning strategy and then converts an AFSM into a CFSM.