Transmissão de Dados entre Banco de Dados SQL Server

Propaganda
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
Download