Seguir @luiscarlos_j

terça-feira, 16 de setembro de 2014

REPLICAÇÃO SQL e REPLICAÇÃO NoSQL



Replicação refere-se ao armazenamento de dados e a estratégia de backups entre computadores em locais distintos. É um conjunto de tecnologias utilizadas para copiar e distribuir objetos e dados de um banco de dados para outro banco de dados, sincronizando estes dados com a finalidade de se manter a consistência.
A replicação de dados oferece muitas vantagens como a redundância dos dados que permite ao sistema a propriedade de tolerância a falhas e a melhoria da escalabilidade e também da disponibilidade. Sempre em um projeto de banco de dados, principalmente se for SQL devido ao conceito de ACID, a característica da escalabilidade torna-se muito importante pois indica que o sistema tem a capacidade de tratar uma demanda crescente de trabalho (tratamento de dados) sem perda de desempenho, ou seja, ocorre o balanceamento de carga do sistema já que com os dados disponíveis em todas as réplicas (sincronização) o acesso pode ser feito de forma distribuída.
Existem alguns modelos de replicação e o tipo a ser utilizado depende de alguns fatores como o ambiente físico, a quantidade de dados e o sentido da atualização dos dados. Pode-se destacar a replicação síncrona, em que os dados encontrados nas réplicas são sempre os mesmos, a replicação assíncrona, onde a sincronização só ocorre no caso de alteração dos dados, a replicação multimaster, em que é possível a realização das operações de leitura e gravação em qualquer réplica, e a replicação master-slave, onde a operação de gravação só é permitida na réplica master e a leitura em qualquer uma delas.
Dependendo do tipo de banco de dados, diferentes tipos de replicação são adotados. No caso dos bancos de dados SQL que possuem as propriedades ACID (Atomicidade, Consistência, Isolamento e Durabilidade) o modelo normalmente utilizado é o master-slave (mestre-escravo) onde um servidor atua como master e os demais atuam como slave onde todas as operações que alteram algum dado no master são repassadas de imediato para os servidores slaves. Um exemplo de banco de dados que utiliza este tipo de replicação é o MySQL.
No caso dos bancos de dados NoSQL que trabalham com a propriedade BASE (Basicamente Disponível Eventualmente Consistente) o modelo normalmente adotado é o multimaster onde as operação de leitura e gravação podem ser realizadas através de qualquer nó. Esse tipo de banco de dados possui fraca consistência e tem como fator principal a disponibilidade. Um exemplo de banco de dados que trabalha com este tipo de replicação é o Cassandra que usa o particionamento dos dados através da estratégia de replicação e da topologia dos clusters (distribuição dos nós).

sábado, 13 de setembro de 2014

Serviços de Transporte Orientado à Conexão e Não Orientado à Conexão - Controle de Fluxo e Controle de Consgestionamento



Toda vez que uma aplicação estiver rodando em um host e precisar se comunicar com uma aplicação em um host diferente deve ter como informação o número da porta com o endereço IP. O sistema operacional gerencia cada porta das aplicações em um computador. Quando uma aplicação quer se comunicar com outra ocorre uma solicitação informando o endereço IP destino junto com a porta da aplicação destino.
Os dois tipos de serviços de transporte que a internet provê são o orientado à conexão (TCP) e o não orientado à conexão (UDP). O primeiro utiliza o protocolo TCP para a realização do transporte de dados e tem como vantagem o estabelecimento de conexão antes de qualquer transferência, confirmação de recebimento e retransmissão em caso de perdas, controle de fluxo, controle de congestionamento dentre outras características. Este tipo de serviço é utilizado em jogos interativos, email e transferência de arquivos. O serviço não orientado à conexão transporta os dados sem qualquer estabelecimento prévio de conexão, em caso de perda não oferece a retransmissão e a sequencia de dados transmitidos pode não seguir um processo ordenado. Esse segundo serviço é muito utilizado na transferência de áudio em que perda de parte dos dados não acarretará danos significativos no processo de transmissão.
O serviço orientado à conexão é realizado pelo protocolo TCP. Duas das características oferecidas por esse protocolo são o controle de fluxo e o controle de congestionamento. Nesse serviço da internet eles não são os mesmos. O que acontece no controle de fluxo é o seguinte: na comunicação entre um host A com um host B pode acontecer que o segundo tenha uma determinada capacidade de recebimento de pacotes (aqui entendido como conjunto de dados lógicos agrupados mediante solicitação prévia) e o primeiro envie esses pacotes numa quantidade que supere essa capacidade tendo que ocorrer um controle no envio para que o destinatário não seja sobrecarregado. No controle de congestionamento não é sobre o host que o controle acontece propriamente dito e sim sobre a rede. A rede possui determinada capacidade de transmissão. Para que não fique sobrecarregada e possa atender a demanda dos processos de comunicação, o controle de congestionamento entra em operação de forma que alguns hosts não enviem qualquer informação tendo que aguardar a rede a estar disponível para transmiti-la.

sábado, 16 de agosto de 2014

Técnicas Principais para Programação de Banco de Dados



As três técnicas principais para programação de banco de dados são:

1 – técnica da SQL embutida;
2 – técnica da biblioteca de função para banco de dados;
3 – técnica da linguagem de programação para banco de dados.

A vantagem da primeira técnica (SQL embutida) é que o texto onde a SQL é trabalhada já faz parte do código fonte e a verificação da sintaxe pode ser feita pela própria linguagem de programação. Já a desvantagem é o retrabalho para compilar quando ocorre qualquer mudança no código.
A vantagem da segunda técnica é a flexibilidade que a biblioteca de funções traz ao desenvolvedor pois as funções para operacionalizar um banco de dados já estão prontas. Esta biblioteca trata-se de uma API. O que é vantagem para uns é uma desvantagem para outros. Com o uso da biblioteca a carga de processamento recai sobre o servidor do banco de dados.
A última técnica acontece quando se precisa construir uma linguagem de programação do zero para operacionalizar um banco de dados. A vantagem é que o problema de “impedance mismatch” é minimizado pois a linguagem foi desenvolvida de acordo o modelo de banco de dados com que ela trabalhará. Assim não ocorrerá conflito entre os tipos de dados. A desvantagem é que os desenvolvedores terão que despender tempo para construir conhecimento sobre uma nova linguagem e pode ocorrer que uma linguagem específica não resolverá todos os problemas que podem aparecer.

terça-feira, 29 de julho de 2014

Organizações no Contexto Atual

                 Arquitetura das organizações refere-se a um espaço organizacional criado para determinado fim e para atender as aspirações e necessidades humanas. A arquitetura organizacional vai além de um espaço físico abordando também a convivência / interação das pessoas, a história, cultura e diversos valores que contribuíram para a sua existência.
               Toda organização antes de se tornar algo real teve que passar por várias etapas de planejamento onde foram identificados os objetivos para as quais ela atenderia. Como há o envolvimento de pessoas pode-se dizer que foi criada para atender alguma necessidade humana. Acontece que dentre as organizações tem as que possuem fim lucrativo e outras não. As que são voltadas para o acúmulo de capital necessariamente estão voltadas para o mercado já que foi para este fim que ela veio a se tornar uma realidade. Pode-se perceber que mesmo algumas descaracterizadas pelo envolvimento  com o lucro colaboram de determinada maneira para o mercado. Vejamos o exemplo de uma Universidade Pública que foi criada sem fim lucrativo para atender a necessidade de educação. Esta no fim, mesmo formando mentes pensantes, construirá mão-de-obra paras as organizações de mercado.
                  Logo no início em que as organizações foram criadas não se tinha qualquer preocupação com o meio ambiente. Apenas quando estas perceberam que estavam danificando a natureza e trazendo prejuízos para a saúde das pessoas que começaram a pensar em uma forma de criação de organizações que atendesse as necessidades humanas aliadas com o desenvolvimento sustentável. A forma que as organizações de mercado devem buscar um desenvolvimento sustentável aliados com os princípios da preservação ambiental é repensar os meios de produção de modo que no futuro as pessoas não sejam prejudicadas pelas ações que ocorrem no momento atual. Uma das medidas é adotação de novas fontes de energias menos poluentes em substituição as fontes existentes. O modo atual de produção é reflexo dos objetivos das organizações que só visam o lucro a qualquer custo sem pensar nas consequências que ele pode trazer.