Professional Documents
Culture Documents
Data de Depsito:
Assinatura:________________________
______
USP So Carlos
Fevereiro de 2012
NN163u
u
Agradecimentos
Resumo
iii
Abstract
H is
Sumrio
Agradecimentos
Resumo
iii
Abstract
Lista de Siglas
1
Introduo
1.1 Consideraes Iniciais
1.2 Contextualizao . . .
1.3 Trabalhos Relacionados
1.4 Motivao e Objetivos
1.5 Estrutura . . . . . . . .
xv
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
1
2
3
5
6
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Web Services
2.1 Consideraes Iniciais . . . . . . . . . . . .
2.2 Arquitetura Orientada a Servios (SOA) . . .
2.3 Padres Fundamentais de Web Services . . .
2.4 Arquitetura de Web Services . . . . . . . . .
2.5 Qualidade de Servio aplicada Web Services
2.6 Consideraes Finais . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
7
. 7
. 7
. 8
. 9
. 11
. 12
.
.
.
.
.
.
.
15
15
15
17
18
24
25
26
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Ontologia do UDOnt-Q
29
4.1 Consideraes Iniciais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.2 Desenvolvimento da Ontologia do UDOnt-Q . . . . . . . . . . . . . . . . . . . . . 30
4.2.1 Methontology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
vii
4.3
4.4
5
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
32
34
37
41
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
43
43
43
44
44
48
49
49
51
51
53
53
56
Avaliao de Desempenho
6.1 Consideraes Iniciais . . . . . . . . . . . . . . . .
6.2 Configurao do Ambiente de Testes . . . . . . . . .
6.3 Planejamento de Experimentos . . . . . . . . . . . .
6.4 Avaliao de Desempenho dos Experimentos . . . .
6.4.1 Clculo da Influncia dos Fatores . . . . . .
6.5 Anlise dos Resultados . . . . . . . . . . . . . . . .
6.5.1 Anlise dos Resultados das Ontologias . . .
6.5.2 Anlise dos Resultados do Mdulo UDOnt-Q
6.6 Consideraes Finais . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
57
57
57
60
63
66
67
67
67
97
Concluses
7.1 Concluso Geral . . . . . .
7.2 Contribuies . . . . . . .
7.2.1 Produo Cientfica
7.3 Trabalhos Futuros . . . . .
Anexos
ANEXO. 1.
ANEXO. 2.
ANEXO. 3.
ANEXO. 4.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
99
99
100
101
101
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
111
114
120
128
130
viii
Lista de Figuras
2.1
2.2
2.3
2.4
3.1
3.2
3.3
3.4
3.5
3.6
.
.
.
.
.
e
.
.
.
.
.
.
. 8
. 9
. 10
. 12
.
.
.
.
.
17
18
19
19
20
.
.
.
.
.
.
22
23
23
23
24
24
4.1
4.2
4.3
4.4
5.1
5.2
5.3
5.4
5.5
5.6
5.7
5.8
6.1
6.2
ix
47
49
50
50
52
53
53
54
6.3
6.4
6.5
6.6
6.7
6.8
6.9
6.10
6.11
6.12
6.13
6.14
6.15
6.16
6.17
6.18
6.19
6.20
6.21
6.22
6.23
6.24
6.25
6.26
6.27
6.28
68
69
69
70
70
71
72
72
73
74
75
75
76
76
77
78
79
80
81
81
82
83
84
85
85
86
xi
. 87
. 88
. 89
. 90
. 90
. 91
. 92
. 93
. 93
. 94
. 95
. 96
. 97
Lista de Tabelas
2.1
6.1
6.2
6.3
6.4
6.5
6.6
6.7
Elementos de Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Elementos de Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Fator e nveis relativos ao PE-Ontologia . . . . . . . . . . . . . . . . . . . . . .
Fator e nveis relativos ao PE-Pizza . . . . . . . . . . . . . . . . . . . . . . . .
Fator e nveis relativos ao PE-Modulo . . . . . . . . . . . . . . . . . . . . . . .
Fatores Fixos e possveis nveis relativos ao PE-Modulo . . . . . . . . . . . . .
Projeto Fatorial Completo para Avaliao de Desempenho do Mdulo com 300 e
600 Servios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Projeto Fatorial Completo para Avaliao de Desempenho do Mdulo com 300 e
1200 Servios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Conjuntos de Experimentos do PE-Modulo . . . . . . . . . . . . . . . . . . . .
Fatorial completo 23 e Mdias do Tempo de Busca (TB) do CJE-1 . . . . . . . .
Fatorial completo 23 e Mdias do Tempo de Busca (TB) do CJE-2 . . . . . . . .
Fatorial completo 23 e Mdias do Tempo de Busca (TB) do CJE-5 . . . . . . . .
Fatorial completo 23 e Mdias do Tempo de Busca (TB) do CJE-6 . . . . . . . .
Fatorial completo 23 e Mdias do Tempo de Busca (TB) do CJE-7 . . . . . . . .
Fatorial completo 23 e Mdias do Tempo de Busca (TB) do CJE-8 . . . . . . . .
6.8
6.9
6.10
6.11
6.12
6.13
6.14
6.15
xiii
.
.
.
.
.
.
58
58
61
62
62
63
. 65
.
.
.
.
.
.
.
.
65
65
73
78
86
91
94
97
Lista de Siglas
API -
B2B -
Business-to-Business
BPEL -
CERN -
DL
Description Logics
DNS -
EAI -
FTP -
HTTP HP
IBM -
IDE -
IEEE IP KACTUS
QoS -
Quality of Service
RDF -
RDF-S -
xv
SaaS -
Software-as-a-Service
SLA -
SMTP -
SOA -
SOAP SPARQL TI -
TOVE -
UDDI -
UDOnt-Q -
URI -
W3C -
WS WSARCH -
Web Service
Web Services Architecture
WSDL -
WSLA -
XML -
xvi
C APTULO
1
Introduo
1.1
Consideraes Iniciais
A World Wide Web (referida nesta dissertao por Web) foi concebida pelo fsico Tim BernersLee em 1989, no Centro Europeu para Pesquisa Nuclear, o CERN (Lee e Fischetti, 1997). Anteriormente ao advento da Web, a Internet era um reduto de pesquisadores ligados a universidades,
governos e indstrias (Tanenbaum, 2003).
A Web facilitou o acesso informao tornando-a mais disponvel a vrias pessoas ao redor
do mundo. Nesse sentido as informaes geograficamente distribudas so acessadas de forma
mais simples e ampla. O contexto que envolve a Web, de forma geral, vem passando por diversas
modificaes que vo desde a criao e alterao de protocolos at as aplicaes que nela residem.
A nova verso da Web foi batizada por Web 2.0 e engloba as aplicaes de nova gerao, com mais
contedo dinmico e provendo maior interatividade com os usurios (Murugesan, 2007).
Algumas das possibilidades para prover mais interao e dinamismo constituem as tarefas assncronas e interao com outros sistemas ou aplicaes. A Internet formada por um conjunto
de sistemas, aplicaes e implementaes diferentes e a interao entre esses sistemas no uma
tarefa simples, que requer a adoo de um padro para a formalizao de um protocolo. Os Web
Services permitem a realizao de interoperabilidade em nvel de aplicao na interao mquina
a mquina sobre uma comunicao em rede (Bhakti e Abdullah, 2010) e essa caracterstica fez
com que eles se tornassem uma soluo atrativa para os problemas de integrao entre sistemas na
Internet.
Um Web Service uma soluo de software projetada para dar suporte a interaes mquinapara-mquina, fornecendo uma interface descrita em um formato baseado em XML (eXtensible
1
1.2. CONTEXTUALIZAO
Markup Language), denominado WSDL (Web Services Description Language). Outros sistemas
interagem com um Web Service da maneira prevista por sua descrio usando mensagens SOAP
(Simple Object Access Protocol), que tambm so baseados em XML. Geralmente o protocolo
utilizado para o transporte o HTTP com uma serializao XML em conjunto com outros padres
relacionados Web (W3C, 2004d). Para a publicao e descoberta dos provedores e de seus
servios empregado o registro UDDI (Universal Description, Discovery, and Integration).
Os Web Services tm sido amplamente utilizados por vrios segmentos, tanto na academia
como em empresas, os quais tm investido em pesquisas com o propsito de melhorar a interoperabilidade, a eficincia, a segurana e o suporte QoS (Quality of Service).
A ampla aplicabilidade de Web Services incentiva a pesquisa sobre a incluso de qualidade de
servio (QoS). Algumas empresas tm trabalhado com o modelo SaaS (Software-as-a-Service), no
qual a aplicao no mais hospedada no host cliente, mas sim cedida como um servio de modo
que sua utilizao pode ou no ser cobrada (Goh et al., 2007). Nesse sentido, alm da qualidade
de software, o cliente passar a exigir qualidade de servio. importante destacar que o cliente
no necessariamente o usurio final. Um cliente pode ser outra empresa ou outra aplicao e
assim ser estendido a outros conceitos tais como: B2B (Business-to-Business) e EAI (Enterprise
Application Integration).
H na literatura vrias propostas de aplicao de QoS em Web Services, onde algumas tentam
utilizar semntica na busca de informaes em Web Services. Alguns autores apresentam a utilizao de ontologias com o objetivo de alcanar resultados mais positivos, como nos trabalhos de
(Papaioannou et al., 2006), (Tran, 2008), (Maximilien e Singh, 2004), (Fakhfakh et al., 2008) e
(Aklouf e Rezig, 2009). Segundo Tran (2008) a ontologia pode apoiar o descobrimento da informao de QoS com grandes detalhes. Ela tambm pode facilitar vrios servios participantes, os
quais expressam suas ofertas e demandas de QoS em diferentes nveis de expectativa (Tran, 2008).
1.2
Contextualizao
Os Web Services so baseados em uma arquitetura orientada a servios - SOA (Service Oriented
Architeture) que tem a vantagem de ser escalvel e flexvel. Os componentes de uma arquitetura
orientada a servios para Web Service, como o WSDL, o protocolo SOAP e o UDDI so baseados
em XML, o que facilita a integrao entre sistemas e aplicaes diferentes, pois vrias plataformas
e linguagens de programao so capazes de trabalhar com XML. Um dos protocolos de transporte mais empregados para a transferncia de mensagens SOAP o HTTP (HyperText Transfer
Protocol) que geralmente faz uso da porta 80, a qual na maioria dos firewalls no bloqueada.
Todas essas vantagens fazem com que os Web Services se tornem um forte candidato para
solucionar o problema da integrao de sistemas e aplicaes na Internet. Vrias empresas tm
investido e participado do desenvolvimento e de pesquisas em Web Services. A IBM, Hewlett-
CAPTULO 1. INTRODUO
1.3
Trabalhos Relacionados
contm informaes detalhadas de QoS para cada servio. Nesse sentido, ainda surge a questo de
como determinar quais servios possuem um nvel de QoS aceitvel pelo cliente.
Com base nessa preocupao com a qualidade de servios em Web Services, alguns outros
trabalhos, tais como (Papaioannou et al., 2006), (Tran, 2008), (Maximilien e Singh, 2004), (Aklouf
e Rezig, 2009), (Ma et al., 2010), (Baocai et al., 2010), (Wu e Guo, 2011) e (Tsai et al., 2011),
abordam o emprego da semntica com ontologias para realizar a classificao dos servios, tendo
como base propriedades de QoS.
Em relao ao emprego de ontologias, no trabalho de Luo et. al. (2006) foi proposto um
mtodo de utilizao da OWL-S com o registro UDDI para a obteno de semntica (Luo et al.,
2006). Nenhuma alterao no registro UDDI foi necessria, apenas a criao de mdulos residentes
nas mquinas clientes (client-side) que tiram proveito das capacidades da semntica. Contudo, no
houve preocupao em relao qualidade de servio e, como utilizou a OWL-S, no apresentou
uma nova ontologia e no houve uma avaliao do desempenho observado.
O trabalho de Baocai et. al. (2010) tambm considera a utilizao da OWL-S, porm complementa a descoberta de servios com auxlio de uma ontologia de QoS (QoS Ontology) utilizada
por um framework para a descoberta automtica dos servios adequados. Porm, esse trabalho no
considera os acordos de nveis de servios (SLA) e no apresenta resultados de desempenho.
No trabalho de Fakhfakh et. al. (2008) apresentada uma ontologia baseada no modelo
SLA. Trata-se de um trabalho interessante que utiliza as obrigaes acordadas em contratos, mas
no apresenta resultados que possam ser avaliados em termos de desempenho e de eficincia na
obteno de QoS.
Os pesquisadores Wu e Guo (2011) propem a utilizao de agentes inteligentes providos pelo
framework JADE2 (Java Agent DEvelopment Framework) na descoberta de Web Services. Apesar
do emprego de agentes ser interessante, o artigo no descreve em detalhes a ontologia utilizada, os
experimentos executados no detalham os elementos de software e no h registros dos elementos
de hardware utilizados. Os resultados obtidos so interessantes e indicam que quanto maior o
nmero de servios, maior o tempo de classificao mas, por outro lado, o tempo de descoberta
mais vantajoso utilizando-se essa abordem. Apesar de algumas semelhanas com os resultados
deste trabalho de mestrado, comparaes no podem ser feitas de forma expressiva em funo da
ausncia de detalhes que no foram publicados.
A proposta de Tsai, Hwang e Tang (2011) consiste em uma abordagem hbrida entre o uso
de ontologia e tcnicas de recuperao de informaes baseadas em textos, para descoberta automtica de Web Services. Porm, nessa proposta as informaes sobre a qualidade de servio dos
Web Services no so mencionadas.
De forma geral, apesar do embasamento terico, poucos so os trabalhos relacionados que contemplam a descoberta de servios baseados em QoS e ainda associam a parte de acordo de nveis de
servios (SLA). Alm disso, nem todos esses trabalhos relatam os resultados de forma adequada,
2
http://jade.tilab.com/
CAPTULO 1. INTRODUO
1.4
Motivao e Objetivos
Apesar de ser uma rea que nos ltimos anos est em destaque e em constante investigao e
pesquisa, os Web Services ainda podem ser explorados em diversas vertentes, em funo de sua
natureza distribuda.
A maior aceitao e utilizao de Web Services proporcionaram uma maior preocupao com
o desempenho, confiabilidade e segurana dos mesmos. Porm todos estes pontos e alguns outros
como interoperabilidade, tempo de resposta, custo, etc., podem ser englobados dentro do suporte
QoS para as aplicaes. Embora vrias pesquisas tenham sido desenvolvidas e diversos artigos
tenham sido publicados, conforme apresentados na seo anterior, poucos propuseram a adoo de
um ambiente prximo do real e a realizao de testes que obtivessem resultados a serem analisados.
Nesse sentido, o objetivo deste projeto de mestrado a utilizao de Web Semntica na seleo
de informaes no registro UDDI, mas tambm vista ao suporte QoS. Para realizar esta tarefa, a
utilizao de ontologia ser adotada para auxiliar nas classificaes de informaes referentes ao
contexto de Web Services com QoS. Dessa forma, ao invs do cliente requisitar informaes ao
registro UDDI, ele deve inicialmente consultar o mdulo UDOnt-Q (desenvolvido neste trabalho)
que realiza a busca por servios baseando-se em determinados nveis ou parmetros de QoS. O
provedor de servios deve manter atualizado os nveis ou parmetros de QoS de seus servios.
Alm disso, este trabalho tambm contempla a parte dos acordos de tipo SLA envolvidos, para
determinar o nvel de QoS de cada cliente. Esses contratos garantem a prestao do servio,
especificando claramente o custo, benefcios e punies do no cumprimento do acordo (Fakhfakh
et al., 2008).
Alguns trabalhos relacionados, citados anteriormente, enfatizam apenas o desenvolvimento de
ontologias para agregar QoS e no apresentam resultados que justifiquem ou no a sua utilizao.
Alguns trabalhos propem uma implementao prtica, mas no relatam detalhes de desenvolvimento e informaes de desempenho. Neste trabalho foi implementado um mdulo para servir de
plataforma para algoritmos que empregam semntica para determinar quais servios do UDDI so
mais adequados s requisies de QoS dos clientes. Os algoritmos adotados utilizam informaes
presentes em uma ontologia, a qual representa o mundo real de uma arquitetura de Web Services
com QoS. Alm do desenvolvimento prtico da ontologia, do mdulo e de seus algoritmos, foi
tambm realizada uma avaliao de desempenho criteriosa cujos resultados so apresentados no
decorrer desta dissertao.
1.5. ESTRUTURA
1.5
Estrutura
C APTULO
2
Web Services
2.1
Consideraes Iniciais
2.2
A Arquitetura Orientada a Servios (SOA - Service-oriented Architecture) estabelece um modelo arquitetnico que busca utilizar servios como principais meios para aprimorar a eficincia, a
agilidade e a produtividade de uma empresa (Erl, 2009). SOA no uma arquitetura concreta, no
um framework ou uma ferramenta. SOA pode ser tomada como um conceito ou um paradigma
7
que, quando considerado, pode levar ao projeto de uma arquitetura concreta de software (Josuttis,
2008).
SOA prope um estilo de arquitetura para a construo de sistemas de informao atravs de
combinaes de servios (Komoda, 2006). A composio de servios um fator importante dentro
de uma arquitetura orientada a servios. Uma composio de servio consiste em um conjunto
ordenado de servios (Erl, 2009), que melhora a flexibilidade e o reuso de servios dentro da
arquitetura orientada a servios.
A Figura 2.1 ilustra as colaboraes entre servios de uma arquitetura SOA, onde as colaboraes entre as entidades seguem o paradigma procure, conecte e invoque ( find, bind and
invoke), no qual o servio consumidor realiza uma localizao dinmica, consultando o registro
de servios a fim de encontrar um que atenda os seus critrios. Assim, caso exista tal servio,
o registro fornece um contrato de interface e o endereo do servio desejado. Por fim, o servio
consumidor conecta a um servio provedor e consome o servio. A descrio do servio deve ser
publicada no registro pelo servio provedor, para que o servio possa ser descoberto e acessado
pelo servio consumidor (Endrei et al., 2004).
Figura 2.1: Colaboraes em uma arquitetura orientada a servios (Traduzido de (Endrei et al.,
2004)).
2.3
9
Registro
UDDI
WSDL
WSDL
Busca
Publicao
Requisio
Cliente
Provedor
SOAP
2.4
Padronizao um ponto importante dentro de uma arquitetura SOA, pois proporciona interoperabilidade, alm de facilitar a implementao e o reuso. Esses padres esto presentes na
arquitetura de Web Services, a qual composta por no mnimo um servidor que disponibiliza seus
servios na rede e por clientes que acessam esses servios. Contudo, os agentes que iro utilizar
os servios necessitam de informaes para localizar o servidor prestador do servio e determinar
os parmetros exigidos. Para isso, o servidor deve publicar esses dados no registro UDDI que,
10
por sua vez, pode conter informaes de vrios servios de um mesmo servidor ou de servidores
distintos. A WSDL utilizada para publicao do servio por parte do servidor e encontrada na
pesquisa por parte do agente consumidor. Uma vez que o agente consumidor possui as informaes
necessrias sobre o servidor e o servio, que so encontradas na WSDL, ele realiza a requisio
atravs do envio de uma mensagem encapsulada pelo protocolo SOAP.
Outro ponto a ser considerado que componentes e sistemas legados tambm podem exercer
o papel de consumidores de um Web Service, desde que sejam capazes de se comunicar utilizando
os padres dos Web Services (Erl, 2009). Utilizando-se os padres estabelecidos possvel a
comunicao entre aplicaes de diferentes implementaes, inclusive proprietrias. As aplicaes
podem ser escritas, por exemplo, em Java, .NET, PHP, entre outras.
A pilha da arquitetura de um Web Service composta por vrias camadas que vo desde o nvel
de transporte at a camada de processo, conforme mostra a Figura 2.3.
11
mensagens. Alm disso, essa camada tem como responsabilidade definir a maneira como os
Web Services so acessados (Tavares, 2009). Acrescenta-se ainda, que esta camada utiliza
arquivos WSDL para a descrio de servios, para o formato das mensagens, tipo de dados,
protocolos de transporte, etc.
3. Mensagens: A camada de mensagem permite que a troca de mensagens seja feita em um
ambiente descentralizado e distribudo de forma interopervel. (Toyohara, 2009). A mensagem pode ser serializada em um arquivo XML seguindo as especificaes do protocolo
SOAP.
a. Extenses SOAP: So as extenses do protocolo SOAP. O protocolo SOAP pode
ser modificado para suportar novas assinaturas e especificaes dentro do seu padro
XML, como por exemplo: WS-Reliability, WS-Addressing, WS-Attachments, etc.
b. SOAP: o protocolo SOAP, baseado em XML.
4. Comunicao ou Transporte: especifica os protocolos de rede utilizados na troca de mensagens entre clientes e provedores de servio. Dentre os principais protocolos, destacam-se
o HTTP, SMTP, FTP, entre outros (Tavares, 2009).
Apesar de muitas pesquisas e estudos realizados desde sua criao, esta soluo ainda est em
fase de maturao. A W3C mantm um domnio de pesquisa voltado Web Services denominado:
Web Services Activity"3 , em que uma parte dos trabalhos relacionados esto voltados proviso
de QoS e Segurana.
A pesquisa por melhores resultados em qualidade de servio deve ser contnua, uma vez que
a indstria de TI sempre busca melhor atender aos seus clientes, desenvolvendo produtos com
melhor qualidade e preo. Em uma rede como a Internet, a proviso de QoS em termos de desempenho, disponibilidade e segurana essencial, e ao mesmo tempo no uma tarefa trivial, em
funo da dinamicidade da Web.
2.5
Segundo Lee e Shin (2008) a qualidade de servio (QoS) um desafio crtico e importante
devido Internet ser uma rede dinmica e de natureza imprevisvel. Alm disso, a QoS pode ser
definida como uma combinao de vrias qualidades ou propriedades de um servio. Apesar das
propriedades de qualidade de servios no serem funcionais, elas so necessrias quando o servio
fornecido pelo provedor deve atender a certas qualificaes exigidas pelos clientes.
Prover qualidade de servio no uma tarefa trivial, alm disso, h a dvida se o provedor de
servios est atuando para garantir o nvel de qualidade de servio exigido. Para solucionar este
3
http://www.w3.org/2002/ws/
12
problema, a IBM desenvolveu um framework denominado WSLA (Web Service Level Agreements)
para especificao e monitoramento de acordos de nveis de servios (SLA - Service Level Agreement) para Web Services (IBM, 2009). Anlogo ao SLA, a WSLA um acordo entre um provedor
de servio e um cliente que define as obrigaes das partes envolvidas (Lee e Shin, 2008).
A WSLA complementa a definio do servio estabelecida na WSDL. Enquanto a WSDL
define a interface do Web Service, o WSLA define a forma de avaliar e mensurar as caractersticas
de desempenho acordadas (em contrato, por exemplo, SLA). Tanto o cliente como o provedor
de servio executam o gerenciamento de monitoramento em suas infra-estruturas. Cada parte
responsvel por mensurar as mtricas de diversas fontes, por exemplo, o cliente deve mensurar se
os valores dos parmetros de qualidade de servio foram alcanados (IBM, 2009). A Figura 2.4
exibe a estrutura de um Web Service utilizando WSLA.
2.6
Consideraes Finais
Neste captulo, foram apresentadas informaes sobre Web Services, seus conceitos, fundamentos e arquitetura. Os Web Services so implementaes da arquitetura orientada a servios
(SOA) que ganharam destaque nos ltimos anos. Devido rpida popularizao dos Web Services na indstria de TI e no meio acadmico, notou-se a necessidade de garantir a qualidade
dos Web Services. Alguns trabalhos relacionados foram citados, argumentando essa necessidade.
Um exemplo de soluo para garantia de QoS, o WSLA, foi comentado e finalmente alguns dos
13
Tabela 2.1: Atributos de QoS para Web Services (Lee e Shin, 2008)
Atributo de QoS
Descrio
Tempo de Resposta
Tempo que um servio leva para completar uma tarefa.
Latncia
Tempo necessrio para iniciar um servio requisitado.
Vazo
Taxa de processamento de um servio para atender a solicitao.
Escalabilidade
o aumento da vazo em um dado intervalo de tempo.
Disponibilidade
Consiste em o Web Service estar presente ou pronto para
utilizao.
Acessibilidade
Aspecto da qualidade de um Web Service que representa o
grau de capacidade de atender uma solicitao.
Capacidade
o nmero de requisies concorrentes que um servio permite.
Preciso
Taxa de erro de um servio durante um intervalo de tempo.
Robustez
Taxa de erro de um servio durante um intervalo de tempo.
Estabilidade
Taxa de mudana da interface do servio.
Custo
o custo envolvido na utilizao de um servio.
Segurana
Define se o servio oferece mecanismos de confidencialidade, integridade
e autenticao.
Confiabilidade
Determina se o servio oferece mecanismos confiveis para a
garantia de entrega de mensagens.
Integridade
Aspecto de qualidade de como um Web Service mantm a veracidade de
interaes de acordo com a fonte.
Desempenho
o aspecto de qualidade medido entre os termos de vazo e latncia.
Interoperabilidade Determina se o servio compatvel com os perfis de interoperabilidade.
parmetros (atributos ou propriedades) de QoS para Web Services foram listados. Alguns desses
atributos sero considerados neste projeto, pois esto presentes na literatura e so amplamente
utilizados pelas empresas de TI.
C APTULO
3
Ontologia e Web Semntica
3.1
Consideraes Iniciais
Este captulo aborda dois conceitos importantes para o desenvolvimento desta dissertao de
mestrado que so Ontologia e Web Semntica aplicados aos Web Services. A Web Semntica
est sendo explorada nos ltimos anos, juntamente com o emprego de ontologias, para definir um
vocabulrio mais rico e aperfeioar a eficincia de mecanismos semnticos.
Neste captulo so apresentados alguns conceitos sobre Ontologia (Seo 3.2) e Web Semntica
(Sees 3.3 e 3.4), aplicados no contexto de Web Services (Seo 3.5). Na Seo 3.6, feita uma
associao de todos os conceitos e, finalmente, na Seo 3.7 so apresentadas as consideraes
finais deste captulo.
3.2
Ontologia
Ontologia um conceito que teve origem nos estudos filosficos. O termo ontologia a composio de dois ramos: onto (ser) e logia (estudo); ou seja, a ontologia pode ser considerada o
estudo do ser em uma nfase existencial.
O termo ontologia, que ficou restrito Filosofia durante anos (Carase, 2005), comeou a ser
empregado na cincia da computao a partir do final dos anos 70 (Martimiano, 2006). Com
base no conceito do estudo do ser, as ontologias facilitam a descrio dos seres, estudando suas
caractersticas, capacidades, relacionamentos, etc. Nesse contexto, pode-se notar quo importante
as ontologias so para a criao de semnticas.
15
16
3.2. ONTOLOGIA
17
Perifricos
Disp. Sada
Disp Entrada
HARDWARE
Computadores
Pessoal
Informtica
Grande Porte
Chips
Circuitos
Transistores
Fios
Sensores
Etc
Possu
Faz parte
Domnios
3.3
Web Semntica
A Web uma das maiores fontes de informao existente atualmente, sendo, portanto, importante interpretar, selecionar (ou classificar) e analisar o seu contedo. Para que mquinas (computadores) consigam tamanha proeza necessrio que elas sejam capazes de no apenas ler as
informaes, mas compreender do que se trata.
A W3C (World Wide Web Consortium) tem incentivado as pesquisas em Web Semntica. Ela
prope uma viso pioneira, na qual a informao pode ser entregue de forma explcita, proporcionando que as mquinas consigam processar e integrar informaes de uma maneira mais fcil
sugerindo assim a utilizao da Web Semntica (W3C, 2004c).
Para representar as informaes na Web, a W3C desenvolveu um framework denominado RDF
(Resource Description Framework), que permite adicionar informaes sobre determinado recurso
na Web (uma pgina, por exemplo). Dessa forma, possvel adquirir no apenas o contedo, mas
tambm informaes capazes de atribuir uma semntica quele recurso (W3C, 2004c).
A estrutura de qualquer expresso em RDF uma coleo baseada em triplas compostas por
Sujeito, Predicado e Objeto. Um conjunto de triplas denominado grafo RDF (W3C, 2004c). A
Figura 3.2 exibe os trs componentes bsicos de um arquivo RDF, no qual a Pgina 1 o Sujeito,
a Pgina 2 o Objeto e uma propriedade em comum (creator - criador) o Predicado.
18
Objeto
Pgina 1
Propriedade em Comum
Pgina 2
<dc:creator>Luis Nakamura</dc:creator>
Figura 3.2: Grafo representando os componentes bsicos de um arquivo RDF.
O RDF baseado em XML, e permite a representao de relaes entre objetos, possuindo
melhores funcionalidades para representar semntica. Os documentos RDF so compostos por
declaraes sobre os recursos ou objetos representados, porm cada declarao composta pelo
objeto, por uma propriedade e o valor dessa propriedade, que pode ser at mesmo outro objeto.
Da mesma forma que o XML, o RDF tambm permite que agentes computacionais interpretem o
significado dos dados por meio das tags associadas a ele (Martimiano, 2006).
O RDF no prov nenhum mecanismo para descrever as propriedades, to pouco descrever
as relaes entre estas propriedades e outros recursos. O responsvel por obter essa respectiva
semntica o Esquema RDF (RDF Schema), que define classes e propriedades que podem ser
usadas para descrever as classes, propriedades e outros recursos (W3C, 2004b).
Alm disso, pesquisadores notaram algumas limitaes no RDF e RDFS (RDF Schema). Em
Heflin (2001), relatado que o RDF no possui um mecanismo para uma definio geral de axiomas (Heflin, 2001). Segundo Broeksta (2001), as primitivas definidas no RDF Schema no
provm uma semntica formal, e a expressividade dessas primitivas no suficiente para o desenvolvimento de modelos ontolgicos puros e de raciocnio (Broekstra et al., 2001). Dessa forma,
foi necessria a criao da linguagem OWL (Web Ontology Language), que estende o conceito do
RDF para criao de ontologias.
3.4
A OWL (Web Ontology Language) uma linguagem projetada para uso em aplicaes que precisam processar o contedo da informao e no apenas apresentar essas informaes para os seres
humanos. A OWL proporciona uma maior interpretabilidade do contedo da Web pelas mquinas
(computadores) do que com XML, RDF e RDF Schema, disponibilizando um vocabulrio adicional com uma semntica formal (W3C, 2004c).
19
Com a OWL possvel adicionar vocabulrios mais ricos para descrever as classes, os relacionamentos entre classes, comparao entre classes, restries de cardinalidade e as caractersticas das propriedades (Martimiano, 2006).
A linguagem OWL fornece trs subdivises, cada uma para uso especfico (W3C, 2004c):
OWL Lite: trata-se de uma definio simples de hierarquia de classes e com poucas restries de propriedades.
OWL DL (Description Logics): trata-se de uma definio de OWL que oferece funcionalidades expressivas. Permite a utilizao dos construtores da OWL, porm possui algumas
restries, mantendo a completude computacional (capacidade de ser processada) e a tomada
de deciso em um tempo finito. A OWL DL um meio termo entre a OWL Lite e a OWL
Full, e est baseada em lgicas de descrio (DL). Muitos adotam essa subdiviso como
padro para desenvolvimento.
OWL Full: a OWL mais completa, e apresenta todos os construtores disponveis sem
restrio e independente da sintaxe do RDF. Por ser muito abrangente, no h garantia que
um software seja capaz de interpretar a ontologia criada com a OWL Full.
Tim Berners-Lee apresentou em 2000 uma arquitetura em pilha (tambm denominada de camadas do bolo - layer cake), representada na Figura 3.3, para explicar os diferentes protocolos
e os desafios da Web Semntica (Berners-Lee, 2000). Segundo Antoniou e Harmelen (2008), a
camada de ontologia instanciada com duas alternativas: a OWL e uma linguagem baseada em
regras (Rules) (Antoniou e Harmelen, 2008). A Figura 3.4 mostra um modelo atualizado de pilha
da Web Semntica no qual as camadas abstratas propostas por Berners-Lee so representadas
por algumas das atuais linguagens utilizadas na rea.
20
um membro da owl:Thing. A owl:Nothing representa uma classe vazia, uma classe que no possui
membros. A classe owl:Thing a classe mais geral, enquanto a owl:Nothing a classe mais
especfica possvel; a Figura 3.5 demostra uma viso taxonmica dessas classes (Fisher et al.,
2009).
Figura 3.5: Viso Taxonmica das classes: owl:Thing e owl:Nothing (Fisher et al., 2009)
Dessa forma, todas as classes de uma ontologia em OWL so subclasses da classe owl:Thing.
As classes owl:Class e rdfs:subClassOf so utilizadas para a criao de hierarquia entre classes na
OWL. A OWL tambm fornece algumas formas de descrever propriedades (adicionando semntica). Existem diversas propriedades disponveis na linguagem OWL das quais pode-se destacar
(Antoniou e Harmelen, 2008):
Propriedades de Elementos:
Propriedade de Objeto (owl:ObjectProperty): Propriedade que relaciona objetos
outros objetos.
Propriedade de Tipo de Dados (owl:DatatypeProperty): Propriedade que relaciona
objetos a tipos de dados. A OWL utiliza os tipos de dados prescritos no XML Schema.
Propriedade Inversa (owl:inverseOf): Propriedade que determina que uma determinada propriedade inversa (contrria) a outra propriedade existente.
Propriedade Equivalente (owl:equivalentProperty): Propriedade que define que uma
determinada propriedade equivalente a outra propriedade existente.
Propriedades de Restries (owl:Restriction): Uma restrio deve ser relacionada a uma
propriedade existente, essa propriedade definida no atributo owl:onProperty:
Todos os Valores De (owl:allValuesFrom): Propriedade utilizada para especificar a
classe com os possveis valores de uma propriedade (especificada em owl:onProperty).
21
22
23
24
3.5
A partir da criao da OWL, vrias ontologias foram desenvolvidas. Um exemplo a OWLS (Martin et al., 2004) que prope uma semntica para Web Services. A OWL-S baseada em
classes e possui a classe servio sendo o ponto de referncia para a declarao de um Web
Service. Na Figura 3.11, possvel observar o topo do nvel de uma ontologia de servio, em
que so observadas a classe Servio, a classe ServioFundamento, a classe ServioPerfil e a
classe ServioModelo (Traduzido de (Martin et al., 2004)).
Figura 3.11: Topo do nvel de uma ontologia de servio. Traduzido de (Martin et al., 2004).
A classe Servio representa o servio Web em si e est relacionada s classes ServioPerfil,
ServioFundamento e ServioModelo por intermdio das propriedades apresenta, suporta
e descritopor, respectivamente. Essas trs classes esto envolvidas com as seguintes funes
(Martin et al., 2004):
ServioPerfil: Classe que possui propriedades com informaes sobre o servio, como
nome, descrio, categoria, classificao e parmetros.
ServioModelo: Classe que descreve como o cliente pode consumir o servio e conhecer
o passo a passo do processo at obter os resultados. Informa se um servio simples ou
composto.
25
ServioFundamento: Classe que especifica detalhes de como o servio pode ser acessado.
Geralmente especifica o protocolo de comunicao, o formato das mensagens, as portas de
comunicao, etc.
A OWL-S um exemplo de ontologia, reconhecido pela W3C, para servios web como um
todo. Contudo, outros exemplos de ontologias podem ser desenvolvidos com objetivos mais especficos.
3.6
As ontologias tm sido utilizadas em vrias reas na cincia da computao, geralmente naquelas que necessitam de elaborao de conhecimento, semntica e interoperabilidade, como por
exemplo, em sistemas inteligentes e de tomada de deciso. Cada rea cria e utiliza ontologias
da melhor forma que atenda s suas necessidades. Uma ontologia aborda um domnio de conhecimento, os quais geralmente variam de uma rea para outra.
Em Sistemas Distribudos a ontologia empregada em aplicaes que necessitam compartilhar
conhecimento e obter semntica. Segundo Zhou et. al. (2005), a semntica aplicada Web uma
soluo para os processos de descoberta de servios de forma automtica; para isso, necessrio
que os dados no sejam apenas lidos por mquinas, mas tambm compreendidos(Zhou et al.,
2005). Como os Web Services so implementaes da arquitetura SOA, podem ser largamente
utilizados por aplicaes como Grades Computacionais (Grids), Intercmbio Eletrnico, Servios
de Monitoramento, Computao nas Nuvens, etc.
Contudo, a expanso da utilizao dos Web Services proporciona preocupao com a qualidade
de servio. Prover QoS em Web Services no uma tarefa trivial (Lee e Shin, 2008). Clientes,
provedores, registros de servios (UDDIs) e outros elementos que compem uma arquitetura de
Web Service geralmente esto distribudos em regies geogrficas diferentes e esto sujeitos a
sofrer interferncias. Um exemplo pode ser quando um provedor de servio ficar indisponvel e
nenhuma informao passada ao UDDI. Nesse caso, esse provedor e sua lista de servios no
ficaro disponveis para o cliente, que ao tentar acess-los se deparar com um erro. Outro exemplo
quando o cliente necessita da garantia de que um servio disponha de uma caracterstica de QoS,
e identificar qual servio ou provedor fornece essa caracterstica se torna um desafio.
Uma soluo para o primeiro problema um sistema de monitoramento, cuja funo seria
monitorar os provedores de servios e, quando estivessem indisponveis, a lista de servios relacionada a tal provedor seria excluda. Outra soluo, ainda para o primeiro problema a soluo
proposta na WSARCH (Estrella, 2010), que monitora os provedores de servios e envia as requisies dos usurios apenas para os servidores que garantam o requisito de QoS desejado. Para o
segundo problema uma soluo mais elaborada deve ser empregada. No seria vantajoso consumir
o servio de tempos em tempos para avaliar a qualidade de servio. Uma soluo obrigar o
provedor de servio a se monitorar e garantir a QoS exigida pelos clientes. Para isso, h acordos
26
do tipo WSLA entre empresas e clientes. Sendo assim, pode ocorrer ento o cenrio no qual o
cliente deseja um servio com certos parmetros de QoS e os provedores garantem que os servios
tero tais caractersticas. A questo descobrir quais so os servios que atendem s caractersticas exigidas. Alm disso, preciso classificar uma enorme variedade de servios com diversos
tipos de parmetros e mtricas de QoS diferentes. Soma-se a isso a criao de uma semntica que
decida quais servios se enquadram nas necessidades do usurio.
Para tentar apresentar solues a tais problemas, vrias pesquisas tm sido desenvolvidas
visando a criao e utilizao de ontologias (Papaioannou et al., 2006), (Tran, 2008), (Maximilien
e Singh, 2004), (Fakhfakh et al., 2008) e (Aklouf e Rezig, 2009). Definir claramente as tarefas que
devem ser realizadas um passo importante para o desenvolvimento de ontologias, uma vez que
no existe um consenso sobre qual metodologia deve ser seguida. Normalmente desenvolvedores
acabam criando suas prprias ontologias (Martimiano, 2006).
Para exemplificar, considera-se um Web Service que tenha duas implementaes disponveis
que realizam a fatorao de um nmero. O provedor classificou essas duas implementaes de
servios em dois domnios diferentes, uma com um servio em um servidor dedicado e tolerante
a falhas, com replicao e segurana garantida (domnio com proviso de QoS), e o outro em um
servidor compartilhado vulnervel a vrios problemas (domnio sem proviso de QoS). Depois de
classificado, o provedor resolveu cobrar pelo servio no servidor dedicado. Quando o cliente requisitar a lista de servios disponveis no UDDI, sero retornados dois servios. Sem informaes
suficientes ou sem a utilizao de ontologias para criar uma semntica, o cliente no poderia saber
qual servio possui mais garantias de QoS e qual tem o menor custo.
Neste exemplo, surge uma soluo mais simples, que seria avisar o cliente de que o servio
localizado no IP ou DNS pr-definido possui um preo superior, pois tem garantias de qualidade
de servio. uma soluo, mas no interessante, pois na prtica servidores dedicados hospedam
mais de um servio e cada um pode ter custos diferentes que envolvam tecnologias e recursos
diferentes. Uma melhor soluo seria empregar ontologias para classificar os servios e prover
um contexto semntico para que os clientes possam acessar os servios de acordo com as suas
necessidades de uma forma mais dinmica e automtica.
3.7
Consideraes Finais
27
utilizada neste projeto e tambm para demonstrar a sua capacidade de utilizao e criao de
semntica. O captulo tambm apresentou uma argumentao sobre a utilizao de Web Semntica
com ontologia para um enfoque baseado na qualidade de servios em Web Services.
C APTULO
4
Ontologia do UDOnt-Q
4.1
Consideraes Iniciais
Este captulo descreve a ontologia que foi desenvolvida especialmente para o mdulo UDOnt-Q
(Universal Discovery with Ontology and QoS). O mdulo e os algoritmos de busca sero explicados no prximo captulo. A ontologia um elemento importante neste projeto de mestrado, pois
nela que ficam armazenadas as informaes de qualidade de servios que so acessadas pelos
algoritmos. Esses por sua vez, tm a funo de encontrar os melhores servios para os clientes. A
Figura 4.1 exibe um modelo abstrato da relao entre o cliente, mdulo, algoritmos e a ontologia.
Mdulo UDOnt-Q
Cliente
Algoritmos
Ontologia
Figura 4.1: Modelo abstrato da relao entre o cliente, mdulo, algoritmos e a ontologia.
Na seo 4.2 so apresentados os processos de desenvolvimento da ontologia, conceitos e
ferramentas utilizados. Na seo 4.3 so citados os elementos (classes, subclasses, propriedades)
29
30
que compem a ontologia. Nessa mesma seo explicada a organizao dos elementos a fim
de representar uma arquitetura para Web Services com qualidade de servio. A seo 4.4 reserva
espao para as consideraes finais a respeito deste captulo.
4.2
4.2.1
Methontology
A escolha pela Methontology foi influenciada pelo fato desta ser uma metodologia baseada no
padro IEEE 1074-1995 para desenvolvimento de software (Martimiano, 2006). Essa metodologia
consiste em um mtodo estruturado para construir ontologias a partir do zero. Ela leva em considerao o ciclo de vida das ontologias4 , propondo um prottipo evolutivo composto pelas seguintes
fases (Lopez et al., 1997) (Lopez et al., 1999):
1. Aquisio do Conhecimento (Knowledge Acquisition): Esta atividade independente no
processo de desenvolvimento da ontologia, porm coincide com outras atividades. A maior
parte da aquisio de conhecimento feita simultaneamente com a fase de especificao de
requisitos. Os especialistas (experts), livros, figuras, tabelas e at mesmo outras ontologias
so fontes de conhecimento que podem ser consultados. Podem-se utilizar algumas tcnicas durante este processo, como por exemplo: troca de ideias (brainstorming), entrevistas,
anlises formais e informais de textos, etc.
2. Especificao (Specification): O principal objetivo desta fase a criao de um documento
de especificaes estrito em linguagem natural utilizado para caracterizar a ontologia como:
Informal, Semi-Formal ou Formal. Alm da formalidade, o propsito e escopo (domnio) de
cada termo da ontologia devem ser includos.
3. Conceituao (Conceptualization): Nesta atividade, o domnio do conhecimento estruturado em um modelo conceitual que descreve o problema e a sua soluo em termos do
vocabulrio de domnio identificado na atividade de especificao da ontologia. Portanto,
facilitando o usurio final a identificar se a ontologia til ou no sem precisar inspecionar
o cdigo fonte. Adicionalmente, possvel verificar o escopo e a completude de vrias
ontologias, alm da capacidade de reuso e compartilhamento.
4
Segundo Lopez et al. (1997), o ciclo de vida das ontologias composto por: Especificao, Conceituao,
Formalizao, Integrao, Implementao e Manuteno.
31
32
4.2.2
http://protege.stanford.edu/
33
a ferramenta Protg. Essa mesma ferramenta, em uma verso mais atualizada, foi emprega no
desenvolvimento da ontologia do UDOnt-Q.
Os autores dessa metodologia afirmam que: no h nenhum modo correto ou metodologia
para o desenvolvimento de ontologias (Noy e McGuinness, 2001). Contudo, eles propem um
possvel processo de desenvolvimento baseado em sete etapas, como descritas a seguir (Noy e
McGuinness, 2001):
1. Determinar o domnio e escopo da ontologia (Determine the domain and scope of the
ontology): Nesta etapa os autores propem que os projetistas de ontologias respondam a
algumas perguntas bsicas com o objetivo de determinar o domnio e escopo da ontologia.
2. Considerar o reuso de ontologias existentes (Consider reusing existing ontologies): Os
autores argumentam que muitas ontologias j esto disponveis em formato eletrnico e
encorajam que sejam reutilizadas.
3. Enumerar os termos importantes na ontologia (Enumerate important terms in the ontology): Documentar uma lista de todos os termos que os projetistas de ontologias desejam
pode ser til para criar afirmaes sobre eles ou explic-los para um usurio. preciso
acrescentar informaes sobre os termos e quais so as suas propriedades.
4. Definir as classes e a hierarquia de classe (Define the classes and the class hierarchy):
Os conceitos da ontologia podem ser classificados ou agrupados em classes e subclasses que
podem definir uma taxonomia proporcionando uma hierarquia de classe. Os autores citam
trs propostas para o desenvolvimento da hierarquia de classe (Uschold e Gruninger, 1996):
a. Top-Down: O desenvolvimento inicia pela definio dos conceitos mais gerais no
domnio da ontologia e seguem at os conceitos mais especficos.
b. Bottom-Up: o contrrio do Top-Down: o desenvolvimento inicia pela definio
dos conceitos mais especficos no domnio da ontologia e seguem at os conceitos mais
gerais.
c. Combination: O desenvolvimento segue uma combinao das duas propostas anteriores: Top-Down e Bottom-Up.
5. Definir as propriedades (slots) das classes - (Define the properties of classes-slots): As
propriedades das classes (slots) devem ser definidas com o objetivo de prover informao
suficiente para responder a questes sobre o domnio da ontologia.
6. Definir as facetas para as propriedades (slots) (Define the facets of the slots): As propriedades (slots) podem ter facetas diferentes para descrever caractersticas como: tipo de
valor (Value Type) ou tipo de dado, por exemplo: String, Number, Boolean, etc., cardinalidade (Cardinality) e domnio e variao (Domain and Range) que relaciona a propriedade
com classes e tipos de instncias respectivamente.
34
possvel notar algumas semelhanas entre as duas metodologias que foram estudas para o
desenvolvimento da ontologia deste trabalho. A etapa 1 da metodologia de Noy e McGuinness
sintetiza as fases 1 e 2 da Methontology. A etapa 2 correspondente fase 4 da Methontology.
As etapas restantes podem se comparadas s fases 3 e 5 da Methontology. Apesar da Metodologia
de Noy e McGuinness no ter fases especficas para as etapas 6 e 7 da Methontodoly, no decorrer
do documento atividades semelhantes so comentadas. Por outro lado, o documento rico em
sugestes e exemplos prticos, guiando o desenvolvedor na criao de sua primeira ontologia.
4.2.3
Para o desenvolvimento da ontologia foram utilizadas trs ferramentas: o Protg, o racionalizador Pellet6 e uma aplicao denominada UDOnt-Q WorkLoad. Esta ltima foi desenvolvida
em Java com recursos da Web Semntica para agilizar o processo de criao de indivduos na
ontologia.
4.2.3.1 Protg
Para a criao da ontologia com a linguagem OWL foi utilizada a ferramenta Protg criada
pelo Centro de Pesquisas para Informtica Biomdica da Universidade de Stanford (Gennari et al.,
2002). A ontologia desenvolvida foi salva em um arquivo, cujo nome UDOnt-Q_Ontology.owl
e disponibilizada por meio de uma URI: http://localhost:8080/ontologies/UDOnt-Q_Ontology.owl
no servidor Web Apache.
Inicialmente uma ontologia em OWL criada no Protg possui uma classe padro (default)
denominada Thing (owl:Thing), que constitui a classe raiz dentro de uma hierarquia de classes
na ontologia; todas outras classes criadas ficam abaixo da classe Thing. A Figura 4.2 mostra a
hierarquia de classes da ontologia do UDOnt-Q mapeada pelo plugin OWLViz7 .
O primeiro passo da implementao da ontologia foi a criao das classes. Adotou-se a proposta Top-Down, para o desenvolvimento da hierarquia de classes. Alm disso, foram criadas propriedades (slots) para o relacionamento entre as classes (Object Properties) e propriedades entre
classes e dados (Data Properties). O Protg disponibiliza abas para a criao de tais propriedades,
nas quais podem ser especificados os domnios e variaes (domain and ranges).
6
http://clarkparsia.com/pellet
OWLViz um OWL plugin para Protg, ele permite a visualizao e a navegao incremental da hieraquia
de classes em OWL, permitindo a comparao da hierarquia de classe afirmada (asserted) e da hierarquia de classe
inferida (inferred) (http://www.co-ode.org/downloads/owlviz/).
7
35
36
por exemplo, indicando que ele representa uma instncia de uma determinada classe. As classes,
propriedades e indivduos criados na ontologia so explicados em mais detalhes na seo 4.3.
Alm de facilitar e agilizar a criao de ontologias, o Protg tambm conta com outro ponto
interessante que a existncia de mquinas de inferncias (racionalizador - reasoners). Elas oferecem diversos servios, que permitem realizar diversas consultas e validaes na ontologia. A
mquina de inferncia utilizada neste trabalho foi a Pellet e mais detalhes sobre ela so apresentados na prxima subseo.
4.2.3.2 Pellet
Pellet escrita em Java e possui seu cdigo aberto sob uma licena de utilizao liberal 8 . Ele
avalia ontologias desenvolvidas com a linguagem OWL DL (OWL Description Logics), verificando
se essas ontologias esto de acordo com os servios de inferncia definidos pela lgica de descrio
(DL), denominados (Sirin et al., 2007):
Consistncia: Assegura que uma ontologia no contm qualquer fato contraditrio.
Conceito de satisfao: Verifica se possvel uma classe possuir instncias. Se a classe
no satisfaz, ento a definio de uma instncia da classe causar a inconsistncia de toda a
ontologia.
Classificao: Processa as relaes entre as classes e subclasses para determinar a hierarquia.
Realizao: Considera as classes mais especficas que um indivduo pertence, encontrando
assim as instncias (tipos diretos - direct types) de um indivduo.
Dessa forma, a mquina de inferncia Pellet oferece recursos teis para avaliar ontologias criadas na linguagem OWL-DL. Por este motivo ela foi adicionada ao Protg e utilizada no processo
de desenvolvimento da ontologia e na criao do mdulo UDOnt-Q.
4.2.3.3 UDOnt-Q WorkLoad
Para representar um ambiente real pode ser necessria a criao de diversos indivduos de diferentes tipos (classes). A criao manual de uma grande quantidade de indivduos por meio da ferramenta Protg uma tarefa trabalhosa, principalmente se eles possurem diversas propriedades
de objetos e dados.
A ferramenta UDOnt-Q WorkLoad foi desenvolvida com o objetivo de acelerar o processo de
criao de indivduos. Ela foi desenvolvida com na linguagem Java e faz uso de um componente
8
37
denominado (CIS - Common Information Shared) pertencente ao mdulo que ser apresentado
no captulo 5.
O funcionamento dessa ferramenta apresentado no final da prxima seo, pois para o melhor
entendimento interessante ter conhecimento dos elementos e propriedades da ontologia.
4.3
A ontologia destinada ao mdulo UDOnt-Q foi criada com o intuito de representar os principais
elementos participantes do domnio de uma arquitetura de Web Services com QoS. Alguns desses
elementos merecem destaque (Nakamura et al., 2011a):
Clients: Os clientes so os elementos que requisitam servios com qualidade, para isso eles
assinam acordos com os provedores de servios.
Providers: Os provedores de servios devem prover os servios web com a qualidade adequada, caso contrrio podem estar sujeitos a penalidades e/ou multas.
Services: Representam os Web Services que so providos pelos provedores, eles tambm
so consumidos pelos clientes. Os Web Services devem ser analisados e suas caractersticas funcionais e principalmente as no funcionais (valores e atributos de QoS) devem ser
especificados.
Agreements: So os acordos estabelecidos entre os clientes e os provedores. O acordo de
um cliente indica qual a QoS desejada por ele.
QoS: a qualidade de servio pertencente a um determinado servio ou aquela contratada
em um determinado acordo, ela contm nveis e atributos de qualidade.
Cada um dos elementos representado por uma classe na ontologia do UDOnt-Q que pode
ter subclasses, constituindo assim uma hierarquia de classes. Alm disso, elas podem estar relacionadas entre si ou relacionadas com dados por meio de propriedades (Object/Data Properties).
Essas propriedades podem ter atributos ou caractersticas que expressam informaes sobre o relacionamento e, dessa forma, a mquina poder ser capaz de entender o significado semntico do
relacionamento criado por uma propriedade. A linguagem OWL utilizada no desenvolvimento da
ontologia possui propriedades que permitem expressar tais informaes.
As propriedades que relacionam classes (Object Properties) na ontologia so:
hasQoS: uma propriedade funcional que relaciona a classe Agreement com a classe QoS.
Ela implica que um Acordo deve estar relacionado com apenas uma QoS (tem QoS). A
propriedade inversa a esta a isQoSOf.
38
Alm das propriedades de objetos, tambm foram criadas diversas propriedades que relacionam
dados (Data Properties). O objetivo principal dessas propriedades armazenar informaes sobre
as instncias de classes (indivduos) na ontologia. Portanto, a maior parte do conhecimento da
ontologia est localizada em propriedades de dados instanciadas nos indivduos. Alguns exemplos
de propriedades de dados so:
hasServiceName: propriedade com o tipo de dado String que utilizada para armazenar
o nome de um individuo da classe Service.
hasClientAddress: propriedade com o tipo de dado String que utilizada para armazenar
o endereo (IP) de um indivduo da classe Client.
hasServiceAddress: propriedade com o tipo de dado String que utilizada para armazenar
o endereo (IP) de um indivduo da classe Service.
hasResponse_TimeContentValue: propriedade com o tipo de dado Double que utilizada para armazenar o valor (nvel) de tempo de resposta (em milissegundos) de um indivduo da classe QoS. Dessa forma, pode-se informar ou recuperar, o nvel do atributo tempo
de resposta de uma determinada qualidade de servio. Essa qualidade pode ser tanto de um
acordo estabelecido entre os clientes e os provedores, como a qualidade de um servio que
foi previamente analisado pelo provedor.
Para cada atributo de QoS h uma propriedade de dado correspondente na ontologia e diversas
outras que agregam informaes sobre os seus elementos (Clientes, Servios, Provedores, etc.).
Das cinco classes, quatro delas possuem trs subclasses, conforme exibe a Figura 4.2 na seo
anterior. As classes Client, Service e QoS possuem trs subclasses que correspondem aos clientes,
servios e qualidades de servio do tipo ouro (Gold), prata (Silver) e bronze (Bronze) respectivamente. O que determina se um servio pertence a uma determinada subclasse a sua QoS (relacionado pela propriedade hasServiceQoS), ou seja, se um servio est relacionado a uma QoSGold
39
ento ele inferido como sendo um ServiceGold. Da mesma forma, o cliente est relacionado a
um acordo (Agreement) que pode pertencer a uma das trs subclasses (HeavyAgreement, MediumAgreement e LightAgreement). Cada acordo est relacionado a uma QoS que determina a sua
subclasse, ou seja, se um acordo est relacionado com a QoSGold ento ele inferido como um
HeavyAgreement, pois a QoSGold exige que o acordo seja rigoroso. Para determinar se uma QoS
Gold, Silver ou Bronze a mquina de inferncia deve verificar os valores (nveis) dos atributos de
cada QoS e por meio de comparaes com as restries de Equivalncias de Classes, assim ela
determina qual a subclasse desta QoS. A ideia de utilizar restries para equivalncias de classes
foi motivada por exemplos em um tutorial que faz uso da ontologia Pizza 9 . A Figura 4.4 exibe um
exemplo das restries de equivalncia da subclasse QoSGold. As restries (ou condies) para
que qualquer outro elemento da ontologia seja um elemento equivalente a classe QoSGold so as
seguintes (Nakamura et al., 2011a):
Ter a classe QoS como classe pai (superclass) ou ser subclasse de QoS.
Ter o valor da propriedade hasResponse_timeContentValue menor ou igual a 500.00 ( significa que o tempo de resposta deve ser menor ou igual a 500 milissegundos).
Possuir o valor da propriedade hasCostContentValue maior ou igual a 1.00 (significa ter o
custo maior ou igual a 1 unidade monetria).
Possuir o valor da propriedade hasAvailabilityContentValue maior ou igual a 98.00 (significa ter uma disponibilidade do servio maior ou igual a 98% do tempo).
40
valores, sendo o limite superior o valor mnimo do atributo da QoSGold e o limite inferior o valor
mximo do atributo da QoSBronze. Por exemplo, para equivalncia com a subclasse QoSBronze
as restries exigiam que a propriedade hasResponse_timeContentValue tivesse valor maior que
1000 (1 segundo), a propriedade hasAvailabilityContentValue valor menor que 95 (disponibilidade menor que 95%) e a propriedade hasCostContentValue tivesse um valor menor que 0.50
(custo menor que 0.50 de uma unidade monetria). Para a equivalncia com a subclasse QoSSilver
as restries exigem que as propriedades tenham valores limitados. Os valores do limite superior
devem estar abaixo dos valores das propriedades da subclasse QoSGold e os valores do limite
inferior devem estar acima dos valores das propriedades da subclasse QoSBronze.
Uma vez consistente a ontologia pode ser utilizada como base de conhecimento para buscas
semnticas e a classificao por meio da inferncia permite que novos indivduos possam ser criados para representar o mundo real sem a necessidade de serem previamente rotulados com relao
a sua qualidade, pois um servio pode ser criado na ontologia como sendo um individuo da classe
Service (superclass) que possui uma qualidade de servio genrica (individuo da classe QoS (superclass)). Dessa forma, no momento que a mquina de inferncia inferir sobre a ontologia, ela
ir analisar as restries e classificar esse indivduo como equivalente a uma das trs subclasses
(realizando assim o processo de classificao).
Para encontrar o servio adequado, o algoritmo deve primeiramente buscar o indivduo que
representa o cliente dentro da ontologia. Para isso, ele compara o atributo de endereo do cliente
na ontologia (hasClientAddress) com o IP recuperado pelo mdulo. Aps encontrar o cliente
na ontologia, deve-se buscar o seu acordo e a partir dele possvel identificar a QoS acordada.
Quando inferida, esta QoS ser equivalente a uma das trs subclasses (QoSGold ou QoSSilver ou
QoSBronze), o algoritmo deve busca os servios que possuam QoS na mesma subclasse da QoS
do acordo do cliente.
Dessa forma, a seleo de servios com qualidade realizada sem a preocupao de uma
anlise humana, basta que as QoSs dos servios sejam cadastradas corretamente e que os limites e
intervalos que classificam os acordos sejam coerentes nas restries de equivalncia de classe de
cada subclasse de QoS.
Diversos indivduos podem ser criados na ontologia para representar os provedores, servios,
clientes, acordos, QoS do mundo real. Apesar da criao de indivduos no Protg ser simples, em
grande quantidade esta atividade torna-se muito trabalhosa, entediante e consequentemente poder
ocasionar erros. Por esse motivo, foi desenvolvida a ferramenta (UDOnt-Q WorkLoad) citada
anteriormente na subseo 4.2.3.3.
Nessa ferramenta, os indivduos, propriedades e suas respectivas informaes so criados de
forma incremental e alguns valores de propriedades de dados so atribudos de forma aleatria.
Contudo, os valores aleatrios devem estar dentro de um intervalo definido pelo o desenvolvedor.
Por exemplo, foram criados indivduos de servios: USPService1, USPService2, USPService3,
... , USPService1200; para cada individuo de servio foram criados indivduos de QoS: USPService1QoS, USPService2QoS, USPService3QoS, ... , USPService1200QoS, que foram relaciona-
41
dos pela propriedade hasServiceQoS. Cada indivduo de QoS possui um valor (nvel) do atributo
Tempo de Resposta que informado em uma propriedade de dado (hasResponse_TimeContentValue).
Este valor, gerado aleatoriamente, deve estar dentro de um intervalo definido pelo desenvolvedor.
Assim, pode-se inferir e definir quais sero as classes dos servios e das qualidades de servio. Da
mesma forma so criados os outros elementos e propriedades da ontologia.
No Anexo 3 desta monografia possvel observar como foi feita a criao de alguns elementos
da ontologia.
4.4
Consideraes Finais
C APTULO
5
UDOnt-Q - Universal Discovery with
Ontology and QoS
5.1
Consideraes Iniciais
Este captulo aborda o desenvolvimento de um mdulo denominado UDOnt-Q (Universal Discovery with Ontology and QoS) com a funo de pesquisar servios no registro de servios (UDDI)
baseando-se em parmetros de QoS. Para realizar tal pesquisa, o mdulo faz uso de recursos da
Web Semntica e da ontologia apresentada no captulo anterior. Na seo 5.2 so apresentados
brevemente a metodologia e as ferramentas utilizadas para o desenvolvimento do UDOnt-Q. Na
seo 5.3 so apresentados os componentes e a estrutura do mdulo. Na seo 5.4 so apresentadas
as consideraes finais deste captulo.
5.2
Metodologia e Ferramentas
Em uma arquitetura para Web Services com QoS h diversas informaes sobre os provedores,
servios, acordos e clientes que geralmente no esto disponveis, e quando esto nem sempre esto
organizadas de uma forma explcita com uma semntica que permita que agentes computacionais
faam inferncias e tomem decises como, por exemplo, qual(is) o(s) melhor(es) servio(s) que
atende(m) a um acordo de um determinado cliente? Uma opo para organizar tais informaes
da ltima forma descrita por meio da criao de ontologias. Portanto, as ontologias podem representar uma base de conhecimento. Contudo, seria muito trabalhoso para o ser humano acessar e
43
44
5.2.1
5.2.2
Ferramentas
Diversas ferramentas foram empregadas para o desenvolvimento do mdulo. Alm do ambiente integrado de desenvolvimento (IDE - Integrated Development Environment), que no caso deste
45
projeto foi utilizado o Eclipse10 , outras bibliotecas foram utilizadas como, por exemplo, drivers de
conexo para acesso ao banco de dados MySQL11 .
As principais ferramentas utilizadas pelo o mdulo que merecem destaque so:
Pellet: Mquina de Inferncia (racionalizador - reasoner) Pellet foi comentada anteriormente na seo 4.2.3. Acrescenta-se ainda que Pellet na verso 2.2.2 possui um pacote
especfico para consultas em arquivos OWL-DL (pellet-query-src.jar). Nesse pacote, dentro
do namespace (com.clarkparsia.pellet.sparqldl) h classes que permitem realizar, programaticamente, consultas na ontologia com a linguagem SPARQL-DL (SPARQL Query for
OWL-DL) (Sirin e Parsia, 2007). Essa linguagem uma variao da linguagem de consulta SPARQL (SPARQL Protocol and RDF Query Language) (Prudhommeaux e Seaborne,
2008). Ambas possuem algumas semelhanas com a linguagem de consulta SQL (Structured
Query Language). SPARQL uma recomendao proposta pela W3C que se baseia no conceito dos padres de triplas do grafo RDF e sua semntica est centrada na correspondncia
nas triplas do grafo RDF (Sirin e Parsia, 2007). Contudo, h questes de compatibilidade
entre as consultas com SPARQL e bancos de dados OWL-DL. Por esse motivo, a SPARQLDL foi proposta com uma sintaxe abstrata especfica para ela, que define uma semntica
baseada no modelo terico da OWL-DL. Alm disso, um mapeamento realizado dessa sintaxe abstrata para a forma de grafo RDF (Sirin e Parsia, 2007) (Malik et al., 2010). O fato de
a ontologia criada ser na linguagem OWL e a prvia incluso dos pacotes do Pellet no mdulo justificam a utilizao da linguagem de consulta SPARQL-DL em um dos algoritmos
de busca do UDOnt-Q.
Jena: Framework ou API de desenvolvimento de aplicaes com Web Semntica, discutido
na subseo 5.2.2.
log4j: O log4j uma ferramenta que ajuda o programador no registro de informaes de
sada (logs) (Log4j, 2101). Desenvolvida pela Apache Software Foundation, o log4j um
pacote de classes em Java que, quando utilizado por um programa, permite que as sadas de
informaes sejam impressas tanto no console como em arquivos. O programador tem a
opo de escolher o nvel (level) de cada log (por exemplo: ALL, DEBUG, TRACE, INFO,
WARM, ERROR, OFF) a fim de rotular o tipo de mensagem de sada. No mdulo foram
utilizados os nveis DEBUG e ERROR durante os testes iniciais, para verificar valores de
parmetros e eventuais erros respectivamente. Posteriormente, os nveis ALL e OFF foram
utilizados durante os experimentos para ora registrar qualquer tipo sada (debug, error, etc.)
e ora no registrar as sadas respectivamente.
10
http://www.eclipse.org/
Por exemplo, o driver mysql-connector-java permite que aplicaes em Java acessem o banco de dados MySQL.
Ele est disponvel em http://www.mysql.com/products/connector/
11
46
5.2.2.1 Jena
O framework Jena largamente utilizado para desenvolvimento de aplicaes com Web semntica em Java, provendo suporte para os padres RDF e RDFS, assim como para as linguagens OWL
e SPARQL (Martimiano, 2006). O Jena teve incio no laboratrio de pesquisa sobre Web Semntica da HP (Hewlett-Packard)13 , est escrito em Java e teve seu cdigo aberto comunidade open
source14 .
As recomendaes de Web semntica para RDF, RDFS e OWL tm como ncleo o grafo RDF
(Tripla: Sujeito, Predicado, Objeto). Da mesma forma, o Jena 15 igualmente centrado no grafo
RDF. O RDFS e o OWL so vistos como transformaes grafo a grafo, produzindo grafos de tripla
virtual (Carroll et al., 2004).
O Jena fornece uma API (Application Programming Interface) para criao e manipulao
desses grafos. Essa API possui classes de objetos para representar grafos, recursos, propriedades
e literais. As interfaces representando recursos, propriedades e literais so denominadas Resource,
Property e Literal, respectivamente. No Jena, um grafo chamado de modelo, e formado por um
conjunto de triplas (Statements), sendo representado pela interface Model.
A arquitetura do Jena, conforme mostrada na Figura 5.1, dividida em trs camadas (Carroll
et al., 2004):
12
47
Graph Layer - Camada baseada na sintaxe abstrata do RDF, fazendo uso de triplas como a
estrutura de dados universal (Triples as the Universal Data Structure). Esta camada simplifica a implementao:
- Do armazenamento de triplas, tanto em memria como em um armazenamento persistente16 .
- De vises como triplas em somente leitura (read-only) dos dados que no so triplas,
por exemplo, dados lidos a partir de uma hierarquia de um sistema de arquivos, ou de uma
pgina da Web.
- De triplas virtuais correspondentes aos resultados dos processos de inferncia sobre
algum outro conjunto de triplas como premissas.
Model Layer - Camada que mantm a Model API como a principal abstrao do grafo
RDF; essa API utilizada pelo programador da aplicao, fornecendo um conjunto mais
rico de mtodos para as operaes com os grafos (Model interface) e com os ns (Resource
interface). Alm disso, a API DAML forma uma API de Ontologia (Ontology API).
EnhGraph Layer - Camada que fornece um ponto de extenso para prover vises de grafos
e ns para criao de APIs. Permite mltiplas vises de grafos e ns que podem ser utilizados
simultaneamente.
O Jena oferece suporte aos SGBDs (Sistema Gerenciador de Base de Dados): MySql, Oracle e PostgreSQL.
48
e OWL, sendo que cada linguagem tem um perfil (profile), o qual lista as construes permitidas e
as URIs das classes e propriedades. O perfil est vinculado a um modelo de ontologia, que uma
verso do modelo de classe do Jena estendido. O modelo geral permite acesso s declaraes nas
colees de dados do RDF. A interface OntModel estende esse modelo geral e adiciona suporte para
os tipos de objetos esperados em uma ontologia como, por exemplo, classes (em uma hierarquia
de classes), propriedades (em uma hierarquia de propriedades) e indivduos (instncias de uma ou
mais classes) (Carroll et al., 2004).
Portanto, o Jena permite aos desenvolvedores manipular e criar os dados semnticos programaticamente, baseados no grafo RDF e com extenso para a linguagem OWL-DL, a qual foi
utilizada no desenvolvimento da ontologia do UDOnt-Q. Essas caractersticas influenciaram na escolha por usar esse framework neste trabalho, na criao de algoritmos para realizar a manipulao
da ontologia criada no Protg. Duas verses foram utilizadas para a criao de dois algoritmos:
A verso 2.3, pois, disponibiliza a linguagem de consulta RDQL (RDF Data Query Language) criada para extrair informaes de grafos RDF. Essa consulta trata o grafo RDF como
dado, puramente, no fazendo distino entre triplas bsicas e inferidas (Seaborne, 2004a).
Dessa forma, a linguagem de consulta RDQL foi utilizada para a criao de um algoritmo
de busca do mdulo. Contudo, segundo o prprio Seaborne (2004), os novos programadores
devem utilizar a linguagem de consulta SPARQL por ser mais recente e sofisticada que a
RDQL (Seaborne, 2004b). Assim, a linguagem SPARQL-DL foi utilizada neste trabalho.
A verso 2.6.3 foi utilizada como padro no desenvolvimento do algoritmo de busca que
utiliza as classes disponveis na API do Jena. Mais detalhes sobre os algoritmos de busca
por Web Services com QoS so apresentados na prxima seo deste captulo.
5.3
Componentes e Estrutura
O Mdulo UDOnt-Q foi criado com o intuito de servir de base para os algoritmos de busca
e seleo semntica de Web Services com QoS. As informaes sobre os acordos entre clientes e
provedores, bem como a qualidade de servio e seus atributos esto em uma base de conhecimento
que est representada pela ontologia discutida anteriormente no Captulo 4.
Este mdulo foi projetado para ser reutilizvel e configurvel aceitando novos algoritmos (no
apenas semnticos) exigindo o mnimo de alteraes em cdigo-fonte. Ele foi desenvolvido com
a linguagem de programao Java para que possa ser portvel para diversas plataformas.
O UDOnt-Q est divido em componentes (pacotes - java packages), sendo que cada componente executa uma determinada funo dentro do mdulo e alguns pacotes possuem dependncias
entre si. Ao final do desenvolvimento de um componente, o mesmo foi submetido a testes unitrios
visando a minimizar a ocorrncia de erros. O mdulo composto por cinco componentes: Util,
Command Components (CC), UDDI Components (UC), Ontology Components (OC) e Common Information Shared (CIS).
5.3.1
49
Componente Util
O componente Util (Figura 5.2) composto por classes teis que so utilizadas por outras classes do mdulo para realizar tarefas teis e necessrias. Por exemplo, foram desenvolvidos
mecanismos de logs para registrar erros e informaes em arquivos no disco (para isso, este componente utilizou a ferramenta Log4J). Tambm foi criado outro mecanismo com a funo de registrar
resultados de desempenho em um banco de dados (mySQL).
Toda a parte de configurao do mdulo feita neste componente, por meio da Classe Config,
que herda o conceito de propriedades da classe java.util.Properties. Dessa forma, um arquivo de
configurao pode ser utilizado pelo mdulo para armazenar e recuperar informaes tais como:
endereo de conexo com o banco de dados, localizao do arquivo da ontologia, endereo, usurio
e senha para acesso no registro UDDI e qual algoritmo de busca o mdulo deve utilizar. Alm
disso, esto presentes diversos mtodos teis como, por exemplo, mtodos para o tratamento de
strings.
Util
Util
Config
db
UdontQDb
Constants
log
Util
UdontQLog
br.usp.udontq.util
5.3.2
O componente Command Components (CC) (Figura 5.3) contm classes criadas para comandar, analisar e direcionar as requisies dos clientes, para que sejam atendidas por outras classes
de outros componentes do mdulo. As configuraes carregadas na inicializao do mdulo so
utilizadas pelas classes deste componente a fim de instncia os componentes e classes adequados.
Este componente possui um pacote (package) que constitui um sub-componente denominado
QoS Components (QC) (Figura 5.4). A funo do QoS Components auxiliar o Command
Components na anlise da qualidade dos servios dos provedores. Em caso de um empate en-
50
Orchestrator
Factory
Orchestrator
OntOrchestrator
Analiser
AnaliserFactory
AnaliserResult
OntAnaliser
br.usp.udontq.cc
QoSInformerFactory
QoSInformer
QoSInformerGanglia
QoSInformerGangliaResult
br.usp.udontq.qc
M EN F REE 100
)2
M EN T OT AL
(5.1)
51
Onde:
PC o percentual de carga.
PCPUIDLE o percentual de CPU ociosa.
MENFREE a quantidade de memria RAM livre.
MENTOTAL a quantidade total de memria no provedor.
Dessa forma observa-se que, de acordo com a Equao 1, a porcentagem de CPU ocupada (100
- CPU Ociosa) tem peso 3 e a de memria ocupada (100 - regra de trs para obter a porcentagem
de memria livre) tem peso 2. O provedor que tiver o menor PC ser escolhido, em caso de um
novo empate o primeiro provedor da lista ser considerado.
5.3.3
O componente UDDI Components (UC) (Figura 5.5) rene as classes com a funo de prover
o acesso a informaes no registro UDDI. Tambm permite que novos Web Services e provedores
sejam cadastrados no registro.
A classe principal desenvolvida foi a UddiRequest. Ela recebe as requisies feitas ao registro
UDDI e por meio da classe abstrata UddiAbstration so instanciadas classes de manuteno do
registro UDDI de acordo com a sua implementao especificada no arquivo de configurao. Para
este projeto foi desenvolvida apenas a classe JuddiImpl que possui mtodos de interatividade com
a implementao do registro UDDI da Apache Software Foundation, denominado jUDDI (java
UDDI). Algumas classes do pacote jUDDI foram utilizadas para facilitar a interao com esse
registro. Outras classes para interagir com outras implementaes de outros registros UDDI podem
ser facilmente adicionadas a este sistema, exigindo-se o mnimo de alterao no cdigo-fonte.
5.3.4
O componente Ontology Components (OC) (Figura 5.6) contm as classes de algoritmos para
a busca semntica por Web Services com QoS. A busca pode ser executada por meio de trs algoritmos:
OntAlgorithmObject: Este algoritmo realiza a busca utilizando as classes fornecidas pelo
Jena. Ele cria instncias de objetos com as informaes da ontologia. Dessa forma, a
pesquisa feita por meio de interaes (loops) na lista de objetos at que se encontrem
os clientes, servios, provedores e QoS adequados. O algoritmo recebe dois parmetros de
entrada que so o endereo IP do cliente e o nome do Web Service que ele desejada. Com
52
UddiRequest
UddiMaintance
UddiAbstraction
JuddiImpl
br.usp.udontq.cc
53
OntMaintenance
OntService
OntProvider
OntAlgorithmObject
OntAlgorithm
OntAlgorithmRDQL
OntClient
OntQoS
OntAlgorithmSPARQL
OntResult
OntBulkServices
br.usp.udontq.oc
5.3.5
O componente Common Information Shared (CIS) (Figura 5.7) prov uma classe com mtodos para a manuteno das informaes na ontologia e, consequentemente, no registro UDDI. Por
exemplo, caso um provedor disponibilize um novo servio ele deve cadastr-lo na ontologia e tambm no registro UDDI. Por meio dos mtodos dessa classe possvel realizar as duas tarefas de
forma conjunta.
CommonInformationShared (CIS)
CommonInformationShared
br.usp.udontq.cis
5.3.6
Os componentes do UDOnt-Q formam um conjunto de funcionalidades que precisam ser utilizados (importadas) por uma classe principal que seja executvel. Esse software executvel deve
estar disponvel para os clientes que buscam os Web Services com QoS. Das diversas possibilidades
54
de acesso que poderiam ser utilizadas pelos clientes para acessar o mdulo (Socket, RMI (Remote
Method Invocation), etc.), optou-se por transformar o mdulo em um Web Service para garantir a
interoperabilidade de acesso pelos mais diversos clientes.
O Web Service criado possui uma operao (mtodo) denominada GetWSDL na qual o cliente
passa como parmetro apenas o nome do servio que deseja. Contudo, esse mtodo foi sobrecarregado (overloading) para a incluso de um parmetro com o endereo de Internet (IP). No
primeiro mtodo no preciso passar o IP do cliente como parmetro, pois, esse endereo recuperado do contexto da mensagem de conexo HTTP. Porm, a sobrecarga do mtodo foi necessria
porque durante os testes realizados uma mquina cliente, por meio de threads, simula ser vrios
clientes que executam requisies concorrentes ao mdulo.
A Figura 5.8 exibe resumidamente a estrutura completa do mdulo como um Web Service sendo
consumido por um cliente, enquanto monitora diversos provedores (Nakamura et al., 2011a).
UDOnt-Q Module
Command
Components (CC)
1
Client
Orchestrator
UddiRequest
7
Analiser
OntMaintenance
Util
0a
4
4a
0b
4c
QoSInformer
4b
4b
Ganglia
Provider 1
4b
Ganglia
0
Ganglia
Provider 2
Ganglia
Provider 3
.............
Provider N
4b
0
0
Figura 5.8: Estrutura resumida do Mdulo com os seus componentes (Nakamura et. al, 2011a).
A sequencia do funcionamento do UDOnt-Q tambm exibida na Figura 5.8. Tal funcionamento dado pelos seguintes passos (Nakamura et al., 2011a):
0. A princpio os provedores de servios devem implementar a classe do componente CIS
para que possam registrar os seus servios tanto no registro UDDI (0a), como na ontologia
(0b).
55
1. O mdulo fornecido como um Web Service que consumido pelo cliente que informa
o nome do servio desejado. Opcionalmente o endereo IP do cliente tambm poder ser
fornecido, caso contrrio o mesmo recuperado pelo contexto da mensagem de conexo
HTTP.
2. O componente CC encaminha a requisio para a anlise a fim de verificar qual componente de busca ser utilizado. Neste trabalho, o componente desenvolvido para realizar a
busca o OC, porm outros componentes podem ser desenvolvidos e acoplados facilmente
ao mdulo.
3. O componente OC recebe as informaes e instancia o algoritmo de busca (por exemplo:
OntAlgoritmObject ou OntAlgoritmSPARQL) que est indicado no arquivo de configurao
do mdulo. Dessa forma, baseando-se no acordo determina-se a QoS contratada pelo cliente
e tambm quais servios atendem aos requisitos dessa QoS. O resultado da busca um
conjunto de dados composto pelo: o nome do servio, o nome do provedor e o endereo do
provedor.
4. O CC recebe e analisa o resultado da busca feita pelo algoritmo. A anlise consiste em
verificar se h um ou mais servios que atendam requisio do cliente. Existindo apenas um, esse servio retornado classe Orchestrator e o sistema continuar o fluxo (item
5). Caso haja mais de um registro, o sistema pode seguir dois fluxos que dependem da
opo de monitoramento indicada no arquivo de configurao. Caso a opo esteja desativada (disabled), o primeiro resultado da lista ser retornado. Porm, caso a opo esteja
ativa (enabled) a lista de resultados encaminhada para o sub-componente QC. A classe
QoSInformer analisar os estados atuais dos provedores que estavam presentes na lista de
resultados (4a, 4b e 4c) e ir escolher aquele que estiver menos sobrecarregado.
5. A classe Orchestrator recebe o resultado, recupera o nome do servio e do provedor e
encaminha para o componente UC.
6. O componente UC procede com a pesquisa no registro UDDI, procurando a WSDL do
servio daquele determinado provedor.
7. A WSDL retornada ao componente CC que a repassa ao cliente.
8. O cliente recebe a WSDL do servio que possui a qualidade contratada e a partir dela
possvel determinar a localizao do servio e posteriormente utiliz-lo. A resposta Null
enviada ao cliente caso nenhum servio que atenda a sua necessidade seja encontrado.
Durante todo o fluxo da Figura 5.8, eventuais erros so registrados e informaes de desempenho so coletadas para que uma futura avaliao de desempenho seja conduzida.
56
5.4
Consideraes Finais
Neste captulo foi apresentado o desenvolvimento do mdulo UDOnt-Q. A metodologia e ferramentas utilizadas no processo de desenvolvimento do mdulo, juntamente com os componentes,
a estrutura e o funcionamento do mdulo, foram tpicos abordados neste capitulo que permitiram o seu melhor entendimento. Aps as correes de alguns erros encontrados durante a fase de
testes, o prottipo do mdulo ficou pronto para ser submetido a uma avaliao de desempenho. A
avaliao de desempenho do mdulo e de seus algoritmos discutida no prximo captulo.
C APTULO
6
Avaliao de Desempenho
6.1
Consideraes Iniciais
6.2
58
Quantidade
5
Clientes
UDOnt-Q
UDDI
Configurao
Intel QuadCore Q6000 (2.4GHz)
2GB de RAM
HD 120GB, 7200RPM
Intel QuadCore Q9400(2.66GHz)
4GB de RAM
HD 500GB, 7200RPM
Intel QuadCore Q9400(2.66GHz)
8GB de RAM
HD 320GB, 7200RPM
Descrio
Fornecer os
Web Services
Requisitar os Web
Services com QoS
Mdulo de busca
Registro de Informaes
Descrio
Sistema Operacional
Utilizao
Sistema Operacional
Servidor Web
da Apache
Apache Tomcat
Continer de
Servlets
Apache Axis2
Motor (engine) de
processamento SOAP
jUDDI
UDDI da OASIS
desenvolvido pela
(Apache em Java)
Mquina Virtual Java
Armazenamento e
disponibilizao da
ontologia via URL
Hospeda os servios
(Mdulo, jUDDI e)
Provedores
Troca de mensagens
entre clientes,
mdulo, UDDI
e provedores
Repositrio de
informaes de
Web Services
Todos componentes
Java Virtual
Machine (JVM)
MySQL Server
Pellet
Jena
Log4J
Sistema Gerenciador
de Bancos de
Dados (SGBD)
Mquina de inferncia
semntica
Framework que fornece
uma API para a manipulao de ontologias
Biblioteca desenvolvida pela Apache que
fornece uma API para
o registro de logs
Verso
Ubuntu 10.04
Kernel 2.6.32-26
2.2.14
6.0.26
1.4.1
0.9rc4
1.6.0_22
Gravao dos
resultados de
desempenho
Inferir informaes
nas ontologias
Executar buscas
semnticas
5.1.41-3
ubuntu12.8
Gravao de logs de
rastreamento (trace),
aviso (warnings)
e erros (errors)
no Mdulo
1.2.16
2.2.2
2.6.3
Alm dos elementos de software citados na Tabela 6.2, importante salientar que tambm
foram utilizados: o mdulo com os componentes desenvolvidos neste projeto, as aplicaes clientes
e uma aplicao para gerao de carga de trabalho nos provedores de servio. Essa ltima aplicao, denominada ProviderWorkLoad, foi criada com o intuito de gerar carga de trabalho do tipo
59
CPU-Bound, no permitindo que a CPU fique ociosa durante os experimentos. Ela composta
por operaes matemticas (exponenciais e divises) dentro de laos aninhados na ordem O(n4 ).
Essas operaes so executadas de tempos em tempos de forma aleatria, as variveis que representam as bases e os expoentes tambm so geradas aleatoriamente dentro de um limite. Dessa
forma, espera-se que a carga de trabalho dos provedores no seja a mesma, evitando que o mdulo
sempre escolha o mesmo provedor.
A Figura 6.1 resume a disposio dos softwares utilizados no ambiente de testes. A seta na
cor Preta representa a interao do cliente com o mdulo ao fazer a sua requisio. A seta na cor
Verde indica a consulta do mdulo a uma URL (ontologia) no servidor Web Apache. A gravao
de logs em disco feita com a utilizao do log4j. Para a gravao dos resultados de desempenho
foram desenvolvidas e executadas stored procedures, gravando assim os dados no banco de dados
MySql (seta Marrom).
Apache2
v
URL :Ontologia
DBLog (MySql)
FileLog (log4j)
Apache Tomcat
Axis2
jUDDI
UDOnt-Q Module
Cliente
Legenda:
Cliente UDOnt-Q
UDOnt-Q Apache2
UDOnt-Q Log
UDOnt-Q Ganglia
Provedor UDOnt-Q
UDOntQ jUDDI
Ganglia
Provedor 1
Ganglia
Provedor 2
Ganglia
Provedor 3
Ganglia
.............
Provedor N
Figura 6.1: Viso resumida dos elementos de software utilizados no ambiente de testes.
Quando a funcionalidade de monitoramento dos provedores est ativa e h mais de um servio
como resultado, o mdulo passa a considerar as informaes fornecidas pelo monitor Ganglia. A
interao do mdulo com o Ganglia est representada pelas setas na cor Amarela. Os provedores
podem atualizar a ontologia (e o registro UDDI) por meio de mtodos da classe do componente
CIS. As setas Vermelhas esboam esta interao. importante relembrar que o mdulo um
conjunto de componentes que tem um Web Service como interface de acesso e, por este motivo, o
mdulo precisa ser implantado (deploy) em um continer de Servlets (Apache Tomcat) onde poder
60
ser acessado pelos clientes. O Axis2 exigido, pois este Web Service utiliza o protocolo SOAP
para a troca de informaes. Por fim, a seta na cor Azul representa a comunicao entre o mdulo
e o jUDDI na consulta de dados funcionais (WSDL). O jUDDI, o Axis2 e consequentemente o
mdulo so aplicaes que para seu funcionamento precisam estar inseridas em um servidor de
aplicaes que neste caso o Apache Tomcat.
6.3
Planejamento de Experimentos
Antes de iniciar o processo de avaliao de desempenho do mdulo foi realizado o planejamento de experimentos. O planejamento tem como objetivo obter o mximo de informaes com
um nmero mnimo de experimentos (Jain, 1991), constituindo uma etapa fundamental em que
preciso definir quais so as informaes e em que condies e quantidade elas devem ser coletadas
em um determinado experimento (Estrella, 2010).
O planejamento de experimentos pode facilitar o entendimento do comportamento de desempenho do mdulo em determinadas situaes. Durante o planejamento de experimentos buscam-se
identificar quais sero as variveis de respostas do sistema que devero ser analisadas; por exemplo, se o tempo de resposta importante ento ele deve ser considerado como uma varivel de
resposta e, portanto, deve ser coletado durante os experimentos.
Outro ponto que deve ser identificado o que ser avaliado, quais os fatores que influenciam
no desempenho do sistema e quais nveis desses fatores podem ser interessantes. Por exemplo, o
fator nmero de usurios de um sistema interessante e as diversas quantidades de usurios so
os nveis desse fator. Alm disso, pode haver fatores de menor influncia no sistema, chamados de
fatores secundrios. interessante tambm informar o nmero de vezes que os experimentos so
repetidos, ou seja, replicados, pois uma nica replicao pode estar sujeita a interferncias que
podem no ser comum no ambiente analisado (Jain, 1991).
Aps analisar a influncia de cada fator, tambm possvel verificar a interao entre eles. O
resultado dessas interaes interessante, pois algumas vezes um fator isolado no exerce uma
influncia significativa, porm quando combinado a outro resulta em uma interao onde a sua
influncia considervel no sistema avaliado.
Segundo Jain (1991), das diversas tcnicas existentes para realizar o planejamento de experimentos as mais utilizadas so: o planejamento simples, o planejamento fatorial completo e o
planejamento fatorial parcial. A tcnica adotada neste projeto foi o planejamento fatorial completo, que utiliza todas as combinaes possveis de todos os fatores e nveis escolhidos para a
avaliao. Essa tcnica mais trabalhosa que as demais, contudo, permite que os fatores sejam
avaliados, sendo assim possvel identificar as interaes e influncias entre eles (Jain, 1991).
Um fato importante ocorreu durante a execuo dos experimentos do mdulo UDOnt-Q. Notouse uma caracterstica interessante de comportamento do processo de classificao e realizao (inferncia) da ontologia por parte do reasoner Pellet. Quando foram adicionados mais indivduos
61
na ontologia, maiores foram os tempos de processamento para a classificao e realizao (inferncia). Esse aumento j era esperado, pois haveria mais informaes a serem analisadas, porm a
intensidade do aumento no parecia seguir um comportamento linear.
Sendo assim, decidiu-se avaliar tambm esse processo de classificao e realizao (inferncia)
da ontologia. Esse fato passou despercebido durante a fase de testes do mdulo devido ao pequeno
nmero de indivduos na ontologia utilizada para os testes unitrios. Esse problema foi detectado
quando se adotou o nmero de servios cadastrados como um fator para os experimentos. Alm
disso, estabeleceu-se a dvida se esse comportamento ocorria devido s caractersticas da ontologia criada. A fim de sanar essa dvida, foi escolhida uma ontologia clssica para analisar o seu
comportamento com vrios indivduos. A ontologia Pizza, comentada na seo 4.3, inspirou a criao da ontologia para o mdulo e foi escolhida para a comparao. Dessa forma, foram criados
trs Planejamentos de Experimentos (PE) para este trabalho:
Planejamento de Experimentos para a avaliao de desempenho do processo de classificao
e realizao (inferncia) da ontologia do mdulo utilizando o processo de inicializao do
mdulo com a configurao padro do reasoner Pellet (PE-Ontologia).
Planejamento de Experimentos para avaliao de desempenho do processo de classificao e
realizao (inferncia) da ontologia Pizza utilizando o processo de inicializao do mdulo
com a configurao padro do reasoner Pellet (PE-Pizza).
Planejamento de Experimentos para a avaliao de desempenho do mdulo UDOnt-Q no
processo de busca por Web Services com QoS (PE-Mdulo).
No PE-Ontologia a varivel de resposta analisada o tempo de resposta para que a ontologia
fique disponvel para utilizao. Essa varivel o tempo gasto para que o mdulo leia, classifique,
faa a inferncia e carregue na memria do servidor a ontologia processada. Os experimentos desta
avaliao foram replicados 10 vezes e o fator e os nveis considerados esto listados na Tabela 6.3.
Tabela 6.3: Fator e nveis relativos ao PE-Ontologia
Fator
Nmero de Servios
Nveis
300, 600, 900 e 1200
Descrio
Nmeros de Servios (indivduos) cadastrados na
ontologia so classificados em Gold,Silver e Bronze.
Eles esto divididos igualmente entre os cinco provedores tambm cadastrados na ontologia
62
Nveis
200, 400, 600 e 800
Descrio
Nmeros de Pizzas (indivduos) cadastrados na
ontologia. Eles esto divididos igualmente entre
dois grupos, pizza com alta calorias (HighCaloriePizza) e pizzas com baixas (LowCaloriePizza).
Nveis
300, 600 e 1200
Nmeros de Clientes
(Fator B)
Algoritmo de Busca
(Fator C)
15 e 30
OntAlgorithmObject e
OntAlgorithmSPARQL
Descrio
Nmeros de Servios (indivduos) cadastrados na
ontologia. Eles esto divididos igualmente
entre os cinco provedores cadastrados na ontologia e so classificados em Gold, Silver e Bronze.
Nmeros de Clientes cadastrados na ontologia.
Tambm so classificados em Gold, Silver e Bronze.
Apenas os dois principais algoritmos de busca
com semntica sero avaliados. O algoritmo
OntAlgorithmRDQL no foi utilizado devido o
mdulo utilizar a verso 2.6.3 do Jena, a qual
no possui suporte para a linguagem RDQL.
Alm dos principais fatores destacados na Tabela 6.5, outros fatores foram fixados (Fatores
Fixos) durante os experimentos do mdulo (PE-Modulo). Esses fatores fixos e seus possveis
nveis esto listados na Tabela 6.6.
Os fatores da Tabela 6.6 so denominados fixos, pois durante cada experimento utilizado
(fixado) apenas um nvel, no ocorrendo alterao de nveis no mesmo experimento. Dessa forma,
estes fatores no sero considerados nos clculos de influncia de fatores (Seo 6.4.1).
A escolha de todos os fatores e nveis deve ser feita antes da inicializao do mdulo, por meio
do seu arquivo de configurao. Alm disso, a configurao do ambiente pode sofrer algumas
alteraes de um experimento para outro, como por exemplo, a alterao do nmero de servios
cadastrados no registro UDDI (Fator A) e o nmero de threads que devem ser disparadas concorrentemente nas mquinas clientes (Fator B). Essa ltima configurao necessria, pois os
elementos de hardware disponveis, listados na Tabela 6.1, no so suficientes para representar 15
e 30 clientes. Por esse motivo, foi preciso criar threads nas mquinas clientes para que representassem o nmero proposto de requisies concorrentes nos experimentos (cinco ou dez threads por
cliente).
63
Nveis
3e2
Gravao de Log
(GL)
Monitorao pelo Ganglia
(MG)
ON e OFF
Monitorao de Carga
(MC)
ON e OFF
ON e OFF
Descrio
Indica o nmero de atributos de QoS utilizados como
propriedades para a classificao no processo de equivalncia de classe durante a inferncia da ontologia. Os
atributos so Tempo de Resposta, Disponibilidade e Custo.
No caso de apenas 2 atributos, o atributo Custo no foi
considerado.
Indica se o mdulo gravar ou no arquivos de logs.
Indica se o mdulo dever ou no consultar
as informaes do Ganglia em caso da busca retornar
mais de um servio com a QoS adequada.
Indica se a monitorao da carga de trabalho (CPU)
da mquina na qual o mdulo executa estar ativa ou
no. Um script em Perl foi utilizado para armazenar
os valores de CPU a cada segundo. Para minimizar
a influncia da carga gerada por eventuais rotinas
do Sistema Operacional foram considerados apenas
os valores superiores a 1% de utilizao de CPU.
A Figura 6.2 exibe a disposio dos elementos de hardware utilizados nos experimentos. As
threads criadas consomem o servio do UDOnt-Q para descobrir qual Web Service atende a sua
exigncia de QoS. Nos experimentos realizados, sempre haver mais de um servio que atende a
essa exigncia na ontologia 17 e a opo de monitoramento poder ou no estar ativa. Caso esteja,
o mdulo ir sempre consultar os resultados dos servidores a cada requisio.
6.4
No Anexo 3 desta monografia possvel observar a composio e ordenao dos Web Services cadastrados na
ontologia do UDOnt-Q.
64
C1
Clientes
C2
Servidores
C3
S1
requisies
monitorao
...
Servidor
UDOnt-Q
S2
Sn
Esses dois projetos de fatorial completo (FC300-600 e FC300-1200) foram reproduzidos alterandose alguns fatores que permaneceram fixos durante os experimentos de cada conjunto. Foram utilizadas quatro combinaes de fatores fixos totalizando os oito conjuntos de experimentos descritos
na Tabela 6.9.
A varivel de resposta relativa carga de trabalho gerada pela utilizao do mdulo (consumo
de CPU) registrada apenas nos conjuntos de experimentos nos quais a monitorao de carga
65
Tabela 6.7: Projeto Fatorial Completo para Avaliao de Desempenho do Mdulo com 300 e 600
Servios
Experimento
1
2
3
4
5
6
7
8
A (N.Servios)
300
300
300
300
600
600
600
600
B (N. Clientes)
15
15
30
30
15
15
30
30
C (Algoritmo)
OntAlgorithmObject
OntAlgorithmSPARQL
OntAlgorithmObject
OntAlgorithmSPARQL
OntAlgorithmObject
OntAlgorithmSPARQL
OntAlgorithmObject
OntAlgorithmSPARQL
Tabela 6.8: Projeto Fatorial Completo para Avaliao de Desempenho do Mdulo com 300 e
1200 Servios
Experimento
1
2
3
4
5
6
7
8
A (N.Servios)
300
300
300
300
1200
1200
1200
1200
B (N. Clientes)
15
15
30
30
15
15
30
30
C (Algoritmo)
OntAlgorithmObject
OntAlgorithmSPARQL
OntAlgorithmObject
OntAlgorithmSPARQL
OntAlgorithmObject
OntAlgorithmSPARQL
OntAlgorithmObject
OntAlgorithmSPARQL
Conjunto de
Experimento
FC300-600
FC300-1200
FC300-600
FC300-1200
FC300-600
FC300-1200
FC300-600
FC300-1200
(MC) estiver ativa (ON). Quando a gravao de log (GL) estiver desativada (OFF) no possvel
registrar o tempo de busca (TB) do mdulo, pois no so salvos registros de desempenho. Contudo,
os clientes armazenam os tempos de respostas (RTC - Response Time in the Client) que podem ser
avaliados. importante recapitular que a ontologia sempre ter mais de um servio que atendem
s necessidades do cliente. Portanto, quando a monitorao pelo Ganglia (MG) estiver ativa (ON)
o mdulo dever verificar qual o provedor menos sobrecarregado naquele instante.
66
6.4.1
No caso da avaliao de desempenho do mdulo existem trs fatores (A, B e C). Para se obter a
influncia de cada um desses fatores nas condies especificadas preciso calcular a influncia dos
fatores no sistema avaliado. Para determinar a influncia de cada fator, possvel empregar-se um
modelo de regresso (Jain, 1991). O modelo para o projeto fatorial 23 empregado nos experimentos
deste trabalho, apresentado na Equao (6.1).
(6.1)
O prximo passo substituir no modelo os valores (yi ) das variveis de resposta obtidos nos
experimentos. Dessa forma, obtm-se os valores de q0 , qA , qB , qC , qAB , qBC , qAC e qABC . A
Soma dos Quadrados Total (SST) desses valores (qi ) fornece a variao total das variveis de
resposta dos experimentos e, consequentemente, as variaes devidas influncia dos fatores e de
suas interaes. A equao da Soma dos Quadrados Total (SST) ou a Variao Total dada pela
Equao (6.2) (Jain, 1991):
2
SST =
2
X
(yi y)2
(6.2)
i=1
Na Equao (6.2), a varivel y a mdia dos valores das variveis de resposta obtidas em todas
as replicaes dos experimentos. Portanto, ao realizar a substituio de todos 23 experimentos
obtm-se a Equao (6.3):
2
2
2
2
y = 23 (qA2 + qB2 + qC2 + qAB
+ qAC
+ qBC
+ qABC
)
(6.3)
A ltima etapa determinar a influncia de um determinado fator, para isso preciso dividir
a soma dos quadrados do fator pela soma dos quadrados total (Jain, 1991). Por exemplo, no caso
do fator (A) o clculo seria SSA/SST. Portanto, no experimento utilizado, a frmula de SSA
apresentada na Equao (6.4):
SSA = 23 qA2
(6.4)
67
6.5
6.5.1
Com relao anlise comportamental do processo de inferncia das ontologias, podem-se observar nas Figuras 6.3 e 6.4 que para ambas o tempo gasto com esse processo aumentou conforme
o nmero de indivduos (Servios ou Pizzas) cadastrados crescia. Para essa anlise, fixou-se o
nmero de clientes cadastrados na ontologia em 30.
Os resultados em grficos em linhas, conforme exibem as Figuras 6.5 e 6.6, permitem uma
viso mais clara da comparao dos resultados (Nakamura et al., 2011a).
Esses resultados mostram um avano progressivo no aumento do tempo de resposta (TR) do
mdulo durante o processo de inferncia utilizando-se trs atributos de QoS para a equivalncia de
classe. Embora as ontologias no possam ser comparadas, pois h diferentes nmeros de triplas
RDF, classes, indivduos, propriedades, etc., o comportamento para ambas no linear. A Figura
6.7 faz uma comparao entre o comportamento do processo de inferncia e de classificao da
ontologia Pizza com um comportamento linear hipottico e exibe um aumento considervel quando
a ontologia possui um maior nmero de indivduos (Nakamura et al., 2011b).
Esse comportamento pode ser justificado pelo fato do racionalizador Pellet ocupar apenas um
ncleo dos quatro disponveis na CPU durante esse processo. Alm disso, uma anlise superficial no cdigo fonte do racionalizador constatou a existncia de diversas chamadas de mtodos
recursivos que exigem processamento e memria. Dessa forma, alguns dos recursos disponveis
no so utilizados em sua totalidade com eficincia enquanto outros podem chegar ao mximo de
utilizao (Nakamura et al., 2011b).
6.5.2
Apesar do tempo de resposta para o processo de inferncia ser longo, ele executado apenas
uma vez, durante a inicializao do mdulo. Os resultados posteriores so referentes ao tempo
68
1290,13
1300
1300
1268,38
1200
1200
1100
1100
1000
1000
900
900
800
800
729,32
719,24
700
700
600
600
500
500
400
400
320,39
314,89
300
300
200
100
200
84,12
81,36
82,74
317,64
724,28
1279,25
300 Servios
600 Servios
900 Services
1200 Servios
100
69
400
375,47
365,49
350
300
400
350
300
250
250
228,46
222,58
200
200
150
150
116,58
112,10
100
50
100
41,44
40,08
40,76
114,34
225,52
370,48
200 Pizzas
400 Pizzas
600 Pizzas
800 Pizzas
50
1400
1279,25
Y - Tempo em Segundos
1200
1000
800
724,28
600
400
317,64
200
82,74
0
300 Servios 600 Servios 900 Services 1200 Servios
Figura 6.5: Comportamento do processamento de Inferncia da Ontologia com 300, 600, 900 e
1200 Servios (PE-Ontologia) (Nakamura et al., 2011b).
As subsees 6.5.2.5 e 6.5.2.6 apresentam resultados com a funo de monitoramento por parte
do monitor Ganglia ativada. Nestes experimentos 5 e 6 so mantidos todos os fatores e nveis dos
experimentos 1 e 2, com a diferena de que nos experimentos 5 e 6 todos os fatores fixos esto
ativados (Gravao de Log, Monitorao de Carga e Monitorao de QoS pelo Ganglia).
70
06
370,48
Y - Tempo em Segundos
350,0000
300,0000
250,0000
01
225,52
200,0000
150,0000
93
114,33
100,0000
50,0000
9
40,757
0,0000
200 Individuals
400 Individuals
600 Individuals
800 Individuals
X - Nmero de Individuals
Figura 6.6: Comportamento do processamento de Inferncia da Ontologia com 200, 400, 600 e
800 Pizzas (PE-Pizza) (Nakamura et al., 2011b).
TR Pizza Ontologia - 200,400,600,800 Individuals
Grfico em Linha
Mdia (seg)
Linear Hipottico(seg)
400
370,48
Y - Tempo em Segundos
350
300
250
225,52
200
150
122,27
100
40,76
50
163,03
114,34
81,52
40,76
0
200 Individuals
400 Individuals
600 Individuals
800 Individuals
X - Nmero de Individuals
71
com os recursos do mdulo ativados e desativados. Contudo, o fato da gravao do log estar
desativada permite apenas comparar os tempos de resposta do cliente, pois o mdulo deixa de
registrar qualquer informao de tempo ou desempenho no arquivo de log e na base de dados.
6.5.2.1 Conjunto de Experimentos 1
Neste conjunto de experimentos possvel analisar os resultados dos experimentos obtidos
com 300 e 600 servios (Fator A), 15 e 30 clientes (Fator B) e ambos os algoritmos (Fator C).
Ainda neste conjunto de experimentos so considerados os fatores fixos de acordo com a Tabela
6.9.
A Figura 6.8 exibe a variao no tempo de busca (TB) quando o nmero de servios duplicado, passando de 300 para 600 servios. Utilizando o algoritmo OntAlgorithmObject possvel
observar que um aumento de 100% no nmero de servios ocasiona em um aumento por volta de
50% no tempo de busca. Com o algoritmo OntAlgorithmSPARQL essa diferena muito maior.
Ainda na Figura 6.8 observa-se uma grande variao do tempo de busca (TB) quando o algoritmo
OntAlgorithmObject substitudo pelo algoritmo OntAlgorithmSPARQL.
TB 15 Clientes - 300x600 Servios - OntAlgorithmObject x OntAlgorithmSPARQL
M dia (seg)
Intervalo de
Confiana(seg)
1,4000
1,3827
1,4000
1,3000
1,3039
1,3000
1,2000
1,2000
1,1000
1,1000
1,0000
1,0000
0,9000
0,9000
0,8000
0,8000
0,7000
0,7000
0,6000
0,6000
0,5000
0,5000
0,4359
0,4000
0,4000
0,4107
0,3000
0,3000
0,2000
0,1000
0,0000
0,1134
0,1061
0,1097
300 Object
0,2000
0,1616
0,1510
0,1000
0,1563
0,4233
1,3433
600 Object
300 SPARQL
600 SPARQL
0,0000
Figura 6.8: Tempo de Busca (TB) utilizando os algoritmos com 15 clientes (CJE-1).
O algoritmo OntAlgorithmSPARQL leva um tempo muito maior que o algoritmo OntAlgorithmObject para encontrar o melhor servio para o cliente. Uma das razes para essa diferena de
desempenho que o OntAlgorithmObject teve seu desenvolvimento baseado especificamente para
a ontologia do UDOnt-Q, enquanto o OntAlgorithmSPARQL exige pacotes adicionais para o seu
funcionamento os quais permitem uma certa flexibilidade em alteraes na estrutura da ontologia
(uma alterao exige apenas a reformulao da query de consulta).
Uma variao um pouco maior no tempo de busca (TB) exibida na Figura 6.9, ainda utilizando
300 e 600 servios com ambos os algoritmos. Porm, para obter esses resultados foram feitas 30
72
Intervalo de Confiana
(seg)
3,0000
2,831
3,000
2,720
2,0000
2,000
1,132
1,082
1,0000
0,0000
1,000
0,299
0,285
0,2921
0,372
0,348
0,3601
1,1070
2,7756
300 Object
600 Object
300 SPARQL
600 SPARQL
0,000
Figura 6.9: Tempo de Busca (TB) utilizando os algoritmos com 30 clientes (CJE-1).
A Figura 6.10 exibe os tempos de resposta para os 15 clientes (RTC) obterem a resposta do
mdulo com 300 e 600 servios utilizando ambos os algoritmos.
RTC 15 Clientes - 300x600 Servios - OntAlgorithmObject x OntAlgorithmSPARQL
Mdia (seg)
2.00000
1.69680
1.60665
1.00000
1.01000
0.73371
0.67712
0.41119
0.36059
0.00000
0.46600
0.41474
0.38589
0.44037
0.70541
1.65172
300 Object
600 Object
300 SPARQL
600 SPARQL
0.01000
Figura 6.10: Tempo de Resposta para o Cliente (RTC) utilizando os algoritmos com 15 clientes
(CJE-1).
O RTC o tempo contabilizado desde o incio da requisio at a chegada da resposta no cliente
(desde a etapa 1 at a 8 da Figura 5.8). Portanto, esse tempo inclui o tempo de busca (TB) da Figura
73
Intervalo de Confiana
(seg)
4,0000
4.00000
3.16654
3,0000
3.04992
2,0000
3.00000
2.00000
1.45295
1.37757
1,0000
0,0000
1.00000
0.62319
0.57485
0,5990
0.72722
0.65395
0,6906
1,4153
3,1082
300 Object
600 Object
300 SPARQL
600 SPARQL
0.00000
Figura 6.11: Tempo de Resposta para o Cliente (RTC) utilizando os algoritmos com 30 clientes
(CJE-1).
As mdias dos tempos de resposta para os clientes (RTC) foram utilizadas para calcular a
vazo (Throughput) do mdulo. A Tabela 6.10 lista as possibilidades do fatorial completo 23 com
as mdias dos tempos de busca (TB) do mdulo, as mdias dos tempos de resposta para os clientes
(RTC) e a partir dessas mdias so calculadas as vazes. A Figura 6.12 exibe as porcentagens de
influncia de cada fator durante a execuo dos experimentos na busca por servios com qualidade.
Tabela 6.10: Fatorial completo 23 e Mdias do Tempo de Busca (TB) do CJE-1
Experimento
1
2
3
4
5
6
7
8
Fator A
(N. Servios)
300
300
300
300
600
600
600
600
Fator B
(N. Clientes)
15
15
30
30
15
15
30
30
Fator C
(Algoritmo)
Object
SPARQL
Object
SPARQL
Object
SPARQL
Object
SPARQL
TB Mdia
0,10972
0,42332
0,29207
1,10697
0,15632
1,34331
0,36009
2,77555
RTC Mdia
0,38589
0,70541
0,59902
1,41526
0,44037
1,65172
0,69058
3,10823
Throughput
2,59
1,42
1,67
0,71
2,27
0,61
1,45
0,32
74
B (N. Clientes)
13,55%
A (N. Servios)
B (N. Clientes)
C (Algoritmo)
AB
AC
BC
ABC
C (Algoritmo)
48,46%
Figura 6.12: Porcentagem de Influncia de cada fator no tempo de busca (TB) do mdulo
durante os experimentos (CJE-1).
Analisando os resultados da Tabela 6.10 e as porcentagens de influncia de cada fator na Figura
6.12 possvel notar que o fator C (Algoritmo) com 48,46% o que exerce maior influncia nos
experimentos. Esse resultado era previsto, pois grande a discrepncia dos tempos de resposta de
um algoritmo para outro. O segundo fator que mais influenciou foi o fator A (Nmero de Servios)
com 15,82%, seguido pelo fator B (Nmero de Clientes) com 13,55%. Esses dois ltimos fatores
exercem uma influncia considervel no sistema e podem aumentar conforme o nmero de servios
e clientes aumenta. No Conjunto de Experimentos 2, descrito na prxima seo, ser possvel
observar a influncia do fator A com um nmero maior de servios. Na quarta e quinta posies
ficaram as combinaes de fatores AC com 13,25% e BC com 6,48% respectivamente, observandose que as combinaes que envolveram o fator C apresentaram maior influncia, com exceo da
combinao dos fatores ABC com 1,14%. A combinao AB ficou com 1,28% de influncia nos
experimentos.
Neste conjunto de experimentos a Monitorao de Carga (MC) estava inativa (OFF) e por esse
motivo no h resultados sobre a carga de processamento do mdulo.
6.5.2.2 Conjunto de Experimentos 2
O segundo conjunto de experimentos semelhante ao primeiro, com a diferena de que o fator
A tem 300 e 1200 servios ao invs de 300 e 600 servios. Portanto, esse experimento utiliza o
fatorial completo da Tabela 6.8 e os mesmos fatores fixos do primeiro conjunto de experimentos
conforme descrito na Tabela 6.9.
Seguindo a mesma sequencia do primeiro conjunto de experimentos, a Figura 6.13 exibe a
variao no tempo de busca (TB) quando o nmero de servios quadruplicado, passando de
300 para 1200 servios. Utilizando o algoritmo OntAlgorithmObject possvel observar que um
75
aumento de 300 para 1200 servios ocasiona em um aumento de aproximadamente 150% no tempo
de busca. Nota-se que o algoritmo OntAlgorithmObject manteve seu desempenho muito melhor
que o algoritmo OntAlgorithmSPARQL. H uma grande diferena no intervalo de tempo entre
as busca feitas com os algoritmos, a justificativa a mesma dada no conjunto de experimentos
1 (CJE-1). Porm, o problema se agrava quando o nmero de servios maior, como o caso
dos resultados com 1200 servios. Para que a exibio do grfico no ficasse desproporcional,
utilizou-se a escala logartmica.
TB 15 Clientes - 300x1200 Servios - OntAlgorithmObject x OntAlgorithmSPARQL
M dia (seg)
Intervalo de
Confiana(seg)
10,0000
6.12816
5.78996
1,0000
0,1000
10.00000
1.00000
0.11338
0.10607
0.25418
0.23714
0.43594
0.41070
5,9591
0.10000
0,2457
0,4233
0,1097
0,0100
0.01000
300 Object
1200 Object
300 SPARQL
1200 SPARQL
Figura 6.13: Tempo de Busca (TB) utilizando os algoritmos com 15 clientes (CJE-2).
A Figura 6.14, tambm em escala logartmica, exibe um aumento no tempo de busca (TB)
quando o nmero de clientes concorrentes duplicado. Correspondente aos resultados da Figura
6.9, esse aumento devido ao enfileiramento das requisies, pois o mdulo atende uma requisio
por vez.
TB 30 Clientes - 300x1200 Servios - OntAlgorithmObject x OntAlgorithmSPARQL
M dia (seg)
Intervalo de Confiana
(seg)
12.90370
12.37230
10,0000
1.13225
1.08169
1,0000
0.29897
0.28516
0.47976
0.45354
1.00000
12,6380
1,1070
0,1000
0,2921
10.00000
0.10000
0,4667
0,0100
0.01000
300 Object
1200 Object
300 SPARQL
1200 SPARQL
Figura 6.14: Tempo de Busca (TB) utilizando os algoritmos com 30 clientes (CJE-2).
76
Com relao ao tempo de resposta para o cliente (RTC), observa-se um comportamento similar
ao do conjunto de experimentos 1 (CJE-1). A Figura 6.15 mostra esse tempo com 300 e 1200
servios utilizando ambos os algoritmos para atender a 15 requisies de clientes correntes. Assim
como no conjunto de experimentos 1, a diferena do tempo de resposta para o cliente entre as
quantidades de servios minimizada pelo fato deste tempo considerar outros tempos como, por
exemplo, o tempo de processamento das mensagens SOAP.
RTC 15 Clientes - 300x1200 Servios - OntAlgorithmObject x OntAlgorithmSPARQL
Mdia (seg)
Intervalo de Confiana
(seg)
10,0000
6.39163
6.04674
1,0000
0.41119
0.36059
0,1000
0,3859
0.60757
0.52852
10.00000
1.00000
0.73371
0.67712
6,2192
0,5680
0,7054
1200 Object
300 SPARQL
0.10000
0,0100
0.01000
300 Object
1200 SPARQL
Figura 6.15: Tempo de Resposta para o Cliente (RTC) utilizando os algoritmos com 15 clientes
(CJE-2).
Os resultados da Figura 6.16, apresentados com escala logartmica, exibem um aumento no
tempo de busca (TB) quando o nmero de requisies dos clientes dobrado, passando de 15
clientes para 30 clientes. Esses resultados eram esperados, pois o mesmo efeito aconteceu quando
o tempo de busca aumentou devido duplicao do nmero de requisies.
RTC 30 Clientes - 300x1200 Servios - OntAlgorithmObject x OntAlgorithmSPARQL
Mdia (seg)
Intervalo de Confiana
(seg)
13.27549
12.72870
10,0000
1,0000
0,1000
0.62319
0.57485
0,5990
0.89704
0.81641
1.45295
1.37757
10.00000
1.00000
13,0021
0,8567
1,4153
0.10000
0,0100
0.01000
300 Object
1200 Object
300 SPARQL
1200 SPARQL
Figura 6.16: Tempo de Resposta para o Cliente (RTC) utilizando os algoritmos com 30 clientes
(CJE-2).
77
Intervalo de Confiana
(seg)
100,0000
100,0000
12,9037
12,3723
10,0000
1,0000
0,2990
0,2852
0,3718
0,3484
0,4798
0,4535
1,1323
1,0817
10,0000
2,8309
2,7202
1,0000
12,6380
2,7756
0,1000
0,2921
0,3601
0,4667
300 Object
600 Object
1200 Object
1,1070
0,1000
0,0100
0,0100
300 SPARQL
600 SPARQL
1200 SPARQL
Figura 6.17: Tempo de Busca (TB) utilizando os algoritmos com 30 clientes e todos os servios
(CJE-1 e 2).
Analisando os resultados da Figura 6.17 fica clara a vantagem do algoritmo OntAlgorithmObject sobre o algoritmo OntAlgorithmSPARQL. Os resultados mostram que o primeiro leva menos
tempo para localizar/selecionar os servios desejados, mesmo precisando procurar em um nmero
maior de servios cadastrados. Ou seja, o algoritmo OntAlgorithmObject mais rpido buscando
em 1200 servios do que o algoritmo OntAlgorithmSPARQL buscando em apenas 300 servios.
A Tabela 6.11 exibe as possibilidades do fatorial completo 23 com as mdias dos tempos de
busca (TB) do mdulo, as mdias dos tempos de resposta para os clientes (RTC) e a partir dessas
mdias so calculadas as vazes (Throughput). Na Figura 6.18 so exibidas as porcentagens de
influncia de cada fator durante a execuo dos experimentos na busca por servios com qualidade.
Os resultados da Tabela 6.11 em conjunto com as porcentagens de influncia de cada fator na
Figura 6.18 exibem o fator C (Algoritmo), que com 32,14% de influncia, o fator que exerce
maior influncia nos experimentos. Esse resultado era esperado, pois da mesma forma que ocorreu
no CJE-1 foi grande a discrepncia dos tempos de resposta entre um algoritmo e outro. O segundo
fator que mais influenciou foi o fator A (Nmero de Servios) com 26,84% ficando a frente da
combinao dos fatores AC com quase 24,96%. Esses resultados indicam que, nos nveis e fatores
escolhidos para a anlise, os fatores C e A so os que exercem influncia considervel no sistema.
O Fator B (Nmero de Clientes) ficou com apenas 5,36% de influncia, embora essa influncia no
seja to representativa quando comparada aos outros fatores (C e A). O fator B com nveis maiores,
como por exemplo, 15 e 150 clientes (10 vezes mais) provavelmente ter uma influncia maior no
78
Experimento
1
2
3
4
5
6
7
8
Fator A
(N. Servios)
300
300
300
300
1200
1200
1200
1200
AC 24,96%
Fator B
(N. Clientes)
15
15
30
30
15
15
30
30
Fator C
(Algoritmo)
Object
SPARQL
Object
SPARQL
Object
SPARQL
Object
SPARQL
TB Mdia
0,10972
0,42332
0,29207
1,10697
0,24566
5,95906
0,46665
12,638
RTC Mdia
0,38589
0,70541
0,59902
1,41526
0,568
6,2192
0,8567
13,0021
Throughput
2,59
1,42
1,67
0,71
1,76
0,16
1,17
0,08
A (N. Servios)
B (N. Clientes)
C (Algoritmo)
AB
AC
BC
ABC
C (Algoritmo) 32,14%
Figura 6.18: Porcentagem de Influncia de cada fator no tempo de busca (TB) do mdulo
durante os experimentos (CJE-2).
sistema. As outra combinaes BC (4,31%), AB (3,24%) e ABC (3,15%) compe a porcentagem
restante da influncia do conjunto de experimento 2.
Da mesma forma que o conjunto de experimento 1 (CJE-1), a Monitorao de Carga (MC)
estava inativa (OFF), portanto no h resultados sobre a carga de processamento no mdulo.
6.5.2.3 Conjunto de Experimentos 3
O conjunto de experimentos 3 (CJE-3) similar ao primeiro conjunto de experimentos (CJE-1)
e apenas se diferenciam quanto ao fator fixo: Nmero de Atributos de QoS (AQ). No CJE-1 foram
utilizados 3 (trs) atributos de QoS para classificar os servios como Gold, Silver e Bronze. Por
outro lado, no CJE-3 foram utilizados apenas 2 (dois) atributos conforme exibe a Tabela 6.9.
Os resultados desse terceiro conjunto de experimento (CJE-3) so estatisticamente iguais aos
resultados dos primeiro conjunto de experimento (CJE-1). Portanto, seria repetitiva a exibio de
grficos e resultados deste experimento. Devido a essa igualdade estatstica pode-se afirmar que a
79
adio (ou a remoo) de apenas um atributo de QoS no exerce influncia significativa nos experimentos efetuados. Contudo, a possvel adio de vrios atributos poder exercer mais influncia,
principalmente no processo de inferncia por parte do reasoner. No entanto, a realizao de novos
experimentos para averiguar essa suposio proposta para trabalhos futuros.
Para exemplificar a igualdade estatstica, a Figura 6.19 exibe uma comparao entre alguns
resultados dos CJE-1 e CJE-3. Analisando os grficos dessa Figura 6.19 possvel notar que para
qualquer que seja o algoritmo utilizado com 30 clientes e 600 servios (nmero mximo de clientes
e servios) as mdias obtidas em cada conjunto de experimentos esto sobrepostas aos intervalos
de confiana.
TB 30 Clientes - 600 Servios - Todos Algoritmos - CJE-1 x CJE3
Mdia (seg)
3,0000
Intervalo de Confiana
(seg)
2,8309
2,8606
2,7202
2,7453
3,0000
2,0000
2,0000
1,0000
1,0000
0,0000
0,3718
0,3484
0,3601
0,3717
0,3356
0,3537
2,7756
2,8030
0,0000
Figura 6.19: Comparao no Tempo de Busca (TB) dos CJE-1 e CJE-3 utilizando os algoritmos
com 30 clientes e 600 servios.
A Figura 6.20 apresenta os resultados do clculo da influncia da varivel de resposta Tempo
de Busca (TB) desse terceiro conjunto de experimento. Os resultados da influncia dos fatores
neste CJE-3 so muito prximos aos resultados do CJE-1 devido igualdade estatstica. Alm
disso, uma tabela com a completude dos resultados obtidos no CJE-3 encontra-se no Anexo 4
desta monografia.
80
A (N. Servios)
B (N. Clientes)
C (Algoritmo)
AB
AC
BC
ABC
C (Algoritmo) 47,57%
Figura 6.20: Porcentagem de Influncia de cada fator no tempo de busca (TB) do mdulo
durante os experimentos (CJE-3).
A Monitorao de Carga (MC) estava inativa (OFF) neste conjunto de experimento. Portanto,
no h resultados sobre a carga de processamento imposta pelo mdulo para serem analisados.
6.5.2.4 Conjunto de Experimentos 4
O mesmo comportamento que ocorreu com o conjunto de experimentos 3 (CJE-3) em relao
ao CJE-1 se repetiu para o conjunto de experimento 4 (CJE-4) em relao ao CJE-2. Os resultados
obtidos foram estatisticamente iguais utilizando-se 3 (trs) ou 2 (dois) atributos de QoS no fator
fixo: Nmero de Atributos de QoS (AQ).
Novamente para exemplificar, os resultados obtidos com os dois algoritmos utilizando-se os
maiores nveis dos fatores (30 clientes e 1200 servios) foram comparados. Esses resultados, em
escala logartmica, esto ilustrados no grfico da Figura 6.21. Anlogo aos resultados da Figura
6.19, os resultados nessa Figura 6.21 demostram que as mdias obtidas para os experimentos de
mesmo algoritmo esto muito prximas e sobrepostas aos intervalos de confiana, mesmo em
conjunto de experimentos diferentes.
81
Intervalo de Confiana
(seg)
12,9037
12,3723
10,0000
12,7083
12,1803
1,0000
10,0000
1,0000
0,4798
0,4535
0,4725
0,4552
0,4667
0,4638
12,6380
12,4443
0,1000
0,1000
0,0100
0,0100
1200 SPARQL CJE-2
Figura 6.21: Comparao no Tempo de Busca (TB) dos CJE-2 e CJE-4 utilizando os algoritmos
com 30 clientes e 1200 servios.
A Figura 6.22 exibe os resultados dos clculos da influncia da varivel de resposta Tempo de
Busca (TB) desse quarto conjunto de experimentos. A influncia dos fatores neste CJE-4 quase
a mesma do CJE-2 por causa da igualdade estatstica entre eles. No Anexo 4 desta monografia h
uma tabela com a completude dos resultados obtidos no CJE-4.
AC 25,26%
AB 3,04%
A (N. Servios)
B (N. Clientes)
C (Algoritmo)
AB
AC
BC
ABC
C (Algoritmo) 32,42%
Figura 6.22: Porcentagem de Influncia de cada fator no tempo de busca (TB) do mdulo
durante os experimentos (CJE-4).
O fator fixo Monitorao de Carga (MC) continuou inativo (OFF) neste conjunto de experimento. Dessa forma, no foi possvel coletar dados sobre a carga de processamento imposta pelo
mdulo.
82
1,6000
1,5222
1,5000
1,4441
1,4000
1,6000
1,5000
1,4000
1,3000
1,3000
1,2000
1,2000
1,1000
1,1000
1,0000
1,0000
0,9000
0,9000
0,8000
0,8000
0,7000
0,7000
0,6000
0,6000
0,5000
0,5000
0,4020
0,3788
0,4000
0,3000
0,2000
0,1000
0,0000
0,1526
0,1450
0,1488
300 Object
0,4000
0,3000
0,1978
0,1847
0,2000
0,1912
0,3904
1,4831
600 Object
300 SPARQL
600 SPARQL
0,1000
0,0000
Figura 6.23: Tempo de Busca (TB) utilizando os algoritmos com 15 clientes (CJE-5).
83
Entretanto, o resultado do tempo mdio de busca com 15 clientes, 300 servios e algoritmo
OntAlgorithmSPARQL, em especfico, apresentou um tempo de busca menor em comparao ao
seu correspondente no CJE-1 (Figura 6.24).
TB - 15 Clientes - 300 Servios - OntAlgorithmSPARQL - CJE-1 x CJE-5
Mdia (seg)
Intervalo de Confiana
(seg)
0,5000
0,5000
0,4359
0,4000
0,4107
0,4020
0,3000
0,2000
0,4000
0,3788
0,3000
0,4233
0,3904
0,1000
0,2000
0,1000
0,0000
0,0000
300 SPARQL Exp1
Figura 6.24: Comparao do Tempo de Busca (TB) entre o CJE-1 x CJE-5 utilizando 15 clientes,
300 servios e o algoritmo OntAlgorithmSPARQL.
Uma explicao plausvel para esse fato devida configurao de economia de energia adotada. A verso do sistema operacional utilizada nos experimentos permite que um gerenciador
regule as frequncias disponveis do processador de acordo com polticas de energia/desempenho
pr-definidas. Por exemplo, o regulador powersave configura estatisticamente o processador para
trabalhar na menor frequncia disponvel. Por outro lado, o regulador performance faz o contrrio
e configura o processador na maior frequncia disponvel. A partir do kernel 2.6.10, o regulador
padro o ondemand, que foi adicionado com a capacidade de alterar a frequncia do processador
dinamicamente de acordo com a sua utilizao (Hopper, 2009). H outros reguladores (politicas)
de gerenciamento de energia disponveis (Hopper, 2009). Porm o regulador ondemand o foco
de interesse para justificar o resultado obtido.
O regulador ondemand configura em princpio a menor frequncia disponvel e permanece
monitorando a utilizao do processador. Caso a utilizao ultrapasse o limite, o regulador deve
selecionar a frequncia mais elevada disponvel. Caso a monitorao indique que a utilizao est
abaixo do limite, ento o regulador ir diminuir a frequncia para a prxima disponvel. Se o
processador ainda continuar sendo subutilizado, novamente o regulador diminuir a frequncia at
que se atinja a menor frequncia disponvel (Hopper, 2009).
A mquina que hospeda o mdulo UDOnt-Q dispe de um processador (Intel QuadCore Q9400)
cuja arquitetura permite a utilizao de duas frequncias (2.00GHz e 2.66GHz). Na configurao
de gerenciamento de energia padro, ou seja, empregando o regulador ondemand, os experimentos
que exigiam menor processamento (experimentos com 300 e 600 servios e utilizando o algoritmo
OntAlgorithmObject) conseguiram ser atendidos rapidamente sem atingir o limite de processamento (2.00GHz) imposto para a troca de frequncia. Contudo, a partir da utilizao do algoritmo
OntAlgoritmoSPARQL, agregando a monitorao e seleo dos provedores, o limite foi ultrapassado em algum momento e a frequncia do processador foi alterada pelo regulador para a maior
84
(2.66GHz). Devido a esse aumento de frequncia o tempo de busca, em mdia, foi menor do que
o mesmo tempo correspondente no conjunto de experimento 1 (CJE-1).
Para os demais resultados que utilizam o algoritmo OntAlgoritmoSPARQL o tempo de busca
mdio no CJE-5 foi maior pois mesmo que tenha ocorrido um aumento na frequncia do processador, esse aumento no foi suficiente para compensar a carga de imposta (600 ou 1200 servios
e/ou 30 clientes) ao ponto de diminuir ou igualar o tempo de busca.
As afirmaes do pargrafo anterior so as possveis causas que justificam o resultado para um
tempo de busca menor. Essa perturbao no ambiente de testes no estava prevista e, portanto
a frequncia do processador durante os experimentos no foi registrada. Contudo, as taxas de
utilizao dos processadores foram coletadas e o comportamento dos resultados na Figura 6.29
refora a hiptese defendida para tal resultado. O comportamento e os resultados da Figura 6.29
sero explicados mais adiante nesta subseo.
Nos resultados apresentados na Figura 6.25 foram utilizados 30 clientes simultneos ao invs
de apenas 15. Entretanto, no houve problemas com o experimento com a configurao de 30
clientes, 300 servios e o algoritmo OntAlgorithmSPARQL. Provavelmente a troca de frequncia
favoreceu no tempo mdio de busca, mas neste caso no foi suficiente para obter um tempo menor
ou igual ao seu correspondente no CJE-1.
TB 30 Clientes - 300x600 Servios - OntAlgorithmObject x OntAlgorithmSPARQL
Mdia (seg)
Intervalo de Confiana
(seg)
4,0000
4.00000
3,5000
3.23786
3.10524
3,0000
3.50000
3.00000
2,5000
2.50000
2,0000
2.00000
1,5000
1,0000
0,5000
0,0000
1.50000
1.34368
1.27707
1.00000
0.39409
0.37456
0,3843
0.47235
0.44863
0,4605
1,3104
3,1715
300 Object
600 Object
300 SPARQL
600 SPARQL
0.50000
0.00000
Figura 6.25: Tempo de Busca (TB) utilizando os algoritmos com 30 clientes (CJE-5).
Novamente, o comportamento com 30 clientes foi anlogo ao comportamento do CJE-1, porm
os tempos mdios aumentaram devido mesma sobrecarga extra que foi discutida anteriormente.
As anlises de desempenho desse quinto conjunto de experimentos (CJE-5) refletem quelas feitas
no primeiro (CJE-1). Por exemplo, nota-se que o algoritmo OntAlgorithmObject mais eficiente
que o OntAlgorithSPARQL. Alm disso, o fato de dobrar o nmero de clientes manteve um aumento acima de 100% nos tempos de buscas obtidos.
85
Os resultados dos tempos de resposta nos clientes (RTC) seguiram o mesmo padro do tempo
de busca (TB). Relembrando que o RTC envolve a soma do tempo de busca, o tempo de transferncia de dados pela rede e o tempo de processamento para empacotamento (parser) e desempacotamento da mensagem SOAP.
A Figura 6.26 exibe as mdias dos tempos de respostas obtidos nas repeties do experimento
utilizando 15 clientes, 300 servios, 600 servios e ambos os algoritmos.
RTC 15 Clientes - 300x600 Servios - OntAlgorithmObject x OntAlgorithmSPARQL
Mdia (seg)
Intervalo de Confiana
(seg)
2,0000
2,0000
1,7996
1,7131
1,0000
1,0000
0,6847
0,4375
0,4006
0,0000
0,5240
0,6313
0,4615
0,4191
0,4928
0,6580
1,7564
300 Object
600 Object
300 SPARQL
600 SPARQL
0,0000
Figura 6.26: Tempo de Resposta para o Cliente (RTC) utilizando os algoritmos com 15 clientes
(CJE-5).
A Figura 6.27 complementa os resultados anteriores e exibe os tempos de resposta nos clientes
(RTC) sendo considerados 30 clientes concorrentes
RTC 30 Clientes - 300x600 Servios - OntAlgorithmObject x OntAlgorithmSPARQL
Mdia (seg)
Intervalo de Confiana
(seg)
4,0000
4.00000
3.57764
3.43336
3,0000
3.00000
2,0000
1,0000
0,0000
2.00000
1.69874
1.61828
0.80634
0.72750
1.00000
0.84474
0.77726
0,7669
0,8110
1,6585
3,5055
300 Object
600 Object
300 SPARQL
600 SPARQL
0.00000
Figura 6.27: Tempo de Resposta para o Cliente (RTC) utilizando os algoritmos com 30 clientes
(CJE-5).
86
Analisando e comparando os resultados das Figuras 6.26 e 6.27, nota-se um aumento no tempo
mdio de resposta quando se adotou 30 clientes. Essa conduta semelhante ao que ocorreu no
conjunto de experimentos 1 (CJE-1).
A Tabela 6.12 lista as possibilidades do fatorial completo 23 das mdias dos tempos de busca
(TB), as mdias dos tempos de resposta para os clientes (RTC). A partir dessas mdias so calculadas as vazes (Throughput). Na Figura 6.28 possvel observar o resultado do clculo da
influncia dos fatores para a varivel de resposta Tempo de Busca (TB) do CJE-5.
Tabela 6.12: Fatorial completo 23 e Mdias do Tempo de Busca (TB) do CJE-5
Experimento
1
2
3
4
5
6
7
8
Fator A
(N. Servios)
300
300
300
300
600
600
600
600
Fator B
(N. Clientes)
15
15
30
30
15
15
30
30
Fator C
(Algoritmo)
Object
SPARQL
Object
SPARQL
Object
SPARQL
Object
SPARQL
TB Mdia
0,14883
0,39042
0,38433
1,31037
0,19123
1,48313
0,46049
3,17155
RTC Mdia
0,41908
0,65803
0,76692
1,65851
0,49277
1,75636
0,811
3,5055
Throughput
2,39
1,52
1,3
0,6
2,03
0,57
1,23
0,29
BC
ABC
7,44%
0,91% A (N. Servios)
AC
13,51%
15,86%
AB
1,08%
B (N. Clientes)
16,28%
A (N. Servios)
B (N. Clientes)
C (Algoritmo)
AB
AC
BC
ABC
C (Algoritmo)
44,92%
Figura 6.28: Porcentagem de Influncia de cada fator no tempo de busca (TB) do mdulo
durante os experimentos (CJE-5).
Analisando-se as porcentagens de influncia de cada fator da Figura 6.28, observa-se que o
fator C (Algoritmo), com 44,92% de influncia, o que est com a maior porcentagem nos experimentos. Durante todos os conjuntos de experimentos, o fator C (Algoritmo) tem apresentado a
maior influncia nos clculos. A variao no tempo de busca quando os algoritmos so trocados
maior que qualquer variao dos outros fatores. No CJE-1 o fator A obteve uma influncia um
pouco maior com 48,46%.
87
O segundo fator em ordem de influncia neste CJE-5, com 16,28%, foi o fator B (Nmero
de Clientes), seguido pelo fator A (Nmero de Servios) com 15,86% de influncia. possvel
observar que houve uma inverso da posio entre esses fatores em comparao com o CJE-1. No
CJE-5 o fator B ficou a frente do fator A por causa da Monitorao pelo Ganglia (MG) que estava
ativa. Devido a essa monitorao, cada requisio do cliente exigia um tempo e processamento
extra para monitorar e selecionar os provedores adequados naquele instante. Esse fato aumentou a
influncia do fator B (Nmero de clientes/Nmero de requisies) no sistema.
As interaes entre fatores complementam o restante da porcentagem da influncia, a interao
AC ficou com 13,51%, BC com 7,44%, AB com 1,08% e ABC com 0,91%.
Neste quinto conjunto de experimento (CJE-5), o fator fixo Monitorao de Carga (MC) estava
ativo (ON). Neste caso, foi possvel coletar dados sobre a carga de processamento imposta pelo
mdulo. Esses dados foram analisados gerando os resultados da Figura 6.29.
A anlise dos resultados da carga de processamento indica que preciso uma maior taxa de
processamento para o algoritmo OntAlgorithmSPARQL. Enquanto o consumo dos processadores
com o algoritmo OntAlgorithmObject no ultrapassa a taxa de 20%, com o algoritmo OntAlgorithmSPARQL essa taxa inicia em quase 30% e chega prximo dos 70%. O OntAlgorithmObject
mais eficiente para as cargas impostas e os resultados de vazo apresentados na Tabela 6.12
endossam essa afirmao.
Mdia (%)
80,00
71,65
70,00
60,00
63,36
57,36
50,00
47,07
47,28
40,00
37,85
32,38
30,00
25,82
21,87
20,00
18,08
17,35
13,37
10,00
0,00
9,19
7,74
8,46
15x300
Object
13,77
10,65
12,01
29,10
52,32
15,92
19,61
42,46
67,51
15x600
Object
15x300
Sparql
15x600
Sparql
30x300
Object
30x600
Object
30x300
Sparql
30x600
Sparql
88
Intervalo de Confiana
(seg)
10,0000
10,0000
6,2855
5,8835
1,0000
1,0000
0,3288
0,3095
0,1000
0,4020
0,3788
0,1526
0,1450
6,0845
0,1000
0,3191
0,3904
1200 Object
300 SPARQL
0,1488
0,0100
0,0100
300 Object
1200 SPARQL
Figura 6.30: Tempo de Busca (TB) utilizando os algoritmos com 15 clientes (CJE-6).
possvel afirmar que os resultados dos tempos de busca com 15 clientes desse CJE-6 so
maiores que os tempos de busca do CJE-2, com exceo do experimento com 1200 servios e o
algoritmo OntObjectSPARQL. Comparando ambos os experimentos em seus respectivos conjuntos,
observam-se que as mdias dos resultados obtidos esto sobrepostas aos intervalos de confiana.
Isso indica que o fato das monitoraes estarem ativas no foi suficiente para superar a grande
variao de tempo exercida neste experimento em especifico. Portanto, a sobrecarga gerada pelas
monitoraes aumenta os tempos mdios de busca, porm no possvel afirmar que eles so
estatisticamente diferentes considerando um intervalo de confiana de 95%.
Por outro lado, utilizando-se a escala logartmica, a Figura 6.31 exibe os resultados com 30
clientes concorrentes deste CJE-6 e apresenta um tempo de busca (TB) maior no experimento
com 1200 servios e o algoritmo OntObjectSPARQL do que o seu correspondente no CJE-2. Isso
significa que, com 30 clientes a sobrecarga imposta pelas monitoraes teve um efeito mais significativo no tempo de busca (TB), pois, o nmero de requisies diretamente proporcional
quantidade de vezes que o mdulo precisa analisar e selecionar o melhor provedor. Ou seja, quanto
89
Intervalo de Confiana
(seg)
15,7474
15,0837
10,0000
1,0000
0,8063
0,7275
0,9119
0,8463
1,6987
1,6183
10,0000
1,0000
15,4156
0,1000
0,7669
0,8791
300 Object
1200 Object
1,6585
0,1000
0,0100
0,0100
300 SPARQL
1200 SPARQL
Figura 6.31: Tempo de Busca (TB) utilizando os algoritmos com 30 clientes (CJE-6).
Os resultados dos tempos de resposta para os clientes (RTC) esto exibidos na Figura 6.32.
importante lembrar que esse tempo envolve principalmente o tempo de transmisso das informaes pela rede e o tempo de processamento das mensagens SOAP, tanto do lado do mdulo
como do lado do cliente. Os tempos mdios de resposta para os clientes neste sexto conjunto de
experimentos so maiores que os seus correspondentes no CJE-2. Dessa forma, a anlise estatstica
indica que de acordo com os resultados obtidos nestes conjuntos de experimentos, pode-se afirmar
que eles so estatisticamente diferentes.
Os resultados de RTC com 15 clientes de cada experimento (Figura 6.32) tambm so estatisticamente diferentes.
Na Figura 6.33 so exibidos os tempos de respostas com 30 clientes simultneos. O comportamento e a anlise desses resultados so praticamente os mesmos dos resultados com 15 clientes.
Porm, o tempo mdio de resposta para o cliente foi maior em cada um dos experimentos.
A Tabela 6.13 lista o fatorial completo 23 das mdias dos tempos de busca (TB) do mdulo,
as mdias dos tempos de resposta para os clientes (RTC) e a partir dessas ltimas mdias so
calculadas as vazes (Throughput).
90
Intervalo de Confiana
(seg)
10,0000
10,0000
6,6488
6,2455
1,0000
0,6851
0,6004
0,4375
0,4006
1,0000
0,6847
0,6313
6,4472
0,1000
0,4191
0,6428
0,6580
1200 Object
300 SPARQL
0,1000
0,0100
0,0100
300 Object
1200 SPARQL
Figura 6.32: Tempo de Resposta para o Cliente (RTC) utilizando os algoritmos com 15 clientes
(CJE-6).
Intervalo de Confiana
(seg)
15,7474
15,0837
10,0000
1,0000
0,8063
0,7275
0,9119
0,8463
1,6987
1,6183
10,0000
1,0000
15,4156
0,1000
0,7669
0,8791
300 Object
1200 Object
1,6585
0,1000
0,0100
0,0100
300 SPARQL
1200 SPARQL
Figura 6.33: Tempo de Resposta para o Cliente (RTC) utilizando os algoritmos com 30 clientes
(CJE-6).
As porcentagens de influncia de cada fator durante a execuo dos experimentos na busca por
servios so exibidas na Figura 6.34.
Os resultados apresentados na Tabela 6.13 resumem as observaes discutidas no decorrer
desta subseo. A porcentagem de influncia de cada fator foi calculada, conforme exibe a Figura
6.34. Em concordncia com os resultados dos outros conjuntos de experimentos, neste sexto conjunto o fator C (Algoritmo) foi novamente o que mais influencia nos experimentos executados.
Esse fator obteve 29,84% de influncia ficando frente do fator A (Nmero de Servios) com
25,39% e a interao entre fatores AC com 23,68%. Ao contrrio do que houve com a influncia
91
Fator A
(N. Servios)
300
300
300
300
1200
1200
1200
1200
Fator B
(N. Clientes)
15
15
30
30
15
15
30
30
Fator C
(Algoritmo)
Object
SPARQL
Object
SPARQL
Object
SPARQL
Object
SPARQL
TB Mdia
0,14883
0,39042
0,38433
1,31037
0,31912
6,08451
0,55112
15,03554
RTC Mdia
0,4191
0,658
0,7669
1,6585
0,6428
6,4472
0,8791
15,4156
Throughput
2,39
1,52
1,3
0,6
1,56
0,16
1,14
0,06
no CJE-5, o fator A manteve a segunda posio. Esse resultado era previsto, pois o nmero de
servios entre os conjuntos de experimentos 5 e 6 so diferentes, enquanto no CJE-5 a avaliao
considerou at 600 servios, o CJE-6 considerou at 1200 servios.
BC 5,75%
AC 23,68%
ABC 4,20%
A (N. Servios) 25,39%
A (N. Servios)
B (N. Clientes)
C (Algoritmo)
AB
AC
BC
ABC
C (Algoritmo) 29,84%
Figura 6.34: Porcentagem de Influncia de cada fator no tempo de busca (TB) do mdulo
durante os experimentos (CJE-6).
O fator fixo Monitorao de Carga (MC) estava ativo (ON) neste conjunto de experimentos.
Os resultados sobre a carga de processamento imposta pelo mdulo durante os experimentos esto
exibidos na Figura 6.35.
92
100,00
88,94
90,00
85,59
80,86
80,00
74,73
70,00
60,00
50,00
47,07
40,00
33,04
32,38
37,85
30,00
22,36
20,00
27,08
25,82
18,08
17,53
10,00
0,00
13,77
9,19
7,74
8,46
19,95
29,10
77,79
15,92
30,06
42,46
87,26
15x300
Object
15x1200
Object
15x300
Sparql
15x1200
Sparql
30x300
Object
30x1200
Object
30x300
Sparql
30x1200
Sparql
93
2,0000
2.00000
1.30854
1.23181
1,0000
1.00000
0.62028
0.46103
0.34354
0.33728
0,0000
0.58174
0.39971
0,3404
0,4304
0,6010
1,2702
300 Object
600 Object
300 SPARQL
600 SPARQL
0.00000
Figura 6.36: Tempo de Resposta para o Cliente (RTC) utilizando os algoritmos com 15 clientes
(CJE-7).
Analisando-se os resultados da Figura 6.36 verificou-se que os experimentos que utilizam o algoritmo OntAlgorithmObject possuem um desempenho melhor. Esse comportamento o mesmo
dos outros conjuntos de experimentos e, alm disso, quanto maior o nmero de servios, maior
o tempo de resposta. Os resultados de tempo de resposta nos 15 clientes do CJE-7 so estatisticamente inferiores aos resultados dos outros conjuntos de experimentos correspondentes (CJE-1 e
CJE-5). Esse resultado faz sentido, pois neste stimo conjunto de experimentos no h sobrecarga
imposta por nenhuma monitorao. Os resultados para 30 clientes concorrentes so exibidos na
Figura 6.37 e mantm os mesmo princpios dos resultados com 15 clientes. A diferena que os
tempos com 30 clientes so maiores.
RTC 30 Clientes - 300x600 Servios - OntAlgorithmObject x OntAlgorithmSPARQL
Mdia (seg)
Intervalo de Confiana
(seg)
4,0000
4.00000
2.98253
3,0000
3.00000
2.85980
2,0000
2.00000
1,0000
0,0000
0.57200
0.50870
0,5403
300 Object
0.68170
0.94945
0.88661
1.00000
0.59743
0,6396
0,9180
2,9212
600 Object
300 SPARQL
600 SPARQL
0.00000
Figura 6.37: Tempo de Resposta para o Cliente (RTC) utilizando os algoritmos com 30 clientes
(CJE-7).
94
A Tabela 6.14 lista o fatorial completo 23 das mdias dos tempos de resposta para os clientes
(RTC) e a partir dessas mdias so calculadas as vazes (Throughput).
Tabela 6.14: Fatorial completo 23 e Mdias do Tempo de Busca (TB) do CJE-7
Fator A
(N. Servios)
300
300
300
300
600
600
600
600
Experimento
1
2
3
4
5
6
7
8
Fator B
(N. Clientes)
15
15
30
30
15
15
30
30
Fator C
(Algoritmo)
Object
SPARQL
Object
SPARQL
Object
SPARQL
Object
SPARQL
RTC Mdia
0,34041
0,60101
0,54035
0,91803
0,43037
1,27018
0,63956
2,92117
Throughput
2,94
1,66
1,85
1,09
2,32
0,79
1,56
0,34
Os resultados apresentados na Tabela 6.14 facilitam a visualizao da superioridade do algoritmo OntAlgorithmObject na velocidade de atendimento das requisies e, consequentemente, na
vazo. As porcentagens de influncia dos fatores foram calculadas e esto apresentadas na Figura
6.38.
AC
15,37%
ABC
BC
6,06% 4,37%
AB
4,50%
A (N. Servios)
20,40%
B (N. Clientes)
14,08%
A (N. Servios)
B (N. Clientes)
C (Algoritmo)
AB
AC
BC
ABC
C (Algoritmo)
35,22%
Figura 6.38: Porcentagem de Influncia de cada fator no tempo de resposta nos clientes (RTC)
durante os experimentos (CJE-7).
Os resultados de influncia neste CJE-7 foram calculados considerando-se os tempos de respostas nos clientes. Observa-se que o fator C (Algoritmo) novamente o fator que mais tem
influncia no sistema com 35,22%. Na segunda posio ficou o fator A (Nmero de Servios) com
20,40, seguido pela interao entre os fatores A e C (AC) com 15,37%. O fator B (Nmero de
Clientes) aparece em quarto lugar com 14,08% e as demais interaes complementam o restante
da influncia. Nota-se que o clculo da influncia confirma que a variao de utilizao de um algoritmo por outro tem impacto nos resultados. A discrepncia de desempenho entre os algoritmos
95
justifica essa maior influncia. A quantidade de clientes concorrentes no teve muito impacto neste
CJE-7. Pelo contrrio, foi minimizada pela inativao dos monitoramentos e dos registradores de
log e desempenho, pois, a cada requisio no foi mais preciso registrar logs em arquivos ou base
de dados e nem monitorar e selecionar provedores dinamicamente. Por outro lado, no foi possvel coletar dados de carga de processamento. Alm disso, no possvel realizar um processo
de depurao de erros, embora esses no tenham ocorrido durante os experimentos, pois todas as
requisies foram atendidas.
6.5.2.8 Conjunto de Experimentos 8
O oitavo conjunto de experimentos (CJE-8) complementa o stimo conjunto de experimentos
(CJE-7). Conforme a Tabela 6.9, a diferena entre eles est apenas nos nveis do fator A (Nmeros
de Servios) e, consequentemente, essa diferena afeta os resultados do clculo de influncia dos
fatores.
Na ausncia dos dados coletados pela Gravao de Log (GL) foi possvel recuperar resultados
apenas do Tempo de Resposta dos Clientes (RTC). Os resultados para 15 clientes concorrentes
considerando 300 ou 1200 servios com ambos os algoritmos esto exibidos em escala logartmica
na Figura 6.39.
RTC 15 Clientes - 300x1200 Servios - OntAlgorithmObject x OntAlgorithmSPARQL
Mdia (seg)
10,0000
10,0000
6,3097
5,9756
1,0000
1,0000
0,5827
0,3435
0,3373
0,4974
0,6203
0,5817
0,5400
0,6010
1200 Object
300 SPARQL
6,1427
0,3404
0,1000
0,1000
300 Object
1200 SPARQL
Figura 6.39: Tempo de Resposta para o Cliente (RTC) utilizando os algoritmos com 15 clientes
(CJE-8).
Da mesma forma que nos outros conjuntos de experimentos, aqueles experimentos que foram
executados utilizando o algoritmo OntAlgorithmObject tiveram um melhor tempo de resposta. A
quantidade de nmero de servios e o tempo de resposta tm uma relao direta, ou seja, quanto
maior o nmero de servios maior ser o tempo de resposta. Contudo, esse aumento no segue um
padro linear, isso significa que dobrar ou quadruplicar o nmero de servios no ir necessariamente aumentar o tempo de resposta em duas ou quatros vezes respectivamente.
96
A anlise dos resultados com 30 clientes semelhante quela com 15 clientes. Porm, os tempos de resposta so maiores devido ao aumento da carga de trabalho imposta por mais requisies
concorrentes. A Figura 6.40, em escala logartmica, exibe os resultados dos tempos de resposta do
mdulo com 30 clientes, 300 ou 1200 servios e ambos os algoritmos de busca.
RTC 30 Clientes - 300x1200 Servios -OntAlgorithmObject x OntAlgorithmSPARQL
Mdia (seg)
Intervalo de Confiana
(seg)
12,8146
12,2433
10,0000
1,0000
0,7684
0,5720
0,9494
0,8866
12,5290
10,0000
1,0000
0,6957
0,5087
0,5403
0,7320
0,9180
0,1000
0,1000
300 Object
1200 Object
300 SPARQL
1200 SPARQL
Figura 6.40: Tempo de Resposta para o Cliente (RTC) utilizando os algoritmos com 30 clientes
(CJE-8).
O resultado do tempo de resposta para 30 clientes com 1200 Servios e o algoritmo OntAlgorithmSPARQL inviabiliza a utilizao do mdulo nessas condies, pois, trata-se de um tempo de
espera demasiadamente alto por parte do usurio (cliente). Neste oitavo conjunto de experimento
no foi possvel coletar informaes sobre a taxa de processamento da mquina que hospeda o
mdulo, porm relembrando que o resultado correspondente no CJE-6 (que atingiu quase 90% de
utilizao dos processadores) foi de 15,41 segundos na mdia, enquanto neste conjunto de experimentos (CJE-8) foi de 12,52 segundos na mdia. Portanto, considerando esse exemplo (o pior caso
com o maior nmero de servios, o maior nmero de clientes e o pior algoritmo) nota-se que h
uma pequena influncia dos fatores fixos de monitorao e de gravao de informaes (logs e desempenho). Contudo, as porcentagens de influncia dos fatores fixos no puderam ser calculadas,
pois embora eles variem de estado (ativo ou inativo) entre um conjunto de experimento e outro,
dentro do mesmo conjunto de experimento eles estavam fixos. Variar estes fatores fixos dentro dos
conjuntos de experimentos seria preciso o clculo do fatorial completo de 27 , criando assim uma
quantidade de possibilidades com 128 experimentos diferentes.
A Tabela 6.15 lista esse fatorial completo 23 das mdias dos tempos de resposta para os clientes
(RTC) e com base nessas mdias so calculadas as vazes (Throughput).
Com base nos resultados da Tabela 6.15 foi possvel calcular a influncia dos fatores que podem
ser observados na Figura 6.41.
97
Fator A
(N. Servios)
300
300
300
300
1200
1200
1200
1200
BC 3,70%
AC 26,06%
Fator B
(N. Clientes)
15
15
30
30
15
15
30
30
Fator C
(Algoritmo)
Object
SPARQL
Object
SPARQL
Object
SPARQL
Object
SPARQL
RTC Mdia
0,34041
0,60101
0,54035
0,91803
0,54003
6,14269
0,73204
12,52897
Throughput
2,94
1,66
1,85
1,09
1,85
0,16
1,37
0,08
ABC 3,43%
A (N. Servios) 28,55%
A (N. Servios)
B (N. Clientes)
C (Algoritmo)
AB
AC
BC
ABC
C (Algoritmo) 30,18%
Figura 6.41: Porcentagem de Influncia de cada fator no tempo de resposta nos clientes (RTC)
durante os experimentos (CJE-8).
Analisando os resultados da Figura 6.41 verifica-se que, apesar de porcentagens diferentes,
as posies dos principais fatores foram as mesmas da Figura 6.41. O fator C (Algoritmo) teve
a maior influncia no sistema com 30,18%. Na segunda posio ficou o fator A (Nmero de
Servios) com 28,55%, seguido pela interao entre os fatores A e C (AC) com 26,06%. O fator B
(Nmero de Clientes) aparece em quarto lugar com 4,67% e as demais interaes complementam
o restante da influncia. Nota-se que o fator A neste CJE-8 teve um aumento quando comparado
ao seu correspondente no CJE-7, pois o experimento considerou um nmero maior de servios
cadastrados na ontologia e no registro UDDI.
6.6
Consideraes Finais
98
C APTULO
7
Concluses
7.1
Concluso Geral
100
7.2. CONTRIBUIES
Aps a concluso da parte de desenvolvimento, uma das maiores preocupaes foi manter o
ambiente de teste configurado corretamente para que os testes fossem realizados com sucesso. Foi
preciso certificar-se de que os arquivos de configuraes estavam corretos e que as quantidades de
clientes e servios estavam de acordo com os experimentos. Dos trs algoritmos desenvolvidos,
os dois escolhidos para a avaliao de desempenho foram testados exaustivamente e, assim como
o mdulo UDOnt-Q, provaram ser funcionais, com o algoritmo OntAlgorithmObject sendo mais
eficiente em termos de tempo de busca do servio, tempo de resposta ao cliente, vazo e eficincia
de processamento. A vantagem do algoritmo OntAlgoritmSPARQL que ele pode ser facilmente
adaptado para outras ontologias, pois basicamente preciso a alterao da query de consulta e
possveis ajustes no retorno da informao que a ontologia oferece. Porm, os resultados mostram
que, nas condies propostas, esse algoritmo o menos eficiente.
Dessa forma, este estudo produziu resultados importantes em relao a uma abordagem multidisciplinar para solucionar um problema de qualidade em um sistema distribudo, como o caso de
uma arquitetura SOA para Web Services. A execuo de uma avaliao de desempenho serviu no
apenas para verificar o desempenho do projeto proposto, mas tambm para quantificar e destacar
as vantagens e desvantagens da utilizao de alguns recursos da rea de Web Semntica na busca
por garantir a QoS adequada em Web Services.
7.2
Contribuies
CAPTULO 7. CONCLUSES
101
7.2.1
Produo Cientfica
Este projeto de mestrado permitiu a produo inicial de dois artigos que foram publicados em
eventos cientficos e uma monografia, publicada como Notas Didticas, no mbito do ICMC, como
listados a seguir:
- NAKAMURA, L. H. V. ; ESTRELLA, J. C. ; SANTANA, M. J. ; SANTANA, R. H. C.
Semantic Web and Ontology applied to Web Services Discovery with QoS. Proceedings of the
12th Brazilian Symposium on Computer Systems of High Performance (IEEE), 2011, Vitria, ES,
Brazil.
- NAKAMURA, L. H. V. ; ESTRELLA, J. C. ; SANTANA, M. J. ; SANTANA, R. H. C.
Using Semantic Web for Selection of Web Services with QoS. Proceedings of the 17th Brazilian
Symposium on Multimedia and the Web, 2011. Florianpolis, SC, Brazil.
- NAKAMURA, L. H. V.; ESTRELLA, J. C.; SANTANA M. J.; SANTANA R. H. C. Desenvolvimento de Web Services com Eclipse. Notas Didticas - ICMC-USP, 2011, So Carlos,
SP.
7.3
Trabalhos Futuros
As contribuies alcanadas neste projeto de mestrado so significativas, pois apresentam resultados adequados do emprego de Web Semntica na seleo de Web Services com QoS. Alm
disso, os resultados obtidos nas avaliaes de desempenho podem ser comparados com outras
propostas e as aplicaes desenvolvidas utilizadas em novos projetos. Em sequncia ao trabalho
desenvolvido, podem ser adotadas algumas melhorias para a obteno de novos resultados. Sendo
assim, para trabalhos futuros destacam-se as seguintes sugestes:
Realizar uma anlise mais detalhada nos cdigos e bibliotecas do mdulo, Jena e Pellet a
fim de encontrar a razo do comportamento do algoritmo OntAlgorithmSPARQL.
102
Utilizar outra mquina de inferncia para verificar se o comportamento no processo de inferncia sofre grandes variaes. Por exemplo, substituindo o Pellet pelo FaCT++18 .
O fato da mquina de inferncia Pellet ocupar apenas um ncleo durante o processo de
inferncia leva necessidade de mais investigao visando soluo para esse problema. Por
exemplo, utilizando-se conceitos de computao concorrente (paralela) pretende-se realizar
uma decomposio de dados e dividir tais dados em vrios elementos de processamentos,
para que sejam executados em um modelo mestre-escravo. Dessa forma, a ontologia seria
replicada para cada provedor e em cada cpia da ontologia haveria apenas os indivduos
(servios, acordos, clientes, etc.) do provedor que ela representa (decomposio de dados).
Cada cpia da ontologia com seus respectivos indivduos seriam associados a uma instncia
da mquina de inferncia Pellet. O mdulo (mestre) daria incio ao processo de inferncia
distribudo em paralelo uma vez que cada instncia do Pellet (escravo) estaria associada a
um ncleo de processamento.
Alterar o cdigo da mquina de inferncia Pellet para que utilize todos os recursos computacionais disponveis pode ser outra soluo, contudo analisando parte do cdigo fonte do
Pellet notou-se que h muitos mtodos recursivos o que tornam esta tarefa no trivial.
Novos algoritmos de seleo e composio de servios podem ser desenvolvidos e avaliados
com o auxilio do mdulo UDOnt-Q.
Novos fatores, nveis e variveis de respostas podem ser considerados em futuras avaliaes
de desempenho. Por exemplo, pode-se analisar o tempo gasto pelo mdulo (mais especificamente pelo componente CIS) quando os provedores precisam cadastrar as informaes no
funcionais (QoS) na ontologia e as funcionais no registro UDDI.
Novas ferramentas e recursos podem ser substitudos para verificar a sua influncia no desempenho. Por exemplo, substituir o SGBD MySQL pelo PostgreSQL19 , o software de
monitoramento distribudo Ganglia pelo Nagios20 ou ainda o framework Jena pela OWL
API21 .
Outras tcnicas de anlise de desempenho alternativas ao processo de regresso com a anlise
pelo fatorial completo podem ser utilizadas. Por exemplo, pode-se utilizar futuramente a
Anlise de Varincia com Mltiplos Fatores (ANOVA N-WAY).
Finalmente, melhorias podem ser implementadas no mdulo referente parte de segurana
e tolerncia a falhas.
18
http://owl.man.ac.uk/factplusplus/
http://www.postgresql.org/
20
http://www.nagios.org/
21
http://owlapi.sourceforge.net/
19
Referncias
A KLOUF, Y.; R EZIG , E. An ontological approach for dynamic functionality-based web services
discovery using expert systems. In: Applications of Digital Information and Web Technologies,
2009. ICADIWT 09. Second International Conference on the, 2009, p. 187 192.
A MBLER , S. Agile modeling: Effective practices for extreme programming and the unified process. New York, NY, USA: John Wiley & Sons, Inc., 2002.
A NTONIOU , G.; H ARMELEN , F. V. Semantic web primer, 2nd edition. MIT Press, 2008.
BAOCAI , Y.; H UIRONG , Y.; P ENGBIN , F.; L IHENG , G.; M INGLI , L. A framework and qos
based web services discovery. In: Software Engineering and Service Sciences (ICSESS), 2010
IEEE International Conference on, 2010, p. 755 758.
B ERNARAS , A.; L ARESGOITI , I.; C ORERA , J. Building and reusing ontologies for electrical network applications. Proceedings of the European Conference on Artificial Intelligence
(ECAI96), p. 298302, 1996.
B ERNERS -L EE , T. Semantic web on xml - semantic web - xml2000. Disponvel em: http:
//www.w3.org/2000/Talks/1206-xml2k-tbl/. ltimo acesso: 14/12/2009, 2000.
B HAKTI , M.; A BDULLAH , A. Design of an autonomic services oriented architecture.
Information Technology (ITSim), 2010 International Symposium, 2010, p. 805 810.
In:
B ROEKSTRA , J.; K LEIN , M.; D ECKER , S.; F ENSEL , D.; H ARMELEN , F.; H ORROCKS , I. Enabling knowledge representation on the web by extending rdf schema. In: In Proceedings of
the Tenth International World Wide Web Conference (WWW10), Hong Kong, 2001.
C ARASE , S. J. Uma ontologia funcional de reputao para agentes. Dissertao de mestrado
em engenharia eltrica, Escola Politcnica da Universidade de So Paulo - USP, So Paulo, SP,
2005.
103
104
REFERNCIAS
C ARROLL , J. J.; D ICKINSON , I.; D OLLIN , C.; R EYNOLDS , D.; S EABORNE , A.; W ILKINSON ,
K. Jena: implementing the semantic web recommendations. In.Proceedings of the 13th international World Wide Web conference on Alternate track papers and posters, 2004.
E NDREI , M.; A NG , J.; A RSANJANI , A.; C HUA , S.; C OMTE , P.; K ROGDAHL , P.;
L UO , M.; N EWLING , T.
Patterns: Service-oriented architecture and web services.
IBM Redbooks, disponvel em: http://www.redbooks.ibm.com/redbooks/pdfs/
sg246303.pdf. ltimo acesso: 15/12/2009, 2004.
E RL , T. Soa princpios de design de servios. Pearson Prentice Hall PTR, 2009.
E RRADI , A.; M AHESHWARI , O. A broker-based approach for improving web services reliability.
In: IEEE International Conference on Web Services (ICWS05), 2005.
E STRELLA , J.; T OYOHARA , R.; K UEHNE , B.; TAVARES , T.; S ANTANA , R.; S ANTANA , M.;
B RUSCHI , S. A performance evaluation for a qos-aware service oriented architecture. In:
Services (SERVICES-1), 2010 6th World Congress on, 2010, p. 260 267.
E STRELLA , J. C. Wsarch: Uma arquitetura para proviso de web services com qualidade de
servio. Tese de doutorado, ICMC-USP, So Carlos, SP, 2010.
FAKHFAKH , K.; C HAARI , T.; TAZI , S.; D RIRA , K.; J MAIEL , M. A comprehensive ontologybased approach for sla obligations monitoring. The Second International Conference on Advanced Engineering Computing and Applications in Sciences, 2008.
FARKAS , P.; C HARAF, H.
p. 912, 2003.
F ISHER , M.; B LACE , R.; H EBELER , J.; P EREZ -L OPEZ , A. Semantic web programming. Wiley,
2009.
G ENNARI , J. H.; M USEN , M. A.; F ERGERSON , R. W.; G ROSSO , W. E.; C RUBZY, M.; E RIKS SON , H.; N OY, N. F.; T U , S. W. The evolution of protg: An environment for knowledgebased systems development. International Journal of Human-Computer Studies, 2002.
G OH , C. M.; L EE , S. P.; H E , W.; TAN , P. S. Web 2.0 concepts and technologies for dynamic
b2b integration. In: Emerging Technologies and Factory Automation - ETFA, IEEE, 2007.
G RUNINGER , M.; F OX , M. S. Methodology for design and evaluation of ontologies. In: Proceedings of Workshop on basic Ontological Issues in Knowledge Sharing, 1995.
H EFLIN , J. D. Towards the semantic web: Knowledge representation in a dynamic, distributed
environment. Tese de doutorado, University of Maryland, Maryland - USA, 2001.
REFERNCIAS
105
H OLGER , K.; R ECTOR , A.; S TEVENS , R.; W ROE , C.; J UPP, S.; M OULTON , G.;
D RUMMOND , N.
A Practical Guide To Building OWL Ontologies Using Protg 4 and CO-ODE Tools Edition 1.2.
The University Of Manchester, disponvel
em: http://owl.cs.manchester.ac.uk/tutorials/protegeowltutorial/
resources/ProtegeOWLTutorialP4_v1_2.pdf, 2009.
H OPPER , J. Reduza o consumo de energia do linux, parte 1: Subsistema cpufreq. Disponvel em:
http://www.ibm.com/developerworks/br/linux/library/l-cpufreq-1/. ltimo acesso: 14/09/2011,
2009.
IBM Web service level agreements (wsla) project. Disponvel em: http://www.research.
ibm.com/wsla/about.html. ltimo acesso: 10/12/2009, 2009.
I SOTANI , S.; M IZOGUCHI , R.; B ITTENCOURT, I. I.; C OSTA , E. D . B. Estado da arte em web
semntica e web 2.0: Potencialidades e tendncias da nova gerao de ambientes de ensino na
internet. Revista Brasileira de Informtica na Educao, v. 17, p. 3042, 2009.
JAIN , R. The art of computer systems performance analysis: techniques for experimental design,
measurement, simulation, and modeling. Wiley, 1991.
J OSUTTIS , N. M. SOA na prtica - A Arte da Modelagem de Sistemas Distribudos. 1st. ed.
Oreilly, 2008.
KOMODA , N. Service oriented architecture (soa) in industrial systems. In: IEEE International
Conference on Industrial Informatics, IEEE, 2006.
K RITIKOS , K.; P LEXOUSAKIS , D. Requirements for qos-based web service description and
discovery. In: Computer Software and Applications Conference, 2007. COMPSAC 2007. 31st
Annual International, 2007, p. 467 472.
L EE , S.; S HIN , D. Web service qos in multi-domain. In: Proceedings of Advanced Communication Technology, - ICACT, 2008.
L EE , T. B.; F ISCHETTI , M. Weaving the web - the original design and ultimate destiny of the
world wide web, by its inventor. ISBN 006251587X, 1997.
L EE , Y. Quality-context based soa registry classification for quality of services. In: Proceedings
of the 2008 IEEE International WorkShop on Semantic Computing and Applications, IEEE,
2008.
L OPEZ , M.; G OMEZ -P EREZ , A.; S IERRA , J.; S IERRA , A. Building a chemical ontology using
methontology and the ontology design environment. Intelligent Systems and their Applications,
IEEE, v. 14, n. 1, p. 37 46, 1999.
106
REFERNCIAS
L OPEZ , M. F.; G OMEZ -P EREZ , A.; J URISTO , N. METHONTOLOGY: from Ontological Art
towards Ontological Engineering. In: Proceedings of the AAAI97 Spring Symposium, Stanford,
USA, 1997, p. 3340.
L UO , J.; M ONTROSE , B.; K IM , A.; K HASHNOBISH , A.; K ANG , M. Adding owl-s support to
the existing uddi infrastructure. In: IEEE International Conference on Web Services (ICWS06),
IEEE, 2006.
M A , C.; S ONG , M.; X U , K.; Z HANG , X. Web service discovery research and implementation
based on semantic search engine. In: Web Society (SWS), 2010 IEEE 2nd Symposium on, 2010,
p. 672 677.
M ALIK , S.; G OEL , A.; M ANIKTALA , S. A comparative study of various variants of sparql in
semantic web. In: Computer Information Systems and Industrial Management Applications
(CISIM), 2010 International Conference on, 2010, p. 471 474.
M ARTIMIANO , L. A. F. Sobre a estruturao de informao em sistemas de segurana computacional: o uso de ontologia. Tese de doutorado em cincias de computao e matemtica
computacional, ICMC-USP, So Carlos, SP, 2006.
M ARTIN , D.; B URSTEIN , M.; H OBBS , J.; L ASSILA , O.; M C D ERMOTT, D.; M C I LRAITH ,
S.; NARAYANAN , S.; PAOLUCCI , M.; PARSIA , B.; PAYNE , T.; S IRIN , E.; S RINI VASAN , N.; S YCARA , K.
Owl-s: Semantic markup for web services. Disponvel em:
http://www.w3.org/Submission/OWL-S/. ltimo acesso: 14/08/2009, 2004.
M ASSIE , M. L.; C HUN , B. N.; C ULLER , D. E. The ganglia distributed monitoring system:
Design, implementation and experience. Parallel Computing, v. 30, p. 2004, 2003.
M ATOS , J. Distribuio de carga flexvel e dinmica para provedores de web services. Dissertao de mestrado, ICMC - Universidade de So Paulo, So Carlos, SP, 2009.
M AXIMILIEN , E. M.; S INGH , M. P. A framework and ontology for dynamic web services
selection. IEEE Internet Computing, 2004.
M URUGESAN , S. Understanding web 2.0. IT Professional, v. 9, n. 4, p. 3441, 2007.
NAKAMURA , L. V.; E STRELLA , J. C.; S ANTANA , M. J.; S ANTANA , R. H. C. Semantic web
and ontology applied to web services discovery with qos. Proceedings of the 12th Brazilian Symposium on Computer Systems of High Performance (IEEE), 2011, Vitria, ES, Brasil.,
2011a.
NAKAMURA , L. V.; E STRELLA , J. C.; S ANTANA , M. J.; S ANTANA , R. H. C. Using semantic
web for selection of web services with qos. Proceedings of the 17th Brazilian Symposium on
Multimedia and the Web, Florianpolis, SC, Brazil, 2011b.
REFERNCIAS
107
N OY, N. F.; M C G UINNESS , D. L. Ontology development 101: A guide to create your first
ontology. Relatrio Tcnico, Knowledge System Laboratory - Stanford University, 2001, 2001.
O REN , E.; KOTOULAS , S.; A NADIOTIS , G.; S IEBES , R.; T EIJE , A.; H ARMELEN , F. Marvin:
Distributed reasoning over large-scale semantic web data. Web Semant., v. 7, p. 305316, 2009.
PAPAIOANNOU , I. V.; T SESMETZIS , D. T.; ROUSSAKI , I. G.; A NAGNOSTOU , M. E. A qos
ontology language for web-services. Proceedings of the 20th International Conference on
Advanced Information Networking and Applications (AINA06), 2006.
PAPAZOGLOU , M. P.; G EORGAKOPOULOS , D. Service-oriented computing. Communications
of the ACM. October 2003/Vol. 46, No. 10, 2003.
P RUD HOMMEAUX , E.; S EABORNE , A. Sparql query language for rdf.
http://www.w3.org/TR/rdf-sparql-query/. ltimo acesso: 05/03/2011, 2008.
Disponvel em:
Disponvel em:
S EABORNE , A.
A programmers introduction to rdql.
Disponvel
http://jena.sourceforge.net/tutorial/RDQL/ ltimo acesso: 19/04/2009, 2004b.
em:
S IRIN , E.; PARSIA , B. Sparql-dl: Sparql query for owl-dl. In: In 3rd OWL Experiences and
Directions Workshop (OWLED-2007, 2007.
S IRIN , E.; PARSIA , B.; G RAU , B. C.; K ALYANPUR , A.; K ATZ , Y. Pellet: A practical owl-dl
reasoner. ACM - Journal of Web Semantics, 2007.
S MITH , M. K.; W ELTY, C.; M C G UINNESS , D. L. Owl web ontology language- guide.
Disponvel em: http://www.w3.org/TR/owl-guide/. ltimo acesso: 14/08/2009, 2004.
TANENBAUM , A. S. Redes de computadores. 4th. ed. Editora Campus, 2003.
TAVARES , R. K.; W ESTPHALL , C. B. An architecture to provide qos in web services. In: Communications Society subject matter experts for publication in the IEEE ICC 2006 proceedings,
IEEE Computer Society, 2006.
TAVARES , T. C. Caracterizao de cargas de trabalho para avaliao de desempenho em web
services. Dissertao de mestrado, Universidade de So Paulo, So Carlos, SP, 2009.
T HOMAS , J. P.; T HOMAS , M.; G HINEA , G. Modeling of web services flow. In: Proceedings of
the IEEE International Conference on E-Commerce (CEC03), IEEE Computer Society, 2003.
108
REFERNCIAS
T OYOHARA , R. K. T. Construindo web services para avaliao de desempenho de uma arquitetura orientada a servios com qos. Qualificao de mestrado, USP - Universidade de So
Paulo, So Carlos, SP, 2009.
T RAN , V. X.; T SUJI , H.
A survey and analysis on semantic in qos for web services.
In.Proceedings of the international Conference on Advanced Information Networking and Applications, 2009.
T RAN , X. V. Ws-qosonto: A qos ontology for web services. In: In: 2008 IEEE International
Symposium on Service-Oriented System Engineering, IEEE International Symposium, 2008.
T SAI , Y.-H.; H WANG , S.-Y.; TANG , Y. A hybrid approach to automatic web services discovery.
In: Service Sciences (IJCSS), 2011 International Joint Conference on, 2011, p. 277 281.
U SCHOLD , M.; G RUNINGER , M. Ontologies: principles, methods and applications. Knowledge Engineering Review, 93155 p., 1996.
W3C Owl web ontology language reference. Disponvel em: http://www.w3.org/TR/owl-ref/
ltimo acesso: 21/04/2009, 2004a.
W3C Resource description framework (rdf): Concepts and abstract syntax. Disponvel em:
http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/ ltimo acesso: 21/04/2009, 2004b.
W3C Web ontology language overview. Disponvel em: http://www.w3.org/TR/owl-features/
ltimo acesso: 21/04/2009, 2004c.
W3C Web services architecture. Disponvel em: http://www.w3.org/TR/2004/NOTE-ws-arch20040211/ ltimo acesso: 19/04/2009, 2004d.
W U , H.; G UO , C. The research and implementation of web service classification and discovery
based on semantic. In: Computer Supported Cooperative Work in Design (CSCWD), 2011 15th
International Conference on, 2011, p. 381 385.
X U , Z.; M ARTIN , P.; P OWLEY, W.; Z ULKERNINE , F. Reputation-enhanced qos-based web
services discovery. Proceedings of the 2007 IEEE International Conference on Web Services
(ICWS), 2007.
Y E , G.; W U , C.; Y UE , J.; C HENG , S. A qos-aware model for web services discovery. Proceedings of the 2009 First International Workshop on Education Technology and Computer Science,
2009.
Y UAN - SHENG , L.; X IAO , H.; Y U , W.; S I - XIN , S. Research on a web services discovery model
framework. In: Computational Intelligence and Software Engineering (CiSE), 2010 International Conference on, 2010, p. 1 4.
REFERNCIAS
109
Z HOU , C.; C HIA , L.; L EE , B. Qos measurement issues with daml-qos ontology. Proceedings
of the 2005 IEEE International Conference on e-Business Engineering (ICEBE05), 2005.
110
REFERNCIAS
ANEXOS
111
113
114
ANEXO 1.
ANEXO 1
115
116
ANEXO 1.
117
118
ANEXO 1.
119
120
ANEXO 2.
ANEXO 2
Descrio
Agreement
(Acordo)
121
122
ANEXO 2.
123
Sinnimo
Instncias
Atributos
Relaes
Acrnimo/
Sigla
Agmt
[Name]Agreement
QoS
AgreementFine
AgreementName
hasQoS,
isAgreementOf
Client
Agent
[Name]Client
hasAgreement
Provider
[Name]Provider
Service
[Name]Service
QoS
[Name]QoS
ClientName,
ClientDescription,
ClientAddress,
Agreement
ProviderName,
ProviderAddress,
ProviderCompany,
Services
ServiceName,
ServiceDescription,
ServiceAddress,
ServiceCompany,
ServiceDeveloper,
ServiceInterface,
QoS
Provider
Accessibility
Accuracy
Availability
Capacity
Cost
Integrity
Interoperability
Latency
Performance
Reliability
Response Time
Robustness
Scalability
Security
Stability
Throughput
hasService
hasServiceQoS
IsServiceQoSof
IsQoSOf
124
ANEXO 2.
hasAgreement
Client
(1,1)
Agreement
(1,1)
isAgreementOf
Nome da Relao
Conceito fonte
Cardinalidade Fonte
Conceito Alvo
Cardinalidade Alvo
Propriedades Matemticas
Relao inversa
hasQoS
Agreement
(1,1)
QoS
(1,1)
isQoSOf
Nome da Relao
Conceito fonte
Cardinalidade Fonte
Conceito Alvo
Cardinalidade Alvo
Propriedades Matemticas
Relao inversa
hasService
Provider
(1,n)
Service
(n,1)
isServiceOf
Nome da Relao
Conceito fonte
Cardinalidade Fonte
Conceito Alvo
Cardinalidade Alvo
Propriedades Matemticas
Relao inversa
hasServiceQoS
Service
(1,1)
QoS
(1,1)
isServiceQoSof
125
(Clientes)
Instncia
[Name]Provider[Number]
(Provedores)
Instncia
[Name]Service[Number]
(Servios)
Instncia
[Name]Service[Number]QoS
Atributo
hasName
hasFine
hasQos
Valor
[Name]Agreement
(Double) Valor da Multa
[ClientName]QoS
Atributo
hasClientDescription
hasClientAddress
hasClientName
hasAgreement
Valor
(String)
(String) Endereo IP
(String) Mesmo da Instncia
[ClientName]Agreement
Atributo
hasProviderName
hasProviderAddress
hasProviderCompany
hasService
Valor
(String) Mesmo da Instncia
(String) Endereo IP
(String) USP[Number]
[Name]Service[Number]
Atributo
hasServiceName
hasServiceAddress
hasServiceInterface
hasServiceDescription
hasServiceDeveloper
hasServiceCompany
hasServiceQoS
Valor
(String) Mesmo da Instncia
(String) Endereo IP
(String) WSDL
(String)
(String) Luis Nakamura
(String) USP[Number]
[Name]Service[Number]QoS
Atributo
Todos os atributos da tabela
de QoS (Lee e Shin, 2008):
Valor
(Double) Nvel do atributo
de QoS.
has[atributo]ContentValue
(QoS dos Servios)
Instncia
[NameClient]QoS
Atributo
Todos os atributos da tabela
de QoS (Lee e Shin, 2008):
Valor
(Double) Nvel do atributo
de QoS.
has[atributo]ContentValue
(QoS dos Clientes)
No so listadas todas as instncias, pois na ontologia h mais de mil instncias (por exemplo, ontologia com 1200
servios e 30 clientes). Apenas o padro e valores adotados so exibidos.
126
ANEXO 2.
hasAgreementFine
Double
(1,1)
Nome do atributo
Tipo de Valor (Tipo de dado)
Intervalo de valores
Valor Padro
Cardinalidade
hasAgreementName
String
(1,1)
Nome do atributo
Tipo de Valor (Tipo de dado)
Intervalo de valores
Valor Padro
Cardinalidade
hasClientName
String
(1,1)
Nome do atributo
Tipo de Valor (Tipo de dado)
Intervalo de valores
Valor Padro
Cardinalidade
hasClientAddess
String
(1,1)
Nome do atributo
Tipo de Valor (Tipo de dado)
Intervalo de valores
Valor Padro
Cardinalidade
hasClientDescription
String
(1,1)
Nome do atributo
Tipo de Valor (Tipo de dado)
Intervalo de valores
Valor Padro
Cardinalidade
hasServiceCompany
String
(1,1)
Nome do atributo
Tipo de Valor (Tipo de dado)
Intervalo de valores
Valor Padro
Cardinalidade
hasServiceDeveloper
String
(1,1)
Nome do atributo
Tipo de Valor (Tipo de dado)
Intervalo de valores
Valor Padro
Cardinalidade
hasServiceInterface
String
(1,1)
Nome do atributo
Tipo de Valor (Tipo de dado)
Intervalo de valores
Valor Padro
Cardinalidade
hasServiceAddress
String
(1,1)
Nome do atributo
Tipo de Valor (Tipo de dado)
Intervalo de valores
Valor Padro
Cardinalidade
hasServiceDescription
String
(1,1)
127
Nome do atributo
Tipo de Valor (Tipo de dado)
Intervalo de valores
Valor Padro
Cardinalidade
hasServiceName
String
(1,1)
Nome do atributo
Tipo de Valor (Tipo de dado)
Intervalo de valores
Valor Padro
Cardinalidade
hasProviderAddress
String
(1,1)
Nome do atributo
Tipo de Valor (Tipo de dado)
Intervalo de valores
Valor Padro
Cardinalidade
hasProviderCompany
String
(1,1)
Nome do atributo
Tipo de Valor (Tipo de dado)
Intervalo de valores
Valor Padro
Cardinalidade
hasProviderName
String
(1,1)
Nome do atributo
Tipo de Valor (Tipo de dado)
Intervalo de valores
Valor Padro
Cardinalidade
has[Atributo_de_QoS]ContentValue
Double
(1,1)
Nome do atributo
Tipo de Valor (Tipo de dado)
Intervalo de valores
Valor Padro
Cardinalidade
hasAgreement
Agreement
(1,1)
Nome do atributo
Tipo de Valor (Tipo de dado)
Intervalo de valores
Valor Padro
Cardinalidade
hasQoS
QoS
(1,1)
Nome do atributo
Tipo de Valor (Tipo de dado)
Intervalo de valores
Valor Padro
Cardinalidade
hasService
Service
(1,n)
Nome do atributo
Tipo de Valor (Tipo de dado)
Intervalo de valores
Valor Padro
Cardinalidade
hasServiceQoS
QoS
(1,1)
128
ANEXO 3.
ANEXO 3
Anexo 3.1 - Criao de alguns elementos da ontologia do mdulo UDOnt-Q
Os primeiros elementos criados na ontologia do mdulo UDOnt-Q foram os provedores. Cinco
provedores foram cadastrados, este nmero foi escolhido pelo fato dos experimentos contarem
apenas com cinco servidores disponveis. Para atender a todas as possibilidades dos experimentos
foram criados vrios arquivos da mesma ontologia. Para o fator nmero de clientes h duas opes:
15 clientes e 30 clientes. Portanto, hora foram cadastrados 15 clientes hora 30 clientes na ontologia.
Para facilitar a execuo dos experimentos foram criados dois arquivos da ontologia para atender
essas duas possibilidades.
Na ontologia com 15 clientes foram criados:
1 Cliente Gold.
7 Clientes Silver.
7 Clientes Bronze.
Na ontologia com 30 clientes foram criados:
1 Cliente Gold.
15 Clientes Silver.
14 Clientes Bronze.
Para a criao de cada cliente na ontologia foi criado um acordo para ser associado a ele.
Seguindo essa sequencia, para cada acordo criado foi criada uma QoS.
O nmero de Web Services cadastrados na ontologia pode assumir trs valores (300,600 e 1200)
dependendo do experimento executado. Novamente, para facilitar os experimentos foram criadas
trs variaes do arquivo da ontologia. Para cada uma dessas variaes havia duas opes para o
nmero de clientes (15 e 30). Dessa forma, foram criados seis arquivos da ontologia.
Para cada Web Service cadastrado foi criada e associada uma QoS que quando inferida seria
classificada em uma subclasse do tipo Gold, Silver ou Bronze. Os valores dos atributos de cada
QoS foram gerados aleatoriamente, porm esses valores ficam dentro de um limite pr-definido
pelo programador. Dessa forma, o programado poderia determinar qual seria a subclasse de QoS
daquela determinada QoS que estava sendo criado e consequentemente a subclasse do Web Service.
Apenas uma pequena quantidade de Web Services poderia se encaixar na pesquisa dos algoritmos do UDOnt-Q. Portanto, o programador definiu que apenas 10% dos servios teriam o nome
de busca utilizados pelos clientes, os outros servios teriam outro nome diferente do nome de
servio que os clientes desejavam. Como nos experimentos houve requisies de vrios tipos de
129
clientes (Gold, Silver, Bronze) os servios foram igualmente divididos nestas trs categorias. A
figura a seguir exibe um exemplo da forma de como foram criados as QoS e Web Services para a
ontologia com 300 servios. Analisando a figura a seguir, nota-se que o programador cadastrava
os servios em cinco ciclos de 60, totalizando 300 servios. Em cada ciclo de 60 servios foram
cadastrados 6 (seis) servios com o nome procurado e outros 54 com outro nome. No total so
300 servios, porm apenas 30 servios possuem o nome da busca (10%) e esto divididos nas
trs subclasses (10 por subclasse). Da mesma forma as ontologias com 600 e 1200 servios foram
criadas.
60 Servios
1 ... 9 Servios
Gold
10 ... 18 Servios
Silver
19 ... 27 Servios
Bronze
28 e 29 Servios
Gold
30 e 31 Servios
Silver
32 e 33 Servios
Bronze
34 ... 42 Servios
Gold
43 ... 51 Servios
Silver
52 ... 60 Servios
Bronze
Outro
Nome
Nome da
Busca
X5
300
Servios
Outro
Nome
130
ANEXO 4.
ANEXO 4
Anexo 4.1 - Resultados dos Conjuntos de Experimentos (CJE) 3 e 4
Fator A
(N. Servios)
300
300
300
300
600
600
600
600
Fator B
(N. Clientes)
15
15
30
30
15
15
30
30
Fator C
(Algoritmo)
Object
SPARQL
Object
SPARQL
Object
SPARQL
Object
SPARQL
TB Mdia
0,10664
0,42057
0,29714
1,09020
0,15821
1,32245
0,35368
2,80296
RTC Mdia
0,36866
0,72796
0,59309
1,42669
0,46365
1,61105
0,68893
3,22292
Throughput
2,71
1,37
1,69
0,70
2,16
0,62
1,45
0,31
Fator A
(N. Servios)
300
300
300
300
1200
1200
1200
1200
Fator B
(N. Clientes)
15
15
30
30
15
15
30
30
Fator C
(Algoritmo)
Object
SPARQL
Object
SPARQL
Object
SPARQL
Object
SPARQL
TB Mdia
0,10664
0,42057
0,29714
1,09020
0,24107
6,02424
0,46384
12,44431
RTC Mdia
0,3687
0,7280
0,5931
1,4267
0,5830
6,3147
0,8131
12,8750
Throughput
2,71
1,37
1,69
0,70
1,72
0,16
1,23
0,08