# Modeling and Evaluation of Power-Aware Software Rejuvenation in Cloud Systems
## 3 Overview of SANs  
SANs are stochastic generalizations of Petri Nets (PNs), defined for modeling and analysis of distributed real-time systems [27; 28]. SANs, which are more powerful and flexible than other extensions of PNs, can be formally defined as a 7-tuple (_P_, _IA_, _T A_, _IG_, _OG_, _IR_, _OR_) [24], where:  
* \(P\) is a finite set of places. Places are similar to places in PNs and are represented by circles.
* _IA_ is a finite set of instantaneous activities that represent system activities that are completed almost instantly compared to the corresponding performance variables. Each instantaneous activity is assigned to a case probability function, which returns a value between zero and one, that allows us to express uncertainty. Instantaneous activities are represented by thin lines.
* _TA_ is a finite set of timed activities that represent system activities whose running time affects the system's functionality and evaluation results. A timed activity is exhibited with \(X\) inputs and \(Y\) outputs, where \(X+Y>0\). Each input can be a place or an input gate, and each output can be a place or an output gate. Each timed activity is assigned to an activity time distribution function and an enabling function. Timed activities are represented by thick lines.
* _IG_ is a finite set of input gates. Each input gate has a finite number of inputs. Each \(G\in IG\) with \(m\) inputs is associated with a function \(f_{G}\,:\,N^{m}\rightarrow\,N^{m}\,,\) called the function of G; and a predicate \(g_{G}\,:\,N^{m}\rightarrow\,\{true,\ false\}\,,\) called the enabling predicate of \(G\). Input gates provide more flexibility in defining activity enabling and completion rules. Input gates are represented by triangles.  
* OG is a finite set of output gates. Each output gate has a finite number of outputs. Each \(G\in OG\) with \(m\) outputs is associated with a function \(f_{G}\ :\ N^{m}\rightarrow\ N^{m}\), called the function of \(G\). Like input gates, output gates are represented by triangles.
* \(IR\subseteq P\times\{1,...,\ |\ P|\}\times IG\times(IA\cup TA)\) is the input relation. \(IR\) satisfies the following conditions: \(\bigcirc\) For any (\(P_{1}\), \(i\), \(G\), \(a\)) \(\in IR\) such that \(G\) has \(m\) inputs, \(i\leq m\), \(\bigcirc\) For any \(G\in IG\) with \(m\) inputs and \(i\in N\), \(i\leq m\), there exists \(a\in(IA\cup T\ A)\) and \(P_{1}\in P\), such that (\(P_{1}\), \(i\), \(G\), \(a\)) \(\in IR\), \(\bigcirc\) For any (\(P_{1}\), \(i\), \(G_{1}\), \(a\)), (\(P_{1}\), \(j\), \(G_{2}\), \(a\)) \(\in IR\), \(i=j\) and \(G_{1}=G_{2}\),
* \(OR\subseteq(IA\cup TA)\times OG\times\{1,\...,\ |\ P|\}\times P\) is the output relation. \(OR\) satisfies the following conditions: \(\bigcirc\) For any (\(a\), \(G\), \(i\), \(P_{1}\)) \(\in OR\), such that \(G\) has \(m\) outputs, \(i\leq m\), \(\bigcirc\) For any \(G\in OG\) with \(m\) outputs and \(i\in N\), \(i\leq m\), there exists \(a\in(IA\cup T\ A)\) and \(P_{1}\in P\), such that (\(a\), \(G\), \(i\), \(P_{1}\)) \(\in OR\), \(\bigcirc\) For any (\(a\), \(G_{1}\), \(i\), \(P_{1}\)), (\(a\), \(G_{2}\), \(j\), \(P_{1}\)) \(\in OR\), \(i=j\) and \(G_{1}=G_{2}\).  
Several tools have been developed, such as Mobius [33], UltraSAN [34], and METASAN [35], to provide support for SANs as a modeling formalism. All these software packages are intended for automatic evaluation of performance, dependability, and performability of systems. Among them, we chose Mobius as the modeling tool in this paper.