Abstract
Self-* is regarded as a foundation for autonomic computing. The concepts of autonomic systems (ASs) and self-* action are considered as a basis for research on currying self-* actions. In this paper, we will specify ASs, self-* actions in ASs, product of ASs and universal properties, and then move on to consider curried self-* actions.
Access provided by Autonomous University of Puebla. Download conference paper PDF
Similar content being viewed by others
Keywords
1 Introduction
In our previous work [3], autonomic computing (AC) imitates and simulates the natural intelligence possessed by the human autonomic nervous system using generic computers. This indicates that the nature of software in AC is the simulation and embodiment of human behaviors, and the extension of human capability, reachability, persistency, memory, and information processing speed. AC was first proposed by IBM in 2001 where it is defined as
“Autonomic computing is an approach to self-managed computing systems with a minimum of human interference. The term derives from the body’s autonomic nervous system, which controls key functions without conscious awareness or involvement” [1].
AC in our recent investigations [3–8, 10, 11] is generally described as self-*. Formally, let self-* be the set of self-\(\_\!\_\)’s. Each self-\(\_\!\_\) to be an element in self-* is called a self-* action. That is,
We see that self-CHOP is composed of four self-* actions of self-configuration, self-healing, self-optimization and self-protection. Hence, self-CHOP is a subset of self-*. That is, self-CHOP = {self-configuration, self-healing, self-optimization, self-protection} \(\subset \) self-*. Every self-* action must satisfy some certain criteria, so-called self-* properties.
In its AC manifesto, IBM proposed eight actions setting forth an AS known as self-awareness, self-configuration, self-optimization, self-maintenance, self-protection (security and integrity), self-adaptation, self-resource- allocation and open-standard-based [1]. In other words, consciousness (self-awareness) and non-imperative (goal-driven) behaviors are the main features of autonomic systems (ASs).
In this paper we will specify ASs and self-* and then move on to consider curried self-* actions in ASs. All of this material is taken as an investigation of our category, the category of ASs, which we call AS.
2 Outline
In the paper, we attempt to make the presentation as self-contained as possible, although familiarity with the notion of self-* in ASs is assumed. Acquaintance with the associated notion of algebraic language [2] is useful for recognizing the results, but is almost everywhere not strictly necessary.
The rest of this paper is organized as follows: Sect. 3 presents specification of autonomic systems (ASs). In Sect. 4, self-* actions in ASs are specified. In Sect. 5, products of ASs and some universal properties are considered. Curried self-* actions are investigated in Sect. 6. Finally, a short summary is given in Sect. 7.
3 Specification of Autonomic Systems (ASs)
From our previous publications [3–8, 10, 11], we can consider an AS as a collection of states \(x \in AS\), each of which is recognizable as being in AS and such that for each pair of named states \(x, y \in AS\) we can tell if \(x = y\) or not. The symbol \(\oslash \) denotes the AS with no states.
If \(AS_1\) and \(AS_2\) are ASs, we say that \(AS_1\) is a sub-system of \(AS_2\), and write \(AS_1 \subseteq AS_2\), if every state of \(AS_1\) is a state of \(AS_2\). Checking the definition, we see that for any system AS, we have sub-systems \(\oslash \subseteq AS\) and \(AS \subseteq AS\).
We can use system-builder notation to denote sub-systems. For example the autonomic system can be written \(\{x \in AS \mid x \text{ is } \text{ a } \text{ state } \text{ of } \text{ AS }\}\).
The symbol \(\exists \) means “there exists”. So we can write the autonomic system as \(\{x \in AS \mid \exists y \text{ is } \text{ a } \text{ final } \text{ state } \text{ such } \text{ that } \text{ self-*action }(x) = y\}\)
The symbol \(\exists !\) means “there exists a unique”. So the statement “\(\exists ! x \in AS\) is an initial state” means that there is one and only one state to be a start one, that is, the state of the autonomic system before any self-* action is processed.
Finally, the symbol \(\forall \) means “for all”. So the statement “\( \forall x \in AS\) \(\exists y \in AS \) such that self-* action \((x)=y\)” means that for every state of autonomic system there is the next one.
In the paper, we use the \(\mathop {=}\limits ^{def}\) notation “\(AS_1 \mathop {=}\limits ^{def} AS_2\)” to mean something like “define \(AS_1\) to be \(AS_2\)”. That is, a \(\mathop {=}\limits ^{def}\) declaration is not denoting a fact of nature (like \(1+2=3\)), but our formal notation. It just so happens that the notation above, such as Self-CHOP \(\mathop {=}\limits ^{def}\) {self-configuration, self-healing, self-optimization, self-protection}, is a widely-held choice.
4 Specification of Self-* Actions in Autonomic Systems
From our previous investigations [3–8, 10, 11], self-* actions in autonomic systems can be specified as follows:
If AS and \(AS'\) are sets of autonomic system states, then a self-* action self-*action from AS to \(AS'\), denoted self-*action \(: AS \rightarrow AS'\), is a mapping that sends each state \(x \in AS\) to a state of \(AS'\), denoted self-*action \((x) \in AS'\). We call AS the domain of self-*action and we call \(AS'\) the codomain of self-*action.
Note that the symbol \(AS'\), read “AS-prime”, has nothing to do with calculus or derivatives. It is simply notation that we use to name a symbol that is suggested as being somehow like AS. This suggestion of consanguinity between AS and \(AS'\) is meant only as an aid for human cognition, and not as part of the mathematics. For every state \(x \in AS\), there is exactly one arrow emanating from x, but for a state \(y \in AS'\), there can be several arrows pointing to y, or there can be no arrows pointing to y.
Suppose that \(AS' \subseteq AS\) is a sub-system. Then we can consider the self-* action \(AS' \rightarrow AS\) given by sending every state of \(AS'\) to “itself” as a state of AS. For example if \(AS = \{a, b, c, d, e, f\}\) and \(AS' = \{b, d, e\}\) then \(AS' \subseteq AS\) and we turn that into the self-* action \(AS' \rightarrow AS\) given by \(b \mapsto b, d \mapsto d, e \mapsto e\). This kind of arrow, \(\mapsto \), is read aloud as “maps to”. A self-* action self-*action \(: AS \rightarrow AS'\) means a rule for assigning to each state \(x \in AS\) a state self-*action \((x) \in AS'\). We say that “x maps to self-*action(x)” and write \(x \mapsto \text{ self-*action }(x)\).
As a matter of notation, we can sometimes say something like the following: Let self-*action \(: AS' \subseteq AS\) be a sub-system. Here we are making clear that \(AS'\) is a sub-system of AS, but that self-*action is the name of the associated self-* action.
Given a self-* action self-*action \(: AS \rightarrow AS'\), the states of \(AS'\) that have at least one arrow pointing to them are said to be in the image of self-*action; that is we have \( \text {im } (\text {self-*action}) \mathop {=}\limits ^{def} \{y \in AS' \mid \exists x \in AS \text{ such } \text{ that } \text{ self-*action }(x)=y\}. \) Given self-*action \(: AS \rightarrow AS'\) and self-*action \(': AS' \rightarrow AS''\), where the codomain of self-*action is the same set of autonomic system states as the domain of self-*action \('\) (namely \(AS'\)), we say that self-*action and self-*action \('\) are composable
The composition of self-*action and self-*action \('\) is denoted by self-*action \('\) \(\circ \) self-*action \(: AS \rightarrow AS''\).
We write Hom\(_\mathbf{AS }(AS,AS')\) to denote the set of self-*actions \(AS \rightarrow AS'\). Two self-* actions self-*action, self-*action \(': AS \rightarrow AS'\) are equal if and only if for every state \(x \in AS\) we have self-*action \((x)=\) self-*action \('(x)\).
We define the identity self-*action on AS, denoted \(id_{AS} : AS \rightarrow AS\), to be the self-* action such that for all \(x \in AS\) we have \(id_{AS}(x) = x\).
A self-*action \(: AS \rightarrow AS'\) is called an isomorphism, denoted self-*action \(: AS \mathop {\rightarrow }\limits ^{\cong } AS'\), if there exists a self-* action self-*action \(': AS' \rightarrow AS\) such that self-*action \('\) \(\circ \) self-*action \( = id_{AS}\) and self-*action \(\circ \) self-*action \(' = id_{AS'}\). We also say that self-*action is invertible and we say that self-*action \('\) is the inverse of self-*action. If there exists an isomorphism \(AS \mathop {\rightarrow }\limits ^{\cong } AS'\) we say that AS and \(AS'\) are isomorphic autonomic systems and may write \(AS \cong AS'\).
Proposition 1
The following facts hold about isomorphism.
-
1.
Any autonomic system AS is isomorphic to itself; i.e. there exists an isomorphism \(AS \mathop {\rightarrow }\limits ^{\cong } AS\).
-
2.
For any autonomic systems AS and \(AS'\), if AS is isomorphic to \(AS'\) then \(AS'\) is isomorphic to AS.
-
3.
For any autonomic systems AS, \(AS'\) and \(AS''\), if AS is isomorphic to \(AS'\) and \(AS'\) is isomorphic to \(AS''\) then AS is isomorphic to \(AS''\).
Proof:
1. The identity self-* action \(id_{AS}: AS \rightarrow AS\) is invertible; its inverse is \(id_{AS}\) because \(id_{AS} \circ id_{AS} = id_{AS}\).
2. If self-*action \(: AS \rightarrow AS'\) is invertible with inverse self-*action \(': AS' \rightarrow AS\) then self-*action \('\) is an isomorphism with inverse self-*action.
3. If self-*action \(: AS \rightarrow AS'\) and \(\widehat{self-*action }: AS' \rightarrow AS''\) are each invertible with inverses self-*action \(': AS' \rightarrow AS\) and \(\widehat{self-*action }': AS'' \rightarrow AS'\) then the following calculations show that \(\widehat{self-*action }\) \(\circ \) self-*action is invertible with inverse self-*action \('\) \(\circ \) \(\widehat{self-*action }'\):
and
Q.E.D.
For any natural number \(n \in \mathbb {N}\), define a set \(\underline{n}=\{1,2,\ldots ,n\}\). So, in particular, \(\underline{0} = \oslash \). A function \(f: \underline{n} \rightarrow AS\) can be written as a sequence \(f=(f(1), f(2), \ldots , f(n))\). We say that AS has cardinality n, denoted \(\mid AS \mid =n\) if there exists an isomorphism \(AS \cong \underline{n}\). If there exists some \(n \in \mathbb {N}\) such that AS has cardinality n then we say that AS is finite. Otherwise, we say that AS is infinite and write \(\mid AS \mid \geqslant \infty \).
Proposition 2
Suppose that AS and \(AS'\) are finite. If there is an isomorphism of autonomic systems \(f : AS \rightarrow AS'\) then the two autonomic systems have the same cardinality, \(\mid AS \mid = \mid AS' \mid \).
Proof: Suppose that \(f : AS \rightarrow AS'\) is an isomorphism. If there exists natural numbers \(m, n \in \mathbb {N}\) and isomorphisms \(\alpha : \underline{m} \mathop {\rightarrow }\limits ^{\cong } AS\) and \(\beta : \underline{n} \mathop {\rightarrow }\limits ^{\cong } AS'\) then
is an isomorphism. We can prove by induction that the sets \(\underline{m}\) and \(\underline{n}\) are isomorphic if and only if \(m = n\). Q.E.D.
Consider the following diagram:
We say this is a diagram of autonomic systems if each of \(AS, AS', AS''\) is an autonomic system and each of self-*action, self-*action \('\), self-*action \(''\) is a self-* action. We say this diagram commutes if \(self-*action ' \circ self-*action = self-*action ''\). In this case we refer to it as a commutative triangle of autonomic systems. Diagram (2) is considered to be the same diagram as each of the following:
Consider the following picture:
We say this is a diagram of autonomic systems if each of \(AS, AS', AS'', AS'''\) is an autonomic system and each of self-*action, self-*action \('\), self-*action \(''\), self-*action \('''\) is a self-* action. We say this diagram commutes if \(self-*action ' \circ self-*action = self-*action ''' \circ self-*action ''\). In this case we refer to it as a commutative square of autonomic systems.
5 Products of Autonomic Systems and Universal Properties
In this section, products of ASs [7, 8] and some universal properties in ASs [9] are considered.
5.1 Products of Autonomic Systems
As considered in [7, 8], let AS and \(AS'\) be autonomic systems. The product of AS and \(AS'\), denoted \(AS \times AS'\), is defined as the autonomic system of ordered pairs (x, y) where states of \(x \in AS\) and \(y \in AS'\). Symbolically, \(AS \times AS' = \{(x,y) | x \in AS, y \in AS'\}\). There are two natural projection actions of self-* to be \(self-*action _1:AS \times AS' \rightarrow AS\) and \(self-*action _2:AS \times AS' \rightarrow AS'\)
For illustration, suppose that \(\{a,b,c\}\) are states in AS and \(\{d,e\}\) in \(AS'\), the states are happening in such autonomic systems. Thus, AS and \(AS'\), which are running concurrently, can be specified by \(AS | AS' \mathop {=}\limits ^{def} \{(a|d),(a|e),(b|d),(b|e),(c|d),(c|e)\}\). Note that the symbol “|” is used to denote concurrency of states existing at the same time. We define self-* actions as \(disable (d,e)\) and \(disable (a,b,c)\) to be able to drop out relevant states.
It is possible to take the product of more than two autonomic systems as well. For example, if \(AS_1\), \(AS_2\), and \(AS_3\) are autonomic systems then \(AS_1 | AS_2 | AS_3\) is the system of triples,
.
Proposition 3
Let AS and \(AS'\) be autonomic systems. For any autonomic system \(AS''\) and actions self-*action\(_3: AS'' \rightarrow AS\) and self-*action\(_4: AS'' \rightarrow AS'\), there exists a unique action \(AS'' \rightarrow AS \times AS'\) such that the following diagram commutes
We might write the unique action as
Proof: Suppose given \(self-*action _3\) and \(self-*action _4\) as above. To provide an action \(z: AS'' \rightarrow AS \times AS'\) is equivalent to providing a state \(z(a) \in AS \times AS'\) for each \(a \in AS''\). We need such an action for which \(self-*action _1 \circ z = self-*action _3\) and \(self-*action _2 \circ z = self-*action _4\). A state of \(AS \times AS'\) is an ordered pair (x, y), and we can use \(z(a) = (x,y)\) if and only if \(x = self-*action _1(x,y) = self-*action _3(a)\) and \(y = self-*action _2(x,y) = self-*action _4(a)\). So it is necessary and sufficient to define \(\langle self-*action _3, self-*action _4\rangle \mathop {=}\limits ^{def} (self-*action _3(a),self-*action _4(a))\) for all \(a \in AS''\). Q.E.D.
Given autonomic systems AS, \(AS'\), and \(AS''\), and actions self-*action \(_3: AS'' \rightarrow AS\) and self-*action \(_4: AS'' \rightarrow AS'\), there is a unique action \(AS'' \rightarrow AS \times AS'\) that commutes with self-*action \(_3\) and self-*action \(_4\). We call it the induced action \(AS'' \rightarrow AS \times AS'\), meaning the one that arises in light of self-*action \(_3\) and self-*action \(_4\).
For example, as mentioned above autonomic systems \(AS=\{a,b,c\}\), \(AS'=\{d,e\}\) and \(AS | AS' \mathop {=}\limits ^{def} \{(a|d),(a|e),(b|d),(b|e),(c|d),(c|e)\}\). For an autonomic system \(AS''= \oslash \), which stops running, we define self-* actions as \(enable (d,e)\) and \(enable (a,b,c)\) to be able to add further relevant states. Then there exists a unique action
such that the following diagram commutes
5.2 Universial Properties
As considered in [8], the following isomorphisms exist for any autonomic systems AS, \(AS'\), and \(AS''\)
\(AS \times \underline{0} \cong \underline{0}\)
\(AS \times \underline{1} \cong AS\)
\(AS \times AS' \cong AS' \times AS\)
\((AS \times AS') \times AS'' \cong AS \times (AS' \times AS'')\)
\(AS^{\underline{0}} \cong \underline{1}\)
\(AS^{\underline{1}} \cong AS\)
\(\underline{0}^{AS} \cong \underline{0}\)
\(\underline{1}^{AS} \cong \underline{1}\)
\((AS^{AS'})^{AS''} \cong AS^{AS' \times AS''}\)
If \(n \in \mathbb {N}\) is a natural number and \(\underline{n} = \{1,2,\ldots n\}\), then \(AS^n\) is an abbreviation for \(\prod _n AS\) and \(AS^n\) is an abbreviation for \(AS^{\underline{n}}\). Thus, we have \(AS^{\underline{n}} \cong \prod _n AS\)
In the case of \(\underline{0}^{\underline{0}}\), we get conflicting answers, because for any autonomic system AS, including \(AS = \oslash = \underline{0}\), we have claimed both that \(AS^{\underline{0}} \cong \underline{1}\) and that \(\underline{0}^{AS} \cong \underline{0}\). Based on the definitions of \(\underline{0}\), \(\underline{1}\) and \(AS^{AS'}\) given in Sect. 4, the correct answer for \(\underline{0}^{\underline{0}}\) is \(\underline{0}^{\underline{0}} \cong \underline{1}\). The universal properties, which are considered in this section, are in some sense about isomorphisms. It says that understanding isomorphisms of autonomic systems reduces to understanding natural numbers. But note that there is much more going on in the category of AS than isomorphisms; in particular there are self-* actions that are not invertible.
6 Currying Self-* Actions
Currying is the idea that when a self-* takes action on many ASs, we can let the self-* take action on one at a time or all at once. For example, consider self-* that takes action on AS and \(AS'\) and returns \(AS''\). This is a self-* action self-*action: \(AS \times AS' \rightarrow AS''\). This self-* takes action on two ASs at once, but it is convenient to curry the second AS. Currying transforms self-*action into a self-* action
This is a good way to represent the same information in another fashion. For any \(AS'\), we can represent the self-* that takes action on AS and returns \(AS''\). This is a self-* action
Note that sometimes we denote the set of self-* actions from AS to \(AS'\) by
If AS and \(AS'\) are both finite (so one or both are empty), then \(|AS'^{AS}| = |AS'|^{|AS|}\). For any AS and \(AS'\), there is an isomorphism
Let \(AS=\{a,b\}\), \(AS'=\{c,d\}\) and \(AS''=\{1,0\}\). Suppose that we have the following self-* action self-*action: \(AS \times AS' \rightarrow AS''\)
Currying transforms self-*action mentioned above into another self-* action with the same semantics
7 Conclusions
The paper considers curried self-* actions using algebraic language. Currying is the idea that when a self-* takes action on many ASs, we can let the self-* take action on one at a time or all at once. Algebraic specification is presented in a simple way by a detailed discussion of the components required and only a brief mention to the more advanced components.
References
IBM. Autonomic Computing Manifesto (2001). Accessed http://www.research.ibm.com/autonomic/
Spivak, D.I.: Category Theory for the Sciences, 1st edn. The MIT Press, Cambridge (2014)
Vinh, P.C.: Formal aspects of self-* in autonomic networked computing systems. In: Zhang, Y., Yang, L.T., Denko, M.K. (eds.) Autonomic Computing and Networking, pp. 381–410. Springer, US (2009)
Vinh, P.C.: Toward formalized autonomic networking. Mob. Netw. Appl. 19(5), 598–607 (2014). doi:10.1007/s11036-014-0521-z
Vinh, P.C.: Algebraically autonomic computing. Mob. Netw. Appl. 21(1), 3–9 (2016). doi:10.1007/s11036-015-0615-2
Vinh, P.C.: Concurrency of self-* in autonomic systems. Future Gener. Comput. Syst. 56, 140–152 (2016). doi:10.1016/j.future.2015.04.017
Vinh, P.C.: Products and Coproducts of Autonomic Systems. In: Vinh, P.C., Alagar, V. (eds.) ICCASA 2015. LNICSSITE, vol. 165, pp. 1–9. Springer, Heidelberg (2016). doi:10.1007/978-3-319-29236-6_1
Vinh, P.C.: Some universal constructions of autonomic systems. Mob. Netw. Appl. 21(1), 89–97 (2016). doi:10.1007/s11036-015-0672-6
Vinh, P.C., Truong, N.M.: Products, coproducts and universal properties of autonomic systems. EAI Endorsed Trans. Context-aware Syst. Appl. 16(7), 2 (2016)
Vinh, P.C., Tung, N.T.: Coalgebraic aspects of context-awareness. Mob. Netw. Appl. 18(3), 391–397 (2013). doi:10.1007/s11036-012-0404-0
Vinh, P.C., Vassev, E.: Nature-inspired computation and communication: a formal approach. Future Gener. Comput. Syst. 56, 121–123 (2016). doi:10.1016/j.future.2015.10.011
Acknowledgements
We would like to thank Vietnam National University, Hanoi to sponsor in the project QG.14.57 and NTTUFSTD (The NTTU foundation for Science and Technology Development) for Science and Technology Development) for the constant support of our work which culminated in the publication of this paper.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2016 ICST Institute for Computer Sciences, Social Informatics and Telecommunications Engineering
About this paper
Cite this paper
Vinh, P.C., Tung, N.T. (2016). Currying Self-* Actions in Autonomic Systems. In: Vinh, P., Barolli, L. (eds) Nature of Computation and Communication. ICTCC 2016. Lecture Notes of the Institute for Computer Sciences, Social Informatics and Telecommunications Engineering, vol 168. Springer, Cham. https://doi.org/10.1007/978-3-319-46909-6_1
Download citation
DOI: https://doi.org/10.1007/978-3-319-46909-6_1
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-46908-9
Online ISBN: 978-3-319-46909-6
eBook Packages: Computer ScienceComputer Science (R0)