Upload
constance-rose
View
214
Download
1
Embed Size (px)
Citation preview
Software Group / Emerging Technologies
© 2005 IBM Corporation
BICS V2.0Business Information Conformance Statements
….declare YOUR exact information constraints for B2B
Scott HinkelmanSenior Software Engineer
Software Group / Emerging Technologies
© 2003 IBM Corporation2 BICS V2.0
About this Tutorial
1. ALL ABOUT BICS – a presentation about IBM’s BICS specification
2. A BICS DEMO – a demonstration of BICS
3. BICS FUTURE AND DISCUSSION – a round table discussion of BICS, interest, and input for it’s future
Software Group / Emerging Technologies
© 2003 IBM Corporation4 BICS V2.0
What is BICS
“Business Information Conformance Statements”
A specification to state exact constraints on business information.
Software Group / Emerging Technologies
© 2003 IBM Corporation5 BICS V2.0
Motivations
1. The recognition that increased B2B interoperability at the business information layers results from custom information constraints
Most businesses can not use industry-level standards out of the box
Customization of the industry-level standards is typically required
This is a natural result from industry-level consortium’s relaxed/loosely-defined specifications
It is more difficult to reach exact requirements for specifications compared to working within infrastructure-level consortiums Some consortiums now explicitly design toward relaxation
2. The absence of, and need for, a single comprehensive constraint declaration specification
Any kind of data format
Any kind of constraint mechanism
Multiple constraint mechanisms
Software Group / Emerging Technologies
© 2003 IBM Corporation6 BICS V2.0
2 Industry B2B Constraint Trends and Reality
1. Industry-level B2B standards consortiums typically are Relaxed
A typical vertical.org defines standards with mass optionality Difficult to get all members to agree on required fields
Results in “kitchen-sink” standards Every possible element but none required Something everyone can agree to Significantly impacts business-level interoperability
Nothing new – since EDI days
Some groups (OAGIS) explicitly align to this methodology And augment standards with custom partner-specific constraints
BICS is founded in this Reality
2. The need for multilevel B2B constraints
Businesses define additional constraints beyond a vertical.org’s
Vertical.org standards out of the box need profiled – likely per business
Maybe hack the vertical.org schema, maybe a second schema, maybe another mechanism
BICS is founded in this need
Software Group / Emerging Technologies
© 2003 IBM Corporation7 BICS V2.0
What BICS Provides
A framework for defining Information Constraint Mechanisms
Businesses exchange all kinds of information over various infrastructures
A constraint mechanism is information-centric A constraint mechanism is infrastructure agnostic Constraint mechanisms can be defined for any format of information –
XML, binary, etc Constraint mechanisms for information keep coming
DTD, XML Schemas, RELAX, etc
A Constraint Mechanism Processing Model
How the constraint mechanisms are to be processed
Sequentially, any order, etc
Software Group / Emerging Technologies
© 2003 IBM Corporation8 BICS V2.0
Some Capabilities using BICS
A Business can advertise that it supports a specific industry-level standard, but with additional constraints required for its business
Standard Schema X with these additional constraints in Schema Y
Many constraint mechanisms alone are insufficient for defining comprehensive constraints. An Industry consortium can use BICS to specify a comprehensive standard by using more than one constraint mechanism.
Schema X with XPath assertions Y
A Business can advertise that it will accept either of two types of information
Perhaps a .jpg or .gif
………
Software Group / Emerging Technologies
© 2003 IBM Corporation9 BICS V2.0
Relationship to Previous Specification
BI-ICS V1.0 – initial specification IBM-only specification Published on IBM DeveloperWorks 1/2004 Supporting IBM AlphaWorks toolkit released – BI-ICS4J Presented and discussed at several industry-level consortiums with positive
feedback
BICS 2.0 IBM-only specification Renamed (Simplified to just “BICS”) Complete replacement Same fundamental functionality as BI-ICS 1.0 Simplified Now in framework form
Separate specifications Core framework Specific constraint mechanisms
Software Group / Emerging Technologies
© 2003 IBM Corporation10 BICS V2.0
The BICS 2.0 Specifications
BICS 2.0 (the core framework)
Constraint Processing Model
Abstract Constraint Mechanism
W3C XML Schema Constraint Mechanism 1.0
Schematron Constraint Mechanism 1.0
MIME Constraint Mechanism 1.0
[other constraint mechanisms are possible]
Software Group / Emerging Technologies
© 2003 IBM Corporation11 BICS V2.0
BICS – Use Any Mechanisms to State Your Constraints
XSD type system
BICS provides declaring information constraints using pervasive mechanisms, or whatever emerges
MIME type system
Schematron
assertions
(Whatever mechanism)
BICS
Software Group / Emerging Technologies
© 2003 IBM Corporation12 BICS V2.0
BICS 2.0 is Simple
Constraint Processing
Model
Constraint
Mechanism
Example: W3C XML Schema
A BICS document contains an constraint processing model.
The constraint processing model contains one or more constraint mechanisms, and an indicator that specifies how to process the constraint mechanisms (sequentially, etc).
The constraint mechanism type in the core BICS framework is abstract, and is the primary extension point for defining concrete constraint mechanisms.
The processing of a constraint mechanism results in pass/fail, and the overall pass/fail processing of the BICS document is determined by how the constraint mechanisms are considered within the processing model.
abstract
Concrete
Software Group / Emerging Technologies
© 2003 IBM Corporation13 BICS V2.0
Defining a Concrete Constraint Mechanism
A Constraint Mechanism can represent anything that can have an implementation for checking/constraining information
Expressed in W3C XML Schema
Build an XML Schema which provides a concrete extension of the BICS InformationConstraintMechanismType.
Add data specific to the constraint mechanism
<xs:complexType name="TreeDepthType">
<xs:complexContent>
<xs:extension base="bics:InformationConstraintMechanismType">
<xs:sequence>
<xs:element name="MaxDepth" type="xs:nonNegativeInteger" minOccurs="0"/>
Software Group / Emerging Technologies
© 2003 IBM Corporation14 BICS V2.0
Using a Concrete Constraint Mechanism in a BICS Instance Document
A BICS instance document is the Conformance Statement
Declare namespace for the concrete Constraint Mechanism
Specify an instance of mechanism type within the BICS processing model
<InformationConformanceStatement xmlns=“……“ xmlns:tdcm=“….“ xmlns:xsi=“…." xsi:schemaLocation=“….”>
<Name>….</Name>
<Description>……</Description>
<InformationConstraintProcessingModel modelType="sequence">
<InformationConstraint xsi:type="tdcm:TreeDepthType">
<Name>…..</Name>
<TypeName>Tree Depth Constraint Mechanism</TypeName>
<Description>….</Description>
<tdcm:MaxDepth>4</tdcm:MaxDepth><xs:complexType name="TreeDepthType">
Software Group / Emerging Technologies
© 2003 IBM Corporation15 BICS V2.0
Constraint Processing Models
A BICS instance document contains an Information Constraint Processing Model
Contains 1 or more Information Constraints
Specifies a Model:
– Sequential: all must be processed successfully, order matters
– All: all must be processed successfully, order does not matter
– Any: at least one must be processed successfully, order does not matter
<InformationConstraintProcessingModel modelType="sequence">
<InformationConstraint xsi:type=“………….">
...................
<InformationConstraint xsi:type=“………….">
...................
Software Group / Emerging Technologies
© 2003 IBM Corporation16 BICS V2.0
Example 1
Two Schemas processed sequentially
– First schema owned by a standards organization
– Second schema specifies additional constraints
Could be advertised as: “We support schema 1 from standards body X and have additional constraints”
Software Group / Emerging Technologies
© 2003 IBM Corporation17 BICS V2.0
Example 1….<InformationConformanceStatement xmlns="http://ibm.com/xml/namespaces/businessinformationconformancestatement"
xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:w3ccm="http://ibm.com/xml/namespaces/w3cxmlschemainformationconstraint" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://ibm.com/xml/namespaces/businessinformationconformancestatement
./businessinformationconformancestatement.xsd http://ibm.com/xml/namespaces/w3cxmlschemainformationconstraint
./w3cmechanism.xsd">
<Description>This conformance statement defines two W3C XML Schema constraint mechanisms by referencing a URLs.</Description>
<InformationConstraintProcessingModel modelType="sequence">
<InformationConstraint xsi:type="w3ccm:W3CXMLSchemaInformationConstraintMechanismType">
<Name>Industry standard schema reference</Name>
<TypeName>W3C XML Schema</TypeName>
<Description>This constraint mechanism, a W3C XML Schema for member information, and is located at the URL below.</Description> <ProcessableConstraintURL>http://members.org/constraintmechanisms/w3cxmlschema/member.xsd</ProcessableConstraintURL>
</InformationConstraint>
<InformationConstraint xsi:type="w3ccm:W3CXMLSchemaInformationConstraintMechanismType">
<Name>Additional Constraints</Name>
<TypeName>W3C XML Schema</TypeName>
<Description>This constraint mechanism, a W3C XML Schema has increased constraint types for member information, and is located at the URL below.</Description>
<ProcessableConstraintURL>http://company.com/constraintmechanisms/w3cxmlschema/modified-member.xsd</ProcessableConstraintURL>
</InformationConstraint>
</InformationConstraintProcessingModel>
</InformationConformanceStatement>
Software Group / Emerging Technologies
© 2003 IBM Corporation18 BICS V2.0
Example 2
Two MIME types specified – information to be processed as an “any”
– First MIME type is a . Jpg image type
– Second MIME type is a .gif image type
Interpreted as: “Information is conformant if either a .jpg or .gif
Software Group / Emerging Technologies
© 2003 IBM Corporation19 BICS V2.0
Example 2….
<InformationConformanceStatement xmlns="http://ibm.com/xml/namespaces/businessinformationconformancestatement" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:mime="http://ibm.com/xml/namespaces/mimeinformationconstraint" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://ibm.com/xml/namespaces/businessinformationconformancestatement
./businessinformationconformancestatement.xsd http://ibm.com/xml/namespaces/mimeinformationconstraint
./mimemechanism.xsd">
<InformationConstraintProcessingModel modelType="any">
<InformationConstraint xsi:type="mime:MIMEInformationConstraintMechanismType">
<Name>jpg image constraint</Name>
<TypeName>MIME Constraint Mechanism</TypeName>
<Description>This constraint, a MIME type, indicates jpg information.</Description>
<mime:MIMEType>image/.jpg</mime:MIMEType>
</InformationConstraint>
<InformationConstraint xsi:type="mime:MIMEInformationConstraintMechanismType">
<Name>gif image constraint</Name>
<TypeName>MIME Constraint Mechanism</TypeName>
<mime:MIMEType>image/.gif</mime:MIMEType>
</InformationConstraint>
</InformationConstraintProcessingModel>
</InformationConformanceStatement>
Software Group / Emerging Technologies
© 2003 IBM Corporation20 BICS V2.0
Points and Possibilities
BICS essentially provides and indirection between information and what constraints mechanisms are needed for syntax/structural conformance
BICS does not address semantics, just syntax/structure
– Interesting to explore BICS supporting semantics
In a B2B environment, performance could be a concern using BICS
– Not every B2B environment
– Keep in mind separation of what is declared in BICS from what form it could take at runtime
• “BICS complier”
Interesting to explore BICS as an extension to J2EE deployment descriptors
Interesting to explore BICS as an Axis handler
Software Group / Emerging Technologies
© 2003 IBM Corporation21 BICS V2.0
XML Business Content – A Classic View of Schema-Based Constraint Processing
ContentInstance
XML Schema
Application
Parser
Schema Validation(syntax/structure checking)
Application checks additional syntax
Application Must Also Check Syntax
More syntax/structure checking (and
semantic)
Software Group / Emerging Technologies
© 2003 IBM Corporation22 BICS V2.0
Content Instance
XML Business Content –BICS – Based Constraint Processing
Schema Validation
XSL Processor
Example: Two Constraint Mechanisms, Sequence Conformance Model
Conformance Engine
ConformanceStatement
12
Application
Applications do not check syntax
or structure
Software Group / Emerging Technologies
© 2003 IBM Corporation23 BICS V2.0
DeploymentDescriptor Business Service Logic
Container
Application Server
ConformanceStatement Conformance
Descriptor-App involvement style
• Extend Deployment descriptor Ref Conformance Statement + “Application Involvement Style”
Conceptual Product Deployment
ConformanceEngine
• Conformance Engine function inside container• Container executes the engine prior to application handoff
Software Group / Emerging Technologies
© 2003 IBM Corporation24 BICS V2.0
Business Service Logic
Container
Application Server
ConformanceEngine
Event-Style Application Involvement
Application receives Go/Cancel from Container’s Engine
Other Involvement Styles – for DOM, DataBinding (JAXB, XMLBeans), etc
Go / Cancel
Application receives Event Objects from Engine
Container’s Conformance Engine processes Conformance Statement
Application receives Event Objects Think SAX Events
Event Objects
Software Group / Emerging Technologies
© 2003 IBM Corporation25 BICS V2.0
BICS Value in an On Demand World
1. A business can declare/advertise precise and comprehensive B2B constraints based on profiled industry-level content standards if needed any format of data
2. A business can still advertise support for a industry standard
3. Elimination of structural conformance checking in application logic Application server runtime can provide comprehensive payload checking Process a Conformance Statement prior to application logic handoff
The function of the IBM AlphaWorks Conformance Engine Simplifies the B2B application programming model
Software Group / Emerging Technologies
© 2003 IBM Corporation26 BICS V2.0
IBM’s AlphaWorks Proof of Concept
Will be Updated to support for BICS 2.0
A ‘Conformance Engine’ that interprets the conformance statement and calls appropriate ‘Conformance Enforcer’ objects
A GUI ‘Manipulator’ for building/editing an BICS and checking conformance against a file of information
Oriented toward function not performance
Built on Java 1.5, Apache XML Beans, Xerces, Xalan
Plug-in framework for increasing constraint mechanisms Made possible by BICS 2.0 XML Framework
Software Group / Emerging Technologies
© 2003 IBM Corporation27 BICS V2.0
Conformance Engine interface
//establish a Conformance EngineConformanceEngine ce= new ConformanceEngine();
//check informance conformance.ConformanceResult cr= ce.enforceStatement(ICS, businessinfo);//Note: typical use is through the engine’s stream interface
//Check if information is conformantif(cr.getResult()==ConformanceResult.RESULT_YES){ //info is conformant}if(cr.getResult()==ConformanceResult.RESULT_NO){ //info is not conformant}if(cr.getResult()==ConformanceResult.RESULT_UNKNOWN){ //info conformance not known }
Software Group / Emerging Technologies
© 2003 IBM Corporation28 BICS V2.0
Introduction Article from BI-ICS 1.0
http://www-106.ibm.com/developerworks/xml/library/x-biics/
BI-ICS 1.0 Spec
ftp://www6.software.ibm.com/software/developer/library/x-biics/BI-ICSSpec_v1.html
IBM AlphaWorks Java implementation for BI-ICS 1.0
http://www.alphaworks.ibm.com/tech/biics4j
1.0 Links
Software Group / Emerging Technologies
© 2003 IBM Corporation30 BICS V2.0
BICS Future and Discussion
Software Group / Emerging Technologies
© 2003 IBM Corporation31 BICS V2.0
Thank You
Scott [email protected]