You are on page 1of 62

EJB WebService

Caio Nakashima
caio.nakashima@mds.gov.br
caionakashima@gmail.com

Evoluo da Computao 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

Content

N-tier

IP v6

IP Layer

FT SMTP
RMI/IIOP
X
RPC/XDR
Telnet
P
Identity
LDAP SOAP
Organization
HTTP
Jini
Client/Server
UDDI
Protocols

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 servio

Users
Device

Evoluo da Computao Distribuda

Evoluo 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)

+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
Embedded
Is the
the Web
Things
Network
1,000,000s 10,000,000s 100,000,000s

Network
of Things
100,000,000
s

Padres de comunicao

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

Padro de comunicao: 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 atrs de Servios Web expor uma
aplicao como um servio para clientes na Web,
independentemente da aplicao do cliente e seu
ambiente de execuo.
A interoperabilidade o mais importante
caracterstica de um Servio Web e todos os
provedores de tecnologias disponveis, incluindo
Microsoft, esto aderentes aos padres.
Por exemplo, um cliente C# sendo executado em
.NET pode chamar um servio implementado em
Java EJB em um continer J2EE.
A interoperabilidade significa que estes servios so
fracamente acoplados que EJB.

Padronizao
Existem duas organizaes que trabalham na
padronizao de Servios Web.
World Wide Web Consortium (W3C)
Organization for the Advancement of Structured
Information Standards (OASIS)

Eles trabalham na padronizao:


SOAP e WSDL W3C
UDDI - OASIS

Web Services / W3C




Um WebService uma aplicao de software


Identificado por uma URI, cuja interface e atribuio
so definidas, descritas e descobertas atravs de
artefatos XML e suporta interao direta com outras
aplicaes de software utilizando mensagens XML
via protocolos internet

Evoluo da Computao Distribuda

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 / espao)










Entre Empresas
Independente de Linguagem
de Programao
Baseado em Mensagem
Facilmente adaptado em
diferentes protocolos de
transporte
Fracamente Acoplado
Processamento no
eficiente

Ajuda
Fracamente acoplados
permitem que mquinas e usurios de um sistema
distribudo sejam fundamentalmente independentes e
ainda interagir de forma limitada quando isto for
necessrio, compartilhando discos, impressoras e outros
recursos.

Fortemente acoplados
prov um nvel de integrao e compartilhamento de
recursos mais intenso e transparente ao usurio
caracterizando sistemas operacionais distribudos.

Fonte:http://pt.wikipedia.org/wiki/Computao_distribuda

Aplicao Web x Web Services

Web Service

Aplicao Web


Interao Usurio Programa


Componentes de
Integrao Esttica
Servio Monoltico

InteraoProgramaPrograma
Possibilidade de
integrao de
componentes (no
futuro)
Possibilidade de
agregao de servio
(no futuro)

Web Services
Service Grid
Registro
do Servio

Descoberta do
Servio

Registro

Chamada do Servio
Entrega de
Servio

Montagem do Servio

Macro
Servio

Micro
Servio

Business
Process
Management

Micro
Servio

Micro
Servio

Agregao do Servio
Nasdaq

Entrada: Codigo
Sada: Preo

Usurio

Portal de
Servio de
Aes

Agncia Notcias 1
Entrada: Codigo
Sada: Notcias

Entrada: Codigo
Sada: Preo, Notcia,
Comrcio
Agncia Notcias n
Entrada: Codigo
Sada: Notcias

Corretor 1

Entrada: Codigo,
Preo, Qtde

Corretor n

Entrada: Codigo,
Preo, Qtde

Web Services?






Plataforma Neutra
acessvel de forma
padro
Acessvel de forma
interoperacional
Uso simplificado e
ubquo
Barato no caro
Integrao simplificada

Web Services?


Interopervel conecta em redes heterogneas


utilizando padro baseado na web ubquo.
Econmico recicla componentes, no requer
instalao e forte integrao de software.
Automtico No requer interao humana
para transao complexa.
Acessvel Sistemas legados e aplicaes
internas podem ser expostas e acessveis via
Web.
Disponibilidade Servio em qualquer
dispositivo, em qualquer lugar e quando desejar.
Escalvel Sem limite para o escopo e
heterogeniedade das aplicaes.

Web Services Exemplo de uso


Distribuidor

XML
XML

Fornecedor

Internet

Fbrica
XML

XML

Logistica

Crescimento baseado em uma infraestrutura leve e padronizada


para troca de informaes em aplicaes de negcio

Impacto do Web Services nas aplicaes


Des integrao da aplicao
Web Services
Programa
Monoltico

Servio
Apl

Servio
Apl

Servio
Apl

Servio
Sistema

Servio
Sistema

Servio
Sistema

Applicao
Programa
Computador

Internet/Intranet/Extranet

Macro web services Sistemas Virtuais


Um web service
acessvel atravs de
aplicaes ou outros
servios.

Web Services
Balano
Finanas

Fluxo de
Caixa

Portfolio
Informao Estoque
Portfolio pode ser
uma aplicao, um
portal ou um
webservice

Contas

CNN

Notcias

UOL

Micro web services Sistemas Virtuais


Um web service
acessvel atravs de
aplicaes ou outros
servios.

Web Services
Bank
balance
Ortografia

Gramtica

Sinnimos

Editor de Texto
Mdia
Editor de Texto
pode ser aplicao,
uma funcionalidade
ou um web service

Dicionrio

c:\...

Publicao

http://...

Trs leis da computao

Lei de Moore

O poder da computao dobra cada 18 meses.

A largura de banda dobra a cada 12 meses.

Lei de Gilder
Lei de Metcalfe (Efeito da Rede)

O valor da rede cresce exponencialmente a medida


que cresce o nmero de usurios

Impacto da Integrao
Gatilho do efeito da rede

Integrao
customizada

Web Services

Lei de Metcalfe: O valor da rede proporcional ao


quadrado do nmero de participantes.

Mitos: Web Services novo Conceito

Web services uma computao distribuda

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 semntica de alto nvel

Modelo de comunicao baseado em


documentos ser mais popular.

Webservices deve ser baseado em HTTP:




Outros protocolos de transporte podem ser


utilizados.

Web Services


O que falta alm dos servios:

SOAP, WSDL, UDDI

Deficincias:








Qualidade de servio
Gerenciamento
Segurana
Transao
Contexto de usurio
Gerenciamento de Identidade
Workflow

Web Services - Receita




1a fase


2a fase (1 a 2 anos)



Implantar uma aplicao internamente da


organizao procurando interoperabilidade.
SOAP sobre HTTP/S
Implantao com um parceiro confivel.
Registro privado.

3a fase (pelo menos 3 a 4 anos)





Implantar para todos.


Registro pblico.

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 organizao para permitir a


integrao interna.

3a Fase Business Web Services




Implantado em extranet para transaes comerciais


com parceiros de negcio, fornecedores e clientes,
ebXML & UBL

Business Web Services




J2EE


ebXML e UBL






Plataforma padro para implementao do servio


Electronic Business using eXtensible Markup
Language (ebXML)
Universal Business Language (UBL)
Padres business web services
Mais de 16 fornecedores e muito projetos Open Source
http://ebxml.xml.org/

Liberty Project


Padronizao para sistema de identificao

Business Web Services (B2B) x (ebXML)







Colaborao B2B
Entrega de mensagem segura e confivel
Perfil do Parceiro
Repositrio dos dados de objetos de
negcio.

Colaborao B2B
Web Services Simples











Interao Simples
Orientado para cliente
Processos curtos
Sem necessidade de
colaborao de
negcio
Sem perfil do parceiro
No confivel, no
seguro
Sem repositrio
No suporta atribuio
legal

Colaborao B2B










Interao Complexa
Orientado a negcio
Processos longos
Suporta colaborao de
negcio
Suporta perfil do parceiro
Seguro e confivel
Registro e repositrio
Suporta atribuio legal

Colaborao B2B
EAI





Dentro de uma
organizao
Controle
centralizado
Contrato implcito
Pequeno nmero
de processos de
negcio e
participantes

Colaborao B2B






Entre empresas
Controle
Distribudo
Contrato Explcito
Grande nmero
de processos de
negcio e
participantes

Tendncias Orientadas Servio







Evoluo da EAI para padro do WebService


XML RPC => Mensagem XML Assncrono
Atravs da Centralizao
Servio componentizados







Servios componentizvel e composto


Dados encapsulados com o componente
Proprietrio dos dados com os componentes

Corretor de WebServices
Relaes Flexveis Componentes
Adaptativos

Arquitetura do WS - Componentes



Servio de Descrio
Servio de Registro (Publicao) e
Descoberta
Servio de Invocao

Arquitetura Web Service (simplificada)

Registro
2. Client Request
Service Location
PROCURAR

1. Service Registers
PUBLICAR

Web
Service

3. Client calls
Service
LIGAR

Servio
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 binrio

Suporta XML-based RPC (Remote


procedure call)

SOAP no


No um modelo de componente


No uma linguagem de programao




No substitui objetos e componentes EJB,


JavaBeans
No substitui Java

No soluo para tudo




No substitui outras solues de computao


distrubuda como RMI.

SOAP
Simple Object Access Protocol (SOAP)
Esta definio foi abandonada pela W3C na verso
1.2, pois SOAP no 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 requisio XML
na Internet utilizando os protocolos disponibilizados
pelo provedor de servios.

O que SOAP define?







Envelope Mensagem
Regras de codificao
Conveno RPC
Informao sobre o protocolo de
comunicao

Formato da Mensagem SOAP


SOAP Mensagem
Parte Principal MIME
(text/xml)

SOAP Envelope
SOAP Cabealho
Cabealho 1
Cabealho n

Anexos
Anexos

Anexos
t

SOAP Corpo
Corpo
Corpo

SOAP Mensagem Envelope




Informao de Codificao

Cabealho


Pode conter informaes gerenciais




Segurana

Transao

Corpo


RPC Mtodos e parmetros

Dados de Aplicaes

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 servios
web.
descrito como um conjunto de pontos de
comunicao (portas)
Pontos so formados por duas partes
Definio abstrata das operaes e mensagens
Ligao do protocolo com o formato do endereo

Por que WSDL?


Possibilita a automao dos detalhes de
comunicao entre os parceiros
Mquinas podem ler WSDL
Mquinas podem chamar um servio definido em
WSDL

Pode ser descoberto atravs de registros


rbitragem
Um terceiro pode verificar se a comunicao esta em
conformidade com WSDL

Arquitetura do Servio

UDDI
Registro
1. Servio de
Publicao
PUBLICAO

Web
Service

2. Requisio do
Cliente para Encontrar
o Servio
ENCONTRAR

3. Requisio
do Servio
LIGAO

Cliente do
Servio

UDDI - Define o caminho para publicar e


encontrar informao sobre o Web Service
Universal Description, Discovery, and Integration

UDDI (Universal Description, Discovery and Integration)




Pginas Brancas


Pginas Amarelas


Endereo, contato e identificadores


Informaes Categorizadas


Indstria

Produtos / Servios

Localizao

Pginas Verdes


Informaes Tcnicas dos Servios

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 servios


disponibilizados por J2EE


No necessita de mudana de arquitetura


Componentes existentes pode facilmente expor
com Webservice

Muitos benefcios do J2EE so


preservados para WS


Portabilidade, Escalabilidade, Confiabilidade

Liberdade de escolha do fornecedor

Projeto J2EE Web Services Framework




Portabilidade dos componentes de servios


web



Diferentes fornecedores de plataformas


Diferentes ambientes operacionais

Influncia do modelo de programao J2EE


existente para implementao do servio.
Facilidade de programao e implantao

API Java de alto nvel


 Utiliza o modelo de implantao 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 programao do cliente


Define Servios Web baseados em Servlet para
modelo de portas.

Alinhado com JAX-RPC

JSR 109


Define padro de servios web para modelo de


empacotamento e implementao

O que um Web Service?




Um conjunto de portas operando com


mensagem
Portas so operados com um continer



Continer prov um ambiente de execuo


Contrato para o ambiente de execuo que
especificado em JAX-RPC, EJB 2.1, JSR 109

Servios so descritos em um documento WSDL e


publicados para um registro


WSDL especifica um contrato entre o provedor do servio


com o cliente.

Web Service Componente e Continer




Modelo Continer x Componente




Componentes WebServices so executados dentro de


um continer.
Componentes so portveis

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

You might also like