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