\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, entre os mais relevantes estão: \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. \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. \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. \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. 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}}.