EJB WebService

62
1 EJB WebService Caio Nakashima [email protected] [email protected]

description

Caio Nakashima [email protected] [email protected]. EJB WebService. Evolução da Computação em Rede. Things - 10 14. Embedded Computers 10 11. Computers 10 8. Clients. Functions. IP Layer. Protocols. Organization. Waves of Network Computing. Thermostats. Cars. - PowerPoint PPT Presentation

Transcript of EJB WebService

1

EJB WebService

Caio Nakashima

[email protected]

[email protected]

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