• Nenhum resultado encontrado

VALIDAÇÃO DA ABORDAGEM DE DESENVOLVIMENTO

GET POST

8.1 VALIDAÇÃO DA ABORDAGEM DE DESENVOLVIMENTO

Para realizar a validação da abordagem, é necessário que as Web APIs sejam implantadas em um ambiente computacional, de modo a possibilitar a comunicação com as aplicações clientes (Figura 70). O ambiente de execução é constituído por um Servlet Container Apa- che Tomcat versão 7.0.57. As duas Web APIs foram implantadas no mesmo servidor Tomcat, e são executadas simultaneamente. O servidor possui o sistema operacional Ubuntu Server 14.04 LTS (HVM), insta- lado em uma instância EC2 da nuvem computacional Amazon AWS. A instância escolhida foi a t2.micro com processador Intel Xeon de alta frequência, operando a 2,5 GHz com Turbo até 3,3 GHz e 1GB de me- mória principal. As aplicações clientes são executadas fora do ambiente computacional da Amazon.

Um conjunto de dados foi criado para apoiar a execução do es- tudo de caso. Os dados foram gerados aleatoriamente, com base em um conjunto de nomes, sobrenomes, ocupações, organizações crimino- sas, características físicas e imagens. Cada Web API possui 100 regis- tros, sendo que cada registro representa uma pessoa procurada. Cada registro é armazenado em um arquivo distinto, e as informações são estruturadas no formato JSON. As imagens utilizadas no conjunto de dados da Web API da Polícia Civil do Estado do Rio Grande do Sul (PC-RS) foram extraídas do site da própria agência e complementadas com imagens do site1de pessoas procuras disponibilizado pela Secreta- ria de Segurança do Rio de Janeiro. As imagens utilizadas nos dados da Web API do FBI foram extraídas do site oficial da agência e ofusca-

Web API Web API Servlet Container

Sistema Operacional Infraestrutura

Cliente

Tradicional SemânticoAgente TradicionalCliente Figura 70 – Visão geral da infraestrutura - estudo de caso

das para preservar a identidade das pessoas. As imagens são codificadas em BASE64 e armazenadas juntamente com as demais informações da pessoa procurada, no mesmo arquivo JSON. O conjunto de dados da Web API da PC-RS possui 2.284,50 KB, enquanto os dados utilizados pela Web API do FBI possuem 364,70 KB. A diferença de tamanho do conjunto de dados é devido à qualidade das imagens extraídas dos sites. Todos os dados utilizados no experimento podem ser obtidos em http://ivansalvadori.com.br/publicacoes/2015/dissertacaoMestrado/.

O próximo passo foi a execução das aplicações clientes. Primei- ramente foi executado o cliente tradicional da Web API da PC-RS, resultando em 101 requisições. A primeira requisição obtém a lista de pessoas procuradas. As demais requisições obtêm as informações de cada pessoa presente na lista. Em seguida foi executado o agente semântico sobre a Web API da PC-RS. A execução resultou em 203 re- quisições, sendo: uma requisição para obter a lista de procurados, 100 requisições para consultar os dados de cada pessoa contida na lista e 102 requisições para consultar a documentação da Web API. O grande número de requisições para a documentação é devido ao agente semân- tico considerar sua validade por apenas uma requisição.

A execução do cliente tradicional da Web API do FBI resultou em 201 requisições. A primeira requisição é destinada a obter a lista de criminosos. As demais requisições buscam os dados de cada criminoso presente na lista. A Web API do FBI foi modelada para distribuir

as informações dos procurados em duas representações (CriminalRep e DescriptionRep), sendo assim, exige o dobro de requisições. Por fim é executado o agente semântico sobre a API do FBI. A execução resulta em 403 requisições, sendo: uma requisição para lista de criminosos, 200 requisições para os dados das pessoas e 202 requisições para obter a documentação da Web API.

Cada aplicação cliente foi executada dez vezes, de modo a pos- sibilitar o cálculo de uma média de tempo necessário para a execução das requisições. A Tabela 6 apresenta os dados obtidos pelas sucessivas execuções das aplicações clientes. O cliente tradicional da Web API da PC-RS leva em média 24,08 segundos para executar 101 requisições, enquanto o agente semântico demanda 57,99 segundos para executar 203 requisições. A execução do cliente tradicional da Web API do FBI exige em média 50,51 segundos para executar 201 requisições, enquanto o agente semântico exige 148,73 segundos para executar 403 requisições.

Tabela 6 – Média do tempo(segundos) de requisições em série PC-RS Tradicional PC-RS Semântico FBI Tradicional FBI Semântico 25,94 48,47 51,64 140,56 21,26 47,99 49,79 143,35 23,68 57,90 52,18 138,05 24,64 57,50 50,07 154,25 23,73 56,17 51,45 137,75 23,46 57,59 48,92 149,94 24,71 61,00 52,98 160,74 28,88 58,92 48,20 159,12 22,33 62,66 51,11 165,32 22,19 71,74 48,77 138,20 24,08 57,99 50,51 148,73

Os dados apresentados na Tabela 6 compreendem execuções rea- lizadas sequencialmente. Entretanto, é possível executar as requisições em paralelo, reduzindo drasticamente o tempo de execução. A Tabela 7 apresenta os dados da execução das aplicações clientes utilizando requisições paralelas. Dessa forma, foi possível reduzir o tempo de exe- cução das aplicações clientes em mais de 80%. Para ativar a opção de requisições paralelas, os clientes implementados em jQuery foram configurados para utilizar a propriedade async: true na configuração $.ajaxSetup.

Tabela 7 – Média do tempo(segundos) de requisições em paralelo PC-RS Tradicional PC-RS Semântico FBI Tradicional FBI Semântico 4,17 10,16 7,40 14,24 4,04 8,67 7,19 14,75 3,95 9,31 7,33 14,23 4,01 8,67 6,78 14,31 4,11 9,28 7,08 14,80 4,02 10,20 7,32 14,22 3,91 9,34 6,94 15,04 4,00 8,28 7,26 14,61 4,07 7,63 7,20 12,67 4,03 7,45 7,11 12,83 4,03 8,89 7,16 14,17

A Figura 71 mostra a comparação do tempo de execução das aplicações clientes nas suas diferentes abordagens. A comparação foi realizada com base nos dados obtidos pela execução de requisições em paralelo. É possível observar um aumento de 120,6% no tempo de execução do agente semântico em relação ao cliente tradicional para a Web API da PC-RS. O percentual de aumento do tempo de execução do agente semântico para a Web API do FBI é de 97,9%.

Figura 71 – Tempo de execução - cliente tradicional x semântico Ao final da execução das aplicações clientes, os dados retornados pelas Web APIs foram coletados e analisados2. A Tabela 8 mostra a

quantidade de informações recebidas por cada cliente. A quantidade de informações sobre as pessoas procuradas (coluna Dados) é indepen- dente do cliente ser tradicional ou semântico, pois as Web APIs sempre retornam representações JSON-LD enriquecidas com descrição semân- tica e controles hipermídia. O mesmo ocorre com a lista de pessoas procuradas (coluna Lista). A coluna API-DOC mostra a quantidade de dados correspondentes à documentação da Web API, resultante de todas as requisições necessárias para a execução do agente semântico.

Tabela 8 – Informações retornadas pelas Web APIs

Cliente Dados Lista API-DOC Total

PC-RS tradicional 2.335,40 KB 17,90 KB 0,00 KB 2.353,30 KB PC-RS semântico 2.335,40 KB 17,90 KB 599,90 KB 2.953,20 KB FBI tradicional 547,10 KB 16,70 KB 0,00 KB 563,80 KB FBI semântico 547,10 KB 16,70 KB 1.704,70 KB 2.268,50 KB

É possível notar a grande quantidade de dados correspondentes à documentação da Web API. Os clientes tradicionais não realizam ne- nhuma requisição para obter a documentação. Entretanto, o agente semântico, pelo menos na perspectiva de pior caso, apresentou grande consumo da documentação. A Figura 72 mostra a comparação da trans- ferência de dados das aplicações clientes nas suas diferentes abordagens. O percentual de aumento dos dados do agente semântico sobre a Web API da PC-RS representa 25,49% em relação ao cliente tradicional. A execução do agente semântico sobre a Web API do FBI resultou em um aumento de 302,36% em relação ao cliente tradicional.

Figura 73 – Visão geral da execução do estudo de caso

A fonte de dados utilizado pelas Web APIs é formada por ar- quivos no formato JSON. Entretanto, quando esses dados são disponi- bilizados para as aplicações clientes, a Web API adiciona a descrição semântica e controles hipermídia, resultado em representações JSON- LD. No caso da Web API da PC-RS, o conjunto de dados original é composto por 100 arquivos que ocupam 2.284,50 KB. Ao final da execu- ção do cliente, a Web API disponibilizou 100 representações JSON-LD que somam 2.335,40 KB, representando um acréscimo de 50,90 KB no tamanho dos dados transferidos. O mesmo ocorreu com a Web API do FBI, que originalmente possui 100 arquivos que ocupam 364,70 KB, que resultaram em 200 representações JSON-LD que somam 547,10 KB, totalizando um acréscimo de 182,40 KB. A Figura 73 mostra a visão geral da execução do experimento. As Figuras 74 e 75 mostram o percentual de cada tipo de dado retornado na execução do agente semântico sobre a Web API da PC-RS e FBI, respectivamente.

Documentação Web API: 20,31%

Dados Pessoas: 77,36% Lista Pessoas: 0,61%

Descrição Semântica e Controles Hipermídia: 1,72%

Documentação Web API: 75,15% Dados Pessoas: 16,07% Lista Pessoas: 0,74% Descrição Semântica e Controles Hipermídia: 8,04%

Figura 75 – Distribuição dos dados retornados - Web API do FBI