View Single Post
  #9 (permalink)  
Old 01-17-2006, 01:16 PM
Coilcore Coilcore is offline
Senior Member
 
Posts: 58
Default Soap rational, verses implementation

I think the decision to use a standardized remoting mechanism like SOAP makes a lot of sense. But after looking through the Zimbra implementation, it seems that somehow a lot of reasons to use SOAP got lost in the final implementation.

1. The fact that there is no WSDL is quite simply a disaster, this means that most stub generators in most languages will fail, leaving a developer to either use an existing implementation already made by Zimbra (e.g. Java, Perl, or Javascript) or to write their own from scratch. It should be a very high priority at Zimbra to put out WSDL. Saying "We figured we'd let the community do this" is a cop-out and has the added disadvantage that if its not maintained at Zimbra then changes could get missed. More importantly the WSDL makes more sense than a text file describing the soap interface. Zimbra itself doesn't have to use this WSDL, if in hubris, they choose not to.

2. After looking at Zimbras SOAP implementation within the server package a number of things occur to me :
a. In all honesty, the server code is obviously functional but quite messy, there are very tight couplings everywhere and essentially no documentation within the code. Because of the tight couplings it would be a very cumbersome process of weaseling out just the code needed for a SOAP client, in order to actually use the existing SOAP client you need to take the whole Server package as a .jar - Servlets, Mail stuff, all of Apache Lucene, and so on.
b. The choice to avoid using a standard SOAP implementation like Apache AXIS or other alternatives is somewhat confusing as well. Using one of these instead of making a home-brew version seems like it would give outside developers an easier means to get their SOAP clients working since their is no WSDL. I saw someone at Zimbra saying their implementation is lighter. I can say that with enough familiarity with Apache AXIS its not very complicated to make a lightweight implementation (obviously its even less complicated to make a not-so-light version, which is what most people do), and I certainly haven't gone an made a homebrewed SOAP implementation and benchmarked it against an Apache AXIS implementation with proper Serializer/Deserializers, so I don't know how light it really is.

In any case, if Zimbra simply provided WSDL there could be a lot more development without trying to dig through the Zimbra code.

Last edited by Coilcore; 01-17-2006 at 01:24 PM..
Reply With Quote