40
Welcome David RR Webber SOA Architect Integrity One Partners Model-Driven, Open Architecture BPM: Delivering Process-Driven, Dynamic Applications

Delivering Process-Driven, Dynamic Applications

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Delivering Process-Driven, Dynamic Applications

Welcome David RR Webber

SOA ArchitectIntegrity One Partners

Model-Driven, Open Architecture BPM:

Delivering Process-Driven,

Dynamic Applications

Page 2: Delivering Process-Driven, Dynamic Applications

2 April 21-23, 2008

Renaissance Washington, DC

Overview• Change is constant - How do we make self-

adaptive, smarter implementations that are better able to cope?

• How do we leverage and align standards based mechanisms and tools within our business processes to make them compatible?

• How does this fit into modern SOA approach?

• Ability to align business conceptual details with actual implementation through use of XML templates as intermediary common shared representation.

Page 3: Delivering Process-Driven, Dynamic Applications

3 April 21-23, 2008

Renaissance Washington, DC

“The devil is in the details”

• XML is multi-faceted – it can represent:– data (information exchanges)– rules– workflows and processes– forms and reports– configuration and control– semantics (metadata)– documents and contracts– multimedia and presentations

Page 4: Delivering Process-Driven, Dynamic Applications

4 April 21-23, 2008

Renaissance Washington, DC

Template Driven Approach

StaticConventional

Models, Artefacts, CodeWSDL,XSD,UML,XML

Analysis

Design

Coding

TestMaintenance

SW SW DEVELOPERSDEVELOPERS

Specification

Agile DynamicComponentsTEMPLATES

Adoption, integration

Installation

Implementation/Use

Needs

Requirements

Procurement

BUSINESS USERS

BPMN modelsExcel spreadsheetXML visualizationXML artifacts

DynamicDynamic

Page 5: Delivering Process-Driven, Dynamic Applications

5 April 21-23, 2008

Renaissance Washington, DC

Template Wizard runtime configuration

LibraryObject templates/Components

design time

FacetsQuestions / Data

Technology Targeting Syntax specific production rules

Partner / Component

Interface Agreement

builder + review / support /

completion workflow

11

33

44

XML22 Conceptual

Factors Stored

XMLXMLXMLXML

Solution Specific Syntax

55

Page 6: Delivering Process-Driven, Dynamic Applications

6 April 21-23, 2008

Renaissance Washington, DC

• Context is the pervasive driver to effective engineering

• Drives dynamic process configuring and control

• Ensures accurate information capture, packaging and delivery

• Key to correct relationships between partners in a collaboration

Lack of context control mechanisms is the most prominent reason why legacy business systems are difficult and complex to extend and support

Date: circa 15681 : the parts of a discourse that surround a word or passage and can throw light on its meaning2 : the interrelated conditions in which something exists or occurs

Date: circa 15681 : the parts of a discourse that surround a word or passage and can throw light on its meaning2 : the interrelated conditions in which something exists or occurs

Understanding about Context

Page 7: Delivering Process-Driven, Dynamic Applications

7 April 21-23, 2008

Renaissance Washington, DC

Context, role and use

• Context, context and context– Interoperability absolutely requires the software to

understand and apply context from the ground up in a consistent way that links to the external world functional needs – and that is not hard-coded into rigid software methods – but exposed across the information space

• Role and context– Role is a convenient way to group together context and

manage that for classes of functional users• Use based solutions

– This determines how and what results are expected given role and context that allows users to perform their business use cases effectively without information issues.

Page 8: Delivering Process-Driven, Dynamic Applications

8 April 21-23, 2008

Renaissance Washington, DC

Today’s SOA / Mashup’s have extended service model needs

Page 9: Delivering Process-Driven, Dynamic Applications

9 April 21-23, 2008

Renaissance Washington, DC

Common Data Issues

Information Security ManagementElectronic Document ManagementPoor and Inconsistent DocumentationData / Customer / Process IntegrationCollaboration and MessagingAuthentication TechnologiesStorage TechnologyRemote communication challengesSystem Development Life CycleChange ManagementSegregation of Duties

Exchange & Information Technology

Page 10: Delivering Process-Driven, Dynamic Applications

10 April 21-23, 2008

Renaissance Washington, DC

Solution / Problem Metrics

• Can I create a standard simple open format to describe my message structures and data content rules?

• Can my partners validate their transactions in test BEFORE they send them?

• How do people know what I will send them?• I want something that’s simple and standards

based – leverages existing XML components• Can I generate HTML documentation that is

readable by business analysts?

Page 11: Delivering Process-Driven, Dynamic Applications

11 April 21-23, 2008

Renaissance Washington, DC

Defining Information Services

Create Samples

RulesEditor

XML

AnalystTemplates

Samples

Develop

Verify

StructureRulesContextVocabulary

3

2

Rules

html

XML

Resultshtml

Publish

1

Detail Use Rules

Test Rules on Samples

4

Share Results

EnablingAgile Information Exchanges

Structure + Vocabulary

Rules + Context Templates

Verify Template Outcomes

Page 12: Delivering Process-Driven, Dynamic Applications

12 April 21-23, 2008

Renaissance Washington, DC

ContentAssemblyTemplate

Configure the Business Exchange

XMLinstance

structure(s)

Business context rules

+Content Reference rules

+Data Validation rules

+External Mapping rules

Logical business transaction can have more than one structure layout

can relate rules directly with structure

makeOptional()excludeTree()

item type="noun" name="Agency/@AgencyID" UIDReference="ukt000910"

<conditional expression="'//SupplierID' and lookup(value,'SGIRWSDL:supplierID_check')"

<MapRule output="type" input="Sales/Company/Year/Qtr/Product@type"/>

Simple Declarative Statements

BPMStep

transactiontemplate

OASIS Content Assembly Mechanism(CAM)

Page 13: Delivering Process-Driven, Dynamic Applications

13 April 21-23, 2008

Renaissance Washington, DC

Business Functionality• Simple and obvious domain solution templates

• Local deployment and simple change support

• Handling local context drivers and flexibility

• Opening up business integration rules so that partners can confirm their usage + validating

• HTML reporting of rules and layouts

• Processing content with open public specification and sharable rules base

OASIS Content Assembly Mechanism Specification:

http://wiki.oasis-open.org/camhttp://www.jcam.org.uk

Organization forAdvancement ofStructuredInformationStandards

Page 14: Delivering Process-Driven, Dynamic Applications

14 April 21-23, 2008

Renaissance Washington, DC

SOA, BPM and Data Services

TransportTransport

SecuritySecurity

Internet Infrastructure

DeliveryDelivery

Proc

ess

Proc

ess 33

22

55

Query / Response

WSDL

11

SOAP / http / https

Data Services

Data Services

44

Vocabulary / Semantics

Packaging / Encoding

XML / edi

Validation / Assembly

Mapping / Transform

XSD, CAM, Schematron

Business Model

ServiceAgreement

Context/ Roles

BusinessProcesses

Description

Msg ExchangeProfile

State & Context

Addressing / Envelope

Transactions

Coordination

Push / Pull

C A M

Page 15: Delivering Process-Driven, Dynamic Applications

15 April 21-23, 2008

Renaissance Washington, DC

Exchange Facilitation Needs

For business communities:– Ability to create sharable templates for

communities of practice that need consistent XML transaction handling definitions that are open and public.

For business data analysts:– Printable rule documentation support and features. – Example domain templates within communities of

practice – Supporting codelists implementation (Genericode).

For programmers:– XML content manipulation support and rules ( xslt,

XPath …)– Web services and SOA support

Page 16: Delivering Process-Driven, Dynamic Applications

16 April 21-23, 2008

Renaissance Washington, DC

Metrics of Information Sharing

To effectively exchange information, there must be a common semantic understanding of data among participants, and the data must be formatted in a consistent manner that matches the business process context

CommonLexicon

Page 17: Delivering Process-Driven, Dynamic Applications

17 April 21-23, 2008

Renaissance Washington, DC

Interoperability – what is it really?What it really is:

– Solve the business functional needs as the priority - ability for systems to accommodate each others functional requirements in a holistic and agile way so that users can maximize the business value obtained today and adapt that to tomorrows changing needs rapidly and easily

– Predictability – when the mechanisms being used are using known, consistent and extensible methodology

– Need to support semantically rich information (human), contextual mechanisms, and not just rigid lists of enforced content (machine)

– Reduce collaboration and adoption costs by making exchanges quick and easy to build and self-adaptive – cost is barrier to interoperability

– Ability to support routing and intermediary services with views of exchange content based on role and use context

How do you get there?

Page 18: Delivering Process-Driven, Dynamic Applications

18 April 21-23, 2008

Renaissance Washington, DC

Example: NIEM XSD Reference Architecture

Exchange xmlExchange xml

*Exchange xsd*Exchange xsd

*Extension xsd*Extension xsd

*Code listxsd

Namespace

* Optional

XML Schema

NIEM xsd subsetNIEM xsd subset *Constraint xsd*Constraint xsd

IEPDs have their own target

namespaces

IEPDs have their own target

namespaces

ConstraintValidationConstraintValidation

ConformanceValidation

ConformanceValidation

NIEM = National Information Exchange Model (www.niem.gov) for DOJ/DHS

Page 19: Delivering Process-Driven, Dynamic Applications

19 April 21-23, 2008

Renaissance Washington, DC

Domain-specific XML Schemas

NIEM – a comprehensive model of all entities of interest in government domain– Defines terms shared between various agencies:

persons, places, things

LEXS – information-sharing protocols and messages, with NIEM as foundation– Establishes patterns of requests and responses– Provides structure around NIEM data elements

Page 20: Delivering Process-Driven, Dynamic Applications

20 April 21-23, 2008

Renaissance Washington, DC

Page 21: Delivering Process-Driven, Dynamic Applications

21 April 21-23, 2008

Renaissance Washington, DC

Versioning Challenges

• If the schema version changes – how to ensure it does not break our in place validations?

• How to rapidly adapt to rule changes in a production environment?

• How to develop user context driven deep version control and re-use of sub-components?

• Enhance and automate Test release cycle by improving transparency for bug fix process and expose change deltas to speed testing process? Support for regression testing?

Page 22: Delivering Process-Driven, Dynamic Applications

22 April 21-23, 2008

Renaissance Washington, DC

Problem: XSD is non-deterministic!

• XSD does not have direct context mechanisms• The schema contains the superset of every

exchange component variation• People make everything in schema optional• Dependencies are not clear• It is difficult to understand the constructs and to

document the rules clearly for business users to verify

• It is hard to create test cases and instances (the “want list” tough to visualize)

• Disconnect between XML data types and legacy data – e.g. dates, telephone formats, post codes

Page 23: Delivering Process-Driven, Dynamic Applications

23 April 21-23, 2008

Renaissance Washington, DC

Consequences for Interoperability

• Multiple WSDL’s introduces risk that services won’t talk to each other

• Bypassing validation permits exchange of incorrect documents

• Propagation of incorrect documents in the system pushes problems to the perimeter

• User interfaces in each participating system must adapt to proliferating special cases

Page 24: Delivering Process-Driven, Dynamic Applications

24 April 21-23, 2008

Renaissance Washington, DC

What makes something Agile?

Re-usable methods that can be applied to many areas– Based on open standards and approach; not proprietary

Context and role driven and aware– This allows tailoring to specific profiles and use pattern templates dynamically

Self-adaptive– When requirements change can be adjusted on-the-fly in real time

Fault tolerant and not brittle– Ability to ignore non-critical interchange items and especially not to fail for trivial

reasons or slight version nuances

– Leveraging XML capabilities to make self-describing transactions possible rather than static fixed legacy exchanges

Able to support new uses without extensive reprogramming– Usage patterns set via external configuration allowing broad but controlled uses

Page 25: Delivering Process-Driven, Dynamic Applications

25 April 21-23, 2008

Renaissance Washington, DC

Extract XSD to Assembly Template

Exchange xmlExchange xml

*Exchange xsd*Exchange xsd

*Extension xsd*Extension xsd

*Code listxsd

Namespace

* Optional

XML Schema

NIEM xsd subsetNIEM xsd subset *Constraint xsd*Constraint xsd

EXTRACTEXTRACT

Structure

Rules

Documentation

XSD 2 CAMXSLT Tools

XSD 2 CAMXSLT Tools

Page 26: Delivering Process-Driven, Dynamic Applications

26 April 21-23, 2008

Renaissance Washington, DC

Example Generation – OASIS EDXL

Structure

Declarative Rules

XSLT

XPath structure flexibility

Assertion logic

Page 27: Delivering Process-Driven, Dynamic Applications

27 April 21-23, 2008

Renaissance Washington, DC

Example Generated Documentation

EnhancedData typeLogic

Better code listhandling

Clear use pattern

XPath functions

Page 28: Delivering Process-Driven, Dynamic Applications

28 April 21-23, 2008

Renaissance Washington, DC

CAM - Just re-shuffled syntax?

• If we built the CAM template directly from the XSD how can we have added rules value?

• CAM validation significantly more capable and agile than rigid XSD parsing:– XPath based assertions– 30 added functions add control – Mask functions better content matching– Context mechanism allows adaptive rules/structure– Cross-dependencies– Enhanced code list handling– Flexible error handling and reporting

• CAM syntax exposes logic for human verification

Page 29: Delivering Process-Driven, Dynamic Applications

29 April 21-23, 2008

Renaissance Washington, DC

Value Proposition - Deterministic

• Making XML transaction handling simpler and predictable

• Quick and easy rule/example building from sample XSD

• Extends and clarifies your existing XSD schema structures

• Enabling more robust fault tolerant processing + versioning

• Providing open sharable templates and documentation

• Re-use easier through support for includable components

• Ability to integrate to business processes and context

• Open source, open public standard toolkit – editor + engine

Page 30: Delivering Process-Driven, Dynamic Applications

30 April 21-23, 2008

Renaissance Washington, DC

Eclipse CAM Editor

1

2

3

4

5

Available structures

Structure Rule Viewer

Rule Details

Results Viewer

ValidationProcess

Page 31: Delivering Process-Driven, Dynamic Applications

31 April 21-23, 2008

Renaissance Washington, DC

How does CAM work?

• CAM uses WYSIWYG approach to XML

• Starting with your XML structure layout makes template

from that + default data content model

• Next – add your structure use rules – optional / repeatable,

date fields, allowed values, lookups

• Then make context business rules – cross field use rules,

exclude, include, variables

• Save template – run against samples

• Eclipse editor tool makes this all easy to do!

• Deploy to production using jCAM processor

Page 32: Delivering Process-Driven, Dynamic Applications

32 April 21-23, 2008

Renaissance Washington, DC

Modelling & Simulation Testing ScenarioEmergency Response Services Workflow using OASIS EDXL exchanges

Page 33: Delivering Process-Driven, Dynamic Applications

33 April 21-23, 2008

Renaissance Washington, DC

Conceptual View of EDXL transaction

Transaction

Templates

StructureRulesContext3

2

Use Rules

html

XML

Reportshtml

Publish

1

Common Details

Rules

4

Share Details

Address

Facility

Contact

Vehicles

Emergency

Resources

Activity

Content Rules

Lookup Values

Context

VersioningResources

Page 34: Delivering Process-Driven, Dynamic Applications

34 April 21-23, 2008

Renaissance Washington, DC

Illustrative EDXL requirements

When Admissions Total > 50– AND Deaths > 0

When AdultICU Bed type > 0– AND Triage Quantity > 5

Require Facility State = CA, NV, NM

Page 35: Delivering Process-Driven, Dynamic Applications

35 April 21-23, 2008

Renaissance Washington, DC

CAM rules syntax

<as:BusinessUseContext> <as:Rules> <as:default> <as:context>

<as:constraint condition="//Activity24Hr /Admissions > 50 and( // Activity24Hr /Deaths > 0)" action="restrictValues(//

Activity24Hr /Admissions, ‘Alert – possible outbreak’) "/>

<as:constraint action="restrictValues(//ns5:AdministrativeArea /ns5:NameElement , 'CA|NV|NM')"/>

</as:context> </as:default> </as:Rules> </as:BusinessUseContext>

Page 36: Delivering Process-Driven, Dynamic Applications

36 April 21-23, 2008

Renaissance Washington, DC

CAM Summary• XSD to CAM template extraction via XSLT makes quick

adoption and low learning curve• CAM templates provide agile mechanisms to enhance

control over information exchanges• Context mechanisms support BPM techniques and

tailoring handling to match processing needs• Better documentation support for human verification• Link templates to partner agreements and use patterns• More flexible versioning and non-brittle handling• Test suites and conformance checking with regression

testing and deterministic rule based examples • Open public standard and open source implementation• Sharable public templates for partner collaboration

Page 37: Delivering Process-Driven, Dynamic Applications

37 April 21-23, 2008

Renaissance Washington, DC

Process Driven Dynamic Applications

• Templates provide linkage between business needs and software mechanics

• Semantics can be morphed into different renderings depending on interfacing needs– Validation scripts– Forms logic– Data storage and sharing– Workflow steps– HTML documentation

• Exploiting agile adaptable mechanisms using XML

Page 38: Delivering Process-Driven, Dynamic Applications

38 April 21-23, 2008

Renaissance Washington, DC

Questions?

Page 39: Delivering Process-Driven, Dynamic Applications

39 April 21-23, 2008

Renaissance Washington, DC

www.jcam.org.uk

wiki.oasis-open.org

www.oasis-open.org/committees/cam

docs.oasis-open.org/cam

www.oasis-open.org/committees/emergency www.niem.gov

Resources:

Page 40: Delivering Process-Driven, Dynamic Applications

40 April 21-23, 2008

Renaissance Washington, DC

Thank You!David RR WebberSOA ArchitectIntegrity One Partners

Contact Information:[email protected]