Colab - Servidor de Integração de Softwares HTTP

Post on 30-Jul-2015

63 views 6 download

Transcript of Colab - Servidor de Integração de Softwares HTTP

ColabServidor de Integração de Softwares HTTP

about.me@seocam (aka Sergio)

#pai #empreendedor #programador #pesquisador #mestrando #python

#softwarelivre #geek

O que?

O que?

Colab

Colab?

Colab?

Colab!

Conteúdo● Interlegis

● Evolução do Colab

● Portal do Software Público Brasileiro

● Colab 2015

Programa Interlegis

● Projeto criado em 1997

● Piloto nascido dentro do PRODASEN

● Baseado na Tese de Doutorado○ Prof. Armando Roberto Cerchi Nascimento

Origem do Interlegis

● Programa Interlegis iniciado em 1999

● Orçamento do BID

● Execução pelo Senado Federal

Origem do Interlegis

ObjetivosApoiar o processo de modernização do Poder Legislativo Brasileiro, em suas instâncias federal, estadual e municipal:

● Aumentar a eficiência e competência das Casas Legislativas (e-parlamento)

● Melhorar a comunicação e o fluxo de informação entre os legisladores (e-governo)

● Promover a participação cidadã nos processos legislativos (e-democracia)

Perspectiva Temporal

Pilares● Comunicação

● Educação

● Informação

● Tecnologia

Mas…

O Interlegis não "escala" sozinho

O governo não "escala" sozinho

Comunidade de Prática

"Grupo de pessoas que compartilha um assunto, uma série de problemas ou a paixão sobre um tópico, e aprofundam

seus entendimentos e conhecimento nesta área para interação em uma mesma base."

Hubert Saint-Orange e Debra Wallace –Leveraging Communities of Practice for Strategic Advantage

Colab - PropósitoUm ambiente que mantém viva uma comunidade agrega três valores:

1. Acesso ao conhecimento existente

2. Troca de conhecimento

3. Criação de novos conhecimentos

Em 2004

Uma lista de discussão (mailman)

Em 2005

Uma instância do TracMúltiplas listas de discussão

Em 2010

Quatro instâncias do TracMúltiplas listas de discussãoServidor de Chat (XMPP)

Integrados!

Integrados?Really?!

Em 2012

Criada uma camada integradora que passa a ser conhecida como Colab.

● URL única● Mesmo usuário● Busca Integrada● Linha do tempo integrada

Em 2012

Integrados... mas pode ser melhor!

Em 2013Camada de integração evoluída:

● Single Sign-On○ Controle de acessos pela interface Web

● Interface Integrada

● Busca Integrada

● Chat Integrado

● Gameficação (precária =)

Colab 2013 - Tecnologias● Trac - Ambiente de colaboração (Python)● Mailman - Listas de E-Mail (Python)● OpenFire - Servidor de Chat (Java)● Apache Solr - Motor de buscas (Java)● Colab (Python)

○ Camada Integradora ○ Histórico de e-mails○ Agregador de Blogs○ Cliente de buscas

● Converse.js - Cliente de Chat (Javascript)● Mozilla Persona - Login Federado (Javascript)● e mais...

Colab 2013Muito legal!

Mas…

Colab 2013Muito legal!

Mas…

O que é o Colab?!

Colab 2013Muito legal!

Mas…

O que é o Colab?!

Crise de identidade!

Colab 2013Muito legal!

Mas…

O que é o Colab?!

Crise de identidade!

Portal do Software Público Brasileiro (PSPB)Plataforma de colaboração para produção de

Softwares Livres* utilizados por orgãos governamentais.

● Criado em 2007● Projeto do Ministério do Planejamento Organização

e Gestão (MPOG)● Em 2015 hospeda aproximadamente 60 comunidades

de Software Público

Evolução do PSPBNovo Portal do Software Público

● Parceria entre UnB e MPOG

● Composto por ferramentas livre integradas:○ Mailman○ Noosfero○ Gitlab

Como Integrar?

Como Integrar?

Colab!

Como Integrar?

Mas o que é o Colab?

a) Histórico do Mailmanb) Agregador de blogsc) Chatd) Servidor de Integraçãoe) Todas as anteriores

Colab em 2015

Servidor de Integração.

ObjetivoProver ao usuário final uma experiência unificada com o

mínimo de alterações possíveis em cada ferramenta integrada.

Integrações

● Visual

● Dados

● Autenticação

Base de ArquiteturaO Colab atua como Proxy Reverso

django-revproxyUma aplicação Django (Python) de proxy reverso utilizada pelo colab.

Desenvolvida para o Colab mas atualmente utilizada por diversos outros projetos.

1656 downloads em abril de 2015.

http://django-revproxy.readthedocs.org/

django-revproxy

AutenticaçãoFuncionalidade de Single Sign-On implementada no django-revproxy

Funcionalidade consiste em basicamente adicionar um cabeçalho HTTP na requisição. REMOTE_USER definido na RFC 3875.

VisualUtiliza uma funcionalidade de transformação de documentos XSLT implementada no django-revproxy.

Utiliza uma biblioteca externa na implementação: Diazo

http://diazo.org/

Visual

DadosBanco de dados com modelo de dados de cada ferramenta integrada.

Importação de dados realizada periódicamente (atualmente minuto a minuto)

Quando um dado novo é importado um sinal é emitido permitindo que outras aplicações reajam á mudanças (padrão observer)

DadosAtualmente em fase de implementação.

Desafios:○ Manutenabilidade alta○ Facilidade de integrar novas ferramentas○ Reação rápida de cada ferramenta integrada○ O que fazer com protocolos não HTTP

● Tema do meu mestrado =)

Oportunidade!Todas as ferramentas integradas, integradoras e bibliotecas utilizadas são software livre.

Se tiver interesse em se envolver no desenvolvimento de qualquer um dos projetos me procurem!

Referências / Links● Jean Ferri

○ http://pt.slideshare.net/jeanferri/interlegis-comunidades○ http://pt.slideshare.net/jeanferri/interlegis-legislativo-moderno-e-

integrado

● Interlegis na wikipedia: http://pt.wikipedia.org/wiki/Interlegis

● Portal Interlegis: http://www.interlegis.leg.br

● The Internet Archive: http://web.archive.org/

Referências / Links● Colab Interlegis: http://colab.interlegis.leg.br/

● Novo Portal do Software Público Brasileiro: ○ https://beta.softwarepublico.gov.br/

● Código fonte do Colab:○ http://beta.softwarepublico.gov.br/gitlab/softwarepublico/colab○ https://github.com/colab/colab

Obrigado!

Contato: seocam@seocam.com

Slides no slideshare.

Github, Gitlab, Twitter: @seocam

Esta obra está licenciada com uma Licença Creative Commons Atribuição 4.0 Internacional.