2. Estratégias diferentes que permitem a
comunicação entre aplicações distribuídas.
Tipos distintos de comunicação em um sistema
distribuído:
◦ Sockets
◦ RMI - Remote Method Invocation
◦ CORBA – Commom Object Request Broker Architecture
◦ EJB – Enterprise Java Bean
◦ Web Services
Prof. Adriano Teixeira de Souza
3. Um Web Service é:
Qualquer serviço que é disponibilizado através da
web.
Qualquer serviço que possibilita duas aplicações de
computador trocarem dados.
Principalmente, mas não exclusivamente baseado
em:
◦ XML para codificação de dados
◦ HTTP para transporte de dados
• Um documento XML transmitido remotamente e mapeado para
um programa executável.
Prof. Adriano Teixeira de Souza
4. Comunicação entre aplicações de WS usam 4 camadas que
empacotam a requisição e a resposta entre o servidor e o cliente.
◦ XML – possibilita estabelecer objetos, métodos, parâmetros, dados e
tipos de dados
◦ SOAP – protocolo que estabelece a comunicação entre os ambientes
◦ WSDL – descreve o serviço (XML)
◦ UDDI – representa service broker. Contém as descrições dos WS.
Prof. Adriano Teixeira de Souza
5. Registro
UDDI
Consumidor Provedor de
do serviço serviços
Prof. Adriano Teixeira de Souza
6. Web Service Description Language
Esforço da W3C
Descreve interface para consumir
um Serviço Web
- Interface: operações (entrada e saída)
- Acesso (ligação de protocolo)
- Ponto final (localização do Serviço)
Prof. Adriano Teixeira de Souza
16
7. Marcação XML para descrever serviços disponíveis em uma
rede
Descreve a interface, protocolos de ligação e entrega de
serviço
Fornece uma maneira uniforme de descrever serviços
abstratos UDDI
Serviços Web são pontos finais de rede que operam em
mensagens
Prof. Adriano Teixeira de Souza
17
8. Universal Description, Discovery, and Integration Protocol
Diretório independente de plataforma de descrição para Serviços Web
Método padrão para publicar e descobrir Serviços Web e fornecedores
Suporta vários tipos de descrição de serviços, não limitados à WSDL
Registros UDDI podem ser gerados a partir de descrições WSDL
Prof. Adriano Teixeira de Souza
9. Simple Object Access Protocol
Recomendação W3C
Transporte de dados XML:
- emissor / receptor
- ligação de protocolo
- aspectos de comunicação
- conteúdo
Prof. Adriano Teixeira de Souza
10. Protocolo para troca de informações estruturadas em uma
plataforma descentralizada e distribuída, utilizando tecnologias
baseadas em XML
Sua especificação define um framework que provê maneiras para
se construir mensagens que podem trafegar através de diversos
protocolos
◦ Foi especificado de forma a ser independente de qualquer modelo de
programação ou outra implementação específica
As mensagens SOAP são documentos XML que aderem a uma
especificação fornecida pelo órgão W3C
Prof. Adriano Teixeira de Souza
13. Dois fatores chave:
◦ ubiqüidade
◦ facilidade de uso
Interoperável:
◦ Neutro em relação a SO e linguagem
◦ Integração Java & .NET : simples e barata
Todo mundo dá suporte ou irá dar a Serviços Web:
◦ Necessário dar suporte a Serviços Web para facilitar
Integração
Não-invasivos(impactante):
◦ Baseados em protocolos ubiqüos: HTTP/SMTP
◦ Complementam tecnologias já existentes
Prof. Adriano Teixeira de Souza
14. Integrar sistemas heterogêneos dentro de
empresas;
Integrar sistemas remotos através da
Internet;
Integrar diferentes plataformas de hardware,
software e S.O.;
Fornecer serviços a terceiros.
Obs.: Várias empresas e instituições vêm adotando esta
tecnologia como infra-estrutura para expor suas
aplicações, aumentando assim, a demanda pelo seu
desempenho....
15. INTEGRAÇÃO
◦ Interna:
Dados como nome, endereço, telefone, matrícula, etc,
todas as áreas da empresa utilizam. Assim, estes dados
podem ser disponibilizados (em um formato comum)
para que sistemas desenvolvidos por outras áreas
possam utilizar em seus aplicativos específicos.
◦ Externa:
Gestão da cadeia de suprimentos. Esta integração é
baseada na interação que existe entre várias empresas
durante os diversos processos de fabricação e a logística.
Prof. Adriano Teixeira de Souza
16. boa arquitectura
DNA
Aplicação Central Compras
Data Layer Business Presentation
Layer Layer
Interface da aplicação
dá acesso aos dados
aplicacionais
Prof. Adriano Teixeira de Souza
17. Interface desacoplado
da lógica de
processamento dos
dados
troca de mensagens
boa arquitectura
3-tier service
Serviço Central Compras UI
Data Layer Business Service Presentation
Layer Façade Layer
Dados e Lógica Negócio
encapsulados por uma Web Service Standards
Web Service Façade permitem ligações
cross-platform
Prof. Adriano Teixeira de Souza
18. Facilitar o uso da API JAX-RPC e do modelo de
implantação
Anotações baseados em JSR-181
Exemplo Básico:
◦ Anotações:
@WebService
@WebMethod
@WebParam
@WebResult
Prof. Adriano Teixeira de Souza
19. @WebService(name = "TravelAgent", serviceName="TravelAgentService")
@Stateless
public class TravelAgentBean implements TravelAgentRemote
{
@PersistenceContext(unitName="titan")
private EntityManager manager;
@WebMethod
public void createCabin( @WebParam(name = "Cabin") Cabin cabin )
{
manager.persist(cabin);
}
@WebMethod
@WebResult(name = "Cabin")
public Cabin findCabin(@WebParam(name = "ID") int pKey )
{
return manager.find(Cabin.class, pKey);
}
}
Prof. Adriano Teixeira de Souza
20. Deve ser colocada na classe de implementação
de bean de sessão sem informação de estado
@WebService(name,wsdlLocation,endpointInterface,
portName)
◦ name: nome do serviço Web quando mapeado para
WSDL. Assume como padrão o nome da classe Java
ou interface.
◦ wsdlLocation: define a url do documento wsdl.
◦ endpointInterface: externaliza o contrato do serviço
Web na forma de uma interface Web.
◦ portName: porta WSDL utilizada.
Prof. Adriano Teixeira de Souza
21. Métodos anotados com @WebMethod estarão disponíveis
para o serviço Web.
Se a classe for anotada com @WebService e nenhum
método com @WebMethod, todos os métodos estarão
disponíveis no Web Service.
Boa prática de projeto para reduzir dependências entre
módulos.
Atributo operationName é utilizado para definir a operação
WSDL que o método anotado implementa. Se não
especificado, o nome do método é utilizado.
Prof. Adriano Teixeira de Souza
22. Permite controlar o WSLD gerado para um método
Java sinalizado com @WebMethod
Se o estilo for RPC/LITERAL(wsdl:part), o atributo
name() configurará o nome wsdl:part
Exemplo (produz um wsdl):
◦ @WebMethod(OperationName = “CheckStatus”)
◦ Public int checkStatus(
◦ @WebParam(name = “ReservationID”) String reservationID
◦ @WebParam(name = “CustomerID”, mode =
WebParam.Mode.OUT) javax.ws.Holder<Integer> customerID){
customerID.value = getCustomerID(reservationID);
Return status;
}
Prof. Adriano Teixeira de Souza
23. Fornece a mesma funcionalidade pra valores de
retorno que @WebParam oferece para parâmetros
de métodos
Prof. Adriano Teixeira de Souza
24. Utilizar o atributo endpointInterface() da anotação
@javax.jws.WebService.
O contrato dos serviços Web podem ser mantidos em
uma interface Java externa.
Com essa metodologia, somente a anotação
@WebService é requerida, as outras são opcionais.
Ao invés de manter tudo dentro da implementação EJB,
todos os métodos na interface são expostos no serviço
Web.
Prof. Adriano Teixeira de Souza
25. package com.titan.webservice;
import javax.jws.WebService;
@WebService
public interface TravelAgentEndpoint{
public String makeReservation(…)
}
Bean de implementação que referencia a interface endpoint
Import javax.jws.WebService;
@WebService(endpointInterface =
“com.titan.webservice.TravelAgentEndpoint”)
public class TravelAgentBean implements TravelAgentEndpoint {
// (implementação da interface opcional)
Prof. Adriano Teixeira de Souza