Delivering Process-Driven, Dynamic Applications

50 %
50 %
Information about Delivering Process-Driven, Dynamic Applications

Published on April 22, 2008

Author: TransformationInnovation

Source: slideshare.net

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

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.

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.

“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

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

Template Driven Approach Analysis Design Coding Test Maintenance SW DEVELOPERS Specification Agile Dynamic Components TEMPLATES Adoption, integration Installation Implementation /Use Needs Requirements Procurement BUSINESS USERS BPMN models Excel spreadsheet XML visualization XML artifacts Dynamic Static Conventional Models, Artefacts, Code WSDL,XSD,UML,XML

Template Wizard runtime configuration Library Object templates/Components design time Facets Questions / Data Technology Targeting Syntax specific production rules Partner / Component Interface Agreement builder + review / support / completion workflow 1 3 4 XML 2 Conceptual Factors Stored XML XML XML XML Solution Specific Syntax 5

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 Understanding about Context Lack of context control mechanisms is the most prominent reason why legacy business systems are difficult and complex to extend and support Date: circa 1568 1 : the parts of a discourse that surround a word or passage and can throw light on its meaning 2 : the interrelated conditions in which something exists or occurs

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

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.

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.

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

Common Data Issues Information Security Management Electronic Document Management Poor and Inconsistent Documentation Data / Customer / Process Integration Collaboration and Messaging Authentication Technologies Storage Technology Remote communication challenges System Development Life Cycle Change Management Segregation of Duties Exchange & Information Technology

Information Security Management

Electronic Document Management

Poor and Inconsistent Documentation

Data / Customer / Process Integration

Collaboration and Messaging

Authentication Technologies

Storage Technology

Remote communication challenges

System Development Life Cycle

Change Management

Segregation of Duties

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?

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?

Defining Information Services Create Samples Rules Editor XML Analyst Templates Samples Develop Verify Structure Rules Context Vocabulary 3 2 Rules html XML Results html Publish 1 Detail Use Rules Test Rules on Samples 4 Share Results Enabling Agile Information Exchanges Structure + Vocabulary Rules + Context Templates Verify Template Outcomes

Configure the Business Exchange Content Assembly Template XML instance 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=&quot;noun&quot; name=&quot;Agency/@AgencyID&quot; UIDReference=&quot;ukt000910&quot; <conditional expression=&quot;'//SupplierID' and lookup(value,'SGIRWSDL:supplierID_check')&quot; <MapRule output=&quot;type&quot; input=&quot;Sales/Company/Year/Qtr/Product@type&quot;/> Simple Declarative Statements BPM Step transaction template OASIS Content Assembly Mechanism (CAM)

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/cam http://www.jcam.org.uk Organization for Advancement of Structured Information Standards

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

SOA, BPM and Data Services Transport Security Delivery Process 3 2 5 1 Data Services 4 C A M Internet Infrastructure Query / Response WSDL SOAP / http / https Vocabulary / Semantics Packaging / Encoding XML / edi Validation / Assembly Mapping / Transform XSD, CAM, Schematron Business Model Service Agreement Context / Roles Business Processes Description Msg Exchange Profile State & Context Addressing / Envelope Transactions Coordination Push / Pull

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

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

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 Common Lexicon

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

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?

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?

Example: NIEM XSD Reference Architecture Exchange xml *Exchange xsd *Extension xsd Namespace * Optional NIEM xsd subset *Constraint xsd IEPDs have their own target namespaces Constraint Validation Conformance Validation NIEM = National Information Exchange Model (www.niem.gov) for DOJ/DHS *Code list xsd XML Schema

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

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

 

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?

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?

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

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

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

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

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

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

Extract XSD to Assembly Template EXTRACT Structure Rules Documentation XSD 2 CAM XSLT Tools Exchange xml *Exchange xsd *Extension xsd *Code list xsd Namespace * Optional XML Schema NIEM xsd subset *Constraint xsd

Example Generation – OASIS EDXL Structure Declarative Rules XSLT XPath structure flexibility Assertion logic

Example Generated Documentation Enhanced Data type Logic Better code list handling Clear use pattern XPath functions

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

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

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

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

Eclipse CAM Editor 1 2 3 4 5 Available structures Structure Rule Viewer Rule Details Results Viewer Validation Process

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

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

Modelling & Simulation Testing Scenario Emergency Response Services Workflow using OASIS EDXL exchanges

Emergency Response Services Workflow using OASIS EDXL exchanges

Conceptual View of EDXL transaction Transaction Templates Structure Rules Context 3 2 Use Rules html XML Reports html Publish 1 Common Details Rules 4 Share Details Address Facility Contact Vehicles Emergency Resources Activity Content Rules Lookup Values Context Versioning Resources

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

When Admissions Total > 50

AND Deaths > 0

When AdultICU Bed type > 0

AND Triage Quantity > 5

Require Facility State = CA, NV, NM

CAM rules syntax <as:BusinessUseContext> <as:Rules> <as:default> <as:context> <as:constraint condition=&quot;//Activity24Hr /Admissions > 50 and( // Activity24Hr /Deaths > 0)&quot; action=&quot;restrictValues(// Activity24Hr /Admissions, ‘Alert – possible outbreak’) &quot;/> <as:constraint action=&quot;restrictValues(//ns5:AdministrativeArea /ns5:NameElement , 'CA|NV|NM')&quot;/> </as:context> </as:default> </as:Rules> </as:BusinessUseContext>

<as:BusinessUseContext>

<as:Rules>

<as:default>

<as:context>

<as:constraint condition=&quot;//Activity24Hr /Admissions > 50

and( // Activity24Hr /Deaths > 0)&quot; action=&quot;restrictValues(// Activity24Hr /Admissions, ‘Alert – possible outbreak’) &quot;/>

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

</as:context>

</as:default>

</as:Rules>

</as:BusinessUseContext>

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

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

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

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

Questions?

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:

Thank You! David RR Webber SOA Architect Integrity One Partners Contact Information: 703.581.6500 [email_address]

David RR Webber

SOA Architect

Integrity One Partners

Contact Information:

703.581.6500

[email_address]

Add a comment

Related presentations

Related pages

Case management | Software AG

Software AG's webMethods AgileApps Platform is a powerful platform for delivering process-driven ... dynamic business process ... case management applications.
Read more

Delivering Dynamic Content Solutions using XML - PubExp12

Delivering Dynamic Content Solutions using XML - PubExp12 Oct 18, 2014 Technology ...
Read more

Products - Trinity Wave

... BizFlow® has been the leading BPM Suite for delivering process-driven ... dynamic business applications ... process-driven applications ...
Read more

BPM Workflow Software, Business Process Management ...

... ATPATH BPM has been the comprehensive BPM Suite for delivering process-driven ... dynamic business applications. ... Business Process Management ...
Read more

Meet Scrum’s Big Brother, Dynamic Governance. Effectively ...

Meet Scrum’s Big Brother,Dynamic GovernanceEffectively Delivering Large ProgramsDan LeFebvre John ... Delivering Process-Driven, Dynamic Applications.
Read more

Process-Driven SOA Development - Oracle

Process-Driven SOA Development. ... (developing end-to-end applications ... including Business Process Driven SOA using BPMN and BPEL ...
Read more

CodePainter Revolution Trainer Course Max Vizzini ...

CodePainter Revolution Trainer Course Max Vizzini Delivering Applications ; Slide 2 ; General Procedure Create an EXE file through a VFP project.
Read more