Criando uma Interface com o Usuário de Monitoramento de Atividades de Negócios Personalizada Usando o DB2 Alphablox Query Builder

Nesse tutorial, você aprenderá sobre os recursos avançados do DB2 ® Alphablox Query Builder, incluído no WebSphere® Business Monitor, para criar uma interface com o usuário personalizada para soluções de monitoramento. Essa abordagem é útil quando você não deseja usar o Business Space, mas precisa de uma interface que seja fácil de personalizar para sua aparência desejada ou quando deseja incorporar um aplicativo de monitoramento existente em uma interface com o usuário existente.

Manisha Sharma Kohli, Consulting IT Specialist (BPM), IBM

Manisha também é uma ávida inovadora e fez contribuições significativas para a propriedade intelectual da IBM, incluindo patentes, o Technical Experts Council (afiliada da Academy of Technology) e fóruns, como developerWorks. Manisha pode ser contatada pelo e-mail shmanisha@in.ibm.com.



06/Set/2011

Antes de iniciar

Saiba o que esperar desse tutorial e como tirar o máximo proveito dele.

Sobre este tutorial

Esse artigo apresenta um cenário simples para uso da ferramenta DB2 Alphablox Query Builder para criar um aplicativo da Web personalizado baseado em JSP, em vez de usar o WebSphere Business Space para buscar os dados dimensionais dos cubos do Monitor no banco de dados do WebSphere Business Monitor (a partir de agora chamado de Monitor).

O widget Dimensions fornecimento com o Business Space é um widget de monitoramento que fornece capacidades padrão para permitir a análise dimensional dos dados monitorados. Portanto, por exemplo, se você desejar medir o número total de pedidos processados, poderá combinar esses dados com certas categorias, como "país", para medir o número total de pedidos processados na França ou no Japão e assim por diante.

Ao criar uma solução de monitoramento de atividades de negócios, desenvolvedores e arquitetos nem sempre querem usar o widget Dimensions integrado fornecido com o Business Space, e preferem criar sua própria interface com o usuário personalizada para fornecer capacidades analíticas mais flexíveis para os dados monitorados.

A solução descrita nesse tutorial é particularmente útil para cenários nos quais os desenvolvedores desejam criar uma interface com o usuário personalizada para recuperar dados dimensionais e serem capazes de fornecer as mesmas capacidades analíticas em seus aplicativos de usuário que as fornecidas pelo Business Space. Para obter informações sobre os conceitos usados em modelagem multidimensional em um aplicativo de monitoramento, consulte Análise dimensional no monitoramento de atividades de negócios (BAM), Parte 1: Aproveite o WebSphere Business Monitor V6.2 para realizar análise dimensional .

Objetivos

Neste tutorial, você aprenderá a:

  • Usar a ferramenta Alphablox Query Builder para escrever consultas para recuperar dados de cubos do Monitor.
  • Criar um aplicativo da Web baseado em JSP para apresentar os dados do cubo consultado no formato desejado, similar ao widget Dimensions do Business Space.

Pré-requisitos

Esse tutorial foi escrito para desenvolvedores de aplicativos de monitoramento de atividades de negócios cujas qualificações e experiências sejam de nível intermediário. Você deverá ter familiaridade com as capacidades dimensionais e analíticas do Monitor e experiência prática com os widgets de monitoração no Business Space.

Requisitos do Sistema

Para executar os exemplos nesse tutorial, é preciso um computador com Microsoft® Windows® com os seguintes produtos instalados:

  • WebSphere Integration Developer V6.2
  • WebSphere Business Monitor Toolkit e ambiente de teste do servidor WebSphere Business Monitor V6.2 sobre o WebSphere Integration Developer para o desenvolvimento do aplicativo de monitoramento

As capturas de tela e as etapas nesse tutorial são baseadas no WebSphere Integration Developer V6.2. Se você desejar criar uma solução usando um servidor Monitor independente, também será preciso os seguintes softwares:

  • Servidor WebSphere Business Monitor V6.2 para executar o aplicativo de monitoramento
  • WebSphere Process Server V6.2 para executar o processo e o aplicativo BPEL

Os exemplos foram criados usando o WebSphere BPM V6.2, mas executarão com sucesso em versões posteriores, como BPM V7 ou V7.5.


Cenário do processo de negócios

O artigo usa um cenário simples de processamento de pedidos, no qual um processo de negócios serve como o aplicativo emissor de evento. O processo aceita um objeto de ordem de compra como entrada e retorna o mesmo objeto com um status atualizado de Aprovado ou Rejeitado. Os critérios para aprovação ou rejeição da ordem de compra são os seguintes:

  • Se PurchaseOrder.Price >= 2000, o pedido será aprovado.
  • Se PurchaseOrder.Price < 2000, o pedido será rejeitado.

O processo BPEL e as várias atividades dentro do fluxo são configurados para emitir eventos de common event infrastructure (CEI) a serem monitorados pelo aplicativo BAM. As Figuras 1 e 2 mostram o fluxo de BPEL e a definição de objeto de negócios da ordem de compra.

Figura 1. Fluxo de BPEL para um sistema de processamento de ordens
Fluxo de BPEL para um sistema de processamento de ordens
Figura 2. Definição de objeto de negócios de ordem de compra
Definição de objeto de negócios de ordem de compra

Desenvolvimento do aplicativo de monitoramento

O processo BPEL definido acima é monitorado por um aplicativo de monitoração, que consiste em um único contexto de monitoração que recebe todos os eventos emitidos do BPEL.

O contexto de monitoramento define duas métricas personalizadas que capturam os seguintes dados dos eventos recebidos:

  • Status da ordem do tipo Cadeia de caracteres, que captura o status de uma ordem depois de ser processada pelo BPEL. Os valores válidos dessa métrica são: Aprovado e Rejeitado.
  • Data da ordem do tipo data/hora, que captura a data em que a ordem foi feita.

A Figura 3 mostra como essas métricas personalizadas são definidas em um contexto de monitoração chamado mybpel.

Figura 3. Métricas personalizadas no contexto de monitoramento
Métricas personalizadas no contexto de monitoramento

Um cubo é criado na guia Dimensional Model do modelo de monitoração para o contexto de monitoramento mybpel. A medida de negócios Nº total de ordens processadas é definida nesse cubo, usando Contagem como uma função agregada para calcular o número total de ordens processadas. Essa medida de negócios é calculada contando todas as ordens processadas pelo processamento de ordens BPEL.

O cubo também contém uma dimensão com os seguintes dois níveis dimensionais:

  • Status da ordem - preenchido pela métrica Status da ordem
  • Data da ordem - preenchida pela métrica Data da ordem

Por padrão, tipos de métrica Data ou data/hora , se usado como dimensões, automaticamente criam três níveis dimensionais - ano, mês e data. No entanto, se você desejar rastrear uma medida de negócios no nível de uma hora específica em um dia ou um minuto em uma hora, é possível converter a métrica data/hora em uma Cadeia de caracteres usando funções integradas e definir métricas personalizadas separadas para Ano, Mês, Dia, Hora e Minuto usando a função substring() , como mostram as Figuras 4 e 5.

Figura 4. Definição de métricas de data/hora personalizadas
Definição de métricas de data/hora personalizadas
Figura 5. Definição de medidas e dimensões personalizadas para métricas de data/hora
Definição de medidas e dimensões personalizadas para métricas de data/hora

O aplicativo de monitoramento também define um KPI chamado duração média de trabalho do processo, que não é o foco da discussão desse artigo.

Figura 6. Definição de KPIs
Definição de KPIs

Criação de dados do cubo

Depois de concluídos, é possível implementar o BPEL e o aplicativo de monitoramento implementado no ambiente de teste do servidor do Monitor, disponível com o WebSphere Integration Developer. Por questões de facilidade de uso, é possível aumentar o perfil do servidor do Monitor sobre um perfil de servidor de processos.

É possível testar o processo usando o explorador Business Process Choreographer (BPC) usando os cenários abaixo. A Figura 7 mostra como especificar valores de teste no explorador do BPC:

  1. Conjunto de teste 1
    • Entrada:
      • Ordem de compra
        • Nome: Laptop
        • Quantidade: 1
        • Preço: 30000
        • Status: [não necessário]
        • Data: 12/5/10 00h45
    • Saída:
      • Ordem de compra
        • Nome: Laptop
        • Quantidade: 1
        • Preço: 30000
        • Status: [não necessário]
        • Data: 12/5/10 00h45
  2. Conjunto de teste 2
    • Entrada:
      • Ordem de compra
        • Nome: Mala
        • Quantidade: 1
        • Preço: 1500
        • Status: [não necessário]
        • Data: 13/5/10 00h45
    • Saída:
      • Ordem de compra
        • Nome: Mala
        • Quantidade: 1
        • Preço: 1500
        • Status: [não necessário]
        • Data: 13/5/10 00h45
Figura 7. Execução do processo BPEL usando o explorador do BPC
Execução do processo BPEL usando o explorador do BPC

Verificação dos dados dimensionais no Business Space

Antes de criar nosso aplicativo analítico do usuário personalizado, é uma boa ideia configurar um widget Dimensions no WebSphere Business Space para garantir que os dados estejam sendo gerados de acordo com as dimensões modeladas. Para obter informações sobre como configurar essa visualização, consulte a seção "Analisar dados em painéis" do Análise dimensional no monitoramento de atividades de negócios (BAM), Parte 1: Aproveite o WebSphere Business Monitor V6.2 para realizar análise dimensional . A Figura 8 mostra uma amostra de widget Dimensions que permite a visualização dos dados monitorados com relação a certas dimensões predefinidas:

Figura 8. Definição de objeto de negócios de ordem de compra
Definição de objeto de negócios de ordem de compra

Criação do aplicativo de usuário analítico personalizado usando o Alphablox Query Builder

Todas as capacidades de análise dimensional oferecidas pelo servidor do Business Monitor são fornecidas no servidor DB2 Alphablox integrado. Complete as seguintes etapas para criar um aplicativo JPS personalizado para visualizar os dados dimensionais monitorados pelo aplicativo de monitoramento.

Criação da tag Blox

  1. Abra o Alphablox Query Builder e conecte à origem de dados MONITOR_CUBE inserindo em seu navegador a URL AlphabloxAdmin em http://<monitor_server_host:monitor_server_port>/AlphabloxAdmin/home e clicando em Alphablox Query Builder .
  2. Clique em Connection Settings na janela do Alphablox Query Builder mostrada na Figura 9 e selecione MONITOR_CUBE, que é a origem de dados a ser conectada a seu banco de dados do Monitor e, em seguida, clique em Connect. Todos os outros detalhes serão recuperados automaticamente da origem de dados.
    Figura 9. Ferramenta Alphablox Query Builder
    Ferramenta Alphablox Query Builder
    Você será conectado à origem de dados e verá todos os cubos disponíveis dentro de seu banco de dados Alphablox. Uma consulta padrão é gerada no painel Query do Query Builder, como mostram as Figuras 10 e 11.
    Figura 10. Configurações de conexão da origem de dados no Alphablox Query Builder
    Configurações de conexão da origem de dados no Alphablox Query Builder
    Figura 11. Conexão da origem de dados no Alphablox Query Builder
    Conexão da origem de dados no Alphablox Query Builder
  3. Altere a consulta padrão para select from <your_monitor_model_cube> e clique em Execute Query. Você verá os dados dimensionais preenchidos em um painel PresentBlox na janela Query. A consulta também será atualizada se você marcar Automatically update queries. O layout do painel PresentBlox , mostrado na Figura 12, é configurável.
    Figura 12. Painel PresentBlox
    Painel PresentBlox
  4. Na seção Data Layout do painel PresentBlox , rearrume Measures e Dimensions sob Page, Row ou Column para o layout desejado. Na Figura 13, cada Page é exibida como uma seleção suspensa de Business Measures, cada Row representa as métricas personalizadas Data da ordem e Status da ordem, e cada Column representa a dimensão CreationTime. Isso permite ver o status das ordens (aprovadas ou rejeitadas) e o momento exato quando essas ordens foram feitas com relação ao eixo do tempo (ano/mês/dia).
    Figura 13. Exibição de PresentBlox
    Exibição de PresentBlox
    Ao modificar o layout do painel PresentBlox , a consulta SQL deverá ser modificada automaticamente para algo similar à Listagem 1.
    Lista 1. Consulta SQL gerada pelo Query Builder
    SELECT
    DISTINCT( {[MYMONITOR_MYBPEL_CUBE].[CreationTime].[All CreationTime]} ) ON AXIS(0),
    DISTINCT( crossjoin ( {[MYMONITOR_MYBPEL_CUBE].[Order Date].[All Order Date]},
    [MYMONITOR_MYBPEL_CUBE].[Order Status].[All Order Status]})  )  ON AXIS(1)
    FROM [MYMONITOR_MYBPEL_CUBE]
    WHERE
    (
    [MYMONITOR_MYBPEL_CUBE].[Measures].[Total Orders Processed],
    [MYMONITOR_MYBPEL_CUBE].[TerminationTime].[All TerminationTime]
    )
  5. Clique em Generate Blox Tag no PresentBlox . Isso gera uma tag XML chamadablox, como mostrado na Figura 14. Copie essa tag e cole-a em um arquivo de texto. Você usará essa tag posteriormente. Uma captura instantânea da tag gerada blox é mostrada abaixo:
    Figura 14. Tag Blox gerada
    Tag Blox gerada

Criação do aplicativo com base em JSP para análise dimensional

Para criar o aplicativo JSP, complete as seguintes etapas:

  1. Crie um novo projeto da Web dinâmico usando o WebSphere Integration Developer como mostrado na Figura 15.
    Figura 15. Crie um novo projeto da Web
    Crie um novo projeto da Web
  2. Adicione a biblioteca de tags Alphablox ao projeto da Web selecionando aastaglib.jar no diretório de instalação do Alphablox (lt;wid_install_dir>/pf/<server_profile_name>/Alphablox_<server_name>/lib/), as shown in Figure 16. Copie o arquivo jar para web_project_name\WebContent\WEB-INF\lib.
    Figura 16. Selecione o arquivo aastaglibs.jar no diretório de instalação do Alphablox
    Selecione o arquivo aastaglibs.jar no diretório de instalação do Alphablox
  3. Modifique o descritor de implementação (web.xml) de seu projeto da Web para incluir as alterações mostradas na Listagem 2.
    Lista 2. Alterações específicas do Alphablox no descritor de implementação do projeto de interface com o usuário
    <servlet>
            <servlet-namegt;AlphabloxServerlt;/servlet-name>
            <servlet-class>
                    com.alphablox.server.webapps.server.AlphabloxServer
            </servlet-class>
    </servlet>
    <servlet-mapping>
            <servlet-namegt;AlphabloxServerlt;/servlet-name>
            <url-pattern>/abx/*</url-pattern>
    </servlet-mapping>
  4. Crie um novo JSP e copie a tag Blox salva na etapa 5 acima. Adicione o seguinte ao JSP: lt;%@ taglib uri="bloxtld" prefix="blox" %gt;

    A Listagem 3 mostra o JSP final depois dessas alterações.

    Lista 3. Alterações finais específicas do Alphablox no descritor de implementação do projeto de interface com o usuário
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
    "http://www.w3.org/TR/html4/loose.dtd">
    <%@ taglib uri="bloxtld" prefix="blox" %>
    <html>
    <head>
    <blox:header/>
    </head>
    <body>
    <h2>Simple Analytic Application</h2>
    
    </body>
    <blox:present
        id="queryBuilder4_present"
        calculationEditorEnabled="true"
        height="500"
        width="100%">
        <blox:grid/>
        <blox:chart
            chartCurrentDimensions="[MYMONITOR_MYBPEL_CUBE].[Order Date].
    		[All Order Date]"/>
        <blox:page/>
        <blox:data
            dataSourceName="MONITOR_CUBE"
            onErrorClearResultSet="true"
            query=" SELECT
    DISTINCT( {[MYMONITOR_MYBPEL_CUBE].[CreationTime].[All CreationTime]} )  ON AXIS(0)
    , DISTINCT( crossjoin ( {[MYMONITOR_MYBPEL_CUBE].[Order Date].[All Order Date]}, 
    {[MYMONITOR_MYBPEL_CUBE].[Order Status].[All Order Status]})  )  ON AXIS(1)
    FROM [MYMONITOR_MYBPEL_CUBE]
    WHERE
    (
    [MYMONITOR_MYBPEL_CUBE].[Measures].[Total Orders Processed],
    [MYMONITOR_MYBPEL_CUBE].[TerminationTime].[All TerminationTime]
    )" selectableSlicerDimensions="[MYMONITOR_MYBPEL_CUBE].[Measures]"
            useAliases="true"/>
        <blox:toolbar visible="false"/>
        <blox:dataLayout visible="false"/>
        <bloxui:calculationEditor />
    </blox:present>
    </html>
  5. Salve e compile o aplicativo.

Agora você desenvolveu o aplicativo personalizado.


Teste do aplicativo analítico personalizado

Para testar o aplicativo personalizado, faça o seguinte:

  1. Implemente o aplicativo da Web no servidor de aplicativos.
  2. Acesse o JSP no navegador (Firefox é o recomendado). Por exemplo: http://<Monitor_server_IP:port/webapp_name/jsp_name.jsp>
  3. Você deverá ver uma tela como a da Figura 17, na qual é possível testar o detalhamento, o agrupamento, a filtragem na grade (painel central) e a visualização de gráfico (mais à direita).
    Figura 17. Figura 17. Interface com o usuário para o aplicativo analítico personalizado
    Interface com o usuário para o aplicativo analítico personalizado
  4. É possível personalizar essas visualizações usando os atributos personalizados do blox:data . Para obter mais informações, consulte a documentação do AlphaBlox listado em Recursos .

Recursos

  • Centro de Informações do Alphablox : Obtenha a documentação do produto para o Alphablox.
  • WebSphere Business Monitor : Obtenha informações do produto para o WebSphere Business Monitor.
  • Centro de Informações do WebSphere BPM V6.2 : Obtenha documentação do produto para os produtos do WebSphere BPM, incluindo o WebSphere Business Monitor.
  • Zona de BPM do developerWorks: Obtenha os recursos técnicos mais recentes sobre as soluções IBM BPM, incluindo downloads, demos, artigos, tutoriais, eventos, webcasts e muito mais.
  • IBM BPM Journal: Obtenha os artigos e colunas mais recentes sobre soluções da BPM neste journal trimestral, disponível também nas versões Kindle e PDF.
  • Zona de BPM do developerWorks: Obtenha os recursos técnicos mais recentes sobre as soluções IBM BPM, incluindo downloads, demos, artigos, tutoriais, eventos, webcasts e muito mais.
  • IBM BPM Journal: Obtenha os artigos e colunas mais recentes sobre soluções da BPM neste journal trimestral, disponível também nas versões Kindle e PDF.

Comentários

developerWorks: Conecte-se

Los campos obligatorios están marcados con un asterisco (*).


Precisa de um ID IBM?
Esqueceu seu ID IBM?


Esqueceu sua senha?
Alterar sua senha

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


A primeira vez que você entrar no developerWorks, um perfil é criado para você. Informações no seu perfil (seu nome, país / região, e nome da empresa) é apresentado ao público e vai acompanhar qualquer conteúdo que você postar, a menos que você opte por esconder o nome da empresa. Você pode atualizar sua conta IBM a qualquer momento.

Todas as informações enviadas são seguras.

Elija su nombre para mostrar



Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

Los campos obligatorios están marcados con un asterisco (*).

(Escolha um nome de exibição de 3 - 31 caracteres.)

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


Todas as informações enviadas são seguras.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=WebSphere
ArticleID=756024
ArticleTitle=Criando uma Interface com o Usuário de Monitoramento de Atividades de Negócios Personalizada Usando o DB2 Alphablox Query Builder
publish-date=09062011