1 ejb webservice caio nakashima caio.nakashima@mds.gov.br caionakashima@gmail.com
Post on 22-Apr-2015
108 Views
Preview:
TRANSCRIPT
1
EJB WebService
Caio Nakashima
caio.nakashima@mds.gov.br
caionakashima@gmail.com
Evolução da Computação em Rede
Things - 1014
Computers 108
Embedded Computers
1011
Desktops
TransfersTransfers TransactionsTransactions ContentContent Telemetry Telemetry ControlControl
Clients
Functions
Organization
Protocols
Waves of Network Computing
IP v6IP v4 IP Layer
SwitchesSwitches
PackagesPackages
ThermostaThermostatsts
ClothesClothesPhonesPhones
TVsTVs
CarsCars
GamesGames
Things - 1014
Computers 108
Embedded Computers
1011
Desktops
Client/Server
Web ApplicationsWeb Applications
Web Web ServicesServices
FractalFractal
PolyarchicalPolyarchical
N-tier
FTPTelne
t HTTP
XRPC/XDR
SMTP
Clients
Functions
Organization
Protocols
SOAPSOAP
RMI/IIOPRMI/IIOP
JiniJini
IdentityIdentity
UDDIUDDI
LDAPLDAP
JXTAJXTA
Waves of Network Computing
IP v6IP v4 IP Layer
PhonePhoness
TVsTVs
CarsCars
GamesGames
SwitchesSwitches
PackagesPackages
ThermostatsThermostats
ClothesClothes
TransfersTransfers TransactionsTransactions ContentContent TelemetryTelemetry ControlControl
O novo software
Software como serviçoSoftware
LocaterLocater
PaymentPayment
AuthenticationAuthentication
NewNewServiceService User’sUser’s
DeviceDevice
X10X1066
CalendarCalendar
DeveloperDeveloper
X10X1066
X1X1
Evolução da Computação Distribuída
Evolução da Plataforma
CatchCatchPhrasePhrase
The NetworkThe NetworkIs the Is the
ComputerComputer ObjectsObjectsLegacy to Legacy to the Webthe Web
The The Computer Is Computer Is
thetheNetworkNetwork
Network of Network of Embedded Embedded
ThingsThingsNetworkNetworkof Thingsof Things
ScaleScale
When/PeakWhen/Peak
LeafLeafProtocol(s)Protocol(s)
Directory(s)Directory(s)
SessionSession
100s100s 1,000s1,000s 1,000,000s1,000,000s 10,000,00010,000,000ss
100,000,000100,000,000ss
100,000,00100,000,000s0s
1984/19871984/1987 1990/19931990/1993 1996/19991996/1999 2001/20032001/2003 1998/20041998/2004 2004/20092004/2009
XX XX +HTTP+HTTP(+JVM)(+JVM)
+XML+XMLPortalPortal
+RM+RM UnknownUnknown
NS, NS+NS, NS+ +CDS+CDS +LDAP(*)+LDAP(*) +UDDI+UDDI +Jini+Jini +?+?
RPC, XDRRPC, XDR +CORBA+CORBA +CORBA,+CORBA,RMRM
+SOAP,+SOAP,XMLXML
+RM/Jini+RM/Jini +?+?
SchematicSchematic
Padrões de comunicação
Client-Server 3-Tier
Web Applicatio
n
Web Service
s
Hybrid
P2PFractal
Communication Patterns: Java 2
Business SystemsBusiness Systems
DB ServerDB Server
App ServerApp Server
Web ServerWeb Server
BrowserBrowserClientClient
Web Applicatio
n
J2EEJ2EE
J2SE/J2SE/J2MEJ2ME
Padrão de comunicação: Sun ONE
Bus.Bus.Sys.Sys.
DBDB
AppApp
WebWeb
BrowserBrowser
Context and IdentityContext and Identity(LDAP, Policy, Liberty)(LDAP, Policy, Liberty)
J2EEJ2EE
J2SE/J2SE/J2MEJ2ME
XMLXML(UDDI, (UDDI, SOAP)SOAP)
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
Cliente Servidor
Web-based computing
Servers
Clients
Clients
Servers
Internet
PDA CellPhone
Server
LaptopKiosk
Workstation
Web Services/Peer-to-Peer
Cliente/Serivdor x. Web Services
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
Cliente / Servidor Web Service
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
Interação Usuário - Programa
Componentes de Integração Estática
Serviço Monolítico
InteraçãoPrograma-Programa
Possibilidade de integração de componentes (no futuro)
Possibilidade de agregação de serviço (no futuro)
Aplicação Web Web Service
Web Services
Service Grid
Descoberta do Serviço
Entrega de Serviço
Registro do Serviço
Chamada do Serviço
Registro
Montagem do Serviço
MacroServiço Micro
Serviço
MicroServiço
MicroServiço
BusinessProcess
Management
Agregação do Serviço
Portal de Serviço de
AçõesEntrada: Codigo
Saída: Preço, Notícia, Comércio
Agência Notícias 1 Entrada: CodigoSaída: Notícias
Corretor 1Entrada: Codigo,
Preço, Qtde
Usuário
NasdaqEntrada: Codigo
Saída: Preço
Agência Notícias nEntrada: CodigoSaída: Notícias
Corretor nEntrada: 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.
Fornecedor
Logistica
Distribuidor
FábricaInternetXML
XML
XML
XML
“Crescimento baseado em uma infraestrutura leve e padronizada para troca de informações em aplicações de negócio”
Web Services Exemplo de uso
Web Services
ServiçoSistema
ServiçoApl
ServiçoSistema
ServiçoApl
ServiçoSistema
ServiçoApl
Computador
Programa
Applicação
ProgramaMonolítico
Internet/Intranet/Extranet
Impacto do Web Services nas aplicações
“Des integração da aplicação”
Finanças
Notícias
Informação Estoque
“Portfolio” pode ser uma aplicação, um portal ou um webservice
• Um web service é acessível através de aplicações ou outros serviços.
Web Services
Portfolio
Balanço
Contas
Fluxo de Caixa
CNN
UOL
Macro web services – Sistemas Virtuais
Gramática
Bank balance
Publicação
Mídia“Editor de Texto” pode ser aplicação, uma funcionalidade ou um web service
• Um web service é acessível através de aplicações ou outros serviços.
Web Services
Editor de Texto
Ortografia
Dicionário
Sinônimos
c:\...
Micro web services – Sistemas Virtuais
http://...
Três leis da computação
Lei de Moore O poder da computação dobra cada 18 meses.
Lei de Gilder 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
Web ServicesIntegração
customizada
Lei de Metcalfe: O valor da rede é proporcional ao quadrado do número de participantes.
Gatilho do efeito da rede
Mitos: Web Services novo Conceito
Web services é uma computação distribuída
Concept Basic Web ServicesInterface Description CORBA IDL, Java interface WSDLRPC support ORBs, Idl2java compilers, rmic SOAP, compilers for WSDLService Registry CORBA naming service, JNDI UDDIMessaging support CORBA Event/Notification service, JMS ?Transaction support CORBA Transaction service, JTS ?Secuity support CORBA Security service, Java security ?
Distributed Computing ala CORBA / Java
Webservice requer somente: SOAP, WSDL, UDDI Necessita de uma semântica de alto nível
Webservice é baseado no paradigma RPC Modelo de comunicação baseado em
documentos será mais popular. Webservices deve ser baseado em HTTP:
Outros protocolos de transporte podem ser utilizados.
Mitos: Web Services novo Conceito
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 Implantar uma aplicação internamente da
organização procurando interoperabilidade. SOAP sobre HTTP/S
2a fase (1 a 2 anos) 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 Focado no cliente, stateless, SOAP over HTTP/S
2a Fase –Web Services EAI (enterprise application integration)
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
Plataforma padrão para implementação do serviço ebXML e UBL
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
Colaboração B2B
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
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
Web Services Simples
Colaboração B2B
Dentro de uma organização
Controle centralizado
Contrato implícito
Pequeno número de processos de negócio e participantes
Entre empresas Controle
Distribuído Contrato
Explícito Grande número
de processos de negócio e participantes
EAI
Colaboração B2B
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
1. Service Registers
PUBLICAR
3. Client calls Service
LIGAR
2. Client Request Service Location
PROCURAR
WebService
ServiçoCliente
SOAP
Simple Object Access Protocol Protocolo similar
IIOP for CORBA Internet Inter-Orb Protocol para Common Object
Request Broker Architecture JRMP for RMI Java Remote Method Protocol para Remote
Method Invocation XML é utilizado para codificar dados
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 substitui objetos e componentes – EJB,
JavaBeans
Não é uma linguagem de programação 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 Envelope
SOAP Cabeçalho
SOAP Mensagem
Parte Principal MIME (text/xml)
Anexos
Anexost
SOAP Corpo
Cabeçalho 1
Cabeçalho n
Corpo
Corpo
Anexos
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 application-defined 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 - Define o caminho para publicar e encontrar informação sobre o Web Service Universal Description, Discovery, and Integration
UDDI Registro
1. Serviço de Publicação
PUBLICAÇÃO
3. Requisição do Serviço
LIGAÇÃO
2. Requisição do Cliente para Encontrar
o Serviço
ENCONTRAR
WebService
Cliente do Serviço
UDDI (Universal Description, Discovery and Integration)
Páginas Brancas Endereço, contato e identificadores
Páginas Amarelas Informações Categorizadas
Indústria Produtos / Serviços Localização
Páginas Verdes Informações Técnicas dos Serviços
Plataforma J2EE & Web Services
B2BApplications
B2CApplications
WebServices
WirelessApplications
Application ServerEnterprise
InformationSystems
ExistingApplications
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)
Define o modelo de programação do cliente Define Serviços Web baseados em Servlet para
modelo de portas. EJB 2.1
Define o modelo de portas Stateless Session Bean-based Web services
Servlet 2.4 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
Source: Web Services for J2EE (JSR 109), V1.0
Componentes
WebServices
top related