Commit b14ce14dd34c177f7b05c19838e98c16f9278c24
1 parent
a571497f
Exists in
master
Reducing explanation about Colab #15
Showing
1 changed file
with
14 additions
and
35 deletions
Show diff stats
opensym2017/content/04-architecture.tex
... | ... | @@ -48,45 +48,24 @@ the change between applications. For that, Colab provides facilities |
48 | 48 | for: |
49 | 49 | |
50 | 50 | \begin{itemize} |
51 | - \item Centralized authentication | |
52 | - \item Visual consistency | |
53 | - \item Relaying of events between applications | |
54 | - \item Integrated search engine | |
51 | + \item \textit{Centralized authentication}: Users are automatically | |
52 | +identified for each application without having to enter login | |
53 | +credentials on each of them. | |
54 | + \item \textit{Visual consistency}: Colab is able to change the HTML | |
55 | +code produced by the integrated applications, such as defining default | |
56 | +template or reusing common HTML pages, in order to provide a unified | |
57 | +interface. | |
58 | + \item \textit{Relaying of events between applications}: The | |
59 | +integrated applications or Colab itself are able to trigger an action | |
60 | +on another application. | |
61 | + \item \textit{Integrated search engine}: It is possible to set up | |
62 | +exactly which data needs to be indexed from each application and how | |
63 | +users are directed to this information on correspondent application. | |
55 | 64 | \end{itemize} |
56 | 65 | |
57 | 66 | Colab implements this integration by working as a reverse proxy for the |
58 | 67 | integration applications, that is, all external requests pass through |
59 | -Colab before reaching them. | |
60 | - | |
61 | -Centralized authentication is handled by letting users authenticate to | |
62 | -Colab, which then sends a REMOTE\_USER HTTP header to applications, | |
63 | -which are expected to be pre-configured to accept that as an indication | |
64 | -of the current user (REMOTE\_USER is a standard authentication mechanism | |
65 | -for web applications). This allows users to be automatically identified | |
66 | -to each of the applications without having to enter credentials for each | |
67 | -of them. | |
68 | -% | |
69 | -Of course, this requires that the integrated applications are not | |
70 | -accessible on the public internet, otherwise malicious users could send | |
71 | -their own crafted REMOTE\_USER headers and impersonate any user. | |
72 | - | |
73 | -For the visual consistency, Colab is able to make transformations to the | |
74 | -HTML produced by the integrated applications, ir order to provide a | |
75 | -unified interface. It allows one to define default templates to be used | |
76 | -by all applications, as well as providing extra ones in a plugin. This | |
77 | -approach allowed us to reuse common HTML pages, what facilitates | |
78 | -maintenance. | |
79 | - | |
80 | -Colab also provides a publish-subscribe event system. This allows one of | |
81 | -the applications, or Colab itself, to trigger an action in another | |
82 | -application. For example, when a user registers with Colab, all | |
83 | -applications need to be notified in order to create their own internal | |
84 | -representation of that user account. | |
85 | - | |
86 | -Colab also provides an integrated search engine, which can be configured | |
87 | -to specify exactly what data needs to be indexed for each of the | |
88 | -applications, and how to direct the user to that piece of information on | |
89 | -the specific application. | |
68 | +Colab before reaching them. | |
90 | 69 | |
91 | 70 | Initially, Colab had support for a small set of applications (Trac, GNU |
92 | 71 | Mailman, and Apache Lucene) and support for them was hard-coded. Our | ... | ... |