An extremely important and challenging step in building an effective mobile solution is the deployment of it. Deployment involves packaging all of the information required to complete operations in the field and getting that information into the hands of your field workers so they can be efficient and productive with the software and data you give them.
I would like to focus this blog entry on deployment of the ArcGIS Mobile application, mobile projects and data to Windows Mobile handheld devices. If you need to deploy a custom mobile solution to laptops or tablets, you should take a look at a code gallery posting we have for building a mobile runtime.
There is no “one solution fits all” when it comes to deploying mobile solutions. Factors such as the size of your field workforce, the devices that they use in the field, the volume of data required for field use, and the frequency you need them to synchronize with the office all influence the choices you will make. Let’s not forget to factor in IT infrastructure either!
It all boils down to 2 methodologies. Either you “push” information to devices or you “pull” information from a server to your device. There are a number of 3rd party deployment systems in the marketplace today that you can use to “push” deployments to devices (Microsoft, SOTI, and Motorola are a few companies that offer solutions). With ArcGIS Mobile, we offer a web-centric solution for the “pull” model out-of-the-box by creating a web site and web service that hosts your mobile projects and the ArcGIS Mobile application. More on that a little later.
Windows Mobile and CAB files
First it is important to understand that Windows Mobile devices use cabinet files (.CAB files) as a compressed installer for applications and CAB files can be used for other information (such as map data). Marcus Perryman wrote an interesting blog article on MSDN explaining cabinet technology so I won’t go into details on the technology here.With ArcGIS Mobile at 9.3, we include a .CAB file for the out-of-the-box application and provide that CAB file as a link on a web page that you can download from your mobile device. Deploying the ArcGIS Mobile application to a mobile device is as simple as clicking on the CAB link from your device.
Note that at 9.3 we also include a CAB for the SDK runtime as well. You can use the SDK runtime in the deployment of your custom Windows Mobile application.We recently posted a code gallery entry on how you can create a .CAB file for your application that includes this SDK runtime CAB using Visual Studio.
ArcGIS Mobile Web Site
When you install ArcGIS Server at 9.3, a new web site is created to help you manage your mobile deployments (http://yourWebServer/yourInstance/Mobile). This web site is optimized for mobile browsers as well. It contains a link to the .CAB file for the ArcGIS Mobile application, and links for each of the projects that you create inside of the Server Manager as shown below. Projects are xml files that configure the ArcGIS Mobile application with data and tasks.
From your Windows Mobile device, you can use the web browser and navigate to the web site on your server, download and install the application by clicking on the link, and download the mobile project which configures the mobile application to use appropriate map data and tasks for your work in the field.
Using the ArcGIS Mobile application you can open the project and pull map data from the server using the Synchronize task. Pulling map data from the server to the device can take time if are wireless so be careful…
What would be more efficient is to pre-cache the data, create a .CAB from it, and somehow get this CAB file to the mobile device. But how?
Creating a Data Deployment Cache
Within ArcGIS Desktop, you will find a new toolset in the ArcToolbox window that contains 2 new geoprocessing tools for building mobile datasets:
Ignoring the Create Mobile Basemap tool for a minute, lets discuss the Generate Mobile Service Cache tool. This tool inputs a connection to your mobile service, lets you pick a set of map layers and an extent, and creates an output cache into a defined folder location. For your mobile projects, you can create caches using this tool for deployment to devices.
The Create Mobile Basemap tool can be used to build a highly compressed mobile base map. This tool uses a map document as input and creates a folder of SDC files. Inside of the project you define you can specify a base map when determining the layer source. Please read more about preparing maps and data to understand how you can leverage base maps inside of ArcGIS Mobile.
Building a Data Deployment CAB
Once you have built a mobile service cache, you can then create a data deployment CAB. If you are savy in the ways of Visual Studio, you can use it to create a CAB file from your mobile service cache. But if not, we have put a utility application that you can use to create your own cache on the code gallery called the Data Deployment Utility. Using this tool, you can create a CAB file for your mobile cache.
Tweaking the Mobile Web Site
The ArcGIS Mobile application CAB file and each of the mobile project files are stored on your web server. You can find these files at: \yourServerInetpubwwwrootyourInstanceMobile. Projects are stored in the Project folder, the CAB file is located in the Software folder.
Also at that folder location you will find 2 ASP web pages – Default.aspx and MobileDefault.aspx. As you might expect, MobileDefault.aspx is the web page loaded when you access the site from a mobile web browser and Default.aspx is the web page loaded from a Desktop. You can extend either web page with your own information and/or links to other downloads.
The <body> tag inside of MobileDefault looks like this:
<form id=”form1″ runat=”server”>
You can extend the page with your own content with something like this (in bold) where the:
<mobile:Form id=”mobileForm” runat=”server”>
Project X Data CAB</a>
If ProjectXData.CAB is located in the software folder, the end result will be a new link for your data CAB directly below the project list like so:
From your mobile device you can click on the new link added to the MobileDefault.aspx web page and it will download and install the mobile service cache onto your device.
Deployment is an important step in building an effective and efficient mobile solution. There are a number of factors to consider when choosing a deployment methodology and there are deployment systems that you can purchase to make the deployment process easier. ArcGIS Mobile provides a very simple, out-of-the-box experience for deployment that you can extend for your needs. Remember that deployment can make or break the success of a mobile solution. Spend time in analyzing how deployment best fits into your field operations before making any decisions.
The ArcGIS Mobile Resource Center introduced a new Community Center today!
The goal of the Community Center is to grow a vibrant online community centered around Mobile GIS. The community center aggregates all sources of information that change frequently so you have the most recent information. It includes this blog site, forums, knowledge base articles, and a code gallery for developers.
With the launch of the community center, the mobile dev team has uploaded a number of code samples that you can download in the code gallery. All samples uploaded by the dev team are clearly indicated by the “ArcGIS Mobile Development Team” tag on the sample.
During our presentations at UC2008 (both in the technical workshops and at the Mobile Island Demo Theatre), we wrote a lot of code and those of you who attended our presentations have asked for us to share it with you. So the code samples prefixed with “ArcGIS Mobile – ” are exactly those samples. Once you have taken a look, please come back to the code gallery and give these samples a rating!
To post your code to the code gallery, all you need to do is log into the code gallery using your ESRI Global account. If you do not yet have one, you can sign up for one here.
At the Mobile and LBS Special Interest Group meeting held Wednesday evening, Mike Dagle and Scott Oppmann from Oakland County Michigan shared their experiences deploying a solution for Oakland County Animal Control using ArcGIS Server and the newly released ArcGIS Mobile application.
Oakland County Animal Control was established in 1919 to enforce pet-ownership laws and control stray pet population. Each year Animal Control conducts a dog census. The goal of the census is to both estimate the number of domestic pets and locate/issue citations any unlicensed dogs. Due to the size of county, approximately 10 municipalities are canvassed each year and the County uses summer students to conduct the census.
Prior to implementing ArcGIS Mobile, the process involved geocoding current dog licenses, joining the geocoded location to tax parcels, creating a series of 11×17 paper maps, conducting the census on paper log sheets and then manually entering the logged results into a database in the office. There were several limitations with their current process that by implementing ArcGIS Mobile they hoped to overcome – needless production of many paper maps, redundant entry of information, potential error/loss of data by poorly written/lost/damaged logs, inefficient use of staff with considerable lag time between field logging and data entry.
Mike Dagle, Scott Oppmann, Dawn Beemer and Brian Ely from the County chose to use ArcGIS Server and deploy the new ArcGIS Mobile application to census takers. They were able to leverage their existing investment in ArcGIS. They replicated their Tax Parcels geodatabase and transformed the parcels feature class to include Animal Census attributes. Then using ArcMap, they symbolized the parcels layer to create a unique list of feature types that would represent the target properties for census takers.
Once the map and geodatabase were in place, the next step was then to simply publish the map as a map service with mobile data access capabilities in ArcCatalog and then use the ArcGIS Server Manager application to author the Animal Control project for field use with the ArcGIS Mobile application. A Windows 2003 Server box running IIS 6 was employed for the census and Oakland County chose to implement a reverse-proxy architecture using ISAPI rewrite so that census takers could wirelessly synchronize census updates from the field yet manage their solution from within the County firewall.
Deployment and Field Use
Oakland County chose to deploy AT&T Tilt devices to their census takers due to their relative low cost, network reliability and coverage, and inclusion of an integrated GPS. They chose to use the web page/web service out of the box methodology to deploy the mobile application, project and data cache to all devices.The census takers were able to pick up and use both the devices and the ArcGIS Mobile application with little to no training. This was in part due to the fact that the census takers were young summer students and very familiar with cell phone technology.
Given that the ArcGIS Mobile application leverages both the intelligence of the map and the geodatabase, yet providing the flexibility in defining a mobile project so that the terminology and tasks match the needs of the field workforce, the census takers were very efficient in their use of the application. They used the GPS capabilities to navigate themselves on the map and the Identify and Search capabilities to locate the parcels they needed to update. The edit form displays the field aliases of the map that can be further refined when defining the edit form for the project and the data entry controls honor the intelligence of the geodatabase.
The deployment of ArcGIS Mobile was a resounding success for the County. They were able to implement and deploy their Animal Control solution without the need of a developer and were able to get the system up and running very quickly. The ArcGIS Mobile application and its inherent task-based workflows proved easy for the census takers to understand and use and required very little training. The ability to wirelessly synchronize information from the field directly into their geodatabase removed the redundant data entry and potential loss of data. And by using a handheld device they eliminated the need to create paper maps. They are now looking at other paper-based field solutions that can be replaced using ArcGIS Mobile and ArcGIS Server technology.
On the ArcGIS Mobile product pages, you can download the Oakland County Case Study documenting the Oakland County experience. There you will find additional case studies illustrating the use of ArcGIS Mobile.
I would like to extend a special thank you to Mike Dagle, Scott Oppmann, Tammi Shepherd, and Dawn Siegel from Oakland County for their willingness to embrace and deploy new technology and share their GIS needs with both ESRI and the GIS community as a whole. You rock.
The users conference has come and gone and we are very thankful to all that came to our technical sessions, demo theatre presentations, and engaged us in conversation at the Mobile Island. This year was a big success for ArcGIS Mobile and we are now back into Redlands busy planning our next release. We received a lot of wonderful feedback from you and are integrating that feedback into our planning and future development as I write this.
We will begin a series of posts on this blog site that provide detailed answers to the most frequently asked questions we received at the island and in our sessions. Here is a sample:
What is the difference between ArcPad and ArcGIS Mobile? How do I choose between the two of them?
ArcPad and ArcGIS Mobile are separate technologies designed for mobile GIS. When deciding which is the appropriate solution to deploy, you need to consider what your field GIS project needs are, the number of field workers you need to deploy Mobile GIS to, and how Mobile GIS fits into your existing IT infrastructure.
ArcGIS Mobile extends our ArcGIS Server product and is a platform that enterprise organizations can use to centrally manage their mobile GIS needs. It includes both a configurable application that targets non-GIS professionals who demand a very focused handheld application for their data collection and inspection needs and includes a .NET SDK that you can use to embed GIS functionality into existing business applications. ArcGIS Mobile is IT-friendly – it fits well into an existing SOA and can be fully secured. ArcGIS Mobile applications provide a free flow of information between the field and office and do not require the field workforce understand or use Desktop GIS technology. ArcGIS Mobile applications target medium to large deployments of non-GIS professionals.
ArcPad is a GIS field data collection solution for mobile applications. It provides a rich set of tools for field mapping, query and editing. ArcPad is ideal for ad-hoc data collection and small number of deployments. It is traditionally used by GIS professionals. It operates in a disconnected environment where users check out part of a Geodatabase via ArcGIS Desktop, take information out into the field, and upon return check in their edits and collected data to the Geodatabase using ArcGIS Desktop. ArcPad can also be customized for specific user and organization requirements using ArcPad Application Builder. ArcPad has a map centric user interface.
Here is a slide that summarizes what is written above:
This year at the Users Conference, the Mobile team is looking forward to talking with you about your experiences using ArcGIS Mobile or explaining how you can use ArcGIS Mobile to accomplish your field GIS tasks. One of the best ways that you can connect with us is in the exhibit hall. When not presenting technical sessions, we will be at the island looking to meet with you. Inside of the demo theatre presentations at the Island, we will introduce both the new ArcGIS Mobile application and Server Manager capabilities, in depth tips and tricks for developing with the SDK, and how you can deploy ArcGIS Mobile applications and data to your field workers.
Today members of the team were busy setting up the island, provisioning devices with demonstrations and software, and getting ready for your visit. Here is a picture of Jay Chen and Jianwei Dou working on two of the desktops that we will use to demonstrate the ArcGIS Mobile SDK.
Welcome to the new ArcGIS Mobile blog site that is available through the new ArcGIS Mobile Resource Center! The Resource Center will serve as your gateway for all Mobile and ArcGIS resource content. Following the Users Conference, we will be updating the ArcGIS Mobile Resource Center with a new community center that will include a code gallery for mobile developers so make sure to visit often!
Now for information about ArcGIS Mobile at the Users Conference! There are only a few days left and we are really excited about the opportunity to connect with you, listen to your experiences and needs, and help you in developing successful mobile solutions. To help you in this effort we will have number of events/sessions. I have listed them all below, but I want to point out that we will be having a focus group meeting to discuss ArcPad and ArcGIS Mobile on Tuesday at lunch time in room 9 and we will also have a catered Special Interest Group meeting on Wednesday evening that has some special surprises in it! Please attend these events as they are a great opportunity to make connections with other mobile users and socialize with the mobile development team!
Here are a list of all sessions and demonstrations that include ArcGIS Mobile:
Introduction to the ArcGIS Mobile SDK Pre-Conference Seminar!
The new ArcGIS Mobile application will be highlighted during the plenary!
ESRI Mobile GIS Solutions Overview 8:30am – 9:45am
ArcGIS Mobile – An Introduction 10:15am – 11:30am
ArcPad and ArcGIS Mobile User Group Meeting 12:00pm – 1:00pm
Demo Theatre – Intro to ArcGIS Mobile 1:00pm – 2:00pm
Demo Theatre – Managing a Mobile Workforce 4:00pm – 5:00pm
Demo Theatre – Focused Application Development 5:00pm – 6:00pm
Demo Theatre – Introducing ArcGIS Mobile 10:00am – 11:00am
Developing Applications with ArcGIS Mobile 10:15am – 11:30am
ESRI Mobile GIS Solutions Overview 1:30pm – 2:45pm
Demo Theatre – Focused Application Dev using ArcGIS Mobile SDK 2:00pm – 3:00pm
Demo Theatre – Managing a mobile workforce 3:00pm – 4:00pm
ArcGIS Mobile – An Introduction 3:15pm – 4:00pm
Mobile and LBS Special Interest Group 5:30pm – 7:30pm
Demo Theatre – Introducing ArcGIS Mobile 9:00am – 10:00am
Demo Theatre – Managing a Mobile workforce 11:00am – 12:00am
Learn to deploy GIS to your Blackberry smartphone 12:00pm – 1:00pm
Developing Applications with ArcGIS Mobile 3:15pm – 4:30pm
Again, welcome to the blog and we hope to see you at the Conference!
A few of you have reported to us that all of a sudden your mobile service will just stop responding, and that even ping’ing the wsdl will not yield a result. However in each case, no one has been able to isolate a set of steps that would consistently reproduce the issue. It would simply stop working after a week, sometimes after two weeks and the only way to recover was to restart IIS!
Well we are fairly confident that we have isolated the problem. In all reported cases so far, services are alive and running strong.
The links below detail the cause of the issue and how you can work around it:
Windows Server 2003 http://support.esri.com/index.cfm?fa=knowledgebase.techarticles.articleShow&d=32620
Windows XP http://support.esri.com/index.cfm?fa=knowledgebase.techArticles.articleShow&d=32622
If you are experiencing problems with your mobile service – we want to hear about it! Contact your support representative or reply to this blog posting directly! Thank you for your patience and continued support!
If you click on the Samples tab you will find 3 new developer samples that illustrate key capabilities of the Mobile SDK that you have been asking us about:
Live Traffic Sample for Windows Mobile 5 Pocket PC – this sample demonstrates how you can consume a real time feed and display its content on top of your map data using a custom layer.
ESRI Construction Sample for Windows Mobile 5 Pocket PC – this sample illustrates how to use the sketch component to create new features and update the attributes of existing features and synchronize those updates with a map service.
Working With Related Tables – this sample demonstrates how you can edit related tables on a Pocket PC device using ADO.NET and a GeoData web service.
In addition, if you use the Map Cache Extractor sample, you should download the most recent version as we have made significant updates to it. Improvements include implementing a quad-tree algorithm for caching feature layers so that you do not run into server time-outs when caching large volumes of data, and support for raster caching as well.
This is the first of several postings on the topic of map caches and mobile applications. This initial post will discuss how applications developed using the Mobile SDK work cache map data and then present some key strategies for deploying mobile map caches to devices. Subsequent posts will discuss best practices for requesting map data from the server, how you can leverage Microsoft API’s to optimize when you make server requests, and much more.
Critical to applications developed for use in the field is the ability to function both connected and disconnected from a network. When you are out in the field you are often either moving in and out of coverage (wifi, cellular) as you work or for various reasons cannot be connected at all. The architecture of ArcGIS Mobile was designed with the full range of connectivity scenarios in mind…
In order for your mobile application to view and edit maps when not connected to a server, the map cache must be stored locally on the device. The map cache is both a folder full of map data and a component in the SDK. Using the MapCache component, you can request map data from the server and post new and updated features to the server. For a full description of the architecture of the map and map cache components we recommend you start by reading the overview topic.
Disk space may be cheap but access to the data you store on disk is very expensive. For that reason, it is extremely important to consider an appropriate data deployment strategy so that your field workers are always armed with the data they need to be successful in the field.
Some key factors that you should consider when planning your deployment strategy:
- When and how frequently do your field workers need to synchronize with the server?
- How large an extent will they work through when disconnected?
- What map layers are critical to the success of their field work?
- What devices will be used in the field and how will field workers get connected?
In addition to the factors mentioned above, determining the right information and transactional model for the field is critical – do not simply publish maps designed for use in the office. Determine what information in your enterprise database is required to accomplish field projects and design your map with the target device and work conditions in mind.
You can use the Extractor sample that ships with the Mobile SDK to build a map cache that can then be deployed to mobile devices before they leave the office. Once you have created a map cache, you can then copy that map cache to either the main memory on a mobile device or to a storage card. If you have a handful of mobile devices that you need to deploy data to, you can cradle those devices and use Microsoft ActiveSync to copy the cache to the device. If you have a large number of devices to manage, there are several third party tools in the market today that can help you deploy map caches. Microsoft’s Systems Management Server and SOTI’s MobiControl are two mobile deployment applications that we have used.
By deploying map caches to devices when they are in the office, then your application need only use a cellular or wifi connection in the field to post changes made on the device or to retreive a small amount of data for a subset of the layers in the map. This will not only improve the performance of your mobile applications but reduce the high cost of data transfer.
In the next post we will provide examples of how to request data from the server and how to leverage events on the MapCache such as RequestCompleted to manage requests made between the device and the server.
Let us know how connected you are? What is the dominant connectivity scenario faced by field workers in your organization?