Arquitetura da Incubadora da FAPESP
http://incubadora.fapesp.br
Nota: Nesta apresenta¸c˜ao, com o termo software queremos sempre dizer Software Livre.
1 Arquitetura de Software
1.1 Considera¸c˜oes Iniciais
Como deve ser a arquitetura da Incubadora? Nas conversas iniciais, surgiram perguntas como:
1 Arquitetura de Software
1.1 Considera¸c˜oes Iniciais
Como deve ser a arquitetura da Incubadora? Nas conversas iniciais, surgiram perguntas como:
• Quais servi¸cos devem ser implementados?
1 Arquitetura de Software
1.1 Considera¸c˜oes Iniciais
Como deve ser a arquitetura da Incubadora? Nas conversas iniciais, surgiram perguntas como:
• Quais servi¸cos devem ser implementados?
• A equipe deve desenvolver software pr´oprio, ou utilizar solu¸c˜oes j´a existentes?
1 Arquitetura de Software
1.1 Considera¸c˜oes Iniciais
Como deve ser a arquitetura da Incubadora? Nas conversas iniciais, surgiram perguntas como:
• Quais servi¸cos devem ser implementados?
• A equipe deve desenvolver software pr´oprio, ou utilizar solu¸c˜oes j´a existentes?
• Devemos apostar em ferramentas em voga atualmente, como web services e application servers?
1 Arquitetura de Software
1.1 Considera¸c˜oes Iniciais
Como deve ser a arquitetura da Incubadora? Nas conversas iniciais, surgiram perguntas como:
• Quais servi¸cos devem ser implementados?
• A equipe deve desenvolver software pr´oprio, ou utilizar solu¸c˜oes j´a existentes?
• Devemos apostar em ferramentas em voga atualmente, como web services e application servers?
• Seria aceit´avel ficarmos presos a uma determinada solu¸c˜ao? Podemos ter v´arios sistemas operando em conjunto?
1.2 Requisitos
Examinando as perguntas anteriores, pensamos em algumas id´eias que seriam interessantes para o projeto:
1.2 Requisitos
Examinando as perguntas anteriores, pensamos em algumas id´eias que seriam interessantes para o projeto:
• Em princ´ıpio, n˜ao vamos iniciar novos projetos de software. Preferivelmente utilizaremos os que j´a existem, colaborando com seu desenvolvimento.
1.2 Requisitos
Examinando as perguntas anteriores, pensamos em algumas id´eias que seriam interessantes para o projeto:
• Em princ´ıpio, n˜ao vamos iniciar novos projetos de software. Preferivelmente utilizaremos os que j´a existem, colaborando com seu desenvolvimento.
• A dire¸c˜ao do projeto poder´a mudar rapidamente,
conforme feedback da comunidade. Ou seja, ele deve evoluir segundo as necessidades de seus usu´arios.
1.2 Requisitos
Examinando as perguntas anteriores, pensamos em algumas id´eias que seriam interessantes para o projeto:
• Em princ´ıpio, n˜ao vamos iniciar novos projetos de software. Preferivelmente utilizaremos os que j´a existem, colaborando com seu desenvolvimento.
• A dire¸c˜ao do projeto poder´a mudar rapidamente,
conforme feedback da comunidade. Ou seja, ele deve evoluir segundo as necessidades de seus usu´arios.
• Poderemos ter diversos sistemas operando em paralelo, adequados a diferentes tipos de conte´udo digital.
1.3 Integra¸c˜ao dos Servi¸cos via LDAP
Os sistemas que far˜ao parte da Incubadora podem ser escritos em diversas linguagens e para diferentes
plataformas. Como integr´a-los?
Atrav´es da centraliza¸c˜ao dos dados comuns `a todos os projetos em um ´unico reposit´orio, que possa ser acessado pela maioria das linguagens, sistemas e plataformas
existentes.
Nossa solu¸c˜ao: uso do servi¸co de diret´orios LDAP
(Lightweight Directory Access Protocol), amplamente utilizado e padronizado, para armazenar dados sobre usu´arios e projetos da Incubadora.
1.3 Integra¸c˜ao dos Servi¸cos via LDAP
Os sistemas que far˜ao parte da Incubadora podem ser escritos em diversas linguagens e para diferentes
plataformas. Como integr´a-los?
Atrav´es da centraliza¸c˜ao dos dados comuns `a todos os projetos em um ´unico reposit´orio, que possa ser acessado pela maioria das linguagens, sistemas e plataformas
existentes.
Nossa solu¸c˜ao: uso do servi¸co de diret´orios LDAP
(Lightweight Directory Access Protocol), amplamente utilizado e padronizado, para armazenar dados sobre usu´arios e projetos da Incubadora.
1.3 Integra¸c˜ao dos Servi¸cos via LDAP
Os sistemas que far˜ao parte da Incubadora podem ser escritos em diversas linguagens e para diferentes
plataformas. Como integr´a-los?
Atrav´es da centraliza¸c˜ao dos dados comuns `a todos os projetos em um ´unico reposit´orio, que possa ser acessado pela maioria das linguagens, sistemas e plataformas
existentes.
Nossa solu¸c˜ao: uso do servi¸co de diret´orios LDAP
(Lightweight Directory Access Protocol), amplamente utilizado e padronizado, para armazenar dados sobre usu´arios e projetos da Incubadora.
1.3 Integra¸c˜ao dos Servi¸cos via LDAP
Os sistemas que far˜ao parte da Incubadora podem ser escritos em diversas linguagens e para diferentes
plataformas. Como integr´a-los?
Atrav´es da centraliza¸c˜ao dos dados comuns `a todos os projetos em um ´unico reposit´orio, que possa ser acessado pela maioria das linguagens, sistemas e plataformas
existentes.
Nossa solu¸c˜ao: uso do servi¸co de diret´orios LDAP
(Lightweight Directory Access Protocol), amplamente utilizado e padronizado, para armazenar dados sobre usu´arios e projetos da Incubadora.
Vantagens do LDAP:
Vantagens do LDAP:
• Padr˜ao IETF [1].
Vantagens do LDAP:
• Padr˜ao IETF [1].
• Ampla disponibilidade de bibliotecas para diversas linguagens e plataformas.
Vantagens do LDAP:
• Padr˜ao IETF [1].
• Ampla disponibilidade de bibliotecas para diversas linguagens e plataformas.
• Seguran¸ca: SASL e TLS/SSL.
Vantagens do LDAP:
• Padr˜ao IETF [1].
• Ampla disponibilidade de bibliotecas para diversas linguagens e plataformas.
• Seguran¸ca: SASL e TLS/SSL.
• Disponibilidade: mecanismo de replica¸c˜ao inclu´ıdo.
Vantagens do LDAP:
• Padr˜ao IETF [1].
• Ampla disponibilidade de bibliotecas para diversas linguagens e plataformas.
• Seguran¸ca: SASL e TLS/SSL.
• Disponibilidade: mecanismo de replica¸c˜ao inclu´ıdo.
• Schemas default: as aplica¸c˜oes normalmente concordam em rela¸c˜ao ao valor semˆantico de objetos e atributos.
Desvantagens do LDAP:
Desvantagens do LDAP:
• Bagagem e complexidade resultante das suas origens, DAP (X500) e OSI.
Desvantagens do LDAP:
• Bagagem e complexidade resultante das suas origens, DAP (X500) e OSI.
• Implementa¸c˜oes apresentam baixa performance para escrita (aka “otimizadas para leitura”).
Desvantagens do LDAP:
• Bagagem e complexidade resultante das suas origens, DAP (X500) e OSI.
• Implementa¸c˜oes apresentam baixa performance para escrita (aka “otimizadas para leitura”).
• Um ´unico projeto sendo desenvolvido ativamente,
OpenLDAP [2] (embora uma alternativa interessante, o tinyldap [3], tenha sido iniciada).
2 Arquitetura de Rede & Hardware
A arquitetura ainda est´a sendo definida. Estamos fundamentalmente preocupados com:
Seguran¸ca dos dados Uso de t´ecnicas e procedimentos como RAID1/RAID5, sincroniza¸c˜ao via rsync [4],
backups di´arios.
Seguran¸ca do sistema Filtros de pacote, redes separadas para servidores de maior risco (eg shell).
Topologia
Referˆencias
[1] The Internet Engineering Task Force.
http://www.ietf.org
[2] Projeto OpenLDAP.
http://www.openldap.org. [3] tinyldap, Felix von Leitner.
http://www.fefe.de/tinyldap/
[4] Projeto rsync.
http://samba.anu.edu.au/rsync/
Back