I worked for ESRI as a Software Developer intern, in the ArcGIS Server (Java) team. This summer has been a fruitful learning experience, as i got a "firsthand" account of the inner-workings of the ArcGIS Server.
I worked with the Web-Services team for performance enhancement of the current ArcGIS SOAP SDK. With Axis 1.x based tool kits XML parsing was identified as a bottleneck and therefore we wanted to make a switch to a tool kit that uses the Streaming API for XML Parsing (StAX). We identified that Metro (Glassfish's SOAP Stack) was the way to go and i generated the new Metro based SDK for accessing Web-Services. One of the problems that we faced was that the stubs that were generated by Axis 1.x and Metro looked very different, and a big part of the project was to maintain 100% backward compatibility with the old SDK. The result of this project is an increased performance of the ArcGIS Server's SOAP stack (by about 90%). I am also delighted that the new toolkit will actually (most probably) be shipped to customers as a part of Service Pack 1 to ArcGIS 9.3.
I also got the opportunity to look at the new ArcGIS Server's RESTful services and the JavaScript API. I must say that i am absolutely sold on the idea that REST is perhaps the way to go. Using the ArcGIS JavaScript API is an absolute breeze and compatibility with Google Maps and the Virtual Earth API is a delight. Dynamic languages seem to be the way to go, with the advent of Ajax and i cant help wonder that productivity seems to be improve dramatically with JavaScript. With just a few lines of code, you have a full blown Web-GIS application. On a side-note i am still jealous that the Windows platform does not (?) have an equalant to TextMate on the Mac.
Now that i have worked with the Web-Services tier, i have realized SOAP is very over-rated. In my opinion it's just glorified XML based RPC. Java tool kits for SOAP are not compatible. Heck even Axis 2.x is not backward compatible with Axis 1.x.
One of the challenges that we face everyday, is with respect to achieving interoperability with different layers in the technology stack. Imagine having to write a Java application, which actually uses COM/DCOM based ArcObjects in the background...! I would say that this is what makes life very interesting (albeit a little difficult) at ESRI.
The good thing is that the team was impressed with what i had accomplished over the summer and now i have a full time job offer from the Geo-spatial technology leader. I don't have much to complain about... [:-)].
PS:
My department included this piece of information in their newsletter: Geography Students Awarded ESRI Internships
Wednesday, July 30, 2008
Subscribe to:
Post Comments (Atom)
2 comments:
I appreciate your insight into this topic. I, myself, am becoming increasingly dissatisfied with the Axis tools and SOAP in general and I have started my own path down into Metro.
Metro seems so much simpler to use. JAXB bindings are so convenient. One the other hand, the default bindings generated by Axis 2.x for the ArcGIS Server WSDL's don't even compile...!
Post a Comment