Tecnologias Java para BPM e SOA Marco Aurélio S. Mendes Gerente de Inovações Tecnológicas Squadra Tecnologia em Software Objetivos Apresentar os conceitos básicos de BPM e SOA. Apresentar sistemas e tecnologias para BPM (BPM) Apresentar tecnologias, padrões e tecnologias Java para suporte à BPMS e SOA Tópicos BPM e SOA – Por quê? BPMS – Suítes BPM/SOA Tecnologias Java para BPMS e SOA Como escolher e implementar tecnologias Java para projetos BPM e SOA BPM e SOA – Por que o mundo se tornou plano... BPM e SOA – Por que o mundo se tornou plano... Um complexo barramento de serviços orquestrado em Java (IBM WebSphere) na SSP-SP para o processo de atendimento e despacho (190) do cidadão. BPM e SOA – Por que a TI precisa ser efetiva... A TI precisa gerar resultados de negócio! BPM e SOA – Por que a TI precisa gerar resultados de negócio... Um barramento de integração de bancos e secretarias em SP com o uso de tecnologias Java promove ROI superior a 50 milhões. BPM e SOA – Por que a TI precisa estar alinhadas a processos de negócio... Etapas resumidas de um projeto BPM/SOA. Tópicos BPM e SOA – Por quê? BPMS – Suítes BPM/SOA Tecnologias Java para BPMS e SOA Como escolher e implementar tecnologias Java para projetos BPM e SOA BPMS – O quê? BPMS é uma nova categoria de software de gerenciamento que permite que organizações modelem, implementem e gerenciem processos de negócio considerados críticos por integrarem múltiplas aplicações, departamentos e parceiros de negócio. Um BPMS possui três elementos centrais, de acordo com o BPM Initiative 1. Motor (engine) para executar modelos de processos de negócio. 2. Um conjunto de ferramentas que suportem o ciclo de vida do processo de negócio. 3. Conectores que permitem que o BPMS interaja com outros softwares e programas necessários para a alimentação do motor. Perifericamente, um BPMS pode possuir dezenas de outros elementos. Exemplos BPMS - JBOSS Exemplos BPMS – IBM/WebSphere Principais Modalidades de BPMS Baseado em Workflows (Integração de processo) Baseado em Documentos (Integração de informações) Baseado em Integração de Aplicações (EAI) A fauna de ferramentas BPMS Workflows clássicos Automação de formulários. Modelagem de processos de Negócio/Simulação de processos. Portais e mash-ups. Orquestração de processos de negócio. Execução de processos (motor). Controle estatístico e monitoração de processos de negócio. Integração – Barramentos de serviços/ESB. Repositório de serviços para governança SOA. Gerenciamento de regras de negócio A fauna de ferramentas BPMS Grande maioria das ferramentas BPMS de mercado é desenvolvida em tecnologias Java! Tópicos BPM e SOA – Por quê? BPMS – Suítes BPM/SOA Tecnologias Java para BPMS e SOA Como escolher e implementar tecnologias Java para projetos BPM e SOA A fauna Java para BPMS Diversos padrões e tecnologias Java estão disponíveis no mercado para suporte a projetos BPMS. Principais padrões são: WS-*, SCA/SDO e JBI. Homem de Java! A fauna Java para BPMS WS-* BPEL4WS: Permite a “orquestração” de processos de negócio. WSDL - Linguagem para descrever “serviços” SOA. WS-RS: Representação de estado. WS-TX - Coordenação de transações UDDI: Repositório de serviços. SOAP – Protocolo para envelopar mensagens. JAX-WS: Especificação Java para WebServices. Padrões WS-* são definidos por órgãos diversos tais como W3C, OASIS, JCP, entre outros. Pilhas de diversos fornecedores e muitas vezes incompatibilidades. Ainda o padrão mais popular para suporte a integração de sistemas. A fauna Java para BPMS WS-* Exemplo: Eclipse BPEL A fauna Java para BPMS JBI: Java Business Integration. Especificação Java (JCP) para implementar arquiteturas SOA. Baseado nos padrões WS-*, mas com mecanismos de interoperabildade, componentização, instalação, implantação e monitoração facilitados e padronizados. Padrões de troca de mensagens embutidos (MEP) - Ver livro EAI Patterns. JSR 208 para JBI 1.0 e JSR 312 para JBI 2.0. A fauna Java para BPMS A arquitetura JBI. A fauna Java para BPMS Algumas ferramentas que implementam o padrão JBI. OpenESB. Apache ServiceMix JBOSS ESB. Fuse ESB. Mule. Suporte primário da SUN e ferramentas open-source. A fauna Java para BPMS SCA: Service Component Architecture Iniciativa do instituto OpenSOA, liderado por Oracle/BEA, IBM,SAP e TIBCO, entre outros. Também baseado nos padrões WS-*, com com mecanismos de interoperabildade, componentização, instalação, implantação e monitoração facilitados e padronizados. Padrões de troca de mensagens embutidos (MEP). SDO: Padrão para unificar e simplificar a manipulação de dados por aplicações. A fauna Java para BPMS Algumas ferramentas que implementam o padrão SCA. Apache Tuscany BEA AcquaLogic. IBM WebSphere. SAP Netweaver. Mule Eclipse STP. TIBCO Active Matrix SCA possui uma força de mercado corporativo Java muito maior e também um suporte bem robusto da comunidade open-source. BPMS em Java - Eclipse Eclipse STP - Eclipse SOA Tools Platform http://eclipse.org/stp BPMS em Java - Intalio Talvez a suíte BPMS mais madura dentro do mundo open-source. Três produtos centrais: Intalio Designer. Intalio Server. Intalio Workflow http://intalio.com Tópicos BPM e SOA – Por quê? BPMS – Suítes BPM/SOA Tecnologias Java para BPMS e SOA Como escolher e implementar tecnologias Java para projetos BPM e SOA O erro básico na escolha de um BPMS é começar pelas ferramentas! “A primeira lei de qualquer tecnologia é que a automação de um processo eficiente irá aumentar a eficiência”, Bill Gates “A segunda lei de qualquer tecnologia é que a automação de um processo ineficiente irá aumentar a ineficiência”, Bill Gates Aspectos Preliminares à Ferramentas Modelo Operacional e Arquitetura Empresarial da sua organização alvo. Tipo de BPMS depende do quadrante primário da sua organização. Ref.: http://www.ies.aust.com/ten/ten38.htm Aspectos Preliminares à Ferramentas Cultura SOA - Ver modelo SIMM - Service Integration Maturity Model http://www.ibm.com/developerworks/webservices/library/ws-soa-simm/. Aspectos Preliminares à Ferramentas Pessoas - 1/3 do orçamento de um projeto BPM é gasto com “people change management”, Jeston & Nellis (BPM). Implementação de Ferramentas Pense grande, Comece Pequeno e mova-se rapidamente. Projetos pilotos de pequena duração. Foco no valor de negócio. Esqueça a TI pela TI. Valorize a TI como instrumento de negócio! Estudo de padrões, tecnologias e ferramentas. SCA e JBI são tendências fortes para BPMS/SOA no mundo Java. Para comparação, WCF é a tendência no mundo Microsoft. Conclusões BPMS/SOA é forte tendência para TI e realidade já em segmentos específicos no Brasil como TELECOM, Bancos e Governo. Java tem forte suporte de padrões, tecnologias e fornecedores para SOA e BPM. Mais informações... Apresentação e links usados na palestra foram disponibilizados em: http://blog.marcomendes.com/