Successful Development of Multi-Tiered GIS Applications
Michael B. Hamsa
Programmer/Analyst
Cook-Hurlbert, Inc.
5222 Thundercreek
Austin, Tx. 78759
Telephone: (512) 338-1711
Fax: (512) 338-9794
E-mail: mike.hamsa@cook-hurlbert.com
Theory and Background
Today, geospatial information systems are gaining notoriety in many different industries as a
way to distribute geographical data to many people, not only within a company to its
employees, but also to people outside of the company that may access the data using internet
connections. We are also beginning to see many different types of applications using
geographical data come to the forefront. Everything from mapping tools that track locations
of assets in the field for utility companies to sales force applications that determine and
locate clusters of potential customers for mobile sales employees. What used to be static
paper map production and maintenance is now becoming on-line real-time geographic data
distribution and over multiple types of media. This is driving the mapping technology, the
vendors that provide it, and the groups that support it and maintain it to understand and use
the latest advances. Software engineers need to constantly be aware of changes and
improvements in technology that can be used to provide the software they are responsible for
designing. The technology used in many of the software products we use today changes at
such a rapid pace that it is becoming almost impossible for one person alone to keep up with
it.
Because of this, more pressure is being put on Information Technology and Information
Services departments to design and develop applications that use these systems and the data
they contain. Requirements for applications that consume geographic data are beginning to
include internet distribution technologies because users are requesting undisturbed access to
the important information contained in these systems. At the same time, the "industrial
strength" users who maintain the data in these systems need the ability to create, update, and
delete in an environment that provides a higher level of performance and a larger number of
tools that the everyday internet user may not require. Initially it looks like two completely
separate applications may have to be developed to meet the requirements of both types of
users. This may not be possible because IT departments are also faced with aggressive
timelines to design and develop the application and approval of the applications by upper
management hinges on short and inexpensive scheduled that roll functionality out to users
quickly.
The general concept here is to have the engineers spend as much time up front as possible to
gather and analyze requirements for these applications. Based on the analysis of the
requirements, a complete software architecture can be designed that provides a maintainable
and extendable platform to build future applications within. After the requirements of all the
different types of users has been gathered and looked at there is usually some overlap of
functionality requested. For instance, web users in the field and at home want to view work
requests as well as the geographic and facility data associated with it - so do desktop users in
the office. Desktop users in the office need to locate and identify potentially large customers
and reference the geographic location of these customers with other customers - so do web
based users in the field and at home. The business logic needed to supply this type of
functionality is no different for the home or mobile user then it is the office users. The only
difference the software engineers find is that the office users expect much better performance
and access time and they also need a larger selection of tools than the internet based user.
The office users should not be limited to web browser based technology when they can
access the data with the same type of Windows based applications that they use every day.
Internet based data distribution and maintenance is not the answer for every user and some
users will not be satisfied with its performance or limitations.
The answer for IT and IS departments is to make sure that the technology they develop can
be used by both types of applications. It is now becoming perfectly possibly for the same
business logic software components of an application to be consumed by a full blown
client/server application in the office and lightweight browser-based clients in the field or at
home. Spending a small amount of time up front to identify these functional overlaps in
software requirements may mean the difference between the design and development of a
single set of business logic software components or the design and development of two
completely separate sets of components used by two separate applications that both provide
the exact same functionality.