Sunday, February 15, 2009

ArcGIS Server Performance

A lot of users might have complained about ESRI ArcGIS Server performance. If you are looking for tips to boost your ArcGIS Server, here are 6 ways to do so.  

As a developer, I have been working with ArcGIS Server for the past three years.
Our clients were suffering from its performance, so I decided to write an article of the reasons that I think causing this performance degrade.

We recorded new episodes dedicated just for teaching ArcGIS Server, click here! 

More Flexibility for developers
With each release, ESRI places black and opaque and solid and closed libraries to make it much easier for us the developers to customize ArcGIS Server. They keep adding interfaces and classes and controls and gadgets to their main core for the sake of flexibility. ESRI wants to make the developers life easier, and they are doing a very good job at that.

For example: to create a web mapping application just drag few controls and link it it out to your map and your done! It's even getting much simpler with the ArcGIS Javascript API. 

The more flexible an application is, the less secure it becomes and more the performance penalty.

Hidden things under the carpet
No one knows what code is running behind these controls. No one knows what ESRI is doing on those link. No one knows what callbacks are being sent and when. No one knows what happens when a new user is connected. We have no access to their code. We are just allowed to customize what they provide. Developers have very little to do to improve the performance hence they don't what is going on.

Microsoft is even Hiding More!

Microsoft is adding more and more barriers by the AJAX update Panel and other controls and now Silver light. Just add your lists, combo-boxes, texts inside that panel and here you go you have an AJAX enabled control! Combining this with ESRI Controls makes a big wall that no body can even predict what's behind it.

The punchline is that performance degrades because of the way developers customize ArcGIS server. Developers don't know where to put their code and what their code will affect in this big blackbox system.