Upload
laureen-craig
View
215
Download
0
Embed Size (px)
Citation preview
1 Twitter #NIEMNTE3
Lightning-Fast IEPD Development Techniques
PresenterDavid RR Webber
Information ArchitectOracle Public Sector
2 Twitter #NIEMNTE3
The following is not intended to outline our 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• Effective NIEM IEPD development requires a complete process understanding
and partnership between program management and application implementers. • This session provides a road map for executives and developers alike, based on
the actual development experience of federal and state IEPDs and processes. • For executives, the session covers the latest techniques for leveraging domain
dictionary assets and modeling tools to enable enterprise wide coordination. • For developers, the session illustrates lightning-fast IEPD development
techniques and live prototyping using the latest version of the open source CAM toolkit for IEPD development.
• Attendees will gain an understanding of how to maximize existing enterprise assets and processes to optimize the IEPD development process to ensure involvement and participation for all stakeholders, with successful outcomes as the goal.
4 Twitter #NIEMNTE3
Agenda• Part 1
– IEPD Process Mechanics– Aligning with SDLC (Software Development Life-Cycle)– Integrating NIEM into the Enterprise
• Part 2– CAM toolkit overview– Component Dictionaries– Patterns for building XML Exchanges– CAM IEPD Demonstration
• Q & AWorkshop – Testing & Delivery
5 Twitter #NIEMNTE3
IEPD Process Mechanics• Designing an XML exchange requires:
– Understanding of the application data model– Business needs of the information exchange– Engineering efficient data exchanges with XML
• To complete an IEPD needs:– Understanding of the NIEM Naming and Design Rules (NDR)– Building layout structures of XML exchange documents– Set of business rules for content and use patterns– Mapping to NIEM schema for component reuse– Working test case examples
6 Twitter #NIEMNTE3
Aligning to SDLC• Vital that NIEM IEPD development be integral part of
SDLC – otherwise there will be duplicative work, retrofitting and refactoring
• Initial IEPD reviews must be early in the process• Ideally the IEPD artifacts should be derived from the
actual production XML exchange assets• Development team should work in tandem with
architects and business analysts – not in isolation• Too often we hear “well we already have it in production
so we can’t change it now”
7 Twitter #NIEMNTE3
Integrating NIEM into the Enterprise• Guidelines when to utilize NIEM domain dictionaries• Building EIEM – Enterprise Information Exchange Model• Canonical Components dictionary – NIEM consistent• Generate exchange artifacts for developers from EIEM• Aligning coding practices with XML to NIEM NDR• Developers and Data Architects synchronize components
library and logical and physical models to EIEM constantly
8 Twitter #NIEMNTE3
Why do we need EIEM dictionaries?• Allows domains to manage their components libraries• Provides consistency for project development teams
– Sets of NIEM consistent XML exchange components– Aligned to enterprise data stores– Optimized for reuse and interoperability
• Save time and effort across the enterprise– Perennial question for developers – when should I use NIEM
components, and when our own local ones?– Are there components already available for that purpose?
• Provide formal mechanisms and procedures to share components and collaborate across SDLC process
• Provide external parties consistent data views
9 Twitter #NIEMNTE3
How to create EIEM dictionaries
• Top down - directly from information models
– Enterprise modelling tools
– SQL database physical table definitions
• Bottom up
– Harvesting from existing data assets
– Harvesting from XML exchange structures and schema
• Using neutral abstract standards based representations
10 Twitter #NIEMNTE3
Conceptual Information Model
Child(BBIE)Item
Child(BBIE)Item
Parent (ABIE)Item
Parent (ABIE)Item
Follows Naming and Design Rule (NDR) principles and guidelines
Canonical Components
DictionaryXML
Canonical Components
DictionaryXML
ebXML CCTS terms (ABIE, BBIE, ASBIE)
Parent = Aggregate Business Information EntityChild = Basic Business Information EntityAttribute = Association Business Information Entity
Parent (ABIE)Item
Parent (ABIE)Item
Parent (ABIE)Item
Parent (ABIE)Item
Parent (ABIE)Item
Parent (ABIE)Item
. . . . .
Child(BBIE)Item
Child(BBIE)Item
Child(BBIE)Item
Child(BBIE)Item
Child(BBIE)Item
Child(BBIE)Item
Attribute(ASBIE)
Attribute(ASBIE)
Attribute(ASBIE)
Attribute(ASBIE)
* CCTS – Core Components Technical Specification
Attribute(ASBIE)
Attribute(ASBIE)
Attribute(ASBIE)
Attribute(ASBIE)
Each compound component
Each atomic component
Optional attributes of component
11 Twitter #NIEMNTE3
Example – Person Name• Person Name (ABIE)– Verified Details? (ASBIE)
– First Name (BBIE)– Middle Name (BBIE)– Last Name (BBIE)
– Previous Name? (ASBIE)
– Language Code (BBIE)
Language Code may exist independently of Person NameVerified Details and Previous Name are flags that denote additional information
about the entity they are associated withThere are three component items aspects:
structure relationships; content rules; definitions
12 Twitter #NIEMNTE3
Example DHS/ICE EIEMICE Enterprise Data Model (EDM)
OASIS CAM template
OASIS CAM template
Model Components
XSD schema
Model Components
XSD schema
ERwin Refactoring,Compress,
Renaming ToolNIEM NDR Evaluations
ERwin Refactoring,Compress,
Renaming ToolNIEM NDR Evaluations
GenerateStandard
Components Dictionary
XML
GenerateStandard
Components Dictionary
XML
55
Canonical Dictionary of ICE exchange components
XML+
XSD
XML+
XSD
33
Analyst Review
ebXML CCTS compatible (ABIE, BBIE, ASBIE)
22
EleEle
DefDef
DDLDDL
Production Rules
44
11
Completed CAM template
Completed CAM template
Excel Spreadsheet
66
77
BENEFITS: Will reduce ICE development time and effort Pre-built NIEM consistent XML components XML consistent with ICE enterprise SQL data Removes scope for definition errors Maximizes reuse potential across ICE Open public standards based approach Open technology infrastructure
Code Lists
Code Lists
Code Lists
Code Lists
ERwin Client
ERwin model
Write
ApplyImportExport
13 Twitter #NIEMNTE3
CAM Renaming Tool• Expands abbreviations (has built-in lists with context)• Corrects common typos and spelling errors (200+)• Adjusts names to camel case with no separators (_)• Retains acronyms• Adds name suffix according to NIEM representation terms
and type of content, e.g. date, number, code, etc• Optionally refactor rules by their type for interoperability;
make nillable optional; relax DB length restrictions• Can optionally insert namespace prefix• Can be configured by editing the lists in: word-utils.xsl
14 Twitter #NIEMNTE3
Part 2– CAM Toolkit Overview– CAM Templates– Patterns for building XML Exchanges– XML Exchange Life-Cycle– CAMV validation engine / code lists / lookups– CAM IEPD Demonstration
15 Twitter #NIEMNTE3
CAM Toolkit Overview• Open source, open public standards based, cross-
platform deployment written using Java, SWT and XSLT• Project is sponsored by Oracle• NIEM-based features:– Evaluation tool for NDR and interoperability– Compare to dictionary, generates cross-reference, re-use
score, and SSGT “want list”– Profiles for generating NIEM schema bundles– NIEM and LEXS dictionaries– Models export to ArgoUML, XMI or Mind maps
16 Twitter #NIEMNTE3
CAM TemplatesStructure Rules
Documentation
CAM Template
http://www.oasis-open.org/committees/cam
WYSIWYG
17 Twitter #NIEMNTE3
INGESTINGEST
CAM and W3C Schema Wizards
EXPORTEXPORT
XSLT toolsprocess
entire XSDcollection
XSLT toolsprocess
entire XSDcollection XSD Collection
Structure
Rules
Documentation
*Code list xsd
Namespace* OptionalXML Schema
xsd subset
xsd subset
*Constraint xsd
*Constraint xsd
*Extension xsd
*Extension xsd
*Restriction xsd
*Restriction xsd
Industry Domainschemas
Code list xsd
LEGEND:
Exchange xsdExchange xsd
Exchange Schema
CAM Template
18 Twitter #NIEMNTE3
Visual Designer with Dictionary Collection
Drag n’ Drop Tool
Drag n’ Drop Tool
Industry dictionaryIndustry dictionaryDomain dictionaryDomain dictionary
Component Definitions
44
Component Definitions
Search Tools
Search Tools
22
ExchangeDesigner
ExchangeDesigner
11
InsertDictionary
Components
InsertDictionary
Components
33
Completed Exchange Template
Completed Exchange Template
55
Collection
19 Twitter #NIEMNTE3
Configurable Dictionary Collections
Dictionary Control File
XML
Compiled Dictionaries
Dictionary Summary Format
Compiler tool
Referenced
Referenced
Namespace / Dictionary / Location
Loads collection into CAM viewer
Excel spreadsheetcompatible
CAMviewercompatible
20 Twitter #NIEMNTE3
Patterns for building XML exchanges• Adapting existing exchange XML schema– Tailoring document model to business needs– Insert new components, publish new IEPD– Restructuring and refactoring exchange structure– Flattening XML schema bundle for middleware tooling
• Building new exchange schema– Using EIEM components– Blending EIEM with NIEM components– Custom community exchanges – e.g. OASIS
21 Twitter #NIEMNTE3
XML exchange life cycle
Monitor
Deploy
Design
AuthorTest
Component Dictionary
CAM
Template
CompiledTemplates
XSD Schema
XML Samples
XMI / UML Models
ProductionLog Results
TemplateUpdates
Documentation
Drag and Drop Visual Editor
22 Twitter #NIEMNTE3
CAMV Validation Engine• Standalone XML validator using XPath rules• External code list and SQL table lookup support• Callable via Spring framework or Java API• Configurable error levels – error, warning, info• Context aware and declarative rules approach• Integrated with CAM editor menus for instant testing
Workshop session
23 Twitter #NIEMNTE3
CAM Tutorial WebsiteNIEM IEPD online tutorial video
http://tutorial.cameditor.org
24 Twitter #NIEMNTE3
CAM IEPD Demonstration• Import an existing XML exchange• Add new dictionary components via Drag and Drop• Apply the NIEM NDR evaluation – assess XML exchange quality• Compare to NIEM dictionary
• produce reuse scores, cross-reference spreadsheet, wantlist (SSGT compatible)
• Generate new NIEM compatible XSD schema collection• Adapt exchange use pattern to suit business needs, add data hints• Generate XML examples; validate them with CAMV engine• Document the Exchange; Generate Models
30 Minutes
11
22
33
44
55
66
77
88
25 Twitter #NIEMNTE3
CAM Functions Demonstrated
26 Twitter #NIEMNTE3
What are we working on?• Improvements– Enhancing XML example generation with synthetic data– Aligning WSDL generation with SOA best practices– More business documentation reporting options
• New features– SQL database lookup from CAMV and CAM editor– Dictionary integration with Domain Update Tool– Evaluation tools for dictionaries and components– Integration artifacts generation for SOA services
27 Twitter #NIEMNTE3
Q & A
Download the CAM editor toolkit from:
http://www.cameditor.org