Upload
susanna-barker
View
218
Download
1
Tags:
Embed Size (px)
Citation preview
Copyright OASIS, 2005 / 2007
Scalable PESC transaction handling
using OASIS CAM technology
David WebberChair OASIS CAM TC
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
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
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
Copyright OASIS, 2005 / 2007
www.jcam.org.uk
camprocessor.sourceforge.net
www.drools.org
www.oasis-open.org/committees/cam
Resources: