CIn/UFPE – Projeto Conceitual de Banco de Dados – Prof. Robson Fidalgo 1 BPM & Solução de BI OpenSource Por: Iandé Coutinho (ibbc) [email protected] CIn/UFPE – Projeto Conceitual de Banco de Dados – Prof. Robson Fidalgo 2 Agenda • Business Process Modeling • Business Process Modeling Notation • ETL CIn/UFPE – Projeto Conceitual de Banco de Dados – Prof. Robson Fidalgo 3 Workflow “...automação do processo de negócio, na sua totalidade ou em partes, onde documentos, informações ou tarefas são passadas de um participante para o outro para execução de uma ação, de acordo com um conjunto de regras de procedimentos.” WfMC (Workflow Management Coalition) CIn/UFPE – Projeto Conceitual de Banco de Dados – Prof. Robson Fidalgo 4 Business Process Modelling • Definições: “Conjunto de tecnologias e padrões de design, execução, administração e monitoramento de processos de negócio.” “...conjunto de tarefas que envolve pessoas e recursos para que possa se atingir um objetivo previamente traçado.” CIn/UFPE – Projeto Conceitual de Banco de Dados – Prof. Robson Fidalgo 5 Business Process Modelling • Desafios: Automação Modelagem Interoperabilidade CIn/UFPE – Projeto Conceitual de Banco de Dados – Prof. Robson Fidalgo 6 Business Process Modeling • Tecnologias BPM CIn/UFPE – Projeto Conceitual de Banco de Dados – Prof. Robson Fidalgo 7 BPM Suite • Design Linguagem de notação gráfica Flowcharts, workflows e diagramas Editor gráfico • Execução Mapeamento de notação gráfica para linguagem de execução Engenho de Execução • Monitoramento Dashboards Consultas Ad-Hoc Linguagem de gerenciamento CIn/UFPE – Projeto Conceitual de Banco de Dados – Prof. Robson Fidalgo 8 BPM – Arquitetura Proposta CIn/UFPE – Projeto Conceitual de Banco de Dados – Prof. Robson Fidalgo 9 Ciclo de Desenvolvimento [ ] Gerar modelo BPMN a partir de uma coreografia WS-CDL. Acompanhar processos em execução através de interfaces de administração de monitoramento . Desenvolver diagrama BPMN. Desenvolver interfaces humana e de sistemas (interno ou externo) necessárias. Efetuar Deploy do código BPEL e suas interfaces requeridas para o engenho. CIn/UFPE – Projeto Conceitual de Banco de Dados – Prof. Robson Fidalgo 10 Tecnologias da Arquitetura CIn/UFPE – Projeto Conceitual de Banco de Dados – Prof. Robson Fidalgo 11 Business Process Modeling Notation • O que é? Notação gráfica reconhecida para BPM • Amplamente utilizada por diversos Vendors Criada pela Business Process Management Initiative (BPMI.org) Em 2005 uni-se com a OMG • BPMN torna-se padrão OMG Versão atual 1.1 Versão 2.0 em 2008.... CIn/UFPE – Projeto Conceitual de Banco de Dados – Prof. Robson Fidalgo 12 Business Process Modeling Notation • Características: Uso de pictogramas para representar elementos de processos Linguagem gráfica tipo fluxograma para desenvolvimento de diagrama de processo de negócio (BPD) A especificação surge como tentativa de alinhar a representação gráfica com BPEL Baseado no metamodelo BPDM e infra-estrutura UML2. CIn/UFPE – Projeto Conceitual de Banco de Dados – Prof. Robson Fidalgo 13 CIn/UFPE – Projeto Conceitual de Banco de Dados – Prof. Robson Fidalgo 14 Elementos Básicos do BPMN • Eventos Uma ocorrência que dispara (triggers) um processo de negócio. Categorias: • Start • Intermediate • End Tipos • • • • • Basic Message Timer Exception Cancellation • • • • • Compensation Link Exception Multiple Termination CIn/UFPE – Projeto Conceitual de Banco de Dados – Prof. Robson Fidalgo 15 Elementos Básicos do BPMN • Eventos CIn/UFPE – Projeto Conceitual de Banco de Dados – Prof. Robson Fidalgo 16 Elementos Básicos do BPMN • Eventos Tipos Start Intermediate End Basic Placeholder event or the start of a called subprocess. Placeholder Placeholder or end of a subprocess. Message Process is started by receipt of a message (e.g., the invocation of a web service method implemented by the process). Process is waiting for a message (e.g., wait for response from a participant to which this process has sent a request). A message is to be sent to a participant process (e.g., call its web service). Timer The start event defines a schedule for when it triggers (e.g., every Tuesday at midnight). A point in a defined schedule has been reached. Rule A condition, defined by the process, is met (e.g., process starts when a stock's price hits its 52week high). A condition is met. Used only for exception handling. CIn/UFPE – Projeto Conceitual de Banco de Dados – Prof. Robson Fidalgo 17 Elementos Básicos do BPMN • Eventos Exception Throw or catch an error. Generate an error. Cancellation Perform cancellation for a given activity. Cancel the transaction. Compensation Trigger and perform compensation handling. Perform compensating action. Link The link start event connects to the link end event of a sibling process. Link to or from another activity. Connect to the link start of a sibling process. Multiple Two or more triggers can start the process; if any one of them occurs, the process starts. These triggers can be message, timer, rule or link types. Two or more triggers can continue a waiting process; if any one of them occurs, the process resumes. When the process ends, several results are required (e.g. several messages need to be sent). Termination CIn/UFPE – Projeto Conceitual de Banco de Dados – Prof. Robson Fidalgo Terminate all activities in the process. Perform no exception handling or compensation. 18 Elementos Básicos do BPMN • Atividade Passo de um processo que realiza um trabalho Categorias: • Atomic (atômica) Realiza uma única task (tarefa) • Compound ou Process (composta ou processo) Conjunto de atividades atômicas ou compostas, eventos, gateways e outros construtores. Processos são hierárquicos, podem possuir subprocessos e estes por sua vez processos, e assim sucessivamente. CIn/UFPE – Projeto Conceitual de Banco de Dados – Prof. Robson Fidalgo 19 Elementos Básicos do BPMN • Atividades CIn/UFPE – Projeto Conceitual de Banco de Dados – Prof. Robson Fidalgo 20 Elementos Básicos do BPMN • Atividades Uso Descrição Service Calls a web service Receive Waits for a message (an alternative to an event construct) Send Sends a message User, Manual Task is performed by a human participant (e.g., approval) Script Logic encoded in a programming or scripting language (e.g., run a piece of Java code) Reference Uses the definition of another task in the process; shares the definition rather than duplicating it CIn/UFPE – Projeto Conceitual de Banco de Dados – Prof. Robson Fidalgo 21 Elementos Básicos do BPMN • Fluxo de Seqüência Fluxo Normal Fluxo Default Fluxo Condicional CIn/UFPE – Projeto Conceitual de Banco de Dados – Prof. Robson Fidalgo 22 Elementos Básicos do BPMN • Split e Joins Uso de gateways na modelagem do patrão split-join. Representação de If-then, switch e all. Tipos: • • • • • Exclusive OR Exclusive OR (event-based) Inclusive OR Complex Parallel CIn/UFPE – Projeto Conceitual de Banco de Dados – Prof. Robson Fidalgo 23 Elementos Básicos do BPMN • Gateways CIn/UFPE – Projeto Conceitual de Banco de Dados – Prof. Robson Fidalgo 24 Elementos Básicos do BPMN • Exclusive OR (Ou exclusivo) Uso de If-then-else e switch para controe de fluxo exclusivo Modo Split: • Verifica condições dos caminhos de saída, seleciona o primeiro válido e ignora os demais • Ao menos uma condição tem que ser verdadeira, do contrário especificar o caminho default Modo Join: • Libera o primeiro caminho de entrada a chegar nele, ignora os demais CIn/UFPE – Projeto Conceitual de Banco de Dados – Prof. Robson Fidalgo 25 Elementos Básicos do BPMN • Exclusive OR (Ou exclusivo) - Cont Exemplo: CIn/UFPE – Projeto Conceitual de Banco de Dados – Prof. Robson Fidalgo 26 Elementos Básicos do BPMN • Exclusive OR (event-based) Uso da estrutura de controle pick. Modo Split: • Seleciona o caminho do evento que primeiro disparar, ignora os demais Modo Join: • Dificilmente usado Exemplo: CIn/UFPE – Projeto Conceitual de Banco de Dados – Prof. Robson Fidalgo 27 Elementos Básicos do BPMN • Inclusive OR Uso da estrutura de controle switch com overlapping de casos Modo Split: • Semelhante ao OU Exclusivo, mas seleciona TODOS os caminhos de condições verdadeiras Modo Join: • Bloqueia passagem do fluxo de entrada até que todos os caminhos esperados completem suas atividades • Conhece de antemão todos os caminhos passíveis de completar suas atividades CIn/UFPE – Projeto Conceitual de Banco de Dados – Prof. Robson Fidalgo 28 Elementos Básicos do BPMN Exemplo: CIn/UFPE – Projeto Conceitual de Banco de Dados – Prof. Robson Fidalgo 29 Elementos Básicos do BPMN • Complex Uso da estrutura de controle única do BPMN Modo Split: • Dificilmente usado Modo Join: • Avalia os fluxos de entrada e determina quais deixa passar Exemplo: CIn/UFPE – Projeto Conceitual de Banco de Dados – Prof. Robson Fidalgo 30 Elementos Básicos do BPMN • Parallel Uso da estrutura de controle all Modo Split: • Aciona todos os fluxos de saída do gateway Modo Join: • Bloqueia passagem para o fluxo de saída até que todos os caminhos de entrada completem suas atividades Exemplo: CIn/UFPE – Projeto Conceitual de Banco de Dados – Prof. Robson Fidalgo 31 Tratando Exceções • Uso de eventos de exceção CIn/UFPE – Projeto Conceitual de Banco de Dados – Prof. Robson Fidalgo 32 Compensation • Atividades são usadas para reverter o efeito causado por outra atividade • Uso em atividades transacionais ou não Quanto transacional não possui o mesmo efeito de rollback! – Atividade já foi comitada!!! • Formas de disparar compensation: Uso de explicito de evento de compensation Implicita, caso a atividade a ser compensada faz parte de um subprocesso transacional cancelado. CIn/UFPE – Projeto Conceitual de Banco de Dados – Prof. Robson Fidalgo 33 Compensation • Exemplo: CIn/UFPE – Projeto Conceitual de Banco de Dados – Prof. Robson Fidalgo 34 Loops • Atributo de atividade (task ou subprocess) Atividade é repetida até condição do laço ser atingida • Modo Standard: While ou Until • Modo Multiple Instance (MI): Foreach CIn/UFPE – Projeto Conceitual de Banco de Dados – Prof. Robson Fidalgo 35 Loop Standard • Parâmetros Condition • Expressão que determina a continuação do laço Test time: before, after • Quanto testar a condição: antes da execução da atividade (while) ou após (until) maxLoops • Limite máximo de iterações Loop counter • Usado internamente. Inicia-se com zero, incrementado a cada iteração e comparado com parâmetro maxLoops CIn/UFPE – Projeto Conceitual de Banco de Dados – Prof. Robson Fidalgo 36 Loop Multiple Instance • Parâmetros MI Condition • Expressão que determina o número de instâncias para executar Loop counter • Usado internamente. Inicia-se com zero, incrementado a cada iteração e comparado com parâmetro maxLoops Ordering (sequential, parallel) • Determina se as instâncias serão executadas seqüencial ou pararalelamente. Complex Condition • Usada apenas quando Flow Condition for complex CIn/UFPE – Projeto Conceitual de Banco de Dados – Prof. Robson Fidalgo 37 Loop Multiple Instance • Parâmetros (Cont) Flow Condition (none, one,all, complex) • Usado apenas para ordem paralela. • None Assim que cada instância da atividade for executada a atividade próxima do processo é executada • One Próxima atividade só será executada quando a primeira instância concluir • All Próxima atividade só será executada quando todas instâncias concluírem • Complex Uso do parâmetro complex condition para determinar quando iniciar execução da próxima atividade. CIn/UFPE – Projeto Conceitual de Banco de Dados – Prof. Robson Fidalgo 38 Loops • Exemplo: CIn/UFPE – Projeto Conceitual de Banco de Dados – Prof. Robson Fidalgo 39 Exemplo de um BPD CIn/UFPE – Projeto Conceitual de Banco de Dados – Prof. Robson Fidalgo 40 Ferramenta BPMN • ITpearl´s Vision Plugin CIn/UFPE – Projeto Conceitual de Banco de Dados – Prof. Robson Fidalgo 41 • Pentaho...... CIn/UFPE – Projeto Conceitual de Banco de Dados – Prof. Robson Fidalgo 42 Business Intelligence ...agregado de sistemas, aplicações, tecnologia e práticas para captura, integração, análise e apresentação de informações de negócio. [1] CIn/UFPE – Projeto Conceitual de Banco de Dados – Prof. Robson Fidalgo 43 Pentaho BI Platform “The Pentaho BI Platform is an enterpriseclass Business Intelligence (BI) platform that supports Pentaho's end-user reporting, analysis, and dashboard capabilities with back-end security, integration, scheduling, and workflow capabilities.” [2] CIn/UFPE – Projeto Conceitual de Banco de Dados – Prof. Robson Fidalgo 44 Pentaho BI Platform • Solução BI comercial open source mais popular do mundo: Fundada em 2004: Pioneira em open source BI profissional Mais de 2 milhões de downloads desde seu lançamento Possui em média uma taxa de download em 100k por mês • Amplamente reconhecida como líder em seu segmento CIn/UFPE – Projeto Conceitual de Banco de Dados – Prof. Robson Fidalgo 45 Pentaho BI Platform • A plataforma: 100% Open Source (Java) Gestão e distribuição de relatórios, análises e dashboards Fácil integração com data sources, portais, e aplicativos através de padrões abertos Scheduling e autenticação integrada Workflow embarcado para processos inteligentes de BI, e integração com processos de negócios externos CIn/UFPE – Projeto Conceitual de Banco de Dados – Prof. Robson Fidalgo 46 Pentaho BI Platform • A plataforma (Cont): Extensibilidade através do uso de APIs, web services, ou modificação de templates, regras de negócio, ou código fonte Logging de auditoria integrado para monitorar atividade de usuário, desempenho, e acesso à conteúdo CIn/UFPE – Projeto Conceitual de Banco de Dados – Prof. Robson Fidalgo 47 Pentaho BI Platform Reporting Analysis Data Integration Dashboards CIn/UFPE – Projeto Conceitual de Banco de Dados – Prof. Robson Fidalgo 48 Integração de Dados • Motivação Dados estão por toda parte Dados são inconsistentes Desempenho é fator determinante CIn/UFPE – Projeto Conceitual de Banco de Dados – Prof. Robson Fidalgo 49 Integração de Dados • Integração Remover erros e corrigir dados perdidos Fornecer documentação do processo de integração Capturar o fluxo de dados transacionais Ajustar dados de multíplas fontes, pertimindo uma visão única de acesso Estruturar dados para serem consumidos por ferramentas de usuário final Consume cerca de 70% dos recursos de implementação e manutenção de um DW! CIn/UFPE – Projeto Conceitual de Banco de Dados – Prof. Robson Fidalgo 50 ETL • ETL Extrair Transformar Carga (Load) • ECCD Extract Clean Conform Deliver CIn/UFPE – Projeto Conceitual de Banco de Dados – Prof. Robson Fidalgo 51 Integração de Dados Custos • Adquirir ou Construir Open Source Tempo CIn/UFPE – Projeto Conceitual de Banco de Dados – Prof. Robson Fidalgo 52 Pentaho Data Integration A.K.A. Kettle CIn/UFPE – Projeto Conceitual de Banco de Dados – Prof. Robson Fidalgo 53 Kettle • Utilização Carga de arquivos de texto para banco de dados Exportar dados de um banco de dados para arquivos texto ou outros BD Migração de dados de aplicações de BD Exploração de dados em BD existentes (tabelas, views, etc.) Melhora de informação através de lookups Data cleaning Integração de aplicações Data warehouse population CIn/UFPE – Projeto Conceitual de Banco de Dados – Prof. Robson Fidalgo 54 Kettle CIn/UFPE – Projeto Conceitual de Banco de Dados – Prof. Robson Fidalgo 55 KEttle • Extração 25+ Tipos de SGBDs • MySQL, PostgreSQL, SQLite, . .. • Oracle, SQL Server, etc Text files XML files XLS files Xbase files (dBase, Foxpro, etc) File systems information Generated data MS Access files LDAP Geodata ... CIn/UFPE – Projeto Conceitual de Banco de Dados – Prof. Robson Fidalgo 56 KeTtle • Transporte Engenho baseado em fluxo de dados Very flexible pathways: splitting partitioning merging joining duplicating clustering (MPP) CIn/UFPE – Projeto Conceitual de Banco de Dados – Prof. Robson Fidalgo 57 KetTle • Transformação Tranformação flexível de dados Looking up data Databases Files Calculating Scripting • JavaScript, SQL, RegExp Splitting Mapping Selecting Filtering Pivotting CIn/UFPE – Projeto Conceitual de Banco de Dados – Prof. Robson Fidalgo 58 KettLe • Carga (Loading) Carga de dados para formatos de destino distintos Carga para banco de dados Popular Data warehouse Carga Particionada Carga Parallel Clustering CIn/UFPE – Projeto Conceitual de Banco de Dados – Prof. Robson Fidalgo 59 KettlE • Ambiente (Environment) Interface GUI (Spoon,Chef) • Drag & Drop • Debugger Ferramentas Command line • Execução de ”jobs” (Kitchen) • Execução de transformações (Pan) Web server • clustering • Execução remota API de programação para Java CIn/UFPE – Projeto Conceitual de Banco de Dados – Prof. Robson Fidalgo 60 Kettle, na prática! CIn/UFPE – Projeto Conceitual de Banco de Dados – Prof. Robson Fidalgo 61 Kettle, na prática! • Spoon CIn/UFPE – Projeto Conceitual de Banco de Dados – Prof. Robson Fidalgo 62 Kettle, na prática! • Spoon & Chef Overview CIn/UFPE – Projeto Conceitual de Banco de Dados – Prof. Robson Fidalgo 63 Kettle, na prática! • Exemplo de transformação • Exemplo de job CIn/UFPE – Projeto Conceitual de Banco de Dados – Prof. Robson Fidalgo 64 Kettle, na prática! • Caso de Uso: Populando um Data Mart CIn/UFPE – Projeto Conceitual de Banco de Dados – Prof. Robson Fidalgo 65 Kettle, na prática! • Fonte dos dados: Banco de Dados de Exemplo do MS Acess Formato: • Access (.mdb) Nome do Banco • Northwind Descrição da base • A base contém dados fictícios de uma empresa onde são registradas informações sobre vendas e estoque de produtos. • Ferramentas Pentaho Data Integration CIn/UFPE – Projeto Conceitual de Banco de Dados – Prof. Robson Fidalgo 66 Kettle, na prática! • Destino dos Dados: Data Mart no Postgres 8.2 Nome do Banco • NorthwindDW Descrição • Base de dados no modelo estrela. O assunto do modelo: Vendas • Objetivos Extrair os dados da base Access, aplicar transformações e carregá-las no banco NorthwindDW do Postgres CIn/UFPE – Projeto Conceitual de Banco de Dados – Prof. Robson Fidalgo 67 Kettle, na prática! • Diagrama NorthWind Fonte CIn/UFPE – Projeto Conceitual de Banco de Dados – Prof. Robson Fidalgo 68 Kettle, na prática! • Diagrama Estrela Vendas Destino CIn/UFPE – Projeto Conceitual de Banco de Dados – Prof. Robson Fidalgo 69 Conclusão • Positivos: Grátis Comunidade ativa Extensível Open Source 30+ Templates de transformação Baixo TCO • Negativos Treinamento oficial caro (USD 5k por 3 dias) Escassez de documentação API para uma linguagem (Java) CIn/UFPE – Projeto Conceitual de Banco de Dados – Prof. Robson Fidalgo 70 Referências 1. www.wikipedia.org 2. www.pentaho.org 3. Kimball, R., Caserta, J. The Data Warehouse Etl Toolkit. Wiley, September, 2004. 4. kettle.pentaho.org 5. Kimball, R., Ross, M. The Data Warehouse Toolkit. Wiley, 2nd, April, 2002. 6. Havey, M. Essential Business Process Modeling O'Reilly, August, 2005 7. www.bpmi.org 8. www.omg.org CIn/UFPE – Projeto Conceitual de Banco de Dados – Prof. Robson Fidalgo 71 CIn/UFPE – Projeto Conceitual de Banco de Dados – Prof. Robson Fidalgo 72