aboutsummaryrefslogtreecommitdiffstats
path: root/doc/afb-daemon-vocabulary.html
blob: 5a585c23c65e27c62254bfbbbcae5d6ed02762d4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="generator" content="pandoc">
  <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
  <meta name="author" content="José Bollo">
  <title>Vocabulary for AFB-DAEMON</title>
  <style type="text/css">code{white-space: pre;}</style>
  <link rel="stylesheet" href="doc.css">
  <!--[if lt IE 9]>
    <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
  <![endif]-->
</head>
<body>
<header>
<h1 class="title">Vocabulary for AFB-DAEMON</h1>
<h2 class="author">José Bollo</h2>
<h3 class="date">24 juin 2016</h3>
</header>
<nav id="TOC">
<ul>
<li><a href="#vocabulary-for-afb-daemon">Vocabulary for AFB-DAEMON</a><ul>
<li><a href="#binding">Binding</a></li>
<li><a href="#event">Event</a></li>
<li><a href="#level-of-assurance-loa">Level of assurance (LOA)</a></li>
<li><a href="#plugin">Plugin</a></li>
<li><a href="#request">Request</a></li>
<li><a href="#replyresponse">Reply/Response</a></li>
<li><a href="#service">Service</a></li>
<li><a href="#session">Session</a></li>
<li><a href="#token">Token</a></li>
<li><a href="#uuid">UUID</a></li>
<li><a href="#x-afb-reqid">x-afb-reqid</a></li>
<li><a href="#x-afb-token">x-afb-token</a></li>
<li><a href="#x-afb-uuid">x-afb-uuid</a></li>
</ul></li>
</ul>
</nav>
<h1 id="vocabulary-for-afb-daemon">Vocabulary for AFB-DAEMON</h1>
<h2 id="binding">Binding</h2>
<p>A shared library object intended to be add a functionnality to an afb-daemon instance. It implements an API. It may provide a service.</p>
<p>Binding made for services can have specific entry point called after initialisation and before serving.</p>
<h2 id="event">Event</h2>
<p>Message with data propagated from the services to the client and not expecting any reply.</p>
<p>The current implementation allows to widely broadcast events to all clients.</p>
<h2 id="level-of-assurance-loa">Level of assurance (LOA)</h2>
<p>This level that can be from 0 to 3 represent the level of assurance that the services can expect from the session.</p>
<p>The exact definition of the meaning of this levels and of how to use it remains to be achived.</p>
<h2 id="plugin">Plugin</h2>
<p>Old name for binding, see binding.</p>
<h2 id="request">Request</h2>
<p>A request is an invocation by a client to a method of a binding using a message transfered through some protocol: HTTP, WebSocket, DBUS... served by afb-daemon</p>
<h2 id="replyresponse">Reply/Response</h2>
<p>This is a message sent to client as the result of the request.</p>
<h2 id="service">Service</h2>
<p>Service are made of binding runnning by their side on their binder. It can serve many client. Each one being attached to one session.</p>
<p>The framework establishes the connection between the services and the clients. Using DBus currently but other protocols are considered.</p>
<h2 id="session">Session</h2>
<p>A session is meant to be the unic context of an instance of client, identifying that instance across requests.</p>
<p>Each session has an identifier. Session identifier generated by afb-daemon are UUIDs.</p>
<p>Internally, afb-daemon offers a mechanism to attach data to sessions. When the session is closed or disappears, the data attached to that session are freed.</p>
<h2 id="token">Token</h2>
<p>The token is an identifier that the the client must give to be authentificated.</p>
<p>At start, afb-daemon get an initial token. This initial token must be presented incoming client to be authentificated.</p>
<p>A token is valid only for a period.</p>
<p>The token must be renewed periodically. When the token is renewed, afb-daemon sends the new token to the client.</p>
<p>Tokens generated by afb-daemon are UUIDs.</p>
<h2 id="uuid">UUID</h2>
<p>It stand for Universal Unic IDentifier.</p>
<p>Its is designed to create identifier in a way that avoid has much as possible conflicts. It means that if two differents instance create a UUID, the probability that they create the same UUID is very low, near to zero.</p>
<h2 id="x-afb-reqid">x-afb-reqid</h2>
<p>Argument name that can be used with HTTP request. When this argument is given, it is automatically added to the &quot;request&quot; object of the answer.</p>
<h2 id="x-afb-token">x-afb-token</h2>
<p>Argument name for giving the token without ambiguity. You can also use the name <strong>token</strong> but it may conflicts with other arguments.</p>
<h2 id="x-afb-uuid">x-afb-uuid</h2>
<p>Argument name for giving explicitely the session identifier without ambiguity. You can also use the name <strong>uuid</strong> but it may conflicts with other arguments.</p>
</body>
</html>