| The Use of SGML for a Police Information System | Table of contents | Indexes | An XML-Based Interchange Format for EXPRESS-Driven Data | |||
XML Message Switching |
| Mike Kelly |
| Senior Consultant |
| Wang Global UK
Coal Road, Seacroft Leeds West Yorkshire United Kingdom LS14 2AP Phone: +44 1132 734771 Fax: +44 1132 735223 Email: mike.kelly@wang.com Web: www.wang.com |
Biographical notice: |
ABSTRACT: |
Introduction |
Overview |
|
XMS Overview
|
||||||
|
Switch Table
|
||||||
Message Structure |
XML messages will characteristically be small. For example a typical retail banking transaction message might look like: |
<?xml version="1.0"?> <Deposit Type="cash"> <Account Type="90DayPlus"> MAKELLY-123456 </Account> <Amount Currency="sterling"> 500.30 </Amount> </Deposit> |
An XML message will have two parts, the head and the body. The body contains the actual message. The head contains addressing information. |
Addressing Messages |
The message head contains: |
These addresses are defined within a set of object based namespaces. Inheritance trees of object name classes are declared for SRC, DST and MSG. For example: |
SRC://WangBank SRC://WangBank/BankBranch SRC://WangBank/BankBranch/Teller DST://WangBank DST://WangBank/BankHQ DST://WangBank/BankHQ/CustomerAccounts MSG://WangBank MSG://WangBank/CustomerAccountTX MSG://WangBank/CustomerAccountTX/Deposit |
The name classes therefore declare the types of SRC, DST and MSG allowed. Instances of SRC and DST can also be declared. The syntax of an instance name is dependent on the class. For example: |
SRC://WangBank/BankBranch?Leeds.CoalRoad DST://WangBank/BankHQ?London.Putney |
MSG name classes do not have instance names as the message body defines the actual message. |
Message addressing can now be more precisely defined as: |
<?xml version="1.0"?> <?switch FE3423E3120012C4120900001245FFFF23 ?> <Deposit Type="cash"> <Account Type="90DayPlus"> MAKELLY-123456 </Account> <Amount Currency="sterling"> 500.30 </Amount> </Deposit> |
Sending Messages |
Receiving Messages |
The component actions the contents of the XML message. This may result in the component sending its own XML messages. |
Switch Behaviour |
XMS contains a SWITCH TABLE that determines which DSTs and OutPorts a message received on an InPort is sent to. There are three types of switching defined for an InPort: |
Any combination of these three types of switching can be used on an InPort. |
Once a match has been found, all further searching is stopped. |
<Switch> <LookFor> SRC://WangBank/BankBranch </LookFor> <SendTo OutPort="BankHQ"> DST://DEFAULT </SendTo> </Switch> |
<Switch> <LookFor> SRC://WangBank/BankBranch?Leeds.CoalRoad </LookFor> <SendTo OutPort="BankHQ"> DST://DEFAULT </SendTo> <SendTo OutPort="BankHQ"> DST://WangBank/BankHQ/SpecialAudit?London.Putney.SA2 </SendTo> </Switch> |
Switch Management |
<Switch Action="Add"> <LookFor> SRC://WangBank/BankBranch </LookFor> <SendTo OutPort="BankHQ"> DST://DEFAULT </SendTo> </Switch> |
Portlets |
Scalability and Availability |
As XMS provides a common point of switching for all activity, it will effectively halt all system activity if it should fail. Therefore XMS needs to be highly scalable and constantly available. |
|
Scalability
|
||||||
Security |
Transactional Integrity |
Example Application |
As XMS can switch messages based on their source, destination and content, it can be used for example to renew legacy products with Plug and Play migration. |
Problem: the Wang Bank needs to replace its existing legacy Savings Account product with a new system. |
|
Learning mode
|
||||||
|
Active mode
|
||||||
Summary |
Acknowledgments |
The author would like to thank fellow developers and consultants at Wang Global UK, whose experience and conversations have contributed to the development of the ideas in this paper. |
| The Use of SGML for a Police Information System | Table of contents | Indexes | An XML-Based Interchange Format for EXPRESS-Driven Data | |||