Upload
internet
View
116
Download
3
Embed Size (px)
Citation preview
11
ITA - Instituto Tecnológico de ITA - Instituto Tecnológico de AeronáuticaAeronáutica
Aula # Aula # 22 - Introdução a - Introdução a Web Services SemânticosWeb Services Semânticos Disciplina: CE 262 – Ontologias e Web Semântica.Disciplina: CE 262 – Ontologias e Web Semântica.
Prof. Dr. José Maria ParenteProf. Dr. José Maria Parente
Grupo: FerrucioGrupo: Ferrucio de Franco Rosa/de Franco Rosa/ Luiz Eduardo Guarino de VasconcelosLuiz Eduardo Guarino de Vasconcelos /Rafael de Alencar Segura/Rafael de Alencar Segura
Junho/2007Junho/2007
22
RoteiroRoteiro
Vídeo-aula e Aula prática – criando Web ServicesVídeo-aula e Aula prática – criando Web Services SWS – Introdução e Conceitos IniciaisSWS – Introdução e Conceitos Iniciais Objetivos dos SWSObjetivos dos SWS ExemplosExemplos Padrões para Serviços Web SemânticosPadrões para Serviços Web Semânticos WSDL-SWSDL-S SA-WSDLSA-WSDL WSMOWSMO OWL-SOWL-S Considerações finaisConsiderações finais
33
Vídeo-aulaVídeo-aula
Vídeo-aula: “Construindo um Web Service em Java”Vídeo-aula: “Construindo um Web Service em Java” O objetivo desta aula é apresentar uma forma de O objetivo desta aula é apresentar uma forma de
construir um Web Service utilizando a IDE Eclipseconstruir um Web Service utilizando a IDE Eclipse Link para VídeoLink para Vídeo
44
Aula práticaAula prática
Aula prática 1: “Construindo um Web Service em Netbeans”Aula prática 1: “Construindo um Web Service em Netbeans” O objetivo desta aula é apresentar uma forma de construir O objetivo desta aula é apresentar uma forma de construir
um Web Service utilizando a IDE NETBEANSum Web Service utilizando a IDE NETBEANS Aula prática 2: “Construindo um Web Service em .NET”Aula prática 2: “Construindo um Web Service em .NET”
O objetivo desta aula é apresentar uma forma de construir O objetivo desta aula é apresentar uma forma de construir um Web Service utilizando a IDE Visual Studio .NETum Web Service utilizando a IDE Visual Studio .NET
55
IntroduçãoIntrodução A Web Semântica tem como objetivo trazer significado
aos dados armazenados nos servidores e páginas Web, tornando-os passíveis de serem processados e interpretados, por agentes de software. O que levará a uma “Web de conhecimento” (BERNERS-LEE, 2005), onde as informações estarão inter-relacionadas e poderão ser recuperadas de forma mais eficaz.
Evolução da Web atual para uma mais rica semanticamente, a pesquisa, o desenvolvimento e o uso das tecnologias da Web Semântica visam enriquecer a descrição dos serviços oferecidos pelos Web Services e trazer um conjunto de novas possibilidades para aplicações baseadas nesta tecnologia. O que levará à criação de Web Services Semânticos (SWS).
66
Web Semântica + Web Services = Web Semântica + Web Services = SWS – Web Services SemânticosSWS – Web Services Semânticos
Problemas atuais: Por exemplo, a falta de informação semântica, que torna o processo de descoberta e invocação de WS um processo manual.
Vantagens do SWS: partir da integração dos WS com a Web Semântica, os provedores de serviços poderão se beneficiar dessa integração ao anotarem semanticamente seus serviços, com alguma linguagem de marcação semântica, o que possibilitará aos agentes de software: descobrir, selecionar e executar Web Services de forma automática.
77
ObjetivoObjetivo
Os serviços Web semânticos deverão permitir que agentes de software
interajam na Web de forma autônoma, sem intervenção humana, ou com um
grau reduzido de intervenção humana.
88
WSDL-SWSDL-S Web Services Semantics - A especificação WSDL-S é Web Services Semantics - A especificação WSDL-S é
uma submissão da W3C que define como adicionar uma submissão da W3C que define como adicionar semântica nos documentos WSDL.semântica nos documentos WSDL.
As anotações semânticas definem os significados: As anotações semânticas definem os significados: inputs, outputs, preconditions effects das operações inputs, outputs, preconditions effects das operações descritas na interface do serviço.descritas na interface do serviço.
As anotações referenciam conceitos na ontologia.As anotações referenciam conceitos na ontologia.
Fonte: (http://www.w3.org/Submission/WSDL-S/)
99
……………………<xs:element name= "processPurchaseOrderResponse" type="xs:string<xs:element name= "processPurchaseOrderResponse" type="xs:stringwssem:modelReferencewssem:modelReference=="POOntology#OrderConfirmation""POOntology#OrderConfirmation"/>/></xs:schema></xs:schema></types></types><interface name="PurchaseOrder"><interface name="PurchaseOrder"><<wssem:categorywssem:category name= “Electronics” taxonomyURI=http://www.naics.com/ name= “Electronics” taxonomyURI=http://www.naics.com/
taxonomyCode=”443112” />taxonomyCode=”443112” />
<operation name="processPurchaseOrder” pattern=wsdl:in-out<operation name="processPurchaseOrder” pattern=wsdl:in-outmodelReferencemodelReference = = ""rosetta:#RequestQuoterosetta:#RequestQuote" " >>
<input messageLabel = ”processPurchaseOrderRequest"<input messageLabel = ”processPurchaseOrderRequest"element="tns:processPurchaseOrderRequest"/>element="tns:processPurchaseOrderRequest"/><output messageLabel ="processPurchaseOrderResponse"<output messageLabel ="processPurchaseOrderResponse"element="processPurchaseOrderResponse"/>element="processPurchaseOrderResponse"/>
<!—Precondition and effect are added as extensible elements on an operation><!—Precondition and effect are added as extensible elements on an operation><<wssem:preconditionwssem:precondition name="ExistingAcctPrecond"name="ExistingAcctPrecond"wssem:modelReferencewssem:modelReference="POOntology#AccountExists"="POOntology#AccountExists">><<wssem:effectwssem:effect name="ItemReservedEffect"name="ItemReservedEffect"wssem:modelReferencewssem:modelReference="POOntology#ItemReserved"="POOntology#ItemReserved"/>/></operation></operation></interface></interface>
PurchaseOrder.wsdlsPurchaseOrder.wsdls
1010
Operações de AnotaçãoOperações de Anotação extension element :extension element : PreconditionPrecondition
Um conjunto de condições que devem ser satisfeitas antes da operação Um conjunto de condições que devem ser satisfeitas antes da operação de invocar o Web service. de invocar o Web service.
• ““deve ser cadastrado na empresa” deve ser cadastrado na empresa” • ““somente clientes do brasil podem realizar uma determinada compra”somente clientes do brasil podem realizar uma determinada compra”
extension element : Effectextension element : Effect Define o estado da informação após a operação de invocação. Define o estado da informação após a operação de invocação.
• ““o item foi enviado para o endereço cadastrado”o item foi enviado para o endereço cadastrado”• ““será debitado no cartão de crédito”será debitado no cartão de crédito”
extension element : schemaMappingextension element : schemaMapping• É utilizado para manipular as diferenças entre os elementos do esquema do É utilizado para manipular as diferenças entre os elementos do esquema do
web service e o modelo semântico. web service e o modelo semântico. extension attribute : Categoryextension attribute : Category
Modela uma categoria de serviço no WSDL interface element.Modela uma categoria de serviço no WSDL interface element.• category = “Electronics” Code = “naics:443112” category = “Electronics” Code = “naics:443112”
1111
Anotações Semânticas: para elementos Anotações Semânticas: para elementos simplessimples
<wsdl:types> (...)
<xs:element name= "processPurchaseOrderResponse" type="xs:string (...)</wsdl:types>
Billing
AccountOrderConfirmation
xsd:string
OWL ontology
has_account
has_accountID
WSDL message element
1:1 Correspondences1:1 Correspondences<xs:element name= "processPurchaseOrderResponse" type="xs:string <xs:element name= "processPurchaseOrderResponse" type="xs:string
wssem:modelReferencewssem:modelReference="POOntology#OrderConfirmation"/>="POOntology#OrderConfirmation"/>
results_in
semantic match
1212
Foi proposto pelo W3C duas alternativas de Foi proposto pelo W3C duas alternativas de anotações para os tipos compostos: (bottom e anotações para os tipos compostos: (bottom e top annotation)top annotation)
1.1. Bottom Level Annotation:Bottom Level Annotation: Anotação é feita em Anotação é feita em nível de folha do elemento. nível de folha do elemento.
Anotações Semânticas para elementos Anotações Semânticas para elementos complexos [1/2]complexos [1/2]
<complexType name="POItem"> <all> <element name="dueDate" type="dateTime“ wssem:modelReference="POOntology#DueDate"/> wssem:modelReference="POOntology#DueDate"/> <element name="quantity" type="float" wssem:modelReference="POOntology#Quantity"/>wssem:modelReference="POOntology#Quantity"/> <element name="EANCode" type="string" wssem:modelReference="POOntology#ItemCode"/>wssem:modelReference="POOntology#ItemCode"/> <element name="itemDesc" type="string" wssem:modelReference="POOntology#ItemDesc"/>wssem:modelReference="POOntology#ItemDesc"/> </all> </complexType>
1313
modelReference at the leaf levelsmodelReference at the leaf levels assumes a 1:1 correspondence between leaf elements and domain model assumes a 1:1 correspondence between leaf elements and domain model
conceptsconcepts
<complexType name="POItem" >
<all>
<element name="dueDate" nillable="true" type="dateTime" wssem:modelReference=”POOntology#dueDate”/> <element name="qty" type="float" wssem:modelReference=”#POOntology#Quantity”/> <element name="EANCode" nillable="true" type="string" wssem:modelReference=”POOntology#Item”/> <element name="itemDesc" nillable="true" type="string" wssem:modelReference=”POOntology#ItemDesc” />
</all>
</complexType>
Item
dueDate
ItemDesc
Quantity
OWL ontology
hasIemDesc
hasDueDate
hasQuantity
WSDL complex type element
Using modelReference and Using modelReference and schemaMappingschemaMapping
1414
2. Top Level Annotation: Anotando um tipo complexo
Um tipo complexo pode ter uma anotação semântica através de: Um tipo complexo pode ter uma anotação semântica através de: wssem:modelReferencewssem:modelReference. Este atributo “aponta” para um alto nível . Este atributo “aponta” para um alto nível do conceito na ontologia em questão. do conceito na ontologia em questão.
Não especifica anotações semânticas para seus elementos;Não especifica anotações semânticas para seus elementos; Neste caso é necessário a utilização de Neste caso é necessário a utilização de schemaMappingschemaMapping
Anotações Semânticas para elementos Anotações Semânticas para elementos complexos [1/2]complexos [1/2]
Appendix A
1515
<wsdl:types> (...) <complexType name=“Address"> <sequence> <element name=“StreetAd1“ type="xsd:string"/> <element name=“StreetAd2" type="xsd:string"/> ........... </sequence> </complexType> (...)</wsdl:types>
Address
StreetAddress
xsd:string
xsd:string
OWL ontology
hasCity
hasStreetAddress
hasZip
WSDL complex type element
1.1. modelReferencemodelReference estabelece a associação estabelece a associação semântica.semântica.
2.2. schemaMappingschemaMapping : resolve as diferenças de : resolve as diferenças de estruturas na comparação semântica.estruturas na comparação semântica.
semantic match
Anotações Semânticas: para elementos Anotações Semânticas: para elementos complexos[2/2]complexos[2/2]
1616
Representando o MapeamentoRepresentando o Mapeamento
<complexType name="POAddress"
wssem:schemaMapping=”http://www.ibm.com/schemaMapping/POAddress.xsl
#input-doc=doc(“POAddress.xml”)”>
<all><element name="streetAddr1" type="string" /> <element name="streetAdd2" type="string" /> <element name="poBox" type="string" /><element name="city" type="string" /> <element name="zipCode" type="string" /><element name="state" type="string" /><element name="country" type="string" /><element name="recipientInstName" type="string" /> </all></complexType>
Address
xsd:string
xsd:string
xsd:string
OWL ontology
has_City
has_StreetAddress
has_Zip
WSDL complex type element
.... <xsl:template match="/">
<POOntology:Address rdf:ID="Address1">
<POOntology:has_StreetAddress rdf:datatype="xs:string">
<xsl:value-of select="concat(POAddress/streetAddr1,POAddress/streetAddr2)"/>
</POOntology:has_StreetAddress >
<POOntology:has_City rdf:datatype="xs:string">
<xsl:value-of select="POAddress/city"/>
</POOntology:has_City>
<POOntology:has_State rdf:datatype="xs:string">
<xsl:value-of select="POAddress/state"/>
</POOntology:has_State>....
Mapping using XSLT
1717
Web SemânticaWeb Semântica
Semantic AnnotationSemantic Annotation
Uma anotação semântica é uma informação adicional Uma anotação semântica é uma informação adicional em um documento que identifica ou define um conceito em um documento que identifica ou define um conceito em um modelo semântico. em um modelo semântico.
Em SA-WSDL, as anotações semânticas são atributos Em SA-WSDL, as anotações semânticas são atributos XML adicionados a documentos WSDL no elemento XML adicionados a documentos WSDL no elemento XML que elas descrevem. XML que elas descrevem.
Podem ser de dois tipos:Podem ser de dois tipos: Identificadores explícitos de conceitosIdentificadores explícitos de conceitos Identificadores de mapeamentos de WSDL para Identificadores de mapeamentos de WSDL para
conceitos ou vice-versaconceitos ou vice-versa
1818
Web SemânticaWeb Semântica
SA-WSDLSA-WSDL
SA-WSDL é uma extensão de WSDLSA-WSDL é uma extensão de WSDL Padrão usado para associar interfaces, Padrão usado para associar interfaces,
operações, parâmetros de E/S a conceitos operações, parâmetros de E/S a conceitos SemânticosSemânticos
Link entre uma Ontologia (OWL - que descreve o Link entre uma Ontologia (OWL - que descreve o domínio) e o serviço disponível (WSDL)domínio) e o serviço disponível (WSDL)
http://www.w3.org/TR/sawsdl/http://www.w3.org/TR/sawsdl/ Seu namespace:Seu namespace:
xmlns:sawsdl="http://www.w3.org/ns/sawsdl"xmlns:sawsdl="http://www.w3.org/ns/sawsdl" W3C Working Draft 10 April 2007W3C Working Draft 10 April 2007
1919
Web SemânticaWeb Semântica
SA-WSDLSA-WSDL
NÃO especifica uma linguagem para representação de NÃO especifica uma linguagem para representação de modelos semânticos (ex.: ontologias)modelos semânticos (ex.: ontologias)
Provê mecanismos pelos quais conceitos de modelos Provê mecanismos pelos quais conceitos de modelos semânticos que são definidos dentro de documentos semânticos que são definidos dentro de documentos WSDL podem ser referenciados como anotações.WSDL podem ser referenciados como anotações.
Esta semântica, quando expressada em linguagens Esta semântica, quando expressada em linguagens formais, pode auxiliar na descoberta e composição de formais, pode auxiliar na descoberta e composição de serviços web. serviços web.
NÃO descreve como um cliente pode obter o NÃO descreve como um cliente pode obter o documento, mas onde o modelo semântico é definido. documento, mas onde o modelo semântico é definido.
2020
Web SemânticaWeb Semântica
SA-WSDLSA-WSDL
Baseado em WSDL-S, os princípios de projeto chave Baseado em WSDL-S, os princípios de projeto chave são:são:
A especificação disponibiliza anotações para Serviços Web A especificação disponibiliza anotações para Serviços Web usando e construindo no existente extensível framework de usando e construindo no existente extensível framework de WSDL.WSDL.
Ser indiferente para linguagens de representação semântica.Ser indiferente para linguagens de representação semântica. Disponibilizar anotações semânticas não somente para Disponibilizar anotações semânticas não somente para
descoberta, mas também para chamada de Serviços Web.descoberta, mas também para chamada de Serviços Web.
2121
Web SemânticaWeb Semântica
SA-WSDLSA-WSDL
Baseado nos princípios de projeto, SA-WSDL define os seguintes Baseado nos princípios de projeto, SA-WSDL define os seguintes novos atributos para WSDL 2.0 para disponibilizar anotações novos atributos para WSDL 2.0 para disponibilizar anotações semânticas de seus componentes:semânticas de seus componentes:
Uma extensão atributo, chamada Uma extensão atributo, chamada modelReferencemodelReference, para especificar a , para especificar a associação entre um componente WSDL e um conceito em algum associação entre um componente WSDL e um conceito em algum modelo semântico. Este atributo é usado para anotar XML Schema modelo semântico. Este atributo é usado para anotar XML Schema complex type definitions, simple type definitions, element declarations, complex type definitions, simple type definitions, element declarations, and attribute declarations bem como WSDL interfaces, operations, and and attribute declarations bem como WSDL interfaces, operations, and faults. faults.
Duas extensões atributos (Duas extensões atributos (SchemaMappingsSchemaMappings), chamadas ), chamadas liftingSchemaMappingliftingSchemaMapping and and loweringSchemaMappingloweringSchemaMapping, que são , que são adicionados a declarações de elementos XML Schema, definições de adicionados a declarações de elementos XML Schema, definições de tipos complexos e simples para especificar mapeamentos entre dados tipos complexos e simples para especificar mapeamentos entre dados semânticos e XML. Estes mapeamentos podem ser usados durante a semânticos e XML. Estes mapeamentos podem ser usados durante a invocação dos serviços. invocação dos serviços.
2222
Web SemânticaWeb Semântica
SA-WSDLSA-WSDL
SA-WSDL permite multiplas associações com SA-WSDL permite multiplas associações com elementos WSDL.elementos WSDL.
Schema mappings and model references podem conter Schema mappings and model references podem conter multiplos ponteiros.multiplos ponteiros.
SA-WSDL não especifica qualquer relacionamento SA-WSDL não especifica qualquer relacionamento entre eles (models)entre eles (models). Relações entre conceitos são . Relações entre conceitos são feitos em Ontologias.feitos em Ontologias.
2323
Web SemânticaWeb Semântica
SA-WSDL – Model ReferenceSA-WSDL – Model Reference
Um Model Reference pode ser usado com qualquer elemento dentro de Um Model Reference pode ser usado com qualquer elemento dentro de WSDL. Todavia, SA-WSDL define o significado somente para WSDL. Todavia, SA-WSDL define o significado somente para wsdl:interface, wsdl:operation, wsdl:faultwsdl:interface, wsdl:operation, wsdl:fault..
O valor do atributo O valor do atributo modelReference modelReference pode ir de zero a N URIs, pode ir de zero a N URIs, separados por espaços, que identificam conceitos em um modelo separados por espaços, que identificam conceitos em um modelo semântico. semântico.
Cada URI é um ponteiro para um conceito em um modelo semântico Cada URI é um ponteiro para um conceito em um modelo semântico cuja intenção é prover informação semântica sobre o WSDL ou o cuja intenção é prover informação semântica sobre o WSDL ou o componente XML Schema que está sendo anotado.componente XML Schema que está sendo anotado.
O atributo O atributo modelReference modelReference permite multiplas anotações serem permite multiplas anotações serem associadas com um dado WSDL via URIs. Estas URIs devem associadas com um dado WSDL via URIs. Estas URIs devem identificar conceitos expressos em diferentes linguagens de identificar conceitos expressos em diferentes linguagens de representação semântica. representação semântica.
Quando um componente é anotado com um Quando um componente é anotado com um modelReference modelReference que inclui que inclui múltiplas URIs, cada uma delas se aplica ao componente, mas nenhum múltiplas URIs, cada uma delas se aplica ao componente, mas nenhum relacionamento lógico entre eles é definido por esta especificação.relacionamento lógico entre eles é definido por esta especificação.
2424
Web SemânticaWeb Semântica
SA-WSDL
2525
Web SemânticaWeb Semântica
SA-WSDL – ExemplosSA-WSDL – Exemplos
Anotando “WSDL Operation”Anotando “WSDL Operation”
Anotando “WSDL Fault”Anotando “WSDL Fault”
2626
WSMOWSMO
WSMO – Web Service Modeling Ontology Os objetivos de WSMO Studio são:
Prover uma ferramenta gráfica que auxilia usuários com tarefas relacionadas a anotações semânticas em Web Services.
Prover uma ferramenta extensível e arquitetura que irá permitir integração das funcionalidades extendidas.
Características: Ambiente de modelagem integrado Standalone Aplicação baseada em Eclipse
Funcionalidades: Exportação e importação de descrições (suporta WSML, WSML-XML
e OWL-DL) Front-end to service, goal, mediator and ontology repositories Criação de choreography descriptions SAWSDL editor para adicionar anotações semânticas a Documentos
WSDL
2727
WSMOWSMO
2828
WSMOWSMO
Vídeo-aula SA-WSDL com WSMO Anotações semânticas em Serviços Web usando OWL e SA-WSDL Link para Vídeo-aula
2929
Ontology Web Language for Services
OWL-S é a evolução da DAML-S É uma ontologia escrita em OWL, uma linguagem voltada para construção de ontologias que vem se tornando um padrão na Web
Desenvolvimento de novas linguagens de marcação como DAML+OIL e OWL
Permitem criação de ontologias e instanciação delas em web sites.
Objetivo das linguagens: estabelecer uma estrutura para que as descrições sejam feitas e compartilhadas. Web sites devem empregar ontologia padrão, consistindo num conjunto de classes e propriedades básicas para declarar e descrever os serviços na estrutura OWL.
Logo, será possível pesquisar por índices e não mais por palavras-chave
OWL-SOWL-S
3030
Coelho [2005], acrescenta, que a OWL-S “foi criada com base nos conceitos da Web semântica, tendo como objetivo principal permitir a descoberta, a invocação, a composição e a monitoração automática de serviços da web”.
Então, OWL-S deve permitir três tarefas básicas: - descoberta automática do serviço web- invocar de forma automática o serviço web- composição e interoperação automáticos do serviço web
É usada para descrever serviços Web através de classes extensíveis que cobrem atributos funcionais e não funcionais dos serviços. Entretanto, OWL-S foi construída com o foco em extensão e é muito genérica a fim de permitir um amplo escopo de possibilidades. Embora uma abordagem genérica seja altamente desejável para estimular o reuso, ela abre o caminho para incompatibilidades se não se fornece nenhuma orientação sobre como se devem estender os descritores.
OWL-SOWL-S
3131
Descoberta automática de Web Services: é o processo automatizado de localizar serviços, que são oferecidos por provedores de serviço, com base nas capacidades que estes oferecem e nas restrições impostas pelo cliente. Estes serviços podem ser localizados através de engenhos de busca baseados em ontologias, ou ainda, serem localizados com base nos anúncios dos serviços através de Registros de serviços, como UDDI, para que estes possam ser consultados e retornem o serviço solicitado;
Invocação automática de Web Services: É a execução de um serviço de forma automatizada, por parte de um agente de software ou programa de computador, com base nas entradas, saídas, pré-condições e efeitos (IOPES).
Composição e Interoperação automática de Web Services: Esta tarefa envolve a seleção automática, composição e interoperação de Web Services para realizar tarefas complexas, com base nas entradas, saídas, pré-condições e efeitos (IOPES). Este processo mostra-se importante, principalmente quando uma requisição de um usuário não pode ser atendida por apenas um serviço. Sendo assim, para solucionar esse problema OWL-S oferece formas de construir composições de serviços que possam atender a requisição do usuário.
OWL-SOWL-S
3232
Segundo a W3C [2004], grandes esforços estão sendo aplicados visando o desenvolvimento da web semântica, onde significantes linguagens para sua aplicação estão sendo desenvolvidas, como a OWL e, recentemente, a OWL-S. Tais linguagens proporcionam a criação de ontologias para qualquer domínio, proporcionando, deste modo, a semântica num contexto de interesse.Ex.: e-business - relacionamento entre clientes e fornecedores. [Análise de Técnicas para e-Business a partir de Conceitos da Web Semântica]
Segundo Chahoud [2005] e Coalition [2004], muitas propostas são apresentadas para o uso da web Semântica nos serviços web, como WSLA [http://www.research.ibm.com/wsla], WSIL [http://www-128.ibm.com/developerworks/library/specification/ws-wsilspec] e WSML [http://www.wsmo.org/wsml].
Nos serviços web, a OWL-S trata as composições dos serviços como processos, logo existe uma divisão caracterizada de suas propriedades, de sua estrutura e da implementação.
OWL-SOWL-S
3333
Apesar de ser uma ontologia de alto nível para a descrição de
serviços na web, é geralmente confundida como uma
linguagem, isso por fornecer um vocabulário que pode ser
utilizado juntamente com a linguagem OWL [COELHO, 2005].
OWL-S, por basear-se em tecnologias derivadas do popular
padrão XML, possui como principal deficiência a falta de
suporte para representação de regras, recurso necessário
para a definição das precondições e pós-condições de um
serviço. Essa deficiência é superada no futuro com a
incorporação de regras através da iniciativa RuleML
(RULEML, 2004).
OWL-SOWL-S
3434
As ontologias são desenvolvidas de acordo com o nível de
abrangência que os especialistas desejam aplicar, do mais
específico ao mais abrangente. Quanto mais específica uma
ontologia, menor é a sua capacidade de reusabilidade e
integração com outras ontologias, isso devido sua
conceitualização ser fechada para uma determinada
especificidade [GUARINO, 1998]. Deste modo, Guarino
[1998] aconselha analisar atentamente a finalidade para a
qual uma ontologia está sendo construída e o nível de
abrangência que ela deve possuir. Diante esse contexto, as
ontologias são classificadas em quatro tipos:
Classificação das ontologiasClassificação das ontologias
3535
• Ontologias Genéricas: ou de “alto-nível”, abrangem uma conceituação
mais generalizada, como objeto, espaço e tempo, que não dependem de
um domínio específico. Deste modo, as ontologias genéricas são
facilmente compartilhadas entre as comunidades de desenvolvedores.
• Ontologias de Domínio: ou “verticais”, abrangem a conceituação de um
domínio em genérico, como de uma biblioteca ou supermercado.
• Ontologias de Tarefa: ou “horizontais”, abrangem uma conceituação de
uma tarefa ou atividade de uma ontologia genérica, por exemplo,
empréstimo de livros ou venda de produtos.
• Ontologias de Aplicação: abrangem uma conceituação específica de
ontologias de domínio e de tarefa. Por exemplo, uma ontologia de
aplicação de produtos de limpeza, onde essa ontologia especializará
conceito da ontologia de supermercado, que é uma ontologia de domínio.
Classificação das ontologiasClassificação das ontologias
3636
A linguagem OWL permite a definição explícita dos
significados dos termos e seus relacionamentos, sendo assim
mais expressiva na definição de ontologias. É uma linguagem
baseada em XML e compatível com RDF e RDF Schema,
deste modo, além de oferecer os recursos das linguagens
citadas, ainda oferece mecanismos para que as máquinas
realizem a inferência da semântica dos dados [SILVA, 2004].
OWLOWL
3737
A OWL-S fundamenta alguns serviços web, como pode ser visto na figura.
• ServiceProfile: descreve as funcionalidades do serviço web, “o que o serviço requer do cliente e o que o serviço fornece ao cliente”;
• ServiceGrounding: descreve como o serviço web vai ser acessado (formato das mensagens, transporte, endereçamento, entre outros).
• ServiceModel: descreve como é a execução do serviço web, “como o serviço funciona e quais as conseqüências de sua execução”;
OWL-SOWL-S
Fonte: http://www.w3.org/Submission/OWL-S/
3838
Algumas Classes em OWL-S
OWL-SOWL-S
3939
Algumas propriedades em OWL-S
OWL-SOWL-S
4040
A OWL-S [DAML Program, 2004], originalmente denominada DAML-S, é uma ontologia para descrever Web Services dentro de um framework baseado em OWL [W3C, 2004c] da Web Semântica.
Entre seu principais objetivos estão automatizar o descobrimento e a utilização de serviços na Web, tanto para pessoas quanto para agentes de software [The OWL Services Coalition, 2003].
A ontologia está estruturada nas classes Perfil de Serviço, Modelo de Serviço e Bases do Serviço (respectivamente do inglês Service Profile, Service Model e Service Grounding), que fornecem informações essenciais sobre o serviço descrito, pois representam, respectivamente “o que o serviço faz", “como o serviço trabalha" e “como o serviço pode ser acessado".
Na versão 1.1 da linguagem OWL-S, um processo abstrato pode ter parâmetros e recursos, mas não existe ainda uma forma de especificar o mapeamento de parâmetros e de recursos entre um processo abstrato e os seus processos concretos relacionados. A versão 1.2 está em desenvolvimento.
OWL-SOWL-S - Resumo - Resumo
4141
Produtos disponíveis
Microsoft .NET: ASP.NET, .NET Framework, Visual Studio.NET
J2EE: BEA -- WebLogic Studio Cape Clear – CapeConnect, CapeStudio IBM – Alpha works toolkits, DB2 XML Extender, WORF, WebSphere Studio, WebSphere UDDI IONA -- XMLBus, WSIP, ASP Oracle – Oracle9iAS Serviços Web & UDDI Sun – Sun ONE (iPlanet, etc) Systinet – WASP Developer, Server, UDDI, Security
Open Source: Axis (Apache)
Muitos outros vendedores: ERP, CRM, IDE
4242
Links para PadrõesLinks para Padrões Atividade em relação a Serviços web
http://www.w3.org/2002/ws/ SOAP W3C Working Drafts - 17 December 2001
http://www.w3.org/2002/ws/#drafts • SOAP 1.2
WSDL W3C Note Released March 2001 http://www.w3.org/TR/wsdl
WSDL Schema - Especificações Base Definition: http://schemas.xmlsoap.org/wsdl/ SOAP Extension: http://schemas.xmlsoap.org/wsdl/soap/
Serviços Web - Grupo de Trabalho sobre Descrição http://www.w3.org/2002/ws/desc/
UDDI http://www.uddi.org
Diretórios de Serviços Web http://www.xmethods.net
4343
Considerações finaisConsiderações finais O framework de Serviços Web está sendo definido, padronizado e suportado
pela indústria. Aceitação ampla da indústria e conformidade com padrões irão fazê-lo ubiqüo. Irá trazer um nível sem precedentes de interoperabilidade para as aplicações
Web, pois não interessa a linguagem ou a plataforma de desenvolvimento. Os benefícios dos Serviços Web, não são limitados à Web. Qualquer alternativa
tecnológica desenvolvida poderá ser usada no âmbito das redes locais. A tecnologia de Serviços Web agrega valor real ao negócio.
As iniciativas de inserir semântica nas descrições de serviço ainda estão em uma fase inicial. Desta forma, poucas iniciativas apresentaram resultados que levam os desenvolvedores a investir em mais uma fase (ou camada) na criação dos serviços.
Necessidade de aplicações práticas que façam combinações entre a tecnologia madura e a tecnologia em testes (drafts) para maior adequabilidade e viabilidade das propostas. “Não adianta propor uma aplicação semântica se a mesma resulta em um tempo de 40 seg. para obter resposta de uma base com 30 registros.”
Anotações semânticas em serviços (SA-WSDL) poderão ser usadas para aumentar a precisão no processo de busca de serviços em uma base UDDI.
4444
Lista de ExercíciosLista de Exercícios
Link para a lista de exercícios
4545
Referências BibliográficasReferências Bibliográficas
[1] Breitman, Karin Koogan. [1] Breitman, Karin Koogan. Web semântica: a Web semântica: a IInternet do futuro.nternet do futuro. Rio de Janeiro:LTC,2005.Rio de Janeiro:LTC,2005. [[22] ] http://www.javapassion.com/webservices [3] http://www.w3.org [4] Ontologias como e porque criá-las. Material dos professores Julio Cesar Sampaio do Prado Leite e[4] Ontologias como e porque criá-las. Material dos professores Julio Cesar Sampaio do Prado Leite e
Karin Koogan Breitman. Karin Koogan Breitman. Departamento de Informática PUC- Rio. [5] http://www.w3schools.com/. THE LARGEST WEB DEVELOPER'S SITE ON THE NET. [6] [6] http://www.w3.org/TR/2006/CR-wsdl20-primer-20060327/http://www.w3.org/TR/2006/CR-wsdl20-primer-20060327/##IntroductionIntroduction [7] [7] http://www.uddi.org/http://www.uddi.org/ [8] Introdução às tecnologias Web Services: SOA, SOAP, WSDL e UDDI - Parte1- Autor: Thomas Erl[8] Introdução às tecnologias Web Services: SOA, SOAP, WSDL e UDDI - Parte1- Autor: Thomas Erl [9] Revista TI Inside, abril, 2007.[9] Revista TI Inside, abril, 2007. [10] http://www.xmethods.net [11] http://www.ontotext.com [12] http://uddi.microsoft.com [13] Site da IBM sobre SOA: [13] Site da IBM sobre SOA: http://www-306.ibm.com/software/br/info/topic/openenvironment/soa/http://www-306.ibm.com/software/br/info/topic/openenvironment/soa/ [14] Soa World Magazine: [14] Soa World Magazine: http://soa.sys-con.comhttp://soa.sys-con.com// [15] Material Oracle. [15] Material Oracle.
http://www.oracle.com/global/br/openworld/attendees/program-overview/tracks/tracks_technology.htmlhttp://www.oracle.com/global/br/openworld/attendees/program-overview/tracks/tracks_technology.html .. [16] [16] SOAP Routing and Processing Concepts. SOAP Routing and Processing Concepts. http://www.grid2004.org/spring2004http://www.grid2004.org/spring2004; Marlon Pierce, Bryan ; Marlon Pierce, Bryan
Carpenter, Geoffrey Fox Community Grids Lab Indiana University.Carpenter, Geoffrey Fox Community Grids Lab Indiana University. [17] Apresentação: Serviços Web – Tecnologias Básicas, [17] Apresentação: Serviços Web – Tecnologias Básicas,
http://www.ic.unicamp.br/~beatriz/cursos/mo809/2007/padroesBasicos.pdfhttp://www.ic.unicamp.br/~beatriz/cursos/mo809/2007/padroesBasicos.pdf [18] Material de WSDL-S Autores: R. Akkiraju[18] Material de WSDL-S Autores: R. Akkiraju**, J. Farrell, J. Farrell**, J.Miller, M. Nagarajan, M. Schmidt, J.Miller, M. Nagarajan, M. Schmidt**, A. Sheth, K. , A. Sheth, K.
VermaVerma"Web Service Semantics - WSDL-S“ "Web Service Semantics - WSDL-S“ http://www.alphaworks.ibm.com/g/g.nsf/img/semanticsdocs/$file/wssemantic_annotation.pdf http://www.alphaworks.ibm.com/g/g.nsf/img/semanticsdocs/$file/wssemantic_annotation.pdf
[19]owl-s http://www.w3.org/Submission/OWL-S/[19]owl-s http://www.w3.org/Submission/OWL-S/