Expandir Minimizar
Este tópico ainda não foi avaliado como - Avalie este tópico

Explore as arquiteturas do workflow humano

Resumo

Os sistemas de workflow humano e alguns dos principais padrões de desenho das interações indivíduo – processos de negócio se dividem em dois componentes. O primeiro são os sistemas de workflow humano e as interações entre eles à medida que são implementados em plataformas de integração. O segundo são padrões de desenho das interações de workflow humano e a forma como são implementados usando as interações entre os sistemas de workflow humano.

Esta análise observará de perto esses processos.

A total automatização dos processos de negócios é algo praticamente impossível de ser realizada sem se considerar a interação humana, um fator que está semanticamente vinculado a muitos aspectos da automatização e da integração de processos. A interação humana está presente em alguns dos processos de negócio mais comuns, como aprovações de pedidos e gerenciamento de recursos humanos, sendo que podem variar de um processo simples de atribuições de tarefas a notificações muito complexas do processo de negócios e re-atribuições de tarefas.

As ferramentas para workflow humano estão presentes em uma série de servidores de integração conhecidos, de diferentes fornecedores. Vamos analisar conceitualmente alguns dos principais componentes que estão presentes nessas plataformas de workflow humano e as interações entre elas. Também analisaremos alguns dos padrões mais comuns de projeto de workflow humano e a forma como eles podem ser implementados com esses componentes.

Os sistemas de workflow humano precisam fornecer suporte a comunicações entre pessoas e sistemas. Para conseguir isso, todo o sistema de workflow de um indivíduo precisa fornecer funções básicas como atribuição de tarefas, gerenciamento de identidade, notificações, controle e interoperação com sistemas BPM – Business Process Management (Gerenciamento de Processo de Negócio) (Consulte a Figura 1).

Quatro são os serviços principais da arquitetura de workflow humano:

Um de gerenciamento de tarefa, um de controle, um de notificação e outro de identidade. Antes de explorarmos esses serviços em profundidade, é importante entender o papel das tarefas nos sistemas de workflow humano.

As tarefas são as principais unidades de comunicação entre os processos de negócio e as pessoas. Em geral, é atribuída uma tarefa a um usuário que precisa realizar alguma ação relacionada. Por exemplo, o supervisor talvez precise aprovar a solicitação de compra de alguns itens. Normalmente, o usuário precisa realizar uma série de tarefas que são agrupadas semanticamente. Ou seja, nosso supervisor talvez precise agrupar todos os itens a serem aprovados a cada dia em um grupo chamado “aprovações de hoje”. Esses grupos são chamados de listas de tarefas.

Estados de tarefa

Durante o tempo de vida de um sistema de workflow humano, as tarefas nas listas de tarefas estão constantemente mudando de um estado para outro. Por exemplo, a tarefa do nosso supervisor primeiro entra em um estado de pendência; quando o supervisor aceita a tarefa, o estado muda para solicitada. Por fim, quando o supervisor aprova a solicitação, a tarefa entra no seu estado final de concluída. Os estados são usados conceitualmente para descrever o ciclo de vida da tarefa. Entre os estados mais comuns estão: pendente, quando a tarefa foi criada; solicitada, quando o usuário solicitou a tarefa e recebeu seus dados de entrada; concluída, quando o usuário concluiu a tarefa e forneceu os dados de saída; e com falha, quando o usuário concluiu a tarefa e forneceu uma mensagem com problemas.

As tarefas estão normalmente associadas a cronogramas de tempo: expiração, escala, delegação e renovação. Em nosso exemplo, a tarefa de aprovação pode expirar caso o supervisor não tome ações apropriadas sobre ela em um período de tempo especificado, sendo que ela poderá ser escalada depois para outro roteiro de ação ou atribuição. Além disso, o supervisor pode decidir delegar a tarefa para outra pessoa (um gerente, por exemplo) para agir no seu lugar. O gerente também pode decidir que precisa de outro gerente para obter um maior entendimento da tarefa.

Se esse segundo gerente não trabalhar na tarefa em um determinado cronograma de tempo, a tarefa será renovada por outro período de tempo.

Em outros cenários, as tarefas estão semanticamente relacionadas umas às outras. A questão “qual é a próxima tarefa?” nem sempre terá uma resposta simples. Em alguns casos, essa resposta precisa ser determinada em tempo de execução. As tarefas podem ser agrupadas seqüencialmente em uma instância do processo de negócios, para que o usuário conheça a(s) próxima(s) tarefa(s) a ser (em) realizada(s) após a conclusão da tarefa atual.

Em nosso exemplo, vinte solicitações deveriam ser aprovadas para o supervisor após a conclusão do processo de negócios. Sempre que o supervisor concluir uma aprovação, o mecanismo deve conseguir identificar a próxima tarefa. As cadeias de tarefas representam uma abordagem orientada a metadados para descrever a relação entre um conjunto de tarefas no escopo de um processo de negócios. Essas cadeias podem agrupar as tarefas semanticamente para ajudar os usuários a obter funcionalidades como execução de seqüências e gerenciamento de falhas.

As tarefas que dependem de um processo de negócios específico são conhecidas como tarefas acopladas. As tarefas que são totalmente independentes de um processo de negócios em particular são tarefas autônomas. As tarefas acopladas geralmente têm acesso aos dados relacionados a um processo de negócios e são armazenadas em artefatos nativos do processo de negócios, como variáveis ou mensagens. Por outro lado, as tarefas autônomas interagem com os processos de negócio por meio de uma interface bem definida sem nenhuma dependência dos dados do processo em si.

Bb245665.WorkflowHumano_01(pt-br,MSDN.10).gif
Figura 1 - Os principais componentes da arquitetura de workflow humano

Serviços de workflow

O componente de arquitetura que lida com tarefas relacionadas é o serviço de gerenciamento de tarefas. Em um cenário típico, o serviço de gerenciamento de tarefa recebe uma solicitação para criar uma tarefa, interage com o serviço de identidade para selecionar todas as pessoas qualificadas para ela, a adiciona nas listas de trabalho associadas aos usuários selecionados e atribui cronogramas e políticas específicas. No fim, um usuário decide trabalhar com a tarefa solicitando-a. O usuário pode então trabalhar com a tarefa ou solicitar informações adicionais.

Um aspecto importante dos sistemas de workflow humano é a capacidade de identificar um grupo de usuários que têm permissão de executar uma tarefa. Esse processo de identificação de usuário pode se basear em interações com as plataformas de gerenciamento de identidade. Em nosso exemplo, os serviços de workflow de um indivíduo precisam identificar quais usuários tem direitos para aprovar a solicitação – nesse caso, os supervisores.

Para realizar essa identificação, uma plataforma de workflow humano precisa entender o conceito “supervisor” em relação a um grupo de usuários e papéis tradicionalmente armazenados no serviço de diretório de usuários.

Vários tipos de relações podem ser estabelecidos entre pessoas e processos. Um dos mais comuns é como as pessoas interagem com os processos (funções do indivíduo). As pessoas em uma organização podem ser agrupadas em funções que estão semanticamente relacionadas a alguma atividade de negócios, como administrador de processos ou proprietário de tarefas. Outra relação comum é como os processos identificam as pessoas com quem se pode interagir (links de pessoas e consultas). Em um processo de negócios, certos grupos de usuários são importantes do ponto de vista do negócio. Os links de pessoas são usados para representar os diferentes grupos de pessoas que participam da execução do processo. Uma consulta ao serviço de diretório da organização é utilizada para determinar as pessoas associadas a um link de pessoa e está vinculada ao link de pessoa. No exemplo, a função genérica, gerente financeiro, poderia ser qualificada pelo link de pessoa “supervisor”, que está vinculado à consulta “selecionar chefe de departamento, onde o nome do departamento é finanças”.

O serviço de identidade é responsável pelas funcionalidades relacionadas ao usuário, como autenticação, autorização e identificação de pessoas. As informações do usuário são freqüentemente armazenadas em serviços de diretórios (por exemplo, Active Directory, diretório LDAP ou banco de dados relacional). O serviço de identidade pode funcionar de forma independente do serviço de diretório. Com base no modelo “adaptador”, é possível extrair o acesso do diretório utilizando um provedor, que consegue executar as consultas para obter as informações do diretório. Essa abordagem extrai as funcionalidades do workflow humano do repositório de usuários.

Em nosso exemplo, vamos assumir que um gerente gostaria de remontar a execução do workflow de aprovação da solicitação para verificar se há deficiências. O serviço de controle examina as mudanças de estado relacionadas às tarefas e às cadeias de tarefas. Esse serviço deve fornecer a base da funcionalidade necessária para reconstruir as mudanças no histórico de tarefas e realizar a análise dessas tarefas.

Também precisamos de um serviço que notifique o supervisor por e-mail quando for criada a tarefa de aprovação da solicitação. O serviço de notificação trata dos mecanismos de notificação para o usuário relacionado às mudanças de estado da tarefa.

Os quatro serviços aqui discutidos fornecem uma boa visão de algumas das funcionalidades mais comuns necessárias para os sistemas de workflow humano. A combinação desses serviços trata de alguns dos cenários mais comuns desse tipo de workflow. Agora vamos explorar alguns dos padrões comuns de workflow humano.

Padrões de atribuição de tarefas

Os processos orientados a fluxos de trabalho estão presentes no mercado há anos. O conhecimento adquirido serve como base para aperfeiçoamentos no desenvolvimento de sistemas de workflow. Os padrões abstraem os sistemas de workflow em níveis diferentes, como aprovação de tarefa, criação de tarefa e gerenciamento do estado de tarefa. Não pretendemos definir aqui um catálogo de padrões de workflow humano. Em vez disso, vamos analisar alguns padrões comuns em sistemas de workflow humano da perspectiva da arquitetura previamente definida.

Vamos começar examinando um exemplo de workflow de um único usuário. Pode-se atribuir uma tarefa a um usuário, e apenas um usuário pode trabalhar nela. Por exemplo, um funcionário, por meio do portal dos funcionários, envia uma solicitação de férias. O portal inicia um processo de negócios que inclui uma tarefa de usuário modelada com um workflow simples. A tarefa é atribuída ao gerente do funcionário. Quando o gerente aprova ou rejeita a solicitação de férias, o funcionário é notificado por e-mail da decisão tomada.

Para essa solução, combine os componentes do workflow humano por meio de quatro interações. A tarefa é configurada usando aplicativos cliente que interagem com o serviço de gerenciamento de tarefa; seu ciclo de vida ou os estados que estão configurados. Como parte do processo de negócios, a tarefa é atribuída a um grupo de usuários que usam o serviço de gerenciamento de tarefa. Um dos usuários solicita a tarefa, e o serviço aplica a política correta para impedir que outros usuários trabalhem na mesma tarefa.

O processo de negócios usa o serviço para atualizar o status. Agora vamos considerar um exemplo de workflow seqüencial. O workflow seqüencial representa um cenário no qual uma tarefa deve ser aprovada seqüencialmente por um conjunto de usuários. Por exemplo, quando um sistema de aprovação de pedido de compra processa uma ordem de compra usando um processo de negócios, um funcionário que pertence ao grupo “Supervisor” inicialmente avalia a ordem de compra. Depois que o usuário inicial aprova a ordem de compra, o gerente daquele usuário a aprova.

Depois de aprovada, ela é encaminhada para os departamentos de cobrança e envio. Essa solução tem a ver com interações. Interaja com o serviço de gerenciamento de tarefas para configurar as tarefas e definir as políticas apropriadas. Defina a seqüência de usuários que devem trabalhar na tarefa.

Inicie a tarefa interagindo com o serviço de gerenciamento de tarefas, O primeiro usuário solicitará a tarefa para começar a trabalhar nela, e, após a conclusão, o serviço de gerenciamento de tarefa encaminhará a tarefa para o próximo usuário no grupo.

Um padrão de workflow paralelo representa o cenário no qual uma tarefa deve ser aprovada por usuários diferentes, ao mesmo tempo. Cada aprovador pode adicionar comentários e anexos que são independentes dos outros.

Por exemplo, um processo de contratação é usado para contratar novos funcionários. Cada entrevistador vota a favor de um candidato ou contra ele. Se 75 por cento dos votos são favoráveis, o candidato é contratado, caso contrário, o mesmo é rejeitado. O processo é modelado com o workflow paralelo, no qual cada entrevistador pode votar independentemente de outros entrevistadores. Para a implementação, essa solução tem cinco interações.

Interaja com o serviço de gerenciamento de tarefas para configurar as tarefas e definir as políticas apropriadas. Defina a seqüência de usuários que devem trabalhar na tarefa. Inicie a tarefa interagindo com o serviço de gerenciamento de tarefas. O serviço de gerenciamento de tarefas encaminha a tarefa para todos os usuários. O serviço de gerenciamento de tarefas concluirá a tarefa apenas quando todos os usuários tiverem terminado de trabalhar nela.

Atribuição de tarefas usando políticas

Agora vamos dar uma olhada na utilização de políticas para atribuição de tarefas ao usuário seguindo regras específicas. Por exemplo, o procedimento de ponte de safena é alocado ao cirurgião que tem o menor número de operações alocadas a ele. A implementação dessa solução combina os componentes do workflow humano por meio de cinco interações. Interaja com o serviço de gerenciamento de tarefas para configurar as tarefas e definir as políticas apropriadas. Configure a política de atribuição como parte da definição de tarefa – por exemplo, selecione dentre os usuários disponíveis aquele que tem o menor número de tarefas atribuídas. Como parte do processo de negócios, a tarefa é atribuída a um grupo de usuários que usam o serviço de gerenciamento de tarefa.

Inicie a tarefa interagindo com o serviço de gerenciamento de tarefas, que executará as políticas de tarefas em relação aos usuários em potencial que podem trabalhar na tarefa e, por sua vez, selecionará um usuário que corresponda aos critérios de política e atribuirá a tarefa a esse usuário.

Em um exemplo de workflow com um único usuário e escala, pode-se atribuir uma tarefa a vários usuários, mas apenas um usuário pode trabalhar nela. Se a tarefa expirar, o gerente do usuário precisará trabalhar nela. Por exemplo, o processo de solicitação do serviço de help-desk permite que os usuários arquivem os tickets de solicitação do serviço. Se a pessoa que receber o ticket não realizar nenhuma ação em um determinado período o ticket será enviado automaticamente para o gerente daquela pessoa. O ticket será escalado automaticamente três vezes se ninguém realizar nenhuma ação relacionada a ele em um período predefinido de tempo, até chegar ao CEO da empresa. Se o CEO não tomar nenhuma ação, o bilhete expira.

Na implementação dessa solução, combine os componentes do workflow humano por meio de cinco interações. A tarefa é configurada usando aplicativos cliente que interagem com o serviço de gerenciamento de tarefa; propriedades, como o ciclo de vida da tarefa ou o estado das tarefas, são configuradas nessa etapa. Como parte do processo de negócios, a tarefa é atribuída a um grupo de usuários que usam o serviço de gerenciamento de tarefa. Um usuário solicita a tarefa, e o serviço de gerenciamento de tarefa aplica a política correta para impedir que outros usuários trabalhem na mesma tarefa. Se ela expirar, o serviço de gerenciamento de tarefa aplica as políticas de escala para repassar a tarefa ao usuário certo. Se novamente expirar, o serviço de gerenciamento de tarefas a cancela.

Em um exemplo de workflow de usuário único com delegação, o usuário que solicitou trabalhar em uma tarefa pode atribuí-la a outro usuário. Por exemplo, antes de sair, o contador-chefe passou todas as suas tarefas não resolvidas para o contador assistente. Na implementação dessa solução, combine os componentes do workflow humano por meio de quatro interações. A tarefa é configurada usando aplicativos cliente que interagem com o serviço de gerenciamento de tarefa; propriedades, como o ciclo de vida da tarefa, política de escala ou o estado das tarefas, são configuradas.

Como parte do processo de negócios, a tarefa é atribuída a um grupo de usuários que usam o serviço de gerenciamento de tarefa. Um usuário solicita a tarefa, e o serviço de gerenciamento de tarefa aplica a política correta para impedir que outros usuários trabalhem na mesma tarefa. Utilizando os aplicativos cliente apropriados, o usuário inspeciona a lista de pessoas possíveis que podem trabalhar na tarefa. O usuário atribui a tarefa a uma dessas pessoas, ajustando as propriedades da tarefa.

Para o exemplo do padrão “encadeamento de tarefa”, a tarefa precisa começar com base no status de conclusão de outra tarefa. Por exemplo, começando imediatamente o(s) próximo(s) item(ns) de trabalho em um processo de coordenação de um resgate de emergência quando o anterior tiver terminado. Para implementar essa solução, combine os componentes do workflow humano por meio de quatro interações. A tarefa é configurada usando aplicativos cliente que interagem com o serviço de gerenciamento de tarefa; propriedades, como o ciclo de vida ou o estado da tarefa, são configuradas. Os metadados da cadeia de tarefas são configurados, indicando que a segunda tarefa será disparada mediante a conclusão da primeira. A cadeia de tarefas é iniciada por meio do serviço de gerenciamento de tarefas, causando o início da primeira tarefa. Quando a primeira tarefa é concluída, o serviço de gerenciamento de tarefas usará os metadados na cadeia de tarefas para iniciar a segunda tarefa.

Integração de processos de negócio

É possível projetar as soluções do workflow humano usando uma combinação de serviços, como gerenciamento de tarefas, gerenciamento de identidade, controle, notificações e aplicativos cliente. Exploramos alguns dos componentes mais comuns presentes nas arquiteturas do workflow humano e sua implementação em uma série de interações. Algumas das interações mais complexas entre indivíduos e sistema podem ser modeladas com um conjunto de padrões de interação humana que, por sua vez, são implementados com os componentes do workflow humano. Esses componentes e padrões básicos da arquitetura desse tipo de workflow representam aspectos importantes nas opções disponíveis para integração de processos de negócio, e, quando implementados, criam uma poderosa solução de workflow humano.

Os conceitos e cenários aqui apresentados têm a intenção de ajudá-lo a entender melhor os componentes encontrados em plataformas típicas de workflow humano. Para obter mais informações sobre os conceitos de workflow humano, consulte a lista de recursos desse artigo. Além disso, consulte as arquiteturas do mecanismo de workflow de algum dos principais fornecedores de servidores de integração.

Gostaríamos de agradecer Kirsti Elliot, Ben Elliott e a equipe de estratégia de arquitetura da Microsoft, pelo feedback que nos deram e pelas correções feitas neste artigo.

Sobre o autor

Jesus Rodriguez é arquiteto-chefe de produtos de software na Two Connect Inc. (www.twoconnect.com), empresa Microsoft Gold Partner com sede em Miami, na Flórida. Também é MVP de Microsoft BizTalk Server. A ampla experiência de Jesus com a integração de processos de negócios e fluxos de trabalho humano veio de várias implementações de sistemas desacoplados e fundamentados nos princípios da SOA. Também contribui ativamente para as comunidades .NET e J2EE, focando-se nos aspectos de interoperabilidade entre essas duas plataformas. Suas contribuições incluem vários artigos para diferentes publicações, como MSDN, sessões em conferências Microsoft, como a Teched, e Web casts sobre tecnologias Microsoft. Jesus tem um prolífico blog e escreve sobre todos os assuntos relacionados à integração, sendo um verdadeiro apaixonado pela tecnologia. Entre em contato com Jesus pelo endereço jrodriguez@twoconnect.com ou pelo blog http://weblogs.asp.net/gsusx.

Javier Mariscal é presidente da Two Connect Inc. Javier dedicou boa parte dos seus 16 anos de carreira profissional a projetos e implantação de dados e soluções de integração de aplicativos, particularmente aquelas que envolvem a fusão de ambientes mainframe e AS/400 com plataforma WinTel. Tem uma verdadeira paixão por soluções de workflow e automatização de processos de negócio, as quais implementam a abordagem do SODA (Desenvolvimento Orientado a Serviços de Aplicativos), para o desenvolvimento e a manutenção de aplicativos distribuídos globalmente. Ele se mantém bastante ocupado em soluções como essas para a Fortune 1000 e grandes organizações de midmarket do mundo todo. Entre em contato com Javier no endereço Javier@twoconnect.com.

Isso foi útil para você?
(1500 caracteres restantes)
© 2013 Microsoft. Todos os direitos reservados.