Caderno de Estudos Tecnológicos Transmissão de Dados entre Banco de Dados SQL Server Corporativos e Banco de Dados SQLite em Dispositivos Móveis via Web Services Luciana J. Sabino¹, Luis A. da Silva¹ 1 Faculdade de Tecnologia de Bauru (FATEC) – Bauru, SP – Brasil {luciana.sabino01, luis.silva51}@fatec.sp.gov.br Abstract. The communication between databases through Web Services consists in sending and receiving data using a communication protocol that works over Internet, without access restrictions from an operational system or specific programming language. The goal of this paper was to demonstrate how the use of Web Services can facilitate the send and receiving of information over the HTTP¹ protocol, between distinct databases, one of them located in a mobile device. The integration was successfully performed and enabled the data exchange using the Web Service as an intermediate layer between databases, verifying its effectiveness in communication even among distinct technologies. 1 HyperText Transfer Protocol: é o principal protocolo para troca de dados entre browsers e servidores Web. [Cerami 2002]. Faculdade de Tecnologia de Bauru volume 01 – número 01 – julho/2013 Página 96 Resumo. A comunicação entre bancos de dados através de Web Services consiste no envio e recebimento de dados utilizando um protocolo de comunicação que atue sobre a Internet, sem que esse acesso esteja restrito a um sistema operacional ou linguagem de programação específica. O objetivo deste artigo foi demonstrar como o uso de Web Services pode facilitar o envio e recebimento de informações sobre o protocolo HTTP1 entre bancos de dados distintos, sendo um deles localizado num dispositivo móvel. A integração foi realizada com êxito e possibilitou a troca de dados utilizando um Web Service como camada intermediária entre os bancos de dados, confirmando sua eficácia na comunicação mesmo entre tecnologias distintas. Caderno de Estudos Tecnológicos 1. Introdução O uso de dispositivos móveis tem aumentado consideravelmente dentro das organizações, expandindo suas fronteiras de comunicação e possibilitando a seus colaboradores maior interação com os sistemas corporativos e de negócios, mesmo não estando fisicamente nestes locais. Segundo Olavsrud (2012), um elevado número de empresas já tem o seu conteúdo digital adaptado à interface móvel, permitindo que seus colaboradores levem seus dispositivos pessoais para o ambiente corporativo, num movimento batizado de “consumerização”. Ainda segundo o autor, a maior parte das organizações está se adaptando à nova realidade, conforme demonstra o estudo “State of Mobility 2012” realizado pela Symantec, onde 59% de 6,2 mil empresas entrevistadas disseram que permitem acessos a aplicativos de negócios pelos dispositivos móveis. Ou seja, as organizações acreditam que a mobilidade pode aumentar a produtividade de sua força de trabalho: a pesquisa da Symantec revelou que 73% dos entrevistados perceberam que seus funcionários se tornaram mais eficientes. Ao mesmo tempo em que essa abertura criou facilidades também trouxe alguns desafios – um dos principais é a comunicação dos dados entre os bancos de dados corporativos e os bancos de dados dos dispositivos móveis. No que diz respeito ao ambiente organizacional, tem se observado o constante crescimento do uso do banco de dados SQL Server como parte integrante das soluções corporativas. Já entre os dispositivos móveis um dos sistemas operacionais que tem se destacado é o Android, juntamente com o banco de dados SQLite, muito utilizado para aplicações de menor porte. Assim, este artigo procura analisar uma das formas de comunicação entre as duas tecnologias, baseado em um case de uso para prover a comunicação entre esses dois bancos de dados via Web Service utilizando o recurso de Endpoint do SQL Server, o qual será visto com mais detalhes no tópico 3.1.1. Este artigo está estruturado da seguinte forma: no tópico 2 destacamos as tecnologias que são utilizadas para compor a comunicação via Web Services. No tópico 3 estão listadas as características dos dois bancos de dados que farão parte deste estudo, bem como as definições e uso de Web Services nativos do SQL Server e Endpoint. Já a descrição dos experimentos realizados e os resultados obtidos com o uso das tecnologias apresentadas são discutidos nos tópicos 4 e 5, respectivamente. 2. Tecnologias utilizadas para troca de informações As tecnologias de comunicação abordadas neste artigo são interligadas e todas atuam em conjunto de forma a prover comunicação sobre a Web, para que uma aplicação cliente possa enviar e receber informações disponíveis numa localização indeterminada, através de um Web Service. Faculdade de Tecnologia de Bauru volume 01 – número 01 – julho/2013 Página O envelope é enviado ao seu destino, através do protocolo HTTP padrão da Internet, como demonstrado no item a. O destino do envelope é chegar ao Web Service, como visto no item b, onde está localizado o destinatário da mensagem (método) e a identificação do contrato que descreve o Web Service, o Web Service Description Language (WSDL) que expõe, entre outros itens, o método 97 Na Figura 1 é apresentado um fluxo de requisição de atualização de dados de um cliente a um servidor via interação pelo Web Service. Em um primeiro instante a aplicação elabora um envelope com os recursos providos pelo protocolo de acesso simples a objetos, ou Simple Object Access Protocol (SOAP), contendo informações pré-determinadas (o que o cliente solicitou e quais parâmetros estão sendo enviados, entre outras), escritas em Extensible Markup Language (XML). Caderno de Estudos Tecnológicos solicitado pelo cliente. Ao receber a solicitação, o método é executado: neste caso, vamos supor que se trata de um método que extrai informações de um banco de dados, representado pelo item c. Feito isso, o método retorna as informações ao requisitante em forma de um documento no formato XML, que vai encapsulado novamente num envelope SOAP e trafega de volta sobre o HTTP até chegar ao requisitante (cliente), encapsulado com as informações recebidas do banco de dados, item d. Figura 1. Envio de envelope ao Web Service. Fonte: MSDN 2013c (adaptação). 2.1 Web Service Um serviço Web (Web Service) é qualquer serviço que esteja disponível sobre a Web, que utilize um sistema de mensagens padronizado com XML e não esteja restrito a apenas um sistema operacional ou linguagem de programação [Cerami 2002]. Dessa forma um Web Service também pode ser definido como um método de integração entre dados e aplicações, utilizando padrões XML comuns a diferentes plataformas e sistemas operacionais [Benz e Durant 2003]. Além disso, são descritos e expostos aos clientes e outros servidores de aplicação através de um formato XML chamado Web Services Description Language (WSDL), o qual é associado com todo e qualquer serviço Web padronizado [Benz e Durant 2003]. Realizar o transporte das informações sobre o protocolo HTTP e prover o envio e recebimento dos dados utilizando o formato XML podem ser consideradas duas das grandes funcionalidades e vantagens no uso dos Web Services. 2.2 Extensible Makup Language – XML XML é a abreviação para Extensible Markup Language, ou Linguagem para Marcação Extensível. Foi proposta pelo World Wide Web Consortium (W3C) como um padrão para representação e troca de dados na Web [w3schools.com 2013]. É um formato de fácil interpretação, com o propósito de ser utilizado para troca de dados entre plataformas diversas. Ainda segundo w3schools.com (2013) o XML foi desenvolvido para transportar e armazenar informações, com foco no dado em si. A grande vantagem na utilização do XML é a livre criação de “etiquetas” ou tags diversas que fazem referência à informação de acordo com o teor mencionado. Em vista de ser um padrão reconhecido mundialmente, o XML está presente em muitas tecnologias de comunicação na internet, como o protocolo SOAP e o documento descritivo do Web Service, o WSDL [w3schools.com 2013]. Faculdade de Tecnologia de Bauru volume 01 – número 01 – julho/2013 Página O SOAP, ou protocolo de acesso simples a objetos, habilita o transporte das requisições e respostas do Web Service através de informações encapsuladas num envelope e que são escritas em XML [Benz e Durant 2003]. O uso desse formato visa atender a uma necessidade surgida nos últimos anos de trafegar as requisições com facilidade sobre os firewalls das empresas e sobre a Internet, ao mesmo tempo em que os dados fossem descritos de forma detalhada. 98 2.3 Simple Object Access Protocol – SOAP Caderno de Estudos Tecnológicos Segundo Benz e Durant (2003), o protocolo é composto por: a) SOAP Endpoint: um ponto de extremidade que pode ser definido por uma Uniform Resource Locators (URL) padrão, com um Uniform Resource Identifier (URI) opcional e um SOAP Action (ação definida para o envelope SOAP); b) Métodos (para chamadas via HTTP POST) para serem invocados em um Web Service; c) Um cabeçalho HTTP, que indica o método invocado pela chamada; d) O envelope SOAP: descreve o conteúdo da mensagem e como utilizá-la; e) SOAP Enconding Rules: Regras de codificação do SOAP que descrevem a serialização dos dados baseados em tipos de dados genéricos ou específicos da aplicação; f) Body: O corpo do protocolo que contém a chamada ou mensagem de resposta que é descrita pelo envelope e formatada de acordo com as regras de codificação. Os autores ainda destacam que assim como o cabeçalho HTTP numa requisição SOAP o envelope baseia-se em valores declarados no arquivo WSDL do Web Service, o qual menciona instruções de como estão estruturadas as respostas e requisições. Dessa forma, tanto o cliente como o provedor do serviço devem ter as ferramentas necessárias para receber o pacote (package) de acordo com a especificação do protocolo e passar a informação adiante para ser processada. 2.4 Web Service Description Language – WSDL Conforme definição de Cerami (2002) a linguagem conhecida pela sigla WSDL é uma especificação que descreve os Web Services utilizando uma linguagem comum baseada em XML. Representa um contrato entre o requerente do serviço e seu provedor e possibilita ao cliente localizar um Web Service e invocar qualquer de seus serviços expostos publicamente, bem como identificar os tipos de dados utilizados para as chamadas e respostas, obter informações sobre o protocolo utilizado para transporte e o endereço para localizar um determinado serviço [Cerami 2002]. Entre as vantagens oferecidas pelo uso do WSDL segundo Tidwell, Snell e Kulchenko (2001) é possível destacar a facilidade em escrever e manter os serviços, proporcionando uma abordagem mais estruturada para definição dos mesmos, a diminuição da quantidade de código a ser implementado pela aplicação cliente, além da rapidez para codificação de alterações nos serviços publicados. É possível encontrar ferramentas disponíveis na Web para realizar a geração automática de contratos WSDL. 3. Bancos de Dados 3.1. SQL Server Faculdade de Tecnologia de Bauru volume 01 – número 01 – julho/2013 Página Conforme MSDN (2013a), a partir da versão 2005 do SQL Server já é possível criar Web Services a partir de pontos de extremidade para serem consumidos por qualquer aplicação que se utilize da Web. Isso possibilita que aplicações que não suportam provedores SQL Server possam realizar consultas, bem como permitir que aplicações ou bancos de dados remotos acessem seus dados utilizando o protocolo de comunicação HTTP. Outra vantagem é que a resposta de uma solicitação a um Web Service é codificada no formato XML, não sendo necessário estabelecer uma conexão permanente com o banco de dados [MSDN 2013c]. 99 O SQL Server é o principal banco de dados da Microsoft. Tornou-se popular na época de seu lançamento por conta da facilidade de manuseio e interface amigável, sendo uma alternativa viável para pequenos, médios e grandes negócios. Passou por grandes evoluções e atualmente é considerado um dos grandes players disponíveis no mercado [Dewson 2008]. Caderno de Estudos Tecnológicos 3.1.1 Web Service nativo do SQL Server Segundo Ramalho (2005) o SQL Server apresenta um recurso chamado Endpoint que controla a capacidade de se conectar a uma instância do banco de dados, bem como as maneiras que o banco de dados deve utilizar para comunicar-se sobre a rede. Ainda segundo o autor, essa tecnologia age de maneira muito similar a um firewall como se fosse uma camada de segurança na divisa entre as aplicações e a instância do SQL Server. Em resumo, um Endpoint é essencialmente um Web Service que expõe dados de uma base sobre um protocolo de comunicação, como o HTTP. Algumas das principais vantagens do uso dessa tecnologia, segundo MSDN (2013c) são a facilidade de acesso à instância do SQL Server mesmo que por plataformas diferentes formando um ambiente heterogêneo e o provimento de um nível de segurança próprio para o acesso Web que não permite o uso por usuários anônimos. 3.2 SQLite Segundo SQLITE (2012) trata-se de um banco de dados compacto e de fácil utilização, sendo uma ferramenta que permite aos desenvolvedores armazenar os dados de suas aplicações em tabelas e manipular esses dados utilizando comandos de Structured Query Language (SQL). Seu uso é recomendado em sistemas e aplicativos para dispositivos móveis, não sendo apropriado para aplicações de maior porte [SQLITE 2012]. Conforme Kreibich (2010), apesar de possuir restrições se comparado a um banco de dados corporativo, é mais vantajoso optar pelo uso do SQLite em aplicações de pequeno porte tendo em vista as garantias fornecidas em relação à atomicidade, consistência, isolamento e durabilidade dos dados (ACID), possibilidade do uso da maioria dos recursos de linguagem de consulta (SQL), além de permitir a criação de procedimentos armazenados (stored procedures) e uso de constraints entre objetos do banco de dados. 4. Descrição dos Experimentos Foi desenvolvido um cadastro simples de pedido e itens onde as bases de dados, tanto a principal quanto a do dispositivo móvel, foram criadas conforme a modelagem apresentada na Figura 2, contendo uma tabela de produtos, a tabela de pedidos e a interligação entre o pedido e os produtos, respectivamente Produto, Pedido e Item_Pedido. Para facilitar o entendimento acerca dos experimentos realizados, vamos identificar o banco de dados do dispositivo móvel como SQLite e o banco de dados principal como SQL Server. Faculdade de Tecnologia de Bauru volume 01 – número 01 – julho/2013 Página No SQL Server com o uso de um Endpoint foram expostos três métodos que se utilizam de procedimentos armazenados (stored procedures) responsáveis por fornecer uma lista dos produtos advindos da tabela Produto (prc_vw_produto) e inserir pedidos e seus itens nas tabelas Pedido e Item_Pedido (prc_ins_pedido e prc_ins_pedido_item). O Endpoint foi criado de acordo com a sintaxe descrita na Figura 3: 100 Figura 2. Diagrama das bases de dados VENDA (SQL Server 2008 R2 e SQLite 3.7.16.2). Fonte: Luciana J. Sabino. Caderno de Estudos Tecnológicos CREATE ENDPOINT ENDPOINT_VENDA STATE = STARTED AS HTTP ( PATH = '/Venda' ,AUTHENTICATION = (INTEGRATED) ,PORTS = (CLEAR) ,SITE = 'localhost' ) FOR SOAP ( WEBMETHOD 'InserePedido' ( NAME='Venda.dbo.PRC_INS_PEDIDO' , SCHEMA=DEFAULT , FORMAT=ALL_RESULTS ), -------- nome do endpoint STARTED = iniciado (disponível para chamada) http ou tcp (meio de transporte) localização do endpoint no host espec em SITE forma de autenticação (integrada ao windows) porta associada ao endpoint(clear = 80) nome do computador host (localhost = local) ------ tipo do protocolo (carga útil – payload) nome do metodo que insere pedidos stored procedure responsável pela execução retorna o schema XSD na instrução SELECT retorna o result set, qtde linhas e erros WEBMETHOD 'InsereItemPedido' ( NAME='Venda.dbo.PRC_INS_PEDIDO_ITEM' , SCHEMA = DEFAULT , FORMAT = ALL_RESULTS ), ----- nome do método que insere itens no pedido stored procedure responsável pela ação retorna o schema XSD na instrução SELECT retorna o result set, qtde linhas e erros WEBMETHOD 'RetornaProduto' ( NAME='Venda.dbo.PRC_VW_PRODUTO' , SCHEMA = DEFAULT , FORMAT = ALL_RESULTS ), ----- método que retorna a lista de produtos stored procedure responsável pela ação retorna o schema XSD na instrução SELECT retorna o result set, qtde linhas e erros -------- permite execução de SQL (desabilitado) formato padrao do arquivo wsdl banco no qual a requisição é executada namespace reservada ao endpoint indica se o schema XSD é retornado junto com os resultados codifica o resultado conforme a sintaxe XML BATCHES ,WSDL ,DATABASE ,NAMESPACE = = = = DISABLED DEFAULT 'VENDA' 'http://localhost:8080/Venda' ,SCHEMA ,CHARACTER_SET ) = STANDARD = XML Figura 3. Instrução Create Endpoint executada no SQL Server 2008 R2. Fonte: MSDN 2012a (adaptação). Página 101 De acordo com MSDN (2013b), assim que um Endpoint é criado, automaticamente o SQL Server faz uma reserva implícita do namespace definido, indicando que a partir deste momento qualquer solicitação a este ponto de extremidade será encaminhada à instância do SQL Server. Porém, esse namespace pode ser utilizado por outros aplicativos quando a instância do banco de dados não estiver em execução. É importante considerar uma forma de criptografia em relação à segurança da comunicação dos dados quando ocorrida fora da instância do SQL Server. Hotek (2010) assevera que a criptografia de comunicação para Endpoints é codificada para entender a origem e destino do tráfego: se a comunicação ocorrer inteiramente dentro da instância do SQL Server o tráfego não será criptografado, pois isso introduziria uma sobrecarga desnecessária nas comunicações. Dessa forma, o ideal é que o tráfego seja criptografado quando os dados forem transmitidos fora da instância do SQL Server. Após a criação do Endpoint, o Web Service já se encontra disponível e pode ser acessado pelo browser através de seu WSDL, contendo as informações sobre os métodos expostos para uso, formas de acesso e os tipos de dados requeridos para envio e recebimento das informações. Na Figura 4 é possível visualizar o contrato WSDL gerado após a criação do Endpoint: Faculdade de Tecnologia de Bauru volume 01 – número 01 – julho/2013 Caderno de Estudos Tecnológicos Figura 4. Contrato WSDL disponível após criação do Endpoint. Fonte: Luciana J. Sabino. É possível identificar no contrato gerado os seis grandes itens descritos por Cerami (2002) que compõe a descrição do Web Service (WSDL): Faculdade de Tecnologia de Bauru volume 01 – número 01 – julho/2013 Página Com o documento WSDL disponibilizado a partir do SQL Server, foi desenvolvido um segundo Web Service utilizando a linguagem C-sharp (C#) destinado a consumir os métodos expostos tornando-se desta forma uma camada intermediária entre a interface do dispositivo móvel e o SQL Server. Procedeu-se desta maneira para demonstrar o comportamento do modelo applicationcentric Web descrito em Cerami (2002). O autor destaca que com o advento dos Web Services, o usuário, antes tido como ator principal que iniciava a maioria das solicitações na Web, passou a dividir essa posição com as aplicações que interagem diretamente com outros serviços, de forma tão simplificada quanto solicitações realizadas entre browsers e servidores. Exemplos deste modelo podem ser identificados quando uma aplicação solicita a um Web Service a validação de um número de cartão de crédito ou informações sobre o clima de determinada região. Baseado nesta proposta e conforme demonstrado na Figura 5, este projeto contempla os modelos human-centric Web quando o usuário realiza a solicitação através da aplicação no dispositivo móvel e o modelo applicationcentric Web quando o Web Service em C# interage com os métodos expostos pelo documento WSDL gerado pelo SQL Server. 102 a) definitions: este deve ser o elemento raiz (root) do documento; ele define o nome do Web Service, declara múltiplas namespaces que serão utilizadas ao longo do documento e contém todos os elementos dos serviços; b) types: descreve todos os tipos de dados utilizados entre o cliente e o servidor; c) message: descreve uma mensagem do tipo que somente é uma requisição ou resposta (one-way) – contém o nome da mensagem; d) portType: esse elemento combina múltiplos elementos message para formar uma operação completa de mão única (one-way) ou ida e volta (round-trip); e) binding: descreve como o serviço será implementado; f) service: define o endereço para a chamada do serviço especificado, é muito comum o uso de uma URL para invocar o serviço SOAP. Caderno de Estudos Tecnológicos Aplicação localizada no dispositivo móvel desenvolvida sobre o Android human-centric Web Web Service desenvolvido em C# Web Service application-centric gerado via Web Endpoint do SQL Server Figura 5. Modelo de interação human-centric e application-centric Web. Fonte: Luciana J. Sabino. A Figura 6 apresenta a tela inicial do segundo Web Service chamado WSVenda, mostrando os métodos disponíveis para acesso que foram criados para interagir com a aplicação, sendo eles InsereItemPedido, InserePedido e RetornaProduto: Figura 6. Métodos criados via Web Service em C# Fonte: Luciana J. Sabino. Já na Figura 7 é possível visualizar o trecho de código que invoca o método RetornaProduto do Web Service do SQL Server inserido no projeto C#. Figura 7. Detalhe da código referente ao método RetornaProduto. Fonte: Luciana J. Sabino. Página 103 E por fim, na Figura 8 é possível visualizar o retorno da chamada ao método RetornaProduto apresentado no browser: Faculdade de Tecnologia de Bauru volume 01 – número 01 – julho/2013 Caderno de Estudos Tecnológicos Figura 8. Resultado do método “RetornaProduto”. Fonte: Luciana J. Sabino. Ainda na Figura 8 pode-se visualizar o nó principal, identificado por “<row1 xmlns=“urn:schemas-microsoft-com:sql:SqlRowSet1>” e abaixo desta os nós vinculados (em destaque), a serem identificados por tags que foram ordenadas na Tabela 1 para melhor identificação. Conforme Tabela 1 os dois produtos em destaque serão utilizados no cadastro do pedido e itens que será realizado adiante. Tabela 1. Organização dos dados dos produtos. Fonte: Luciana J. Sabino. Valor \ Tag < IDPRD_PRODUTO > < DESCRICAO > < QUANTIDADE > < VALOR > Produto 1 1 HD EXTERNO USB 3.0 1 TB 150 300.00 Produto 2 2 MEMORIA 1024MB DDR2 15 105.00 104 Para o desenvolvimento da aplicação a ser utilizada pelo dispositivo móvel que fará a integração entre o SQLite e o Web Service em C#, foi escolhido o software Eclipse, pois este é tido como a ferramenta preferida pelo Google para desenvolvimento na plataforma Android [Lecheta 2010]. Neste projeto optou-se pelo uso da versão 2.3.3 (Gingerbread) desta plataforma por ser até hoje a versão mais utilizada nos dispositivos que contém o referido sistema operacional [Developers 2013]. A Figura 9 apresenta a tela inicial da aplicação. O botão Recebe Informações é responsável por invocar o método RetornaProduto contido no Web Service WSVenda. Página Figura 9. Tela inicial da aplicação. Fonte: Luciana J. Sabino. Faculdade de Tecnologia de Bauru volume 01 – número 01 – julho/2013 Caderno de Estudos Tecnológicos Este método retorna uma lista atualizada de produtos cadastrados na base de dados VENDA do SQL Server; ele não recebe parâmetros ao ser chamado, de tal forma que retorna a lista completa de produtos, sem utilizar critério restritivo. Considerando que o objetivo é transmitir informações entre os bancos de dados a lista retornada pelo método contém poucas ocorrências, o que não sobrecarrega o processamento das informações. Os dados recebidos são cadastrados na tabela Produto do SQLite, dessa forma o usuário poderá realizar o cadastro de um pedido utilizando dados atualizados Na sequência, o botão Cadastro de Pedido direciona o usuário à tela de inclusão de itens, simulando uma venda (Figura 10). A tela é composta por uma lista combinada que contém os produtos recebidos anteriormente. Após selecionar um item, o usuário deve preencher os campos Quantidade e Valor e em seguida clicar no botão Insere Item, que é responsável por inserir os itens no pedido ativo. Esses itens são inseridos na lista de itens abaixo dos botões, conforme Figura 10, separados por ponto-e-vírgula, para que o usuário visualize o que já foi escolhido anteriormente. Figura 10. Tela de cadastro com itens selecionados. Fonte: Luciana J. Sabino. Faculdade de Tecnologia de Bauru volume 01 – número 01 – julho/2013 Página Para efeito de demonstração procederemos ao envio do pedido exibido na Figura 10 e seus dois itens ao SQL Server. Para tanto o usuário deve clicar no botão Envia Informações (Figura 9), este botão fará a chamada ao método InserePedido, cujo retorno será um número referente ao pedido inserido na tabela Pedido do SQL Server. Na sequência, utilizando o número do pedido gerado é feita a chamada ao método InsereItemPedido, que deve receber os parâmetros referentes ao número do pedido gerado, como o identificador do produto selecionado, quantidade solicitada do produto e valor do item digitado pelo usuário. Todos os itens referentes ao pedido são enviados ao método para 105 Ainda na Figura 10 há o botão Grava Pedido – ao clicá-lo, os dados inseridos na lista são gravados no SQLite. É gerado um novo registro na tabela Pedido e os itens relacionados a este são inseridos na tabela Item_Pedido. Na sequência os campos do cadastro são limpos para receber a entrada de novos dados para cadastro. É possível inserir vários pedidos com diversos itens através da aplicação. Caderno de Estudos Tecnológicos inclusão na base de dados principal. Havendo outros pedidos na base de dados local, estes também são enviados juntamente com seus itens. Após a finalização do método é recebida a mensagem “Envio realizado com sucesso”. 5. Resultados Na Figura 11 é possível visualizar os produtos existentes na tabela Produto do SQL Server (à esquerda) e SQLite (à direita). Os dados serão inseridos no SQLite através da aplicação desenvolvida. Figura 11. Dados da tabela Produto no SQL Server (5 linhas) e SQLite (0 linhas). Fonte: Luciana J. Sabino. Na Figura 13 é possível visualizar os dados do cadastro exibidos anteriormente na Figura 10, agora inseridos no SQLite. Com o uso da instrução Select combinamos as tabelas Pedido, Produto e Item_Pedido utilizando a instrução Inner Join para visualizar os dados completos do pedido, tais Faculdade de Tecnologia de Bauru volume 01 – número 01 – julho/2013 Página Figura 12. Trecho de código da aplicação Android e retorno dos dados em XML. Fonte: Luciana J. Sabino. 106 A seguir na Figura 12 pode-se verificar o trecho de código da aplicação que se utiliza do envelope SOAP e o log gerado pela ferramenta Eclipse, que mostra parte do conteúdo de retorno do método RetornaProduto, executado pelo botão Recebe Informações da aplicação: Caderno de Estudos Tecnológicos como a data em que foi realizado, a descrição do produto, a quantidade solicitada, o valor unitário do item e o valor total do pedido, respectivamente exibidos nas colunas Data_Pedido, Descricao, Quantidade, Valor_Item e Valor_Total: Figura 13. Dados inseridos no SQLite através da aplicação. Fonte: Luciana J. Sabino. Ao final de toda a movimentação, quando se deseja atualizar os dados no SQL Server, escolhe-se a opção Enviar Informações na aplicação Android. Dessa forma os dados são inseridos nas tabelas Pedido e ItemPedido deste banco de dados, conforme se pode observar na Figura 14 as duas linhas referentes aos dois itens inseridos. Figura 14. Visão dos itens inseridos após o cadastro. Fonte: Luciana J. Sabino. Página 107 Dessa forma foi possível acompanhar um ciclo completo de envio e recebimento de informações, que se iniciou com o recebimento dos Produtos atualizados, prosseguiu com a realização de um cadastro com dois dos produtos recebidos e posterior gravação e envio das informações à base de dados principal. Faculdade de Tecnologia de Bauru volume 01 – número 01 – julho/2013 Caderno de Estudos Tecnológicos 6. Considerações finais Foi possível identificar a importância da troca de informações entre bancos de dados distintos. Neste caso foi demonstrada a integração entre um banco de dados com foco corporativo (SQL Server) e um banco de dados destinado para uso em sistemas localizados em dispositivos móveis e de menor porte (SQLite). Devido à necessidade de interoperabilidade entre bancos de dados de plataformas diferentes, alguns destes têm oferecido recursos baseados em Web Services para tal fim, como por exemplo o Endpoint do SQL Server que foi demonstrado neste artigo. Iniciativas como esta, de fornecer recursos diretamente dos Sistemas Gerenciadores de Banco de Dados (SGBD) é algo que tende a evoluir em pouco tempo, sendo uma tendência quando relacionado à integração de bancos de dados corporativos e bancos de dados de dispositivos móveis. Página 108 Assim percebe-se que o recurso de Endpoint pode ser considerado relativamente recente e que possivelmente sofrerá atualizações ou até substituído por outra ferramenta que venha a prover esse tipo de integração de forma mais abrangente, com foco na integração com segurança entre o SQL Server e outros bancos de dados, ou mesmo com outras aplicações que não estejam no mesmo sistema. Faculdade de Tecnologia de Bauru volume 01 – número 01 – julho/2013 Caderno de Estudos Tecnológicos 7. Referências Benz, B. e Durant, J. (2003) XML Programming Bible. New York: Wiley Publishing Inc. Cerami, E. (2002) Web Services Essentials – Distributed Applications with XML-RPC, SOAP, UDDI & WSDL. O’Really. Developers. (2013) “Dashboards”, http://developer.android.com/about/dashboards/ind ex.html. Dewson, R. (2008) Microsoft SQL Server 2008 para Desenvolvedores, páginas 1-16. Alta Books. Hotek, M. (2010) Microsoft SQL Server 2008: passo a passo. Bookman. Kreibich, J. (2010) Using SQLite. O’Reilly Media. Lecheta, R. (2010) Google Android: Aprenda a criar aplicações para dispositivos móveis com o Android SDK. Novatec Editora. MSDN. (2013a) Create Endpoint us/library/ms181591(v=SQL.100).aspx. (Transact-SQL). http://msdn.microsoft.com/en- ______ (2013b). Reservando namespaces URL usando Http.sys. http://msdn.microsoft. com/ptbr/library/ms188682(v=SQL.105).aspx ______ (2013c) Native XML Web Services Overview. http://msdn.microsoft.com/enus/library/ms188266(v=sql.105).aspx. Olasvrud, T. (2012) “Consumerização: Como manter a segurança dos dispositivos móveis”. http://cio.uol.com.br/gestao/2012/08/10/consumerizacao-como-manter-a-seguranca-dosdispositivos-moveis. Ramalho, J. (2005) Microsoft SQL Server 2005 – Guia Prático. Elsevier. Tidwell, D. Snell, J. Kulchenko, P. (2001) Programming Web Services with SOAP. O’Reilly Media. SQLite. (2012) About SQLite. http://sqlite.org/about.html. Página 109 w3schools.com. (2013) XML Tutorial. http://www.w3schools.com/xml/default.asp. Faculdade de Tecnologia de Bauru volume 01 – número 01 – julho/2013