Commit bea627c83c40fb003fc2d87ddb19474ad8c66bce
1 parent
a10e5956
Exists in
master
and in
3 other branches
Section on the new SPB Portal: mergin with architecture description
Showing
1 changed file
with
60 additions
and
62 deletions
Show diff stats
OSS-2017/02-platform.tex
1 | -\section{Platform for collaborative software development} | |
2 | - | |
3 | -%TODO: Paulo e Melissa | |
4 | -O conceito de software público se diferencia do de software livre em alguns | |
5 | -aspectos, destacando-se a atribuição de bem público ao software. Isso significa | |
6 | -que o Governo, especificamente o MP, assume algumas responsabilidades que | |
7 | -garantem ao usuário do software, em especial os órgãos públicos, condições | |
8 | -adequadas de uso. Embora haja diferenças entre o que é um software livre e um | |
9 | -software público brasileiro, há princípios comuns como a tendência da | |
10 | -descentralização na tomada de decisões, do compartilhamento de informações e da | |
11 | -retroalimentação. Por isso, a nova plataforma para o SPB foi pensada para | |
12 | -contemplar ferramentas que promovam a colaboração e a interação nas comunidades | |
13 | -(por gestores, usuários e desenvolvedores) dos projetos, conforme as práticas | |
14 | -usadas nas comunidades de software livre. Isso inclui listas de e-mail, fóruns | |
15 | -de discussão, issue trackers, sistemas de controle de versão e ambientes de | |
16 | -rede social. | |
17 | - | |
18 | -Para integrar as ferramentas e prover a autenticação única nos serviços da | |
19 | -plataforma, um sistema web chamado Colab, que funcionada como proxy reverso | |
20 | -para os ambientes, está sendo evoluído. Em resumo, o Colab oferece a integração | |
21 | -de busca, autenticação e apresentação, provendo um único ambiente ao usuário | |
22 | -que tem em seu perfil algumas métricas de contribuições (e-mails para listas, | |
23 | -inserções em wikis, cadastros de issue e commits nos repositórios). | |
24 | - | |
25 | -O Colab foi desenvolvido para o Interlegis (programa do Senado Federal). Por | |
26 | -padrão, funciona integrado com o servidor de listas de e-mail GNU Mailman e | |
27 | -utiliza o Apache Lucene Solr para a indexação dos conteúdos para as buscas. A | |
28 | -partir de 2014, as ferramentas GitLab e Noosfero foram integradas ao Colab para | |
29 | -compor o novo SPB. | |
30 | - | |
31 | -O GitLab é uma plataforma de desenvolvimento colaborativo social integrada ao | |
32 | -sistema de controle de versão Git. É o ambiente mais técnico: os repositórios | |
33 | -dos projetos do SPB, com páginas wiki, issue tracker e mecanismos de controle | |
34 | -de versão de código estão nele. O Noosfero é uma plataforma para rede social e | |
35 | -de economia solidária que contém funcionalidades de gerenciamento de conteúdos | |
36 | -(CMS), além de permitir a configuração das páginas de usuários e de comunidades | |
37 | -de forma flexível. É o ambiente de maior interação com o usuário do SPB, desde | |
38 | -os cadastros até o acesso às páginas dos projetos para download, leitura de | |
39 | -documentação e contato com os responsáveis. | |
40 | - | |
41 | -%TODO: Melissa | |
42 | -The integration of collaborative environments goes beyond functional aspects. | |
43 | -Offering the population an unified experience across these environments has been the key to encourage the use of the platform as it reduces the perception of the complexity. | |
44 | - | |
45 | -Thus the portal information architecture was redesigned to provide a transparent navigation and to reach users with different profiles. | |
46 | -A process of harmonisation has been employed on the interaction models of each tool in order to reduce the learning curve. | |
47 | -At the same time, a new visual style was created to unify the navegation experience and to comply with the guidelines of the digital communication identity pattern established by the Federal Government. | |
48 | - | |
49 | -With the increase of the system features and the addition of new tools, the visual style has steadily evolved in order to keep the navigation unified. | |
50 | -Moreover, tools from different backgrounds, which in many cases run functionalities with similar concepts, made us face the challenge of developing a transparent interface that unifies various context. | |
51 | -For each required feature, we often have to conciliate data with distinct structure and information pattern from each used tool. The interface was the meeting point for this data with links that users will not notice. | |
52 | -The most common features (i.e. search, display and edition of profile information and content) have been brought in line with the structure and other existing features of the portal. | |
53 | - | |
54 | -The other challenge is related to responsive web design. | |
55 | -The portal interface and each of its pages were designed following the bounds of responsiveness provided or supported by each tools. | |
56 | -In particular, in the case of Noosfero, which do not have any oficial branch dedicated to improve its responsiveness, our project needed to engage with the expansion of this platform, where we made a lot of contributions and dialogues with the community and maintainers. | |
57 | -All the project members got involved in the study, design and development of the Noosfero's new interface which support a responsive web design and that have not yet been completed. | |
58 | - | |
59 | -Users are part of the process. | |
60 | -In 2014, a survey among users of the existing platform was conducted to identify usability problems and to measure their satisfaction with the system. | |
61 | -After the release of the new SPB platform, several validations activities were implemented in 2015 and 2016, and the data colected during this phase helped to channel our efforts to identify and to improve the main fields of the new system. | |
62 | -The aim was to bring the users closer to features that they have more interest and designing a navigation which deepens in accordance with the user's depth of knowledge. | |
63 | 1 | \ No newline at end of file |
2 | +\section{Platform for software collaborative development} | |
3 | + | |
4 | +According to the Brazilian Federal Government requirements, first, we needed an | |
5 | +application that integrates existing OSS systems and provides a similar | |
6 | +interface for each one, as well as, unique authentication. For that, we have a | |
7 | +web-based integration platform called Colab that also works as a reverse proxy. | |
8 | +We have developed its plug-in architecture to decouple the already integrated | |
9 | +tools (Trac system, GNU Mailman, and Apache Lucene Solr) and integrate other | |
10 | +platforms such as Noosfero, GitLab, and Mezuro. Figure \ref{fig:spb} shows the | |
11 | +home page of this integrated platform. | |
12 | + | |
13 | +\begin{figure}[hbt] | |
14 | + \centering | |
15 | + \includegraphics[width=.9\linewidth]{figures/home-SPB.png} | |
16 | + \caption{the new SPB Portal.} | |
17 | + \label{fig:spb} | |
18 | +\end{figure} | |
19 | + | |
20 | +Noosfero is a software to build social and collaboration networks, providing a | |
21 | +platform with blogs and CMS (Content Management System). It is the environment | |
22 | +with most SPB user interaction providing features since the user registration | |
23 | +until the project pages with documentation and contacts. GitLab is a web-based | |
24 | +Git repository manager with wiki pages and issue tracking features to support | |
25 | +the SPB software collaborative development. Mezuro is a platform to collect | |
26 | +source code metric to monitor the internal quality of softwares written in C, | |
27 | +C++, Java, Python, Ruby, and PHP. | |
28 | + | |
29 | +\begin{figure}[hbt] | |
30 | + \centering | |
31 | + \includegraphics[width=.8\linewidth]{figures/arquitetura.png} | |
32 | + \caption{SPB Architecture.} | |
33 | + \label{fig:architecture} | |
34 | +\end{figure} | |
35 | + | |
36 | +The new SPB Portal was deployed in 7 virtual machines with different functions, | |
37 | +as we can see in Figure \ref{fig:architecture}. The \textit{reverseproxy} | |
38 | +handles the HTTP requests and redirects them to the \textit{integration}, the | |
39 | +\textit{email} sends and receives e-mails on behalf of the platform and the | |
40 | +\textit{monitor} keeps the entire environment tracked. These three | |
41 | +\textit{VMs} mentioned - \textit{reverseproxy}, \textit{email} and | |
42 | +\textit{monitor} - are accessible via Internet and the other ones are only | |
43 | +available in the local network created between them. | |
44 | + | |
45 | +\textit{Integration} works as a second layer of proxy beneath | |
46 | +\textit{reverseproxy}, any request to the platform will be handled by it. The | |
47 | +Colab service provides interface, authentication and search engine integration | |
48 | +among all the services. When a request is received to a specific service, Colab | |
49 | +authenticates the user in the target tool, sends the request and makes a visual | |
50 | +transformation in the HTML page, which is the content of the response. Another | |
51 | +user-oriented feature is the integrated search engine, when the user want to | |
52 | +find something in the platform Colab will perform the search in the whole | |
53 | +databases. Colab itself provides a web interface for GNU Mailman and we have | |
54 | +two others integrated tools in \textit{integration}: Gitlab and Prezento (the | |
55 | +front-end of Mezuro). | |
56 | + | |
57 | +The source code static analysis is performed by \textit{mezuro}. It runs some | |
58 | +static analysis tools on source code stored in repository and provides this | |
59 | +data to Prezento. A social networking and CMS is provided by Noosfero in | |
60 | +\textit{social}, and the databases of all tools with a cache service are in | |
61 | +\textit{database}. | ... | ... |