Depois de vários anos discutindo sobre SOA, CEP e BPM, seja neste blog ou em outros veículos de comunicação, já podemos perceber claramente o valor de uma arquitetura orientada a serviços (SOA), do processamento de eventos complexos (CEP) e do gerenciamento de processos de negócio (BPM) dentro das organizações. BPM ajuda as empresas a serem mais responsivas quanto as mudanças de mercado e a constante busca por eficácia e eficiência em pró de atender as demandas de seus clientes, parceiros e funcionários. SOA por sua vez, têm como premissa transformar a TI numa arma estratégica para que objetivos de negócio como melhoría de processos e atendimento a demandas de mercado possam virar uma realidade ágil, quebrando portanto a imagem que a TI hoje possui de ser um custo ao invés de um investimento, bem como de ser honerosa, dispendiosa e pouco eficaz. A TI ainda conta com outra arma poderosa para prova do seu valor: CEP. O processamento de eventos complexos visa monitorar nuvens de eventos e detectar padrões nestes eventos que os relacione de tal forma, a identificar uma condição especial que seja de suma importância para as organizações, condições como ameaças de produtos de concorrentes, falhas num processo de atendimento, novas oportunidades de atendimento, etc, condições estas que representam o conceito de eventos complexos. Empresas de "tempo real" ou empresas que devem possuir alto poder de resposta imediata as nuances do mercado ou as ameaças ao seu negócio devem possuir, mesmo que tímido, um investimento em CEP.E como ter excelência nestes três assuntos dentro das organizações? profissionais do mercado, depois de alguns bons anos experimentando a aplicação de SOA, CEP e BPM nas empresas, têm observado que para que estes possam provar seus valores e cumprir seus objetivos, deve-se criar uma fundação de referência, com alto de poder de visibilidade e investimento nas empresas, que tenha a capacidade de liderar uma ou mais iniciativas (paralelas ou não) seja de SOA, CEP ou BPM. Para cada uma destas abordagens, deve-se criar o então já conhecido, centro de excelência ou simplesmente CoE. Um CoE deve ser visto numa organização como um "departamento" unipresente em todas as iniciativas da organização, sendo responsável por todas as questões sobre seu foco. Um CoE de BPM por exemplo, deve ser participado em todas as questões sobre melhoría de processos de negócio, e deve ter como participantes e interessados, pessoas de toda a organização, desde as pessoas que vivem os processos, até as pessoas que liberam orçamentos para novos investimentos.
Criar um CoE sólido e de credibilidade não é uma tarefa trivial. São necessários vários projetos de sucesso para que possamos dar os primeiros passos na instituição de um centro desses numa organização. E estamos falando apenas de um destes centros de excelência, como por exemplo, o de BPM. No mundo perfeito, deveríamos ter pelo menos três CoE's instituidos, SOA, CEP e BPM respectivamente. É notório portanto, quanto tempo leva e quanto custa instituir estes CoE's nas organizações: É demorado e é caro ... e tudo que demora e é caro facilmente se torna um risco, e riscos são situações que os investidores não gostam de viver. Contextualizado o cenário, você deve estar se argumentando: "Investir em SOA, CEP ou BPM então é algo inviável, dá muito trabalho e facilmente você pode ser levado ao fracasso!".
De fato, é uma argumentação válida, no sentido de que, implementar SOA, CEP e BPM num nível de maturidade que estes possam apresentar resultados que justifiquem próximos investimentos (um CoE) não é realmente uma tarefa trivial. Mas posso discordar quando se afirma que é algo inviável ou impossível. Inviável será se você não fizer um bom estudo de retorno de investimento (ROI) sobre a iniciativa que você deseja liderar. Sem uma boa justificativa sobre o quão lucrativo pode ser um investimento, ninguém em sã consciência enfia a mão nos bolsos. E impossível será, se você não usar as ferramentas, tecnologias e práticas corretas. Esta é a trinca perfeita sobre implementar uma boa solução, ter a ferramenta correta, a tecnologia adequada, e as práticas de mercado consagradas na implementação de uma abordagem.
O mundo perfeito para SOA, CEP ou BPM portanto, existe. Pra chegar nele, você deve ter uma série de projetos de sucesso, que tal como a figura de abertura do post (o gráfico acima) demonstre sucessivas implementações de sucesso que a cada vez, demonstram cada vez mais valor e maior agilidade, coeficientes principais na mensuração de um sucesso de um CoE. Essa é a premissa principal. A premissa operacional é que a cada projeto, você tenha sucesso, premissa esta que sustenta o resultado da premissa anterior. Sem o sucesso de um projeto individual, o fator de crescimento irá parar, e o mundo perfeito jamais poderá ser alcançado. E para ter sucesso um projeto, use as ferramentas, tecnologias e práticas corretas. Se você já sabe as práticas corretas, já sabe quais as tecnologias de mercado que são mais atrativas para SOA, CEP ou BPM, então o que lhe resta é utilizar as ferramentas corretas, e para isso, você precisa de uma referência, um guia que possa lhe ajudar a escolher, entre várias opções, aquela que possa cumprir a premissa operacional de implementar um projeto de sucesso. Nas próximas seções, irei mostrar com alguns exemplos, quais as perguntas que devem ser feitas na escolha de ferramentas para SOA, CEP e BPM, e qual deve ser a resposta aproximada para cada pergunta.
Business Process Management
... Utilize uma ferramenta de modelagem simples, intuitiva e bonita, que além disso esteja de acordo com padrões de mercado como XPDL, BPMN e BPEL ...
... Ao modelar processos de negócio, defina suas regras de negócio usando abordagens baseadas em wizards, evite linguagens que mesmo em alto nível, sejam de programação. Lembre-se que quem define estas regras e processos, não frequentou escolas e faculdades de TI ...
... Garanta que a ferramenta de modelagem de processos possui recursos de simulação destes processos. Quando você pode simular os processos ainda em tempo de desenho, você evita que o patrocinador de BPM espere até que o processo esteja operacional para ver se ele teve efeito ou cumpriu os objetivos traçados, criando portanto um ROI mais rápido de ser avaliado e recuperado. Na maior parte das vezes, os donos dos processos ao verem os processos "executando" mesmo que em simulações já podem ter a percepção sobre melhorar a utilização dos recursos (pessoas e sistemas) ou a direção do valor dos processos ...
... É interessante também que a ferramenta de simulação possa gerar relatórios sintéticos e analíticos sobre as simulações. Depois de 3 ou 4 simulações e ciclos de modelagem e melhorías, você pode observar como o processo se comporta nas diferentes situações especificadas (Happy Path, Alternative Flows, Exceptions) e aferir quanto a robustez do processo ...
... Preocupe-se em como os usuários (clientes, parceiros, funcionários ou fornecedores) irão interagir com os processos. No ramo de varejo, bancos e seguros por exemplo, 70% de um processo de negócio é composto por tarefas humanas. Assegure que a solução de BPM disponibilize uma plataforma agradável para a interação de tarefas humanas ...
... A solução de BPM possibilita que você rastreie uma instância de processo em andamento ou finalizada? É importante saber como andam os processos, ou no caso de alguma anomalia, saber que informações ou eventos aconteceram na execução de um processo ...
... Como seus gestores e líderes de área monitoram a performance do negócio? A solução de BPM disponibiliza um BAM (Business Activity Monitoring) digno de visualização de um diretor ou um patrocinador? Quão simples é implementar métricas de desempenho do negócio? O BPM possibilita a customização de métricas implementadas Out-Of-Box? Ele te dá previamente implementado sistemas de BalanceScoreCards? ...
... Crie dashboards de monitoração do negócio que possam dar poder e visibilidade aos usuários chaves, gestores de área e grupos de direção. Várias visualizações (Cubos) devem podem ser utilizados, e a origem dos dados apresentados em gráficos devem ser transparentes para os usuários. As perguntas respondidas devem ser: Como andam as minhas vendas? Quanto eu perdi na última hora com a NASDAQ? Qual o nível de satisfação dos meus clientes? Como meu concorrente se posiciona perante minha oferta de produtos e serviços? ...
Service-Oriented Architecture (Enterprise Service Bus)
... O ESB utilizado possui consoles de gerenciamento de fácil utilização, que compreendam todas as facilidades do produto? Quanto um recurso particular do ESB precisa ser configurado, você faz isso clicanco e arrastando ou escreve código Java ou XML? Como você aprovisiona os recursos da máquina para sustentar picos e novas demandas? Como você observa a utilização dos serviços e componentes do ESB? Como você coloca seu ESB em cluster? ...
... Para testar seus serviços você precisa escrever código? Para testar o envio ou recebimento de uma mensagem JMS, você precisa de uma IDE de desenvolvimento Java? Como você testa a garantia de entrega de mensagens, e a persistência de mensagens JMS? ...
... BPEL é uma linguagem baseada em XML extremamente difícil de escrever e de implementar. Se você não conhece a notação e a especificação da linguagem, sem um bom editor visual você pode ficar horas ou dias tentando fazer algo trivial. Use ferramentas de implementação que possam abstrair a complexidade do BPEL e que possa fazer com que foque no que realmente importa: Fazer a composição de Web Services funcionar ...
... E os seus serviços internos do ESB? Sabemos que um serviço normalmente é baseado em sua interface de acesso, que pode ser REST, JMS, SOAP, File ou SQL, mas independente da interface de acesso, como você define o comportamento (implementação) dos seus serviços? Programando em Java? escrevendo XML ou utilizando outros meios mais especialistas? Não faça isso, use abordagens mais ágeis e seguras e que não dependam de um especialista numa linguagem ou plataforma ...
... A arquitetura de um ESB é baseada no conceito de pipeline ou canal de mensagens. Com isso, quando uma mensagem chega a este canal, esta é processada ou um ou mais filtros ou etapas de execução. Ao enviar os dados da mensagem de uma etapa para a outra, você precisa escrever código XML ou Java pra isso? Use abordagens visuais que inibam você de causar problemas na construção de um serviço ou processo ESB. Torne a mudança dos parâmetros de uma mensagem uma tarefa trivial e segura, e não uma fonte inesgotável de problemas na hora da manutenção ...
... Um dos recursos mais comuns em qualquer ESB é o roteamento de mensagens dinâmico, baseado nas informações da mensagem a ser processada. É de suma importância que você possa lidar com roteamentos dinâmicos de forma ágil e segura. Não use plataformas de ESB que exponham você a detalhes internos de implementação para definir coisas simples como: "Vá para a etapa X caso tenha uma informação Y na mensagem". Não gaste mais do que 30 minutos na construção e teste de uma roteamento dinâmico ...
... Testar serviços de um ESB é uma tarefa que naturalmente é complexa, principalmente quando você possui serviços que possuem várias etapas ou fases. É importante utilizar ferramentas que possam testar isoladamente cada etapa do processo (Ex: Um acesso a um banco de dados SQL) e também que possam testar o processo completo, sem que para isso, você tenha que fazer deploy do mesmo. Use também ferramentas que possam lhe ajudar a realizar depuração de problemas. Use conceitos como "Breakpoints", inspeção de variáveis, "Watche's", etc. Sim, isso existe em soluções de ESB's ...
... XSLT também é uma linguagem baseada em XML extremamente difícil de escrever. Poucas são as pessoas que conhecem de fato a linguagem, mas mesmo estas, ao escrevem programas XSLT "Na mão" enfrentam problemas na horas dos testes ou mesmo a abordagem mais confiável. O mesmo se aplica ao REST. Devido a simplicidade da abordagem, várias alternativas podem ser aplicadas, mas a alternativa mais escalável e recomendada nos foge quando implementamos. Use ferramentas que tornem o dia a dia do desenvolvimento de soluções baseadas em REST e XSLT mais simples ...
Service-Oriented Architecture (Governance, Management)
... Gerenciar os ativos de uma fundação SOA é algo primário. Ter uma visão holística sobre os serviços, plataformas e sistemas que compôem uma arquitetura orientada a serviços é uma premissa básica para uma correta governança dos serviços. Saiba em tempo real as relações entre os serviços, monitore o comportamento destas relações e saiba mais sobre a importância de um serviço para a organização ...
... Quando seu cliente, parceiro ou fornecedor pergunta: "Qual o tempo de resposta médio do serviço que estou consumindo?" Como você responde essa pergunta? E independente da resposta, como você acha qual, numa interação entre serviços, quem é o vilão do tempo de resposta? Como você acha os gargalos de um serviço que pode ser distribuido e acessados por vários sistemas rodando em diferentes plataformas? Como você rastreia o tempo de resposta de uma interação entre diferentes tipos de aplicações a plataformas? ...
... É seu cliente que diz que seu serviço está indisponível ou é sua TI que pró-ativamente observa a queda para poder providenciar a ativação da redundância? Você espera seus consumidores reclamarem do tempo de resposta ou das falhas de segurança ou você define políticas de governança em seus serviços é é notificado visualmente quando estas estão comprometidas? ...
... Expor serviços para fora (parceiros, clientes, fornecedores) requer um nível de maturidade de governança bem maior do que quando você têm serviços utilizados apenas dentro da organização. Se você precisa expor seus serviços, preocupe-se com detalhes sobre fronteiras de segurança, Trust Zones, políticas de WS-Security, Reliable-Messaging, autenticação e autorização de domínios, Single-Sign On, porventura transformação da mensagem enviada para adaptação ao WSDL de destino, interceptação das mensagens para fins de auditoria, etc. Todas estas questões devem ser endereçadas em termos de governo dos serviços e não de implementação, principalmente se seus serviços são oriundos de fábricas de desenvolvimento ou foram comprados de um fabricante. Use plataformas de governança que possam endereçar estes pontos, e que possam "mediar" a interação de seus consumidores externos e sua implementação do serviço interno ...
Complex Event Processing
... Implementar, gerenciar e observar eventos não é uma tarefa trivial, os anos e o mercado já provaram isso. Se faz necessário a utilização de não uma, mas várias infra-estruturas diferentes para mapear as etapas de criação, desenho, implantação e observação de eventos e de eventos complexos. Use plataformas de CEP abrangentes e de preferência que sejam referência no mercado e tenham uma história no mundo de CEP e ESP ...
... Modele e descreva seus eventos complexos ao invés de implementá-los. CEP é uma abordagem que só faz sentido se você puder reagir a mudanças e comportamentos dos eventos num piscar de olhos. Se você usa abordagens baseadas em implementação, mesmo que em XML, você fatalmente ao ter que mudar um evento, vai ter que entrar no ciclo "Mudar > Testar > Implantar". A mudança em comportamentos de eventos devem esperar apenas por um "Botão de Ligar" para que entrem em produção, e a garantia de qualidade deve ser provida por um ambiente de desenvolvimento visual que elimine margens de erros de implementação ...
... Você não monitora seus eventos complexos através de consoles de texto ou através de arquivos de saída de log's certo? Isso seria muito irresponsável por parte de um profissional de TI tão distinto como você, principalmente porque não será você a observar os eventos complexos, e sim, os líderes de áreas, e gestores preocupados com a saúde em tempo real do negócio. Use dashboards corporativos que estejam conectados com a plataforma que identifica, detecta e cria os eventos complexos. Preferencialmente, tenha uma ferramenta que possa fazer isso através de dashboards, e que estes dashbordas também possam ser exportados para visualização em outras plataformas de monitoração do negócio, como por exemplo, um BAM ...
Considerações Finais
Vimos neste post algumas das questões que devem ser relevantes quando você está tentanto ter sucesso em SOA, CEP ou BPM. Uma vez que esteja claro que, o sucesso de cada uma destas abordagens depende diretamente da execução sustentável e de sucesso de vários projetos, torna-se necessário a utilização de ferramentas, tecnologias e práticas adequadas.
Vimos também que, independente das tecnologias e práticas escolhidas, alguns exemplos do que seriam ferramentas adequadas para o sucesso de abordagens basedas em SOA, CEP e BPM. Os exemplos sugeridos, são na verdade exemplos das plataformas que a Progress Software oferece aos seus clientes, plataformas estas que em suas áreas, são líderes de mercado, e possuem uma história de sucesso com organizações de diferentes portes e áreas de atuação, bem como histórias de sucesso com a comunidade de software em geral, seja estimulando a criação de tecnologias, seja liderando e sendo responsável por tecnologias no mundo todo, seja sendo referência para a criação de tecnologias, referência até mesmo, para nossos concorrentes ;-)
Se você gostou dos exemplos sugeridos e deseja saber mais sobre as soluções da Progress Software, visite o site http://www.progress.com e conheça melhor nossa tecnologia. Para maiores detalhes, até mesmo técnicos, mande um e-mail para rferreira (at) progress.com, terei maior prazer em atênde-los!







0 comentários:
Postar um comentário