BICS V2.0 Business Data Conformance Articulations - PowerPoint PPT Presentation

slide1 l.
Skip this Video
Loading SlideShow in 5 Seconds..
BICS V2.0 Business Data Conformance Articulations PowerPoint Presentation
BICS V2.0 Business Data Conformance Articulations

play fullscreen
1 / 31
Download Presentation
Views
Download Presentation

BICS V2.0 Business Data Conformance Articulations

Presentation Transcript

  1. BICS V2.0Business Information Conformance Statements….declare YOUR exact information constraints for B2B Scott Hinkelman Senior Software Engineer

  2. About this Tutorial • ALL ABOUT BICS – a presentation about IBM’s BICS specification • A BICS DEMO – a demonstration of BICS • BICS FUTURE AND DISCUSSION – a round table discussion of BICS, interest, and input for it’s future BICS V2.0

  3. All About BICS BICS V2.0

  4. What is BICS “Business Information Conformance Statements” A specification to state exact constraints on business information. BICS V2.0

  5. Motivations • 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 • 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 BICS V2.0

  6. 2 Industry B2B Constraint Trends and Reality • 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 • 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 BICS V2.0

  7. 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 BICS V2.0

  8. 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 • ……… BICS V2.0

  9. 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 BICS V2.0

  10. 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] BICS V2.0

  11. BICS – Use Any Mechanisms to State Your Constraints BICS provides declaring information constraints using pervasive mechanisms, or whatever emerges XSD type system BICS MIME type system Schematron assertions (Whatever mechanism) BICS V2.0

  12. 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. BICS 2.0 is Simple Constraint Mechanism Constraint Processing Model abstract Concrete Example: W3C XML Schema BICS V2.0

  13. 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"/> BICS V2.0

  14. 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"> BICS V2.0

  15. 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=“…………."> ................... BICS V2.0

  16. 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” BICS V2.0

  17. 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> BICS V2.0

  18. 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 BICS V2.0

  19. 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> BICS V2.0

  20. 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 BICS V2.0

  21. Application checks additional syntax  More syntax/structure checking (and semantic) Application Must Also Check Syntax  XML Business Content – A Classic View of Schema-Based Constraint Processing Application Schema Validation (syntax/structure checking) Parser Content Instance XML Schema BICS V2.0

  22. Applications do not check syntax or structure  Conformance Engine Conformance Statement 1 2 Application Schema Validation XSL Processor Example: Two Constraint Mechanisms, Sequence Conformance Model XML Business Content –BICS – Based Constraint Processing Content Instance BICS V2.0

  23. Deployment Descriptor Business Service Logic Conformance Descriptor • App involvement style Conformance Statement Container Conformance Engine Application Server • Extend Deployment descriptor Ref Conformance Statement + “Application Involvement Style” • Conformance Engine function inside container • Container executes the engine prior to application handoff Conceptual Product Deployment BICS V2.0

  24. Event Objects Go / Cancel • Application receives Event Objects from Engine • Container’s Conformance Engine processes Conformance Statement • Application receives Event Objects • Think SAX Events • Application receives Go/Cancel from Container’s Engine • Other Involvement Styles – for DOM, DataBinding (JAXB, XMLBeans), etc Event-Style Application Involvement Business Service Logic Container Conformance Engine Application Server BICS V2.0

  25. BICS Value in an On Demand World • A business can declare/advertise precise and comprehensive B2B constraints • based on profiled industry-level content standards if needed • any format of data • A business can still advertise support for a industry standard • 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 BICS V2.0

  26. 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 BICS V2.0

  27. Conformance Engine interface //establish a Conformance Engine ConformanceEngine 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 conformant if(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 } BICS V2.0

  28. 1.0 Links 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 BICS V2.0

  29. A BICS Demo BICS V2.0

  30. BICS Future and Discussion BICS V2.0

  31. Thank You Scott Hinkelmansrh@us.ibm.com BICS V2.0