04-architecture.tex
3.47 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
\section{Visão geral do novo Portal SPB}
\label{sec:architecture}
Com base em uma extensa lista de requisitos funcionais definidos pelo MP,
selecionamos alguns sistemas livres candidatos à compor a solução proposta para
o novo SPB e avaliamos os sistemas que juntos poderiam fornecer o maior
sub-conjunto possível dos requisitos. Do ponto de vista da arquitetura, dois
requisitos eram importantes para a nova plataforma:
\begin{enumerate}
\item \textit{Integrar sistemas livres existentes}, com diferenças mínimas de suas versões originais;
\item \textit{Fornecer uma experiência de usuário unificada} entre os diferentes sistemas, bem como a autenticação centralizada.
\end{enumerate}
A adoção de sistemas livres existentes e a minimização de mudanças feitas
localmente tiveram como objetivo ser capazes de atualizar para versões mais
recentes do software original, nos beneficiando pelas melhorias e manutenção
feitas pelas comunidades de projetos existentes. Proporcionar uma experiência
de usuário consistente em cima dessas diferentes ferramentas era necessária
para fazer a transição entre os diferentes sistemas sem a percepção do ponto de
vista dos usuários, ou seja, sem confundí-lo através de interfaces gráficas
completamente distintas ao interagir com o portal.
Para o primeiro requisito, identificamos quatro sistemas principais que exigiam
equipes especializadas para o trabalho no processo de integração. As equipes
aprenderam a desenvolver para os sistemas designados e contribuíram para as
comunidades originais, de modo que a versão que usamos não era
significativamente diferente do original.
Ao final do projeto, o Portal SPB foi composto por mais de dez sistemas, como
Colab, Noosfero, Mezuro, Gitlab, Mailman, Postfix e Munin. A seguir
apresentamos os mais relevantes, bem como como eles foram integrados na
plataforma.
\begin{itemize}
\item \textbf{Colab\footnote{\url{https://github.com/colab}}:} é uma plataforma
de integração de sistemas para aplicações web. Um de seus objetivos é permitir
que diferentes aplicações sejam combinadas de tal forma que um usuário não note
a mudança entre as aplicações. Para isso, o Colab oferece autenticação
centralizada, consistência visual, retransmissão de eventos entre aplicações e
mecanismo de busca integrado.
\item \textbf{Noosfero\footnote{\url{http://noosfero.org}}:} é um software para
redes sociais e de colaboração. Além dos recursos clássicos de redes sociais,
ele também fornece recursos de publicação de conteúdo, como blogs e CMS
(\textit{Content Management System}) de propósito geral. A maioria das
interações do usuário com o novo SPB são através do Noosfero, como registro do usuário,
páginas do projeto e de documentação e formulários de contato.
\item \textbf{Gitlab\footnote{\url{http://gitlab.com}}:} é um gerenciador web
de repositórios Git com páginas wiki e recursos de \textit{issue tracker}. O
Gitlab é uma plataforma livre e se concentra em oferecer uma solução para
desenvolvimento colaborativo em torno do repositório.
\item \textbf{Mezuro\footnote{\url{http://mezuro.org/}}:} é uma plataforma para
coletar métricas de código-fonte com o objetivo de monitorar a qualidade
interna de projetos de software livre escritos em C, C ++, Java, Python, Ruby ou
PHP.
\end{itemize}
Do ponto de vista da implantação, a plataforma SPB foi distribuída em 7 máquinas
virtuais com diferentes
funções\footnote{\url{https://softwarepublico.gov.br/doc/arquitetura.html}}.