Graph Database Neo4j Edson Barboza.

Slides:



Advertisements
Apresentações semelhantes
Sistemas distribuídos
Advertisements

PHPOO Erick Souza. Conceitos de Orientação a Objetos Objeto é um conceito ou item(concreto ou abstrato). Software orientado a objetos Uma classe é uma.
Sistemas de Informação Redes de Computadores
Sistemas Distribuídos
Implementação de um Sistema de Informações Georeferenciado (Geoufes) Utilizando Bibliotecas de Software Livres em Java Aluno: Geraldo Angelo Vassoler Orientador:
Motor de Armazenamento
Bacharelado em Ciência da Computação
Web Services Erika Hmeljevski Estefania Borm Leonardo Malagoli
Módulo III Camada de Persistência
Fundamentals of Database Processing
Alexandre Parra Site: Linguagem Java Alexandre Parra Site:
Alunos: Benedito Jr, Douglas Bertol, Robson Costa
GERENCIAMENTO DE REDES
PUC - BD3 IBM DB2 Sistemas de Banco de Dados Distribuídos
MySQL Gerdson de Araújo Silva Universidade Federal de Alagoas Maceió-AL, 21 de maio de 2009.
Introdução a EJB 3.0 Eduardo Martins Guerra Instituto Tecnológico de Aeronáutica Curso de Pós-Graduação em Engenharia de Software Programação Distribuída.
Arquitetura de Sistemas Eduardo Martins Guerra Desenvolvimento de Soluções WEB.
1 Felipe L. SeverinoPOD XtremWeb Felipe L. Severino Programação com Objetos Distribuídos paralela e.
Curso Superior de Tecnologia: Sistemas para Internet
Tecnologia de Informática
Gerenciamento de conteúdo na ALESP
Introdução a Banco de Dados com exercícios de aplicação
SEDNA SGBD XML NATIVO.
Minicurso PHP – Parte 2 João Paulo Ribeiro jpribeiro.com
Open Cloud Computing Interface - OCCI Projeto EUBrazilCC
Programação para estrutura Cliente-Servidor
High-Performance Extensible Indexing Publicado em 1999 na 25th VLDB Conference Por: Marcel Kornacker Apresentado por: Gustavo Augusto e Ivan Silva TABD.
Google wave José Dihego Rafael Carício Rafael Bernardo
Laboratório de Programação I Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Web Services Uninorte Semana de Tecnologia da Informação
Google wave José Dihego Rafael Carício Rafael Bernardo
Design Patterns / Acesso ao banco de dados (java.sql)
JSP / Servlets Avançado
1.
Vânia Maria P. Vidal, José Maria Monteiro, Luís Eufrasio T. Neto
FaculdadePitágoras Curso Superior de Tecnologia: Banco de Dados Disciplina: Sistemas Gerenciadores de Banco de Dados Prof.: Fernando Hadad Zaidan.
Banco de Dados Parte 04 Ceça. Ceça Moraes 2 Conteúdo  Os três níveis da arquitetura  Mapeamentos  Arquitetura cliente-servidor.
Framework para mapeamento objeto-relacional
Sistemas NoSQL - Chave-Valor
Implementação MVC Pedro Antonino.
Conceitos da arquitetura
Projetos Grandes MO801/MC912. Roteiro Componentes Configurações Instanciação múltipla Instanciação condicional Atenção: Os exemplos são cumulativos.
Introdução a JEE Marco A. S. Reis Arquiteto de Software Abril/2011.
+ Java Básico Aula 1 por Flávio Juvenal. + Histórico Green Project (1991) Desenvolver plataforma para eletrodomésticos inteligentes Tentaram usar C++
Sistemas de Informação: Estrutura básica dos Sistemas Empresariais.
Unidade 1 – Introdução a J2EE Prof.: Henrique Santos
MONITORAMENTO DE REDE E SERVIDORES UTILIZANDO O CACTIEZ E SNMP
SQLite Banco de Dados II.
Google Wave (Arquitetura) Ademir Junior / Felipe Ferreira / Fernando Kakimoto.
DBSync4J Uma Ferramenta para Apoio na Sincronização entre Bases de Dados de Desenvolvimento e Produção Autores: Ana Carolina Ferreira Lins Rafael Fernandes.
ZK RIA com ZK Framework.
Apresentador Cargo. Tecnologias de Classe Corporativa Experiência Administrativa Sob Medida Local de Trabalho Remoto da Web Potencializa Investimentos.
Introdução aos Sistemas Operacionais
DBSync4J Uma Ferramenta para Apoio na Sincronização entre Bases de Dados de Desenvolvimento e Produção Autores: Ana Carolina Ferreira Lins Rafael Fernandes.
Daniel Paulo Banco de dados: é uma coleção/conjunto de registros relacionados.  Exemplo: O banco de dados de uma Universidade.
WebPTM Web Project and Time Manager Autor: Daniel Nicoletti Orientador: Prof. Dr. Carlos Miguel Tobar Toledo Co-Orientador: Murilo Woigt Miranda PONTIFÍCIA.
Daniel Paulo Introdução A disponibilidade de um sistema é a probabilidade de que ele esteja funcionando num determinado momento.
Módulo II Capítulo 1: Orientação a Objetos
Aula 1 - Fundamentos Web Servidor Instituto Metodista Izabela Hendrix Curso de Tecnologia em Análise e Desenvolvimento de Sistemas Prof. Gilmar Medeiros.
Persistência em Software Orientado a Objetos:
Equipe Danilo Miguel Elias Lacerda Felipe Riguete Henderson Garcia
Desenvolvimento WEB II Professora: Kelly de Paula Cunha Apresentação baseada no material didático elaborado pelo Prof. Pasteur Ottoni de Miranda Junior.
Desenvolvimento WEB II Professora: Kelly de Paula Cunha.
SQL Server Data Quality Services Túlio de Souza (tss2)
INTEGRAÇÃO DE DADOS: UMA PERSPECTIVA TEÓRICA Guilherme P. K. Caminha Disciplina: IF696.
CIn-UFPE1 Projeto de Gerenciamento de Dados. CIn-UFPE2 Objetivos n Definir o que significa gerenciamento de dados do sistema; n Entender abordagens diferentes.
Web Services / SOA. O cenário de TI nas corporações Novas tendências batiam à porta das corporações Migraram o foco do “gerenciamento de dados” para o.
 Sincronização de informações realizada a partir de duas ou mais fontes de dados.
Índices - Full Text Searching IFRN José Antonio da Cunha.
NoSQL.
Transcrição da apresentação:

Graph Database Neo4j Edson Barboza

Roteiro Exemplos de grafos Ranking Graph Database Graph Search Tamanho vs Complexidade Porque usar o neo4j Nó Relacionamento Propriedades Getting started Neo4j Java API Estado da Arte – Arquitetura Neo4j HA Mode Pontos a melhorar

Exemplos de grafo

Ranking Fonte: http://db-engines.com/en/ranking_trend/graph+dbms

Graph Search - Facebook

Tamanho vs Complexidade

Por que utilizar o Neo4j? Rapidez e robustez Ótima performance para ler e escrever, robustez Criar nós indexados (melhoria de performance nas consultas) API para algoritmos de busca (shortest Path) Possibilidade de integração com Web Semântica

Neo4j (2) Full ACID (na transação) Alta Disponibilidade (Enterprise Edition) Suporta até 32 bilhões de nós, 32 bilhões de relacionamentos 64 bilhões de propriedades Consulta REST (Representation State Transfer)

Nó Unidade fundamental de armazenamento Representam entidades de uma modelo relacional Pode conter propriedades.

Relacionamento Permitem encontrar dados relacionados Podem contem certas propriedades Start node e end node.

Propriedade Pares de chaves e valores Valor Uma chave é uma string. Primitivo ou array de tipo primitivo

Getting starter www.neo4j.com

Getting starter To get started with Neo4j, Let's start the server and take a look at the web interface ... Open a console and navigate to the install directory. Start the server: * Windows: use bin\Neo4j.bat * Linux/Mac: use ./bin/neo4j start console 4. Open http://localhost:7474/

Criando um nó

Buscando um nó

Cypher Linguagem de consulta com casamento de padrão

CONSULTA

Criando vários nós e criando relacionamentos

Solve

Deletando nós e relacionamentos

Neo4j Java API GraphDatabaseService   Neo4j Java API GraphDatabaseService gerenciamento a criação do grafo e seus componentes criação de nós, relacionamento e propriedades. GraphDatabaseFactory criar e gerenciar novas instancias de banco de dados em grafo HighlyAvailableGraphDatabaseFactory (EmbeddedGraphDatabase) arquitetura de criação de grafos com alta disponibilidade.

ARQUITETURA – Estado da Arte CONSISTENCIA EVENTUAL REPLICACAO MASTER-SLAVE Slaves sincronizados em operação de escrita Atualização eventual nos slaves Abordagem otimística para o master no commit. Rool-back transações no master. Write transactions can be performed on any database instance in a cluster. • Neo4j HA is fault tolerant and can continue to operate from any number of machines down to a single machine. • Slaves will be automatically synchronized with the master on write operations. • If the master fails a new master will be elected automatically. • The cluster automatically handles instances becoming unavailable (for example due to network issues), and also makes sure to accept them as members in the cluster when they are available again. • Transactions are atomic, consistent and durable but eventually propagated out to other slaves. • Updates to slaves are eventual consistent by nature but can be configured to be pushed optimistically from master during commit. • If the master goes down any running write transaction will be rolled back and new transactions will block or fail until a new master has become available.

Pontos a melhorar Não enforça a segurança a nível dos dados Suporte a HTTPS Certificado SSL auto-emitido e uma chave privada. Solução: Configurar própria chave Servidor expõe funcionalidade do script remotamente. Implementar camada de segurança para sanar vulnerabilidade ao expor servidor

Referências Introdution to Graph Database - http://www.slideshare.net/maxdemarzi/introduction-to-graph-databases- 12735789 Introdution to Neo4j - http://gotocon.com/dl/goto-amsterdam- 2012/slides/IanRobinson_AnIntroductionToDoctorWhoandNeo4j.pdf. Acessado em 03/12/2015 OrientDB Guide - http://orientdb.com The Neo4j Manual - http://cs.brown.edu/courses/cs227/archives/2013/papers/neo4j.pdf. Acessado em 03/12/2015. Infoscience - http://oss.infoscience.co.jp/neo4j/docs.neo4j.org/chunked/stable/ha-architecture.html techblog.netflix.com