Módulo de Ampliação de Expressividade para a Ferramenta jbpm. Aluno: Diorbert Corrêa Pereira Orientador: João Paulo A. Almeida

Documentos relacionados
Sistemas Baseados em Regras. Profa. Patrícia Dockhorn Costa

Desenvolvimento de Sistemas BPMS. Jhonatas Vicente de Jesus

Ferramenta de apoio a gerência de configuração de software. Aluno: Rodrigo Furlaneto Orientador: Everaldo Artur Grahl

SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE. Aluno: Roberto Reinert Orientador: Everaldo A. Grahl

Automação de Processos de Negócios com BPMS:

TRIBUNAL REGIONAL FEDERAL DA 2ª REGIÃO Secretaria de Tecnologia da Informação

Sistema de Help Desk e Controle de Chamados Baseado em Workflow. Cristian Paulo Prigol Marcel Hugo

Avaliação do uso de ferramentas de workflow em processos típicos de engenharia de software

Diferenças da versão 6.3 para a 6.4

Felipe Denis M. de Oliveira. Fonte: Alice e Carlos Rodrigo (Internet)

Gestão de Processos de Negócio em Curso de Sistemas de Informação:

Rede de Laboratórios de Produtividade de Software

VisTrails. Fernando Seabra Chirigati Aluno de Engenharia de Computação e Informação COPPE/UFRJ fernando_seabra@cos.ufrj.br

Diretrizes Complementares para Aplicação da Análise de Pontos de Função no PAD

Processos de Desenvolvimento de Software. Prof. Hélio Engholm Jr

TERMO DE REFERÊNCIA PARA CONTRATAÇÃO DE PESSOA FÍSICA

Figura 1: Componentes do Kepler

Etapas e Desafios. plataforma de BPM corporativa. BPMS Showcase Kelly Sganderla Consultora de Processos, CBPP Kelly.sganderla@iprocess.com.

PROCESSOS PODEROSOS DE NEGÓCIO. ideiaconsultoria.com.br

Gerenciamento de Configuração de Software

PROJELER. Componentes da Solução Intalio BPMS 5.2. Maurício Bitencourt / mauricio.bitencourt@projeler.com.

4 Um Exemplo de Implementação

A R P O BPMN++ MODELER KLUG PROCESSO PARA DOWNLOAD E INSTALAÇÃO VERSÃO FREEWARE. Verificar requisitos para instalação. Testar instalação do software

Metodologia e Gerenciamento do Projeto na Fábrica de Software v.2

Cláusula 1.º Objecto. Cláusula 2.º Especificação da prestação

Coleções. Conceitos e Utilização Básica. c Professores de ALPRO I 05/2012. Faculdade de Informática PUCRS

Módulo 4 Estratégia de Serviço

IBM Software Demos WebSphere Portal Composite Application Workflow

CIGAM SOFTWARE CORPORATIVA LTDA.

Integração entre o IBM HTTP SERVER, APACHE WEB Server e IBM Websphere Application Server

Project Builder: uma Ferramenta de Apoio a Implementação do Processo Gerência de Projetos do MPS.BR

APLICATIVO WEB PARA O SETOR DE EXTENSÃO IFC VIDEIRA

Guião de Introdução ao Eclipse IDE Índice

Liderança em idéias, métodos e resultados em BPM no Brasil. Automação de Processos. Jones Madruga

Workflow Management Systems

LINGUAGEM ORIENTADA A OBJETOS

Gerador de código JSP baseado em projeto de banco de dados MySQL

Desenvolvimento Web com Framework Demoiselle versão 1.0

Lógica de Programação

SISTEMA TYR DIAGRAMAS DE CLASSE E SEQUÊNCIA Empresa: Academia Universitária

Gerenciamento de Processos de Negócio

Ferramentas unificadas de SOA alinham negócios e TI IDG Research aponta grandes ganhos potenciais a partir de uma solução integrada

Integrando Eclipse e Websphere Application Server Community Edition

Amostras e Tutoriais Versão 7 Release 5. Tutorial da Amostra de Contratação para o IBM Process Designer

LEIA ISTO PRIMEIRO. IBM Tivoli Configuration Manager, Versão 4.2.1

Especificação do 3º Trabalho

Plug and play options, integrating systems Opções de plug and play, integrando sistemas Flavio de Nadai

Engenharia de Ontologias Seminário UPON

Sistemas Colaborativos & Workflow / DAS 5316

Diretrizes Propostas para Aplicação da APF em Programa Envolvendo Tecnologias Recentes Tais como Barramento, BPMS e Portal

Rotina de Discovery e Inventário

Engenharia de Software I: Análise e Projeto de Software Usando UML

Catálogo de Kits TOTVS ECM

Avaliação do uso de ferramentas de workflow em processos típicos de engenharia de software

GERENCIAMENTO ELETRÔNICO DE DOCUMENTOS, CONTEÚDO E PROCESSOS GED/ECM QUALIDADE

Fábrica de Software Fatores motivadores, restrições e tendências

Engenharia de Software. Apostila I >>> Introdução à ES - HEngholmJr

Começando com Ruby on

SPEKX Platform DATA SHEET. Visão Resumida da Plataforma. Release 3.3. Versão 1.0

Gerência de Projetos de Software Modelos de gerência. CMM: Capability Maturity Model ITIL: Information Technology Infrastructure Library MPS BR

WebSphere_Integration_Developer_D_Jan06 Script

Do Oiapoque ao Chui: Orquestração de Serviços SOA com Soluções Abertas e Java

Business Process Management

Workflow como Proposta de. Workflow. O Gerenciamento de Processos. Prof. Roquemar Baldam roquemar@pep.ufrj.br

Processo Unificado (RUP)

Gerenciador de Log Documento Visão. Versão 2.0

BPMN (Business Process. George Valença

Regras de Negócio. Toda empresa possui uma série de processos de

Banco de Dados Avançados Banco de Dados Ativo

Implementação de uma Alçada Decisória usando a Suíte SOA IBM BPM

ÍNDICE. Delphi... 3 CAPÍTULO 1 INTRODUÇÃO CAPÍTULO 2 INSTALANDO O DELPHI... 10

Testes de Software. Anne Caroline O. Rocha TesterCertified BSTQB NTI UFPB. Anne Caroline O. Rocha Tester Certified BSTQB NTI UFPB

Fase 1: Engenharia de Produto

BPM E SOA MODELO PARA O DESENVOLVIMENTO CORPORATIVO

ARCO - Associação Recreativa dos Correios. Sistema para Gerenciamento de Associações Recreativas Plano de Desenvolvimento de Software Versão <1.

Acadêmico: Marciane Schotten Prof. Orientador: Ricardo Alencar de Azambuja

Desenvolvimento de um Ambiente de Engenharia de Software Baseado em Processos utilizando Workflow

Política Organizacional para Desenvolvimento de Software no CTIC

ATUALIZAÇÃO DA VERSAO Abaixo constam as alterações referentes a versão do dia 28/09/2012:

Gerenciamento de Arquivos no mercado AEC utilizando o Autodesk Vault + Buzzsaw

MRP II. Planejamento e Controle da Produção 3 professor Muris Lage Junior

Rational Quality Manager. Nome: Raphael Castellano Campus: AKXE Matrícula:

ANDROID APPLICATION PROJECT

INF 2125 PROJETO DE SISTEMAS DE SOFTWARE Prof. Carlos J. P. de Lucena

Noções de. Microsoft SQL Server. Microsoft SQL Server

Gerenciamento do Escopo do Projeto Produto do Projeto

ECM Gerenciamento de Conteúdo Corporativo

MODELAGEM DE PROCESSOS

Programação para Dispositivos Móveis

Jonathan J. Campos, Jefferson de Faria, William de O. Sant Ana

Especificação e Proposição de uma Solução de GED e Workflow para a UFRJ

INTRODUÇÃO E CONFIGURAÇÃO DO PRIMEFACES MOBILE EM APLICAÇÕES JSF

Webinar Introdução ao Puppet Enterprise

NOVIDADES COMPLY VERSÃO 4.00

Orientação a Objetos

Transcrição:

Módulo de Ampliação de Expressividade para a Ferramenta jbpm Aluno: Diorbert Corrêa Pereira Orientador: João Paulo A. Almeida

o o o o o o Processos de Negócio Visão geral: Workflow Resource Patterns A Ferramenta jbpm o Arquitetura o Módulos o Perspectiva de Regras Motivação Objetivo Resultados Parciais

A sequence of tasks that happen in a repeatable order executed by humans and/or systems to achieve a business goal jbpm Developer Guide Book

Como automatizar os processos de negócio?

Como automatizar os processos de negócio? BPMS

Modelagem Otimização Simulação Controle Execução

Criados pela iniciativa Workflow Patterns 43 padrões Subdivididos em 7 grupos: Creation, Push, Pull, Detour, Auto-Start, Visibility e Multiple Resource.

Criados pela iniciativa Workflow Patterns 43 padrões Subdivididos em 7 grupos: Creation, Push, Pull, Detour, Auto-Start, Visibility e Multiple Resource. Representam a expressividade relacionada à alocação de recursos humanos às tarefas

Exemplo de Expressividade 1 Actor Id: Krisv Actor Id: Krisv Realizar Inspeção Escrever Relatório Retain Familiar: A capacidade de alocar um item de trabalho dentro de um dado caso para o mesmo recurso que executou o item de trabalho anterior.

Exemplo de Expressividade 2 Actor Id: Mary Realizar Procedimento de Ponte de Safena Shortest Queue: A capacidade de alocar um item de trabalho para um recurso escolhido, dentre um determinado grupo, baseado na quantidade de itens de trabalho pendentes (menor fila de itens de trabalho).

Exemplo de Expressividade 3 Actor Id: Mary Analisar Relatórios de Desempenho Delegation: A capacidade de um recurso alocar um item de trabalho (não iniciado), anteriormente alocado para ele, para outro recurso.

Exemplo de Expressividade 3 Actor Id: Krisv Analisar Relatórios de Desempenho Delegation: A capacidade de um recurso alocar um item de trabalho (não iniciado), anteriormente alocado para ele, para outro recurso.

Criados pela iniciativa Workflow Patterns 43 padrões Subdivididos em 7 grupos: Creation, Push, Pull, Detour, Auto-Start, Visibility e Multiple Resource. Representam a expressividade relacionada à alocação de recursos humanos às tarefas Fornecem uma base de avaliação de ferramentas BPMS

Avaliação das Ferramentas Open Source jbpm 3.1.4 9 / 43 OpenWFE 1.7.3 13 / 43 Enhydra Shark 2 10 / 43 Avaliação das Ferramentas Comerciais Staffware 10 18 / 43 WebSphere MQ Workflow 3.4 20 / 43 FLOWer 3.51 24 / 43 COSA 5.1 30 / 43 iplanet 3.0 20 / 43

Avaliação das Ferramentas Open Source jbpm 3.1.4 9 / 43 OpenWFE 1.7.3 13 / 43 Enhydra Shark 2 10 / 43 Avaliação das Ferramentas Comerciais Staffware 10 18 / 43 WebSphere MQ Workflow 3.4 20 / 43 FLOWer 3.51 24 / 43 COSA 5.1 30 / 43 iplanet 3.0 20 / 43

Suíte BPM open-source Mantida pela comunidade jboss Conjunto de ferramentas para o gerenciamento de processos de negócio

jbpm Console Gerenciamento das instâncias dos processos de negócio

jbpm Console Gerenciamento das instâncias dos processos de negócio Visualização de relatórios de desempenho

jbpm Console Gerenciamento das instâncias dos processos de negócio Visualização de relatórios de desempenho Gerenciamento dos itens de trabalho (pessoais e de grupo)

Eclipse Editor Permite a modelagem de processos de negócio

Guvnor Repositório de Processos de Negócio Repositório de Task Forms Repositório de Regras Repositório de POJOs Permite a modelagem de processos de negócio

Integração com Drools Rule Constraints Rule Tasks

Rule Constraints LHS de um regra Drools

Exemplo: $processinstance : WorkflowProcessInstance() $p : Person( name == ( processinstance.getvariable("name") ) ) eval( $p.age > 18 )

Exemplo: $processinstance : WorkflowProcessInstance() $p : Person( name == ( processinstance.getvariable("name") ) ) eval( $p.age > 18 )

Rule Tasks Executa um conjunto de regras ao ser ativado O conjunto de regras é definido através do atributo RuleFlowGroup da tarefa

Rule Tasks ksession.fireallrules(): Permite que as regras sejam disparadas. Deve ser chamada antes de uma Rule Task. ksession.fireuntilhalt(): Permite que as regras sejam disparadas até que seja ordenado o contrário. Uma única chamada permite que Rule Tasks sejam ativadas sem a necessidade da chamada do método fireallrules().

Rule Tasks ATENÇÃO: O uso de fireuntilhalt() gera um bug conhecido quando utilizado em processos com persistência.

jbpm possui baixo suporte aos padrões A ampliação do suporte aos padrões representa o aumento da expressividade da ferramenta A integração da plataforma orientada a regras (Drools) a partir da versão 5.0 de jbpm fornece novas possibilidades de uso da ferramenta

Ampliar o suporte através do uso de regras

A avaliação da ferramenta jbpm realizada pela iniciativa Workflow Patterns se tornou obsoleta Reavaliação realizada (jbpm 5.2) constatando suporte a 17 dos 43 padrões Estudo de viabilidade da aplicação de regras para ampliação do suporte apontou 8 padrões em potencial

Foram necessárias classes adicionais para serem utilizadas como interface de configuração das Rule Tasks que executam os padrões 7 padrões já foram implementados

Detalhes de Implementação

Classe Controladora selecteduser Rule Task User Task

rule "Random Allocation" ruleflow-group "RandomAllocation" when $employees : ArrayList( size >= 1 ) from collect( Employee() ) $processinstance : WorkflowProcessInstance() then Random randomgenerator = new Random(); int index = randomgenerator.nextint($employees.size()); Employee employee = (Employee)$employees.get(index); $processinstance.setvariable("selecteduser",employee.getuserid()); end

rule "Capability Based Distribution" ruleflow-group "CapabilityBasedDistribution" when $processinstance : WorkflowProcessInstance() $manager : PatternsManager() $controller : CapabilityBasedDistributionController( comparetaskid( $manager.getcurrenttaskid($processinstance.getnodeinstances())) ) $employees : ArrayList( size >= 1) from collect( Employee( existscapability($controller.getcapabilities()) ) )

then Employee employee = null; String resourceslist = ""; for(int i = 0; i < $employees.size(); i++){ employee = (Employee)$employees.get(i); } if(i!= 0) resourceslist += ", "+employee.getuserid(); else resourceslist += employee.getuserid(); end $processinstance.setvariable("selecteduser",resourceslist);

rule "Shortest Queue" ruleflow-group "ShortestQueue" when $processinstance : WorkflowProcessInstance() $employees : ArrayList( size >= 1) from collect( Employee() )

then TaskManager client = new TaskManager("localhost",9123); Employee employee = null; Employee employeeselected = null; int shortestcount = 2147483647; int count = 0;

for(int index = 0; index < $employees.size(); index++){ employee = (Employee)$employees.get(index); count = client.getactivetaskscount(employee.getuserid()); } if(count < shortestcount){ shortestcount = count; employeeselected = employee; } $processinstance.setvariable("selecteduser",employeeselected.getuserid()); end

Obrigado pela atenção