1 Introduction

Baseline Metadata Specification
Version: 1.2
Date: 2006-10-08
Project:
Document:
Baseline
81917631
Version: 1.2
Date: 2006-10-08
Table of contents
1
INTRODUCTION ........................................................................................................................................ 3
1.1
1.2
1.3
1.4
2
GENERAL DESCRIPTION............................................................................................................................ 3
REVISION HISTORY .................................................................................................................................. 3
REFERENCE DOCUMENTS ......................................................................................................................... 3
ABBREVIATIONS ...................................................................................................................................... 3
PROPERTIES ............................................................................................................................................... 4
2.1
2.2
2.3
2.4
2.5
2.6
2.7
2.8
2.9
2.10
INTEGRATIONID ....................................................................................................................................... 4
CONTRACTID ........................................................................................................................................... 4
LOGICALID .............................................................................................................................................. 5
PHYSICALID ............................................................................................................................................. 6
TRANSACTIONID ...................................................................................................................................... 6
SEQUENCE ............................................................................................................................................... 7
INITITIALTIMESTAMP ............................................................................................................................... 7
MESSAGEID ............................................................................................................................................. 8
INITITALMESSAGEID................................................................................................................................ 8
DOCUMENTID .......................................................................................................................................... 9
2 (9)
Project:
Document:
Baseline
81917631
Version: 1.2
Date: 2006-10-08
1
Introduction
1.1
General description
This document defines the metadata properties used in the Baseline Integration
Platform.
1.2
1.3
Revision History
Version
Date
Description
Author
1.0
2006-04-20
Created
Niklas Gustavsson
1.1
2006-04-21
Addition of DocumentId
Niklas Nilsson
1.2
2006-10-08
Added data types and validation
patterns
Niklas Gustavsson
Reference documents
Document name
1.4
Version
Abbreviations
WMQ
WebSphere MQ
JMS
Java Messaging Service
3 (9)
Project:
Document:
2
Baseline
81917631
Version: 1.2
Date: 2006-10-08
Properties
These properties are metadata set on a message (e.g. a WMQ message or HTTP request).
They are used for different purposed, for example routing, dynamic configuration and
message tracing.
None of the properties are mandatory, but ContractId, LogicalId and TransactionId are
recommended to use at all times.
For each property, a validation pattern is provided. The pattern is described in the Java
Regular Expression syntax as described at
http://java.sun.com/j2se/1.4.2/docs/api/java/util/regex/Pattern.html.
2.1
IntegrationId
Contains the unique identifier for the integration of which a message is part, e.g.
ZYS001.
Data type
Maximum length
Validation pattern
String
8
[A-Z]{1,4}\d{1,4}
Location
2.2
Protocol
Location
Comment
WMQ
RFH2/usr/IntegrationId
JMS
String property
“IntegrationId”
HTTP
X-Baseline-IntegrationId
ContractId
The ContractId contains the unique identifier for the contract of which a message is
part, e.g. ZYS001A. It is created from the integration ID, with sequential letters added.
In the letter sequence, Z is followed by AA.
Data type
Maximum length
Validation pattern
String
10
[A-Z]{1,4}\d{1,4}[A-Z]{1,2}
Location
Protocol
Location
Comment
4 (9)
Project:
Document:
2.3
Baseline
81917631
Version: 1.2
Date: 2006-10-08
Protocol
Location
Comment
WMQ
RFH2/usr/ContractId
JMS
String property
“ContractId”
HTTP
X-Baseline-ContractId
LogicalId
A LogicalId contains the business identifier for an entity, for example the order number
or employee social ID.
Multiple logical Ids (stored in LogicalIds) can be optionally types using the
“Type”=”LogicalId” construction. Multiple logical Ids are delimited using the pipe (|)
character, e.g.:
OrderNo=40920|OrderNo=40921|OrderNo=40922
or
OrderNo=40920|PartId=HJ89|OrderNo=40921|PartId=KU67
Data type
Maximum
length
Validation pattern
Single logical ID
String
100
^.{1,100}$
Multiple logical
IDs
String
100 per
Logical Id
^(([^|=]{1,100}=)?([^|]{1,100})\|?)+$
Location
Protocol
Location
Comment
WMQ
RFH2/usr/LogicalId
Contains a single untyped, logical ID
JMS
String property
“LogicalId”
Contains a single untyped, LogicalId
HTTP
X-Baseline-LogicalId
Contains a single untyped, LogicalId
WMQ
RFH2/usr/LogicalIds
Contains multiple, optionally typed, logical IDs.
JMS
String property
“LogicalIds”
As above
HTTP
X-Baseline-LogicalIds
As above
5 (9)
Project:
Document:
2.4
Baseline
81917631
Version: 1.2
Date: 2006-10-08
PhysicalId
The PhysicalId is the physical identifier for a message, typically a file name or database
table identifier. For example: “orders-20060420.xml”. Used by components (for example
adapters) when converting between messages and the delivery format, for example a
file.
Data type
Maximum length
Validation pattern
String
250
.{1,250}
Location
2.5
Protocol
Location
Comment
WMQ
RFH2/usr/PhysicalId
JMS
String property “PhysicalId”
HTTP
X-Baseline-PhysicalId
TransactionId
The TransactionId is used as an identifier for a message transaction. A transaction is all
integration events the follows due to an event that generates a first message. A
component that understands this property should set it if not already initiated. If an
InitialMessageId exists, it should be used to initiate the TransactionId. If no
InitialMessageId exists, the MessageId should be used. If no MessageId exists, a new
unique identifier must be generated.
The identifier should be globally unique, thus when generating the identifier within an
application, using a UUID is recommended.
Data type
Maximum length
Validation pattern
String
100
.{1,100}
Location
Protocol
Location
WMQ
RFH2/usr/TransactionId
JMS
String property “TransactionId”
HTTP
X-Baseline-TransactionId
Comment
6 (9)
Project:
Document:
2.6
Baseline
81917631
Version: 1.2
Date: 2006-10-08
Sequence
A number hinting at the last step performed on the message. Components aware of this
property should increment the sequence number by 1. If the sequence value is not
initiated the component should set it to 1.
Data type
Maximum value
Validation pattern
Integer
65536
\d{1,5}
Location
2.7
Protocol
Location
Comment
WMQ
RFH2/usr/Sequence
JMS
Integer property
“Sequence”
HTTP
X-Baseline-Sequence
InititialTimestamp
The InitialTimestamp is the initial timestamp in a transaction. A component aware of
this property, should when receiving a message use its timestamp to set this property
on any created messages. If this property is set on the received message it should be
used instead of the timestamp.
Data type
Length
Validation pattern
ISO8601 date in the format
“yyyy-mmddThh:mm:ss.sss”,
normalized to UTC.
23
^\d{4}-\d{2}\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}$
Location
Protocol
Location
WMQ
RFH2/usr/InitialTimestamp
JMS
String property “InitialTimestamp”
HTTP
X-Baseline- InitialTimestamp
Comment
7 (9)
Project:
Document:
2.8
Baseline
81917631
Version: 1.2
Date: 2006-10-08
MessageId
MessageId is used as the identifier for a certain message, usually generated by the
protocol implementation.
The identifier should be globally unique, thus when generating the identifier within an
application, using a UUID is recommended.
Data type
Maximum length
Validation pattern
String
100
.{1,100}
Location
2.9
Protocol
Location
Comment
WMQ
MQMD/MessageId
Generated by WMQ
JMS
Received with getJMSMessageID()
Generated by the JMS provider
HTTP
X-Baseline-MessageID
SOAP
wsa:MessageID
From WS-Addressing
(http://www.w3.org/Submission/wsaddressing/)
InititalMsgId
InitialMsgId is the initial message ID in a transaction. A component aware of this
property, should when receiving a message use its message ID to set this property on
any created messages. If this property is set on the received message it should be used
instead of the message ID.
Data type
Maximum length
Validation pattern
String
100
.{1,100}
Location
Protocol
Location
WMQ
RFH2/usr/InitialMsgId
JMS
String property “InitialMsgId”
HTTP
X-Baseline- InitialMsgId
Comment
8 (9)
Project:
Document:
Baseline
81917631
Version: 1.2
Date: 2006-10-08
2.10 DocumentId
DocumentId is an identifier for the actual data contained in a message. An example
could be to identify a certain order message. If the same order is resent the DocumentId
should remain unchanged.
The identifier should be globally unique, thus using a UUID is recommended.
Data type
Maximum length
Validation pattern
String
100
.{1,100}
Location
Protocol
Location
WMQ
RFH2/usr/DocumentId
JMS
String property “DocumentId”
HTTP
X-Baseline-DocumentId
Comment
9 (9)