Commit b7455ac49468e1f3c58cf29b9ed6ac07ef400b27
1 parent
8e6eeb06
Exists in
master
[opensym] making more space
Showing
1 changed file
with
17 additions
and
40 deletions
Show diff stats
opensym2017/content/06-architecture.tex
@@ -25,46 +25,25 @@ specialized teams for work in the integration process. The teams learned | @@ -25,46 +25,25 @@ specialized teams for work in the integration process. The teams learned | ||
25 | how to develop for their assigned systems and contributed to the | 25 | how to develop for their assigned systems and contributed to the |
26 | original communities, so that the version we used were not significantly | 26 | original communities, so that the version we used were not significantly |
27 | different from the original. | 27 | different from the original. |
28 | - | 28 | +% |
29 | At the end of the project, the SPB portal was composed of more than ten | 29 | At the end of the project, the SPB portal was composed of more than ten |
30 | -systems, such as Colab, Noosfero, Mezuro, Gitlab, Mailman, Postfix, and | ||
31 | -Munin. The remainder of this section describes the most relevant of | ||
32 | -them, as well as how they were integrated into the platform. | ||
33 | - | ||
34 | -\subsection{Colab} | 30 | +systems, such as Colab, Noosfero, Gitlab, and Mezuro. |
35 | 31 | ||
36 | Colab\footnote{\url{https://github.com/colab}} is a systems integration | 32 | Colab\footnote{\url{https://github.com/colab}} is a systems integration |
37 | platform for web applications. One of its goals is allowing different | 33 | platform for web applications. One of its goals is allowing different |
38 | applications to be combined in such a way that an user does not notice | 34 | applications to be combined in such a way that an user does not notice |
39 | the change between applications. For that, Colab provides facilities | 35 | the change between applications. For that, Colab provides facilities |
40 | -for: | ||
41 | - | ||
42 | -\begin{itemize} | ||
43 | - \item \textit{Centralized authentication}: Users are automatically | ||
44 | -identified for each application without having to enter login | ||
45 | -credentials on each of them; | ||
46 | - \item \textit{Visual consistency}: Colab is able to change the HTML | ||
47 | -code produced by the integrated applications, such as defining default | ||
48 | -template or reusing common HTML pages, in order to provide a unified | ||
49 | -interface; | ||
50 | - \item \textit{Relaying of events between applications}: The | ||
51 | -integrated applications or Colab itself are able to trigger an action | ||
52 | -on another application; | ||
53 | - \item \textit{Integrated search engine}: It is possible to set up | ||
54 | -exactly which data needs to be indexed from each application and how | ||
55 | -users are directed to this information on correspondent application; | ||
56 | -\end{itemize} | ||
57 | - | 36 | +for: (i) Centralized authentication, (ii) Visual consistency, (iii) Relaying of events between applications, and (iv) Integrated search engine. |
37 | +% | ||
58 | Colab implements this integration by working as a reverse proxy for the | 38 | Colab implements this integration by working as a reverse proxy for the |
59 | integration applications, that is, all external requests pass through | 39 | integration applications, that is, all external requests pass through |
60 | Colab before reaching them. | 40 | Colab before reaching them. |
61 | - | 41 | +% |
62 | Initially, Colab had support for a small set of applications (Trac, GNU | 42 | Initially, Colab had support for a small set of applications (Trac, GNU |
63 | Mailman, and Apache Lucene) and support for them was hard-coded. Our | 43 | Mailman, and Apache Lucene) and support for them was hard-coded. Our |
64 | team evolved Colab so that it can now receive plugins that add support | 44 | team evolved Colab so that it can now receive plugins that add support |
65 | new applications without the need of changes to the Colab core. | 45 | new applications without the need of changes to the Colab core. |
66 | 46 | ||
67 | -\subsection{Noosfero} | ||
68 | 47 | ||
69 | Noosfero\footnote{\url{http://noosfero.org}} is a software for building | 48 | Noosfero\footnote{\url{http://noosfero.org}} is a software for building |
70 | social and collaboration networks. Besides the classical social | 49 | social and collaboration networks. Besides the classical social |
@@ -73,31 +52,29 @@ and a general-purpose CMS (Content Management System). Most of the user | @@ -73,31 +52,29 @@ and a general-purpose CMS (Content Management System). Most of the user | ||
73 | interactions with SPB is through Noosfero: user registration, project | 52 | interactions with SPB is through Noosfero: user registration, project |
74 | home pages and documentation, and contact forms. | 53 | home pages and documentation, and contact forms. |
75 | 54 | ||
76 | -\subsection{Gitlab} | ||
77 | 55 | ||
78 | -GitLab\footnote{\url{http://gitlab.com}} is a web-based Git repository | ||
79 | -manager with wiki pages and issue tracking features. Gitlab is a FLOSS | 56 | +Gitlab\footnote{\url{http://gitlab.com}} is a web-based Git repository |
57 | +manager with wiki pages and issue tracking features. It is a FLOSS | ||
80 | platform and focuses on delivering a holistic solution that will see | 58 | platform and focuses on delivering a holistic solution that will see |
81 | developers from idea to production seamlessly and on a single platform. | 59 | developers from idea to production seamlessly and on a single platform. |
82 | - | 60 | +% |
83 | Gitlab has several unique features, such as built-in continuous | 61 | Gitlab has several unique features, such as built-in continuous |
84 | integration and continuous deployment, flexible permissions, tracking of | 62 | integration and continuous deployment, flexible permissions, tracking of |
85 | Work-in-Progress work, moving issues between projects, group-level | 63 | Work-in-Progress work, moving issues between projects, group-level |
86 | milestones, creating new branches from issues, issues board, and time | 64 | milestones, creating new branches from issues, issues board, and time |
87 | tracking. | 65 | tracking. |
88 | 66 | ||
89 | -\subsection{Mezuro} | ||
90 | 67 | ||
91 | Mezuro\footnote{\url{http://mezuro.org/}} is a platform to | 68 | Mezuro\footnote{\url{http://mezuro.org/}} is a platform to |
92 | collect source code metrics to monitor the internal quality of software written | 69 | collect source code metrics to monitor the internal quality of software written |
93 | in C, C++, Java, Python, Ruby, and PHP. | 70 | in C, C++, Java, Python, Ruby, and PHP. |
94 | - | 71 | +% |
95 | In general, source code metrics tools also do not present a friendly way | 72 | In general, source code metrics tools also do not present a friendly way |
96 | to interpret its results and, even more, do not follow a standardization | 73 | to interpret its results and, even more, do not follow a standardization |
97 | between them. Mezuro collects and presents these results to the end | 74 | between them. Mezuro collects and presents these results to the end |
98 | user, specially, by analyzing source code metric history during its life | 75 | user, specially, by analyzing source code metric history during its life |
99 | cycle. | 76 | cycle. |
100 | - | 77 | +% |
101 | The Mezuro platform provides a single interface grouping available | 78 | The Mezuro platform provides a single interface grouping available |
102 | tools, allows selection and composition of metrics in a flexible manner, | 79 | tools, allows selection and composition of metrics in a flexible manner, |
103 | stores the metrics evolution history, presents results in a friendly | 80 | stores the metrics evolution history, presents results in a friendly |
@@ -106,13 +83,6 @@ accordingly to their own context. | @@ -106,13 +83,6 @@ accordingly to their own context. | ||
106 | 83 | ||
107 | \subsection{System unification and User eXperience evolution} | 84 | \subsection{System unification and User eXperience evolution} |
108 | 85 | ||
109 | -\begin{figure}[hbt] | ||
110 | - \centering | ||
111 | - \includegraphics[width=.8\linewidth]{figures/arch.png} | ||
112 | - \caption{SPB architecture overview.} | ||
113 | - \label{fig:architecture} | ||
114 | -\end{figure} | ||
115 | - | ||
116 | The conceptual architecture of the platform is presented in Figure | 86 | The conceptual architecture of the platform is presented in Figure |
117 | \ref{fig:architecture}. Colab initially handles all user interaction, | 87 | \ref{fig:architecture}. Colab initially handles all user interaction, |
118 | directing requests to one of the integrated applications. It | 88 | directing requests to one of the integrated applications. It |
@@ -123,6 +93,13 @@ functionality of each application, a search o n the SPB portal might | @@ -123,6 +93,13 @@ functionality of each application, a search o n the SPB portal might | ||
123 | return content from any of the applications, be it web pages, mailing | 93 | return content from any of the applications, be it web pages, mailing |
124 | list posts, or source code. | 94 | list posts, or source code. |
125 | 95 | ||
96 | +\begin{figure}[hbt] | ||
97 | + \centering | ||
98 | + \includegraphics[width=.8\linewidth]{figures/arch.png} | ||
99 | + \caption{SPB architecture overview.} | ||
100 | + \label{fig:architecture} | ||
101 | +\end{figure} | ||
102 | + | ||
126 | The integration of collaborative environments goes beyond functional aspects. | 103 | The integration of collaborative environments goes beyond functional aspects. |
127 | Offering the population an unified experience across these environments has | 104 | Offering the population an unified experience across these environments has |
128 | been the key to encourage the use of the platform as it reduces the perception | 105 | been the key to encourage the use of the platform as it reduces the perception |