Explicação
Eventos de negócio representam importantes ocorrências nas tarefas diárias da empresa. Obviamente, há milhares de
coisas acontecendo na empresa e em volta dela todos os dias. Os eventos de negócios permitem gerenciar complexidades,
concentrando-se no que realmente é importante e, nesse sentido, são arquiteturalmente significativos. Os eventos de
negócios possuem as seguintes características:
-
Representam uma ocorrência com significado, isto é, não são comuns.
-
Parecem ocorrer aleatoriamente, ou pelo menos inesperadamente.
-
Ocorrem independentemente um do outro.
-
Resultam em uma ação imediata por parte da empresa.
Um evento de negócios que não possui uma dessas características é suspeito.
Os eventos de negócios são acionados e recebidos pelos atores de negócios, trabalhadores de negócios e entidades de
negócios, enquanto interagem para realizar um uso de negócios. Os eventos de negócios podem ser acionados:
-
Pelos atores de negócios para indicar o início ou o fim de um caso de uso de negócios. Por exemplo, quando um
fornecedor entrega mercadorias, um evento de negócios Entrega indicaria o início do caso de uso de negócios Entrega
de Mercadorias.
-
Pelas entidades de negócios para indicar uma alteração de estado. Por exemplo, como parte do caso de uso de
negócios Recrutar Funcionários, um evento de negócios CandidateQualified indicaria que as referências de um
possível funcionário foram verificadas.
-
Pelos trabalhadores de negócios para indicar um ponto específico em uma realização de caso de uso de negócios. Por
exemplo, uma vez lançado um foguete, um evento de negócios Lançamento indicaria que o rastreio da trajetória do
foguete pode ser iniciado.
-
Com o decorrer do tempo. Por exemplo, seis horas após um paciente ter saído da sala de cirurgia, um evento de
negócios PatientCoherent indicaria que uma enfermeira deverá examinar o paciente.
Modelando Eventos de Negócio
Eventos de negócios podem conter informações que fornecem mais contexto sobre a ocorrência que o evento representa.
Essas informações são modeladas como atributos da classe de eventos de negócios, conforme mostrado na figura. Os
atributos de um evento de negócios podem ser determinados, considerando quais informações os receptores do evento
exigem para tomar uma ação.
Eventos de negócios que representam mudanças no estado das entidades de negócios devem ter uma associação com a
entidade de negócios à qual se relacionam, conforme mostrado na figura. Isso permite que os receptores do evento de
negócios acessem a entidade de negócios em questão e recuperem as informações necessárias.
Atores, trabalhadores e entidades de negócios podem tanto disparar quanto receber eventos de negócios. A classe que
aciona um evento de negócio é chamada de publicador, enquanto a classe que recebe um evento de negócio é chamada
de assinante.
Um publicador exige uma dependência estereotipada de <<enviar>> para os eventos de negócio que irá acionar,
conforme mostrado na figura.
Um assinante exige uma operação estereotipada <<evento de negócio>> com o mesmo nome do evento de negócio e
parâmetros que correspondam aos atributos do evento de negócio, conforme mostrado na figura. Lembre-se de que a
assinatura da operação precisa ser mantida consistente com os atributos e o nome do evento de negócios.
Uma abordagem alternativa é inventar uma dependência estereotipada <<receber>> do assinante para o evento
de negócio, embora isso não seja um UML padrão. As assinaturas de operações podem ser deduzidas de todas as
dependências <<receber>>. Um exemplo dessa abordagem fora dos padrões é mostrado na figura.
O disparo real de eventos de negócios é mostrado nos diagramas de interação ou de atividade. Nos diagramas de
interação, o publicador envia uma mensagem assíncrona para o receptor, com o nome do evento de negócios. Um exemplo
disso é mostrado na figura. Observe que a mensagem é assíncrona. Isso indica que o publicador não aguarda que o
assinante conclua o processamento do evento de negócios antes de continuar. Em vez disso, o publicador dispara o evento
de negócios e continua diretamente o que estava fazendo. O assinante por sua vez inicia o processamento dos eventos de
negócios assim que os recebe. Isso representa a vida real mais de perto do que mensagens assíncronas.
Nos diagramas de atividade, o publicador é mostrado para disparar o evento de negócios. O receptor é mostrado para
receber o evento de negócios, seja no mesmo diagrama ou em outro. Um exemplo disso é mostrado na figura.
Localizando Eventos de Negócio
Quando uma associação entre um ator de negócios e um caso de uso de negócios é nomeada, um evento de negócios
correspondente pode ser utilizado para sinalizar o início do caso de uso de negócios, o que seria uma ocorrência
significativa para o negócio.
Analise as interações entre os trabalhadores de negócios nos diagramas de seqüência. Para cada mensagem entre
trabalhadores de negócios, considere o seguinte:
-
Mensagens de local transmitidas entre trabalhadores de negócios em diferentes locais são sugestões de eventos de
negócios.
-
Mensagens de tempo nas quais há uma diferença de tempo significativa entre o disparo e o recebimento são sugestões
de eventos de negócios.
-
Mensagens de finalidade que resultam em ações as quais possuem uma finalidade diferente com relação às ações que
dispararam o evento de negócios são sugestões de eventos de negócios.
-
Mensagens de responsabilidade executadas por um trabalhador de negócios com responsabilidades diferentes são
sugestões de eventos de negócios.
A análise dos limites dos sistemas de negócios ajuda a identificar diferenças na finalidade ou na responsabilidade.
Nos diagramas de atividades, considere se uma ação é requerida diretamente antes ou após cada tarefa ou se alguma parte
deve ser notificada do resultado de um ponto de decisão.
Entidades de negócios também fornecem indícios de eventos de negócios. Qualquer operação significativa de uma entidade
de negócios é considerada uma sugestão de eventos de negócios. Os diagramas de estados das entidades de negócios são
muito úteis. Transições de estado indicam possíveis eventos de negócios, pois podem representar uma alteração de estado
do negócio.
Ao identificar eventos de negócios, é útil imaginar um arquivo no qual as entidades de negócios são dossiês e os
escriturários lêem e alteram os dossiês e os transportam por toda parte, dentro e fora de caixas. Assim que um dossiê
precisa ser duplicado completamente para que possa ser encaminhado a diferentes destinos, você pode ter descoberto um
evento de negócios - há vários destinatários. Além disso, quando um trabalhador de negócios precisa redigir um aviso
após a execução de uma tarefa, com a finalidade de informar uma outra pessoa, essa tarefa pode também ser qualificado
como um evento de negócios. Obviamente, os dossiês não permanecem sem uso sobre as mesas o dia inteiro - são
arquivados. Quando há necessidade de remover um dossiê do fichário ou colocar um dossiê de volta no fichário, considere
o que levou à necessidade de remover ou colocar de volta o dossiê. A ocorrência que levou ou disparou a necessidade de
remover um dossiê ou colocá-lo de volta no lugar pode ser um evento de negócios.
Generalização de Eventos de
Negócio
Eventos de negócio podem ser categorizados ou agrupados em "famílias" de eventos, definindo relacionamentos de
generalização entre eventos de negócio mais generalizados e mais especializados. Isso permite que mais de um tipo de
evento de negócios seja tratado da mesma maneira pelas partes não interessadas nos diferentes subtipos existentes.
O diagrama anterior mostra que Doença, Ausência e Morte de funcionários são versões mais especializadas da ausência de
um funcionário. A definição do supertipo Ausência permite que qualquer um dos três subtipos seja tratado como uma
ausência. Em uma empresa de consultoria, por exemplo, o gerente de contas pode precisar informar ao cliente da ausência
de um funcionário e providenciar uma substituição, independentemente da razão da ausência. O gerente portanto está
interessado somente no evento de negócios Ausência. A recepcionista, por outro lado, pode ter de encarregar-se de uma
ação específica se um funcionário ficar doente; por exemplo, chamar um médico ou enviar flores. O gerente de recursos
humanos e o gerente geral podem precisar ser informados da morte de um funcionário.
Nesse exemplo, vemos que especializações de eventos de negócios são úteis quando diferentes partes precisam
encarregar-se de várias ações em resposta a circunstâncias diversas (específicas). Generalizações de eventos de
negócios são úteis quando determinadas partes precisam responder da mesma maneira a determinados eventos de negócios,
independentemente das circunstâncias específicas.
Na prática, claro, a parte provavelmente será notificada do evento real (especializado). Se um funcionário vier a
falecer, você poderá estar certo de que o gerente de contas também será informado do fato, mas a ação tomada será a
mesma. Hierarquias de eventos de negócios ajudam a criar um Modelo de Análise de Negócios mais simples e mais fácil de
entender.
Automação de Eventos de Negócio
Faz sentido automatizar a definição, o disparo e a propagação de eventos de negócios, mas isso nem sempre é prático. Às
vezes, sai mais caro criar um sistema que faça isso do que enviar um e-mail para um colega. Algumas questões, como
estas, devem ser consideradas ao ponderar sobre a automação de eventos de negócios:
-
o custo de adquirir ou implementar e manter um sistema que automatiza aspectos do gerenciamento de eventos
-
a viabilidade técnica de uma solução automatizada
-
o custo de alternativas não automatizadas
-
o impacto do não acionamento ou recebimento de determinados eventos
-
a possibilidade de que determinados eventos possam cruzar os limites dos negócios no futuro
-
os canais de notificação atualmente disponíveis
Em uma arquitetura orientada a serviços, as mensagens são utilizadas para separar sistemas de software uns dos outros e
de locais físicos. Mensagens assíncronas também podem ser utilizadas para separar sistemas de software a tempo. Eventos
de negócios serão implementados como mensagens nesses tipos de sistemas de software, embora certamente nem todas as
mensagens terão um evento de negócios associado. O EAI (Enterprise Application Integration) é um aplicativo de negócios
muito útil. Aqui cada aplicativo define vários eventos de negócios os quais outros aplicativos podem assinar. Isso
permite que os aplicativos interajam sem fazer isso diretamente.
Por exemplo, considere uma companhia de seguros que possui um sistema de front-office para gerenciar interações,
propostas e contratos de clientes. Essa empresa possui ainda um sistema de back-office para administrar produtos e
apólices. Quando um cliente solicita uma proposta, o sistema de front-office reúne as informações necessárias sobre o
cliente e o objeto segurado. Em seguida, o sistema de administração de produtos calcula o prêmio com base nas
informações e gera uma apólice de seguro preliminar que está vinculada a uma proposta. Depois que o cliente aceita a
proposta, o sistema de administração de apólices deve finalizar a apólice. Nesse exemplo, duas mensagens foram
desconectadas em tempo, local e responsabilidade - CalculatePremiums e FinalizePolicy. Entretanto, somente
FinalizePolicy seria modelada como um evento de negócios, porque possui significado fora do contexto atual.
|