• Nenhum resultado encontrado

EJB WebService. Caio Nakashima

N/A
N/A
Protected

Academic year: 2021

Share "EJB WebService. Caio Nakashima"

Copied!
62
0
0

Texto

(1)

EJB WebService

1

Caio Nakashima

caio.nakashima@mds.gov.br

caionakashima@gmail.com

(2)
(3)

Things - 1014 Computers 108 Embedded Computers 1011 Desktops Transfers

Transfers TransactionsTransactions ContentContent Telemetry Telemetry ControlControl Clients Functions

Waves of

Network Computing

IP v4 Switches Switches Packages Packages Thermostats Thermostats Clothes Clothes Phones Phones TVs TVs Cars Cars Games Games Organization Protocols IP v4 IP Layer IP v6

(4)

Things - 1014 Computers 108 Embedded Computers 1011 Desktops Clients Functions

Waves of

Network Computing

IP v4 Phone Phone ss TVs TVs Cars Cars Games Games Switches Switches Packages Packages Thermostats Thermostats Clothes Clothes Transfers

Transfers TransactionsTransactions ContentContent TelemetryTelemetry ControlControl

Client/Server Web Applications Web Applications Web Web Services Services Fractal Fractal Polyarchical Polyarchical N-tier FT PTelnet HTTP X RPC/XDR SMTP Organization Protocols SOAP SOAP RMI/IIOP RMI/IIOP Jini Jini Identity Identity UDDI UDDI LDAP LDAP JXTA JXTA IP v6 IP v4 IP Layer

(5)

O novo software

Locater Locater Payment Payment New

New User’sUser’s X10

X1066 Developer

Developer X1X1

Software como serviço

Software

Authentication Authentication New New Service

Service DeviceDeviceUser’sUser’s Calendar

Calendar X10

(6)
(7)

Evolução da Plataforma

Catch Catch Phrase Phrase The Network The Network Is the Is the Computer

Computer ObjectsObjects

Legacy to Legacy to the Web the Web The Computer The Computer Is the Is the Network Network Network of Network of Embedded Embedded Things Things Network Network of Things of Things Scale Scale When/Peak When/Peak 100s 100s 1,000s1,000s 1,000,000s1,000,000s 10,000,000s10,000,000s 100,000,000s100,000,000s 100,000,000100,000,000 ss 1984/1987 1984/1987 1990/19931990/1993 1996/19991996/1999 2001/20032001/2003 1998/20041998/2004 2004/20092004/2009 Leaf Leaf Protocol(s) Protocol(s) Directory(s) Directory(s) Session Session X X XX +HTTP+HTTP (+JVM)

(+JVM) +XML+XMLPortalPortal +RM+RM UnknownUnknown NS, NS+

NS, NS+ +CDS+CDS +LDAP(*)+LDAP(*) +UDDI+UDDI +Jini+Jini +?+?

RPC, XDR

RPC, XDR +CORBA+CORBA +CORBA,+CORBA, RM

RM +SOAP,+SOAP,XMLXML +RM/Jini+RM/Jini +?+? Schematic

(8)

Padrões de comunicação

(9)

Communication Patterns: Java 2

Business Systems Business Systems DB Server DB Server DB Server DB Server App Server App Server Web Server Web Server Browser Browser Client Client Web Application J2EE J2EE J2SE/ J2SE/ J2ME J2ME

(10)

Padrão de comunicação: Sun ONE

Bus. Bus. Sys. Sys. DB DB XML XML (UDDI, (UDDI, SOAP) SOAP) App App Web Web Browser Browser

Context and Identity Context and Identity (LDAP, Policy, Liberty) (LDAP, Policy, Liberty)

J2EE J2EE J2SE/ J2SE/ J2ME J2ME SOAP) SOAP) Web Service

(11)

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

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.

(12)

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

• SOAP e WSDL – W3C

• UDDI - OASIS

(13)

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

(14)

Evolução da Computação Distribuída

Servers Clients Servers Internet Cliente Servidor Web-based computing Clients PDA Cell Phone Server Laptop Kiosk Workstation Web Services/Peer-to-Peer

(15)

Cliente/Serivdor x. Web Services

 Dentro da Empresa  Dependente de um conjunto de linguagem  Entre Empresas  Independente de Linguagem de Programação

Cliente / Servidor

Web Service

de linguagem

 Procedural

 Geralmente limitado por um

protocolo de transporte  Fortemente Acoplado  Processamento Eficiente (tempo / espaço) de Programação  Baseado em Mensagem  Facilmente adaptado em diferentes protocolos de transporte  Fracamente Acoplado  Processamento não eficiente

(16)

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 – provê um nível de integração e compartilhamento de

recursos mais intenso e transparente ao usuário caracterizando sistemas operacionais distribuídos.

(17)

Aplicação Web x Web Services

 Interação Usuário - 

InteraçãoPrograma-Aplicação Web

Web Service

 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)

(18)

Web Services

Service Grid

Registro do Serviço Registro Descoberta do Serviço Entrega de Serviço Chamada do Serviço

(19)

Montagem do Serviço

Macro Serviço Micro Serviço Business Micro Serviço Micro Serviço Business Process Management

(20)

Agregação do Serviço

Portal de Serviço de

Ações Entrada: Codigo Saída: Preço, Notícia,

Agência Notícias 1 Entrada: Codigo Saída: Notícias Usuário Nasdaq Entrada: Codigo Saída: Preço

Saída: Preço, Notícia, Comércio Corretor 1 Entrada: Codigo, Preço, Qtde Usuário Agência Notícias n Entrada: Codigo Saída: Notícias Corretor n Entrada: Codigo, Preço, Qtde

(21)

Web Services?

 Plataforma Neutra  É acessível de forma padrão  Acessível de forma interoperacional  Uso simplificado e  Uso simplificado e ubíquo

 “Barato” – não caro

(22)

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.

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

(23)

Fornecedor

Distribuidor

Internet XML

XML

Web Services Exemplo de uso

Fornecedor Logistica Fábrica Internet XML XML

“Crescimento baseado em uma infraestrutura leve e padronizada para troca de informações em aplicações de negócio”

(24)

Web Services

Serviço

Apl ServiçoApl ServiçoApl

Programa Monolítico

Impacto do Web Services nas aplicações

“Des integração da aplicação”

Serviço

Sistema SistemaServiço SistemaServiço

Computador Programa Applicação

(25)

Finanças

• Um web service é

acessível através de

aplicações ou outros

serviços.

Web Services Balanço Contas

Macro web services – Sistemas Virtuais

Finanças

Notícias

Informação Estoque

“Portfolio” pode ser uma aplicação, um portal ou um webservice Portfolio Contas Fluxo de Caixa CNN UOL

(26)

Gramática Bank balance

• Um web service é

acessível através de

aplicações ou outros

serviços.

Web Services Ortografia Dicionário

Micro web services – Sistemas Virtuais

Gramática

Publicação Mídia

“Editor de Texto” pode ser aplicação, uma funcionalidade ou um web service Editor de Texto Dicionário Sinônimos c:\... http://...

(27)

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. − A largura de banda dobra a cada 12 meses.



Lei de Metcalfe (Efeito da Rede)

− O valor da rede cresce exponencialmente a medida

(28)

Impacto da Integração

Gatilho do efeito da rede

Web Services Integração

customizada

Lei de Metcalfe: O valor da rede é proporcional ao

quadrado do número de participantes.

(29)

Mitos: Web Services novo Conceito



Web services é uma computação distribuída

Concept Distributed Computing ala CORBA / Java Basic Web Services

Concept Basic Web Services

Interface Description CORBA IDL, Java interface WSDL

RPC support ORBs, Idl2java compilers, rmic SOAP, compilers for WSDL

Service Registry CORBA naming service, JNDI UDDI

Messaging support CORBA Event/Notification service, JMS ?

Transaction support CORBA Transaction service, JTS ?

Secuity support CORBA Security service, Java security ?

(30)



Webservice requer somente:



SOAP, WSDL, UDDI



Necessita de uma semântica de alto nível



Webservice é baseado no paradigma

RPC

Mitos: Web Services novo Conceito

RPC



Modelo de comunicação baseado em

documentos será mais popular.



Webservices deve ser baseado em HTTP:



Outros protocolos de transporte podem ser

(31)

Web Services



O que falta além dos serviços:

− SOAP, WSDL, UDDI 

Deficiências:

 Qualidade de serviço  Gerenciamento  Gerenciamento  Segurança  Transação  Contexto de usuário  Gerenciamento de Identidade  Workflow

(32)

Web Services - Receita



1

a

fase



Implantar uma aplicação internamente da

organização procurando interoperabilidade.



SOAP sobre HTTP/S



2

2 fase (1 a 2 anos)

a

fase (1 a 2 anos)



Implantação com um parceiro confiável.



Registro privado.



3

a

fase (pelo menos 3 a 4 anos)



Implantar para todos.



Registro público.

(33)

Web Services Fases



1

a

Fase –Web Services Simples

 Focado no cliente, stateless, SOAP over HTTP/S



2

a

Fase –Web Services EAI (enterprise

application integration)

 Implantado dentro da organização para permitir a

integração interna.

Implantado dentro da organização para permitir a integração interna.



3

a

Fase – Business Web Services

 Implantado em extranet para transações comerciais

com parceiros de negócio, fornecedores e clientes, ebXML & UBL

(34)

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)

 Universal Business Language (UBL)  Padrões business web services

 Mais de 16 fornecedores e muito projetos Open Source  http://ebxml.xml.org/



Liberty Project

(35)

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.

(36)

Colaboração B2B

Colaboração B2B

 Interação Simples

 Orientado para cliente  Processos curtos Sem necessidade de  Interação Complexa  Orientado a negócio  Processos longos Suporta colaboração de

Web Services Simples

 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

 Suporta colaboração de

negócio

 Suporta perfil do parceiro  Seguro e confiável

 Registro e repositório  Suporta atribuição legal

(37)

Colaboração B2B



Dentro de uma

organização



Controle

centralizado



Entre empresas



Controle

Distribuído

Contrato Explícito

EAI

Colaboração B2B

centralizado



Contrato implícito



Pequeno número

de processos de

negócio e

participantes



Contrato Explícito



Grande número

de processos de

negócio e

participantes

(38)

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

(39)

Arquitetura do WS - Componentes



Serviço de Descrição



Serviço de Registro (Publicação) e

Descoberta

(40)

Arquitetura Web Service (simplificada)

Registro Registro 1. Service Registers PUBLICAR 3. Client calls Service LIGAR 2. Client Request Service Location PROCURAR Web

(41)

SOAP



S

imple

O

bject

A

ccess

P

rotocol



Protocolo similar

− IIOP for CORBA

− Internet Inter-Orb Protocol para Common Object

Request Broker Architecture JRMP for RMI

− 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

(42)

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 é uma linguagem de programação

 Não substitui Java



Não é solução para tudo

 Não substitui outras soluções de computação

(43)

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

• Um cliente Web Service envia uma requisição XML

na Internet utilizando os protocolos disponibilizados

pelo provedor de serviços.

(44)

O que SOAP define?



Envelope – Mensagem



Regras de codificação



Convenção RPC



Informação sobre o protocolo de

comunicação

(45)

Formato da Mensagem SOAP

SOAP Envelope SOAP Cabeçalho

SOAP Mensagem

Parte Principal MIME

(text/xml) Cabeçalho 1 Anexos Anexos t SOAP Corpo Cabeçalho n Corpo Corpo Anexos

(46)

SOAP Mensagem Envelope



Informação de Codificação



Cabeçalho

 Pode conter informações gerenciais

 Segurança Transação  Transação 

Corpo

 RPC Métodos e parâmetros  Dados de Aplicações

(47)

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

(48)

SOAP Request

<?xml version="1.0" encoding="UTF-8"?> <S:Envelope xmlns:S= "http://schemas.xmlsoap.org/soap/envelope/"> <S:Header/> <S:Body> <S:Body> <ns2:qtde xmlns:ns2="http://pacoteEstado/"> <arg0>AM</arg0> </ns2:qtde> </S:Body> </S:Envelope>

(49)

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 Estado: Amazonas IBGE: 13 Area:1570745.6 Quantidade de Municipios:62

</return>

</ns2:qtdeResponse> </S:Body>

(50)
(51)

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

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

(52)

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 WSDL

Pode ser descoberto através de registros

Árbitragem

• Um terceiro pode verificar se a comunicação esta em

(53)
(54)

Arquitetura do Serviço

UDDI Registro 1. Serviço de Publicação 2. Requisição do Cliente para Encontrar

o Serviço

UDDI - Define o caminho para publicar e

encontrar informação sobre o Web Service

Universal Description, Discovery, and Integration

Publicação PUBLICAÇÃO 3. Requisição do Serviço LIGAÇÃO o Serviço ENCONTRAR Web

(55)

UDDI (Universal Description, Discovery and Integration)



Páginas Brancas

 Endereço, contato e identificadores



Páginas Amarelas

 Informações Categorizadas  IndústriaIndústria  Produtos / Serviços  Localização 

Páginas Verdes

(56)

Plataforma J2EE & Web Services

B2B Applications B2C Existing Applications B2C Applications Web Services Wireless Applications Application Server Enterprise Information Systems Applications

(57)

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 com Webservice



Muitos benefícios do J2EE são

preservados para WS

 Portabilidade, Escalabilidade, Confiabilidade  Liberdade de escolha do fornecedor

(58)

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.

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

(59)

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 based Web services



Servlet 2.4

 Alinhado com JAX-RPC



JSR 109

 Define padrão de serviços web para modelo de

(60)

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 é  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

(61)

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



Componentes WebServices

 Web-tier (portas baseadas em Servlet)

(62)

Web Service Componentes

Componentes WebServices

Referências

Documentos relacionados

Neste sentido, sugerem-se algumas medi- das, tais como: maior aproximação do serviço de saúde ocupacional com os trabalhadores, com fo- co na promoção da saúde e não no tratamento

“ raa naannaa nee kuuturu ani kooDaa chooDa kunDaa nannu pachiga dengu, choodu naa pooku yela balisindi, nee modda to naa pooku dengi dengi bunnu laga tayaru cheye, dengu nanna abba

Análise aos 5 produtos com mais quantidades de peças sucatadas nos meses de Janeiro a Maio 2009 no nosso processo de injecção.. Análise aos 5 produtos com mais quantidades de

1.451 Uroculturas Ambulatoriais 64% Escherichia coli 66% Resistentes a SMX/TMP 535 Uroculturas em Câncer Ginecológico 64% Escherichia coli ETIOLOGIA 66% Resistentes a SMX/TMP

Para a comparação dos resultados, os traços horizontais representam os valores médios e as linhas verticais indicam o Intervalo de Confiança ao nível de 95%.. Valores

Requer o envio de Indicação ao Poder Executivo relativa ao envio de Projeto de Lei concernente à adoção pelo Brasil de legislação sobre pesquisas biomédicas envolvendo

Direcção artística e Coreografi a Francisco Camacho Direcção Artística e Dramaturgia Herwig Onghena Filme Bruno de Almeida Interpretação Carlota Lagido, Miguel

Lugar Nome Ano NFed Clube Tempo Final TReac Pts FINA