• Nenhum resultado encontrado

CONIC-SEMESP

N/A
N/A
Protected

Academic year: 2021

Share "CONIC-SEMESP"

Copied!
8
0
0

Texto

(1)

TÍTULO: DESENVOLVIMENTO DO MÓDULO DE BANCO DE DADOS PARA SISTEMA DISTRIBUÍDO COLABORATIVO E PROCESSAMENTO PARALELO.

TÍTULO:

CATEGORIA: CONCLUÍDO

CATEGORIA:

ÁREA: CIÊNCIAS EXATAS E DA TERRA

ÁREA:

SUBÁREA: COMPUTAÇÃO E INFORMÁTICA

SUBÁREA:

INSTITUIÇÃO: FACULDADE CENECISTA DE SETE LAGOAS

INSTITUIÇÃO:

AUTOR(ES): WILLIAM WAGNER ALEXANDRINO DE MELLO

AUTOR(ES):

ORIENTADOR(ES): DÉBORA MARIA ABRANTES COSTA, SANDRO RENATO DIAS

(2)

1 DESENVOLVIMENTO DO MÓDULO DE BANCO DE DADOS PARA SISTEMA DISTRIBUÍDO COLABORATIVO E PROCESSAMENTO PARALELO.

RESUMO

Este projeto consistiu no desenvolvimento de um módulo de banco de dados para um sistema distribuído colaborativo, que tem como objetivo executar comparações de arquivos de maneira distribuída.

O módulo de banco de dados tem como objetivo armazenar os detalhes dos clientes, os dados das tarefas que serão executadas, assim como o status de cada uma das tarefas que estão sendo ou foram executadas por clientes. O banco de dados utilizado foi o MySQL. Foram criadas funções para a execução das consultas, inserções e atualização dos dados referentes às tarefas.

Palavras-chave: Banco de dados, sistema distribuído, armazenamento. INTRODUÇÃO

Segundo Coulouris, Dollimore e Kindberg (1994) sistema distribuído é um sistema que possui componentes em computadores que se comunicam por uma rede coordenando suas ações por meio de mensagens, sendo um de seus principais exemplos a própria Internet.

O objetivo deste trabalho foi o desenvolvimento de um sistema distribuído com cinco módulos. Os módulos são servidor, banco de dados, comunicação, cliente e tolerância a falhas no cliente (Figura 1).

O funcionamento do sistema consiste em executar tarefas de comparação de arquivos de forma distribuída, sendo função do servidor, designar as tarefas para os clientes tomando decisões com base nos dados disponíveis no banco. O sistema é desenvolvido em ShellScript. Por ser um sistema distribuído, depende da comunicação em rede para o funcionamento.

(3)

2 Figura 1 – Fluxograma contendo os módulos.

Cabe ao módulo de banco de dados fornecer todas as funções necessárias para trabalhar com os dados no banco. As funções criadas pelo módulo são repassadas ao módulo servidor para a utilização em seu código, onde utilizará as funções para obter informações do banco de dados que será instalado na própria máquina do servidor.

Segundo APACHE (2013) “ Apache HTTP Server é um software colaborativo robusto, de nível comercial e de código aberto de um servidor (Web) HTTP.”.

O banco de dados utilizado é o MySQL, que segundo MYSQL(2013):

“MySQL é um software de banco de dados de código aberto mais popular do mundo, com mais de 100 milhões de cópias de seu software baixado ou distribuídos por toda a sua história. Com a sua velocidade superior, confiabilidade e facilidade de uso, o MySQL se tornou a escolha preferida para a Web, Web 2.0, SaaS, ISV, empresas de telecomunicações e com visão de futuro Gerentes de TI corporativa, pois elimina os principais problemas associados com o tempo de inatividade, manutenção e administração para os modernos, aplicações on-line.”.

OBJETIVOS

Objetivo Geral

Desenvolvimento de um módulo de banco de dados para um sistema distribuído. Nesse contexto, o módulo em questão é o responsável por armazenar os

(4)

3 dados necessários para a execução do sistema, dados esses que serão gerenciados pelo servidor através das funções desenvolvidas neste trabalho.

Objetivos Específicos

 Armazenar dados dos clientes e das tarefas, para que o servidor possa fazer o gerenciamento do sistema através dessas informações.

 Gerar as estatísticas de execução do sistema, estando entre esses dados, quantidade de iniciação e finalização da tarefa, quantidade de tarefas executadas, em execução e concluídas.

METODOLOGIA

No desenvolvimento deste módulo, diversas ferramentas foram utilizadas, dentre elas, o sistema operacional linux Ubuntu 12.10, por sua facilidade de utilização além da quantidade de documentação à disposição para consulta sobre a utilização do sistema. Estão sendo utilizados também o MySQL e o Apache, Também foram utilizados recursos como scripts para a execução de comandos em Shell no Linux.

DESENVOLVIMENTO

Foram levantados os dados necessários para a criação do banco de dados do sistema e as tabelas foram criadas de acordo com a necessidade deste. Foi determinado pelo modulo cliente e tolerância a falhas que o banco necessita de

quatro tabelas sendo elas as tabelas cliente, arquivos, tarefas, tarefas_cliente e buffer_msg. Para a criação deste banco foi utilizado os scripts representados na Tabela 1.

Tabela 1: criação do banco de dados. #!/bin/bash

mysql -u root -p222431 -e"\./home/cliente/banco.sql" create database sd10

(5)

4 Sendo o conteúdo entre aspas, o caminho do local do arquivo banco.sql que é o script de criação do banco. O conteúdo do arquivo banco.sql é o código para a criação do banco e das tabelas.

O comando “create database sd10” é utilizado para criar o banco sendo sd10 o nome dado ao banco de dados, e o comando “use sd10” e para a manipulação do mesmo.

Além da utilização de comandos para a criação do banco foi utilizado, os seguintes comandos de criação de uma das tabelas representados na Tabela 2.

Tabela 2: criação da tabela de arquivo.

create table arquivos (

codigo_arquivo int unsigned auto_increment not null

primary key,

nome_arquivo varchar(100),

tamanho_arquivo varchar(20),

local_armazenamento varchar(20));

Além disso, foram desenvolvidas funções para a manipulação dos dados do banco, uma delas é a função evidenciada na Tabela 3.

Tabela 3: função para inserção de um cliente. inserirCliente() {

mysql -u root -p222431 -e "use sd10;insert into clientes(nome_cliente, ip_cliente, quantidade_nucleos, quantidade_memoria, espaco_disco, status_cliente) values('$1', '$2', $3, $4, $5, '$6');"

}

Além da função de inserirCliente() foi criado também as funções de inserirArquivo(), inserirtarefa(), inserirTarefaCliente() e inserirMsgBuffer() com o propósito de fazer o preenchimento de cada tabela.

Essas funções são responsáveis pela manipulação dos dados do sistema a serem salvos ou extraídos do banco. A função inserirCliente() será chamada pelo

(6)

5 servidor pra a inserção de dados no banco através da passagem dos parâmetros $1 a $6, que referem-se aos dados nome_cliente, ip_cliente, quantidade_nucleos, quantidade_memoria, espaco_disco e status_cliente. Os dados inseridos nessa função vêm do modulo cliente e o servidor ao fazer a chamada desta função ira inseri-los no bando de dados. O uso desta função pelo servidor será através de uma chamada direta, quando o servidor precisar inserir algum cliente no banco ele simplesmente chamará esta função passando os parâmetros recebidos do cliente.

Além da manipulação dos dados para o funcionamento do sistema, serão manipulados dados para a geração das estatísticas, assim como na tabela tarefa_cliente foi criando data_hora_inicio e data_hora_fim no propósito de saber quanto tempo um determinado cliente ficou executando esta tarefa. Sabendo as horas inicial e final podemos relacionar a hora estimada para a finalização de uma tarefa destinada a um cliente.

RESULTADOS

Foi criado um modelo de banco de dados com o nome banco tendo os comandos citados na Tabela 1. Com base no que já foi desenvolvido, já é possível realizar os testes de funcionamento do banco de dados. Pode-se inserir e testar o banco sem qualquer vínculo com o modulo servidor com afunção representada abaixo.

Podemos perceber que ao chamar uma função, o servidor é obrigado a passar os seguintes parâmetros: nome do arquivo como “arq1.txt”, tamanho do arquivo “1222”, local de armazenamento “ar/arq/arq1.txt”, qual é a tarefa que o cliente esta recebendo “5”, e, por fim, uma mensagem de confirmação de inserção no banco de dados “ echo “dados inseridos com sucesso!” “, como representado na tabela 4.

Tabela 4: função de inserir arquivo. inserirArquivo() {

mysql -u root -p222431 -e "use sd10;insert into arquivos(nome_arquivo,tamanho_arquivo,

local_armazenamento, tarefa) values('$1', $2, '$3', $4);" echo "dados inseridos com sucesso!"

(7)

6 Além disso, é possível excluir, buscar e atualizar dados, inclusive utilizando as funções que já foram criadas para a utilização pelo servidor. Além das estatísticas que podem ser retiradas do banco também através de funções (Tabela 5).

Com esta função podemos retirar as tarefas concluídas de cada cliente, podendo assim ser feito uma estatística de qual cliente possui mais tarefas concluídas.

Tabela 5: função para retirar quantas tarefas concluídas pelo cliente. quantidadeTarefasConcluidas() {

set `mysql -u root -p222431 -s -e "use sd10;select

qtde_tarefas_conluidas from clientes where ip_cliente = $cod"`;

status=$1;

echo "Status: $status"

O módulo de banco de dados é unicamente vinculado ao servidor, sendo que estas funções são passadas para o servidor fazer a chamada, e, assim, conseguir acesso ao banco de dados.

CONSIDERAÇÕES FINAIS

O módulo de banco de dados é de grande importância para o funcionamento do sistema. Todos os dados para o funcionamento e geração de estatísticas são armazenados no banco, e através de consultas, atualizações e inserções são obtidas as informações necessárias para o funcionamento de todos os módulos que irão utilizarem destas informações.

Os testes realizados demonstraram o funcionamento correto do módulo de banco de dados e, após a integração do projeto, o seu uso pelo módulo do servidor será através das chamadas destas funções com a passagem dos parâmetros respectivos.

(8)

7 FONTES CONSULTADAS

About MySQL. Disponível em: <http://www.mysql.com/about>. Acesso em 29 de out.

2013.

COULOURIS, George; DOLLIMORE, Jean; KINDBERG, T. Sistemas Distribuídos:

Conceitos e Projeto. 4. ed. São Paulo Person Education, 2005.

CUNHA, B.R. Unindo Sistemas e Banco de Dados Distribuídos. Disponível em: http://www.cin.ufpe.br/~tg/2006-1/brca.pdf. Consultado em: 08 Ago. 14

The Apache Software Foundation. Disponível em: <http://www.apachefriends.org>.

Referências

Documentos relacionados

Pode provocar danos ao sistema nervoso central por exposição repetida ou prolongada, se ingerido.. Frase de precaução: Mantenha afastado de calor, faísca, chama aberta ou

O resgate dos recursos da conta pelo prestador de serviço, referente ao pagamento pelo esgoto tratado relativo ao empreendimento, será realizado trimestralmente,

[r]

O conceito de «abordagem equilibrada» da gestªo das emissıes sonoras das aeronaves inclui quatro elementos essenciais e requer uma avaliaçªo cuidada das diferentes opçıes para

9.2 A autodeclaração dos candidatos pretos e pardos, realizada no ato da inscrição deste Processo Seletivo, para candidatos aprovados dentro das vagas reservadas

Apesar de não ser focado em copywriting, possui muito conteúdo sobre SEO, sobre como criar material de qualidade para os seus leitores e muito mais. O blog é cheio de dicas de

A preocupação com a estrutura acadêmico-pedagógica dos Cursos de Tecnologias está apresentada em seu artigo 8º, valendo destacar, além das exigências legais de praxe

Deliberado, por unanimidade, transferir a importância de dois mil e quinhentos euros (2.500 €), para custear as despesas com as obras de limpeza das ruas e construção de um muro