17
Web services Ângelo Vimeney Rafael Martinelli Apresentação Introdução HTTP XML WSDL SOAP UDDI USIP Compilação Conclusão Protocolos base para a Web services Web services Web services Web services Web services Web services Web services www.comidas.com.br www.veiculos.com.br www.dentista.org www.algoritmos.com.br www.campeonatos.com.br www.animais.com.br www.something.com.br abacate abacaxi abelha abóbora bacalhau barcos beterraba beringela dente dor diferencial ... tartaruga watch xadrez xerox yet zebra ? ? ? ? xadrez asdfkljdfkjsdf sdfjsdfkf sdfjsdfkjf sdfjkasdkflad sdfd dkfsdf k sdkfka Portal Server

Apresentação Web services - ime.uerj.bralexszt/cursos/topesp_inter/webservices...abelha abóbora bacalhau barcos beterraba beringela dente dor diferencial... tartaruga watch xadrez

  • Upload
    ngophuc

  • View
    214

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Apresentação Web services - ime.uerj.bralexszt/cursos/topesp_inter/webservices...abelha abóbora bacalhau barcos beterraba beringela dente dor diferencial... tartaruga watch xadrez

1

Web services

Ângelo Vimeney

Rafael Martinelli

Apresentação

Introdução

HTTP

XML

WSDL

SOAP

UDDI

USIP

Compilação

Conclusão

Protocolos base para a Web services

Web servicesWeb services

Web servicesWeb services Web servicesWeb services

www.comidas.com.br

www.veiculos.com.br

www.dentista.org

www.algoritmos.com.br

www.campeonatos.com.br

www.animais.com.br

www.something.com.br

abacateabacaxiabelhaabóborabacalhaubarcosbeterrababeringeladentedordiferencial...tartarugawatchxadrezxeroxyetzebra

??? ?

xadrez

asdfkljdfkjsdfsdfjsdfkfsdfjsdfkjfsdfjkasdkfladsdfd dkfsdf k sdkfka

Portal Server

Page 2: Apresentação Web services - ime.uerj.bralexszt/cursos/topesp_inter/webservices...abelha abóbora bacalhau barcos beterraba beringela dente dor diferencial... tartaruga watch xadrez

2

Web servicesWeb services

Brasil

USA

Rio de Janeiro

São Paulo

Salvador

Porto Alegre

New York

San Francisco

Seattle

Portland

Preço < 300

Preço < 100

Tecido de Algodão

Tecido de Linho

Tecido de Tergal

Web service 1

Web service 2

Web service 3

Web service 4

Web service 5

Web service 6

Web service 7

Web service 8

Pizzarias

Hotéis

Corretagem de imóveis

Web servicesWeb services www.uddi.microsoft.com

Web servicesWeb services

• Modo padrão, independente de plataforma, aberto, escalável e facilmente extensível de descrever osserviços.

• Modo padrão, independente de plataforma, aberto, escalável e facilmente extensível para publicar e localizar os serviços.

Web servicesWeb services

“O termo Web service se refere a uma

funcionalidade específica oferecida por uma

empresa, geralmente através de uma conexão de

internet, com o propósito de permitir que outra

empresa ou software utilize este serviço.”

UDDI Technical White Paper

“Web services são o próximo passo na evolução daWorld Wide Web (WWW) e permite disponiblizarmoselementos programáveis em Web sites onde outros

possam acessá-los de forma distribuída.”

Page 3: Apresentação Web services - ime.uerj.bralexszt/cursos/topesp_inter/webservices...abelha abóbora bacalhau barcos beterraba beringela dente dor diferencial... tartaruga watch xadrez

3

Web servicesWeb services

Heather Kreger - IBM

“Um Web service é uma interface que descreve

uma coleção de operações que são acessíveis

pela rede através de mensagens XML

padronizadas.”

Arquitetura da Empresa A

Cliente ServidorArquitetura da Empresa B

Cliente Servidor

Arquitetura da Empresa C

Cliente Servidor

. . .

Empresa A Empresa B Empresa C Empresa Z

Arquitetura baseada em Web services

Pilhapadrão de protocolos

Bind

Publish

Find

Service Requestor Service Provider

Service Registry

Service

Service Description

Modelo Web services

Apresentação

Introdução

HTTP

XML

WSDL

SOAP

UDDI

USIP

Compilação

Conclusão

Protocolos base para a Web services

Web servicesWeb services

Page 4: Apresentação Web services - ime.uerj.bralexszt/cursos/topesp_inter/webservices...abelha abóbora bacalhau barcos beterraba beringela dente dor diferencial... tartaruga watch xadrez

4

Nível Físico

IP

UDP TCP

HTTPHyperText Transfer ProtocolC

amad

ade

Apl

icaç

ão

XML EXtensible Markup Language

SOAP WSDLWeb Services

Description Language

Simple Object Access Protocol

Universal Description,Discovery Integration

UDDI

USIP

Universal Service Interop Protocols

Nível Físico

IP

UDP TCP

HTTP

Cam

ada

de A

plic

ação

HTTP

HTTP• Simples• Human-readable, English-based• Stateless • Padrão de fato para comunicação na Web• Extensível para tranporte de qualquerformato de documento• Versão atual: 1.1...

...vamos ver a versão 1.0...

HTTP

Service Requestor Service Provider

Service Registry

Bind

PublishFind

Service Requestor

Service Provider

Service Registry

Service

Service Description

Page 5: Apresentação Web services - ime.uerj.bralexszt/cursos/topesp_inter/webservices...abelha abóbora bacalhau barcos beterraba beringela dente dor diferencial... tartaruga watch xadrez

5

HTTP

...

Componentes HTTP

Linha Inicial

Linhas de cabeçalho

Linha em branco

Conteúdo (message body)

...

HTTP

Initial Request Line

GET /path/to/file/index.html HTTP/1.0

HEAD (obter somente cabeçalho)GET (obter recurso)

POST (enviar dados)

Initial Response Line (status line)

HTTP/1.0 200 OK

1xx Mensagem de informação2xx Algum tipo de sucesso3xx Redireciona o cliente4xx Indica um erro na parte cliente5xx Indica um erro na parte servidor

Primeiro Componente:Linha Incial

HTTP

...

Header 1

From: [email protected]

Header 2

User-Agent: Mozilla/3.0Gold

Header N

AlgumHeader: Algum Valor

...

Header 1

Server: Apache/1.2b3-dev

Header 2

Last Modified: Fri, 31 Dec 1999 23:59:59

Header 3

Content-Type: text/html

Header 4

Content-Length: 12300

Header N

AlgumHeader: Algum Valor

Segundo Componente:Linhas de Header

HTTP

...0011010101000101010011100100101010001011001001010110100110100101010100010101011111111111010100010101000011010110010010101101001101001010101000101010111111111110101000101010000110

<HTML><HEAD><TITLE>Teste</TITLE></HEAD>

<BODY><P>Hello World!!!!

</BODY></HTML>

Quarto Componente:Message Body

Page 6: Apresentação Web services - ime.uerj.bralexszt/cursos/topesp_inter/webservices...abelha abóbora bacalhau barcos beterraba beringela dente dor diferencial... tartaruga watch xadrez

6

HTTP

...

Acessando:http://www.somehost.com/path/file.html

GET /path/file.html HTTP/1.0From: [email protected]: HTTPTool/1.0[blank line here]

Server

Socket TCP na porta 80

HTTP

...

Resposta do Servidor emwww.somehost.com

HTTP/1.0 200 OKDate: Fri, 31 Dec 1999 23:59:59 GMTContent-Type: text/htmlContent-Length: 1354

<html><body><h1>Happy New Millennium!</h1>(more file contents)

.

.

.</body></html>

Apresentação

Introdução

HTTP

XML

WSDL

SOAP

UDDI

USIP

Compilação

Conclusão

Protocolos base para a Web services

Web servicesWeb services

Nível Físico

IP

UDP TCP

HTTP

Cam

ada

de A

plic

ação

XML

XML

Page 7: Apresentação Web services - ime.uerj.bralexszt/cursos/topesp_inter/webservices...abelha abóbora bacalhau barcos beterraba beringela dente dor diferencial... tartaruga watch xadrez

7

XMLO que é XML:.

- Significa Extensible Markup Language- É uma linguagem de marcação muito parecida com HTML- Foi desenvolvida para descrever dados- Não existem tags predefinidas, você tem que definir suas próprias tags- Documentos XML devem ser auto-descritivos

Diferenças entre XML e HTML:.

- XML serve para descrever dados e se concentra em como eles são- HTML serve para exibir dados e se concentra em como serão exibidos

XML não faz nada!.

- XML foi criado para estruturar, guardar e transmitir dados- É necessário um software para fazer algo com XML

XML - Introdução

XMLExemplo de XML:.<mensagem>

<para>Ângelo</para><de>Rafael</de><cabecalho>Lembrete</cabecalho><corpo>Não esquecer de estudar Web Services!</corpo>

</mensagem>

Utilização do XML:.

- Pode guardar dados fora do HTML- Pode ser usado para trocar informações por sistemas incompatíveis- Pode ser usado para compartilhar dados- Pode ser usado para guardar dados- É interpretado pela maioria dos browsers- É a “mãe” de outras linguagens como WAP e WML

XML - Exemplo

XMLSintaxe do XML:.<?xml version="1.0" encoding="ISO-8859-1"?><mensagem data=“29/08/2003”>

<para>Ângelo</para><de>Rafael</de><cabecalho>Lembrete</cabecalho><corpo>Não esquecer de estudar Web Services!</corpo>

</mensagem>.

- Os documentos usam uma sintaxe auto-descritiva- Todos as tags têm que possuir outra tag indicando seu fim- XML diferencia letras maiúsculas e minúsculas- Tags têm que começar e terminar na mesma ordem: <b><i>ERRADO!</b></i>- Todo documento tem que possuir uma tag raiz- Os atributos têm que ser limitados por aspas- Os espaços e as novas linhas são considerados- Os comentários são iguais a HTML: <!-- Comentário -->

XML - Sintaxe

XMLXML Namespaces:.<table>

<tr><td>Banana</td><td>Limão</td>

</tr></table>.

- As tags XML não são predefinidas- Utiliza-se um prefixo para diferenciar os namespaces.<h:table xmlns:h="http://www.w3.org/TR/html4/">

<h:tr><h:td>Banana</h:td><h:td>Limão</h:td>

</h:tr></h:table>.<f:table xmlns:f="http://www.exemplo.com/moveis">

<f:name>Mesa de café</f:name><f:width>80</f:width><f:length>120</f:length>

</f:table>.

.<table>

<name>Mesa de café</name><width>80</width><length>120</length>

</table>

XML - Namespaces

Page 8: Apresentação Web services - ime.uerj.bralexszt/cursos/topesp_inter/webservices...abelha abóbora bacalhau barcos beterraba beringela dente dor diferencial... tartaruga watch xadrez

8

Apresentação

Introdução

HTTP

XML

WSDL

SOAP

UDDI

USIP

Compilação

Conclusão

Protocolos base para a Web services

Web servicesWeb services

Nível Físico

IP

UDP TCP

HTTP

Cam

ada

de A

plic

ação

SOAP

XML

SOAP

SOAPO que é SOAP:.

- Significa Simple Object Access Protocol- É um protocolo de comunicação- Foi desenvolvido para ser usado na Internet- Independente de plataforma- Independente de linguagem- É baseado em XML- Atravessa firewalls com facilidade

Por que SOAP?.

- Foi desenvolvido para funcionar com HTTP- Objetos DCOM e CORBA normalmente são barrados por firewalls- O melhor método de comunicação entre aplicações é por HTTP, pois ésuportado por qualquer browser e servidor de internet- SOAP permite aplicações de diferentes sistemas, de diferentes tecnologias e desenvolvidas em linguagens diferentes se comunicarem

SOAP - Introdução

SOAPComponentes de uma mensagem SOAP:.

- Envelope: identifica o documento XML como uma mensagem SOAP- Header (opcional)- Body: contém informações de requisições e respostas- Fault (opcional)

- Namespaces padrão:http://www.w3.org/2001/12/soap-envelopehttp://schemas.xmlsoap.org/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:Header>

...</soap:Header><soap:Body>

...<soap:Fault>

...</soap:Fault>

</soap:Body></soap:Envelope>

SOAP - Componentes

Page 9: Apresentação Web services - ime.uerj.bralexszt/cursos/topesp_inter/webservices...abelha abóbora bacalhau barcos beterraba beringela dente dor diferencial... tartaruga watch xadrez

9

SOAPUm exemplo de SOAP:.

- Pedido.<?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.exemplo.com/prices”><m:Item>Apples</m:Item>

</m:GetPrice></soap:Body>

</soap:Envelope>.

- Resposta.<?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.exemplo.com/prices”><m:Price>1.90</m:Price>

</m:GetPriceResponse></soap:Body>

</soap:Envelope>

SOAP - Exemplo

SOAPUm exemplo de SOAP + HTTP:.POST /InStock HTTP/1.1Host: www.stock.orgContent-Type: application/soap+xml; charset=utf-8Content-Length: nnn

<?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 xmlns:m=“http://www.exemplo.org/stock”>

<m:GetStockPrice><m:StockName>IBM</m:StockName>

</m:GetStockPrice></soap:Body>

</soap:Envelope>.HTTP/1.1 200 OKContent-Type: application/soap; charset=utf-8Content-Length: nnn

<?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 xmlns:m=“http://www.exemplo.org/stock”>

<m:GetStockPriceResponse><m:Price>34.5</m:Price>

</m:GetStockPriceResponse></soap:Body>

</soap:Envelope>

SOAP - Exemplo + HTTP

Apresentação

Introdução

HTTP

XML

WSDL

SOAP

UDDI

USIP

Compilação

Conclusão

Protocolos base para a Web services

Web servicesWeb services

Nível Físico

IP

UDP TCP

HTTP

Cam

ada

de A

plic

ação

WSDL

XML

SOAP WSDL

Page 10: Apresentação Web services - ime.uerj.bralexszt/cursos/topesp_inter/webservices...abelha abóbora bacalhau barcos beterraba beringela dente dor diferencial... tartaruga watch xadrez

10

WSDL

• É um documento XML

• Possui namespace definido em:

http://schemas.xmlsoap.org/wsdl/

• Descreve serviços de forma abstrata e

facilmente extensível

• Usado para descrever Web Services

• Usado para localizar Web Services

WSDL

Service Provider

Service RegistryService Description

Bind

PublishFind

Service Requestor

Service Provider

Service Registry

Service

Service Description

WSDLClass WeatherService {

public void registerUser( String userName ) {

usersVector.addElement( userName );}

public float getTemperature( String zipCode, boolean celsius ) {

float temperature;

if (celsius) {temperature = 21.7;

}elsetemperature = 71.06;

return temperature;}

}

WSDL

<message name='GetTemperatureRequest'>

<part name='zipcode' type='xsd:string'/>

<part name='celsius' type='xsd:boolean'/>

</message>

<message name='GetTemperatureResponse'>

<part name='Result' type='xsd:float'/>

</message>

<message name=’RegisterUser'>

<part name=’Name' type='xsd:string'/>

</message>

Parâmetros (parts)

Mensagem (message)

Page 11: Apresentação Web services - ime.uerj.bralexszt/cursos/topesp_inter/webservices...abelha abóbora bacalhau barcos beterraba beringela dente dor diferencial... tartaruga watch xadrez

11

WSDL

<message name='GetTemperatureRequest'>

<part name='zipcode' type='xsd:string'/>

<part name='celsius' type='xsd:boolean'/>

</message>

<message name='GetTemperatureResponse'>

<part name='Result' type='xsd:float'/>

</message>

+

<operation name='GetTemperature' parameterOrder='zipcode celsius'>

<input message='wsdlns:GetTemperatureRequest' />

<output message='wsdlns:GetTemperatureResponse' />

</operation>

WSDL

HTTP Response

HTTP GET Request

Weather Server

SOAP/HTTP Request

SOAP/HTTP Response

Cliente 1

Cliente 2

port 1

port 2

WSDL

Weather Server

port 1

port 2

<port name='WeatherHTTPPort’

binding='wsdlns:WeatherHTTPBinding' >

<http:address location="http://localhost/

demos/wsdl/devxpert/weatherGET.asp"/>

</port>

<port name='WeatherSoapPort'

binding='wsdlns:WeatherSoapBinding' >

<soap:address location='http://localhost/

demos/wsdl/devxpert/weatherservice.asp' />

</port>

WSDL

Weather Server

port 1

port 2

<service name=”WeatherService">

<documentation>My first

service</documentation>

<port name='WeatherSoapPort’

binding='wsdlns:WeatherSoapBinding' >

<soap:address location=’

http://.../weatherservice.asp' />

</port>

<port name='WeatherHTTPPort’

binding='wsdlns:WeatherHTTPBinding' >

<http:address location=”

http://.../weatherGET.asp"/>

</port>

</service>

Page 12: Apresentação Web services - ime.uerj.bralexszt/cursos/topesp_inter/webservices...abelha abóbora bacalhau barcos beterraba beringela dente dor diferencial... tartaruga watch xadrez

12

WSDL<binding name='WeatherSoapBinding' type='wsdlns:WeatherSoapPort' >

<soap:binding style=’document' transport='http://schemas.xmlsoap.org/soap/http' />

<operation name='GetTemperature' >

<soap:operation soapAction='http://tempuri.org/action/GetTemperatureRequest' />

<input><soap:body use='encoded' namespace='http://tempuri.org/message/'

encodingStyle='http://schemas.xmlsoap.org/soap/encoding/' /></input>

<output><soap:body use='encoded' namespace='http://tempuri.org/message/'

encodingStyle='http://schemas.xmlsoap.org/soap/encoding/' /></output>

</operation>

</binding>

<operation name:’RegisterUser’> ...

<definitions name=”Weather"targetNamespace="http://example.com/weathers.wsdl”xmlns:tns=...>

</definitions>

WSDL

Elementos HTML

tablebodytitlehead. . .

Elementos WSDL

types servicemessage importportType definitionsbinding

<types>...definição de tipos(sintaxe do XML Schema)...</types>

<message>...define as mensagens trocadasdurante uma operação...</message>

<portType>...define as operações que oWeb Service pode realizar...</portType>

<binding>...define o formato das mensagense detalhes de protocolo(reuso das definições abstratas)...</binding>

Root Element

WSDL<?xml version="1.0"?><definitions name="StockQuote"

targetNamespace="http://example.com/stockquote.wsdl"xmlns:tns="http://example.com/stockquote.wsdl"xmlns:xsd1="http://example.com/stockquote.xsd"xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"xmlns="http://schemas.xmlsoap.org/wsdl/">

<types><schema targetNamespace="http://example.com/stockquote.xsd"

xmlns="http://www.w3.org/2000/10/XMLSchema"><element name="TradePriceRequest">

<complexType><all>

<element name="tickerSymbol" type="string"/></all>

</complexType></element><element name="TradePrice">

<complexType><all>

<element name="price" type="float"/></all>

</complexType></element>

</schema></types>

<message name="GetLastTradePriceInput"><part name="body" element="xsd1:TradePriceRequest"/>

</message>

<message name="GetLastTradePriceOutput"><part name="body" element="xsd1:TradePrice"/>

</message>

<portType name="StockQuotePortType"><operation name="GetLastTradePrice">

<input message="tns:GetLastTradePriceInput"/><output message="tns:GetLastTradePriceOutput"/>

</operation></portType>

<binding name="StockQuoteSoapBinding" type="tns:StockQuotePortType"><soap:binding style="document"

transport="http://schemas.xmlsoap.org/soap/http"/><operation name="GetLastTradePrice">

<soap:operation soapAction="http://example.com/GetLastTradePrice"/><input>

<soap:body use="literal"/></input><output>

<soap:body use="literal"/></output>

</operation></binding>

<binding name="StockQuoteSoapBinding" type="tns:StockQuotePortType"><soap:binding style="document"

transport="http://schemas.xmlsoap.org/soap/http"/><operation name="GetLastTradePrice">

<soap:operation soapAction="http://example.com/GetLastTradePrice"/><input>

<soap:body use="literal"/></input><output>

<soap:body use="literal"/></output>

</operation></binding>

<service name="StockQuoteService"><documentation>My first service</documentation><port name="StockQuotePort" binding="tns:StockQuoteBinding">

<soap:address location="http://example.com/stockquote"/></port> <port name="StockQuotePort" binding="tns:StockQuoteBinding">

<soap:address location="http://example.com/stockquote"/></port>

</service>

</definitions>

WSDL

http://www.capescience.com/downloads/wsdleditor/

Page 13: Apresentação Web services - ime.uerj.bralexszt/cursos/topesp_inter/webservices...abelha abóbora bacalhau barcos beterraba beringela dente dor diferencial... tartaruga watch xadrez

13

Apresentação

Introdução

HTTP

XML

WSDL

SOAP

UDDI

USIP

Compilação

Conclusão

Protocolos base para a Web services

Web servicesWeb services

Nível Físico

IP

UDP TCP

HTTP

Cam

ada

de A

plic

ação

UDDI

XML

SOAP

UDDI

WSDL

UDDI

Publish

Find

Service Requestor Service Provider

Service Registry

Bind

PublishFind

Service Requestor

Service Provider

Service Registry

Service

Service Description • UDDI Business Registration

• UDDI API

Service Registry

UDDI BusinessRegistration

White Pages

Yellow Pages

Green Pages

Nome: Padaria do Sr. Manoel LtdaContato: Dona Maria LisboaDescrição: Importante padaria no subúrbio doRio de Janeiro. Pães frescos a toda hora.

UDDI

CNPJ: 35.402.759/9999-99Área de atividade: comércio de alimentosLocalização: América do Sul - Brasil

Taxonomias padrão como:North American Industry Classification System(NAICS)NAICS código 3341: computer manufacturersStandard Industrial Classification (SIC)

Serviço-1: Encomendar pãesAcesso: [email protected]ço-2: ObterPreçosAcesso: http://www.padaria.com.br/op.wsdl

UDDI API

Inquiry APIPublishers’ API

User

Page 14: Apresentação Web services - ime.uerj.bralexszt/cursos/topesp_inter/webservices...abelha abóbora bacalhau barcos beterraba beringela dente dor diferencial... tartaruga watch xadrez

14

Elementos HTML

tablebodytitlehead. . .

Elementos UDDI

businessEntitybusinessServicebindingTemplatetModel

UDDI BusinessRegistration

White Pages

Yellow Pages

Green Pages

UDDIUDDI

tModeltModel

tModel

businessEntity

businessServicebusinessService

businessService

bindingTemplatebindingTemplate

bindingTemplate

UDDI

businessEntity

businessServicebusinessService

businessService

bindingTemplatebindingTemplate

bindingTemplate

tModeltModel

tModel

Universally Unique ID (UUID)

UDDI

businessEntity

businessServicebusinessService

businessService

bindingTemplatebindingTemplate

bindingTemplate

tModeltModel

tModel

UDDI<tModel authorizedName="..." operator= "..." tModelKey= "...">

<name>Weather Service</name><description xml:lang= "en” >

WSDL description of a standard weather service interface</description><overviewDoc><description xml:lang="en"> WSDL source document.</description><overviewURL> http://example.com/weathers.wsdl </overviewURL></overviewDoc><categoryBag>

<keyedReference tModelKey= "UUID:..."keyName= "uddi-org:types"keyValue= "wsdlSpec” />

</categoryBag></tModel>

UDDI<tModel authorizedName="..." operator= "..." tModelKey= "...">

<name>Weather Service</name><description xml:lang= "en” >

WSDL description of a standard weather service interface</description><overviewDoc><description xml:lang="en"> WSDL source document.</description><overviewURL> http://example.com/weathers.wsdl </overviewURL></overviewDoc><categoryBag>

<keyedReference tModelKey= "UUID:..."keyName= "uddi-org:types"keyValue= "wsdlSpec” />

</categoryBag></tModel>

Page 15: Apresentação Web services - ime.uerj.bralexszt/cursos/topesp_inter/webservices...abelha abóbora bacalhau barcos beterraba beringela dente dor diferencial... tartaruga watch xadrez

15

UDDI

UDDI API

Inquiry APIPublishers’ API

Publishers’ API

•save_business

•save_service

•save_binding

•save_tModel

•delete_business

•delete_service

•delete_binding

•delete_tModel

Inquiry API

•find_business

•find_service

•find_binding

•find_tModel

•get_businessDetail

•get_serviceDetail

•get_bindingDetail

•get_tModelDetail

UDDI

Service Registry

Marketplaces

Search Portals

Technical Users

UD

DI A

PI

Nível Físico

IP

UDP TCP

HTTP

Cam

ada

de A

plic

ação

USIP

XML

SOAP

UDDI

WSDL

USIPApresentação

Introdução

HTTP

XML

WSDL

SOAP

UDDI

USIP

Compilação

Conclusão

Protocolos base para a Web services

Web servicesWeb services

Page 16: Apresentação Web services - ime.uerj.bralexszt/cursos/topesp_inter/webservices...abelha abóbora bacalhau barcos beterraba beringela dente dor diferencial... tartaruga watch xadrez

16

CompilaçãoHelloWorld.java.Package com.wrox.helloworld.service;

Public class HelloWorld {String getMessage() {

return “Hello World!”;}

}

HelloWorldDD.xml.<?xml version=“1.0”?><isd:service xmlns:isd=“http://xml.apache.org/xml-soap/deployment”

id=“urn:HelloWorldService”><isd:provider type=“java”

scope=“Application”methods=“getMessage”>

<isd:java class=“com.wrox.helloworld.service.HelloWorld” static=“false” /></isd:provider><isd:faultListener>org.apache.soap.server.DOMFaultListener</isd:faultListener>

</isd:service>

Registrando o serviço:.> java org.apache.soap.server.ServiceManagerClienthttp://localhost:8080/soap/servlet/rpcrouter deploy HelloWorldDD.xml

Compilação - Java e ISD

CompilaçãoHelloWorldClient.java.import org.apache.soap.Constants;import java.net.URL;import org.apache.soap.Fault;import org.apache.soap.rpc.Call;import org.apache.soap.rpc.Response;import org.apache.soap.rpc.Parameter;

public class HelloWorldClient {

static String DEFAULT_ENDPOINT = “http://localhost:8080/soap/servlet/rpcrouter”;

public static void main(String args[]) throws Exception {String endPoint = DEFAULT_ENDPOINT;

if (args.length == 1) {endPoint = args[0];

} else if (args.length > 1) {System.out.println(“java HelloWorldClient [endpoint]”);

}

Call call = new Call();call.setTargetObjectURI(“urn:HelloWorldService”);call.setMethodName(“getMessage”);call.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC);

...

Compilação - Cliente I

CompilaçãoHelloWorldClient.java (continuação)....

URL url = new URL(endPoint);

Response resp = call.invoke(url, “”);

if (resp.generatedFault()) {Fault fault = resp.getFault();System.out.println(“The Following Error Occured: ”);System.out.println(“ Fault Code = ” + fault.getFaultCode());System.out.println(“ Fault String = ” + fault.getFaultString());

} else {Parameter result = resp.getReturnValue();System.out.println(result.getValue());

}}

}

Chamando o serviço:.> java HelloWorldClient

Compilação - Cliente II

CompilaçãoPedido.POST /soap/servlet/rpcrouter HTTP/1.0Host: localhostContent-Type: text/xml; charset=utf-8Content-Length: 414SOAPAction: “”

<?xml version=‘1.0’ encoding=‘UTF-8’?><SOAP-ENV:Envelope xmlns:SOAP-ENV=“http://schemas.xmlsoap.org/soap/envelope/”

xmlns:xsi=“http://www.w3.org/1999/XMLSchema-instance”xmlns:xsd=“http://www.w3.org/1999/XMLSchema”>

<SOAP-ENV:Body><nsl:getMessage xmlns:nsl=“urn:HelloWorldService”

SOAP-ENV:encodingStyle=“http://schemas.xmlsoap.org/soap/encoding/”></nsl:getMessage>

</SOAP-ENV:Body>

</SOAP-ENV:Envelope>

Compilação - Request

Page 17: Apresentação Web services - ime.uerj.bralexszt/cursos/topesp_inter/webservices...abelha abóbora bacalhau barcos beterraba beringela dente dor diferencial... tartaruga watch xadrez

17

CompilaçãoResposta.HTTP/1.1 200 OKContent-Type: text/xml; charset=utf-8Content-Length: 485Date: Wed, 19 Dec 2001 04:10:28 GMTServer: apache Tomcat/4.0.1 (HTTP/1.1 Connector)Set-Cookie: JSESSIONID=D712520676C524504110A4C5D6E672E9;Path=/soap

<?xml version=‘1.0’ encoding=‘UTF-8’?><SOAP-ENV:Envelope xmlns:SOAP-ENV=“http://schemas.xmlsoap.org/soap/envelope/”

xmlns:xsi=“http://www.w3.org/1999/XMLSchema-instance”xmlns:xsd=“http://www.w3.org/1999/XMLSchema”>

<SOAP-ENV:Body><nsl:getMessageResponse xmlns:nsl=“urn:HelloWorldService”

SOAP-ENV:encodingStyle=“http://schemas.xmlsoap.org/soap/encoding/”><return xsi:type=“xsd:string”>Hello World!</return>

</nsl:getMessageResponse></SOAP-ENV:Body>

</SOAP-ENV:Envelope>

Compilação - Response

Apresentação

Introdução

HTTP

XML

WSDL

SOAP

UDDI

USIP

Compilação

Conclusão

Protocolos base para a Web services

Web servicesWeb services

Conclusão - Lista

Web servicesWeb services

Bibliografia:

http://www.ime.uerj.br/~tpe_g01