Grupo de Engenharia
de Software
16/11/2010
AGENDA
Arquitetura Orientada a Servios (SOA)
SOA: Definio
SOA e os Web Services
Classificao de Servios
Principais padres utilizados pelos Web Services
Composio de Web Services
Exemplo: Servidor
Exemplo: Cliente
2
16/11/2010
Arquitetura
Orientada a Servios
Exemplo Servidor
Exemplo Cliente
16/11/2010
16/11/2010
Mundo do
Negcios
Fluxo de Trabalho
Servios
Processos de Negcio
16/11/2010
de negcio; e
Integrao das aplicaes.
SOA no uma Tecnologia
SOA uma abordagem arquitetural
16/11/2010
16/11/2010
16/11/2010
Motorista
Contador
Fao
entregas
Atendo
chamadas e
organizo
entregas
Cuido da
contabilidade
Entrega
Rpida
9
16/11/2010
Viso da TI
Entrega
Motorista
Eu posso:
Dirigir
Preencher uma
lista de
mercadorias
Receber
pagamentos
Etc...
o setDirigir
o setListaMercadorias
o getReceberPagamento
10
16/11/2010
SERVIO
Servios Web so aplicaes de negcio modulares;
Expe a lgica de negcio em forma de servios sobre
16/11/2010
SERVIO
Encapsula uma funo do negcio reutilizvel;
Independentes da implementao;
Fracamente interligados;
No existe herana ou dependncia entre os
servios;
Podem ser compostos e orquestrados em processos
de negcio; e
Expressa a viso de negcio da aplicao.
12
16/11/2010
EXEMPLOS DE SERVIO
Processamento de um pagamento;
Gerenciamento de clientes;
Efetuar consultas de crdito;
Verificar a disponibilidade de um produto em
estoque;
Motorista
Contador
Etc...
Expedidor
13
16/11/2010
14
16/11/2010
CLASSIFICAO DE SERVIOS
Servios de Utilidade;
Servios de Entidade; e
Servios de Tarefa.
15
16/11/2010
SERVIOS DE UTILIDADE
Servios que contm lgica independente de negcio, onde
do problema.
Exemplos de Funcionalidades:
Tratamento de excees;
Autenticao de usurios; e
Etc...
16
16/11/2010
SERVIOS DE ENTIDADE
Servios relacionados s entidades envolvidas no
negcio.
Funcionalidades:
Criar um cliente/produto/venda;
Retornar o endereo de um cliente;
17
16/11/2010
SERVIOS DE TAREFA
Servios responsveis pelos processos especficos de
cada negcio;
Realiza tarefas de atividades mais genricas; e
Composio dos servios entidade e utilidade.
Funcionalidades:
Anlise de Vendas;
Compra de produtos; e
Etc...
18
16/11/2010
CLASSIFICAO DE SERVIOS
19
16/11/2010
20
16/11/2010
TOP-DOWN
Processo de Negcio
Servios
A
Componentes
B
21
C
Bibliotecas
16/11/2010
BOTTOM-UP
Servios
A
Aplicativos
Componentes
C
Bibliotecas
mainframe
22
Sistemas
legados
16/11/2010
23
16/11/2010
COMPUTAO DISTRIBUDA
Java RMI (Remote Method Invocation)
CORBA (Common Object Request Broker Architecture)
Cliente
Restful
Servidor
Uso do
Servio
XML
Publicao
Consulta ao
registro
24
Registro
16/11/2010
WEB SERVICES
25
16/11/2010
WEB SERVICES
Web Service uma aplicao de software que pode
16/11/2010
WEB SERVICES
27
16/11/2010
WEB SERVICES
O grande entusiasmo em relao Web Services
fundamentalmente
interoperabilidade.
voltado
promessa
de
Cada
28
16/11/2010
29
16/11/2010
SOAP
Simple Object Access Protocol SOAP
16/11/2010
SOAP
<?xml version="1.0"Envelope
encoding="UTF-8"?>
Informaes de
header
<soap:Envelope
autenticao,
block
xmlns:soap="http://www.w3c.org/2003/05/soap=envelope
roteamento
"soap:encodingStyle="http://www.w3c.org/2003/05/soapblock
encoding">
<soap:Header>
</soap:Header>
body
O contedo da
mensagem
message
<soap:Body>
</soap:Body>
</soap:Envelope>
31
16/11/2010
WSDL
Web
Description
interface
Service
Description
Operation
name
Descreve a
name
documentao
pattern
Language
input
output
e os
detalhes tcnicos dos Web
Services; e
infault
outfault
fault
Operation
ref
input
output
infault
outfault
fault
ref
service
name
interface
endpoint
name
binding
36
16/11/2010
WSDL
<?xml version="1.0" encoding="utf-8"?>
<description name="Emergency ...>
<types> ... </types>
<interface name="Localization">
<fault name="faultLocalization" element="ghns:faultLocalization" />
<operation name="opNewLocalization" ....>
<input messageLabel="In" element="ghns:inLocalization">
<output messageLabel="Out" element="ghns:returnLocalization">
<outfault ref="faultLocalization" messageLabel="statusOpNewLocalization">
</operation>
<binding name="bindingLocalization interface="tns:Localization ... >
<fault ref="faultLocalization" wsoap:code="soap:Sender" />
<operation ref="tns:opNewLocalization ... />
</binding>
<fault ref="faultLocalization" wsoap:code="soap:Sender" />
<operation ref="tns:opNewLocalization .../>
<service name="servLocalization" interface="tns:Localization">
<endpoint name=teste binding="tns:bindingLocalization
address="http://200.19.98.1:8091/Hospital" />
</service>
</description>
37
16/11/2010
UDDI
Fornecer ao provedor os protocolos necessrios para que os
Web Services sejam registrados, descobertos e publicados na
rede;
Agncia de registro de Web Services;
Banco de Dados Web Services; e
38
16/11/2010
39
16/11/2010
COREOGRAFIA
SOAP
SOAP
40
16/11/2010
ORQUESTRAO
SOAP
Orquestrador
41
SOAP
16/11/2010
42
Arquitetura Orientada a
Servios
Exemplo Servidor
Exemplo Cliente
EXEMPLO SERVIDOR:
CADASTRO DE PRODUTOS
16/11/2010
43
16/11/2010
2.
44
16/11/2010
Pressione com o boto direito em MySQL clique em Conectar. Aps conectar com o
banco de dados vamos criar nossa base de dados Comercial.
2.
Clique com o boto direito do mouse e selecione Create Database. Na janela que abre
coloque o nome da base de dados COMERCIAL. Mantenhas as outras informaes.
45
16/11/2010
16/11/2010
No IDE Netbeans v no menu File e escolha a opo New > Open Project...
2.
47
16/11/2010
2.
3.
48
16/11/2010
49
16/11/2010
2.
Na janela que se abre v categoria Web Services e selecione a opo Web Service.
Pressione o boto Next.
50
16/11/2010
2.
3.
51
16/11/2010
52
16/11/2010
16/11/2010
54
16/11/2010
55
16/11/2010
16/11/2010
57
16/11/2010
58
Arquitetura Orientada a
Servios
Exemplo Servidor
Exemplo Cliente
EXEMPLO CLIENTE:
WEB
16/11/2010
No IDE Netbeans v no menu File e escolha a opo New > Open Project...
2.
59
16/11/2010
No IDE Netbeans v no menu File e escolha a opo New > Web Service Client...
2.
3.
60
16/11/2010
61
16/11/2010
Novamente na janela inicial, para o campo Client Style, selecione a opo JAXWS Style.
2.
62
16/11/2010
Clique no boto direito no mouse sobre a pasta Source Packages e selecione a opo
New > Java Package
2.
63
16/11/2010
2.
64
pacote
16/11/2010
65
16/11/2010
Continuando
66
16/11/2010
Continuando
1.
2.
3.
4.
16/11/2010
68
16/11/2010
Grato!
Dvidas? Entre em contato:
Alexandre Bellini
alexandre_bellini@dc.ufscar.br
@alexandredc
Antonio F. Prado
prado@dc.ufscar.br
Luciana A. M. Zaina
lzaina@ufscar.br
www.ges.dc.ufscar.br
Grupo de Engenharia de
Software
69
16/11/2010