Baixe o app para aproveitar ainda mais
Prévia do material em texto
Modelagem de Sistemas para Internet Responsável pelo Conteúdo: Prof. Dr. Cleber Silva Ferreira da Luz Revisão Textual: Caique Oliveira dos Santos Web Service Modeling Ontology Web Service Modeling Ontology • Apresentar os principais conceitos do WSMO. OBJETIVO DE APRENDIZADO • Introdução; • Web Semântica; • WSMO; • Web Services; • Conclusão e Resumo da Unidade. UNIDADE Web Service Modeling Ontology Introdução Modelagem de sistemas web envolve o estudo de diversos conceitos. Realizamos an- teriormente uma breve abordagem dos principais conceitos de modelagem de softwares e, uma profunda análise da modelagem de sistemas web, mais especificamente dos modelos de desenvolvimento de aplicações web. Agora, nesta Unidade, vamos realizar um estudo sobre serviços web. Boa parte dos sistemas web fornece algum tipo de ser- viço. Aqui, iremos estudar os mecanismos utilizados em sistemas web para descrever e disponibilizar serviços. Tais mecanismos são vistos como linguagens semânticas que descrevem os serviços das aplicações web. A geração de serviços por meio de aplicações web tem crescido a cada dia. Hoje, realizá- -los mediante essas aplicações é a coisa mais comum que existe em todo o mundo. Alguns serviços podem ser: streaming de música, streaming de vídeos, armazenamento de dados, localização, entre outros. O fato é que, cada dia mais, aplicações web têm tornado as nossas vidas mais fáceis com seus serviços. Quando falamos em desenvolvimento de aplicações web para o fornecimento de serviço, dois aspectos importantes são tratados com grande prioridade: a composição do serviço e a descrição do serviço. A descrição de tais serviços é realizada por meio de uma WSDL (Web Service Description Language). Uma WSDL pode ser incrementada usando diversos conceitos, tais como anotações e semânticas. Há diversas linguagens semânticas no mercado que permitem descrever serviços. Entre as linguagens existentes e homologadas pela W3C (World Wide Web Consortium) estão: • OWL-S (Ontology Web Language for Services); • WSMO (Web Service Modeling Ontology); • SAWSDL (Semantic Annotations for WSDL). Habitualmente, aplicações web fornecem algum tipo de serviço. Assim, na modela- gem de sistemas web, precisamos modelar os serviços fornecidos pela aplicação. Nesse sentido, o foco desta Unidade consiste em modelar serviços. Para tanto, realizaremos um estudo sobre WSMO e web services. WSMO é uma linguagem que utiliza ontologia para modelar serviços web. Fornece especificações ontológicas para os principais elementos dos serviços da web semântica. Antes de entrarmos a fundo no WSMO, vamos entender o que é web semântica. A pró- xima seção apresenta detalhes sobre ela. Web Semântica Atualmente, a internet gera milhões de terabytes de dados por segundo. Gerenciar e processar tais dados é importante para a extração de informações. A informação é um elemento crucial para a evolução da sociedade. A partir do processamento do dado, podemos extrair informações e, por meio destas, obter conhecimento. Este é capaz de 8 9 evoluir uma sociedade. Hoje, vivemos em uma época em que há uma corrida atrás da informação; quem tem informação tem o “poder”. Assim, o fato de gerenciar os dados provindos da internet é de grande importância para o atual momento que estamos vi- vendo. Nesse contexto, entra a web semântica. Proposta em 2001 por Tim Berners-Lee, James Hendler e Ora Lassila, a web semân- tica é uma técnica que permite que humanos e computadores trabalhem em conjunto para gerir informações provindas da internet. Ela interliga significados ao conteúdo da internet. Desse modo, não é mais necessária uma busca por informações na internet de forma isolada ou por apenas uma palavra-chave. Logo, ao pesquisar por uma infor- mação na internet, a web é capaz de construir uma resposta mais elaborada a partir de várias relações. Em palavras simples, a semântica web é uma técnica que organiza as informações de maneira mais legível para os humanos. Trata-se de um sistema que permite que o computador leia um bloco de informação, podendo, inclusive, realizar uma inferência com outros blocos de informações para gerar um conhecimento maior. Podemos dizer ainda que a semântica web constitui uma relação de interatividade entre o computador e o ser humano. Ambos cooperam entre si para realizar a tarefa de busca de informação. Semântica web é um movimento para organizar as informações de maneira fácil para o computador, utilizando um formato-padrão, tal como o RDF (Resource Description Framework). RDF visa auxiliar o desenvolvimento de metadados para promover a comunicação entre os sistemas que compartilham informações na web. Assim, o objetivo principal do RDF é criar um modelo de representação para descrição dos recursos utilizados pela semântica web. Um RDF é composto por três elementos: • Recursos: são os próprios elementos descritos por um RDF, isto é, os recursos que contêm as informações. Tais recursos são identificados por um URI (Uniform Resource Identifier); • Propriedades: são atributos utilizados para descrever um recurso; • Triplas: uma tripla consiste na união de um recurso e uma propriedade. Podemos entender uma tripla como “o recurso que possui uma propriedade com determi- nado valor” (ROMAN, 2015). Tais valores podem ser escritos utilizando XML (Extensible Markup Language). De forma resumida, o principal objetivo da semântica web é auxiliar na busca de dados para a extração de informação. Tais dados estão espalhados em vários recursos (sites, repositórios, servidores etc.). A semântica web utiliza o RDF para descrever esses recursos e, assim, conseguir acessar os dados desejados. Ao se descrever um recurso, é atribuída a ele uma propriedade. Os dados podem estar no formato XML. Um XML almeja o compartilhamento de informações por meio da web. Seu princi- pal objetivo é definir padrões e formatos para dados (documentos que contêm dados), enquanto suas principais características são: simplicidade, legibilidade, possibilidade de criação de tags sem restrições. O armazenamento de dados é realizado no formato de texto, o que facilita a leitura dos dados. Tendo em vista essa facilidade em compartilhar dados, a web semântica utiliza arquivos no formato XML. 9 UNIDADE Web Service Modeling Ontology WSMO Web Service Modeling Ontology (WSMO) consiste em uma ontologia que descreve vários aspectos sobre web. Antes de começarmos o estudo sobre WSMO, vamos en- tender o conceito de ontologia. O que é uma ontologia na computação? Ela pode ser definida como um modelo de dados que, dentro de determinado domínio, representa um conjunto de conceitos e seus relacionamentos. Ontologia é utilizada em web semântica visando representar o conhecimento sobre aspectos semânticos. Além disso, WSMO é uma linguagem baseada em WSML (Web Service Modeling Language), isto é, trata-se de uma linguagem voltada para modelar serviços web utili- zando ontologia (ROMAN, 2015). WSML é uma linguagem formal que permite realizar anotações de serviços web de acordo com o modelo conceitual. Ao utilizar o conceito de ontologias como um modelo de dados para descrever os serviços web, o WSMO tem a vantagem de auxiliar a automatização de descobertas de serviços, bem como os vínculos que tais serviços possuem. O modelo WSMO foi criado sobre o Web Service Modeling Framework (WSMF), que constitui um framework para descrever serviços web. Desse modo, o framework WSMF define um modelo conceitual para descrever serviços web. A descrição de serviço em WSMF se baseia em dois pontos: dissociação máxima e mediação forte. Quanto à implementação de WSMO sobre WSMF, podemos dizer que os criadores do WSMO ampliaram os recursos do WSMF para que a nova linguagem possa descrever serviços utilizando ontologia. Para descrever serviços, o WSMO se baseia em quatro elementos – ontologia, obje- tivos, mediadores e web services –, os quais estão ilustrados na Figura 1. ObjetivosWeb Service OntologiaMediadores Figura 1 – Quatro principais elementos de WSMO Fonte: Adaptada de WANG, 2012 Vejamos, a seguir, a descrição desses quatro elementos. • Objetivos: aqui são especificadas as finalidades do serviço web. Podemos dizer que este elemento é a perspectiva do usuário, o que ele espera que o serviço web realize; 10 11 • Serviços web: este elemento define os aspectos dos serviços web fornecidos pela aplicação web. Utiliza diversos protocolos da web para conectar computadores e dispositivos, bem como pode processar milhares de dados. Serviços web possuem a vantagem de serem uma plataforma de serviços independentes. Podemos falar, inclusive, que, para realizar os serviços, são utilizados propriedades não funcionais, ontologias e mediadores. Ainda, é importante determinar a funcionalidade do ser- viço, definindo as respostas esperadas por este. Web services são estudados com mais detalhes na seção 4; • Mediadores: muitas vezes, o serviço web fornecido por uma aplicação é realizado por diversos recursos, ou até mesmo por diversas plataformas. Nesses casos, é comum que ocorram problemas de interoperabilidade entre os vários recursos que fornecem o serviço. Assim, este elemento tem como objetivo principal fazer uma imediação entre os diversos recursos que realizam os serviços. Em âmbito de da- dos, os mediadores resolvem problemas de integração semântica. Já em âmbito de processos, resolvem problemas sobre a heterogeneidade da comunicação com os diversos recursos que realizam o serviço; • Ontologia: é o principal elemento do WSMO. Ele fornece a terminologia utilizada por outros elementos da aplicação. Ontologia está ligada com a semântica, isto é, re- aliza a descrição formal das propriedades dos serviços fornecidos pela aplicação web. Ademais, o WSMO se baseia nos seguintes aspectos: » Conformidade com a web: diz que WSMO utiliza os mesmos elementos usados em aplicações web, por exemplo, WSMO suporta XML, usa a técnica de des- centralização de recursos, os recursos de WSMO possuem identificação única e, ainda, WSMO utiliza o conceito de namespaces para definições de espaços de informação consistentes; » Base na ontologia: ontologia é o elemento central em WSMO e é usada como forma de modelar os dados. Ela é importante para as descrições dos serviços e também para a troca de informação dos componentes durante a realização do serviço. É igualmente relevante no WSMO tanto por permitir um reforço no pro- cessamento de informação quanto por fornecer um suporte na interoperabilidade; » Dissociação bem definida: diz que cada componente do serviço é especificado independentemente, isto é, sem considerar o uso ou a interação com outros com- ponentes. Este aspecto está de acordo com a natureza aberta e distribuída de uma aplicação web, em que cada elemento possui uma única função, que deve ser realizada somente por ele mesmo; » Mediação centralizada: é um aspecto considerado de suma importância para que o serviço seja realizado com sucesso. Permite manipular a heterogeneidade dos diversos recursos que trabalham para realizar o serviço; » Separação do papel ontológico: muitas vezes, é necessário entre o desejo do usuário e o tipo de serviço disponível pela aplicação. Assim, as requisições dos usuários são formuladas independentemente da disponibilidade dos serviços forne- cidos pela aplicação web. Isso é fundamental para que o sistema forneça os servi- ços de forma eficiente e corrente, tendo sempre em vista o que é possível realizar; » Execução semântica: WSMO se baseia no aspecto da “execução semântica”; 11 UNIDADE Web Service Modeling Ontology » Serviços × serviços web: ao descrever os serviços realizados pelo WSMO, é preciso ter bem claro que ele especifica serviços web. Há uma sutil diferença entre serviço e serviço web. Um serviço web é uma entidade abstrata computacional que permite alcançar uma meta, já um serviço é o valor provido por essa invocação. Como mencionado anteriormente, WSMO é uma linguagem para descrever serviços com base em web semântica. Igualmente, WSMO se baseia em Meta-Object Facility (MOF), que define uma linguagem abstrata para a especificação de serviço. A arquitetura de MOF possui quatro camadas: • Meta-meta-model: aqui, realizamos a definição da linguagem WSMO; • Meta-model: é composta por WSMO; • Model: nesta camada, encontram-se os mediadores, objetivos e web services; • Information: aqui, são descritas as ontologias. A Figura 2 ilustra as camadas de MOF meta-meta-model meta-model model information MOF WSMO M3 - Layer M2 - Layer M1 - Layer M0 - Layer Descrição de WSMO Web Service Concreto, Domínios e dados para descrição do serviço Figura 2 – A relação entre MOF e WSMO Fonte: Adaptada de WANG, 2012 De forma resumida, WSMO é baseado em MOF, isto é, WSMO foi construído utili- zando o princípio de MOF. A figura anterior apresenta a arquitetura de MOF baseada em camadas. Na camada 0, temos a descrição da ontologia; na camada 1, a descrição do WSMO; na camada 2, o próprio WSMO; e, por fim, na camada 3, a definição de WSMO. Para a definição de um WSMO, são criadas classes e subclasses, assim como são espe- cificados atributos. Quando definimos um WSMO, as seguintes suposições são realizadas: • Cada atributo pode ser configurado para assumir vários valores; • Para alguns elementos de WSMO, é necessário definir atributos levando em consi- deração diversos tipos de dados. Para descrevermos um modelo conceitual de WSMO, usamos class, subclass, atributos e algumas palavras-chave. 12 13 Em WSMO, os dados são do tipo literal. WSMO utiliza ontologia para descrever ser- viço. Na ontologia, temos algumas propriedades não funcionais, que são: data, formato de dado, versões etc. Podemos dizer que cada execução de WSMO, ou seja, cada serviço realizado por WSMO, é uma instância de serviço. WSMO é uma linguagem de modelação de serviço muito utilizada no mercado, pois possui fácil sintaxe e fácil compreensão, além de ser um mecanismo robusto para descrever serviço de uma aplicação web. Como mencionado nesta seção, os quatros principais elementos do WSMO são obje- tivos, web services, ontologia e mediadores. A próxima seção, por sua vez, apresenta um amplo estudo sobre web services. Web Services Observamos duas definições para web services: uma clássica, isto é, mais antiga, mais difundida na literatura, e outra mais “pura”. Veremos a primeira definição de web services, a mais clássica. De maneira bem simples, podemos definir web services como um mecanismo para integrar sistemas, permitindo uma fácil comunicação entre as aplicações. Estas são de- senvolvidas utilizando a mais variada gama de tecnologia, ou seja, cada aplicação é construída com uma linguagem de programação diferente, assim como uma plataforma diferente, entre outros aspectos que, muitas vezes, são conflitantes na comunicação entre duas ou mais aplicações. A partir do uso de web services, é possível que as aplica- ções interajam entre si, comuniquem-se, mesmo sendo desenvolvidas com tecnologias incompatíveis. Essa comunicação é possibilitada por meio da utilização de uma lingua- gem universal, por exemplo, o XML. Em outra definição, podemos definir web services, grosso modo, como serviços realiza- dos via web. Na primeira definição de web service, ele é visto como uma forma de realizar comunicação entre diferentes aplicações. A comunicação também pode ser vista como uma realização de serviço, podendo, inclusive, ser considerada, a rigor, como um serviço. Assim, as duas definições se convertem. No estudo de web services, devemos realizar uma breve análise sobre o conceito de SOAP (Simple Object Access Protocol). Esse protocolo utiliza arquivos XML para simplificar não apenas a comunicação entre as aplicações mas também a realização de serviços via HTTP. A ideia principal do SOAP é facilitar a troca de dados entre as aplicações. Assim, esse protocolo não impõe ou define regras, modelo de programação,linguagem de programação, arquitetura ou qualquer aspecto semântico da implementa- ção. Esse fato é importante e muito notório porque o serviço pode ser “prestado” sem qualquer arquitetura, linguagem de programação ou outro aspecto de divergência de tecnologia, permitindo, assim, a interoperabilidade e a intercomunicação entre diferen- tes computadores. Essa facilidade se torna possível por meio do uso do XML. Por esse motivo, o SOAP se tornou muito popular no desenvolvimento de aplicações web, forne- cendo uma maneira para descrever interfaces dos serviços web. Tais interfaces são com- plementadas posteriormente, isto é, serão especificadas com mais detalhes e usando o 13 UNIDADE Web Service Modeling Ontology mecanismo UDDI (Universal Description, Discovery and Integration). Esse mecanismo é utilizado para realizar descobertas dinâmicas de descrições de serviço. O objetivo principal do UDDI é permitir uma melhor forma para realizar interoperabili- dade e utilizar os web services. Ele realiza um serviço de registro de nomes de organizações e descrição do serviço a ser realizado. Em palavras simples, o UDDI nada mais é do que um serviço de diretório em que as organizações podem publicar e buscar serviços web. Um UDDI deve conter três informações: • Informações da organização, isto é, nome, endereço e contato; • Informações sobre o serviço e a categoria de negócio; • Informações técnicas sobre o serviço fornecido pela organização. Ainda sobre UDDI, podemos afirmar que ele fornece duas funções básicas, que são: • Publicação: permite que a empresa divulgue os seus serviços; • Descoberta: permite que o cliente procure os serviços que deseja. Um UDDI gerencia informações sobre os serviços da web. Assim, as organizações que disponibilizam algum serviço web podem utilizar o UDDI para apresentar os seus servi- ços. Em contrapartida, clientes podem usá-lo para descobrir serviços que lhes interessem. Ao implementarmos um UDDI, precisamos especificar: • determinadas APIs SOAP que serão utilizadas para publicar e obter informações de um registro UDDI; • arquivos XML para determinar as mensagens SOAP; • WSDL das APIs SOAP; • definições de registro do UDDI. Para descrevermos um serviço, utilizamos SOAP, UDDI, web services e WSDL. A Figura 3 ilustra como esses elementos se relacionam. É acessado usando Descreve Permite a descoberta de Ligação para Permite a comunicação UDDI SOAP WSDL Web Services Figura 3 – WSDL, UDDI, SOAP, web services Fonte: Adaptada de ERL, 2009 14 15 A figura anterior representa bem a relação entre WSDL, web services, SOAP e UDDI. Fazendo uma leitura dessa figura, podemos observar que um UDDI é utilizado para descobrir WSDL. Vale lembrar que WSDL é uma linguagem que permite descre- ver o serviço. A partir do uso de UDDI, podemos também acessar o SOAP, o arquivo XML que permite a comunicação entre as aplicações. Olhando a figura da perspectiva da WSDL, observamos que, a partir da WSDL, podemos tanto descrever web services quanto fazer uma ligação para o SOAP. Por último, analisando a figura da perspectiva do SOAP, notamos que este é o elemento que permite a comunicação entre as aplicações. Funções de web services Web services permitem que organizações disponibilizem serviços e que clientes aces- sem serviços na web. Todavia, um serviço pode ser interpretado de várias maneiras e, ainda, ser colocado em diversos contextos (ERL, 2009). Assim, um serviço web pode trocar de papéis ou ser designado para múltiplos papéis simultâneos. Por exemplo, um web service pode assumir o papel de: • Provedor de serviços: um web service assume o seu papel clássico, o de prover serviços. Nessa perspectiva, um web service expõe uma interface pública que con- tém a descrição de seus serviços para que o usuário consiga encontrar e realizar um serviço interessante. Considerando o modelo cliente-servidor, o provedor de serviço pode ser compreendido como o servidor. É importante observar que o termo “provedor de serviço” também é utilizado para definir a organização que irá prover o serviço; • Solicitante de serviço: como mencionado anteriormente, um web service pode tanto fornecer um serviço quanto solicitar um serviço para outro web service. Vamos supor que um serviço deva ser realizado por dois web services, isto é, dividido por dois web services. Assim, o primeiro web service realiza parte do serviço e solicita que o outro web service termine a execução desse serviço; • Intermediário: o web service assume este papel quando o web service recebe uma mensagem de uma solicitação de serviço e apenas a encaminha para outro web service que possa respondê-la. É importante observar também que, nesse contexto, o web service pode agir como um provedor de serviço que recebe a mensagem e como um solicitante de serviço, repassando a solicitação para outro web service; • Remetente inicial: trata-se do web service responsável por iniciar a transmissão da mensagem. Quando um web service assume este papel, ele também pode ser considerado como um solicitante de serviço. Vale a pena comentar que o termo “Remetente inicial” foi criado para diferenciar dos intermediadores o primeiro web service que envia a mensagem; • Receptor final: é o web service que recebe a mensagem no final. Assim, neste papel, o serviço representa o destino final de uma mensagem. Descrição da estrutura de web services A descrição de um web service é realizada por uma coleção de documentos de defini- ções, os quais atuam como blocos de construção para realizar a descrição de um serviço. 15 UNIDADE Web Service Modeling Ontology À vista disso, temos que: • abstração: é a descrição de uma interface de web service. Nessa descrição, não são considerados detalhes de implementação, isto é, aqui os serviços são descritos sem detalhes de implementação do serviço que o web service irá realizar; • concreto: representa a localização e a informação sobre a implementação de um web service. Aqui, são apresentados detalhes sobre a implementação do serviço; • definição de serviço: é dada por um documento WSDL que possui as definições de interface (abstrato) e implementação (concreto); • descrição do serviço: é fornecida mediante um único arquivo WSDL responsável pela definição do serviço. A Figura 4 ilustra como esses elementos se relacionam para compor o web service. Descrição do serviço Abstrato Concreto De nição da interface do serviço De nição da implementação do serviço De nições suplementares Figura 4 – Conteúdo de uma descrição de serviço Fonte: Adaptada de ERL, 2009 Conclusão e Resumo da Unidade Atualmente, é normal uma aplicação web fornecer algum tipo de serviço. Nesta Uni- dade, estudamos a descrição de serviços fornecidos pelas aplicações web. O foco maior, aqui, é no estudo de Web Service Modeling Ontology (WSMO), que é uma linguagem conceitual para modelar aspectos relevantes relacionados com serviços web e que utiliza semântica web para descrever tais serviços. Semântica web pode ser compreendida como uma técnica que permite que humanos e computadores trabalhem em conjunto para gerir informações provindas da internet. Ela facilita a busca pela informação por meio da web. Trata-se de um sistema que per- mite que o computador leia um bloco de informação, podendo, inclusive, realizar uma inferência com outros blocos de informações para gerar um conhecimento maior. Ademais, WSMO possui quatro elementos básicos: objetivos, web services, mediado- res e ontologia. Objetivos expressam os interesses dos usuários, o que eles esperam que 16 17 aplicação web realize de serviço. Por sua vez, web services são a descrição dos serviços realizados pela aplicação. Já mediadores são responsáveis por realizar a intermediação entre os diversos recursos que prestam os serviços. Por fim, ontologia é o elemento cen- tral do WSMO, é aquele que fornece a semântica. Nesta Unidade, comentamos bastante sobre web services. De maneira bem simples, podemos defini-loscomo um mecanismo para integrar sistemas, permitindo uma fácil comunicação entre as aplicações. Estas são desenvolvidas utilizando a mais variada gama de tecnologia, isto é, cada aplicação é construída com uma linguagem de programação diferente, assim como uma plataforma diferente, entre outros aspectos que, muitas vezes, são conflitantes na comunicação entre duas ou mais aplicações. Para finalizarmos o nosso estudo, podemos concluir que, pelo fato de aplicações web fornecerem algum tipo de serviço, é importante realizar uma modelagem do serviço. Nesta Unidade, focamos, portanto, em modelar serviços. Para isso, apresentamos o WSMO, que é uma linguagem para modelar web services muito utilizada no mercado. 17 UNIDADE Web Service Modeling Ontology Material Complementar Indicações para saber mais sobre os assuntos abordados nesta Unidade: Leitura Uma análise conceitual das linguagens semânticas de serviços web: comparação entre OWL-S, WSMO e SAWSDL Nesse artigo, é possível realizar uma comparação de WSMO com outras linguagens de serviço. https://bit.ly/3g51UxR Composição de serviços Web semânticos Nessa monografia, você pode aprofundar o conhecimento em web semântica. https://bit.ly/3g1KhiH BI 2.0 e Web Semântica: como lidar com os problemas de latência entre o evento e a tomada de decisão com a Web Semântica Nesse relatório técnico, podemos abstrair mais conhecimento sobre a web semân- tica e analisar o impacto dela na web. https://bit.ly/3wQWTim FrameWeb-LD: uma abordagem baseada em ontologias para a integração de sistemas de informação web e a web semântica Nessa dissertação, há um framework baseado em web semântica. https://bit.ly/3dY8PGr 18 19 Referências ROMAN, D. et al. WSMO-Lite and hRESTS: lightweight semantic annotations for Web services and RESTful APIs. Journal of Web Semantics, v. 31, p. 39-58, 2015. RUSLI, H. M. et al. Generating finite state machine from WSMO choreography for testing Web services. Tenth International Conference on Digital Information Management (ICDIM), Korea, 2015. WANG, H. et al. A formal model of the Semantic Web Service Ontology (WSMO). Information Systems, v. 37, n. 1, p. 33-60, 2012. Sites Visitados ERL, T. Tutorial sobre WebServices, 2009. Disponível em: <https://www.devmedia. com.br/web-services/2873>. Acesso em: 08/09/2020. MORISSON, G. R. Composição de serviços Web semânticos, 2010, Disponível em: <http://monografias.ice.ufjf.br/tcc-web/exibePdf?id=60>. Acesso em: 31/08/2020. 19
Compartilhar