1 / 10

Steve Hanson Suman Kalia smh@uk.ibm kalia@ca.ibm

Describing non-XML data using XML Schema in IBM WebSphere Business Integration Brokers. Steve Hanson Suman Kalia smh@uk.ibm.com kalia@ca.ibm.com. Agenda. Broker Overview Message Parsing Message Modeling

amanda
Télécharger la présentation

Steve Hanson Suman Kalia smh@uk.ibm kalia@ca.ibm

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Describing non-XML data using XML Schema in IBM WebSphere Business Integration Brokers Steve Hanson Suman Kalia smh@uk.ibm.com kalia@ca.ibm.com

  2. Agenda • Broker Overview • Message Parsing • Message Modeling • The Message Model • XML Schema Annotations • Background History • Further Reading

  3. Broker Overview WebSphere Business Integration Message Broker (WBI-MB) enables information packaged as messages to flow between different business applications, ranging from large legacy systems through to unmanned devices.A message may be transformed on its way through the broker by a message flow.

  4. Message Parsing <Person age=’32’ height=‘172’> <Name>Joe Bloggs</Name> </Person> Element Person Element age Element height Element Name struct { int height; int age; char Name[48]; } Person; 172 32 Joe Bloggs On input, the broker receives a message bitstream and parses it into a logical message tree (similar to an SDO datagraph). On output, the broker serializes a message tree into a message bitstream. The parser and serializer understand the structure of the message because it has been modeled by the user in a message set.

  5. Message Modeling A message set contains one or more message models. A message model is created using an Eclipse-based toolkit, either by an importer or by hand using a specialized editor. When complete, the message set is generated into a dictionary form for use by the message broker runtime. It may also be generated into other formats for consumption by other applications.

  6. The Message Model • A message model comprises a Logical Model and one or more Physical Models • The Logical Model is XML Schema with some minor extensions • Describes the logical structure of the message • The Physical Model uses the OMG Common Application Metamodel (CAM) • CAMincludes COBOL, C, PL/1, TypeDescriptor, TDLang models • Specifically, Physical Model extends CAM TypeDescriptor • Describes the physical layout of the message ‘on the wire’ • A Physical Model has a name • A message model is serialized in a .mxsd file • This is an XML Schema .xsd file • With additional constructs for the Physical Model • The constructs used arexsd:appinfo style xsd:annotations • Values of Physical Model properties • Names of model objects to enable reconstitution of model • Physical Model is sparse for scalability • Typically only non-default property values are serialized

  7. Example Annotation – xsd:string Identifies owner of appinfo Name of Physical model Enables model to be reconstituted Mix of TD & our own properties <xsd:element name="Location" type="xsd:string"> <xsd:annotation> <xsd:appinfo source="WMQI_APPINFO"> <cwfInclRepmessageSetDefaultRep="C_wire_format"> <cwfSimpleRepaccessor="readWrite" addrUnit="byte" alignment="byte" attributeInBit="false" bigEndian="false" characterSize="1" contentSize="32" encodingNull="NullPadFill" encodingNullValue="" lengthUnits="Bytes" lengthEncoding="fixedLength" offset="0" paddingCharacter="SPACE" size="32" stringJustification="rightJustify" typeName="MRCWFStringRep"width="32"/> </cwfInclRep> </xsd:appinfo> </xsd:annotation> </xsd:element>

  8. Example Annotation – xsd:int Identifies owner of appinfo Name of Physical model Enables model to be reconstituted Mix of TD & our own properties <xsd:element name=“Duration" type="xsd:int"> <xsd:annotation> <xsd:appinfo source="WMQI_APPINFO"> <cwfInclRepmessageSetDefaultRep="C_wire_format"> <cwfSimpleRepaccessor="readWrite" addrUnit="byte" alignment="word" attributeInBit="false" base="2" baseInAddr="8" baseUnits="3 baseWidth="1" bigEndian="false" contentSize="4" offset="320" signCoding="twosComplement" signed="true" size="4" typeName="MRCWFIntegerRep"width="4"/> </cwfInclRep> </xsd:appinfo> </xsd:annotation> </xsd:element>

  9. Background History • Development work on broker started in 1998 • Original logical & physical message models were proprietary • First release of broker (MQSI V2) in 1Q 2000 • Work started in 2000 on new standards based message model • First shipped in broker (WBI-MB V5) in 2Q 2003

  10. Further Reading • Message Broker Toolkit on-line help • http://www-306.ibm.com/software/integration/wbimessagebroker/library/ • OMG “UML for Enterprise Application Integration” • Includes CAM • http://www.omg.org/cgi-bin/doc?formal/2004-03-26

More Related