A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Arquitetura Baseada em Serviços Web Services e BD e NoSQL

Apresentações semelhantes


Apresentação em tema: "Arquitetura Baseada em Serviços Web Services e BD e NoSQL"— Transcrição da apresentação:

1 Arquitetura Baseada em Serviços Web Services e BD e NoSQL
Bruno C. de Paula Arquitetura Baseada em Serviços Web Services e BD e NoSQL 2º Semestre 2009 > PUCPR > Pós em BD

2 Resumo e motivação da aula
Vamos trabalhar na aula de hoje com bancos de dados não relacionais; Esta nova abordagem está ganhando bastante força em arquiteturas baseadas em serviços devido às suas vantagens relacionadas a escalabilidade, distribuição e acesso.

3 Modelo relacional é excelente, porém...
É necessário transmitir um texto SQL do cliente ao SGBD para conseguir um resultado; Difícil de criar estruturas reutilizáveis; Representação antinatural de estruturas altamente hierárquicas; Não prevê, originalmente, sistemas distribuídos e paralelizáveis. 23/03/2017

4 NoSQL - características
SGBDs projetados para aplicações web em mente; Distribuídos, descentralizados e paralelizáveis; Tolerantes a falha; Fogem de schemas fixos; Escaláveis de maneira transparente; Acessíveis via web services; Não é ORM! Muito novos... 23/03/2017

5 NoSQL - características
Podem ser instalados localmente ou, por serem distribuídos, podem ser jogados para a nuvem; 23/03/2017

6 Cloud Computing Computação em Nuvem
Detalhes da infra-estrutura são escondidos do usuário e localizados na Internet; IaaS (Infraestrutura como Serviço): Virtualização; PaaS (Plataforma como Serviço): Cloudware; Seu sofware roda na Internet; SaaS (Software como Serviço): Licenciamento de um aplicativo sob demanda. 23/03/2017

7 Teorema CAP Ao mesmo tempo, você só pode escolher 2 ao mesmo tempo:
Consistência (consistency): todos os clientes enxergam os mesmos dados; Disponibilidade (availability) : todos os clientes acessam alguma versão dos dados; Tolerância a Partição (partition tolerance): o banco pode ser dividido em múltiplos servidores. NoSQL implementam consistência eventual; 23/03/2017

8 Key-value: tabela hash; Document-based: metáfora de documentos;
NoSQL Tipos de SGBD Key-value: tabela hash; Document-based: metáfora de documentos; Não existe um padrão de linguagem! 23/03/2017

9 Exemplos de implementações NoSQL
Voldemort: Linkedin, Digg; Cassandra: Facebook; CouchDB; MongoDB; Amazon SimpleDB: usado pelo S3; 23/03/2017

10 Exemplos de implementações NoSQL
Google BigTable / Google Fusion Tables; HyperTable: implementação do BigTable; HBase; Yahoo Sherpa; LucidDB; ... Dezenas! 23/03/2017

11 Voldemort Desenvolvido pelo Linkedin; Dados são automaticamente:
Replicados para múltiplos servidores; Particionados (cada servidor contém um pedaço dos dados); Dados são versionados; Cada nó é independente; 10-20k operações por segundo por nó. 23/03/2017

12 Voldemort Serialização em Java; Clone do Amazon Dynamo;
Open Source (Java); Download em: 23/03/2017

13 Instalação Download de versão para Linux em:
23/03/2017

14 Exemplo de uso Iniciando um nó
./bin/voldemort-server.sh config/single_node_cluster > /tmp/voldemort.log & 23/03/2017

15 Exemplo de uso Iniciando a linha de comando
./bin/voldemort-shell.sh test tcp://localhost:6666 23/03/2017

16 Exemplo de uso Operações simples
Inserindo valor put "nome" "Bruno" Recuperando valor: get "nome" Excluindo valor: delete "nome" 23/03/2017

17 Exemplo de uso Versionamento
23/03/2017

18 Exemplo de uso Localização da chave
locate "bruno" 23/03/2017

19 Exemplo de uso Código Java - Conexão
String bootstrapUrl = "tcp://localhost:6666"; StoreClientFactory factory = new SocketStoreClientFactory(new ClientConfig().setBootstrapUrls(bootstrapUrl)); // Cria um cliente para a store StoreClient client = factory.getStoreClient("my_store_name"); 23/03/2017

20 Exemplo de uso Inserindo e obtendo valores
Versioned value = client.get("some_key"); value.setObject("some_value"); client.put("some_key", value); 23/03/2017

21 Cassandra Desenvolvido para o Facebook;
Armazenamento de modelo de dados rico; Data replicada a múltiplos nós; Novos nós podem ser acrescentados sem influenciar nos dados existentes; Consistência eventual: Sem updates após um período, os updates de propagam nas réplicas. 23/03/2017

22 Cassandra Open source (Java); Facebook = 40 TB / 120 máquinas;
Usa o conceito de super colunas; { // esta é uma super coluna nome: "homeAddress", // com uma lista infinita de colunas value: { // observe que a chave é o nome da coluna street: {name: "street", value: "1234 x street", timestamp: }, city: {name: "city", value: "san francisco", timestamp: }, zip: {name: "zip", value: "94107", timestamp: }, } 23/03/2017

23 Instalação Downloa de versão para Linux em:
23/03/2017

24 Exemplo de uso Iniciando um nó
23/03/2017 Exemplo de uso Iniciando um nó mkdir -p /var/log/cassandra touch /var/log/cassandra/system.log ./bin/cassandra -f Dica: precisei do SUDO para funcionar no Ubuntu... 23/03/2017

25 Exemplo de uso Iniciando a linha de comando
23/03/2017 Exemplo de uso Iniciando a linha de comando ./bin/cassandra-cli –host localhost –port 9160 Ver exemplos em: 23/03/2017

26 Exemplo de uso Inserindo valores
set Keyspace1.Standard1['bcp']['primeiro']='Bruno‘ set Keyspace1.Standard1['bcp']['sobrenome']='Bruno' 23/03/2017

27 Exemplo de uso Obtendo valores
get Keyspace1.Standard1['bcp'] 23/03/2017

28 CouchDB Servidor de banco baseado em documentos;
Acessível via API Rest; Schema-free; Distribuído; Open Source (Erlang); Views usando Map/Reduce. 23/03/2017

29 CouchDB Interface JavaScript; Ver testador online:
23/03/2017

30 Documento CouchDB Campos nomeados
23/03/2017

31 Referências No to SQL? Anti-database...
Livro sobre CouchDB (no prelo): Explorando o CouchDB: 23/03/2017


Carregar ppt "Arquitetura Baseada em Serviços Web Services e BD e NoSQL"

Apresentações semelhantes


Anúncios Google