Archive for the ‘ArcGIS Server’ Category

Build Your JSAPI Applications for Performance

May 12th, 2009 by John Fletcher

When you begin creating a mapping application using the ESRI JavaScript API, there’s a good chance that you will choose Dojo as your framework, since the ESRI JS API is built on top of Dojo anyhow. Whether you begin with the Sample Viewer from ArcScripts or decide to roll your own solution, you will quickly encounter dependencies on Dojo files which are not “baked in” to the core ESRI JS API build.

How Dojo handles dependencies beyond those satisfied in the original JS imports is a topic for another post, but suffice to say that it creates a blizzard of HTTP requests that slows down the loading of an application. What we want to do is use Dojo’s build system to concoct a single (generally) JavaScript file that has all of the dependencies included by default.

This turns out to be a bit complicated for a couple of reasons:

  • the ESRI JS API already includes much of the Dojo code we need in a packaged form, and we don’t want to duplicate that code in our build.
  • Dojo cannot resolve any dependencies on ESRI core modules, since we don’t have access to the JS source.

To tackle the first challenge, we can use the concept of discardable layers in our Dojo build profile. Our first layer (compiled JavaScript file) in the Dojo build is going to be exclusively comprised of Dojo modules that are already included in the core ESRI JS API build. We add this first layer as a dependency of our main layer to ensure that we don’t duplicate code. This unfortunately requires a bunch of manual CRTL-F work inside the ESRI JS API to actually find out what they’ve included in their build, but it’s not all that bad. It would be nice to see their Dojo build profile…

The second problem is resolved in a way that seems non-intuitive at first, but makes sense when you think about how Dojo loads required modules. We need to REMOVE all Dojo.require statements that reference core ESRI JS API classes. Commenting them out is nice since it preserves the original Dojo.require’s as code documentation. You might think this would cause the application to stop working entirely, but that’s not the case. When working with the ESRI JS API, all of the core modules are imported into your page with the initial script import, so there’s nothing Dojo needs to do when you specify your require. It’s generally still good practice for a few different reasons to continue using Dojo.require statements, but the core ESRI requires will prevent your build from running.

Have a look at the integration of Geocortex Essentials 2.0 with the JavaScript sample viewer on resources.geocortex.com if you want to see the pre-built application in action. I’ve left out many gory details, so feel free to contact me if you’d like to get some more detailed info, or even a sample Dojo build profile.

Performance and Optimization

May 5th, 2009 by Stephanie Blazey

Having just given a presentation on Effective Web Based Cartography and Representation at our Geocortex User Conference, it became evident that people are very interested in the performance/optimization side of things.

ArcGIS Server 9.3.1 includes some great new features for this, and ESRI Canada is hosting some related webinars:

• Performance and Optimization Techniques for ArcGIS Server, May 14, 2009 and June 4, 2009
• High-performance Dynamic Map Publishing with ArcGIS Server 9.3.1, May 19, 2009

Also, Geocortex Optimizer is a product we have developed that provides a number of related and complementary features that help you ensure best possible performance (and monitor usage over time to create web-mapping applications better tuned to your users’ requirements).

Anyway, if you weren’t at the Geocortex User Conference and are interested in taking in my Effective Web Based Cartography and Representation presentation, you can catch the next webinar version on Wednesday, May 20th, 2009. I will be adding more content on the topic of initial design to maximize performance. Registration is here.

ArcGIS Server 9.3.1 is shipping (and being received)

April 24th, 2009 by Steven Myhill-Jones

We recently heard that ESRI would start shipping ArcGIS Server 9.3.1 on April 27, but one of our licensees just posted on the Geocortex Essentials discussion forum that they received it today.

Exciting news! With dramatic performance improvements and a number of other additions, this is the release that I’ve been waiting for since 2005.

Geocortex & Silverlight at PUG 2009

March 11th, 2009 by Rob Lenarcic

A couple weeks ago during the plenary session at the Petroleum User Group Conference (PUG) in Houston, the ESRI Energy Team presented an ArcLogistics solution that included mobile and AVL (automatic vehicle location) viewer components.

At the invitation of ESRI, Latitude created the AVL viewer component using ESRI’s new Silverlight API. Although our team is slammed right now, helping build the demo tied in nicely with the work we’re doing with Geocortex Essentials 2.0. I was in the audience, and I thought the ESRI team did a great job in presenting a complete workflow from start to end (we also appreciated them acknowledging our contribution on stage).

The purpose of the demonstration was to illustrate the power of ArcLogistics to optimize the processing of oil field production maintenance orders. The scenario is built using maintenance orders with the Rocky Mountain Oilfield Testing Center field data in Wyoming. Maintenance orders are taken from SAP, loaded to ArcLogistics and optimized between a small fleet of contractor vehicles. Diagnostics indicate the expected savings in time and mileage. The routes for each truck are dispatched by wireless to a simulated in-car station that informs the driver of his schedule for the day and provides an advised route generated by ArcLogistics. Through a lightweight mobile app, the contractor indicates that he has completed a job, posts it back to the dispatch desk, and then continues to his next job. Using a Geocortex tracking viewer (via ESRI’s Silverlight API), we then simulated the dispatch center’s view; real-time tracking of multiple fleet vehicles on an interactive map.

I expect that ESRI’s ArcLogistics tied in with a mobile solution has a bright future (and not just in the petroleum industry).

Geocortex Essentials 2.0 and ESRI’s Developer APIs

October 16th, 2008 by David Stevenson

UPDATE: This message was originally posted for our customers on the Geocortex Support Center on October 6, 2008 and is posted here for folks who don’t have access to the Geocortex Support Center. Also, here’s the link to the Geocortex Essentials: The Road Ahead webinar.

I’m posting to provide some insight into current and upcoming Geocortex Essentials development, as it relates to ESRI’s new and emerging developer APIs.

It is clear to us that these APIs will have an integral role to play (alongside Web ADF) for many customers in the years to come and so we are actively engineering Geocortex Essentials 2.0 to encompass these developer technologies.

Agnostic support and integration for various ESRI developer technologies (as they come into existence) has always been part of the long-term vision for Geocortex Essentials and so our work has always been designed to be exposed in an agnostic way at some point in the future. With the intense demand for Web ADF features and the absence of other APIs, Geocortex Essentials development has been focused on the Web ADF realm for the 1.x product generation, while ensuring we we could make the core elements generic once warranted. And that’s what we’re doing right now.

We’re currently working on a Geocortex Essentials REST API to initially expose search, reporting, data linking and printing via a RESTful interface. This functionality can then be leveraged by either Javascript or Flex API applications—or any other application that connects RESTfully to our API. We decided to expose these particular core elements because they’re needed at the heart of many real-world ArcGIS Server implementations. Let us know if other features are a priority to your organization.

Before long, we’ll also get behind one or more lightweight viewer APIs by developing software to streamline and enhance the development and management of applications built on them. While we’re working with each and may provide sample Javascript and Flex API template applications on which to base development, we have yet to “pick a pony” regarding technological emphasis on the lightweight viewer/application development side. We don’t think all the information is available yet to ensure the correct decision, and we’re confident our customers won’t want us to risk going down the wrong path by making a premature choice.

We’re anticipating a Q1 2009 release of version 2.0. Finally, because Geocortex Essentials is about success with ArcGIS Server, everything we’re talking about here will be delivered to you as part of regular product updates.

Group Layers in Cached ArcGIS Server Map Services

September 12th, 2008 by jade

Christian passed along a tip for when creating cached ArcGIS server map services that he picked up at this year’s ESRI International User Conference. When creating a cached map service, create an ArcMap “group layer” containing all the layers for each specific scale level.

By grouping layers by scale, you can quickly turn off and on the groups to define symbology and labels for each without concerning yourself with the other scale levels. You can also tell at a quick glance what information is available at each scale level.

Post-San Diego Commentary

August 11th, 2008 by Steven Myhill-Jones

I intended to blog once or twice during the ESRI International User Conference, but found my conference schedule and meetings all-consuming. This was our seventh time exhibiting at the conference, and I think it was the best one yet. ArcGIS Server 9.3 is what we hoped it would be, the new/emerging developer APIs are valuable, and I generally think ESRI is on the right track. I’m excited about the coming year.

Since it was first released, I’ve been very candid about my perspective on ArcGIS Server 9.2 (that it was the future but not quite ready for prime-time). This has caused consternation among some, but I always defended my position because our customers count on us for advice about technology and timing.

I’ve always contended that, regardless of new capabilities, the majority of ESRI customers will be reluctant to move from ArcIMS to ArcGIS Server until the shift doesn’t involve any significant steps backward from ArcIMS. There have been two main aspects to this; comparable performance and comparable functionality.

I think I can now see the tipping point. Aside from the general improvements in 9.3, during the plenary on Monday afternoon, ESRI announced that the new rendering engine for ArcGIS Server (which everyone was expecting as part of 9.4) would ship as part of ArcGIS Server 9.3 Service Pack 2 in January or February 2009. Even though you can actually do lots to improve performance (Mapservice/application tweaking and pre-rendering), this is big news for organizations that have been awaiting improved performance that doesn’t require much rearranging of the furniture.

As for the latter aspect (functional parity), the complementary use of Web ADF and the new developer API’s allow/will allow functionality, ease-of-development, and ease-of-use to be taken to the next level. We’ve been working hard over the last twenty months to be prepared with comparable and/or superior functionality (relative to ArcIMS-gen technology) in time for ESRI’s release of comparable performance. And we’re nearly there.

Bottom line… things are falling into place. Last year, we talked mostly with people who wanted to learn more about ArcGIS Server. This year, we talked mostly with people serious about getting going with ArcGIS Server. I predict 2009 will be remembered as being a significant year in the widespread transition from ArcIMS to ArcGIS Server.

ArcGIS API for Flex

August 3rd, 2008 by David Stevenson

The JavaScript/REST APIs have been generating lots of buzz, but I think the (really) new Flex API is awesome too and will garner lots of attention at ESRI’s International User Conference next week. Check out the samples:

http://resources.esri.com/arcgisserver/apis/flex/index.cfm?fa=samples

ESRI has clearly been hard at work on this, and it seems pretty slick. I can’t say for sure yet, but I’d guess that a lot of the work that was put into ArcWeb Services was leveraged, and it appears to offer most of the functionality needed to build a basic site with Flash.

We’re doing plenty of work to incorporate emerging technologies like this into Geocortex Essentials in an agnostic way, but for 2.0 we’d planned to concentrate on leveraging the heck out of the JavaScript/REST APIs alongside Web ADF. But the more I play with this, the more I want to cover the Flex API right away too. It’ll be interesting to see how people react to this next week; this will help guide our decision.

Geocortex Essentials Betas available

July 11th, 2008 by Drew Millen

Well, I’m happy to blog that two weeks after the release of ArcGIS Server 9.3, we’re offering full Geocortex Essentials compatibility. I must concede that this work didn’t take two weeks; it took a couple months (we were very busy during the Beta program during which we made some educated guesses that proved correct).

We’re actually releasing two new versions of Geocortex Essentials: Geocortex Essentials 1.3.1 Beta, and Geocortex Essentials 1.4 Beta. 1.3.1 is a maintenance release in the ArcGIS Server 9.2 edition of Geocortex Essentials. It contains updated language resources and bug fixes for customers who’ve built apps on 9.2. 1.4 is the big release that supports ArcGIS Server 9.3.

It has been a pleasure to start using the new features in Web ADF 9.3. Most notably (for developers):

  • The new Web ADF JavaScript object model (not to be confused with the JavaScript API released in tandem with ArcGIS Server 9.3, which is also cool and we’re doing lots of work with)
  • Support for MS AJAX partial postbacks which will streamline future development (thankfully, adding full support for partial postbacks wasn’t as arduous as we thought it might be)

Maybe we’ve been staring at it too long, but it appears the long-awaited 9.3 performance improvements are quite noticeable (we’ll be able to quantify these improvements once we start playing with the Geocortex Optimizer Alpha in a couple weeks). Cool.

Next, maximizing the performance of Essentials (which has never received that much attention because we didn’t really worry that much about our stuff being a bottleneck with 9.2) will be a core focus during the next couple 3-week iterations.

But first, I think the team is going to enjoy Latitude’s annual “4th of July” picnic this afternoon/evening up at Shawnigan Lake.

9.3 is shipping

June 25th, 2008 by Drew Millen

We just got word that 9.3 is now shipping. We should have a 9.3 compliant release of Geocortex Essentials for ArcGIS Server out the door shortly after we receive 9.3 and are able to address any major changes made between the release candidate and the final release.