Commit b14ce14dd34c177f7b05c19838e98c16f9278c24

Authored by Melissa Wen
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
... ...