FACULDADE DE TECNOLOGIA DE SÃO JOSÉ DOS CAMPOS EDUAN LENINE DOS SANTOS NEVES VISUAL DAAS: UMA IDE PARA BANCO DE DADOS COMO SERVIÇO WEB

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

Download "FACULDADE DE TECNOLOGIA DE SÃO JOSÉ DOS CAMPOS EDUAN LENINE DOS SANTOS NEVES VISUAL DAAS: UMA IDE PARA BANCO DE DADOS COMO SERVIÇO WEB"

Transcrição

1 FACULDADE DE TECNOLOGIA DE SÃO JOSÉ DOS CAMPOS EDUAN LENINE DOS SANTOS NEVES VISUAL DAAS: UMA IDE PARA BANCO DE DADOS COMO SERVIÇO WEB SÃO JOSÉ DOS CAMPOS 2009

2 ii EDUAN LENINE DOS SANTOS NEVES VISUAL DAAS: UMA IDE PARA BANCO DE DADOS COMO SERVIÇO WEB Trabalho de graduação apresentado à Faculdade de Tecnologia de São José dos Campos, como parte dos requisitos necessários para a obtenção do título de Tecnólogo em Informática Orientador: Giuliano Araujo Bertoti, Msc SÃO JOSÉ DOS CAMPOS 2009

3 iii EDUAN LENINE DOS SANTOS NEVES VISUAL DAAS: UMA IDE PARA BANCO DE DADOS COMO SERVIÇO WEB Trabalho de graduação apresentado à Faculdade de Tecnologia de São José dos Campos, como parte dos requisitos necessários para a obtenção do título de Tecnólogo em Informática ÉRICA FERREIRA DE SOUZA, Graduada EDUARDO SAKAUE, Msc GIULIANO ARAUJO BERTOTI, Msc / / DATA DE APROVAÇÃO

4 iv Dedico esta obra primeiramente a Deus, que me iluminou em todos os momentos. E aos meus amigos David Ribeiro, José Teles e William Antônio, que me serviram como fonte de inspiração.

5 v O acaso é talvez, o pseudônimo que Deus usa quando não quer assinar suas obras. T. Gauther

6 vi RESUMO Este trabalho tem por objetivo o desenvolvimento de uma ferramenta visual para criação, manipulação e administração de banco de dados como serviço web. Discute-se primeiro a crescente demanda por armazenamento de dados e o surgimento das dificuldades de se implementar uma base de dados que comporte tal necessidade. Apresentam-se em seguida os conceitos de banco de dados como serviço web e as vantagens de se utilizar esta solução. E por fim é desenvolvido um protótipo da aplicação Visual DAAS, uma IDE para banco de dados como serviço web. Conclui-se que com esta ferramenta será possível aproveitar todas as vantagens e possibilidades que o banco de dados como serviço web pode prover. Palavras-Chave: Banco de Dados, Software como serviço Web, Ambiente de desenvolvimento integrado.

7 vii ABSTRACT This work aims to create a visual tool for designing, manipulating and management database as a service. Descute first to the growing demand for data storage and the emergence of the difficulty of implementing a database comprising such a need. Apresent then the concepts of database as a service and the advantages of using this solution. And finally it developed a prototype of the Visual DAAS, an IDE for database as a service. Conclude that with this tool will be possible to enjoy all the benefits and possibilities that the database as a service can provide. Keywords: Database, Software as a Service, Integrated Development Environment.

8 viii SUMÁRIO 1 INTRODUÇÃO Motivação Objetivos Objetivo Geral Objetivos Específicos Metodologia Organização do Trabalho BANCO DE DADOS COMO SERVIÇO WEB Banco de Dados Banco de Dados Hierárquico Banco de Dados em Rede Banco de Dados Relacional Manipulação do Banco de Dados Sistemas Distribuídos Arquitetura de um sistema distribuído Serviços Web (Web Services) Software como um serviço Definição Objetivos WSDL XML Arquitetura e Protocolos de Comunicação Banco de dados como Serviço Web Por que Banco de dados com Serviço web? Desafios do DAAS Considerações Finais SOLUÇÕES EXISTENTES SimpleDB + AmazonS

9 Amazon S Funcionamento SimpleDB CouchDB Funcionamento Caso de Uso Considerações Finais VISUAL DAAS: UMA IDE PARA BANCO DE DADOS COMO SERVIÇO WEB Arquitetura da Visual DAAS Funcionamento da BigTable como Serviço Web Funcionalidades do Sistema Requisitos do Sistema Dicionário de Dados Arquitetura Orientada a Objetos Interface com o Usuário Considerações finais CONSIDERAÇÕES FINAIS Contribuições e Conclusões Publicação Trabalhos Futuros REFERÊNCIAS APÊNDICE A - Artigo publicado no XI Simpósio de Iniciação Científica e Tecnológica... 67

10 10 1 INTRODUÇÃO 1.1 Motivação O aumento da demanda por recursos de armazenamentos de dados tornou-se comum em qualquer ambiente profissional, acadêmico ou científico. O uso deste recurso requer muito esforços e gastos na sua implementação, administração e manutenção (Hacigumus, 2009). Com o advento da Internet, o paradigma Software como serviço (Software as a Service, aplicações hospedadas em um servidor, que as disponibilizam via rede ou Internet) começaram a surgir, substituindo alguns paradigmas da utilização de Software (O'Reilly, 2005). Do mesmo modo o Banco de Dados como serviço Web (do inglês Database as a Service, DaaS) surgiu para sanar as dificuldades na utilização deste recurso fundamental (Hacigumus, 2009). Esta solução trás muitas vantagens em relação aos paradigmas de programação anteriores. Por exemplo, as organizações que adotam este tipo de serviço deixam de se preocupar com a compra de equipamentos para manter uma aplicação proprietária, economizam tempo no desenvolvimento da sua solução, tem todas as vantagens que um provedor de software como serviço web fornece como escalabilidade, segurança da informação, além de não ter de lidar com manutenção e um grande número de treinamentos necessários para o desenvolvimento de um software proprietário (Finch, 2006). Com isso, concentram-se esforços na solução do negócio, pagando apenas pela demanda de uso da solução (Ravi et a l, 2004). 1.2 Objetivos A seguir serão apresentados os objetivos gerais e específicos deste trabalho.

11 Objetivo Geral O objetivo deste trabalho é desenvolver uma IDE, Ambiente de Desenvolvimento Integrado (do inglês Integrated Development Environment) para criação, manipulação e administração de banco de dados como serviço web, aproveitando algumas tecnologias existentes Objetivos Específicos Os objetivos específicos deste trabalho são: a) Definir uma arquitetura para um ambiente integrador de desenvolvimento para banco de dados como serviço web. b) Desenvolver uma engine para simplificar, administrar e controlar um repositório de dados na web. c) Desenvolver uma interface gráfica para simplificar o uso da ferramenta final. 1.3 Metodologia A metodologia aplicada aqui consiste na pesquisa por formas de desenvolvimento que se apliquem a um ambiente de desenvolvimento integrado e adapte-se as necessidades deste novo paradigma. Esta ferramenta deverá sanar as falhas dos sistemas atuais e disponibilizar de forma clara a tecnologia do banco de dados como serviço web, para desenvolvedores que não se adaptaram ainda a este paradigma.

12 Organização do Trabalho Os capítulos deste trabalho estão divididos da seguinte forma: a) Capítulo 2 Apresenta todos os fundamentos e conceitos que compõe a tecnologia do banco de dados como serviço web. b) Capítulo 3 Apresenta as soluções de banco de dados como serviço web disponibilizadas pela Apache e a Amazon, com exemplos de utilização. c) Capítulo 4 Apresenta o desenvolvimento do ambiente de desenvolvimento integrado Visual DAAS. d) Capítulo 5 Apresenta as conclusões deste trabalho.

13 13 2 BANCO DE DADOS COMO SERVIÇO WEB O objetivo deste capítulo é apresentar os conceitos de Banco de Dados, Serviços Web e o conceito de Banco de Dados como Serviço Web. As seções estão organizadas da seguinte forma: a seção 2.1 apresenta o que é Banco de Dados, como funciona e quais os tipos de Bancos de Dados existentes e sua principal linguagem de manipulação, a seção 2.2 explica o que é um Web Service e por último a seção 2.3 apresenta uma explicação dos conceitos de Banco de Dados como Serviço Web. 2.1 Banco de Dados O conceito de banco de dados surgiu, junto com a idéia do armazenamento de dados de forma organizada, para que os dados armazenados em uma base pudessem ser recuperados e manipulados de forma fácil e ágil. Nada mais é do que uma coleção de dados arranjados em uma estrutura lógica, na qual usa-se uma linguagem de pesquisa para se manipular os dados. A partir disto o banco de dados tem revolucionado a maneira como temos acesso à informação. A cada dia que passa nos tornamos cada vez mais dependentes desta tecnologia, que está presente em todos os tipos de situações (Ravi et al, 2004). É utilizado por aplicações ou por pessoas, que necessitam de um armazenamento de informações e que as disponibilize para futuras consultas em sua base de dados. Geralmente um banco de dados possui um gerenciador, o SGDB ( Sistema Gerenciador de Banco de Dados ) que auxilia na tarefa de administração deste recurso e seu conteúdo. Este software tem muitos objetivos, desde controle de acesso à base de dados até a consistência dos dados mantidos nela (Date, 2004).

14 14 A consistência dos dados mantidos em uma base é extremamente importante. Só assim é que o objetivo principal de um banco de dados torna-se possível, logo é preciso que seu gerenciador seja capaz de controlar os acessos dos usuários, que retiram e inserem dados, à base, para que esta transação não gere conflitos e inutilize os registros do banco. Para um melhor entendimento as próximas subseções irão abordar os tipos de bancos de dados e suas características de funcionamento Banco de Dados Hierárquico O modelo hierárquico utiliza-se da estrutura de dados Árvore para organizar seus registros internos, onde cada dado só tem um registro pai, formando assim uma hierarquia, podendo ter dentro dele várias hierarquias definindo os dados quem contém o banco. Este modelo atualmente está em desuso, pois possui uma grande desvantagem em sua estrutura relacionada à extração e inserção de dados. Em primeiro lugar ele é somente rápido quando se faz uma pesquisa em somente uma hierarquia, para fazer uma pesquisa que relacione mais de uma hierarquia ele deve percorrer a atual até o dado solicitado e voltar até a raiz e começar do zero na outra hierarquia relacionada (Silberschatz, A. 2006). Resumindo, apresenta problemas quando representa relacionamentos nãohierárquicos. Para ilustrar o banco e sua desvantagem vamos ao seguinte exemplo ilustrado na Figura 2.1. Supõe-se a seguinte situação: o usuário faz uma consulta esperando obter o endereço do SUPERVISOR de determinado DEPARTAMENTO. O sistema gerenciador do banco de dados deverá percorrer o seguinte caminho, primeiro ele irá da raiz à entidade DEPARTAMENTOS buscará pelo departamento solicitado, buscará na entidade abaixo SUPERVISÃO armazenará o EMP_ID (identificação do empregado), voltará à raiz, irá à tabela EMPREGADOS, buscará o empregado com o EMP_ID solicitado e irá, enfim, mais abaixo na entidade endereço que está relacionado a aquele registro de empregado (Silberschatz, A. 2006).

15 15 Ainda que seja visível sua restrição, este modelo de banco de dado fora muito utilizado nos primeiros sistemas de gestão de base de dados em mainframe. Figura 2.1: Exemplo de um modelo de banco de dados hierárquico (Silberschatz, A. 2006) Banco de Dados em Rede No banco de dados em redes os registros são armazenados como uma coleção de dados conectados uns ao outros por meio de um link e cada registro é uma coleção de atributos com um valor único. Cada link liga somente dois registros. Isto significa que o modelo de dados em rede somente fornece relacionamento binário entre os seus dados. Portanto o índice de duplicação de dados, para suprir outros tipos de relacionamentos, neste modelo, é muito alto (Silberschatz, A. 2006). A Figura 2.2 mostra um modelo de banco de dados em rede.

16 16 Figura 2.2: Modelo de Dados em redes e seus relacionamentos (Silberschatz, A. 2006) Banco de Dados Relacional A estrutura do banco de dados relacional é atualmente o modelo mais utilizado de banco de dados, seus dados são estruturados em tabelas simples, contendo linhas e colunas que representam seus registros, essas tabelas devem satisfazer o conceito de integridade especificado pelo criador do modelo Edgar F. Codd. A manipulação dessas tabelas é feita por operadores originários de outras tabelas e dentro destes operadores são destacadas as três mais importantes operações possíveis com eles: a) Restrição: capaz de extrair linhas de uma tabela dado uma especificação; b) Projeção: com a mesma função, mas em sentido diferente, esta operação especifica uma coluna a ser extraída de uma tabela; c) Junção: como o próprio nome indica esta operação une dois conteúdos de uma tabela com base em valores comuns de uma coluna em ambas as tabelas.

17 17 A Figura 2.3 um exemplo de funcionamento destas operações: Figura 2.3: Exemplo de tabelas de um modelo de banco de dados relacional (Date, C.J. 2004) O modelo relacional é baseado na teoria de conjuntos e lógica de predicados em matemática, assumindo assim algumas características destes conceitos. O termo relação é a designação de uma tabela de um tipo específico em matemática, assim, seguindo o exemplo da Figura 2.3, pode-se concluir que no banco de dados de produtos e tipos de produtos têm-se duas relações (Date, 2004). O modelo foi desenvolvido em com E. F. Codd, pela IBM em San Jose - EUA. Desde a implantação do SGBDR (Sistema de Gerenciamento de Banco de Dados Relacionais) até hoje o modelo tem sido melhorado (Date, 2004).

18 Manipulação do Banco de Dados A manipulação de um Banco e de seus dados é feita por uma linguagem. As requisições feitas por esta linguagem podem ser realizadas por um software intermediário ou diretamente pelo usuário no SGDB. A mais comum é a SQL Linguagem de Consulta Estruturada (do inglês Structured Query Language). Softwares intermediários possuem comandos em SQL pré-programados, portanto o usuário final não tem conhecimento destes, mas se é um usuário que deseja atingir diretamente a base necessita de um conhecimento da linguagem. Uma linguagem de programação possui diversas características e uma delas é a proximidade que ela tem com a linguagem humana, que é classificada de duas maneiras, de Baixo Nível: Linguagem complexa muito próxima da linguagem de computador. Alto Nível linguagem com uma grande semelhança à da escrita humana. A Sql é classificada como de Alto nível, pois seus comandos são muitos parecidos com a escrita humana e bem distante do que realmente as máquinas interpretam. Alguns exemplos de comandos: a) Select: operador de consulta, com ele pode-se iniciar uma pesquisa que retorne n-colunas de n-tabelas; b) From: indica onde a pesquisa será feita, quais tabelas serão usadas, seguido dos nomes das tabelas; c) Where: filtrar uma consulta, em número de linhas, aplica-se condições de pesquisa com esta cláusula, seguida das condições a serem aplicadas; Assim como o modelo relacional de banco de dados, a linguagem SQL foi desenvolvida tendo como base de apoio a IBM Research no início da década de 70 e foi

19 19 implementado em um banco experimental chamado System R e posteriormente implementada em muitos outros bancos. Por ser muito utilizada esta linguagem sofreu atualizações e melhorias. Foi padronizada pela ANSI (American National Standards Institute), portanto a forma de se programar nela pode variar dependendo do padrão adotado pelo banco utilizado (Date, 2004). 2.3 Sistemas Distribuídos Como o próprio nome indica é um sistema dividido em pequenos softwares que juntos podem completar uma tarefa complexa. Esta opção de sistema é muito utilizada quando uma parte da aplicação a ser desenvolvida já existe como um serviço web, assim pode-se utilizar os recursos fornecidos por estes serviços e eliminar uma grande quantidade de tempo perdida para desenvolver uma parte do sistema que já existia. (Tanenbaum, A, 2002) Há um problema neste tipo de aplicação, como os sistemas não rodam em uma mesma máquina e se comunicam pela Internet ou rede, significa que estará muito suscetível à falhas e lentidão em seu funcionamento, dependendo muito do tipo de qualidade em que o serviço é fornecido. (Tanenbaum, A, 2002) Arquitetura de um sistema distribuído Um sistema distribuído requer uma arquitetura que seja capaz de suprir essas dificuldades que surgem ao implantar um sistema distribuído, como latência e desconfiança do transporte das informações, a concorrência de acesso a recursos do sistema, a dificuldade de atualização de sistemas por motivo de incompatibilidade entre os softwares distribuídos, entre outros.

20 20 Para isso foi desenvolvido um paradigma arquitetural: SOA (Service Oriented Architecture) Arquitetura orientada a serviço muito utilizada para aplicações distribuídas por dar suporte a algumas dessas dificuldades encontradas ao se aplicar um sistema distribuído. Esta arquitetura padroniza a forma como um sistema distribuído deve funcionar, dividindo esta interação em basicamente em três processos, o da busca pelos recursos disponibilizados, a consolidação e confirmação do recurso requisitado, e por fim a execução do recurso disponibilizado por um Web Service (Erl, T 2005) 2.4 Serviços Web (Web Services) desta solução. A seguir a definição de Web Service, sua arquitetura, características e vantagens Software como um serviço Software como um serviço (Software as a Service SaaS), é um novo paradigma na utilização de software. Nesta solução em alguns casos você paga pelo o que usa e não pela propriedade, em outros casos este modelo é utilizado internamente em grandes corporações onde há uma diversidade de softwares desenvolvidos em linguagens diferentes, mas necessitam de um mesmo recurso. É um modelo de distribuição de software, o qual as aplicações ficam hospedadas em um servidor e são disponibilizadas pela rede. Esta tecnologia de serviço tem muitas vantagens, algumas delas são: a) Escalabilidade, capacidade de atender a todos os requisitantes;

21 21 b) Evita gastos com personalização e implementação; c) Economia de tempo; d) Dispensa a compra de equipamentos para manter a aplicação (Hardware, Infra- Estrutura); e) Não ter de lidar com manutenção; f) Diminuir o número de treinamentos, necessários para o desenvolvimento de um software proprietário. Sendo necessário apenas a personalizar o serviço fornecido de acordo com a necessidade do contratante e ter o treinamento básico para lidar com a aplicação (Miller, 2009) Definição Um Web Service (ou Serviço Web) é um software, hospedado em um servidor, que provê alguma funcionalidade útil para algum outro software, independente de em que linguagem fora desenvolvido este outro software e o próprio Web Service (En. W3C 2009). A comunicação entre o Web Service e softwares que o utilizam é feita através de uma rede, na maioria das vezes a Internet. Para que haja a capacidade de comunicação, necessitase de um conhecimento em comum entre estes dois softwares, no caso um protocolo de comunicação é admitido e padronizado para que isso seja possível. Um arquivo WSDL (Web Service Definition Language) define exatamente as funcionalidades de dado Web Service. Normalmente este arquivo é escrito em XML (Extensible Markup Language), um padrão de linguagem escolhido pela W3C (World Wide Web

22 22 Consortium, comunidade internacional, a qual suas organizações membros são dedicadas ao desenvolvimento de normas e padrões Web) para realizar esta interpretação universal (W3C, 2001) Objetivos O objetivo desta tecnologia é possibilitar a interoperabilidade entre sistema de base programática diferente. Um software feito com uma linguagem que tenha suporte às tecnologias utilizadas por Web Service pode facilmente passar a utilizar os recursos de um ou até mesmo passar a prover Web Services. Com exemplo uma empresa que faz suas vendas via comércio eletrônico, pode facilmente solicitar um serviço web completo, que suporte este tipo de aplicação, sendo necessário apenas ter os conhecimentos de como utilizar esta tecnologia e usufruir dos seus benefícios. Evitando assim gastos com desenvolvimento de aplicações próprias refazendo aquilo que já está feito com qualidade, segurança, agilidade e competência, que são umas das características de empresas que fornecem este tipo de serviço, pois afinal de contas o negócio principal desses fornecedores de serviços web são os negócios de seus próprios clientes WSDL Linguagem de descrição de um Serviço Web (do inglês Web Services Description Language) é um documento que descreve onde e como suas funcionalidades estão definidas. Este recurso é necessário para que um Web Service seja entendido tanto pela máquina, quanto pelo homem que necessita para programar um agente requisitante. É dividido de dois conceitos o abstrato e o concreto: Abstrato descreve o padrão em que as mensagens trocadas no Web Service devem estar. Este padrão de mensagens é descrito

23 23 em um documento, o mais usado para esta funcionalidade é o XML Schema (no formato de arquivo.xsd). No Concreto o WSDL descreve como será feita a transação destas mensagens, que meio e que endereço estão localizados certos componentes de um Web Service (W3C) XML Esta é uma das razões da existência de Web Services e Sistemas Distribuídos, pois facilita a comunicação entre sistemas e sem ela essa interoperabilidade seria muito difícil e cara de ser implementada. XML (Extensible Markup Language) é a linguagem de marcação utilizada para troca de mensagens. Seu conteúdo é todo definido dentro de tags pré-definidas pelo autor do documento, a sintaxe desta linguagem é bem simples e a estrutura interna de um documento XML é baseada no conceito de árvore, a qual um elemento pode ter vários filhos e um filho possui somente um pai. É recomendado pela W3C. Um exemplo de Arquivo na Figura 2.5: Figura 2.4: Aparência de um documento XML (W3School) O arquivo xml utilizado em um Web Service pode conter a descrição, o armazenamento e o formato da transmissão utilizada na troca de dados (W3Schools). O Web Service é dividido em duas partes funcionais:

24 24 a) Agentes: parte concreta de um Web Service, que enquanto está funcionando, os agentes tem a tarefa básica de enviar e receber mensagens, que são trocadas na interação entre os softwares requisitantes e o Web Service; b) Serviços: é um recurso abstrato de um Web Service, pode-se resumir que um serviço é uma das funções que um Web Service provê (W3C). Para que um Web Service seja útil e faça algum sentido é necessário alguém que pratique alguma ação dentro e fora deste sistema e para isso tem-se dois atores: o Requisitante e o Provedor. a) Requisitante: este ator ou entidade é responsável por solicitar o serviço de um Provedor, geralmente é o requisitante que inicia a troca de mensagens que contém as solicitações e respostas; b) Provedor: é o agente que contém o serviço a ser disponibilizado, caracteriza-se por receber uma solicitação e enviar uma resposta ao requisitante (W3C). Um Web Service deve possuir uma semântica na descrição de suas funcionalidades. Para se obter uma semântica desejável utiliza-se uma linguagem de marcação que torne as funcionalidades de um Web Service legível por outra máquina, tornando possível assim a comunicação entre os requisitantes e provedores do serviço Arquitetura e Protocolos de Comunicação. Para que troca de mensagens, no contexto do Web Services seja possível, existe um padrão de comunicação o SOAP (Simple Object Access Protocol) (W3C, 2007).

25 25 Na prática um Web Service possui diversos métodos disponíveis para uma dada aplicação, para se utilizar estes recurso tem-se o auxílio deste protocolo. A invocação remota de um método é armazenada em um arquivo XML, que contém o endereço do Web Service, o nome do método a se utilizar e os argumentos necessários, caso a resposta deste método seja baseada nos parâmetros passados. Este arquivo é enviado via HTTP para o servidor do Web Service HTTP (Hypertext Transfer Protocol), outro protocolo padrão para quem utiliza a Internet, pois através dele as páginas de web são requisitadas e transportadas (W3C). Na Figura 2.5, uma breve descrição do funcionamento de um Web Service SOAP. Figura 2.5: Ciclo básico de funcionamento de um Web Service SOAP. Voltando ao SOAP, esta tecnologia não define nenhuma semântica, quer seja a aplicação em que se aplica ou modelo de programação. Esta característica torna-o uma ferramenta que pode ser utilizada em qualquer tipo de aplicação desenvolvida. Devida esta flexibilidade tornou-se uma das principais normas para troca de mensagens em Web Services. Além desta vantagem o SOAP é um protocolo de RPC (Remote Procedure Calls) que funciona sobre HTTP (ou SMTP, ou outro) isto significa que suas mensagens serão transportadas independentes de normas de seguranças impostas por firewalls que normalmente são utilizadas em sistemas de RPC.

26 26 Funciona da seguinte maneira, ao invés do protocolo HTTP requisitar uma página para ser visualizada em um navegador, o SOAP envia seus arquivos e recebe uma resposta, caso haja, através do mesmo caminho em que foi enviada solicitação (W3C). Outra alternativa é a utilização da arquitetura REST, Transferência de Estado Representacional (do inglês Representational State Transfer), esta técnica segue o mesmo princípio utilizado pelo SOAP, o qual há um requisitante e é esperado uma resposta, neste caso as solicitações são efetuadas através de url e é também por onde os parâmetros são enviados. A resposta pode retornar um arquivo contendo o resultado do processamento. Na Figura 2.6, o ciclo de funcionamento de um Web Service REST. Figura 2.6: Ciclo de um Web Service REST REST aproveita de forma simples a utilização dos métodos nativos do protocolo HTTP, são eles POST, GET, PUT ou DELETE, cada um com uma funcionalidade específica, sendo que GET é o mais comum ser utilizado pelo REST.

27 Banco de dados como Serviço Web Após a definição de Banco de dados e Software como serviço web, pode-se definir Banco de dados como Serviço Web (do inglês Database as a service, DaaS), resume-se na disponibilização de um banco de dados e todas suas funcionalidades por meio de um Web Service, assumindo as características de um sistema distribuido, o qual o banco de dados, que antes era parte integrada do sistema, passa a se caracterizar por um nó deste, independente do resto da aplicação. A comunicação com a base que antes era feita diretamente por comandos executados pela aplicação sobre o banco, passa a ser encapsulada em uma mensagem, que enviada através de um protocolo de comunicação, de um cliente à um web service, tendo como resposta outra mensagem encapsulada e enviada por este mesmo protoloco. Porém agora não é necessário lidar com a melhora do desempenho do banco, para atender uma grande demanda, pois uma das característica básica de um sistema como serviço web é prover as funcionalidades com a capacidade de atender qualquer demanda solicitada (Escalabilidade). Nem tampouco lidar com problemas que poderiam surgir caso a base de dados sofresse alguma atualização no seu software, pois a interface da aplicação com a base de dados será a mesma independente da versão do software que prove os serviço Por que Banco de dados com Serviço web? Como foi abordada na seção 1.1 a implementação de modelos de banco de dados tradicionais trás custos operacionais indesejáveis pelas organizações, os gastos vão de compra de equipamentos a contratação de profissionais do ramo destinado a realizar tarefas simples, mas de grande valia.

28 28 Mesmo com todo este aparato ainda surgem alguns problemas com este antigo paradigma, seria muito difícil com alguns profissionais manter a escalabilidade de um sistema de banco de dados e na atualização de um banco para uma versão mais atual poderiam surgir diversos problemas de incompatibilidade. Um serviço web de banco de dados costuma ter suporte a todas estas necessidades e serem capazes de solucionar estes problemas que encontramos ao nos depararmos com estes modelos antigos. Com um custo muito menor e podendo até ser de graça, caso grandes organizações como a Google adaptem suas ferramentas para uso público Desafios do DAAS O que todos se perguntam Após compreender o conceito de DAAS é E a privacidade dos dados?. Realmente é necessário segurança sobre os dados armazenados e durante uma transação de informações. Para solucionar estes problemas provedores de DAAS estão preparados com regras de segurança, como a encriptação de todos os dados sob seu controle e torna isso uma das questões mais importantes de seus sistemas, pois os dados de seus clientes são de extrema importância e valiosos. Os níveis de encriptação podem variar de um grupo de dados a um único registro de uma dada estrutura de dados. E esta encriptação pode ser realizada no software que disponibiliza a aplicação Web Service ou no hardware que a mantém. Na camada software a encriptação pode ficar a cargo de algoritmos de confiança como RSA e BlowFish, que foram testados por um banco de dados como serviço web da IBM, o NetDB2, para a aplicação o algoritmo BlowFish saiu-se melhor nestes testes levando em conta a sua velocidade, simplicidade e sua eficiência.

29 29 Para a utilização desta ferramenta é disponibilizada uma função de encriptação e é fornecida ao usuário uma chave para desencriptar seus dados. Esta função e chave podem ser usadas diretamente nas operações feitas pelo usuário em suas consultas (do inglês querys) (H. Hacigumus 2002, IBM). 2.6 Considerações Finais Neste capítulo introduzimos os conceitos base para o entendimento de uma aplicação Database as a Service. Foram abordados os conceitos de banco de dados, aplicação distribuídas, Web Services e finalmente a teoria de banco de dados como serviço web. No próximo capítulo serão apresentadas soluções existentes e suas características em comuns e as diferenças entre elas e um caso de uso de um banco de dados como serviço web utilizado pelo site de fotografias Twitpic.

30 30 3 SOLUÇÕES EXISTENTES Os DAAS são disponibilizados pela Internet. Como não existe muito Web Services deste tipo, a maioria dos que existem são pagos. Para utilizar um DAAS deve-se recordar toda base que foi explicada anteriormente mais uma linguagem de programação que fará todo o papel de cliente requisitante. As seções estão organizadas na seguinte forma: seção 3.1 Apresenta a solução proposta pela Amazon que soma as vantagens de dois Web Services robustos, SimpleDB+AmazonS3, para uma aplicação completa de banco de dados como serviço, a seção 3.2 que mostra uma opção gratuita desenvolvida pela Apache CouchDB e por ultimo 3.3 seção destinada a um caso de uso que utiliza uma solução existente, Twitpic. 3.1 SimpleDB + AmazonS3 A Amazon.com, corporação tradicional de e-commerce, viu na tecnologia Software as a Service um grande mercado e começou a investir fortemente no desenvolvimento deste tipo de aplicação. (Amazon.com, 2006) SimpleDB é um exemplo de Web Service, desenvolvido pela Amazon, que interage com o Amazon S3 e através de suas funções de indexação e consulta formam um provedor de DAAS. O Amazon S3 (Amazon Simple Storage Service) possui funções para armazenamento enquanto o SimpleDB lida com a manipulação dos dados. Este conjunto de ferramentas tem como foco a excelência em escalabilidade. Provê uma simples interface Web

31 31 Service, que pode ser utilizada para armazenar e retirar dados em qualquer quantidade, hora e lugar da web Amazon S3 Desenvolvido para escrever, ler e apagar objetos de um a 5 gigabytes cada. E o número de objetos que se pode armazenar é ilimitado. única chave de acesso. Cada objeto é armazenado em bucket, repositório de dados, e recuperado, via uma Um bucket pode estar alocado nos Estados Unidos ou na Europa. Todos os dados serão armazenados nesses bucket s, mas poderão ser acessados de qualquer lugar. O mecanismo de autenticação garante a segurança dos dados de acessos não autorizados. Mas se desejar que o acesso a algum objeto seja público, basta especificar o objeto com modificadores de acesso Funcionamento Neste exemplo será abordada a API SOAP para utilizar alguns recursos do Amazon S3 como a criação de um bucket e a Inserção de um dado dentro dele. Para utilizar as funcionalidades do produto Amazon ele disponibiliza um arquivo Wsdl que as descreve, para uma máquina interpretar, acessível no endereço Para validar o conteúdo dos Xml

32 32 gerado pelo cliente ela disponibiliza um XSD no link 01/AmazonS3.xsd. Existem dados comuns que serão trafegados em todas as transações, estes são: a) AWSAccessKeyId: A Chave de Acesso para uma requisição AWS; b) Timestamp: Tempo atual do Sistema; c) Signature: Assinatura para Requisição. Na Figura 3.1, segue um exemplo de solicitação: Figura 3.1: Exemplo de solicitação para criação de um Bucket Este exemplo é uma requisição para a criação de um bucket com os dados completos, nome do bucket 'repositorio', note que na terceira chave, 'Acl', do contexto o conteúdo 'private' especifica o acesso ao recurso sendo privado para acesso somente a quem o criador deste permitir acessar. Ao enviar esta requisição, é esperada a resposta ilustrada na Figura 3.2. dado utilizando este espaço. Feito a criação de um local de armazenamento, o próximo passo é armazenar um

33 33 Figura 3.2: Exemplo de solicitação para criação de um Bucket PutObjectInline - Esta operação adiciona um objeto em um dado bucket. Os dados deste objeto devem estar contidos no corpo de uma mensagem SOAP. Caso ocorra de o objeto já existir, o novo objeto irá sobrescrever o objeto antigo, isso porque o Amazon S3 armazena a ultima requisição de escrita. Como já visto, Amazon S3 é um sistema distribuído. Se receber muitas requisições ao mesmo tempo, para um mesmo objeto, irá escrever todos simultaneamente, todos serão armazenados, mas somente um ficará no final. Amazon S3 não prove lock por objeto; se você precisar deve desenvolver uma camada de aplicação para isto. Para ter certeza de que o objeto não foi corrompido em toda sua viajem, você pode calcular o MD5 (Message-Digest algorithm 5, algoritmo utilizados na verificação de arquivos) deste objeto, depositar o resultado no Amazon S3 e comparar com o MD5 do objeto a ser conferido armazenado no repositório. Este método é limitado a trabalhar com objetos de no máximo 1mb, se utilizá-lo para maiores fins, receberá uma resposta indicando o seguinte erro: InlineDataTooLargeError indicando que passou do limite proposto, para armazenar objetos maiores a API do Amazon S3 disponibiliza o método não-linear PutObject. No exemplo da Figura 3.3, tem-se a inserção de um texto e um meta-dado inserindo objeto 'Teste' dentro do bucket 'repositorio', dado um usuário e FULL_CONTROL (controle completo) para acesso ao objeto por requisições anônimas: a) Bucket: local onde será inserido o objeto;

34 34 b) Key: a chave da assinatura do objeto; c) Metadata: Podem-se atribuir valores que identificam o objeto no sistema para a fácil identificação daquele objeto futuramente; d) Data: Dado codificado na Base64; Figura 3.3: Exemplo de documento xml para inserção de um objeto em um Bucket e) ContentLength: Tamanho do dado em bytes; f) AccessControlList: Uma lista de controle de acesso para o recurso. É opcional se for omitido o valor associado ao controle será de FULL_CONTROL, acesso

35 35 completo ao objeto. Se o objeto já existe, o controle de acesso anterior é substituído pelo novo SimpleDB A utilização do Amazon S3 crua não traz muitos benefícios para o usuário, além da escalabilidade, pois os dados não são nada mais além do que armazenados e retirados de forma bruta para isso desenvolveram o SimpleDB, que contém diversas funcionalidades para manipular esses dados armazenados como indexação e consultas. Estes serviços em conjunto com o Amazon S3 possibilitam a escalabilidade web com mais custo benefício aos desenvolvedores. Diferente do modelo tradicional banco de dados relacional, que necessitavam de gastos consideráveis em relação à clusterização, desenvolvimento da base e posteriormente requeria um DBA para administrar e dar manutenção ao sistema. Amazon SimpleDB é muito simples não requer esquema, automaticamente indexa seus dados e provê uma API simples para o acesso armazenamento dos dados. Esta aplicação diminui gastos administrativos com modelagem, manutenção de index e melhora do desempenho. SimpleDB é um Web Service simples que provê as funcionalidades de criação de data sets, consulta a seus dados e retorno dos resultados Organizam-se os dados em estruturas dentro de domínios e podem-se executar consultas através de toda estrutura de dados armazenada em um domínio particular. Domínios são preenchidos por itens, e itens são descritos por valores e atributos. Para entender estes elementos, considere-os uma variação de uma tabela. Um domínio é como uma planilha, itens são como linhas de dados, atributos são como colunas e os valores são os dados inseridos em cada célula.

36 36 Mas diferente de uma tabela, vários valores podem ser associados a cada célula. Por exemplo, para um item calça pode conter ambos os valores azul e branca para o atributo cor. Resumindo cada item pode ter sua própria configuração de atributos, como no exemplo da Figura 3.4. Tabela 3.1: Exemplo de um domínio Criar um domínio para guardar sua estrutura de configuração única de dados. Métodos GET, PUT ou DELETE são utilizados para manipulação dos itens nos domínios criados, associando cada item a seus atributos e valores. Cada item pode ter até 256 atributos diferentes e para cada atributos valores de 1 a 1024 bytes. Para consulta aos dados usa-se as Apis Select e Query e simples operadores de condição : =,!=, <, > <=, >=, STARTS-WITH, AND, OR, NOT, INTERSECTION e UNION entre outros operadores de funções aleatórias como de organização. Um exemplo de consulta que se pode ser feita é a seguinte: select * from meudominio where atribuo = 'valor' Nesta solução você só paga por aquilo que utiliza (Amazon SimpleDB).

37 CouchDB É um banco dados como serviço que foi desenvolvido pela Apache, orientado a documentos, suas funcionalidades são acessíveis via protocolos RESTful Http/JSON API. É caracterizado por ser um banco robusto, através de uma interface orientada à documentos pode-se fazer consultas e indexar seu conteúdo. Esta interface tem sua engine desenvolvida em JavaScript (linguagem de script, interpretada por navegadores, criada em 1995, para adicionar dinamicidade às páginas na web) que facilita diversas operações comuns a um banco de dados (CouchDB, 2009). Características do sistema: a) Software Gratuito; b) Código fonte aberto; c) Interface amigável com o Usuário; d) Somente disponível para Sistema Operacional Linux (Implementação). Na Figura 3.4 é apresentada a arquitetura do sistema. Sua base foi escrita em Erlang, linguagem desenvolvida pela Ericsson caracterizada por possibilitar a modificação de um software, feito nela, em Runtime, assim nunca uma aplicação desenvolvida em Erlang precisa ser parada para efetuar suas atualizações. Esta linguagem dá suporte à comunicação HTTP, portanto suas funcionalidades podem ser fornecidas com muita facilidade possibilitando a criação de um Database as a Service completo (Armstrong, 2003).

38 38 Figura 3.4 Arquitetura do Sistema CouchDB Documentos consistem em um objeto com campos nomeados e com valores atribuídos a esses campos, podendo ser estes valores, textos (Strings), numéricos, datas e outros. Um exemplo de documento poderia ser um post de um blog, na Figura 3.5: Figura 3.5 Estrutura de um documento Percebe-se que cada campo possui um valor característico, Assunto assim como Corpo são Strings simples, já Tag é um campo que possui uma lista de valores. CouchDB nada mais é do que uma coleção destes documentos que são identificados unicamente por um ID.

39 39 Diferentemente do Sql, o CouchDB foi desenvolvido para armazenar e disponibilizar uma grande quantidade de semi-estruturas, dados orientados a documentos. CouchDB facilita o desenvolvimento de aplicações orientadas a documentos. Com o CouchDB, não é necessário a criação de um esquema, então novos tipos de documentos podem ser adicionados juntamente com os antigos. A ferramenta de visualização, usando JavaScript, é desenhada para manusear facilmente estes novos tipos de documentos Funcionamento Atualmente o CouchDB é disponibilizado apenas para plataformas Linux e Mac, é distribuído como pacote de instalação e código fonte para ser compilado e usado, as duas versões de instalações são disponibilizadas gratuitamente no site Há uma sessão no site dedicado a notificações de bugs, que usuários encontram no decorrer das operações. Podendo ser corrigidos pelos próprios usuários e sua correção pode ser disponibilizada na próxima versão oficial do software (CouchDB, 2009) comando. Após instalar o CouchDB os primeiros passos vão ser executados via linha de Assim como a maioria dos bancos de dados como serviço, o CouchDB disponibiliza três métodos (REST) principais para manipulação dos seus dados, estes são: a) GET - Método utilizado para capturar algum dado do banco; b) PUT - Tem a função de inserir dados no banco; c) DELETE - Utilizado para apagar um dado específico do banco.

40 40 Para acessar os métodos utiliza-se comando curl no terminal do sistema Linux seguido a URL precedida do prefixo -X juntamente com o método a ser utilizado Como no exemplo: ( 1 ) curl -X GET Neste exemplo capturamos uma lista dos bancos de dados existentes no sistema. Se for seu primeiro acesso não deverá existir nenhum banco então a resposta que teria seria "[]" que indica a não existência de conteúdo no registro procurado. Mas se antes o método PUT fosse acionado para criar um banco de dados como no exemplo abaixo: ( 2 ) curl -X PUT Ele retornaria a seguinte resposta: {"ok":true} Em forma de um simples documento, contendo apenas a confirmação da criação. Se fosse solicitado novamente o código ( 1 ) uma lista semelhante a esta iria aparecer no visualizador do CouchDB: ["novobanco"] Todas estas funcionalidades são disponibilizadas também pelo Futon, a interface gráfica administrativa do CouchDB, Figura 3.6, para acessar esta ferramenta é necessário executá-la via um navegador web através do endereço: [ ]

41 41 Figura 3.6: Visualização da Ferramenta Futon 3.3 Caso de Uso Atualmente há algumas aplicações que optaram por esta tecnologia, sistemas em que o uso do armazenamento é extremo, tanto para leitura quanto para escrita. Esses sistemas adotaram fornecedores de Banco de Dados como Serviço Web pagos, o qual hoje é a melhor opção a se adotar. Twitpic é um serviço muito simples para publicação de fotos e divulgação através da sua conta Twitter microblogging e serviço de relacionamentos. Acesso pela url seu serviço pode ser também utilizado independentemente do Twitter, similar ao mais popular site de compartilhamento fotos. (Twitpic.com, 2009) Os serviços do Twitpic são disponibilizados via REST e suas fotos São armazenadas no serviço de armazenamento Amazon S3 disponibilizados pela Amazon citada anteriormente. Abaixo, na Figura 3.7, a home page do Twitpic.

42 42 Figura 3.7 Página principal do TwitPic Ao cadastrar-se no sistema você tem a possibilidade de fazer uploads de fotos ilimitados de para o seu perfil. Na Figura 3.8, um exemplo de foto hospedada nos serviços da Amazon, note que a url de acesso a imagem é extensa, isso porque nela estão contidas as seguintes informações: a) O endereço do Web Service da Amazon: b) A conta do Usuário c) O repositório Utilizado e uma subcategoria. d) O Nome do registro

43 43 Figura 3.8 Exemplo de imagem armazenada em um Banco de dados como serviço Web e) E mais três parâmetros provenientes da AmazonS3: Chave de Acesso público ao Registro AWSAccessKeyId=0ZRYP5X5F6FSMBCCSE82 Tempo de validade do Registro Expires= Autenticação do Usuário Signature=waVZT9AF1aC91B1U29PxqUzBPio%3D 3.4 Considerações Finais Dados os sistemas anteriores nota-se que há diferenças entre o modo de se fazer, mas o conceito base da criação de um repositório e a inclusão de registros neles é idêntico.

44 44 Nota-se que há realmente a necessidade do uso da tecnologia, porém ainda não há o suporte para a parte de manipulação visual, o que daria maior controle da situação em que se encontram seus registros no banco de dados atual. No próximo capítulo serão apresentadas as desvantagens destes produtos e o desenvolvimento de uma nova aplicação que supra estas falhas e traga as vantagens do Database as a Service para usuários iniciantes.

45 45 4 VISUAL DAAS: UMA IDE PARA BANCO DE DADOS COMO SERVIÇO WEB Este capítulo apresenta a Visual DaaS, uma IDE para banco de dados como serviço web. Será apresentada sua arquitetura, funcionamento, dicionário de dados, arquitetura orientada a objetos, e interface gráfica com o usuário. As seções estão organizadas da seguinte forma: a seção 4.1 desenvolvimento da arquitetura do projeto Visual DAAS, a seção 4.2 mostra o funcionamento da BigTable e como são estruturados seus registros, na seção 4.3 é apresentado um breve resumo do funcionamento do sistema Visual DAAS, a seção 4.4 explica o funcionamento da engine que age entre a interface gráfica e o repositório BigTable, a seção 4.5 apresenta o dicionário de dados que definirá a estrutura dos dados armazenados na BigTable e finalmente na seção 4.6 é apresentado a interface gráfica do usuário. 4.1 Arquitetura da Visual DAAS nota-se algumas deficiências: Analisando o atual cenário de servidores de banco de dados como serviço web a) SimpleDB & AmazomS3: possui uma API completa e bem documentada, porém seus serviços são pagos e não possui uma interface gráfica com o usuário; b) Usabilidade: os bancos de dados como serviços atuais são voltados para a comunidade de desenvolvedores avançados, isso requer que o usuário tenha além do conhecimento de programação, entenda também de banco de dados orientado a documentos;

46 46 c) Soluções gratuitas como CouchDB, são para implementação e não fornece o serviço completo, qual incluiria a infra-estrutura. O modelo que será desenvolvido vai atender a essas dificuldades encontradas nos projetos atuais de DAAS, trazendo de forma mais simples as vantagens do banco de dados como serviço para os usuários iniciantes. A BigTable é uma base de dados distribuída, extensa e escalável criada pela Google. Ela é usada em muitas de suas aplicações populares e está somente disponível internamente para funcionários da Google. Embora a BigTable não seja um DaaS, o desenvolvedor Andrew Hitchcock, disponibiliza-a como Web Service, para testes. Seu uso é limitado, está disponível no link o limite de uso é cerca de 500mb de capacidade são disponibilizados, por usuário. Este Web Service disponibiliza somente os métodos de acesso e manipulação GET, PUT e DELETE, arquitetura RESTful (Hitchcock, 2009). O objetivo da arquitetura é aproveitar este recurso e desenvolver sobre ele uma interface amigável ao usuário, para que ele possa desenvolver aplicações que utilizem essa ferramenta como banco de dados. Aproveitar os benefícios que uma ferramenta da Google pode oferecer como escalabidade e o funcionamento ininterrupto da base. Ao criar seu banco pela Visual DAAS, automaticamente será criado um Web Service deste banco para ser utilizado em outras aplicações caso o usuários esteja desenvolvendo. A arquitetura da Visual DAAS é apresentada na Figura 4.1. A arquitetura está definida da seguinte forma: a) BigTable: localiza-se na primeira camada da aplicação, que funciona como um repositório de dados, sendo manipulada diretamente pela engine da IDE. b) Engine: um nível acima está localizado o núcleo da aplicação, que concentra a maior parte do processamento, agindo como intermediário entre a interface

47 47 gráfica com o usuário e a BigTable. Nesta etapa encontra-se, também, o gerenciamento dos Web Services criados pelos usuários da IDE. Figura 4.1. Arquitetura da Visual DAAS c) Interface Gráfica: ultima camada da aplicação, qual o usuário tem o acesso direto e controle total sobre a aplicação. 4.2 Funcionamento da BigTable como Serviço Web O repositório BigTable trabalha com armazenamento de dados codificados em Base64 como no exemplo da Figura 4.2. O sistema de codificação Base64 para transferência de dados pela Internet, é constituído por 64 caracteres que variam de 0 a 9, de A a Z e inclui os símbolos /, + e =. (Josefsson, S., 2009)

48 48 FIGURA 4.2 Exemplo de um dado codificado na Base64 Cada registro é estruturado no formato JSON (JavaScript Object Notation - Notação de Objetos JavaScript), é um padrão de troca de mensagens entre sistemas, os dados são organizados em listas e seu conteúdo é legível pelo homem (Json.org, 1999). Cada registro é considerado uma célula e cada célula possui os seguintes atributos, apresentados na Figura 4.3: FIGURA 4.3 Atributos de uma Célula contida na BigTable O método GET de captura de dados permite somente a captura de uma célula por vez, portanto será necessário o desenvolvimento de meta-dados para facilitar a manipulação dos dados na BigTable e definir algumas constantes em relação à estrutura das tabelas criadas por este modelo. 4.3 Funcionalidades do Sistema O Visual DAAS, assim como nos banco de dados convencionais, deverá prover funcionalidades simples, como criação e manipulação de tabelas, e mais complexas, como indexação e backup dos dados gravados na base.

49 49 Haverá também um sistema de consultas que serão feitas por meio de comandos SQL ou por um sistema de associação visual, no qual o usuário acrescentará os filtros da busca até montar o resultado desejado passando assim por um sistema de consulta da Engine Java e retornará ao usuário os resultados em uma tabela. Esta consulta também poderá ser feita através do Web Service do sistema e o resultado será disponibilizado em JSON. Este tipo de resultado facilitará a associação com outros aplicativos que usufruem de Web Services como complementos para suas aplicações. 4.4 Requisitos do Sistema DAAS: A seguir serão apresentados os requisitos funcionais e não-funcionais da Visual a) Requisitos Funcionais A engine deve prover as funcionalidades relacionadas ao processamento de dados do sistema, incluído nisso estaria o sistema de gerenciamento da base de dados BigTable, o controle de acesso para os usuários, um gerenciador de consultas e indexação do banco, e por fim um gerenciador de Web Services tanto dos gerados como os dos consumidos no caso da BigTable; b) Requisitos não funcionais - Uma característica indispensável em um sistema Web é a usabilidade, pois assim suas funcionalidades podem ser assimiladas sem ao menos que o usuário tenha a necessidade de ler um manual ou tutorial de como manipular o aplicativo em questão. Outro requisito é a Escalabilidade, além da provida pela Web Service da BigTable, o Visual DAAS também deverá atender a este requisito, que leva em conta tanto software como o hardware, utilizado no servidor que hospeda a aplicações, que passa a ter papel fundamental neste padrão de qualidade.

50 Dicionário de Dados Em um banco de dados convencional os arquivos de configurações definem a estrutura de um banco de dados, armazenam elementos que o compõe e os dados que estão contidos neles em datafiles. Como a BigTable não disponibiliza nenhum recurso similar, é necessário esquematizar esta base para que seja possível implementar o modelo. Baseado em um banco de dados relacional, os dados serão armazenados em tabelas e estas conterão linhas e colunas. Assim como as células também deve-se definir atributos para uma tabela, esses atributos serão armazenados em uma célula seu conteúdo estará estruturado no formato JSON, como no exemplo da Figura 4.4. Figura 4.4 Estrutura de uma tabela em JSON Todas as tabelas serão descritas pelos atributos, apresentados na Figura 4.5.

51 51 Figura 4.5 Atributos de uma tabela do sistema Visual DAAS A meta-célula da Figura 4.5, precisa ser armazenada em uma tabela, linha e coluna específica, com um padrão para ser seguido caso outra tabela seja criada. Primeiramente é necessário assim como os bancos convencionais criar tabelas de que armazenarão os objetos criados no sistema e seus usuários, essas tabelas também deverão seguir o padrão especificado anteriormente, exemplo na Figura 4.6: FIGURA 4.6 A Tabela de objetos armazenará as tabelas criadas pelos usuários do sistema Note que o primeiro registro da tabela de objetos refere-se a ela mesma, indicando a existência de um objeto no sistema.

52 52 Feito isso, é necessário armazenarmos os usuários do sistema, que terão poder sobre os objetos criados. Então se cria uma tabela para este fim, apresentada na Figura 4.7. Esta tabela também será referenciada nos registros de objeto e assim será com todos os outros criados. Ao criar-se uma tabela ou objeto, uma rotina do sistema criará automaticamente um registro na tabela de objetos relacionando diretamente ao usuário que a criou. FIGURA 4.7 Tabela de Usuários do sistema. Primeiramente será necessária a criação de um cadastro de usuário, para identificação do autor das futuras tabelas. Este dado inicial será gravado na tabela de usuários criada nas configurações do dicionário de dados. Ao entrar no sistema, após o login, o usuário terá acesso ao Menu de aplicações e visualização da área de trabalho do sistema. 4.6 Arquitetura Orientada a Objetos A Engine da IDE será desenvolvida em Java, linguagem que dá suporte a todos os requisitos levantados anteriormente (Sun Microsystem, 2005).

53 53 Abaixo as funcionalidades providas pelo sistema: a) Visualizador de Objetos: Menu principal do programa onde será possível visualizar os objetos criados pelo usuário; b) Criar Tabela: Disponibilizará um painel contendo os campos necessários para criação de uma tabela: nome da tabela, nº de colunas e seus nomes; c) Visualizar Tabela: Ao clicar aparecerá uma janela para digitar o nome da tabela e um botão para confirmação, caso exista o sistema exibe a tabela na área de tarefas; d) Editar Tabela: Também com o campo de entrada do nome da tabela esta opção retorna uma tabela de objetos com colunas referenciando aos atributos das tabelas como nome de colunas e tipo; e) Fazer Consulta: Com esta opção pode-se executar uma consulta através de uma string SQL e o resultado caso haja será uma tabela com os dados na área de trabalho do sistema; f) Gerar Web Service de uma Tabela: Esta opção gera uma Url para que uma tabela possa ser acessada via RESTful. Analisando estas informações e atendendo os requisitos funcionais é possível desenvolver o diagrama de classes do projeto, apresentado na Figura 4.8:

54 54 FIGURA 4.8 Diagrama de classes do sistema. Este diagrama ilustra o funcionamento do sistema, mas análise é necessária para o entendimento por completo. Primeiramente a classe Célula seria a base do sistema com suas simples características valor do tipo Object, podendo receber variados tipos de conteúdo, e a especificação do conteúdo no atributo tipo, classificado pelos atributos pertencentes ao Enum TipoDados podendo variar entre DATA, MOEDA, NUMERO e TEXTO. Acima encontra-se a classe Linha que é composta por Células, possui os atributos tabela, que recebe como valor o nome da tabela que está contida, o atributo número, que corresponde ao número da linha na tabela, o atributo colunas que é uma lista correspondente ao formato da linha e por fim o atributo célula, que é uma lista das células contidas naquela linha.

55 55 A classe Coluna possui os atributos tabela, qual ela pertence, nome da coluna e tipo define o dado que pode ser inserido no seu conteúdo. A classe está associada diretamente com uma Linha e juntas compõe a classe Tabela que além dessas características ainda possui os atributos: a) nome: nome dado à tabela; b) usuário: criador da tabela; c) datacriacao: data da criação da tabela; d) colunas: lista de colunas que formam a tabela; e) linhas: lista das linhas com conteúdo que preenchem a tabela. Esta tabela já possui alguns métodos bem definidos, além de seus getters e setters como addlinha e addcoluna, que adicionam respectivamente uma linha e uma coluna à tabela. TabelaToJSON e JSONToTable são responsáveis pela manipulação da tabela de acordo com a camada em que a tabela estiver sendo utilizada, para gravar a tabela na BigTable o método tabelatojson faz a tradução do um objeto Tabela para um arquivo JSON. Já para o caminho oposto utiliza-se o método JSONToTable. Para a camada Visual será desenvolvido um modelo de dados similar em JavaScript, que receberia como fonte de dados os objetos codificados em JSON, processo ilustrado na Figura 4.9. Para a utilização da BigTable foram adicionados recursos para se adaptar ao projeto ao arquivo BigTable.jar disponibilizado por este site foi criada uma classe BigTableMelhorada para suprir com esta necessidade. Foram criados métodos para inserir, deletar, atualizar e selecionar uma tabela na BigTable de acordo com os padrões especificados pelo projeto.

56 56 A classe Configurações será a primeira a ser executada na implementação do projeto, pois é responsável pela configuração inicial do dicionário de dados e da manipulação do seu conteúdo. Web Browser Web Server HTML / JAVASCRIPT JAVA function eventmanager() { AjaxService.getOptions(populateList()); } JSON public class AjaxService { function populatelist(data) } { DWEUtil.addOption( okoko,data); } } REQUISIÇÃO public String[] getoptions(){ return new String[] { 1, 2, 3 }; Figura 4.9 Ilustração do processo de transição dos dados pelas camadas da aplicação. E por fim a classe Consulta que tratara das consultas em SQL feias pelo usuário, retornando o resultado, se existir, uma outra tabela no formato JSON. Este método também será acessível via Web Service, podendo ser acessado via RESTful. 4.7 Interface com o Usuário Foi utilizado como base para a construção da interface o conceito de aplicações RIA Aplicações de Internet Rica (da sigla em inglês RIA - Rich Internet Application), possuem

57 57 os aspectos visuais semelhantes a aplicativos desktop, adequando-se aos quesitos de usabilidade e maior aproveitamento da aplicação (Duhl, J, 2003). Uma das características das aplicações RIA é a de que todo o processamento destinado a interface fica a cargo do navegador e a maior parte dos dados ficam em um servidor de aplicações. Esta interface será desenvolvida em JavaScript com auxílio da biblioteca JQuery, que suporta vários plugins, para facilitar a criação de aplicações RIA. A seguir, na Figura 4.6, o design da aplicação Visual BigTable. Figura 4.6: Modelo de como seria a visualização do sistema.

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2 Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2 Aula 2 Computação em Nuvem Desafios e Oportunidades A Computação em Nuvem

Leia mais

COMPARANDO APLICAÇÃO WEB SERVICE REST E SOAP

COMPARANDO APLICAÇÃO WEB SERVICE REST E SOAP COMPARANDO APLICAÇÃO WEB SERVICE REST E SOAP Cleber de F. Ferreira¹, Roberto Dias Mota¹. ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil cleberferreirasi@hotmail.com, motaroberto@hotmail.com Resumo.

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Especialização em Desenvolvimento de Aplicações Web com Interfaces Ricas EJB 3.0 Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 13 Web Services Web Services

Leia mais

Ferramenta: Spider-CL. Manual do Usuário. Versão da Ferramenta: 1.1. www.ufpa.br/spider

Ferramenta: Spider-CL. Manual do Usuário. Versão da Ferramenta: 1.1. www.ufpa.br/spider Ferramenta: Spider-CL Manual do Usuário Versão da Ferramenta: 1.1 www.ufpa.br/spider Histórico de Revisões Data Versão Descrição Autor 14/07/2009 1.0 15/07/2009 1.1 16/07/2009 1.2 20/05/2010 1.3 Preenchimento

Leia mais

3 Serviços na Web (Web services)

3 Serviços na Web (Web services) 3 Serviços na Web (Web services) 3.1. Visão Geral Com base na definição do Word Wide Web Consortium (W3C), web services são aplicações autocontidas, que possuem interface baseadas em XML e que descrevem

Leia mais

SOA Introdução. SOA Visão Departamental das Organizações

SOA Introdução. SOA Visão Departamental das Organizações 1 Introdução A Organização é a forma pela qual nós coordenamos nossos recursos de todos os tipos para realizar o trabalho que nos propusemos a fazer. A estrutura de nossas organizações manteve-se basicamente

Leia mais

Integração de sistemas utilizando Web Services do tipo REST

Integração de sistemas utilizando Web Services do tipo REST Integração de sistemas utilizando Web Services do tipo REST Jhonatan Wilson Aparecido Garbo, Jaime Willian Dias Universidade Paranaense (Unipar) Paranavaí PR Brasil jhowgarbo@gmail.com jaime@unipar.br

Leia mais

Desenvolvendo para WEB

Desenvolvendo para WEB Nível - Básico Desenvolvendo para WEB Por: Evandro Silva Neste nosso primeiro artigo vamos revisar alguns conceitos que envolvem a programação de aplicativos WEB. A ideia aqui é explicarmos a arquitetura

Leia mais

Trabalho de Sistemas Distribuídos

Trabalho de Sistemas Distribuídos Cássio de Olivera Ferraz Trabalho de Sistemas Distribuídos Petrópolis 2015, v-1.0 Cássio de Olivera Ferraz Trabalho de Sistemas Distribuídos Trabalho sobre sistemas distribuídos e suas tecnologias. Universidade

Leia mais

REST Um Estilo de Arquitetura de Sistemas Distribuídos

REST Um Estilo de Arquitetura de Sistemas Distribuídos REST Um Estilo de Arquitetura de Sistemas Distribuídos Márcio Alves de Araújo¹, Mauro Antônio Correia Júnior¹ 1 Faculdade de Computação Universidade Federal de Uberlândia (UFU) Monte Carmelo MG Brasil

Leia mais

Administração de Banco de Dados

Administração de Banco de Dados Administração de Banco de Dados Professora conteudista: Cida Atum Sumário Administração de Banco de Dados Unidade I 1 INTRODUÇÃO A BANCO DE DADOS...1 1.1 Histórico...1 1.2 Definições...2 1.3 Importância

Leia mais

Curso de Aprendizado Industrial Desenvolvedor WEB

Curso de Aprendizado Industrial Desenvolvedor WEB Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos II Professor: Cheli dos S. Mendes da Costa Modelo Cliente- Servidor Modelo de Aplicação Cliente-servidor Os

Leia mais

Service Oriented Architecture SOA

Service Oriented Architecture SOA Service Oriented Architecture SOA Arquitetura orientada aos serviços Definição: Arquitetura de sistemas distribuídos em que a funcionalidade é disponibilizada sob a forma de serviços (bem definidos e independentes)

Leia mais

EIMOBILE INSTITUIÇÕES DE ENSINO MOBILE

EIMOBILE INSTITUIÇÕES DE ENSINO MOBILE UNIVERSIDADE CATÓLICA DE PELOTAS CENTRO POLITÉCNICO TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS EIMOBILE INSTITUIÇÕES DE ENSINO MOBILE por Miguel Aguiar Barbosa Trabalho de curso II submetido como

Leia mais

Sistemas de Informação James A. O Brien Editora Saraiva Capítulo 5

Sistemas de Informação James A. O Brien Editora Saraiva Capítulo 5 Para entender bancos de dados, é útil ter em mente que os elementos de dados que os compõem são divididos em níveis hierárquicos. Esses elementos de dados lógicos constituem os conceitos de dados básicos

Leia mais

FACULDADE DE ADMINISTRAÇÃO E NEGÓCIOS DE SERGIPE - FANESE CURSO SUPERIOR DE TECNOLOGIA em Gestão da Tecnologia da Informação

FACULDADE DE ADMINISTRAÇÃO E NEGÓCIOS DE SERGIPE - FANESE CURSO SUPERIOR DE TECNOLOGIA em Gestão da Tecnologia da Informação FACULDADE DE ADMINISTRAÇÃO E NEGÓCIOS DE SERGIPE - FANESE CURSO SUPERIOR DE TECNOLOGIA em Gestão da Tecnologia da Informação 1 Ruironaldi dos Santos Cruz ARTIGO ARQUITETURA ORIENTADA A SERVIÇO SOA SERVICE

Leia mais

Satélite. Manual de instalação e configuração. CENPECT Informática www.cenpect.com.br cenpect@cenpect.com.br

Satélite. Manual de instalação e configuração. CENPECT Informática www.cenpect.com.br cenpect@cenpect.com.br Satélite Manual de instalação e configuração CENPECT Informática www.cenpect.com.br cenpect@cenpect.com.br Índice Índice 1.Informações gerais 1.1.Sobre este manual 1.2.Visão geral do sistema 1.3.História

Leia mais

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web;

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web; CONCEITOS INICIAIS Agenda A diferença entre páginas Web, Home Page e apresentação Web; O que é necessário para se criar páginas para a Web; Navegadores; O que é site, Host, Provedor e Servidor Web; Protocolos.

Leia mais

Tutorial Sistema de Eventos de Certificação e Capacitação

Tutorial Sistema de Eventos de Certificação e Capacitação Tutorial Sistema de Eventos de Certificação e Capacitação Dirceu Lopes de Mattos Álvaro José Periotto Daiany Cristina Ferraz Soares Marcos Massao Yamamoto Leandro Santiago da Silva Compilado por: Bruno

Leia mais

Service Oriented Architecture (SOA)

Service Oriented Architecture (SOA) São Paulo, 2011 Universidade Paulista (UNIP) Service Oriented Architecture (SOA) Prof. MSc. Vladimir Camelo vladimir.professor@gmail.com 04/09/11 vladimir.professor@gmail.com 1 04/09/11 vladimir.professor@gmail.com

Leia mais

2 Conceitos relativos a Web services e sua composição

2 Conceitos relativos a Web services e sua composição 15 2 Conceitos relativos a Web services e sua composição A necessidade de flexibilidade na arquitetura das aplicações levou ao modelo orientado a objetos, onde os processos de negócios podem ser representados

Leia mais

DEFINIÇÃO DE REQUISITOS SISTEMA DE CONTROLE DE FINANÇAS WEB 1.0 MANTER FUNCIONÁRIO RELEASE 4.1

DEFINIÇÃO DE REQUISITOS SISTEMA DE CONTROLE DE FINANÇAS WEB 1.0 MANTER FUNCIONÁRIO RELEASE 4.1 DEFINIÇÃO DE REQUISITOS SISTEMA DE CONTROLE DE FINANÇAS WEB 1.0 MANTER FUNCIONÁRIO RELEASE 4.1 SUMÁRIO DEFINIÇÃO DE REQUISITOS 4 1. INTRODUÇÃO 4 1.1 FINALIDADE 4 1.2 ESCOPO 4 1.3 DEFINIÇÕES, ACRÔNIMOS

Leia mais

O que é o Virto ERP? Onde sua empresa quer chegar? Apresentação. Modelo de funcionamento

O que é o Virto ERP? Onde sua empresa quer chegar? Apresentação. Modelo de funcionamento HOME O QUE É TOUR MÓDULOS POR QUE SOMOS DIFERENTES METODOLOGIA CLIENTES DÚVIDAS PREÇOS FALE CONOSCO Suporte Sou Cliente Onde sua empresa quer chegar? Sistemas de gestão precisam ajudar sua empresa a atingir

Leia mais

Infra estrutura da Tecnologia da Informação

Infra estrutura da Tecnologia da Informação Infra estrutura da Tecnologia da Informação Capítulo 3 Adaptado do material de apoio ao Livro Sistemas de Informação Gerenciais, 7ª ed., de K. Laudon e J. Laudon, Prentice Hall, 2005 CEA460 Gestão da Informação

Leia mais

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados:

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados: MC536 Introdução Sumário Conceitos preliminares Funcionalidades Características principais Usuários Vantagens do uso de BDs Tendências mais recentes em SGBDs Algumas desvantagens Modelos de dados Classificação

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

Consumindo um Web Service através de uma Aplicação Comercial em Android. Alex Malmann Becker www.alex.porthal.com.br alex@porthal.com.

Consumindo um Web Service através de uma Aplicação Comercial em Android. Alex Malmann Becker www.alex.porthal.com.br alex@porthal.com. Consumindo um Web Service através de uma Aplicação Comercial em Android Alex Malmann Becker www.alex.porthal.com.br alex@porthal.com.br 08/2014 Agenda Introdução Conceitos Web Service Por que utilizar

Leia mais

Boas Práticas de Desenvolvimento Seguro

Boas Práticas de Desenvolvimento Seguro Boas Práticas de Desenvolvimento Seguro Julho / 2.012 Histórico de Revisões Data Versão Descrição Autor 29/07/2012 1.0 Versão inicial Ricardo Kiyoshi Página 2 de 11 Conteúdo 1. SEGURANÇA DA INFORMAÇÃO

Leia mais

FERRAMENTAS DE COLABORAÇÃO CORPORATIVA

FERRAMENTAS DE COLABORAÇÃO CORPORATIVA FERRAMENTAS DE COLABORAÇÃO CORPORATIVA Manual de Utilização Google Grupos Sumário (Clique sobre a opção desejada para ir direto à página correspondente) Utilização do Google Grupos Introdução... 3 Página

Leia mais

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

Processos (Threads,Virtualização e Migração de Código)

Processos (Threads,Virtualização e Migração de Código) Processos (Threads,Virtualização e Migração de Código) Roteiro Processos Threads Virtualização Migração de Código O que é um processo?! Processos são programas em execução. Processo Processo Processo tem

Leia mais

SQL APOSTILA INTRODUÇÃO A LINGUAGEM SQL

SQL APOSTILA INTRODUÇÃO A LINGUAGEM SQL SQL APOSTILA INTRODUÇÃO Uma linguagem de consulta é a linguagem por meio da qual os usuários obtêm informações do banco de dados. Essas linguagens são, tipicamente, de nível mais alto que as linguagens

Leia mais

7 Utilização do Mobile Social Gateway

7 Utilização do Mobile Social Gateway 7 Utilização do Mobile Social Gateway Existem três atores envolvidos na arquitetura do Mobile Social Gateway: desenvolvedor do framework MoSoGw: é o responsável pelo desenvolvimento de novas features,

Leia mais

Softwares de Sistemas e de Aplicação

Softwares de Sistemas e de Aplicação Fundamentos dos Sistemas de Informação Softwares de Sistemas e de Aplicação Profª. Esp. Milena Resende - milenaresende@fimes.edu.br Visão Geral de Software O que é um software? Qual a função do software?

Leia mais

Figura 1 - Arquitetura multi-camadas do SIE

Figura 1 - Arquitetura multi-camadas do SIE Um estudo sobre os aspectos de desenvolvimento e distribuição do SIE Fernando Pires Barbosa¹, Equipe Técnica do SIE¹ ¹Centro de Processamento de Dados, Universidade Federal de Santa Maria fernando.barbosa@cpd.ufsm.br

Leia mais

ARQUITETURA DE SISTEMAS. Cleviton Monteiro (cleviton@gmail.com)

ARQUITETURA DE SISTEMAS. Cleviton Monteiro (cleviton@gmail.com) ARQUITETURA DE SISTEMAS Cleviton Monteiro (cleviton@gmail.com) Roteiro Definição Documento de arquitetura Modelos de representação da arquitetura Estilos arquiteturais Arquitetura de sistemas web Arquitetura

Leia mais

DEFINIÇÃO DE REQUISITOS SISTEMA DE CONTROLE DE FINANÇAS WEB 1.0 BAIXA DE CONTAS A PAGAR RELEASE 4.1

DEFINIÇÃO DE REQUISITOS SISTEMA DE CONTROLE DE FINANÇAS WEB 1.0 BAIXA DE CONTAS A PAGAR RELEASE 4.1 DEFINIÇÃO DE REQUISITOS SISTEMA DE CONTROLE DE FINANÇAS WEB 1.0 BAIXA DE CONTAS A PAGAR RELEASE 4.1 SUMÁRIO DEFINIÇÃO DE REQUISITOS 4 1. INTRODUÇÃO 4 1.1 FINALIDADE 4 1.2 ESCOPO 4 1.3 DEFINIÇÕES, ACRÔNIMOS

Leia mais

Documentação do Sistema de Reserva de Salas da Intranet do ICMC-USP

Documentação do Sistema de Reserva de Salas da Intranet do ICMC-USP UNIVERSIDADE DE SÃO PAULO Instituto de Ciências Matemáticas e de Computação Departamento de Ciências da Computação e Estatística Documentação do Sistema de Reserva de Salas da Intranet do ICMC-USP André

Leia mais

Manual de Utilização do GLPI

Manual de Utilização do GLPI Manual de Utilização do GLPI Perfil Usuário Versão 1.0 NTI Campus Muzambinho 1 Introdução Prezado servidor, o GLPI é um sistema de Service Desk composto por um conjunto de serviços para a administração

Leia mais

Tutorial. O Trade e a Nota Fiscal Eletrônica

Tutorial. O Trade e a Nota Fiscal Eletrônica Tutorial O Trade e a Nota Fiscal Eletrônica Este tutorial explica como configurar o Trade Solution e realizar as principais atividades relacionadas à emissão e ao gerenciamento das Notas Fiscais Eletrônicas

Leia mais

MANUAL E DICAS ASSISTENTE VIRTUAL (AV) ADS DIGITAL (WWW.ADSDIGITAL.COM.BR) VERSÃO DO ASSISTENTE VIRTUAL: 1.3.1 POR

MANUAL E DICAS ASSISTENTE VIRTUAL (AV) ADS DIGITAL (WWW.ADSDIGITAL.COM.BR) VERSÃO DO ASSISTENTE VIRTUAL: 1.3.1 POR MANUAL E DICAS DO ASSISTENTE VIRTUAL (AV) POR ADS DIGITAL (WWW.ADSDIGITAL.COM.BR) VERSÃO DO ASSISTENTE VIRTUAL: 1.3.1 ÍNDICE Introdução...3 Requisitos e Restrições do Assistente...3 Diferenças da Versão

Leia mais

Disciplina: Tecnologias de Banco de Dados para SI s

Disciplina: Tecnologias de Banco de Dados para SI s Curso de Gestão em SI Disciplina: Tecnologias de Banco de Dados para SI s Rodrigo da Silva Gomes (Extraído do material do prof. Ronaldo Melo - UFSC) Banco de Dados (BD) BD fazem parte do nosso dia-a-dia!

Leia mais

Anderson Corrêa Carraro 1, Fernando Alves Rodrigues 2, Silvio Francisco dos Santos 3

Anderson Corrêa Carraro 1, Fernando Alves Rodrigues 2, Silvio Francisco dos Santos 3 DESENVOLVIMENTO E IMPLANTAÇÃO DE UM SISTEMA INFORMATIZADO PARA O CONTROLE DE PROCESSOS DA QUALIDADE NA DIRETORIA DE METROLOGIA CIENTÍFICA E INDUSTRIAL DIMCI/INMETRO. Anderson Corrêa Carraro 1, Fernando

Leia mais

Web Services. Autor: Rômulo Rosa Furtado

Web Services. Autor: Rômulo Rosa Furtado Web Services Autor: Rômulo Rosa Furtado Sumário O que é um Web Service. Qual a finalidade de um Web Service. Como funciona o serviço. Motivação para o uso. Como construir um. Referências. Seção: O que

Leia mais

Modelagem de Sistemas Web. Ferramentas e metodologias para projeto de sistemas web

Modelagem de Sistemas Web. Ferramentas e metodologias para projeto de sistemas web Modelagem de Sistemas Web Aula 4 Ferramentas e metodologias para projeto de sistemas web Ferramentas e metodologias para projeto de sistemas web Ferramentas CASE Fontes: Sarajane e Marques Peres Introdução

Leia mais

MAPEAMENTO E LOCALIZAÇÃO DE REGIÕES DE INTERESSE UTILIZANDO REALIDADE AUMENTADA EM DISPOSITIVOS MÓVEIS COM PLATAFORMA ANDROID

MAPEAMENTO E LOCALIZAÇÃO DE REGIÕES DE INTERESSE UTILIZANDO REALIDADE AUMENTADA EM DISPOSITIVOS MÓVEIS COM PLATAFORMA ANDROID MAPEAMENTO E LOCALIZAÇÃO DE REGIÕES DE INTERESSE UTILIZANDO REALIDADE AUMENTADA EM DISPOSITIVOS MÓVEIS COM PLATAFORMA ANDROID Alessandro Teixeira de Andrade¹; Geazy Menezes² UFGD/FACET Caixa Postal 533,

Leia mais

M a n u a l d o R e c u r s o Q m o n i t o r

M a n u a l d o R e c u r s o Q m o n i t o r M a n u a l d o R e c u r s o Q m o n i t o r i t i l advanced Todos os direitos reservados à Constat. Uso autorizado mediante licenciamento Qualitor Porto Alegre RS Av. Ceará, 1652 São João 90240-512

Leia mais

Arquitetura de BDs Distribuídos. Victor Amorim - vhca Pedro Melo pam2

Arquitetura de BDs Distribuídos. Victor Amorim - vhca Pedro Melo pam2 Victor Amorim - vhca Pedro Melo pam2 Arquitetura de BDs Distribuídos Sistemas de bds distribuídos permitem que aplicações acessem dados de bds locais ou remotos. Podem ser Homogêneos ou Heterogêneos: Homogêneos

Leia mais

milenaresende@fimes.edu.br

milenaresende@fimes.edu.br Fundação Integrada Municipal de Ensino Superior Sistemas de Informação A Internet, Intranets e Extranets milenaresende@fimes.edu.br Uso e funcionamento da Internet Os dados da pesquisa de TIC reforçam

Leia mais

Universidade Federal de Goiás Centro de Recursos Computacionais - CERCOMP Divisão de Sistemas. Criação de uma Serviço de Geração de Relatórios

Universidade Federal de Goiás Centro de Recursos Computacionais - CERCOMP Divisão de Sistemas. Criação de uma Serviço de Geração de Relatórios Universidade Federal de Goiás Centro de Recursos Computacionais - CERCOMP Divisão de Sistemas Criação de uma Serviço de Geração de Relatórios Goiânia 12/2011 Versionamento 12/12/2011 Hugo Marciano... 1.0

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

Manual dos Serviços de Interoperabilidade

Manual dos Serviços de Interoperabilidade MINISTÉRIO DO PLANEJAMENTO, ORÇAMENTO E GESTÃO Secretaria de Logística e Tecnologia da Informação Manual dos Serviços de Interoperabilidade Sumário Lista de Figuras...3 Lista de Tabelas...4 Introdução...5

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

Noções de. Microsoft SQL Server. Microsoft SQL Server

Noções de. Microsoft SQL Server. Microsoft SQL Server Noções de 1 Considerações Iniciais Basicamente existem dois tipos de usuários do SQL Server: Implementadores Administradores 2 1 Implementadores Utilizam o SQL Server para criar e alterar base de dados

Leia mais

15 Conceitos de Bancos de Dados com o LibreOffice Base

15 Conceitos de Bancos de Dados com o LibreOffice Base Introdução a Informática - 1º semestre AULA 14 Prof. André Moraes Objetivos desta aula: Explorar as propriedades na criação de bancos de dados no LibreOffice Base; Criar e explorar tabelas; Criar e explorar

Leia mais

Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões. Prof. MSc. Hugo Souza

Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões. Prof. MSc. Hugo Souza Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões Prof. MSc. Hugo Souza Se você precisar manter informações sobre seus usuários enquanto eles navegam pelo seu site, ou até quando eles saem

Leia mais

PROJETO DE REDES www.projetoderedes.com.br

PROJETO DE REDES www.projetoderedes.com.br PROJETO DE REDES www.projetoderedes.com.br Centro Universitário de Volta Redonda - UniFOA Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro

Leia mais

Prof. Omero, pág. 63. Banco de Dados InterBase.

Prof. Omero, pág. 63. Banco de Dados InterBase. Prof. Omero, pág. 63 O que é o InterBase? O InterBase é um SGBDR - Sistema Gerenciador de Banco de Dados Cliente/Servidor Relacional 1 que está baseado no padrão SQL ANSI-9, de alta performance, independente

Leia mais

Conectando Bancos de Dados Microsoft Access no BrOffice.org Base. fornecido pelo Projeto de Documentação do BrOffice.org

Conectando Bancos de Dados Microsoft Access no BrOffice.org Base. fornecido pelo Projeto de Documentação do BrOffice.org Conectando Bancos de Dados Microsoft Access no BrOffice.org Base fornecido pelo Projeto de Documentação do BrOffice.org Índice 1 Introdução...2 1.1 Versão... 2 1.2 Licenciamento...2 1.3 Mensagem do Projeto

Leia mais

Protótipo de um sistema para licenciamento de aplicativos Microsoft.NET baseado em assinatura digital XML

Protótipo de um sistema para licenciamento de aplicativos Microsoft.NET baseado em assinatura digital XML Protótipo de um sistema para licenciamento de aplicativos Microsoft.NET baseado em assinatura digital XML Acadêmico: Leonardo Chagas D Ippolito Orientador: Prof. Marcel Hugo Blumenau, Dezembro de 2004

Leia mais

Sincronização do Catálogo de Endereços no MDaemon 6.x com o uso do ComAgent, LDAP, MAPI e WAB

Sincronização do Catálogo de Endereços no MDaemon 6.x com o uso do ComAgent, LDAP, MAPI e WAB Sincronização do Catálogo de Endereços no MDaemon 6.x com o uso do ComAgent, LDAP, MAPI e WAB Alt-N Technologies, Ltd 1179 Corporate Drive West, #103 Arlington, TX 76006 Tel: (817) 652-0204 2002 Alt-N

Leia mais

Introdução ao SQL. O que é SQL?

Introdução ao SQL. O que é SQL? Introdução ao SQL 1 O que é SQL? Inicialmente chamada de Sequel, SQL (Structured Query Language), é a linguagem padrão utilizada para comunicar-se com um banco de dados relacional. A versão original foi

Leia mais

INDICE 3.APLICAÇÕES QUE PODEM SER DESENVOLVIDAS COM O USO DO SAXES

INDICE 3.APLICAÇÕES QUE PODEM SER DESENVOLVIDAS COM O USO DO SAXES w w w. i d e a l o g i c. c o m. b r INDICE 1.APRESENTAÇÃO 2.ESPECIFICAÇÃO DOS RECURSOS DO SOFTWARE SAXES 2.1. Funcionalidades comuns a outras ferramentas similares 2.2. Funcionalidades próprias do software

Leia mais

BANCO DE DADOS E BUSINESS INTELIGENCE. C/H: 20 horas (20/02, 25/02, 27/02, 04/03, 06/03)

BANCO DE DADOS E BUSINESS INTELIGENCE. C/H: 20 horas (20/02, 25/02, 27/02, 04/03, 06/03) MBA em Gestão de TI MÓDULO: BANCO DE DADOS E BUSINESS INTELIGENCE C/H: 20 horas (20/02, 25/02, 27/02, 04/03, 06/03) PROFESSOR: Edison Andrade Martins Morais prof@edison.eti.br http://www.edison.eti.br

Leia mais

UNIVERSIDADE. Sistemas Distribuídos

UNIVERSIDADE. Sistemas Distribuídos UNIVERSIDADE Sistemas Distribuídos Ciência da Computação Prof. Jesus José de Oliveira Neto Web Services Web Services Existem diferentes tipos de comunicação em um sistema distribuído: Sockets Invocação

Leia mais

Anote aqui as informações necessárias:

Anote aqui as informações necessárias: banco de mídias Anote aqui as informações necessárias: URL E-mail Senha Sumário Instruções de uso Cadastro Login Página principal Abrir arquivos Área de trabalho Refine sua pesquisa Menu superior Fazer

Leia mais

Ambientes Visuais. Ambientes Visuais

Ambientes Visuais. Ambientes Visuais Ambientes Visuais Inicialmente, apenas especialistas utilizavam os computadores, sendo que os primeiros desenvolvidos ocupavam grandes áreas e tinham um poder de processamento reduzido. Porém, a contínua

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

Minicurso Computação em Nuvem Prática: AWS

Minicurso Computação em Nuvem Prática: AWS Grupo de Pesquisa em Software e Hardware Livre Glauber Cassiano Batista Membro Colméia glauber@colmeia.udesc.br Joinville Minicurso Computação em Nuvem Prática: AWS Roteiro Definições Virtualização Data

Leia mais

CAPÍTULO 2. Este capítulo tratará :

CAPÍTULO 2. Este capítulo tratará : 1ª PARTE CAPÍTULO 2 Este capítulo tratará : 1. O que é necessário para se criar páginas para a Web. 2. A diferença entre páginas Web, Home Page e apresentação Web 3. Navegadores 4. O que é site, Host,

Leia mais

Tutorial Sistema de Eventos de Certificação e Capacitação

Tutorial Sistema de Eventos de Certificação e Capacitação Tutorial Sistema de Eventos de Certificação e Capacitação Junho 2014 Sumário 1 O que é o Sistema de Certificados?... 3 2 Como acessar o Sistema?... 3 3 - Pré-requisitos para a Geração dos Certificados...

Leia mais

Programação para a Internet. Prof. M.Sc. Sílvio Bacalá Jr sbacala@gmail.com www.facom.ufu.br/~bacala

Programação para a Internet. Prof. M.Sc. Sílvio Bacalá Jr sbacala@gmail.com www.facom.ufu.br/~bacala Programação para a Internet Prof. M.Sc. Sílvio Bacalá Jr sbacala@gmail.com www.facom.ufu.br/~bacala A plataforma WEB Baseada em HTTP (RFC 2068) Protocolo simples de transferência de arquivos Sem estado

Leia mais

Manual de Instalação, Administração e Uso do Sistema Elétric

Manual de Instalação, Administração e Uso do Sistema Elétric Manual de Instalação, Administração e Uso do Sistema Elétric Versão 1.0 Autores Bruna Cirqueira Mariane Dantas Milton Alves Robson Prioli Nova Odessa, 10 de Setembro de 2013 Sumário Apoio 1. Licença deste

Leia mais

A ESCOLHA DE SISTEMA PARA AUTOMAÇÃO DE BIBLIOTECAS. A decisão de automatizar

A ESCOLHA DE SISTEMA PARA AUTOMAÇÃO DE BIBLIOTECAS. A decisão de automatizar A ESCOLHA DE SISTEMA PARA AUTOMAÇÃO DE BIBLIOTECAS A decisão de automatizar 1 A decisão de automatizar Deve identificar os seguintes aspectos: Cultura, missão, objetivos da instituição; Características

Leia mais

MAGREGISTER 1.0: GERADOR DE INTERFACES DE COLETAS DE DADOS PARA PDA S. Acadêmico: Gilson Chequeto Orientador: Adilson Vahldick

MAGREGISTER 1.0: GERADOR DE INTERFACES DE COLETAS DE DADOS PARA PDA S. Acadêmico: Gilson Chequeto Orientador: Adilson Vahldick MAGREGISTER 1.0: GERADOR DE INTERFACES DE COLETAS DE DADOS PARA PDA S Acadêmico: Gilson Chequeto Orientador: Adilson Vahldick Roteiro Introdução Objetivos do trabalho Fundamentação teórica Desenvolvimento

Leia mais

Millennium ECO 2.0 (beta)

Millennium ECO 2.0 (beta) MILLENNIUM NETWORK Millennium ECO 2.0 (beta) Documentação Técnica (draft) 10/2013 Este documento contém as instruções para a utilização da biblioteca Millenium_Eco que se presta à comunicação de aplicativos

Leia mais

XDR. Solução para Big Data.

XDR. Solução para Big Data. XDR Solução para Big Data. ObJetivo Principal O volume de informações com os quais as empresas de telecomunicações/internet têm que lidar é muito grande, e está em constante crescimento devido à franca

Leia mais

BI Citsmart Fornece orientações necessárias para instalação, configuração e utilização do BI Citsmart.

BI Citsmart Fornece orientações necessárias para instalação, configuração e utilização do BI Citsmart. 16/08/2013 BI Citsmart Fornece orientações necessárias para instalação, configuração e utilização do BI Citsmart. Versão 1.0 19/12/2014 Visão Resumida Data Criação 19/12/2014 Versão Documento 1.0 Projeto

Leia mais

Desenvolvendo Websites com PHP

Desenvolvendo Websites com PHP Desenvolvendo Websites com PHP Aprenda a criar Websites dinâmicos e interativos com PHP e bancos de dados Juliano Niederauer 19 Capítulo 1 O que é o PHP? O PHP é uma das linguagens mais utilizadas na Web.

Leia mais

FAT32 ou NTFS, qual o melhor?

FAT32 ou NTFS, qual o melhor? FAT32 ou NTFS, qual o melhor? Entenda quais as principais diferenças entre eles e qual a melhor escolha O que é um sistema de arquivos? O conceito mais importante sobre este assunto, sem sombra de dúvidas,

Leia mais

Programando em PHP. Conceitos Básicos

Programando em PHP. Conceitos Básicos Programando em PHP www.guilhermepontes.eti.br lgapontes@gmail.com Conceitos Básicos Todo o escopo deste estudo estará voltado para a criação de sites com o uso dos diversos recursos de programação web

Leia mais

MANUAL DE UTILIZAÇÃO DO SISTEMA GLPI

MANUAL DE UTILIZAÇÃO DO SISTEMA GLPI MANUAL DE UTILIZAÇÃO DO SISTEMA GLPI Setembro de 2013 Objetivo: Esse manual, baseado no manual GLPI feito pela DTI, tem como objetivo principal instruir os usuários quanto à utilização do GLPI, sistema

Leia mais

1 REQUISITOS BÁSICOS PARA INSTALAR O SMS PC REMOTO

1 REQUISITOS BÁSICOS PARA INSTALAR O SMS PC REMOTO 1 ÍNDICE 1 REQUISITOS BÁSICOS PARA INSTALAR O SMS PC REMOTO... 3 1.1 REQUISITOS BASICOS DE SOFTWARE... 3 1.2 REQUISITOS BASICOS DE HARDWARE... 3 2 EXECUTANDO O INSTALADOR... 3 2.1 PASSO 01... 3 2.2 PASSO

Leia mais

Introdução a Web Services

Introdução a Web Services Introdução a Web Services Mário Meireles Teixeira DEINF/UFMA O que é um Web Service? Web Service / Serviço Web É uma aplicação, identificada por um URI, cujas interfaces podem ser definidas, descritas

Leia mais

Semântica para Sharepoint. Busca semântica utilizando ontologias

Semântica para Sharepoint. Busca semântica utilizando ontologias Semântica para Sharepoint Busca semântica utilizando ontologias Índice 1 Introdução... 2 2 Arquitetura... 3 3 Componentes do Produto... 4 3.1 OntoBroker... 4 3.2 OntoStudio... 4 3.3 SemanticCore para SharePoint...

Leia mais

Eduardo Bezerra. Editora Campus/Elsevier

Eduardo Bezerra. Editora Campus/Elsevier Princípios de Análise e Projeto de Sistemas com UML 2ª edição Eduardo Bezerra Editora Campus/Elsevier Capítulo 11 Arquitetura do sistema Nada que é visto, é visto de uma vez e por completo. --EUCLIDES

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos LICENCIATURA EM COMPUTAÇÃO Prof. Adriano Avelar Site: www.adrianoavelar.com Email: eam.avelar@gmail.com Mecanismos de Comunicação Protocolos de Aplicação Mecanismos de comunicação

Leia mais

Autoria Web Apresentação e Visão Geral sobre a Web

Autoria Web Apresentação e Visão Geral sobre a Web Apresentação e Visão Geral sobre a Web Apresentação Thiago Miranda Email: mirandathiago@gmail.com Site: www.thiagomiranda.net Objetivos da Disciplina Conhecer os limites de atuação profissional em Web

Leia mais

MANUAL DE UTILIZAÇÃO DO MOODLE 2.6

MANUAL DE UTILIZAÇÃO DO MOODLE 2.6 NÚCLEO DE TECNOLOGIA DA INFORMAÇÃO E COMUNICAÇÃO NTIC MANUAL DE UTILIZAÇÃO DO MOODLE 2.6 PERFIL ALUNO Versão 1.0 2014 NÚCLEO DE TECNOLOGIA DA INFORMAÇÃO E COMUNICAÇÃO NTIC MANUAL DE UTILIZAÇÃO DO MOODLE

Leia mais

CONHECENDO O AMBIENTE VIRTUAL DE APRENDIZAGEM Moodle - Learning Management System Versão 1.3

CONHECENDO O AMBIENTE VIRTUAL DE APRENDIZAGEM Moodle - Learning Management System Versão 1.3 CONHECENDO O AMBIENTE VIRTUAL DE APRENDIZAGEM Moodle - Learning Management System Versão 1.3 Este tutorial não tem como finalidade esgotar todas as funcionalidades do Ambiente, ele aborda de forma prática

Leia mais

4 Desenvolvimento da ferramenta

4 Desenvolvimento da ferramenta direcionados por comportamento 38 4 Desenvolvimento da ferramenta Visando facilitar a tarefa de documentar requisitos funcionais e de gerar testes automáticos em uma única ferramenta para proporcionar

Leia mais

INFRAESTRUTURA DE TI E TECNOLOGIAS EMERGENTES

INFRAESTRUTURA DE TI E TECNOLOGIAS EMERGENTES Sistema de Informação e Tecnologia FEQ 0411 Prof Luciel Henrique de Oliveira luciel@uol.com.br Capítulo 5 INFRAESTRUTURA DE TI E TECNOLOGIAS EMERGENTES PRADO, Edmir P.V.; SOUZA, Cesar A. de. (org). Fundamentos

Leia mais

Banco de Dados. Prof. Dr. Rogério Galante Negri

Banco de Dados. Prof. Dr. Rogério Galante Negri Banco de Dados Prof Dr Rogério Galante Negri Tradicionalmente O armazenamento dos dados utilizava arquivos individuais, sem nenhum relacionamento Cada programa utilizava seu próprio sistema de arquivo

Leia mais

Desenvolvendo e Integrando Serviços Multiplataforma de TV Digital Interativa

Desenvolvendo e Integrando Serviços Multiplataforma de TV Digital Interativa Desenvolvendo e Integrando Serviços Multiplataforma de TV Digital Interativa Agenda Introdução Aplicações interativas de TV Digital Desafios de layout e usabilidade Laboratório de usabilidade Desafios

Leia mais

Aplicativo da Manifestação do Destinatário. Manual

Aplicativo da Manifestação do Destinatário. Manual Aplicativo da Manifestação do Destinatário Manual Novembro de 2012 1 Sumário 1 Aplicativo de Manifestação do Destinatário...4 2 Iniciando o aplicativo...4 3 Menus...5 3.1 Manifestação Destinatário...5

Leia mais

LEI DE ACESSO A INFORMAÇÃO DIREITO DO CIDADÃO

LEI DE ACESSO A INFORMAÇÃO DIREITO DO CIDADÃO DESCRIÇÃO DO SIGAI O SIGAI (Sistema Integrado de Gestão do Acesso à Informação) é uma solução de software que foi desenvolvida para automatizar os processos administrativos e operacionais visando a atender

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 Sistemas Distribuídos Basedos na Web Capítulo 12 Agenda Arquitetura Processos Comunicação Nomeação Sincronização Consistência e Replicação Introdução

Leia mais

Anexo V - Planilha de Apuração Aquisição de Solução de Redes Sociais

Anexo V - Planilha de Apuração Aquisição de Solução de Redes Sociais Anexo V - Planilha de Apuração Aquisição de Solução de Redes Sociais Será utilizado o seguinte critério: Atende / Não atende (Atende em parte será considerado Não atende) Item Itens a serem avaliados conforme

Leia mais

Gestão do Conteúdo. 1. Introdução

Gestão do Conteúdo. 1. Introdução Gestão do Conteúdo 1. Introdução Ser capaz de fornecer informações a qualquer momento, lugar ou através de qualquer método e ser capaz de fazê-lo de uma forma econômica e rápida está se tornando uma exigência

Leia mais