Web Services - Uma Soluao Para Aplicaoes as Na Internet

58
PONTIFÍCIA UNIVERSIDADE CATÓLICA DO PARANÁ CENTRO DE CIÊNCIAS EXATAS E DE TECNOLOGIA CURSO DE PÓS GRADUAÇÃO EM TECNOLOGIAS PARA SISTEMAS DE INFORMAÇÃO ENIO PERPÉTUO JÚNIOR IVERSON LOURENÇO JAGIELLO WEB SERVICES UMA SOLUÇÃO PARA APLICAÇÕES DISTRIBUÍDAS NA INTERNET CURITIBA 2003

Transcript of Web Services - Uma Soluao Para Aplicaoes as Na Internet

5/7/2018 Web Services - Uma Soluao Para Aplicaoes as Na Internet - slidepdf.com

http://slidepdf.com/reader/full/web-services-uma-soluao-para-aplicaoes-as-na-internet 1/58

 

PONTIFÍCIA UNIVERSIDADE CATÓLICA DO PARANÁ

CENTRO DE CIÊNCIAS EXATAS E DE TECNOLOGIA

CURSO DE PÓS GRADUAÇÃO EM TECNOLOGIAS PARA SISTEMAS DEINFORMAÇÃO

ENIO PERPÉTUO JÚNIOR

IVERSON LOURENÇO JAGIELLO

WEB SERVICES

UMA SOLUÇÃO PARA APLICAÇÕES DISTRIBUÍDAS NA INTERNET

CURITIBA

2003

5/7/2018 Web Services - Uma Soluao Para Aplicaoes as Na Internet - slidepdf.com

http://slidepdf.com/reader/full/web-services-uma-soluao-para-aplicaoes-as-na-internet 2/58

 

ENIO PERPÉTUO JÚNIOR

IVERSON LOURENÇO JAGIELLO

WEB SERVICES

UMA SOLUÇÃO PARA APLICAÇÕES DISTRIBUÍDAS NA INTERNET

Monografia apresentada à pós-

graduação em Tecnologias para

Sistemas de Informação da Pontifícia

Universidade Católica do Paraná, sob

a orientação do Professor Edgard

Jamhour.

Orientador:____________________

CURITIBA

2003

5/7/2018 Web Services - Uma Soluao Para Aplicaoes as Na Internet - slidepdf.com

http://slidepdf.com/reader/full/web-services-uma-soluao-para-aplicaoes-as-na-internet 3/58

 

ENIO PERPÉTUO JÚNIOR

IVERSON LOURENÇO JAGIELLO

WEB SERVICES

UMA SOLUÇÃO PARA APLICAÇÕES DISTRIBUÍDAS NA INTERNET

Monografia apresentada à pós-graduação em Tecnologias para Sistemas de

Informação da Pontifícia Universidade Católica do Paraná, sob a orientação do

Professor Edgard Jamhour.

Orientador:_________________________________

Prof. Dr. Edgard Jamhour

__________________________________

__________________________________

5/7/2018 Web Services - Uma Soluao Para Aplicaoes as Na Internet - slidepdf.com

http://slidepdf.com/reader/full/web-services-uma-soluao-para-aplicaoes-as-na-internet 4/58

 

”Na prática, as máquinas do amanhã

não serão puras máquinas de rede que

adquirem suas funções on-line nem puros PCs,

recheados de softwares de fábrica. Eles usarão

uma mistura de recursos locais e remotos por 

meio de softwares nômades, fluentes, porque

isso atenderá melhor às necessidades das

 pessoas”

 Dertouzos Michael

5/7/2018 Web Services - Uma Soluao Para Aplicaoes as Na Internet - slidepdf.com

http://slidepdf.com/reader/full/web-services-uma-soluao-para-aplicaoes-as-na-internet 5/58

 

Resumo

Este trabalho descreve uma nova tecnologia que se apresenta como a precursora de

uma revolução na comunicação entre aplicações: os Web Services. Alguns dos aspectos datecnologia de Web Services nos despertam muita atenção porque, em primeiro lugar, eles são

processados via Internet (à qual praticamente toda empresa está conectada), Intranet ou outras

redes baseadas em IP. Em segundo lugar, importantes fornecedores de tecnologia, como IBM,

Microsoft, Oracle e Sun, concordaram em apoiar um conjunto de padrões que definem como

sistemas diferentes devem interagir entre si, num nível até então improvável de cooperação

entre concorrentes. Além disso, a abordagem de Web Services não torna necessariamente as

tecnologias de integração anteriores obsoletas, mas viabiliza tipos de integração anteriormentemuito complexos.

Palavras-chave: Web Services - Internet – XML - Aplicações Distribuídas - B2B - Segurança

5/7/2018 Web Services - Uma Soluao Para Aplicaoes as Na Internet - slidepdf.com

http://slidepdf.com/reader/full/web-services-uma-soluao-para-aplicaoes-as-na-internet 6/58

 

Abstract

This text describes a new technology that presents itself as a revolution in the

communications between applications: the Web Services. Some aspects of the Web Servicestechnology are very attractive. First, because they are processed through the Internet (which

practically all company are connected to), Intranet or other nets based on IP. Second,

important technology suppliers such as IBM, Microsoft, Oracle and Sun, have agreed to

support a set of standards that define how different systems must interact, in a level of 

cooperation between competitors that was improbable before it. Moreover, Web Services does

not necessarily become others technologies of integration obsolete, but it makes possible

some integrations that were too complex.

Keywords: Web Services - Internet – XML - Distributed Applications - B2B - Security

5/7/2018 Web Services - Uma Soluao Para Aplicaoes as Na Internet - slidepdf.com

http://slidepdf.com/reader/full/web-services-uma-soluao-para-aplicaoes-as-na-internet 7/58

 

Sumário

Sumário......................................................................................................................................7

I - Introdução ............................................................................................................................9

 Estrutura do trabalho .........................................................................................................10

II - A Evolução dos Sistemas Distribuídos ...........................................................................11

 Arquitetura Cliente / Servidor ............................................................................................11

 Arquitetura Orientada a Objetos........................................................................................12

 Internet / Intranet................................................................................................................13

 Arquiteturas Distribuídas Orientadas a Objetos................................................................14

CORBA x DCOM..........................................................................................................14

 J2EE x .NET .................................................................................................................15

Web Services.......................................................................................................................16 

III - Arquitetura......................................................................................................................17

Componentes (components)................................................................................................20

Papéis (funções) – Roles.....................................................................................................20

Operações – Operations .....................................................................................................21

IV - Protocolos ........................................................................................................................22

 XML – Extensible Markup Language .................................................................................23

 Exemplo de documento XML........................................................................................24 Elementos XML (XML elements)..................................................................................26 

 Elementos XML possuem relacionamentos .............................................................26 

 Atributos XML ..............................................................................................................27 

 XML embutido em HTML . ...........................................................................................28

 XML News ....................................................................................................................28

 XML Namespaces .........................................................................................................29

Usando Namespaces................................................................................................30

SOAP (Simple Object Access Protocol).............................................................................31

 Bloco de estrutura SOAP..............................................................................................31

 Esqueleto de mensagens SOAP ....................................................................................32 Envelope SOAP.............................................................................................................32

O xmlns:soap namespace.........................................................................................33

5/7/2018 Web Services - Uma Soluao Para Aplicaoes as Na Internet - slidepdf.com

http://slidepdf.com/reader/full/web-services-uma-soluao-para-aplicaoes-as-na-internet 8/58

 

O Atributo encodingStyle..............................................................................................33

 Header SOAP ...............................................................................................................34

O atributo Actor (autor) ...............................................................................................34

O atributo mustUnderstand..........................................................................................35

SOAP Body ...................................................................................................................36 WSDL..................................................................................................................................36 

 Estrutura WSDL ...........................................................................................................37 

WSDL ports ..................................................................................................................38

 Bindings SOAP .............................................................................................................38

UDDI – Universal Description, Discovery and Integration...............................................38

 Discovery direto ...........................................................................................................39

 Discovery indireto ........................................................................................................39

 API UDDI.....................................................................................................................39

UDDI Business Registry ...............................................................................................40

Páginas Brancas (White Pages)...................................................................................40

Páginas Amarelas (Yellow Pages) ...............................................................................40

Páginas Verdes (Green Pages).....................................................................................41

 Arquitetura UDDI.........................................................................................................41

Sites-Operadores ..........................................................................................................42

 Registrars .....................................................................................................................42

V - Segurança..........................................................................................................................43

Segurança ao nível de Transporte......................................................................................44

SSL................................................................................................................................44

PKI................................................................................................................................44

 IPSec.............................................................................................................................45

Segurança ao nível de XML................................................................................................47 

 XKMS (XML Key Management Services).....................................................................48

WS-Security ..................................................................................................................48

VI - Aplicação de WS em B2B...............................................................................................50

Vantagens e Desvantagens do WS ......................................................................................52

VII - Como o Mercado apoia o padrão.................................................................................54 Microsoft.......................................................................................................................54

Sun Microsystems .........................................................................................................54

Oracle ...........................................................................................................................55

 META Group ................................................................................................................55

OASIS............................................................................................................................55

TechMetrix Research....................................................................................................56 

Forrester Research Inc.................................................................................................56 

VIII – Conclusão.....................................................................................................................57

Referências ..............................................................................................................................58

5/7/2018 Web Services - Uma Soluao Para Aplicaoes as Na Internet - slidepdf.com

http://slidepdf.com/reader/full/web-services-uma-soluao-para-aplicaoes-as-na-internet 9/58

 

I - Introdução

Durante o curso de especialização, tivemos contato com as principais tecnologias desistemas de informação e acompanhamos o sua evolução impulsionada, entre outros motivos,

pela enorme necessidade de integração entre os sistemas. Optamos por abordar neste trabalho

de final de curso uma nova tecnologia que se apresenta atualmente como a preconizadora de

uma grande revolução nas comunicações entre as aplicações: os Web Services.

Alguns dos aspectos da tecnologia de Web Services nos despertam muita atenção

porque, em primeiro lugar, eles são processados via Internet (à qual praticamente toda

empresa está conectada), Intranet ou outras redes baseadas em IP. Em segundo lugar,

importantes fornecedores de tecnologia, como IBM, Microsoft, Oracle e Sun, concordaram

em apoiar um conjunto de padrões que definem como sistemas diferentes devem interagir

entre si, num nível até então improvável de cooperação entre concorrentes. Além disso, a

abordagem de Web Services não torna necessariamente as tecnologias de integração

anteriores obsoletas, mas viabiliza tipos de integração anteriormente muito complexos.

Ao longo deste trabalho pretendemos apresentar ao leitor de forma abrangente os

principais aspectos desta nova tecnologia e colocá-lo em contato com a nova tendência de

desenvolvimento de software proposto por ela. A fim de obter informações atualizadas, este

trabalho contou com uma pesquisa realizada exclusivamente em sites da Internet, onde um

vasto material sobre este assunto pode ser encontrado com facilidade. Os endereços acessados

encontram-se listados ao final deste trabalho onde informações ainda mais aprofundadas

podem ser obtidas.

5/7/2018 Web Services - Uma Soluao Para Aplicaoes as Na Internet - slidepdf.com

http://slidepdf.com/reader/full/web-services-uma-soluao-para-aplicaoes-as-na-internet 10/58

 

10

Estrutura do trabalho

No capítulo seguinte é descrito de maneira breve a evolução dos sistemas

computacionais distribuídos desde a arquitetura centralizada, Client-Server, AplicaçõesDistribuídas, Objetos Distribuídos, o surgimento de aplicações para a Internet até a

necessidade de se obter uma interoperabilidade entre estas aplicações nos dias atuais.

O capítulo III descreve mais detalhadamente o conceito de Web Services e apresenta a

sua Arquitetura e elementos.

No capítulo IV serão apresentados os principais protocolos utilizados em Web

Services, tais como SOAP, UDDI, WSDL pretendendo assim mostrar como estes protocolosse encaixam para formar a base desta nova arquitetura.

O capítulo V dedica-se a rever alguns dos principais protocolos de segurança

desenvolvidos para suportar as aplicações distribuídas e mostrar como eles podem ser

aplicados para garantir transações seguras em Web Services. Além de citar os novos

protocolos especialmente desenvolvidos para este fim.

O sexto capítulo deste trabalho apresenta como a arquitetura de Web Services se

encaixa neste novo contexto de aplicações distribuídas e B2B além de apresentar quais os

benefícios que ela traz tanto aos desenvolvedores quanto para os usuários. Neste capítulo

também, será apresentado quais as situações em que a aplicação de Web Services não é a mais

adequada.

No capítulo VII apresentamos as ações de algumas das principais empresas envolvidas

na padronização da Arquitetura de Web Services, quais as tendências em relação à

movimentação do mercado em torno do Web Services e algumas pesquisas que apontam oque está previsto para os próximos anos.

5/7/2018 Web Services - Uma Soluao Para Aplicaoes as Na Internet - slidepdf.com

http://slidepdf.com/reader/full/web-services-uma-soluao-para-aplicaoes-as-na-internet 11/58

 

II - A Evolução dos Sistemas Distribuídos

Arquitetura Cliente / Servidor

No início da década de 90, a grande novidade nos sistemas corporativos era a

arquitetura cliente/servidor, expressão que designa um tipo de arquitetura de sistemas que se

contrapôs a dois modelos utilizados anteriormente: os sistemas centralizados e os micros

isolados.

No primeiro, todos os dados e funcionalidade do sistema da empresa residiam em

computadores de grande porte, os chamados Mainframes. Os terminais utilizados nãopossuíam nenhuma capacidade de processamento ou armazenamento de dados local,

caracterizando um sistema extremamente inflexível.

Com o adventos das LANs (Local Area Network) a situação começou a melhorar. Os

arquivos e programas mais importantes passaram a residir num servidor de arquivos,

protegidos por senhas e backups automáticos. O gerenciamento das impressoras passou a ser

também centralizado, otimizando sua utilização. Todo o processamento ainda se concentrava

na própria estação de trabalho do usuário.

Entretanto, os sistemas baseados em bancos de dados, espinha dorsal da maioria das

empresas, continuavam a residir nos Mainframes, com interfaces não-amigáveis. Para integrar

os sistemas de bancos de dados aos microcomputadores que tornavam-se cada vez mais

comuns nas mesas dos usuários, começou a ser difundido o conceito de arquitetura

cliente/servidor. A grande novidade desta arquitetura é a separação dos aplicativos

corporativos e do processamento de transações em duas partes, uma executada no servidor e

outra na máquina do cliente. Nesses aplicativos distribuídos, a porção servidor é responsável

pela segurança e pela integridade dos dados, enquanto o cliente serve para exibir os dados

5/7/2018 Web Services - Uma Soluao Para Aplicaoes as Na Internet - slidepdf.com

http://slidepdf.com/reader/full/web-services-uma-soluao-para-aplicaoes-as-na-internet 12/58

 

12

numa interface amigável e de modo personalizável ao usuário final. Este modelo, embora

amplamente difundido, possui um alto custo de suporte e manutenção.

Arquitetura Orientada a Objetos

Na programação distribuída usando a arquitetura cliente-servidor, clientes e servidores

podem ser implementados usando qualquer paradigma de programação. Assim, é possível que

um serviço específico seja executado por um método de algum objeto. No entanto, mesmo

que o cliente também tenha sido desenvolvido orientação a objetos, na comunicação entre o

cliente e o servidor esse paradigma deve ser esquecido, devendo ser utilizado algum protocolopreestabelecido de troca de mensagens para a solicitação e resposta ao serviço.

Um sistema de objetos distribuídos é aquele que permite a operação com objetos

remotos. Dessa forma é possível, a partir de uma aplicação cliente orientada a objetos, obter

uma referência para um objeto que oferece o serviço desejado e, através dessa referência,

invocar métodos desse objeto, mesmo que a instância desse objeto esteja em uma máquina

diferente daquela do objeto cliente.

O conceito básico que suporta plataformas de objetos distribuídos é o conceito de

arquiteturas de objetos. Essencialmente, uma arquitetura orientada a objetos estabelece as

regras, diretrizes e convenções definindo como as aplicações podem se comunicar e

interoperar. Dessa forma, o foco da arquitetura não é em como a implementação é realizada,

mas sim na infra-estrutura e na interface entre os componentes da arquitetura.

No paradigma de arquiteturas de objetos, há três elementos principais. A arquitetura

OO fornece uma descrição abstrata do software, que categorias de objetos serão utilizadas,como estarão particionados e como interagirão. As interfaces são as descrições detalhadas das

funcionalidades do software. Finalmente, a implementação é composta por módulos de

software que suportam as funcionalidades especificadas nas interfaces.

O uso de interfaces permite isolar a arquitetura de um sistema de sua implementação.

Dessa forma, o sistema pode ser construído com um alto grau de independência em relação às

implementações específicas de suas funcionalidades, ou seja, é possível substituir

implementações específicas com pequeno impacto sobre o sistema como um todo.

5/7/2018 Web Services - Uma Soluao Para Aplicaoes as Na Internet - slidepdf.com

http://slidepdf.com/reader/full/web-services-uma-soluao-para-aplicaoes-as-na-internet 13/58

 

13

A adoção do paradigma de arquitetura de objetos permite também atingir um alto grau

de interoperabilidade através da adoção de uma infra-estrutura padronizada de comunicação

entre objetos através das interfaces. Assim, cada componente da arquitetura deve se preocupar

apenas em como se dará sua comunicação com a infra-estrutura de comunicação.

Internet / Intranet

A partir de 1994, o fenômeno da Web mostrou um novo modelo de integração de

sistemas, constituindo-se de padrões abertos, com maior independência em relação aos

fornecedores, trazendo um novo enfoque para a relação cliente/servidor. Por meio de

formulários desenvolvidos em linguagem HTML (Hypertext Markup Language), clientes e

servidores podem trocar informações, pode-se ter acesso a bancos de dados, documentos

ficam a disposição de usuários na rede e grupos de trabalho encontram meios para o

desenvolvimento de trabalhos colaborativos.

Todas estas facilidades encontradas na Web acabaram sendo levadas para dentro das

corporações, por meio de uma versão doméstica da Internet, a Intranet, tecnologia que vem

varrendo o mundo empresarial. Embora a Intranet ainda apresente limitações nodesenvolvimento de aplicações que acessem bancos de dados no estilo do modelo

cliente/servidor, seu baixo custo e facilidade de implantação vêm fazendo com que cada vez

mais empresas adotem esta tecnologia.

Nos últimos anos diversos padrões foram propostos para a implementação do conceito

de sistemas distribuídos. Um modelo muito popular tem sido o de separação de uma aplicação

em camadas, apresentação, negócio e dados. No entanto, ainda nos deparamos com alguns

problemas que impedem que este modelo desenvolva-se plenamente, tais como:

complexidade de implementação e, principalmente, implantação. Sistemas escritos em

diferentes linguagens, e não raro em plataformas distintas, sofrem ainda de um mal bem mais

grave, a incompatibilidade entre os tipos de dados, além da necessidade de forte envolvimento

das equipes técnicas de ambos os lados no processo de integração. Estas tem sido as

principais causas da baixa integração entre os sistemas de clientes e fornecedores mesmo com

toda a facilidade de infra-estrutura de comunicação existente hoje em dia.

5/7/2018 Web Services - Uma Soluao Para Aplicaoes as Na Internet - slidepdf.com

http://slidepdf.com/reader/full/web-services-uma-soluao-para-aplicaoes-as-na-internet 14/58

 

14

Arquiteturas Distribuídas Orientadas a Objetos

A necessidade de integração das aplicações que se encontravam em ambientes

heterogêneos e a necessidade de comunicação entre elas em tempo-real fez com que acomputação distribuída ganhasse cada vez mais espaço no mundo atual. O DCE (Distributed

Computer Environment) foi o começo dessa tendência de computação distribuída em

empresas, porém o DCE não era orientado a objeto, assim surgiu o CORBA, que é uma

arquitetura de objetos para computação distribuída. e junto com o CORBA veio o DCOM da

Microsoft. O DCOM era o principal concorrente do CORBA, a diferença entre essas duas

tecnologias é que o CORBA roda em multiplataforma, enquanto o DCOM só em ambientes

Windows.

CORBA x DCOM

O padrão CORBA (Common Object Request Broker Architecture), é um conjunto de

especificações criado pela OMG (Object Management Group), um grupo formado por mais de

800 empresas da indústria de informática.

Um sistema baseado em CORBA é composto por objetos distribuídos, que são

elementos de software que implementam um determinado processamento e possuem uma

determinada interface. O CORBA define uma camada intermediária (middleware) entre os

objetos distribuídos da aplicação e a rede de comunicação. A localização do objeto e a

linguagem na qual ele está implementado são mantidos totalmente transparentes. Detalhes de

implementação e localização não precisam ser conhecidos para se fazer uma requisição a um

objeto. Tudo que é necessário saber de um objeto CORBA para requisitá-los, é a sua

interface. A interface de um objeto é definida através da linguagem IDL (Interface Definition

Language), que é totalmente declarativa, não trazendo nenhum detalhe de implementação de

objeto. A linguagem IDL permite definir os métodos e atributos de um objeto e exceções que

ele pode gerar. Ela permite a independência de sistema operacional e de linguagem de

programação para os objetos. Objetos clientes e servidor em diferentes linguagens e

executando em diferentes sistemas operacionais podem interoperar sem nenhum problema.

O DCOM foi criado pela Microsoft em 1996 como uma evolução natural do

OLE/COM ( Object Linking Embedding/Component Object Model), lançado em 1993 com

o objetivo de suportar a comunicação entre objetos distribuídos. O DCOM faz uso dos

5/7/2018 Web Services - Uma Soluao Para Aplicaoes as Na Internet - slidepdf.com

http://slidepdf.com/reader/full/web-services-uma-soluao-para-aplicaoes-as-na-internet 15/58

 

15

investimentos realizados no COM, tais como aplicações, componentes, ferramentas e

conhecimento para ingressar no mundo da computação distribuída baseado nas padronizações

  já existentes. Trata-se de um protocolo que possibilita componentes de software se

comunicarem diretamente sobre uma rede de maneira confiável. O COM define como deve

ser a interação entre os objetos e seus clientes, sem a intermediação de qualquer componente

do sistema.

Analogamente às DLLs, que são códigos compilados prontos para uso, o modelo de

componentes do DCOM seria uma versão “orientada a objeto” da DLL, com poderes

ampliados tais como a reutilização de código.

J2EE x .NET

Com o J2EE (Java 2 Entreprise Edition) e a plataforma .NET, Sun Microsystems e

Microsoft, respectivamente, travam um novo duelo de titãs na competitiva arena de

desenvolvimento de aplicações para Internet.

Com a .NET, a Microsoft introduziu uma plataforma capaz de competir em iguais

condições com a J2EE (Java 2 Platform, Enterprise Edition), da Sun Microsystems. Java

representa mais do que uma linguagem de programação, pois, ao lado da tecnologia de

máquinas virtuais (JVM), permite compilar os programas, sem alterações, para serem

executados em diversos equipamentos. A plataforma da Microsoft era, até pouco tempo atrás,

essencialmente baseada no Windows e estava atrelada ao mundo do PC. Com o advento da

.NET, a primeira grande diferença é que o ambiente de desenvolvimento agora ampliou sua

atuação também para outros dispositivos e para acrescentar a contribuição de ferramentas de

parceiros.

Por outro lado, Mais do que uma plataforma de desenvolvimento de aplicações, a Sun

Microsystems acena para o mercado com uma opção que segue o ideal de se trabalhar com

soluções e sistemas abertos, enriquecidos por comunidades de desenvolvedores.

Um outro fator muito importante e que promete aumentar ainda mais a disputa entre as

duas plataformas é que tanto J2EE quanto .NET são compatíveis com os principais padrões

relacionados aos Web Services, entre eles SOAP, WSDL e UDDI.

5/7/2018 Web Services - Uma Soluao Para Aplicaoes as Na Internet - slidepdf.com

http://slidepdf.com/reader/full/web-services-uma-soluao-para-aplicaoes-as-na-internet 16/58

 

16

Web Services

Web Services tratam-se de uma forma simples e padronizada de utilizar a malha da

Internet para implementar a integração entre sistemas heterogêneos, de forma bastanteflexível, substituindo as tradicionais estratégias de EAI.

O significado de “Enterprise Application Integration” (EAI), cuja tradução seria

“Integração de Aplicações Corporativas”, mudou com o tempo. Há algum tempo, o termo era

exclusivamente usado para designar a tentativa de uma empresa de interligar suas aplicações

internas de negócios de forma que os dados possam ser compartilhados entre elas.

Recentemente, o significado foi expandido para também englobar a união de dados e

processos com parceiros comerciais externos.

Não é raro que o ambiente de tecnologia seja bastante heterogêneo dentro de uma

mesma empresa, com sistemas distintos para cada aplicação. Novas tecnologias e frameworks

de desenvolvimento estão surgindo, tendo como objetivo uma maior integração entre os

diversos aplicativos e serviços disponíveis na Internet. Este novo modelo em crescimento

deve tratar tarefas complexas, como o gerenciamento de transações, através da

disponibilização de serviços distribuídos que utilizem interfaces de acesso simples e bem

definidas.

Web Services permitem a integração entre sistemas distintos de forma bastante

simples e direta. Uma das regras que nortearam a criação do padrão foi "não invente nada de

novo". Basicamente um Web service funciona como uma página Web, com a diferença que ao

invés de HTML, utiliza-se XML. Desta forma os dados podem ser descritos e o pacote da

mensagem pode ser manipulado com grande facilidade tanto por quem envia, quanto por

quem recebe.

5/7/2018 Web Services - Uma Soluao Para Aplicaoes as Na Internet - slidepdf.com

http://slidepdf.com/reader/full/web-services-uma-soluao-para-aplicaoes-as-na-internet 17/58

 

III - Arquitetura

Uma arquitetura de Web services ocupa, dentro de uma relação, vários componentes etecnologias que compreendem uma pilha de Web services ou implementações completamente

funcionais. Componentes e tecnologias que estendem a arquitetura básica são representadas

dentro da arquitetura estendida.

A arquitetura básica inclui tecnologias Web services capazes de:

•  trocar mensagens;

•  descrever Web services;

•  publicar e descobrir descrições Web services.

O fundamento da arquitetura Web services define uma interação entre agentes de

software como um trocador de mensagens entre serviços requisitados e provedores de serviço.

Os requisitantes são softwares agentes que requisitam a execução do serviço. Provedores são

agentes de software que provêem um serviço. Agentes podem ser ambos, requisitantes e

provedores. Provedores são responsáveis por publicar a descrição do serviço que ele esta

disponibilizando / provendo. Requisitantes devem ser capazes de encontrar as descrições dosserviços.

O fundamento dos modelos de arquitetura do Web service interagem entre agentes

realizando qualquer das três funções: provedor de serviço, agência de serviço de publicação e

requisição do serviço. A interação envolve a publicação, localização e operação de união.

Num cenário típico um provedor de serviço hospeda um exemplo de uma rede acessível

através de agente de software. O provedor do serviço define a descrição do serviço para o

Web service e publica isso para um requisitante ou para um agente de publicação. Orequisitante do serviço usa uma função de procura para recuperar a localização do serviço

5/7/2018 Web Services - Uma Soluao Para Aplicaoes as Na Internet - slidepdf.com

http://slidepdf.com/reader/full/web-services-uma-soluao-para-aplicaoes-as-na-internet 18/58

 

18

localmente ou para descobrir uma agência de publicação (ex: registro ou repositório) e usa o

serviço de descrição para ligar o Web service com o provedor e invocar ou interagir com a

implementação do Web service. O provedor de serviço e a função de requisitante são

desenvolvidas e um serviço deve exibir características de ambas.

O uso de Web services na Internet esta se expandindo rapidamente como uma

necessidade por comunicação de aplicativo pra aplicativo e crescente interoperabilidade.

A excitação encima do Web service é baseada no potencial para uma combinação de

especificações de XML, a Internet, o SOAP e o WSDL, e na definição de protocolos de

endereçamento de tarefas, muitos dos problemas dessas tecnologias foram encontradas.

As populares tecnologias Web service SOAP 1.1 e WSDL 1.1 foram originariamente

desenvolvidas fora do W3C, porem, seus sucessores estão agora sendo desenvolvidos dentro

das atividades do Web service W3C. Estas especificações estão sendo usadas como a base

para a criação de uma arquitetura de mensagens extensível (SOAP 1.2) e a definição de uma

interface de linguagem (WSDL 1.2).

A figura acima ilustra a arquitetura básica do Web service, na qual um requisitante de

serviço e um provedor interagem baseados no serviço descrição da informação publicada pelo

provedor e descoberta pelo requisitante através de algumas formas de descobrimento da

agencia. O serviço é requisitado e os provedores interagem trocando mensagens, as quais

devem ser agregadas para o formulário MEP´s message Exchange patterns (padrões de troca

de mensagens).

5/7/2018 Web Services - Uma Soluao Para Aplicaoes as Na Internet - slidepdf.com

http://slidepdf.com/reader/full/web-services-uma-soluao-para-aplicaoes-as-na-internet 19/58

 

19

No desenho acima, os nós do triângulo representam as funções ou papeis, e as

extremidades representam as operações.

Um ou mais mediadores devem existir no caminho entre um requisitante e umprovedor. Mediadores, onde presentes, não podem interferir com o MEP. Mediadores devem

realizar certas funções associadas com a mensagem assim como rotinas, segurança,

gerenciamento, ou outras operações. Exemplos de MEPs incluem unilateralmente,

requisições/respostas, publicação/aprovação, e transmissão.

Arquitetura de componentes básica de Web Service são tipicamente definidas usando

aplicações XML, usando definições XML tipos de mensagens e estruturação, e usando para

transporte o http. Componentes de arquitetura estendida em Web services são tipicamentedefinidas usando extensões para conduzir aplicações XML e transportá-la, incluindo

alternativas para o http.

Uma mensagem é definida como uma combinação que pode incluir zeros ou mais

cabeçalhos em adição para dados. A parte do cabeçalho de uma mensagem pode incluir

informação pertinente para estender as funcionalidades, como segurança, contextos de

transação, informação de orquestração, ou informação para roteamento de mensagens. O dado

da parte da mensagem contém um conteúdo de mensagem ou dados.

Um Web service é descrito usando um padrão, uma notação formal XML, chama-se

isso de descrição do serviço, que provê todos os detalhes necessários para interagir com o

serviço, incluindo formato de mensagens, transporte de protocolos, e localização. As

naturezas das interfaces escondem os detalhes da implementação do serviço então isso pode

ser usado independentemente da plataforma de hardware ou software na qual é implementada

e independentemente da linguagem em que foi escrita.

Web service pode ser usado sozinho ou em conjunto com outros Web services para

atingir uma agregação complexa ou uma transação de negócios.

A figura acima ilustra a relação entre requisitantes, provedores, serviços, descrições, e

descobridores de serviço no caso, agentes onde agentes fazem o papel de requisitantes e

provedores. O provedor de publicação um arquivo WSDL que contém a descrição da

mensagem e ponto final da informação para permitir ao requisitante gerar a mensagem SOAP

e enviá-la para o destino correto.

5/7/2018 Web Services - Uma Soluao Para Aplicaoes as Na Internet - slidepdf.com

http://slidepdf.com/reader/full/web-services-uma-soluao-para-aplicaoes-as-na-internet 20/58

 

20

Para implantar um MEP comum (padrão de troca de mensagens) da

requisição/resposta, por exemplo, uma implementação Web service prove agentes de software

que funcionam ao mesmo tempo como requisitantes e provedores. O requisitante do serviço

envia uma mensagem em forma de uma requisição de informação, ou para realizar uma

operação, e receber uma mensagem do provedor do serviço que conterá um resultado para a

requisição ou operação. O provedor do serviço recebe a requisição, processa a mensagem e

envia uma resposta. A tecnologia tipicamente usada para esse tipo de interação Web service

inclui SOAP, WSDL, e http.

As seguintes seções provêem mais definições para os componentes, funções, e

operações na arquitetura Web service.

Componentes (components)

Serviço: considerando que um Web service é uma interface descrita por uma descrição

de serviço, esta implementação é o serviço. Um serviço é um modulo de software

desenvolvido em plataformas de rede acessíveis providos por provedores de serviço. E existe

para ser chamado ou interagir com um requisitante do serviço. Isto deve ser funcional também

como um requisitante, usando outros Web services nessa implementação.

Descrição do serviço: As descrições do serviço contem detalhes da interface e

implementação do serviço. Isso inclui seus tipos de dados, operações, informações de

ligações, e localização de rede, poderiam também incluir categorização e outros meta dados

para descobrir facilidades e utilização pelos requisitantes. A descrição completa deve ser

realizada como um conjunto de descrições de documentos XML. A descrição do serviço deve

ser publicada para um requisitante diretamente ou para uma agencia descobridora.

Papéis (funções) – Roles

Provedor de serviço: De uma perspectiva de serviço, este é o proprietário do serviço.

De uma perspectiva de arquitetura é a plataforma que hospeda o acesso para o serviço.

Também sendo referenciado como um ambiente de execução do serviço ou um

compartimento do serviço. Esse papel no padrão de troca de mensagens é aquele de um

servidor.

Requisitante do serviço: de uma perspectiva de um negócio é uma tarefa que requercertas funções para ser satisfeita. De uma perspectiva de arquitetura esse é a aplicação que

5/7/2018 Web Services - Uma Soluao Para Aplicaoes as Na Internet - slidepdf.com

http://slidepdf.com/reader/full/web-services-uma-soluao-para-aplicaoes-as-na-internet 21/58

 

21

esta olhando para uma invocação ou inicializando uma interação com um serviço. O papel de

requisitante pode ser feito por um browser dirigido para uma pessoa ou um programa sem

uma interface de usuário.

Agência descobridora: Esta é uma localizadora padrão de descrição de serviços onde

os provedores do serviço publicam suas descrições de serviço. O serviço de agencia

descobridora pode ser centralizada ou distribuída. A agencia descobridora pode suportar

ambos os padrões onde tenha que enviar descrições e onde possa ativamente inspecionar,

procurar por provedores de descrições de serviços. Requisitantes de serviços devem localizar

serviços e obter ligações de informações durante o desenvolvimento de ligações estáticas, ou

durante a execução de ligações dinâmicas.

Operações – Operations

Para uma aplicação tomar vantagens do Web services, três maneiras devem tomar

lugar: publicação das descrições dos serviços, localização e recuperação das descrições dos

serviços, e ligações ou invocação dos serviços baseados nos serviços de descrição. Essas

maneiras podem ocorrer só ou interativamente com qualquer cardinalmente entre os papéis.

Em detalhes, essas operações são:

Publicação: para ser acessível, um serviço precisa publicar suas descrições assim

como o requisitante pode subseqüentemente localizá-las.

Localização: Na operação de localização, o requisitante do serviço recupera uma

descrição do serviço diretamente ou perguntando pelo registro do serviço requerido. A

operação de localização deve ser envolvida em duas fases de ciclos de vida para o requisitante

do serviço: no tempo de construção para recuperar a interface da descrição do programa

desenvolvido, e na hora de execução para recuperar a ligação do serviço e descrição da

localização para invocação.

Interação: eventualmente, um serviço necessita ser invocado. A operação de interação

do requisitante do serviço invoca ou inicializa uma interação com o serviço na hora de

execução usando os detalhes da descrição da ligação para localização, contatar, e inovar o

serviço.

5/7/2018 Web Services - Uma Soluao Para Aplicaoes as Na Internet - slidepdf.com

http://slidepdf.com/reader/full/web-services-uma-soluao-para-aplicaoes-as-na-internet 22/58

 

IV - Protocolos

A implementação de Web Services é baseada em um conjunto de protocolos elinguagens padrões da Web, dentre eles podemos destacar o HyperText Transfer Protocol

(HTTP), o Simple Object Access Protocol (SOAP), a Web Service Description Language

(WSDL) e o UDDI. O formato XML é a base dos três últimos padrões.

De uma maneira geral, o protocolo SOAP define o formato que as mensagens

transportadas na rede devem ter para encaminhar requisições a serviços Web. Este protocolo

também define o formato das mensagens de resposta às requisições. Já o WSDL consiste em

uma linguagem XML para a descrição de interfaces de serviços, visando tornar essa descrição

inteligível para programas que irão interagir com esses serviços.

Nas páginas seguintes nós vamos descrever detalhadamente cada um destes protocolos

XML, SOAP, WSDL e UDDI para dar um entendimento maior sobre o funcionamento do

Web Services.

5/7/2018 Web Services - Uma Soluao Para Aplicaoes as Na Internet - slidepdf.com

http://slidepdf.com/reader/full/web-services-uma-soluao-para-aplicaoes-as-na-internet 23/58

 

23

XML – Extensible Markup Language

XML é um formato de texto muito simples e flexível derivado do SGML.

Originalmente projetado para encontrar chaves em documentos eletrônicos em larga escala,XML esta também se tornando um importante padrão para a troca de uma vasta variedade de

dados na web.

Com o advento do XML tornou-se fácil para sistemas de diferentes ambientes

trocarem informações. A universalidade do XML tornou-se uma maneira muito atrativa para

comunicação entre programas. Programadores podem usar diferentes sistemas operacionais,

linguagens de programação etc. e ter seus softwares comunicando-se com outros de uma

maneira ininterrupta. XML, XML namespaces e XML schemas são ferramentas úteis para

prover mecanismos para realizar acordos com estruturas extensas em um ambiente

distribuído, especialmente quando usados em conjunto, XML namespaces e XML schemas

serão abordados mais adiante.

No mundo em geral, sistemas de computador e bancos de dados contém dados em

formatos incompatíveis, muito tempo se tem gasto no desafio de desenvolvedores em trocar

dados entre sistemas e a Internet, portanto o objetivo do XML é a troca de dados.

Convertendo dados para XML pode-se reduzir em muito esta complexidade e criar

dados que podem ser lidos por uma variedade de diferentes tipos de sistemas.

Alguns conceitos:

•  XML foi desenvolvido para descrever dados e focar o que os dados são.

•  HTML foi desenvolvido para mostrar dados e focar em como os dados aparecem.

•  Com o XML os dados são armazenados fora do HTML.

Quando o HTML é usado para mostrar dados, o dado é armazenado dentro do HTML.

Com o XML, dados podem ser armazenados em arquivos XML separados, desta maneira

pode-se concentrar o HTML para dados de layout e visualização, e ter certeza que as

mudanças em dados essenciais não irão requerer nenhuma mudança para o HTML.

5/7/2018 Web Services - Uma Soluao Para Aplicaoes as Na Internet - slidepdf.com

http://slidepdf.com/reader/full/web-services-uma-soluao-para-aplicaoes-as-na-internet 24/58

 

24

Dados XML também podem ser armazenados dentro de páginas HTML como “ilhas

de dados” (data island), pode-se ainda concentrar em usar somente HTML unicamente para

formatar e visualizar os dados.

XML está se transformando para ser a principal linguagem para troca de informação

financeira entre empresas na Internet, muitas aplicações interessantes de B2B estão sendo

desenvolvidas.

O XML possui outras vantagens nesse aspecto:

•  Armazenamento de dados em arquivos ou bancos de dados, podendo ser recuperados mais

tarde;

•  Tornar os dados mais úteis para uma quantidade enorme de usuários, pois é independente

de hardware;

•  Pode ser usado para criar outras linguagens, XML é a mãe do WAP e WML;

Exemplo de documento XML

Documentos XML usam uma descrição própria e uma sintaxe simples:

<?xml version="1.0" encoding="ISO-8859-1"?>

<note>

<to>Tove</to>

<from>Jani</from>

<heading>Reminder</heading>

<body>Don't forget me this weekend!</body>

</note>

•  A primeira linha no documento ( declaração XML) define a versão do XML e a

codificação dos caracteres usados no documento;

•  A próxima linha descreve o elemento raiz do documento, como se fosse um título;

•  As próximas quatro linhas descrevem quatro elementos da raiz (to, from, heading, body);

•  Na última linha aparece o fechamento do elemento raiz (root).

5/7/2018 Web Services - Uma Soluao Para Aplicaoes as Na Internet - slidepdf.com

http://slidepdf.com/reader/full/web-services-uma-soluao-para-aplicaoes-as-na-internet 25/58

 

25

Um dado importante no XML é que todos os elementos possuem uma tag de abertura,

ex.: <note> e uma tag de fechamento ex.: </note>, portanto a falta de um deles é

considerada ilegal.

As tags no XML são diferentes quando expressadas em maiúsculas ou minúsculas

diferentemente do HTML, portanto deve-se tomar o cuidado em digitar as tags da mesma

forma na sua abertura e fechamento. Além disso as tags devem merecer principal atenção no

caso de sua inserção, pois apresentam erros se forem inseridas de maneira errada, ex.:

Abaixo nota-se a inserção do <b><i> e o seu respectivo fechamento </i></b> a

inserção errada desse detalhe ocasiona erros no XML, diferentemente do HTML onde é aceito

essa inversão sem problemas.

Forma aceita no XML

<b><i>This text is bold and italic</i></b>

Forma aceita no HTML

<b><i>This text is bold and italic</b></i>

Outros pontos que devem ser notados em documentos XML:

Nomes e valores devem ser citados, ou seja, devem ser mencionados no documento

com aspas para serem reconhecidos ex:

<note date="12/11/2002"> - modelo correto;

<note date=12/11/2002> - modelo incorreto.

Espaços em branco que são digitados em documentos XML não são levados em

consideração no momento da visualização.

Novas linhas no XML são sempre armazenadas como LF, ou seja, no momento da

impressão o carro da impressora deve ser voltado manualmente para a esquerda e o papel

novamente realinhado, diferentemente de aplicativos Windows que usam o CR (carriage

return – retorno do carro de impressão).

5/7/2018 Web Services - Uma Soluao Para Aplicaoes as Na Internet - slidepdf.com

http://slidepdf.com/reader/full/web-services-uma-soluao-para-aplicaoes-as-na-internet 26/58

 

26

Elementos XML (XML elements)

Elementos XML são extensíveis e tem relacionamentos, possuem simples regras de

nomes.

Analisaremos o modelo abaixo:

<note>

<to>Tove</to>

<from>Jani</from>

<body>Don't forget me this weekend!</body>

</note>

Podemos criar uma aplicação que extrai o elemento <to>, <from> e <body> desse

documento XML para produzir esse resultado:

MESSAGE

To: Tove

From: Jani

Don't forget me this weekend!

Por mais que o autor do documento acima adicione mais elementos ao documento aaplicação ainda será capaz de localizar os elementos <to>, <from> e <body> e produzir o

mesmo resultado anterior.

Elementos XML possuem relacionamentos

Elementos são relacionados como pais (parents) e filhos (children).

Imaginemos que essa seja a descrição de um livro:

Book Title: My First XML

Chapter 1: Introduction to XML

What is HTML

What is XML

Chapter 2: XML Syntax

Elements must have a closing tag

Elements must be properly nested

5/7/2018 Web Services - Uma Soluao Para Aplicaoes as Na Internet - slidepdf.com

http://slidepdf.com/reader/full/web-services-uma-soluao-para-aplicaoes-as-na-internet 27/58

 

27

Imagine que esse documento XML descreve o livro acima:

<book>

<title>My First XML</title>

<prod id="33-657" media="paper"></prod><chapter>Introduction to XML

<para>What is HTML</para>

<para>What is XML</para>

</chapter>

<chapter>XML Syntax

<para>Elements must have a closing tag</para>

<para>Elements must be properly nested</para>

</chapter>

</book>

Book é o elemento raiz (root element). Title, prod, e chapter são elementos filhos

(child element) do livro.

Book é o elemento pai (parent element) do elemento title, prod e chapter. Title, prod

and chapter são irmãos (siblings ou sister elements) porque eles tem o mesmo pai.

Elementos podem ainda ter diferentes tipos de conteúdo.

Um elemento pode ter elemento de conteúdo, conteúdo misturado, conteúdo simples,

ou conteúdo vazio. Um elemento pode também ter atributos.

No exemplo acima temos os seguintes:

•  book, tem um elemento de conteúdo, porque contem outros elementos;

•  Chapter, tem um conteúdo misturado, porque contem texto e outro elemento;

•  Para, tem conteúdo simples, porque contem somente texto.

•  Prod, tem conteúdo vazio, porque não carrega nenhuma informação.

Atributos XML

Elementos XML podem ter atributos no início da tag, sendo parecido com HTML.

Atributos são usados para prover informações adicionais sobre elementos.

5/7/2018 Web Services - Uma Soluao Para Aplicaoes as Na Internet - slidepdf.com

http://slidepdf.com/reader/full/web-services-uma-soluao-para-aplicaoes-as-na-internet 28/58

 

28

De documentos HTML podemos lembrar isso: <IMG SRC="computer.gif"> . O

atributo SRC provê informações adicionais sobre o elemento IMG.

No HTML e XML atributos provêem informações adicionais sobre elementos:<img src="computer.gif">

<a href="demo.asp">

Atributos geralmente provem informação que não são parte dos dados. No exemplo

abaixo o tipo de arquivo é irrelevante para os dados, mas importante para o software que quer

manipular o elemento.

<file type="gif">computer.gif</file>

XML embutido em HTML .

XML pode ser inserido diretamente dentro de uma página HTML, como mostrado

abaixo:

<xml id="note"><note>

<to>Tove</to>

<from>Jani</from>

<heading>Reminder</heading>

<body>Don't forget me this weekend!</body>

</note>

</xml>

ou separadamente, podem ser inserido assim:<xml id="note" src="note.xml">

</xml>

XML News

O XMLNews é uma especificação para troca de noticias e outras informações.

Permite à produtores e consumidores de notícias produzir, receber e arquivar qualquertipo de informação através de diferentes software, hardware e linguagens de programação.

5/7/2018 Web Services - Uma Soluao Para Aplicaoes as Na Internet - slidepdf.com

http://slidepdf.com/reader/full/web-services-uma-soluao-para-aplicaoes-as-na-internet 29/58

 

29

Um exemplo de documento XMLNews:

<?xml version="1.0" encoding="ISO-8859-1"?>

<nitf>

<head><title>Colombia Earthquake</title>

</head>

<body>

<body.head>

<headline>

<hl1>143 Dead in Colombia Earthquake</hl1>

</headline>

<byline>

<bytag>By Jared Kotler, Associated Press Writer</bytag>

</byline><dateline>

<location>Bogota, Colombia</location>

<story.date>Monday January 25 1999 7:28 ET</story.date>

</dateline>

</body.head>

</body>

</nitf>

XML Namespaces

Com a visibilidade futura de aplicações XML onde um único documento pode conter

elementos e atributos que são definidos para serem usados por múltiplos softwares, foram

criados os Namespaces.

Um XML Namespace é uma coleção de nomes, identificados por uma referencia URI,

que é usada em documentos XML como tipos e elementos e atributo de nomes. XML

Namespace difere dos “Namespace” convencionalmente usados em disciplinas de

computação em que a versão XML tem uma estrutura interna e não é, matematicamente

falando, um conjunto.

XML Namespaces provêem um método de evitar conflitos de elementos em

documentos XML.

Desde que nomes de elementos em XML não são fixados, muito freqüentemente um

nome irá conflitar com outro ocorrendo dois tipos diferentes de documentos usando a mesma

descrição de nomes para dois tipos diferentes de elementos.

5/7/2018 Web Services - Uma Soluao Para Aplicaoes as Na Internet - slidepdf.com

http://slidepdf.com/reader/full/web-services-uma-soluao-para-aplicaoes-as-na-internet 30/58

 

30

Este documento XML carrega informação em uma tabela:

<table>

<tr>

<td>Apples</td><td>Bananas</td>

</tr>

</table>

Este documento XML carrega informação sobre uma tabela:

<table>

<name>African Coffee Table</name>

<width>80</width>

<length>120</length>

</table>

Nos casos acima gerará conflito pois os dois documentos contém uma <table> com

o mesmo nome.

Para resolver o problema exposto acima o XML usa um prefixo, um exemplo de

documento XML usando prefixo:

<h:table>

<h:tr>

<h:td>Apples</h:td>

<h:td>Bananas</h:td>

</h:tr>

</h:table>

<f:table>

<f:name>African Coffee Table</f:name>

<f:width>80</f:width>

<f:length>120</f:length>

</f:table>

Agora os documentos não se conflitam pois usam diferentes tabelas.

Usando Namespaces

Este documento XML carrega informação em uma tabela:

5/7/2018 Web Services - Uma Soluao Para Aplicaoes as Na Internet - slidepdf.com

http://slidepdf.com/reader/full/web-services-uma-soluao-para-aplicaoes-as-na-internet 31/58

 

31

<h:table xmlns:h="http://www.w3.org/TR/html4/">

<h:tr>

<h:td>Apples</h:td>

<h:td>Bananas</h:td>

</h:tr></h:table>

Este documento XML carrega informação sobre uma peça:

<f:table xmlns:f="http://www.w3schools.com/furniture">

<f:name>African Coffee Table</f:name>

<f:width>80</f:width>

<f:length>120</f:length>

</f:table>

Ao invés de usar somente prefixos, um atributo xmlns foi adicionado na tag <table>

para dar ao prefixo um nome qualificado associado com um Namespace.

SOAP (Simple Object Access Protocol)

SOAP é um protocolo simples e leve baseado em XML que proporciona troca de

informações encima do protocolo HTTP, em suma, é um protocolo para acessar Web

Services.

A arquitetura tem sido desenhada para ser independente de qualquer modelo particular

de programa e de outras implementações específicas.

Os dois maiores objetivos do SOAP são a simplicidade e extensibilidade e esse

protocolo obedece a esses requisitos pois trafega encima do http e o http é suportado por todos

os servidores e browsers do mercado, com diferentes tecnologias e linguagens de

programação.

Bloco de estrutura SOAP

Uma mensagem SOAP é um documento habitual em XML contendo os seguintes

elementos:

5/7/2018 Web Services - Uma Soluao Para Aplicaoes as Na Internet - slidepdf.com

http://slidepdf.com/reader/full/web-services-uma-soluao-para-aplicaoes-as-na-internet 32/58

 

32

Um elemento envelope que identifica o documento XML como um SOAP.

Um elemento header opcional que contem informações de chamadas e repostas;

Um elemento de falha opcional que prove informação sobre erros que ocorrem quando

do processamento da mensagem.

Esqueleto de mensagens SOAP

Abaixo a estrutura de uma mensagem SOAP, explicaremos cada parte dessa estrutura

nos capítulos abaixo:

<?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>

Envelope SOAP

O envelope SOAP é o elemento mais importante, o elemento raiz de uma mensagem

SOAP, ele define o documento XML como uma mensagem SOAP, em suma, é o mais

importante em uma mensagem SOAP.

Notamos o uso do xmlns:soap namespace. Ele deve sempre ter o valor de:

http://www.w3.org/2001/12/soap-envelope

e este define o envelope como um envelope SOAP:

5/7/2018 Web Services - Uma Soluao Para Aplicaoes as Na Internet - slidepdf.com

http://slidepdf.com/reader/full/web-services-uma-soluao-para-aplicaoes-as-na-internet 33/58

 

33

<?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">

...Message information goes here

...

</soap:Envelope>

O xmlns:soap namespace

Uma mensagem SOAP deve sempre ter um envelope associado com

"http://www.w3.org/2001/12/soap-envelope" namespace.

Se um Namespace diferente é usado, a aplicação deve gerar um erro e descartar a

mensagem.

O Atributo encodingStyle

O atributo encodingStyle é usado para definir tipos de dados usados no documento.

Este atributo deve aparecer em qualquer elemento SOAP e ele irá aplicar o conteúdo desse

elemento para todos os elementos filhos (children elements).

Sintaxe:

soap:encodingStyle="URI"

Podemos visualizar um exemplo do encodingStyle nesse modelo:

<?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">

...

Message information goes here

...

</soap:Envelope>

5/7/2018 Web Services - Uma Soluao Para Aplicaoes as Na Internet - slidepdf.com

http://slidepdf.com/reader/full/web-services-uma-soluao-para-aplicaoes-as-na-internet 34/58

 

34

Header SOAP

O elemento Header (cabeçalho) contem informação específica da aplicação, sobre a

mensagem SOAP. Se o Header estiver presente, este deve ser o primeiro elemento child

(filho) do envelope.

OBS: Todos os elementos child do header devem ser Namespaces qualificados.

<?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>

<m:Trans

xmlns:m="http://www.w3schools.com/transaction/"

soap:mustUnderstand="1">234</m:Trans>

</soap:Header>

...

...

</soap:Envelope>

O exemplo acima contem três atributos contendo um cabeçalho com um elemento

“Trans” um atributo “mustUnderstand” com valor de “1” e 234.

SOAP define três atributos em Namespace padrão ("http://www.w3.org/2001/12/soap-

envelope"). Esses atributos definidos no cabeçalho SOAP definem como um recipiente deve

processar a mensagem SOAP.

O atributo Actor (autor)

Uma mensagem SOAP deve percorrer do remetente para o recebedor passando por

diferentes “endpoints” ao longo do caminho da mensagem. Nem todas as partes de uma

mensagem SOAP devem estar planejados para o ultimo “endpoint” da mensagem mas, ao

invés disso, devem planejar um ou mais “endpoints” no caminho da mensagem.

O atributo actor deve ser usado para endereçar o cabeçalho para um “endpoint”

particular.

5/7/2018 Web Services - Uma Soluao Para Aplicaoes as Na Internet - slidepdf.com

http://slidepdf.com/reader/full/web-services-uma-soluao-para-aplicaoes-as-na-internet 35/58

 

35

Sintaxe actor:

soap:actor="URI"

Exemplo:

<?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>

<m:Trans

xmlns:m="http://www.w3schools.com/transaction/"

soap:actor="http://www.w3schools.com/appml/">

234

</m:Trans>

</soap:Header>

...

...

</soap:Envelope>

O atributo mustUnderstand

O atributo mustUnderstand pode ser usado para indicar se um cabeçalho de entrada é

obrigatório ou opcional para o processo.

Se adicionarmos “mustUnderstand=”1” para um elemento child do cabeçalho este

indicara que o processo recebedor do cabeçalho deve reconhecer o elemento. Se o recebedor

não identificar o elemento este deve falhar quando processar o cabeçalho.

Sintaxe:

soap:mustUnderstand="0|1"

Exemplo:<?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>

<m:Trans

xmlns:m="http://www.w3schools.com/transaction/"

soap:mustUnderstand="1">

234

</m:Trans>

</soap:Header>

...

</soap:Envelope>

5/7/2018 Web Services - Uma Soluao Para Aplicaoes as Na Internet - slidepdf.com

http://slidepdf.com/reader/full/web-services-uma-soluao-para-aplicaoes-as-na-internet 36/58

 

36

SOAP Body

O SOAP Body (corpo) contem a mensagem SOAP presente, planejada para a

conclusão do “endpoint” da mensagem.

Logo os elementos child do corpo deve ser namespace-qualified (namespace

qualificado). SOAP define um elemento dentro do corpo no namespace padrão

("http://www.w3.org/2001/12/soap-envelope"). Este é o elemento SOAP Fault (falha), que é

usado para indicar mensagens de erro.

WSDL

WSDL é um formato XML para descrever serviços de rede como um conjunto de

operações como ponto final nas mensagens contendo cada documento orientado ou

informação orientada. As operações e mensagens são descritas de forma abstrata e então o

salto para um protocolo de rede concreto e formato de mensagens para definir um ponto final.

WSDL é extensível para permitir descrição do ponto final e suas mensagens não levem em

consideração de quais formatos de mensagens ou protocolos de rede são usados para

comunicação.

Como protocolos de comunicação e formatos de mensagens são padronizadas na

comunidade web, isso se torna crescente a possibilidade e importante ser capaz de descrever

as comunicações em alguma forma de estrutura. Esses endereços WSDL necessitam pela

definição de uma gramática XML para descrever serviços de rede como coleções de pontos

finais de comunicações capazes de trocar mensagens. As definições de serviços WSDL

provêem documentação para sistemas distribuídos e servem como um recipiente para detalhesde automação envolvidos em aplicações de comunicação.

Um serviço WSDL define documentos como coleções de pontos finais de rede, ou

portas. No WSDL, a definição abstrata de pontos finais e mensagens são separadas de suas

organizações de redes concretas ou formatos de dados de comunicação. Isto permite a

reutilização de definições abstratas: mensagens, que são descrições abstratas dos dados sendo

trocados, e tipos de portas que são coleções abstratas de operações. O protocolo concreto e

especificações de dados concretos para uma tipo de porta em particular constituídas comocomunicações reutilizáveis. Uma porta é definida associando um endereço de rede como

5/7/2018 Web Services - Uma Soluao Para Aplicaoes as Na Internet - slidepdf.com

http://slidepdf.com/reader/full/web-services-uma-soluao-para-aplicaoes-as-na-internet 37/58

 

37

ligação reutilizável, e uma coleção de portas definindo um serviço. Daqui, um documento

WSDL usa os seguintes elementos em sua definição dos serviços de rede:

Estrutura WSDL

Types (tipos) – Um recipiente para definição de tipos de dados usando alguns tipos de

sistemas. WSDL usa sintaxe XML para definir tipos de dados.

Message (mensagens) – Um resumo de definições de tipos de dados sendo trafegados,

podem conter uma ou mais partes, esses partes podem ser comparadas à parâmetros de uma

função.

portType (Tipo de porta) – Um resumo da configuração das operações suportadas por

um ou mais endpoints.

Binding (Ligação): Define o formato da mensagem e detalhes de protocolos para cada

porta.

Estrutura do WSDL:

<definitions>

<types>

definition of types........

</types>

<message>

definition of a message....

</message>

<portType>

definition of a port.......</portType>

<binding>

definition of a binding....

</binding>

</definitions>

5/7/2018 Web Services - Uma Soluao Para Aplicaoes as Na Internet - slidepdf.com

http://slidepdf.com/reader/full/web-services-uma-soluao-para-aplicaoes-as-na-internet 38/58

 

38

WSDL ports

WSDL Ports é o elemento mais importante no WSDL, ele define um WS, suas

operações desempenhadas e mensagens que estão envolvidas.

Operation Types (Tipos de operação)

One-Way – A operação pode receber uma mensagem mas não irá retornar uma

resposta.

Request-responde – A operação pode receber uma requisição e retornar uma resposta.

Solicit-response – A operação pode enviar uma requisição e esperar por uma resposta

Notification – A operação pode enviar uma mensagem mas não ir

Bindings SOAP

O elemento Binding tem dois atributos, name e type, o atributo name define o nome

da ligação, e o type indica o ponto para a ligação da porta, nesse caso o “glossary terms

port”.

O elemento soap:binding tem dois atributos, style e transport, style

pode ser o “rpc” ou “documento”, o transport define o protocolo SOAP a ser usado, no

caso o http.

UDDI – Universal Description, Discovery and Integration.

Quando se constrói Web services, esses serviços necessitam ser acessados em algum

lugar na Web por uma aplicação-cliente. Uma forma de se acessar um Web service é fazer

com que a aplicação-cliente conheça a URI do serviço, desta maneira caracterizando o modo

estático de se localizar e acessar um serviço. Entretanto, quando a aplicação-cliente não

detém, a priori, a localização de um Web service, esse, pode ser descoberto antes de ser

acessado caracterizando o modo dinâmico de se descobrir a localização de um serviço.

UDDI é uma especificação técnica para descrever (describing), descobrir

(discovering) e integrar Web services. Assim, é portanto, uma parte crítica da pilha de

5/7/2018 Web Services - Uma Soluao Para Aplicaoes as Na Internet - slidepdf.com

http://slidepdf.com/reader/full/web-services-uma-soluao-para-aplicaoes-as-na-internet 39/58

 

39

protocolos Web services, habilitando usuários dos serviços a publicarem e descobrirem estes

serviços.

Discovery é o processo de localizar Web services através de registries. Registries deWeb services são repositórios contendo documentos que descrevem dados de negócios.

Registries, também, proporcionam características tais como, capacidade de busca e acesso

programático para aplicações remotas. Usando um registry, uma organização que deseja

utilizar, por exemplo, um serviço para processar pagamentos de tickets de alimentação, pode

localizar todos os serviços disponíveis publicamente, que proporcionam a necessária

funcionalidade. A organização pode comparar serviços e então decidir qual serviço melhor se

ajusta às necessidades da organização. Discovery pode ser caracterizado em Discovery direto

ou Discovery indireto.

Discovery direto

É o processo de obter dados a partir de um registry mantido por um provedor de

serviço. Dados obtidos por Discovery direto são mais precisos e, portanto, confiáveis, visto

que a organização que provê a informação também opera o serviço na Web.

Discovery indireto

Com Discovery indireto, uma organização obtém dados através de uma terceiro

registry, cujos dados podem não ser precisos, porque provedores de serviço poderiam não

atualizar as informações nesse registry tão freqüentemente. Quando realizando Discovery

indireto, organizações devem colocar a seguinte questão: quão freqüente, terceiros registries

interagem com provedores de serviço para garantir que os dados são ainda precisos? Embora

discovery indireto tenha seus “drawbacks”, ele ainda permite avaliar serviços de vários

provedores antes do compromisso para usar um serviço particular.

Em seu núcleo, UDDI consiste de duas partes: API UDDI e UDDI Business Registry.

API UDDI

É uma especificação técnica para construir um diretório distribuído de negócios

(business) e Web services. A informação UDDI é armazenada dentro de um formato

5/7/2018 Web Services - Uma Soluao Para Aplicaoes as Na Internet - slidepdf.com

http://slidepdf.com/reader/full/web-services-uma-soluao-para-aplicaoes-as-na-internet 40/58

 

40

específico XML, definido por WSDL e XML Schema. A especificação inclui detalhes de

uma API própria para buscar dados existentes ou publicar novos dados.

UDDI Business Registry

Também conhecido como “UDDI cloud services” é uma implementação operacional

completa da especificação UDDI. Tal parte habilita qualquer um a buscar dados UDDI

existentes, e também, a qualquer empresa registrar-se a si própria e seus respectivos serviços.

A informação capturada no contexto UDDI são classificadas em três categorias

principais:

Páginas Brancas (White Pages)

Essas incluem informações sobre uma empresa específica, como por exemplo, nome

de um negócio, descrição do negócio, informação de contato, endereço, números de telefone,

fax, ou mesmo incluir identificadores de negócios (business identifiers), no formato de

classificações Dun & Bradstreet’s D-U-N-S® (Data Universal Numbering System), que são

números de nove dígitos atribuídos a negócios. A especificação UDDI versão 2.0 oferece

suporte para identificadores específicos de indústrias, tal como o sistema do Standard

Industrial Classification (SIC), o qual atribui identificadores numéricos únicos a indústrias.

Por exemplo, 7371 representa Serviços de Programação de Computadores e 2621 representa

Paper Mills.

Páginas Amarelas (Yellow Pages)

Essas incluem dados de classificação geral para qualquer empresa ou serviço

oferecido. Por exemplo, esses dados podem incluir a indústria, o produto, ou códigos

geográficos baseados sobre taxionomias padronizadas.

5/7/2018 Web Services - Uma Soluao Para Aplicaoes as Na Internet - slidepdf.com

http://slidepdf.com/reader/full/web-services-uma-soluao-para-aplicaoes-as-na-internet 41/58

 

41

Páginas Verdes (Green Pages)

Esta categoria contém informação técnica sobre um serviço na Web (Web service).

Geralmente, essa informação inclui um apontador (ponteiro) para uma especificação externa eum endereço para invocar o serviço. UDDI não é restrito a descobrir serviços baseados em

SOAP. Ao contrário, pode ser usado também, para descrever qualquer serviço, desde uma

única página Web ou endereços de e-mail, até serviços CORBA, Java RMI, ou mesmo,

serviços EJB.

Arquitetura UDDI

A arquitetura técnica de UDDI consiste de três partes: Um Modelo de Informação

UDDI, o qual baseia-se num XML Schema para descrever negócios e Web Services, uma API

UDDI baseada em SOAP para publicação e busca de informação UDDI e no UDDI Business

Registry (UBR) os quais são os sites-operadores que provêem implementações da

especificação UDDI e sincronizam todos os dados sobre uma “scheduled basis”. Exemplos de

UBR’s providos por grandes corporações, são Microsoft, IBM, HP, SAP e NTT

Communications do Japão

5/7/2018 Web Services - Uma Soluao Para Aplicaoes as Na Internet - slidepdf.com

http://slidepdf.com/reader/full/web-services-uma-soluao-para-aplicaoes-as-na-internet 42/58

 

42

Sites-Operadores

Um site-operador é uma organização que hospeda uma implementação do UDDI

Business Registry (UBR). Uma empresa usuária de UDDI necessita registrar-se somente emum site-operador, conhecido como custodian. O princípio básico do UDDI para um UBR é

aquele de que uma empresa “registra uma vez e publica em qualquer lugar”. Princípio que

afirma, que a informação contida em um UBR custodian é replicada sobre os outros UBR’s.

Replicação é o processo de atualizar registros, de modo que todas as instâncias daqueles

registros originais sejam idênticas. Assim, uma empresa registra os seus dados em um site-

operador (custodian) e esses aparecem nos outros sites-operadores. Até a versão UDDI 2.0,

uma empresa podia atualizar sua informação somente através de seu site-operador custodian.

Isto porque, a especificação da API versão 2.0 de UDDI não provia um protocolo para

reconciliar diferentes versões de UDDI. Tal limitação requer interação com somente um site-

operador, proibindo, assim, usuários de entrarem em múltiplas versões de modelos de

informação em diferentes sites-operadores.

Os UDDI Business Registries (UBR’s) proporcionam um diretório de sistes-

operadores UDDI, fisicamente distribuído, mas logicamente centralizado. Isto significa que

dados submetidos a um site-operador serão automaticamente replicados através de todos osoutros sites-operadores. Tal replicação não ocorre instantaneamente, mas os sites-operadores

se sincronizam para atualização de registros, em intervalos de tempo diariamente.

É também possível estabelecer registros UDDI privados. Por exemplo, uma grande

empresa pode estabelecer seu próprio sistema UDDI privado, para registrar todos os seus

serviços Web internos à empresa. Quando esses serviços não são automaticamente

sincronizados com os sites-operadores UDDI, eles não são considerados partes do conjunto de

UDDI Business Registries (os cloud services).

Registrars

Empresas usuárias de UDDI podem também publicar informação em um UBR, através

de uma organização chamada registrar – uma outra empresa que auxilia na criação de

informação de negócios e descrições de Web services, a serem armazenados nos UBR’s. Uma

empresa registrar não é um site-operador, porque essas empresas não hospedam

implementações de UDDI Business Registry.

5/7/2018 Web Services - Uma Soluao Para Aplicaoes as Na Internet - slidepdf.com

http://slidepdf.com/reader/full/web-services-uma-soluao-para-aplicaoes-as-na-internet 43/58

 

V - Segurança

Quando planejamos aplicar os Web Services não apenas nos conceitos e em aplicaçõesdemo, mas efetivamente no mundo real, a preocupação com segurança desperta especial

atenção. Pela grande diversidade de sistemas que compõem atualmente os vários ambientes de

TI, é necessário que haja uma abordagem modular à questão de segurança em Web Services.

Na medida em que cresce o uso de Web Services entre empresas que adotam diferentes

modelos de segurança em sua colaboração, as especificações de segurança e confiabilidade

propostas devem oferecer um modelo flexível, que permita a essas empresas se

interconectarem de forma confiável.

Como sabemos, Web services utilizam o protocolo SOAP em sua comunicação, o qual

é baseado em XML, ou seja, um arquivo texto perfeitamente legível. Para tornar um WEB

service seguro você deve encriptar a comunicação e existem duas maneiras de se fazer isso:

garantir a segurança ao nível de transporte e ao nível de XML.

Segurança ao nível de Transporte

SSL

Segurança ao nível de transporte significa proteger o protocolo de rede que o Web

service utiliza para se comunicar. O Secure Sockets Layer (SSL) é um protocolo padrão para

encriptar comunicações sobre TCP/IP. Neste modelo, um cliente abre um socket seguro para

um Web service e então o utiliza para trocar mensagens SOAP via HTTPS.

5/7/2018 Web Services - Uma Soluao Para Aplicaoes as Na Internet - slidepdf.com

http://slidepdf.com/reader/full/web-services-uma-soluao-para-aplicaoes-as-na-internet 44/58

 

44

A implementação de SSL garante segurança encriptando todo o tráfego de rede sobre

o socket. Utilizando-se SSL pode-se também autenticar um Web service para um cliente

utilizando-se um Certificado Digital através da Infra-estrutura de Chaves Públicas (PKI).

PKI

Garantir segurança na Internet requer mecanismos seguros para a troca de

informações, mas que além disso sejam modulares e permitam garantir a segurança em

sistemas distribuídos. A Infra-estrutura de Chaves Públicas (PKI) garante a segurança de

comércio eletrônico e de comunicações na Internet através dos seguintes elementos:

Autenticação - verificar a identidade dos usuários e das máquinas torna-se crucial

quando uma organização abre suas portas para a Internet. Mecanismos de Autenticação

robustos, como o PKI, verificam a identidade sem permitir a transmissão ou o armazenamento

de senhas reutilizáveis. Eles certificam-se de que as pessoas ou máquinas sejam as entidades

que dizem ser. Esta tarefa é geralmente feita por um terceiro envolvido no processo, o qual

pode ser uma empresa de autenticação confiável ou um serviço de certificação que utiliza

criptografia convencional. O uso adequado de PKI torna virtualmente impossível que uma

pessoa não autorizada acesse o sistema.

Encriptação - Encriptação e algoritmos de integridade são utilizados para proteger

comunicações e garantir a privacidade durante o envio de dados de um computador a outro.

Estes processos garantem que os dados mantenham-se confidenciais, que não sejam

modificados e que a perda de pacotes possam ser identificadas.

Não repúdio - Não repúdio significa que os remetentes de e-mails ou transaçõesassinadas digitalmente não podem alegar que não a transmitiram. Assinaturas digitais

utilizando PKI podem garantir com segurança que a pessoa que assina a transmissão

eletrônica é realmente aquela pessoa, uma vez que ninguém mais pode criar aquela assinatura

digital. Uma assinatura digital PKI prova que um determinado usuário realizou certas

operações no sistema.

Para a criptografia de chaves públicas, entidades que desejem se comunicar de uma

maneira segura devem utilizar algumas credenciais seguras. As credenciais seguras consistem

em Chaves Públicas e Privadas. Esta forma de criptografia usa uma chave privada secreta e

5/7/2018 Web Services - Uma Soluao Para Aplicaoes as Na Internet - slidepdf.com

http://slidepdf.com/reader/full/web-services-uma-soluao-para-aplicaoes-as-na-internet 45/58

 

45

uma chave pública relacionada matematicamente à chave privada. Somente a chave pública

pode ser utilizada para encriptar a informação, e somente a chave privada correspondente

pode ser usada para decriptá-la. Somente o proprietário do par de chaves conhece a chave

privada, enquanto a chave pública pode ser amplamente distribuída e mantém-se associada ao

proprietário. A mensagem encriptada com a chave pública pode ser somente decriptada pelo

proprietário, o qual conhece a chave privada associada. Estas chaves também são utilizadas

em assinaturas digitais para prevenir que um indivíduo se faça passar por outro ou prevenir

repúdio de mensagens válidas.

Certificados Digitais - Certificados são identidades digitais atribuídas por uma

terceira entidade que identifica os usuários e as máquinas. Os certificados são atribuídos

quando a entidade certificadora recebe e valida as informações as informações solicitadas. Os

certificados podem então ser seguramente armazenados em carteiras ou diretórios e utilizados

para fornecer a validação de identidade a qualquer entidade na Internet.

Entidade Certificadora - a Entidade Certificadora é um terceiro agente envolvido

que atua como um provedor independente e confiável de certificados digitais. O uso de um

par de chaves criptografadas para criar um canal de comunicação seguro, garante a

privacidade da mensagem e proporciona a possibilidade de validação do remetente.

A ampla distribuição da chave pública não afeta a sua segurança pois a chave privada

nunca é compartilhada. A chave pública de um indivíduo é publicada por um Entidade

Certificadora em um certificado atribuído ao usuário. As entidades que desejarem trocar

informações seguras podem codificar a informação com a chave pública da entidade

destinatária. Uma entidade que receba uma comunicação codificada por este método pode

usar sua própria chave privada para decodificar a mensagem. Se a mensagem original não for

decodificada usando a chave adequada o resultado da decodificação será ilegível.

IPSec

Descrevendo ainda a segurança ao nível de transporte, o projeto IPSec representa um

esforço desenvolvido pelo Working Group IPSec da IETF para desenvolver uma arquitetura

de segurança para o protocolo IP, integrando mecanismos de autenticação, gestão e

distribuição de chaves que podem ser usados com qualquer das versões do protocolo IP.

5/7/2018 Web Services - Uma Soluao Para Aplicaoes as Na Internet - slidepdf.com

http://slidepdf.com/reader/full/web-services-uma-soluao-para-aplicaoes-as-na-internet 46/58

 

46

Através dos seus componentes, a IPSec usa este conceito para permitir a implementação de

redes virtuais privadas e seguras através de redes públicas tais como a Internet.

O IPSec utiliza como mecanismos de autenticação dois cabeçalhos de extensãoespecíficos do protocolo IPv6: o cabeçalho de Autenticação (  Authentication Header ) e o

cabeçalho de encapsulamento de dados de segurança (  Encapsulating Security Payload 

 Header ). Além destes dois cabeçalhos, o IPSec define também o conceito de associação de

segurança, conjunto de diretivas que permite negociar algoritmos de encriptação a serem

utilizados.

O IPSec integra gestão manual de chaves. A gestão é de responsabilidade de

protocolos criados para este fim. Os componentes da IPSec são, o Cabeçalho de Autenticação(AH), o Cabeçalho de Encapsulamento de Dados de Segurança (ESP) e os Mecanismos de

Gestão de Chaves.

Cabeçalho de Autenticação - O cabeçalho de autenticação representa um cabeçalho

de extensão do protocolo IPv6 e foi criado para validar a identidade de entidades que estão a

comunicar: identifica o emissor e destino corretos, podendo ser usado para verificar se o

emissor que afirma ter enviado os dados é exatamente quem afirma ser e foi desenhado de

modo a providenciar mecanismos de autenticação aos datagramas IP.

Na medida em que alguns dos campos do datagrama IP são alterados durante a

transmissão e dado que o cabeçalho de autenticação é adicionado na fonte do datagrama, este

cabeçalho por si só não fornece proteção contra ataques de análise de tráfego ou

confidencialidade, sendo para tal usado normalmente em conjunto com o cabeçalho de

encapsulamento de dados.

Cabeçalho de Encapsulamento de Dados de Segurança - O cabeçalho de

encapsulamento de dados de segurança (ESP) é um cabeçalho de extensão pertencente ao

protocolo IPv6 que fornece integridade e confidencialidade aos datagramas IP através da cifra

dos dados contidos no datagrama. A utilização do ESP pode ser efetuada de dois modos:

Modo de Transporte (transport-mode) - Providencia proteção principalmente no

respeitante aos protocolos da camada superior. Este modo encripta informação do protocolo

da camada de transporte, adicionando-lhe de seguida um novo cabeçalho IP não-encriptado,

pelo que se torna vantajoso em redes relativamente pequenas, nas quais o(s) servidor(es) e nó

implementam o IPSec.

5/7/2018 Web Services - Uma Soluao Para Aplicaoes as Na Internet - slidepdf.com

http://slidepdf.com/reader/full/web-services-uma-soluao-para-aplicaoes-as-na-internet 47/58

 

47

Modo de Túnel (tunnel-mode) - Providencia proteção ao pacote IP. Para tal, após a

adição dos campos ESP ao pacote IP, todo o pacote é tratado como o módulo de dados de um

novo pacote IP. Assim, pode ser usado para enviar dados encriptados através de um túnel, o

que permite enviar dados independentemente da infra-estrutura utilizada. Um exemplo é o

envio de pacotes IP através de canais virtuais criados numa rede IP pública, como a Internet.

Através deste modo, pode ser fornecida segurança a um grupo de nós que não implementem o

IPSec.

Mecanismos de Gestão de Chaves - Além dos mecanismos de autenticação e validação da

informação a IPSec necessita de um mecanismo eficiente de gestão de chaves. A gestão de

chaves diz respeito à criação, eliminação e alteração das chaves. Embora o IPSec não integreum mecanismo de gestão de chaves, a IETF definiu como norma de gestão o protocolo

híbrido ISAKMP/Oakley também denominado IKE,  Internet Key Exchange, que se encontra

baseado nos documentos:

•  ISAKMP -   Internet Security Association and Key Management Protocol.

Protocolo que descreve uma infra-estrutura para a gestão de associações de segurança;

•  Oakley - protocolo que define material de chaves para cifra, hashing eautenticação e é compatível com a gestão de associações de segurança ISAKMP;

•    Internet Domain Of Interpretation - define parâmetros ISAKMP para as

associações de segurança IPSec no domínio Internet;

•  Resolução ISAKMP/Oakley - define o perfil do protocolo híbrido

ISAKMP/Oakley, escolhido como norma de gestão de chaves criptográficas pela

Internet Engineering Task Force;

•  IKE - Internet Key Exchange.

Segurança ao nível de XML

Por sua vez, segurança ao nível de XML envolve a encriptação e decriptação de

documentos XML. O World Wide Web Consortium (W3C), o qual mantém o padrão XML,tem criado grupos de trabalhos para definir padrões para segurança em XML, incluindo

assinaturas digitais, encriptação e gerenciamento de chaves para XML.

5/7/2018 Web Services - Uma Soluao Para Aplicaoes as Na Internet - slidepdf.com

http://slidepdf.com/reader/full/web-services-uma-soluao-para-aplicaoes-as-na-internet 48/58

 

48

XKMS (XML Key Management Services)

Esta especificação estabelece um formato de documento em XML que permite que a

autenticação de chaves e gerenciamento de certificados sejam feitos em aplicações Web. AXKMS permite um nível mais profundo de interoperabilidade entre sistemas de PKI, ao

mesmo tempo em que permite uma integração mais fácil entre as aplicações da empresa e a

infra-estrutura de chaves publicas corporativa.

WS-Security

Em abril de 2002, a Microsoft Corporation, a IBM Corporation e a VeriSign Inc. seuniram e publicaram um conjunto de novas especificações de segurança denominadas WS-

Security, com o objetivo de que as empresas pudessem criar e construir aplicações de Web

Services com ampla interoperabilidade.

As especificações do WS-Security, propostas pela IBM e Microsoft, são fundamentais

para a concretização de um planejamento amplo de recursos que possam atender à crescente

necessidade de oferecer suporte mais seguro para construção de Web services. O documento

"A Segurança no mundo dos Web services", de autoria da Microsoft e da IBM, explica as

novas especificações de segurança para Web Services que essas empresas pretendem

desenvolver em conjunto com alguns de seus principais clientes, parceiros de mercado e

entidades responsáveis pela padronização.

O WS-Security suporta, integra e unifica vários modelos, mecanismos e tecnologias de

segurança em uso no mercado, permitindo que vários sistemas possam interoperar em

plataformas e linguagens neutras.

As novas especificações de segurança definem um conjunto de padrões para extensões

SOAP (Simple Object Access Protocol) ou para cabeçalhos de mensagens, utilizados para

oferecer maior integridade e confidencialidade às aplicações de Web Services. O SOAP é um

protocolo baseado na linguagem XML, com acesso a diferentes plataformas ou linguagens. O

WS-Security oferece os mecanismos-padrão de segurança necessários para realizar o

intercâmbio seguro de mensagens certificadas em um ambiente de Web Services.

Além da divulgação das especificações WS-Security, a IBM e a Microsoft anunciaram

também a publicação do projeto "A Segurança no mundo dos Web Services" ("Security in a

5/7/2018 Web Services - Uma Soluao Para Aplicaoes as Na Internet - slidepdf.com

http://slidepdf.com/reader/full/web-services-uma-soluao-para-aplicaoes-as-na-internet 49/58

 

49

Web Services World"). Esse documento define alguns recursos adicionais de segurança de

Web Services que se enquadram no modelo estabelecido pelas especificações WS-Security,

entre eles:

WS-Policy, WS-Trust e WS-Privacy - O WS-Policy define como os recursos e

restrições das normas de segurança poderão ser expressos; o WS-Trust irá descrever um

modelo para que se obtenha um relacionamento de confiança, tanto direto, quanto por meio de

agentes (incluindo terceiros e intermediários); o WS-Privacy determinará de que forma os

Web Services serão adotados e implementados.

WS-Secure Conversation, WS-Federation e WS-Authorization - O WS-Secure

Conversation explica como autenticar e gerenciar a troca de mensagens, incluindoespecificações para o contexto de segurança desse intercâmbio e a derivação de chaves de

sessão; o WS-Federation gerencia os vários tipos de relacionamento em ambientes

heterogêneos associados, incluindo o suporte à identidade dessas partes associadas; a WS-

Authorization define como os Web services administrarão os dados e as normas de

autorização.

5/7/2018 Web Services - Uma Soluao Para Aplicaoes as Na Internet - slidepdf.com

http://slidepdf.com/reader/full/web-services-uma-soluao-para-aplicaoes-as-na-internet 50/58

 

VI - Aplicação de WS em B2B

Nos últimos anos diversos padrões foram propostos para a implementação do conceitode sistemas distribuídos. Um modelo muito popular tem sido o de separação de uma aplicação

em camadas, apresentação, negócio e dados. Este modelo, usado à exaustão na Internet, tem

por base uma infinidade de protocolos, dos quais DCOM e CORBA são os mais conhecidos.

Embora estes protocolos sejam muito diferentes entre si, seus problemas são

basicamente os mesmos: complexidade de implementação e, principalmente, implantação.

Sistemas escritos em diferentes linguagens, e não raro em plataformas distintas, sofrem ainda

de um mal bem mais grave, a incompatibilidade entre os tipos de dados, além da necessidade

de forte envolvimento das equipes técnicas de ambos os lados no processo de integração.

Estas têm sido as principais causas da baixa integração entre os sistemas de clientes e

fornecedores mesmo com toda a facilidade de infra-estrutura de comunicação existente hoje

em dia.

Com a facilidade proporcionada por esta tecnologia para a integração entre sistemas,

adotar o modelo de computação distribuída através de Web Services pode ser um enorme

diferencial competitivo em um futuro próximo.

Para as empresas, os Web Services significam agilidade nos processos e eficiência na

comunicação entre cadeias de produção ou logística. Toda e qualquer comunicação passa a

ser dinâmica e, principalmente, segura, pois não prevê intervenção humana. É possível

formatar regras de negócios e criar fluxos de informações específicas, entre outros recursos

que otimizam as relações entre parceiros corporativos.

Para os usuários é uma garantia de qualidade, agilidade e baixo custo. Se um

consumidor entra em uma loja virtual para comprar um determinado produto, em vez de

5/7/2018 Web Services - Uma Soluao Para Aplicaoes as Na Internet - slidepdf.com

http://slidepdf.com/reader/full/web-services-uma-soluao-para-aplicaoes-as-na-internet 51/58

 

51

oferecer o que tem em estoque, o site pode pesquisar nos sistemas de seus fornecedores quem

tem o produto, por que preço e em qual prazo de entrega. Mediante estes dados, exibe para o

consumidor a melhor oferta. Do ponto de vista da loja, além de melhorar o serviço, ocorre

uma redução drástica nos estoques e, consequentemente, no capital de giro demandado.

Abaixo, temos uma figura que ilustra o ciclo da aplicação mostrado a interação entre

os diversos agentes envolvidos na operação:

1.  cliente solicita um serviço ao Servidor Web através da Internet ou Intranet.

2.  Servidor Web entra em ação, acessando a sua base de dados local para obter parte das

informações a serem devolvidas ao Browser.

3.  A aplicação Web faz acesso a um serviço Web Service, que é executado em um servidor

de plataforma desconhecida. Neste momento o contexto da aplicação Inclui o Cliente

(browser), o Servidor Web e o servidor do Web Service.

4.  aplicativo Web Service faz acesso à sua base de dados local para obter a informação

solicitada.

5.  Web Service devolve a informação ao aplicativo servidor Web solicitante

6. 

Servidor Web mescla as informações obtidas localmente (2), com as informações obtidasdo Web Service (5), retornado-os ao Browser solicitante.

5/7/2018 Web Services - Uma Soluao Para Aplicaoes as Na Internet - slidepdf.com

http://slidepdf.com/reader/full/web-services-uma-soluao-para-aplicaoes-as-na-internet 52/58

 

52

Vantagens e Desvantagens do WS

A utilização da Internet como infra-estrutura de comunicação para sistemas

distribuídos tem despertado um interesse cada vez maior de pesquisadores e empresas. Poréma insegurança da Internet leva a implementações de políticas de segurança que comprometem

a funcionalidade dos sistemas distribuídos.

A adoção de middlewares baseados em protocolos de comunicação específicos tem

tido grande sucesso em redes locais e corporativas onde restrições de segurança são

planejadas considerando a existência de middlewares nas redes. Entretanto, na Internet

necessitamos de alterações específicas em Firewalls, o que nem sempre é possível.

Por estes problemas, arquiteturas como CORBA não tem conseguido uma utilização

massiva na Internet. Para contornar estas restrições, devemos procurar uma alternativa

compatível com os serviços existentes atualmente e aproveitar todo o suporte existente para

estes na Internet. No caso específico de CORBA, protocolos para tunelamento de IIOP em

HTTP foram desenvolvidos por empresas. Entretanto, estes protocolos não seguem nenhum

padrão, o que pode causar problemas de interoperabilidade entre diversas implementações de

ORBs.

Um Web Service tem por objetivo o fornecimento de um serviço ou funcionalidade,

que pode ser consumido por uma aplicação ou ainda por outro Web Service. Esse serviço

pode ter um retorno simples como a validação de um CPF ou uma informação mais detalhada

como o nome da Cidade, do Estado e da Rua a qual se refere um determinado CEP. Além

disso, a arquitetura dos Web Services é independente de plataforma, o que garante uma maior

portabilidade.

Para que isso seja viável, é necessário prover mecanismos padrão de definição,

transporte, localização e publicação desses serviços e ainda que esses mecanismos sejam

abertos, livres do pagamento de patentes ou royalties e que estejam presentes nas plataformas

que se desejam integrar.

É aí que reside o grande diferencial dos Web Services, pois uma vez que foram

concebidos com o enfoque de integração e oferta de serviços pela Web, eles se utilizam de

protocolos padrão amplamente difundidos (SOAP, HTTP, WSDL), um formato padrão de

troca de informações (XML) e um diretório de registro e localização (UDDI). Esses fatores

então fornecem os pré-requisitos para a sua larga aceitação, em contraste com soluções como

5/7/2018 Web Services - Uma Soluao Para Aplicaoes as Na Internet - slidepdf.com

http://slidepdf.com/reader/full/web-services-uma-soluao-para-aplicaoes-as-na-internet 53/58

 

53

CORBA ou COM+ que estão ligadas a um protocolo adicional específico que precisa ser

conhecido pelas camadas que se comunicam.

Um outro fator estratégico de aceitação é a convergência de grandes fornecedores desoftware tais como IBM, Microsoft, Hewlett-Packard e SUN em relação a padrões de

definição dessa arquitetura, embora cada uma dessas organizações tenha uma implementação

de Web Services ligeiramente diferente das outras.

É importante perceber que os objetos distribuídos que seguem o padrão CORBA ou

J2EE podem continuar sendo uma escolha mais acertada se considerado seu uso dentro do

ambiente corporativo de uma empresa. Objetos distribuídos são projetados para troca de

objetos em formato binário, de tipos específicos em um processo síncrono de troca demensagens. Esse fato, aliado à dependência de plataforma, possibilita um alto desempenho e

um baixo acoplamento dos objetos distribuídos, tendo sido estes usados com sucesso em

muitas soluções de sistemas. Já os Web Services são mais adequados para ambientes de

distribuição de escopo mais amplo. Por exemplo, podem ser usados para troca de documentos

entre parceiros de negócio (muitas vezes de forma assíncrona), uma vez que se utilizam de

XML e HTTP, permitindo ultrapassar a barreira dos Firewalls, sendo independente de

plataforma e facilitando assim a comunicação e a troca de informações.

Os Web Services, por outro lado, provavelmente não apresentarão um alto

desempenho como componentes de sistemas voltados para dentro da empresa, devido ao

tamanho e à sobrecarga necessária para o tratamento dos documentos XML, enquanto que os

objetos distribuídos são mais adequados para a construção de sistemas de alto desempenho

com uma arquitetura bem definida.

Outra desvantagem do uso dos Web Services atualmente é o fato de a tecnologia serainda muito recente, estar pouco difundida e ainda estar sendo padronizada em muitos

aspectos pelo W3C. Assim, ainda há problemas quanto aos aspectos de localização dos

serviços, tratamento de transação e segurança. Esses aspectos, no entanto, estão sendo

estudados e existe um grande interesse por parte dos grandes fornecedores de software de

resolvê-los, sendo ao que tudo indica uma questão de tempo e não de rumo. A questão da

segurança, por exemplo já se encontra melhorada com a versão 3.0 do UDDI.

O futuro, cada vez mais próximo, como deixam perceber os investimentos dosfornecedores, está alinhado com os Web Services.

5/7/2018 Web Services - Uma Soluao Para Aplicaoes as Na Internet - slidepdf.com

http://slidepdf.com/reader/full/web-services-uma-soluao-para-aplicaoes-as-na-internet 54/58

 

VII - Como o Mercado apoia o padrão

A tecnologia de Web Services tem sido focada em promover a colaboração B2B via

processos de negócios integrados. Mas o real benefício dos Web Services pode ser liberado na

tecnologia de BI (Business Intelligence) e não no processamento de transação. Companhias

estratégicas que desenvolvem aplicativos de negócios assim como Oracle, SAP, PeopleSoft,

Siebel Systems entre outras, estão construindo frameworks de Web Services nos seus

produtos podendo com isto estimular a demanda de BI em rede, através da mudança de

cultura do relacionamento corporativo no comércio colaborativo.

Observe como as principais empresas e organizações estão se posicionando no

mercado em relação ao desenvolvimento e fortalecimento do padrão.

Microsoft

A Microsoft está promovendo .NET como iniciativa de Web Service, que requer o usode software baseado em Windows. Além disso, a Microsoft tem planos de transformar

programadores fluentes no Windows em projetistas Web Services, com a liberação de um

conjunto de ferramentas de desenvolvimento, Framework .NET.

Sun Microsystems

A Sun Microsystems, de outro lado, está liderando uma estratégia de Web Services

orientada em Java, suportado por mais 30 outros vendedores.

5/7/2018 Web Services - Uma Soluao Para Aplicaoes as Na Internet - slidepdf.com

http://slidepdf.com/reader/full/web-services-uma-soluao-para-aplicaoes-as-na-internet 55/58

 

55

Oracle

A Oracle e seu produto Oracle9i Application Server release 2 tem suporte a Web

Services padrões (SOAP, WSDL, UDDI) e também tem compatibilidade com a plataformaMicrosoft .NET.

META Group

A previsão do META Group para Web Services é que os padrões inicialmente

desenvolvidos para propiciar a integração e interoperabilidade (XML, WDSL, UDDI, etc.)

chegarão ao biênio 2005/2006 com o status de arquitetura orientada a novos serviços,desbancando o "mito" orientados a componentes como J2EE, CORBA e COM+. Segundo o

META Group até 2004, novas aplicações corporativas surgirão de componentes baseados ou

integrados às tecnologias Java 2 Enterprise Edition (J2EE) e a Microsoft .Net, e que os

fornecedores destas soluções devem se diferenciar com a oferta de valor agregado, como

Serviços Web e de desenvolvimento de produtos e/ou ferramentas específicas.

OASIS

O OASIS (Organization for the Advancement for Structured Information Standards) é

uma organização criada para estabelecer padrões para Web Services. É formada por um

Comitê Técnico criado para desenvolver um Modelo de Componentes para Serviços em Web

(WSCM). Este comitê tem membros como Epicentric Inc., Hewlett-Packard, IBM,

Macromedia Inc., entre outros. Dentro do Comitê Técnico WSCM existe o grupo de trabalho

"Working Group Web Services User Interface" (WSUI) que submeteu as primeiras

especificações ao OASIS para considerações do WSCM. O comitê tem duas grandes metas:

habilitar negócios para distribuir aplicações na Web através de múltiplos canais de revenda e

habilitar novos serviços ou aplicações a serem criados ou liberar as aplicações existentes

através da Web. Isto deve permitir que as companhias possam transferir Web Services através

de Portais e Plataformas, indiferente de produtos proprietários.

5/7/2018 Web Services - Uma Soluao Para Aplicaoes as Na Internet - slidepdf.com

http://slidepdf.com/reader/full/web-services-uma-soluao-para-aplicaoes-as-na-internet 56/58

 

56

TechMetrix Research

Veja no gráfico abaixo o que a pesquisa da TechMetrix revelou sobre a iniciativa das

empresas em utilizar a tecnologia de Web Services construídos por Parceiros/Terceiros.

Fonte: TechMetrix Research

(WebServices Adoption & Technology Choices Report)

Forrester Research Inc.

Em pesquisas recentes o Forrester Research mostra que tecnologias tradicionais de

EAI deverão dominar até 2004, enquanto Web Services melhoram o seu desempenho. Por

volta de 2006, companhias devem adotar Web Services básicos, e ampliar o uso da tecnologia

para transações mais complexas. Analistas da Forrester aconselham aos executivos para

iniciar o trabalho em Web Services básicos com parceiros e internamente, monitorando a

evolução de padrões de Web Services para identificar capacidades mais promissoras para

mais tarde adotar.

5/7/2018 Web Services - Uma Soluao Para Aplicaoes as Na Internet - slidepdf.com

http://slidepdf.com/reader/full/web-services-uma-soluao-para-aplicaoes-as-na-internet 57/58

 

VIII – Conclusão

Como foi visto neste trabalho, Web Services é um novo modelo de aplicação Web quecombina aspectos de desenvolvimentos baseados em componentes reutilizáveis. Este modelo

está tendo uma aceitação muito grande no mercado além do apoio de grandes indústrias de

software, como Microsoft, IBM e Sun. Os componentes Web services podem ser utilizados

sem nenhuma preocupação de como foram implementadas e podem ser facilmente compostos

com diversos componentes para fornecer serviços complexos.

Apesar de ter ainda poucos anos de existência, a tecnologia de Web Services está

alcançando maturidade notável. Grandes empresas estão apoiando a definição dos padrões

adotados e a questão de segurança que envolve as transações também está recebendo a devida

atenção. Contudo, a adoção desta nova tecnologia, como sempre ocorre nestes casos, está

sendo feita com bastante cautela, existindo poucos cases no mercado disponíveis para estudo

dos acertos e falhas na implementação. A aposta da indústria é que até 2005 um enorme

volume de serviços seja gerado por conta das integrações entre as empresas.

5/7/2018 Web Services - Uma Soluao Para Aplicaoes as Na Internet - slidepdf.com

http://slidepdf.com/reader/full/web-services-uma-soluao-para-aplicaoes-as-na-internet 58/58

 

Referências

http://www.w3.orghttp://www.w3schools.com

http://www.webservices.org

http://www.w3.org/2002/ws/arch

http://msdn.microsoft.com/webservices/default.aspx

http://www.iis.com.br/~cat/infoetc/javaone.htm

http://www.xmltrustcenter.org/index.htm

http://www.xmethods.com/ 

http://java.sun.com/webservices/ 

http://java.sun.com/webservices/webservicespack.html

http://java.sun.com/features/2003/01/jax_rpc.html

http://java.sun.com/webservices/tutorial.html

http://devedge.netscape.com/viewsource/2002/soap-overview/index_pt_br.html

http://developer.java.sun.com/developer/technicalArticles/WebServices/index.html

http://developer.java.sun.com/developer/technicalArticles/Security/xkms

http://www.javaworld.com/columns/jw-web-services-index.shtml

Os sites acima apresentados foram acessados entre os dias 20 de janeiro e 03 de abril de 2003.