Postagem em destaque

Procurando Profissional em Análise de Processos de Negócios, BPM, BPMS e Melhoria de Processos, para atuar na Região Metropolitana de Belo Horizonte?

Marco Gandra Brasileiro – Casado 41 anos - CNH B Nascido em Belo Horizonte e-mail gandraribeiro@gmail.com ...

Pesquisar neste blog

10 de jun de 2013

Modelando seus processos de negócio com o IBM WebSphere Lombardi Edition, Parte 1: Visão geral e Arquitetura

Por: Xi Ning Wang
Em: http://www.ibm.com/developerworks/br/websphere/library/techarticles/1101_wang/

WebSphere Lombardi Edition versão 7.1 (chamado a partir de agora de Lombardi) fornece uma plataforma flexível para a entrega e aprimoramento agilizados de seus aplicativos de processo de negócio. O Lombardi V7.1 é uma oferta abrangente de BPM que permite que as empresas aprimorem continuamente seus processos de negócios de ponta a ponta. Com o Lombardi, as equipes podem criar, gerenciar e otimizar os aplicativos de processos que organizam a colaboração humana e as interações do sistema.
Este artigo fornece uma visão geral do produto e da arquitetura do Lombardi. Os próximos artigos desta série irão abranger a modelagem de processo básica e avançada, Coaches, monitoramento e geração de relatórios, simulação e otimização. Durante toda a série, usaremos um processo de ordem de compra, por exemplo, o cenário.
Um processo de negócios é uma coleção de atividades desenvolvidas para produzir um determinado resultado para um objetivo específico, envolvendo interações humanas e do sistema. Um processo de negócio implica em uma ênfase sobre como o trabalho é realizado dentro de uma organização, e não o foco no produto. Um processo é uma organização específica das atividades do trabalho com relação ao tempo e ao local, com um início, um fim e entradas e saídas claramente definidos: uma estrutura para a ação.
Business Process Modeling Notation (BPMN) é um padrão de diagramação para criação de processos de negócios. É um formato compreensível para os usuários de negócios, pois se parece com um fluxograma e não é necessário muito treinamento para entender como usá-lo. Também pode ser entendido por qualquer pessoa do ramo de TI que esteja envolvida no processo. O objetivo do BPMN é suportar o gerenciamento de processo de negócios (BPM) por usuários técnicos e usuários de negócios, fornecendo uma notação intuitiva aos usuários, mas ainda assim capaz de representar semânticas complexas do processo. O Lombardi V7.1 é uma das primeiras plataformas BPM a suportar BPMN.
O Lombardi V7.1 é compatível com as principais normas relacionadas ao BPM, além disso, suas ferramentas de design fornecem um ambiente de modelagem de processo compatível com BPMN.
Lombardi é um conjunto integrado de ferramentas de desenvolvimento baseado em Eclipse, junto com um portal e painéis do usuário baseados na web, além de uma plataforma de tempo de execução comum. Essas tecnologias fornecem funções de design, simulação, definição de regras, execução de processo e funções de integração, monitoramento e otimização. As principais perspectivas no Lombardi, que suporta todas as atividades, desde o design passando pela simulação, implementação, monitoramento e otimização, compartilham um repositório comum, chamado de Modelo compartilhado, como mostra a Figura 1.

Figura 1. Modelo compartilhado
 
O Lombardi inclui os seguintes componentes, como mostra a Figura 2, que ilustra uma configuração típica do Lombardi. Para as diferentes fases de desenvolvimento e implementação, o Process Server e o Performance Data Warehouse podem ser instalados em diversos ambientes de temporariedade, teste e produção que são controlados centralmente pelo Process Center.
  • Process Center
    O Process Center fornece um ambiente central de desenvolvimento e repositório para diversos autores de processo que trabalham no Process Center Console e em outras interfaces no Lombardi Authoring Environment. Ele inclui um Process Center Server e um Performance Data Warehouse, que permitem o desenvolvimento e execução de aplicativos de processo, além de armazenar dados de desempenho para fins de teste e reprodução durante o desenvolvimento.
  • Process Server
    O Process Server executa os processos e serviços desenvolvidos no Lombardi Authoring Environment, armazenados no repositório do Process Center, e instalados em um ambiente de tempo de execução.
  • Performance Data Warehouse
    O Performance Data Warehouse coleta e agrega dados de processo de acordo com os requisitos de rastreamento estabelecidos no Lombardi Authoring Environment.

Figura 2. Componentes do Lombardi 
 
Os componentes a seguir compõem a modelagem de processo e a interface de gerenciamento:
  • Authoring Environment
    O Lombardi Authoring Environment é composto por diversas interfaces que permitem que os autores de processo modelem, implementem, simulem e inspecionem os processos de negócio. Os usuários do Authoring Environment podem criar modelos de processo, serviços e outros ativos dentro dos aplicativos de processo.
  • Process Center Console
    No Process Center Console, é possível criar aplicativos de processo e kits de ferramentas e também conceder o acesso aos outros usuários. O Process Center Console pode ajudá-lo a gerenciar e manter o repositório do Lombardi, incluindo o gerenciamento de aplicativos de processo, áreas de trabalho e capturas instantâneas. Também permite a instalação de aplicativos de processo em Process Servers em ambientes de tempo de execução.
  • Process Admin Console
    O Process Admin Console fornece uma interface que permite que os administradores configurem e mantenham os Process Servers em qualquer ambiente de tempo de execução configurado, como ambientes de temporariedade, de teste ou de produção. Também permite que os administradores configurem e mantenham o Process Center Server.
  • Performance Admin Console
    O Performance Admin Console fornece uma interface que permite que os administradores configurem e mantenham os Lombardi Performance Data Warehouses em qualquer ambiente de tempo de execução configurado, como ambientes de temporariedade, teste ou produção. Também permite que os administradores configurem e mantenham o Performance Data Warehouse incluído no Process Center.
  • Process Portal
    O Process Portal fornece uma interface que permite que os participantes do processo executem tarefas designadas, visualizem o histórico de tarefas e visualizem o desempenho de seus processos e de suas equipes. Com o Process Portal, os participantes do processo podem se conectar ao Process Center Server ou ao Process Server em qualquer ambiente de tempo de execução configurado, como ambientes de teste de produção.
O Lombardi fornece uma plataforma baseada em Eclipse para desenvolvimento de processo. Para começar a usar o authoring environment para modelagem de processo de negócio, faça o seguinte:
  1. Inicie o servidor selecionando Start => IBM WebSphere Lombardi Edition 7 => Start Servers. Para abrir o Authoring Environment, selecione Start => IBM WebSphere Lombardi Edition 7 => Lombardi Authoring Environment. A conta e senha de login padrão do usuário são tw_admin.
  2. A primeira vez que você inicia o authoring environment, ele abre no Process Center Console, que permite a criação e gerenciamento de aplicativos de processo, instalação de capturas instantâneas em servidores de teste e de produção e também a execução de outras tarefas.
    Clique na guia Process Apps e selecione Create New Process App, como mostra a Figura 3.
    acrônimo para um aplicativo de processo precisa ser exclusivo e possuir um limite de sete caracteres. O Lombardi usa o acrônimo como um identificador do aplicativo de processo e dos itens de biblioteca que ele contém. Por exemplo, ao trabalhar com os itens no aplicativo de processo usando a API JavaScript do Lombardi, é possível usar o acrônimo para especificar o namespace dos itens.
  3. Na caixa de diálogo Create New Process App , insira um nome (por exemplo, Purchase Order Process ) e um acrônimo (como, POPROC) para seu aplicativo de processo. Também é possível fornecer uma descrição opcional. É possível visualizar a descrição no Process Center Console clicando no ponto de interrogação ao lado do nome do aplicativo de processo.

    Figura 3. Criar um novo aplicativo de processo no authoring environment

A Parte 2 desta série descreverá detalhadamente como modelar um processo de negócios no authoring environment.
Ao modelar um processo no authoring environment, primeiro você cria uma Definição de processo de negócios (BPD), como mostra a Figura 4. Uma BPD é um modelo reutilizável de um processo que define o que é comum a todas as instâncias de tempo de execução desse modelo de processo.

Figura 4. Definição de processo de negócios
 
Desenvolva serviço humano quando desejar uma etapa em sua BPD para criar uma tarefa interativa que possa ser executada pelos participantes do processo em uma interface com o usuário baseada na web, como mostra a Figura 5. Ao desenvolver um serviço humano, devem ser incluídos Coaches, que são os formulários baseados na web que fornecem dados relacionados ao processo para os usuários e coletam entradas desses usuários. Coaches permitem que você adicione, de uma maneira simples, campos e controles padrão como botões de opção, menus suspensos e muito mais.
Os serviços Ajax desenvolvidos no Lombardi são posteriormente ligados aos controles de Coach para execução de funções como preenchimento automático de listas de suspensas e ativação do recurso de digitação antecipada em campos de entrada. É possível usar o serviço Ajax para obter dados, de forma dinâmica, a partir de uma origem de dados conectada, como um banco de dados.

Figura 5. Criar serviços humanos
 
Crie um serviço de integração quando quiser realizar uma integração com um sistema externo a fim de concluir uma tarefa, como mostra a Figura 6. Por exemplo, é possível desenvolver um serviço de integração que chama um serviço da web para realizar alguma lógica de negócios. Os serviços de integração são os únicos serviços que podem incluir integração de serviço da web e componentes de integração Java™ .
Use os serviços gerais do sistema quando quiser organizar outros serviços em segundo plano, trabalhar com dados variáveis, gerar HTML para um Coach ou executar outras ações que não exigem integrações ou regras de negócios. Provavelmente, os serviços gerais do sistema são chamados diretamente de BPD ou serviço humano. Os serviços gerais do sistema podem incluir somente componentes de serviço básicos, como scripts e não podem conter Coaches ou componentes de integração (integração do serviço da web ou integração Java). Os serviços gerais do sistema podem ser aninhados em qualquer outro tipo de serviço.
External activities permitem que você crie BPDs que incluem atividades tratadas por sistemas externos ao Lombardi. Por exemplo, é possível criar um aplicativo personalizado usando a API da web do Lombardi para executar uma atividade, ou etapa, em uma BPD.
Um Undercover Agent (UCA) é iniciado por um evento que pode ser acionado por uma mensagem ou em um planejamento específico. Quando um UCA é iniciado, ele invoca um serviço do Lombardi em resposta ao evento. Ao incluir um evento de mensagem em uma BPD, é necessário anexar um UCA ao evento para chamar o serviço especificado. Por exemplo, quando um evento de mensagem é recebido de um sistema externo, é necessário ter um UCA para invocar o serviço apropriado em resposta à mensagem.
É possível criar e publicar um serviço da web para ativar aplicativos externos a fim de iniciar um serviço específico do Lombardi ou um conjunto de serviços. Usando a integração SOAP, os aplicativos externos também podem chamar o serviço da web.

Figura 6. Criar um serviço de integração
 
É possível usar um serviço de regras, exibido na Figura 7, quando quiser uma condição para determinar qual implementação será invocada. Por exemplo, quando uma condição é avaliada como verdadeira, o Lombardi implementa uma expressão JavaScript que foi fornecida por você. Os serviços de regra não podem incluir integrações Java ou de serviço da web diretamente. É possível chamar um serviço de regra a partir de qualquer outro tipo de serviço, e esse serviço de regra pode chamar outros serviços aninhados.
Os principais indicadores de desempenho (KPIs) são medições rastreadas pelo Lombardi no tempo de execução do processo, e os resultados são armazenados para usá-los para analisar o desempenho do processo e da tarefa no Optimizer.
Os acordos de nível de serviço (SLAs) podem ser criados com base em KPIs padrão e personalizados. Os SLAs permitem que você estabeleça uma condição para uma ou mais atividades que acionam uma consequência. Ao executar instâncias de seus processos, as consequências de SLA não são acionadas até que a atividade associada seja iniciada ou concluída.

Figura 7. Criar um serviço de regra
 
O Lombardi suporta a adição de arquivos externos ao aplicativo de processo, incluindo imagens, folhas de estilo, arquivos JAR e outros. Todos esses ativos de projeto estão incluídos no repositório Process Center. A adição desses arquivos ao seu aplicativo de processo garante que todos os ativos necessários estejam disponíveis e instalados quando seu projeto estiver pronto para teste ou produção.
Os kits de ferramentas são uma coleção de itens de biblioteca que podem ser usados em diversos aplicativos de processo no Lombardi Authoring Environment. O Lombardi permite que os desenvolvedores de processo reutilizem artefatos existentes, dentro e entre aplicativos de processo, por meio de kits de ferramentas. Por exemplo, se você conhecer diversos serviços existentes que incluem Coaches e outros itens de biblioteca necessários a outros desenvolvedores, será possível acessar e reutilizar esses itens incluindo-os em um kit de ferramentas. Em seguida, em seu aplicativo de processo, é possível adicionar uma dependência no kit de ferramentas no local em que estão os itens de biblioteca. Isso permite que você escolha um dos serviços existentes ao escolher a implementação de uma atividade. Os itens no kit de ferramentas também podem ser usados por outros desenvolvedores que trabalham em aplicativos de processo diferentes.
Os usuários do Authoring Environment podem criar dependências em kits de ferramentas para reutilizar os itens contidos nele. Quando os itens do kit de ferramentas são atualizados, as dependências existentes mostram que há atualizações disponíveis.
Itens de biblioteca em diversos kits de ferramentas podem ser compartilhados entre outros kits de ferramentas e também com aplicativos de processos.
Para criar um kit de ferramentas, faça o seguinte:
  1. Clique na guia Toolkits e clique em Create New Toolkit, como mostra a Figura 8.

    Figura 8. Crie um novo kit de ferramentas

  2. Na caixa de diálogo Create New Toolkit , insira um nome e um acrônimo para seu kit de ferramentas.
  3. Para criar itens de biblioteca no kit de ferramentas ou executar outras edições, clique em Open in Designer.
Durante a instalação do Lombardi, o System Data Toolkit é importado no repositório do Process Center. Cada aplicativo de processo e kit de ferramentas que você cria inclui automaticamente uma dependência do System Data Toolkit, de modo que você tenha acesso aos ativos exigidos por todos os processos do Lombardi, como tipos de variável padrão, gráficos padrão para relatórios e muito mais. Não é possível editar ou alterar os itens da biblioteca no System Data Toolkit, mas é possível abrir o kit de ferramentas e visualizar os itens que ele contém.
Nesta série, usaremos um cenário de negócios típico de um processo de ordem de compra para ilustrar como usar o Lombardi V7.1 para modelar e executar o processo de negócios. Como mostra a Figura 9, o processo de ordem de compra é iniciado pelo comprador no departamento de compra, de acordo com o inventário e consumo real. Quando o comprador insere a ordem, o processo é acionado. Quando o processo é iniciado, o sistema envia uma notificação ao fornecedor responsável pela confirmação da ordem.

Figura 9. Processo de ordem de compra 
 
O fornecedor pode responder à ordem por meio de uma interface com o usuário baseada na web, da seguinte maneira:
  • O fornecedor pode aceitar diretamente a ordem sem qualquer alteração. Nessa situação, o comprador não precisa confirmar novamente a ordem.
  • O fornecedor pode aceitar a ordem com uma alteração na quantidade e preço unitário das mercadorias preenchendo uma "Order Change." Nesse caso, o comprador precisa reconfirmar essa ordem antes de gerar a ordem.
  • O fornecedor pode rejeitar a ordem devido ao preço ou por não ter o item em estoque. Nesse caso, a ordem será anulada e o sistema enviará a notificação ao comprador.
No caso de aceitar a ordem, se o fornecedor elevar o preço unitário das mercadorias, o sistema precisará notificar o comprador para reconfirmar a ordem atualizada. A confirmação resulta em uma das seguintes opções:
  • Se o comprador aceitar a ordem atualizada, o sistema irá gerar automaticamente a ordem de compra final.
  • Se o comprador não aceitar a ordem atualizada, o sistema irá enviar a notificação ao fornecedor e o processo de ordem de compra será interrompido.
Caso contrário, o comprador não precisará confirmar a ordem e o sistema irá gerar automaticamente a ordem de compra formal.
A geração da ordem de compra formal é um subprocesso incorporado no processo de ordem de compra principal, como mostra a Figura 10. Ao receber a ordem de compra final do processo de ordem de compra acima, o subprocesso inicia as seguintes tarefas:
  1. Cálculo do preço total final das mercadorias da ordem
  2. Seleção de um remetente para a ordem.
  3. Planejamento da remessa.
  4. Envio de uma notificação para o comprador e para o fornecedor.

Figura 10. Gerar o subprocesso da ordem
 
Variáveis são usadas para capturar os dados de negócio passados pelas etapas de um processo. Ao desenvolver uma Definição de processo de negócios no Lombardi, reserve um tempo para criar modelos de dados para a BPD durante a fase de design.
Em nosso cenário de Ordem de compra, um importante tipo de dado, Order, é definido para descrever a ordem de compra. O tipo de variável Order inclui dois parâmetros: orderHead (a cardinalidade é 1) e orderDetail (que é um List). Os tipos de variável e parâmetros OrderHead e OrderDetail são exibidos nas Tabelas 1 e 2.

Tabela 1. Tipo de variável: OrderHead
Nome do parâmetroTipo de variávelDescriçãoLista Is
orderIdStringO número do cabeçalho da ordem de compra atualFalso
orderNameStringO nome da ordem de compra atualFalso
buyerStringO comprador da ordem de compra atualFalso
orderDateDataA data de início da ordem de compra atualFalso
supplierNameStringO nome do fornecedor da ordem de compra atualFalso
supplierContactStringAs informações de contato do fornecedor da ordem de compra atualFalso
orderCloseDateDataA data de encerramento da ordem de compra atualFalso
statusStringO status da ordem de compra, por exemplo, Accepted by supplier, Rejected by supplier e outros.Falso


Tabela 2. Tipo de variável: OrderDetail
Nome do parâmetroTipo de variávelDescriçãoLista Is
orderItemIdStringO código de cada detalhe da ordem de compraFalso
orderIdStringO número do cabeçalho da ordem de compra atualFalso
shipDateDataData da remessaFalso
productNumberStringO número do produtoFalso
quantityDecimalA quantidade do produtoFalso
unitPriceDecimalO preço unitário do produtoFalso
updatedQuantityDecimalA quantidade atualizada do produtoFalso
updatedUnitPriceDecimalO preço unitário atualizado do produtoFalso

Este artigo forneceu uma visão geral do WebSphere Lombardi V7.1, incluindo sua arquitetura, componentes e recursos. Na Parte 2, você aprenderá como usar o Lombardi para modelar um processo usando um cenário de ordem de compra.

Liu Yu foi estagiária da equipe de Desempenho de negócio e otimização de serviço no IBM Software Group.
Lei He photo
Xi Ning Wang é um engenheiro de software na equipe de Desempenho de negócios e otimização de serviço do IBM Software Group. Sua função é desenvolver tecnologias e soluções SOA e BPM. Ele foi indicado para ser um autor do IBM developerWorks em 2009.
Author photonível de autor Contribuidor do developerWorks
Xi Ning Wang é um engenheiro de software na equipe de Desempenho de negócios e otimização de serviço do IBM Software Group. Sua função é desenvolver tecnologias e soluções SOA e BPM. Ele foi indicado para ser um autor do IBM developerWorks em 2009.

Nenhum comentário:

Postar um comentário