Objects keep track of County addresses

ADT's 2003 Innovator Awards

Component-based Development Winner

In every county in the United States, the basic component is a parcel of land. Everything from city boundaries, parks and transportation networks can be built up from an assemblage of parcels. An address is one attribute of a parcel, and most counties use address management systems to link addresses to information about each parcel of land. Any information that moves through county systems and applications -- such as zoning, taxes, snow plowing and fire fighting -- is tied to parcel addresses.

In early 2001, rapidly growing Jefferson County, Colo., realized it needed to upgrade its County Address Management System (Cams). The legacy system "was becoming a maintenance nightmare," said David Gallaher, director of information technology for the county. "The code was written in the late 1980s. It had become a self-corrupting program."

The county decided to re-architect Cams in a component-based Java architecture running in a Linux environment. The goal was to create a system that could unify the spatial data from the county's Esri ArcInfo GIS software and tabular data from its DB2 database to keep track of the county's 220,000 parcels and 350,000 addresses. They decided upon an object-based approach.

Front row: Trisha Graesser, Kim Dinapoli, Jeff Carlson, Mike Wouk

Back row: Bob Walker, Al Depatie, Cyril Completo, Richard Ruble, Dave Gallaher

GIS data such as property parcels, roads and addresses are inherently objects, and it is difficult to represent objects in RDBMSs. "We were trying to make everything in the world fit into something it wasn't designed to fit into," said Gallaher.

The county wanted to build a Parcel Object component that would maintain both spatial and tabular data while tracking spatial changes over time. To Gallaher, this part of the project -- historical versioning -- was the biggest challenge. "No one had ever built a commercial, truly spatial object that can manage time," he said. "When we first looked at it, we didn't think it was possible." Not one of the nine developers working on the project had any experience with object-oriented design. The problem, according to Gallaher, was that to satisfy the county's requirements, the developers could not take "snapshots" of the entire data set at any given time (a common solution to tracking spatial changes temporally). Instead, they had to track spatial change over time on a per-parcel level.

Fortunately, at that time, advances in object theory were occurring (based in part on the work of Ale Raza, a software engineer at Esri who specializes in temporal aspects of spatial databases) that would allow the county to create the parcel object it wanted. The county then discovered that Versant Corp. had validated the object database concept and went on to deploy Version 6.0 of the vendor's Versant Development Suite (VDS). This product allowed the county's developers to use parent-child relationships to manage what happens to a parcel, zoning or any boundary. It also allowed them to determine spatial change over time, not by a snapshot of a layer, but by a discrete feature.

The county can now link a variety of information to the parcel address, then augment that data with historical data. This means that residents can look at the history of any parcel before buying it.

Because all data is persisted in the Versant ODBMS, the county can make spatial objects persistent as ready-to-use actual objects and avoid the overhead in dealing with object-to-relational methods. And since the objects can be accessed directly, there is no need for an Enterprise JavaBean construct. For ease of integration, the model communicates via XML. The simplicity comes at a price -- topology is not explicitly stored in the database and must be re-created on the fly.

The Parcel Object component serves as the engine for the county's new parcel/address management system, called Encoded Neighborhood Data Object Repository (Endor). To support the integration of Endor with the county's other applications, the IT department built a J2EE-based hub-and-spoke architecture using BEA WebLogic Integration as the hub. The IT staff selected the Linux platform for the application server and for future application development. Now in-house software is built primarily with Java code using BEA's WebLogic Server and Integrator components.

There was great risk in the Jefferson County IT overhaul. Because the county depends on its applications for tax assessment, elections, planning, zoning and road maintenance, replacing applications without disrupting others was critical. But the upside was tremendous.

"If every parcel were tied to one common set of data, we'd never have to re-precinct again," said Gallaher. "We'd never have to deal with a new precinct or zoning map if all the county's tabular and spatial data were tied to one package."

The county would have done one thing differently, though. "We implemented software configuration management halfway through the project," said Jim Lindauer, technical manager of IT. "In retrospect, we would have introduced SCM earlier, and cut down some of the work involved, the checking in and out of code."

Application profile

Project: Jefferson County Address Management System Overhaul

Purpose: To create a unified spatial and tabular system to keep track of the 350,000 addresses in the county.

Benefits: The parcel object-based system makes more information available to county workers and residents online, which should reduce the amount of time county employees spend creating data sets and answering individual questions. This should help the county serve its increasing population with its current resources. It is also a core piece of infrastructure that will be used to build additional applications in the future.

Platforms: J2EE, Linux

Tools: Versant Development Suite (VDS) 6.0, BEA's WebLogic Integration

Development team: Parcel Object research team: Bob Walker, Jeff Carlson, Al Depatie, Tina Morris, Mike Wouk, Eric Beach, Chris Dibartolo, Steve Mitchell

Endor development team: Bob Walker, Jeff Carlson, Al Depatie, Mike Wouk, Richard Ruble,Steve Mitchell, Cyril Completo, Kim Dinapoli, Trisha Graesser

Keane Report

Jefferson County needed to change the way it tracked 220,000 land parcels and 350,000 addresses, and do it in a way that would not disrupt operations, or lose or corrupt data. Commercial off-the-shelf software could not provide the necessary functionality or extendibility. Based on the work of Ale Raza (the Raza Model), the county came up with a unique Geographic Information System (GIS) it calls Temporal/Spatial Information Systems (T/SIS). This new version of GIS enables an address to be treated as an attribute of a parcel, and introduces the ability to include time into the GIS.

By developing the application in Java utilizing J2EE design strategies and persisting the data in an OODB (Versant), the team eliminated the need for an EJB construct. This simplified the model, although the use of emergent technologies increased the risk. The result was an inventive use of spatial relationships via objects using an OODB, and a uniquely extensible system that is likely to be copied by other counties.

Team Leader: Neville Goedhals, Manager, Enterprise Architecture Global Services, Keane Inc.


Click here to read about the finalist in this category, "Smalltalk lives on at St. Paul", or click here to go to the Innovator Awards home page.
Upcoming Events