You are on page 1of 9

Web Services

Definio
Web services so aplicaes modulares autoautodescritas e autoauto-contidas, que podem ser conectadas e acopladas a outros web services [IBM] Web Services so componentes de software com baixo fator de acoplamento, utilizados por meio de padres de tecnologia Internet. Um Web Service representa uma funo de negcio ou um servio que pode ser acessado por uma outra aplicao. [Gartner]

Web Services
XML SOAP WSDL UDDI Desenvolvimento Informaes Adicionais
1

Web Services
Principais Caractersticas
Fornecem servios a clientes dispersos na Web Podem ser facilmente localizados na rede Interfaces so bem definidas e autoauto-descritas Empregam padres da Internet Formato de dados Comunicao Se comunicam facilmente atravs de firewalls Consiste em uma tecnologia aberta, independente de linguagem e de plataforma
3

Web Services
Utilizao
Construo de aplicaes distribudas baseadas na Web Disponibilizao de servios pela Web Integrao de sistemas: PCs, dispositivos mveis, servidores de bancos de dados, Implementao de regras de negcio no servidor Web Gerenciamento de transaes distribudas em aplicaes Web
4

Web Services
Arquitetura Orientada a Servios (SOA)
Provedor do servio (service provider) Provedor de registro (registry provider) Cliente do servio (service requestor)

Web Services
Elementos da Arquitetura
Provedor de Registro
Descoberta do Servio Publicao do Servio

Interao entre os elementos


Publicao de servios: provedor de servio com provedor de registro Descoberta de servios: cliente com provedor de registro Invocao de servios: cliente com provedor de servio

Internet
Invocao do Servio

Cliente do Servio

Provedor de Servio

Web Services
Comparao com outras tecnologias para desenvolvimento de aplicaes distribudas
CORBA Soluo aberta Permite implementao do cliente e servidor em qualquer linguagem Emprega IDL para descrever a interface Formato de dados prprio Grande complexidade de desenvolvimento Geralmente apresenta bom desempenho
7

Web Services
Comparao com outras tecnologias (cont.)
Java RMI Comunicao apenas entre aplicaes Java (a no ser que use RMI/IIOP, permitindo a comunicao tambm com objetos CORBA) Independncia de plataforma (JVM) Dispensa o uso de IDL API de reflexo do Java usada para inspecionar as interfaces Fcil desenvolvimento de aplicaes Desempenho limitado pelo uso do Java

Web Services
Comparao com outras tecnologias (cont.)
Microsoft COM, DCOM e ActiveX Suporte limitado quase que somente ao sistema operacional Windows Protocolo de comunicao e formato de dados proprietrios da Microsoft Aplicaes podem ser desenvolvidas em vrias linguagens Interfaces descritas em Microsoft IDL Bom desempenho

Web Services
Comparao com outras tecnologias (cont.)
Web Services x Outros Baseados em padres abertos de grande aceitao no mercado Protocolo de comunicao e formato de dados adotam padres da Web InfraInfra -estrutura j disponvel Aplicaes podem ser desenvolvidas facilmente usando qualquer linguagem Interfaces claramente especificadas Desempenho limitado

10

Web Services
Tecnologias empregadas por Web Services
XML (eXtensible Markup Language): formato padro para troca de dados SOAP: SOAP : protocolo utilizado na interao com os servios Web WSDL (Web Services Description Language): utilizada para descrever os servios Web UDDI (Universal Description, Discovery and Integration): permite localizar servios na rede
11

Web Services
<SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema"> <SOAP:Header> </SOAP:Header> < </ns1:getCPF> </SOAP:Body> </SOAP:Envelope>

2.Consulta UDDI 3.Obtm URL, WSDL


<SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.wtance" xmlns:xsd="http://www.w3.org> <SOAP:Header> </SOAP:Header> <SOAP:Body> xmlns:xsi="http://www.wtance" xmlns:xsd="http://www.w3.org> <SOAP:Header> <ns1:getCPF xmlns:ns1="CPF" SOAP:encodingStyle= "http://schemas.xmlsoap.org/soap/encoding/"> <nome xsi:type="xsd:string">Joo da Silva</nome> </ns1:getCPF> "http://schemas.xmlsoap.org/soap/encoding/"> <nome xsi:type="xsd:string">Joo da Silva</nome> </ns1:getCPF> </SOAP:Body> </SOAP:Body> </SOAP:Envelope>

Provedor de Registro (UDDI)


1.Registra

Cliente do Servio

<SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema"> <SOAP:Header> </SOAP:Header> <SOAP:Body> <ns1:getCPF xmlns:ns1="CPF" SOAP:encodingStyle= "http://schemas.xmlsoap.org/soap/encoding/"> <nome xsi:type="xsd:string">Joo da Silva</nome> </ns1:getCPF> </SOAP:Body> </SOAP:Envelope>

<SOAP:Envelope xmlns:SOAP="http://sche.org/soap/envelope/" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.wa"> <SOAP:Header> </SOAP:Header> <SOAP:Body> <ns1:getCPF xmlns:ns1="CPF" SOAP:encodingStyle= "http://schemas.xmlsoap.org/soap/encoding/"> <nome xsi:type="xsd:string">Joo da Silva</nome> </ns1:getCPF> </SOAP:Body> </SOAP:Envelope>

4.Invoca o servio 5.Retorno (opcional)


<SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" </SOAP:Header> <SOAP:Body> <ns1:getCPF xmlns:ns1="CPF" SOAP:encodingStyle= "http://schemas.xmlsoap.org/soap/encoding/"> <nome xsi:type="xsd:string">Joo da Silva</nome> </ns1:getCPF> </SOAP:Body> </SOAP:Envelope>

Provedor de Servio (Web Service) Service)


12

XML
XML uma linguagem extensvel de marcao de dados definida pelo W3C XML usada para intercambiar dados
Permite trocar dados facilmente entre aplicaes Web Facilita a anlise de dados por programas independente de sistemas operacionais ou formatos proprietrios usados por aplicaes Permitindo a definio de elementos pelo usurio (ou aplicao) para estruturar dados

XML
Documentos XML
Documentos estruturados em formato texto Compostos por tags XML e valores dos dados Tags podem ser definidas pelo usurio Legveis para humanos e mquinas Os dados contidos em um documento XML podem ser facilmente interpretados pelas aplicaes, independentemente de linguagem de desenvolvimento, do sistema operacional e do protocolo de comunicao utilizado
13 14

XML
Documentos XML x HTML
XML visto erroneamente como um formato alternativo ao HTML XML no possui tags para formatao de documentos, como o HTML XML se preocupa apenas com o contedo do documento, e no com a sua apresentao

XML
Apresentao de documentos XML
Os dados de um documento XML podem ser apresentados de vrias maneiras, dependendo do contexto no qual so utilizados Folhas de estilo XSL (eXtensible Stylesheet Language) especificam regras para apresentar um documento XML (em HTML, PDF, ...) Diferentes folhas de estilo podem ser aplicadas a um mesmo documento XML, apresentando o dado de forma diferente em cada situao ou para diferentes usurios
15 16

XML
Elementos de um documento XML
Especificados usando tags Tag de abertura: <tag> Tag de fechamento: </tag> Tag com autoauto-fechamento: <tag /> Os valores dos dados so especificados entre tags de abertura e fechamento: <tag>dado <tag> dado</tag> </tag> Tags podem possuir atributos: <tag atrib=valor atrib=valor /> Tags podem conter outras tags aninhadas: <tag1> <tag2>dado <tag2>dado</tag2> </tag2> </tag1>

XML
Documentos XML devem ser bembem-formados
Devem conter apenas um elemento, que a raiz da rvore XML O elemento raiz pode conter outros elementos Todos os elementos especificados em XML devem ser finalizados, ao contrrio de HTML Elementos aninhados devem ser finalizados na ordem inversa de abertura

17

18

XML
Exemplo de Documento XML
<? <?xml xml version="1.0" encoding="UTF encoding="UTF-8"?> <previsaoDoTempo data=" data="01/07/2008 01/07/2008" " unidade="Celsius unidade="Celsius"> "> <localidade id="1 id="1" nome="Florianpolis nome="Florianpolis"> "> <TemperaturaMinima valor="14.5 valor="14.5"/> "/> <TemperaturaMaxima valor="21.3 valor="21.3"/> "/> </localidade> <localidade id="2 id="2" nome="So nome="So Joaquim"> Joaquim"> <TemperaturaMinima valor="7.2 valor="7.2"/> "/> <TemperaturaMaxima valor="15.1 valor="15.1"/> "/> </localidade> </ </previsaoDoTempo previsaoDoTempo> >

XML
Esquemas XML
Especificam o formato que deve ser respeitado por um documento XML Definem tags, atributos e os tipos de dados aceitos para cada elemento Um documento XML vlido se estiver em conformidade com um esquema Tipos de esquemas XML DTD (Document Type Definition) XSD (XML Schema Definition)

19

20

XML
DTD
Formato nono-XML Pode ser embutido no XML ou especificado em um arquivo em separado (extenso .dtd) Especifica os elementos aceitos, seus atributos e os elementos que este pode conter Limitao: no define os tipos de dados e os valores aceitos em cada campo do documento

XML
Exemplo de DTD
<!ELEMENT Temps (localidade*)> localidade*)> <!ATTLIST previsaoDoTempo data CDATA #REQUIRED> <!ATTLIST previsaoDoTempo unidade CDATA #REQUIRED> <!ELEMENT localidade (TemperaturaMinima, TemperaturaMinima, TemperaturaMaxima)> TemperaturaMaxima )> <!ATTLIST localidade id CDATA #REQUIRED> <!ATTLIST localidade nome CDATA #REQUIRED> <!ELEMENT TemperaturaMinima EMPTY> <!ATTLIST TemperaturaMinima valor CDATA #REQUIRED> <!ELEMENT TemperaturaMaxima EMPTY> <!ATTLIST TemperaturaMaxima valor CDATA #REQUIRED>
21 22

XML
XSD
Formato XML Permite especificar os tipos de dados, o formato e os valores aceitos em cada campo Pode ser facilmente reutilizado em outros esquemas atravs da definio de namespaces Proposto pela Microsoft e posteriormente aceito como um padro W3C

XML
Exemplo de XSD
<?xml version="1.0" encoding="UTF encoding="UTF-8" ?> <xs: xs:schema xmlns xmlns: :xs="http://www.w3.org/2001/XMLSchema"> xs="http://www.w3.org/2001/XMLSchema"> <xs: xs:element name name=" ="previsaoDoTempo previsaoDoTempo" " type type=" ="PrevisaoType PrevisaoType"/> "/> <xs: xs:complexType name name=" ="PrevisaoType PrevisaoType"> "> <xs: xs:sequence> sequence> <xs: xs:element name name=" ="localidade localidade" " type=" type="LocalidadeType LocalidadeType" " minOccurs=" minOccurs ="0 0" maxOccurs=" maxOccurs="unbounded unbounded"/> "/> </ </xs xs: :sequence> sequence> <xs: xs:attribute name name=" ="data data" " type=" type="xs xs:string :string" " use="required use="required"/> "/> <xs: xs:attribute name name=" ="unidade unidade" " type=" type="xs xs:string :string" " use="required use="required"/> "/> </ </xs xs: :complexType> complexType> + <xs: xs:complexType name name=" ="LocalidadeType LocalidadeType"> ">
23

</ </xs xs: :schema> schema>

24

XML
Parsers
So responsveis por fazer a verificao de um documento XML, obtendo os dados que sero usados por uma determinada aplicao

SOAP
Protocolo SOAP
Protocolo definido pelo W3C para comunicao entre Web Services Nome originou das iniciais de Simple Object Access Protocol (esse nome no mais usado) Define o formato das mensagens trocadas entre Web Services Independente de plataforma e de linguagem Utiliza em geral HTTP[S] como protocolo de transporte (porta 80 atravessa firewalls )
25 26

APIs
Usadas para fazer o parsing de documentos Exemplos de APIs XML: DOM SAX

SOAP
Funcionamento
Cliente cria um envelope SOAP especificando o nome da operao requisitada e os nomes e valores dos parmetros da operao Requisio enviada pela rede ao provedor do servio Requisio recebida e interpretada A operao requisitada executada A resposta, se houver, colocada em um envelope SOAP e enviada ao cliente
27

SOAP
Envelope SOAP
SOAP Envelope Header Body Payload Fault
28

SOAP
Exemplo de Requisio SOAP
<?xml version="1.0" encoding="UTF-8"?> <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"> <S:Header/> <S:Body> <ns1:getTemperaturaMinima xmlns:ns1="http://ufsc.br/previsao"> <localidade>Florianpolis</localidade> </ns1:getTemperaturaMinima> </S:Body> </S:Envelope>

SOAP
Exemplo de Resposta SOAP
<?xml version="1.0" encoding="UTF-8"?> <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"> <S:Body> <ns1:getTemperaturaMinimaResponse xmlns:ns1="http://ufsc.br/previsao"> <return>13.2</return> </ns1:getTemperaturaMinimaResponse> </S:Body> </S:Envelope>

29

30

WSDL
Linguagem de descrio de Web Services
Padro do W3C Baseado no XML Especifica a interface de um servio Web Atravs do WSDL de um Web Service possvel saber que servios esto disponveis e como invocinvoc-los remotamente A especificao WSDL independente da linguagem na qual o Web Service implementado Equivalente especificao de interface IDL de um objeto CORBA ou DCOM 31

WSDL
Estrutura
<? <?xml xml version="1.0" encoding="UTF encoding="UTF-8"?> <definitions name=" name="PrevisaoDoTempo PrevisaoDoTempo" " targetNamespace=" targetNamespace ="http://ufsc.br/previsao http://ufsc.br/previsao" " xmlns: xmlns :tns="http://ufsc.br/previsao" tns="http://ufsc.br/previsao" xmlns: xmlns :xsd="http://www.w3.org/2001/XMLSchema" xsd="http://www.w3.org/2001/XMLSchema" xmlns: xmlns :soap="http://www.w3.org/2003/11/wsdl/soap12" soap="http://www.w3.org/2003/11/wsdl/soap12" xmlns="http://www.w3.org/2003/11/wsdl"> xmlns ="http://www.w3.org/2003/11/wsdl"> + <types> types> + <message name name=" ="getTemperaturaMinima getTemperaturaMinima"> "> + <message name name=" ="getTemperaturaMinimaResponse getTemperaturaMinimaResponse"> "> + <message name name=" ="getTemperaturaMaxima getTemperaturaMaxima"> "> + <message name name=" ="getTemperaturaMaximaResponse getTemperaturaMaximaResponse"> "> + <portType name name=" ="Tempo Tempo"> "> + <binding name=" name="TempoPortBinding TempoPortBinding" " type=" type="tns tns:Tempo :Tempo"> "> + <service name name=" ="TempoService TempoService"> "> </ </definitions definitions> >

32

WSDL
Elementos
<definitions> definitions>: elemento raiz <types> types>: define os tipos de dados utilizados pelo servio Web (pode referenciar um XSD) <messages> messages>: especifica as mensagens usadas na comunicao com o servio Web <portType> portType>: define um conjunto de operaes que so executadas por um servio <binding> binding>: associa um protocolo ao servio <service> service>: especifica o endereo de rede no qual o servio pode ser acessado
33

WSDL
Definio de Tipos
Importa um XSD com a descrio dos tipos
<types> <types> <xsd: xsd:schema> schema> <xsd: xsd:import namespace=" namespace="http://ufsc.br/previsao http://ufsc.br/previsao" " schemaLocation=" schemaLocation ="http://ufsc.br/previsao/tempo.xsd http://ufsc.br/previsao/tempo.xsd" " /> </ </xsd xsd: :schema> schema> </ </types types> >

34

WSDL
<xs: xs:schema xmlns xmlns: :tns="http://ufsc.br/previsao" tns="http://ufsc.br/previsao" xmlns: xmlns :xs="http://www.w3.org/2001/XMLSchema" xs="http://www.w3.org/2001/XMLSchema" version="1.0" targetNamespace="http://ufsc.br/previsao"> targetNamespace="http://ufsc.br/previsao"> <xs: xs:element name name=" ="getTemperaturaMinima getTemperaturaMinima" " type=" type ="tns tns: :getTemperaturaMinima getTemperaturaMinima" " /> <xs: xs:element name name=" ="getTemperaturaMinimaResponse getTemperaturaMinimaResponse" " type=" type ="tns tns: :getTemperaturaMinimaResponse getTemperaturaMinimaResponse" " /> <xs: xs:complexType name name=" ="getTemperaturaMinima getTemperaturaMinima"> "> <xs: xs:sequence> sequence> <xs: xs:element name name=" ="localidade localidade" " type=" type="xs xs:string :string" " minOccurs=" minOccurs="0 0"/> </ </xs xs: :sequence> sequence> </ </xs xs: :complexType> complexType> <xs: xs:complexType name name=" ="getTemperaturaMinimaResponse getTemperaturaMinimaResponse"> "> <xs: xs:sequence> sequence> <xs: xs:element name name=" ="return return" " type type=" ="xs xs: :float float" " /> </ </xs xs: :sequence> sequence> </ </xs xs: :complexType> complexType> ... 35 </ </xs xs: :schema> schema>

WSDL
Definio de Mensagens
<message name name=" ="getTemperaturaMinima getTemperaturaMinima"> "> <part name name=" ="parameters parameters" " element element=" ="tns tns: :getTemperaturaMinima getTemperaturaMinima" " /> </ </message message> > <message name name=" ="getTemperaturaMinimaResponse getTemperaturaMinimaResponse"> "> <part name name=" ="parameters parameters" " element=" element ="tns tns: :getTemperaturaMinimaResponse getTemperaturaMinimaResponse"/> "/> </ </message message> > <message name name=" ="getTemperaturaMaxima getTemperaturaMaxima"> "> <part name name=" ="parameters parameters" " element element=" ="tns tns: :getTemperaturaMaxima getTemperaturaMaxima" " /> </ </message message> > <message name name=" ="getTemperaturaMaximaResponse getTemperaturaMaximaResponse"> "> <part name name=" ="parameters parameters" " element=" element ="tns tns: :getTemperaturaMaximaResponse getTemperaturaMaximaResponse"/> "/> </ </message message> > 36

Definio de Tipos em um XSD

WSDL
Definio de Porta
<portType name name=" ="Tempo Tempo"> "> <operation name=" name="getTemperaturaMinima getTemperaturaMinima"> "> <input message=" message="tns tns: :getTemperaturaMinima getTemperaturaMinima" " /> <output message=" message="tns tns: :getTemperaturaMinimaResponse getTemperaturaMinimaResponse" " /> </ </operation operation> > <operation name=" name="getTemperaturaMaxima getTemperaturaMaxima"> "> <input message=" message="tns tns: :getTemperaturaMaxima getTemperaturaMaxima" " /> <output message=" message="tns tns: :getTemperaturaMaximaResponse getTemperaturaMaximaResponse" " /> </ </operation operation> > </ </portType portType> >

WSDL
Binding com o Protocolo SOAP
<binding name=" name="TempoPortBinding TempoPortBinding" " type=" type="tns tns:Tempo :Tempo"> "> <soap: soap:binding transport=" transport="http://schemas.xmlsoap.org/soap/http http://schemas.xmlsoap.org/soap/http" " style="document style=" document" " /> <operation name=" name="getTemperaturaMinima getTemperaturaMinima"> "> <soap: soap:operation soapAction="" soapAction="" /> <input> <soap <soap: :body /> </input> <output> <soap <soap: :body /> </output> </ </operation operation> > <operation name=" name="getTemperaturaMaxima getTemperaturaMaxima"> "> <soap: soap:operation soapAction="" soapAction="" /> <input> <soap <soap: :body /> </input> <output> <soap <soap: :body /> </output> </ </operation operation> > </ </binding binding> > 38

37

WSDL
Definio de Servio
<service name name=" ="TempoService TempoService"> "> <documentation> documentation>Servio de Previso do Tempo</ Tempo</documentation documentation> > <port name name=" ="TempoPort TempoPort" " binding binding=" ="tns tns: :TempoPortBinding"> TempoPortBinding"> <soap: soap:address location location=" ="http://ufsc.br/previsao/TempoService http://ufsc.br/previsao/TempoService" " /> </ </port port> > </ </service service> >

UDDI
Infra-estrutura para registro e localizao Infrade servios Web
Padro do OASIS que define um provedor de registros de Web Services Criado por Ariba, Ariba, IBM e Microsoft Armazena as especificaes WSDL dos provedores de servios Permite que os clientes encontrem os provedores dos servios dos quais necessitam e descubram como solicitar tais servios Faz o papel do registro do RMI e dos servios de nomes e trading do CORBA

39

40

UDDI
Caractersticas
Repositrio centralizado e universal para registro de servios Interfaces registradas so descritas em WSDL Registros so armazenados em XML Recebe requisies de registro e descoberta utilizando o protocolo SOAP Empresas podem ter seus servidores UDDI privados para registro de servios internos
41

UDDI
Consulta de Registros
Pginas Brancas Fornecem o endereo para contato do provedor do servio Pginas Amarelas Classificam os provedores em categorias de acordo com o seu ramo de negcio Pginas Verdes Fornecem informaes tcnicas sobre os servios executados pelos provedores

42

UDDI
Elementos do Registro UDDI
<businessEntity> businessEntity>: fornece informaes sobre uma famlia de servios <businessService> businessService>: prov informaes sobre um determinado servio <bindingTemplate> bindingTemplate>: contm informaes tcnicas referentes a um servio <tModel> tModel>: fornece informaes especficas relacionadas ao servio
43

UDDI
Registro UDDI
<businessEntity>
Nome, contato, descrio, categorias, ...

<businessService> <businessService> 1...N <businessService> 1...N <businessService> (1...N) 1...N


<bindingTemplate> (1...N) <bindingTemplate> (1...N) Informaes tcnicas <bindingTemplate> (1...N) Informaes tcnicas Informaes tcnicas <bindingTemplate> (1 <bindingTemplate> Informaes <tModel> tcni (1...N) Nome, descrio, URL...

44

UDDI
UDDI possui APIs para:
Localizao de Servios Publicao de Servios delete_binding delete_business delete_service delete_tModel save_binding save_business save_service save_tModel
45

UDDI
Rotinas da API de Publicao

Rotinas da API de Localizao


find_binding find_business find_service find_tModel get_bindingDetail get_businessDetail get_serviceDetail get_tModelDetail

46

Desenvolvimento
Toolkits facilitam a criao de Web Services
Podem gerar automaticamente: Proxies (stubs stubs/ /skeletons skeletons): ): processam as mensagens SOAP WSDL do servio web Cdigo para acesso ao UDDI Exemplos: Apache Axis gSOAP kSOAP ...

Desenvolvimento
APIs para criao de Web Services
Fornecem rotinas/classes para facilitar a manipulao de mensagens SOAP, para criar/interpretar descries de servios em WSDL e para acesso/registro no UDDI APIs disponveis no Java: JAXJAX -WS (Java API for XML Web Services) JAXP (Java API for XML Processing) JAXB (Java API for XML Binding) JAXJAX -RPC (Java API for XML RPC) SAAJ (SOAP with Attachments API for Java) JAXR (Java API for XML Registries) 48

47

Desenvolvimento
Exemplo de Web Service em Java
@WebService() public class Tempo { @WebMethod WebMethod( (name=" name="getTemperaturaMinima getTemperaturaMinima") ") public float getTemperaturaMinima getTemperaturaMinima( ( (@ (@WebParam WebParam=" ="nomeLocalidade nomeLocalidade") ") String nomeLocalidade ) { /* cdigo do mtodo */ } @WebMethod WebMethod( (name=" name="getTemperaturaMaxima getTemperaturaMaxima") ") public float getTemperaturaMaxima getTemperaturaMaxima( ( (@ (@WebParam WebParam=" ="nomeLocalidade nomeLocalidade") ") String nomeLocalidade ) { /* cdigo do mtodo */ } }
49

Informaes Adicionais
REST (REpresentational State Transfer)
Alternativa mais leve para o SOAP Recursos so identificados por uma URI e acessados atravs de mensagens HTTP GET: obtm o estado do recurso POST: modifica o estado do recurso PUT: cria um recurso DELETE: remove um recurso Objetivos: simplicidade e melhor desempenho Exemplos: GET /aluno?curso=123 POST /aluno/101123001

50

Informaes Adicionais
JSON (JavaScript Object Notation)
Alternativa ao uso de XML H parsers em vrias linguagens (no somente em JavaScript) Comparao com XML JSON mais compacto (~30(~30-40%) Parsing de dados em JSON mais leve XML possui um conjunto amplo de padres para definio do esquema de dados e de espaos de nomes, especificao semntica, criptografia, assinatura digital, etc.
51

Informaes Adicionais
JSON Exemplo:
{ "previsaoDoTempo "previsaoDoTempo": ": " "http://ufsc.br/previsao", ", "data": "01/07/2008 01/07/2008", ", "unidade": "Celsius "Celsius", ", "localidade": [ { "id": "1 "1", "nome": "Florianpolis "Florianpolis", ", "temperaturaMinima temperaturaMinima": ": "15.2 "15.2", ", "temperaturaMaxima temperaturaMaxima": ": " "19.8 19.8" " }, ... ] }
52

Informaes Adicionais
Especificaes que adicionam recursos e funcionalidades aos Web Services
WS WS-Addressing Addressing: : endereamento e roteamento de mensagens na camada de aplicao WS WS-BPEL BPEL/ /WS WS-CDL CDL: : orquestrao/coreografia de processos de negcio WS WS-Coordination Coordination/ /WS WS-Transaction: Transaction: execuo de transaes distribudas entre servios WS WS-ReliableMessaging ReliableMessaging: : entrega confivel de mensagens SOAP a servios Web WS WS-Security Security: : mecanismos para controle de acesso, integridade e confidencialidade ...

Informaes Adicionais
Servios Web Semnticos
Aperfeioam a descrio e descoberta de servios usando tecnologias da Web Semntica Propiciam a interao entre servios sem interveno humana Dados e servios so descritos usando ontologias, que representam um conjunto de conceitos dentro de um domnio de aplicao Padres relacionados: OWLOWL -S: Ontology Web Language for Services WSMO: Web Services Modeling Ontology
53 54