Software Group / Emerging Technologies © 2005 IBM Corporation BICS V2.0 Business Information...

31
Software Group / Emerging Technologies © 2005 IBM Corporation BICS V2.0 Business Information Conformance Statements ….declare YOUR exact information constraints for B2B Scott Hinkelman Senior Software Engineer

Transcript of Software Group / Emerging Technologies © 2005 IBM Corporation BICS V2.0 Business Information...

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

All About BICS

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

A BICS Demo

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]