Top Banner
PRM - a solution for business process management Ciarán Bryce Chrislain Razafimahefa
34

1 PRM - a solution for business process management Ciarán Bryce Chrislain Razafimahefa.

Dec 19, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 1 PRM - a solution for business process management Ciarán Bryce Chrislain Razafimahefa.

1

PRM - a solution for business process management

Ciarán Bryce

Chrislain Razafimahefa

Page 2: 1 PRM - a solution for business process management Ciarán Bryce Chrislain Razafimahefa.

2

Definition of a Process

“A general method of doing something, involving steps or operations which are usually ordered

and/or interdependent.”

E.g., in manufacturing, organizations, software development, etc.

“A business process is a set of linked activities that create value by transforming an input into a

more valuable output. Both input and output can be artifacts and/or information and the

transformation can be performed by human actors, machines, or both”.

Page 3: 1 PRM - a solution for business process management Ciarán Bryce Chrislain Razafimahefa.

3

Why Processes are Important

Information system is subject to technical, organizational and legal constraints

Organizational examples

Applying patches and measuring effectiveness of patches,

Analyzing user behavior for application preferences and evolution of system

Ensuring people who need documents have access

Legal examples

Document archival for Sarbanes Oxley

Digital Restrictions Management (e.g., for software licensing)

Personal Data protection

Page 4: 1 PRM - a solution for business process management Ciarán Bryce Chrislain Razafimahefa.

4

Why Processes are Important

Technical solutions have limited significance

E.g., Most effective anti-virus is coherent and rigorous patching policy

Information system is an organizational bottleneck

To be agile, need to abstract IT to match roles and objectives of organization

IT Challenge is integration - companies need architects, not programmers

Formal description of process permits

Comparison, optimisation and analysis, for business continuity and business intelligence

Foundation for information system deployment

Plan for urbanization of information systems

Page 5: 1 PRM - a solution for business process management Ciarán Bryce Chrislain Razafimahefa.

5

Application Process

Defined as Code base Set of activities working towards precise goal

Actors involved Programmer, user Programmer, manager, operator, certifier, client, user, etc.

Role in organization Asset Expresses business or organizational model

Reliability/AvailabilityFault Tolerance

(software and hardware faults)

Business Continuity

(Bird flu, computer failure, stock market crash)

Security Cryptography, access control, etc.

Employee screening, key management, SOX compliance, etc.

Efficiency CPU cycles, memory space, etc. Man-hours, cost, sales, business intelligence.

Process versus Application (for benefit of “computer scientists”)

Page 6: 1 PRM - a solution for business process management Ciarán Bryce Chrislain Razafimahefa.

6

Example of Motivation for Process Support

… and challenges

The EDOS Project - improving the quality of an open source

distribution

Partners include: Mandriva, Paris 6, University of Tel Aviv, INRIA,

University of Geneva.

2004 - 2007

Page 7: 1 PRM - a solution for business process management Ciarán Bryce Chrislain Razafimahefa.

7

Ian Murdock, creator of the Debian projec

Background

“Linux is not a product. Rather, Linux is a collection of software components, individually crafted by

thousands of independent hands around the world, with each component changing and evolving on

its own independent timetable. …. Linux is not a product. It is a process.”

Ian Murdock, founder of the Debian project.

The more F/OSS users, the better! …. In principle.

Page 8: 1 PRM - a solution for business process management Ciarán Bryce Chrislain Razafimahefa.

8

Background

Building a distribution involves

Producing and Collecting software

Configuring/compiling with respect to the dependencies

Quality Assurance (Testing)

Distributing to clients : boxes and download

These activities are currently tackled separately

List is not exhaustive, e.g.,

Training of developers

Scouting for clients

….

All part of the F/OSS process

Page 9: 1 PRM - a solution for business process management Ciarán Bryce Chrislain Razafimahefa.

9

F/OSS Environment

Community

Package

Version

Test

Bug

Role

Documentation

Metric

Process

Platform

Configuration

Distribution

Feedback

Project

ReleaseApplication

Need for a transversal view of whole F/OSS process

Def

ects

Man

agem

ent

Pro

du

ctio

n M

anag

emen

t

Dep

end

ency

Man

agem

ent

Dis

trib

uti

on

Man

agem

ent

Pro

ject

s M

anag

emen

t

Tes

ts M

anag

emen

t

Ro

les

Man

agem

ent

Act

ivit

y M

anag

emen

t

Page 10: 1 PRM - a solution for business process management Ciarán Bryce Chrislain Razafimahefa.

10

F/OSS Process

Lack of activity coordination and performance metering leads to process inefficiency

Structured process management leads to improvement, e.g. in F/OSS,

Ontology activity that defines and binds attributes to actors and resources for more flexible look-

up, e.g.,

Find package that has been tested on Mandrivalinux 10.1 with Ethernet card enabled

Find developer with experience in cryptography and Java programming

Find someone willing to act as a secondary server administrator

Page 11: 1 PRM - a solution for business process management Ciarán Bryce Chrislain Razafimahefa.

11

Process Reference Model (version 1)

Represents the main data types used in a F/OSS process

Represents content and community in a uniform manner

Models management of any activity in the F/OSS Process

Models evolution of projects, i.e., addition and integration of new activities

The PRM provides a model of F/OSS artifacts and activities that manage these artifacts

Format of PRM: formal model and Java kernel & API

Page 12: 1 PRM - a solution for business process management Ciarán Bryce Chrislain Razafimahefa.

12

PRM Model

The Information model binds meta-data (attributes) to artifacts

Used to lookup artifacts

E.g., find Java packages with RSA implementations

Lookup takes attribute Boolean algebra expressions

E.g., find Java cryptography packages from official mirror servers or trusted peers

Substitutability

“Best match” semantics in look-up

The model also defines primitives to create and lookup artifacts based on attributes

These enable F/OSS activities to be coordinated

E.g., pipeline all reported errors on package to competent developer

Lookup blocks until create of artifact with matching attributes

Page 13: 1 PRM - a solution for business process management Ciarán Bryce Chrislain Razafimahefa.

13

Et cetera

Conflicts

Dependencies

Target architectureInterests

TypeCompetences

VersionKnowledge

LicenseContact Information

Unit of ContentActor

Examples of Attributes

Actors and content are equally important to process

Code and documentation are equally important

Page 14: 1 PRM - a solution for business process management Ciarán Bryce Chrislain Razafimahefa.

14

Structure of PRM

Page 15: 1 PRM - a solution for business process management Ciarán Bryce Chrislain Razafimahefa.

15

Core PRM Elements represent the minimal set of Artifacts for handling

Community, Projects, Resources, Responsibilities, Measurement, Etc.

Artifacts

Managed by PRM activities

Located via attributes

Inte

grity

Rul

eIn

tegr

ity R

ule

Tas

kT

ask

Eve

ntE

vent

Pro

cess

Pro

cess

Act

orA

ctor

Met

ricM

etric

Art

ifact

Art

ifact

Rig

htR

ight

Pro

ject

Pro

ject

PRM Elements

Act

ivity

Act

ivity

Log

Log

Rol

eR

ole

PRM Elements

Page 16: 1 PRM - a solution for business process management Ciarán Bryce Chrislain Razafimahefa.

16

Evolution ? New Activity=

Inte

grity

Rul

eIn

tegr

ity R

ule

Tas

kT

ask

Eve

ntE

vent

Pro

cess

Pro

cess

Act

orA

ctor

Met

ricM

etric

Art

ifact

Art

ifact

Rig

htR

ight

Pro

ject

Pro

ject

Act

ivity

Act

ivity

Log

Log

Rol

eR

ole

Act

iviti

es

Man

agem

ent

Act

iviti

es

Man

agem

ent

Tas

k M

anag

emen

tT

ask

Man

agem

ent

Eve

nt M

ana

gem

ent

Eve

nt M

ana

gem

ent

Pro

cess

Man

agem

ent

Pro

cess

Man

agem

ent

Com

mun

ity M

anag

emen

tC

omm

unity

Man

agem

ent

Met

rics

Man

agem

ent

Met

rics

Man

agem

ent

Art

ifact

Man

age

men

tA

rtifa

ct M

anag

em

ent

Rig

hts

Man

age

men

tR

ight

s M

anag

em

ent

Pro

ject

Man

agem

ent

Pro

ject

Man

agem

ent

PRM Activities

Log

s M

anag

emen

tLo

gs

Man

agem

ent

Rol

e M

ana

gem

ent

Rol

e M

ana

gem

ent

Core PRM Activities

An activity defines a set of operations that manage artifacts and integrity rules

Page 17: 1 PRM - a solution for business process management Ciarán Bryce Chrislain Razafimahefa.

17

Interaction withPRM ElementsInteraction withPRM Elements

ApplicationApplication

Activity 1Activity 1

Impl

emen

tatio

n 1

Impl

emen

tatio

n 1

PRM ModelActivity 2Activity 2 Activity 3Activity 3

Impl

emen

tatio

n 2

Impl

emen

tatio

n 2

Impl

emen

tatio

n 3

Impl

emen

tatio

n 3

PRM Activity Interaction

Challenge in implementing processes is handling legacy code

Applications and Activity implementations have to communicate through the interfaces provided

by the Activities

Default Javaimplementation

for each core activity

Page 18: 1 PRM - a solution for business process management Ciarán Bryce Chrislain Razafimahefa.

18

Examples of PRM Operations

Artifact Management

registerArtifactType(Type)

newArtifact(Type, Value Directory, Project) Artifact

lookup(Directory, Project) Setof Artifact

exists(Artifact) Boolean

substitutable(Artifact, Artifact) Boolean

Activity Management

declareActivity(Name, Code, Integrity Rules) Activity

lookup(Directory) Setof Artifact

exists(Activity) Boolean

isAssociated(Activity, Project) Boolean

Page 19: 1 PRM - a solution for business process management Ciarán Bryce Chrislain Razafimahefa.

19

Metrics handling

Fundamental goal of process infrastructure is to measure and meter activities

Individual activities can have metrics (e.g., number of bug reports per package)

Or are bound to specific implementation tools

Challenge is to convert metrics to KPIs

e.g., productivity, relation rainfall to code bugs, etc.

Page 20: 1 PRM - a solution for business process management Ciarán Bryce Chrislain Razafimahefa.

20

Handling metrics through the PRM

Creation

new Metric(description, viewpoint, metric set[], occurrence, execution)

Lookup

find(directory) Setof Metric

Evaluation

evaluate(project, Metric) value

Observation

observe(Project, Metric, Value) waits for event (metric value reached)

Page 21: 1 PRM - a solution for business process management Ciarán Bryce Chrislain Razafimahefa.

21

Current Work

Clearly distinguish process basics from the F/OSS example

Define Web support

BPMN graphic language to express processes

Page 22: 1 PRM - a solution for business process management Ciarán Bryce Chrislain Razafimahefa.

22

Page 23: 1 PRM - a solution for business process management Ciarán Bryce Chrislain Razafimahefa.

23

Why EJB 3.0?

Support for persistence and query via JPA, and Web service access via SOAP

Why Ajax

Navigator client for manipulating BPMN process descriptions.

Client Server

Ajax

JSF

EJB 3.0(JPQL)

SOAP ?BPMN

Technology Choices

Page 24: 1 PRM - a solution for business process management Ciarán Bryce Chrislain Razafimahefa.

24

Mapping the PRM to EJB 3.0

Design Choices

Page 25: 1 PRM - a solution for business process management Ciarán Bryce Chrislain Razafimahefa.

25

Why EJB 3.0 ?

Information Systems are built over existing database infrastructures

EJB facilitates mapping to relational DB world

Caters for transactions and security

Caters for SOAP access for Web service middle layer

EJB 3.0 is much improved over EJB 2.x

Because this is what people use!

Design Choice

EJB is an option for the PRM. The client can request the default implementation or

use the EJB implementation

-default or -ejb

Currently using MySQL and JBoss

Page 26: 1 PRM - a solution for business process management Ciarán Bryce Chrislain Razafimahefa.

26

Mapping the PRM to EJB 3.0

PRM EJB 3.0 Comment

Artifact Entity

Attribute Property Not all properties are attributes

Activity Session Bean Retains entity characteristics

Expression, Directory and Query

JPA Query in both JPQL and SQL

Extended to attributes

Process Session Bean Retains @Attribute characteristics

Role Role Entity

Right Right Entity

Task Transaction (?) Retains @Attribute characteristics

Page 27: 1 PRM - a solution for business process management Ciarán Bryce Chrislain Razafimahefa.

27

J2EE Integration

ORM

Mapping artifacts to database and empowering the lookup query

Entity bean attributes can include @Attribute annotation

ArtifactActivity.lookup takes JPQL and SQL statements as argument

Each core artifact type has an entity (bean) implementation type

Page 28: 1 PRM - a solution for business process management Ciarán Bryce Chrislain Razafimahefa.

28

The Process Description Language

Groovy like language

Implemented using JavaCC; process specifications compiled to Java

Page 29: 1 PRM - a solution for business process management Ciarán Bryce Chrislain Razafimahefa.

29

Producer and Consumer Processes

process BalloonProcessDescriptionstart activity.ProductionActivitylog("Running Balloon Process" "\n")

defProject ballooning {name = "Balloon Fun" description = "Simple example of how a process is declared and

executed using the PRM"topics = { bursting making blowing }

}defActor ciaran {

name = "Ciaran"email = "[email protected]"interests = ballooning{making bursting}

}defActor michel {

name = "Michel"email = "[email protected]"interests = ballooning{blowing}

}defRole CoreRole {

description = "Basic Rights"operations = ProductionActivity{consumeBalloons

detectStockLevel createBalloon numberOfBalloons signalStockLevel}

}ProjectManager->addActor(ciaran, ballooning)ProjectManager->addActor(michel, ballooning)ActorManager->addRole(michel, CoreRole)ActorManager->addRole(ciaran, CoreRole)

metricExp = new BalloonKPI()log("Metric expression defined; its type is " metricExp.getClass() "\n")

defMetricViewPoint metricViewPoint {topics = ballooning{making blowing}activities = { ProductionActivity }description = "A simple metric that helps show how metrics work!"}

defOperationalMetric metric {name = "SimpleKPI"description = "Testing the operational metrics"from = todayto = 24-12-2009expr = metricExpviewpoint = metricViewPointoperation = ProductionActivity{consumeBalloons}project = ballooning}

log("Metric installed: " metric.getName() "\n")defTask prod {

actor = ciaranproject = ballooningprocess = Producer}

defTask cons {actor = michelproject = ballooningprocess = Consumer}

prod.execute()cons.execute()log("Initiated Balloon Process" "\n")

end

Page 30: 1 PRM - a solution for business process management Ciarán Bryce Chrislain Razafimahefa.

30

Producer and Consumer Processes

/* * The Consumer process consumes balloons in different sizes. * * Whenever there are no balloons in stock of the request size, it raises * an event for the production process to intercept and handle by * producing new balloons. */

process Consumer does "Balloon Consumption"

log("Producer is running ..." "\n")

rnd = new Random()while ( true ) {

sleep 2 secondsnum = rnd.nextInt(10)num++size = rnd.nextInt(10)size++log("Comsuming " num " balloons of size " size)balloons = ProductionActivity->consumeBalloons(size, num)log(" ... found " balloons.size() "\n")if ( balloons.size() == 0 )

ProductionActivity->signalStockLevel(0, size)}

end

/* * The Producer process produces new balloons in sizes ranging * from 1 to 10. There is up to 100 balloons in stock at any moment,* 10 in each size. * * This process waits for an event that indicates that the stock for some * sized balloon has run out. On receipt of that event, it produces 10 * new balloons in that size. */

process Producer does "Balloon Production"

log("Producer is running ..." "\n")

text = "Balls Inc."license = new License(text)for ( i in 1 to 100 )

ProductionActivity->createBalloon(license, ( (i % 10) + 1 ) )

log("Producer: Size of stock is " ProductionActivity-> numberOfBalloons() "\n")

while ( true ) {balloonSize = ProductionActivity->detectStockLevel(0)for ( i in 1 to 10 )

ProductionActivity->createBalloon(license, balloonSize)

log("Producer: created 10 " balloonSize "-sized balloons" "\n")}

end

Page 31: 1 PRM - a solution for business process management Ciarán Bryce Chrislain Razafimahefa.

31

Towards a graphical language

Just some wild ideas for Ajax …

Page 32: 1 PRM - a solution for business process management Ciarán Bryce Chrislain Razafimahefa.

32

PDL - Basic Structural Unit : the frame

Sam

Container fordefinition andexecution ofprocess units

Actormanipulating

this frame

Click tochange actor

Actor ManagerActor Manager

Process ManagerProcess Manager

Metric ManagerMetric Manager

Role ManagerRole Manager

Task ManagerTask Manager

Viewselector

Page 33: 1 PRM - a solution for business process management Ciarán Bryce Chrislain Razafimahefa.

33

PDL - Actor Frame

Sam

Actor ManagerActor Manager

Process ManagerProcess Manager

Metric ManagerMetric Manager

Role ManagerRole Manager

Task ManagerTask Manager

Name

Contact Information

Simpledata

declaration

Databaseof actors

Experience

Page 34: 1 PRM - a solution for business process management Ciarán Bryce Chrislain Razafimahefa.

34

PDL - Project Frame

Sam

Actor ManagerActor Manager

Process ManagerProcess Manager

Metric ManagerMetric Manager

Project ManagerProject Manager

Task ManagerTask Manager

Name

Description Topics

Databaseof projects