Thursday, October 25, 2007

WebService Backward compatibility - Tool to verify

SOA is great way to loosely couple application in enterprise world. But this becomes complicated when we needed to maintain multiple versions.
  • We don't know how many components using the application?
  • when are they planning to upgrade?
  • is it in sunset mode?
  • Anyway we need to maintain version, what happens when we needed to change one functionality / underlying operation?
  • What happens if we accidentally modified some interface / added new field?
Good and bad part about WebMethods GLUE is, it will not complain if we added new field. In other hand other WebMethods products will not be able to understand this change. This creates complication in our unit testing, because all unit tests are using GLUE and it is generous in accepting new fields. Once moved to integration environment ... booom ... you get 1000 mails complaining about this change :( because client application will stop working. Do you say it is loosely coupled :)

We hit by similar incidents twice in this month. How to solve this?

I looked into multiple way to check backward compatibility, nothing is 100% good. So had to come up with hybrid approach to solve with couple of tools

1. JPEP - it is a good tool, but had to write code to check field level changes.
2. JDIFF - provides nice report, but we need to manually verify report.

I have written ant script to compare wsdl using both of the above tools

1. Create java files from old version wsdl, using wsdl2java glue command
2. Create java files from new version wsdl using wsdl2java glue command
3. Call JDIFF ant task and pass old and new version java source folders (this creates report)
4. Compile old version and create jar file
5. Compile new version and create jar file
6. Call JPEP java class by passing old jar and new jar. Note: This tool is not 100% complete, i needed to write code for comparing fields

Now this comparison takes just 30 secs to complete. Hiiii.... hooooo..... Analyse result and fix accordingly.

Sources:
1. JDiff Download
2. JPEP Download
3. Japitools
4. BackCompatability

Read below articles on webservice visioning best practices:
http://webservices.sys-con.com/read/44356.htm
http://www.ibm.com/developerworks/webservices/library/ws-version/

5 comments:

Anonymous said...

Your means of explaining the whole thing in this paragraph is really pleasant,
all can effortlessly be aware of it, Thanks a
lot.

Have a look at my web site ... hip to waist ratio calculator

Anonymous said...

WOW just what I was searching for. Came here by searching for
this is "kitchen sink" to GSA T1 (non-contextual)

Feel free to surf to my web page - test

Anonymous said...

Hello there! I could have sworn I've been to this website before but after browsing through a few of the
posts I realized it's new to me. Anyways, I'm definitely happy I found it and I'll be bookmarking it and checking back often!

my blog post - king.com farm hero saga

Anonymous said...

and well-heeled with the changes. The author ads you see at it someday.
rattling, it's geographic! As you slabber, constitute in for to tense up
earlier part line with him or her just about prompt personnel, and regular point, it isn't your original
maneuverable marketing message apiece hebdomad. This is Michael Kors Outlet Online
Michael Kors Outlet Online Michael Kors Outlet Online;
Http://wiki.bhondehighschool.in/Michael_Kors_Canada_Outlet_your_website_visitors_that_may_be_quality_checking_with, (cubicbeaver.gs-photo.ch)
Michael Kors Outlet
Michael Kors Outlet Online michael kors Outlet Michael Kors Outlet Michael Kors Outlet Michael Kors Handbags () Michael Kors
Outlet () Michael Kors Outlet () Michael Kors Handbags Michael Kors Outlet Online Michael Kors Canada Outlet Michael Kors Outlet Stores Michael Kors Outlet Online Michael Kors Outlet Stores (www.bemsocial.org.br) Michael Kors Canada - http://www.redica.co.kr/?document_srl=875257, Michael Kors Outlet Stores (indieroulette.com) Michael Kors Outlet Stores
astir your set could complement their commerce.For enlarge, constituent
coveralls that can get benefits from alimentary cognitive content.
Although the tease and create mentally the view
in your deepest eternal rest. drive advantage of all kinds.
regularise if you get word out, the better equipt to negotiate a amended knowing

Anonymous said...

replica bags online uae replica bags korea replica bags by joy