Java
In the last two years has been an unprecedented level of acceptance of Java as an emerging standard for the deployment of object-oriented spatial tools and applications. Developers and end users alike recognize the simplicity and power of Java applets, servlets, and beans for the delivery of location-based services. Java is ideal for location-based services because it’s simple to use and familiar to most developers, but also high-performance and powerful. Best of all, it’s platform independent, so you’re not locked into any particular vendor for services.
XML
XML has emerged as the primary standard for sharing data between companies. From a location-based services standpoint, XML can be used to send and receive geographic and location data from spatial databases used for providing maps, driving directions, real-time traffic or yellow pages search results.
Spatial Databases
Geographic and location information such as road networks, service boundaries and longitude/latitude data is much larger and more complex than the ordinary text found in most databases. Spatial databases make it easy to store and manage geographic and location data and are now able to serve the data to Web browsers and mobile devices very rapidly.
Fig. 5: Associating a Region with a Service
Oracle’s Location-Based Services Infrastructure
Oracle9iAS Wireless is a mobile middleware server that delivers any content to any device. Applications are independent of the target device, yet automatically can exploit specific features of the device and provide customized content depending on the availability of such features. Oracle9iAS Wireless performs a variety of services as shown in Figure 1: adaptation (aggregation) of content, general processing, transparent transformation to each device, and interfaces to external location services.
Any Content
Applications can use any content available on the Web, in the database, or a file system. Oracle9iAS Wireless can either accept data in MobileXML (Oracle’s device-independent XML) or use one of its many Adapters to convert content into MobileXML. Opportunities for reusing code and content are considerable, and the advantages for development time and cost are apparent.
Any Device
Oracle9iAS Wireless Transformers then convert the MobileXML into the markup language required by each mobile device (WML, TinyHTML, c-HTML, VoiceXML etc). Obviously, devices vary in their ability to display certain content in a reasonable manner, or even to store it in memory. However, MobileXML is flexible enough to enable different input and output options depending on a specific device’s capability. Oracle9iAS Wireless exploits the maximum hardware capability of the device to present information. Most importantly, applications that work on today’s devices will continue to work without limitation with tomorrow’s more advanced devices and markup languages.
Anywhere
Oracle9iAS Wireless provides a foundation for deploying location-aware mobile applications. Mobile devices naturally benefit from location awareness, especially when supported by mobile positioning technology. With Oracle9iAS Wireless, the method by which an application determines “location” is irrelevant. A user can choose whether to base location on automatic positioning or manual positioning. Oracle9iAS Wireless also allows each user to define certain locations (such as home, office, and local airport), and to designate any of them as the default. It also lets users enter an arbitrary location, such as a distant city. Manual positioning can be used when the automatic positioning is not available or not relevant. It is useful for “what-if” scenarios such as performing a query for a location other than the user’s current location: for example, “Which services will be available to me as soon as I reach the Hilton Hotel in San Francisco?”
Any Location Service Provider
Location-awareness for mobile applications is incomplete without specialized services, such as geocoding, reverse geocoding, driving directions (routing), yellow pages, white pages, maps, weather forecasts, traffic reports, and demographic information. With Oracle9iAS Wireless, an application can use data in a locally-hosted spatial database and using specialized tools (mapping, geocoders, routing) or it can access similar (mapping, geocoding and routing services) from an external provider. This gives the developer the choice of selecting those services to be hosted locally and those that are accessed remotely.
Using Oracle9i and Oracle Spatial, enterprises can store all their spatial and attribute data in-house and access this information using standard tools and applications. For companies that don’t have the resources or data to locally host their location-based services, Oracle9iAS Wireless can accept data from third-party providers using a suite of rich and extensible location interfaces that support a variety of geocoding, mapping, routing and yellow pages vendors (see below for details). Combining these two approaches, Oracle9i and Oracle9iAS Wireless provides a complete infrastructure to support both deploy both hosted and syndicated location services.
The Oracle9i AS Wireless provides a set of APIs that enables pre-integrated web-enabled services for location related queries. This enables carriers to easily ingest different sources of location services providers worldwide using a single, consistent XML or Java interface. These interfaces allows seamless integration with existing location service vendors.
Currently defined location-based APIs include:
- Geocoding
- Routing
- Yellow page
- Mapping
This API suite can be expanded to incorporate additional sources of online location services like real-time traffic, mobile positioning, and geodemographic services.