3e1ea9f989bf1e0bafd24da2750628e0322e3a88
[msc-thesis1617.git] / arch.tex
1 The goal of the system as a whole is to offer a framework of functions with
2 which an \gls{iTasks}-system can add, change and remove devices at runtime.
3 Moreover, the \gls{iTasks}-system can send \gls{mTask}-\glspl{Task} ---
4 compiled at runtime to bytecode by the \gls{mTask}-view --- to the device. The
5 device runs an interpreter which can execute the \gls{Task}'s bytecode. Device
6 profiles should be persistent during reboots of the \gls{iTasks}-system. The
7 methods of interacting with \gls{mTask}-\gls{Task} should be analogous to
8 interacting with \gls{iTasks}-\glspl{Task}. This means that programmers can
9 access the \glspl{SDS} made for a device in the same way as regular \glspl{SDS}
10 and they can execute \gls{mTask}-\glspl{Task} as if they where normal
11 \gls{iTasks}-\glspl{Task}.
12
13 The following terms will be used throughout the following chapter:
14 \begin{itemize}
15 \item Device, Client
16
17 These terms denotes the actual device connected to the system. This can
18 be a real device such as a microcontroller but it can also just be a
19 program on the same machine as the server functioning as a client.
20 \item Server, \gls{iTasks}-System
21
22 This is the actual executable serving the \gls{iTasks} application. The
23 system contains \glspl{Task} taking care of the communication with the
24 clients.
25 \item System
26
27 The system describes the complete ecosystem, containing both the server
28 and the clients including the communication between them.
29 \item Engine
30
31 The runtime system of the client is called the engine. This program
32 handles communicating with the server and runs the interpreter for the
33 \glspl{Task} on the client.
34 \end{itemize}
35
36 \section{Devices}
37 \input{arch.devices}
38
39 \section{iTasks}
40 \input{arch.itasks}
41
42 \section{Communication}
43 \input{arch.communication}
44
45 \section[Lifting mTasks to iTasks-Tasks]%
46 {Lifting \gls{mTask}-\glspl{Task} to \gls{iTasks}-\glspl{Task}}
47 \input{arch.lift}
48
49 \section{Example}
50 \input{arch.example}