Construindo Produções Com Ensemble

Embed Size (px)

Citation preview

  • 7/25/2019 Construindo Produes Com Ensemble

    1/131

    Construindo Produes com EnsembleGuia do Aluno

    Reviso 1.2 - 31/09/2007

  • 7/25/2019 Construindo Produes Com Ensemble

    2/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 1

  • 7/25/2019 Construindo Produes Com Ensemble

    3/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 2

    COPYRIGHT NOTICECopyright InterSystems Corporation

    1997-2006

    All rights reserved

    NOTICE

    PROPRIETARY CONFIDENTIAL

    This document contains trade secret and confidential information which is the property of InterSystems Corporation,One Memorial Drive, Cambridge, MA 02142, or its affiliates, and is furnished for the sole purpose of the operationand maintenance of the products of InterSystems Corporation. No part of this publication is to be used for any otherpurpose, and this publication is not to be reproduced, copied, disclosed, transmitted, stored in a retrieval system or

    translated into any human or computer language, in any form, by any means, in whole or in part, without the expressprior written consent of InterSystems Corporation.

    The copying, use and disposition of this document and the software programs described herein is prohibited exceptto the limited extent set forth in the standard software license agreement(s) of InterSystems Corporation coveringsuch programs and related documentation. InterSystems Corporation makes no representations and warrantiesconcerning such software programs other than those set forth in such standard software license agreement(s). Inaddition, the liability of InterSystems Corporation for any losses or damages relating to or arising out of the use ofsuch software programs is limited in the manner set forth in such standard software license agreement(s).

    THE FOREGOING IS A GENERAL SUMMARY OF THE RESTRICTIONS AND LIMITATIONS IMPOSED BYINTERSYSTEMS CORPORATION ON THE USE OF, AND LIABILITY ARISING FROM, ITS COMPUTERSOFTWARE. FOR COMPLETE INFORMATION REFERENCE SHOULD BE MADE TO THE STANDARDSOFTWARE LICENSE AGREEMENT(S) OF INTERSYSTEMS CORPORATION, COPIES OF WHICH WILL BE

    MADE AVAILABLE UPON REQUEST.InterSystems Corporation disclaims responsibility for errors which may appear in this document, and it reserves theright, in its sole discretion and without notice, to make substitutions and modifications in the products and practicesdescribed in this document.

    Cach, InterSystems Cach, Cach SQL, Cach ObjectScript, Cach Objects, ISM, MSM, DSM, and DTM aretrademarks of InterSystems Corporation.

    All other brand or product names used herein are trademarks or registered trademarks of their respective companiesor organizations.

    For Support questions about any InterSystems products, contact the InterSystems Worldwide Support Center:

    Phone:US: +1 617 621-0700

    Europe: +44 (0) 1753 830-077Fax:US: +1 617 374-9391Europe: +44 (0) 1753 861-311

  • 7/25/2019 Construindo Produes Com Ensemble

    4/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 3

  • 7/25/2019 Construindo Produes Com Ensemble

    5/131

  • 7/25/2019 Construindo Produes Com Ensemble

    6/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 5

  • 7/25/2019 Construindo Produes Com Ensemble

    7/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 6

    Construindo Produes com Ensemble

  • 7/25/2019 Construindo Produes Com Ensemble

    8/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 7

  • 7/25/2019 Construindo Produes Com Ensemble

    9/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 8

    Lembre-se por favor

    Desligue ou silencie seu celular oupagger durante as aulas.

    Responda a chamadas importantes forada sala de aula ou em local apropriado.

    Responda chamadas menos importantesdurante os exerccios ou breaks

  • 7/25/2019 Construindo Produes Com Ensemble

    10/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 9

  • 7/25/2019 Construindo Produes Com Ensemble

    11/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 10

    dulo 1 - Viso Geral

    Mdulo 1 - Viso Geral

  • 7/25/2019 Construindo Produes Com Ensemble

    12/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 11

  • 7/25/2019 Construindo Produes Com Ensemble

    13/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 12

    Viso Geral

    Business Processing Model. Demonstrao. Arquitetura do Ensemble

    Ensemble

    O Ensemble uma plataforma de uso fcil para rpido desenvolvimento, distribuio emonitoramento de solues de EAI.

    EAI Enterprise Application Integration. Para uma viso geral do Ensemble e do EAI, consulte a documentao Introducing

    Ensemble.

    Uma soluo de EAI usando o Ensemble inclui os seguintes componentes: Business service aceita uma entrada externa ao Ensemble. Pode usar um adaptador

    para fazer isso. Business process trabalha totalmente dentro do Ensemble. Business operation acessa dados fora do Ensemble. Pode usar um adaptador para

    fazer isso. As aplicaes que acessam o Ensemble so chamadas de aplicaes cliente, enquanto aquelas

    que so acessadas por business operation so chamadas de aplicaes externas.

    BusinessProcess

    BusinessOperations

    BusinessServices

    OutboundAda

    ters

    A

    lica

    esExternas

    A

    lica

    esCliente

    Ensemble

  • 7/25/2019 Construindo Produes Com Ensemble

    14/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 13

    Demonstrao

    Arquitetura do Ensemble

    Integra

    oe

    Desenvo

    lvimen

    to

    Integra

    oe

    Desenvo

    lvimen

    to

    Coordenao

    de

    Transao

    Coordenao

    de

    Transao

    Ap

    licaes

    Composta

    s

    Ap

    licae

    s

    Composta

    s

    Gerenc

    iamen

    to

    de

    Bus

    ines

    s

    Process

    Gerenc

    iame

    nto

    de

    Bus

    ines

    s

    Process

    Mon

    itoramen

    to

    das

    Ativ

    idad

    es

    do

    Neg

    cio

    Mon

    itorame

    nto

    das

    Ativ

    idades

    do

    Neg

    cio

    Gerenc

    iam

    en

    to

    Gerenc

    iam

    en

    to OrquestraoOrquestrao

    AbstraoAbstrao

    CoordenaoCoordenao

    ArmazenamentoArmazenamentoConexoIntegra

    oe

    Desenvo

    lvimen

    to

    Integra

    oe

    Desenvo

    lvimen

    to

    Coordenao

    de

    Transao

    Coordenao

    de

    Transao

    Ap

    licaes

    Composta

    s

    Ap

    licae

    s

    Composta

    s

    Gerenc

    iamen

    to

    de

    Bus

    ines

    s

    Process

    Gerenc

    iame

    nto

    de

    Bus

    ines

    s

    Process

    Mon

    itoramen

    to

    das

    Ativ

    idad

    es

    do

    Neg

    cio

    Mon

    itorame

    nto

    das

    Ativ

    idades

    do

    Neg

    cio

    Gerenc

    iam

    en

    to

    Gerenc

    iam

    en

    to OrquestraoOrquestrao

    AbstraoAbstrao

    CoordenaoCoordenao

    ArmazenamentoArmazenamentoConexo

  • 7/25/2019 Construindo Produes Com Ensemble

    15/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 14

    Os benefcios de usar o Ensemble incluem: Coordenao de Transao - O mecanismo de transmisso de mensagens do Ensemble

    equipado para assegurar a coordenao da transao entre vrias aplicaes. Aplicaes Compostas - O ambiente de desenvolvimento do Ensemble fornece a colaque permite a voc combinar recursos de softwares existentes para criar aplicaescompostas inteiramente novas.

    Gerenciamento de Business Process - O Ensemble permite a coordenao de businessprocesses encontrados em aplicaes distintas para automatizar funes de negcio deauto nvel.

    Monitoramento das Atividades do Negcio (Business Activity Monitoring, ou BAM) Tecnologias de integrao de alta performance mais os recursos de customizaopossibilitam infra-estrutura prover uma viso, em tempo real do processo integrado daempresa.

    Assim com todas as solues bem sucedidas de EAI, o Ensemble direciona as tarefas crticas deEAI, definidas como abaixo:

    Armazenamento - O Ensemble inclui um poderoso banco de dados orientado a objetosque pode ser usado para a persistncia das mensagens, registro de eventos,transformaes dos dados e mais.

    Conexo - Adaptadores permitem a comunicao do Ensemble com uma grandevariedade de aplicaes, tecnologias e fontes de dados.

    Abstrao Toda comunicao com e para dentro do Ensemble executada usandouma camada uniforme de abstrao baseada em objetos.

    Coordenao - O Ensemble inclui um mecanismo de mensagens baseado em objetosque fornece entrega, roteamento baseado em contedo e persistncia de mensagens.

    Orquestrao - O Ensemble inclui habilidade para desenvolver processos complexos denegcio que orquestram operaes entre mltiplas aplicaes externas. Desenvolvimento - O Ensemble possui ambiente de programao completo. Gerenciamento - O Ensemble fornece acesso completo ao gerenciamento de todos os

    componentes de software desenvolvidos usando Ensemble. Para detalhes sobre a Arquitetura do Ensemble, consulte o Captulo 3, O que Ensemble?

    Na Introduo do Ensemble. O apndice tem tambm informaes adicionais da arquitetura doEnsemble.

  • 7/25/2019 Construindo Produes Com Ensemble

    16/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 15

    Arquitetura do Ensemble

  • 7/25/2019 Construindo Produes Com Ensemble

    17/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 16

    Mdulo 2 Portal de Administrao e Produes

    Mdulo 2 Portal de Administrao eProdues

  • 7/25/2019 Construindo Produes Com Ensemble

    18/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 17

  • 7/25/2019 Construindo Produes Com Ensemble

    19/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 18

    Viso Geral

    Definies. Demonstrao. Reviso:

    Pgina do Portal de Administrao.Implementao de Produo

    Portal de Administrao

    O Portal de Administrao oferece facilidades de configurao, gerenciamento e monitoramentode aplicaes Ensemble.

    Pode ser acessado das seguintes formas: Cubo Ensemble Management Studio, Utilities Ensemble Management Pelo Browser - http://127.0.0.1:1972/csp/ensemble/UtilEnsHome.csp

    Uma senha necessria para acessar o Portal de Administrao. Por padro, voc pode usarusername/password como _SYSTEM/sys.

  • 7/25/2019 Construindo Produes Com Ensemble

    20/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 19

    Produo (Production)

    Define todos os componentes Ensemble para integrao.

    Uma produo um pacote de classes e itens de configurao que resolvem um problemaespecfico de EAI.

    Uma produo deve primeiramente ser criada no Studio. Pode ento ser configurada atravs doStudio ou do Portal de Administrao.

    A configurao de uma produo envolve especificar:

    Business services, business processes e business operations que fazem parteda produo. Cada componente tem suas configuraes.

    Configuraes de Adaptadores, se necessrio.

    BusinessProcesses

    BusinessOperations

    BusinessServices

    Ensemble

    InboundAdapters

    AplicaesCliente

    AplicaesExte

    rnas

    InboundAdapter

    s

  • 7/25/2019 Construindo Produes Com Ensemble

    21/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 20

    Demonstrao

    Reviso do Portal de Administrao

  • 7/25/2019 Construindo Produes Com Ensemble

    22/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 21

    A pgina de Produes (Productions) permite iniciar, finalizar e configurar uma produo. A pgina de Event Log exibe erros e mensagens informativas da produo. A pgina de Message Browser exibe todas as mensagens enviadas em uma produo. Tem

    tambm a capacidade de rastrear graficamente as mensagens. A pgina de Testing Service permite testar business processes e business operations.

    Testing Service deve estar habilitado para uma produo. Isto pode ser feito no Studioou no portal de Administrao.

    O Portal de Administrao trabalha com IE 6.0 e superiores.

    Help

    Se voc parar o cursor sobre um nome de campo na pgina da configurao do portal deAdministrao, uma janela de ajuda de texto fornecer uma descrio do campo.

    Reviso de Produo

    Herda de Ens.Production. TestingEnabled no deve estar ativo no ambiente de produo

  • 7/25/2019 Construindo Produes Com Ensemble

    23/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 22

    Mdulo 3 Mensagens

    Mdulo 3 Mensagens

  • 7/25/2019 Construindo Produes Com Ensemble

    24/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 23

  • 7/25/2019 Construindo Produes Com Ensemble

    25/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 24

    Mensagem

    Mensagem o mtodo de comunicao entre componentes dentro de uma aplicao Ensemble. Mensagens so usadas entre business services, business processes e business operations.

    Mensagem

    Mtodo de comunicao entre componentes. Request (requisio) ou Response (resposta).

    Mensagens no so usadas comomecanismo de comunicao entre:

    Business service e aplicao cliente.Business operation e aplicao

    externa.

    Uma mensagem uma resposta (response)ou requisio (request). Cada mensagem tem um cabealho e umcorpo.

    As propriedades do Cabealho soas mesmas para todas as mensagens.

    As propriedades do Corpo soespecficos para a aplicao para cada tipode mensagem.

    Mesmas propr iedadesTipo: Request ou

    ResponseI sError: 0 ou no-0

    Aplicao - propr iedadesespecficasID: nmeroNom e: string

    Cabealhoheader

    Corpobod

    BusinessProcesses

    BusinessOperations

    BusinessServices

    Ensemble

    InboundAdapters

    AplicaesCliente

    AplicaesExterna

    s

    OutboundAdapters

    BusinessProcesses

    BusinessOperations

    BusinessServices

    Ensemble

    InboundAdapters

    AplicaesCliente

    AplicaesExterna

    s

    OutboundAdapters

  • 7/25/2019 Construindo Produes Com Ensemble

    26/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 25

    Demonstrao

  • 7/25/2019 Construindo Produes Com Ensemble

    27/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 26

    Implementao

    Todas as mensagens so subclasses de Ens.Request ou Ens.Response. Uma requisio nem sempre requer uma resposta.

    Todas as mensagens so persistentes. Isto permite que seja possvel pesquis-las e visualiz-las.

    Mensagens de requisio (Request) podem ser enviadas de forma sncrona ou assncrona. Mensagens assncronas no exigem resposta (response).

    A requisio original que causou um business process ou business operation a instanciar eexecutar o trabalho conhecido como primary request (requisio primria) daquele businessprocess ou business operation.

    Corpo de Mensagem (Body)

    Todas as mensagens so Objetos do tipo Message body podem ser: Subclasses de Ens.Message.

    Request ou response. Classes Persistentes. Classes Seriais. Virtual document.

    Tipicamente com processamento HL7.

    Business

    process

    Business

    OperationPrimaryRequest

    PrimaryRequest

  • 7/25/2019 Construindo Produes Com Ensemble

    28/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 27

  • 7/25/2019 Construindo Produes Com Ensemble

    29/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 28

    Mdulo 4 Business Operation

    Mdulo 4 Business Operation

  • 7/25/2019 Construindo Produes Com Ensemble

    30/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 29

  • 7/25/2019 Construindo Produes Com Ensemble

    31/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 30

    Viso Geral

    Definio. Demonstrao. Reviso:

    Implementao.Business Operation.

    Business Operation

    Business Operation responsvel por enviar requisies de dentro do Ensemble para fontes dedados externas, aplicaes ou sistemas

    Business operation chamada por um business service ou um business process. Para uma business operation enviada uma mensagem de request. A mensagem de

    request pode ser enviada de forma sncrona ou assncrona. Uma mensagem de response pode ser retornada, mas no obrigatria.

    Ap

    licaesCliente

    AplicaesExternas

    BusinessProcesses

    BusinessOperations

    BusinessServices

    Ensemble

    Inb

    oundAdapters

    OutboundAdapters

    Ap

    licaesCliente

    AplicaesExternas

    BusinessProcesses

    BusinessOperations

    BusinessServices

    Ensemble

    Inb

    oundAdapters

    OutboundAdapters

    BusinessOperation

    Adaptador

    Web ServiceBusinessOperation

    BusinessOperation

    Adaptador

    BusinessOperation

    Adaptador

    Web ServiceBusinessOperation

  • 7/25/2019 Construindo Produes Com Ensemble

    32/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 31

    Business operation pode ser usada para acessar funcionalidades de fora do Ensemble. Porexemplo, uma business operation pode recuperar informaes de um banco de dados, procuraruma informao em um website, iniciar uma operao usando uma aplicao de terceiros, ou

    entrar com informaes em uma aplicao personalizada. Para acessar funcionalidades de fora do Ensemble, uma business operation geralmente usa um

    adaptador. Pode tambm usar uma chamada de uma API, ou qualquer outra forma que a aplicao

    externa se comunique.

    Message Map

    O message map associa um request a ummtodo.

    Um message map define

    exatamente qual operao externaser executada dependendo dotipo do request.

    Cada mtodo deve ser simples eexecutar uma operao bemdefinida. Um mtodo deverepresentar uma ao especficapara uma aplicao externa.

    Um message map semprerequerido, mesmo existindosomente um mtodo na classe debussines operation

    Message Map

    Tipo de Mensagem: GetNameRequestMtodo: GetName()

    Tipo de Mensagem: GetAddressRequest

    Mtodo: GetAddress()

    Tipo de Mensagem: FindIDRequest

    Mtodo: GetID()

  • 7/25/2019 Construindo Produes Com Ensemble

    33/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 32

    Demonstrao

    Implementao

  • 7/25/2019 Construindo Produes Com Ensemble

    34/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 33

    Implementao

    Business operation estende (herda) da classe Ens.BusinessOperation. O parmetro ADAPTER deve especificar um adaptador de sada (outbound adapter). uma

    subclasse de Ens.OutboundAdapter. Os adaptadores so chamados por uma bussines operation para enviar e receber

    informaes de aplicaes externas. Parmetro INVOCATION:

    Queue A mensagem de request criada em um job, e ento colocado em uma fila eneste momento o job original liberado. Um outro job retirar a mensagem da fila paraprocess-la. Uma fila de business process tem seu prprio processo background (oumais de um) associado, e sua prpria fila de mensagem.

    Este o padro para uma business operation. InProc Quando um request enviado ao business operation, uma instncia do

    business operation instanciada dentro do processo que chamou a operao, e omtodo da operao invocado dentro desse processo.Isso significa que a mensagem de request ser formulada, enviada e entregueno mesmo job em que foi criado. Um bussines process tipo InProc no tem suaprpria fila de mensagens.Uma business operation no deve ser InProc, a menos que haja uma razoespecfica.

    A configurao PoolSize especifica o nmero de processos de background para trabalhar na filade mensagem.

    Deve haver pelo menos um processo de background para cada mtodo da classe de businessoperation. Isto permite que mais de um request seja manipulado simultaneamente.

    BusinessOperation

    PoolSize=3

    Message MapTipo Mensagem: GetNameRequest

    Mtodo: GetName()

    Tipo Mensagem: GetAddressRequestMtodo: GetAddress()

    Tipo Mensagem: FindIDRequestMtodo: GetID()

    BusinessOperation

    PoolSize=3

    Message MapTipo Mensagem: GetNameRequest

    Mtodo: GetName()

    Tipo Mensagem: GetAddressRequestMtodo: GetAddress()

    Tipo Mensagem: FindIDRequestMtodo: GetID()

  • 7/25/2019 Construindo Produes Com Ensemble

    35/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 34

    Response Se o business process retorna um response, deve ser feito o seguinte:

    Definir o parmetro de Output do mtodo com o tipo correto da mensagem response.

    No Mtodo: Criar um objeto response usando a mensagem correta. Configurar as propriedades do response apropriadamente.

    Quando o mtodo retorna, a resposta ser retornado automaticamente ao componente quechamou a business operation.

    Se uma business operation no tiver uma resposta, deixe o parmetro de sada como criadopelo assistente - no o remova.

    Uma business operation deve sempre retornar $$$OK (COS) ou system.Status.OK() (basic) aum business process. Se um business process no receber um status OK de uma businessoperation, o business process ir parar. Uma indicao do status pode ser retornado para quem

    chamou o business process dentro de uma propriedade da mensagem.

    OnMessage()

    Pode ser sobrescrito para manipular requests que no estejam no message map

    OnMessage() um mtodo em Ens.BusinessOperation. Uma business operation que recebe uma mensagem que no est no message map gera um

    erro, a menos que OnMessage() seja sobrescrito.

  • 7/25/2019 Construindo Produes Com Ensemble

    36/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 35

    Bussines Operation

    Business Operation tecnicamente faz referncia ao mtodo da Business Operation, e no

    classe Business Operation. Embora uma "business operation" seja na verdade um mtodo em uma classe de

    business operation, a maioria das pessoas dizem "business operation" quando deveriamdizer classe da business operation.

    Class Grade.GetStu dent Info()Method GetName()

    Method GetAddress()

    Message MapMessage Type: GetNameRequest

    Method: GetName()Message Type: GetAddressRequest

    Method: GetAddress()

    mtodode

    BusinessOperation

    classede

    BusinessOperation

    Class Grade.GetStu dent Info()Method GetName()

    Method GetAddress()

    Message MapMessage Type: GetNameRequest

    Method: GetName()Message Type: GetAddressRequest

    Method: GetAddress()

    mtodode

    BusinessOperation

    classede

    BusinessOperation

  • 7/25/2019 Construindo Produes Com Ensemble

    37/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 36

    Mdulo 5 Business Process

    Mdulo 5 Business Process

  • 7/25/2019 Construindo Produes Com Ensemble

    38/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 37

  • 7/25/2019 Construindo Produes Com Ensemble

    39/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 38

    Viso Geral

    Definio. Demonstrao. Reviso:

    Implementao.Objetos BPL.

    Business Process

    Um business process uma tarefa especfica e bem definida que precisa ser executada

    Um business process orquestra a chamada de uma ou mais business operations e/ou businessprocesses para executar uma tarefa especfica definida, e controla a sua lgica.

    Um business process somente envia requests para uma business operations oubusiness processes.

    Todos os requests e responses para um business process so de dentro do Ensemble.

    BusinessProcesses

    BusinessOperations

    BusinessServices

    Ensemble

    InboundAdapters

    AplicaesCliente

    AplicaesExternas

    OutboundAdapters

    BusinessProcesses

    BusinessOperations

    BusinessServices

    Ensemble

    InboundAdapters

    AplicaesCliente

    AplicaesExternas

    OutboundAdapters

  • 7/25/2019 Construindo Produes Com Ensemble

    40/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 39

    Demonstrao

    Implementao

    Um business process pode ser criado usando: BPL. O business process herda de Ens.BusinessProcessBPL.

    O editor visual BPL gera cdigo BPL. O editor BPL permite que voc modele o business process

    graficamente. Quando uma classe de um business process criada, um bloco XDATA

    contm o BPL.Cdigos BPL tambm podem ser escritos diretamente, sem usar o editor visualde BPL.

    Cdigo Customizado.O business process herda de Ens.BusinessProcess.Cdigo customizado pode ser escrito em ISC Basic ou ObjectScript.Cdigo customizado requer OnRequest() para suportar o primary request dabusiness operation. OnResponse() escrito para manipular requestsassncronos.Para detalhes sobre como escrever cdigo customizado, consulte seo 5.3da documentao: Creating a Business Process Manually, em DevelopingEnsemble Productions.

    Duas das maiores vantagens de usar BPL so o editor grfico e o instanciamentoautomtico dos objetos.

  • 7/25/2019 Construindo Produes Com Ensemble

    41/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 40

    BPL uma definio XML de um business process. A sintaxe BPL baseada em diversos padres de definio SML propostos para

    definio de lgica de negcio. Sua influncia mais forte a linguagem padro

    Business Process Execution Language for Web Services (BPEL).Consulte a documentao Business Process Language Reference para asintaxe e os detalhes do BPL.

    No BPL, todos os valores de atributos necessitam estar entre aspas, simples ouduplas.

    Quando as aspas duplas forem necessrias para strings, use aspas simplesem volta para o atributo BPL.

    O parmetro INVOCATION de um business process deveria ser Queue. O actor pool define o nmero dos processos background disponveis para processar

    requests na fila do business process. H somente uma fila para todos os business processes. Todos os business processes compartilham o mesmo actor pool. O tamanho do actor pool limitado em 100.

    A necessidade de um tamanho muito grande de pool uma indicao dealgum outro problema. Solucione o problema, em vez de apenas aumentar otamanho do pool.

    A maioria das chamadas de um bussines process so chamadas assncronas. Parachamadas assncronas, um temporizador usado. Uma vez que o tempo expira, qualquerresponse futuro a esse request descartado.

    No BPL, se voc esquecer de configurar um temporizador para uma chamadaassncrona, o bussines process no ir esperar.

    Em cdigo customizado, se voc esquecer de configurar o temporizador para uma

    chamada assncrona, o bussiness process ir esperar indefinidamente.

    Configurao de Pool SizeObjetos BPL

    Ajuste do tamanho do Actor Pool da produo.# of CPU jobs for processing requests in public queue.

    Ajuste do tamanho do Pool do business process:0 usado fila publica e actor pool.Non-0 usado com fila privada com especificao # of CPU jobs.

    Business

    Process

    BusinessProcess

    Fila Publica(PublicQueue)

    BusinessProcess

    Fila Privada(PrivateQueue)

    BusinessProcess

    Fila Privada(PrivateQueue)

    Business

    Process

    BusinessProcess

    Fila Publica(PublicQueue)

    BusinessProcess

    Fila Privada(PrivateQueue)

    BusinessProcess

    Fila Privada(PrivateQueue)

  • 7/25/2019 Construindo Produes Com Ensemble

    42/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 41

    O ajuste do tamanho do Actor Pool define o nmero de jobs (chamados "atores") disponveispara processar pedidos na fila pblica do Business Process.

    Todos os business processes que usam uma fila publica compartilham o mesmo actor pool. H uma fila pblica disponvel para todos os Business Process, mas um Business Process pode

    preferivelmente usar uma fila privada.Uma fila confidencial usada se o tamanho do pool configurado para um business Processfor diferente de 0.

    Necessitar um tamanho muito grande do pool pode ser uma indicao de algum outro problema.Resolva o problema, em vez apenas de aumentar o tamanho do pool.

    O valor mximo default do tamanho do actor pool 100.

    Filas Publicas vs. Privadas

    Um business Process que use uma fila privada tem um pool provado para processamento derequest na fila privada. Um pool size Privado maior pode ser til para:

    Executar mais rpido o business processes em uma produo que inclua execues lentasde um business processes.Minimize o impacto de desempenho em outros business process pelo business process maislento.

    Assegure primeiramente, o pedido de sada do request para depois a chamada de a outroscomponentes, como com um processo do negcio HL7

    Objetos BPL

    Os seguintes objetos BPL esto sempre disponveis em qualquer ponto em um business processBPL.

    request primary request do business process.response primary response do business process.process objeto para acessar o business process. Por exemplo, language umapropriedade do objeto process para o business process.context objeto que contm propriedades . (Discutido no mdulo seguinte).

    Os seguintes objetos BPL esto disponveis somente dentro de uma chamada especfica.callrequest request enviada por um elemento .

    somente disponvel dentro do elemento .callresponse response a um elemento .

    somente dentro do elemento .

  • 7/25/2019 Construindo Produes Com Ensemble

    43/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 42

    Objetos BPL

    request x callrequest. request a requisio original que fez o business process instanciar e executar o

    trabalho. Tambm pode ser referenciado como "primary request" para o businessprocess. enviado parao business process.

    callrequest um request criado por um business process e enviada para um businessoperation (ou business process). enviado deum business process.

    response x callresponse. response o response para o primary request que originalmente invocou um business

    process especfico. retornado deum business process. callresponse o response para um callrequest. retornado parao business process.

    request

    response

    call

    Business Process

    callrequest

    callresponse

    callcallrequest

    callresponse

    request

    response

    call

    Business Process

    callrequest

    callresponse

    callcallrequest

    callresponse

  • 7/25/2019 Construindo Produes Com Ensemble

    44/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 43

  • 7/25/2019 Construindo Produes Com Ensemble

    45/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 44

    Mdulo 6 Contexto (Context) no Business Process

    Mdulo 6 Contexto (Context) noBusiness Process

  • 7/25/2019 Construindo Produes Com Ensemble

    46/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 45

  • 7/25/2019 Construindo Produes Com Ensemble

    47/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 46

    Viso Geral

    Definio. Demonstrao. Reviso da implementao

    Business Process

    Contexto de um Business Process

    Um objeto de contexto um objeto para mantr qualquer informao de contexto de finalidadegeral para um business process. Qualquer dado que necessite ser persistido durante o ciclo devida de um business process, os quais no so o response final, pertencem a este objeto.

    O objeto do contexto pode ser referenciado em qualquer ponto do business process. Informao em um objeto de contexto parte do estado persistente de um business process e

    recupervel durante toda a execuo de um business process.

    BusinessProcesses

    BusinessOperations

    BusinessServices

    Ensemble

    InboundAdapte

    rs

    AplicaesCliente

    AplicaesExternas

    Outbou

    ndAdapters

    BusinessProcesses

    BusinessOperations

    BusinessServices

    Ensemble

    InboundAdapte

    rs

    AplicaesCliente

    AplicaesExternas

    Outbou

    ndAdapters

  • 7/25/2019 Construindo Produes Com Ensemble

    48/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 47

    Entrada e Sada com Contexto

    request x callrequest. request o request original que fez o business process instanciar e executar o trabalho.

    Tambm pode ser referenciado como "primary request" para o business process. enviado parao business process.

    callrequest o request criado pelo business process e enviado para um businessoperation (ou business process). enviado deum business process.

    response x callresponse. response o response para o primary request que originalmente invocou o business

    process especfico. retornado deum business process. callresponse o response para um callrequest. retornado parao business process.

    Demonstrao

    primary

    request

    primaryresponse

    call

    Business Process

    callrequest

    callresponse

    callcallrequest

    callresponsecontext

    primary

    request

    primaryresponse

    call

    Business Process

    callrequest

    callresponse

    callcallrequest

    callresponsecontext

  • 7/25/2019 Construindo Produes Com Ensemble

    49/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 48

    Implementao

    Uma propriedade de contexto deve ser definida primeiro dentro do Inspector (Studio) no nvel de

    business process. Pode ento ser usado em um callrequest, response ou em qualquer outraatividade apropriada.

    Frequentemente algumas informaes de um response so gravadas no objeto do contexto eessas informaes so usadas mais tarde.

    Por exemplo, no slide acima o valor do response de IsExternal gravado no objeto decontexto e mais tarde usado para definir a propriedade IsExternal de um callrequest.

  • 7/25/2019 Construindo Produes Com Ensemble

    50/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 49

  • 7/25/2019 Construindo Produes Com Ensemble

    51/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 50

    Mdulo 7 Business Service

    Mdulo 7 Business Service

  • 7/25/2019 Construindo Produes Com Ensemble

    52/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 51

  • 7/25/2019 Construindo Produes Com Ensemble

    53/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 52

    Viso Geral

    Definio. Demonstrao. Reviso:

    Implementao.Design

    Business Service

    Um business service aceita a entrada de fora do Ensemble e passa a informao ao businessprocess ou business operation

    Um business service expe a funcionalidade do Ensemble ao mundo exterior. Um businessservice a maneira que uma aplicao cliente acessa o Ensemble.

    A entrada no atravs de um request, mas um objeto de entrada. Os requests sousados somente dentro do Ensemble, e a entrada para um business service vem de forado Ensemble.

    Aps o business service aceitar a entrada de fora do Ensemble, sua finalidade passar essaentrada para um business process ou business operation. Um business service deve sersimples, e no deve realizar muito processamento.

    A lgica, processamento adicional e manipulao do response devem ser feitos por umbusiness process ou business operation, no pelo business service.

    BusinessProcesses

    BusinessOperations

    BusinessServices

    Ensemble

    InboundAdapters

    AplicaesCliente

    AplicaesE

    xternas

    OutboundAda

    pters

    BusinessProcesses

    BusinessOperations

    BusinessServices

    Ensemble

    InboundAdapters

    AplicaesCliente

    AplicaesE

    xternas

    OutboundAda

    pters

  • 7/25/2019 Construindo Produes Com Ensemble

    54/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 53

    Existem duas formas para acessar um business service: Adaptador de Entrada (Inbound adapter) periodicamente procura por uma entrada para

    processar.

    Chamada Direta uma aplicao cliente com entrada para processar invoca diretamenteum business service.

    Geralmente, um business service envia requests para um business process, mas pode tambmenviar para uma business operation.

    Demonstrao

    Implementao

    Um business service uma sub-classe de Ens.BusinessService. PoolSize determina o nmero de jobs em background para o business service. Se o valor do

    pool size for maior que um, vrias instncias do business service podem estar processando asentradas ao mesmo tempo.

    Por exemplo, vrios processos podem estar trabalhando em arquivos diferentes nomesmo diretrio.

    BusinessService

    BusinessService

  • 7/25/2019 Construindo Produes Com Ensemble

    55/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 54

    Chamadas sncronas no so normalmente usadas, pois elas impedem o business service deprocessar outros requests. Um business service deve aceitar uma entrada e entoassincronamente chamar um business process ou business operation para processamento e

    desempenho. A maioria dos requests so assncronos.

    Embora um request possa ser assncrono ou sncrono, somente um request sncrono pode obterum response.

    Um business service no mantm estado e no persistente, assim no pode receberum response assncrono.

    Um response pode ser recebido a partir de uma chamada sncrona desde que nonecessite estado de persistncia.

    SendRequestSync() necessita passar o response por referncia. ObjectScript por padro no passa por referncia. ISC Basic, por padro, passa por

    referncia.

    Design

    BusinessProcess

    AplicaoCliente

    BusinessService

    ProcessI nput( )

    OnProcessI nput( )Adaptador

    BusinessProcess

    AplicaoCliente

    BusinessService

    ProcessI nput( )

    OnProcessI nput( )Adaptador

    Response

    Business

    Process

    Assnc.vs

    Snc.

    Business

    Process

    Sync Call ( Sncrono)

    Business

    Service Async Call( Assncrono)

    Response

    Business

    Process

    Assnc.vs

    Snc.

    Business

    Process

    Sync Call ( Sncrono)

    Business

    Service

    Response

    Business

    Process

    Assnc.X

    Snc.

    Business

    Process

    Sync Call ( Sncrono)

    Business

    Service Async Call( Assncrono)

  • 7/25/2019 Construindo Produes Com Ensemble

    56/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 55

    ProcessInput() o mtodo usado por um adaptador ou aplicao cliente para invocar umbusiness service.

    ProcessInput() chamar o OnProcessInput() para processar a entrada.

    Todo business service deve ter um mtodo OnProcessInput(). Este mtodo chamado como resultado do business service ter recebido uma entrada. Basicamente, o objetivo do mtodo OnProcessInput() :

    Criar uma nova mensagem de request.Atribuir as propriedades do request baseado no objeto de entrada.Enviar o request para um business process (ou business operation) usandoSendRequestSync() ou SendRequestAsync().

    Uma aplicao cliente que queira invocar diretamente um business process precisa: Chamar CreateBusinessService(). Isto cria uma instncia do business service. Chamar ProcessInput() do business service. Mais detalhes podem ser encontrados no Captulo 4 da documentao: Business

    Services, em Creating Ensemble Productions. Um exemplo disto pode ser encontrado na pgina CSP /csp/ensemble/DemoLoanSubmit.csp.

    Para maiores detalhes sobre adaptadores, veja o Captulo 3 da documentao: InboundAdapters, em Developing Ensemble Applications.

  • 7/25/2019 Construindo Produes Com Ensemble

    57/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 56

    Mdulo 8 Data Transformation

    Mdulo 8 Transformao de Dados

  • 7/25/2019 Construindo Produes Com Ensemble

    58/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 57

  • 7/25/2019 Construindo Produes Com Ensemble

    59/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 58

    Viso Geral

    Definio. Demonstrao. Reviso da implementao. Documentao DTL

    Data Transformation

    Uma transformao de dados pode realizar o seguinte: Converter uma mensagem de um tipo em uma mensagem de um outro tipo.

    A transformao de dados so mais usados freqentemente para converter ositens recebidos em uma mensagem de response em parmetros necessriospara solicitar um novo request.

    Transforma um objeto em outro. Converte dados de um sistema externo em uma mensagem do Ensemble.

    Uma transformao de dados (Data transformations) pode ser chamada de qualquer lugar queum mtodo puder ser chamado.

  • 7/25/2019 Construindo Produes Com Ensemble

    60/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 59

    Demonstrao

    Implementao

  • 7/25/2019 Construindo Produes Com Ensemble

    61/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 60

    Uma transformao dos dados (data transformation) pode ser implementada usando uma dasseguintes opes:

    DTL.

    DTL um subconjunto de BPL, incluindo somente os elementos detransformao de dados.Uma transformao de dados usando DTL herda de Ens.DataTransformDTL.

    Codificao manual usando ObjectScript ou ISC Basic.Uma transformao de dados (data transformation) feita desta maneira herda deEns.DataTransform.

    Documentao DTL

    Consulte Data Transformation Language Reference para detalhes sobre DTL. A documentao Data Transformation Language Reference detalha e mostra a sintaxe de

    todos os elementos DTL.

  • 7/25/2019 Construindo Produes Com Ensemble

    62/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 61

  • 7/25/2019 Construindo Produes Com Ensemble

    63/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 62

    Mdulo 9 Business Processing Model

    Mdulo 9 Business Processing Model

  • 7/25/2019 Construindo Produes Com Ensemble

    64/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 63

  • 7/25/2019 Construindo Produes Com Ensemble

    65/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 64

    Viso Geral

    Business Processing Model. Portal de Administrao. Produes. Mensagens. Business components. Adaptadores. Aplicaes compostas. BAM. Depurao.

    Business Processing Model

    Este o completo Business Processing Model. Abaixo esto as adies: Uma linha representa um business process invocando outro business process. Uma linha representa uma business operation invocando outra business operation. Uma linha representa uma business operation invocando um business process. Aplicao Composta O Ensemble permite voc combinar recursos de software

    existentes para criar aplicaes inteiramente novas, compostas, que tm as habilidadesque nenhuma aplicao existente tem em si.

    Mais detalhes so fornecidos mais tarde em outros mdulos. Bases de Dados Confederadas Uma bases de dados externa uma coleo de vrias

    bases de dados fsicas, todas usando diferentes sistemas de gerenciamento de basesde dados, que podem ser acessadas como uma nica origem dos dados. umaconstruo lgica que determina automaticamente o destino apropriado para cadarequisio de dados: ou a base de dados do Ensemble, ou uma base de dados externaatravs da informao designada da conexo.

    BusinessServices

    InboundAdapters

    OutboundAdapter

    s

    AplicaesExternasAplicao

    Composta

    Bases de Dados Confederadas

    EnsembleAplicaesCliente

    BusinessProcesses

    BusinessOperations

    Web

    SOAP

    Java

    BusinessServices

    InboundAdapters

    OutboundAdapter

    s

    AplicaesExternasAplicao

    Composta

    Bases de Dados Confederadas

    EnsembleAplicaesCliente

    BusinessProcesses

    BusinessOperations

    Web

    SOAP

    Java

  • 7/25/2019 Construindo Produes Com Ensemble

    66/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 65

    Uma Base de Dados Confederada suporta operaes heterogneas atravs debases de dados diferentes, e manipula atualizaes na base de dados atravsde mapeamentos, transformaes, e distribuies de dados para diferentes

    bases de dados fsicas conforme necessitar. (Processos Heterogneosatualmente usam adaptadores iWay.)Durante a execuo, os itens configurados na produo tais como businessservices, business processes, e business operations podem usar a base dedados confederada sem realmente "saber" onde os dados esto. Eles acessamtodos os dados como se fossem do Ensemble.

    A tecnologia utilizada para configurar uma base de dados confederada chamada SQLGateway. Pode ser utilizada com qualquer base de dados externa compatvel com ainterface ODBC. Adicionalmente, voc pode permitir que uma base de dados no ODBCparticipe de uma base de dados confederada usando um adaptador outbound (Externos)para apresentar a base de dados no-ODBC como ODBC.

    Para detalhes de programao, verifique a documentao de Using SQL

    Gateway.

    Detalhes do Ensemble

    O Ensemble fornece automaticamente um conjunto comum de capacidades internas para cadaproduo. Esta infra-estrutura de produo embutida inclui os elementos que suportamtransferncia de mensagens, monitoramento, persistncia, gerenciamento, rastreamento,recuperao, cache e armazenamento.

    O Ensemble est em Unicode. A biblioteca de classe do Ensemble est contida nos pacotes Ens e EnsLib. Atualmente, cada

    pacote tem que existir em algum namespace habilitado ao Ensemble. No futuro, a habilidade demapear pacotes atravs dos namespaces remover esta exigncia.

    Todas as classes usadas em produes do Ensemble so procedure blocks. Comoconseqncia, todas as variveis so locais no escopo.

    Os assistentes e o cdigo da demonstrao de integrao bancria seguem uma conveno detVariable e de pVariable para nomes variveis. Se voc sobrescrever uma classe, vocprovavelmente no ver esta conveno.

    Em uma classe, XDATA um parmetro no formato de XML usado em tempo de compilao.

  • 7/25/2019 Construindo Produes Com Ensemble

    67/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 66

    Portal de Administrao

    Se uma produo terminar anormalmente, o Portal de Administrao pode apresentar um botode recuperao (Recover) na pgina inicial. Antes de reiniciar a produo, clique no botoRecover.

    Quando o boto Recover no est disponvel, use:ObjectScript do ##class(Ens.Director).CleanProduction()Basic Ens.Director.CleanProduction()

    A pgina do Portal de Administrao tem um namespace em seu path. Como resultado,cada namespace habilitado ao Ensemble tem seu prprio Portal de Administrao.

    O Portal de Administrao, uma aplicao CSP, construda para facilmente ser personalizvel.As pginas existentes podem ser alteradas e novas podem ser criadas.

    Usa a ferramenta grfica, SVG, para mostrar os diagramas.

  • 7/25/2019 Construindo Produes Com Ensemble

    68/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 67

    Se a produo em execuo tornar-se fora de sincronizao com a produo compilada, o botoProduction Update! pode aparecer. Para atualizar a produo em execuo, clique no boto.

    Uma produo em execuo pode as vezes, mas no sempre, tornar-se fora desincronizao ao adicionar ou recompilar um componente. Quando isto ocorre dependedo tipo de componente e de outras circunstncias. Por exemplo, se voc recompilar umabusiness operation enquanto est em execuo, o boto pode aparecer.

    No recomendado recompilar um business service ou business operationenquanto a produo est em execuo. O comportamento pode no ser comoera antes de clicar no boto Production Update!.Se voc tiver que recompilar um business service ou business operationenquanto a produo estiver em execuo, faa o seguinte:

    Desabilite o business service ou business operation desde que tenha umprocesso job particular associado a eles quando habilitado.

    o Por padro, o Studio configurado para no compilar classesem uso. Mantenha esta configurao.

    o Verifique se o business service completou o processamento daentrada atual. Ou, verifique se o business operation completou o

    processamento de todas as mensagens. Baseado na aplicaoexterna associada com o business operation, isso pode levar umtempo para completar o processamento de um request.

    Recompile o business service ou business operation. Habilite o business service ou business operation.

  • 7/25/2019 Construindo Produes Com Ensemble

    69/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 68

    O parmetro Inactivity Timeout de cada componente de uma produo permite voc especificarquando o sistema deve assinalar um componente como inativo. O que feito com o componentequando assinalado como inativo, depende do programador.

    Como um business service no pode receber um response de um request assncrono, o TestingService business service passa um request ao Testing Process business process que podeesperar por um response.

  • 7/25/2019 Construindo Produes Com Ensemble

    70/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 69

    Produes (Productions)

    Somente uma produo pode rodar em um namespace por vez. No configure a opo Testing Enabled para uma produo real. Somente os ambientes de

    teste e de desenvolvimento devem ter a opo Testing Enabled configurada. Se algo for desabilitado na produo, no tem um processo associado a ela.

    Namespace de Produo

    Testing Enabled

    Namespace de Teste

    Desativado

    Namespace de Produo

    Testing Enabled

    Namespace de Teste

    Desativado

    BusinessOperation

    BusinessService

    BusinessService

    BusinessOperation

    BusinessProcess

    BusinessProcess

    BusinessProcess

    BusinessProcess

    Actors

    BusinessOperation

    BusinessService

    BusinessService

    BusinessOperation

    BusinessProcess

    BusinessProcess

    BusinessProcess

    BusinessProcess

    Actors

  • 7/25/2019 Construindo Produes Com Ensemble

    71/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 70

    Quando o Ensemble inicia, um processo diretor (director process) l a definio da produo ecria os processos necessrios:

    Business services baseados no parmetro PoolSize.

    Atores para business processes baseados no parmetro Actor Pool Size. Business operations baseadas no parmetro PoolSize.

    Todos os business processes compartilham um pool de processos alocados. Cada processo emum pool referenciado como um ator. Um ator uma lista inteiramente em branco e no temnenhuma ligao ou conhecimento de um business process especfico. Isto o que faz os atoresdiferentes dos processos em uma business service ou business operation.

    Em geral, o nmero de pool size deve ser igual ao nmero de CPUs. Cada business service e business operation tem seu prprio pool de processos alocados, porque

    a comunicao fora do Ensemble pode estabelecer necessidades especiais. Por este motivo, onmero de processos para um business process e uma business operation especficosnecessitam ser configurados.

    O pool size pode ser alterado enquanto uma produo est em execuo. Por exemplo,podem haver perodos em que um nmero grande de requests incomuns recebido porum componente. Para manipular isto, o administrador poderia aumentar o PoolSize atque a carga retorne ao normal.

    Os pedidos sncronos esto ativamente esperando e tentando amarrar um processo de pool.Os pedidos assncronos no so amarrados a um processo enquanto esperam uma resposta.

    Os seguintes status so possveis ao parar uma produo: Stopped quando todas as filas de mensagem estiverem livres de mensagem sncronas

    e no houver nenhum alarme pendente. Suspended se uma fila de mensagem ainda contm mensagens sncronas ou existem

    requests de alarmes pendentes. Ens.Director.CleanProduction() esvazia todas as ocorrncias da fila. Execute-o se a produo

    estiver com o status suspended. ObjectScript do ##class(Ens.Director).CleanProduction() Basic Ens.Director.CleanProduction()

  • 7/25/2019 Construindo Produes Com Ensemble

    72/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 71

    Cada componente de uma produo tem um nico nome nessa produo. O nome de produodo componente, no o nome da classe, o que usado ao invocar um componente.

    Por exemplo, ao configurar um target no editor BPL, voc deve escolher uma produo,e a mesma ir mostrar uma lista de nomes, no classes, para a escolha.

    Quando um componente adicionado a produo, por padro opta pelo nome daclasse, se nenhum nome for dado.

    Uma classe pode ser usada mais de uma vez em uma produo. Isto permite configuraesdiferentes do adaptador, tais como o diretrio.

    Um parmetro em um mtodo Ensemble que refere-se a um business component em umaproduo leva o nome do componente na produo, no o nome da classe.

    Por exemplo, em SendRequestAsync(pTargetDispatchName As %String, pRequest AsEns.Request), pTargetDispatchName o nome do componente na produo, no onome da classe.

  • 7/25/2019 Construindo Produes Com Ensemble

    73/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 72

    O default scheduling programado para os itens da configurao para que funcionem sempreque a produo est rodando, mas voc pode usar o campo de Schedule para um item daconfigurao. Esta uma string de comandos opcionais que programem o item para ser paradoe iniciado em horas especficas, em dias especficos da semana, do ms, ou do ano.

    Quando est no momento de iniciar, se o item estivar habilitado ser iniciado; quando foro momento de para, se o item estiver rodando ser finalizado.

    A string Schedule separada por virgula. Cada evento especificado tem o seguinteformato: action:YYYY-MM-DDThh:mm:ss. Alguns destes campos podem ser o nico carter * (asterisco) indicando todos

    os anos, meses, ou dias. YYYY pode ser a palavra WEEK, MM pode ser uma semana especfica do

    ms (01=primeira semana, 02=segunda semana, etc.), e DDpode especificar odia da semana (00=Domingo, 01=Segunda-feira, etc.).

    O campo da categoria para um item da configurao um rtulo (Label) opcional do texto quevoc possa usar agrupar visualmente itens da configurao dentro do diagrama da produo.

    Ao visualizar uma produo na pgina da configurao, right-click ShowCategory Select o nome da categoria. O diagrama muda para mostrar somenteaqueles itens de configurao que combinam o nome da categoria que voc selecionou.

    A configurao Inactivity Timeout de cada componente da produo especifica sempre quando ocomponente deve ser marcado como inativo

    Consulte Managing Ensemble Production para detalhes em cada uma destes configuraes.

    Pode visualmenteconfigurar grupo deitens iguais ascategorias.R-Cl ick VisualizarCategorias na pgina deConfigurao.

    Flag do componente

    como inativoaps especificadonm ero de segundos.

    Schedule item t ostart/stop:

    action:YYYY-MM-DDThh:mm:ss

    Pode visualmenteconfigurar grupo deitens iguais ascategorias.R-Cl ick VisualizarCategorias na pgina deConfigurao.

    Flag do componente

    como inativoaps especificadonm ero de segundos.

    Schedule item t ostart/stop:

    action:YYYY-MM-DDThh:mm:ss

  • 7/25/2019 Construindo Produes Com Ensemble

    74/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 73

    Quando um componente rodar em primeiro plano (foreground), uma sesso de terminal serassociada com o trabalho que est sendo usado pelo componente. Esta janela de terminal

    indicar o $$$TRACE e outras mensagens de Debug. Utilize somente para eliminar os erros; mas no execute em um ambiente de produo. Um business service que est sendo invocado diretamente no pode executar em

    primeiro plano (Foreground). Neste caso porque o trabalho que chama o businessservice no est rodando em primeiro plano.

    A configurao do Log Trace Event permitem que a mensagem de Trace seja armazenada noincio de uma sesso do evento a ser indicado na janela do terminal de um componente queroda em primeiro plano.

    Abre a janela terminal paradepurar as mensagens eeliminar erros.

    Exibe mensagens de Trace

    do componente no Event Log.

    Abre a janela terminal paradepurar as mensagens eeliminar erros.

    Exibe mensagens de Trace

    do componente no Event Log.

  • 7/25/2019 Construindo Produes Com Ensemble

    75/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 74

    Quando desenvolver um componente no estdio, o desenvolvedor pode fazer propriedades paraesse componente configurveis atravs do portal. Toda a propriedade listada no parmetro

    SETTINGS para um componente aparece automaticamente na pgina da configurao no portalsempre que o componente selecionado.

    Isto permite que um no-desenvolvedor use a pgina de configurao para ajustarvalores para estas propriedades sem mudar o cdigo prprio.

    Isto pode ser feito com business services, business processes, business operations e adapters. Isto feito frequentemente para permitir a configurao dos ajustes do adaptador atravs do

    portal, no pelo estdio. Isto permite tambm os componentes diferentes que usam o mesmo adaptador ter

    ajustes diferentes do adaptador, tais como File Path.

  • 7/25/2019 Construindo Produes Com Ensemble

    76/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 75

    Mensagens

    Quando um request chega na fila de um item de configurao, o item invoca um job (processo

    de CPU) de seu pool de jobs disponveis. Se nenhum job estiver disponvel no pool de itens deconfigurao dos jobs, o request deve esperar um job tornar-se disponvel. Um job retorna aopool de jobs disponveis depois que terminar sua tarefa.

    Uma fila uma global. Filas so manipuladas pelo mecanismo Ensemble e utilizam um mecanismo de

    notificao de evento. O Portal de Administrao pode ser usado para visualizar as filas, mas no pode ser

    usado para manipular a fila de uma produo que estiver executando. Componentes InProc no usam filas para manipular requests.

    Todos os business processes compartilham uma fila, Ens.Actor. o alvo de todas asmensagens enviadas a qualquer business process. Cada business service e business operationtem sua prpria fila privada, que o destino para todas as mensagens do Ensemble enviadas aelas. Cada mensagem em uma fila privada est esperando um dos jobs no prprio pool do itemtornar-se livre.

    Q

    Q

    Q Q

    Q Q

    Q

    Q

    Q Q

    Q Q

  • 7/25/2019 Construindo Produes Com Ensemble

    77/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 76

    Alguns campos do cabealho de mensagem de interesse: ObjectID Cada mensagem tem um nico ID. Status As possveis mensagens de status so:

    Created Uma mensagem em trnsito tem o status Created at que encontreseu lugar em uma fila.Queued Quando uma mensagem encontra seu lugar em uma fila.Completed Quando uma mensagem alcana seu destino.Discarded Quando uma mensagem de response assncrona chega depois queo time-out associado com o request expira.Suspended Business operation pode ser designado a descartar qualquermensagem que falhar.Deferred Quando uma business operation adia um response.

    CorrespondingMessageId Mensagens de request contm o ID da mensagem deresponse correspondente, se houver uma. As mensagens de response contm o ID damensagem de request correspondente.

    SessionId Uma sesso marca o incio e o fim de todas as atividades chamadas por umobjeto de entrada de fora do Ensemble enviadas a um business service. O Session ID igual ao ID da primeira mensagem do business service chamada pelo objeto de entrada.

  • 7/25/2019 Construindo Produes Com Ensemble

    78/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 77

    Esta uma maneira de declarar uma ligao entre uma classe do request e sua classecorrespondente de response. Em conseqncia ele:

    um formulrio de self-documentation. Permite que uma business operation ou um business process chamem o mtodo de

    NewResponse() do objeto da request (se for derivada de Ens.Request) para comearautomaticamente um objeto da response da classe correta. Usando NewResponse(),voc no necessita saber ou especificar corretamente a classe da resposta .

    Usando NewResponse() da classe de request:do ##class(Prod.GetIDRequest).NewResponse()

    Usando New() da classe de Response:do ##class(Prod.GetIDResponse).New()

  • 7/25/2019 Construindo Produes Com Ensemble

    79/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 78

    Business Operations

    Uma business operation aceita um request dentro do Ensemble e processa-o ou o transmite s

    entidades fora do Ensemble para processamento. No misture chamadas s aplicaes externas diferentes na mesma classe de business

    operation. Todos os mtodos de uma business operation tem uma assinatura comum. O primeiro

    argumento o objeto do request de entrada e o segundo usado para retornar um objeto deresponse por referncia. O mtodo operation retorna %Status, indicando sucesso ou falha.

    Uma classe de business operation pode ter outros mtodos na classe que no esto nomessage map.

    Uma vez que as business operations no so persistentes (no tem estado), elas no podeminteragir assincronamente com uma aplicao externa.

    Por causa disso, se uma aplicao externa levar um longo tempo para responder, emvez de fazer uma business operation esperar, deixe que uma aplicao externa invoqueum business service quando estiver finalizado.

    Se possvel, no recompile uma business operation enquanto a produo estiver executando.Mas se voc tiver que faz-lo, faa o seguinte:

    Desabilite a business operation desde que tenha um job especfico associado a elaquando estiver habilitado, e que os jobs j tenham terminado.

    Por padro, o Studio est configurado para no compilar classes em uso.Mantenha esta configurao. Verifique se a business operation completou o processamento de todas as mensagens.

    Baseado em uma aplicao externa associada com a business operation, pode demorarum pouco para completar o processamento de um request.

    Recompile a business operation. Habilite a business operation.

  • 7/25/2019 Construindo Produes Com Ensemble

    80/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 79

    Uma business operation pode adiar/protelar um response. Em vez de enviar o response nabusiness operation, o response enviado mais tarde.

    Para adiar um response em um business operation, faa o seguinte: 1) Adie o response em um business operation usando:sc = me.DeferResponse(token) (Basic) ou

    set sc=..DeferResponse(.token) (ObjectScript)O token uma a string e retornado via o argumento de referncia para o mtodoDeferResponse(). Depois, o token ser usado para enviar o response. Este mtodotambm configura ..DeferResponse=1, que faz o response ser adiado. A businessoperation finaliza sem enviar o response, mas com ..DeferResponse configurado para 1,isto permite que algum outro cdigo envie mais tarde o response usando o token.

    Uma vez que a mensagem est em estado deferred, a propriedade Status doMessageHeader Deferred".

    2) Envie o response posteriormente:sc = me.SendDeferredResponse(token,ResponseBody) (Basic) ouset sc= ..SendDeferredResponse(token,ResponseBody) (ObjectScript)

    Isto far o response ser enviado de volta ao transmissor da mensagem de request original. Oprimeiro argumento o token criado pela chamada de DeferResponse na business operation. Osegundo argumento uma instncia do response apropriado.

    Quando o transmissor original do request recebe o response, a propriedade Status doMessageHeader configurada como Completed.

    Classe de Business operation tem os mtodos SendRequestSync() e SendRequestAsync(). Elesse comportam da mesma forma que os mtodos das classes de business service.

    SendRequestSync() envio sncrono de um request e recebe um response. SendRequesAsync() envio assncrono de um request, mas no recebe response. De

    uma business operation (ou um business service) voc no pode enviar um requestassncrono que receba um response. Somente business processes pode manipularresponses assncronos.

    BusinessProcess

    BusinessOperation

    BusinessProcess

    BusinessOperation

  • 7/25/2019 Construindo Produes Com Ensemble

    81/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 80

    Um message map uma estrutura XML, contida dentro de um bloco XDATA chamadoMessageMap dentro da classe de business operation.

    Em um message map o seguinte verdadeiro: Pesquisa est na ordem listada e pra quando encontra um registro equivalente. Um item do mapa pode ser uma super classe de outros itens do mapa. Ir comparar com

    um listado anteriormente. Se no houver equivalente para a mensagem, uma entrada colocada no event log e o

    request ignorado.Escreva OnMessage() para manipular requests que no estejam no messagemap.

  • 7/25/2019 Construindo Produes Com Ensemble

    82/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 81

    Business Processes

    Quando uma produo inicia, criado um pool dos processos do ator que escutam uma fila

    comum. Quando um request colocado na fila, o objeto do business process correto instanciado e o request enviado a ele. Enquanto um business process est esperando por um response, pode ser escrito no

    disco e ser obtido por um ator diferente na prxima vez. Recompilar um business process com uma produo em execuo possvel desde que um job

    particular no esteja amarrado no business process. Se voc recompilar quando um job estiveramarrado ao business process, o job receber um erro de EDITED.

    A finalidade do contexto de execuo manter o estado persistente de um business process,isto , qualquer valor que tiver de ser recuperado durante a execuo do business process. Osnomes de algumas variveis do contexto da execuo disponveis a voc so: context, request,

    response, callrequest, e callresponse. Cada um tem uma finalidade especfica, como descrito noDeveloping Ensemble Productions ou Business Process Language Reference para os elementos e .

    Context Objeto para qualquer informao de contexto para um Business Process.Qualquer dado que necessitar ser persistido durante o ciclo de vida de um businessprocess, que no o response final, deve ir aqui.

    Request Primary request do business process. O primary request o request queinstanciou o business process.

    Response Response do business process. Callrequest O request relacionado a um elemento . Callresponse O response relacionado a um elemento .

    As variveis de contexto da execuo so gravadas automaticamente para a base de dados

    sempre que a execuo do business process suspensa (como ao esperar um response deuma mensagem assncrona). A persistncia do contexto da execuo fornece a habilidade deexecutar business processes a longo prazo processos que possam levar horas ou semanaspara serem completados sem suspender os recursos de sistema.

    A execuo do contexto persiste informao do contexto e do estado para o business processatravs de todos os eventos, falhas e finalizaes.

    O estado e a recuperao de um business process controlado pelo Ensemble.Somente as chamadas sncronas podem ser recuperadas.

  • 7/25/2019 Construindo Produes Com Ensemble

    83/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 82

    BPL

    Um business process escrito em BPL uma classe com um bloco XDATA chamado BPL. Senecessrio, pode tambm incluir mtodos fora do bloco XDATA. Estes mtodos deveriam serescritos em ObjectScript ou ISC Basic.

    BPL no define lgica linear. Quando escrever um BPL manualmente, mantenha o seguinte em mente:

    "process" o nome do objeto para acessar o business process atual. Isto quer dizer,para consultar um mtodo naquela classe BPL, use a sintaxe process.mtodo.

    Ao configurar um valor de atributo em BPL, necessrio uso de aspas (simples ouduplas). (O valor de um atributo qualquer coisa no lado direito do sinal de igual (=).)

    Por exemplo, atribuir nome=EsteResultadoComo ObjectScript e ISC Basic necessitam de strings com aspas duplas, useaspas simples em volta de toda a string.

    Por exemplo, condition='request.BusinessOperationType="mail"' Outro exemplo , Esta nota segue

    um padro.o Nota: O elemento delay no espera ativamente, pois no usa

    um ator

  • 7/25/2019 Construindo Produes Com Ensemble

    84/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 83

    Ensemble suporta o conceito de componentes reusveis. Um business process component, ou BPL component, um BPL business process que

    um programador deseja identificar como uma seqncia modular, reusvel nas etapasda linguagem dos BPLs.

    Um componente do BPL analogo a uma funo, a um macro, ou a uma sub-rotina emoutras lnguagens de programao. Somente um outro business process dos BPL podechamar um componente dos BPL.

    No usa o elemento do BPL. O componente do business process do BPLexecuta tarefas, retorna ento o controle ao business process do BPL que ochamou.

    A arquitetura do ensemble permitiu sempre que um business process BPL chame umoutro business process BPL. A diferena no ensemble v4.0 que a designao"componente" opcional permite que voc classifique determinados processos do negciodos BPL como uns componentes mais simples, lower-level isso:

    No pretendem rodar como processos autnomos do business processes(embora nada proiba isto).

    Pode ser reusvel (no sentido de uma funo, de um macro, ou de uma sub-rotina).

    Business processes que no so "componentes" so usados para projetos mais complexos, oupropsitos especiais, e para operar-se em um nvel conceptual mais elevado do quecomponentes.

  • 7/25/2019 Construindo Produes Com Ensemble

    85/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 84

    BPL Call Wizard

    O Assistente de chamada BPL pode ser

    usado para criar em um BPLbusiness process. Os alvos (Target) vlidos podem

    ser: Business operation. Business process. Business process

    component. Baseado na produo e no alvo

    selecionados, indica oscomponentes apropriados.

    O wizard pode ser usado adicionaras corretas mensagens de requeste response para o componenteselecionado bem como cria aspropriedades faltantes do contextonecessitadas povoar a mensagemdo request.

    O assistente padro parachamadas sncronas, mas permite aespecificao de chamadasassncronas.

  • 7/25/2019 Construindo Produes Com Ensemble

    86/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 85

    Substituindo um Business Processes

    Quando voc precisar atualizar ou reparar um business process: Pegue seu business process existente e copie a classe (Tools->Copy Class) para umbusiness process de nome diferente. Faa suas melhorias na classe nova e teste as mudanas. V para seu cdigo da produo no Studio e mude o nome da classe que est sendo

    usado, com o nome configurado do Business Process da classe antiga para a classenova.

    O Portal de Administrao no permite que voc mude o nome da classe associada comum business process, ou nenhum outro business component.

    A partir do momento que voc aplicar a mudana, todos as instncias novas dobusiness process iro usar a classe nova, mas as instncias de businessprocess que j estiverem sido iniciadas e ainda estiverem em progresso irocontinuar usando a classe antiga.

    Business processes pr-existentes continuaro a usar a verso antigada classe do business process mesmo depois de um reincio daproduo.

    Quando todas as instncias pendentes da antiga classe do business processestiverem completas, seguro excluir a classe, se voc desejar.

    Voc deveria adotar uma conveno de nomes de verses no nome da classe do businessprocess para manter registro das novas verses que voc introduz.

    Este procedimento no funciona com business services e business operations instanciados.Neste caso, desabilite os componentes antes de mudar para um nome da nova classe (ou decompilar a classe existente).

    Business Services

    PoolSize

    AceitaEntrada

    Envia

    Request

    BusinessService

    BusinessProcess

    MessageID=

    SessionID

    Ent rada de forado Ensemble

    PoolSize

    AceitaEntrada

    Envia

    Request

    BusinessService

    BusinessProcess

    MessageID=

    SessionID

    Ent rada de forado Ensemble

  • 7/25/2019 Construindo Produes Com Ensemble

    87/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 86

    Um business service aceita entrada de fora do Ensemble e retransmite a entrada dentro doEnsemble para processar e completar a tarefa.

    Um business service no deveria fazer muito processamento. melhor passar o

    trabalho para um business process e ter o foco do business service em fazer umaentrada rpida. Business processes so muito mais flexveis que business services. Um business service invocado por uma aplicao cliente ou um objeto de entrada, no um

    request. (Um request somente existe dentro do Ensemble.) Quando um business service recebe uma entrada, ele gera um primary request e associa o

    message ID ao session ID. O nmero de processos background servindo um business service determinado pelo valor do

    PoolSize. Se o PoolSize for maior que um, mltiplas instncias do business service podem estarprocessando a entrada ao mesmo tempo.

    Por exemplo, mltiplos processos podem estar procurando novos arquivos em umdiretrio e processar novos arquivos quando chegarem.

    O atual mecanismo para um business service receberuma entrada tipicamente delegado a um adaptadorinbound, mas um adaptador no sempre necessrio.Se uma aplicao cliente puder enviar a entrada para obusiness service ou se o business service pudermanipular chamadas externas a partir da aplicaocliente, um adaptador no necessrio.

    Se um adaptador no estiver sendo usado, aaplicao cliente chama o business service e oinforma para processar a entrada.

    Se um business service tem um adaptador, oadaptador procura por dados em intervalos

    especficos. (O intervalo configurado no Portalde Administrao como um parmetro doadaptador, CallInterval)

    Se h entrada, a entrada enviadapara o business service.

    Se o business service tem um adaptador, cada job embackground tem um adaptador associado.

    Como resultado, cada job em segundo-planoverifica a cada intervalo de chamada.

    Por exemplo, se o PoolSize for 3 parao bussiness service com umadaptador, 3 jobs em segundo-planoesto chamando o adaptador para

    procurar por entradas.

    BusinessService

    Procura a entradaem cada CallInt erval

    Ada

    ptado

    r

    AplicaoCliente

    Inv oca comEntrada

    BusinessService

    BusinessService

    Procura a entradaem cada CallInt erval

    Ada

    ptado

    r

    AplicaoCliente

    Inv oca comEntrada

    BusinessService

  • 7/25/2019 Construindo Produes Com Ensemble

    88/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 87

    Adaptadores

    Adaptador o cdigo que adapta a interface de programao nativa de uma aplicao externaou de uma aplicao cliente em uma forma que seja compreensvel a uma produo doEnsemble.

    A funo de um adaptador inbound esperar um intervalo e ento executar o OnTask(). OnTask() ir procurar entradas e enviar a entrada a um business service, se existir.

    BusinessProcess

    BusinessOperation

    BusinessService

    Ensemble

    InboundAdapters

    AplicaesCliente

    AplicaesExte

    rnas

    OutboundAdapters

    BusinessProcess

    BusinessOperation

    BusinessService

    Ensemble

    InboundAdapters

    AplicaesCliente

    AplicaesExte

    rnas

    OutboundAdapters

    Database

    Cach Oracle SQL Server

    DB2 Informix Sybase File

    COM .Net Java

    EJB C++ Web Srv HL7 Swift

    HTTP POP3 SMTP

    FTP TCP/IP XML MQSeries FIX

    SAP/R3 Siebel PeopleSoft

    JD Edwards Lawson Oracle Apps

    TecnologiaAplicaes

    Biblioteca de Adaptadores Ensemble

    Database

    Cach Oracle SQL Server

    DB2 Informix Sybase File

    COM .Net Java

    EJB C++ Web Srv HL7 Swift

    HTTP POP3 SMTP

    FTP TCP/IP XML MQSeries FIX

    SAP/R3 Siebel PeopleSoft

    JD Edwards Lawson Oracle Apps

    TecnologiaAplicaes

    Biblioteca de Adaptadores Ensemble

  • 7/25/2019 Construindo Produes Com Ensemble

    89/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 88

    Adaptadores usados com Ensemble podem ser: Adaptadores pr-construdos. Adaptadores que voc implementa.

    A Biblioteca de Adaptadores do Ensemble inclui mais de 250 adaptadores. Muitos destes adaptadores so da iWay Software, uma empresa especializada em

    adaptadores. Seus adaptadores permitem integrao com um grande nmero deaplicaes de terceiros.

    Para detalhes, consulte a seo 8.2: Working with iWay Adapters, emDeveloping Ensemble Productions.

    Todos os adaptadores so subclasses de Ens.InboundAdapter ou Ens.OutboundAdapter. Em um adaptador, o parmetro SETTINGS identifica as propriedades que so configurveis no

    Portal de Administrao. Por exemplo, Parameter SETTINGS = "Propriedade1, Propriedade2"

    Defina os mtodos necessrios para o adaptador. Um adaptador inbound deve ter um mtodo OnTask() apropriado para o adaptador.

    Normalmente, o desenvolvedor sobrescreve o mtodo OnTask() herdado deEns.InboundAdapter.

    Se um business service tem um adaptador, o business service chama o mtodo OnTask() doadaptador durante intervalos regulares para verificar os dados. (O intervalo configurado noPortal de Administrao como um parmetro do adaptador, CallInterval)

    O Ensemble organiza o loop exigido pelo intervalo de verificao. Se a execuo do cdigo do business service for demorar mais que o CallInterval,

    OnTask() chamado imediatamente mediante a concluso do cdigo. CallInterval adiado para chamar OnTask() outra vez.

    Se houver dados, o adaptador: Recebe as entradas. Empacota a entrada em um objeto que o business service espera. Invoca o mtodo ProcesInput() do business service, que ento chama o

    OnProcessInput() para o business service.O mtodo OnProcessInput() onde o trabalho real do business service ocorre.OnProcessInput() precisa ser escrito para o business service.

    Para detalhes da criao de adaptadores inbound, consulte o captulo 3: Inbound Adapters, em

    Developing Ensemble Productions.

    Business ServiceInboundAdapter

    OnTask()

    ProcessInput()

    OnProcessInput()Faz o tr abalho.Necessrio escrever.

    Verificas

    eh

    entrada

    Enviaaentrada

    CallInterval

    Business ServiceInboundAdapter

    OnTask()

    ProcessInput()

    OnProcessInput()Faz o tr abalho.Necessrio escrever.

    Verificas

    eh

    entrada

    Enviaaentrada

    CallInterval

  • 7/25/2019 Construindo Produes Com Ensemble

    90/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 89

    Adaptadores Outbound so usados pelo business operations para comunicar com aplicaesexternas.

    Por exemplo, um adaptador outbound de Email pode ser usado para enviar um e-mail. Nem todas as business operations requerem um adaptador outbound. Um adaptador OutBound deve implementar um ou mais mtodos que seu business operation

    correspondente possa invocar. Para detalhes da criao de adaptadores outbound, consulte o captulo 7: Outbound Adapters,

    em Developing Ensemble Productions.

    Exemplo de Adaptador Customizado

    Business Operation

    Me.Adaptador.MtodoA()

    OutboundAdapter

    MtodoA()

    MtodoB()AplicaoExterna

    Business Operation

    Me.Adaptador.MtodoA()

    OutboundAdapter

    MtodoA()

    MtodoB()AplicaoExterna

  • 7/25/2019 Construindo Produes Com Ensemble

    91/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 90

    Depurao

    $$$TRACE (ObjectScript) "Ens.Util.Trace".WriteTrace(user",

    "SuaClasse","SeuMtodo", "SuaMensagem")(Basic) O primeiro parmetro a string user.

    Executa em primeiro plano.

    Abaixo so exemplos de uso de rastreio de mensagens: $$$TRACE("PrimeRate requested") "Ens.Util.Trace".WriteTrace("user","Demo.WebOperations",

    "GetPrimeRate","PrimeRate requested")Este mtodo no retorna nada.

    Para ver as mensagens, os componentes devem estar executando em primeiro plano.

    Cada sesso do terminal ir mostrar as mensagens e baseado em qual processo estrodando o cdigo. Uma vez que cada componente do Ensemble uma classe, globais podem ser usadas para

    armazenar valores. Estas globais podem ser verificadas para depurao. Por exemplo, set ^checkRate=pResponse.PrimeRate permite que voc olhe a global

    ^checkRate e veja o PrimeRate aps os testes terem sido completados. No Studio, voc pode anexar um processo em execuo para depurao.

    Aplicaes Compostas

    BusinessService

    InboundAdapters

    OutboundAd

    apters

    Aplicaes

    ExternasAplicaes

    Compostas

    Bases de Dados Confederadas

    EnsembleAplicaesCliente

    BusinessProcess

    BusinessOperation

    BusinessService

    InboundAdapters

    OutboundAd

    apters

    Aplicaes

    ExternasAplicaes

    Compostas

    Bases de Dados Confederadas

    EnsembleAplicaesCliente

    BusinessProcess

    BusinessOperation

  • 7/25/2019 Construindo Produes Com Ensemble

    92/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 91

    O Ensemble permite que voc combine recursos de softwares existentes com regras denegcios adicionais e interfaces de usurio para criar aplicaes inteiramente novas, compostas,que tm habilidades que nenhuma aplicao existente tem por si s.

    Com aplicaes compostas, voc pode integrar funcionalidade nova e funcionalidade deaplicaes existentes sem mudar as prprias aplicaes.Isso permite que voc combine em novas formas de funcionalidade, tarefas edados das aplicaes da empresa, dados do legado, e/ou tecnologias deinformao agrupadas em uma aplicao composta. O resultado maisfuncionalidade do que antes.Como exemplo, considere uma empresa que entre com um novo cliente emduas aplicaes (uma vez que cada aplicao rastreia aspectos diferentes docliente). Uma aplicao composta poderia ser construda para no somenteinformar automaticamente os clientes novos em cada uma das aplicaesexistentes, mas tambm para rastrear novas informaes para cada clientenovo.

    A aplicao composta alavanca aplicaes existentes e fornece novasfuncionalidades tambm.

    Aplicaes compostas deixam embaadas as linhas entre desenvolvimento e integrao. OEnsemble permite que voc desenvolva assim como integre.

    Com uma aplicao composta, nenhum adaptador inbound necessrio, porque a aplicaocomposta pode fazer requests dentro da produo em um formato que seja j compreensvelpara a produo.

    Aplicaes compostas podem ser escritas para invocar business services, businessprocesses ou business operations.

    Business Activity Monitoring

    Gartner define BAM como O conceito de fornecer acesso em tempo real aos indicadores crticosdo desempenho de negcio para melhorar a velocidade e a eficcia das operaes do negcio."

    Em outras palavras, BAM refere-se ao monitoramento automatizado e anlise dasatividades relacionadas ao negcio bem como respostas apropriadas para alterao deeventos.

    O BAM foca-se no monitoramento, filtragem e na apresentao dos eventos. O BAM pode fornecer acesso em tempo real a sntese de informao crtica do negcio atravs

    da extrao de informao de vrios sistemas de aplicaes e de outras fontes internas eexternas. Pode tambm melhorar a tomada de deciso e permitir mudanas dinmicas aosprocessos usando mtricas acionveis em tempo real.

    O mecanismo de objetos persistentes embutidos do Ensemble e a viso em tempo real daempresa integrada permitem business intelligence e anlise de dados em tempo real para BAM. Base de dados confederadas permitem ferramentas de anlise a obter acesso unificado

    a fontes de dados diversos de uma empresa. Usando o BAM junto com outras capacidades do Ensemble, o Ensemble pode automaticamente

    detectar e reagir a alteraes de eventos atravs da empresa.

  • 7/25/2019 Construindo Produes Com Ensemble

    93/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 92

    Dashboards

    Ensemble suporta BAM com dashboards. Dashboards podem mostrar em tempo realinformaes colhidas por vrios componentes de uma produo Ensemble.

    Um dashboard Ensemble uma pgina Web que mostra um ou mais controles grficos,

    chamados medidores. Cada controle indica o valor atual de alguns dados medidos. Ensemblefornece um conjunto completo de medidores que incluem velocmetros, hodmetros, medidoresde combustvel, barras, semforos, grfico de linhas e grfico de barras.

    O Mdulo 10 descreve dashoards com detalhes.

  • 7/25/2019 Construindo Produes Com Ensemble

    94/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 93

    Business Rules

    Permite a reengenharia do processo por um analista de negcio.

    Uma business rule determina como um processo do negcio se comportar em um ponto de

    deciso especfico. O desenvolvedor de um business process BPL identifica um ponto dedeciso nomeando a Business Rule que far a deciso nesse ponto. Um usurio, tipicamenteum analista do negcio, usos o portal para definir os critrios que a regra usar para fazer adeciso.

    Isto fornece uma maneira segura para um usurio no tcnico mudar o comportamentode um business process em pontos de deciso especficos.

    Para o exemplo, um desenvolvedor pode necessitar escrever um businessprocess que coordenasse aplicao de emprstimo de uma maneira consistenteatravs de uma empresa internacional; entretanto, em um nvel regional, osanalistas do negcio devem poder ajustar critrios especficos, local apropriadospara aceitar aplicaes de emprstimo individuais. Para conseguir isto, o

    analista local do negcio pode criar uma business rule apropriada para suaregio.

  • 7/25/2019 Construindo Produes Com Ensemble

    95/131

    Construindo Produes com Ensemble

    InterSystems do Brasil 94

    Conveno de Nomes

    Determinar e seguir uma conveno de nomes vital ao construir produes. Se isto for

    necessrio ser feito durante o projeto extremamente trabalhoso. Duas abordagens principais para o uso de Conveno de Nomes so:

    Um pacote para todos os elementos do Ensemble.Isto s apropriado para pequenas produes.

    Pacotes separados para cada tipo de elementos do Ensemble.Use nomes de pacotes curtos.

    Por exemplo, MinhaProducao.bsv.NomeClasse,MinhaProducao.bop.NomeClasse, MinhaProducao.dsh.NomeClasse,MinhaProducao.dtl.NomeClasse.

    Em ambas abordagens, o nome das mensagens indicaria se um response ou request. Porexemplo, MinhaProducao.msg.ApplicationReq.

    Tente abreviar quando possvel.Um pa