% Chapter Template

\chapter{Introduction} % Main chapter title

\label{Introduction} % Change X to a consecutive number; for
% referencing this chapter elsewhere, use \ref{ChapterX}

%----------------------------------------------------------------------------------------
%  SECTION 1
%----------------------------------------------------------------------------------------

\section{Methodology}

This chapter outlines the methodology employed in the present
research to evaluate and analyze the Clan framework. A visual
representation of the argumentation flow central to the Clan Thesis
is provided in Figure \ref{fig:clan_thesis_argumentation_tree}.

\begin{figure}[H]
  \centering
  \includesvg[width=1\textwidth,
  keepaspectratio]{Figures/clan_thesis_argumentation_tree.drawio.svg}
  \caption{Argumentation Tree for the Clan Thesis}
  \label{fig:clan_thesis_argumentation_tree}
\end{figure}

The structure of this thesis adopts a multi-problem-oriented approach
rather than focusing on a single isolated problem. Specifically, it
addresses a set of interrelated challenges within the context of
enhancing the reliability and manageability of \ac{P2P} 
networks. The primary objective of this research is to investigate
how the Clan framework provides effective solutions to these challenges.

To achieve this goal, the research is divided into two main components:
\begin{enumerate}
  \item \textbf{Development of a Theoretical Model} \\
A theoretical model of the Clan framework will be constructed. This
model will consist of a formal specification of the foundational
axioms of the system, including the properties and principles that
govern its design. From these base axioms, the research will derive
key theorems and explore their corresponding boundary conditions. The
theoretical analysis will aim to elucidate the underlying mechanisms
of the framework and provide a concrete foundation for its evaluation.

\item \textbf{Empirical Verification of the Theoretical Model} \\
To validate the theoretical model, a series of experiments will be
conducted on various components of the Clan framework. These
experiments will assess how the theoretical predictions align with
practical observations. This step is essential to determine the
extent to which the theoretical model holds under real-world
conditions and to identify its limitations, if any.
\end{enumerate}

TODO

\section{Related Work}

The Clan framework operates within the realm of software deployment
and peer-to-peer networking,
necessitating a deep understanding of existing methodologies in these
areas to tackle contemporary challenges.
This section will discuss related works encompassing system
deployment, peer data management,
and low maintenance structured peer-to-peer overlays, which inform
the development and positioning of the Clan framework.

\subsection{Nix: A Safe and Policy-Free System for Software Deployment}

Nix addresses significant issues in software deployment by utilizing
a technique that employs cryptographic
hashes to ensure unique paths for component instances \cite{dolstra_nix_2004}.
The system is distinguished by its features, such as concurrent
installation of multiple versions and variants,
atomic upgrades, and safe garbage collection.
These capabilities lead to a flexible deployment system that
harmonizes source and binary deployments.
Nix conceptualizes deployment without imposing rigid policies,
thereby offering adaptable strategies for component management.
This contrasts with many prevailing systems that are constrained by
policy-specific designs,
making Nix an easily extensible, safe and versatile deployment solution
for configuration files and software.

\subsection{NixOS: A Purely Functional Linux Distribution}

NixOS is an extension of the principles established by Nix,
presenting a Linux distribution that manages system configurations
using purely functional methods . This model ensures that system
configurations are reproducible and isolated
from stateful interactions typical in imperative models of package management.
Because NixOS configurations are built by pure functions, they can overcome the
challenges of easily rolling back changes, deploying multiple package versions
side-by-side, and achieving deterministic configuration reproduction .
The solution is particularly compelling in environments necessitating rigorous
reproducibility and minimal configuration drift—a valuable feature
for distributed networks .

\subsection{Disnix: A Toolset for Distributed Deployment}

The Disnix toolset extends the deployment capabilities of Nix into
distributed systems,
focusing on automating the deployment process across different network nodes .
By leveraging the modular approach of Nix, Disnix enables the
consistent deployment of
software environments, reducing the incidence of configuration errors
across heterogeneous systems.
This approach aligns with the needs of distributed systems like those
utilized in peer-to-peer networks,
where maintaining consistency across nodes is crucial for operational
integrity .

\subsection{The Piazza Peer Data Management Project}

The peer data management landscape is further enriched by the Piazza
project, which offers a
flexible integration framework for heterogeneous data sources[5].
Piazza's approach to routing and
indexing extends beyond traditional network boundaries, showcasing a
scalable method for handling
vast data spaces in peer-to-peer systems. By addressing challenges
related to schema mediation and
decentralized data queries, Piazza provides a foundational structure
from which Clan can envisage
robust peer data management underpinned by strong consistency and reach.

\subsection{Software-Defined Networking and Low Maintenance Overlays}

The transition towards software-defined networking (SDN) is
represented by systems that decouple
the control plane from the data plane, enabling flexible network
configurations[6]. In particular,
SDN introduces novel paradigms in managing network resources
dynamically, facilitating more adaptive
and responsive network overlays. The Clan framework can draw on SDN
principles to facilitate
low-maintenance structured overlays, ensuring robust connectivity and
efficient resource allocation
in peer-to-peer environments. These systems reduce the overhead
associated with managing network state,
thus aligning with the inherent value propositions of decentralized networks.

\subsection{Charon: Declarative Provisioning and Deployment}

Charon adds another dimension to deployment via its declarative
provisioning capabilities[7].
By emphasizing a policy-driven approach, Charon aligns closely with
the principles of
infrastructure-as-code, where deployment processes are consistently
repeatable and auditable.
Such characteristics are beneficial for frameworks like Clan,
ensuring transparency and accuracy
in deployment processes across peer-to-peer nodes[8].

In summation, the evolution of deployment systems and peer data
management frameworks underscores
the steps necessary for developing robust decentralized systems like
the Clan framework.
By integrating features from Nix, NixOS, Disnix, and leveraging
insights from SDN and Charon,
the Clan framework can offer a high degree of reliability,
flexibility, and efficiency across
distributed networks. This related work provides a foundational
understanding that supports the
enhancement of the Clan framework towards achieving these objectives.

