As websites have tried to deliver increasingly personalized experiences to their users, web developers have used Java to deploy sophisticated server-side applications capable of parsing user input, returning a custom response, storing persistent session data, and making connections to server-side databases.
The trend towards server-side Java development has also manifested itself in the GIS industry, particularly for serving maps over the Internet. With this information in mind, About GIS hit the road to attend the 2001 JavaOne conference in San Francisco, California.
Our mission was to meet with the companies who have developed Internet map servers and GIS toolkits using Java and watch their products in action. Some of the industry’s largest vendors of desktop GIS products, such as ESRI and MapInfo, were at JavaOne, but there were also a lot of other companies showing off great products.
This article comments on some of the Internet map servers and GIS toolkits offered by these companies at JavaOne.
Internet Map Servers
ArcIMS is the Internet mapping product from ESRI of Redlands, California. ESRI has been in the business of serving maps over the Internet since 1997, when Map Objects Internet Map Server was first released.
With the release of ArcIMS in 2000, the company has introduced a new architecture for web-enabling GIS applications that includes Java. The ArcIMS server runs in any servlet container supporting the Java 2.2 Servlet specification and servlet containers exist for almost every brand of web server including Apache and Microsoft IIS. ArcIMS includes three out-of-the-box map client options:
- an ultra-thin HTML client
- a thicker Java client requiring that users download the Java 2 plug-in
- ArcExplorer, a desktop application that can interact with ArcIMS servers
A fourth option is to use the ArcIMS Site Starter Applications to quickly configure a client that is geared towards a very specific function, such as a parcel query application. If you are already using ESRI ArcGIS desktop products, such as ArcInfo 8.x and ArcView 8.x, there is the added advantage that all of these products can read data from existing ArcIMS servers.
C-it Locate Software
You may have interacted with a high-volume street map product on the Internet such as Mapquest or MapBlast. Although these sites are capable of handling millions of requests per day and large numbers of concurrent users, these sites sacrifice flexibility in the user interface and supported data formats to achieve this performance.
C-it Locate Software may be the product that comes closest to offering you the performance of these high-volume sites, but with the fexibility to display a variety of geographic and business data types in many different formats including Oracle 8i Spatial, ESRI shapefiles, and MapInfo MIF files.
The makers of C-it Locate Software, Object FX Corporation, of St. Paul, Minnesota have worked with Java since the language was first released in 1996 and have a tremendous amount of experience developing GIS solutions with the language.
C-it Locate Software is built using a variety technologies comprising the Java 2 Enterprise Edition (J2EE) standard, which means that it can be deployed to many server environments including Apache, Microsoft IIS, and iPlanet.
One of C-it’s most interesting features is the ability to control whether a single map data layer gets delivered to the client as a raster or as a vector. This feature enables the map server administrator to set particularly large datasets to be delivered as an image in order to conserve bandwidth, but allow data that requires significant user interactivity to be delivered as a vector stream.
Vector and raster layers appear seamlessly to the client receiving the request from the server. C-it Locate Software can also be customized for applications in vertical markets such as location-based services, logistics, and telecommunications as well as government agencies and systems integrators.
One of the biggest weaknesses of applications that use Java applets on the client is that today’s browsers only have built-in support for Java version 1.1.
If you want to execute an applet built with more recent versions of Java, the user must download and install an approximately 5 megabyte plug-in. If you are targeting your application for the general public, asking your users to download a plug-in is not realistic.
JMap manages to provide users with a very slick and highly interactive user-interface without the need for a plug-in. How? All of the components used by JMap are custom lightweight components that extend the basic Java AWT (Abstract Window Toolkit) to enable the rendering of geographic data.
JMap delivers all data to the client as a vector stream and takes advantage of this fact to allow efficient on-screen feature identification, selection, and redlining from the map client. Another nice feature is that the server software supports on-the-fly re-projection of data.
A HTML report generating function supports back-end relational database queries and is integrated with the product. Because the map server is written with Java, a variety of server platforms, including Apache and Microsoft IIS, are supported. JMap is made by Kheops Technologies, a company based in Montreal, Canada.
MapInfo Corporation of Troy, New York offers two MapXtreme Internet map server products, the Windows NT version is for customers operating exclusively with Microsoft products and a Java version for everyone else.
The map server can be configured to do all map rendering on the server, sending only images to the client. Alternatively, the map server can be configured to send a compressed vector stream to the client if greater interactivity is required. MapXtreme has substantial relational database support, including the ability to read Oracle 8i Spatial data types.
In addition, Map Definition Files, which control the operation and configuration of the server, can be stored in a database eliminating the need for messy textfiles scattered about the server.
You may already be familiar with the Houston, Texas firm Interactive Network Technologies or INT, makers of high performance C++ and Java graphics toolkits for use in scientific and technical applications.
At JavaOne, INT was demonstrating a beta version of the soon to be released J/GIS mapping component. Although this product is not an Internet map server, it is noteworthy because of the robust support for distributed data sources available in the product.
J/GIS reads data locally, on the network, or from another vendor’s map server with ease and the added capability to perform on-the-fly re-projection. Real-time data streams, such as from a GPS unit, are also supported.
The product is distributed as a reusable component complying with the Java Beans specification. Java Beans components such as J/GIS be used to create an application with minimal coding simply by manipulating the component within any Java Integrated Development Environment (IDE) that supports Beans.
All of INT’s graphics toolkits are tested and used on in-house projects, so they have significant experience integrating their products with real-world applications. Professional services relating to application development with J/GIS or any of their toolkits are also available from INT.
LOOX Software Inc. of Burlingame, California, a leading provider of Java graphics toolkits, demonstrated JLOOXGis 2.0, a Java Beans component that can be embedded in other Swing (Java 2) components to display geographic data. JLOOXGis can be deployed as an applet, application, or in a servlet.
Several vector and raster data sources are supported, including ESRI shapefiles, TeleAtlas and NavTech street data, as well as any server that communicates via the Open Geographic Datastore Interface (OGDI).
The Applications Programming Interface (API) uses the Model View Controller (MVC) paradigm and includes several varieties of event listeners to facilitate callbacks based upon interaction with the user interface.
Applications built with JLOOXGis have no runtime or royalty fees. In other words, you can buy as many copies of the component as you need for development and pay nothing extra for every application that you ship using this component. Customers have used JLOOXGIS for real-time supervision and monitoring applications such as Intelligent Transportation Systems (ITS) and telecommunications network management.