JBI/SOA Tips: Evolving Global Collaborations - Version Number Message Wrappers

In wire-centric integration for global collaborations, your Information model evolves over time. XML Schema and WSDL help you document those changes over time, and at any point in time, they help you validate your information model at that period in time. 

Explicitly add a version number attribute to the first element of both the request and the response message wrapper.

Version Number Message Wrappers
This will ensure the Message Exchange Pattern (MEP) and the schema of the exchanged messages evolve in tandem.

Over the years so much has been said about evolution and there are tomes of literature on the subject if you look around. Every organization has come up with their own solution to evolve their schemas and WSDLs based on a combination of facilities for evolution provided in the XML Schema specification, and their internal policies. Without over-simplifying the complexities involved in providing for versioning your information model, it is safe to say that adding a version number attribute to the first element of both the request and response message wrappers will allow you to have complete control over how to evolve your Message Exchange Patterns over time.

Assuming you have this simple mechanism in place, you have multiple approaches over how to evolve your collaborations over time. For one, as soon as the service receives the message, the whole message is not parsed, but an XPath query is executed on the message that looks for the value of the version number attribute of the first element of the message. Based on the version number, the message can now be routed to the appropriate version of the collaboration that can handle the message. I will, however, leave this topic for a more in-depth article on Evolving Service Collaborations for Wire-Centric Integration in the near future.


Like this write-up? Subscribe to receive more like it.


Comments:

Can you make any diagrams smaller? They tend to be too big for Planet NetBeans. Also most of the information is not very relevant to NetBeans.

Posted by guest on May 18, 2007 at 02:21 AM PDT #

They are most relevant to the NetBeans SOA Pack. Cheers Gopalan.

Posted by Gopalan Suresh Raj on May 18, 2007 at 02:43 AM PDT #

Post a Comment:
  • HTML Syntax: NOT allowed
About

Gopalan Suresh Raj, a Senior Software Architect, Published Author, and a Public Speaker, is a member of Sun Microsystems, Inc.'s Research and Architecture team. For the past several years he has been designing solutions using Java and C++.

Contact him at Gopalan.Raj@Sun.com  or Suresh.Gopalan@oracle.com

His personal public profile is available at: https://profiles.google.com/ipersist/

Search

Archives
« April 2014
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today