DistJoin: Plataforma de Processamento Distribuído de Operações de Junção Espacial com Bases de Dados Dinâmicas

Tamanho: px
Começar a partir da página:

Download "DistJoin: Plataforma de Processamento Distribuído de Operações de Junção Espacial com Bases de Dados Dinâmicas"

Transcrição

1 UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA SÁVIO SALVARINO TELES DE OLIVEIRA DistJoin: Plataforma de Processamento Distribuído de Operações de Junção Espacial com Bases de Dados Dinâmicas Goiânia 2013

2 UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA AUTORIZAÇÃO PARA PUBLICAÇÃO DE DISSERTAÇÃO EM FORMATO ELETRÔNICO Na qualidade de titular dos direitos de autor, AUTORIZO o Instituto de Informática da Universidade Federal de Goiás UFG a reproduzir, inclusive em outro formato ou mídia e através de armazenamento permanente ou temporário, bem como a publicar na rede mundial de computadores (Internet) e na biblioteca virtual da UFG, entendendo-se os termos reproduzir e publicar conforme definições dos incisos VI e I, respectivamente, do artigo 5 o da Lei n o 9610/98 de 10/02/1998, a obra abaixo especificada, sem que me seja devido pagamento a título de direitos autorais, desde que a reprodução e/ou publicação tenham a finalidade exclusiva de uso por quem a consulta, e a título de divulgação da produção acadêmica gerada pela Universidade, a partir desta data. Título: DistJoin: Plataforma de Processamento Distribuído de Operações de Junção Espacial com Bases de Dados Dinâmicas Autor(a): Sávio Salvarino Teles de Oliveira Goiânia, 28 de Junho de Sávio Salvarino Teles de Oliveira Autor Dr. Vagner José do Sacramento Rodrigues Orientador

3 SÁVIO SALVARINO TELES DE OLIVEIRA DistJoin: Plataforma de Processamento Distribuído de Operações de Junção Espacial com Bases de Dados Dinâmicas Dissertação apresentada ao Programa de Pós Graduação do Instituto de Informática da Universidade Federal de Goiás, como requisito parcial para obtenção do título de Mestre em Computação. Área de concentração: Sistemas Distribuídos. Dr. Vagner José do Sacramento Ro- Orientador: Prof. drigues Goiânia 2013

4 SÁVIO SALVARINO TELES DE OLIVEIRA DistJoin: Plataforma de Processamento Distribuído de Operações de Junção Espacial com Bases de Dados Dinâmicas Dissertação defendida no Programa de Pós Graduação do Instituto de Informática da Universidade Federal de Goiás como requisito parcial para obtenção do título de Mestre em Computação, aprovada em 28 de Junho de 2013, pela Banca Examinadora constituída pelos professores: Prof. Dr. Vagner José do Sacramento Rodrigues Instituto de Informática UFG Presidente da Banca Prof. Dr. Fábio Moreira Costa Instituto de Informática UFG Prof. Dr. João Batista da Rocha Junior Universidade Estadual de Feira de Santana UEFS

5 Todos os direitos reservados. É proibida a reprodução total ou parcial do trabalho sem autorização da universidade, do autor e do orientador(a). Sávio Salvarino Teles de Oliveira Possui graduação em CIÊNCIAS DA COMPUTAÇÃO pela Universidade Federal de Goiás (2009) e atualmente é aluno regular do Programa de Mestrado do Instituto de Informática da UFG (Universidade Federal de Goiás). Tem experiência na área de Ciência da Computação, com ênfase em Sistemas Distribuídos e GeoProcessamento, atuando principalmente nos seguintes temas: implementação de algoritmos espaciais distribuídos, aplicações Web (Java, Spring, Ajax (dwr), JavaScript, XMPP) e modelagem de aplicações distribuídas.

6 Dedico este trabalho: Aos meus pais, José Salvarino de Oliveira e Maria Francisca Teles da Cunha. Ao meu irmão Vinícius Teles de Oliveira. A minha namorada Silvana Pereira de Souza.

7 Agradecimentos Este trabalho devo muito a algumas pessoas, por diversas razões, e gostaria de agradecer especialmente: Ao meu orientador Professor Dr. Vagner José do Sacramento Rodrigues por compartilhar comigo seu tema de pesquisa. Gostaria de agradecê-lo pela orientação e incentivo durante o desenvolvimento deste trabalho. Ao grupo de trabalho do Laboratory for Ubiquitous and Pervasive Applications (LUPA/UFG) pela grande ajuda. Sem eles, com certeza, este trabalho não teria sido concretizado. A meus pais, José Salvarino de Oliveira e Maria Francisca Teles da Cunha, pelos incentivos durante toda a minha formação acadêmica. A Silvana Pereira de Souza por todo apoio e compreensão ao longo da trajetória que me levou à concretização deste trabalho.

8 Resumo de Oliveira, Sávio Salvarino Teles. DistJoin: Plataforma de Processamento Distribuído de Operações de Junção Espacial com Bases de Dados Dinâmicas. Goiânia, p. Dissertação de Mestrado. Instituto de Informática, Universidade Federal de Goiás. Os Sistemas de Informação Geográfica (SIG) têm recebido cada vez mais destaque nos institutos de pesquisa e na indústria nos últimos anos. Um Sistema de Gerência de Bancos de Dados Espaciais (SGBDE) é um dos principais componentes de um SIG e a junção espacial uma das operações mais importantes nos SGBDEs. Ela envolve o relacionamento entre duas bases de dados, combinando as geometrias de acordo com algum predicado espacial, como intersecção. Devido à crescente disponibilidade de dados espaciais, ao aumento no número de usuários dos SIGS e ao alto custo de processamento das operações espaciais, os SGBDE distribuídos (SGBDED) surgem com uma boa opção para processar a junção espacial de forma eficiente em um cluster de computadores. Esse processamento distribuído traz consigo alguns desafios, tais como a distribuição dos dados pelo cluster e o processamento paralelo e distribuído da junção espacial. O objetivo deste trabalho é apresentar uma plataforma de geoprocessamento paralelo e distribuído da junção espacial em um cluster de computadores, utilizando técnicas de distribuição de dados para bases de dados dinâmicas. Os trabalhos encontrados na literatura têm explorado técnicas de distribuição de dados indicadas para bases de dados estáticas, onde qualquer atualização da base de dados requer que todos os dados sejam novamente distribuídos pelo cluster. Isto se torna inviável com grandes bases de dados e que sofrem constantes atualizações. Por isso, este trabalho propõe duas novas técnicas de distribuição de dados com bases de dados dinâmicas: Proximity Area e Grid Proximity Area. Estas técnicas foram avaliadas para definir em quais cenários cada uma delas é mais apropriada. Para tal, estas técnicas foram avaliadas em um ambiente real com bases de dados com características diferentes, para que fosse possível experimentar a junção espacial distribuída em cenários diversos com cada técnica de distribuição de dados. Palavras chave Junção Espacial Distribuída, Bases de Dados Dinâmicas, R-Tree.

9 Abstract de Oliveira, Sávio Salvarino Teles. DistJoin: Platform for Distributed Processing of Spatial Join Operations with Dynamic Datasets. Goiânia, p. MSc. Dissertation. Instituto de Informática, Universidade Federal de Goiás. Geographic Information Systems (GIS) have received increasing attention in research institutes and industry in recent years. A Spatial Database Managament System (SDBMS) is one of the main components of a GIS and spatial join is one of the most important operations in SDBMS. Spatial join involves the relationship between two datasets, combining the geometries according some spatial predicate, such as intersection. Due to the increasing availability of spatial data, the growing number of GIS users, and the high cost of the processing of spatial operations, distributed SGBDEs (SGBDED) have been proposed as a good option to efficiently process spatial join on a cluster. This distributed processing brings some challenges, such as the data distribution and parallel and distributed processing of spatial join. This paper presents a platform for parallel and distributed processing of spatial joins in a cluster using data distribution techniques for dynamic datasets. Studies in the literature have explored data distribution techniques for static datasets, where any update requires data redistribution. This becomes unfeasible when using large datasets with frequent updates. Therefore, this paper proposes two new data distribution techniques for dynamic datasets: Proximity Area and Grid Proximity Area. These techniques have been evaluated to determine which scenarios each technique is more appropriate for. For this purpose, these techniques are evaluated in a real environment using datasets with different characteristics. Therefore, it is possible to evaluate the spatial join operation in real scenarios with each technique. Keywords Distributed Spatial Join, Dynamic Dataset, R-Tree.

10 Sumário Lista de Figuras 10 Lista de Tabelas 13 1 Introdução 14 2 Processamento de Dados Espaciais R-Tree Junção espacial 19 3 Processamento da junção espacial distribuída Algoritmo de junção espacial distribuída DistJoin: Plataforma de Processamento Distribuído da Junção Espacial Visão geral da Arquitetura Protocolo de Comunicação Detalhes da Implementação Considerações Finais 29 4 Distribuição de Dados com Bases de Dados Dinâmicas Proximity Area Grid Proximity Area Considerações Finais 38 5 Avaliação de Desempenho Ambiente Experimental Avaliação da Junção Espacial Distribuída com as técnicas de distribuição de dados: Grid Proximity Area e Proximity Area Junção espacial entre as Bases de dados Bioma do Cerrado e Desmatamento do Cerrado Junção espacial entre as Bases de dados Bioma da Caatinga e Localidades Junção espacial entre as Bases de dados Rodovias e Hidrografia Considerações Finais 52 6 Trabalhos Correlatos Distribuição de Dados Processamento Paralelo e Distribuído da Junção Espacial utilizando a Técnica de Semi-Junção Espacial Considerações Finais 59

11 7 Conclusão Trabalhos Futuros 61 Referências Bibliográficas 63 A Uso de memória pelas técnicas de Distribuição de Dados Grid Proximity Area e Proximity Area 68

12 Lista de Figuras 1.1 Junção espacial entre as bases de dados de Estados e Hidrovias do Brasil para descobrir quais estados brasileiros apresentam intersecção com alguma hidrovia 15 (a) Base de Dados de Estados 15 (b) Base de Dados de Hidrovia 15 (c) Junção espacial entre as bases de dados de Estados e Hidrovias do Brasil Estrutura de dados espacial 19 (a) Índice espacial R-Tree 19 (b) Disposição espacial dos objetos geográficos Aproximações geométricas 20 (a) Aproximação geométrica de um polígono. 20 (b) Visão de uma junção entre dois polígonos com suas respectivas aproximações geométricas Junção espacial entre as relações R e S 21 (a) Disposição espacial das relações R e S 21 (b) Indexação das relações R e S na R*-Tree Processamento do algoritmo de intersecção entre os polígonos de (1, D) e (2, A) Exemplo com área morta e área de sobreposição R-Tree distribuída Arquitetura da Plataforma DistJoin Inserção de um objeto utilizando a técnica Proximity Area com k = 0,5 34 (a) Antes da inserção 34 (b) Depois da inserção Divisão do espaço do mundo em uma Grid Mapeamento de um novo objeto na grid para os servidores Visão da grid na junção espacial entre dois objetos espaciais 1 e D 36 (a) Junção entre dois objetos com cópias armazenadas no mesmo servidor 36 (b) Junção entre dois objetos com cópias armazenadas em servidores diferentes Visão territorial da Junção Espacial entre as Bases de Dados: Bioma do Cerrado e Desmatamento do Cerrado. 43 (a) Base de dados Bioma do Cerrado 43 (b) Base de dados Desmatamento do Cerrado 43

13 (c) Junção espacial entre as Bases de dados Bioma do Cerrado e Desmatamento do Cerrado Tempo de Resposta da Junção Espacial entre as Bases de Dados: Bioma do Cerrado e Desmatamento do Cerrado Tráfego de rede na Junção Espacial entre as Bases de Dados Bioma do Cerrado e Desmatamento do Cerrado com 8 máquinas Número de intersecções realizadas em cada servidor na Junção Espacial entre as Bases de Dados Bioma do Cerrado e Desmatamento do Cerrado com 8 máquinas Média do uso da CPU na Junção Espacial entre as Bases de Dados Bioma do Cerrado e Desmatamento do Cerrado com 8 máquinas Visão territorial da Junção Espacial entre as Bases de Dados: Bioma da Caatinga e Localidades. 47 (a) Base de dados Bioma da Caatinga 47 (b) Base de dados Localidades 47 (c) Junção espacial entre as Bases de dados Bioma da Caatinga e Localidades Tempo de Resposta da Junção Espacial entre as Bases de Dados: Bioma da Caatinga e Localidades Distribuição do processamento na Junção Espacial entre as Bases de Dados Bioma da Caatinga e Localidades. 48 (a) Distribuição do processamento na etapa de refinamento com 4 máquinas 48 (b) Distribuição do processamento na etapa de refinamento com 8 máquinas Tráfego de dados na rede na Junção Espacial entre as Bases de Dados Bioma da Caatinga e Localidades com 8 máquinas Visão territorial da Junção Espacial entre as Bases de Dados: Rodovias e Hidrografia. 50 (a) Base de dados Rodovias 50 (b) Base de dados Hidrografia 50 (c) Junção espacial entre as Bases de dados Rodovias e Hidrografia Tempo de Resposta da Junção Espacial entre as Bases de Dados: Rodovias e Hidrografia Pares de candidatos filtrados nas folhas na Junção Espacial entre as Rodovias e Hidrografia. 51 (a) Quantidade de pares de candidatos analisados nas folhas 51 (b) Quantidade de pares de candidatos que satisfazem as condições espaciais da consulta Distribuição do processamento na etapa de refinamento na Junção Espacial entre as Bases de Dados Rodovias e Hidrografia Uso de CPU na Junção Espacial entre as Bases de Dados Rodovias e Hidrografia Arquitetura da plataforma proposta em [6] 56 A.1 Uso de memória na Junção Espacial entre as Bases de Dados Bioma do Cerrado e Desmatamento do Cerrado. 68

14 (a) 3 máquinas 68 (b) 6 máquinas 68 (c) 9 máquinas 68 A.2 Uso de memória na Junção Espacial entre as Bases de Dados Bioma da Caatinga e Localidades. 69 (a) 3 máquinas 69 (b) 6 máquinas 69 (c) 9 máquinas 69 A.3 Uso de memória na Junção Espacial entre as Bases de Dados Rodovias e Hidrografia. 70 (a) 3 máquinas 70 (b) 6 máquinas 70 (c) 9 máquinas 70

15 Lista de Tabelas 5.1 Descrição das bases de dados 41

16 Introdução CAPÍTULO 1 Nos últimos anos, aplicações espaciais, como os Sistemas de Informação Geográfica (SIG), têm recebido cada vez mais destaque nos institutos de pesquisa e na indústria. Estes sistemas são projetados para capturar, armazenar, manipular, analisar e apresentar todos os tipos de dados geográficos. A habilidade de explorar propriedades físicas, lógicas e temporais tornam os SIGs imprescindíveis em várias áreas: demografia, análise de terrenos, mineração, planejamento militar, logística e robótica, além de várias outras aplicações que utilizam a localização geográfica para prover serviços. Com o desenvolvimento de tecnologias de observação do planeta Terra, a disponibilidade de dados espaciais tem crescido de forma exponencial a cada ano (atualmente em uma escala de petabytes) [47]. Com isto, os SIGs têm se tornado cada vez mais populares, com um aumento significativo no número de usuários destes sistemas. Esses usuários conseguem fornecer em tempo real, por exemplo, através da tecnologia de Global Positioning System (GPS), informações de lugares onde estiveram, aumentando ainda mais a quantidade de dados espaciais disponíveis. Um Sistema de Gerência de Bancos de Dados Espaciais (SGBDE) é um dos principais componentes de um SIG, pois nele estão armazenados e são gerenciados os objetos das bases de dados espaciais. Por meio do SGBDG é possível realizar processamentos geométricos, análise espacial e fazer relação entre dados relacionais e espaciais. A junção espacial é uma das operações mais importantes nos SGBDEs. Ela envolve o relacionamento entre duas bases de dados, combinando as geometrias de acordo com algum predicado espacial, como intersecção. A Figura 1.1 apresenta um exemplo de junção espacial entre as bases de dados de Estados e Hidrovias para identificar quais hidrovias estão presentes em quais estados brasileiros. Para descobrir esta informação, foi realizada a junção espacial entre a base de dados de Estados (Figura 1.1(a)) e a base de dados de Hidrovias (Figura 1.1(b)). A Figura 1.1(c) apresenta a visão geográfica da junção espacial entre as duas bases de dados, onde se pode observar a intersecção de alguns estados com algumas hidrovias.

17 15 (a) Base de Dados de Estados (b) Base de Dados de Hidrovia (c) Junção espacial entre as bases de dados de Estados e Hidrovias do Brasil Figura 1.1: Junção espacial entre as bases de dados de Estados e Hidrovias do Brasil para descobrir quais estados brasileiros apresentam intersecção com alguma hidrovia Os algoritmos de processamento da junção espacial apresentam alto custo devido a dois fatores: i) tamanho e complexidade dos objetos das bases de dados envolvidas e ii) algoritmos de geometria computacional com alta demanda de uso da CPU [21]. Os SIGs devem ser capazes de executar consultas de junção espacial de forma eficiente para atenderem aos requisitos de tempo real das aplicações. As soluções centralizadas são limitadas pelo poder de processamento e armazenamento de um único servidor. Mesmo soluções paralelas com réplicas de servidores de grande porte têm a sua escalabilidade de processamento e armazenamento de dados limitada pelas necessidades de processamento de grande quantidade de requisições simultâneas, sincronização, movimentação e armazenamento de grande volume de dados em cada réplica, além de muitas vezes tornar a solução inviável financeiramente [11]. Com isto emergiram os SGBDE distribuídos (SGBDED), que podem ser definidos como um conjunto de computadores interconectados por uma rede de computadores que cooperam para a realização de operações de geoprocessamento nas bases de dados disponíveis no sistema. Esta solução possui diversas vantagens: A utilização de clusters de computadores permite aumentar ou diminuir o poder de processamento com a inclusão ou exclusão de servidores. Desta forma, investimentos são realizados de acordo com a demanda de recursos computacionais (CPU, memória, armazenamento, etc); A carga de trabalho pode ser distribuída entre os servidores do cluster. Caso um servidor venha a falhar, o serviço continua a ser disponibilizado pelos outros servidores do cluster; Os clusters podem ser formados por computadores convencionais de baixo custo.

18 16 Diante dos recursos computacionais disponíveis em um cluster de computadores, os SGBDEDs devem ser capazes de paralelizar o processamento da junção espacial entre estes computadores de forma a aproveitar os recursos disponíveis. Com isso, alguns desafios são identificados, tais como a distribuição dos dados pelo cluster e o processamento paralelo e distribuído da junção espacial. O objetivo deste trabalho é apresentar uma plataforma de processamento paralelo e distribuído da junção espacial em um cluster de computadores, utilizando técnicas de distribuição de dados para bases de dados dinâmicas. Esta plataforma apresenta uma arquitetura peer-to-peer com tratamento de falhas, protocolos de comunicação, um sistema de armazenamento, funções de manipulação de objetos espaciais e tratamento de concorrência e consistência que permitem que a junção espacial seja executada de forma paralela e distribuída. Duas novas técnicas de distribuição de dados com bases de dados dinâmicas são propostas neste trabalho: Proximity Area e Grid Proximity Area. Os trabalhos encontrados na literatura têm explorado técnicas de distribuição de dados indicadas para bases de dados estáticas, onde qualquer atualização da base de dados requer que todos os dados sejam novamente distribuídos pelo cluster. Isto se torna inviável com grandes bases de dados e que sofrem constantes atualizações. As técnicas de distribuição de dados propostas neste trabalho conseguem atualizar a base de dados sem que haja a necessidade de redistribuir os objetos pelo cluster. Essas técnicas foram avaliadas para determinar em quais cenários cada uma delas é mais indicada. Para tal, foram realizados experimentos utilizando bases de dados com características diferentes e com clusters de tamanho variável com o objetivo de avaliar a junção espacial distribuída com cada técnica de distribuição de dados. As principais contribuições deste trabalho são: Uma plataforma de geoprocessamento distribuído que pode ser utilizada na provisão de diversos serviços de inteligência geográfica; Um algoritmo distribuído para o processamento da junção espacial; Duas novas técnicas de distribuição de dados para bases de dados dinâmicas; Estudo do impacto da distribuição de dados no processamento da junção espacial distribuída com bases de dados dinâmicas. O restante do trabalho está organizado como segue. O Capítulo 2 apresenta uma revisão das estruturas de dados espaciais existentes e a visão geral da operação de junção espacial. O Capítulo 3 apresenta a arquitetura da plataforma DistJoin e o algoritmo de junção espacial em um ambiente distribuído. No Capítulo 4 são apresentadas as técnicas de distribuição de dados para bases de dados dinâmicas: Proximity Area e Grid Proximity Area. O Capítulo 5 descreve a metodologia e os resultados dos testes de junção espacial

19 17 executados na plataforma. O Capítulo 6 compara a plataforma DistJoin com as estratégias encontradas na literatura para o processamento da junção espacial distribuída com bases de dados dinâmicas. O Capítulo 7 apresenta as conclusões deste trabalho e uma breve descrição dos trabalhos futuros.

20 Processamento de Dados Espaciais CAPÍTULO 2 Árvores de pesquisa são uma forma comum de indexar um conjunto de dados e permitir que a busca por um elemento seja executada em tempo logarítmico em relação ao número de nós da árvore [7]. Os sistemas de bancos de dados relacionais apresentam diversas estruturas de indexação, sendo a árvore B [7] a mais utilizada. Entretanto, em sistemas de bancos de dados espaciais, estas estruturas de dados relacionais não são apropriadas para o processamento de consultas espaciais, pois os objetos armazenados são multidimensionais [14]. A indexação de dados espaciais vem sendo pesquisada desde 1975, o que ocasionou o surgimento de diversas estruturas de dados, sendo estas as principais: K- D Tree[3], Quad-Tree[37], R-Tree [14] e a Hilbert R-Tree [19]. A R-Tree é a estrutura de dados mais comumente utilizada nos bancos de dados espaciais e foi escolhida como estrutura de dados para indexar as bases de dados no nosso trabalho. 2.1 R-Tree Uma R-Tree é uma árvore balanceada por altura, semelhante a árvores B + [8], com ponteiros para objetos espaciais nos nós folhas. É uma estrutura de dados hierárquica que utiliza retângulos para organizar um conjunto dinâmico de objetos espaciais, de maneira que objetos colocalizados fiquem armazenados próximos uns dos outros e que haja uma redução no espaço de busca a cada nível da árvore [14]. Os nós internos da R-Tree contêm a delimitação de retângulos que englobam todos os retângulos dos nós nos níveis inferiores. Estes retângulos, chamados de MBRs (Minimum Bounding Rectangle), possuem área o menor possível para envolver as geometrias dos filhos. Na Figura 2.1(b), o MBR de r1 é o menor retângulo possível para envolver os filhos 1 e 2. A Figura 2.1(b) retrata o desenho dos MBRs de r1 e r2 agrupando os objetos espaciais de 1 a 4 em subconjuntos, de acordo com sua localização. A Figura 2.1(a) ilustra a estrutura hierárquica da R-Tree com um nó interno raiz (raiz r1,r2), nós folhas (r1..r2 1..4) e um último nível com os objetos espaciais. As regras básicas para formação de uma R-Tree são semelhantes às de uma árvore B +,

21 2.2 Junção espacial 19 onde todas as folhas aparecem sempre no mesmo nível da árvore. Cada nó armazena no máximo M e no mínimo m M 2 entradas [14]. Para cada entrada (I, child) em um nó interno, I representa o MBR que contém espacialmente o retângulo do nó filho e child contém o ponteiro para o nó filho. Para cada entrada (I, ptr) em um nó folha, I representa o MBR que contém espacialmente o polígono da entrada e ptr o ponteiro para o objeto espacial no banco de dados. O nó raiz da R-Tree apresentada da Figura 2.1(a) possui duas entradas: uma aponta para r1 e a outra para r2. Para a entrada que aponta para r1, por exemplo, I é o menor retângulo que engloba r1 e child o ponteiro para r1. O nó r1 apresenta duas entradas: uma aponta para o objeto espacial 1 e outra para o objeto espacial 2. Para a entrada que aponta para 1, I representa o menor retângulo possível que engloba o polígono de 1 e ptr o ponteiro que indica onde o objeto espacial 1 está armazenado no banco de dados. (a) Índice espacial R-Tree (b) Disposição espacial dos objetos geográficos Figura 2.1: Estrutura de dados espacial 2.2 Junção espacial A junção espacial pode ser definida a partir de duas relações R = r 1,...,r n e S = s 1,...,s m, onde r i e s j são objetos espaciais, 1 i n e 1 j m. A operação verifica todos os pares (r i, s j ) que satisfazem o predicado de um operador topológico, por exemplo, a interseção, isto é, r i s j /0 [18]. Este trabalho utiliza um algoritmo de junção espacial que caminha por duas relações R e S indexadas por R-Trees [5]. O processamento da junção é realizado em duas etapas: etapa de filtragem e etapa de refinamento [33]. A etapa de filtragem inicia na raiz das duas relações R e S e é

22 2.2 Junção espacial 20 realizada nos nós internos da R-Tree. A etapa de refinamento é processada entre os objetos espaciais das bases de dados para descartar resultados incorretos resultantes da etapa de filtragem. A etapa de filtragem utiliza aproximações das geometrias dos objetos na operação de intersecção para gerar um conjunto de possíveis respostas à consulta. Aproximações são polígonos utilizados para reduzir a complexidade das geometrias para poucos pontos geométricos [4]. A Figura 2.2(a) apresenta um exemplo de uma geometria com vários pontos representada por uma aproximação com MBR que contém dois pontos. Estas aproximações são utilizadas na operação de junção espacial para descartar resultados que não fazem parte da resposta, pois apresentam menor custo de processamento de intersecção do que os polígonos que representam, devido ao menor número de pontos. A ocorrência de intersecção entre duas aproximações não significa que suas respectivas geometrias também intersectam. Um exemplo pode ser observado na Figura 2.2(b), onde as aproximações (MBRs) dos dois polígonos se intersectam, mas os polígonos não. Desta forma, as geometrias são verificadas somente quando as aproximações intersectam, já que as aproximações englobam estes polígonos. (a) Aproximação geométrica de um polígono. (b) Visão de uma junção entre dois polígonos com suas respectivas aproximações geométricas Figura 2.2: Aproximações geométricas A Figura 2.3(a) apresenta um exemplo de junção espacial entre as relações R e S. Os retângulos serrilhados que englobam os polígonos representam suas aproximações na forma de MBR. No nível raiz, o MBR de r1 intersecta com os MBRs de s1 e s2 e o MBR de r2 intersecta com o MBR de s2. Por isso, o conjunto de saída da etapa de filtragem é formado pelos pares (r1, s1), (r1, s2) e (r2, s2). Observando a Figura 2.3(b), nas folhas são analisados os nós filhos de (r1, s1), (r1, s2) e (r2, s2). Nesta fase, houve a necessidade de verificar os seguintes conjuntos de pares de candidatos {(1, A), (1, B), (1, C), (1, D), (1, E), (1, F), (2, A), (2, B), (2, C), (2, D), (2, E), (2, F), (3, D), (3, E), (3, F), (4, D), (4, E), (4, F)}.

23 2.2 Junção espacial 21 (a) Disposição espacial das relações R e S (b) Indexação das relações R e S na R*-Tree Figura 2.3: Junção espacial entre as relações R e S Dentre o conjunto de pares de candidatos, apenas (1, D) e (2, A) fizeram parte do resultado de processamento da fase de filtragem nos nós internos. Isto porque apenas suas respectivas aproximações (MBRs serrilhados) intersectam dentre o conjunto de pares de candidatos. Neste caso, são obtidas as geometrias associadas aos pares de candidatos para execução da fase de refinamento. Como apresentado na Figura 2.4, apenas (1, D) fez parte do resultado final por apresentar intersecção entre seus respectivos polígonos. O par de candidatos (2, A) apresenta intersecção das aproximações, mas não apresenta intersecção entre os polígonos. Figura 2.4: Processamento do algoritmo de intersecção entre os polígonos de (1, D) e (2, A). A utilização de R-Trees na junção espacial traz consigo os problemas da R-Tree, isto é, áreas de sobreposição e áreas mortas, como pode ser visto no exemplo a seguir. Estas áreas de sobreposição resultam em uma grande quantidade de comparações e as áreas mortas em comparações desnecessárias, o que prejudica o desempenho da operação de junção espacial [31]. As duas relações R e S estão indexadas, no nosso trabalho, por duas R*-Trees para reduzir estas áreas de sobreposição e áreas mortas. Este problema, entretanto, só é resolvido de forma eficiente com a ciência a priori dos objetos a serem inseridos e a construção de estruturas de indexação espacial estáticas [31]. Estas estruturas de indexação devem ser reconstruídas a cada atualização da base de dados, o que é inviável para o escopo deste trabalho, que utiliza bases de dados dinâmicas.

24 2.2 Junção espacial 22 Figura 2.5: Exemplo com área morta e área de sobreposição. No exemplo apresentado na Figura 2.3, pode-se observar o efeito de espaços mortos e áreas de sobreposição no processamento da junção espacial. Espaço morto é a área adicional do MBR necessária para cobrir a geometria como um todo. Na Figura 2.5, a área não preenchida pelo polígono é um exemplo de espaço morto. Áreas sobrepostas são regiões de interseção entre polígonos ou aproximações de polígonos, como ilustrado na Figura 2.5, entre os objetos espaciais 1 e 2. No exemplo da Figura 2.3, a área de sobreposição entre r1 e s1 causou um processamento desnecessário dos ramos da árvore descendentes de r1 e s1. Estes ramos não tinham pares de objetos que fizessem parte do resultado final, já que o par (1, D) é descendente dos ramos de r1 e s2. O par r2 e s2 apresenta intersecção em uma área de espaço morto. Isto também ocasionou um processamento desnecessário nos ramos descendentes deste par, já que estas áreas de espaço morto não geram resultados em operações de junção espacial.

25 CAPÍTULO 3 Processamento da junção espacial distribuída Os algoritmos de junção espacial apresentam alto custo de processamento devido aos seguintes fatores: i) tamanho e complexidade dos objetos das bases de dados envolvidas e ii) processamento de algoritmos de geometria computacional com alta demanda de uso da CPU [21]. Por isso, as pesquisas têm se concentrado em processar a junção espacial de forma paralela e distribuída em um cluster de computadores. Entretanto, o processamento da junção espacial distribuída em um cluster de computadores apresenta alguns desafios: 1. O tráfego de dados na rede deve ser reduzido, pois impacta de forma significativa no desempenho do algoritmo de junção espacial distribuída; 2. O processamento paralelo e distribuído da junção espacial deve aproveitar da melhor forma possível os recursos disponíveis no cluster (e.g., CPU, disco, memória, etc); 3. Escalabilidade; 4. Tratamento de falhas; 5. Tratamento de concorrência e consistência. O tráfego de dados na rede é reduzido neste trabalho utilizando uma técnica conhecida como Semi-Junção espacial, apresentada na Seção 3.1, e técnicas de Distribuição de Dados, apresentadas no Capítulo 4. Estas técnicas de Distribuição de Dados distribuem os objetos espaciais pelo cluster, de forma que os recursos disponíveis no cluster sejam aproveitados para o processamento paralelo e distribuído da junção espacial. A plataforma DistJoin, descrita na Seção 3.2, apresenta uma arquitetura peer-topeer escalável com técnicas para tratamento de falhas nos servidores. Os algoritmos de tratamento de concorrência e consistência necessários para o processamento paralelo e distribuído da junção espacial foram implementados de forma similar a [10]. Neste Capítulo, apresentamos na Seção 3.1 a descrição do algoritmo de junção espacial distribuída implementado neste trabalho, juntamente com a técnica conhecida como Semi-Junção Espacial. Na Seção 3.2 é apresentada a plataforma de processamento da junção espacial distribuída, denominada DistJoin.

26 3.1 Algoritmo de junção espacial distribuída Algoritmo de junção espacial distribuída O algoritmo de processamento da junção espacial implementado neste trabalho é semelhante ao apresentado na Seção 2.2 para a versão centralizada. Na versão distribuída, há a necessidade de trocar mensagens na rede para acessar os objetos distribuídos. A Figura 3.1 ilustra as R-Trees das duas bases de dados, R e S, apresentadas na Figura 2.3(b), distribuídas em um cluster de computadores. Nem sempre os dados necessários para a junção entre as bases de dados estão disponíveis localmente. No exemplo da Seção 2.2 apresentado na Figura 2.3, a junção espacial entre R e S teve como resultado o par (1, D). Observando a Figura 3.1, percebe-se que os objetos 1 e D estão localizados em máquinas diferentes. Portanto, para processar a junção espacial entre os dois objetos, um deles deve ser trafegado na rede até o local em que está armazenado o outro objeto. Figura 3.1: R-Tree distribuída Para reduzir o tráfego de dados na rede, este trabalho utiliza uma técnica conhecida como Semi-Junção Espacial. O algoritmo de Semi-Junção Espacial, implementado neste trabalho, é realizado entre dois objetos espaciais, referentes a duas bases de dados R e S diferentes, localizadas nos servidores R site e S site, respectivamente. O algoritmo executa os seguintes passos: 1. Em S site, é construída uma aproximação, s, do polígono s da base de dados S, para ser enviada para R site ; 2. Em R site, se o polígono r, que pertence a base de dados R, e s apresentarem intersecção, então, envia-se r para S site ; caso contrário, o algoritmo retorna vazio. 3. Em S site, é executado o algoritmo de intersecção entre os dois polígonos s e r. Caso apresentem intersecção, são retornados como um dos pares de resultados da consulta. O passo 1 do algoritmo envia a aproximação do polígono do objeto espacial de S, denominada s, para R site. No passo 2, é realizada a junção entre s e o polígono r. A

27 3.2 DistJoin: Plataforma de Processamento Distribuído da Junção Espacial 25 aproximação têm menos pontos que a geometria real, o que minimiza o processamento da computação geométrica entre s e r, já que o custo dos algoritmos espaciais são proporcionais ao número de pontos das geometrias envolvidas. Como as aproximações possuem espaços mortos, elas filtram apenas os resultados que não fazem parte da resposta. Por isso, é retornado o polígono r para S site, caso s e r apresentem intersecção. O algoritmo de intersecção é executado no passo 3 entre os polígonos s e r para verificar se apresentam intersecção. Caso apresentem, os dois objetos são retornados como um dos pares de resultados da consulta. A Semi-Junção Espacial apresenta um desafio: escolher qual das duas bases de dados envolvidas na junção espacial será R e qual será S. No passo 1 é transferida a aproximação do polígono do objeto espacial de S e no passo 2 é transferido o polígono de R como resposta. Por isso, para reduzir o tráfego na rede, a base de dados S será aquela cuja geometria apresente maior número de pontos, já que é transferida apenas sua aproximação pela rede. No exemplo da Figura 2.3 com o par (1, D), o polígono 1 contém mais pontos que D e, por isso, é enviada sua aproximação no passo 1 e retornado o polígono D como resposta no passo 2. No passo 3 do algoritmo é realizada a junção final entre os dois polígonos 1 e D. 3.2 DistJoin: Plataforma de Processamento Distribuído da Junção Espacial Neste trabalho foi projetada e implementada uma plataforma de processamento da junção espacial distribuída denominada DistJoin. Esta Seção apresenta a sua arquitetura e os detalhes da implementação. Foram criados diversos componentes na plataforma, como armazenamento, controle de concorrência, comunicação e gerência da distribuição dos dados. A criação destes componentes tornou-se necessária para abstrair a complexidade de implementação dos algoritmos de operações espaciais, como a junção espacial distribuída. Além disso, estes componentes foram implementados de forma a melhorar o desempenho da junção espacial distribuída. A Subseção apresenta uma visão geral da arquitetura da plataforma, A Subseção descreve o protocolo de comunicação utilizado entre os servidores do cluster, A Subseção apresenta os detalhes e desafios encontrados na implementação da plataforma e a Subseção apresenta as considerações finais.

28 3.2 DistJoin: Plataforma de Processamento Distribuído da Junção Espacial Visão geral da Arquitetura O interesse pela utilização de clusters de computadores para solução de problemas computacionais complexos tem aumentado, principalmente, devido a seu custo financeiro reduzido em relação à máquinas de alto desempenho. Por isso, é proposta neste trabalho uma plataforma com arquitetura peer-to-peer escalável, denominada DistJoin, para o processamento distribuído da junção espacial em um cluster de computadores. A Figura 3.2 apresenta a visão geral da arquitetura da plataforma DistJoin. Esta arquitetura é composta por duas camadas: Camada de Aplicações e Camada de Armazenamento e Processamento. Figura 3.2: Arquitetura da Plataforma DistJoin A Camada de Aplicações é composta pela API Cliente e Aplicações que utilizam o serviço. A API Cliente tem a função de abstrair os detalhes de conexão e comunicação com as demais camadas e, com isso, facilitar a implementação das aplicações que utilizam a plataforma DistJoin para prover serviços de valor agregado ao usuário final. Basicamente, a API disponibiliza métodos para atualização e consultas nas bases de dados espaciais, sem que cada aplicação tenha que lidar com detalhes da implementação das operações espaciais. Devido à arquitetura peer-to-peer, as requisições de operações espaciais enviadas pelas aplicações podem ser processadas em qualquer servidor no cluster. Quando uma aplicação conecta-se a um servidor do cluster, aquele servidor torna-se o coordenador daquela operação espacial em particular. A tarefa do coordenador é agir como um proxy entre a aplicação e os servidores que serão requisitados na operação espacial. Na Camada de Armazenamento e Processamento estão os componentes de armazenamento, controle de concorrência, comunicação, gerência da distribuição dos dados, além dos algoritmos de processamento da junção espacial distribuída. A plataforma DistJoin possui um conjunto de computadores independentes conectados em um cluster, onde todos os servidores deste cluster são peers. Ou seja, não existe um servidor master ou um processo de gerenciamento centralizado que possa se tornar um ponto de falha

29 3.2 DistJoin: Plataforma de Processamento Distribuído da Junção Espacial 27 ou um gargalo no sistema. Em caso de falhas, os servidores com problemas podem ser trocados sem que o cluster fique inativo. Cada objeto da base de dados é replicado em múltiplos servidores do cluster para assegurar que o sistema apresente tolerância a falhas e confiabilidade. Além disso, as requisições sobre um objeto podem ser balanceadas entre os servidores que apresentem alguma réplica do mesmo. O objeto é armazenado em um servidor no cluster e replicado em n servidores, onde n é o número de réplicas do objeto no sistema. Todas as réplicas são igualmente importantes, ou seja, não existe uma réplica primária ou master. Em operações de atualização das bases de dados, o coordenador responsável pela requisição envia a operação para todos os servidores responsáveis por alguma réplica do objeto ob j que será atualizado no sistema. Quando os servidores confirmarem a escrita de ob j, é enviada para a Aplicação uma confirmação da operação. Em operações de consulta nas bases de dados, o coordenador envia a requisição para o servidor que armazena uma réplica de ob j. Este servidor, então, fica responsável por executar a operação de consulta sobre ob j. Novas máquinas podem ser adicionadas sem que o cluster fique inativo ou sejam interrompidos os serviços para a Camada de Aplicações. A adição de novas máquinas aumenta o throughput das operações de escrita e leitura. A Camada de Armazenamento e Processamento possui uma memória cache, configurada em um arquivo de configuração, que guarda os objetos requisitados do disco rígido ou de outros servidores. Esta cache é gerenciada utilizando um algoritmo LRU (Least Recently Used), que descarta os itens menos usados recentemente Protocolo de Comunicação A plataforma DistJoin possui um protocolo de comunicação, baseado no protocolo Gossip [12]. Os servidores trocam periodicamente informações com outros servidores que eles conhecem. Estas informações de estado carregam dados de monitoramento das máquinas, como uso de CPU, memória, rede e disco. Quando um servidor inicia, ele entra em contato com alguns servidores semeadores para obter informações sobre todos os servidores no cluster. Cada servidor troca mensagens de estado com até outros três servidores no cluster a cada segundo. Como os servidores trocam informações sobre si mesmos e sobre outros dos quais eles receberam informações, então todos no cluster rapidamente recebem informações sobre todos os servidores no cluster. Cada mensagem trocada pelo protocolo possui um número de versão associada. Usando este número de versão durante a troca de mensagens, informações antigas são substituídas por informações mais recentes.

30 3.2 DistJoin: Plataforma de Processamento Distribuído da Junção Espacial 28 Através desta troca de informações de estado, é possível detectar pontos de falha no cluster e evitar que requisições sejam enviadas para servidores que estão inacessíveis. Falhas em servidores podem ser provocadas por vários motivos, como falhas no hardware e na rede. Algumas falhas são temporárias e, por isso, podem resultar em uma remoção precoce do servidor do cluster. Por isso, os servidores continuam, periodicamente, contactando os servidores inativos para verificar se estes estão de volta à normalidade. Este protocolo também é responsável pela entrega de respostas ao cliente. Como os resultados estão espalhados pelos servidores e o cliente não conhece a quantidade de resultados que serão retornados, foi implementada uma funcionalidade que indica ao cliente quais servidores estão processando a requisição. Os servidores enviam ao cliente as respostas da consulta, caso existam, ou uma mensagem indicando o término do processamento naquele servidor Detalhes da Implementação A plataforma DistJoin foi implementada utilizando a linguagem Java. A escolha da linguagem foi baseada principalmente na existência de bibliotecas para manipulação de objetos espaciais de fácil utilização, além da maior quantidade de recursos nativos na linguagem para se trabalhar com comunicação e paralelismo em sistemas distribuídos. Na implementação, foram utilizadas as seguintes bibliotecas: Gossip: para troca de estado entre os servidores do cluster; Zookeeper: Coordenador de sistemas distribuídos, utilizado pela ferramenta de testes 1 ; Geotools: Um conjunto de ferramentas e classes para processamento e visualização de objetos espaciais 2 ; JTS (Java Topology Suite): uma API, implementada totalmente em Java, completa, consistente e robusta com algoritmos de manipulação de objetos espaciais 2D 3 ; Cada servidor na plataforma possui uma fila local de mensagens para armazenar requisições que chegam e não podem ser processadas no exato momento. Esta fila é processada por um pool de threads que coordena as threads do sistema e quais requisições da fila cada thread irá atender. Este pool de threads pode ser dimensionado através de parâmetros, o que permite que o sistema explore o paralelismo oferecido por computadores multinúcleo ou multiprocessados

31 3.2 DistJoin: Plataforma de Processamento Distribuído da Junção Espacial 29 Todas as mensagens trocadas pelo sistema utilizam uma biblioteca RMI como canal de comunicação. Este padrão é utilizado para enviar requisições de um cliente para a plataforma e para troca de mensagens entre os servidores do cluster. Um Sistema de Lock R/W distribuído, similar a [10], foi implementado na plataforma, para evitar inconsistência nas bases de dados armazenadas. Por isso, quando uma operação de leitura está sendo realizada em um determinado objeto, apenas operações de leitura podem ser executadas ao mesmo tempo. Mas, quando uma operação de escrita está sendo realizada em um determinado objeto, nenhuma operação de escrita ou leitura pode processar sobre este objeto. Uma aplicação de testes foi desenvolvida para automatizar a execução da bateria de experimentos. Esta aplicação de testes é responsável por iniciar os servidores, inserir as bases de dados, enviar as requisições de consultas e coletar os resultados e as métricas dos testes. Esta aplicação de testes utiliza o Zookeeper para comunicar com as máquinas do cluster. Por isso, cada máquina do cluster possui um cliente do Zookeeper para receber as requisições vindas da aplicação de testes. Foi construído, na aplicação de testes, um módulo de envio e recebimento de arquivos. Este módulo é utilizado na inicialização dos servidores, onde são enviados, para todas as máquinas que irão fazer parte dos experimentos, os arquivos necessários para que os servidores sejam iniciados de forma correta. A aplicação de testes consegue identificar problemas nas operações espaciais, e reexecutar as operações caso necessário. Ao final de cada teste, limpa todo o ambiente de execução e coleta os arquivos com os logs dos servidores Considerações Finais A plataforma DistJoin foi implementada para processar operações espaciais distribuídas em um cluster de computadores com um enfoque na operação de junção espacial distribuída. A plataforma possui arquitetura peer-to-peer escalável, com alta disponibilidade e tolerante a falhas que permite processar a operação de junção espacial distribuída de forma eficiente. A DistJoin possui protocolos de comunicação, um sistema de armazenamento e funções de manipulação de objetos espaciais que permitem facilmente a provisão de novos serviços de inteligência geográfica. A utilização da arquitetura peer-to-peer resultou em uma complexidade maior de implementação do Protocolo de Comunicação. Este protocolo ficou responsável, além da troca de mensagens, por identificar servidores inativos e rotear mensagens com destino

32 3.2 DistJoin: Plataforma de Processamento Distribuído da Junção Espacial 30 a estes servidores para outros, sem utilizar um servidor master para gerenciar estas operações. Devido a falta de um relógio global para sincronizar os eventos, a depuração do código em busca de erros foi um grande desafio na construção da plataforma. Por isso, detectar possíveis pontos de dead lock e starvation demandaram intenso trabalho de execução de experimentos e análise de logs coletados nos servidores do cluster. A aplicação de testes facilitou a execução dos experimentos, pois esta configura o cluster e coleta os resultados, métricas e os logs nos servidores. Para que não fosse preciso permanecer monitorando os testes, foi implementada uma funcionalidade para identificar problemas nos testes e reexecutá-los caso fosse necessário. Esta funcionalidade gerou um grande desafio: identificar qual tipo de erro estava ocorrendo no teste e reagir de forma correta ao erro. A plataforma DistJoin ainda apresenta algumas otimizações a serem implementadas. O Sistema de Balanceamento de Carga das réplicas de um objeto espacial será evoluído. Diante de informações de estado de todos os servidores, o algoritmo irá escolher o servidor com menor carga para processar uma operação sobre um objeto. Desta forma, o cluster teria seus recursos melhor aproveitados e diminuiria a probabilidade de sobrecarregar um servidor. O Sistema de Lock também será evoluído para que operações de escrita e leitura possam processar ao mesmo tempo. Para tal, estão sendo estudados alguns algoritmos de controle de concorrência utilizados em bancos de dados como PostgreSql e Oracle. Esta evolução no Sistema de Lock irá afetar diretamente o desempenho de aplicações que trabalham com bases de dados dinâmicas. Para processar a junção espacial distribuída de forma eficiente, são propostas neste trabalho duas técnicas de distribuição de dados para bases de dados dinâmicas: Proximity Area e Grid Proximity Area. Estas técnicas serão apresentadas no Capítulo 4.

33 Distribuição de Dados com Bases de Dados Dinâmicas CAPÍTULO 4 A distribuição de dados pelas máquinas do cluster é o fator que mais influencia no paralelismo em um ambiente clusterizado [29] e tem como objetivo permitir que a junção espacial seja executada de forma paralela e distribuída. Conforme a taxonomia definida em [1], os objetos das bases de dados são inseridos e distribuídos pelo cluster, na plataforma DistJoin, com as seguintes características: Unidade de alocação: elemento cada objeto da base de dados é alocado individualmente em uma máquina; Política de distribuição: clustering e balanceada aloca objetos espacialmente próximos na mesma máquina (clustering), além de manter o balanceamento dos dados entre as máquinas do cluster. Frequência de alocação: dinâmica decisões sobre em qual máquina inserir um novo objeto são realizadas dinamicamente sem que seja necessária a redistribuição de todos os objetos. Os trabalhos encontrados na literatura têm explorado técnicas de distribuição em bases de dados estáticas (frequência de alocação estática), onde os objetos são distribuídos novamente pelo cluster a cada atualização da base de dados. Isto é inviável para bases de dados dinâmicas, que sofrem constantes atualizações. Este trabalho apresenta dois novos algoritmos de distribuição apropriados para bases de dados dinâmicas: Proximity Area e Grid Proximity Area. Estes dois algoritmos buscam atender aos dois requisitos principais de distribuição de dados: a) os dados devem ser distribuídos de forma balanceada pelas máquinas do cluster; b) uma máquina deve possuir a maior parte dos dados que precisa para processar uma operação localmente (Princípio da Localidade), ou seja, não é necessário obter dados de outra máquina. A distribuição dos dados de forma balanceada pelo cluster permite que o processamento da junção espacial seja distribuído pelas máquinas. Desta forma, os recursos

1 http://www.google.com

1 http://www.google.com 1 Introdução A computação em grade se caracteriza pelo uso de recursos computacionais distribuídos em várias redes. Os diversos nós contribuem com capacidade de processamento, armazenamento de dados ou

Leia mais

MÓDULO 8 ARQUITETURA DOS SISTEMAS DE BANCO DE DADOS

MÓDULO 8 ARQUITETURA DOS SISTEMAS DE BANCO DE DADOS MÓDULO 8 ARQUITETURA DOS SISTEMAS DE BANCO DE DADOS Quando falamos em arquitetura, normalmente utilizamos esse termo para referenciar a forma como os aplicativos computacionais são estruturados e os hardwares

Leia mais

SISTEMAS DISTRIBUIDOS

SISTEMAS DISTRIBUIDOS 1 2 Caracterização de Sistemas Distribuídos: Os sistemas distribuídos estão em toda parte. A Internet permite que usuários de todo o mundo acessem seus serviços onde quer que possam estar. Cada organização

Leia mais

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos MÓDULO 7 Modelo OSI A maioria das redes são organizadas como pilhas ou níveis de camadas, umas sobre as outras, sendo feito com o intuito de reduzir a complexidade do projeto da rede. O objetivo de cada

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Modelo Cliente-Servidor: Introdução aos tipos de servidores e clientes Prof. MSc. Hugo Souza Iniciando o módulo 03 da primeira unidade, iremos abordar sobre o Modelo Cliente-Servidor

Leia mais

Arquitetura dos Sistemas de Informação Distribuídos

Arquitetura dos Sistemas de Informação Distribuídos Arquitetura dos Sistemas de Informação Distribuídos Quando se projeta um sistema cuja utilização é destinada a ser feita em ambientes do mundo real, projeções devem ser feitas para que o sistema possa

Leia mais

Prof. Marcelo Machado Cunha www.marcelomachado.com mcelobr@yahoo.com.br

Prof. Marcelo Machado Cunha www.marcelomachado.com mcelobr@yahoo.com.br Prof. Marcelo Machado Cunha www.marcelomachado.com mcelobr@yahoo.com.br Ementa Introdução a Banco de Dados (Conceito, propriedades), Arquivos de dados x Bancos de dados, Profissionais de Banco de dados,

Leia mais

A memória é um recurso fundamental e de extrema importância para a operação de qualquer Sistema Computacional; A memória trata-se de uma grande

A memória é um recurso fundamental e de extrema importância para a operação de qualquer Sistema Computacional; A memória trata-se de uma grande A memória é um recurso fundamental e de extrema importância para a operação de qualquer Sistema Computacional; A memória trata-se de uma grande região de armazenamento formada por bytes ou palavras, cada

Leia mais

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Processos- Clientes, Servidores, Migração Capítulo 3 Agenda Clientes Interfaces de usuário em rede Sistema X Window Software do lado cliente para

Leia mais

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

Leia mais

Comparativo de desempenho do Pervasive PSQL v11

Comparativo de desempenho do Pervasive PSQL v11 Comparativo de desempenho do Pervasive PSQL v11 Um artigo Pervasive PSQL Setembro de 2010 Conteúdo Resumo executivo... 3 O impacto das novas arquiteturas de hardware nos aplicativos... 3 O projeto do Pervasive

Leia mais

IMPLEMENTAÇÃO DE SOCKETS E THREADS NO DESENVOLVIMENTO DE SISTEMAS CLIENTE / SERVIDOR: UM ESTUDO EM VB.NET

IMPLEMENTAÇÃO DE SOCKETS E THREADS NO DESENVOLVIMENTO DE SISTEMAS CLIENTE / SERVIDOR: UM ESTUDO EM VB.NET 1 IMPLEMENTAÇÃO DE SOCKETS E THREADS NO DESENVOLVIMENTO DE SISTEMAS CLIENTE / SERVIDOR: UM ESTUDO EM VB.NET Daniel da Silva Carla E. de Castro Franco Diogo Florenzano Avelino daniel.silva1@ext.mpsa.com

Leia mais

Sistemas Distribuídos. Aleardo Manacero Jr.

Sistemas Distribuídos. Aleardo Manacero Jr. Sistemas Distribuídos Aleardo Manacero Jr. Conteúdo Conceitos fundamentais Estratégias de controle: relógios e algoritmos de sincronismo Serviços: arquivos e memória Corba Processamento distribuído Sistemas

Leia mais

Disciplina de Banco de Dados Introdução

Disciplina de Banco de Dados Introdução Disciplina de Banco de Dados Introdução Prof. Elisa Maria Pivetta CAFW - UFSM Banco de Dados: Conceitos A empresa JJ. Gomes tem uma lista com mais ou menos 4.000 nomes de clientes bem como seus dados pessoais.

Leia mais

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP) Hardware (Nível 0) Organização O AS/400 isola os usuários das características do hardware através de uma arquitetura de camadas. Vários modelos da família AS/400 de computadores de médio porte estão disponíveis,

Leia mais

Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi

Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi 5 Conclusão Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi permitir que scripts Lua instanciem e usem

Leia mais

SISTEMAS DISTRIBUÍDOS

SISTEMAS DISTRIBUÍDOS SISTEMAS DISTRIBUÍDOS Cluster, Grid e computação em nuvem Slide 8 Nielsen C. Damasceno Introdução Inicialmente, os ambientes distribuídos eram formados através de um cluster. Com o avanço das tecnologias

Leia mais

5 Estudo de caso: utilizando o sistema para requisição de material

5 Estudo de caso: utilizando o sistema para requisição de material 61 5 Estudo de caso: utilizando o sistema para requisição de material A fim de avaliar as características da arquitetura proposta e a corretude da implementação, realizamos experiências com cenários de

Leia mais

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource www.netsource.com.br Rev: 02

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource www.netsource.com.br Rev: 02 ArpPrintServer Sistema de Gerenciamento de Impressão By Netsource www.netsource.com.br Rev: 02 1 Sumário INTRODUÇÃO... 3 CARACTERÍSTICAS PRINCIPAIS DO SISTEMA... 3 REQUISITOS DE SISTEMA... 4 INSTALAÇÃO

Leia mais

Faculdades Santa Cruz - Inove. Plano de Aula Base: Livro - Distributed Systems Professor: Jean Louis de Oliveira.

Faculdades Santa Cruz - Inove. Plano de Aula Base: Livro - Distributed Systems Professor: Jean Louis de Oliveira. Período letivo: 4 Semestre. Quinzena: 5ª. Faculdades Santa Cruz - Inove Plano de Aula Base: Livro - Distributed Systems Professor: Jean Louis de Oliveira. Unidade Curricular Sistemas Distribuídos Processos

Leia mais

Processamento da Junção Espacial Distribuída utilizando a técnica de Semi-Junção Espacial

Processamento da Junção Espacial Distribuída utilizando a técnica de Semi-Junção Espacial Processamento da Junção Espacial Distribuída utilizando a técnica de Semi-Junção Espacial Sávio S. Teles de Oliveira 2, Anderson R. Cunha 2, Vagner J. do Sacramento Rodrigues 2, Wellington S. Martins 1

Leia mais

Entendendo como funciona o NAT

Entendendo como funciona o NAT Entendendo como funciona o NAT Vamos inicialmente entender exatamente qual a função do NAT e em que situações ele é indicado. O NAT surgiu como uma alternativa real para o problema de falta de endereços

Leia mais

ISO/IEC 12207: Gerência de Configuração

ISO/IEC 12207: Gerência de Configuração ISO/IEC 12207: Gerência de Configuração Durante o processo de desenvolvimento de um software, é produzida uma grande quantidade de itens de informação que podem ser alterados durante o processo Para que

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Aula 13 Gerência de Memória Prof.: Edilberto M. Silva http://www.edilms.eti.br Baseado no material disponibilizado por: SO - Prof. Edilberto Silva Prof. José Juan Espantoso Sumário

Leia mais

SISTEMAS DISTRIBUÍDOS

SISTEMAS DISTRIBUÍDOS SISTEMAS DISTRIBUÍDOS Comunicação coletiva Modelo Peer-to-Peer Slide 6 Nielsen C. Damasceno Introdução Os modelos anteriores eram realizado entre duas partes: Cliente e Servidor. Com RPC e RMI não é possível

Leia mais

Prof.: Roberto Franciscatto. Capítulo 1.2 Aspectos Gerais

Prof.: Roberto Franciscatto. Capítulo 1.2 Aspectos Gerais Sistemas Operacionais Prof.: Roberto Franciscatto Capítulo 1.2 Aspectos Gerais Estrutura do Sistema Operacional Principais Funções do Sistema Operacional Tratamento de interrupções e exceções Criação e

Leia mais

SISTEMAS DISTRIBUÍDOS

SISTEMAS DISTRIBUÍDOS SISTEMAS DISTRIBUÍDOS Modelo cliente e servidor Slide 2 Nielsen C. Damasceno Modelos Cliente - Servidor A principal diferença entre um sistema centralizado e um sistema distribuído está na comunicação

Leia mais

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS. Aula 1. Prof. Rafael Dias Ribeiro. M.Sc.

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS. Aula 1. Prof. Rafael Dias Ribeiro. M.Sc. MODELAGEM DE DADOS PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS Aula 1 Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord 1 Objetivos: Apresenta a diferença entre dado e informação e a importância

Leia mais

5 Mecanismo de seleção de componentes

5 Mecanismo de seleção de componentes Mecanismo de seleção de componentes 50 5 Mecanismo de seleção de componentes O Kaluana Original, apresentado em detalhes no capítulo 3 deste trabalho, é um middleware que facilita a construção de aplicações

Leia mais

4 Um Exemplo de Implementação

4 Um Exemplo de Implementação 4 Um Exemplo de Implementação Neste capítulo será discutida uma implementação baseada na arquitetura proposta. Para tanto, será explicado como a arquitetura proposta se casa com as necessidades da aplicação

Leia mais

Capacidade = 512 x 300 x 20000 x 2 x 5 = 30.720.000.000 30,72 GB

Capacidade = 512 x 300 x 20000 x 2 x 5 = 30.720.000.000 30,72 GB Calculando a capacidade de disco: Capacidade = (# bytes/setor) x (méd. # setores/trilha) x (# trilhas/superfície) x (# superfícies/prato) x (# pratos/disco) Exemplo 01: 512 bytes/setor 300 setores/trilha

Leia mais

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio 32 3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio Este capítulo apresenta o framework orientado a aspectos para monitoramento e análise de processos de negócio

Leia mais

Introdução ao Modelos de Duas Camadas Cliente Servidor

Introdução ao Modelos de Duas Camadas Cliente Servidor Introdução ao Modelos de Duas Camadas Cliente Servidor Desenvolvimento de Sistemas Cliente Servidor Prof. Esp. MBA Heuber G. F. Lima Aula 1 Ciclo de Vida Clássico Aonde estamos? Page 2 Análise O que fizemos

Leia mais

Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados

Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Um Sistema Gerenciador de Banco de Dados (SGBD) é constituído por um conjunto de dados associados a um conjunto de programas para acesso a esses

Leia mais

7.Conclusão e Trabalhos Futuros

7.Conclusão e Trabalhos Futuros 7.Conclusão e Trabalhos Futuros 158 7.Conclusão e Trabalhos Futuros 7.1 Conclusões Finais Neste trabalho, foram apresentados novos métodos para aceleração, otimização e gerenciamento do processo de renderização

Leia mais

SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA

SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA 1. INTRODUÇÃO O conceito de concorrência é o princípio básico para o projeto e a implementação dos sistemas operacionais multiprogramáveis. O sistemas multiprogramáveis

Leia mais

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Conceitos básicos e serviços do Sistema Operacional Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Tipos de serviço do S.O. O S.O.

Leia mais

http://aurelio.net/vim/vim-basico.txt Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho

http://aurelio.net/vim/vim-basico.txt Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho vi http://aurelio.net/vim/vim-basico.txt Entrar neste site/arquivo e estudar esse aplicativo Administração de Redes de Computadores Resumo de Serviços em Rede Linux Controlador de Domínio Servidor DNS

Leia mais

SUMÁRIO. Introdução... 3

SUMÁRIO. Introdução... 3 SUMÁRIO Introdução..................................... 3 1 Consultas por Similaridade e Espaços métricos............. 5 1.1 Consultas por abrangência e consultas aos k-vizinhos mais próximos... 5 1.2

Leia mais

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia O Sistema Operacional que você usa é multitasking? Por multitasking, entende-se a capacidade do SO de ter mais de um processos em execução ao mesmo tempo. É claro que, num dado instante, o número de processos

Leia mais

Banco de Dados I. Apresentação (mini-currículo) Conceitos. Disciplina Banco de Dados. Cont... Cont... Edson Thizon (edson@esucri.com.

Banco de Dados I. Apresentação (mini-currículo) Conceitos. Disciplina Banco de Dados. Cont... Cont... Edson Thizon (edson@esucri.com. Sistemas da Informação Banco de Dados I Edson Thizon (edson@esucri.com.br) 2008 Apresentação (mini-currículo) Formação Acadêmica Mestrando em Ciência da Computação (UFSC/ ) Créditos Concluídos. Bacharel

Leia mais

Governança de TI. ITIL v.2&3. parte 1

Governança de TI. ITIL v.2&3. parte 1 Governança de TI ITIL v.2&3 parte 1 Prof. Luís Fernando Garcia LUIS@GARCIA.PRO.BR ITIL 1 1 ITIL Gerenciamento de Serviços 2 2 Gerenciamento de Serviços Gerenciamento de Serviços 3 3 Gerenciamento de Serviços

Leia mais

Maestro. Arthur Kazuo Tojo Costa 317497. Universidade Federal de São Carlos Campus Sorocaba Bacharelado em Ciência da Computação

Maestro. Arthur Kazuo Tojo Costa 317497. Universidade Federal de São Carlos Campus Sorocaba Bacharelado em Ciência da Computação Maestro Arthur Kazuo Tojo Costa 317497 Universidade Federal de São Carlos Campus Sorocaba Bacharelado em Ciência da Computação Introdução Sistema Operacional de Redes Detalhes do hardware Multiplexação

Leia mais

ADMINISTRAÇÃO DE ATIVOS DE TI GERENCIAMENTO DE LIBERAÇÃO

ADMINISTRAÇÃO DE ATIVOS DE TI GERENCIAMENTO DE LIBERAÇÃO 1 ADMINISTRAÇÃO DE ATIVOS DE TI GERENCIAMENTO DE LIBERAÇÃO 2 INTRODUÇÃO A cada dia que passa, cresce a pressão pela liberação para uso de novas tecnologias disponibilizadas pela área de TI, sob o argumento

Leia mais

Estrutura, Processos e Threads

Estrutura, Processos e Threads Estrutura, Processos e Threads Prof. Edwar Saliba Júnior Março de 2007 1 Sistema computacional A p l i c a t i v o s U t i l i t á r i o s N ú c l e o d o S i s t e m a O p e r a c i o n a l H a r d w

Leia mais

Bancos de dados distribuídos Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com. http://www.tiagodemelo.info

Bancos de dados distribuídos Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com. http://www.tiagodemelo.info Bancos de dados distribuídos Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com Última atualização: 20.03.2013 Conceitos Banco de dados distribuídos pode ser entendido como uma coleção de múltiplos bds

Leia mais

AULA 5 Sistemas Operacionais

AULA 5 Sistemas Operacionais AULA 5 Sistemas Operacionais Disciplina: Introdução à Informática Professora: Gustavo Leitão Email: gustavo.leitao@ifrn.edu.br Sistemas Operacionais Conteúdo: Partições Formatação Fragmentação Gerenciamento

Leia mais

Gerenciamento de Incidentes

Gerenciamento de Incidentes Gerenciamento de Incidentes Os usuários do negócio ou os usuários finais solicitam os serviços de Tecnologia da Informação para melhorar a eficiência dos seus próprios processos de negócio, de forma que

Leia mais

Professor: Macêdo Firmino Disciplina: Sistemas Operacionais de Rede

Professor: Macêdo Firmino Disciplina: Sistemas Operacionais de Rede Professor: Macêdo Firmino Disciplina: Sistemas Operacionais de Rede O sistema de nome de domínio (DNS) é um sistema que nomeia computadores e serviços de rede e é organizado em uma hierarquia de domínios.

Leia mais

Notas da Aula 17 - Fundamentos de Sistemas Operacionais

Notas da Aula 17 - Fundamentos de Sistemas Operacionais Notas da Aula 17 - Fundamentos de Sistemas Operacionais 1. Gerenciamento de Memória: Introdução O gerenciamento de memória é provavelmente a tarefa mais complexa de um sistema operacional multiprogramado.

Leia mais

Metodologia de Gerenciamento de Projetos da Justiça Federal

Metodologia de Gerenciamento de Projetos da Justiça Federal Metodologia de Gerenciamento de Projetos da Justiça Federal Histórico de Revisões Data Versão Descrição 30/04/2010 1.0 Versão Inicial 2 Sumário 1. Introdução... 5 2. Público-alvo... 5 3. Conceitos básicos...

Leia mais

BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING

BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING http://www.uniriotec.br/~tanaka/tin0036 tanaka@uniriotec.br Bancos de Dados Distribuídos Conceitos e Arquitetura Vantagens das Arquiteturas C/S (em relação

Leia mais

3 SCS: Sistema de Componentes de Software

3 SCS: Sistema de Componentes de Software 3 SCS: Sistema de Componentes de Software O mecanismo para acompanhamento das chamadas remotas se baseia em informações coletadas durante a execução da aplicação. Para a coleta dessas informações é necessário

Leia mais

Modelos de Arquiteturas. Prof. Andrêza Leite andreza.lba@gmail.com

Modelos de Arquiteturas. Prof. Andrêza Leite andreza.lba@gmail.com Modelos de Arquiteturas Prof. Andrêza Leite andreza.lba@gmail.com Agenda Introdução Arquitetura de Sistemas Distribuídos Clientes e Servidores Peer-to-Peer Variações Vários Servidores Proxy Código Móvel

Leia mais

CONCURSO PÚBLICO ANALISTA DE SISTEMA ÊNFASE GOVERNANÇA DE TI ANALISTA DE GESTÃO RESPOSTAS ESPERADAS PRELIMINARES

CONCURSO PÚBLICO ANALISTA DE SISTEMA ÊNFASE GOVERNANÇA DE TI ANALISTA DE GESTÃO RESPOSTAS ESPERADAS PRELIMINARES CELG DISTRIBUIÇÃO S.A EDITAL N. 1/2014 CONCURSO PÚBLICO ANALISTA DE GESTÃO ANALISTA DE SISTEMA ÊNFASE GOVERNANÇA DE TI RESPOSTAS ESPERADAS PRELIMINARES O Centro de Seleção da Universidade Federal de Goiás

Leia mais

Novidades no Q-flow 3.02

Novidades no Q-flow 3.02 Novidades no Q-flow 3.02 Introdução Um dos principais objetivos do Q-flow 3.02 é adequar-se às necessidades das grandes organizações. Por isso, o Q-flow 3.02 possui uma versão Enterprise que inclui funcionalidades

Leia mais

Wilson Moraes Góes. Novatec

Wilson Moraes Góes. Novatec Wilson Moraes Góes Novatec Copyright 2014 Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer processo,

Leia mais

Software de rede e Modelo OSI André Proto UNESP - São José do Rio Preto andre.proto@sjrp.unesp.br O que será abordado Hierarquias de protocolos (camadas) Questões de projeto relacionadas às camadas Serviços

Leia mais

Tabela de roteamento

Tabela de roteamento Existem duas atividades que são básicas a um roteador. São elas: A determinação das melhores rotas Determinar a melhor rota é definir por qual enlace uma determinada mensagem deve ser enviada para chegar

Leia mais

Glossário Apresenta a definição dos termos, siglas e abreviações utilizadas no contexto do projeto Citsmart.

Glossário Apresenta a definição dos termos, siglas e abreviações utilizadas no contexto do projeto Citsmart. Apresenta a definição dos termos, siglas e abreviações utilizadas no contexto do projeto Citsmart. Versão 1.6 15/08/2013 Visão Resumida Data Criação 15/08/2013 Versão Documento 1.6 Projeto Responsáveis

Leia mais

Escalonamento no Linux e no Windows NT/2000/XP

Escalonamento no Linux e no Windows NT/2000/XP Escalonamento no Linux e no Windows NT/2000/XP 1 Escalonamento no Linux Os requisitos do escalonador do Linux eram: Apresentar boa performance em programas interativos, mesmo com carga elevada; Distribuir

Leia mais

Disciplina: Introdução à Informática Profª Érica Barcelos

Disciplina: Introdução à Informática Profª Érica Barcelos Disciplina: Introdução à Informática Profª Érica Barcelos CAPÍTULO 4 1. ARQUITETURA DO COMPUTADOR- HARDWARE Todos os componentes físicos constituídos de circuitos eletrônicos interligados são chamados

Leia mais

Faculdade Integrada do Ceará FIC Graduação em Redes de Computadores

Faculdade Integrada do Ceará FIC Graduação em Redes de Computadores Faculdade Integrada do Ceará FIC Graduação em Redes de Computadores Disciplina - Sistemas Distribuídos Prof. Andrey Halysson Lima Barbosa Aula 12 Computação em Nuvem Sumário Introdução Arquitetura Provedores

Leia mais

Curso: Redes II (Heterogênea e Convergente) Tema da Aula: Características Roteamento

Curso: Redes II (Heterogênea e Convergente) Tema da Aula: Características Roteamento Curso: Redes II (Heterogênea e Convergente) Tema da Aula: Características Roteamento Professor Rene - UNIP 1 Roteamento Dinâmico Perspectiva e histórico Os protocolos de roteamento dinâmico são usados

Leia mais

O que é Grid Computing

O que é Grid Computing Grid Computing Agenda O que é Grid Computing Grid vs Cluster Benefícios Tipos de Grid Aplicações Ferramentas e padrões Exemplos no mundo Exemplos no Brasil Grid no mundo dos negócios Futuro O que é Grid

Leia mais

2 Gerenciamento de Log 2.1 Definições básicas

2 Gerenciamento de Log 2.1 Definições básicas 2 Gerenciamento de Log 2.1 Definições básicas Os logs são fontes riquíssimas de informação e são gerados pelos servidores e pelas aplicações conforme eventos significativos acontecem. Em [1], log é definido

Leia mais

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido Arquitetura Roteiro Arquitetura Tipos de Arquitetura Centralizado Descentralizado Hibrido Questionário 2 Arquitetura Figura 1: Planta baixa de uma casa 3 Arquitetura Engenharia de Software A arquitetura

Leia mais

ROTEIRO PARA TREINAMENTO DO SAGRES DIÁRIO Guia do Docente

ROTEIRO PARA TREINAMENTO DO SAGRES DIÁRIO Guia do Docente Conceito ROTEIRO PARA TREINAMENTO DO SAGRES DIÁRIO Guia do Docente O Sagres Diário é uma ferramenta que disponibiliza rotinas que facilitam a comunicação entre a comunidade Docente e Discente de uma instituição,

Leia mais

Gerenciamento de Problemas

Gerenciamento de Problemas Gerenciamento de Problemas O processo de Gerenciamento de Problemas se concentra em encontrar os erros conhecidos da infra-estrutura de TI. Tudo que é realizado neste processo está voltado a: Encontrar

Leia mais

MUDANÇAS NA ISO 9001: A VERSÃO 2015

MUDANÇAS NA ISO 9001: A VERSÃO 2015 MUDANÇAS NA ISO 9001: A VERSÃO 2015 Está em andamento o processo de revisão da Norma ISO 9001: 2015, que ao ser concluído resultará na mudança mais significativa já efetuada. A chamada família ISO 9000

Leia mais

EXEMPLO: Processo para atualização da hora Processo para monitoramento da necessidade de proteção de tela. Figura 4-1 - Exemplo

EXEMPLO: Processo para atualização da hora Processo para monitoramento da necessidade de proteção de tela. Figura 4-1 - Exemplo 4 PROCESSOS Os primeiros sistemas operacionais permitiam que apenas um processo fosse executado por vez. Dessa maneira, este processo tinha todo o sistema computacional a sua disposição. Os atuais sistemas

Leia mais

Bancos de Dados III. Replicação de Dados. Rogério Costa rogcosta@inf.puc-rio.br. Replicação

Bancos de Dados III. Replicação de Dados. Rogério Costa rogcosta@inf.puc-rio.br. Replicação Bancos de Dados III Replicação de Dados Rogério Costa rogcosta@inf.puc-rio.br 1 Replicação Processo de criar e manter réplicas de versões dos objetos da base de dados (como tabelas) em um ambiente de banco

Leia mais

Fundamentos de Banco de Dados

Fundamentos de Banco de Dados Fundamentos de Banco de Dados SISTEMAS BASEADOS NO PROCESSAMENTO DE ARQUIVOS Sistema A Funcionário Pagamento Cargo Sistema B Funcionário Projeto SISTEMAS GERENCIADORES DE BANCO DE DADOS (SGBD) Sistema

Leia mais

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira IFPE Disciplina: Sistemas Operacionais Prof. Anderson Luiz Moreira SERVIÇOS OFERECIDOS PELOS SOS 1 Introdução O SO é formado por um conjunto de rotinas (procedimentos) que oferecem serviços aos usuários

Leia mais

Introdução ao GED Simone de Abreu

Introdução ao GED Simone de Abreu Introdução ao GED Simone de Abreu GED O que é isso? O conhecimento teve, ao longo da história, diferentes significados e funções. No tempo das cavernas nossos antepassados transmitiam aos seus descendentes

Leia mais

Sistema Operacional Correção - Exercício de Revisão

Sistema Operacional Correção - Exercício de Revisão Prof. Kleber Rovai 1º TSI 22/03/2012 Sistema Operacional Correção - Exercício de Revisão 1. Como seria utilizar um computador sem um sistema operacional? Quais são suas duas principais funções? Não funcionaria.

Leia mais

Definição de Padrões. Padrões Arquiteturais. Padrões Arquiteturais. Arquiteturas de Referência. Da arquitetura a implementação. Elementos de um Padrão

Definição de Padrões. Padrões Arquiteturais. Padrões Arquiteturais. Arquiteturas de Referência. Da arquitetura a implementação. Elementos de um Padrão DCC / ICEx / UFMG Definição de Padrões Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Um padrão é uma descrição do problema e a essência da sua solução Documenta boas soluções para problemas recorrentes

Leia mais

Arquitetura de Rede de Computadores

Arquitetura de Rede de Computadores TCP/IP Roteamento Arquitetura de Rede de Prof. Pedro Neto Aracaju Sergipe - 2011 Ementa da Disciplina 4. Roteamento i. Máscara de Rede ii. Sub-Redes iii. Números Binários e Máscara de Sub-Rede iv. O Roteador

Leia mais

Processos e Threads (partes I e II)

Processos e Threads (partes I e II) Processos e Threads (partes I e II) 1) O que é um processo? É qualquer aplicação executada no processador. Exe: Bloco de notas, ler um dado de um disco, mostrar um texto na tela. Um processo é um programa

Leia mais

Desenvolvimento de uma Rede de Distribuição de Arquivos. Development of a File Distribution Network

Desenvolvimento de uma Rede de Distribuição de Arquivos. Development of a File Distribution Network Desenvolvimento de uma Rede de Distribuição de Arquivos Development of a File Distribution Network Desenvolvimento de uma Rede de Distribuição de Arquivos Development of a File Distribution Network Talles

Leia mais

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008 Tabela de Símbolos Análise Semântica A Tabela de Símbolos Fabiano Baldo Após a árvore de derivação, a tabela de símbolos é o principal atributo herdado em um compilador. É possível, mas não necessário,

Leia mais

Trabalhos Relacionados 79

Trabalhos Relacionados 79 Trabalhos Relacionados 79 6 Avaliação e Testes Neste capítulo são apresentados alguns testes que foram realizados com o a solução de Gerenciamento de Mobilidade (API SIP User Agent) e com o sistema publish/subscribe

Leia mais

Conceitos de Banco de Dados

Conceitos de Banco de Dados Conceitos de Banco de Dados Autor: Luiz Antonio Junior 1 INTRODUÇÃO Objetivos Introduzir conceitos básicos de Modelo de dados Introduzir conceitos básicos de Banco de dados Capacitar o aluno a construir

Leia mais

Sistemas Operacionais Processos e Threads

Sistemas Operacionais Processos e Threads Sistemas Operacionais Processos e Threads Prof. Marcos Monteiro, MBA http://www.marcosmonteiro.com.br contato@marcosmonteiro.com.br 1 Estrutura de um Sistema Operacional 2 GERÊNCIA DE PROCESSOS Um processo

Leia mais

FIREWALL. Prof. Fabio de Jesus Souza. fabiojsouza@gmail.com. Professor Fabio Souza

FIREWALL. Prof. Fabio de Jesus Souza. fabiojsouza@gmail.com. Professor Fabio Souza FIREWALL Prof. Fabio de Jesus Souza fabiojsouza@gmail.com Professor Fabio Souza O que são Firewalls? Os firewalls são sistemas de segurança que podem ser baseados em: um único elemento de hardware; um

Leia mais

Engenharia de Software III

Engenharia de Software III Engenharia de Software III Casos de uso http://dl.dropbox.com/u/3025380/es3/aula6.pdf (flavio.ceci@unisul.br) 09/09/2010 O que são casos de uso? Um caso de uso procura documentar as ações necessárias,

Leia mais

15/03/2010. Análise por pontos de função. Análise por Pontos de Função. Componentes dos Pontos de Função. Componentes dos Pontos de Função

15/03/2010. Análise por pontos de função. Análise por Pontos de Função. Componentes dos Pontos de Função. Componentes dos Pontos de Função Análise por pontos de função Análise por Pontos de Função Referência: Manual de práticas de contagem IFPUG Versão 4.2.1 Técnica que permite medir a funcionalidade de um software ou aplicativo, sob a visão

Leia mais

Análise e Projeto Orientados por Objetos

Análise e Projeto Orientados por Objetos Análise e Projeto Orientados por Objetos Aula 02 Análise e Projeto OO Edirlei Soares de Lima Análise A análise modela o problema e consiste das atividades necessárias para entender

Leia mais

Banco de Dados Orientado a Objetos

Banco de Dados Orientado a Objetos Banco de Dados Orientado a Objetos MODELAGEM, ANÁLISE, PROJETO e CLASSIFICAÇÃO Interação combinando lógica, através de objetos que contém os dados. Estes divididos conforme seus tipos e métodos (classe),

Leia mais

Sistemas Distribuídos: Conceitos e Projeto Introdução a Criptografia e Criptografia Simétrica

Sistemas Distribuídos: Conceitos e Projeto Introdução a Criptografia e Criptografia Simétrica Sistemas Distribuídos: Conceitos e Projeto Introdução a Criptografia e Criptografia Simétrica Francisco José da Silva e Silva Laboratório de Sistemas Distribuídos (LSD) Departamento de Informática / UFMA

Leia mais

DATA WAREHOUSE. Introdução

DATA WAREHOUSE. Introdução DATA WAREHOUSE Introdução O grande crescimento do ambiente de negócios, médias e grandes empresas armazenam também um alto volume de informações, onde que juntamente com a tecnologia da informação, a correta

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Gerência de processos Controle e descrição de processos Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Sumário Representação e controle de processos pelo SO Estrutura

Leia mais

XDOC. Solução otimizada para armazenamento e recuperação de documentos

XDOC. Solução otimizada para armazenamento e recuperação de documentos XDOC Solução otimizada para armazenamento e recuperação de documentos ObJetivo Principal O Que você ACHA De ter Disponível Online todos OS Documentos emitidos por SUA empresa em UMA intranet OU Mesmo NA

Leia mais

Banco de Dados Oracle. Faculdade Pernambucana - FAPE

Banco de Dados Oracle. Faculdade Pernambucana - FAPE Faculdade Pernambucana - FAPE Visão Geral dos Componentes Principais da Arquitetura Oracle Servidor Oracle É o nome que a Oracle deu ao seu SGBD. Ele consiste de uma Instância e um Banco de Dados Oracle.

Leia mais