Customization Discussion Revised 29 August 2007. Guidelines for Customization Introduction Design...

36
Customization Discussion Revised 29 August 2007

Transcript of Customization Discussion Revised 29 August 2007. Guidelines for Customization Introduction Design...

Page 1: Customization Discussion Revised 29 August 2007. Guidelines for Customization Introduction Design For conformance For compatibility Specification Using.

Customization DiscussionRevised 29 August 2007

Page 2: Customization Discussion Revised 29 August 2007. Guidelines for Customization Introduction Design For conformance For compatibility Specification Using.

Guidelines for Customization• Introduction• Design

• For conformance • For compatibility

• Specification• Using UBL 1.0 Context Methodology• Using Schema

• Subset Schema• Using UBLExtension

• Using XPath• Validation

• Identifying customizations• Validating documents conform to the required model.

Page 3: Customization Discussion Revised 29 August 2007. Guidelines for Customization Introduction Design For conformance For compatibility Specification Using.

Definitions: Customization

• Customization: • To alter something in order to better fit actual

requirements. • UBL Customization:

• The description of XML instances, or XML-based applications acting on those instances, that are somehow based on or derived from the UBL 2.0 specification.

• The goal is to maximize interoperability so that all parties understand the meaning of information in the documents being exchanged.

Page 4: Customization Discussion Revised 29 August 2007. Guidelines for Customization Introduction Design For conformance For compatibility Specification Using.

When to Customize• Decision is whether to use UBL as-is or modify

to satisfy additional requirements.• Historically, businesses have not been given a

satisfactory off-the-shelf solution.• Although, for many, UBL will suit that need,

there will still be those who have additional requirements that are not met.

• The decision is driven by real world needs balanced against perceived economic benefits.

Page 5: Customization Discussion Revised 29 August 2007. Guidelines for Customization Introduction Design For conformance For compatibility Specification Using.

Definitions: Conformance• Instances:

• An XML instance is considered UBL conformant if there are no constraint violations when validating the instance against a published UBL schema.

• Systems:• Producer

• The system will produce an instance that will validate against any UBL schema whose minor version number (within the indicated major range) is equal to or greater than the version to which the system claims conformance.

• Consumer • The system will accept instances that validate

against any UBL schema whose minor version number (within the indicated major range) is equal to or less than the version to which the system claims conformance.

Page 6: Customization Discussion Revised 29 August 2007. Guidelines for Customization Introduction Design For conformance For compatibility Specification Using.

Definitions: Compatibility

• To be consistent or in keeping with the principles behind UBL's models and/or their development.

• While we cannot expect automatic conformance and interoperability of these customized documents we can expect some degree of familiarity through the re-use of common patterns.

Page 7: Customization Discussion Revised 29 August 2007. Guidelines for Customization Introduction Design For conformance For compatibility Specification Using.

DESIGN

Page 8: Customization Discussion Revised 29 August 2007. Guidelines for Customization Introduction Design For conformance For compatibility Specification Using.

Design for Conformance• All schema-valid instances of a conformant

customization are simultaneously schema-valid instances of UBL.• But not the other way around.

• Conformance design only allows for restrictions:• Subsets of the document model.• Constraints on document content.

Page 9: Customization Discussion Revised 29 August 2007. Guidelines for Customization Introduction Design For conformance For compatibility Specification Using.

Subsets of the Document Model• If all information entities within a UBL Order were

instantiated in a single document, we would find approximately 800,000 elements.• Applications may not wish to process this massive

structure.• Subsets remove from the document model any optional

information entities that are not needed to satisfy business requirements.

• Subsets cannot reduce the permitted minimum number of occurrences or extend the permitted maximum number of occurrences.• 0..1 can become 1..1, or 0..0 (not used)• 0..n can become 0..1, 1..n, or 0..0 (not used)• 1..n can become 1..1• 1..1 cannot be restricted

Page 10: Customization Discussion Revised 29 August 2007. Guidelines for Customization Introduction Design For conformance For compatibility Specification Using.

Constraints on Document Content• Some requirements involve additional constraints

on the value space of information entities.• "The Total Value of an Order cannot exceed

$100,000“• "The Currency Code should be expressed

using ISO 4217 codes".• There may also be rules about dependencies

between values of components• "The Shipping Address must be the same as

the Billing Address“• "The Start Date must be earlier than the End

Date“• Code lists or enumerated lists of possible values

are a common form of value constraints.

Page 11: Customization Discussion Revised 29 August 2007. Guidelines for Customization Introduction Design For conformance For compatibility Specification Using.

Designing for Compatibility

• All schema-valid instances of a compatible customization are not schema-valid instances of UBL.• But may be the other way around.

• Compatible design only allows for extensions (supersets)• Adding to the model any information entities

that are needed to satisfy business requirements.

Page 12: Customization Discussion Revised 29 August 2007. Guidelines for Customization Introduction Design For conformance For compatibility Specification Using.

Design Criteria for Compatibility

• Re-use UBL Patterns:• Re-use Information Entities.• Re-use Datatypes.

• Use UBL principles for new BIEs:• Normalize aggregates.• Base on component model.• Re-use patterns.• Use ebXML CCTS.• Use UBL NDR for any schema.

Page 13: Customization Discussion Revised 29 August 2007. Guidelines for Customization Introduction Design For conformance For compatibility Specification Using.

Possible Extensions

• New BBIEs• Original Data Types• New Data Types

• New ASBIEs• New ABIEs

• By inclusion of UBL• By association with UBL

• New document types• New assemblies

Page 14: Customization Discussion Revised 29 August 2007. Guidelines for Customization Introduction Design For conformance For compatibility Specification Using.

New Document type

New ABIE

New BBIE (or ASBIE)

The Customization Ripple Effect

New Data Type

Drop a change into any

point and it ripples out

NBWavelength equates to precision of context of use.

Page 15: Customization Discussion Revised 29 August 2007. Guidelines for Customization Introduction Design For conformance For compatibility Specification Using.

• A customized ABIE means creating a new ABIE.• Customizing a BBIE creates a new ABIE

• Customizing a Data Type creates a new BBIE

• Customizing an ASBIE creates a new ABIE• Any new ABIE means a new document type.

The Customization Ripple Effect

Page 16: Customization Discussion Revised 29 August 2007. Guidelines for Customization Introduction Design For conformance For compatibility Specification Using.

The Atomic Rule

• The ripple effect creates “the Atomic Rule”… • All UBL ABIEs must be treated as if each is a

single, indivisible entity, conveying its unique structure, assigned meanings and identity as described by its schema. This applies recursively down through each and every constituent ASBIE, BBIE, and Data Type used.

• Applications must know what to expect.• e.g. A UBL “Address” is always the same

structure.

Page 17: Customization Discussion Revised 29 August 2007. Guidelines for Customization Introduction Design For conformance For compatibility Specification Using.

Re-using ABIEs by Association

• If the required aggregation has the same structure as an existing ABIE.

• New Association (ASBIE) with the existing ABIE.• Just different context of use.• Use qualifying terms to describe the role.

• For example, Address • Re-used in contexts such as Postal_ Address,

Delivery_ Address, and Pickup_ Address. • Postal_, Delivery_, and Pickup_ are qualifying

terms.• All the same structure for Address.

Page 18: Customization Discussion Revised 29 August 2007. Guidelines for Customization Introduction Design For conformance For compatibility Specification Using.

Qualification of Names• The ebXML Core Component Technical

Specification supports the idea of qualifying the Property Terms of Dictionary Entry Names as a means of indicating a context of use.

• The qualifying terms should describe the role of the BIE.

Page 19: Customization Discussion Revised 29 August 2007. Guidelines for Customization Introduction Design For conformance For compatibility Specification Using.

Extending ABIEs by Inclusion• If the required aggregation is an extension of an existing

ABIE:• New Aggregate (ABIE) • New ABIE has a new name

• not a qualified name.• The new ABIE includes the extended ABIE as a child (by

association). • For example:

• Buyer Party is a new ABIE• has a different structure to Party.

• The Party structure is re-used by inclusion in Buyer Party ABIE.

• Buyer Party also has additional BIEs.• The name Buyer Party is not a qualification of the

name Party.

Page 20: Customization Discussion Revised 29 August 2007. Guidelines for Customization Introduction Design For conformance For compatibility Specification Using.

Customizing Data Types• Another form of re-use by association.• Known as qualifying Data Types.• Qualifying Data Types can re-use Unqualified Data

Types.• As defined by CCTS.• Currency_ Code. Type is a restriction on the Code

Data Type.• Qualifying Data Types can also re-use other Qualified

Data Types.• European Currency_ Code. Type is a restriction on

the Currency_ Code Data Type.• Always use genericode for defining values of Data

Types.

Page 21: Customization Discussion Revised 29 August 2007. Guidelines for Customization Introduction Design For conformance For compatibility Specification Using.

Creating Customized Document Models

• Assemble new pathways from customized model.

• Principles for document assembly...• Choose entry point ABIE.• Noting cardinality constraints…

• Assemble required BBIEs.• Assemble required associations to

other ABIEs.• Proceed recursively through other ABIEs.

Page 22: Customization Discussion Revised 29 August 2007. Guidelines for Customization Introduction Design For conformance For compatibility Specification Using.

SPECIFICATION

Page 23: Customization Discussion Revised 29 August 2007. Guidelines for Customization Introduction Design For conformance For compatibility Specification Using.

• Using UBL 1.0 Context Methodology• Using Schema

• Subset Schema• Using UBLExtension

• Using XPath

Specify UBL customizations

Page 24: Customization Discussion Revised 29 August 2007. Guidelines for Customization Introduction Design For conformance For compatibility Specification Using.

Specifying Customizations: Context of Use

• ebXML CCTS Context • Based on the premise that by using

formalized classification taxonomies (context drivers) will allow automatic identification of context.

• Context drivers have been provided for the current UBL BIEs.

• This is part of ongoing work, and as yet the necessary methodology to achieve this level of automation has not been developed.

Page 25: Customization Discussion Revised 29 August 2007. Guidelines for Customization Introduction Design For conformance For compatibility Specification Using.

UBL 1.0 Context Methodology

• Based on W3C Schema Derivation • Ensures backwards compatibility

• Relatively straightforward• Supports inheritance• Maintains semantic lineage

• my:NewParty extends cac:Party• my:NewParty is a cac:Party

Page 26: Customization Discussion Revised 29 August 2007. Guidelines for Customization Introduction Design For conformance For compatibility Specification Using.

Issues with Context Methodology

• Unable to declare derivatives of the extension point

• Unable to express different enumeration restrictions based on context

• Unable to express co-occurrence constraints• Unable to elide optional elements through

derivation• Unable to maintain UBL conventions using XSD

extension

Page 27: Customization Discussion Revised 29 August 2007. Guidelines for Customization Introduction Design For conformance For compatibility Specification Using.

Specifying Customizations: W3C XML Schema

• Generate new schemas.• Edit a model representation and translate the

model into a schema expression• GEFEG.FX by GEFEG mbH• UBLer by Invinet Systems• UBLish (UBL inter-schema helper) by SoftML

• Adhere to UBL NDRs• Create new schemas.

• Edit an existing UBL schema • either by hand or by a program • "Simplified UBL schema customization"

(Crane Resources)

Page 28: Customization Discussion Revised 29 August 2007. Guidelines for Customization Introduction Design For conformance For compatibility Specification Using.

Specifying Customizations: UBLExtensions

• Provided as a means of specifying (at a schema level) extensions to the document model without affecting UBL conformance.

• A placeholder for extensions.• Has no inherent constraints.

• Uses xsd:any• UBLExtensions content model should aim for

UBL compatibility.

Page 29: Customization Discussion Revised 29 August 2007. Guidelines for Customization Introduction Design For conformance For compatibility Specification Using.

Content of UBLExtensions

• ‘ExtensionContent’ should contain a collection of the extended BIES• required for the context of use.

• Extensions should never be used for information that may properly be conveyed in standard UBL patterns elsewhere in the document.

• Injudicious use will have damaging consequences for interoperability of documents.

Page 30: Customization Discussion Revised 29 August 2007. Guidelines for Customization Introduction Design For conformance For compatibility Specification Using.

Limitations with UBLExtension• If there are embedded optional extensions.

• The instance of the document may not use the extension every time…

• And the values in the UBLExtension need to identify which parent they belong to.

• Example:• Item may be extended to have Carbon

Emission Rating.• Not all items will have a rating.• If the document has several items which ones

do the Carbon Emission Ratings refer to.

Page 31: Customization Discussion Revised 29 August 2007. Guidelines for Customization Introduction Design For conformance For compatibility Specification Using.

Specifying Customizations: XPath

• A set of XPaths can express all of the possible combinations of XML hierarchy for the information items described by a document model.

• They can be generated from:• XSD schemas• XML instances• UBL spreadsheets (or any spreadsheets

describing content nesting and definition)

Page 32: Customization Discussion Revised 29 August 2007. Guidelines for Customization Introduction Design For conformance For compatibility Specification Using.

VERIFICATION

Page 33: Customization Discussion Revised 29 August 2007. Guidelines for Customization Introduction Design For conformance For compatibility Specification Using.

Identifying Customizations• Profiles enable 'families' of customizations.

• For example, “Stand Alone Invoicing” may be a profile for the “Northern European Subset” customization.

• Meaning the requirements for stand alone invoicing in the northern European context.

• The following BBIEs allow instances to identify their customization specification:• 'UBLVersionID'

• the UBL version being customized. • 'UBLCustomizationID'

• an identifier (such as a namespace) for a specified customization of UBL.

• 'UBLProfileID' • an identifier (such as a namespace) for a specified

profile of the customization being used.

Page 34: Customization Discussion Revised 29 August 2007. Guidelines for Customization Introduction Design For conformance For compatibility Specification Using.

Validating Customizations:Subset Schema

• The UBL 2.0 Small Business Subset is one example of how a conformant subset may be specified through the use of a subset schema• All instances of UBL 2.0 SBS are instances of

full UBL 2.0• The UBL 2.0 SBS schemas are pruned copies

of the normative UBL 2.0 schemas• Research is underway to demonstrate the

pruned schemas are provably correct proper subsets of the full schemas

Page 35: Customization Discussion Revised 29 August 2007. Guidelines for Customization Introduction Design For conformance For compatibility Specification Using.

Validating Customizations: XPath

• XPaths can be utilized to check for the presence of a given information item.

• An exhaustive proof of conformance and compatibility can be implemented using XPath files.

• An XPath file can be rigorously tested as being a proper subset of UBL by programmatically checking: • all of the XPath entries of the subset are found in

UBL.• none of the mandatory items in the UBL are missing

from the subset. • An XPath file can be rigorously tested as being a proper

superset of UBL by programmatically checking:• none of the mandatory items in the UBL are missing

from the superset.

Page 36: Customization Discussion Revised 29 August 2007. Guidelines for Customization Introduction Design For conformance For compatibility Specification Using.

Multi-Stage Validation• A UBL schema defines UBL conformance.• Other processes apply additional validation.

• Customized Document Model validation.• Document Content validation.

• Pre-conformance processes• Separate extensions.

• Post-conformance processes• Validate restrictions.

• e.g. UBL Code List Value Validation methodology.

• Experience suggests we will evolve toward this approach.