33
Copyright OASIS, 2005 / 2007 Scalable PESC transaction handling using OASIS CAM technology David Webber Chair OASIS CAM TC [email protected] Presentation April 24 th, 2007 Washington DC CAM Technology Introduction

Copyright OASIS, 2005 / 2007 Scalable PESC transaction handling using OASIS CAM technology David Webber Chair OASIS CAM TC [email protected] Presentation

Embed Size (px)

Citation preview

Copyright OASIS, 2005 / 2007

Scalable PESC transaction handling

using OASIS CAM technology

David WebberChair OASIS CAM TC

[email protected]

Presentation

April 24th, 2007Washington DC

CAM Technology Introduction

Background The PESC is defining XSD schema for loan, transcript

and more interactions.  Wide scale adoption brings with it challenges of

versioning, consistency, rules, codelists, guidelines and contextual use patterns. 

How does the OASIS CAM technology augment XSD structure definitions to provide scalable collaborative deployment support and smooth out potential disruptive adoption impacts? 

How can a community of practice create a shared resource center to facilitate content interoperability?

Overview Part 1 – Challenges and Needs (10 mins)

Registry - building a domain lexicon + PESC schema library Versioning, consistency, rules, codelists, guidelines Providing local contextual validation services Relationship to XSD schemas Deployment / Use Models

Part 2 – XML Technology (10 mins) Introduction to OASIS CAM Architecture Overview Approach for PESC transactions

Part 3 – Demonstration (20 mins) CAM tool overview Solving agility – PESC XML examples Value proposition Call to action/next steps

Q&A (15 mins)

Copyright OASIS, 2005 / 2007

Presentation April 24th, 2007

Washington DC

CHALLENGES AND NEEDS

Part 1

Copyright OASIS, 2005 / 2007

Registry - building a domain lexicon + PESC schema library

Versioning, consistency, rules, codelists, guidelines

Providing local contextual validation services

Relationship to XSD schemas

Deployment / Use Models

Copyright OASIS, 2005 / 2007

Common Data Issues –

Secure Reliable Exchanges Poor and Inconsistent Documentation Data / Customer / Process Integration Collaboration and Messaging System Development Life Cycle Change Management Segregation of Duties User Authentication

Exchange & Information Technology

PESC Registry Overview

???????

Registry Core Components

???????

Component Associations

???????

Related Messages

???????

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?Copyright OASIS, 2005 / 2007

Why not use XSD? Today’s XML schemas have complex structures

with no context awareness + no cross field association rules + no dynamic lookups

The XSD provides a model of ALL possible structure instances – not the particular instance

Excessive use of namespaces make for fragile XML transaction handling

Generating valid sparse transaction layout is tough Documentation diagrams hard to read How to create simple re-usable templates?

Copyright OASIS, 2005 / 2007

XSD - GPA model example

What about these needs?

Versioning Content consistency Use rules Codelists Associations (what uses which?) Guidelines Providing local contextual validation services

Typical Local Use Pattern

Create Samples

RulesEditor

XML

Analyst

Templates

Samples

Develop

Verify

StructureRulesContext

3

2

Rules

html

XML

Resultshtml

Publish

1

Detail Use Rules

Test Rules on Samples

4

Share Results

Partner Conformance

Test andCertification

Validate

Templates

Report

PartnerCreatesXMLResults

Test

Pass / Fail

Templates

XMLhtml

StructureRulesContext

4

5

6

Publish

Presentation April 24th, 2007

Washington DC

TECHNOLOGYPart 2

Copyright OASIS, 2005 / 2007

Introduction to OASIS CAM

Architecture Overview

Approach for PESC transactions

Copyright OASIS, 2005 / 2007

History and Status of CAM OASIS technical committee Five years of combined work in UN/CEFACT

and OASIS OASIS v1.1 committee specification jCAM open source implementation in Java Creating simple XML-scripted open standard

mechanisms for XML transaction assembly and processing

Developing templates for common industry formats

Who is doing this? Templates for OASIS UBL subset transactions UK – BTplc – prototyping UBL telephone industry

service provisioning Online transaction validation test-bed Transaction dictionaries and samples

MetLife - modified templates approach for ACORD OVS - OASIS EML voting records templates OASIS BPSS v2.0.4 now supports Context + CAM Nortel – validate SOAP headers and SAML XML

Copyright OASIS, 2005 / 2007

Copyright OASIS, 2005 / 2006

CAM Process Architecture

CAMCAMCAMCAM

XML ParserXML Parser/ DOM/ DOM

XML ParserXML Parser/ DOM/ DOM

Built-in Built-in FunctionsFunctionsBuilt-in Built-in

FunctionsFunctions

XPathXPathhandlerhandlerXPathXPath

handlerhandler

SQL SQL persistencepersistence

SQL SQL persistencepersistence TermsTerms

RegistryRegistryTermsTerms

RegistryRegistryRule EngineRule EngineRule EngineRule Engine Post-Post-ProcessingProcessing

/ Errors/ Errors

Post-Post-ProcessingProcessing

/ Errors/ Errors

XML-awareXML-awareXML-awareXML-aware

EXTENSIONS

Copyright OASIS, 2005 / 2006

jCAM Functional Components

CAMCAMCAMCAM

XML ParserXML Parser/ DOM/ DOM

XML ParserXML Parser/ DOM/ DOM

Built-in Built-in FunctionsFunctionsBuilt-in Built-in

FunctionsFunctions

XPathXPathhandlerhandlerXPathXPath

handlerhandler

SQL SQL persistencepersistence

SQL SQL persistencepersistence TermsTerms

RegistryRegistryTermsTerms

RegistryRegistryRule EngineRule EngineRule EngineRule Engine

EXTENSIONS

jaxenxerces

e.g. DROOLS,Others…

Saxon - xslt

planned using AJAX / ebXML

Post-Post-ProcessingProcessing

/ Errors/ Errors

Post-Post-ProcessingProcessing

/ Errors/ Errors

XML Data Mapping

XML-awareXML-awareXML-awareXML-aware

cam

XXXX

Deployment Options

B2B Web services

jCAMenginejCAM

engine

XML

Templates

XML

MessageSystemXMLJava

APIReceive

Process

Validate Server

TemplatesRequest

XML

htmlResponseJavaAPIProcess

StructureRulesContext

1

2

3

1

2

3

Standalone

EDITOR

Template

XMLhtml

Report

Copyright OASIS, 2005 / 2006

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?

Overview of PESC needs

Transaction

Templates

StructureRulesContext

3

2

Use Rules

html

XML

Reportshtml

Publish

1

Common Details

Rules

4

Share Details

Address

Course

Contact

Student

Loan

Sponsor

Transcript

Content Rules

Lookup Values

Context

Versioning

Presentation April 24th, 2007

Washington DC

DEMONSTRATIONPart 3

Copyright OASIS, 2005 / 2007

Tools Overview Solving agility – PESC XML example Value proposition Call to action/next steps

Copyright OASIS, 2005 / 2006

How does jCAM work? CAM uses WYSIWYG approach to XML

Starting with your XML sample – creates structure

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

Eclipse CAM Editor

1

2

3

4

5

Available structures

Structure Rule Viewer

Rule Details

Results Viewer

ValidationProcess

Copyright OASIS, 2005 / 2006

Using jCAM :

Start with sample XML Use Eclipse template editor Load XML, generate CAM Enhance base template Test, refine and deploy Generate documentation Deliver business solution

Build SimpleBuild SimpleTemplateTemplateBuild SimpleBuild SimpleTemplateTemplate

ExtendingExtendingTemplateTemplateExtendingExtendingTemplateTemplate

Verify ResultsVerify ResultsVerify ResultsVerify Results

SimpleSimpleXML instanceXML instance

SimpleSimpleXML instanceXML instance

Document Document Rule DetailsRule DetailsDocument Document Rule DetailsRule Details

1

2

3

4

5

CAM Functions SummaryexcludeAttribute() startBlock() useElementByID() useAttribute()

excludeElement() endBlock() useTreeByID() useChoice()

excludeTree() checkCondition() setDefault() useElement()

makeOptional() makeRecursive() restrictValuesByUID()

useTree()

makeMandatory() setUID() orderChildren() useAttributeByID()

makeRepeatable() restrictValues() setRequired() useChoiceByID()

setChoice()

setId()

setLength()

setNumberRange()

setLimit()

setValue()

setDateMask()

setStringMask()

setNumberMask()

allowNulls()

datatype() or setDataType()

<as:BusinessUseContext> <as:Rules> <as:default> <as:context> <as:constraint action="makeRepeatable(//Items/Item)"/> <as:constraint action="makeOptional(//Item/comment)"/> <as:constraint action="setLength(//shipTo/state,2)"/> <as:constraint action="setDateMask(//PurchaseOrder/shipDate,YYYY-MM-DD)"/> <as:constraint action="makeOptional(//PurchaseOrder/comment)"/> <as:constraint action="restrictValues(//shipTo/@type,'US'| 'CA'| 'MX', 'US')"/> <as:constraint action="setDateMask(//PurchaseOrder/@orderDate,YYYY-MM-DD)"/> <as:constraint action="setNumberMask(//Item/@pno,###-###)"/> <as:constraint action="setNumberMask(//Item/quantity,###)"/> <as:constraint action="setNumberMask(//Item/price,####.##)"/> <as:constraint condition="//Item/@pno = 123-678“ action="restrictValues(//shipTo/state,'WA')"><as:annotation> <as:documentation type="documentation">Can only ship item 123-678 to Washington State </as:documentation></as:annotation> </as:constraint> <as:constraint condition="$QuickBooks = true“ action="excludeElement(//Item/comment)" /> </as:context> </as:default> </as:Rules> </as:BusinessUseContext>

Example of Rules Use

Copyright OASIS, 2005 / 2006

Value Proposition Making XML transaction handling simpler and predictable

Extends and clarifies your existing XSD schema structures

Quick and easy rule building from sample XML transaction

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

Copyright OASIS, 2005 / 2006

What’s Next / Call to Action

Develop template sets for PESC business domain

Integrate into your messaging exchanges OrionSMG supports jCAM

Web service test-bed

Publish to registry to facilitate adoption Create document templates to generate registry

content / guidelines

Use Wiki / SourceForge to facilitate sharing

AQ&Q U E S T I O N SQ U E S T I O N S

A N S W E R SA N S W E R S

Copyright OASIS, 2005 / 2007

www.jcam.org.uk

camprocessor.sourceforge.net

www.drools.org

www.oasis-open.org/committees/cam

Resources:

Copyright OASIS, 2005 / 2007

A special mention for our contributors to the CAM and jCAM work:

UK - Martin Roberts with BTplcUS - Sidhartha Nagolu from AC-Tech / NIH

Credits: