Professional Documents
Culture Documents
Web Services
Agenda
Introduo Web Service
Arquitetura
Solues
Passos bsicos Implementando com Apache Axis
Sucesso da Internet
Disponibilizar parte das informaes corporativas a usurios ou sistemas que extrapolam as fronteiras corporativas E-commerce
Data Layer
Business Layer
Presentation Layer
Interface da aplicao d acesso aos dados aplicacionais
UI
Data Layer
Business Layer
Service Faade
Presentation Layer
Servios Contabilidade
UI Processo Compras
Web Services
Viso Tecnolgica
Web Services uma tecnologia de chamada remota de objetos Permite a infra-estrutura para criao de aplicaes distribudas (web ou no) Permitem a criao de pequenos mdulos de cdigo reutilizveis e disponibilizados para construo de aplicaes LEGO Utiliza protocolos Web como meio de transporte e comunicao Alto grau de abstrao em relao a linguagens de programao e plataformas de hardware / software
Client
(e.g. CalcClient.java)
Java
Web Server
(e.g. Apache Tomcat)
SOAP Binding
Java to SOAP
add(10, 5)
SOAP Request
SOAP to Java
Java
Vantagens
Padro adotado pelo W3C e pela indstria. Atravessa firewalls, roteadores e servidores de proxy. Abordagem simples e fcil de distribuio e de interoperabilidade. Consrcio WS-I- www.ws-i.org
Garantir a interoperabilidade
www.ws-i.org
170+ fabricantes software envolvidos Interoperabilidade entre plataformas, aplicaes e linguagens Maior evidncia de que a indstria est alinhada com os web services
Solues
Documentao
Qualquer plataforma que tenha rotinas de comunicao HTTP e saiba manipular dados em XML pode implementar Web Services.
Passo 2: Implementao
Implementao do servio:
O servio a ser fornecido via web service deve ser identificado e isolado em uma API tipicamente stateless; Normalmente este servio j est implementado no legado, bastando definir e implementar uma API para seu acesso na plataforma original.
Passo 4: Criao do WS
Definies de interesse pblico:
Definio da API (e value objects); Gerao da definio formal do web service (WSDL); Se VOs forem compatveis, o WSDL conter uma descrio completa das estruturas de dados (mesmo as complexas); O WS , na prtica, implementado por uma aplicao web comum (HTTP/HTTPS), sem o uso de qualquer extenso proprietria.
Passo 5: Publicao do WS
A publicao do web service , fisicamente, como a publicao de uma aplicao web comum A definio pblica do web service (WSDL) estar disponvel para download pela prpria aplicao web que o implementa API de web services ser estvel modificaes e atualizaes sero divulgadas com antecedncia
Passo 6: Consumo do WS
Gerao do cliente:
Acesso definio do web service (WSDL) tudo que basta; IDEs tm a capacidade de gerar stub cliente a partir do WSDL;
Apache Axis
A SOAP Processing Engine
JAX-RPC Client System JAX-RPC Server System ( Servlet based ) SAAJ Arquitetura extensvel e flexvel Tools, Exemplos, Documentao, Uma boa para comear com Web Services.
Java
http://java.sun.com/
http://ws.apache.org/axis/
Apache Axis
Exemplo simples
public class Calculator{ public int somar(int numA, int numB){ return numA + numB; } public int subtrair(int numA, int numB){ return numA - numB; } public int multiplicar(int numA, int numB){ return numA * numB; }
}
Tipos Complexos
Deve-se prover o servidor da habilidade de desserializar / serializar os objetos complexos.
Deployment Descriptors
JWS bastante simples, mas possui limitaes:
Cdigo-fonte No pode especificar handlers, mapeamentos, dispatchers
O WSDD ( Web Services Deployment Descriptors ) um mecanismo que facilita a instalao e configurao de um WS permitindo:
Tipo de Mapeamento Diferentes tipos de transporte HTTP/S e CP/IP Anexos Binrios Etc.
Clique com o boto direito do mouse sobre o arquivo, selecione a opo WSDL2Java e depois clique em Generate. As classes sero criadas num pacote padro.
Novos Protocolos
Limitaes actuais:
Segurana? Garantias de Entrega? Transaes? Outros Transportes? Mensagens Assncronas (One-Way)? Encaminhamento (Routing/Addressing)? Outros padres (Ex: Pub/Sub)?
Management
Business Process
Messaging Specifications SOAP WS-Addressing MTOM (Attachments) WS-Eventing Security Specifications WS-Security WS-SecureConversation WS-Trust WS-Federation WS-Federation Active Requestor Profile WS-Federation Passive Requestor Profile Web Services Security Kerberos Binding Reliable Messaging Specifications WS-ReliableMessaging
Security
Reliability
Transactions
Messaging XML
Metadata
HTTP
TCP
SMTP
Authorization Privacy
Security in a Web Services World IBM/MSFT White Paper http://msdn.microsoft.com/library/en-us/dnwssecur/html/securitywhitepaper.asp Abril 2002
WS-Security Specification
http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wss
Concluso
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), WSChoreography , 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, WSFederation (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 (WSResource Framework), WS-Reliablemessaging , WSRP (WS Remote Portals), WS-Security, WS-SecureConversation, WS-SecurityPolicy, WS Security Services TC, WS-TM (WS Transaction Management), WSTransfer, WS-Trust, XML-Encryption, XML-Signature
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