Commit b7455ac49468e1f3c58cf29b9ed6ac07ef400b27
1 parent
8e6eeb06
Exists in
master
and in
3 other branches
[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 |