Upload
juliana-chahoud
View
939
Download
1
Embed Size (px)
DESCRIPTION
Apresentação utilizada na minha defesa de mestrado no IME - USP em junho de 2006
Citation preview
Planejamento para Serviços Web Semânticos
Juliana Jabra Chahoud [email protected]
Junho / 2006
Orientadora: Profa Leliane Nunes de Barros
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
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
Exemplo de composição de serviços Web
Preço de livros em dólares
Conversão de moedas
Preço de livros em reais
1 2
Introdução
Composição de serviços completamente automatizada
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
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
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
Estudo de Caso: planejamento de uma viagem para Europa
n 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
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
Serviços Web
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
Como usar um serviço Web?
Publica a URL e descrição do serviço Web
.wsdl
Serviço Web Proxy
Cliente
UDDI
1 2
3
5 6
1
2
3
5
Descobre o serviço Web Lê a descrição WSDL
Cria um proxy para o serviço Web Invoca o serviço Web através do Proxy
6
Serviços Web
WSDL: exemplo do serviço para compra de ingressos
Onde o serviço está localizado
Como as mensagens serão transmitidas:
especificação do SOAP
Operações que serão permitidas:
comprarIngresso
Mensagens que serão transmitidas:
comprarIngressoRequest
comprarIngressoResponse
Serviços Web
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
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 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
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)
Web Semântica
ontologias + instâncias = base de conhecimento
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
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
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
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
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
OWL-S:
ontologias para descrição de serviços Web
OWL-S: OWL-based Web Service ontology
n Conjunto de ontologias para descrever serviços Web através da linguagem OWL que facilitam a construção de processos automáticos para Web
n OWL-S é estruturada em quatro ontologias: l Service.owl, l Profile.owl, l Process.owl e l Grounding.owl
OWL-S
ontologias OWL-S + serviços Web = base de conhecimento
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 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
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
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
Planejamento com ontologias
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
Planejamento para metas de alcance
Um 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
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 s0 Estraté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
Planejamento para metas de alcance: exemplo
Ação: viajar(SaoPaulo,Paris) Prec: {em (SaoPaulo) , tempassagem(SaoPaulo,Paris)} Efeitos de Adição: {em(Paris)} Efeitos de Eliminação: {em(SaoPaulo), tempassagem(SaoPaulo,Paris)}
Ação: visitar(TorreEiffel) Prec: {em ( Paris)} Efeitos de adição: {visitada(TorreEiffel)}
s0: {em(SaoPaulo), tempassagem(SaoPaulo,Paris)}
G: visitada(TorreEiffel)
Plano solução: viajar( SãoPaulo, Paris) è visitar( TorreEiffel)
Planejamento com ontologias
Planejamento para decompor tarefas: exemplo
Planejamento com ontologias
Tarefa: comprar_pass_aérea(Barcelona,Paris) Prec: {saldo_cartao(C) , custo_pass_aerea(Barcelona, Paris,P1), (C>= P1)} Efeitos de adição: {passagem_comprada(Barcelona, Paris), saldo_cartao(C – P1)} Efeitos de eliminação: {saldo_cartao(C)}
Tarefa: viajar_de_aviao(Barcelona,Paris) Prec: {passagem_comprada(Barcelona, Paris), em(Barcelona)} Efeitos de adição: {em(Paris)} Efeitos de eliminação: {em(Barcelona)}
Método(viajar,d1) Prec: {distancia(Barcelona,Paris) > 500 km} Rede de Tarefas d1: {comprar_pass_aérea(Barcelona,Paris) viajar_de_aviao(Barcelona,Paris)}
Método(viajar,d2) Prec: { } Rede de Tarefas d2: {comprar_pass_trem(Barcelona,Paris), viajar_de_trem(Barcelona,Paris)}
Tarefa: viajar(Barcelona,Paris) s0: {em(Barcelona), saldo_cartao(C), custo_pass_aerea(Barcelona, Paris, P1) custo_pass_trem(Barcelona, Paris, P2)}
Plano solução: comprar_pass_aérea(Barcelona,Paris) è viajar_de_aviao(Barcelona,Paris)
Planejamento para serviços Web: as suposições feitas em planejamento clássico
Na 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
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-S 2. Uso de técnicas de planejamento hierárquico para decompor processos
compostos de serviços Web 3. 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 Web
5. Pré-condições (de ações primitivas ou de métodos de decomposição) especificam consultas à base de conhecimento ou consultas à Web
6. Para verificar se uma pré-condição é verdadeira, é usado um motor de inferência junto com ontologias
Planejamento com ontologias
Planejamento para decompor tarefas: exemplo utilizando consultas na base de conhecimento
Planejamento com ontologias
Tarefa:comprar_pass_aérea(euro:Barcelona,euro:Paris) Prec: {SELECT ?C WHERE { euro:cartao euro:saldo ?C} , SELECT ?P1 WHERE {?pass rdf:type euro:passagemAerea. ?pass euro:de euro:Barcelona. ?pass euro:para euro:Paris. ?pass euro:custo ?P1} (C >= P1)} Efeitos de adição: {(euro:pass_comprada, euro:Barcelona, euro:Paris), (euro:cartao, euro:saldo, C – P1)} Efeitos de eliminação: {(euro:cartao, euro:saldo, C)}
Método(viajar,d1) Prec: { (SELECT ?x WHERE { ?dist rdf:type euro:dist. ?dist euro:de euro:Paris. ?dist euro:para euro:Barcelona. ?dist euro:valor ?x}) x > 500 km} Rede de Tarefas d1: {comprar_pass_aérea (euro:Barcelona,euro:Paris) viajar_de_aviao (euro:Barcelona,euro:Paris)}
Tarefa: viajar(Barcelona,Paris)
Tarefa: viajar_de_aviao(Barcelona,Paris) ...
A ferramenta WEBRPlan
Dificuldades para a implementação da ferramenta WEBRPlan
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
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
WEBRPlan
Ferramenta 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
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 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
Um estudo de caso: planejamento de viagens
Metodologia de desenvolvimento do estudo de caso
Resolver 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
Dados do estudo de caso
n 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
Conclusões e contribuições
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
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
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
WEBRPlan: demonstração