Colab - Servidor de Integração de Softwares HTTP

54
Colab Servidor de Integração de Softwares HTTP

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

Page 1: Colab - Servidor de Integração de Softwares HTTP

ColabServidor de Integração de Softwares HTTP

Page 2: Colab - Servidor de Integração de Softwares HTTP

about.me@seocam (aka Sergio)

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

#softwarelivre #geek

Page 3: Colab - Servidor de Integração de Softwares HTTP

O que?

Page 4: Colab - Servidor de Integração de Softwares HTTP

O que?

Colab

Page 5: Colab - Servidor de Integração de Softwares HTTP

Colab?

Page 6: Colab - Servidor de Integração de Softwares HTTP

Colab?

Colab!

Page 7: Colab - Servidor de Integração de Softwares HTTP

Conteúdo● Interlegis

● Evolução do Colab

● Portal do Software Público Brasileiro

● Colab 2015

Page 8: Colab - Servidor de Integração de Softwares HTTP

Programa Interlegis

Page 9: Colab - Servidor de Integração de Softwares HTTP

● Projeto criado em 1997

● Piloto nascido dentro do PRODASEN

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

Origem do Interlegis

Page 10: Colab - Servidor de Integração de Softwares HTTP

● Programa Interlegis iniciado em 1999

● Orçamento do BID

● Execução pelo Senado Federal

Origem do Interlegis

Page 11: Colab - Servidor de Integração de Softwares HTTP

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)

Page 12: Colab - Servidor de Integração de Softwares HTTP

Perspectiva Temporal

Page 13: Colab - Servidor de Integração de Softwares HTTP

Pilares● Comunicação

● Educação

● Informação

● Tecnologia

Page 14: Colab - Servidor de Integração de Softwares HTTP

Mas…

O Interlegis não "escala" sozinho

O governo não "escala" sozinho

Page 15: Colab - Servidor de Integração de Softwares HTTP

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

Page 16: Colab - Servidor de Integração de Softwares HTTP
Page 17: Colab - Servidor de Integração de Softwares HTTP

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

Page 18: Colab - Servidor de Integração de Softwares HTTP

Em 2004

Uma lista de discussão (mailman)

Page 19: Colab - Servidor de Integração de Softwares HTTP
Page 20: Colab - Servidor de Integração de Softwares HTTP

Em 2005

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

Page 21: Colab - Servidor de Integração de Softwares HTTP
Page 22: Colab - Servidor de Integração de Softwares HTTP

Em 2010

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

Integrados!

Page 23: Colab - Servidor de Integração de Softwares HTTP
Page 24: Colab - Servidor de Integração de Softwares HTTP

Integrados?Really?!

Page 25: Colab - Servidor de Integração de Softwares HTTP

Em 2012

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

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

Page 26: Colab - Servidor de Integração de Softwares HTTP
Page 28: Colab - Servidor de Integração de Softwares HTTP

Em 2012

Integrados... mas pode ser melhor!

Page 29: Colab - Servidor de Integração de Softwares HTTP

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 =)

Page 30: Colab - Servidor de Integração de Softwares HTTP
Page 31: Colab - Servidor de Integração de Softwares HTTP

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...

Page 32: Colab - Servidor de Integração de Softwares HTTP

Colab 2013Muito legal!

Mas…

Page 33: Colab - Servidor de Integração de Softwares HTTP

Colab 2013Muito legal!

Mas…

O que é o Colab?!

Page 34: Colab - Servidor de Integração de Softwares HTTP

Colab 2013Muito legal!

Mas…

O que é o Colab?!

Crise de identidade!

Page 35: Colab - Servidor de Integração de Softwares HTTP

Colab 2013Muito legal!

Mas…

O que é o Colab?!

Crise de identidade!

Page 36: Colab - Servidor de Integração de Softwares HTTP

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

Page 37: Colab - Servidor de Integração de Softwares HTTP

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

● Parceria entre UnB e MPOG

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

Page 38: Colab - Servidor de Integração de Softwares HTTP

Como Integrar?

Page 39: Colab - Servidor de Integração de Softwares HTTP

Como Integrar?

Colab!

Page 40: Colab - Servidor de Integração de Softwares HTTP

Como Integrar?

Mas o que é o Colab?

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

Page 41: Colab - Servidor de Integração de Softwares HTTP

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.

Page 42: Colab - Servidor de Integração de Softwares HTTP

Integrações

● Visual

● Dados

● Autenticação

Page 43: Colab - Servidor de Integração de Softwares HTTP

Base de ArquiteturaO Colab atua como Proxy Reverso

Page 44: Colab - Servidor de Integração de Softwares HTTP

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/

Page 45: Colab - Servidor de Integração de Softwares HTTP

django-revproxy

Page 46: Colab - Servidor de Integração de Softwares HTTP

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.

Page 47: Colab - Servidor de Integração de Softwares HTTP

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

Utiliza uma biblioteca externa na implementação: Diazo

http://diazo.org/

Page 48: Colab - Servidor de Integração de Softwares HTTP

Visual

Page 49: Colab - Servidor de Integração de Softwares HTTP

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)

Page 50: Colab - Servidor de Integração de Softwares HTTP

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 =)

Page 51: Colab - Servidor de Integração de Softwares HTTP

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!

Page 52: Colab - Servidor de Integração de Softwares HTTP

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/

Page 53: Colab - Servidor de Integração de Softwares HTTP

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

Page 54: Colab - Servidor de Integração de Softwares HTTP

Obrigado!

Contato: [email protected]

Slides no slideshare.

Github, Gitlab, Twitter: @seocam

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