Você está na página 1de 5

Engenharia de Software orientada a servios

(Imprimir um WSDL resumido)


SOA uma arquitetura de desenvolvimento cujo objetivo criar mdulos funcionais
denominados servios, fracamente acoplados e independentes de plataforma. embasada
em XML e incentiva reutilizao de cdigo e interoperabilidades entre sistemas.
Algumas das vantagens de usar web services na implementao de uma arquitetura
orientada a servios so (SCHNEIDER, 2008):
- Permite utilizar as regras de negcio atravs da rede;
- Conecta aplicaes de diferentes fornecedores;
- Protocolo padronizado (SOAP/WSDL/UDDI);
- Baixo custo de comunicao (Internet);
- Publicao automtica (UDDI, opcional)
Resumo Livro Sommerville
Provedores projetam e implementam servios e os especificam em uma liguagem
chamada WSDL. Eles tambm publicam informaes sobre estes servios em um registro
de acesso geral usando um padro de publicao chamado UDDI. Os solicitantes dos
servios buscam o registro UDDI para descobrir a especificao desse servio e para
localizar um provedor de servios. Eles podem ento unir as suas aplicaes para um
servio especfico e se comunicar com ele, usando geralmente um protocolo chamado
SOAP
SOAP um padro de troca de mensagens que d suporte comunicao entre
servios. Ele define os componentes esssenciais e opcionais das mensagens passadas
entre servios.

WSDL o padro de linguagem de definio de servio web. Estabelece o meio pelo


qual os provedores de servios devem definir a interface para esses sevios.
Essencialmente, ele permite que a interface de um servio e suas ligaes sejam definidas
de maneira padronizada.
Trata-se de um documento escrito em XML que alm de descrever o servio, especifica
como acess-lo e quais as operaes ou mtodos disponveis
De acordo com a especificao da WSDL, fornecida pela W3C, existem quatro tipos de
transmisso suportado pelo WSDL

One-way: O endpoint recebe a mensagem


Request-response: O endpoint recebe a mensagem e envia a resposta
correlacionada

Solicit-response: O endpoint envia a mensagem e recebe a resposta


correlacionada

Notification: O endpoint envia a mensagem


WSDL dividido em duas partes: . abstrata e concreta
Abstrata - descreve a interface do servio propriamente dita, ou seja, descreve como o
servio pode ser invocado por seus clientes. A interface de um servio pode ser descrita
por meio das operaes e dos parmetros de ida e volta.
Elementos:
<message>- descreve as mensagens que sero trocadas entre o servidor e o consumidor
<portype>- conjunto de operaes suportadas pelo servio
Concreta - define o protocolo e o endereo onde o servio estar disponibilizado. Esta
separao proposital, pois um mesmo servio pode ser disponibilizado atravs de
endereos e protocolos diferentes.
Elementos: <binding>- detalhes de como as mensagens so transmitidas
UDDI Padro descrio, descoberta e integrao universais, define os componentes de
uma especificao de servios que pode ser usada para descobrir a existncia de um
servio. Incluem informaes sobre o provedor de servios, os servios fornecidos, a
localizao da descrio dos servios e informaes sobre relacionamentos de negcio.
UDDI um servio de diretrio em que possvel registrar e localizar web services
um protocolo padro OASIS que especifica um mtodo para descoberta de diretrios
de servios
Um registro UDDI consiste de 3 componentes.

White Pages - Prov informaes sobre a empresa que fornece o servio


(nome de um negcio, descrio do negcio, informao de contato, endereo, nmeros
de telefone, fax, ...)

Yellow Pages - Prov informaes sobre a classificao do servio ou do


negcio (esses dados podem incluir a indstria, o produto, ou cdigos geogrficos )

Green pages - So usadas para descrever como acessar o servio(a


descrio da forma de acesso aos web services )
UDDI no restrito a descobrir servios baseados em SOAP. Ao contrrio, pode ser
usado tambm, para descrever qualquer servio, desde uma nica pgina Web ou
endereos de email, at servios CORBA, Java RMI, ou mesmo, servios EJB.
WS-BPEL um padro para uma linguagem de workflow usado para definir
programas de processo que envolvem vrios servios diferentes.
<invoke> Invoca um Servio Web <receive> Aguarda a resposta de um cliente
<reply> Gera resposta sncrona <assign> Manipula dados <throw> Indica faltas ou
excees <wait> Espera por certo tempo <terminate> Finaliza um processo
<sequence> Seqncia de atividades a serem invocadas <flow> Usada para definir um
conjunto de atividades que podem ser invocadas em paralelo <if> Seleo <while>
Repetio <pick> Aguarda por um evento

Segurana
Uma das formas de se atribuir segurana aos web services adotar o XML encryption,
que permite criptografar partes confidenciais de um documento, podendo outras partes
estar legveis sem restrio de processamento.
O WS-Security um padro para incluir segurana a trocas de mensagens de servio da
Web SOAP. Ele adiciona um elemento de cabealho de mensagem SOAP
( <wsse:Security> )para anexar as informaes de segurana s mensagens, na forma de
tokens , transmitindo diferentes tipos de solicitaes (que podem incluir nomes,
identidades, chaves, grupos, privilgios, recursos, etc.) juntamente com informaes de
criptografia e assinatura digital.
Conceitos
Provedor de servios: cria e desenvolve o servio Web que serve para expor alguma
funcionalidade de negcio da sua organizao para a invocao por outros usurios
externos.
Consumidor de servios ou cliente: qualquer usurio que deseja utilizar algum servio
Web.
Catlogo de Servios (UDDI): um diretrio central onde o provedor de servios possa
cadastrar e descrever seus servios, e onde o consumidor possa procurar pelo servio
desejado.
SOAP um protocolo para troca de informaes estruturadas em uma plataforma
descentralizada e distribuda. Ele se baseia na Linguagem de Marcao
Extensvel (XML) para seu formato de mensagem, e normalmente baseia-se em outros
protocolos da Camada de aplicao, mais notavelmente em Chamada de Procedimento
Remoto (RPC) e Protocolo de Transferncia de Hipertexto(HTTP), para negociao e
transmisso de mensagens. SOAP pode formar a camada base de uma pilha de protocolos
de web services, fornecendo um framework de mensagens bsico sob o qual os servios
web podem ser construdos. Este protocolo baseado em XML consiste de trs partes: um
envelope, que define o que est na mensagem e como process-la, um conjunto de regras
codificadas para expressar instncias do tipos de dados definidos na aplicao e uma
conveno para representar chamadas de procedimentos e respostas.
Fluxo tpico de interao entre os atores
1- se estabelece a relao entre o consumidor e o produtor.
2- o consumidor aprende as capacidades totais e servios do produtor.
3- se estabelece uma relao entre o consumidor e o usurio final.
4- pginas agregadas so produzidas pelo produtor.
5- uma pgina requisitada pelo consumidor. Porm antes do primeiro passo, apontado
pela questo, existe ainda um passo o antecede "0 - Consumidor descobre Produtor"

WSDL
Servio (Container)
Pode ser visto como um container para conjunto de funes de sistema que foram
expostos a protocolo baseado em web;
Porta (ENDEREO URL)
No nada alm da definio do endereo ou ponto de conexo para o Web Service.
representado tipicamente por uma URL simples com http;
Binding (Protocolo e Formato para o PortType)
Especifica a interface, define o estilo de SOAP binding (RPC ou Document) e transporte
(protocolo SOAP). Sees de binding tambm definem as operaes;
Tipo de porta (Operaoes e Mensagens)
O elemento <portType> define um web service, as operaes que podem ser executadas,
e as mensagens trocadas para executar a operao;
Operao (Mtodo ou Funo)
Cada operao pode ser comparada um mtodo ou chamada de funo em uma
linguagem de programao tradicional. Aqui as aes soap so definidas e o tipo de
mensagem codificado;
Mensagem
Tipicamente, uma mensagem corresponde a uma operao. A mensagem contm as
informaes necessrias para executar a operao;
O elemento message define os dados a serem transmitidos. Cada elemento message
recebe um ou mais elementos <part>, que formam as partes reais da mensagem. O
elemento <part> define o contedo da mensagem representando os parmetros que so
passados e a resposta que o servio retorna.

EXEMPLO:
<message name="getTermRequest">
<part name="term" type="xs:string"/>
</message>
<message name="getTermResponse">
<part name="value" type="xs:string"/>
</message>
<portType name="glossaryTerms">
<operation name="getTerm">
<input message="getTermRequest"/>
<output message="getTermResponse"/>
</operation>
</portType>
Comparado a programao tradicional "getTerm" seria uma funo, "getTermRequest" e
"getTermResponse" seriam parmetros de entrada e sada respectivamente. E quem
define o tipo de dados o elemento <part>

SOAP
A estrutura da mensagem SOAP definida em um documento XML que contm os
seguintes elementos:
<Envelope><! Elemento raiz do SOAP e define que essa uma mensagem SOAP-->
<Header><!Especifica informaes especificas como autenticao (opcional)
<Body><!O elemento BODY contm o corpo da mensagem-->
<Fault><!O elemento FAULT contm os erros que podem ocorrer. Opcional-->