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
Download

ETL e BPMN