-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path10_introduction.tex
executable file
·23 lines (11 loc) · 5.04 KB
/
10_introduction.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
\chapter{Introduction}
No other recent technology has changed the way people interact as much as the World Wide Web. The World Wide Web---or Web, for short---offers a wide range of functionality, from simply displaying static content to instant messaging to extensive social networks. The popularity of the Web has spread from appealing solely to first-world businesses and younger people to almost all demographic sections and geographic areas. Instead of merely ``browsing'' the Web on an individual basis, today's Web is characterised by communication and collaborative consumption and creation of different forms of digital content. Devices for Web access are no longer limited to personal computers, but include a variety of categories such as smartphones and wearable computing and even more ubiquitous forms of computing like the ``Internet of Things''\footnote{A network of ubiquitous Web-connected devices, e.g. colour-changing lightbulbs}. Frequently, completely new uses for the Web are discovered, often redefining existing beliefs and setting new trends. Amidst all these varying factors, one central factor remains constant---every Web-connected device is bound to communicate with a Web server.
\section{Motivation}
Web servers started out as simple machines delivering static files to a limited number of clients. In just two decades, requirements for Web servers have changed drastically. With the Web becoming ever more volatile and dynamic, fast and reliable server systems are a necessity. For instance, the popular social network \textit{Twitter}\footnote{\url{http://twitter.com}} handles more than 100000 requests per second on a regular basis---this includes not only static files, but also complex computations and database operations. When designing high-performance server environments, it is favourable to use solutions that utilise the available hardware as efficiently as possible.
However, many proven patterns of software development do not apply to application setups in which a high number of independent operations---like Web requests---has to be handled simultaneously. Such highly \textit{concurrent} operations often require alternative execution concepts and paradigms to be handled more efficiently, or---if the request load exceeds a certain limit---to be processed at all.
\section{Objective}
Currently, two similar alternatives to traditional programming paradigms are used by the industry to increase Web application performance and efficiency: event- and actor-driven paradigms. This thesis aims to give an overview of these technologies by pointing out their characteristic differences and comparing their approaches. Furthermore, current technologies that already implement these paradigms are listed and reviewed in terms of usability and performance in order to analyse the current state of the art. The main goal, however, is to give a clear and educated statement about how and how much event- and actor-based paradigms can increase Web server performance and efficiency and how and to which extent the according technologies can be applied from the view of a developer.
This thesis does not try to define one universal paradigm that fits all general programming needs. It rather tries to find and isolate specific use-cases for certain paradigms with a strong focus on Web server development; focus lies mainly on comprehensible and well-documented technologies that can currently be used by developers without prior experience with the subject.
\section{Structure}
This thesis is divided in two distinct parts: chapters \ref{lab:technical} and \ref{lab:sota} consist mainly of definitions and research based on existing work, while chapters \ref{sec:impl} and \ref{lab:eval} almost exclusively contain original research and evaluations.
At the beginning, chapter \ref{lab:technical} defines terms, definitions and criteria that are used without further explanation during the remainder of the thesis. Additionally, this chapter provides in-depth explanations of how essential concurrency models are structured and how they utilise system resources. Chapter \ref{lab:sota} features a selection of existing event- or actor-based technologies for use with a Web server. For both event- and actor-based paradigms, one solution is reviewed more thoroughly while another solution is portrayed as an alternative and other options are listed briefly. Chapter \ref{sec:impl} documents a live project realised by using alternative technologies and elaborates how different technologies were used in order to test and review the applicability of alternative paradigms. Chapter \ref{lab:eval} contains a performance evaluation of a traditional application and an actor-driven application in order to define and attest use-cases in which the respective technologies provide better solutions. Lastly, chapter \ref{lab:conclusion} presents conclusions about the feasibility and applicability of event- and actor-driven paradigms that were elaborated during the course of this thesis. Furthermore, it gives an outlook on the future of event- and actor-driven paradigms and technologies currently in development.