the development of Internet and Web technologies has impelled GIS move from stand-alone application to Internet environment and has resulted in emergence ...
Dynamical Component Integration Approach for the Development of Internet GIS and Its Performance Improvement Tan Jing, Zhang Baiping
Wan Li
Institute of Geographical Sciences and Natural Resources Research, Chinese Academy of Sciences Beijing, China,
Institute of Agricultural Resources and Regional Planning, Chinese Academy of Agricultural Sciences Beijing, China
Abstract—Internet GIS is the cyber-infrastructure framework for geographic information services utilizing both wired and wireless Internet to access geographic data and spatial analytical tools. It has been developed and used extensively in many real-world applications. However, communities lacking of resource and expertise are denied due to its cost and technical complexity. Also users requiring tailored functions can not be satisfied for commercial software’s closed architecture. To overcome these problems this paper offers a novel approach based on dynamical integrated components (DIC). The backbone of this approach is that integrating GIS functionary components into client application at run-time according to user’s demand using a mechanism of describing and interpreting components. Details of working mechanism and technical implementation of the approach are discussed. To validate feasibility of the approach a prototype system is developed. Main components of the prototype are explained. Also several performance improving techniques including multithreading techniques and load-balancing are proposed to enhance practicability of the prototype system. Keywords- Geographic Information System(GIS) ˈ Internet GIS, distributed components, hierarchical architecture, load balancing, multi-thread
display; (3) metadata search; (4) dynamic map browsing; (5) data processing; (6) web-based GIS query and analysis; and (7) net-savvy GIS software. There have been many kinds, and a large number of Internet GIS applications, and many GIS software vendors have also released their own commercial products to give support for web-based GIS applications. For instance, Autodesk’s MapGuide, ESRI’s ArcIMS and the latest ArcGIS Server, MapInfo’s MapXtream, etc.
I.
Though above Internet GIS applications fulfill extremely valuable roles, they are generally very large applications that are expensive to license, have a very steep learning curve, and are difficult to use to common people[7]. On another hand, most users generally require only a small subset of the functionality provided by traditional GIS applications, and do not necessarily wish to become experts in GIS in order to make use of GIS applications[8]. Furthermore, some customized extensions to fulfill analysis functions in certain field can not be added into the system due to the closed architecture. To bridge this gap a potential solution should be allowing users to decide which tools they require for the job at hand. This paper presents a novel development mode for Internet GIS using dynamical integrated components approach (DICP), which is potential to overcome above-mentioned problems. The backbone of this approach is that integrating GIS functionary components into client application at run-time according to user’s demand using a mechanism of describing and interpreting components. A prototype called “FreeXGIS” adopting this approach is developed to validate the mode.
INTRODUCTION
Geographic Information System (GIS) is a powerful tool enabling users to capture, explore and analyze geographic data. It has been widely used in various types of business, government and university projects [1, 2]. In recently years, the development of Internet and Web technologies has impelled GIS move from stand-alone application to Internet environment and has resulted in emergence and development of Internet GIS. The most significant difference between traditional GIS and Internet GIS is the adoption of distributed component technology and distributed computing languages, which can be used to access and interact with multiple and heterogeneous systems and platforms. Internet GIS provides better solutions to online transactions than stand-alone GIS and promoted the participation of the public and customers, and resulted in the increased scale and profitability of many GIS projects [3-5]. It is fair to state that Internet GIS has brought geospatial data and services to the Internet-literate masses. The practical use of Internet GIS in real-word projects provokes acceleration in the growth of GIS disciplines and industries. Chang[6] classified all Internet GIS applications into seven categories: (1) raw data downloading; (2) static map
II.
This section will discuss the working mechanism of the dynamical integrated components approach (DICP). The DICP offers two working modes: stand-alone mode and network mode. In stand-alone mode, it provides a rudimental application integrated tightly with server with basic GIS functions, such as data browse, simple query, etc. User can employ this mode as server-side interactive interface for database management by applying related components located on the server. In network mode, there are two client applications can be selected: specialized and configurable client application and general web browser such as Microsoft
This research was supported by the Natural Science Foundation of China (Grant No. 40571010)
1-4244-2424-5/08/$20.00 ©2008 IEEE
MECHANISM OF DYNAMICAL INTEGRATED COMPONENTS APPROACH (DICP)
323
ICCS 2008
Internet Explorer. Thus the system’s architecture can be regarded as client/server and browser/server respectively. In browser/server mode, the client-side interface is a general web browser. User can submit their requests through web browser and the browser communicates with Web server through HTTP. The server handles the requests and sends results to the client, and then the browser interpret the results and shows them to the users.
Furthermore, more detailed information can be embedded into the document through adding new tags and relevant description. It is notable that the grammar rules of the CXML should be observed strictly.
In client/server mode the client-side is a specialized and configurable application which has a user-friendly interface and several basic spatial operating modules. In order to satisfy tailored requirements from various users, extensions can be downloaded from server and dynamical incorporated into the client application at runtime. The component descriptor and the component interpreter play important roles in this process. The descriptor locates at server side and in charge of generating a XML style document for each component to describe its basic information, such as the developer, version, and so on. On the other hand, the interpreter locates at client side, and it is responsible for extracting information about the downloaded component. Then the client can integrated the component properly according to the extracted information. III.
Uid042 Legend 1.0 Tan Jing Web Page Figure 1.
IV.
A. Distributed Component Object Model(DCOM) Component software technology offers a revolutionary mean for soft development and makes possible the development of light applications where specific problems of the application are solved, whereas the basic function is provided by reusable components. In this study the distributed component technique is introduced to help GIS components cope with network environment. There are three major distributed component technologies, namely the OMG’s CORBA Specification, Sun’s Enterprise JavaBeans (EJBs) and Microsoft’s Distributed Common Object Model (DCOM). DCOM extends the COM to support communication among objects on different computers—on a local area network (LAN), a wide area network (WAN), or even the Internet. In this study, we choose DCOM for its flexibility, scalability and simplicity to implement.
The unique ID, name, developer, version of the component.
ARCHITECTURE OF THE PROTOTYPE SYSTEM
Database layer is the fundamental part of FreeXGIS and mainly responsible for storing and managing GIS data. There are several modules in this layer to fulfill relevant functions by employing some application program interfaces (APIs), such as ODBC API, ESRI SDE’s API, etc. Component service layer contains business logic and in charge of handling all application requests. It serves as bridge between the database layer and upper layers. So in fact its function can be divided into two parts, namely, retrieves data requested by the clients and answers queries for the clients. Most functions of this layer realized by employing components from components management layer.
B. Component Extensible Markup Language To describe information about distributed GIS components the Component Extensible Markup Language (CXML) is designed based on the idea of XML, which enables the developer to encapsulate context information about GIS component into a XML style document. The document contains the unique name of each GIS component, the developer or vendor name and the version of the component, etc. The document can be processed by an XML-to-HTML style sheet, using the XML Style-sheet Language, to create a HTML document for presentation in a Web browser. An example of CXML document is shown in figure 1.The document contains following information: The source of the component.
Example of CXML document
This section will discuss architecture design of the prototype, which is named FreeXGIS. The FreeXGIS is designed as a hierarchical architecture of four layers, including database layer, component service layer, component management layer and presentation layer. This enables GIS functions to be distributed reasonably in both server and client, and make the system reusable, as well as provide efficiency approach for further development and integration with other systems.
KEY TECHNIQUES
Distribution manner of the component. In this example, the component is distributed for web page application, namely, browser/server mode.
Component management layer consists of a component library and a management proxy. The library provides a set of components to realize rich GIS functions. All the components are managed by a proxy in order to maintain the library’s robustness. The proxy associates a CXML document with each component in order to identify it and offer function explicit and reusable interface to both remote clients and server side application. Once component is added into or removed, the proxy will register it. The presentation layer contains applications that handle user interaction and display. There are two client applications: web browser and specialized client application. Both of them use the services exposed by the application layer. However, the business logic in the latter is more complicated than the
324
former. Several GIS function components have been previously integrated into it for performing common spatial operations. In order to realize tailored function or advanced spatial analysis, component can be downloaded from server and dynamical integrated into the client application using component descriptor and interpreter. V.
two parts: FxView and FxDialog. The FxView inherits the CView class of MFC (Microsoft Foundation Class). It encapsulates elementary windows operations, such as zoom in, zoom out, move, etc. It is fundamental class and several other display-related classes are derived from it. The FxMapView inherits from FxView. It encapsulates most GIS functions, including select, pan, identify, query, edit, and so on. It provides a platform for displaying, analyzing, and editing spatial data. Both FxTableView and FxDatabseView inherit from Fxview. The former is responsible for displaying and operating attribute data table, while the latter provides interfaces to access database. The FxDialog encapsulates all message-related operations.
IMPLEMENTATION OF MAIN COMPONENTS
A. Database Access Component Database access component aims at providing spatial data from various data sources to many applications and other components. Figure 1 shows its architecture. The significance of this component is that it can make diverse data sources transparent to users, i.e. accessible without the recognition of physical locations, types, data structures, and connection information, etc. The database access component contains three objects: data connect object, data cache object and SQL query object. The data connect object is responsible for connecting or disconnecting database. It encapsulates a set of APIs provided by ODBC or commercial database software to efficient access. The data cache object serves as a server side data buffer between database and client. It allows the server to cache the frequently accessed data and to respond as quickly as possible. Two caching strategies are adopted. If the data volume is relatively small, the data will be directly cached in RAM. On the contrary, the data will be indexed with R-tree. The SQL query object is responsible for translating request into SQL language statements and executing them. Together, the three objects form a complete component with distinct data access and query capabilities. Figure 2 outlines the architecture of the database access component.
Figure 2.
FxMapView
FxView
FxTableView
FxMap FxDatabaseView Map Component
FxDialog
Figure 3.
VI.
Object diagram of FxMap
PERFERMANCE IMPROVEMENT
In this section, two performance improving techniques are proposed to enhance overall performance of the prototype system. A. Load-balancing technique In order to make full use of computing capabilities of both sides and improve user experience, a mechanism of work balancing to allocate different tasks to the appropriate side is established. The server side mainly manages such tasks as data storage, extraction, processing, and map generation, and the client side can manage presentation, interaction, user interfaces, and interactive map manipulation. For example, basic map operations such as zooming and feature selection are handled locally, and they will generate quick and efficient performance because they no longer require a round trip to the server side as is the case with the CGI approach. However, if the data amount is too large to transfer, the work balancing mechanism will be activated to assign tasks to both sides in reason. So sometime certain tasks are common to both sides, such as map generation. In this approach, specific processes are assigned to either the client computer or the server computer based on which assignment of tasks would provide the greatest overall efficiency. B. Multi-thread technique To cope with concurrent requests from multiple clients a multi-thread module is integrated with server-side application. The module can be divided three sub-module, including communication sub-module, computation sub-module, and data structure sub-module. The communication sub-module is used to communicate with the clients and to perform certain
Architecture of the database access component
B. Map component Map component is responsible for displaying and operating GIS data. Its structure is briefly shown in figure 3. It contains
325
first phrase computations when it receives requests from the clients. Major computation work is processed in the computation module that searches the data structure to find the results and to retrieve the information that the clients need.
for realizing this mode, including description and interpretation of distributed component, dynamic integration of distributed GIS components, and so on, are discussed. To validate the mode, a prototype called FreeXGIS is proposed.
In this mode, when a client sends a request to the server, the main thread will generate a new thread to handle this request. That is, this worker thread takes over the communication channel, receives the request query, performs the computation (searches the data structure), and then transmits the results back to the clients. When facing concurrent requests from clients the server will generate multiple threads to handle every request.
Through the dynamic integration of distributed GIS components, quick and easier development of GIS applications will be possible in the mode. Utilizing this mode one can develop in advance and share many common functions of GIS as distributed components on the Internet, and later they can select and integrate only the necessary components from among them. Consequently, it will be possible to cope with a number of diverse projects instantaneously with less time and expense.
VII. SYSTEM ILLUSTRATION
Though two performance-improving techniques are implemented in the prototype system, other techniques can be employed for further enhancement. These techniques include spatial cache, spatial index, and so on. Except for these software approaches, deploying multiple servers, extending RAM capacity and other hardware performance improving measures can also elevate overall performance of the system.
The FreeXGIS is developed using Visual C++ and Visual Basic. Most of the components are developed using Visual C++㧘while the client is developed using Visual Basic .Figure 4 and figure 5 illustrate the GUIs of specialized client application and server respectively.
[1].
[2].
[3].
[4].
[5]. Main Interface of FreeXGIS client [6].
[7].
[8].
Figure 4.
Main Interface of FreeXGIS server
VIII. DISCUSSION AND CONCLUSION In this study, a distributed component-based development mode for Internet GIS has been suggested. The design of the mode was founded on introducing the opportunity to user select expected function components. Several key technologies
326
M.F. Goodchild, et al., “Towards a general theory of geographic representation in GIS,” International Journal of Geographical Information Science, vol. 21, no. 3, 2007, pp. 239-260. D.J. Abel, et al., “An exploration of GIS architectures for Internet environments,” Computers, Environment and Urban Systems, vol. 22, no. 1, 1998, pp. 7-23. M. Rao, et al., “A web-based GIS decision support system for managing and planning USDA's Conservation Reserve Program (CRP),” Environmental Modelling & Software, vol. 22, no. 9, 2007, pp. 1270-1280. J.Y. Choi, et al., “Web-based GIS and spatial decision support system for watershed management,” Journal of Hydroinformatics, vol. 7, no. 3, 2005, pp. 165-174. I. Hossack, et al., “A GIS and web-based decision support tool for the management of urban soils,” Cybernetics and Systems, vol. 35, no. 5-6, 2004, pp. 499-509. Y.S. Chang and H.D. Park, “XML Web service-based development model for Internet GIS applications,” International Journal of Geographical Information Science, vol. 20, no. 4, 2006, pp. 371-399. D. Caldeweyher, et al., “OpenCIS - Open source GIS-based web community information system,” International Journal of Geographical Information Science, vol. 20, no. 8, 2006, pp. 885-898. G.M.-S. Anderson, R., “ Building web-based spatial information solutions around Open Specifications and Open Source Software,̍ Transactions in GIS, vol. 7, 2003, pp. 447-466.