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}. | ... | ... |