630 likes | 788 Views
ITA - Instituto Tecnológico de Aeronáutica. Web Services Semânticos. Disciplina: CE 262 – Ontologias e Web Semântica. Prof. Dr. José Maria Parente Grupo: Ferrucio, Rafael e Luiz Eduardo. Roteiro da apresentação. Introdução Histórico O que são Web Services? Por que Web Services?
E N D
ITA - Instituto Tecnológico de Aeronáutica Web Services Semânticos Disciplina: CE 262 – Ontologias e Web Semântica. Prof. Dr. José Maria Parente Grupo: Ferrucio, Rafael e Luiz Eduardo
Roteiro da apresentação • Introdução • Histórico • O que são Web Services? • Por que Web Services? • Tecnologias envolvidas • SOA • SOAP • XML • WSDL • UDDI • Vídeo-aula “Construção de WS com Eclipse” • Aula prática usando Netbeans e .Net • Web Semântica • Anotações Semânticas em serviços • SA-WSDL • Vídeo-aula SA-WSDL com WSMO • Exemplos WS • Produtos disponíveis • Links para padrões • Considerações finais • Referências
Histórico • Aplicação de duas camadas. Aplicações cliente-servidor. • Busca de escalabilidade e tolerância maior a falhas, criou-se a arquitetura de 3 camadas. • Camada de negócios, entre cliente e dados. • Primeiros sistemas middleware foram os RPC (Remote Procedure Call), baseados na programação estruturada. Possibilitou execução de uma mesma aplicação em plataformas diferentes. • Com POO, foram criados CORBA, DCOM e RMI, cada um com suas vantagens e desvantagens. Mas nenhuma delas se comunica com a outra. Aconselhados para Intranet. • Até chegar em Web services.
Histórico • CORBA • Solução aberta de objetos distribuídos. • Desenvolvida pelo consórcio OMG (Object Management Group) para se tornar padrão de mercado. • Primeira vantagem é que cliente e servidor podem ser feitos em qualquer linguagem, em função do alto nível de abstração conseguido com o IDL (Interface Definition Language), que possui o mapeamento dos métodos. • Comunicação é feita através de ORBs (Object Request Broker), responsáveis pela tradução de solicitação e resposta. • Aconselhável para aplicações que necessitam alta performance • Principal desvantagem é o alto grau de complexidade na implementação de pequenas soluções.
Histórico • RMI • Remote Method Invocation • Habilita comunicação entre aplicações Java-Java, que usam JVM possivelmente em plataformas diferentes. • Aplicação Java armazena apenas as referências dos objetos remotos. • Uso do protocolo JRMP (Java Remote Method Protocol) para serializar os objetos. • Não usa IDL no desenvolvimento das aplicações cliente • Desenvolvimento de aplicações ficou mais simples. • Suporte ao Garbage Collection • Desvantagens • Os dois lados devem ser aplicações Java. • Serviços disponíveis em CORBA não são implementados em RMI.
Histórico • DCOM • Distributed Component Object Model • Desenvolvida pela Microsoft para distribuir objetos pela rede. • Servidor DCOM publica métodos para clientes escritas em IDL, similar ao C++. • Usa protocolo ORPC (Object Remote Procedure Call) que usa o PING para permanecer com os objetos ativos para o cliente. • DCOM suporta o GC. • Implantado nas empresas Apple, Unix e VMS. • Desvantagem – proprietário.
O que são Web Services • “ Um sistema de software identificado através de uma URI (Identificador Universal de Recursos ) cujas interfaces públicas e interconexões são descritas em XML. Sua definição é publicada de modo a poder ser “descoberta” por outros sistemas de software. Web Services podem interagir com outros sistemas ou Web Services do modo prescrito em sua definição, utilizando mensagens baseadas no padrão XML produzidas através de protocolos de Internet.” Ref: glossários do W3C • Web service é uma solução utilizada na integração de sistemas e na comunicação entre aplicações diferentes. Com esta tecnologia é possível que novas aplicações possam interagir com aquelas que já existem e que sistemas desenvolvidos em plataformas diferentes sejam compatíveis. Os Web Services são componentes que permitem às aplicações enviar e receber dados em formato XML. Cada aplicação pode ter a sua própria "linguagem", que é traduzida para uma linguagem universal, o formato XML.
O que são Web Services • Resumindo, Um Web Service é: • Qualquer serviço que é disponibilizado através da web. • Qualquer serviço que possibilita duas aplicações de computador trocarem dados. • Principalmente, mas não exclusivamente baseado em: • XML para codificação de dados • HTTP para transporte de dados • Um documento XML transmitido remotamente e mapeado para um programa executável.
O que são Web Services Comunicação entre aplicações de WS usam 4 camadas que empacotam a requisição e a resposta entre o servidor e o cliente. XML – possibilita estabelecer objetos, métodos, parâmetros, dados e tipos de dados SOAP – protocolo que estabele a comunicação entre os ambientes WSDL – descreve o serviço (XML) UDDI – representa service broker. Contém as descrições dos WS.
Por que Web Services? • Dois fatores chave: • ubiqüidade • facilidade de uso • Interoperável: • Neutro em relação a SO e linguagem • Integração Java & .NET : simples e barata • Todo mundo dá suporte ou irá dar a Serviços Web: • Necessário dar suporte a Serviços Web para facilitar Integração • Não-invasivos(impactante): • Baseados em protocolos ubiqüos: HTTP/SMTP • Complementam tecnologias já existentes
Porque Web Services? • INTEGRAÇÃO • Interna: • Dados como nome, endereço, telefone, matrícula, etc, todas as áreas da empresa utilizam. Assim, estes dados podem ser disponibilizados (em um formato comum) para que sistemas desenvolvidos por outras áreas possam utilizar em seus aplicativos específicos. • Externa: • Gestão da cadeia de suprimentos. Esta integração é baseada na interação que existe entre várias empresas durante os diversos processos de fabricação e a logística.
Exemplo de Web Services envólucro BD sp_1 Requisição XML ... Resposta XML sp_n
Exemplo de Web Services http://www.webservicex.com/globalweather.asmx
Exemplo de Web Services http://www.maniezo.com.br/webservice/soap-server.php
Exemplo de Web Services http://developer.yahoo.com/mail/docs/html/index.html
Tecnologias Envolvidas • XML • SOA • SOAP • WSDL • UDDI
XML • XML (Extensible Markup Language) é uma recomendação da W3C para gerar linguagens de marcação para necessidades especiais.
SOA • A arquitetura orientada a serviços (SOA) descreve uma categoria de aplicativos compostos formados pelos componentes provedor de serviço e consumidor de serviço. • Uma SOA é um modelo de projeto com um conceito profundamente amarrado à questão do encapsulamento de aplicação. • A arquitetura resultante estabelece essencialmente um paradigma de projeto, no qual web services são os blocos de construção chave. • Serviços fracamente acoplados • Vantagens: interoperabilidade, redução de custos e reuso [8] Comunicação entre Serviços [8] Arquitetura de integração orientada a serviço.
SOA? • Service Oriented Architecture • Novas palavras para um conceito antigo: • Arquitetura para aplicações baseadas em serviços (que usam serviços como componentes básicos) • Um serviço é a implementação de uma funcionalidade de negócio bem definida; aplicações com arquitetura SOA combinam serviços para oferecer outros serviços • A principal forma de implementar SOAs hoje é através de Web Services • O motivo? A interoperabilidade! • Find-Bind-Execute (Ache, Mapeie, Use) – paradigma central de um SOA Provedor deserviços 4 Consumidordeserviços mapeie 5 use ache 3 1 Registro deserviços publique 2 procure
SOA A arquitetura é baseada em três componentes: • UDDI – Universal Description Discovery and Integration • WSDL – Web Service Description Language • SOAP – Simple Object Application Protocol
SOA Importância da arquitetura: Um estudo de caso na CAIXA ECONÔMICA FEDERAL (CEF) • “Nada será como antes na relacão da Caixa Econômica Federal com seus clientes. Agora ao entrar em uma agência para abrir uma conta corrente, apenas um processo colocará a disposição do usuário: número de conta, talão de cheques, acesso ao internet banking, informações de cadastro e uma linha de crédito aprovada. Estas facilidades fazem parte do novo processo de abertura de conta corrente de pessoa física, qe está sendo implantado nas agências do Banco, com base na arquitetura SOA considerada última etapa evolutiva do mercado mundial de software.” [9] • O referido sistema está implantado em 2 agências e deverá ser implantado gradativamente nas 2400 agências até o final deste ano.
SOA Mercado SOA • IBM E SAP ajustam estratégias para SOA [Por COMPUTERWORLD 30 de março de 2007 ] http://computerworld.uol.com.br/mercado/2007/03/30/idgnoticia.2007-03-29.1127815998. • SAP anuncia entrega de sistema com arquitetura SOA. http://computerworld.uol.com.br/mercado/2007/04/24/idgnoticia.2007-04-24.6041530705 Estudo de Caso http://dev.w3.org/cvsweb/~checkout~/2002/ws/arch/scenarios/ws-arch-scenarios.html
Simple Object Access Protocol -SOAP SOAP - Características • Protocolo de comunicação baseado em XML; • Iniciado em 1999 pela W3C; • Permite que mensagens sejam trocadas entre computadores heterogêneos; • Pode passar por firewalls;
SOAP SOAP - Objetivo • O objetivo atrás do trabalho SOAP é ser um protocolo que é neutro para qualquer coisa: • Transporte • Linguagem de Programação • Sistema Operacional • Etc.
SOAP ESTRTUTURA GERAL • Envelope (Envelope): • Define o conteúdo da mensagem • OBRIGATÓRIO estar associada com o namespace do envelope SOAP: • http://www.w3.org/2001/06/soap-envelope • Cabeçalho (Header) (é opcional): • contém informação de controle e processamento. • Corpo (Body): • contém informação da chamada e da resposta MENSAGEM SOAP ENVELOPE SOAP CABEÇALHO SOAP Cabeçalhos CORPO SOAP Dados da mensagem específica Estrutura de uma mensagem SOAP
SOAP assumes messages have an originator, one or more ultimatereceivers, and zero or more intermediaries. The reason is to support distributed message processing. That is, we can go beyond client-server messaging. SOAP- Funcionamento Recipient Originator Intermediary Intermediary Intermediary Fonte: http://www.grid2004.org/spring2004
SOAP O SOAP em ação
Exemplo 1- SOAP <?xml version="1.0"?> <soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> <soap:Body> <m:GetPrice xmlns:m="http://www.w3schools.com/prices"> <m:Item>Apples</m:Item> </m:GetPrice> </soap:Body> </soap:Envelope> <?xml version="1.0"?> <soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> <soap:Body> <m:GetPriceResponse xmlns:m="http://www.w3schools.com/prices"> <m:Price>1.90</m:Price> </m:GetPriceResponse> </soap:Body> </soap:Envelope>
SOAP [1/3] - Travel Reservation none; ultimateReciver; next. http://www.w3.org/TR/soap12-part0/#Example
SOAP [2/3]- Resposta da solicitação http://www.w3.org/TR/soap12-part0/#Example
SOAP [3/3] – Escolha do Aeroporto http://www.w3.org/TR/soap12-part0/#Example
WSDL O que é um Arquivo WSDL? • Um arquivo WSDL- Web Service Description Language, é descrição de serviço Web através de um documento XML. • Criado por Microsoft, IBM, Ariba.
WSDL Tipos primitivos e complexos definidos pelo XML SCHEMA O que WSDL Descreve? Elementos de dados de uma mensagem Nome da operação Os elementos de dados de uma operação A interface de um serviço Definem como a interface é implementada por um fornecedor
Exemplo: WSDL <?xml version="1.0" encoding="UTF-8"?> <definitions name="BookstoreService" targetNamespace="http://mybooks.org/wsdl" xmlns:tns="http://mybooks.org/wsdl" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <types>...</types> <message name="BookstoreIF_getPrice"> <part name="String_1" type="xsd:string"/> </message> <message name="BookstoreIF_getPriceResponse"> <part name="result" type="xsd:decimal"/> </message> <portType name="BookstoreIF"> <operation name="getPrice" parameterOrder="String_1"> <input message="tns:BookstoreIF_getPrice"/> <output message="tns:BookstoreIF_getPriceResponse"/> </operation> </portType> <binding ... >...</binding> <service ... > ... </service> </definitions> Informa onde está o serviço (endpoint)
WSDL Exemplo de Definição de Interface
WSDL Exemplo de Implementação de Serviço
WSDL Exemplo Completo • Cenário : Um web service para reserva de hotel. • Funcionalidade • CheckAvailability. To check availability, the client must specify a check-in date, a check-out date, and room type. The Web service will return a room rate (a floating point number in USD$) if such a room is available, or a zero room rate if not. If any input data is invalid, the service should return an error. Thus, the service will accept a checkAvailability message and return a checkAvailabilityResponse or invalidDataFault message
WSDL - Binding Element O elemento binding especifica um formato concreto de mensagem e protocolo da interface e deve suportar as mensagens e erros da interface. Como acessar o servico
WSDL - Service Element Onde acessar o servico
Arquitetura de Web Services: camadas • Camada de transporte (protocolo largamente utilizado) • Principais: HTTP (POST), FTP, SMTP • Camada de mensagens • SOAP • Camada dados ou serviços • XML (formato de mensagens) • XML-RPC • Camada de descrição de serviços • WSDL • Camada de descoberta (registro) • UDDI, ebXML Descoberta Descrição Dados Mensagens Transporte
UDDI • Universal Description Discovery and Integration • Publicação e Descoberta de serviços • Criado por Microsoft, IBM, Ariba • Mantido pela OASIS (www.oasis-open.org) • “Consórcio que dirige o desenvolvimento, convergência e adoção de e-business patterns” • OASIS UDDI Specification Commitee • Especificações • Esquema para descrição de provedores de serviços • API SOAP para publicação e descoberta de serviços • Baseado nos padrões da Web • XML, HTTP, TCP/IP, SOAP • Suporta serviços XML e outros modelos
UDDI Como o UDDI é usado? • analistas de negócios: • Para procurar por serviços • similar a máquinas de busca • Desenvolvedores: • Para publicar serviços • Para escrever software que usa os serviços descobertos • Incorporados em toolkits: • para automatizar a publicação de serviços