SERVER-BASED SYSTEMS AND METHODS FOR ENABLING INTERACTIVE, COLLABORTIVE THIN- AND NO-CLIENT IMAGE-BASED APPLICATIONS

Information

  • Patent Application
  • 20070226314
  • Publication Number
    20070226314
  • Date Filed
    March 19, 2007
    17 years ago
  • Date Published
    September 27, 2007
    17 years ago
Abstract
A server receives image, graphic and/or analytic data and processes and asynchronously outputs that data to a thin/no client. The server inputs image data in a variety of different formats and renders a normalized format that can be streamed to the thin/no client using light-weight protocol(s). The server updates the image, feature and/or analytic data in real time. The server inputs feature, analytic, business logic and other data and process it into various format(s) that can be streamed to the thin/no client and overlaid on the image data. The server provides application services, which can include collaboration, tracking, alerting, business, workflow and/or other desired services. The server can receive collaboration data from one thin/no client and stream that collaboration data to other thin/no clients to enable shared situational awareness between the thin/no clients. The server includes a programming environment for programming thin/no clients contained within server-based web pages.
Description

BRIEF DESCRIPTION OF DRAWINGS

Various exemplary embodiments of systems and methods according to this invention will be described in detail, with reference to the following figures, wherein:



FIG. 1 illustrates one exemplary embodiment of a thin or no client application according to this invention;



FIG. 2 is a block diagram outlining a first exemplary embodiment of a server system that supplies one or more asynchronously accessed data streams to the thin or no client application shown in FIG. 1;



FIG. 3 illustrates an image that comprises a plurality of image tiles;



FIG. 4 is a block diagram showing in greater detail one exemplary embodiment of the map services portion of the server system shown in FIG. 2;



FIG. 5 is a functional block diagram outlining one exemplary embodiment of the flow of data into, within and out of the map services portion shown in FIG. 4;



FIG. 6 is a block diagram of one exemplary embodiment of the data structure of a preprocessed image archive;



FIG. 7 is a block diagram outlining a second exemplary embodiment of a server system that supplies one or more asynchronously accessed data streams to the thin or no client application shown in FIG. 1;



FIGS. 8 and 9 show fragments of html code for a thin or no client application according to this invention illustrating one exemplary embodiment of extended html tags according to this invention that can be converted using the second exemplary embodiment of the server system shown in FIG. 7 into AJAX code executable by the runtime environment that the thin or no client application will run under;



FIG. 10 shows a fragment of AJAX code generate using the second exemplary embodiment of the server system shown in FIG. 7 from extended html tags according to this invention;



FIG. 11 is a block diagram outlining one exemplary embodiment of the conversion of the html code shown in FIG. 8 in to the AJAX code shown in FIG. 10;



FIG. 12 illustrates how corresponding tiles of two different data sources that have been processed by a server system according to this invention can be overlaid by a thin or no client application according to this invention;



FIG. 13 illustrates one exemplary embodiment of a server-side object model implemented as a set of XHTML tags according to this invention;



FIG. 14 illustrates one exemplary embodiment of a hierarchy of the set of XHTML tags shown in FIG. 13;



FIG. 15 illustrates one exemplary embodiment of a number of tiles of image data overlaid with a number of graphic elements representing various objects' position history data;



FIG. 16 illustrates one exemplary embodiment of a heat map;



FIG. 17 illustrates one exemplary embodiment of a number of tiles of image data overlaid with a number of graphic elements representing various objects' location data and area of influence or coverage data;



FIGS. 18 and 19 illustrate a pair of exemplary embodiments of a number of tiles of image data overlaid with a number of graphic elements position tracking of objects relative to defined hot spots; and



FIG. 20 illustrates a thin or no client application that allows a user to create and send collaboration data back to the server system.


Claims
  • 1. A server system that receives data requests from a client and that asynchronously streams requested data to the client, comprising: an image services portion that receives image data requests from the client, comprising at least one of: a map services portion that, in response to image data requests for raster image data, obtains the requested raster image data from a data source, converts the obtained raster image data from a native format of that data to a first predetermined format, and streams the converted raster image data in the first predetermined format to the requesting client, anda feature services portion that, in response to image data requests for feature vector data, obtains the feature vector a data source that stores the requested feature data and streams the requested feature data to the requesting client in one of the first predetermined format and a second predetermined format;an application services portion that receives data requests from the client, comprising at least one of: a tracking server that receives tracking data requests from the client and, in response to a tracking data request, obtains tracking data for tracked entities and supplies the obtained tracking data to the requesting client; anda collaboration server that receives collaboration information from a first one of a plurality of clients and that streams the received collaboration information to other ones of the plurality of clients.
  • 2. The server system of claim 1, wherein the image services renders feature data onto feature image tiles and streams the rendered feature data to the client as raster image feature tiles.
  • 3. The server system of claim 1, further comprising a data services portion, wherein: the tracking data request identifies at least one object to be tracked;the data services portion ingests tracking data from at least one tracking data source based on the received tracking data request and compiles the ingested tracking data and outputs the compiled tracking data to the tracking server, andthe tracking server processes the compiled tracking data received from the data services portion to generate a data stream that is in a predefined format that is tuned for the client and that is supplied to the requesting client the supplied tracking data.
  • 4. The server system of claim 3, wherein: the data services portion includes an extensible set of data ingester modules, each data ingester module using a same interface and usable to ingest data from a data source in a native format specific to that data ingester module, that data ingester module converting the data in that specific native format into a common format usable by tracking server; andwhen the tracking server needs to ingest data from a data source that provides data in a different native format that is not supported by any current data ingester module of the extensible set of data ingester modules, a new data ingester module that uses that same interface and that is usable to ingest data in the that different native format can be added to the extensible set of data ingester modules.
  • 5. The server system of claim 1, wherein the image services provides a WMS-compatible interface.
  • 6. The server system of claim 5, wherein the image services provides a WFS GetCapabilities-like interface such that the client is able to determine what feature data is available.
  • 7. The server system of claim 1, wherein: at least one of the map services portion, the feature services portion and the application services portion includes an extensible data ingester portion, the extensible data ingester portion comprising a plurality of data ingester modules, each data ingester module using a same interface and usable to ingest data from a data source in a native format specific to that ingester module, that data ingester module converting the data in that specific native format into a common format usable by other portions of the one of the map services portion, the feature services portion and the application services portion that includes that extensible data ingester portion; andwhen one of the map services portion, the feature services portion and the application services portion of the server system needs to ingest data from a data source that provides data in a different native format that is not supported by any current data ingester module of the extensible data ingester portion of that one of the map services portion, the feature services portion and the application services portion, a new data ingester module that that uses that same interface and that is usable to ingest data in the that different native format can be added to that extensible data ingester portion.
  • 8. A server system that receives data requests from a client and that asynchronously streams requested data to the client, comprising: a raster data services portion that, in response to image data requests that include requests for raster image data, streams the requested raster image data in a first predetermined format to the requesting client, anda feature data services portion that, in response to image data requests that include requests for feature image data, streams feature vector image data in one of the first predetermined format and a second predetermined format to the requesting client as the requested feature image data.
  • 9. The server system of claim 8, wherein the raster data services portion comprises: a map servlet portion that receives an image data request from the client, the image data request identifying requested image data, and that asynchronously streams the requested image data to the client in the first predetermined format;a data extractors portion that includes at least one data extractor, each data extractor adapted to receive an image data request from the map servlet portion, locate the requested image data in an associated image data source, receive the requested image data from the associated data source if the associated data source stores the requested image data and convert the received requested image data from a native format to a defined format; anda data handlers portion that includes at least one data handler, the at least one data handler converting the retrieved image data from the defined format into the first predetermined format and providing the retrieved image data in the first predetermined format to the map servlet portion.
  • 10. The server system of claim 9, wherein: the data extractors portion includes an extensible set of the at least one data extractor, each data extractor using a same interface; andwhen the data extractors portion needs to ingest data from a data source that provides data in a different native format that is not supported by any current data extractor of the extensible set of data extractors, a new data extractor that uses that same interface and that is usable to ingest data in the that different native format can be added to the extensible set of data extractors.
  • 11. The server system of claim 9, wherein the at least one data handler comprises at least one of a preprocessed image archive handler and at least one ingest handler.
  • 12. The server system of claim 9, further comprising a data cache, wherein the map servlet portion queries the data cache to determine if image data in the first predetermined format corresponding to the requested image data is already present in the data cache, and, if so, receives the stored image data from the data cache and asynchronously streams the stored image data to the client as the requested image data to the client in the first predetermined format.
  • 13. The server system of claim 8, wherein the feature data services portion comprises: a feature servlet portion that receives a feature data request from the client, the feature data request identifying requested feature data, and that asynchronously streams the requested feature data to the client in one of the first predetermined format and the second predetermined format;a data handler portion that comprises at least one data handler, each data handler adapted to receive a feature data request from the feature servlet portion, locate the requested feature data in an associated image data source, receive the requested feature data from the associated data source if the associated data source stores the requested feature data and convert the received requested feature data from a native format to the second predetermined format, where in the data handler portion provides the received requested feature data in the second predetermined format to the feature servlet; andan image generator portion that receives the received requested feature data in the second predetermined format, converts the received requested feature data from the second predetermined format to the first predetermined format, and provides the received requested feature data in the first predetermined format to the feature servlet;
  • 14. The server system of claim 13, further comprising a data cache, wherein, when the feature servlet streams the requested feature data to the client in the first predetermined format, the feature servlet portion queries the data cache to determine if feature data in the first predetermined format corresponding to the requested feature data is already present in the data cache, and, if so, receives the stored feature data from the data cache and asynchronously streams the stored feature data to the client as the requested feature data to the client in the first predetermined format.
  • 15. The server system of claim 13, wherein, when the feature servlet streams the requested feature data to the client in the first predetermined format, the image generator portion receives the received requested feature data in the second predetermined format from the data handler portion, converts the received requested feature data from the second predetermined format to the first predetermined format and provides the received requested feature data in the first predetermined format to the feature servlet and the feature servlet asynchronously streams the feature data received from the image generator to the client as the requested feature data to the client in the first predetermined format.
  • 16. The server system of claim 13, wherein, when the feature servlet streams the requested feature data to the client in the second predetermined format, the data handler portion provides the received requested feature data in the second predetermined format to the feature servlet and the feature servlet asynchronously streams the feature data received from the data handler portion to the client as the requested feature data to the client in the second predetermined format.
  • 17. The server system of claim 8, wherein the server system further receives requests for a web page from the client, the web page comprising a plurality of instructions for asynchronously requesting image data, parsing the requested image data and displaying the parsed image data without a need for any additional client-side software entities to be installed on the processing device, the instructions stored in the web page in a first language, the server system further comprising a conversion services portion usable to convert the web page in the first language into a second web page that is in a second language, the conversion services receiving the requested web page in the first language, generating the second web page in the second language, and providing the second web page in the second language to the requesting client as the requested web page.
  • 18. The server system of claim 8, further comprising a tracking services portion that receives a tracking data request from the requesting client, the tracking data request identifying a spatial area, wherein the tracking services portion obtains tracking data from a tracking data source for at least one tracked item located within the identified spatial area; and asynchronously transmits at least a portion of the tracking data to the requesting client.
  • 19. The server system of claim 8, further comprising a tracking services portion that receives a tracking data request from the requesting client, the tracking data request identifying a spatial area, wherein the tracking services portion obtains tracking data from a tracking data source for at least one tracked item located within the identified spatial area; analyzes the tracking data with respect to at least one analytic rule, generates at least one alert based on the analysis and asynchronously transmits at least the at least one alert to the requesting client.
  • 20. The server system of claim 8, further comprising a tracking services portion that receives a tracking data request from the requesting client, the tracking data request identifying a spatial area, wherein the tracking services portion obtains tracking data from a tracking data source for at least one tracked item located within the identified spatial area; analyzes the tracking data with respect to at least one analytic rule, generates at least one feature data object based on the analysis and asynchronously transmits at least the at least feature data object to the requesting client.
  • 21. The server system of claim 8, further comprising a collaboration services portion that receives collaboration data from a first client relative to a first set of data, the collaboration services asynchronously forwarding the collaboration data received from the first client to any other client that has received the first set of data.
  • 22. The server system of claim 8, wherein the server system further comprises a conversion services portion that implements a library of hierarchically-related server tags that expose an object model as a relationship of nested tags, such that hierarchically-inferior server tags are contained within hierarchically-superior tags, each hierarchically-inferior tag supplying data to a hierarchically-superior tag that contains that hierarchically-inferior tag.
  • 23. The server system of claim 22, wherein the server system further receives requests for a web page from the client, the web page comprising a plurality of instructions for asynchronously requesting image data, parsing the requested image data and displaying the parsed image data without a need for any additional client-side software entities to be installed on the processing device, the instructions stored in the web page in a first language and including at least some server tags of the library of hierarchically-related tags implemented in the conversion services, the conversion services portion converting the web page in the first language into a second web page that is in a second language and providing the second web page in the second language to the requesting client as the requested web page.
  • 24. The server system of claim 22, wherein the hierarchically-related tags of the library of hierarchically-related tags comprise a tag structure such that, for a web page that is coded within one of a first programming environment and a second programming environment and that includes at least some of the library of hierarchically-related tags, when that web page is run within the first programming environment or the second programming environment the hierarchically-related tags included in that web page behave identically.
  • 25. The server system of claim 8, further comprising a mobile device interface, wherein, when the requesting client is executing on a mobile device, the mobile device having a display device having at least one display limitation, the mobile device interface receives at least one of the raster image data and the feature vector data output to the client, modifies attributes of at least one of the recieved raster image data and of at least one object within the received feature vector data based on the at least one display limitation of the mobile device, and outputs the modified at least one of the received raster image data and the recieved feature vector data in place of the received raster image data and the received feature vector data that was recieved by the mobile device interface.
  • 26. A server system that receives data requests from a plurality of clients and that asynchronously streams requested data to the plurality of clients, at least first and second ones of the clients receiving a first portion of data, comprising: a raster data services portion that, in response to image data requests that include requests for raster image data, streams the requested raster image data in a first predetermined format to the requesting client, anda feature data services portion that, in response to image data requests that include requests for feature image data, streams feature vector image data in a second predetermined format to the requesting client as the requested feature image data; anda collaboration services portion that receives collaboration data from a first client relative to the first portion of data, the collaboration services asynchronously forwarding the collaboration data received from the first client to at least the second client.
Provisional Applications (2)
Number Date Country
60784700 Mar 2006 US
60865786 Nov 2006 US