Tabela de conteúdo:
- Na Planície inglês
- Estudo de Caso
as Organizações que já têm utilizado enterprise application integration (EAI) o middleware de produtos para automatizar processos de negócio ou para integrar vários legado ambientes provavelmente já deve estar familiarizado com o conceito de orquestração. Nesses sistemas, um conjunto controlado centralmente de lógica de fluxo de trabalho facilita a interoperabilidade entre dois ou mais aplicativos diferentes. Uma implementação comum de orquestração é o modelo hub-and-spoke que permite que vários participantes externos façam interface com um mecanismo central de orquestração.
um dos Requisitos de condução por trás da criação dessas soluções era acomodar a fusão de grandes processos de negócios. Com a orquestração, diferentes processos podem ser conectados sem ter que reconstruir as soluções que originalmente automatizavam os processos individualmente. A orquestração preenche essa lacuna introduzindo uma nova lógica de fluxo de trabalho. Além disso, o uso da orquestração pode reduzir significativamente a complexidade dos ambientes de solução. A lógica do fluxo de trabalho é abstraída e mantida com mais facilidade do que quando incorporada a componentes individuais da solução.
o papel da orquestração se amplia em ambientes orientados a serviços. Por meio do uso de extensões que permitem que a lógica do processo de negócios seja expressa por meio de serviços, a orquestração pode representar e expressar a lógica de negócios em um local padronizado e baseado em serviços. Ao construir soluções orientadas a serviços, isso fornece um meio extremamente atraente de habitação e controlar a lógica que representa o processo que está sendo automatizado.
a orquestração aproveita ainda mais a interoperabilidade intrínseca procurada pelos projetos de serviços, fornecendo endpoints de integração em potenciais processos. Um aspecto fundamental de como a orquestração é posicionada dentro SOA é o fato de que as próprias orquestrações existem como serviços. Portanto, com base na lógica de orquestração, padroniza a representação do processo em uma organização, ao mesmo tempo em que aborda o objetivo da Federação corporativa e promove a orientação do serviço.
figura 6.32. Uma orquestração controla quase todas as facetas de uma atividade complexa.
uma especificação principal do setor que padroniza a orquestração é a Web services Business Process Execution Language (WS-BPEL). Este livro reconhece o WS-BPEL como uma extensão chave de segunda geração e, portanto, usa seus conceitos e terminologia como base para uma série de discussões relacionadas à modelagem de processos de negócios.
Nota
WS-BPEL é o nome mais recente dado a esta especificação, que também é conhecido como BPEL4WS e apenas BPEL. Para obter uma visão geral das partes primárias da linguagem WS-BPEL e uma discussão sobre como surgiu a mudança de nome, consulte o Capítulo 16.
em Inglês simples
depois de lavar com sucesso vários carros juntos, Chuck, Bob, Jim e eu decidimos começar nossa própria empresa. Formalizamos as etapas em nosso processo de lavagem de carros para que possamos lidar com diferentes tipos de carros com diferentes requisitos de limpeza.
Nosso processo é, portanto, afetado pelos seguintes novos requisitos:
- Nós decidir contratar ajuda extra durante o horário de pico. Isso apresenta até dois membros adicionais que se juntam à nossa equipe.
- porque não temos capital de risco para este negócio, fazemos um acordo com um posto de gasolina local. Em troca de usar uma parte de seu lote para nossa operação de lavagem de carros, concordamos em ajudar com as tarefas de bombeamento de gás durante seus horários de pico.
nosso processo simples de lavagem de carros agora se tornou significativamente mais complicado. O processo não é mais fixo, pois pode mudar a qualquer momento como resultado de várias condições e eventos.
- quando nossos trabalhadores extras chegam, a alocação de tarefas de toda a equipe é alterada.
- quando o pessoal do posto de gasolina precisa de ajuda extra, somos obrigados a enviar um ou mais membros da nossa equipe de lavagem de carros para ajudá-los.
estes exemplos referem-se a condições previsíveis que ocorrem diariamente. Nossa operação é ainda mais afetada por algumas restrições:
- se o nosso fluxo de caixa cair abaixo de uma certa quantia, não podemos pagar trabalhadores a tempo parcial.
- se chover, todo o trabalho é suspenso (também levando à redução do fluxo de caixa).
essas restrições introduzem condições menos comuns, mas que sempre precisamos levar em consideração. Para acomodar essas situações potenciais, criamos um plano que mapeia nosso processo expandido e fornece processos alternativos para lidar com condições comuns e incomuns.
este plano é essencialmente um fluxo de trabalho que une etapas individuais a processos e subprocessos particionados por pontos de decisão. Este fluxo de trabalho elaborado incorpora nosso processo original com o processo do posto de gasolina e o processo estendido resultante da chegada de nossos trabalhadores a tempo parcial. Esse fluxo de trabalho é essencialmente uma orquestração que gerencia os requisitos individuais do processo e recursos relacionados, participantes, eventos, regras de negócios e atividades.
6.6.1. Protocolos de negócios e definição de processos
a lógica de fluxo de trabalho que compreende uma orquestração pode consistir em várias regras, Condições e eventos de negócios. Coletivamente, essas partes de uma orquestração estabelecem um protocolo de negócios que define como os participantes podem interoperar para alcançar a conclusão de uma tarefa de negócios. Os detalhes da lógica de fluxo de trabalho encapsulados e expressos por uma orquestração estão contidos em uma definição de processo.
6.6.2. Serviços de processo e serviços de parceiros
identificados e descritos dentro de uma definição de processo são os participantes do processo permitidos. Primeiro, o processo em si é representado como um serviço, resultando em um serviço de processo (que passa a ser outro de nossos modelos de serviço, como mostrado na figura 6.33).
figura 6.33. Um serviço de processo que coordena e expõe a funcionalidade de três serviços de parceiros.
outros serviços autorizados a interagir com o serviço de processo são identificados como serviços de parceiros ou links de parceiros. Dependendo da lógica do fluxo de trabalho, o serviço de processo pode ser invocado por um serviço de parceiro externo ou pode invocar outros serviços de parceiro (figura 6.34).
Figura 6.34. O serviço de processo, depois de ser invocado primeiro por um serviço de parceiro, invoca outro serviço de parceiro.
6.6.3. Atividades básicas e atividades estruturadas
WS-BPEL divide a lógica do fluxo de trabalho em uma série de atividades primitivas predefinidas. Atividades básicas (receber, invocar, responder, lançar, esperar) representam ações fundamentais de fluxo de trabalho que podem ser montadas usando a lógica fornecida por atividades estruturadas (sequência, switch, while, flow, pick). Como essas atividades podem ser usadas para expressar a lógica real do processo de negócios é explorada no Capítulo 16.
6.6.4. Sequências, fluxos e links
atividades básicas e estruturadas podem ser organizadas de modo que a ordem em que são executadas seja predefinida. Uma sequência alinha grupos de atividades relacionadas em uma lista que determina uma ordem de execução sequencial. As sequências são especialmente úteis quando uma parte da lógica de aplicação depende do resultado de outra.
os fluxos também contêm grupos de atividades relacionadas, mas introduzem diferentes requisitos de execução. Partes da lógica do aplicativo podem ser executadas simultaneamente dentro de um fluxo, o que significa que não há necessariamente um requisito para que um conjunto de atividades espere antes que outro seja concluído. No entanto, o fluxo em si não termina até que todas as atividades encapsuladas tenham concluído o processamento. Isso garante uma forma de sincronização entre a lógica do aplicativo que reside em fluxos individuais.
os Links são usados para estabelecer dependências formais entre atividades que fazem parte dos fluxos. Antes que uma atividade possa ser totalmente concluída, ela deve garantir que todos os requisitos estabelecidos nos links de saída sejam atendidos primeiro. Da mesma forma, antes que qualquer atividade vinculada possa começar, os requisitos contidos em qualquer link recebido primeiro devem ser satisfeitos. As regras fornecidas pelos links também são chamadas de dependências de sincronização.
6.6.5. Orquestrações e atividades
como definimos anteriormente, uma atividade é um termo genérico que pode ser aplicado a qualquer unidade lógica de trabalho concluída por uma solução orientada a serviços. O escopo de uma única orquestração, portanto, pode ser classificado como uma atividade complexa e, muito provavelmente, de longa duração.
6.6.6. Orquestração e coordenação
a orquestração, representada pelo WS-BPEL, pode utilizar totalmente o WS-Coordination context management framework, incorporando o tipo de coordenação ws-BusinessActivity. Esta especificação define protocolos de coordenação projetados para suportar atividades complexas e de longa duração.
6.6.7. Orquestração e SOA
a lógica do processo de negócios está na raiz das soluções de automação. A orquestração fornece um modelo de Automação onde a lógica do processo é centralizada, mas ainda extensível e composível (figura 6.35). Através do uso de orquestrações, os ambientes de solução orientados a serviços tornam-se inerentemente extensíveis e adaptáveis. As próprias orquestrações normalmente estabelecem um ponto comum de integração para outras aplicações, o que torna uma orquestração implementada um facilitador de integração chave.
figura 6.35. Orquestração relativa a outras partes da SOA.
Essas qualidades conduzem ao aumento da agilidade organizacional, porque:
- A lógica de fluxo de trabalho encapsulado por uma orquestração pode ser modificado ou ampliado em um local central.
- Posicionamento de uma orquestração centralmente podem facilitar significativamente a fusão dos processos de negócio abstraindo a cola que une as correspondentes soluções de automação juntos.
- Pelo estabelecimento potencialmente de grande escala orientada a serviço de integração de arquiteturas, orquestração, em um nível fundamental, pode suportar a evolução de uma diversamente federados empresa.
Orquestração é um ingrediente chave para a consecução de um estado da federação dentro de uma organização que contém vários aplicativos com base em diferentes plataformas de computação. Os avanços no middleware permitem que os próprios mecanismos de orquestração se tornem totalmente integrados em ambientes orientados a serviços.
o conceito de orquestração orientada a serviços aproveita totalmente todos os conceitos que discutimos até agora neste capítulo. Para muitos ambientes, as orquestrações se tornam o coração da SOA.
estudo de caso
a série de etapas que envolvemos em uma atividade de negócios no exemplo de estudo de caso anterior demonstrou como a TLS usou o protocolo WS-BusinessActivity para adicionar gerenciamento de contexto e tratamento de exceções a uma atividade complexa e de longa duração. Mesmo que o escopo de uma atividade de negócios possa constituir um processo de negócios, ele não fornece ao TLS um meio padrão de expressar a lógica de fluxo de trabalho subjacente. Para isso, a TLS emprega uma orquestração WS-BPEL (figura 6.36).
figura 6.36. O processo de envio de pedidos de compra TLS estendido gerenciado por uma orquestração e envolvendo várias organizações parceiras em potencial.
a orquestração estabelece uma lógica de processo abrangente que engloba a atividade de negócios e a estende ainda mais para governar cenários de interação adicionais com vários serviços de fornecedores. Por exemplo, quando um fornecedor não pode cumprir um pedido, o próximo fornecedor na fila recebe o mesmo pedido de compra. Esse ciclo é repetido até que um fornecedor possa concluir o pedido em sua totalidade (dentro de certas limitações de preço) ou até que todos os fornecedores tenham sido consultados. Na última situação, o sistema simplesmente avalia o melhor negócio na mesa aplicando uma fórmula que leva em consideração o preço, a porcentagem do pedido a ser preenchido e os Termos do backorder.
a lógica de orquestração gerencia todos os aspectos do processo, incluindo o envolvimento de vários serviços de parceiros de fornecedores, bem como a atividade comercial que entra em ação quando um PO é processado.
RESUMO DOS PONTOS-CHAVE
- Uma orquestração expressa um corpo de negócios lógica do processo que normalmente é de propriedade de uma única organização.
- uma orquestração estabelece um protocolo de negócios que define formalmente uma definição de processo de negócios.
- a lógica do fluxo de trabalho dentro de uma orquestração é dividida em uma série de atividades básicas e estruturadas que podem ser organizadas em sequências e fluxos.
- a orquestração tem sido chamada de “coração da SOA”, pois estabelece um meio de centralizar e controlar grande parte da lógica inter e intra-aplicação por meio de um modelo de serviço padronizado.