38
Implementing SOA and BPM in your application Wiesław Pilarczyk [email protected] Ljubljana, 9.10.2008

[Pilarczyk] Adrenaline programing implementing - SOA and BPM in your application

Embed Size (px)

Citation preview

Page 1: [Pilarczyk] Adrenaline programing implementing - SOA and BPM in your application

Implementing SOA and BPM in your application

Wiesław Pilarczyk

[email protected]

Ljubljana, 9.10.2008

Page 2: [Pilarczyk] Adrenaline programing implementing - SOA and BPM in your application

9.10.2008 JavaBlend 2008, http://www.javablend.net/

Agenda

– Business requirements and software architectures

– SOA&BPM acronym soup

– Implementation using FOSS

– Example

Page 3: [Pilarczyk] Adrenaline programing implementing - SOA and BPM in your application

9.10.2008 JavaBlend 2008, http://www.javablend.net/

Business requirements

Support for all enterprise business areas ERP, CRM, ECM

Business process management BPM

Application integration EAI

Agile enterprises

Virtual projects

Globalization SAAS

Nonfunctional requirements

IT infrastructure management ITIL

Return on investment ROI

Page 4: [Pilarczyk] Adrenaline programing implementing - SOA and BPM in your application

9.10.2008 JavaBlend 2008, http://www.javablend.net/

Application Architecture today

Page 5: [Pilarczyk] Adrenaline programing implementing - SOA and BPM in your application

9.10.2008 JavaBlend 2008, http://www.javablend.net/

Do you know what is your process?

Page 6: [Pilarczyk] Adrenaline programing implementing - SOA and BPM in your application

9.10.2008 JavaBlend 2008, http://www.javablend.net/

BPM Vision

Ideas are cheap, implementation is hardThink big, make small steps

Page 7: [Pilarczyk] Adrenaline programing implementing - SOA and BPM in your application

9.10.2008 JavaBlend 2008, http://www.javablend.net/

Ontology

Before you start talking to me, define your words

(Aristotle paraphrase)

Specification of conceptualization

• OWL Web Ontology Language Protégé• SBVR Semantics of Business Vocabulary and Rules• Repositories of ontologies

Page 8: [Pilarczyk] Adrenaline programing implementing - SOA and BPM in your application

9.10.2008 JavaBlend 2008, http://www.javablend.net/

BPMN for business analysts

XPDL for model persistence (WfMC) BPDM Business Process Definition Metamodel (OMG) ActiveVOS from ActiveEndpoints, Intalio

Page 9: [Pilarczyk] Adrenaline programing implementing - SOA and BPM in your application

9.10.2008 JavaBlend 2008, http://www.javablend.net/

BPEL for implementers

• BPMN-BPEL mapping needed (serious model descrepancies)• BPEL4People• WS-HumanTask• ActiveBPEL from ActiveEndpoints

Page 10: [Pilarczyk] Adrenaline programing implementing - SOA and BPM in your application

9.10.2008 JavaBlend 2008, http://www.javablend.net/

Inside BPEL

Variables

WSDL Message

Schema ElementSchema Type

Structured Activities

flow pick

sequence forEach

if-else

scoperepeatUntil

while

sequence forEach

Basic

Activities

receive

reply

rethrow

exit

throwwait

compensate compensateScope

extensionActivity

empty

validate

assign

invoke

Handlers

event

handler

fault

handler

compensation

handler

termination

handlerCorrelation Sets

property 1

property 2

Partner Links

partnerLink 1

partnerLink 2

Page 11: [Pilarczyk] Adrenaline programing implementing - SOA and BPM in your application

9.10.2008 JavaBlend 2008, http://www.javablend.net/

ebXML (www.oasis-open.org)

Page 12: [Pilarczyk] Adrenaline programing implementing - SOA and BPM in your application

9.10.2008 JavaBlend 2008, http://www.javablend.net/

JBI – JSR 208

ServiceMix from Apache

Page 13: [Pilarczyk] Adrenaline programing implementing - SOA and BPM in your application

9.10.2008 JavaBlend 2008, http://www.javablend.net/

SCA

Tuscany from Apache, STP from Eclipse

Page 14: [Pilarczyk] Adrenaline programing implementing - SOA and BPM in your application

9.10.2008 JavaBlend 2008, http://www.javablend.net/

SOA Governance

Implementing SOA without a solid governance model is the equivalent to having an airport without a control tower.

* Not enough process creates chaos

* Too much process stifles innovation and deters agility

* Evolve governance over time

(Mike Kavis, CIO Magazine)

ebxmlrrMule GalaxyWSO2 Registry

Page 15: [Pilarczyk] Adrenaline programing implementing - SOA and BPM in your application

9.10.2008 JavaBlend 2008, http://www.javablend.net/

Web Services Registry (UDDI)

Provider

Page 16: [Pilarczyk] Adrenaline programing implementing - SOA and BPM in your application

9.10.2008 JavaBlend 2008, http://www.javablend.net/

SOA Reference Architecture

Presentation layer

Service coordination (orchestration, choreography)

Service virtualization and delivery

Standard services

Platform

Application

DesktopInternet

RIAMobile

Develo

pm

ent

Managem

entDedicated

services

Application Application

Page 17: [Pilarczyk] Adrenaline programing implementing - SOA and BPM in your application

9.10.2008 JavaBlend 2008, http://www.javablend.net/

Example Implementation

Presentation layer Seam/JBoss Portal

Service coordination layer (orchestration) jBPM

Service virtualization and delivery JBoss ESB

Standardservices

JBoss RulesReporting

MetamatrixPlatform JBoss AS

Application Application Application

DesktopInternet

RIAMobile

Develo

pm

ent

JB

oss D

evelo

per S

tudio

Managem

ent

JO

N

Dedicatedservices

RRichfaces/Ajax4jsf Mobicents

Page 18: [Pilarczyk] Adrenaline programing implementing - SOA and BPM in your application

9.10.2008 JavaBlend 2008, http://www.javablend.net/

Application using BPM and SOA

Page 19: [Pilarczyk] Adrenaline programing implementing - SOA and BPM in your application

9.10.2008 JavaBlend 2008, http://www.javablend.net/

BPM and SOA

Page 20: [Pilarczyk] Adrenaline programing implementing - SOA and BPM in your application

9.10.2008 JavaBlend 2008, http://www.javablend.net/

jPDL Process Editor

Page 21: [Pilarczyk] Adrenaline programing implementing - SOA and BPM in your application

9.10.2008 JavaBlend 2008, http://www.javablend.net/

ESB

Page 22: [Pilarczyk] Adrenaline programing implementing - SOA and BPM in your application

9.10.2008 JavaBlend 2008, http://www.javablend.net/

Composite Services

Page 23: [Pilarczyk] Adrenaline programing implementing - SOA and BPM in your application

9.10.2008 JavaBlend 2008, http://www.javablend.net/

Enterprise Integration

Patterns

www.eaipatterns.com

Page 24: [Pilarczyk] Adrenaline programing implementing - SOA and BPM in your application

9.10.2008 JavaBlend 2008, http://www.javablend.net/

ESB Services and Actions

Page 25: [Pilarczyk] Adrenaline programing implementing - SOA and BPM in your application

9.10.2008 JavaBlend 2008, http://www.javablend.net/

ESB Content Based Routing

Page 26: [Pilarczyk] Adrenaline programing implementing - SOA and BPM in your application

9.10.2008 JavaBlend 2008, http://www.javablend.net/

Rules Language

rule "Customer Platinum Status"

when

customer: Customer(status > 50)

order: OrderHeader(orderPriority == 3)

then

order.setOrderDiscount(8.5);

end

rule "Customer Gold Status"

when

customer: Customer(status > 10, status <= 50)

order: OrderHeader(orderPriority == 2)

then

order.setOrderDiscount(3.4);

end

Externalize Business Rules

Page 27: [Pilarczyk] Adrenaline programing implementing - SOA and BPM in your application

9.10.2008 JavaBlend 2008, http://www.javablend.net/

Rule Editor

Page 28: [Pilarczyk] Adrenaline programing implementing - SOA and BPM in your application

9.10.2008 JavaBlend 2008, http://www.javablend.net/

DSL

Page 29: [Pilarczyk] Adrenaline programing implementing - SOA and BPM in your application

9.10.2008 JavaBlend 2008, http://www.javablend.net/

Decision Tables Excel/OpenOffice)

Page 30: [Pilarczyk] Adrenaline programing implementing - SOA and BPM in your application

9.10.2008 JavaBlend 2008, http://www.javablend.net/

Aggregate applications - Portal

Page 31: [Pilarczyk] Adrenaline programing implementing - SOA and BPM in your application

9.10.2008 JavaBlend 2008, http://www.javablend.net/

Use what is available

Page 32: [Pilarczyk] Adrenaline programing implementing - SOA and BPM in your application

9.10.2008 JavaBlend 2008, http://www.javablend.net/

Control your infrastructure

RHQ http://www.rhq-project.org

Page 33: [Pilarczyk] Adrenaline programing implementing - SOA and BPM in your application

9.10.2008 JavaBlend 2008, http://www.javablend.net/

Management Console

Page 34: [Pilarczyk] Adrenaline programing implementing - SOA and BPM in your application

9.10.2008 JavaBlend 2008, http://www.javablend.net/

Management Console Dashboard

Page 35: [Pilarczyk] Adrenaline programing implementing - SOA and BPM in your application

9.10.2008 JavaBlend 2008, http://www.javablend.net/

Are you ready for it yet?

– BAM Business Activity Monitoring

– EDA, CEP Esper

Page 36: [Pilarczyk] Adrenaline programing implementing - SOA and BPM in your application

9.10.2008 JavaBlend 2008, http://www.javablend.net/

Business Process Maturity Model BPMM (OMG)

Level 1 Not coordinated just do it

applications

Level 2 Defined services increased effectivity

written instructions

Level 3 Defined processes automatization

Level 4 Process management better control

Level 5 Dynamic process full optimalization cycle:

optimalization define

implement

deploy

monitor

Page 37: [Pilarczyk] Adrenaline programing implementing - SOA and BPM in your application

9.10.2008 JavaBlend 2008, http://www.javablend.net/

Roadmap

Level 1 Not coordinated Application Server

applications

Level 2 Defined services ESB

written instructions

Level 3 Defined processes BPM

Level 4 Process management Rules

Level 5 Dynamic process BPMS

optimalization

Page 38: [Pilarczyk] Adrenaline programing implementing - SOA and BPM in your application

9.10.2008 JavaBlend 2008, http://www.javablend.net/

Q&A

Wiesław Pilarczyk

[email protected]