Professional Documents
Culture Documents
Corporativas Avançadas
Web Services
Marcelo Iury
iury@dsc.ufcg.edu.br
Agenda
Introdução
Web Service
Arquitetura
Soluções
Passos básicos
Implementando com Apache Axis
Novos protocolos
Conclusão
O cenário de TI nas corporações
Novas tendências batiam à porta das
corporações
Migraram o foco do “gerenciamento de dados” para o
“gerenciamento dos processos e clientes”
Redesenho dos processos e implantação dos grandes
sistemas de gestão empresarial (ERP)
Sucesso da Internet
Disponibilizar parte das informações corporativas a
usuários ou sistemas que extrapolam as fronteiras
corporativas
E-commerce
Enterprise Application Integration
boa arquitectura
DNA
Interface da aplicação
dá acesso aos dados
aplicacionais
Service Oriented Architecture
Interface desacoplado
da lógica de
processamento dos
dados
troca de mensagens
boa arquitectura
3-tier service
Business
Process
Automation
Serviço RH
Múltiplos serviços
combinados num único
processo de negócio
Web Services
Visão Tecnológica
SOAP
Message
/ XML
Transport
HTTP(S)
Discovery
UDDI
Description
WSDL
Implementation
.NET/J2EE
Business
Logic Data
Invocação de Web Services
<soap:Envelope
<soap:Body>
Client <add> Web Server
<i1>10</i1>
(e.g. CalcClient.java) calculator.add(10, 5) (e.g. Apache Tomcat)
<i2>5</i2>
</add>
Java </soap:Body>
</soap:Envelope> Web Service Toolkit
(e.g. Apache Axis)
SOAP Binding
Java to SOAP
Web Service
add(10, 5)
Code
(e.g. Calculator.java)
SOAP Request SOAP
to Java Java
Vantagens
Padrão adotado pelo W3C e pela
indústria.
Atravessa firewalls, roteadores e
servidores de proxy.
Abordagem simples e fácil de distribuição
e de interoperabilidade.
Consórcio WS-I- www.ws-i.org
Garantir a interoperabilidade
Padrões abertos
Independente de plataforma
www.ws-i.org
Maturidade da solução
Integração com IDEs
Reutilização da segurança
Escalabilidade (implementação server-
side e stateless)
Documentação
Tecnologias mais conhecidas
Framework .NET
Java
Apache Axis
JaxRPC
IBM SOAP Toolkit
Qualquer plataforma que tenha rotinas de
comunicação HTTP e saiba manipular
dados em XML pode implementar Web
Services.
Passo 1: Definição do serviço
Implementação do serviço:
O serviço a ser fornecido via web service deve
ser identificado e “isolado” em uma API
tipicamente stateless;
Normalmente este serviço já está
implementado no “legado”, bastando definir e
implementar uma API para seu acesso na
plataforma original.
Passo 3: Value Objects
Geração do cliente:
Acesso à definição do web service (WSDL) é
tudo que basta;
IDEs têm a capacidade de gerar stub cliente a
partir do WSDL;
Apache Axis
Instalação
Apache Tomcat (version 4.1.x)
http://jakarta.apache.org/tomcat/
Java
http://java.sun.com/
Apache Axis
http://ws.apache.org/axis/
Teste – Happy Axis
http://localhost:8080/axis
Exemplo simples
Import localhost.*;
public class CalculadoraClient{
public static void main(String [] args) {
try {
CalculadoraService calcSF = new CalculadoraServiceLocator();
Calculadora calc = calcSF.getCalculadora();
System.out.println(“somar(5, 3) = " + calc.somar(5, 3));
} catch (Exception e) {
System.err.println("Execution failed. Exception: " + e);
}
}
}
Generating Stubs, Compiling and
Running the Stub Client
Consumindo WS usando WSDL2Java
Segurança?
Garantias de Entrega?
Transações?
Outros Transportes?
Mensagens Assíncronas (One-Way)?
Encaminhamento (Routing/Addressing)?
Outros padrões (Ex: Pub/Sub)?
Web Services Protocols (WS-*)
Messaging Specifications
SOAP
Connected Business WS-Addressing
Applications Management … MTOM (Attachments)
Process WS-Eventing
Security Specifications
WS-Security
WS-SecureConversation
WS-Trust
Metadata
WS-Federation
Security Reliability Transactions WS-Federation Active
Requestor Profile
WS-Federation Passive
Requestor Profile
Web Services Security
Messaging Kerberos Binding
Reliable Messaging
XML Specifications
WS-ReliableMessaging
Transaction Specifications
HTTP TCP SMTP … WS-Coordination
WS-AtomicTransaction
WS-BusinessActivity
Metadata Specifications
Web Services Security Roadmap
Hoje Security
SOAP Foundation
WS-Security Specification
http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wss
Conclusão
Existe muita propaganda sobre Web
Services
Primeiramente: Eu adoro WS!!!
O formato texto aumenta muito o overhead
Não existe “neutralidade” de transporte
Diferentes versões de padrões
Existem muitos padrões que “interagem”, mas
não definem nenhuma restrição para
interagirem
UDDI não atende as necessidades
Ferramentas de geração automática atrapalham
Não existe interoperabilidade 100%
WS-*
ASAP (Asynchronous Service Access Protocol), BPEL4WS (Business
Process Execution Language), ebSOA TC (Electronic Business Service
Oriented Architecture), ebXML (Electronic Business XML), International
Health Continuum TC, oBIX TC , SAML (Security Assertion Markup
Language), SOAP (Simple Object Access Protocol), SOAP MTOM (SOAP
Message Transmission Optimization Mechanism), ranslation WS TC , UBL
(Universal Business Language), UDDI (Universal Description, Discovery,
and Integration), WS-Addressing, WS-AtomicTransaction, WSBPEL
(Business Process Execution Language), WS-CAF (WS Composite
Application Framework ), WS-CF (WS Coordination Framework), WS-
Choreography , WS-CDL (Web Services Choreography Description
Language), WS-Coordination, WS-CTX, WS Context, WS-Discovery (Web
Services Dynamic Discovery), WSDL (WS Description Language), WSDM
(WS Distributed Management), WS-Enumeration, WS-Eventing, WS-
Federation (Web Services Federation Language), WSIL (WS Inspection
Language), WS-Manageability, WS-MetadataExchange (Web Services
Metadata Exchange), WS-MessageDelivery, WS-Notification, WS-Policy,
WS-Provisioning, WS-Reliability, WS Reliable Messaging, WS-RF (WS-
Resource Framework), WS-Reliablemessaging , WSRP (WS Remote
Portals), WS-Security, WS-SecureConversation, WS-SecurityPolicy, WS
Security Services TC, WS-TM (WS Transaction Management), WS-
Transfer, WS-Trust, XML-Encryption, XML-Signature
Java Web Services Developer Pack
2.0
Fast Infoset
Service Registry
XML
JAXB
JAXP
JAXR
JAX-RPC
SAAJ
JAXM
XML Web Services Security
Service Registry
Sun Java Streaming XML Parser
JSTL
Web Services Project @ Apache
Addressing (WS-Addressing)
Axis (SOAP)
EWS (J2EE 1.4)
JaxMe (JAXB)
jUDDI (UDDI)
Kandula (WS-Coordination, WS-AtomicTransaction, WS-
BusinessActivity)
Mirae (J2ME)
Muse (WSDM MUWS)
Pubscribe (WS-Notification)
Sandesha (WS-ReliableMessaging)
Scout (JAXR)
Woden (WSDL 2.0)
WSIF
WSRF (WS-ResourceFramework)
WSS4J (WS-Security)
XML-RPC
Fontes de consulta
http://java.sun.com/webservices
developers.ibm.com/webservices
JavaWorld: www.javaworld.com
webservices.org
www.uddi.org
xml.apache.org
http://www.tusc.com.au/tutorial/html/chap9
.html