Implementing Internet GIS with Java based Client/Server Environment

M. N. Babu
Beach Sand and Offshore Investigations,
AMD, DAE, Thiruvananthapurm, INDIA.
Phone: 0471-2345185
e-mail: mnbabuin@yahoo.com
Introduction
GIS is an emerging technology encompassing many disciplines namely geography, cartography, photogrammetry, remote sensing, surveying, GPS technology, statistics and other disciplines concerned with handling and analysing spatially referenced data. GIS is mainly comprised of data handling tools for storage, retrieval, management and analysis of spatial data as well as solving complex geographical problems. GIS can also be used for the generation of new information by the user-defined combination of several existing information. Because of these various distinguishing features of GIS it is considered as an indispensable tool for conducting spatial searches and overlays and association of the spatial data with the non-spatial attribute data to eventually generate useful information.
The Internet is client/server based where the client sends a request for service and the server processes the request and returns information to the client. The Internet, unlike other Client/Server based networked applications, is constrained by the network size, speed and administration. The Internet is not just a computer network, but it is based on open standards that define low-level communication protocols such as transfer control protocol/Internet protocol (TCP/IP), state distribution protocols such as file transfer protocol (FTP) and hypertext transfer protocol (HTTP), document content standards like hypertext markup language (HTML), extensible markup language (XML) and image formats like GIF and JPEG.
The integration of GIS and Internet technologies is allowing easy access to information and data without using any specific GIS software. The growing capability of the Internet has created increasing demand for applications that use GIS. The Internet makes sense for an organization centralizing the maintenance of GIS software services and data. Using the Internet, software can be easily updated, and users can gain access to the applications and information they need for specific tasks.
Server and Client side Architecture
There are two basic approaches for deploying GIS or any other complex, data-driven application on the Internet; those are server-side and client-side applications. In a server-side Internet GIS application, a Web browser is used to generate server requests and display the results. An Internet GIS server usually combines a standard Web (HTTP) server and a GIS application server, and the GIS databases and functionality reside completely on the server(s). A server-side GIS application can be illustrated by a mapping application on any of the major Internet portals. Users type in the address they are looking for (the request), which is transferred to a Web server. The Web server passes the request to a GIS application server, which runs an address matching routine, generates a map graphic, convert the graphic to Web format, wraps the image in HTML and sends it back to the Web server, which then returns the response to the client as a standard Web page. Server–side application can comply with Internet standards, because all the large GIS databases remain on the server (Gifford, 1999). This is an advantage for simplified application development, deployment and maintenance of data. In server-side Internet GIS, usually the application requires proprietary software and the software stay on the server. Map data transmitted to a Web client are in standard HTML formats that can be accessible through any Web browser, creating significant positive implications for performance, reliability and size of user base.
In a client-side Internet GIS application, client-side applications require users to install a complete client application. In either case client-side application require software of some kind (other than browser) to be transferred to the user. In client-side Internet GIS, the client is enhanced to support GIS operations. To implement client-side solutions of any kind, software must be transferred to the client. The primary advantages of client-side solutions are the abilities to enhance user interfaces, improve performance and implement solutions using vector data. Client-side solutions can be implemented with all the features and capabilities allowed by a modern GUI (graphical user interface). Multipoint feature selection, selecting an area by dragging a window and a modal cursor operations controlled by clicking on menu icons as capabilities available in client-side products that aren’t available in server-side implementations. When client-side solutions use vector date structures, a large set of graphic and GIS operations can be performed locally. A significant performance advantage is that window display changes can happen without retransmitting a request to the server. Core GIS operations like editing, buffering, overlay analysis and route tracing are examples of operations that are enhanced by exploiting vector data structures on the client side.
An example of the client-side Internet GIS application is one that runs as a Java applet. The code or the applet is transferred to the Web browser as binary instructions that provide a GUI for the GIS application. Vector-based data is then transferred to the client enabling the complex GIS functions on the client. The architecture should not be confused with a similar server side GIS application that implements a Java applet to create a GUI for the GIS application. In this case, the applet is simply an interface and the complex GIS calculations and data remain on the server (Marshall, 2002).
Disadvantages of server-side solutions are primarily associated with limited user interface and poor performance. In GIS, there are many applications in which users need to drag windows or select multiple features before an action takes place. It is difficult or impossible to do this by using a standard Web interface. In addition, server-side application must retrieve all the application information from the server for every operation. For example, when users reset a display window by panning or zooming, turn a layer on or off, or take any other action, the request must be sent to the server and returned. The results in many requests, which can cause poor performance.
The disadvantages associated with client-side solutions relate to distributing software and data. By definition, when companies implement client-side Internet GIS they must somehow distribute software to users. Distributing software (Java, ActiveX or any other type) is problematic. Some potential users will be lost due to platform incompatibilities, some users will undoubtedly have difficulties loading software, and providing technical support is time consuming and expensive.
Standalone Internet GIS applications (ALOV, 2002) are not purely client-side Internet GIS applications in which the system is independent of the working platform, application software, server environment and browser software. Such systems are file based and easy to develop and can be deployed in any Java enabled Web server. The limitation of the system is its slow performance and lack of advanced features available with them.
Integration with Java and XML
Java
ä is increasingly adopted by developers and IT professionals as the preferred software development/ deployment platform for Internet applications (ESRI, 2002). The idea of Java (write once, run anywhere) is incredibly powerful especially for Internet applications. Users must remember that Java is a proprietary language and not an Internet standard. Java is characterised in terms of a list of buzzwords: it is a simple, object-oriented, distributed, interpreted, robust, secure, architecture neutral, portable, high-performance, multithreaded and dynamic language. Java will be great but not until the kinks are worked out and is endorsed as an open standard by one of the appropriate standards organizations.
A Java application does not run on a particular machine; it runs in an environment known as Java Virtual Machine (JVM). Each platform has its own such environment, which translates the “independent” functionality of the Java application to machine specific function calls. Though the application can be written once and run it on many platforms, a Java application may run much more slowly than a native one. Fortunately, operating system developers and browser developers have created Just-In-Time (JIT) compilers to speed up Java applications by compiling them into native applications before they are executed. JIT compatibility is built into many browsers and operating systems.
The JDK 1.2 forms the basis of what Sun calls the Java 2 platform. This is Sun’s first implementation of a complete set of Java programming building blocks, the Java Foundation Classes (JFC). JDK 1.2 is seen as the first functional release for Java, and it has attracted the notice of non-Java developers also. What has caught the attention of many people is Java's ability to generate applets, small programs, which can be downloaded from the Internet and run on any Java enabled Web browser. This has been used to add dynamic features to Web pages which would be quite impossible to achieve with previous technologies.
Java applets are small programs which can be incorporated into a Web page. The executable code of the applet is compact and is downloaded along with the text of the page. Once the code arrives from the server it is executed by the browser on the local machine. This allows the programmer to do many things which would be impossible in a normal Web page. Among other things the applet can display dynamic graphics on the Web page, it can allow the user to interact with it and it can connect back to the server to download further information or query a database. The infrastructure required to support the applet is built into the Web browser. Java applet will run on any platform: the environment provided by the browser insulates the applet from the underlying operating system and allows it to function on any platform on which a Java-enabled browser is available. This is obviously a key feature in allowing use over the Internet. All of the standard libraries for such things as the graphical user interface and network access are provided on the client platform. The only code which needs to be transferred across the Internet is that which is unique to the applet.