Escolar Documentos
Profissional Documentos
Cultura Documentos
Teresina-PI
30 de Agosto de 2019
Irvayne Matheus de Sousa Ibiapina
MiD: Simplificando a Integração entre Sistemas/ Irvayne Matheus de Sousa
Ibiapina. – Teresina-PI, 30 de Agosto de 2019-
54 p. : il. (algumas color.) ; 30 cm.
Teresina-PI
30 de Agosto de 2019
Resumo
As soluções tecnológicas estão cada vez mais presentes no cotidiano dos ambientes cor-
porativos. Essas soluções auxiliam em diversas atividades que são de suma importância
para seus funcionários, clientes e parceiros. Entretanto, conforme as demandas crescem,
aumentam a complexidade das necessidades empresariais e com isso, os sistemas tecnoló-
gicos necessitam evoluir para manter o padrão de qualidade dos serviços. Nesse sentido,
a integração entre sistemas é uma alternativa para auxiliar nesse cenário evolutivo, pos-
sibilitando o compartilhamento de recursos entre sistemas diferentes, contemplando a
interoperabilidade, reduzindo as redundâncias indesejadas e eliminando os gargalos e
incompatibilidades. Para padronizar a comunicação e serviços, viabilizando a troca de
mensagens entre sistemas heterogêneos, potencializando a reutilização, e simplificando o
processo de integração entre softwares, que surgiram os Web Services. Contudo, apesar das
vantagens e benefícios, existem algumas dificuldades inerentes a realização de integração,
que são: o esforço gasto para o desenvolvimento, o processo de integração com Sistemas
Legados, os riscos associados as modificações em softwares e a integração com softwares
desenvolvido por terceiros. Por conta disso, propõe-se uma abordagem e uma ferramenta,
intitulada MiD, para contornar tais dificuldades inerentes a construção de Web Services.
O objetivo do MiD é simplifica o desenvolvimento de Web Services para integração entre
sistemas Web, possibilitando a realização da integração sem necessidade de acesso ao
código-fonte do sistema alvo, de manera não invasiva, independente da tecnologia e com
baixo custo relacionado ao desenvolvimento e manutenção. Foi realizada uma avaliação
para investigar os benefícios da utilização do MiD em um projeto real de integração. Os
resultados preliminares concluíram que, para o contexto utilizada na conjuntura avaliativa,
o MiD tem potencial para reduzir o esforço no desenvolvimento de Web Services para
integração.
WS Web Service
I INTRODUÇÃO 1
Contexto e Motivação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Definição do Problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Visão Geral da Proposta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Justificativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Contribuições . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Estrutura do Trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
II ESTADO DA ARTE 9
1 FUNDAMENTAÇÃO TEÓRICA . . . . . . . . . . . . . . . . . . . . 11
1.1 Sistema Legado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.2 Web Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.3 REST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.4 HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.5 xPath . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.6 Selenium . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.7 Considerações Finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2 TRABALHOS RELACIONADOS . . . . . . . . . . . . . . . . . . . . 19
2.1 Migração de Sistemas Legados . . . . . . . . . . . . . . . . . . . . . . 19
2.2 Integração de Sistemas . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.3 Considerações Finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
III PROPOSTA 23
3 ABORDAGEM PROPOSTA . . . . . . . . . . . . . . . . . . . . . . 25
3.1 Mapeamento e execução das tarefas . . . . . . . . . . . . . . . . . . 25
3.2 Captura dos logs de execução . . . . . . . . . . . . . . . . . . . . . . 26
3.3 Processamento dos logs de ações . . . . . . . . . . . . . . . . . . . . 26
3.4 Automação da execução da tarefa . . . . . . . . . . . . . . . . . . . . 28
3.5 Disponibilização da tarefa como serviço . . . . . . . . . . . . . . . . . 28
4 A FERRAMENTA MID . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.1 MiDWeb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.2 MiDScraping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.3 MiDWebService . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.4 MiDChrome . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
5 MID EM AÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
IV RESULTADOS E DISCUSSÕES 39
6 AVALIAÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
6.1 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
6.2 Resultados e Discussão . . . . . . . . . . . . . . . . . . . . . . . . . . 43
6.3 Ameaças à validade . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
7 CONSIDERAÇÕES FINAIS . . . . . . . . . . . . . . . . . . . . . . . 49
7.1 Desafios e Limitações . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
7.2 Continuidade da Pesquisa . . . . . . . . . . . . . . . . . . . . . . . . . 50
7.3 Publicações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
REFERÊNCIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Parte I
Introdução
3
Contexto e Motivação
Definição do Problema
Existem alguns problemas que dificultam a realização da integração entre softwares.
Muitos ambientes corporativos ainda se deparam com essas dificuldades, e assim, têm seus
processos operacionais prejudicados. As dificuldades elencadas são as seguintes:
Objetivos
O principal objetivo deste trabalho é simplificar a integração entre softwares,
reduzindo o esforço e tempo gasto nessas atividades, sem depender da tecnologia utilizada
nesses sistemas, de forma acessível, eficaz e não invasiva. Vale ressaltar que esse objetivo
foi definido com o intuito de mitigar as dificuldades apresentadas na Seção de Definição
do Problema.
Para alcançar o objetivo principal, foram definidos os seguintes objetivos específicos:
3. Realizar uma avaliação para avaliar o uso da abordagem em cenários reais, explorando
as singularidades de projetos envolvendo sistemas em produção, explorando as
questões ligadas a eficiência, eficácia e esforço necessário para utilizá-la.
Justificativa
O objetivo deste trabalho é apresentar uma nova solução para facilitar a realização
da integração entre sistemas. Para isso, propõe-se uma abordagem e uma ferramenta,
denominada MiD, que possibilita desenvolver Web Services a partir de outro sistema, no
qual não necessita modificá-lo ou acessá-lo internamente para realizar o processo integração.
Inicialmente, percebeu-se empiricamente que muitas empresas de desenvolvimento
de software possuíam a necessidade de integrar seus sistemas, porém não tinham como
realizar essa atividade porque seus desenvolvedores estavam ocupados com outras tarefas.
Com isso, elaborou-se um mecanismo que simplifica o processo de construção de Web
Services para integração, possibilitando apenas a necessidade de conhecimento na funci-
onalidade que desejasse integrar para realizar a construção desse Web Service, e assim
tornar o processo algo mais rápido e menos custo.
Outra situação que muitas empresas corriqueiramente se deparam é com a utilização
de sistemas desenvolvido por terceiros, no qual em muitos casos o acesso ao código-fonte
desse sistema é impossível, e mesmo quando o acesso é disponível, ele utiliza tecnologias
obsoletas que são de difícil manutenção. Para isso, decidiu-se realizar o processo de
engenharia reversa no lado cliente da aplicação (LUCCA et al., 2002), e assim tornar
a criação de pontos de integração algo não invasivo. Nesse sentido, a complexidade da
funcionalidade é abstraída e a tarefa é considerada uma caixa-preta na qual a sua estrutura
interna é desconhecida, limitando-se assim apenas as entradas e saídas.
Por fim, é importante destacar que o MiD não visa substituir o desenvolvimento
manual de Web Services para integração. Nossa abordagem e ferramenta busca disponibili-
zar uma nova alternativa para a construção de pontos de integração por serviço. O MiD é
recomendado em situações na qual o desenvolvimento de Web Services para integração
entre softwares de maneira manual não é possível ou bastante custoso.
Contribuições
Destaca-se como principal contribuição deste trabalho a proposta de uma abordagem
capaz de simplificar o desenvolvimento de Web Services para utilização no processo de
integração entre softwares. Entretanto, existem outras contribuições, citadas a seguir:
8 Introdução
Estrutura do Trabalho
Este trabalho está divido em cinco capítulos e a introdução, que aborda o contexto
do trabalho, sua motivação, a definição do problema, a visão geral da proposta, os objetivos
gerais e específicos, a justificativa, além do relato das principais contribuições e desta
seção, com a estruturação do trabalho.
O Capítulo 1 apresenta os conceitos fundamentais sobre técnicas e componentes
utilizados neste trabalho.
O Capítulo 2 discute os trabalhos relacionados identificados.
No Capítulo 3 é detalhada a abordagem proposta neste trabalho, bem como a
ferramenta Web desenvolvida e sua utilização em uma contexto real.
O Capítulo 6 apresenta uma avaliação da abordagem MiD em um projeto real de
integração entres softwares.
Por fim, o Capítulo 7 apresenta as considerações finais deste trabalho, assim como
desafios, limitações, e as perspectivas para continuação da pesquisa.
Parte II
Estado da Arte
11
1 Fundamentação Teórica
• O software deve ser expandido para torná-lo capaz de integrá-lo com outros sistemas
mais modernos;
• O software deve ser reprojetado para torná-lo viável dentro de um ambiente compu-
tacional em evolução.
Uma alternativa para contornar tais problemas associado aos riscos contidos na
utilização de sistemas legados é realizar o processo de modernização (KHADKA et al.,
2014). A modernização envolve mudanças mais acentuadas que as tarefas de manutenção
habitual, conservando uma porção significante do sistema em uso (COMELLA-DORDA et
al., 2000). Essas mudanças geralmente incluem à sua reestruturação, melhorias funcionais
e adição de novos atributos.
As modernizações podem ser divididas em dois grandes grupos: Direta e Indireta
(SALVATIERRA et al., 2013). O primeiro tipo consiste em encapsular uma funcionalidade
legada, analisando as entradas e saídas, baseada nas técnicas de Wrapping, seguindo o
estilo Black-Box ou Caixa Preta (SALVATIERRA et al., 2013; COMELLA-DORDA et
al., 2000). Já o segundo tipo realiza uma engenharia reversa da funcionalidade legada,
para após realizar uma analise do código, e então extrair informações juntamente com
a tentativa de compreensão do código, seguindo o estilo White-Box ou Caixa-Branca
(SALVATIERRA et al., 2013; COMELLA-DORDA et al., 2000).
1.3 REST
O Representational State Transfer (REST) é uma abstração dos princípios da
World Wide Web que tem como ênfase a escalabilidade das aplicações, segurança e baixo
acoplamento (FIELDING; TAYLOR, 2000). No REST os serviços são identificados pela
Uniform Resource Identifier (URI). Um serviço utilizando REST utiliza o protocolo HTTP
e seus métodos: PUT, POST, GET, DELETE. É importante salientar que o REST é um
paradigma arquitetônico para desenvolvimento que Web Services, enquanto que o RESTful
é a utilização desse paradigma.
As implementações de serviço RESTful utilizam o protocolo HTTP como protocolo
intrínseco (RICHARDSON; RUBY, 2008). Em geral, os serviços RESTful possuem as
seguintes características e propriedades:
• Representação: o foco dos serviços RESTful está nos recursos e em como prover
acesso a esses recursos. Usualmente o acesso é provido por meio de JSON ou XML;
• URIs: cada recurso deve ser identificável, portanto deve possuir uma URI como
identificador. As operações que podem ser realizadas nesses recursos são determinadas
pelos métodos HTTP;
• Stateless: os serviços RESTful não mantém estado da aplicação cliente. Com isso,
cada requisição é tratada de forma independente.
1.4 HTML
As aplicações Web são sistemas que utilizam da arquitetura da Internet para troca
de informações e serviços. Muitas aplicações Web possuem como clientes navegadores Web,
que são os responsáveis por renderizar o conteúdo de uma página Web. Além disso, a
comunicação entre as aplicações (clientes e servidores) ocorre por meio do protocolo HTTP.
1.4. HTML 15
Em aplicações Web, cada página Web tem seu layout definido pela linguagem de marcação
HTML.
O HTML (HyperText Markup Language) é uma linguagem de marcação utilizada
para estruturar e representar conteúdo sob a forma de uma página Web (COOK; SCHULTZ,
2007). Neste caso em particular, o HTML5 é a interação mais recente da linguagem HTML,
que sofreu muitas das modificações necessárias para suprir às necessidades atuais do mundo
Web (HOY, 2011).
Para estruturar um layout com HTML é necessário a utilização de tags. As tags
são marcações que informam ao navegador sobre que tipo de informação se trata. Por
exemplo, existem tags para especificar um parágrafo, uma lista, um botão, etc. Tudo que
é enxergado em uma página Web é inserido por meio de tags. Na Figura 2 é apresentado
um exemplo da representação de uma tag no navegador.
• As tags são compostas por palavras-chave entre os caracteres ‘<’ e ‘>’, como por
exemplo a tag <html>;
• As tags podem conter atributos, como por exemplo a tag <a> que é composta pelo
atributo href que contém uma hiperligação: <a href=”google.com”>Google</a>.
1.5 xPath
A linguagem HTML é composta por tags que são rótulos usados para informar ao
navegador como deve ser o layout da página Web. Cada objeto de uma página Web rotulada
por tags podem ser identificadas por meio da linguagem de consulta xPath (CLARK;
DEROSE et al., 1999). Esse identificador pode ser utilizado para navegar por elementos
e atributos em documentos XML e HTML (CAVALIERI; GUERRINI; MESITI, 2012).
Devido as páginas Web serem estruturadas como uma árvore hierárquica de objetos HTML,
representado por tags, torna-se possível utilizar o xPath como artifício para identificar
cada elemento de forma única (FURCHE et al., 2011).
1.6 Selenium
Selenium 1 é um framework composto de ferramentas usadas para testar aplicações
Web sendo utilizado por muitos projetos industriais (COLLINS; LUCENA, 2012; HAUG-
SET; HANSSEN, 2008). Dentre esse conjunto de ferramentas disponíveis pelo Selenium,
destaca-se a ferramenta Selenium Web Driver 2 . Essa ferramenta disponibiliza uma interface
de programação bastante abrangente para controlar um navegador. O Selenium Web Driver
foi desenvolvido para oferecer suporte a páginas da Web dinâmicas em que os elementos
de uma página podem ser alterados sem que a própria página seja recarregada.
O Selenium disponibiliza diversas formas para localizar um elemento em uma
página Web. Essa localização pode ser realizada pelo ID, Class name, Tag Name, Name,
Link Text, Partial Link Text, CSS e xPath. Entre todas essas alternativas disponibilizadas
para localização dos elementos, de acordo com o Selenium Web Driver Developers 3 , a
maneira mais eficiente é a utilizando o ID. Entretanto, em muitos casos o atributo ID não
é inserido nas tags HTML, e com isso, localizar o elemento utilizando xPath torna-se a
alternativa mais viável e eficaz.
2 Trabalhos Relacionados
pesquisa.
Parte III
Proposta
25
3 Abordagem Proposta
Para dar inicio a execução, deve ser iniciado a etapa de captura dos logs de execução
no qual as ações realizadas pelo usuário durante a tarefa são capturadas. A execução
consiste em preencher campos de entrada de dados, manipular componentes na página
Web, clicar em botões, selecionar elementos dentre uma infinidade de outras ações que tem
como objetivo final a conclusão de uma determinada atividade.
ser classificada com um mesmo tipo. Isso ocorre porque tags distintas podem derivar da
mesma ação manual, como as tags “<button>” e “<a>”, que necessitam da ação de clicar,
ou as tags “<input>” e “<textarea>”, que necessitam da ação de preenchimento de texto.
Além disso, nessa etapa de processamento é possível associar um rótulo para cada
ação. Essa associação é opcional, uma vez que a abordagem associa automaticamente
um rótulo para cada ação. Entretanto, esse rótulo atribuído automaticamente pode ser
modificado pelo usuário, uma vez que, por exemplo, dado três ações de entrada de dados
para a consulta de saldo bancário, em que a ação 1 corresponde a preencher com o número
da agência, a ação 2 preencher com o número da conta, e a ação 3 preencher com a senha, o
sistema atribui os rótulos input_1, input_2 e input_3, respectivamente para cada entrada.
Entretanto, o usuário pode rotulá-los de acordo com sua preferência, com os valores para
as três ações, por exemplo, de num_agencia, num_conta e senha, respectivamente.
É relevante destacar que esses valores rotulados são de suma importância para o
tratamento de erros realizado pela abordagem, uma vez que, durante a execução do serviço,
caso o elemento HTML não esteja mais presente na página Web com aquele valor de xPath,
então é retornado para o sistema solicitante que houve erro naquele ponto específico do
fluxo, e seu valor rotulado é informado para que sejam tomadas as devidas providências.
abordagem consiste em disponibilizar a tarefa como serviço Web. Para isso, disponibiliza-se
um endpoint de acesso.
Para a correta execução da tarefa como um serviço, deve ser possível receber
os parâmetros necessários para a realização da tarefa. Com isso, é possível executar a
tarefa, identificar os valores para saída, e retorná-los para o sistema solicitante. Isso tudo
funcionando por meio de Web Service.
31
4 A Ferramenta MiD
4.1 MiDWeb
O MiDWeb é o módulo central do MiD. Ele é responsável por orquestrar os outros
módulos. Sua principal função é disponibilizar uma interface de acesso para o usuário. Nele
é possível visualizar algumas informações sobre os Web Services criados pelo usuário. O
MiDWeb possui uma tela de monitoramento, em que é possível identificar quantos acessos
ocorreram no dia, quantas requisições não foram atendidas, dentre outras. As principais
funcionalidades do MiDWeb são:
4.2 MiDScraping
O MiDScraping realiza a Etapa 4 da abordagem MiD, que é a automação da
execução da tarefa. O funcionamento desse módulo ocorre da seguinte forma: dado um
conjunto de ações que representa um fluxo de uma funcionalidade, o MiDScraping reproduz
o passo a passo desse fluxo, executando cada ação sequencialmente. Esse módulo é acionado
pelo módulo MiDWebService, no momento que um sistema solicita a execução de uma
tarefa. Com isso, o MiDScraping recebe os parâmetros necessários para a realização da
tarefa (inputs) e retorna a informação definida para o MiDWebService.
Esse módulo foi desenvolvido utilizando como base o Selenium 6 e outros frameworks
1
<https://mid-integrations.herokuapp.com/>.
2
<https://www.python.org/>.
3
<https://www.djangoproject.com/>.
4
<https://getbootstrap.com/>.
5
<https://www.highcharts.com/>.
6
<https://www.seleniumhq.org/>.
4.3. MiDWebService 33
4.3 MiDWebService
O MiDWebService é o módulo do ecossistema MiD que disponibiliza a interface de
acesso entre os sistemas. Esse módulo recebe uma requisição e informa ao MiDScraping os
dados necessários para a realização da requisição, bem como qual tarefa será realizada. No
fim do processo de scraping pelo MiDScraping, o MiDWebService recebe o retorno e envia
para o sistema solicitante a resposta da requisição.
4.4 MiDChrome
Por fim, o módulo MiDChrome implementa o plugin para captura de dados no lado
cliente. Esse plugin foi desenvolvido como extensão e suporta capturar dados do navegador
7
<https://wiki.python.org.br/BeautifulSoup>.
8
<https://www.seleniumhq.org/>.
9
<https://www.json.org/>.
10
<https://www.django-rest-framework.org/>.
34 Capítulo 4. A Ferramenta MiD
Google Chrome 11 . Ele foi construído com a utilização de Java Script 12 e envia os dados
capturados para o MiDWeb por requisição AJAX 13 . Seu funcionamento consiste em inserir
um script que monitora todos os cliques do usuário durante a execução da tarefa. Na
Figura 13 é apresentado o formato de iteração entre o componente de captura e as páginas
Web. Um script é inserido, no lado cliente da aplicação (navegador), ao ser acionado pelo
plugin. Com isso, a captura inicia e os metadados são capturados.
11
<https://developer.chrome.com/extensions>.
12
<https://www.javascript.com/>.
13
<https://api.jquery.com/jquery.ajax/>.
35
5 MiD em Ação
Inicialmente, o usuário deve acessar o MiDWeb e realizar o login (ou cadastro, caso
não tenha) e acessar a opção de cadastro de sistemas, localizado na barra esquerda da tela
inicial. Para o cadastro do sistema, o usuário informa o nome, que no caso é "JEMS ", e
uma descrição do sistema, que no nosso exemplo é "Sistema de gerenciamento de periódico
e eventos". Na Figura 14 é apresentado o detalhamento dessa etapa inicial.
Após o cadastro do sistema, o usuário deve realizar mais dois outros cadastros. O
primeiro é o cadastro da Funcionalidade. Em nosso exemplo, a funcionalidade cadastrada é
listar as conferências abertas para submissão e registro de artigos. O segundo é o cadastro
de Fluxo. Em nosso exemplo o usuário cadastra o Fluxo com nome "Fluxo Principal"e a url
do fluxo com "https://jems.sbc.org.br/ ". O objetivo do fluxo é possibilitar o cadastro de
vários fluxos para uma mesma funcionalidade. Com isso, é possível existir fluxo principal e
fluxos alternativos para uma funcionalidade.
Com o fim do cadastro do sistema, funcionalidade e fluxo, o usuário deve, com a
informação do identificador do fluxo gerado automaticamente pela MiDWeb, acessar o site
no qual deseja iniciar a captura dos dados. Em nosso exemplo, é acessado o JEMS, e a
1
<https://jems.sbc.org.br/>
36 Capítulo 5. MiD em Ação
Para finalizar a tarefa, o usuário clica em alguma região da tabela que exibe todos
os eventos que estão abertos para upload e registro de artigos e clica na opção de finalizar
captura na extensão. O usuário, opcionalmente, pode modificar os valores e tipos de
cada xPath capturado. Isso deve ser realizado antes do acionamento do botão de finalizar
captura ou posteriormente no MiDWeb. Na Figura 16 mostra o final da realização do
mapeamento da tarefa.
Figura 16 – Captura de dados no lado cliente no sistema JEMS na opção de listar todos
os eventos disponíveis.
37
2
<https://www.getpostman.com/>
Parte IV
Resultados e Discussões
41
6 Avaliação
6.1 Metodologia
Nesta avaliação comparamos a abordagem proposta neste trabalho com a abor-
dagem manual baseada em API no desenvolvimento de soluções para integração entre
sistemas. Uma abordagem manual baseada em API é a codificação de programas utili-
zando bibliotecas e frameworks disponíveis. Desta forma, o objetivo geral da avaliação foi
identificar a possibilidade de integrar sistemas legados sem a dependência da arquitetura
e tecnologia utilizada em tais sistemas. Para guiar nessa análise, utilizamos as seguintes
questões de pesquisa:
QP1 - A abordagem proposta neste trabalho é mais eficiente que uma abordagem manual
baseada em API? Para responder essa questão, avaliamos o tempo de resposta das
requisições para acessos simultâneos.
QP2 - A abordagem proposta neste trabalho é mais eficaz que uma abordagem manual
baseada em API? Para responder essa questão, checamos o percentual de erros
ocorridos em um determinado cenário de teste.
Foi realizada uma avaliação comparativa de performance entre dois Web Services
para integração desenvolvidos utilizando duas abordagens distintas: uma abordagem
manual baseada em API e a abordagem MiD proposta neste trabalho. Para cada Web
Service desenvolvido para integração de sistemas, foram analisados os seguintes pontos:
Onde:
Por fim, foi calculado a média de cada teste. Esse mesmo ciclo de teste foi realizado
novamente, porém simulando 5, 10, 15, 50, 100 acessos simultâneos, respectivamente. Além
do tempo de resposta, foi verificado se alguma das requisições não eram respondidas de
forma correta, ou se acontecia algum problema que impedia de responder. Isso foi realizado
pela necessidade de verificar a ocorrência de erros durante os acessos simultâneos.
Além do teste de performance, foram coletadas informações relacionadas ao processo
de desenvolvimento dos Web Services para cada abordagem. As informações coletadas
foram sobre a estimativa da equipe do tempo necessário para o desenvolvimento e o
histórico de tarefas associadas aquela demanda de integração. O objetivo dessa extração e
analise de dados históricos foi mensurar o esforço gasto nessas atividades de integração.
entre sistemas.
7 Considerações Finais
Neste trabalho foi apresentada a abordagem MiD que tem como objetivo principal
a criação de pontos de integração para sistemas. Com o MiD é possível integrar sistemas
sem a necessidade de ter acesso ao código-fonte, além de necessitar de um baixo esforço
para o processo de integração. Além disso, o MiD é prático ao ponto de que uma pessoa
sem conhecimento em programação consegue construir seu próprio Web Service.
Foi realizado uma avaliação preliminar em que foi comparada a abordagem pro-
posta neste trabalho com uma abordagem baseada em API. Foram verificadas algumas
características dessas abordagens, como: o tempo de resposta para acessos simultâneos, a
quantidade de erros nas requisições e o esforço gasto para o desenvolvimento dessas abor-
dagens. Os resultados preliminares indicam que, para os sistemas analisados na avaliação,
a abordagem manual baseada em API possui um tempo médio de resposta bem melhor
que a nossa abordagem, entretanto o esforço gasto para sua construção é bem maior que
com a utilização do MiD.
2019 2020
Atividade Set Out Nov Dez Jan Fev Mar
Melhorias na ferramenta MiD X
Realização de um estudo experi- X X
mental
Escrita de artigos X X X X
Escrita da dissertação X X X
Defesa do mestrado X
7.3 Publicações
Recentemente, um artigo intitulado “MiD: Simplificando a Integração entre
Sistemas Legados”, no qual descreve nossa abordagem foi submetido ao Simpósio
Brasileiro de Qualidade de Software (SQBS). Até o presente dia da escrita desta
qualificação, o resultado da submissão ainda não foi disponibilizado.
1
<https://2.python-requests.org/en/master/>
51
Referências
BENNETT, K. Legacy systems: Coping with success. IEEE software, IEEE, v. 12, n. 1, p.
19–23, 1995. Citado 2 vezes nas páginas 5 e 11.
CAVALIERI, F.; GUERRINI, G.; MESITI, M. Xspath: Navigation on xml schemas made
easy. IEEE Transactions on Knowledge and Data Engineering, IEEE, v. 26, n. 2, p.
485–499, 2012. Citado na página 16.
CLARK, J.; DEROSE, S. et al. XML path language (XPath) version 1.0. 1999. Citado
na página 16.
COOK, C.; SCHULTZ, D. Beginning HTML with CSS and XHTML: modern guide and
reference. [S.l.]: Apress, 2007. Citado na página 15.
CURBERA, F. et al. Unraveling the web services web: an introduction to soap, wsdl, and
uddi. IEEE Internet computing, IEEE, v. 6, n. 2, p. 86–93, 2002. Citado na página 13.
ERL, T. SOA Principles of Service Design (paperback). [S.l.]: Prentice Hall Press, 2016.
Citado na página 13.
FOSTER, I. The physiology of the grid: An open grid services architecture for distributed
systems integration. Citeseer, 2002. Citado na página 3.
PRENCIPE, A.; DAVIES, A.; HOBDAY, M. The business of systems integration. [S.l.]:
OUP Oxford, 2003. Citado na página 3.
RICHARDSON, L.; RUBY, S. RESTful web services. [S.l.]: "O’Reilly Media, Inc.", 2008.
Citado na página 14.
ROMAN, D. et al. Web service modeling ontology. Applied ontology, IOS Press, v. 1, n. 1,
p. 77–106, 2005. Citado na página 4.
UPADHYAYA, B.; KHOMH, F.; ZOU, Y. Extracting restful services from web
applications. In: IEEE. 2012 Fifth IEEE International Conference on Service-Oriented
Computing and Applications (SOCA). [S.l.], 2012. p. 1–4. Citado 2 vezes nas páginas 4
e 20.
UPADHYAYA, B.; ZOU, Y.; KHOMH, F. An approach to extract restful services from
web applications. International Journal of Business Process Integration and Management,
Inderscience Publishers (IEL), v. 7, n. 3, p. 213–227, 2015. Citado 2 vezes nas páginas 4
e 20.
W3C. Web Services Architecture. 2004. [Online; accessed 08-July-2019]. Disponível em:
<https://www.w3.org/TR/ws-arch/>. Citado 3 vezes nas páginas 9, 12 e 13.