1 Introduction

Over the last couple of years, autonomics has obtained a lot attention in both academia and industry. Autonomic networking is essential to keep networks better manageable. In fact, the problem is that many networks make central or global control impossible. For example, the information needed to make decisions cannot be gathered centrally (e.g., the type of mobile ad-hoc networks (MANETs)). In such networks, autonomic networking is only possible when nodes autonomously interact and coordinate with each other to maintain properly the required computations [4]. The essence of autonomic networking is to enable the nodes to govern themselves the set of services and resources delivered at any given time while interacting and coordinating with each other. Hence, for autonomic networks (ANs), one of major challenges is how to support self-governance in the face of changing user needs, environmental conditions, and computation objectives. In other words, how does an AN understand relevant contextual data, change to those data and adapt the services and resources, which it provides, in accordance with goal-driven computational mechanisms?

Dealing with this grand challenge of ANs requires a well-founded modeling and in-depth analysis on the notion of autonomic networking. With this aim, we develop a firm formal approach to autonomic networking.

Autonomics is often described as self-* [4], but autonomic networking focuses on self-knowledge in preference to build self-governance. However, self-* functionality is still supported, but the emphasis of autonomic networking is on the foundation to realize self-*, not in the different self-* technologies.

In this view, we see that rigorously approaching to autonomic networking requests fundamental research in all aspects of the self-*. As a novel development for the self-*, we consider to formalize autonomic networking taking advantage of categorical language, whose content is presented in this paper.

2 Outline

The paper is a reference material for readers who already have a basic understanding of ANs and are now ready to know the novel approach for formalizing autonomic networking using categorical language.

Formalization is presented in a straightforward fashion by discussing in detail the necessary components and briefly touching on the more advanced components. Several justifications needed in order to achieve the particular results, are presented.

We attempt to make the presentation as self-contained as possible, although familiarity with the notion of autonomics is assumed. Acquaintance with the algebra and the associated notion of categorical language is useful for recognizing the results, but is almost everywhere not strictly necessary.

The rest of this paper is organized as follows: In Section 3, we recall some basic concepts of the category theory used in the paper. Section 4 considers autonomics as self-*. Section 5 defines some terms related to autonomics. Section 6 specifies formally ANs. In Section 7, we formalize autonomic nodes including parallel composition of autonomic nodes, category of autonomic nodes together with the notion of diagram chasing, then category of autonomic domains together with categorical aspects of self-*. Finally, a short summary is given in Section 8.

3 Preliminaries

In this section, we recall some basic concepts related to categorical algebra to support our development.

3.1 Categorical terms

Category Cat can be viewed as a graph (O b j(Cat),A r c(Cat),s,t), where

  • O b j(Cat) is the set of nodes we call objects,

  • A r c(Cat) is the set of edges we call morphisms and

  • s,t:A r c(Cat)→O b j(Cat) are two maps called source and target, respectively.

We write \(f:\mathcal {A} \longrightarrow \mathcal {B}\) when f is in A r c(Cat) and \(s(f)=\mathcal {A}\) and \(t(f)=\mathcal {B}\).

Associated with each object \(\mathcal {A}\) in O b j(Cat), there is a morphism \(1_{\mathcal {A}} = \mathcal {A} \longrightarrow \mathcal {A}\), called the identity morphism on \(\mathcal {A}\), and to each pair of morphisms \(f:\mathcal {A} \longrightarrow \mathcal {B}\) and \(g:\mathcal {B} \longrightarrow \mathcal {C}\), there is an associated morphism \(f;g: \mathcal {A} \longrightarrow \mathcal {C}\), called the composition of f with g.

figure a

The following equations must hold for all objects \(\mathcal {A}\), \(\mathcal {B}\) and \(\mathcal {C}\) and morphisms \(f:\mathcal {A} \longrightarrow \mathcal {B}\), \(g:\mathcal {B} \longrightarrow \mathcal {C}\) and \(h:\mathcal {C} \longrightarrow \mathcal {D}\):

$$\begin{array}{@{}rcl@{}} \text{Associativity:}\quad\quad (f;g);h &=& f;(g;h) \end{array} $$
(1)
figure b
$$ \text{Identity:}\quad 1_{\mathcal{A}};f = f = f;1_{\mathcal{B}} $$
(2)
figure c

A morphism \(f:\mathcal {A} \longrightarrow \mathcal {B}\) in the category Cat is an isomorphism if there exists a morphism \(g: \mathcal {B} \longrightarrow \mathcal {A}\) in that category such that \(f;g = 1_{\mathcal {A}}\) and \(g;f = 1_{\mathcal {B}}\).

figure d

That is, if the following diagram commutes.

figure e

For any set A, xA iff where 1 denotes a singleton set. By the way, we can write for 2∈ for \(i \in \mathbb {N}\) and so on.

3.2 T-algebra

Functor is a special type of mapping between categories. Functor from a category to itself is called an endofunctor.

Let Cat be a category, \(\mathcal {A}\) an object in O b j(Cat), T:CatCat an endofunctor and f a morphis \(\textsf {T}(\mathcal {A})\) \(\mathcal {A}\); then T-algebra is a pair \(\langle \mathcal {A},f \rangle \).

O b j(Cat) is called a carrier of the algebra and T a signature of the algebra.

T-homomorphism between two T-algebras \(\langle \mathcal {A},f \rangle \) and \(\langle \mathcal {B},g \rangle \) is a morphism such that

$$ f;\psi = \textsf{T}(\psi);g $$
(3)

It is equivalent to saying that the following diagram commutes

(4)

4 Autonomics as self-*

In [4], autonomics 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-* facet. That is,

$$ \text{self-*} = \{\text{self-}\_\!\_\;|\; \text{self-}\_\!\_{\text{ is a self-* facet}}\} $$
(5)

Hence self-configuration, self-healing, self-optimization and self-protection are in self-*. Moreover, four self-* facets consisting of self-configuration, self-healing, self-optimization and self-protection define self-CHOP. Therefore, self-CHOP is a subset of self-*. That is, self-CHOP = {self-configuration, self-healing, self-optimization, self-protection} ⊂ self-*. Every self-* facet must satisfy some certain criteria, so-called self-* properties. In [8], T.D. Wolf and T. Holvoet classified the self-* properties in autonomic networks.

5 Some terms related to autonomics

The following terms are defined in Internet-Draft [1]

  • Autonomics: Self-*, however, allowing high-level guidance by a central entity, through intent.

  • Intent: An abstract, high level policy used to operate the network autonomically. Its scope is an autonomic domain, such as an enterprize network. It does not contain configuration or information for a specific node. It may contain information pertaining to nodes with a specific role.

  • Autonomic Domain: A collection of autonomic nodes that instantiate the same intent.

  • Autonomic Function: A function which requires no configuration, and can derive all required information either through self-knowledge, discovery or through intent.

  • Autonomic Node: A node which employs autonomic functions. It may operate on any layer of the networking stack. Examples are routers, switches, personal computers, call managers, and so on.

  • Fully Autonomic Node: A node which employs exclusively autonomic functions. It requires no configuration.

  • Autonomic Network: A network containing autonomic nodes.

  • Fully Autonomic Network: A network consisting of exclusively fully autonomic nodes.

6 Autonomic networks (ANs)

ANs we want to model are intuitionally multiple partial function applications, such as

(6)

where

  • All indexes \(i \in T\ (= \mathbb {N} \cup \{0\})\) refer to times,

  • d is a data object in the set, denoted by σ, of data. d i is the data d at the time i, which makes change of autonomic domain c i−1 to become c i .

  • x i is a real number that can be thought of as the multiplicity (or weight) with which the reorganization from c i−1 to c i occurs.

  • c is an autonomic domain in the set, denoted by C, of autonomic domains. c i is the autonomic domain c at the time i, which produces data d i+1.

Some first steps of the self-* process in (6) can also be descriptively drawn as

(7)

Diagram (7) is thought of as

  • For the first step,

       d 1∈{d 1,1,…,d 1,n }⊂σ

      and

       \(x_{0} \in \{x_{0,1}, \ldots , x_{0,n}\} \subset \mathbb {R}\)

    For the second step,

    $$\begin{array}{@{}rcl@{}} d_{2} \in \{d_{2,1,1}, \ldots, d_{2,1,k}\} \cup {\ldots} \cup \{d_{2,n,1}, \ldots, d_{2,n,m}\} \subset \sigma\\ \text{and} \\ x_{1} \in \{x_{1,1,1}, \ldots, x_{1,1,k}\} \cup {\ldots} \cup \{x_{1,n,1}, \ldots, x_{1,n,m}\} \subset \mathbb{R} \\ \end{array} $$
  • and so on

Self-* process of ANs that is pictorially drawn in diagram (6) can be separated into two complementary parts as follows:

(8)

and

(9)

On the one hand, diagram (8) emphasizes c i C in the process of producing data streams as formally established in [7]. On the other hand, diagram (9) gives rise to \(x_{i} \in \mathbb {R}\) as weight of c i in such process of producing data streams and this allows us to evaluate weight-based quantitative behaviors of the data streams as symbolically computed in [7].

The reorganization process in (8) describes the notion of self-* on ANs including the reorganization steps to change autonomic domains.

Definition 1

We define an autonomic domain at a reorganization step to be a member of the set σ iT×C, where σ iT stands for

$$ \sigma^{i\in T} = \underbrace{\sigma \times \sigma \times \ldots \times \sigma}_{i\text{ times}} $$
(10)

The self-* paradigm, which we want to approach to, is based on mapping an autonomic domain to another.

Definition 2

Self-* on ANs is defined by the following morphism

$$ self\text{-}*: (\sigma^{i\in T} \times C) \longrightarrow ((\sigma^{j\in T} \times C) \longrightarrow \mathbb{R}) $$
(11)

The reorganization morphism self-* is nondeterministic. This can be explained as follows: self-* assigns to each autonomic domain in σ iT×C a morphism \((\sigma ^{j\in T} \times C) \longrightarrow \mathbb {R}\) that can be seen as a kind of nondeterministic autonomic domain (or so-called distributed autonomic domain) and specifies for any autonomic domain σ jT×C a multiplicity (or weight) self-* (σ iT×C)(σ jT×C) in \(\mathbb {R}\).

Hence, for example, the meaning of Eq. 1 is viewed as the following morphism:

$$self\text{-}*: \sigma \times C \longrightarrow (\sigma \times C \longrightarrow \mathbb{R})$$

(i.e., self-* \(:\sigma ^{1} \times C \longrightarrow (\sigma ^{1} \times C \longrightarrow \mathbb {R})\) or denoted by self-* \(^{(\sigma \times C,\sigma \times C \longrightarrow \mathbb {R})}\))

another specific AN can be specified by

$$self\text{-}*: \sigma \times C \longrightarrow (C \longrightarrow \mathbb{R})$$

(i.e., self-* \(:\sigma ^{1} \times C \longrightarrow (\sigma ^{0} \times C \longrightarrow \mathbb {R})\) or denoted by self-* \(^{(\sigma \times C,C \longrightarrow \mathbb {R})}\))

again, we can also specify another specific AN as

$$self\text{-}*: \sigma^{n} \times C \longrightarrow (\sigma \times C \longrightarrow \mathbb{R})$$

(i.e., self-* \(:\sigma ^{n} \times C \longrightarrow (\sigma ^{1} \times C \longrightarrow \mathbb {R})\) or denoted by self-* \(^{(\sigma ^{n} \times C,\sigma \times C \longrightarrow \mathbb {R})}\))

and we can in the completely same way do for any other specific AN.

The above-mentioned maps, namely self-*, are called autonomic relations.

We obtain

Theorem 1

The sets of autonomic domains as in definition 1 specify a category.

Proof

In fact, let Cat(AN) be such a category of the sets of autonomic domains, whose structure is constructed as follows:

  • Each set σ i×C of autonomic domains defines an object. That is, Obj(Cat(AN)) ={σ i×C,∀iT}.

  • Each self-* defines a morphism. That is, Arc(Cat(AN)) ={s e l f-∗:σ i×Cσ j×C}.

It is easy to check that associativity in Eq. 1 and identity in Eq. 2 on all self-*s are satisfied.

Theorem 2

The category Cat(AN) equipped with structure \(\sigma ^{i}\times C\longrightarrow ((\sigma ^{j}\times C)\longrightarrow \mathbb {R})\) defines a category Cat(AN \(_{\mathbb {R}}\) ) of the sets of autonomic domains.

Theorem 3

Proof. This result comes immediately from theorem 1.

Theorem 3

Structure \(\sigma ^{i}\times C\longrightarrow ((\sigma ^{j}\times C)\longrightarrow \mathbb {R})\) in category Cat(AN \(_{\mathbb {R}}\) ) defines an algebra, so-called self-*–algebra(AN).

Proof

This originates from definition on T-algebra in Subsection 3.2, where functor T is defined such that T = self-* with self-* defined in Eq. 11.

With this result, we obtain a compact formal definition of ANs as in

Definition 3

Each self-*–algebra(AN) defines an AN

7 Autonomic nodes

We present this section concentrating on parallel composition of autonomic nodes, on category of autonomic nodes together with the notion of diagram chasing, then on category of autonomic domains together with categorical aspects of self-*.

7.1 Parallel composition of autonomic nodes

Distributed computing is a type of parallel computing [6]. Both forms of processing require dividing a service into nodes that can run simultaneously, but distributed nodes in ANs often must execute the service autonomically, whereas traditional parallel computing is most commonly used to describe parts of the service running simultaneously on multiple processors in the same computer.

Definition 4

A parallel composition of nodes in some AN is a binary operation (denoted as _∥_) between two nodes in the AN which groups them together as being parallel in the autonomic domains. Hence, let a and b be arbitrary nodes in the AN, then ab denotes that a is parallel to b.

It follows that the parallel composition of a series of nodes a 1,a 2,…,a n , a 1∥(a 2∥(…∥a n )…), is simply written as a 1a 2∥…∥a n or ∥1≤in a i . Sometimes, the notation of ∥0 is used to denote a special node skip that has no effect on any state of AN, and terminates immediately.

The algebraic laws [2, 9] governing the behavior of ab are exceptionally simple and regular. The following are three laws related to our development in this section.

  • Law on symmetry: This law expresses the logical symmetry between two nodes

    $$ a \parallel b = b \parallel a $$
    (12)
  • Law on associativity: This law shows that when three nodes are assembled, it does not matter in which order they are put together

    $$ (a \parallel b) \parallel c = a \parallel (b \parallel c) $$
    (13)
  • Law on identity: Composition with skip makes no difference

    $$ a \parallel skip = a $$
    (14)

7.2 Nodes of an AN

For every node a and b in an AN \(\mathcal {N}\), if a is parallel to b then we define a labeled arrow from a to b as in which its label is ab. Category of nodes of \(\mathcal {N}\) is founded upon the abstraction of the labeled arrow called morphism. Here, the labeled arrow is the morphism between a and b. We usually use two following diagrams to specify this morphism.

(15)

where source and target of the morphism ab are the nodes a and b, respectively. Such directional structures occur widely in representation of this paper.

By describing structures in terms of the existence and characteristics of morphisms _∥_, categorical structures of autonomic nodes achieve their wide applicability. The usual method of mathematical description is by reference to the internal structure of autonomic nodes. The applicability of this description is then limited to autonomic nodes supporting such structure. Categorical descriptions make no assumption about the internal structure of autonomic nodes, but they purely ensure that whatever structure of autonomic nodes is preserved by the morphisms _∥_. In this sense, categorical representations are data independent descriptions. Thus the same description may apply to whatever can be seen as autonomic nodes in a category.

A category of autonomic nodes, which is a fundamental and abstract way to describe nodes of an AN and their relationships, is composed of

  • a set of autonomic nodes (also called objects) together with

  • a set of morphisms (sometimes called arrows) _∥_ between autonomic nodes.

Morphisms _∥_ are to be composable, that is, if ab:ab and bc:bc, then there is a parallel composition abc such that the laws on associativity in Eq. 13 and on identity in Eq. 14 are satisfied.

Category of autonomic nodes is thus a directed graph with the parallel composition and identity structure. This leads to the following formal definition of the category, named ANodes, of autonomic nodes. We name this category ANodes to refer to “Autonomic Nodes”.

Category ANodes is a graph (Nodes,ParRel, s,t) consisting of

  • Nodes is the set of nodes,

  • ParRel is the set of parallel compositions (considered as edges) and

  • s,t: ParRelNodes are two maps called source (or domain) and target (or codomain), respectively.

such that the following axioms (also called coherence statements) hold:

  • (Associativity) If ab and bc then (ab)∥c=a∥(bc). For notational convenience, this can be written as

    $$ \frac{a \parallel b \quad\text{and}\quad b \parallel c}{(a \parallel b) \parallel c = a \parallel (b \parallel c)} $$
    (16)
  • (Identity) For every node a, there exists a morphism as k i p called the identity morphism for a, such that for every morphism ab, we have

    $$ a \parallel skip \parallel b = a \parallel b = a \parallel b \parallel skip $$
    (17)

We write a∥:ab when ab is in ParRel and s(ab)=a and t(ab)=b.

Property 1

The category ANodes is just an autonomic domain

Property 2

The category ANodes is a complete graph

7.3 Diagram chasing

Categorical characteristics are often expressed in terms of commutative diagrams and justifications take the form of diagram chasing. Informally, a diagram is a picture of some nodes and morphisms in the category ANodes. Formally, a diagram is a graph whose nodes are labeled with nodes of ANodes and whose edges are labeled with morphisms of ANodes in such a way that source and target nodes of an edge are labeled with source and target nodes of the labeling morphism.

Example 1

Laws on symmetry in Eq. 12, on associativity in Eq. 13 and on identity in Eq. 14 are respectively represented by the following commutative diagrams:

(18)

Example 2

The representations in Eq. 19 as below include the commutative diagrams of the Eq. 16.

(19)

and the equation (abc)∥d=a∥(bcd) is diagrammatically represented as in Eq. 20

(20)

A path in a diagram is a non-empty sequence of edges and their labeling morphisms such that the target node of each edge is the source node of the next edge in the sequence.

Example 3

The central diagram in Eq. 18 contains the path , the right diagram in Eq. 20 contains the paths

Each path determines a morphism by composing the morphisms along it. A diagram is said to commute if, for every pair of nodes x, y, every path from x to y determines the same morphism through composition.

Example 4

The following diagram commutes then this amounts to the equation in Eq. 17 to hold.

(21)

In a similar way, the following diagram

(22)

commutes then, in other words, the equation (abc)∥d=a∥(bcd) must hold.

7.4 A category of autonomic domains

The category ANodes, which consists of the set Nodes of nodes together with morphisms _ ∥ _ in the set ParRel, generates autonomic domain on AN. The autonomic domain is dynamic in nature because nodes can be dynamically added to or dropped from AN. For such every change, self-* [35] for the autonomic domain on AN occurs.

7.4.1 Self-*

Let O P={a d d,d r o p} be the set of operations making an autonomic domain on AN change, in which add and drop are defined as follows: add is a binary operation

$$ add: \textsf{ParRel} \times \textsf{Nodes} \longrightarrow \textsf{ParRel} $$
(23)

(sometimes specified as ParRel ParRel or a d d(Nodes):ParRelParRel)

obeying the following axioms: For all i 0,

$$ \textit{add}(\parallel_{i} a_{i}, b) = \left\{ \begin{array}{ll} (\parallel_{1\leqslant i \leqslant n} a_{i}) \parallel b & \quad\text{for} i \geqslant 1\\ (\parallel_{0}) \parallel b = skip \parallel b = b & \quad\text{when} i=0 \end{array}\right. $$
(24)

or, also written as

or

$$\left\{\begin{array}{ll} add(b)\ :\ \parallel_{1 \leqslant i \leqslant n} a_{i} \longrightarrow(\parallel_{1 \leqslant i \leqslant n} a_{i}) \parallel b & \quad\text{for} i \geqslant 1\\ add(b)\ :\ \parallel_{0} \longrightarrow (\parallel_{0}) \parallel b = skip \parallel b = b& \quad\text{when} i=0 \end{array}\right. $$

Example 5

$$\begin{array}{@{}rcl@{}} &&add (\parallel_{0},a ) = a\\ &&add(a,b) = a \parallel b \\ &&add(a \parallel b,c) = a \parallel b \parallel c \end{array} $$

drop is a binary operation

$$\begin{array}{@{}rcl@{}} \textit{drop}: \textsf{ParRel} \times \textsf{Nodes} \longrightarrow \textsf{ParRel} \end{array} $$
(25)

(sometimes specified as ParRel ParRel or d r o p(Nodes):ParRelParRel)

obeying the following axioms: For all i 0,

$$ drop(\parallel_{i} a_{i}, b) = \left\{\begin{array}{ll} \parallel_{1 \leqslant i \leqslant (n-1)} a_{i} & \quad\text{when there exists} \;\; a_{i} =b\\ \parallel_{1 \leqslant i \leqslant n} a_{i} & \quad\text{ for all}\;\; a_{i} \neq b \end{array}\right. $$
(26)

or, also written as

or

$$\begin{array}{@{}rcl@{}} \left\{\begin{array}{ll} drop(b)\ :\ \parallel_{1 \leqslant i \leqslant n} a_{i} \longrightarrow \parallel_{1 \leqslant i \leqslant (n-1)} a_{i} & \quad\text{when there exists}\;\; a_{i} =b\\ drop(b)\ :\ \parallel_{1 \leqslant i \leqslant n} a_{i} \longrightarrow \parallel_{1 \leqslant i \leqslant n} a_{i}& \quad\text{ for all}\;\; a_{i} \neq b \end{array}\right. \end{array} $$

It follows that d r o p(∥0,b)=∥0=s k i p.

Example 6

$$\begin{array}{@{}rcl@{}} &&drop(a , a) = \parallel_{0} \\ &&drop(a \parallel b \parallel c, b) \> = \> a \parallel c \\ &&drop(a \parallel b \parallel c, d) \> = \> a \parallel b \parallel c \end{array} $$

A process of self-* is completely defined when operations add and drop are executed on an AN as illustrated in the following diagram:

(27)

In the context of ANodes, self-*s are known as homomorphisms from a ANodes to another ANodes to preserve the autonomic domain. In other words, self-* is a map from a ParRel to another ParRel of the same type that preserves all the parallel structures.

7.4.2 Constructing a category of autonomic domains

A category whose objects are categories ANodes and whose morphisms are self-*s is called the category Cat(ANodes) of autonomic domains. The category Cat(ANodes) is constructed as follows:

  • Objects as categories ANodes: Let ObjCat be the set of categories ANodes. That is,

    $$ \textit{ObjCat} = \{\textbf{ANodes}\ |\ \textbf{ANodes}\text{ is a category of AN nodes}\} $$
    (28)
  • Morphisms as self-*s: Associated with each pair of categories ANodes and ANodes in ObjCat, self-* h:ANodesANodes to map every autonomic domain to another is a self-* from ANodes to ANodes such that for all parallel compositions ab in ParRel it holds that h(ab)=h(a)∥h(b).

For each pair of self-*s h:ANodesANodes and k:ANodes ANodes , there is an associated self-* hk:ANodesANodes , the composition of h with k (and read as “h before k”), such that for all parallel compositions ab in ParRel it holds that k(h(ab))=k(h(a)∥h(b))=k(h(a))∥k(h(b)).

Associated with each ANodes in ObjCat, self-* i d ANodes :ANodesANodes to map every autonomic domain to itself is an identity self-* from ANodes to ANodes such that for all parallel compositions ab in ParRel it holds that i d ANodes (ab)=i d ANodes (a)∥i d ANodes (b)=ab.

As a result, for every autonomic domain and the self-*s h:ANodesANodes , k:ANodes ANodes and g:ANodes ANodes ″′, the following equations must hold

$\begin{array}{l} \text{Associativity}: \,\,\,\, (h \centerdot k) \centerdot g = h \centerdot (k \centerdot g)\\ \text{Identity}: \qquad\quad \textit{id}_{\textbf{ANodes}} \centerdot h = h = h \centerdot \textit{id}_{\textbf {ANodes}^{\prime }} \end{array}$

These two equations amount to two following commutative diagrams, respectively.

(29)

and

(30)

These are all the basic ingredients we need for the category Cat(ANodes) of autonomic domains defined.

Property 3

Every self-* h : ANodesANodes and g: ANodes ′′ANodes ′′′ in Cat(ANodes), there exist unique self-*s x : ANodes ′′ANodes and y:ANodes ANodes ′′′ in Cat(ANodes) such that the following equation holds

$$\begin{array}{@{}rcl@{}} x \centerdot h \centerdot y: \textit{\textbf{ANodes}}^{\prime\prime} \longrightarrow \textit{\textbf{ANodes}}^{\prime\prime\prime} = g: \textit{\textbf{ANodes}}^{\prime\prime} \longrightarrow \textit{\textbf{ANodes}}^{\prime\prime\prime} \end{array} $$
(31)

It follows that the self-*s i d ANodes :ANodesANodes and \(id_{\textbf {ANodes}^{\prime }}: \textbf {ANodes}^{\prime } \longrightarrow \textbf {ANodes}^{\prime }\) are identity self-*s, then the equation

$$\begin{array}{@{}rcl@{}} &id_{\textbf{ANodes}} \centerdot h \centerdot id_{\textbf{ANodes}^{\prime}}: \textbf{ANodes} \longrightarrow \textbf{ANodes}^{\prime} \\ &= h: \textbf{ANodes} \longrightarrow \textbf{ANodes}^{\prime} \end{array} $$
(32)

holds.

Property 4

For all self-*s x and y in Cat(ANodes), if x▪h▪y=x▪h ▪y, then h=h

These properties of self-*s in Cat(ANodes) direct towards a categorical structure, called extensional monoidal category as presented in the next section.

7.4.3 The category of autonomic domains as an extensional monoidal category

Further to the category Cat(ANodes) of autonomic domains, we investigate the extensional monoidal structure of the category Cat(ANodes) of autonomic domains. The operation “ ▪” defines an extensional monoidal structure on the category Cat(ANodes). In fact, Cat(ANodes) equipped with the following multifunctor defines an extensional monoidal category. (Note that we name a monoidal category “extensional monoidal category” when it is equipped with a multifunctor, in general, for a distinction from a normal monoidal category just with a bifunctor)

$$ \centerdot\ :\ \textbf{Cat(ANodes)} \times \textbf{Cat(ANodes)} \times \textbf{Cat(ANodes)} \longrightarrow \textbf{Cat(ANodes)} $$
(33)

which, called composition operation, is associative up to a natural isomorphism, and an identity self-* id which is both a left and right identity for the multifunctor “ ▪”, again, up to natural isomorphism. The associated natural isomorphisms are subject to some coherence conditions which ensure that all the relevant diagrams commute. We consider the facts in detail as below.

Property 5

The composition operation “ ▪” is associative up to three natural isomorphism α,β, γ, called associative ones, with components:

$$\begin{array}{*{20}l} \alpha(h,k,g,d,e): (h\centerdot k \centerdot g)\centerdot d \centerdot e &\longleftrightarrow h\centerdot (k\centerdot g \centerdot d) \centerdot e\\ \beta(h,k,g,d,e): h\centerdot (k\centerdot g \centerdot d) \centerdot e & \longleftrightarrow h\centerdot k\centerdot (g \centerdot d \centerdot e)\\ \gamma(h,k,g,d,e): (h\centerdot k \centerdot g)\centerdot d \centerdot e & \longleftrightarrow h\centerdot k\centerdot (g \centerdot d \centerdot e) \end{array} $$

Sometimes, the natural isomorphisms α,β,γ are also represented as

$$\begin{array}{*{20}l} \alpha(h,k,g,d,e): (h\centerdot k \centerdot g)\centerdot d \centerdot e & \cong h\centerdot (k\centerdot g \centerdot d) \centerdot e\\ \beta(h,k,g,d,e): h\centerdot (k\centerdot g \centerdot d) \centerdot e & \cong h\centerdot k\centerdot (g \centerdot d \centerdot e)\\ \gamma(h,k,g,d,e): (h\centerdot k \centerdot g)\centerdot d \centerdot e & \cong h\centerdot k\centerdot (g \centerdot d \centerdot e) \end{array} $$

The coherence conditions for three natural isomorphisms α,β and γ are thought of as the following diagram (on the next page) commuting for all self-*s h,k,g,d,e,f and p in Cat(ANodes).

Property 6

Every self-* h : ANodesANodes has id ANodes and id ANodes as left and right identity self-*s, respectively. There is a natural isomorphism λ, called identity one, with components:

$$\begin{array}{@{}rcl@{}} \lambda(h) : id_{\textit{\textbf{ANodes}}} \centerdot h \centerdot id_{\textit{\textbf{ANodes}}^{\prime}} \longleftrightarrow h \quad\text{or}\\ \quad \lambda(h) : id_{\textit{\textbf{ANodes}}} \centerdot h \centerdot id_{\textit{\textbf{ANodes}}^{\prime}} \cong h \end{array} $$
(34)
figure ag

The coherence condition for the identity natural isomorphism λ is considered as the diagram (35) commuting for all self-*s h,k and g in Cat(ANodes).

The coherence condition states that two or more natural isomorphisms between two given multifunctors are equal based on the existence of which is given or follows from general characteristics. Such situations are ubiquitous in nodes parallel of ANs. Coherence conditions are formulated and studied in categorical structures of autonomic nodes parallel known as a categorical approach of the autonomic nodes parallel programming.

(35)

7.4.4 Pushout: a categorical characteristic of autonomic autonomic domains

We firstly consider an illustration that if an autonomic domain is ab then abc and a are two typical self-*s. This can be specified by a diagram (see Eq. 36) consisting of two self-*s a d d(c):ababc and d r o p(b):aba with a common domain.

(36)

Then applying d r o p(b) on abc and a d d(c) on a we reach the same structure ac as described in the diagram (37):

(37)

A pushout of a pair of self-*s a d d(c) : ababc and d r o p(b) : aba is an autonomic domain ac together with a pair of self-*s d r o p(b) : abcac and a d d(c) : aac such that the diagram (37) commutes.

Moreover, the pushout 〈ac,d r o p(b) : abcac,a d d(c) : aac〉 must be universal with respect to this diagram. That is, for any other pushout such as 〈bc,d r o p(a) : abcbc,a d d(b)▪a d d(c)▪d r o p(a) : abc〉 there exists a unique self-* d r o p(a)▪a d d(b) : acbc making the following diagram commutes:

(38)

As with all universal constructions, this pushout is unique up to a bijective self-*, i.e. isomorphism.

8 Conclusions

In this paper, based on categorical structures, we have rigorously approached to the aspects of AN and autonomic nodes parallel from which their useful properties emerge. For autonomic nodes parallel, we have started with investigating the parallel composition of autonomic nodes \(\parallel _{i \in \mathbb {N}_{0}} a_{i}\) to construct every autonomic domain as a category ANodes of autonomic nodes together with the notion of diagram chasing, then the extensional monoidal category Cat(ANodes) of such autonomic domains together with categorical aspects of self-* has been developed in detail.