Arquitetura baseada em servi os web services e bd e nosql
This presentation is the property of its rightful owner.
Sponsored Links
1 / 31

Arquitetura Baseada em Serviços Web Services e BD e NoSQL PowerPoint PPT Presentation


  • 43 Views
  • Uploaded on
  • Presentation posted in: General

Bruno C. de Paula. Arquitetura Baseada em Serviços Web Services e BD e NoSQL. 2º Semestre 2009 > PUCPR > Pós em BD. Resumo e motivação da aula. Vamos trabalhar na aula de hoje com bancos de dados não relacionais ;

Download Presentation

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

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Arquitetura baseada em servi os web services e bd e nosql

Bruno C. de Paula

Arquitetura Baseada em ServiçosWeb Services e BD e NoSQL

2º Semestre 2009 > PUCPR >

Pós em BD


Resumo e motiva o da aula

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.


Modelo relacional excelente por m

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.


Nosql caracter sticas

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


Nosql caracter sticas1

NoSQL - características

  • Podem ser instalados localmente ou, por serem distribuídos, podem ser jogados para a nuvem;


Cloud computing computa o em nuvem

Cloud ComputingComputaçã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.


Teorema cap

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;


Nosql tipos de sgbd

NoSQLTipos de SGBD

  • Key-value: tabela hash;

  • Document-based: metáfora de documentos;

  • Não existe um padrão de linguagem!


Exemplos de implementa es nosql

Exemplos de implementações NoSQL

  • Voldemort: Linkedin, Digg;

  • Cassandra: Facebook;

  • CouchDB;

  • MongoDB;

  • Amazon SimpleDB: usado pelo S3;


Exemplos de implementa es nosql1

Exemplos de implementações NoSQL

  • Google BigTable / Google Fusion Tables;

  • HyperTable: implementação do BigTable;

  • HBase;

  • Yahoo Sherpa;

  • LucidDB;

  • ...

  • Dezenas!


Voldemort

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


Voldemort1

Voldemort

  • Serialização em Java;

  • Clone do Amazon Dynamo;

  • Open Source (Java);

  • Download em:

    • http://project-voldemort.com/


Instala o

Instalação

  • Download de versão para Linux em:

    • http://github.com/voldemort/voldemort/downloads


Exemplo de uso iniciando um n

Exemplo de usoIniciando um nó

  • ./bin/voldemort-server.sh config/single_node_cluster > /tmp/voldemort.log &


Exemplo de uso iniciando a linha de comando

Exemplo de usoIniciando a linha de comando

  • ./bin/voldemort-shell.sh test tcp://localhost:6666


Exemplo de uso opera es simples

Exemplo de usoOperações simples

  • Inserindo valor

    • put "nome" "Bruno"

  • Recuperando valor:

    • get "nome"

  • Excluindo valor:

    • delete "nome"


Exemplo de uso versionamento

Exemplo de usoVersionamento


Exemplo de uso localiza o da chave

Exemplo de usoLocalização da chave

  • locate "bruno"


Exemplo de uso c digo java conex o

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");


Exemplo de uso inserindo e obtendo valores

Exemplo de usoInserindo e obtendo valores

  • Versioned value = client.get("some_key");

  • value.setObject("some_value");

  • client.put("some_key", value);


Cassandra

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.


Cassandra1

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: 123456789},

city: {name: "city", value: "san francisco", timestamp: 123456789},

zip: {name: "zip", value: "94107", timestamp: 123456789},

}

}


Instala o1

Instalação

  • Downloa de versão para Linux em:

    • http://incubator.apache.org/cassandra/#download


Exemplo de uso iniciando um n1

Exemplo de usoIniciando um nó

  • mkdir -p /var/log/cassandra

  • touch /var/log/cassandra/system.log

  • ./bin/cassandra -f


Exemplo de uso iniciando a linha de comando1

Exemplo de usoIniciando a linha de comando

  • ./bin/cassandra-cli –host localhost –port 9160


Exemplo de uso inserindo valores

Exemplo de usoInserindo valores

  • set Keyspace1.Standard1['bcp']['primeiro']='Bruno‘

  • set Keyspace1.Standard1['bcp']['sobrenome']='Bruno'


Exemplo de uso obtendo valores

Exemplo de usoObtendo valores

  • get Keyspace1.Standard1['bcp']


Couchdb

CouchDB

  • Servidor de banco baseado em documentos;

  • Acessível via API Rest;

  • Schema-free;

  • Distribuído;

  • Open Source (Erlang);

  • Views usando Map/Reduce.


Couchdb1

CouchDB

  • Interface JavaScript;

  • Ver testador online:

    • http://labs.mudynamics.com/wp-content/uploads/2009/04/icouch.html


Documento couchdb campos nomeados

Documento CouchDBCampos nomeados


Refer ncias

Referências

  • No to SQL? Anti-database...

    • http://www.computerworld.com/s/article/9135086/No_to_SQL_Anti_database_movement_gains_steam_

  • Livro sobre CouchDB (no prelo):

    • http://books.couchdb.org/relax/

  • Explorando o CouchDB:

    • http://www.ibm.com/developerworks/br/library/os-couchdb/index.html


  • Login