Você está na página 1de 83

Soluções de integração:

SOA, web services e REST + XML/XSD


Professor Marcelo Pacote – marcelopacote@dominandoti.com.br

W W W. D O M I N A N D OT I .CO M . B R W W W. D O M I N A N D OT I .CO M . B R
Acesse nosso site em
WWW.DOMINANDOTI.COM.BR

Cursos Turmas em Brasília, na sua cidade, e cursos online


Livros Edições publicadas, lançamentos e promoções
Fórum Interação direta entre estudantes e com os professores

Simulados Questões inéditas, ranking de notas e correções em vídeo

Blog Dicas e macetes de estudo, indicações de bibliografia, etc.

Materiais Versões atualizadas de notas de aula e listas de exercícios

Curta o Dominando TI no
e receba nossas dicas sobre concursos!

W W W. D O M I N A N D OT I .CO M . B R
XML – eXtensible Markup Language

 Voltado para a troca de informações


 Formato para descrever dados estruturados
 Transporte e armazenamento de dados
 O conjunto de tags não é pré-definido
 É independente de software e hardware
 Mantido pelo W3C.
 Baseada em SGML

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 3 W W W. D O M I N A N D OT I .CO M . B R


Partes de um Documento XML
elemento raiz declaracão XML

<?xml version=''1.0'' encoding=''iso-8859-1''?>


<usuario> atributos
<foto href=''/imagens/logoduke2.gif'' />
<nome>Duke Java</nome>
<endereco>Rua Imaginária, 20 – 4º andar – Centro – 19920 - 321 – Deodoro da
Fonseca – RN</endereco>
<email>dukejv@script.com.br</email>
<telefone tipo=''residencial''>
<ddd>84</ddd>
elementos
<numero>32562589</numero>
</telefone>
</usuario>

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 4 W W W. D O M I N A N D OT I .CO M . B R


(ANAC/2012/Cespe/Analista Adm./85)

Um arquivo XML possui atributos e elementos. No exemplo 1,


que se segue, sexo é atributo e, no exemplo 2, sexo é elemento,
provendo, em ambos os exemplos, a mesma informação.

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 5 W W W. D O M I N A N D OT I .CO M . B R


Documentos XML bem formados

 Para que possa ser manipulado como uma árvore, um documento XML precisa
ser bem formado.
 Regras
 Ter um, e apenas um, elemento raiz
 Todos os elementos devem ter uma tag de fechamento
 Elementos deve estar corretamente aninhados
 Valores dos atributos devem estar entre aspas ou apóstrofes. Atributos
não devem se repetir em um mesmo elemento.
 XML diferencia caracteres maiúsculos de minúsculos (case sensitive)
 O próprio navegador pode ser utilizado para verificar as regras.
 Há validadores online (http://w3schools.com/xml/xml_validator.asp)

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 6 W W W. D O M I N A N D OT I .CO M . B R


(TRE-MS/2013/Cespe/Analista Judiciário/44) (1/2)

Acima, está mostrado o conteúdo total de um arquivo XML, em que


os números à esquerda indicam apenas as linhas em que
informações são apresentadas e não fazem parte do conteúdo do
arquivo. Tendo como referência essas informações, assinale a
opção correta, à luz dos padrões XML.

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 7 W W W. D O M I N A N D OT I .CO M . B R


(TRE-MS/2013/Cespe/Analista Judiciário/44) (2/2)

A) Há erro nas linhas 4 e 9, pois não se pode repetir uma tag, no


caso, <marca>.
B) Há erro nas linhas 6 e 11, pois valores de atributos devem
ficar entre aspas.
C) Por não haver outra tag igual até o final do documento, não é
necessário fechar a tag <carro> introduzida na linha 8.
D) A sintaxe para a descrição da versão e da codificação estão
corretamente definidas na linha 1.
E) As tags em XML podem ser maiúsculas ou minúsculas sem
distinção, tal como utilizado nas linhas 2 e 12.

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 8 W W W. D O M I N A N D OT I .CO M . B R


XML Válido

 Um XML é dito válido quando for bem formado e estiver de


acordo com a gramática que define sua estrutura.
 A gramática é definida em um esquema:
 elementos fazem parte de um vocabulário limitado
 certos atributos têm valores e tipos definidos
 elementos são organizados de acordo com uma estrutura
hierárquica
 DTD e XML Schema são linguagens para descrição de
esquemas XML.

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 9 W W W. D O M I N A N D OT I .CO M . B R


DTD vs. XML Schema

 Soluções padrão do W3C

DTD
 Simples mas não é XML
<!ELEMENT contato (nome, email, telefone)>  Não suporta namespaces
<!ATTLIST contato codigo NMTOKEN #REQUIRED>  Limitado quanto a tipos de
dados

XML Schema
<xsd:schema xmlns:xsd="…/XMLSchema">
 É XML, porém mais complexo
<xsd:element name="contato">
 Suporta namespaces
<xsd:complexType>
 Permite definição de tipos
<xsd:attribute name="codigo" use="required">

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 10 W W W. D O M I N A N D OT I .CO M . B R


(Serpro/2013/Cespe/Sup./92) - Adaptada

( ) Para ser considerado válido, um documento XML precisa


estar em conformidade com um DTD (document type definition)
ou com um XML Schema.

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 11 W W W. D O M I N A N D OT I .CO M . B R


(Basa/2012/Cespe/Prod. e Infra/111)

( ) DTD (document type definition) e XSD (XML schema


description) são dois formatos de interoperabilidade de dados
usados no escopo do padrão XML, e, de modo geral, um
documento DTD é semanticamente menos expressivo que seu
equivalente XSD.

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 12 W W W. D O M I N A N D OT I .CO M . B R


Documentos válidos

 Válidos em relação a um XML Schema contém:


 Declaração de pelo menos um namespace de aplicação no
documento
 Declaração de namespace padrão da instância XML Schema
 Atributo schemaLocation (do namespace padrão) associando o(s)
namespace(s) de aplicação a um (ou mais) documento(s) XML
Schema
<bilhete
xmlns="urn:123456789"
xmlns:xsi="http://www.w3.org./2001/XMLSchema-instance"
xsi:schemaLocation="urn:123456789 bilhete.xsd">

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 13 W W W. D O M I N A N D OT I .CO M . B R


XML Schema: Tipos

 Há duas qualidades de tipos


 Tipos simples representam tipos de dados básicos como
texto, números, tokens, booleanos
 Fazem parte do namespace do XML Schema (requerem
prefixo associado ao identificador do namespace), por
exemplo: xs:int, xs:string
 Tipos complexos representam estruturas do documento
como entidades, atributos, etc.

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 14 W W W. D O M I N A N D OT I .CO M . B R


XML Schema

 Tipo Simples
 não pode conter outros elementos, apenas valor textual

<xs:element name=“sobrenome" type="xs:string"/>


<xs:element name=“idade" type="xs:integer"/>
<xs:element name=“dataNasc" type="xs:date"/>

<sobrenome>Zouza</sobrenome>
<idade>26</idade>
<dataNasc>1984-11-21</dataNasc>

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 15 W W W. D O M I N A N D OT I .CO M . B R


XML Schema – Tipos Complexos

<xs:element name=“empregado">
<xs:complexType>
Indicador de ordem
<xs:sequence> Indicador de ocorrência

<xs:element name=“nome" type="xs:string"/>


<xs:element name=“sobrenome" type="xs:string"
maxOccurs="10" minOccurs="0" />
</xs:sequence> <empregado>
</xs:complexType> <nome>Marcelo</nome>
<sobrenome>Pacote</sobrenome>
</xs:element>
</empregado>

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 16 W W W. D O M I N A N D OT I .CO M . B R


(SERPRO/2013/Cespe/Analista/116)

Com relação aos conceitos e aplicações de gestão eletrônica de


documentos, julgue os itens a seguir.
Em um documento XML, não é possível definir regras de tipos
de dados para elementos e atributos, uma vez que o documento
é um arquivo do tipo texto.

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 17 W W W. D O M I N A N D OT I .CO M . B R


XML Schema
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.xml.com"
xmlns=“http://www.xml.com” elementFormDefault="unqualified">
<xs:element name="nota">
<xs:complexType>
<xs:sequence>
<xs:element name="de" type="xs:string" />
<xs:element name="para" type="xs:string" />
<xs:element name="titulo" type="xs:string" />
<xs:element name="descricao" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 18 W W W. D O M I N A N D OT I .CO M . B R


(TRT/2013/Cespe/Téc. Judiciário/94)

( ) Uma especificação em XML Schema é sempre iniciada com


tag <schema> e concluída com tag <//schema>. Todas as
declarações de elementos devem ser inseridas entre as duas
tags, bem como a definição de atributos e tipos deve ser
inserida no corpo do programa.

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 19 W W W. D O M I N A N D OT I .CO M . B R


(TRE-BA/2010/CESPE) (1/2)

Acerca do XML, julgue os itens a seguir.


( ) Em XML, as tags definem elementos de dados e o texto
fornece o dado real representado no documento.
( ) A sintaxe básica para um elemento XML pode ser
corretamente representada pela instrução a seguir.
<nome_do_elemento>Texto</nome_do_elemento>
( ) Um documento XML pode conter definições para o elemento
raiz e para os elementos filhos, podendo também conter
elementos vazios.

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 20 W W W. D O M I N A N D OT I .CO M . B R


(TRE-BA/2010/CESPE) (2/2)

( ) A instrução a seguir está sintaticamente correta e permite o


uso de algarismos romanos para codificação de números.
<?xml version="1.0" encoding="ISO-8859-1"?>
( ) As marcações XML não fazem distinção entre letras
minúsculas e maiúsculas.
( ) Um documento XML sempre deve ter um elemento principal,
também conhecido como root tag.

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 21 W W W. D O M I N A N D OT I .CO M . B R


Gabarito

(ANAC/2012/Cespe/Analista Adm./85) c
(TRE-MS/2013/Cespe/Analista Judiciário/44) b
(Serpro/2013/Cespe/Sup./92) certo
(Basa/2012/Cespe/Prod. e Infra/111) certo
(SERPRO/2013/Cespe/Analista/116) e
(TRT/2013/Cespe/Téc. Judiciário/94) e
(TRE-BA/2010/CESPE) ccceec

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 22 W W W. D O M I N A N D OT I .CO M . B R


Web Services

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br

W W W. D O M I N A N D OT I .CO M . B R W W W. D O M I N A N D OT I .CO M . B R
Web Services

 Contexto
 Como surgiu?
 Interoperabilidade

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 24 W W W. D O M I N A N D OT I .CO M . B R


(ANTT/2013/Cespe/Analista Adm./104)

Julgue os itens a seguir, referentes à arquitetura orientada a


serviços (SOA).
( ) Web services provêm um meio padrão para a interoperação
entre diferentes aplicativos de software, que podem ser
executados em uma variedade de plataformas e(ou)
frameworks.

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 25 W W W. D O M I N A N D OT I .CO M . B R


Web Services - modelos

 Tradicional
 XML
 SOAP (Simple Object Access Protocol)
 WSDL
 UDDI
 REST (Representational State Transfer)
 Baseado em métodos HTTP

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 26 W W W. D O M I N A N D OT I .CO M . B R


Web Services - Arquitetura

3 - Provê serviço
Serviço cliente Provedor
<< SOAP >>
de serviço

<< SOAP >> << SOAP >>

2 - Busca
serviço 1 - Registra-se
Registro
de serviços

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 27 W W W. D O M I N A N D OT I .CO M . B R


Web Services - Papéis

 Provedor de serviço: responsável pela descrição e publicação


de um determinado serviço Web no registro de serviços. As
informações estão representadas em um documento XML escrito
na linguagem padrão WSDL(Web Service Description Language);
 Consumidor do serviço: responsável por descobrir um serviço,
obter a sua descrição e usá-lo;
 Registro dos serviços: mantém um diretório com informações
sobre serviços, armazenados no padrão UDDI (Universal
Description, Discovery and Integration).

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 28 W W W. D O M I N A N D OT I .CO M . B R


(MPOG/2013/Cespe/Téc. de Nível Superior V/69)

Com relação à engenharia de software, julgue os próximos


itens.
( ) A engenharia de software orientada a serviços possui uma
arquitetura com padrões de serviços web por meio de
tecnologias XML, como, por exemplo, o SOAP, para a
mensageria, e o WSDL, para definição de serviços.

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 29 W W W. D O M I N A N D OT I .CO M . B R


Exercício [01] (ANTAQ/2009/CESPE)

( ) Web service é um conjunto de tecnologias utilizadas na integração


de sistemas e na comunicação entre aplicações diferentes. Para a
representação e estruturação dos dados nas mensagens
recebidas/enviadas, é utilizado o XML (eXtensible markup language).
As chamadas às operações, incluindo-se os parâmetros de entrada e
saída, são codificadas no protocolo UDDI (universal description,
discovery and integration). Os serviços (operações, mensagens,
parâmetros etc.) são descritos usando-se a linguagem WSDL (web
services description language). O processo de publicação, pesquisa e
descoberta de web services utiliza o protocolo SOAP (simple object
access protocol).

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 30 W W W. D O M I N A N D OT I .CO M . B R


Exercício [02] (TRE/2010/CESPE) (1/2)

Com relação a web services, assinale a opção correta.


a) As arquiteturas de aplicação de web services são arquiteturas
firmemente acopladas, nas quais as ligações entre serviços não
podem mudar durante a execução.
b) SOAP (Simple Object Access Protocol) é um protocolo com base
em HTML que permite troca de informações entre aplicações em um
ambiente distribuído.
c) UDDI (Universal Description, Discovery and Integration) é um
diretório para armazenamento de informações a respeito de web
services. Essas informações são descritas em SOAP.

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 31 W W W. D O M I N A N D OT I .CO M . B R


Exercício [02] (TRE/2010/CESPE) (2/2)

d) A linguagem WSDL (Web Services Description Language) é


utilizada para descrever web services.
e) Segundo o W3C (World Wide Web Consortium), web services
são apropriados somente para aplicações em que componentes
de um sistema distribuído são executados em plataformas
semelhantes de um mesmo fornecedor.

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 32 W W W. D O M I N A N D OT I .CO M . B R


(TRE-MS/2013/Cespe/Téc. Judiciário/57)

Com relação a webservices, assinale a opção correta.


A) Um webservice não pode implementar corretamente uma arquitetura
orientada a serviço (SOA).
B) Tarefas como a criação de interfaces gráficas para usuários estão
fortemente relacionadas à função de webservice.
C) O webservice consiste em chamadas de métodos em que os seus
desenvolvedores utilizam em conjunto tanto XML quanto XLS.
D) A implementação do protocolo SOAP (Simple Object Access Protocol) é
utilizado para segurança entre os webservices.
E) As definições de como o webservice deve ser acessado, como, por
exemplo, os valores que ele retorna, são descritas em um arquivo XML
com a padronização WSDL (Web Service Description Language).
Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 33 W W W. D O M I N A N D OT I .CO M . B R
(TRE-MS/2013/Cespe/Analista Judiciário/43) (1/2)

No que se refere a SOA e webservices, assinale a opção


correta.
A) O WS-Security propõe uma série de extensões para
aprimorar a segurança dos web services no UDDI e no WSDL.
Por questão de compatibilidade, essas extensões não afetam os
cabeçalhos do envelope SOAP.
B) UDDI é um serviço de diretório em que é possível registrar e
localizar web services.
C) WSDL é descrito em formato XML e tem por única função
descrever os valores e formatos dos dados que serão
intercambiados entre os sistemas.
Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 34 W W W. D O M I N A N D OT I .CO M . B R
(TRE-MS/2013/Cespe/Analista Judiciário/43) (2/2)

D) SOAP é um protocolo do tipo statefull, independente de


sistema operacional, embasado em troca de mensagem one-
way e projetado para ser simples e extensível por meio de
tecnologia XML.
E) SOA é uma arquitetura de desenvolvimento cujo objetivo é
criar módulos funcionais denominados serviços, fortemente
acoplados e independentes de plataforma. É embasada em XML
e incentiva reutilização de código e interoperabilidades entre
sistemas.

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 35 W W W. D O M I N A N D OT I .CO M . B R


Web Services - SOAP

 SOAP (Simple Object Access Protocol) é um protocolo para


troca de informações estruturadas em uma plataforma
descentralizada e distribuída, utilizando tecnologias baseadas
em XML.

 Independente de qualquer modelo de programação ou outra


implementação específica.

 Define um envelope para transmissão de mensagens, oferece


regras para representar “remote procedure calls” (RPCs);

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 36 W W W. D O M I N A N D OT I .CO M . B R


Web Services - SOAP

 SOAP possibilita que dois processos ( possivelmente em duas


máquinas diferentes) se comuniquem, desconsiderando o
hardware e a plataforma que eles estão sendo executados.
 Um dos grandes benefícios do SOAP é que ele é aberto e foi
adotado pela maioria das grandes empresas de hardware e
software.

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 37 W W W. D O M I N A N D OT I .CO M . B R


Exercício [03] (Serpro/2013/Cespe/Desv./107 )

( ) A comunicação entre sistemas clientes e servidores para


troca de mensagens pode ser realizada por meio de SOAP
(simple object access protocol), que é um protocolo para troca
de informações estruturadas independente de linguagem de
programação.

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 38 W W W. D O M I N A N D OT I .CO M . B R


(MPOG/2013/Cespe/Téc. de Nível Superior V/89)

No que se refere aos padrões WSDL e SOAP, julgue os itens a


seguir.
( ) SOAP utiliza o protocolo HTTP como forma de transportar
dados na camada de aplicação, permite troca de mensagens
baseado em XML e tem seu uso relacionado a web services.

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 39 W W W. D O M I N A N D OT I .CO M . B R


Exercício [04] (STJ/2008/CESPE)

( ) O SOAP encapsula mensagens que podem ser transmitidas


via HTTP; permite o modelo de interação cliente-servidor; define
como usar XML para representar mensagens de requisição e
resposta. Um documento XML é transportado no corpo de uma
mensagem SOAP; no modelo cliente-servidor, o corpo de uma
mensagem SOAP pode conter uma requisição, mas não uma
resposta.

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 40 W W W. D O M I N A N D OT I .CO M . B R


Web Services – Mensagem SOAP

- Envelope: define o conteúdo da mensagem (obrigatório)


- Cabeçalho: contém informação de controle e processamento
(opcional)
- Corpo: contém informação da chamada e da resposta (obrigatório)

MENSAGEM SOAP
ENVELOPE SOAP
CABEÇALHO SOAP

Cabeçalhos

CORPO SOAP

Dados da mensagem específica

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 41 W W W. D O M I N A N D OT I .CO M . B R


Web Services – Mensagem SOAP

POST /cadirreg HTTP/1.1


Host: www.tcu.gov.br
Content-Type: text/xml; charset="utf-8"
Content-Length: 256

<SOAP:Envelope
xmlns:SOAP= "http://www.w3.org/2001/12/soap-envelope">
<SOAP:Header>
<!-- conteudo do cabecalho -->
</SOAP:Header>
<SOAP:Body xmlns:tcu="http://www.tcu.gov.br/cadirreg">
<tcu:GetInfoGestor>
<cpf>87598930104</cpf>
</tcu:GetInfoGestor>
</SOAP:Body>
</SOAP:Envelope>

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 42 W W W. D O M I N A N D OT I .CO M . B R


(PEFOCE/2012/Cespe/Perito Criminal/75)

( ) SOAP é um protocolo leve destinado à troca de informações


estruturadas em um ambiente distribuído e descentralizado.
Uma mensagem SOAP, por exemplo, é um documento XML
composto de três partes obrigatórias: envelope, cabeçalho e
corpo.

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 43 W W W. D O M I N A N D OT I .CO M . B R


(CNJ/2013/Cespe/Analista Judiciário/71)

( ) Um dos elementos de uma mensagem SOAP é o corpo


(body), no qual devem estar contidas as informações de erro e
status.

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 44 W W W. D O M I N A N D OT I .CO M . B R


Web Services - WSDL

 WSDL (Web Services Description Language) é uma linguagem


baseada em XML utilizada para descrever Web Services.
 Trata-se de um documento escrito em XML que além de
descrever o serviço, especifica como acessá-lo e quais as
operações ou métodos disponíveis.

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 45 W W W. D O M I N A N D OT I .CO M . B R


(MPOG/2013/Cespe/Téc. de Nível Superior V/90)

( ) Um documento WSDL é estruturado em HTML e descreve


web services como um conjunto de pontos de serviço que
operam baseados em trocas de protocolo de rede. As operações
e mensagens relativas a um serviço são descritas de forma
específica, ligados a protocolos de rede, sem formatos de
mensagens concretos e com o objetivo de definir um ponto de
serviço.

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 46 W W W. D O M I N A N D OT I .CO M . B R


(CNJ/2013/Cespe/Analista Judiciário/70)

Acerca de interoperabilidade de sistemas, julgue os itens


subsequentes.
( ) A linguagem WSDL é utilizada para descrever web services
limitadas ao tipo request-response.

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 47 W W W. D O M I N A N D OT I .CO M . B R


Web Services - WSDL

Definem como a interface


é implementada
por um fornecedor

Figura obtida em http://en.wikipedia.org/wiki/Web_service

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 48 W W W. D O M I N A N D OT I .CO M . B R


(CPRM/2013/Cespe/Analista /82)

Com relação a interoperabilidade de sistemas, julgue os itens a


seguir.
( ) A WSDL 2.0 possui uma parte abstrata, responsável por
definir type, messages, operations e PortType, e uma parte
concreta, que define binding, service e endpoint.

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 49 W W W. D O M I N A N D OT I .CO M . B R


Web Services – Exemplo (1/2)

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 50 W W W. D O M I N A N D OT I .CO M . B R


Web Services – Exemplo (2/2)

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 51 W W W. D O M I N A N D OT I .CO M . B R


Exercício [05] (STJ/2008/CESPE)

( ) O WSDL separa a parte abstrata de uma descrição de


serviço da parte concreta; nessa descrição, a parte concreta
contém as definições de tipos usados pelo serviço e a parte
abstrata especifica como e onde o serviço pode ser contatado.
Os documentos WSDL podem ser acessados via um serviço de
diretório como o UDDI; as definições WSDL podem ser geradas
a partir de definições de interfaces escritas em outras
linguagens.

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 52 W W W. D O M I N A N D OT I .CO M . B R


Web Services - UDDI

 UDDI (Universal Description, Discovery and Integration) é uma


especificação que define um serviço de registro para Web
Services.
 Usuários de serviços podem usar UDDI para descobrir
serviços que lhes interessem e obter os metadados necessários
para utilizar esses serviços.

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 53 W W W. D O M I N A N D OT I .CO M . B R


UDDI

Páginas brancas: contêm nome da empresa, endereço,


números de telefone e outros identificadores relativos
ao negócio onde a empresa atua;
UDDI

Páginas amarelas: baseadas em categorias

Páginas verdes: contêm informações técnicas sobre os


serviços expostos pelo provedor.

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 54 W W W. D O M I N A N D OT I .CO M . B R


(CNJ/2013/Cespe/Analista Judiciário/72)

( ) Nos registros de negócio UDDI, a descrição da forma de


acesso aos web services é um procedimento contido nas
páginas verdes (green pages).

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 55 W W W. D O M I N A N D OT I .CO M . B R


Exercício [06] (TRT/2008/CESPE) - adaptada

( ) O UDDI é uma especificação técnica que tem como objetivo


descrever, descobrir e integrar web services. É embasado na
tecnologia XML, que fornece uma plataforma neutra de dados.

* neutra = indiferente, imparcial

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 56 W W W. D O M I N A N D OT I .CO M . B R


REST – Representational State Transfer

 Outra abordagem para implementação de Web Services


 CRUD com métodos HTTP
 Create (HTTP POST)
 Retrieve (HTTP GET)
 Update (HTTP PUT)
 Delete (HTTP DELETE)
 + Simplicidade, baixo overhead de comunicação
 - Segurança, controle transacional

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 57 W W W. D O M I N A N D OT I .CO M . B R


REST – Exemplos e WADL

 WADL (Web Application Description Language) está para REST


assim como WSDL está para SOAP.
 Cada recurso (substantivo, entidade) é modelado como uma
URI
 http://editoraexemplo.com.br/api/livros
 http://editoraexemplo.com.br/api/livros/7
 http://editoraexemplo.com.br/api/livros/7/depoimentos?pa
ge=2&size=10

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 58 W W W. D O M I N A N D OT I .CO M . B R


Exercício [07] (TCU/2010/CESPE) (adaptada)

( ) O estilo de arquitetura de software denominado REST


(representational state transfer) demanda mais recursos
computacionais que o modelo de desenvolvimento de sistemas
embasado em SOAP (single object access protocol).

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 59 W W W. D O M I N A N D OT I .CO M . B R


Exercício [08] (MPU/2010/CESPE/Técnico)

( ) REST (Representationals State Transfer) é uma tecnologia


que está sendo utilizada em web services, como substituta das
tecnologias SOAP (Simple Object Access Protocol) e WSDL.

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 60 W W W. D O M I N A N D OT I .CO M . B R


Gabarito dos Exercícios

[01] errado (ANTT/2013/Cespe/Analista Adim./104) c


[02] d (MPOG/2013/Cespe/Téc. de Nível Superior V/69) c
[03] certo (TRE-MS/2013/Cespe/Téc. Judiciário/57) e
[04] errado (TRE-MS/2013/Cespe/Analista Judiciário/43) b
[05] errado (MPOG/2013/Cespe/Téc. de Nível Superior V/89) c
[06] certo (PEFOCE/2012/Cespe/Perito Criminal/75) e
[07] errado (CNJ/2013/Cespe/Analista Judiciário/71) e
[08] certo (MPOG/2013/Cespe/Téc. de Nível Superior V/90) e
(CNJ/2013/Cespe/Analista Judiciário/70) e
(CPRM/2013/Cespe/Analista/82) e*
(CNJ/2013/Cespe/Analista Judiciário/72) c

* difere gabarito definitivo oficial

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 61 W W W. D O M I N A N D OT I .CO M . B R


SOA

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br

W W W. D O M I N A N D OT I .CO M . B R W W W. D O M I N A N D OT I .CO M . B R
Contextualização

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 63 W W W. D O M I N A N D OT I .CO M . B R


Introdução

 Estratégia que propõe a organização dos ativos de software de


forma que eles possam representar processos, atividades ou
tarefas de negócio de forma direta.
 Provimento de serviços
 Devem ser baseados em padrões e facilmente combinados e
reutilizados.
 Organização por meio de processos

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 64 W W W. D O M I N A N D OT I .CO M . B R


Introdução

 Visa integrar sistemas existentes e futuros

 Agrupa processos de negócios

 Trata-os como serviços interoperáveis

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 65 W W W. D O M I N A N D OT I .CO M . B R


(BASA/2012/Cespe/Tec. Científico/Redes/108)

( ) Aplicações legadas que rodam em plataforma alta podem


ser expostas como serviço e integradas em aplicações
desenvolvidas para plataforma baixa, mediante uma abordagem
de arquitetura orientada a serviço (SOA).

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 66 W W W. D O M I N A N D OT I .CO M . B R


Características e termos chave

 Baixo acoplamento
 Componentes independentes que interagem por meio de interfaces bem definidas

 Neutralidade de implementação
 Linguagens de programação, plataforma de hardware ou qualquer outro elemento
tecnológico não são limitantes.

 Interoperabilidade
 Permite que sistemas coexistam e se comuniquem
 Agrega flexibilidade à arquitetura

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 67 W W W. D O M I N A N D OT I .CO M . B R


SOA X Web Services

Web
SOA
Services

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 68 W W W. D O M I N A N D OT I .CO M . B R


(MPOG/2013/Cespe/TI/105)

No que se refere ao SOA (service-oriented architeture), julgue os


itens a seguir.
( ) O SOA garante serviços fortemente acoplados, fracamente
coesos e com alta possibilidade de reutilização.

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 69 W W W. D O M I N A N D OT I .CO M . B R


(MPOG/2013/Cespe/TI/106)

( ) De acordo com o SOA, um limite representa a fronteira


entre a interface pública de um serviço e sua realização
privada. Ultrapassar limites em SOA é barato e altamente
recomendado porque torna o serviço público e acessível a
outros sistemas.

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 70 W W W. D O M I N A N D OT I .CO M . B R


(MPOG/2013/Cespe/TI/107)

( ) O SOA promove a integração entre o negócio e a tecnologia


da informação por meio de serviços, que são o principal
componente dessa arquitetura.

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 71 W W W. D O M I N A N D OT I .CO M . B R


(MPOG/2013/Cespe/Téc. de Nível Superior V/71)

No que diz respeito à análise e ao projeto orientados a objetos,


julgue os itens que se seguem.
( ) A arquitetura orientada a serviço (SOA) é uma forma de
representar-se a tecnologia por meio de uma arquitetura que dá
suporte a serviços, composições e inventário de serviços, de
forma otimizada.

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 72 W W W. D O M I N A N D OT I .CO M . B R


(ANAC/2012/Cespe/Analista Adm./80)

( ) Ao utilizar-se a arquitetura orientada a serviços (SOA),


segue-se um conceito de arquitetura corporativa, situação em
que os códigos são gerados para toda a empresa e são
reutilizados de maneira eficiente e por várias aplicações.

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 73 W W W. D O M I N A N D OT I .CO M . B R


(ANTT/2013/Cespe/Analista Adm./106)

( ) A SOA pode ser definida como um tipo de arquitetura que


utiliza serviços como blocos de construção para facilitar a
integração em ambientes corporativos e a reutilização de
componentes por meio do baixo acoplamento.

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 74 W W W. D O M I N A N D OT I .CO M . B R


Visão SOA

Processo de Negócio

Meta-Aplicações

Serviços

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 75 W W W. D O M I N A N D OT I .CO M . B R


Visão SOA – Exemplo

Fonte: http://linux.ime.usp.br/~cef/mac499-06/monografias/filipemadeira/monografia.pdf

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 76 W W W. D O M I N A N D OT I .CO M . B R


ESB – Enterprise Service Bus

Meta-Aplicações

Front-End

Serviço Serviço Serviço

ESB (Enterprise Service Bus)

SOA

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 77 W W W. D O M I N A N D OT I .CO M . B R


ESB – Exemplos de produtos

 Apache ServiceMix
 Oracle Enterprise Service Bus
 Open ESB
 Mule
 Microsoft BizTalk
 JBOSS/Glassfish

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 78 W W W. D O M I N A N D OT I .CO M . B R


Camadas

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 79 W W W. D O M I N A N D OT I .CO M . B R


Vantagens

 Diminuição do número de redundâncias de funcionalidades


 Baixo acoplamento entre aplicações
 Alta interoperabilidade entre plataformas
 Alta reutilização das regras de negócio
 Redução de custos
 Resposta rápida a mudanças nos processos de negócio
 Agilidade nas mudanças
 Serviços são facilmente testados

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 80 W W W. D O M I N A N D OT I .CO M . B R


SOA – Modelo Operacional Triangular

Executa
Usuário (Consolida e Requisita) Provedor
de serviços de serviço

Procura Registra

Registro
de serviços

 Paradigma “procura-consolida-executa” (find-bind-execute)

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 81 W W W. D O M I N A N D OT I .CO M . B R


Arquitetura Orientada a Serviços

 SOA é uma arquitetura fracamente acoplada. Os serviços


disponibilizados podem ser reutilizados e aplicados em
diferentes áreas dentro e fora da organização sem ajustar a
tecnologia subjacente.
 Um serviço consiste da funcionalidade que precisa ser
especificada no contexto do negócio e em termos do contrato
entre o provedor e o consumidor. Os detalhes de
implementação podem ser omitidos.
 Em SOA os serviços são partes de um ou mais processos de
negócio distribuídos.

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 82 W W W. D O M I N A N D OT I .CO M . B R


Gabarito

(BASA/2012/Cespe/Tec. Científico/Redes/108) certo


(MPOG/2013/Cespe/TI/105) e
(MPOG/2013/Cespe/TI/106) e
(MPOG/2013/Cespe/TI/107) c
(MPOG/2013/Cespe/Téc. de Nível Superior V/71) c
(ANAC/2012/Cespe/Analista Adm./79) c
(ANTT/2013/Cespe/Analista Adim./106) c

Professor Marcelo Pacote – marcelopacote@dominandoti.com.br 83 W W W. D O M I N A N D OT I .CO M . B R

Você também pode gostar