arquitetura baseada em servi os web services e bd e nosql
Download
Skip this Video
Download Presentation
Arquitetura Baseada em Serviços Web Services e BD e NoSQL

Loading in 2 Seconds...

play fullscreen
1 / 31

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


  • 84 Views
  • Uploaded on

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 ;

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Arquitetura Baseada em Serviços Web Services e BD e NoSQL' - delila


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