A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

ITA - Instituto Tecnológico de Aeronáutica

Apresentações semelhantes


Apresentação em tema: "ITA - Instituto Tecnológico de Aeronáutica"— Transcrição da apresentação:

1 ITA - Instituto Tecnológico de Aeronáutica
Aula # 2 - Introdução a Web Services Semânticos Disciplina: CE 262 – Ontologias e Web Semântica. Prof. Dr. José Maria Parente Grupo: Ferrucio de Franco Rosa/ Luiz Eduardo Guarino de Vasconcelos /Rafael de Alencar Segura Junho/2007

2 Roteiro Vídeo-aula e Aula prática – criando Web Services
SWS – Introdução e Conceitos Iniciais Objetivos dos SWS Exemplos Padrões para Serviços Web Semânticos WSDL-S SA-WSDL WSMO OWL-S Considerações finais

3 Vídeo-aula Vídeo-aula: “Construindo um Web Service em Java”
O objetivo desta aula é apresentar uma forma de construir um Web Service utilizando a IDE Eclipse Link para Vídeo

4 Aula prática Aula prática 1: “Construindo um Web Service em Netbeans”
O objetivo desta aula é apresentar uma forma de construir um Web Service utilizando a IDE NETBEANS Aula prática 2: “Construindo um Web Service em .NET” O objetivo desta aula é apresentar uma forma de construir um Web Service utilizando a IDE Visual Studio .NET

5 Introduçã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).

6 Web Semântica + Web Services = SWS – 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.

7 Objetivo 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.

8 Fonte: (http://www.w3.org/Submission/WSDL-S/)
Web Services Semantics - A especificação WSDL-S é uma submissão da W3C que define como adicionar semântica nos documentos WSDL. As anotações semânticas definem os significados: inputs, outputs, preconditions effects das operações descritas na interface do serviço. As anotações referenciam conceitos na ontologia. Fonte: (

9 PurchaseOrder.wsdls …………
<xs:element name= "processPurchaseOrderResponse" type="xs:string wssem:modelReference="POOntology#OrderConfirmation"/> </xs:schema> </types> <interface name="PurchaseOrder"> <wssem:category name= “Electronics” taxonomyURI= taxonomyCode=”443112” /> <operation name="processPurchaseOrder” pattern=wsdl:in-out modelReference = "rosetta:#RequestQuote" > <input messageLabel = ”processPurchaseOrderRequest" element="tns:processPurchaseOrderRequest"/> <output messageLabel ="processPurchaseOrderResponse" element="processPurchaseOrderResponse"/> <!—Precondition and effect are added as extensible elements on an operation> <wssem:precondition name="ExistingAcctPrecond" wssem:modelReference="POOntology#AccountExists"> <wssem:effect name="ItemReservedEffect" wssem:modelReference="POOntology#ItemReserved"/> </operation> </interface>

10 Operações de Anotação extension element : Precondition
Um conjunto de condições que devem ser satisfeitas antes da operação de invocar o Web service. “deve ser cadastrado na empresa” “somente clientes do brasil podem realizar uma determinada compra” extension element : Effect Define o estado da informação após a operação de invocação. “o item foi enviado para o endereço cadastrado” “será debitado no cartão de crédito” extension element : schemaMapping É utilizado para manipular as diferenças entre os elementos do esquema do web service e o modelo semântico. extension attribute : Category Modela uma categoria de serviço no WSDL interface element. category = “Electronics” Code = “naics:443112” P&E in a domain semantic model - Open research problem Initiatives: SWRL, OCL

11 Anotações Semânticas: para elementos simples
semantic match <wsdl:types> (...) <xs:element name= "processPurchaseOrderResponse" type="xs:string (...) </wsdl:types> Billing has_account results_in OrderConfirmation Account has_accountID xsd:string WSDL message element OWL ontology 1:1 Correspondences <xs:element name= "processPurchaseOrderResponse" type="xs:string wssem:modelReference="POOntology#OrderConfirmation"/>

12 Anotações Semânticas para elementos complexos [1/2]
Foi proposto pelo W3C duas alternativas de anotações para os tipos compostos: (bottom e top annotation) Bottom Level Annotation: Anotação é feita em nível de folha do elemento. <complexType name="POItem"> <all> <element name="dueDate" type="dateTime“ wssem:modelReference="POOntology#DueDate"/> <element name="quantity" type="float" wssem:modelReference="POOntology#Quantity"/> <element name="EANCode" type="string" wssem:modelReference="POOntology#ItemCode"/> <element name="itemDesc" type="string" wssem:modelReference="POOntology#ItemDesc"/> </all> </complexType>

13 Using modelReference and schemaMapping
modelReference at the leaf levels assumes a 1:1 correspondence between leaf elements and domain model concepts <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 hasDueDate dueDate hasIemDesc ItemDesc hasQuantity Quantity WSDL complex type element OWL ontology

14 Anotações Semânticas para elementos complexos [1/2]
Top Level Annotation: Anotando um tipo complexo Um tipo complexo pode ter uma anotação semântica através de: wssem:modelReference. Este atributo “aponta” para um alto nível do conceito na ontologia em questão. Não especifica anotações semânticas para seus elementos; Neste caso é necessário a utilização de schemaMapping Appendix A

15 Anotações Semânticas: para elementos complexos[2/2]
semantic match <wsdl:types> (...) <complexType name=“Address"> <sequence> <element name=“StreetAd1“ type="xsd:string"/> <element name=“StreetAd2" type="xsd:string"/> </sequence> </complexType> </wsdl:types> Address hasStreetAddress StreetAddress hasCity xsd:string hasZip xsd:string WSDL complex type element OWL ontology modelRef sufficient during discovery, but not during invocation / execution. Need for a mapping between the structurally heterogeneous objects modelReference estabelece a associação semântica. schemaMapping : resolve as diferenças de estruturas na comparação semântica.

16 Representando o Mapeamento
<complexType name="POAddress" wssem:schemaMapping=” #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 has_StreetAddress xsd:string has_City xsd:string has_Zip xsd:string WSDL complex type element OWL ontology Mapping using XSLT Acknowledge diff options exist. Transferring data between two web services whose inputs n outputs don match can now be achieved thru a domain model that the i/o are annotated with. So far technical, coming perspective .... <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>....

17 Web Semântica Semantic Annotation
Uma anotação semântica é uma informação adicional em um documento que identifica ou define um conceito em um modelo semântico. Em SA-WSDL, as anotações semânticas são atributos XML adicionados a documentos WSDL no elemento XML que elas descrevem. Podem ser de dois tipos: Identificadores explícitos de conceitos Identificadores de mapeamentos de WSDL para conceitos ou vice-versa

18 Web Semântica SA-WSDL SA-WSDL é uma extensão de WSDL
Padrão usado para associar interfaces, operações, parâmetros de E/S a conceitos Semânticos Link entre uma Ontologia (OWL - que descreve o domínio) e o serviço disponível (WSDL) Seu namespace: xmlns:sawsdl=" W3C Working Draft 10 April 2007

19 Web Semântica SA-WSDL NÃO especifica uma linguagem para representação de modelos semânticos (ex.: ontologias) Provê mecanismos pelos quais conceitos de modelos semânticos que são definidos dentro de documentos WSDL podem ser referenciados como anotações. Esta semântica, quando expressada em linguagens formais, pode auxiliar na descoberta e composição de serviços web. NÃO descreve como um cliente pode obter o documento, mas onde o modelo semântico é definido.

20 Web Semântica SA-WSDL Baseado em WSDL-S, os princípios de projeto chave são: A especificação disponibiliza anotações para Serviços Web usando e construindo no existente extensível framework de WSDL. Ser indiferente para linguagens de representação semântica. Disponibilizar anotações semânticas não somente para descoberta, mas também para chamada de Serviços Web.

21 Web Semântica SA-WSDL Baseado nos princípios de projeto, SA-WSDL define os seguintes novos atributos para WSDL 2.0 para disponibilizar anotações semânticas de seus componentes: Uma extensão atributo, chamada modelReference, para especificar a associação entre um componente WSDL e um conceito em algum modelo semântico. Este atributo é usado para anotar XML Schema complex type definitions, simple type definitions, element declarations, and attribute declarations bem como WSDL interfaces, operations, and faults. Duas extensões atributos (SchemaMappings), chamadas liftingSchemaMapping and loweringSchemaMapping, que são adicionados a declarações de elementos XML Schema, definições de tipos complexos e simples para especificar mapeamentos entre dados semânticos e XML. Estes mapeamentos podem ser usados durante a invocação dos serviços.

22 Web Semântica SA-WSDL SA-WSDL permite multiplas associações com elementos WSDL. Schema mappings and model references podem conter multiplos ponteiros. SA-WSDL não especifica qualquer relacionamento entre eles (models). Relações entre conceitos são feitos em Ontologias.

23 Web Semântica SA-WSDL – Model Reference
Um Model Reference pode ser usado com qualquer elemento dentro de WSDL. Todavia, SA-WSDL define o significado somente para wsdl:interface, wsdl:operation, wsdl:fault. O valor do atributo modelReference pode ir de zero a N URIs, separados por espaços, que identificam conceitos 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 componente XML Schema que está sendo anotado. O atributo modelReference permite multiplas anotações serem associadas com um dado WSDL via URIs. Estas URIs devem identificar conceitos expressos em diferentes linguagens de representação semântica. Quando um componente é anotado com um modelReference que inclui múltiplas URIs, cada uma delas se aplica ao componente, mas nenhum relacionamento lógico entre eles é definido por esta especificação.

24 Web Semântica SA-WSDL

25 Web Semântica Anotando “WSDL Operation” Anotando “WSDL Fault”
SA-WSDL – Exemplos Anotando “WSDL Operation” Anotando “WSDL Fault”

26 WSMO 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

27 WSMO

28 WSMO 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

29 OWL-S 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

30 OWL-S 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.  

31 OWL-S 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.

32 OWL-S 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 [ WSIL [ e 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.

33 OWL-S 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).

34 Classificação das ontologias
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:

35 Classificação das ontologias
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.

36 OWL 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].

37 Fonte: http://www.w3.org/Submission/OWL-S/
A OWL-S fundamenta alguns serviços web, como pode ser visto na figura. Fonte: 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”;

38 OWL-S Algumas Classes em OWL-S

39 OWL-S Algumas propriedades em OWL-S

40 OWL-S - Resumo 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.

41 Produtos disponíveis Microsoft .NET: J2EE: Open Source:
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

42 Links para Padrões Atividade em relação a Serviços web
SOAP W3C Working Drafts - 17 December 2001 SOAP 1.2 WSDL W3C Note Released March 2001 WSDL Schema - Especificações Base Definition: SOAP Extension: Serviços Web - Grupo de Trabalho sobre Descrição UDDI Diretórios de Serviços Web

43 Consideraçõ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.

44 Lista de Exercícios Link para a lista de exercícios

45 Referências Bibliográficas
[1] Breitman, Karin Koogan. Web semântica: a Internet do futuro. Rio de Janeiro:LTC,2005. [2] [3] [4] Ontologias como e porque criá-las. Material dos professores Julio Cesar Sampaio do Prado Leite e Karin Koogan Breitman. Departamento de Informática PUC- Rio. [5] THE LARGEST WEB DEVELOPER'S SITE ON THE NET. [6] [7] [8] Introdução às tecnologias Web Services: SOA, SOAP, WSDL e UDDI - Parte1- Autor: Thomas Erl [9] Revista TI Inside, abril, 2007. [10] [11] [12] [13] Site da IBM sobre SOA: [14] Soa World Magazine: [15] Material Oracle. [16] SOAP Routing and Processing Concepts. Marlon Pierce, Bryan Carpenter, Geoffrey Fox Community Grids Lab Indiana University. [17] Apresentação: Serviços Web – Tecnologias Básicas, [18] Material de WSDL-S Autores: R. Akkiraju*, J. Farrell*, J.Miller, M. Nagarajan, M. Schmidt*, A. Sheth, K. Verma "Web Service Semantics - WSDL-S“ [19]owl-s


Carregar ppt "ITA - Instituto Tecnológico de Aeronáutica"

Apresentações semelhantes


Anúncios Google