2008 ESRI Developer Summit – Using the ArcGIS Server REST API

Jeremy Bartley and Keyur Shah (of http goodness fame) presented the first ArcGIS Server REST API session. ArcGIS Server can work with practically any client moving forward. To use the REST API, you publish your ArcGIS Server service like you’ve been doing (or reading about) for years. This means you can serve up simple maps like you would have done with ArcIMS, but also Geoprocessing services as well can be use (imagine having Google Maps work with a Geoprocessing service). The change from 9.2 is that rather than using SOAP to access the services, you can use use REST.

you want to get into what REST is go ahead and use Google to search. The simple explanation for those who don’t have time to research search is that everything is a URL, exchange standard formats (JSON, HTTP) using standard verbs, and every request asks a full question and every response includes the full answer. Just think of Keyur’s “http goodness” idea. So everything is a URL. This means that your resources can be accessed via URL and thus wget, curl, JavaScript, Python, Ruby, Perl, Java and .NET. I’ll put a link here to the presentation when it gets put up on EDN and you can see the detal that Keyur explains what REST is and how it applies to ArcGIS Server (or ArcIMS ) developers

Services formats you can use are html (the Services Explorer) JSON, KMZ, image, help, Layer file that you can add to ArcMap or ArcGlobe, ArcGIS Explorer documents, jsapi, Google Maps and Virtual Earth. The Server Explorer gives developers (or nosy GIS professionals) simple and instant access to Server Level Metadata. On every Server Explorer page, you will see a link to a help file that will help you understand what is going on. JSON will be used by the JavaScript libraries (or any programming language). There is also a “pretty JSON” feature that will return a more readable JSON (f=json&pretty=true) for debugging purposes.

ArcGIS 9.3 supports KML out of the box. Therefore you can build web pages that include links to KML content. Not only does it support KML/KMZ, but it also supports query results, geocode results, Geoprocessing task results and custom raster or vector results corresponding to selected layers from a map service. So you can pass the results from analysis performed in ArcGIS Server and offer them up in your webpages for users. Rather than export a KML/KMZ out of ArcMap and linking to that on your webpage, you would just make a REST call to the KMZ format on that mxd that you published on ArcGIS Server.

REST API Admin allows developers to clear the REST API Cache that gets created. If your add, delete or updates services, you’ll want to clear the cache. You can clear the cache by clicking on a button or have it clears periodically depending on your needs. REST API Security ties in with general ArcGIS Server Security policies so you won’t have to set anything different just to use the REST API.

Jeremy demonstrated how you want to set your correct projection in your MXD file before publishing (to match Google Maps or Virtual Earth). This of course is very simple, but you want to make sure it is set correctly if you want to match the web Mercator projection. ESRI and Microsoft/Google use different cache schemes, but ESRI has a tool that will convert your tile cache from the ESRI “format” to the Microsoft/Google tile format. This is only needed for 3D as ESRI handles the conversion automatically for the 2D. One nice function is the REST API support KML regions as well.

The simplicity that you can build applications via REST is clear. If you want to run a query, all you have to do is add a url and then call the url via JavaScript. So you pass the url to the query service with the coordinates you want to query and the RESTful server will pass back the results via another url to the browser. For those who have struggled with the .NET and Java WebADFs, this simplicity will be refreshing and I think we’ll see many developers come back into the web mapping fold because they can now work with ArcGIS Server services.

Jeremy also ran a Python demo to access the ArcGIS Server services via REST. If you aren’t a .NET or Java “guy” and want to use Ruby, you can now work within your favorite language. Heck, you like Yahoo! Pipes? Just add your RESTful URLs to Pipes and run the pipe to use the Yahoo! services with your ArcGIS Server services.

The freedom to use these RESTful services where you are comfortable, or where you client requires will stop the need to “sell” the need for installing .NET or Java on a server. Any “old” http server will be able to run these applications and there is definitely no reason to be afraid of ArcGIS Server anymore. As one ArcIMS developer told me, I finally see a reason to leave AXL and move to ArcGIS Server. The REST API is well thought out, very extensive and allows access to the power of ArcGIS Server in a “simple” html page.


ESRI Business Partner Conference Day 1

There really wasn’t that much going on yesterday other than a couple points Jack made on stage that will probably be built upon during the Dev Summit:

  1. Jack says Microsoft and Google are the key to collaborative GIS using ArcGIS Server as the back-end. The hope is ArcGIS will integrate with everything moving forward.
  2. ArcGIS 9.3 will be in everyone’s hands by June. That means that this will be a very sort beta period. Reading between the lines, this could mean that there are very few new features and this really will be a release that focuses on quality and documentation.
  3. As others mentioned at the FedUC, Jack talked about Open API support. Want to use OpenLayers with ArcGIS Server, no problem.
  4. The new Javascript API will increase production thousandfold. Now you can use the simple APIs to deploy quick and simple mapping websites and use the WebADF for the detailed heavy sites.
  5. Did you use AML with ArcPlot? 9.4 might add the ability to script map production.

Now there was much more, but we’ll leave that for the DevSummit where we’ll learn the details.


ESRI Store Bookshelf

How about this choice at the ESRI Store at the Developer Summit?

Editor’s Note – 01-09-2017

Sadly I lost the image that was posted here. Not only that I can’t recall what book it was. Likely it was an open source web mapping book but alas I can’t recall.


Off to the 2008 ESRI Business Partner Conference


I’ll be driving out from Tempe early tomorrow morning to the 2008 ESRI Business Partner Conference. I’m looking forward to meeting and talking with everyone. Feel free to email me if you want to hook up and get drinks or food (I’m staying at Hotel Zoso down the street). I’ll of course be staying over the week for the Developer Summit as well. Looks like the weather will be much colder than the nice warm days we’ve been having so make sure you pack accordingly (note: my definition of cold will probably be different than others).

Alas, our 9.3 beta didn’t show up before I left work today so I guess I’ll have to just watch, rather than participate. Oh and if you want something to read on the airplane on your way to Palm Springs, why not print out some of the slide shows before and bone up on your 9.3 knowlege.


Pacific 10 Referees are the Worst

What a horrible way to end your season and possibly cost you a NCAA tournament birth. If you aren’t UCLA or USC in the Pac-10, nothing goes your way. To make that call at that point in the game is atrocious.


The ESRI Developer Summit 2008 Q&A

If you want to see some of the topics that people came up with to ask ESRI before the DevSummit next week, ESRI has posted them on their website. Here are some of the ones that caught my eye.

Q: What are future plans for releases following ArcGIS 9.3?
ESRI Director of Research and Development Scott Morehouse will provide a brief overview of the themes for ArcGIS 9.4 during the Plenary. If you have suggestions for ArcGIS 9.4, we encourage you to share them with development staff in the ESRI Showcase and during the Meet the Development Teams sessions.

We’ve known that 9.4 was coming down the pike and it appears that ESRI is going to talk about what it is and how it might impact ArcGIS 10. I am really interested to see what the timeline moving forward will be.

Q: Are you planning 64-bit versions of ArcGIS Desktop and ArcGIS Server?
ArcGIS Desktop is fully supported on 64-bit Windows at 9.2 SP 3 and beyond. While ArcGIS is a 32-bit application, it has been tested and certified on the 64-bit versions of Windows. We have no immediate plans to release a native 64-bit version of ArcGIS Desktop, although we do continue to research this possibility.

At ArcGIS 9.2, we released 64-bit versions of the ArcSDE component of ArcGIS Server for some UNIX platforms. At 9.3, we will also release a native 64-bit version of ArcSDE technology for Windows and Linux.

Nothing new there but I don’t see anything aut ArcGIS Server (non ArcSDE). That is the big issue for us. Sure Desktop 64-bit might be nice, but all of ArcGIS Server as 64-bit is critical.

Q: Will there be a replacement for MapObjects? In other words, will there be options for desktop deployments that don’t require the full functionality of ArcGIS Engine?
Yes, we are doing some research work on building a focused, lightweight .NET API deployment option with functionality similar to MapObjects. We will discuss our thoughts at the DevSummit Plenary. We encourage your feedback both at the summit and in the postsummit survey.

Every MapObjects developer just sat up and smiled. Wonderful news.

Q: Discuss performance improvements in ArcGIS Server 9.3.
Performance improvements in ArcGIS Server 9.3 are significant. First of all, Web mapping applications built with the Web ADFs (both .NET and Java) have been greatly optimized in different ways (reduced number of requests to the server, more lightweight, etc.). This has resulted in more responsive applications and increased scalability of the whole system. Additionally, 9.3 features a new core service for efficiently publishing imagery called image services. This new service provides superior map throughput compared to standard map services. Performance improvements also derive from optimizations at the geodatabase level. Finally, we have made map caching workflows easier and faster and provided you with the choice of partially caching your map services. The new caching-on-demand feature of map services will allow you to leverage the power of cached maps without having to build an entire cache of your maps.

I know most ArcIMS devs are usually unhappy with ArcGIS Server performance, but it sounds like they’ve addressed this. And building portion of the map cache on the fly will be great. More good news.

Q: Will ArcGIS 9.3 support backwards direct connect compatibility?
Yes. ArcGIS 9.3 clients will have backwards direct connect compatibility with 9.2, 9.1, and 9.0 ArcSDE geodatabases. This will make ArcGIS software upgrades easier, especially for large enterprise systems, by giving more flexibility to perform a sequenced migration. For example, clients can be updated first followed by server updates.

Nice, as ESRI says it will make ArcGIS software upgrades much easier.

Q: How and when will ESRI support the spatial types in Microsoft SQL Server 2008?
ArcGIS 9.3 will support the two new spatial types in Microsoft SQL Server 2008. A geodatabase implemented on SQL Server 2008 will be able to store vector geometry in either spatial type (Geography or Geometry). This will enable users to perform SQL queries and operations on spatial data within SQL Server.

Basically ESRI will enable access to SQL Server 2008 beta at 9.3, but will not support it. When SQL Server 2008 goes final, ESRI will release a SP to address any concerns (if any) and then support SQL Server 2008. Seems logical and better than having to wait for SQL Server 2008 to go final before getting any ability to use with ArcGIS.

Q: To what extent does ESRI support interoperability with KML?
KML is one of the supported formats of ArcGIS Explorer and the ArcGlobe application within ArcGIS 3D Analyst. You can simply use these 3D applications to explore the contents of KML files. Additionally, you can use ArcGIS Server to publish your GIS data and output of GIS analysis in KML format. You can either create map services to publish GIS data as KML overlays or placemarks or use the new REST interface of ArcGIS Server to enable your users to get KML outputs from map queries and geoprocessing services.

It looks like we’ll still have to use third party extensions to import/export KML out of Desktop. I’ve heard good things about KML support in Server though so that takes the sting out of the lack of support on Desktop.

Q: How are you improving software documentation especially for developers? More sample code is required.
We have clearly heard this feedback and have made additions to the online help and SDK documentation. For example, in 9.3, there are three or four times more help topics and samples for developers. In addition, we are introducing resource centers for each product that bring together online resources, including samples, blogs, and best practices information, to help make you successful. ArcGIS 9.3 beta testers have access to the beta documentation and are encouraged to provide feedback.

Good news, but ESRI needs to improve the search as well. More documentation and code is very welcomed, but not being able to find it reduces its value. Documentation at 9.2 was poor, so if 9.3 can get that back up to where it should be, the we all win.


FME User Conference Roundup

I wish I was able to go but if you are like me, you can live the experience through others.

Peter Batty’s FME User Conference Report

Jason Birch on KML Goodness

Matt Ball on 3D and FME


VGI – Meh

Look I believe in the concept, but I’m so sick and tired of these freaking terms. Personally I think folks use the term VGI to segregate themselves from the community at large. I mean look at this list of participants at a workshop late last year.

Does it bother anyone else that a workshop meeting on social cartography, limited to 40 persons is elitist? This infatuation with VGI is becoming unhealthy to the direction we all want GIS and Geography to move. Why waste efforts down a side street when the main street geospatial crowd is working so hard to get more open. This VGI fad is just more of that “University” mentality that drags down innovation.

Update Fantomplanet says:

You take VGI for what it is. Someone has to sort that crap out half the time……. I asked Goodchild how his concept isn’t any different that the stuff the wiki-blog crowd is trying to sort out. “It isn’t.

Well if Wikipedia is a goal of the concept, then VGI is a non-starter. The world needs less, not more gatekeepers and the whole Wiki concept is based on editors deciding what is right and wrong, not the community. Just because you can edit something doesn’t mean that it is collaborative. Wikipedia is flawed and cult-like and if that is the direction of Geography, count me out.


ArcGIS Explorer SDK or API?

I’m not sure why this “blog” post is getting much traction. I see no reference to where they got that information, I see no information about what this API is going to be (you can already skin AGX). All I see is ESRI Marketing sending a small email to Directions Magazine and they posting it without giving thought to what they are doing. I had thought the whole point of Directions Magazine was that they’ll have higher standards than us bloggers. But APB has really fallen off in the past 6 months to the point it only appears that they post press releases. I remember when APB used to break news on their own.

Where are the standards over there Joe?

Updated: See below, Joe assures us they are as dedicated as ever. Good enough for me.


ArcGIS Server for ArcIMS Developers

I like that ESRI has started to focus on getting ArcIMS developers ready for their eventual move to ArcGIS Server. There is a podcast up describing the “ArcGIS Server for ArcIMS Developers” session at the Developer Summit.

ESRI has no ArcIMS technical sessions planned for the 2008 Dev Summit so everyone should take that as a sign as the future of ArcIMS. Time to migrate folks.


MechaArcGIS consoling ArcIMS on its fate