1 Twitter #NIEMNTE3 Automating Test and Validation Services for NIEM Exchanges Workshop Presenters: David RR Webber Information Architect Oracle Public.

Slides:



Advertisements
Similar presentations
1.
Advertisements

Introduction to Maven 2.0 An open source build tool for Enterprise Java projects Mahen Goonewardene.
NIEM and Content Policy briefing David Webber - Public Sector NIEM Team, April 2013 NIEM Test Model Data Deploy Requirements Build Exchange Generate Dictionary.
Java Script Session1 INTRODUCTION.
IEEE P1622 Meeting, Oct 2011 IEEE P1622 Meeting October 24-25, 2011 Guide to using OASIS EML v7.0 for UOCAVA Implementations David RR Webber Information.
 Copyright 2005 Digital Enterprise Research Institute. All rights reserved. The Web Services Modeling Toolkit Mick Kerrigan.
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | Oracle SQL Developer Tips & Tricks Jeff Smith
IWay Service Manager 6.1 Product Update Scott Hathaway iWay Software Copyright 2010, Information Builders. Slide 1.
NIEM, CAM and the 7 “D’s” David Webber - Public Sector NIEM Team, November 2011 NIEM Test Model Data Deploy Requirements Build Exchange Generate Dictionary.
1 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
David Webber, NIEM Team, Oracle Public Sector NIEM Test Model Data Deploy Requirements Build Exchange Generate Dictionary Exchange Development Taking a.
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 2 Hidden Gems of APEX David Gale Software Engineer Oracle Application Express November,
NIEM Team, Oracle Public Sector Technology Introduction – September 2011 CAMV Test Model Data Deploy Requirements Build Exchange Generate Dictionary Exchange.
XML Exchange Development CAM Technology Tutorial – Public Sector NIEM Team, June 2011 CAM Test Model Data Deploy Requirements Build Exchange Generate Dictionary.
CAMV rules validation engine for XML
Web Applications Basics. Introduction to Web Web features Clent/Server HTTP HyperText Markup Language URL addresses Web server - a computer program that.
Slide 1 of 9 Presenting 24x7 Scheduler The art of computer automation Press PageDown key or click to advance.
1 1 Roadmap to an IEPD What do developers need to do?
Virtual techdays INDIA │ august 2010 Building ASP.NET applications using SQL Server Compact Chaitanya Solapurkar │ Partner Technical Consultant,
Open Data API delivery “Open-XDX” David Webber, Information Architect, Oracle Public Sector Open Data Exchange.
NIEM Team, Oracle Public Sector Technology Introduction – September 2011 CAMV Test Model Data Deploy Requirements Build Exchange Generate Dictionary Exchange.
Open Data API delivery “Open-XDX” David Webber, Information Architect, Oracle Public Sector Open Data Exchange October, 2012.
Open Standard Voting Localization with CAM - Localization Mechanisms - Publishing Localizations - Leveraging Open Standards - XSD ingesting David RR Webber.
QAD .Net UI: New Enhancements
©2011 Quest Software, Inc. All rights reserved. Steve Walch, Senior Product Manager Blog: November, 2011 Partner Training Webcast.
DAT602 Database Application Development Lecture 15 Java Server Pages Part 1.
Application Express 4.1 New Features Hilary Farrell, Principal Member of Technical Staff, Oracle.
M. Taimoor Khan * Java Server Pages (JSP) is a server-side programming technology that enables the creation of dynamic,
Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 1 Quick Tutorial – Part 1 Using Oracle BPM with Open Data Web Services David Webber.
1Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 8 Reporting from Contract.
James Cabral, David Webber, Farrukh Najmi, July 2012.
Copyright OASIS, 2005 / 2007 CAM Technology Introduction David Webber Chair OASIS CAM TC Presentation February 9 th, 2007 Bethesda MD.
Oracle Application Express 3.0 Joel R. Kallman Software Development Manager.
© 2008, Renesas Technology America, Inc., All Rights Reserved 1 Purpose  This training course describes how to configure the the C/C++ compiler options.
DATABASE and XML Moussa Mané. Learning Objectives ● Learn about Native XML Databases ● Learn about the conversion technology available ● Understand New.
NIEM, CAM and the 8 “D’s” David Webber - Public Sector NIEM Team, December 2011 NIEM Test Model Data Deploy Requirements Build Exchange Generate Dictionary.
COLD FUSION Deepak Sethi. What is it…. Cold fusion is a complete web application server mainly used for developing e-business applications. It allows.
NIEM Blue Team Presentation April 20, 2010 Phil Letowt, Mini Kanwal, Ken Sall, David Webber ICE OCIO / Task ASAS ICE Information Exchange Reuse with NIEM.
9/11 - Tens Years On Overview – Public Sector NIEM Team, October 2011 NIEM Test Model Data Deploy Requirements Build Exchange Generate Dictionary XML Exchange.
9 Chapter Nine Compiled Web Server Programs. 9 Chapter Objectives Learn about Common Gateway Interface (CGI) Create CGI programs that generate dynamic.
Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 1 Quick Tutorial – Part 2 Open Data Web Services for Oracle BPM August, 2013 Forms.
David Webber, NIEM Team, Oracle Public Sector Rapid NIEM XML Exchange Design, Semantics and UML Models NIEM Test Model Data Deploy Requirements Build Exchange.
1Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 8 Contract Management.
1 Twitter #NIEMNTE3 Lightning-Fast IEPD Development Techniques Presenter David RR Webber Information Architect Oracle Public Sector.
1 Module Objective & Outline Module Objective: After completing this Module, you will be able to, appreciate java as a programming language, write java.
Using XML for Business and Life May 2006 David RR Webber Technology and Standards in Higher Education.
1 Schema Registries Steven Hughes, Lou Reich, Dan Crichton NASA 21 October 2015.
Oracle Data Integrator Procedures, Advanced Workflows.
Introduction to Exception Handling and Defensive Programming.
1 1 CAM Toolkit for NIEM IEPD Development Phil Letowt – DHS/ICE David Webber – ICE Data Architect.
IBM Software Group ® Context-Sensitive Help with the DITA Open Toolkit Jeff Antley IBM October 4, 2007.
“This presentation is for informational purposes only and may not be incorporated into a contract or agreement.”
1Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
SOAP-based Web Services Telerik Software Academy Software Quality Assurance.
Dictionary based interchanges for iSURF -An Interoperability Service Utility for Collaborative Supply Chain Planning across Multiple Domains David Webber.
1 Registry Services Overview J. Steven Hughes (Deputy Chair) Principal Computer Scientist NASA/JPL 17 December 2015.
Workforce Scheduling Release 5.0 for Windows Implementation Overview OWS Development Team.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
Preface IIntroduction Objectives I-2 Course Overview I-3 1Oracle Application Development Framework Objectives 1-2 J2EE Platform 1-3 Benefits of the J2EE.
© 2012 LogiGear Corporation. All Rights Reserved FitNesseFitNesse Authors: Nghia Pham 1.
Recent Enhancements to Quality Assurance and Case Management within the Emissions Modeling Framework Alison Eyth, R. Partheepan, Q. He Carolina Environmental.
Silverstein Group Presenter Moshe Silverstein A Content Assembly Mechanism Technology Overview Context & Integration A Content Assembly Mechanism Technology.
2 The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any.
Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 1.
Lecture Transforming Data: Using Apache Xalan to apply XSLT transformations Marc Dumontier Blueprint Initiative Samuel Lunenfeld Research Institute.
A Presentation Presentation On JSP On JSP & Online Shopping Cart Online Shopping Cart.
C Copyright © 2009, Oracle. All rights reserved. Using SQL Developer.
Slide 1. What's New in NetBeans IDE 7.1 Name Title.
JD Edwards Support and Oracle Cloud Infrastructure: A Successful Path to Oracle Cloud
Using JDeveloper.
Presentation transcript:

1 Twitter #NIEMNTE3 Automating Test and Validation Services for NIEM Exchanges Workshop Presenters: David RR Webber Information Architect Oracle Public Sector Patrick Fendt Principal Technologist Oracle Public Sector

2 Twitter #NIEMNTE3 The following is not intended to outline Oracle general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle.

3 Twitter #NIEMNTE3 Introduction A key need in working with NIEM IEPDs, is developing examples and matching templates including rules, context, and roles for correctly managing information exchange content between partners. The W3C Schema by themselves are not sufficient. Learn how to use open source tooling, XPath rules, and the OASIS CAM templates standard to create automated testing tools. The automated validation engine can also be used in production environments to manage live information exchanges. Attendees will receive copies of the latest validation engine tools and examples for use in the workshop

4 Twitter #NIEMNTE3 Agenda Part 1 – The XML Validation Framework – XPath Rules Techniques – Code lists and SQL lookups – Rules use cases Part 2 – Example CAM templates – CAMV validation demonstration – Results handling techniques – Summary Q & A

5 Twitter #NIEMNTE3 XML Validation Framework Architecture and Deployment

6 Twitter #NIEMNTE3 XML Validation Framework CAMV XML instance Template (compiled) Database Lookup (optional) Results XML Java Handler Errors and Warnings StructureRulesCode Lists SQL Query

7 Twitter #NIEMNTE3 CAMV Engine

8 Twitter #NIEMNTE3 CAMV Validation Engine Standalone XML validator using XPath rules Context aware and declarative rules approach Integrated with CAM editor menus for instant testing External code list and SQL table lookup support Callable via Spring framework or Java API Configurable error levels – error, warning – Java error results object returned – Embedded validation results attributes in XML results

9 Twitter #NIEMNTE3 CAM Editor / CAMV Environment CAM Editor CAMV XSLT Reports CAM template XML Test Instance XML Validation Result

10 Twitter #NIEMNTE3 XML Test Instances CAMV / ANT Script Environment ANTANT CAMV XML Validation Results XSLT Reports CAM template CAMV Control Script XML

11 Twitter #NIEMNTE3 CAMV Test Control Script XML Test-Template-v19.cxx Test-Instance-v19-3.xml Test-Results-v19-3-out.xml true Param1 Param2 Validation Template Test XML instance Results output Test case name

12 Twitter #NIEMNTE3 Linux GTK ANT Configuration Linux distributions (e.g. Ubuntu) has ANT pre-installed in /usr/share/ant/lib/usr/share/ant/lib Download Ant-contrib from – Copy ant-contrib jar file to /lib directory inside ANT installation

13 Twitter #NIEMNTE3 Mac OS ANT Configuration Mac OS X 1.7+ “Lion” comes pre-installed - use command : ant –version and it will self-configure Mac OS X 1.6 and earlier – need to install “Xcode” development software first Download Ant-contrib from – Copy ant-contrib jar file to /lib directory inside ANT installation

14 Twitter #NIEMNTE3 ANT – Windows configuration Download ANT from – Download Ant-contrib from – Copy ant-contrib jar file to /lib directory inside ANT installation Set the ANT_HOME environment variable to the directory where you installed ANT Add %ANT_HOME%/bin folder to executable path

15 Twitter #NIEMNTE3 Windows System Path Settings

16 Twitter #NIEMNTE3 Running CAMV with ANT Go to CAMV location on Sourceforge – Download CAMV release JAR and Test example ZIP Unpack test example from ZIP and put CAMV jar into folder Go to the command line (run cmd) – Switch to folder where CAMV test suite is located – ANT –f camv-test.xml runAll – Output is in folder called camvTest\results

17 Twitter #NIEMNTE3 Reviewing Validation Results HTML

18 Twitter #NIEMNTE3 XPath Rules Techniques Quick Syntax Primer Controlling Scope, Context, Evaluation Dynamic Structure Components Useful XPath Resources

19 Twitter #NIEMNTE3 XPath Syntax Primer XPath is a simple assertion language where expressions reference components hierarchically within an XML instance structure – e.g. – /animals/canines/domestic/dogs/poodle[1] – /animals/canines/domestic/* CAMV uses the XPath v2.0 Java library In CAM templates XPath is used extensively to provide rules and content details for XML structure components

20 Twitter #NIEMNTE3 XPath Functions XPath Function samplerlogical concat(string,string,…) substring(string,start,len) string-length(string) normalize-space(string) upper-case(string) contains(string1,string2)Yes starts-with(string1,string2)Yes not(arg)Yes exists(item,item,...)Yes count((item,item,...)) /bookstore/book[price>35]/title

21 Twitter #NIEMNTE3 CAM XPath Extensions (most used) Structure FunctionsContent Functions makeOptional(xpath…)setNumberMask(xpath,arg) makeRepeatable(xpath…)setStringMask(xpath,arg) makeMandatory(xpath…)restrictValues(xpath,args) excludeTree(xpath…)setDateMask(xpath,arg) makeNillable(xpath…)datatype(xpath,arg) setChoice(xpath…)setLength(xpath,arg) setLimit(xpath…)lookup(xpath,args) setValue(xpath,arg) printMessage(xpath,arg)setNumberRange(xpath,args) setDefault (xpath,arg)

22 Twitter #NIEMNTE3 CAM templates and XPath expressions Within a CAM template XPath expressions are found in the section of the template.

23 Twitter #NIEMNTE3 Rules Use Cases Typical Business Needs Quick Examples

24 Twitter #NIEMNTE3 Controlling Scope and Context Condition controls if and when the content rule action applies Condition can control structure as well; optional, mandatory, exclude Condition can reference different component(s) for contextual rule actions

25 Twitter #NIEMNTE3 Some more examples Business Rule: Items with color attributes don't need a tray number—the color is sufficient for picking the item: Business Rule: If order weight exceeds 25 kg, purchase order must specify a freight carrier: 25" action="makeMandatory(//Item/FreightHandler)"> Using XPath axis referencing (when things are not adjacent in hierarchy): * Excerpted from Michael Sorens DEVX CAM article examples

26 Twitter #NIEMNTE3 Useful XPath Resources Michael Sorens article on using CAM from DEVX.com – Martin Roberts – tutorial on writing CAM rules – XPath tutorial resources – Search on XPath tutorial – Books available Tools – XPath expression constructors

27 Twitter #NIEMNTE3 Code Lists and SQL Lookups Introduction to CAM code lists Advantages Tools and Hints

28 Twitter #NIEMNTE3 Code lists CAM lookup() function allows referencing to external XML lists of values Can replace use of restrictValues() static lists Coming soon - CAM lookup() function can reference SQL table for dynamic value checking Where to get code lists? – Import XSD enumeration schema into CAM lookup lists – Convert UBL Genericode into CAM lookup lists – Dump from database into lookup list XML format

29 Twitter #NIEMNTE3 CAM Code list XML format Textual value Code value Code list name

30 Twitter #NIEMNTE3 Combining Rules and Code lists Real power of code lists and CAM – ability to select code list values based on XPath rule criteria to handle different partner configurations, versioning and cross- table validations – e.g. Ford / Mustang | Chevy / Corvette – Message version id = 1.6 – use code list XYZ-1-6

31 Twitter #NIEMNTE3 Code lists examples Load lookup list XML into CAM editor Assign lookup() rule to XML component Coming soon - for SQL lookups – need to define connectivity to database and the SQL query to perform

32 Twitter #NIEMNTE3 Code Lists Summary Lookups can be to external XML file instances Simple XML format for optimized performance and readability Dynamic runtime control via XPath rules to select lists to be applied Lookup can reference SQL statement for database content checking

33 Twitter #NIEMNTE3 Part 2 – Example CAM templates – CAMV validation demonstration – Results handling techniques – Summary

34 Twitter #NIEMNTE3 Example CAM Templates Examples Reviewed Quick walk through of important details

35 Twitter #NIEMNTE3 Experimental SAR Examples Two test example templates and XML instances: – Baseline SAR with just structure and content usage rules, schema parlance “cardinality, facets and enumerations” – Baseline SAR advanced – logical business rules added to check consistency of information and structure components Each test set contains examples that pass and those that fail depending on the template validation applied * SAR – Suspicious Activity Report NIEM exchange

36 Twitter #NIEMNTE3 CAM Templates Overview Consists of 4 functional sections: Header declares properties and parameters for the CAM process to reference AssemblyStructure captures the business information exchange structures BusinessUseContext provides the rules to apply during validation Extension points to the annotations and external lookup tables

37 Twitter #NIEMNTE3 Experimental SAR Overview * SAR – Suspicious Activity Report Areas of Interest: -Drugs -Fraud -Gangs -Internet -Pornography -Property -Community -Weapons/Chemicals -Prescriptions -Travel/Immigration -Terrorism

38 Twitter #NIEMNTE3 CAMV Validation Demonstration Illustrative examples – pass, fail, warnings Default structure handling Data type and Content checking Cross-field validation rules

39 Twitter #NIEMNTE3 Example Advanced Rules Business Rule: Business Rule: Providing warning if PurgeDate is earlier than PurgeReviewDate Example of advanced rule Business Rule: Business Rule: Location must contain an address or a highway or coordinate set

40 Twitter #NIEMNTE3 Default Structure Handling By default all structure components are required and string content Content Masks Structure control

41 Twitter #NIEMNTE3 Demonstration

42 Twitter #NIEMNTE3 ANT script configuration Directory Control file

43 Twitter #NIEMNTE3 Results Handling Techniques XSLT script post-processing XML Diff considerations Regression Testing with CAMV Middleware Integration

44 Twitter #NIEMNTE3 Default XSLT rendering of results HTML output Finds CAM validation results attributes Formats and outputs error details

45 Twitter #NIEMNTE3 Post-Processing Tips and Tricks XSLT post-processing not only for HTML reporting – Create response error messaging directly from CAMV output – Create receipt notification directly from CAMV output Can use simple DIFF to compare generic HTML report output to detect regression test changes Rule based checking better than strict result content testing Java API and Spring supports direct integration of CAMV

46 Twitter #NIEMNTE3 Summary Review Next Steps Future enhancements Resources and Links

47 Twitter #NIEMNTE3 Review and Value Proposition Testing and verification of NIEM exchange XML examples SQL database lookups and flexible code lists handling Business rule checking Post-processing options and reporting with XSLT scripts Regression testing with batch processing Flexible deployment of XML validation framework Integration via Spring API to middleware

48 Twitter #NIEMNTE3 What are we working on? Improvements – “CAM for web services” – currently exchange-centric – Enhancing ANT capabilities and soapUI integration New features – Dictionary integration with Domain Update Tool – Evaluation tools for dictionaries and components – Enhancing XML example generation with synthetic data

49 Twitter #NIEMNTE3 CAMV Summary Open source, open public standards based, cross-platform deployment written using Java Uses Java APIs, Spring API, JDOM, etc. Validation features: – XPath V2.0 support – Looks ups – 20 built-in functions Reporting – Embedded CAMERROR, CAMWARN tags – Spring API – Optional sysout log

50 Twitter #NIEMNTE3 Q & A Download the CAM editor toolkit from: Resource Center link