Commit d04d35a9ca7a4abe61fd2fe0175a94c2aa5f5552
Exists in
master
and in
3 other branches
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}. | ... | ... |