Successfully reported this slideshow.
Planejamento paraServiços Web Semânticos             Juliana Jabra Chahoud              jchahoud@gmail.com                ...
Conteúdo da apresentação n    Introdução n    Serviços Web n    Web Semântica n    OWL-S: ontologias para descrição de...
Motivação n    Serviços Web são componentes de software que podem ser       acessados por outros softwares através da Web...
Exemplo de composição de serviços Web        1                        2                                           Preço de...
Composição de serviços completamenteautomatizada n    A composição de serviços Web completamente       automatizada pode ...
O que é necessário para a automação  n    Descrever serviços Web de modo que eles possam ser        interpretáveis por má...
Principais objetivos desse trabalho  n    definir como a composição de serviços Web pode ser descrita        como um prob...
Estudo de Caso:planejamento de uma viagem para Europan    Um turista deseja visitar diversas cidades da Europa. Essa tare...
Conhecimento prévio sobre o domínio de viagens  n    Meios de transporte: trem, carro ou avião  n    Meios de transporte...
Serviços Web
O que são serviços Web? n     São componentes de software que:       l    disponibilizam uma interface (WSDL) que descre...
Como usar um serviço Web? 1    Publica a URL e descrição do      serviço Web  2   Descobre o serviço Web                  ...
WSDL: exemplo do serviço para compra de ingressosOnde o serviço está    Como as mensagens      Operações que serão    Mens...
Principais utilizações dos serviços Web  n    Integração entre empresas (B2B)  n    Integração entre empresas e consumid...
Web Semântica
Serviços Web Semânticos n    A linguagem WSDL descreve a interface de serviços       Web de modo que serviços possam ser ...
O que é Web Semântica? n     A Web Semântica surge como uma evolução da Web        atual, com a principal preocupação em ...
O que é ontologia?  n    Uma especificação formal (baseada em lógica) de conceitos de        um domínio e da relação que ...
OWL: características básicas  n    Classe é uma coleção de propriedades que descrevem        um grupo de indivíduos (owl:...
Ferramentas para ontologias  n    Ferramentas para edição de ontologias (Protégé, Oiled,        OWL-editor, etc)  n    F...
JENA n    Framework em JAVA para construção de aplicações       para Web Semântica, fornecendo um ambiente de       progr...
Ontologias usadas nesse trabalho  n    Esse trabalho, além de usar ontologias que descrevem        serviços Web (mostrada...
OWL-S:ontologias para descrição     de serviços Web
OWL-S: OWL-based Web Service ontologyn     Conjunto de ontologias para descrever serviços Web       através da linguagem ...
Relação entre as ontologias do OWL-S[OWL-S, 2004]        OWL-S
ServiceModel (Process.owl):principal ontologia para composição  n    A ontologia ServiceModel descreve:        l    oper...
Exemplo de processo composto:devolve preço em reais de livros  <process:CompositeProcess rdf:ID="BookPriceProcess">       ...
Ferramentas para a linguagem OWL-S n    WSDL2OWLS: dado um serviço Web descrito na       linguagem WSDL, essa ferramenta ...
Planejamento com    ontologias
Planejamento  n    Planejar é um processo de escolha de ações para atingir        um objetivo, através da previsão dos ef...
Planejamento para metas de alcanceUm problema de planejamento pode ser descrito pelos elementos  <S, s0,G, A, f >, em que:...
Planejamento para decompor tarefas      (planejamento hierárquico)Um problema de planejamento hierárquico pode ser descrit...
Planejamento para metas de alcance: exemplos0: {em(SaoPaulo),                                                         G: v...
Planejamento para decompor tarefas: exemploTarefa: viajar(Barcelona,Paris)               Tarefa: comprar_pass_aérea(Barcel...
Planejamento para serviços Web: as suposições  feitas em planejamento clássicoNa Web, não é possível fazer a maioria das s...
Como fazer planejamento de serviços Web?Nesse trabalho foram adotadas as seguintes soluções:1.     Serviços Web devem ser ...
Planejamento para decompor tarefas:     exemplo utilizando consultas na base de conhecimentoTarefa: viajar(Barcelona,Paris...
A ferramenta WEBRPlan
Dificuldades para a implementação da ferramentaWEBRPlan  1.    A maioria dos sistemas de planejamento não fazem:        l...
Sistema de planejamento JSHOP2 JSHOP2 é um sistema de planejamento hierárquico que   possui características desejadas para...
WEBRPlanFerramenta implementada em JAVA que possui quatro    funções principais:  1.     Seleção de serviços Web para comp...
Integração do JSHOP2 com o JENA e a Web    A ferramenta WEBRPlan
Execução do plano n    apesar de fazer coleta de informações e consulta a uma       base de conhecimento on-line, o JSHOP...
Um estudo de caso:planejamento de viagens
Metodologia de desenvolvimento do estudo de casoResolver o problema de planejamento de viagens de três   maneiras diferent...
Dados do estudo de cason    Foram implementados 5 serviços Web contendo:       l    11 operações transacionais (não inst...
Conclusões econtribuições
Conclusões n    Neste trabalho foi mostrado como a composição de serviços Web       pode ser descrita como um problema de...
Conclusões n    Foram estudadas e/ou empregadas as seguintes       tecnologias:        l    Ontologias e Web Semântica  ...
Contribuições  n    propor e implementar uma combinação original de tecnologias para        realizar a composição de Serv...
WEBRPlan:demonstração
Upcoming SlideShare
Loading in …5
×

Planejamento para Serviços Web Semânticos

1,605 views

Published on

Apresentação utilizada na minha defesa de mestrado no IME - USP em junho de 2006

  • Be the first to comment

Planejamento para Serviços Web Semânticos

  1. 1. Planejamento paraServiços Web Semânticos Juliana Jabra Chahoud jchahoud@gmail.com Junho / 2006 Orientadora: Profa Leliane Nunes de Barros
  2. 2. Conteúdo da apresentação n  Introdução n  Serviços Web n  Web Semântica n  OWL-S: ontologias para descrição de serviços Web n  Planejamento com ontologias n  A ferramenta WEBRPlan n  Um estudo de caso: planejamento de viagens n  Conclusões e contribuições n  WEBRPlan: Demonstração
  3. 3. Motivação n  Serviços Web são componentes de software que podem ser acessados por outros softwares através da Web; n  Com o crescimento e proliferação dos serviços Web, torna-se cada vez mais difícil encontrar um serviço que possa executar uma tarefa desejada. n  Isto é ainda mais difícil quando não existe um serviço único, mas sim combinações de serviços que sejam capazes de executar tal tarefa n  Essa combinação de serviços para atingir uma necessidade é denominada composição de serviços e pode ser feita por um programador ou automaticamente. n  O objetivo desse trabalho é automatizar o processo de composição de serviços. Introdução
  4. 4. Exemplo de composição de serviços Web 1 2 Preço de livros em reaisPreço de livros em Conversão de dólares moedas Introdução
  5. 5. Composição de serviços completamenteautomatizada n  A composição de serviços Web completamente automatizada pode ser caracterizada como um processo que envolve os três passos: 1)  Descoberta automática - localizar serviços candidatos para a composição 2)  Composição automática - determinar quais serviços devem ser executados e em que seqüência para atingir o objetivo 3)  Execução automática - invocação dos serviços Web Introdução
  6. 6. O que é necessário para a automação n  Descrever serviços Web de modo que eles possam ser interpretáveis por máquinas è  Essa é a proposta da Web Semântica n  Determinar quais serviços executar e em que ordem: è  Problema tratado por técnicas de Planejamento em Inteligência Artificial Introdução
  7. 7. Principais objetivos desse trabalho n  definir como a composição de serviços Web pode ser descrita como um problema de planejamento; n  determinar quais técnicas de planejamento em IA podem ser usadas para a composição de serviços Web, o que envolve identificar quais são as restrições do ambiente de planejamento; n  identificar uma maneira de descrever serviços Web como domínios de planejamento (i.e., em termos de ações, tarefas, pré- condições e efeitos) com base nos princípios da Web Semântica; n  implementar uma ferramenta de software para dar suporte durante todas as etapas envolvidas na composição automática de serviços Web – WEBRPlan (Planejamento para WEB do Brasil) n  implementar um conjunto de serviços Web que serão usados num estudo de caso Introdução
  8. 8. Estudo de Caso:planejamento de uma viagem para Europan  Um turista deseja visitar diversas cidades da Europa. Essa tarefa envolve: reservar hospedagens, comprar passagens aéreas ou de trem, alugar carro, comprar ingressos para pontos turísticos e criar uma agenda com seus compromissos de viagem.n  Restrições do problema: l  o cartão de crédito do turista possui um limite de saldo; l  acomodações possuem uma dada disponibilidade de vagas; l  de acordo com a distância entre as cidades existem diferentes tipos de transporte disponíveis; l  de acordo com o seu saldo, o turista pode pagar diferentes tipos de transporte e acomodação; l  de acordo com a previsão de tempo diferentes pontos turísticos podem ser visitados.n  Serviços Web criados: l  Hospedagem, Transportes, Ingressos, EuroInfo (informações sobre tempo e distância) e Agenda. Introdução
  9. 9. Conhecimento prévio sobre o domínio de viagens n  Meios de transporte: trem, carro ou avião n  Meios de transporte possuem as propriedades: custo e disponibilidade. O custo de trem e de avião corresponde ao preço das passagens e o custo de carro ao seu aluguel. n  Tipos de passagens: passagem aérea ou passagem de trem. Passagens possuem as seguintes propriedades: passageiro, origem, destino, data e custo. n  Localizações: cidades, aeroportos, países, acomodações e pontos turísticos. Uma localização pode estar localizada em outras localizações. n  Acomodações: hotéis, pousadas e albergues. Acomodações possuem as seguintes propriedades: número de vagas, custo (diária) e localização. n  Pontos turísticos podem ser classificados em pontos turísticos de inverno ou de verão. n  Pessoas: turistas e passageiros. Pessoas possuem cartão de crédito que por sua vez possui um saldo. Turistas, possuem agendas com datas e descrições de seus compromissos. n  Um turista possui os seguintes compromissos: embarcar, desembarcar, retirar carro, devolver carro, visitar pontos turísticos, check-in e check-out em uma acomodação. n  Pessoas e meios de transporte mudam de localização. Introdução
  10. 10. Serviços Web
  11. 11. O que são serviços Web? n  São componentes de software que: l  disponibilizam uma interface (WSDL) que descreve uma coleção de operações acessíveis pela rede através de mensagens (SOAP), em formato XML l  são independentes de linguagens e de plataformas (padrões propostos pela W3C: WSDL, SOAP, XML, HTTP) Serviços Web
  12. 12. Como usar um serviço Web? 1 Publica a URL e descrição do serviço Web 2 Descobre o serviço Web UDDI 3 Lê a descrição WSDL 5 Cria um proxy para o serviço Web 2 1 6 Invoca o serviço Web através do Cliente Proxy 3 .wsdl 5 6 Proxy Serviço Web Serviços Web
  13. 13. WSDL: exemplo do serviço para compra de ingressosOnde o serviço está Como as mensagens Operações que serão Mensagens que serão localizado serão transmitidas: permitidas: transmitidas: especificação do SOAP comprarIngresso comprarIngressoRequest comprarIngressoResponse Serviços Web
  14. 14. Principais utilizações dos serviços Web n  Integração entre empresas (B2B) n  Integração entre empresas e consumidores (B2C) n  Integração de aplicações corporativas n  Dispositivos móveis n  Distribuído / Peer-to-Peer Serviços Web
  15. 15. Web Semântica
  16. 16. Serviços Web Semânticos n  A linguagem WSDL descreve a interface de serviços Web de modo que serviços possam ser acessados independentemente de linguagem e plataforma. n  Porém, para fazer a composição automática, bem como a descoberta, é necessária uma descrição de serviços Web segundo a proposta da Web Semântica: l  conteúdo Web descrito em uma linguagem formal, interpretável por máquina, que permita fazer inferências lógicas Web Semântica
  17. 17. O que é Web Semântica? n  A Web Semântica surge como uma evolução da Web atual, com a principal preocupação em representar informações na Web de maneira que as máquinas possam interpretá-las n  Tecnologias necessárias para sua implementação: l  uma maneira de disponibilizar definições de termos e relações entre eles (ontologias) l  uma linguagem que permita adicionar semântica aos documentos da Web (instâncias das ontologias) ontologias + instâncias = base de conhecimento Web Semântica
  18. 18. O que é ontologia? n  Uma especificação formal (baseada em lógica) de conceitos de um domínio e da relação que existe entre eles. n  Ontologias servem para: l  compartilhar uma interpretação da estrutura de informação entre pessoas ou agentes computacionais l  permitir a reutilização de uma especificação (modelo) de um domínio do conhecimento l  fazer inferências lógicas a respeito de um domínio n  OWL é a linguagem adotada como padrão pelo W3C para descrição de ontologias Web Semântica
  19. 19. OWL: características básicas n  Classe é uma coleção de propriedades que descrevem um grupo de indivíduos (owl:Class) n  Propriedades são usadas para criar relações (owl:ObjectProperty e owl:DatatypeProperty) n  OWL fornece características de propriedades, restrições de tipo (owl:Restriction) e de cardinalidade (owl:Cardinality) n  Permite construções de classes complexas (intersectionOf, unionOf e complementOf) Web Semântica
  20. 20. Ferramentas para ontologias n  Ferramentas para edição de ontologias (Protégé, Oiled, OWL-editor, etc) n  Ferramentas para construção de aplicações: para consultas em ontologias e mecanismos de inferências (Jena, Racer, Pellet, etc) Web Semântica
  21. 21. JENA n  Framework em JAVA para construção de aplicações para Web Semântica, fornecendo um ambiente de programação para as linguagens RDF, RDFS e OWL. Suas principais funcionalidades são: l  APIs para RDF e para ontologias, incluindo leitura e escrita nos documentos l  Armazenamento das informações em memória ou persistência em banco de dados l  Linguagens para consulta em ontologias (ARQ, que implementa SPARQL) l  Motores de inferência (RDFS, OWL, regras) Web Semântica
  22. 22. Ontologias usadas nesse trabalho n  Esse trabalho, além de usar ontologias que descrevem serviços Web (mostradas a seguir), são usadas também ontologias específicas do domínio de aplicação. n  Por exemplo, para o Estudo de Caso sobre viagens para Europa, foi construída a ontologia Euro.owl (Protégé). Web Semântica
  23. 23. OWL-S:ontologias para descrição de serviços Web
  24. 24. OWL-S: OWL-based Web Service ontologyn  Conjunto de ontologias para descrever serviços Web através da linguagem OWL que facilitam a construção de processos automáticos para Webn  OWL-S é estruturada em quatro ontologias: l  Service.owl, l  Profile.owl, l  Process.owl e l  Grounding.owl ontologias OWL-S + serviços Web = base de conhecimento OWL-S
  25. 25. Relação entre as ontologias do OWL-S[OWL-S, 2004] OWL-S
  26. 26. ServiceModel (Process.owl):principal ontologia para composição n  A ontologia ServiceModel descreve: l  operações de serviços como processos atômicos e compostos l  a decomposição de processos compostos através de construções de controle (sequence, split, split+join, unordered, choice, if-then-else, iterate e repeat-until) l  Propriedades de processos necessárias para automatizar a composição (IOPES) : hasInput, hasOutput, hasPrecondition e hasResult. Limitação: não existe um padrão para descrever essas propriedades. OWL-S
  27. 27. Exemplo de processo composto:devolve preço em reais de livros <process:CompositeProcess rdf:ID="BookPriceProcess"> <process:hasInput rdf:resource="#BookName" /> <process:hasInput rdf:resource="#Currency" /> <process:hasOutput rdf:resource="#BookPrice" /> <process:composedOf> <process:Sequence> <process:components rdf:parseType="Collection"> <process:AtomicProcess rdf:about="BNPrice.owl#BNPriceProcess" /> <process:AtomicProcess rdf:about="CurrencyConverter.owl#CurrencyConverterProcess" /> </process:components> </process:Sequence> </process:composedOf> ... </process:CompositeProcess> OWL-S
  28. 28. Ferramentas para a linguagem OWL-S n  WSDL2OWLS: dado um serviço Web descrito na linguagem WSDL, essa ferramenta fornece uma tradução semi-automática de WSDL para OWL-S: l  especificação completa de Grounding e l  especificações parciais das ontologias e Process e Profile (adição manual de IOPES) n  OWL-S API: dado um serviço Web descrito em OWL-S, essa ferramenta fornece uma maneira de ler e executar esses serviços OWL-S
  29. 29. Planejamento com ontologias
  30. 30. Planejamento n  Planejar é um processo de escolha de ações para atingir um objetivo, através da previsão dos efeitos da execução dessas ações e da descrição do estado atual do mundo. n  Planejamento clássico: ações instantâneas, informação completa do mundo, ações determinísticas, não existência de ações exógenas. n  Existem duas abordagens de planejamento clássico: l  planejamento para metas de alcançabilidade l  planejamento para decompor tarefas Planejamento com ontologias
  31. 31. Planejamento para metas de alcanceUm problema de planejamento pode ser descrito pelos elementos <S, s0,G, A, f >, em que: l  S é um conjunto finito de estados; l  s0 ∈ S é um estado inicial; l  G ⊆ S é um conjunto de estados meta; l  A(s) é um conjunto finito de ações aplicáveis, para cada estado s ∈ S; l  f : S × A −> S é uma função de transição de estados que mapeia um estado s para outro estado s’, após a execução de uma ação a em s.Plano Solução: uma seqüência de ações que quando executada em s0 leva a (alcança) um estado meta g ∈ G.Estratégia de solução: raciocinar sobre estados e a função de transição de estados para alcançar os estados meta. Planejamento com ontologias
  32. 32. Planejamento para decompor tarefas (planejamento hierárquico)Um problema de planejamento hierárquico pode ser descrito pelos elementos <S, s0,A, f, T,M, d0>, em que:n  S é um conjunto finito de estados;n  s0 ∈ S é um estado inicial;n  G ⊆ S é um conjunto de estados meta;n  A(s) é um conjunto finito de ações aplicáveis (tarefas primitivas), para cada estado s ∈ S;n  f : S × A −> S é uma função de transição de estados que mapeia a transição de um estado s para outro estado s’ após a execução de uma ação a em s;n  T é um conjunto finito de (nomes) tarefas compostas;n  M é um conjunto de métodos para decompor tarefas compostas. Um método é um par (t,d), onde t ∈ T e d é uma rede de tarefas. M(s) é um conjunto finito de métodos aplicáveis, para cada estado s ∈ S;n  Uma rede de tarefas é formada por um conjunto de tarefas compostas ou primitivas e uma ordem parcial (ou total) entre elas;n  d0 é a rede de tarefas inicial;Plano Solução: Uma rede de tarefas primitivas que pode ser executada em s0Estratégia de solução: raciocinar sobre os métodos (alternativos) de decomposição das tarefas compostas contidas na rede de tarefas inicial (d0) Planejamento com ontologias
  33. 33. Planejamento para metas de alcance: exemplos0: {em(SaoPaulo), G: visitada(TorreEiffel) tempassagem(SaoPaulo,Paris)} Ação: visitar(TorreEiffel) Prec: {em ( Paris)} Ação: viajar(SaoPaulo,Paris) Prec: {em (SaoPaulo) , Efeitos de adição: {visitada (TorreEiffel)} tempassagem(SaoPaulo,Paris)} Efeitos de Adição: {em(Paris)} Efeitos de Eliminação: {em(SaoPaulo), tempassagem(SaoPaulo,Paris)} Plano solução: viajar( SãoPaulo, Paris) è visitar( TorreEiffel) Planejamento com ontologias
  34. 34. Planejamento para decompor tarefas: exemploTarefa: viajar(Barcelona,Paris) Tarefa: comprar_pass_aérea(Barcelona,Paris) Prec: {saldo_cartao(C) ,s0: {em(Barcelona), saldo_cartao(C), custo_pass_aerea(Barcelona, Paris,P1), (C>= P1)}custo_pass_aerea(Barcelona, Paris, P1) Efeitos de adição:custo_pass_trem(Barcelona, Paris, P2)} {passagem_comprada(Barcelona, Paris),Método(viajar,d1) saldo_cartao(C – P1)}Prec: {distancia(Barcelona,Paris) > 500 km} Efeitos de eliminação: {saldo_cartao(C)}Rede de Tarefas d1: Tarefa: viajar_de_aviao(Barcelona,Paris){comprar_pass_aérea(Barcelona,Paris) Prec: {passagem_comprada(Barcelona, Paris),viajar_de_aviao(Barcelona,Paris)} em(Barcelona)}Método(viajar,d2) Efeitos de adição: {em(Paris)}Prec: { } Efeitos de eliminação: {em(Barcelona)}Rede de Tarefas d2:{comprar_pass_trem(Barcelona,Paris),viajar_de_trem(Barcelona,Paris)} Plano solução: comprar_pass_aérea(Barcelona,Paris) è viajar_de_aviao(Barcelona,Paris) Planejamento com ontologias
  35. 35. Planejamento para serviços Web: as suposições feitas em planejamento clássicoNa Web, não é possível fazer a maioria das suposições feitas no planejamento clássico: l  informação incompleta do mundo: a Web possui uma coleção massiva de informações e que nem sempre podem ser acessadas l  ainda que todo o conteúdo da Web pudesse ser acessado, qualquer aplicação deve coletar informação na Web somente quando necessária l  não se pode ter certeza sobre os efeitos da execução de uma ação (ações não-determinísticas) l  podem ocorrer mudanças no estado do mundo que independem das ações definidas no domínio de planejamento (ações exógenas) l  podem ocorrer transições de estado que não sejam instantâneas (ações com duração de tempo) l  serviços Web podem descrever nomes de processos e dados (nomes de ações e literais) que podem ser subclasses ou equivalência de outros nomes de conceitos Planejamento com ontologias
  36. 36. Como fazer planejamento de serviços Web?Nesse trabalho foram adotadas as seguintes soluções:1.  Serviços Web devem ser descritos como instâncias das ontologias do OWL-S2.  Uso de técnicas de planejamento hierárquico para decompor processos compostos de serviços Web3.  Tarefas primitivas e compostas são processos OWL-S (serviços Web são naturalmente descritos em uma estrutura hierárquica)4.  O estado do mundo é representado como instâncias de ontologias: de serviços e do domínio de aplicação (base de conhecimento) + as informações da Web5.  Pré-condições (de ações primitivas ou de métodos de decomposição) especificam consultas à base de conhecimento ou consultas à Web6.  Para verificar se uma pré-condição é verdadeira, é usado um motor de inferência junto com ontologias Planejamento com ontologias
  37. 37. Planejamento para decompor tarefas: exemplo utilizando consultas na base de conhecimentoTarefa: viajar(Barcelona,Paris) Tarefa:comprar_pass_aérea(euro:Barcelona,euro:Paris) Prec: {SELECT ?C WHEREMétodo(viajar,d1) { euro:cartao euro:saldo ?C} ,Prec: { SELECT ?P1 WHERE (SELECT ?x WHERE {?pass rdf:type euro:passagemAerea.{ ?dist rdf:type euro:dist. ?pass euro:de euro:Barcelona. ?dist euro:de euro:Paris. ?pass euro:para euro:Paris. ?dist euro:para euro:Barcelona. ?pass euro:custo ?P1} ?dist euro:valor ?x}) (C >= P1)} x > 500 km} Efeitos de adição:Rede de Tarefas d1: {(euro:pass_comprada, euro:Barcelona, euro:Paris),{comprar_pass_aérea (euro:cartao, euro:saldo, C – P1)} (euro:Barcelona,euro:Paris) Efeitos de eliminação: {(euro:cartao, euro:saldo, C)}viajar_de_aviao (euro:Barcelona,euro:Paris)} Tarefa: viajar_de_aviao(Barcelona,Paris) ... Planejamento com ontologias
  38. 38. A ferramenta WEBRPlan
  39. 39. Dificuldades para a implementação da ferramentaWEBRPlan 1.  A maioria dos sistemas de planejamento não fazem: l  chamadas externas para a verificação de pré- condições (na Web); l  raciocínio sobre ontologias 2.  Não existem Serviços Web descritos diretamente em OWL-S 3.  Não é possível descrever processos compostos, pré- condições e efeitos em WSDL. Assim, tradutores automáticos de WSDL para OWL-S são limitados. A ferramenta WEBRPlan
  40. 40. Sistema de planejamento JSHOP2 JSHOP2 é um sistema de planejamento hierárquico que possui características desejadas para o planejamento de serviços Web: l  redes de tarefas totalmente ordenadas, o que permite conhecer o estado corrente do mundo em cada etapa do processo de planejamento, facilitando a verificação de pré-condições; l  possui um grande poder de expressividade, por exemplo, nas pré-condições pode-se misturar computações numéricas e chamadas a programas externos (consultas a base de conhecimento ou Web). A ferramenta WEBRPlan
  41. 41. WEBRPlanFerramenta implementada em JAVA que possui quatro funções principais: 1.  Seleção de serviços Web para composição e seleção das ontologias relacionadas ao domínio de aplicação 2.  Conversão das descrições dos serviços em WSDL para OWL-S + inserção de processos compostos e IOPES 3.  Conversão das descrições dos serviços em OWL-S para tarefas e métodos de planejamento hierárquico + inserção das chamadas a um avaliador de pré-condições 4.  Composição de serviços Web, dada uma rede de tarefas especificada pelo usuário, utilizando o planejador JSHOP2 e o JENA (JENA2) A ferramenta WEBRPlan
  42. 42. Integração do JSHOP2 com o JENA e a Web A ferramenta WEBRPlan
  43. 43. Execução do plano n  apesar de fazer coleta de informações e consulta a uma base de conhecimento on-line, o JSHOP2 gera um plano para ser executado off-line. n  somente nesse instante os efeitos da execução dos processos são adicionados a base de conhecimento A ferramenta WEBRPlan
  44. 44. Um estudo de caso:planejamento de viagens
  45. 45. Metodologia de desenvolvimento do estudo de casoResolver o problema de planejamento de viagens de três maneiras diferentes: 1.  Descrever o problema diretamente como tarefas e métodos do planejador JSHOP2 2.  Uso do planejador JSHOP2 fazendo consultas a base de conhecimento formada pela ontologia de viagens (Euro.owl) e suas instâncias. Aqui, precondições e e efeitos são termos da ontologia. Uso do JENA. 3.  Planejamento de viagens diretamenta na Web. Construção e tradução dos serviços de viagem para tarefas e métodos do JSHOP2. Uso do JENA e de cliente. Estudo de caso
  46. 46. Dados do estudo de cason  Foram implementados 5 serviços Web contendo: l  11 operações transacionais (não instanciadas), l  12 operações de coleta de informação (na base de conhecimento ou na Web), l  Um conjunto de 4 ontologias para cada serviço criado e l  Conceitos definidos na ontologia Euro.owl (editada no Protégé). Estudo de caso
  47. 47. Conclusões econtribuições
  48. 48. Conclusões n  Neste trabalho foi mostrado como a composição de serviços Web pode ser descrita como um problema de planejamento; n  Foi identificado que planejamento hierárquico com pré-condições como chamadas de programas externos é uma técnica que pode ser usada a composição de serviços Web; n  Foi definida uma maneira de descrever serviços Web como domínios de planejamento (i.e., em termos de ações, tarefas, pré- condições e efeitos) com base nos princípios da Web Semântica; n  Foi implementado um conjunto de serviços Web para um estudo de caso sobre planejamento de viagens n  Foi implementada a ferramenta WEBRPlan para dar suporte durante todas as etapas envolvidas na composição automática de serviços Web. Conclusões e contribuições
  49. 49. Conclusões n  Foram estudadas e/ou empregadas as seguintes tecnologias: l  Ontologias e Web Semântica l  JENA, SPARQL, Protégé, OWL, RDF, RDFS l  XML, Java, Eclipse l  Serviços Web, WSDL, Tomcat, Axis e os protocolos HTTP e SOAP l  OWL-S, OWL-S API, WSDL2OWL-S l  Planejamento em IA e o planejador JSHOP2 Conclusões e contribuições
  50. 50. Contribuições n  propor e implementar uma combinação original de tecnologias para realizar a composição de Serviços Web: JSHOP-2 + JENA + OWL-S n  explicar e implementar um processo completo de composição de serviços Web segundo a proposta da Web Semântica n  desenvolver uma interface entre o planejador e o motor de inferência, evitando-se alterar a implementação do planejador n  adotar uma nova maneira de representar pré-condições e efeitos em OWL- S n  disponibilizar a ferramenta de software WEBRplan, para ser usda em outros domínios de aplicação, diferentes do estudo de caso: WEBRplan ferramenta pode ser vista como um produto gerado pelo trabalho de mestrado n  construção incremental do estudo de caso como uma forma didática para a compreensão do uso de 3 tecnologias emergentes: (1) planejamento, (2) planejamento com ontologias e (3) planejamento com ontologias para serviço Web. Conclusões e contribuições
  51. 51. WEBRPlan:demonstração

×