Commit d04d35a9ca7a4abe61fd2fe0175a94c2aa5f5552

Authored by Paulo Meireles
2 parents 87558ad1 26f498c8

Merge branch 'master' of softwarepublico.gov.br:softwarepublico/articles

Showing 1 changed file with 13 additions and 22 deletions   Show diff stats
opensym2017/content/06-architecture.tex
1 1 \section{Architecture}
2 2 \label{sec:architecture}
3 3  
4   -From the architecture point of view, the integration of several existing
5   -systems that were already implemented in different programming languages and
6   -frameworks, adding features such as a centralized authentication, unified
7   -interface, and a search engine, as well as, other back-end features, would
8   -require a non-trivial amount of work. In this context, the most important
9   -architetural requirements for the new platform were:
  4 +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:
10 5  
11 6 \begin{enumerate}
12 7 \item \textit{Integrating existing FLOSS systems} with minimal differences
... ... @@ -16,17 +11,14 @@ architetural requirements for the new platform were:
16 11 \end{enumerate}
17 12  
18 13 The adoption of existing FLOSS systems and the minimization of their local
19   -changes had the purpose to able the platform's softwares being easily upgrade
20   -to newer versions of their original software. With this facility, the platform
21   -benefits from maintenance and improvements made by communities. The
22   -development of a consistent user interface aims to provide to platform users a
23   -smooth transition between differents systems . Without it, the necessity of
  14 +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
  15 +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
24 16 adaptation and learning for each tool could get users confused and fatigued.
25 17 %
26 18 For the first requirement, we have identified four main systems which would
27 19 have specialized teams for work in the integration process. Team members have
28   -learned how to develop for their assigned systems and to contribute to the
29   -original communities to align the used version with the original one.
  20 +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.
  21 +
30 22 %
31 23 In the end of the project, the SPB portal has combined more than ten
32 24 systems, such as Colab, Noosfero, Gitlab, and Mezuro.
... ... @@ -38,13 +30,12 @@ change between applications. For that, Colab provides facilities for: (i)
38 30 Centralized authentication, (ii) Visual consistency, (iii) Relaying of events
39 31 between applications, and (iv) Integrated search engine.
40 32 %
41   -Colab implements this integration by working as a reverse proxy for the
42   -integration applications, that is, all external requests pass through Colab
  33 +Colab implements this integration by working as a reverse proxy for the applications, i.e., all external requests pass through Colab
43 34 before reaching them.
44 35 %
45 36 Initially, Colab had support for a small set of applications (Trac, GNU
46   -Mailman, and Apache Lucene) made in hard-coded. Our team have helped Colab
47   -upstream to redesign the whole architecture, enabling the development of
  37 +Mailman, and Apache Lucene) hard-coded in its core. Our team have helped Colab
  38 +upstream to redesign its whole architecture, enabling the development of
48 39 plugins to integrate new tools. We also added a feature that allowed Colab to
49 40 run asynchronous tasks, which was a major improvement for us since we were
50 41 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
86 77 metrics to monitor the internal quality of software written in C, C++, Java,
87 78 Python, Ruby, and PHP.
88 79 %
89   -In general, source code metrics tools also do not present a friendly way to
90   -interpret its results and, even more, do not follow a standardization between
  80 +In general, source code metrics tools do not present a friendly way to
  81 +interpret their results and, even more, do not follow a standardization between
91 82 them. Mezuro collects and presents these results to the end user, specially, by
92 83 analyzing source code metric history during its life cycle.
93 84 %
... ... @@ -124,7 +115,7 @@ pages, mailing list posts, or source code.
124 115  
125 116 However, integration of collaborative environments goes beyond functional
126 117 aspects. To reduce the citizens perception of system complexity and to
127   -encourage them to use the software, a platform should offer an unified
  118 +encourage them to use the software, a platform should offer a unified
128 119 experience across its environments. Thus, the SPB Portal information
129 120 architecture was redesigned to provide a transparent navigation and to reach
130 121 users with different profiles. A process of harmonization has been employed on
... ... @@ -136,7 +127,7 @@ established by the Federal Government.
136 127 With the increase in system features and the addition of new tools, the visual
137 128 style has steadily evolved to keep the navigation unified. Moreover, tools
138 129 from different backgrounds, which in many cases provide similar functionality,
139   -prompted the development of an unified interface. Some features, such as search
  130 +prompted the development of a unified interface. Some features, such as search
140 131 and user profile editing were eliminated from the individual applications, and
141 132 implemented centrally to ensure a consistent look and feel.
142 133  
... ... @@ -178,7 +169,7 @@ Gitlab provides web interface for Git repositories and issues tracker, and
178 169 Prezento is a front-end for source code static analysis.
179 170  
180 171 The source code static analysis is performed by \textit{mezuro}. It runs some
181   -static analysis tools on source code stored in repository and provide this data
  172 +static analysis tools on source code stored in a repository and provides this data
182 173 to Prezento. A social network and CMS is provided by Noosfero in
183 174 \textit{social}, and the databases of all tools with a cache service are in
184 175 \textit{database}.
... ...