implementando a arquitetura de referência openedge (oera) - parte ii

32
Implementando a Implementando a Arquitetura de Arquitetura de Referência OpenEdge Referência OpenEdge (OERA) - Parte II (OERA) - Parte II Alessandro Martins Technical Architect Field Services Latin America Operations

Upload: vivian

Post on 14-Jan-2016

24 views

Category:

Documents


2 download

DESCRIPTION

Implementando a Arquitetura de Referência OpenEdge (OERA) - Parte II. Alessandro Martins Technical Architect Field Services Latin America Operations. Moderna Arquitetura de Aplicações. Lógica de negócio comum com modelos avançados. Acesso a dados abstraído do repositório. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Implementando a Arquitetura de Referência OpenEdge (OERA) - Parte II

Implementando a Implementando a Arquitetura de Arquitetura de Referência OpenEdge Referência OpenEdge (OERA) - Parte II(OERA) - Parte IIAlessandro MartinsTechnical ArchitectField Services Latin America Operations

Page 2: Implementando a Arquitetura de Referência OpenEdge (OERA) - Parte II

Sim

plify

you

r bu

sin

ess

Sim

plify

you

r bu

sin

ess

© 2005 Progress Software Corporation2 Implementando a Arquitetura de Referência OpenEdge (OERA) - Parte II

Camadas de apresentação e integração separadas

Acesso a dadosabstraído

do repositório

Lógica de negóciocomum com modelos

avançados

OpenEdge Reference Architecture – uma visão em camadas

Usuários Usuários

Camada de Apresentação

Camada de Serviços de Negócio

Camada de Acesso a Dados

Repositóriode Dados Gerenciado

Repositóriode Dados Gerenciado

Repositóriode Dados

Não-gerenciado

Repositóriode Dados

Não-gerenciado

Serviços Corporativos Serviços Corporativos

Camada de Integração

Moderna Arquitetura de AplicaçõesModerna Arquitetura de Aplicações

Page 3: Implementando a Arquitetura de Referência OpenEdge (OERA) - Parte II

Sim

plify

you

r bu

sin

ess

Sim

plify

you

r bu

sin

ess

© 2005 Progress Software Corporation3 Implementando a Arquitetura de Referência OpenEdge (OERA) - Parte II

AgendaAgenda

Introduzindo a Camada de Interface de Serviços

Gerenciando instâncias de ProDataSets Gerenciamento de Contexto Tópicos Adicionais e Futuro Conclusões

Page 4: Implementando a Arquitetura de Referência OpenEdge (OERA) - Parte II

Sim

plify

you

r bu

sin

ess

Sim

plify

you

r bu

sin

ess

© 2005 Progress Software Corporation4 Implementando a Arquitetura de Referência OpenEdge (OERA) - Parte II

ServiçosCorporativos

ServiçosCorporativos

Tarefa Negócio

Tarefa Negócio

Tarefa Negócio

SOA – Modelo de interação baseado SOA – Modelo de interação baseado em serviçosem serviços

Vincular/ Invocar

Consumidor

do Serviço

Consumidor

do Serviço

Broker/ Serviço

de Diretório

Broker/ Serviço

de Diretório

Buscar / Detalhes

Publicar

Provedor do Serviço

Page 5: Implementando a Arquitetura de Referência OpenEdge (OERA) - Parte II

Sim

plify

you

r bu

sin

ess

Sim

plify

you

r bu

sin

ess

© 2005 Progress Software Corporation5 Implementando a Arquitetura de Referência OpenEdge (OERA) - Parte II

Serviços de apoio gerenciador pelo Serviços de apoio gerenciador pelo ContêinerContêiner

Proxy de Serviço

Co

ntêin

er de A

presen

tação

Interface de Serviços

Co

ntêin

er de S

erviços

LógicaCliente

LógicaServidor

Gerencia/ode Pedidos

Gerê

ncia

de S

essão/C

on

texto

Con

trole

de T

ran

sações

Seg

ura

nça

Fn()Fn()

Page 6: Implementando a Arquitetura de Referência OpenEdge (OERA) - Parte II

Sim

plify

you

r bu

sin

ess

Sim

plify

you

r bu

sin

ess

© 2005 Progress Software Corporation6 Implementando a Arquitetura de Referência OpenEdge (OERA) - Parte II

A Interface de Serviços na ArquiteturaA Interface de Serviços na Arquitetura

Usuários Usuários

Camada de Serviços de Negócio

Camada de Acesso a Dados

Repositóriode

Dados Gerenciado

Repositóriode

Dados Gerenciado

Repositóriode

Dados Não-gerenciado

Repositóriode

Dados Não-gerenciado

Serviços Corporativos

Serviços Corporativos

Camada deIntegração

Camada de Apresentação

Interface de Serviços

Page 7: Implementando a Arquitetura de Referência OpenEdge (OERA) - Parte II

Sim

plify

you

r bu

sin

ess

Sim

plify

you

r bu

sin

ess

© 2005 Progress Software Corporation7 Implementando a Arquitetura de Referência OpenEdge (OERA) - Parte II

Papel da Camada de Interface de Papel da Camada de Interface de Serviços de ExemploServiços de Exemplo

Gerencia entidades do lado servidor– Mantém um catálogo em memória das

instâncias em execução Fornece acesso de chamada única

padronizado a procedures localizadas no lado servidor

Provê uma API única e simplificada do cliente para o servidor e vice-versa

Page 8: Implementando a Arquitetura de Referência OpenEdge (OERA) - Parte II

Sim

plify

you

r bu

sin

ess

Sim

plify

you

r bu

sin

ess

© 2005 Progress Software Corporation8 Implementando a Arquitetura de Referência OpenEdge (OERA) - Parte II

A Camada de Interface de ServiçosA Camada de Interface de Serviços

Cliente Servidor

Procedure IU

DATASET dsOrder

Business Entity

DATASET dsOrder

Data-Access Object

DATASET dsOrder

RUN fetchOrder

IN hdsOrder

(. . . ,

OUTPUT

DATASET

dsOrder

BY-REFERENCE)

RUN FetchWhere

IN hEntity

(. . .,

OUTPUT

DATASET

phFetchDataSet

BY-REFERENCE)

fetchWhere:

FILL

ATTACH

Pro

ced

ure

Pro

xy C

lien

te

Pro

ced

ure

Gat

eway

Ser

vid

or

Interface de Serviços

Page 9: Implementando a Arquitetura de Referência OpenEdge (OERA) - Parte II

Sim

plify

you

r bu

sin

ess

Sim

plify

you

r bu

sin

ess

© 2005 Progress Software Corporation9 Implementando a Arquitetura de Referência OpenEdge (OERA) - Parte II

Proxy SI (Service Interface) do lado Proxy SI (Service Interface) do lado clientecliente

dsOrderWinAdv.w

{dsOrder.i}{proSIproxyStart.i}…RUN fetchWhere INghProxySIproc(INPUT “Order”, INPUT ttContextDSOrder, OUTPUT DataSet dsOrder).

proSIproxy.p

PROC fetchWhere:RUN proSIgateway.p ON hAppServer (INPUT “Order”, INPUT “fetchWhere”…)

(chamada ao gateway do lado

servidor)

Procedure de

Interface de Usuário

Procedure Proxy

Cliente

Page 10: Implementando a Arquitetura de Referência OpenEdge (OERA) - Parte II

Sim

plify

you

r bu

sin

ess

Sim

plify

you

r bu

sin

ess

© 2005 Progress Software Corporation10 Implementando a Arquitetura de Referência OpenEdge (OERA) - Parte II

Procedures SI do lado servidorProcedures SI do lado servidor

proSIgateway.p

hEntity = getEntityHandle in hSI.RUN fetchWhere in hEntity…

proSIserver.p

DEFINE T-T ttEntity…FN startEntity:FN getEntityHandle: /* entity temp-table lookup */FN getDAOHandle:

(chamada da sessão do

cliente)

(chamada à API de Business Entity)

Procedure gateway

do lado servidor

Procedure da lógica

de negócio do servidor

Page 11: Implementando a Arquitetura de Referência OpenEdge (OERA) - Parte II

Sim

plify

you

r bu

sin

ess

Sim

plify

you

r bu

sin

ess

© 2005 Progress Software Corporation11 Implementando a Arquitetura de Referência OpenEdge (OERA) - Parte II

API da Procedure GatewayAPI da Procedure Gateway

Cinco parâmetros padrão– Nome da entidade lógica– Nome da operação lógica– Temp-table de contexto/parâmetros para passar

quaisquer valores relacionados por entre as camadas

– ProDataSet OUTPUT ou INPUT-OUTPUT Dependendo se a definição do ProDataSet ou seus

valores necessitem ser passados– Parâmetro de saída (OUTPUT) de status para

tratamento de exceções Default útil para muitas operações

– Utilizando APIs e procedures customizadas para operações especiais

Page 12: Implementando a Arquitetura de Referência OpenEdge (OERA) - Parte II

Sim

plify

you

r bu

sin

ess

Sim

plify

you

r bu

sin

ess

© 2005 Progress Software Corporation12 Implementando a Arquitetura de Referência OpenEdge (OERA) - Parte II

AgendaAgenda

Introduzindo a Camada de Interface de Serviços

Gerenciando instâncias de ProDataSets Gerenciamento de Contexto Tópicos Adicionais e Futuro Conclusões

Page 13: Implementando a Arquitetura de Referência OpenEdge (OERA) - Parte II

Sim

plify

you

r bu

sin

ess

Sim

plify

you

r bu

sin

ess

© 2005 Progress Software Corporation13 Implementando a Arquitetura de Referência OpenEdge (OERA) - Parte II

Gerenciando instâncias de ProDataSetsGerenciando instâncias de ProDataSets

Qual objeto “é o dono” da instância do ProDataSet no servidor e no cliente?

ProDataSets podem ser passados BY-REFERENCE para evitar cópia

A instância do chamador é sempre utilizada, mesmo em caso de OUTPUT– Nota: Isto será estendido na versão 10.1

para suportar um modelo “pull” onde a instância da procedure chamada é utilizada

Page 14: Implementando a Arquitetura de Referência OpenEdge (OERA) - Parte II

Sim

plify

you

r bu

sin

ess

Sim

plify

you

r bu

sin

ess

© 2005 Progress Software Corporation14 Implementando a Arquitetura de Referência OpenEdge (OERA) - Parte II

Instâncias de ProDataSet emInstâncias de ProDataSet emOUTPUTOUTPUT

Cliente Servidor

Procedure IU

DATASET dsOrder

Business Entity

DATASET dsOrder

Data-Access Object

DATASET dsOrder

RUN fetchOrder

IN hdsOrder

(. . . ,

OUTPUT

DATASET

dsOrder

BY-REFERENCE)

RUN FetchWhere

IN hEntity

(. . .,

OUTPUT

DATASET

phFetchDataSet

BY-REFERENCE)

fetchWhere:

FILL

ATTACH

Pro

ced

ure

de

Pro

x yd

e C

lien

teBY-REF

Pro

ced

ure

de

Gat

eway

de

Ser

vid

or

HANDLE

DATASET-

HANDLE BY-REF

Page 15: Implementando a Arquitetura de Referência OpenEdge (OERA) - Parte II

Sim

plify

you

r bu

sin

ess

Sim

plify

you

r bu

sin

ess

© 2005 Progress Software Corporation15 Implementando a Arquitetura de Referência OpenEdge (OERA) - Parte II

AgendaAgenda

Introduzindo a Camada de Interface de Serviços

Gerenciando instâncias de ProDataSets Gerenciamento de Contexto Tópicos Adicionais e Futuro Conclusões

Page 16: Implementando a Arquitetura de Referência OpenEdge (OERA) - Parte II

Sim

plify

you

r bu

sin

ess

Sim

plify

you

r bu

sin

ess

© 2005 Progress Software Corporation16 Implementando a Arquitetura de Referência OpenEdge (OERA) - Parte II

Gerenciameneto de Contexto: Conceitos Gerenciameneto de Contexto: Conceitos BásicosBásicos

Ambiente-alvo é cliente de um AppServer state-less ou state-free

Cada interação é independente Manutenção de contexto entre interações

inter-relacionadas

Page 17: Implementando a Arquitetura de Referência OpenEdge (OERA) - Parte II

Sim

plify

you

r bu

sin

ess

Sim

plify

you

r bu

sin

ess

© 2005 Progress Software Corporation17 Implementando a Arquitetura de Referência OpenEdge (OERA) - Parte II

Passando Contexto entre Cliente e Passando Contexto entre Cliente e ServidorServidor

Temp-table de Contexto/Parâmetros passa contexto por entre as camadas

Campos de nome e valor permitem flexibilidade

Contexto é mantido no cliente Útil para pequenas quantidades de dados

– Também para contexto utilizado e modificado no cliente

Page 18: Implementando a Arquitetura de Referência OpenEdge (OERA) - Parte II

Sim

plify

you

r bu

sin

ess

Sim

plify

you

r bu

sin

ess

© 2005 Progress Software Corporation18 Implementando a Arquitetura de Referência OpenEdge (OERA) - Parte II

temp-table de contexto/parâmetros

Contexto entre Cliente e ServidorContexto entre Cliente e Servidor

Cliente Servidor

Procedure IU

DATASET dsOrder

Business Entity

DATASET dsOrder

RUN fetchOrder

IN hdsOrder

(. . . ,

OUTPUT

DATASET

dsOrder

BY-REFERENCE)

RUN FetchWhere

IN hEntity

(. . .,

OUTPUT

DATASET

phFetchDataSet

BY-REFERENCE)

WhereString = “…”

NextRowid = 63524

Pro

ced

ure

de

Pro

x yd

e C

lien

te

Pro

ced

ure

de

Gat

eway

de

Ser

vid

or

Page 19: Implementando a Arquitetura de Referência OpenEdge (OERA) - Parte II

Sim

plify

you

r bu

sin

ess

Sim

plify

you

r bu

sin

ess

© 2005 Progress Software Corporation19 Implementando a Arquitetura de Referência OpenEdge (OERA) - Parte II

Contexto Mantido no ServidorContexto Mantido no Servidor

Mantém contexto em um repositório de dados compartilhado no servidor– Tipicamente uma tabela na base de dados

Útil para evitar que toda da informação de contexto passe do cliente para o servidor– Contexto de sessão que não mudam, como

autorização Requer que um Context ID seja passado pelo

cliente– Suporte a Group UID no exemplo e na 10.1

Page 20: Implementando a Arquitetura de Referência OpenEdge (OERA) - Parte II

Sim

plify

you

r bu

sin

ess

Sim

plify

you

r bu

sin

ess

© 2005 Progress Software Corporation20 Implementando a Arquitetura de Referência OpenEdge (OERA) - Parte II

temp-table de contexto/parâmetros

Contexto Armazenado no ServidorContexto Armazenado no Servidor

Cliente Servidor

Procedure IU

DATASET dsOrder

Business Entity

DATASET dsOrder

RUN fetchOrder

IN hdsOrder

(. . . ,

OUTPUT

DATASET

dsOrder

BY-REFERENCE)

RUN FetchWhere

IN hEntity

(. . .,

OUTPUT

DATASET

phFetchDataSet

BY-REFERENCE)

ContextID = 95847

95847 English Auth …

Pro

ced

ure

de

Pro

x yd

e C

lien

te

Pro

ced

ure

de

Gat

eway

de

Ser

vid

or

Page 21: Implementando a Arquitetura de Referência OpenEdge (OERA) - Parte II

Sim

plify

you

r bu

sin

ess

Sim

plify

you

r bu

sin

ess

© 2005 Progress Software Corporation21 Implementando a Arquitetura de Referência OpenEdge (OERA) - Parte II

ProDataSet e Temp-table de ContextoProDataSet e Temp-table de Contexto

Armazena dados recuperados em uma tabela de contexto– Para clientes Web leves ou outros clientes

que não possuem suporte a ProDataSets– Campos RAW e BLOBs para

armazenamento genérico Armazena atualizações sucessivas antes de

realizar o commit– Permite validação parcial no servidor– ProDataSet final de atualização reconstruído

a partir do contexto

Page 22: Implementando a Arquitetura de Referência OpenEdge (OERA) - Parte II

Sim

plify

you

r bu

sin

ess

Sim

plify

you

r bu

sin

ess

© 2005 Progress Software Corporation22 Implementando a Arquitetura de Referência OpenEdge (OERA) - Parte II

Dados de ProDataSets ou Temp-tables Dados de ProDataSets ou Temp-tables como Contextocomo Contexto

Cliente Servidor

Procedure de IU

DATASET dsOrder

Business Entity

DATASET dsOrder

RUN fetchOrder

IN hdsOrder

(. . . ,

OUTPUT

DATASET

dsOrder

BY-REFERENCE)

RUN FetchWhere

IN hEntity

(. . .,

OUTPUT

DATASET

phFetchDataSet

BY-REFERENCE)

ContextID = 95847

95847 Order 1 Line 1

95847 Order 1 Line 2

95847 Order 1 Line 1

“OrderNum = 1”

Pro

ced

ure

de

Pro

x yd

e C

lien

te

Pro

ced

ure

de

Gat

eway

de

Ser

vid

or

Page 23: Implementando a Arquitetura de Referência OpenEdge (OERA) - Parte II

Sim

plify

you

r bu

sin

ess

Sim

plify

you

r bu

sin

ess

© 2005 Progress Software Corporation23 Implementando a Arquitetura de Referência OpenEdge (OERA) - Parte II

AgendaAgenda

Introduzindo a Camada de Interface de Serviços

Gerenciando instâncias de ProDataSets Gerenciamento de Contexto Tópicos Adicionais e Futuro Conclusões

Page 24: Implementando a Arquitetura de Referência OpenEdge (OERA) - Parte II

Sim

plify

you

r bu

sin

ess

Sim

plify

you

r bu

sin

ess

© 2005 Progress Software Corporation24 Implementando a Arquitetura de Referência OpenEdge (OERA) - Parte II

Artigo: Usando Repositórios de dados Artigo: Usando Repositórios de dados não Gerenciadosnão Gerenciados

Usa um documento XML no lugar de uma base de dados

Procedure de data source alternativa identifica o documento

Código específico popula o ProDataSet Restante do código do Business Entity

roda sem modificações

Using an Unmanaged Data Source

Page 25: Implementando a Arquitetura de Referência OpenEdge (OERA) - Parte II

Sim

plify

you

r bu

sin

ess

Sim

plify

you

r bu

sin

ess

© 2005 Progress Software Corporation25 Implementando a Arquitetura de Referência OpenEdge (OERA) - Parte II

Artigo: Interface .NET Simples a Business Artigo: Interface .NET Simples a Business EntitiesEntities

Gerador de código cria um arquivo XSD com a descrição do DataSet

Com isto, cria também um arquivo de classe C# para o DataSet

A versão C# do proxy cliente roda a mesma procedure gateway no AppServer

A classe DataSet C# é usada para construir a IU

Building an Alternative User Interface to Business Entities

Page 26: Implementando a Arquitetura de Referência OpenEdge (OERA) - Parte II

Sim

plify

you

r bu

sin

ess

Sim

plify

you

r bu

sin

ess

© 2005 Progress Software Corporation26 Implementando a Arquitetura de Referência OpenEdge (OERA) - Parte II

Artigo:Artigo:Lógica de Negócio AvançadaLógica de Negócio Avançada

O papel das procedures de trigger de base de dados

Um Business Entity acessando outro Um Data Access Object acessando outro Quando permitir acesso direto à base de

dados

Advanced Business Logic

Page 27: Implementando a Arquitetura de Referência OpenEdge (OERA) - Parte II

Sim

plify

you

r bu

sin

ess

Sim

plify

you

r bu

sin

ess

© 2005 Progress Software Corporation27 Implementando a Arquitetura de Referência OpenEdge (OERA) - Parte II

A Implementação de Referência e as A Implementação de Referência e as Versões FuturasVersões Futuras

Novas extensões significativas da linguagen planejadas para 10.1 e futuro– Elementos de orientação a objetos (Ex.

classes)

– Auditoria e outros serviços providos pelo produto

Materiais a serem revisados e estendidos para aderir às melhores práticas do OpenEdge 10.1

Page 28: Implementando a Arquitetura de Referência OpenEdge (OERA) - Parte II

Sim

plify

you

r bu

sin

ess

Sim

plify

you

r bu

sin

ess

© 2005 Progress Software Corporation28 Implementando a Arquitetura de Referência OpenEdge (OERA) - Parte II

AgendaAgenda

Introduzindo a Camada de Interface de Serviços

Gerenciando instâncias de ProDataSets Gerenciamento de Contexto Tópicos Adicionais e Futuro Conclusões

Page 29: Implementando a Arquitetura de Referência OpenEdge (OERA) - Parte II

Sim

plify

you

r bu

sin

ess

Sim

plify

you

r bu

sin

ess

© 2005 Progress Software Corporation29 Implementando a Arquitetura de Referência OpenEdge (OERA) - Parte II

Resumindo…Resumindo…

Pense sobre e planeje os serviços em sua aplicação

Pense sobre quais objetos controlam os dados

Pense sobre contexto e outros aspectos de uma servidor de aplicações stateless

Page 30: Implementando a Arquitetura de Referência OpenEdge (OERA) - Parte II

Sim

plify

you

r bu

sin

ess

Sim

plify

you

r bu

sin

ess

© 2005 Progress Software Corporation30 Implementando a Arquitetura de Referência OpenEdge (OERA) - Parte II

Perguntas?Perguntas?

Page 31: Implementando a Arquitetura de Referência OpenEdge (OERA) - Parte II

Sim

plify

you

r bu

sin

ess

Sim

plify

you

r bu

sin

ess

© 2005 Progress Software Corporation31 Implementando a Arquitetura de Referência OpenEdge (OERA) - Parte II

Grato pelo seu Grato pelo seu Tempo!Tempo!

Page 32: Implementando a Arquitetura de Referência OpenEdge (OERA) - Parte II

Sim

plify

you

r bu

sin

ess

Sim

plify

you

r bu

sin

ess

© 2005 Progress Software Corporation32 Implementando a Arquitetura de Referência OpenEdge (OERA) - Parte II