Samuel Ngan and Jon Dennerlein
In recent years, ever-stronger commitment to networking and distributed client/server computing in the GIS industry provides GIS users an alternative to terminal-oriented workstation solutions. The excellent example is the Inter-Application Communication (IAC) functionality available on ArcView, which provides GIS application developers the flexible tools to create a customized GIS/IS integrated system assembled from separate software and database management pieces. Under Windows, ArcView can interact with Rapid Application Development (RAD) environment such as Delphi or Visual Basic through dynamic data exchange (DDE), which provides a large collection of easy-to-use widgets such as buttons, and multi-media players for developing a wide range of GIS applications.
In the last two years, Esri launched two other mapping products for desktop mapping/GIS application environment - MapObjects and MapObjectsLT. They offer a set of mapping components for application developers to build the Windows-based mapping/GIS applications using the industry standard programming environment including RAD toolkits. This article will discuss the use of RAD tools along with the Esri desktop mapping/GIS products for GIS application development and how these development tools can provide an integrated GIS/IS solutions for the organization.
Geographic information systems (GIS) are, by their nature, quite complex compared with other information technology. This combined with the fact that GIS technology is new and unfamiliar to the end users, commonly leads to the development of applications to support the use of GIS. Prior to the time of the Microsoft's Windows technology that supports application programming interface (API) and objected-based Esri desktop products, building applications for Esri’s GIS products required using their built-in scripting languages such as Arc Macro Language (AML) for the ArcInfo or Simple Macro Language (SML) for the PC ARC/INFO. As the growing popularity of network-based desktop computing and powerful software development architecture supported by Windows, Esri introduces several new desktop products that serve the strong demand for the desktop mapping/GIS solutions. These products include ArcView, MapObjects, MapObjectsLT, and NT ArcInfo, which not only provide a set of sophisticated mapping and GIS analytical tools, they also support a vast array of customization, as well as industry-standard software interface and integration architecture, allowing their products to be easily customized and seamlessly integrated with other Windows-based applications.
Most of the existing Esri desktop mapping/GIS products, including ArcView, MapObjects, and MapObjectsLT are built under the robust object-oriented development environment. ArcView supports the interapplication communication through Dynamic Data Exchange (DDE) or Dynamic Link Libraries (DLLs), and MapObjects and MapObjectsLT support Windows-based software integration through OLE (Object Linking and Embedding), which recently renamed as ActiveX controls. Through the software integration architecture, application developers can build the mapping/GIS applications that link Esri desktop mapping/GIS products with other Windows-based applications. Among those Windows application development tools available for the desktop computing, rapid application development (RAD) tools become the most popular toolkits for developers to build the end user application interface because of its prototyping capability, enabling developers to build prototypes quickly and see how end users react to the prototypes. With the aid of RAD development toolkits, application developers now can develop the mapping/GIS applications with a focus on the user interface or the end result, rather than the laborious process of coding. Hence, this article is an attempt to discuss how we can use the RAD tools to build and customized the mapping/GIS applications for Esri desktop mapping/GIS products, which craft the GIS end user solutions. The Esri desktop mapping/GIS products that are discussed in this paper are focused on ArcView and MapObjects, which are the most popular Esri mapping/GIS desktop products widely adopted by the GIS users.
RAD is an emerging concept born from the advances in desktop computer power, client-server technology and the availability of object-oriented visual application development tools. It originally refers to a methodology that uses computerized tools to give much faster development and higher quality results than the traditional system development. The RAD development toolkits that have evolved recently include Visual Basic, developed by Microsoft, Delphi, developed by Borland, and PowerBuilder, developed by Powersoft, which all offers visual design environment, and rapid application development environment.
Nowadays, there are two major environments that application developers build the industry-standard Windows applications using RAD tools around the Esri desktop mapping/GIS products : 1) Dynamic Data Exchange (DDE); and 2) OLE controls. DDE is an interapplication communication architecture, allowing developers to build the Windows-based graphical user interface (GUI) interface using RAD tools, of which it drives ArcView to perform geographical query, and other mapping and GIS operations. As Windows OLE becomes the most widely supported object-based software integration architecture, last year Esri released its first version of mapping OLE custom controls – MapObjects and MapObjectsLT (the limited version of MapObjects), which provide a powerful substrate upon which application developers can better use the RAD tools to seamlessly embed the mapping/GIS component into Windows.
As the increased knowledge and acceptance of GIS as a part of the enterprisewide information system, it brings GIS to a broader audience of organization personnel who may have little or no mapping and GIS background. Thus, the customized desktop mapping/GIS application interface should be user-friendly and easy-to-use. Even ArcView provides a customizable GUI toolkits with the scripting language-Avenue, it offers a very limited customization capability for developers to design and implement the application user-interface. For example, ArcView doesn't allow developers to customize any dialog boxes. Even a variety of dialog boxes is provided, each can request one input from a user: a file dialog that can allow user to pick a file name/path; a yes/no dialog; and a multiple choice dialog. However, RAD tools provides a large collection of industry-standard GUI control libraries, which offers developers better control to create screens and dialogs quickly and to modify them while interacting with users. Also, since RAD tools offers a high-speed, low cost, high quality application development environment, it provides capability to generate code, test it and modify it, and regenerate it quickly, the iterative development of prototype GIS application will result in the applications to be successively refined, and evolve quickly to the final applications.
Besides, RAD tools are designed based on even-driven programming model. When an application is designed and planned, even-driven programming focuses on the events that are expected to take place while the application is running. Most events correspond to actions that may be performed by the user who's running the application. For example, a user clicks a button, selects an option, chooses a menu command, or types an entry into a text box; all of these are events and are formally defined and recognized in RAD applications, of which they cannot be fully customized using Avenue in ArcView.
Furthermore, RAD tools are delivered with a standard set of out-of-the-box reusable libraries or components such as GUI interface, database connectivity, report generator. Together with the Esri desktop mapping/GIS solutions, application developers can effectively address the integration of separate technologies such as database query, document imaging, report generation into a single seamless integration environment.
DDE is a Microsoft API that provides a special client/server mechanism, which sends messages between applications that share data and uses shared memory to exchange data between applications. Applications can use the DDE protocol for one-time data transfers and for continuous exchanges in which applications send updates to one another as new data becomes available. As shown in Figure 1, when ArcView, and the RAD applications communicate, either one is the server application, and the other is the client application.
There are three ways for ArcView and RAD application to interact in a DDE communicate: execute, request, and poke. With an execute request, the client application asks the server to perform some function. A typical operation is to send a command from the RAD application (client) to run an Avenue script in ArcView (server). In the request operation, the RAD application (client) asks ArcView (server) to return an attribute value from a virtual table (VTab), and display the value on the RAD application form. With poke, the RAD application (client) asks ArcView (server) to update its text item with an attribute data from VTab. Figure 2 shows Windows application interface developed using Delphi, which provides a menu-driven Windows interface to drive ArcView for browsing the mapping information more easily.
Since last year, Esri released its first version of MapObjects, a windows-based OLE custom control. This mapping control component allows application developers to take full advantage of the robust object-oriented development environment. Unlike ArcView, MapObjects is a set of programmable OLE automation objects bundled and delivered as an OCX, which allows developers to embed Esri mapping and GIS capabilities into Windows based applications. It doesnot only facilitate rapid application development to build customized mapping and GIS solutions from the bottom-up with the aid of RAD tools, but also allows developers to integrate the mapping applications as part of enterprisewide applications in the fast pace of business.
Figure 3 shows a development environment for MapObjects. Any Windows-based application that supports OLE architecture can be an OLE container. The OLE container combines objects from MapObjects, other custom controls, and utilize the OLE Automation objects from other programs to create the customized end user applications. Now, developers can add Esri desktop mapping and GIS capabilities to their existing Windows applications such as Facility Management System, Work Order Processing System, etc. Figure 4 shows an example of a Visual Basic application that utilizes map control component as its application component. As seen in the Figure, the Visual Basic applications can be viewed as an OLE container which includes the map control component and other application components such as Crystal Report Generation to build a public access permit application.
Like other Windows-based customized programming controls, MapObjects or MapObjectsLT is designed as an application development environment for developers to build mapping and GIS applications or integrating the mapping component into an existing Windows applications. It is not an off-the-shelf mapping/GIS software like ArcView, and ArcInfo for the end-users. Therefore, prior to making decision for pursuing the Esri mapping/GIS desktop solutions, these factors should be taken into account.
As discussed above, RAD doesnot only allow developers to create applications visually with components, it also gives developers a flexible development environment to create customized mapping and GIS applications around Esri desktop products in order to take full advantages of their superior mapping and GIS capabilities. But more important, the use of RAD can address the core dilemma of computing today - the ability to quickly develop reliable and effective software application to solve user needs.
Samuel Ngan and Jon Dennerlein
Woolpert LLP
409 E. Monument Ave.
Dayton, Ohio 45402
Tel:937.461.5660
Fax:937.461.0743