Serviços Web Semânticos


                             Paulo Vitor Antonini Orlandin
                              paulovitor_e@hotmail.com




Resumo

O grande crescimento na utilização de Serviços Web torna imprescindível o
desenvolvimento de uma forma de melhoria no sistema de armazenamento e
disponibilização de informações para que se torne mais eficiente a maneira de
recuperar e transmitir dados. A motivação deste trabalho está em investigar e
explorar como associar informação semântica utilizando as tecnologias da Web
Semântica durante a disponibilização e recuperação de Serviços Web pelas
entidades provedoras e requisitantes em uma entidade registradora.


Palavras chave: Web Semântica. Serviços Web. WSMO. SWSF. OWL-S. WSDL-S.


1. Introdução
      É inegável que a utilização de Serviços Web traz benefícios concretos a
usuários e principalmente a empresas que aderem a esta tecnologia. Atualmente a
maioria das empresas vem adotando Serviços Web em busca de interoperabilidade
para suas aplicações. Além disso, mais vantagens são proporcionadas por esta
tecnologia, como integração de sistemas legados, agilidade no desenvolvimento,
diminuição de custos e integração de parceiros comerciais.

      Apesar de todas estas vantagens, a utilização de Serviços Web possui
algumas limitações, como falta de segurança, possíveis links quebrados e falta de
semântica. A falta de semântica ocorre devido a limitação da linguagem de descrição
de serviços (WSDL) e na entidade registradora, responsável pelo registro e pesquisa
de serviços (UDDI) (BREITMAN, 2005).

      A tecnologia atual de Serviços Web opera em nível sintático da informação,
exigindo assim a necessidade de intervenção humana para tomada de decisões.
Com esta tecnologia apenas descrevemos superficialmente as funcionalidades de
um serviço. Este modo de descrição ajuda um desenvolvedor na utilização do



                                                                                 1
serviço, mas significa muito pouco para interpretação de uma máquina (AKKIRAJU
et al., 2005).

       Ao analisarmos a descrição WSDL de um serviço não podemos dizer
inequivocamente o que o serviço faz, podemos observar seus parâmetros de
entrada e saída, mas não sabemos seus significados. Pode ocorrer de dois serviços
terem definições sintáticas diferentes e executarem a mesma função. Também pode
ocorrer de dois serviços possuírem mesma definição sintática e desempenharem
funções completamente diferentes. Por exemplo, dois serviços recebem um
parâmetro xsd:string e retornam um xsd:int. O primeiro serviço poderia ser um
getCodigo(), recebendo o nome do funcionário e retornando o código do mesmo. Já
o segundo poderia ser um serviço checarProduto(), onde passaríamos o nome do
produto e receberíamos como resposta sua quantidade (AKKIRAJU et al., 2005).

       A adoção de ontologias é atualmente a alternativa mais utilizada para
atribuição de semântica a descrições de serviços. A utilização de ontologias
enriquece a descrição dos serviços proporcionando uma automação maior no uso de
Serviços Web, melhorando assim tarefas de descoberta, seleção, composição e
execução de serviços (AKKIRAJU et al., 2005).

       Com o intuito de fornecer semântica a Serviços Web foram criadas algumas
linguagens para descrição de serviços como WSDL-S, WSMO, OWL-S e SWSF,
como ilustrado na figura 1.




     Figura 1. Integração entre Serviços Web e Web Semântica. Adaptado de Breitman (2005)




                                                                                            2
2. Web Ontology Language for Services (OWL-S)

      OWL-S é uma ontologia escrita na linguagem OWL-S cujo objetivo é atribuir
semântica a Serviços Web. OWL-S nada mais é do que a junção da descrição de
serviços WSDL com a descrição semântica provida pelo OWL (BREITMAN, 2005).

      O OWL-S é composto por três módulos: perfil de serviço, modelo de serviço e
base de serviço, como mostra a Figura 2. O perfil de serviço tem como objetivo
auxiliar o requisitante na tarefa de descoberta (BREITMAN, 2005). Descreve as
funcionalidades e características do serviço como entradas, resultados da execução,
saídas retornadas; basicamente expressa o que o serviço faz (MARTIN et al., 2004).
O modelo de serviço descreve como o serviço funciona. Indica ao requisitante qual
informação deve enviar ou receber em um determinado tempo do provedor de
serviços. Neste módulo cada serviço pode ser representado de duas formas: como
um processo atômico e compostos (composição de diversos processos) (MARTIN et
al., 2004). A base de serviço informa como acessar o serviço (protocolos de
comunicação). Descreve como processos se transformam em formatos concretos de
mensagem (BREITMAN, 2005).




Figura 2. Representação dos três módulos que compõem a ontologia OWL-S. Adaptado de Breitman
                                           (2005)

      O trecho de código a seguir demonstra um serviço sendo associado a três
documentos diferentes. Cada documento é referenciado por uma propriedade:

                                                                                           3
presents, responsável por definir o perfil; describedBy, responsável por modelar a
forma do serviço; e supports, responsável por definir a base do serviço.

1. <service:Service
2. rdf:ID="DDSOnt_SecondOpinionDiagnosis">
3. <service:presents
4.     rdf:resource=" http://143.107.220.180/DDSOnt/DDSPerfil.owl#Profile_DDSOnt_DDS"/>
5. <service:describedBy
6.     rdf:resource="http://143.107.220.180/DDSOnt/DDSProcesso.owl#Processo_DDSOnt_DDS"/>
7. <service:supports
8.     rdf:resource=
9.      "http://143.107.220.180/DDSOnt/DDSFundamento.owl#Fundamento_DDSOnt            DDS "/>
10.</service:Service>
        Trecho de código 2.1. Utilização das propriedades presents, describedBy e supports

       Como dito anteriormente, as descrições funcionais devem conter os dados de
entrada, saída, pré-condições e pós-condiçoes. O exemplo a seguir descreve um
serviço que a partir das informações fornecidas, como pêlo, peso e altura, obteria
como resposta uma raça de cachorro e como efeito o percentual de confiabilidade
da resposta.

1. <profile:hasInput
2.      rdf:resource=" #pelo"/>
3. <profile:hasInput
4.      rdf:resource=" #peso"/>
5. <profile:hasInput
6.      rdf:resource=" #altura"/>
7. <profile:hasOutput
8.      rdf:resource=" #raça"/>
9. <profile:hasEffect
10.     rdf:resource=" #confiabilidade"/>
                    Trecho de código 2.2. Descrições funcionais de um serviço

       Também podemos definir informações sobre provedor, serviço, descrição do
serviço e contato de um administrador do serviço utilizando algumas propriedades:
serviceName, textDescription e contactInformation, como exemplificado no trecho de
código abaixo.




                                                                                             4
1. <profile:serviceName>
2. Retorna a raça de um cachorro
3. </profile:serviceName>
4. <profile:textDescription>
5.      Este serviço recebe um conjunto de valores de um cachorro e responde uma possível raça
6. </profile:textDescription>
7. <profile:contactInformation>
8.        <actor:phone>5555555 </actor:phone>
9.        <actor:fax>5555566</actor:fax>
10.         <actor:email>paulovitor_e@hotmail.com</actor:email>
11. </profile:contactInformation>
       Trecho de código 2.3. Definição de informações sobre provedor, serviço e administrador




3. Web Service Semantics (WSDL-S)

        WSDL-S é um mecanismo utilizado para enriquecimento de descrições de
Serviços Web. Sua proposta é adicionar descrições semânticas em interfaces WSDL
tradicionais. Devido a extensibilidade proporcionada pelos elementos de WSDL,
WSDL-S        é   capaz     de     descrever    características     do    serviço,    como      por
exemplo,entradas, saídas, precondições e resultados apos a execução de um
serviço. A capacidade de descrever características do serviço permite a
automatização do processo de descoberta do serviço sem que haja ambigüidade
(AKKIRAJU et al., 2005).

        WSDL-S deve obedecer alguns princípios básicos como:

   •    A utilização de padrões existentes para Serviços Web, pois o serviço deve ser
        compatível a documentos WSDL comuns, facilitando assim a integração entre
        serviços descritos semanticamente e serviços descritos sem semântica
        (AKKIRAJU et al., 2005).

   •    Independência de linguagem de representação. Deve ser de escolha do
        desenvolvedor       qual    linguagem      de    representação      semântica      utilizar
        (AKKIRAJU et al., 2005).

   •    Anotações semânticas cujos tipos de dados são descritos em XML Schema.




                                                                                                 5
4. Web Services Modeling Ontology (WSMO)

      WSMO é uma ontologia que visa representar formalmente a descrição dos
serviços objetivando a automatização (parcial ou total) das tarefas de descoberta,
invocação, composição e inter-operação. Possui quatro elementos principais:
ontologias, serviços, objetivos e mediadores. Os elementos de um WSMO são
definidos pela linguagem MOF (Meta Object Facility), utilizada para especificar meta-
modelos. MOF define uma linguagem abstrata e um framework para construção e
administração de meta-modelos neutros em relação a aspectos de implementação.
A arquitetura MOF é composta por quatro camadas: informação, modelo, meta-
modelo e meta-meta-modelo. A WSMO em si corresponde a camada meta-modelo,
a linguagem que define a WSMO corresponde a camada meta-meta-modelo, todos
os elementos pertencentes ao WSMO pertencem a camada de modelo e os dados
descritos por ontologias pertencem a camada de informação, como representado na
figura 3 (BRUIJN et al., 2005).




              Figura 3. Camadas da arquitetura MOF. Adaptado de Bruijn (2005)

      O elemento ontologia em WSMO pode possuir propriedades não funcionais,
importar ontologias, mediadores, conceitos, relações, funções, instancias e axiomas.
Propriedades não funcionais descrevem algumas características sobre a ontologia,
como por exemplo, linguagem de descrição, autor, etc. Importando uma ontologia
modularíamos o projeto, diminuindo assim a complexidade de alguma tarefa. Caso
haja algum conflito entre as partes importadas torna-se necessário o uso de
mediadores. Já os conceitos “constituem os elementos básicos de uma terminologia
acordada para algum domínio de problema” (BRUIJN et al., 2005). Relações são
utilizadas para criação de um modelo que relacione os vários conceitos. Função é
                                                                                   6
uma relação com um intervalo unária e um domínio n-ário. Instancias podem ser
definidas explicitamente ou fazendo uma ligação a uma base de dados externa, ou
seja, armazenando suas instancias e seus valores externamente. Axiomas são
expressões lógicas em conjunto com seus valores não funcionais (BRUIJN et al.,
2005).

         O elemento serviço é composto por ontologias importadas, propriedades não
funcionais e mediadores. Fornece também a descrição do serviço, contendo
informações sobre sua funcionalidade e interfaces (BRUIJN et al., 2005).

         Objetivos descrevem os resultados obtidos após a execução do serviço,
auxiliando assim, na escolha de qual serviço satisfaz a necessidade do usuário
(BRUIJN et al., 2005).

         Mediadores      são        utilizados   para   prover   integração     entre   recursos
heterogêneos. Existem quatro tipos de mediadores. Mediadores OO resolvem
possíveis desequilíbrios entre ontologias importadas; mediadores GG ligam
objetivos, permitindo-se que a partir de objetivos pré existentes sejam criado um
novo objetivo; mediador WG, que liga um objetivo a um serviço, significando que o
serviço cumpre (totalmente ou parcialmente) o objetivo com o qual está ligado;
mediador WW estabelece ligações entre Serviços Web (BRUIJN et al., 2005).

         Abaixo um exemplo da descrição de um serviço utilizando WSMO. Este
serviço executa a mesma função vista anteriormente, onde se recebe três
informações (pêlo, peso e altura) obtendo como resposta uma raça e o percentual de
confiabilidade da resposta.

 1.   precondition
 2.        axiom #pelo
 3.   precondition
 4.        axiom #peso
 5.   precondition
 6.        axiom #altura
 7.   postcondition
 8.        axiom #raça
 9.   effect
10.         axiom #confiabilidade
               Trecho de código 4.1. Definição dos valores de entrada, saída e efeito

         Os valores de entrada, saída e efeito são representados pelas propriedades
preconditio, postcondition e effect respectivamente. Já as propriedades title,

                                                                                              7
description e creator podem fornecer informações sobre provedor, serviço e criador
como poder ser observado no trecho de código abaixo.

 1. dc:title
 2.     hasValue "Retorna a raça de um cachorro"
 3. dc:description
 4.      hasValue "Recebe um conjunto de valores de um cachorro e responde uma possível raça."
 5. dc:creator
 6.       hasValue “Paulo Vitor”
     Trecho de código 4.2. Definição de informações sobre provedor, serviço e administrador




5. Semantic Web Services Framework (SWSF)

       SWSF (Semantic Web Services Framework) é uma iniciativa recente proposta
pelo Semantic Web Services Language Committee com o intuito de prover
semântica a Serviços Web. Seus principais componentes são: SWSO (Semantic
Web Services Ontology) e SWSL (Semantic Web Services Language) (BATTLE et
al., 2005).

       SWSL é uma linguagem utilizada para descrever formalmente um Serviço
Web. É uma linguagem de propósito geral, portanto não é focada para serviços,
porém, suporta atribuição de semântica a descrição de Serviços Web. É composto
por duas sub-linguagens: SWSL-FOL "baseia-se em lógica de primeira ordem e é
utilizada para expressar a caracterização formal (ontologia) dos conceitos de
Serviços Web" (BATTLE et al., 2005). SWSL-Rules baseia-se no paradigma de
programação lógica (regras).

       SWSO é uma ontologia e um modelo conceitual que permite a descrição de
Serviços Web permitindo ainda caracterizar formalmente este modelo. O modelo
conceitual SWSO é composto por dois componentes: SWSL-FOL baseada em lógica
de primeira ordem, e ROWS, baseada na programação lógica. Um axioma completo
é obtido utilizando-se SWS-FOL com uma semântica que especifique o significado
preciso dos conceitos, resultando assim em uma ontologia denominada FLOWS
(First-Order Logic Ontology for Web Services). Com a tradução dos axiomas de
FLOWS para a linguagem SWSL-Rules resultou-se em uma nova ontologia,
chamada ROWS (Rules Ontology for Web Services) (BATTLE et al., 2005).




                                                                                                 8
FLOWS possui três módulos: perfil de serviço, modelo de serviço e base de
serviço. Perfil de serviço fornece descrições sobre um serviço. Modelo de serviço
descreve as funcionalidades, características e como opera um determinado serviço.
Base de serviço é usada para ligação, informa como acessar o serviço.

      Com a definição destes módulos observamos a grande influencia da
abordagem OWL-S. Podemos dizer que FLOWS é um aperfeiçoamento da
abordagem OWL-S, enfatizando a interoperabilidade com padrões existentes.
Também herdou do PSL (Process Specification Language), algumas características
que permitem um rico modelo para descrição de aspectos comportamentais de
Serviços Web.


6. Conclusão

      Um dos principais problemas em se utilizar uma entidade registradora em um
Serviço Web é a forma como os serviços são descritos. Uma entidade registradora
comum descreve os serviços apenas sintaticamente, resultando assim em um
grande número de resultados indesejados. Esse problema pode ser resolvido por
meio da tecnologia da Web Semântica, resultando em uma melhor eficiência no
serviço de descoberta, permitindo assim, que uma entidade registradora retorne com
melhor eficiência serviços desejados por uma entidade requisitante, reduzindo o
número de resultados incorretos retornados ao cliente.

Referências Bibliográficas

      AKKIRAJU, R. et al. Web Service Semantics – WSDL-S, Novembro 2005.
      Disponível em http://www.w3.org/Submission/WSDL-S/.


      BATTLE, S. et al. Semantic Web Services Framework (SWSF), Setembro
      2005. Disponível em http://www.w3.org/Submission/SWSF/


      BERNERS-LEE, T.; HENDLER, J.; LASSILA, O. The semantic web, Maio
      2001. Disponível em http://www.sciam.com/article.cfm?id=the-semantic-web.
      BREITMAN, K. Web Semântica a Internet do futuro. RJ: LTC,2005.




                                                                                  9
BRUIJN, J. et al. Web Service Modeling Ontology (WSMO), Junho 2005.
Disponível em http://www.w3.org/Submission/WSMO/


BOOTH, D. et al. Web Services Architecture, Fevereiro 2004. Disponível em
http://www.w3.org/TR/2004/NOTE-ws-arch-20040211/

MARTIN, D. et al. OWL-S: Semantic Markup for Web Services, Novembro
2004. Disponível em http://www.w3.org/Submission/OWL-S/


SMITH, M.; WELTY, C.; MCGUINNESS, D. OWL Web Ontology Language
Guide, Fevereiro 2004. Disponível em http://www.w3.org/TR/2004/REC-owl-guide-
20040210/.




                                                                          10

Mais conteúdo relacionado

PPT
Webservices e Xml
PDF
Maratona JBoss 2010 - JBossWS
PPT
JME Web Services API: um estudo de caso
PDF
Maratona JBoss 2010 - JBoss-ESB
PDF
Rest introdução
PDF
Rm1150130412rmglobais
PPT
Web Services
Webservices e Xml
Maratona JBoss 2010 - JBossWS
JME Web Services API: um estudo de caso
Maratona JBoss 2010 - JBoss-ESB
Rest introdução
Rm1150130412rmglobais
Web Services

Destaque (14)

PPS
Hibrida 2011
PPTX
Android webservice
PDF
OWASP top 10 - Referência insegura direta a objeto
PDF
XML, Webservice e RSS
PDF
O nascimentos das primeiras universidades europeias
PDF
A Estrutura de um Web Service
PDF
Vraptor 3
PDF
Jquery fundamentals-book-pt-br
PDF
Testes para dispositivos móveis
PDF
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
PDF
SEO: Getting Personal
PDF
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
Hibrida 2011
Android webservice
OWASP top 10 - Referência insegura direta a objeto
XML, Webservice e RSS
O nascimentos das primeiras universidades europeias
A Estrutura de um Web Service
Vraptor 3
Jquery fundamentals-book-pt-br
Testes para dispositivos móveis
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
SEO: Getting Personal
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
Anúncio

Semelhante a Serviços Web Semânticos (20)

DOCX
Arquitetura Orientada a Serviços e BPM
PDF
Web services
DOCX
Monica vasconcelos (1)
DOCX
Monica vasconcelos
DOCX
Monica vasconcelos
PPT
AERio 2011 - BPM e SOA - Leonardo Azevedo
PPT
Arquitetura orientada a servicos soa
PPT
Web Service - XML
PPT
Engenharia de software orientada a servicos
PPT
Web Services - Grupo F
PPTX
Apresentação
PDF
UM ESTUDO SOBRE SOA
PPT
SOA - Padrões Associados
PDF
Web service
PPT
WebServices-XML
PDF
PPT
Web Services
PDF
Soa Woa Rest
PDF
Corbawebserves
PPTX
07182803-4929-40ED-AB7E-2C5F9B6B90DD.pptx
Arquitetura Orientada a Serviços e BPM
Web services
Monica vasconcelos (1)
Monica vasconcelos
Monica vasconcelos
AERio 2011 - BPM e SOA - Leonardo Azevedo
Arquitetura orientada a servicos soa
Web Service - XML
Engenharia de software orientada a servicos
Web Services - Grupo F
Apresentação
UM ESTUDO SOBRE SOA
SOA - Padrões Associados
Web service
WebServices-XML
Web Services
Soa Woa Rest
Corbawebserves
07182803-4929-40ED-AB7E-2C5F9B6B90DD.pptx
Anúncio

Último (17)

PDF
Banco de Dados 2atualização de Banco de d
PDF
Jira Software projetos completos com scrum
PDF
SEMINÁRIO DE IHC - A interface Homem-Máquina
PDF
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
PDF
Visão geral da SAP, SAP01 Col18, Introdução sistema SAP,
PPTX
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
PDF
Processamento da remessa no SAP ERP, SCM610 Col15
PPTX
Tipos de servidor em redes de computador.pptx
PPT
Conceitos básicos de Redes Neurais Artificiais
PPTX
Aula 9 - Funções em Python (Introdução à Ciência da Computação)
PDF
Processos no SAP Extended Warehouse Management, EWM100 Col26
PPT
Aula de Engenharia de Software principais caracteristicas
PPTX
ccursoammaiacursoammaiacursoammaia123456
PDF
Customizing básico em SAP Extended Warehouse Management, EWM110 Col26
PPTX
3b - Bradesco Lean Agile Training Plan - Ritos Operacionais (1).pptx
PPTX
Analise Estatica de Compiladores para criar uma nova LP
PDF
Aula 9 - Funções 202yttvrcrg5-1.pptx.pdf
Banco de Dados 2atualização de Banco de d
Jira Software projetos completos com scrum
SEMINÁRIO DE IHC - A interface Homem-Máquina
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
Visão geral da SAP, SAP01 Col18, Introdução sistema SAP,
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
Processamento da remessa no SAP ERP, SCM610 Col15
Tipos de servidor em redes de computador.pptx
Conceitos básicos de Redes Neurais Artificiais
Aula 9 - Funções em Python (Introdução à Ciência da Computação)
Processos no SAP Extended Warehouse Management, EWM100 Col26
Aula de Engenharia de Software principais caracteristicas
ccursoammaiacursoammaiacursoammaia123456
Customizing básico em SAP Extended Warehouse Management, EWM110 Col26
3b - Bradesco Lean Agile Training Plan - Ritos Operacionais (1).pptx
Analise Estatica de Compiladores para criar uma nova LP
Aula 9 - Funções 202yttvrcrg5-1.pptx.pdf

Serviços Web Semânticos

  • 1. Serviços Web Semânticos Paulo Vitor Antonini Orlandin paulovitor_e@hotmail.com Resumo O grande crescimento na utilização de Serviços Web torna imprescindível o desenvolvimento de uma forma de melhoria no sistema de armazenamento e disponibilização de informações para que se torne mais eficiente a maneira de recuperar e transmitir dados. A motivação deste trabalho está em investigar e explorar como associar informação semântica utilizando as tecnologias da Web Semântica durante a disponibilização e recuperação de Serviços Web pelas entidades provedoras e requisitantes em uma entidade registradora. Palavras chave: Web Semântica. Serviços Web. WSMO. SWSF. OWL-S. WSDL-S. 1. Introdução É inegável que a utilização de Serviços Web traz benefícios concretos a usuários e principalmente a empresas que aderem a esta tecnologia. Atualmente a maioria das empresas vem adotando Serviços Web em busca de interoperabilidade para suas aplicações. Além disso, mais vantagens são proporcionadas por esta tecnologia, como integração de sistemas legados, agilidade no desenvolvimento, diminuição de custos e integração de parceiros comerciais. Apesar de todas estas vantagens, a utilização de Serviços Web possui algumas limitações, como falta de segurança, possíveis links quebrados e falta de semântica. A falta de semântica ocorre devido a limitação da linguagem de descrição de serviços (WSDL) e na entidade registradora, responsável pelo registro e pesquisa de serviços (UDDI) (BREITMAN, 2005). A tecnologia atual de Serviços Web opera em nível sintático da informação, exigindo assim a necessidade de intervenção humana para tomada de decisões. Com esta tecnologia apenas descrevemos superficialmente as funcionalidades de um serviço. Este modo de descrição ajuda um desenvolvedor na utilização do 1
  • 2. serviço, mas significa muito pouco para interpretação de uma máquina (AKKIRAJU et al., 2005). Ao analisarmos a descrição WSDL de um serviço não podemos dizer inequivocamente o que o serviço faz, podemos observar seus parâmetros de entrada e saída, mas não sabemos seus significados. Pode ocorrer de dois serviços terem definições sintáticas diferentes e executarem a mesma função. Também pode ocorrer de dois serviços possuírem mesma definição sintática e desempenharem funções completamente diferentes. Por exemplo, dois serviços recebem um parâmetro xsd:string e retornam um xsd:int. O primeiro serviço poderia ser um getCodigo(), recebendo o nome do funcionário e retornando o código do mesmo. Já o segundo poderia ser um serviço checarProduto(), onde passaríamos o nome do produto e receberíamos como resposta sua quantidade (AKKIRAJU et al., 2005). A adoção de ontologias é atualmente a alternativa mais utilizada para atribuição de semântica a descrições de serviços. A utilização de ontologias enriquece a descrição dos serviços proporcionando uma automação maior no uso de Serviços Web, melhorando assim tarefas de descoberta, seleção, composição e execução de serviços (AKKIRAJU et al., 2005). Com o intuito de fornecer semântica a Serviços Web foram criadas algumas linguagens para descrição de serviços como WSDL-S, WSMO, OWL-S e SWSF, como ilustrado na figura 1. Figura 1. Integração entre Serviços Web e Web Semântica. Adaptado de Breitman (2005) 2
  • 3. 2. Web Ontology Language for Services (OWL-S) OWL-S é uma ontologia escrita na linguagem OWL-S cujo objetivo é atribuir semântica a Serviços Web. OWL-S nada mais é do que a junção da descrição de serviços WSDL com a descrição semântica provida pelo OWL (BREITMAN, 2005). O OWL-S é composto por três módulos: perfil de serviço, modelo de serviço e base de serviço, como mostra a Figura 2. O perfil de serviço tem como objetivo auxiliar o requisitante na tarefa de descoberta (BREITMAN, 2005). Descreve as funcionalidades e características do serviço como entradas, resultados da execução, saídas retornadas; basicamente expressa o que o serviço faz (MARTIN et al., 2004). O modelo de serviço descreve como o serviço funciona. Indica ao requisitante qual informação deve enviar ou receber em um determinado tempo do provedor de serviços. Neste módulo cada serviço pode ser representado de duas formas: como um processo atômico e compostos (composição de diversos processos) (MARTIN et al., 2004). A base de serviço informa como acessar o serviço (protocolos de comunicação). Descreve como processos se transformam em formatos concretos de mensagem (BREITMAN, 2005). Figura 2. Representação dos três módulos que compõem a ontologia OWL-S. Adaptado de Breitman (2005) O trecho de código a seguir demonstra um serviço sendo associado a três documentos diferentes. Cada documento é referenciado por uma propriedade: 3
  • 4. presents, responsável por definir o perfil; describedBy, responsável por modelar a forma do serviço; e supports, responsável por definir a base do serviço. 1. <service:Service 2. rdf:ID="DDSOnt_SecondOpinionDiagnosis"> 3. <service:presents 4. rdf:resource=" http://143.107.220.180/DDSOnt/DDSPerfil.owl#Profile_DDSOnt_DDS"/> 5. <service:describedBy 6. rdf:resource="http://143.107.220.180/DDSOnt/DDSProcesso.owl#Processo_DDSOnt_DDS"/> 7. <service:supports 8. rdf:resource= 9. "http://143.107.220.180/DDSOnt/DDSFundamento.owl#Fundamento_DDSOnt DDS "/> 10.</service:Service> Trecho de código 2.1. Utilização das propriedades presents, describedBy e supports Como dito anteriormente, as descrições funcionais devem conter os dados de entrada, saída, pré-condições e pós-condiçoes. O exemplo a seguir descreve um serviço que a partir das informações fornecidas, como pêlo, peso e altura, obteria como resposta uma raça de cachorro e como efeito o percentual de confiabilidade da resposta. 1. <profile:hasInput 2. rdf:resource=" #pelo"/> 3. <profile:hasInput 4. rdf:resource=" #peso"/> 5. <profile:hasInput 6. rdf:resource=" #altura"/> 7. <profile:hasOutput 8. rdf:resource=" #raça"/> 9. <profile:hasEffect 10. rdf:resource=" #confiabilidade"/> Trecho de código 2.2. Descrições funcionais de um serviço Também podemos definir informações sobre provedor, serviço, descrição do serviço e contato de um administrador do serviço utilizando algumas propriedades: serviceName, textDescription e contactInformation, como exemplificado no trecho de código abaixo. 4
  • 5. 1. <profile:serviceName> 2. Retorna a raça de um cachorro 3. </profile:serviceName> 4. <profile:textDescription> 5. Este serviço recebe um conjunto de valores de um cachorro e responde uma possível raça 6. </profile:textDescription> 7. <profile:contactInformation> 8. <actor:phone>5555555 </actor:phone> 9. <actor:fax>5555566</actor:fax> 10. <actor:email>paulovitor_e@hotmail.com</actor:email> 11. </profile:contactInformation> Trecho de código 2.3. Definição de informações sobre provedor, serviço e administrador 3. Web Service Semantics (WSDL-S) WSDL-S é um mecanismo utilizado para enriquecimento de descrições de Serviços Web. Sua proposta é adicionar descrições semânticas em interfaces WSDL tradicionais. Devido a extensibilidade proporcionada pelos elementos de WSDL, WSDL-S é capaz de descrever características do serviço, como por exemplo,entradas, saídas, precondições e resultados apos a execução de um serviço. A capacidade de descrever características do serviço permite a automatização do processo de descoberta do serviço sem que haja ambigüidade (AKKIRAJU et al., 2005). WSDL-S deve obedecer alguns princípios básicos como: • A utilização de padrões existentes para Serviços Web, pois o serviço deve ser compatível a documentos WSDL comuns, facilitando assim a integração entre serviços descritos semanticamente e serviços descritos sem semântica (AKKIRAJU et al., 2005). • Independência de linguagem de representação. Deve ser de escolha do desenvolvedor qual linguagem de representação semântica utilizar (AKKIRAJU et al., 2005). • Anotações semânticas cujos tipos de dados são descritos em XML Schema. 5
  • 6. 4. Web Services Modeling Ontology (WSMO) WSMO é uma ontologia que visa representar formalmente a descrição dos serviços objetivando a automatização (parcial ou total) das tarefas de descoberta, invocação, composição e inter-operação. Possui quatro elementos principais: ontologias, serviços, objetivos e mediadores. Os elementos de um WSMO são definidos pela linguagem MOF (Meta Object Facility), utilizada para especificar meta- modelos. MOF define uma linguagem abstrata e um framework para construção e administração de meta-modelos neutros em relação a aspectos de implementação. A arquitetura MOF é composta por quatro camadas: informação, modelo, meta- modelo e meta-meta-modelo. A WSMO em si corresponde a camada meta-modelo, a linguagem que define a WSMO corresponde a camada meta-meta-modelo, todos os elementos pertencentes ao WSMO pertencem a camada de modelo e os dados descritos por ontologias pertencem a camada de informação, como representado na figura 3 (BRUIJN et al., 2005). Figura 3. Camadas da arquitetura MOF. Adaptado de Bruijn (2005) O elemento ontologia em WSMO pode possuir propriedades não funcionais, importar ontologias, mediadores, conceitos, relações, funções, instancias e axiomas. Propriedades não funcionais descrevem algumas características sobre a ontologia, como por exemplo, linguagem de descrição, autor, etc. Importando uma ontologia modularíamos o projeto, diminuindo assim a complexidade de alguma tarefa. Caso haja algum conflito entre as partes importadas torna-se necessário o uso de mediadores. Já os conceitos “constituem os elementos básicos de uma terminologia acordada para algum domínio de problema” (BRUIJN et al., 2005). Relações são utilizadas para criação de um modelo que relacione os vários conceitos. Função é 6
  • 7. uma relação com um intervalo unária e um domínio n-ário. Instancias podem ser definidas explicitamente ou fazendo uma ligação a uma base de dados externa, ou seja, armazenando suas instancias e seus valores externamente. Axiomas são expressões lógicas em conjunto com seus valores não funcionais (BRUIJN et al., 2005). O elemento serviço é composto por ontologias importadas, propriedades não funcionais e mediadores. Fornece também a descrição do serviço, contendo informações sobre sua funcionalidade e interfaces (BRUIJN et al., 2005). Objetivos descrevem os resultados obtidos após a execução do serviço, auxiliando assim, na escolha de qual serviço satisfaz a necessidade do usuário (BRUIJN et al., 2005). Mediadores são utilizados para prover integração entre recursos heterogêneos. Existem quatro tipos de mediadores. Mediadores OO resolvem possíveis desequilíbrios entre ontologias importadas; mediadores GG ligam objetivos, permitindo-se que a partir de objetivos pré existentes sejam criado um novo objetivo; mediador WG, que liga um objetivo a um serviço, significando que o serviço cumpre (totalmente ou parcialmente) o objetivo com o qual está ligado; mediador WW estabelece ligações entre Serviços Web (BRUIJN et al., 2005). Abaixo um exemplo da descrição de um serviço utilizando WSMO. Este serviço executa a mesma função vista anteriormente, onde se recebe três informações (pêlo, peso e altura) obtendo como resposta uma raça e o percentual de confiabilidade da resposta. 1. precondition 2. axiom #pelo 3. precondition 4. axiom #peso 5. precondition 6. axiom #altura 7. postcondition 8. axiom #raça 9. effect 10. axiom #confiabilidade Trecho de código 4.1. Definição dos valores de entrada, saída e efeito Os valores de entrada, saída e efeito são representados pelas propriedades preconditio, postcondition e effect respectivamente. Já as propriedades title, 7
  • 8. description e creator podem fornecer informações sobre provedor, serviço e criador como poder ser observado no trecho de código abaixo. 1. dc:title 2. hasValue "Retorna a raça de um cachorro" 3. dc:description 4. hasValue "Recebe um conjunto de valores de um cachorro e responde uma possível raça." 5. dc:creator 6. hasValue “Paulo Vitor” Trecho de código 4.2. Definição de informações sobre provedor, serviço e administrador 5. Semantic Web Services Framework (SWSF) SWSF (Semantic Web Services Framework) é uma iniciativa recente proposta pelo Semantic Web Services Language Committee com o intuito de prover semântica a Serviços Web. Seus principais componentes são: SWSO (Semantic Web Services Ontology) e SWSL (Semantic Web Services Language) (BATTLE et al., 2005). SWSL é uma linguagem utilizada para descrever formalmente um Serviço Web. É uma linguagem de propósito geral, portanto não é focada para serviços, porém, suporta atribuição de semântica a descrição de Serviços Web. É composto por duas sub-linguagens: SWSL-FOL "baseia-se em lógica de primeira ordem e é utilizada para expressar a caracterização formal (ontologia) dos conceitos de Serviços Web" (BATTLE et al., 2005). SWSL-Rules baseia-se no paradigma de programação lógica (regras). SWSO é uma ontologia e um modelo conceitual que permite a descrição de Serviços Web permitindo ainda caracterizar formalmente este modelo. O modelo conceitual SWSO é composto por dois componentes: SWSL-FOL baseada em lógica de primeira ordem, e ROWS, baseada na programação lógica. Um axioma completo é obtido utilizando-se SWS-FOL com uma semântica que especifique o significado preciso dos conceitos, resultando assim em uma ontologia denominada FLOWS (First-Order Logic Ontology for Web Services). Com a tradução dos axiomas de FLOWS para a linguagem SWSL-Rules resultou-se em uma nova ontologia, chamada ROWS (Rules Ontology for Web Services) (BATTLE et al., 2005). 8
  • 9. FLOWS possui três módulos: perfil de serviço, modelo de serviço e base de serviço. Perfil de serviço fornece descrições sobre um serviço. Modelo de serviço descreve as funcionalidades, características e como opera um determinado serviço. Base de serviço é usada para ligação, informa como acessar o serviço. Com a definição destes módulos observamos a grande influencia da abordagem OWL-S. Podemos dizer que FLOWS é um aperfeiçoamento da abordagem OWL-S, enfatizando a interoperabilidade com padrões existentes. Também herdou do PSL (Process Specification Language), algumas características que permitem um rico modelo para descrição de aspectos comportamentais de Serviços Web. 6. Conclusão Um dos principais problemas em se utilizar uma entidade registradora em um Serviço Web é a forma como os serviços são descritos. Uma entidade registradora comum descreve os serviços apenas sintaticamente, resultando assim em um grande número de resultados indesejados. Esse problema pode ser resolvido por meio da tecnologia da Web Semântica, resultando em uma melhor eficiência no serviço de descoberta, permitindo assim, que uma entidade registradora retorne com melhor eficiência serviços desejados por uma entidade requisitante, reduzindo o número de resultados incorretos retornados ao cliente. Referências Bibliográficas AKKIRAJU, R. et al. Web Service Semantics – WSDL-S, Novembro 2005. Disponível em http://www.w3.org/Submission/WSDL-S/. BATTLE, S. et al. Semantic Web Services Framework (SWSF), Setembro 2005. Disponível em http://www.w3.org/Submission/SWSF/ BERNERS-LEE, T.; HENDLER, J.; LASSILA, O. The semantic web, Maio 2001. Disponível em http://www.sciam.com/article.cfm?id=the-semantic-web. BREITMAN, K. Web Semântica a Internet do futuro. RJ: LTC,2005. 9
  • 10. BRUIJN, J. et al. Web Service Modeling Ontology (WSMO), Junho 2005. Disponível em http://www.w3.org/Submission/WSMO/ BOOTH, D. et al. Web Services Architecture, Fevereiro 2004. Disponível em http://www.w3.org/TR/2004/NOTE-ws-arch-20040211/ MARTIN, D. et al. OWL-S: Semantic Markup for Web Services, Novembro 2004. Disponível em http://www.w3.org/Submission/OWL-S/ SMITH, M.; WELTY, C.; MCGUINNESS, D. OWL Web Ontology Language Guide, Fevereiro 2004. Disponível em http://www.w3.org/TR/2004/REC-owl-guide- 20040210/. 10