web services equipe: cláudia brito lyra nunes da silva clindemberg mendes patrício luiz eugênio...

93
Web Services Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio Costa Simões Paula Geralda Barbosa Coelho Simith

Upload: matheushenrique-marta

Post on 07-Apr-2016

224 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

Web ServicesWeb Services

Equipe:Cláudia Brito Lyra Nunes da Silva

Clindemberg Mendes PatrícioLuiz Eugênio Fernandes TenórioMarcelo Faro do Amaral LemosMarco Antônio Costa Simões

Paula Geralda Barbosa CoelhoSimith

Page 2: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

Tópicos Web Services CORBA e Web Services SOAP & WSDL UDDI WSFL ebXML

Page 3: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

Web Services

Page 4: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

Integração de Aplicações O desafio da interoperação entre

ambientes heterogêneos

Page 5: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

Integração de Aplicações Diversidade de componentes

EJB, CORBA, DCOM ... Diversidade de linguagens

Java, C/C++, C# ... Firewalls Falta de padrões para

interoperação

Page 6: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

Integração de Aplicações Definindo o formato para troca de

dados

Page 7: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

Business-to-Business Aplicações se conhecem e

conversam entre si

Page 8: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

Web Services Aplicações oferecem serviços que

podem ser acessados dinamicamente

Page 9: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

Web Services Próxima geração de serviços baseados na

internet que utiliza padrões da indústria, como XML, SOAP, UDDI e ebXML, para conectar aplicações e provê novos serviços via Internet serviços mais robustos e integrados

Nova “onda” de componentes serviços como componentes reutilizáveis “blocos” que integrados produzirão novos

serviços

Page 10: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

Web Services Definição

Modelo computacional distribuído fracamente acoplado utiliza mecanismos de transporte padrão (HTTP e

HTTPS) modelo de programação síncrona e assíncrona utiliza XML para o transporte de dados

Descrito através de metadados (XML) Localizável através de pesquisas em

diretórios de serviços

Page 11: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

Web Services Service-oriented

paradigma de orientação a serviços Serviços inteligentes

coarse grained services Tecnologia

basicamente é XML sobre HTTP XML: porque o mercado concorda HTTP: livre acesso através de firewalls

Page 12: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

Web Services A web “costumava” ter foco em

pessoas A web está se tornando um plataforma

A2A (application-to-application) B2B é um caso especial

Web Services é a plataforma computacional distribuída sobre a qual aplicações A2A serão construídas

Page 13: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

Arquitetura Típica de uma Aplicação Web

Web Services

Page 14: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

Web Services

EnterpriseServices Gateway

Firewall

Devices

Web/ApplicationServer

EnterpriseLegacySystem

EnterpriseMessagingSystem

BusinessPartner Workflow/

BusinessProcesses

EnterpriseClient

as service

as service

as service

as service

as service

as service

as service

Page 15: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

Web Services

ServiceProvider

Services Broker

Services Gateway

WebServer

ApplicationServer

EnterpriseLegacySystem

EnterpriseMessagingSystem

Workflow/BusinessProcesses

ServiceRequester

Services Gateway

WebServer

ApplicationServer

EnterpriseLegacySystem

EnterpriseMessagingSystem

Workflow/BusinessProcesses

ServiceProvider

ServiceRequester

needwidget

providewidget

Page 16: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

Web Services pode ser visto como middleware ?

Page 17: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

Tecnologias Web Services Any technology-service paradigm Tipicamente

SOAP: transporte de dados (XML/HTTP)

WSDL: descrição dos serviços UDDI: registro e busca de serviços ebXML: framework para e-commerce WSFL: composição de Web Services

Page 18: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

SOAP Simple Object Access Protocol Modelo de mensagens independente do

protocolo de transporte suporte para HTTP

Modelo de codificação para tipos do sistema exemplo: XML para objetos Java, e vice-versa

RPC sobre HTTP

Page 19: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

WSDL Web Services Definition Language Provê descrição funcional de serviços

IDL description Protocol and deployment details

idealmente deveria provê todas as informações necessárias para acessar o serviço (programaticamente)

Machine-readable description

Page 20: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

UDDI Universal Description, Discovery

and Integration Coleção de diretórios (peers) que

contém informações sobre negócios e serviços

Conjunto de especificações baseadas em padrões para a descrição e pesquisa de serviços

Page 21: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

UDDI

Page 22: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

WSFL Web Services Flow Language Composição de Web Services

controle do fluxo de mensagens Construída sobre WSDL Modelos de utilização

Flow Model compõe serviços existentes em novos serviços,

definindo o workflow entre os serviços compostos Global Model

descreve a interação entre serviços sem definir a função (serviço) composto

Page 23: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

Web Services Papéis

Service provider Service broker Service requester

Operations Publish Find Bind

Page 24: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

Business Web Novo tipo de aplicação

Page 25: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

Business Web É um Web Services composto por

outros Web Services

Page 26: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

Business Web

Page 27: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

Que tipos de aplicações utilizarão Web Services?

Page 28: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

Web Services Benefícios

baixo acoplamento entre aplicações evolução independente de aplicações B2B a baixo custo (reuso) EAI (Enterprise Application Integration) não

intrusiva diversidade de componentes não afeta

interoperabilidade diversidade de linguagens não afeta

interoperabilidade padronização (futura)dos mecanismos de

interoperação

Page 29: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

Web Services em Java

Page 30: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

Web Services em Java Estende HTTP e Servlets/JSP para

suportar “program-to-program” ou “business-to-business”

(Re)utiliza a infra-estrutura J2EE

Page 31: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

WebServices Pack Empacotamento de todas as

tecnologias necessárias para o desenvolvimento de web services

WebService Pack

Java Server Faces

JAX Pack

JSP TagLibrary

Tomcat

Page 32: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

Web Services Companhias estão anunciando sua

estratégia para Web Services IBM, Sun, Oracle, HP, ... duas plataformas devem dominar o mercado: a

plataforma Java e .NET Novos servidores de aplicação já oferecem

soluções para o desenvolvimento de web services WebSphere 4.0 (IBM) WebLogic 6.1 (BEA) ...

Page 33: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

Web Services Considerações

operações precisam ser restringidas por mecanismos de segurança negociáveis

Encriptação, autenticação, autorização ... requer padrões bem definidos e

largamente adotados performance

Transformação XML <-> 0101010

Page 34: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

Web Services Conclusão

é uma forma nova de utilizar tecnologias e conceitos já existentes

viabilizada pelo contexto tecnológico e comercial atual

Page 35: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

CORBA e Web Services

Page 36: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

CORBA e Web ServicesCORBA e Web Services• Características benéficas a integração:

• Web Services:• Um middleware para middleware• Pode ser utilizado com um middleware existente (ex.

COM/DCOM, J2EE, CORBA)• CORBA:

• Uma arquitetura aberta composta de ~42 interfaces definidas para serviços horizontais e verticais

• Independência de protocolo de aplicação com a utilização de mapeamentos para GIOP

Page 37: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

CORBA e Web ServicesCORBA e Web Services• Possíveis cenários de integração:

• Implementando objetos CORBA utilizando Web Services;

• Implementando Web Services utilizando objetos CORBA;

• Expondo objetos CORBA como Web Services;

Page 38: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

CORBA e Web ServicesCORBA e Web Services• Implementado objetos CORBA usando

Web Services:

Page 39: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

CORBA e Web ServicesCORBA e Web Services• Implementado Web Services usando

objetos CORBA:

Page 40: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

CORBA e Web ServicesCORBA e Web Services• Expondo objetos CORBA como Web Services:

Page 41: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

CORBA e Web ServicesCORBA e Web Services

GIOP/IIOP SOAP/HTTPCodificação das mensagens

- CDR- Menor tamanho (sintaxe binária)

- XML- Maior legibilidade * (sintaxe texto)

Complexidade de empacotamento

- Simples/Média - Complicado- Devido ao uso de parsers XML

Suportado na Internet

- Tráfego não permitido na maioria dos firewalls

- Utiliza protocolos de aplicação conhecidos na Internet (ex. HTTP)

Interoperabilidade com middlewares existentes

- Utilizando outros mapeamentos (ex. DCE CIOP)- Utilizando bridges (ex. DCOM)

- Mapeamento mais simples- Ubiquitous industry support

• Comparação entre protocolos de transporte:

Page 42: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

SOAP

Page 43: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

SOAP – Simple Object SOAP – Simple Object Access ProtocolAccess Protocol

• Definição: É um protocolo que descreve

mensagens trocadas entre processos, chamadas remotas a métodos e padrões para transporte via HTTP.

Baseado em XML Se propõe a desempenhar o mesmo

papel do IIOP (padrão CORBA), ORPC (padrão DCOM) e JRMP(padrão Java RMI) para Sistemas Distribuídos na Internet.

Page 44: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

Para que mais um Para que mais um protocolo ?protocolo ?

• SOAP é baseado em texto (XML) enquanto os demais protocolos (IIOP,JRMP,ORPC) são binários Vantagens: facilidade de depuração e maior

adaptabilidade aos firewalls Desvantagem: tamanho da mensagem SOAP

é bem maior que os protocolos binários podendo gerar perda de performance

• Padrão aberto e independente de plataforma

Page 45: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

Arquitetura do SOAP• Um envelope que descreve o

conteúdo da mensagem e como processá-la

• Um conjunto de regras de codificação que descrevem como os tipos de dados definidos na aplicação são serializados

• Uma convenção para representar chamadas remotas a métodos (RPC) e suas respostas

Page 48: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

Implementando um Web Service SOAP

• A Especificação SOAP restringe-se aos detalhes da mensagem que é trocada entre os processos

• Não há qualquer padronização quanto às API’s para implementar Serviços ou clientes

• Existem uma série de ferramentas disponíveis: MS SOAP Toolkit, IBM WSTK, Apache-SOAP, GLUE, etc

Page 49: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

Pré-Requisitos• O requisito básico é possuir um

Servidor Web com suporte para servlets

• O Serviço pode ser implementado em diversas linguagens de programação e de script

• Tomando Java como exemplo, um serviço é uma classe Java comum sem qualquer alteração adicional

Page 50: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

Exemplo de Serviçopublic class HelloServer {

public String sayHelloTo(String nome){

return "Ola "+nome+", como vai ?";}public String sayHelloTo(Name nome) {

return "Ola "+nome.getName()+", como vai ?";

}}

Page 51: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

O Cliente• O mesmo serviço pode ser publicado

utilizando ferramentas de apoio diferentes sem sofrer qualquer alteração.

• O Cliente, entretanto, pode mudar bastante entre pacotes diferentes.

• A seguir será exemplificado um cliente para o serviço anterior usando o Apache-SOAP e outro utilizando o GLUE.

Page 52: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

Cliente Apache-SOAPCall call = new Call();call.setTargetObjectURI("urn:Hello");call.setMethodName("sayHelloTo");call.setEncodingStyleURI(Constants.NS_URI_SOA

P_ENC);Vector params = new Vector();params.addElement(new

Parameter("nome",String.class,nome,null));call.setParams(params);

Page 53: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

Cliente Apache-SOAPResponse resp = null;try { resp = call.invoke(url,""); }...Parameter ret = resp.getReturnValue();Object value = ret.getValue();System.out.println(value);

Page 54: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

Cliente GLUE IHelloServerService server =

HelloServerHelper.bind(); System.out.println(server.sayHelloTo(“Maria”));• A interface IHelloServerService pode ser gerada com

o utilitário wsdl2java fornecido junto com o pacote;• O mesmo utilitário gera também a classe

HelloServerHelper. • O GLUE exige que o Serviço publique a sua interface

WSDL para que o cliente utilize como base• Se o serviço for publicado utilizando o Servidor Web

do próprio GLUE, este gera o WSDL dinamicamente

Page 55: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

Tratamento de Exceções

• A Especificação SOAP prevê que os métodos remotos retornem Exceções para os clientes através do rótulo <Fault>

• Ou seja, qualquer exceção lançada pelo Serviço será convertida em uma seção <Fault> no envelope SOAP de resposta

Page 56: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

Tratamento de Exceções

• Da mesma forma que a API do cliente não é padronizada, a forma como as exceções serão capturadas e tratadas também não é estabelecida

• No Apache-SOAP, o Fault é extraído do objeto Response que é retornado

• No GLUE, deve ser capturada uma exceção WrappedException que contém uma SOAPException encapsulada contendo as informações do Fault

Page 57: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

WSDL

Page 58: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

WSDL – Web Services WSDL – Web Services Description LanguageDescription Language

• Definição: É a especificação publicada para um

diretório UDDI(Universal Description Discovery).

Tem uma interface e implementação de detalhes específicos dos serviços da Web disponíveis e dos respectivos proprietários

Baseada em XML, descreve a interface, protocolos, ligações, detalhes de visualização, tipos de dados e localização

Page 59: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

A Dupla SOAP e WSDLA Dupla SOAP e WSDL• O SOAP foi criado pela Microsoft/IBM• O WSDL foi criado para descrever os

contratos(interfaces) dos serviços WEB invocados através do SOAP

• Estes contratos de serviços indicam à aplicação que pretende chamar os serviços, quais são as suas interfaces, incluindo parâmetros de chamada e retorno

• Resolvem os problemas de interoperabilidade das plataformas, mas o aspecto dinâmico ainda não foi inteiramente solucionado

Page 60: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

IDL (Interface Definition Language)

• Definida juntamente com o CORBA 1.1 em 1991

• Descreve as interfaces que são chamadas pelos clientes e fornecidas pelas implementações

• O mapeamento IDL foi estabelecido primeiramente com a utilização da linguagem C++

Page 61: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

IDL X WSDL Padrão de

MapeamentoSIM NÃO

Protocolo de Mensagens

IIOP SOAP

Registro dos Serviços - UDDIFornece Localização (URL)

NÃO SIM

Complexidade de Programação

NÃO SIM

Page 62: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

Exemplo de IDL UMA INTERFACE SIMPLES CONTENDO UMA OPERAÇÃO:

Module Exmodule { structure ExStuct{ short structMember1; float structMember2; }; exception ExException{ string excepMember1; long excepMember2; }; interface Exinterface { string ExOp( in long inParam1, out float outParam2, inout Exstruct

inoutParam3)raises(ExException);

};}

Page 63: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

Mapeamento o Exemplo de IDL -> WSDL

<?xml version=”1.0” ?><wsdl:definitions

name=”ExInterfaceService” (1)targetNamespace =” http://example.com/Exmodule/ExInterface.wsdl”

xmlns:tns=”http://example.com/ExModule/ExInterface.wsdl” (2)xmlns:xds=”http://www.w3.org/2000/10/XMLSchema” (3)

xmlns:defs=”http://example.com/ExModule/definitions” (4)xmlns:soap=”http://schemas.xmlsoap.org/wsdl/soap” (5)xmlns:scoap=” http://schemas.omg.org/scoap/encoding” (6)xmlns:wsdl=”http://schemas.xmlsoap.org/wsdl/” (7)

<wsdl:importnamespace = “ http:// schemas.omg.org/scoap/encoding” (8)location=”http: //localhost/schemas/omg/scoap.xsd “ />

<wsdl:importnamespace = “ http:// example.com/ExModule/chemas” (9)location=”http: //localhost/schemas/ExModule/ExModule.xsd “ />

<wsdl:message name = “ ExException” (10)<wsdl:part name=”Exception” type=”defs:ExException” /></wsdl:message>

Page 64: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

Mapeamento IDL -> WSDL

<wsdl:message name = “ ExOpInput” (11)<wsdl:part name=”InParam1” type=”scoap:long” />

<wsdl:part name=”InoutParam3” type=”defs:ExStruct” /></wsdl:message>

<wsdl:message name = “ ExOpOutput” (12)<wsdl:part name=”_return” type=”scoap:string” />

<wsdl:part name=”OutParam2” type=”scoap:float” /><wsdl:part name=”InoutParam3” type=”defs:ExStruct” />

</wsdl:message><wsdl:message name = “ InterfaceType” (13)

<wsdl:part name=”RepID” type=”defs:ExInterfaceRepId” /></wsdl:message>

<wsdl:porttype name = “ ExInterface” (14)<wsdl:operationname=”ExOp” /> (15)

parameterOrder = “inParam1 outParam2 inoutParam3” ><wsdl:input message=”tns:ExOpInput” />

<wsdl:output message=”tns:ExOpOutput” /><wsdl:fault message=”tns:ExException” /></wsdl:operation>

</wsdl:portType>

Page 65: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

WSDL

Page 66: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

UDDI

Page 67: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

UDDI(Universal Description, Discovery and Integration) Permite informações sobre negócio e

serviços sejam eletronicamente publicadas e consultadas. “Register once, published everywhere”

Define como os negócios interagem sobre a internet e compartilham informações em uma arquitetura de registro global.

É um framework para integração de Web Services.

UDDI Project(www.uddi.org) participam a IBM, Microsoft e Ariba.

Page 68: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

UDDI(continuação) UDDI é uma especificação global. Toda

empresa espalhada pelo mundo é capaz de se registrar em um UDDI Business Registry.

Business Registry implementa a especificação UDDI.

Nos Registries ocorre uma sincronização de seus conteúdos regularmente.

Permissões de acesso – Somente o usuário com as credenciais que conferem com as credenciais usadas para criação dos registros.

Page 69: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

Benefícios imediatos de UDDI A capacidade de negócios rapidamente e

dinamicamente descobrir outros e interagir na internet.

Agregar valor aos serviços já fornecidos aos seus clientes.

Potencializar o crescimento do comércio B2B. Ressalva: A especificação UDDI ainda não foi

submetida a organizações de padronização. A versão utilizada pelos desenvolvedores é a 1.0(Draft).

Page 70: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

UDDI Informação fornecida a um registro

UDDI consiste de três componentes: White pages

Informações de contato da empresa. Yellow pages

Categorização dos serviços pela taxonomia padrão. Green pages

Informações técnicas sobre o serviço exposto(regras de negócio, descrição do serviço,...)

Page 71: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

UDDI Define quatro elementos básicos:

businessEntityPossui as descrições e informações técnicas

dos serviços. Cada businessEntity possui uma única chave que identifica o negócio/dado (Modela a informação de negócio).

businessServiceRepresenta os serviços ou processos de

negócio fornecidos pelo businessEntity (Definição de alto-nível dos serviços).

Page 72: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

UDDI(elementos)

bindingTemplate Apresenta os dados que descrevem as

características técnicas de uma dada implementação de serviço(Mapeamento entre businessService e tModel).

tModel Modela um tipo de tecnologia ou

serviço.

Page 73: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

UDDI(elementos)

Page 74: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

Implementações de UDDI jUDDI(“judy”)

Desenvolvida pela Bowstreet. Foi uma das primeiras

implementações de UDDI. Uddi4J

Desenvolvida pela IBM. Está presente IBM WSTK 2.1(Web

Service Toolkit).

Page 75: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

WSFL

Page 76: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

WSFL Web Service Flow Language

Definição Modelo de fluxo Modelo global

Page 77: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

Processo Negócio

Page 78: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

Modelo de Fluxo<flowModel name="bookTickets" serviceProviderType="airlineFlow">

  <flowSource name="ticketFlowSource">    <output name="processInstanceData"

message="tio:receivedTicketOrder"/>  </flowSource>

  <serviceProvider name="agent" type="agentType"/>  <serviceProvider name="traveler" type="travelerType"/>

  <activity name="reserveSeats">    <input name="reserveSeatsInput" message="tio:receivedTicketOrder"/>    <output name="reserveSeatsOutput" message="tio:reservation"/>    <performedBy serviceProvider="local"/>    <implement>      <internal>        <!-- .. call to credit card service .. -->      </internal>    </implement>  </activity>

Page 79: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

Modelo Global<globalModel name="bookTripNTickets" serviceproviderType="agentType">  <serviceProvider name="travelAgent"

serviceProviderType="tio:agentType">    <export>      <source portType="tio:tripHandler" operation="sendItinerary"/>      <target portType="tio:tripNTicketHandler"

operation="sendItinerary"/>    </export>    <export>      <source portType="tio:tripHandler" operation="receiveTripOrder"/>      <target portType="tio:tripNTicketHandler"

operation="receiveTripOrder"/>    </export>    <locator type="static" service="abc:agent"/> <locator type="uddi" bindTime="startup" selectionPolicy="first">    <uddi-api:find_service businessKey="uuid_key"        generic="1.0" xmlns:uddi-api="urn:uddi-org:api">    </uddi-api:find_service> </locator> </serviceProvider> 

Page 80: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

ebXML

Page 81: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

ebXMLebXML• Definição:

Conjunto de especificações que juntas possibilitamum framework para comércio eletrônico.

• Objetivo:Prover uma infraestrutura aberta baseada emXML, possibilitando a prática global do comércioeletrônico de uma forma consistente, segura einteroperável por todas as partes.

Page 82: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

ebXMLebXML• A que se propõe:

Criar padrões para definir: Transações comuns de negócios Formatos comuns de troca de dados Um mecanismo que possibilite descrever o perfil

das companhias Um mecanismo que permita organizações

descobrirem outras companhias e ter acesso ao seu perfil

Page 83: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

ebXMLebXML Um mecanismo que permita duas organizações

estabelecerem acordos (contratos) antes de iniciarem as transações

Um mecanismo de transporte comum para a troca de mensagens entre as organizações

Um framework seguro e confiável

Page 84: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

ebXMLebXMLComponentesComponentes

• ebXML Registry and Repository Meio de compartilhar informação entre empresasRegistry: Serviço similar ao UDDIRepository: Armazena informações de

como a empresa trabalha:

processos, documentos e perfis de negócio

Page 85: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

ebXMLebXMLComponentesComponentes

• CPP (Collaboration Protocol Profile) Descreve o Web service (nome do serviço, parâmetros requeridos, forma de acessá-lo) Permite a empresa descrever o seu perfil

• CPA (Collaborative Partner Agreement) Acordo estabelecido entre duas organizções Baseado no CPP de ambas Adminstra as transações entre elas

Page 86: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

ebXMLebXMLComponentesComponentes

• ebXML Messaging Service Qualquer transporte pode ser usado Qualquer tipo de informação pode ser

roteada

Page 87: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

ebXMLebXML(Visão geral de um sistema

ebXML))• Fase de implementação

Durante essa fase a organização deve: Solicitar as especificações ebXML e entendê-las

Implementar um sistema ebXML

Publicar seu perfil (CPP) de negócio no repositório ebXML, permitindo que outras organizações o acesse.

Page 88: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

ebXMLebXML(Visão geral de um sistema

ebXML))• Fase de implementação

Page 89: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

ebXMLebXML(Visão geral de um sistema

ebXML))• Fase de negociação

Durante essa fase a organização deve: Recuperar do repositório ebXML o perfil de uma

organização com a qual ela pretende realizar negócios

Verificar se a organização provê os serviços que ela deseja

Enviar a organização um contrato (CPA)

Page 90: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

ebXMLebXML(Visão geral de um sistema

ebXML))• Fase de negociação

Page 91: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

ebXMLebXML(Visão geral de um sistema

ebXML))• Fase de transação

Depois que as duas organizações estiverem de acordo com o CPA as transações podem ser efetuadas. Essas transações consistem em mensagens ebXML, que são enviadas através do serviço de mensagens do padrão ebXML.

Page 92: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

ebXMLebXML(Visão geral de um sistema

ebXML))• Fase de transação

Page 93: Web Services Equipe: Cláudia Brito Lyra Nunes da Silva Clindemberg Mendes Patrício Luiz Eugênio Fernandes Tenório Marcelo Faro do Amaral Lemos Marco Antônio

ebXMLebXML(Visão geral de um sistema (Visão geral de um sistema

ebXML)ebXML)