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 | \section{Architecture} | 1 | \section{Architecture} |
2 | \label{sec:architecture} | 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 | \begin{enumerate} | 6 | \begin{enumerate} |
12 | \item \textit{Integrating existing FLOSS systems} with minimal differences | 7 | \item \textit{Integrating existing FLOSS systems} with minimal differences |
@@ -16,17 +11,14 @@ architetural requirements for the new platform were: | @@ -16,17 +11,14 @@ architetural requirements for the new platform were: | ||
16 | \end{enumerate} | 11 | \end{enumerate} |
17 | 12 | ||
18 | The adoption of existing FLOSS systems and the minimization of their local | 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 | adaptation and learning for each tool could get users confused and fatigued. | 16 | adaptation and learning for each tool could get users confused and fatigued. |
25 | % | 17 | % |
26 | For the first requirement, we have identified four main systems which would | 18 | For the first requirement, we have identified four main systems which would |
27 | have specialized teams for work in the integration process. Team members have | 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 | In the end of the project, the SPB portal has combined more than ten | 23 | In the end of the project, the SPB portal has combined more than ten |
32 | systems, such as Colab, Noosfero, Gitlab, and Mezuro. | 24 | systems, such as Colab, Noosfero, Gitlab, and Mezuro. |
@@ -38,13 +30,12 @@ change between applications. For that, Colab provides facilities for: (i) | @@ -38,13 +30,12 @@ change between applications. For that, Colab provides facilities for: (i) | ||
38 | Centralized authentication, (ii) Visual consistency, (iii) Relaying of events | 30 | Centralized authentication, (ii) Visual consistency, (iii) Relaying of events |
39 | between applications, and (iv) Integrated search engine. | 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 | before reaching them. | 34 | before reaching them. |
44 | % | 35 | % |
45 | Initially, Colab had support for a small set of applications (Trac, GNU | 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 | plugins to integrate new tools. We also added a feature that allowed Colab to | 39 | plugins to integrate new tools. We also added a feature that allowed Colab to |
49 | run asynchronous tasks, which was a major improvement for us since we were | 40 | run asynchronous tasks, which was a major improvement for us since we were |
50 | developing a complex system. We have also migrated Django(web framework used by | 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,8 +77,8 @@ Mezuro\footnote{\url{http://mezuro.org/}} is a platform to collect source code | ||
86 | metrics to monitor the internal quality of software written in C, C++, Java, | 77 | metrics to monitor the internal quality of software written in C, C++, Java, |
87 | Python, Ruby, and PHP. | 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 | them. Mezuro collects and presents these results to the end user, specially, by | 82 | them. Mezuro collects and presents these results to the end user, specially, by |
92 | analyzing source code metric history during its life cycle. | 83 | analyzing source code metric history during its life cycle. |
93 | % | 84 | % |
@@ -124,7 +115,7 @@ pages, mailing list posts, or source code. | @@ -124,7 +115,7 @@ pages, mailing list posts, or source code. | ||
124 | 115 | ||
125 | However, integration of collaborative environments goes beyond functional | 116 | However, integration of collaborative environments goes beyond functional |
126 | aspects. To reduce the citizens perception of system complexity and to | 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 | experience across its environments. Thus, the SPB Portal information | 119 | experience across its environments. Thus, the SPB Portal information |
129 | architecture was redesigned to provide a transparent navigation and to reach | 120 | architecture was redesigned to provide a transparent navigation and to reach |
130 | users with different profiles. A process of harmonization has been employed on | 121 | users with different profiles. A process of harmonization has been employed on |
@@ -136,7 +127,7 @@ established by the Federal Government. | @@ -136,7 +127,7 @@ established by the Federal Government. | ||
136 | With the increase in system features and the addition of new tools, the visual | 127 | With the increase in system features and the addition of new tools, the visual |
137 | style has steadily evolved to keep the navigation unified. Moreover, tools | 128 | style has steadily evolved to keep the navigation unified. Moreover, tools |
138 | from different backgrounds, which in many cases provide similar functionality, | 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 | and user profile editing were eliminated from the individual applications, and | 131 | and user profile editing were eliminated from the individual applications, and |
141 | implemented centrally to ensure a consistent look and feel. | 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,7 +169,7 @@ Gitlab provides web interface for Git repositories and issues tracker, and | ||
178 | Prezento is a front-end for source code static analysis. | 169 | Prezento is a front-end for source code static analysis. |
179 | 170 | ||
180 | The source code static analysis is performed by \textit{mezuro}. It runs some | 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 | to Prezento. A social network and CMS is provided by Noosfero in | 173 | to Prezento. A social network and CMS is provided by Noosfero in |
183 | \textit{social}, and the databases of all tools with a cache service are in | 174 | \textit{social}, and the databases of all tools with a cache service are in |
184 | \textit{database}. | 175 | \textit{database}. |