EJB WebService
Caio Nakashima
[email protected]
[email protected]
1
Evolução da Computação em Rede
Waves of
Network Computing
Embedded
Computers
1011
Cars
TVs
Computers
108
Things - 1014
Thermostats
Switches
Packages
Phones
Clothes
Games
Desktops
Clients
Functions
Protocols
Organization
Transfers
Transactions
IP v4
Content
IP Layer
Telemetry
Control
IP v6
Waves of
Network Computing
Things - 1014
Embedded
Computers
1011
Thermostats
Switches
Cars
TVs
Computers
108
Phone
s
Desktops
Packages
Clothes
Games
Clients
Functions
Transfers
Transactions
IP v4
Protocols
Content
IP v6
IP Layer
FT SMTP
RMI/IIOP
X
RPC/XDR
Telnet
P
Identity
LDAP
SOAP
Organization
HTTP
Jini
Client/Server
UDDI
N-tier
Control
Telemetry
JXTA
Web Applications
Web
Services
Polyarchical
Fractal
O novo software
Payment
Developer
X1
Locater
X106
New
Service
X106
Calendar
Authentication
Software
Software como serviço
User’s
Device
Evolução da Computação Distribuída
Evolução da Plataforma
Catch
Phrase
The Network
Is the
Computer
Scale
100s
1,000s
When/Peak
1984/1987
1990/1993
1996/1999
2001/2003
1998/2004
2004/2009
Leaf
Protocol(s)
X
X
+HTTP
(+JVM)
+XML
Portal
+RM
Unknown
Directory(s)
NS, NS+
+CDS
+LDAP(*)
+UDDI
+Jini
+?
Session
RPC, XDR
+CORBA
+CORBA,
RM
+SOAP,
XML
+RM/Jini
+?
Schematic
Objects
The Computer Network of
Legacy to
Is the
Embedded
the Web
Network
Things
1,000,000s 10,000,000s 100,000,000s
Network
of Things
100,000,000
s
Padrões de comunicação
ClientServer
Web
Web
3-Tier Application Services
Hybrid
P2P
Fractal
Communication Patterns: Java 2
Business Systems
DB Server
App Server
J2EE
Web Server
Browser
Client
J2SE/
J2ME
Web
Application
Padrão de comunicação: Sun ONE
Bus.
Sys.
DB
App
XML
(UDDI,
SOAP)
J2EE
Web
Browser
J2SE/
J2ME
Context and Identity
(LDAP, Policy, Liberty)
Web
Service
Conceito
• A ideia atrás de Serviços Web é expor uma
aplicação como um serviço para clientes na Web,
independentemente da aplicação do cliente e seu
ambiente de execução.
• A interoperabilidade é o mais importante
característica de um Serviço Web e todos os
provedores de tecnologias disponíveis, incluindo
Microsoft, estão aderentes aos padrões.
• Por exemplo, um cliente C# sendo executado em
.NET pode chamar um serviço implementado em
Java EJB em um contêiner J2EE.
• A interoperabilidade significa que estes serviços são
fracamente acoplados que EJB.
Padronização
• Existem duas organizações que trabalham na
padronização de Serviços Web.
– World Wide Web Consortium (W3C)
– Organization for the Advancement of Structured
Information Standards (OASIS)
• Eles trabalham na padronização:
• SOAP e WSDL – W3C
• UDDI - OASIS
Web Services / W3C


Um WebService é uma aplicação de software
Identificado por uma URI, cuja interface e atribuição
são definidas, descritas e descobertas através de
artefatos XML e suporta interação direta com outras
aplicações de software utilizando mensagens XML
via protocolos internet
Evolução da Computação Distribuída
Servers
Clients
Servers
Internet
PDA
Cliente Servidor
Cell
Phone
Clients
Web-based
computing
Workstation
Kiosk
Server
Laptop
Web Services/Peer-toPeer
Cliente/Serivdor x. Web Services
Web Service
Cliente / Servidor






Dentro da Empresa
Dependente de um conjunto
de linguagem
Procedural
Geralmente limitado por um
protocolo de transporte
Fortemente Acoplado
Processamento Eficiente
(tempo / espaço)






Entre Empresas
Independente de Linguagem
de Programação
Baseado em Mensagem
Facilmente adaptado em
diferentes protocolos de
transporte
Fracamente Acoplado
Processamento não
eficiente
Ajuda
• Fracamente acoplados
– permitem que máquinas e usuários de um sistema
distribuído sejam fundamentalmente independentes e
ainda interagir de forma limitada quando isto for
necessário, compartilhando discos, impressoras e outros
recursos.
• Fortemente acoplados
– provê um nível de integração e compartilhamento de
recursos mais intenso e transparente ao usuário
caracterizando sistemas operacionais distribuídos.
Fonte:http://pt.wikipedia.org/wiki/Computação_distribuída
Aplicação Web x Web Services
Web Service
Aplicação Web



Interação Usuário Programa
Componentes de
Integração Estática
Serviço Monolítico



InteraçãoProgramaPrograma
Possibilidade de
integração de
componentes (no
futuro)
Possibilidade de
agregação de serviço
(no futuro)
Web Services
Service Grid
Registro
do Serviço
Descoberta do
Serviço
Registro
Chamada do Serviço
Entrega de
Serviço
Montagem do Serviço
Macro
Serviço
Micro
Serviço
Business
Process
Management
Micro
Serviço
Micro
Serviço
Agregação do Serviço
Nasdaq
Entrada: Codigo
Saída: Preço
Portal de
Serviço de
Ações
Usuário
Agência Notícias 1
Entrada: Codigo
Saída: Notícias
Entrada: Codigo
Saída: Preço, Notícia,
Comércio
Agência Notícias n
Entrada: Codigo
Saída: Notícias
Corretor 1
Corretor n
Entrada: Codigo,
Preço, Qtde
Entrada: Codigo,
Preço, Qtde
Web Services?






Plataforma Neutra
É acessível de forma
padrão
Acessível de forma
interoperacional
Uso simplificado e
ubíquo
“Barato” – não caro
Integração simplificada
Web Services?






Interoperável – conecta em redes heterogêneas
utilizando padrão baseado na web ubíquo.
Econômico – recicla componentes, não requer
instalação e forte integração de software.
Automático – Não requer interação humana
para transação complexa.
Acessível – Sistemas legados e aplicações
internas podem ser expostas e acessíveis via
Web.
Disponibilidade – Serviço em qualquer
dispositivo, em qualquer lugar e quando desejar.
Escalável – Sem limite para o escopo e
heterogeniedade das aplicações.
Web Services Exemplo de uso
Distribuidor
XML
XML
Fornecedor
Internet
Fábrica
XML
XML
Logistica
“Crescimento baseado em uma infraestrutura leve e padronizada
para troca de informações em aplicações de negócio”
Impacto do Web Services nas aplicações
“Des integração da aplicação”
Web Services
Programa
Monolítico
Serviço
Apl
Serviço
Apl
Serviço
Apl
Serviço
Sistema
Serviço
Sistema
Serviço
Sistema
Applicação
Programa
Computador
Internet/Intranet/Extranet
Macro web services – Sistemas Virtuais
• Um web service é
acessível através de
aplicações ou outros
serviços.
Web Services
Balanço
Finanças
Fluxo de
Caixa
Portfolio
Informação Estoque
“Portfolio” pode ser
uma aplicação, um
portal ou um
webservice
Contas
CNN
Notícias
UOL
Micro web services – Sistemas Virtuais
• Um web service é
acessível através de
aplicações ou outros
serviços.
Web Services
Bank
balance
Ortografia
Gramática
Sinônimos
Editor de Texto
Mídia
“Editor de Texto”
pode ser aplicação,
uma funcionalidade
ou um web service
Dicionário
c:\...
Publicação
http://...
Três leis da computação

Lei de Moore


Lei de Gilder


O poder da computação dobra cada 18 meses.
A largura de banda dobra a cada 12 meses.
Lei de Metcalfe (Efeito da Rede)

O valor da rede cresce exponencialmente a medida
que cresce o número de usuários
Impacto da Integração
Gatilho do efeito da rede
Integração
customizada
Web Services
Lei de Metcalfe: O valor da rede é proporcional ao
quadrado do número de participantes.
Mitos: Web Services novo Conceito

Web services é uma computação distribuída
Distributed Computing ala CORBA /
Concept
Java
Interface Description CORBA IDL, Java interface
RPC support
ORBs, Idl2java compilers, rmic
Service Registry
CORBA naming service, JNDI
Messaging support CORBA Event/Notification service, JMS
Transaction support CORBA Transaction service, JTS
Secuity support
CORBA Security service, Java security
Basic Web Services
WSDL
SOAP, compilers for WSDL
UDDI
?
?
?
Mitos: Web Services novo Conceito

Webservice requer somente:



Webservice é baseado no paradigma
RPC


SOAP, WSDL, UDDI
Necessita de uma semântica de alto nível
Modelo de comunicação baseado em
documentos será mais popular.
Webservices deve ser baseado em HTTP:

Outros protocolos de transporte podem ser
utilizados.
Web Services

O que falta além dos serviços:


SOAP, WSDL, UDDI
Deficiências:







Qualidade de serviço
Gerenciamento
Segurança
Transação
Contexto de usuário
Gerenciamento de Identidade
Workflow
Web Services - Receita

1a fase



2a fase (1 a 2 anos)



Implantar uma aplicação internamente da
organização procurando interoperabilidade.
SOAP sobre HTTP/S
Implantação com um parceiro confiável.
Registro privado.
3a fase (pelo menos 3 a 4 anos)


Implantar para todos.
Registro público.
Web Services Fases

1a Fase –Web Services Simples


2a Fase –Web Services EAI (enterprise
application integration)


Focado no cliente, stateless, SOAP over HTTP/S
Implantado dentro da organização para permitir a
integração interna.
3a Fase – Business Web Services

Implantado em extranet para transações comerciais
com parceiros de negócio, fornecedores e clientes,
ebXML & UBL
Business Web Services

J2EE


ebXML e UBL






Plataforma padrão para implementação do serviço
Electronic Business using eXtensible Markup
Language (ebXML)
Universal Business Language (UBL)
Padrões business web services
Mais de 16 fornecedores e muito projetos Open Source
http://ebxml.xml.org/
Liberty Project

Padronização para sistema de identificação
Business Web Services (B2B) x (ebXML)




Colaboração B2B
Entrega de mensagem segura e confiável
Perfil do Parceiro
Repositório dos dados de objetos de
negócio.
Colaboração B2B
Web Services Simples








Interação Simples
Orientado para cliente
Processos curtos
Sem necessidade de
colaboração de
negócio
Sem perfil do parceiro
Não confiável, não
seguro
Sem repositório
Não suporta atribuição
legal
Colaboração B2B








Interação Complexa
Orientado a negócio
Processos longos
Suporta colaboração de
negócio
Suporta perfil do parceiro
Seguro e confiável
Registro e repositório
Suporta atribuição legal
Colaboração B2B
EAI




Dentro de uma
organização
Controle
centralizado
Contrato implícito
Pequeno número
de processos de
negócio e
participantes
Colaboração B2B




Entre empresas
Controle
Distribuído
Contrato Explícito
Grande número
de processos de
negócio e
participantes
Tendências Orientadas à Serviço




Evolução da EAI para padrão do WebService
XML RPC => Mensagem XML Assíncrono
Através da Centralização
Serviço componentizados





Serviços componentizável e composto
Dados encapsulados com o componente
Proprietário dos dados com os componentes
Corretor de WebServices
Relações Flexíveis – Componentes
Adaptativos
Arquitetura do WS - Componentes



Serviço de Descrição
Serviço de Registro (Publicação) e
Descoberta
Serviço de Invocação
Arquitetura Web Service (simplificada)
Registro
2. Client Request
Service Location
PROCURAR
1. Service Registers
PUBLICAR
Web
Service
3. Client calls
Service
LIGAR
Serviço
Cliente
SOAP


Simple Object Access Protocol
Protocolo similar





XML é utilizado para codificar dados


IIOP for CORBA
Internet Inter-Orb Protocol para Common Object
Request Broker Architecture
JRMP for RMI
Java Remote Method Protocol para Remote
Method Invocation
Protocolo baseado em texto x protocolo binário
Suporta XML-based RPC (Remote
procedure call)
SOAP não é

Não é um modelo de componente


Não é uma linguagem de programação


Não substitui objetos e componentes – EJB,
JavaBeans
Não substitui Java
Não é solução para tudo

Não substitui outras soluções de computação
distrubuída como RMI.
SOAP
• Simple Object Access Protocol (SOAP)
• Esta definição foi abandonada pela W3C na versão
1.2, pois SOAP não acessa objetos em particular.
• SOAP é um protocolo para trocar mensagens XML
entre computadores, geralmente utilizando o
protocolo HTTP ou HTTPS.
• Um cliente Web Service envia uma requisição XML
na Internet utilizando os protocolos disponibilizados
pelo provedor de serviços.
O que SOAP define?




Envelope – Mensagem
Regras de codificação
Convenção RPC
Informação sobre o protocolo de
comunicação
Formato da Mensagem SOAP
SOAP Mensagem
SOAP Envelope
SOAP Cabeçalho
Parte Principal MIME
(text/xml)
Cabeçalho 1
Cabeçalho n
Anexos
Anexos
Anexos
t
SOAP Corpo
Corpo
Corpo
SOAP Mensagem Envelope

Informação de Codificação

Cabeçalho


Pode conter informações gerenciais

Segurança

Transação
Corpo

RPC Métodos e parâmetros

Dados de Aplicações
SOAP Encoding
• Rules of expressing applicationdefined data types in XML
• Based on W3C XML Schema
• Simple values
– Built-in types from XML Schema, Part 2 (simple
types, enumerations, arrays of bytes)
• Compound values
– Structs, arrays, complex types
SOAP Request
<?xml version="1.0" encoding="UTF-8"?>
<S:Envelope xmlns:S=
"http://schemas.xmlsoap.org/soap/envelope/">
<S:Header/>
<S:Body>
<ns2:qtde xmlns:ns2="http://pacoteEstado/">
<arg0>AM</arg0>
</ns2:qtde>
</S:Body>
</S:Envelope>
SOAP Response
<?xml version="1.0" encoding="UTF-8"?>
<S:Envelope xmlns:S=
"http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<ns2:qtdeResponse
xmlns:ns2="http://pacoteEstado/">
<return>
Estado: Amazonas IBGE: 13 Area:1570745.6
Quantidade de Municipios:62
</return>
</ns2:qtdeResponse>
</S:Body>
</S:Envelope>
SOAP
WSDL
• Linguagem XML para descrever serviços
web.
• É descrito como um conjunto de pontos de
comunicação (portas)
• Pontos são formados por duas partes
• Definição abstrata das operações e mensagens
• Ligação do protocolo com o formato do endereço
Por que WSDL?
• Possibilita a automação dos detalhes de
comunicação entre os parceiros
• Máquinas podem ler WSDL
• Máquinas podem chamar um serviço definido em
WSDL
• Pode ser descoberto através de registros
• Árbitragem
• Um terceiro pode verificar se a comunicação esta em
conformidade com WSDL
Arquitetura do Serviço
UDDI
Registro
1. Serviço de
Publicação
PUBLICAÇÃO
Web
Service
2. Requisição do
Cliente para Encontrar
o Serviço
ENCONTRAR
3. Requisição
do Serviço
LIGAÇÃO
Cliente do
Serviço
UDDI - Define o caminho para publicar e
encontrar informação sobre o Web Service
Universal Description, Discovery, and Integration
UDDI (Universal Description, Discovery and Integration)

Páginas Brancas


Páginas Amarelas


Endereço, contato e identificadores
Informações Categorizadas

Indústria

Produtos / Serviços

Localização
Páginas Verdes

Informações Técnicas dos Serviços
Plataforma J2EE & Web Services
B2B
Applications
Existing
Applications
B2C
Applications
Web
Services
Application Server
Wireless
Applications
Enterprise
Information
Systems
Por que J2EE para Web Services?

Webservice é um dos muitos serviços
disponibilizados por J2EE



Não necessita de mudança de arquitetura
Componentes existentes pode facilmente expor
com Webservice
Muitos benefícios do J2EE são
preservados para WS

Portabilidade, Escalabilidade, Confiabilidade

Liberdade de escolha do fornecedor
Projeto J2EE Web Services Framework

Portabilidade dos componentes de serviços
web


Diferentes fornecedores de plataformas
Diferentes ambientes operacionais

Influência do modelo de programação J2EE
existente para implementação do serviço.
Facilidade de programação e implantação

API Java de alto nível
 Utiliza o modelo de implantação existente
J2EE 1.4 and Java EE 5




Guarda chuva para WebServices
JSR 109, JAX-RPC, JAXR, EJB 2.1, Servlet 2.4,
J2EE Web Services Framework

JAX-RPC (JAX-WS)



EJB 2.1


Define o modelo de portas Stateless Session Beanbased Web services
Servlet 2.4


Define o modelo de programação do cliente
Define Serviços Web baseados em Servlet para
modelo de portas.
Alinhado com JAX-RPC
JSR 109

Define padrão de serviços web para modelo de
empacotamento e implementação
O que é um Web Service?


Um conjunto de portas operando com
mensagem
Portas são operados com um contêiner



Contêiner provê um ambiente de execução
Contrato para o ambiente de execução que é
especificado em JAX-RPC, EJB 2.1, JSR 109
Serviços são descritos em um documento WSDL e
publicados para um registro

WSDL especifica um contrato entre o provedor do serviço
com o cliente.
Web Service Componente e Contêiner

Modelo Contêiner x Componente



Componentes WebServices são executados dentro de
um contêiner.
Componentes são portáveis
Componentes WebServices

Web-tier (portas baseadas em Servlet)

EJB-tier (portas baseadas em stateless session bean)
Web Service Componentes
Componentes
WebServices
Source: Web Services for J2EE (JSR 109), V1.0
Download

UDDI - DAINF