This page is optimized for mobile devices, if you would prefer the desktop version just click here

0.1 Introdução a design de software  (Page 2/13)

O HBase é um sistema de armazenamento distribuído. Isso quer dizer que os dados submetidos a ele não serão guardados em um único servidor, mas em vários. De forma simplificada, o design do HBase define dois tipos de entidades no sistema: o data node , que é o subsistema que armazena os dados, e o master node , que é o subsistema que sabe em quais data nodes os dados foram escritos e podem ser recuperados. Na primeira versão do HBase, só existia um master node que coordenava todos os data nodes . Assim, para recuperar ou escrever dados no HBase, um cliente realizava os seguintes passos: primeiro, o cliente se comunicava com o master node a fim de conseguir, de acordo com uma chave Os dados são inseridos no HBase na forma (chave,valor). , o endereço do data node em que ele pode realizar a operação desejada (leitura ou escrita). Em seguida, o master node , que coordena onde os dados devem ficar, retorna o endereço do data node que deveria possuir dados para referida chave. A partir daí, o cliente, já com o endereço, se comunicava diretamente com o data node e realizava a operação desejada (escrita ou leitura).

Se avaliarmos este design, podemos perceber duas características do HBase. A primeira, é que ele não adota o uso de um cliente magro ( thin client ). Com isso, a implementação e configuração do cliente se torna mais complexa, uma vez que o cliente precisa conhecer o protocolo de escrita e leitura do HBase, além de precisar acessar tanto o master node quanto os data nodes . Isto dificulta o desenvolvimento, a operabilidade e a eventual evolução do software, uma vez que mudanças no protocolo afetam clientes e servidores. Além disso, por possuir apenas um master node , a funcionalidade do HBase fica condicionada à sua disponibilidade. Afinal, se o master node estiver inacessível, nenhum cliente poderá ler ou escrever no sistema, o que o torna um ponto único de falhas.

O que é design de software

Para definir design de software, alguns autores o fazem em dois sentidos distintos: quando design de software é usado como produto e quando é usado como processo . Quando usado no primeiro sentido, o termo design de software indica o produto que emerge do ato (ou processo) de projetar um sistema de software e sendo assim algum documento ou outro tipo de representação do desejo do projetista (ou designer). Esse produto é o resultado das decisões do designer para formar uma abstração do sistema que é desejado no mundo real. Existem diversas formas de como representar essa abstração do sistema. Podemos citar, por exemplo, desenhos usando caixas e setas, textos descritivo, ou ainda uso de linguagens ou ferramentas criadas para este propósito, como linguagens de modelagem de software, redes de petri, pseudocódigo, etc. Já quando o termo é usado no segundo sentido, fazer design indica o processo seguido para se obter um projeto. Esse é um processo que faz parte do processo de desenvolvimento e que é orientado aos objetivos do software. Ele deve ser realizado tendo em mente os diversos stakeholders do sistema e deve ser fundamentado no conhecimento do designer sobre o domínio do problema.

<< Chapter < Page Page > Chapter >>

Read also:

OpenStax, Arquitetura de software. OpenStax CNX. Jan 05, 2010 Download for free at http://cnx.org/content/col10722/1.9
Google Play and the Google Play logo are trademarks of Google Inc.
Jobilize.com uses cookies to ensure that you get the best experience. By continuing to use Jobilize.com web-site, you agree to the Terms of Use and Privacy Policy.