From b7455ac49468e1f3c58cf29b9ed6ac07ef400b27 Mon Sep 17 00:00:00 2001 From: Paulo Meirelles Date: Mon, 24 Jul 2017 22:18:45 -0300 Subject: [PATCH] [opensym] making more space --- opensym2017/content/06-architecture.tex | 57 +++++++++++++++++---------------------------------------- 1 file changed, 17 insertions(+), 40 deletions(-) diff --git a/opensym2017/content/06-architecture.tex b/opensym2017/content/06-architecture.tex index 61e2af1..fe50a57 100644 --- a/opensym2017/content/06-architecture.tex +++ b/opensym2017/content/06-architecture.tex @@ -25,46 +25,25 @@ specialized teams for work in the integration process. The teams learned how to develop for their assigned systems and contributed to the original communities, so that the version we used were not significantly different from the original. - +% At the end of the project, the SPB portal was composed of more than ten -systems, such as Colab, Noosfero, Mezuro, Gitlab, Mailman, Postfix, and -Munin. The remainder of this section describes the most relevant of -them, as well as how they were integrated into the platform. - -\subsection{Colab} +systems, such as Colab, Noosfero, Gitlab, and Mezuro. Colab\footnote{\url{https://github.com/colab}} is a systems integration platform for web applications. One of its goals is allowing different applications to be combined in such a way that an user does not notice the change between applications. For that, Colab provides facilities -for: - -\begin{itemize} - \item \textit{Centralized authentication}: Users are automatically -identified for each application without having to enter login -credentials on each of them; - \item \textit{Visual consistency}: Colab is able to change the HTML -code produced by the integrated applications, such as defining default -template or reusing common HTML pages, in order to provide a unified -interface; - \item \textit{Relaying of events between applications}: The -integrated applications or Colab itself are able to trigger an action -on another application; - \item \textit{Integrated search engine}: It is possible to set up -exactly which data needs to be indexed from each application and how -users are directed to this information on correspondent application; -\end{itemize} - +for: (i) Centralized authentication, (ii) Visual consistency, (iii) Relaying of events between applications, and (iv) Integrated search engine. +% Colab implements this integration by working as a reverse proxy for the integration applications, that is, all external requests pass through Colab before reaching them. - +% Initially, Colab had support for a small set of applications (Trac, GNU Mailman, and Apache Lucene) and support for them was hard-coded. Our team evolved Colab so that it can now receive plugins that add support new applications without the need of changes to the Colab core. -\subsection{Noosfero} Noosfero\footnote{\url{http://noosfero.org}} is a software for building social and collaboration networks. Besides the classical social @@ -73,31 +52,29 @@ and a general-purpose CMS (Content Management System). Most of the user interactions with SPB is through Noosfero: user registration, project home pages and documentation, and contact forms. -\subsection{Gitlab} -GitLab\footnote{\url{http://gitlab.com}} is a web-based Git repository -manager with wiki pages and issue tracking features. Gitlab is a FLOSS +Gitlab\footnote{\url{http://gitlab.com}} is a web-based Git repository +manager with wiki pages and issue tracking features. It is a FLOSS platform and focuses on delivering a holistic solution that will see developers from idea to production seamlessly and on a single platform. - +% Gitlab has several unique features, such as built-in continuous integration and continuous deployment, flexible permissions, tracking of Work-in-Progress work, moving issues between projects, group-level milestones, creating new branches from issues, issues board, and time tracking. -\subsection{Mezuro} Mezuro\footnote{\url{http://mezuro.org/}} is a platform to collect source code metrics to monitor the internal quality of software written in C, C++, Java, Python, Ruby, and PHP. - +% In general, source code metrics tools also do not present a friendly way to interpret its results and, even more, do not follow a standardization between them. Mezuro collects and presents these results to the end user, specially, by analyzing source code metric history during its life cycle. - +% The Mezuro platform provides a single interface grouping available tools, allows selection and composition of metrics in a flexible manner, stores the metrics evolution history, presents results in a friendly @@ -106,13 +83,6 @@ accordingly to their own context. \subsection{System unification and User eXperience evolution} -\begin{figure}[hbt] - \centering - \includegraphics[width=.8\linewidth]{figures/arch.png} - \caption{SPB architecture overview.} - \label{fig:architecture} -\end{figure} - The conceptual architecture of the platform is presented in Figure \ref{fig:architecture}. Colab initially handles all user interaction, 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 return content from any of the applications, be it web pages, mailing list posts, or source code. +\begin{figure}[hbt] + \centering + \includegraphics[width=.8\linewidth]{figures/arch.png} + \caption{SPB architecture overview.} + \label{fig:architecture} +\end{figure} + The integration of collaborative environments goes beyond functional aspects. Offering the population an unified experience across these environments has been the key to encourage the use of the platform as it reduces the perception -- libgit2 0.21.2