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,45 +48,24 @@ the change between applications. For that, Colab provides facilities
48 for: 48 for:
49 49
50 \begin{itemize} 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 \end{itemize} 64 \end{itemize}
56 65
57 Colab implements this integration by working as a reverse proxy for the 66 Colab implements this integration by working as a reverse proxy for the
58 integration applications, that is, all external requests pass through 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 Initially, Colab had support for a small set of applications (Trac, GNU 70 Initially, Colab had support for a small set of applications (Trac, GNU
92 Mailman, and Apache Lucene) and support for them was hard-coded. Our 71 Mailman, and Apache Lucene) and support for them was hard-coded. Our