diff --git a/opensym2017/content/06-architecture.tex b/opensym2017/content/06-architecture.tex index 82e55d9..7381552 100644 --- a/opensym2017/content/06-architecture.tex +++ b/opensym2017/content/06-architecture.tex @@ -1,12 +1,7 @@ \section{Architecture} \label{sec:architecture} -From the architecture point of view, the integration of several existing -systems that were already implemented in different programming languages and -frameworks, adding features such as a centralized authentication, unified -interface, and a search engine, as well as, other back-end features, would -require a non-trivial amount of work. In this context, the most important -architetural requirements for the new platform were: +From the architeture point of view, the integration of several features (such as centralized authentication, unified interface, search engine as well as other back-end features) of systems with different programming languages and frameworks would require a non-trivial amount of work. In this context, the most important architetural requirements for the new platform were: \begin{enumerate} \item \textit{Integrating existing FLOSS systems} with minimal differences @@ -16,17 +11,14 @@ architetural requirements for the new platform were: \end{enumerate} The adoption of existing FLOSS systems and the minimization of their local -changes had the purpose to able the platform's softwares being easily upgrade -to newer versions of their original software. With this facility, the platform -benefits from maintenance and improvements made by communities. The -development of a consistent user interface aims to provide to platform users a -smooth transition between differents systems . Without it, the necessity of +changes had the purpose to lower the effort of upgrading the software packages that compose the platform to newer version of their original software. With this facility, the platform +benefits from maintenance and improvements made by communities. The development of a consistent user interface aims to provide to platform's users a smooth transition between different systems. Without it, the necessity of adaptation and learning for each tool could get users confused and fatigued. % For the first requirement, we have identified four main systems which would have specialized teams for work in the integration process. Team members have -learned how to develop for their assigned systems and to contribute to the -original communities to align the used version with the original one. +learned how to write code to their assigned systems and how to contribute to the original communities to align the used version with the original one. + % In the end of the project, the SPB portal has combined more than ten systems, such as Colab, Noosfero, Gitlab, and Mezuro. @@ -38,13 +30,12 @@ change between applications. For that, Colab provides facilities 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 +Colab implements this integration by working as a reverse proxy for the applications, i.e., 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) made in hard-coded. Our team have helped Colab -upstream to redesign the whole architecture, enabling the development of +Mailman, and Apache Lucene) hard-coded in its core. Our team have helped Colab +upstream to redesign its whole architecture, enabling the development of plugins to integrate new tools. We also added a feature that allowed Colab to run asynchronous tasks, which was a major improvement for us since we were developing a complex system. We have also migrated Django(web framework used by @@ -86,8 +77,8 @@ 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 +In general, source code metrics tools do not present a friendly way to +interpret their 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. % @@ -124,7 +115,7 @@ pages, mailing list posts, or source code. However, integration of collaborative environments goes beyond functional aspects. To reduce the citizens perception of system complexity and to -encourage them to use the software, a platform should offer an unified +encourage them to use the software, a platform should offer a unified experience across its environments. Thus, the SPB Portal information architecture was redesigned to provide a transparent navigation and to reach users with different profiles. A process of harmonization has been employed on @@ -136,7 +127,7 @@ established by the Federal Government. With the increase in system features and the addition of new tools, the visual style has steadily evolved to keep the navigation unified. Moreover, tools from different backgrounds, which in many cases provide similar functionality, -prompted the development of an unified interface. Some features, such as search +prompted the development of a unified interface. Some features, such as search and user profile editing were eliminated from the individual applications, and implemented centrally to ensure a consistent look and feel. @@ -178,7 +169,7 @@ Gitlab provides web interface for Git repositories and issues tracker, and Prezento is a front-end for source code static analysis. The source code static analysis is performed by \textit{mezuro}. It runs some -static analysis tools on source code stored in repository and provide this data +static analysis tools on source code stored in a repository and provides this data to Prezento. A social network and CMS is provided by Noosfero in \textit{social}, and the databases of all tools with a cache service are in \textit{database}. -- libgit2 0.21.2