Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD FOR PERFORMING DISTRIBUTED GEOGRAPHIC EVENT PROCESSING AND GEOGRAPHIC EVENT PROCESSING SYSTEM
Document Type and Number:
WIPO Patent Application WO/2015/058801
Kind Code:
A1
Abstract:
A method for performing distributed geographic event processing, comprises defining a geographical state system for a universe of locations that includes a model for stateful geographic event processing, said model specifying at least a state transition function for transforming geographic input events into output events and a global aggregation function for aggregating sets of output events, providing a local state system for a subset of said universe of locations being defined as a single-machine implementation of said geographical state system and a local aggregation function being defined as an implementation of the global aggregation function of said geographical state system, and by processing means, creating distributed scalable deployments that implement said geographical state system by dividing said universe of locations geographically among different computational nodes and by instantiating on each of said computational nodes an instance of said local state system and said local aggregation function conforming to the subset of said universe of locations assigned to the respective computational node.

Inventors:
JACOBS TOBIAS (DE)
Application Number:
PCT/EP2013/072279
Publication Date:
April 30, 2015
Filing Date:
October 24, 2013
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
NEC EUROPE LTD (DE)
International Classes:
H04L29/08; H04W4/021; G06F9/50
Foreign References:
US20120311581A12012-12-06
Other References:
YONGGANG WANG ET AL: "Research and implementation on spatial data storage and operation based on Hadoop platform", GEOSCIENCE AND REMOTE SENSING (IITA-GRS), 2010 SECOND IITA INTERNATIONAL CONFERENCE ON, IEEE, PISCATAWAY, NJ, USA, 28 August 2010 (2010-08-28), pages 275 - 278, XP031777107, ISBN: 978-1-4244-8514-7
ARIEL CARY ET AL: "Experiences on Processing Spatial Data with MapReduce", 2 June 2009, SCIENTIFIC AND STATISTICAL DATABASE MANAGEMENT, SPRINGER BERLIN HEIDELBERG, BERLIN, HEIDELBERG, PAGE(S) 302 - 319, ISBN: 978-3-642-02278-4, XP019119432
DEAN ET AL: "MapReduce: Simplified Data Processing on Large Clusters", 6 December 2004 (2004-12-06), pages 1 - 13, XP002503560, Retrieved from the Internet [retrieved on 20081111]
J. DEAN; S. GHEMAWAT: "MapReduce: Simplified data processing on large clusters", COMMUNICATIONS OF THE ACM, vol. 51.1, 2008, pages 107 - 113
Attorney, Agent or Firm:
ULLRICH & NAUMANN (Heidelberg, DE)
Download PDF:
Claims:
C l a i m s

1. Method for performing distributed geographic event processing, comprising: defining a geographical state system for a universe of locations that includes a model for stateful geographic event processing, said model specifying at least a state transition function for transforming geographic input events into output events and a global aggregation function for aggregating sets of output events,

providing a local state system for a subset of said universe of locations being defined as a single-machine implementation of said geographical state system and a local aggregation function being defined as an implementation of the global aggregation function of said geographical state system, and

by processing means, creating distributed scalable deployments that implement said geographical state system by dividing said universe of locations geographically among different computational nodes and by instantiating on each of said computational nodes an instance of said local state system and said local aggregation function conforming to the subset of said universe of locations assigned to the respective computational node. 2. Method according to claim 1 , wherein said geographical state system is provided in form of a generic model that is adapted to cover a wide range of geographic event processing tasks.

3. Method according to claim 1 or 2, wherein said processing means geographically distribute said universe of locations by dividing said universe into a number of, preferably equally sized, tiles.

4. Method according to claim 3, wherein the instantiation of said local state systems on said computational nodes is performed by said processing means by calling the constructor method of the local state system implementation with coordinates of said tiles as parameters.

5. Method according to any of claims 1 to 4, wherein said processing means use hash functions for determining which computational node instantiates which local state system. 6. Method according to any of claims 1 to 5, wherein said processing means or a dedicated dispatcher route incoming geographic input events to all computational nodes that host an instance of said local state system whose assigned subset of said universe of locations overlaps with the support of said incoming geographic input events.

7. Method according to any of claims 1 to 6, wherein the instances of said local state system each compute an output event.

8. Method according to any of claims 1 to 7, wherein the outputs of an instance of said local state system are aggregated by the respective local aggregation function.

9. Method according to any of claims 1 to 8, wherein the same subset of said universe of locations is assigned to more than one computational node.

10. Method according to any of claims 1 to 9, wherein geographic events are provided in a data format that consists of a triple of variables specifying the type, the support, and the payload of an event. 1 1. Method according to any of claims 1 to 10, wherein the process of output event aggregation is implemented as a centralized process.

12. Method according to any of claims 1 to 10, wherein the process of output event aggregation is realized by a processing tree involving two or more of said computational nodes.

13. Method according to any of claims 1 to 12, wherein, in case of mobile geo- fencing applications, implementations of said local state system keep a spatial index of all mobile users that are in the area assigned to the respective instance of said local state system.

14. Method according to claim 13, wherein, upon arrival of an incoming event that is triggered by a location update of a mobile user, said spatial index is updated with the new location of said mobile user and a spatial query finds out the set of mobile users that are candidates for triggering a notification.

15. Method according to any of claims 1 to 12, wherein, in case of heat map computations, implementations of said local state system maintain the temperature value history of a location or compute the average temperature of a location.

16. Geographic event processing system, in particular for executing a method according to any of claims 1 to 15, comprising:

a geographical state system for a universe of locations that includes a model for stateful geographic event processing, said model specifying at least a state transition function for transforming geographic input events into output events and a global aggregation function for aggregating sets of output events, a local state system for a subset of said universe of locations being defined as a single-machine implementation of said geographical state system and a local aggregation function being defined as an implementation of the global aggregation function of said geographical state system, and

processing means that are configured to create distributed scalable deployments that implement said geographical state system by dividing said universe of locations geographically among different computational nodes and by instantiating on each of said computational nodes an instance of said local state system and said local aggregation function conforming to the subset of said universe of locations assigned to the respective computational node.

17. System according to claim 16, wherein said computational nodes include personal computers, servers, and/or mobile devices with integrated processing capabilities.

18. System according to claim 16 or 17, further comprising a dispatcher for receiving incoming geographic input events and for routing them to the computational nodes that host an instance of said local state system whose assigned subset of said universe of locations overlaps with the support of said incoming geographic input events.

Description:
METHOD FOR PERFORMING

DISTRIBUTED GEOGRAPHIC EVENT PROCESSING AND GEOGRAPHIC EVENT PROCESSING SYSTEM The present invention relates to a method for performing distributed geographic event processing as well as to a geographic event processing system.

Systems for geographic event processing, also called geo-streaming systems, receive streams of input events and produce meaningful output events from them, where input (and possibly output) events are characterized by a geographic location or area. Examples of geographic event processing systems are geo- fencing systems, systems for real-time crowd detection based on GPS location data, or systems for computing continuously updated heat maps from location- tagged temperature sensor measurements arriving over time.

Geographic event processing systems have to perform real-time processing of geospatial data that is often produced with high event rates. Given the high amount of data to be processed, geographic event processing systems typically distribute the event processing among different computational nodes, which in this regard function as a cluster of computers.

For instance, "Map-Reduce" (as described in J. Dean and S. Ghemawat: "MapReduce: Simplified data processing on large clusters.", Communications of the ACM 51.1 (2008): 107-1 13) is a well-known framework for performing distributed geographic event processing. Another distributed real-time stream processing system, known as "Storm" (https://github.com/nathanmarz/storm/wiki), takes user-defined computation graphs (so called topologies), deploys them on computers in a cluster to perform scalable stream processing. Generally, current state-of-the art systems and methods for distributed geographic event processing fall into one of the following categories:

1 ) generic-purpose rule based event processing. Such systems solve the load balancing problem by either manually or automatically distributing the event processing rules among the different computational nodes and perform event routing such that each computer receives only the events that are relevant for its processing rules.

2) distributed stream processing systems where user-defined processing chains are manually or automatically deployed on the different computers of a cluster.

3) distributed spatial databases.

4) systems that are tailored to specific event processing tasks like e.g. geo- fencing systems.

5) generic-purpose systems for automatically distributing processing tasks based on sets of key-value pairs among clusters of computers.

Category (1 ) systems and methods treat individual rules as atomic in the sense that they cannot be divided among several computers. When there are rules that require more events than a single computer node can handle, such systems cannot be used. The same observation holds for category (2) systems, where only for stateless processing an input stream can be divided among more than one processing node.

Category (3) systems only support a predefined set of read and write operations, but do not support processing.

Category (4) systems perform one specific pre-defined geographic event processing task but are not configurable to perform also other tasks - if other tasks need to be performed the systems need to be re-implemented from scratch, including all aspects of distribution.

Finally, category (5) systems need to represent any state as well as input and output as a discrete and finite set of key-value pairs, which limits their applicability to geographic event processing tasks. Furthermore, category (5) systems, due to their generic purpose, cannot not exploit the geographic nature of geo-streaming operators for achieving increased efficiency.

To summarize, up to now, efficient solutions for distributed geo-streaming systems either have to be designed by hand for each specific geo-streaming task (e.g. for geo-fencing, crowd detection, etc.), or have to use generic-purpose frameworks (e.g. map-reduce or generic stream processing frameworks) that cannot exploit the performance optimizations that would be possible due to the geospatial nature of the data.

In view of the above it is an objective of the present invention to improve and further develop a method for performing distributed geographic event processing and a geographic event processing system in such a way that they enable to take advantage of optimizations resulting from the geospatial nature of the data, while they are generic enough to capture a wide range of geo-streaming operators.

In accordance with the invention, the aforementioned object is accomplished by a method comprising the features of claim 1. According to this claim such a method comprises

defining a geographical state system for a universe of locations that includes a model for stateful geographic event processing, said model specifying at least a state transition function for transforming geographic input events into output events and a global aggregation function for aggregating sets of output events,

providing a local state system for a subset of said universe of locations being defined as a single-machine implementation of said geographical state system and a local aggregation function being defined as an implementation of the global aggregation function of said geographical state system, and

by processing means, creating distributed scalable deployments that implement said geographical state system by dividing said universe of locations geographically among different computational nodes and by instantiating on each of said computational nodes an instance of said local state system and said local aggregation function conforming to the subset of said universe of locations assigned to the respective computational node.

Furthermore, the above mentioned objective is accomplished by a geographic event processing system comprising the features of claim 16. According to this claim such a system comprises a geographical state system for a universe of locations that includes a model for stateful geographic event processing, said model specifying at least a state transition function for transforming geographic input events into output events and a global aggregation function for aggregating sets of output events, a local state system for a subset of said universe of locations being defined as a single-machine implementation of said geographical state system and a local aggregation function being defined as an implementation of the global aggregation function of said geographical state system, and

processing means that are configured to create distributed scalable deployments that implement said geographical state system by dividing said universe of locations geographically among different computational nodes and by instantiating on each of said computational nodes an instance of said local state system and said local aggregation function conforming to the subset of said universe of locations assigned to the respective computational node.

According to the present invention geo-based distribution and event aggregation have been identified as the two subtasks that are common to a wide range of geographic event processing tasks and therefore have the potential to be implemented by a generic event processing framework. In view of this, the present invention provides a solution that separates between geo-based distribution as well as event aggregation (which can be performed by the processing means for all event processing tasks) on the one hand and the local processing (which is specific to the particular processing task and therefore is to be provided by a user of the system) on the other hand. A user of the system only needs to provide a single-machine implementation of the event processing task, while the framework takes care of all aspects of distribution, load balancing, and, if required, replication. Consequently, compared to systems tailored for specific geo-streaming, a user of the present invention does not have to care about any distributions aspect, which makes of the implementation of new geo-streaming operators more fast and easy.

The present invention provides a flexible and efficient framework for automatically creating scalable distributed deployments of user-defined geo-streaming operators among a cluster of computational nodes in a cloud environment. Unlike generic- purpose systems for automatic deployment, the present invention increases efficiency by systematically exploiting the fact that geographic events have locally limited effects, which enables resource efficient distribution. At the same time the system according to the invention is general enough to support a wide range of different geographic event processing tasks. Importantly, the invention is not limited to stateless processing but can also efficiently handle stateful geographic event processing tasks. In addition, there is no need to explicitly represent the location states, which makes it possible for a user to use the most efficient representation (e.g. in form of spatial index structures like R-trees) and to implement even geographic state systems with infinitely many locations.

According to a preferred embodiment the geographical state system is provided in form of a generic mathematical model that is adapted to cover a wide range of typical geographic event processing tasks. For instance, this can be realized by just defining generically a universe of locations, a set of states, a state transition function and an aggregation function.

With respect to an efficient geographical distribution it may be provided that the processing means divide the universe of locations into a number of tiles, preferably of equal size. The shape of the tiles can be almost arbitrary and may be specified in accordance with the geographical requirements of the respective applications. For each of the tiles, the processing means may instruct one of the computation nodes to instantiate a local state system that will be responsible for the corresponding part of the universe. A tile of the universe may be described by appropriate coordinates (defining e.g. two coordinates like the southwest and northeast corner), and the instantiation may then be done by the processing means by calling the constructor method of the user-provided local state system implementation with these coordinates as parameters.

According to a preferred embodiment the processing means may be configured to choose which computational node will instantiate which local state system by using a hash function. This ensures that every computational node gets approximately the same number of local state systems assigned and, at the same time, that there are no contiguous clusters of many tiles being all assigned to the same computational node. The latter property ensures that hot-spots with many events will not all have to be handled by the same computational node.

According to another preferred embodiment the processing means or a dedicated dispatcher may route incoming geographic input events to all computational nodes that host an instance of the local state system whose assigned subset of the universe of locations overlaps with the support of the incoming geographic input events (with the support f an event being defined as the set of locations on which the respective event has an effect, as detailed below). The instances of the local state system may then each compute an output event. The output events from an instance of a local state system may then be aggregated using the implementation of the local aggregation function. The correctness of this approach follows from the associativity of the aggregation function. This regard it is important to note that embodiments of the present invention can make use of the local support of geographic events to further reduce the necessary computational effort, by routing the event only to the processing nodes responsible for an area overlapping with the support. In other words, the fact that geographic events have only local support is systematically exploited.

In order to achieve a reliable fault-tolerance, it may be provided that the same subset of the universe of locations is assigned to more than one computational node and that the respective output events are compared with each other. The central data type in the context of the present invention is a geographic event. To enable efficient data management, the geographic events may be provided in a data format that consists of a triple of variables specifying the type, the support, and the payload of an event. The event type may be used by the processing means to determine which of the user-defined processing tasks have to be performed upon event arrival. The support oft an event may be defined as the set of locations on which the respective event does have an effect. The payload eft an event does not have to be considered by the processing means; it is only the user- defined functions for which the payload is relevant. According to one embodiment the process of output event aggregation is implemented as a centralized process. Alternatively, in particular in case of complex aggregation functions, it may be provided that the process of output event aggregation is realized by a processing tree involving two or more of the computational nodes.

In case of mobile geo-fencing applications, implementations of the local state system may keep a spatial index of all mobile users that are in the area assigned to the respective instance of said local state system. Upon arrival of an incoming event that is triggered by a location update of a mobile user, the spatial index may be updated with the new location of the mobile user and via a spatial query the set of mobile users that are candidates for triggering a notification may be figured out.

In case of heat map computations, it may be provided that implementations of the local state system maintain the temperature value history of a location or compute the average temperature of a location.

In the context of the present invention the term computational node is to be understood in a broad sense and is in no way intended to limit the present invention. In particular, computational nodes may include personal computers (e.g. desktop computers, home computers, laptop computer, personal digital assistants (PDAs), portable computers, and/or tablet PCs), servers, and/or mobile devices with integrated processing capabilities, in particular smartphones. There are several ways how to design and further develop the teaching of the present invention in an advantageous way. To this end it is to be referred to the patent claims subordinate to patent claims 1 and 16 on the one hand and to the following explanation of preferred embodiments of the invention by way of example, illustrated by the drawing on the other hand. In connection with the explanation of the preferred embodiments of the invention by the aid of the drawing, generally preferred embodiments and further developments of the teaching will be explained. In the drawing is a schematic view of an embodiment of the present invention illustrating the high-level functionality of the invention, is a schematic view illustrating the usage and implementation of a distributed geographical state system in accordance with an embodiment of the invention, is a schematic view illustrating the assembly of a local state system implementation in accordance with an embodiment of the invention, and is a schematic view illustrating the usage and implementation of a distributed geographical state system in accordance with an embodiment of the invention.

An important aspect of embodiments of the present invention is the assembly of a local state system implementation and an aggregation function into a distributed implementation of a geographical state system. In view of this it is noted that the present invention is not limited to specific implementations in terms of (a) how to distribute space among the computational/processing nodes or (b) how to organize the aggregation process, or (c) how to replicate in order to achieve fault- tolerance. For any embodiment of the invention in a concrete framework implementation the questions need to be answered of how to geographically distribute the overall universe among the different processing nodes of the cluster and how to organize the process of aggregating the output events from the different local event processing systems. These aspects will be discussed in detail in connection with the description of the following embodiments.

Fig. 1 illustrates a framework in accordance with an embodiment of the present invention where a user only has to provide a single-machine implementation of a geo-streaming operator, which the framework then automatically transforms into a scalable and reliable distributed implementation of the same operator on a cluster of servers in a cloud environment. ln particular, as can be obtained from Fig. 1 , which is intended to illustrate the high-level functionality of the invention, the framework receives, as illustrated at 101 , streams of geographic input events and, based on the single-machine implementation of the event processing task provided by the user of the framework as illustrated at 102, the framework automatically deploys geographic event processing systems among a cluster of servers (as indicated at 103), and, in the end(as illustrated at 104), provides a set of output events. In particular, the framework takes care of all aspects of distribution, load balancing, and, if required, replication, as will be explained in more detail below.

Fig. 2 illustrates the usage and implementation of a distributed geographical state system in accordance with an embodiment of the invention. Starting from the mathematical model 201 of a geographical state system, a user of the system just implements the corresponding local state system 202 and aggregation function 203, from which appropriately configured processing means then automatically create a distributed deployment 204 that implements the geographical state system.

As shown on the left side of Fig. 2, the geographical state system is defined as a mathematical model for stateful geographic event processing (also called geo- streaming).

Generally, the model will be defined such that (a) it covers a wide range of typical geographic event processing tasks and (b) it permits to automatically turn single- computer implementations into scalable and robust distributed implementations, despite the stateful nature of the processing.

For instance, a geographical state system, which can roughly be described as the geographically distributed version of a state machine, may consists of

- a universe U of locations;

- a set S of states;

- a family of initial states {s u | u is in U} which assigns to each location its initial state; - a set O of output events, containing at least the special event ε, the so called null event ;

- a set E of input events. Each input event e in E is given as a family of functions { e u | u is in U}, and each of these functions maps states to pairs of state and output event, i.e., e u :S ->(S x O); and

- an aggregation function g:2°->0, which aggregates sets of output events into single output events. The aggregation function is associative, i.e. has to satisfy the following two properties

o g (0) = g({8}) = ε

o for any two subsets Oi , 0 2 of O it holds that g( { g(Oi), g(0 2 )} ) = g(Oi U Oi).

A geographical state system (GS) receives input events arriving over time. Upon arrival of an input event, the GS changes its state and returns an output event. More specifically, each location u in U has its own state, initially s u . Upon arrival of event e, for each location u in U the state transition function e u is applied to the current state of u to determine the next state of u and the output event produced at location u. The set of all output events generated by all locations is then aggregated into the final output event by means of the aggregation function g.

An event e does not have an effect on a location u in U whenever e u (s) = (s, ε), i.e. when the state remains the same (i.e. of the state transition function is the identity function) and the null event is produced as output. An important characteristic of an event e is its support, which is defined as the set of locations in U on which e does have an effect. In typical geographical state system embodiments the support of an event is small compared to the universe size. The framework described below will systematically exploit this fact.

In a data model adapted to the above GS, geographic events e that serve as input events could be re-presented by a triple e = (type, support, payload). The event type is used by the processing means, which automatically create scalable and robust implementations of geographical state systems across a cluster of computers, to determine which of the user-defined processing tasks have to be performed upon event arrival. The support oft an event is described above in the mathematical model. The payload o an event is not considered by the processing means; it is only the user-defined functions for which the payload is relevant. In contrast to the input events, output events only consist of their payload, so there is no specific information contained in them which the processing means need to understand.

Fig. 3 illustrates the assembly of a local state system implementation in accordance with an embodiment of the invention. Based on the GS as described above, a single-machine implementation has to be provided that "behaves like" the GS in a sense that the correct output events need to be computed. This means that the implementation needs to provide a function whose input parameter is an input event from E, and whose return value is an output event from O and that behaves like the geographical state system whose universe is restricted to a subset A of the universe U. Further, the single-machine implementation has to be configurable with its local universe, i.e. within the area A of locations it takes into account. In other words, a local state system is required, which is a single- machine implementation of the geographical state system that can be instantiated for a subset A of the universe U (e.g. by a parameterized class constructor). In this regard it is important to note that it is up to a user how the location states are internally represented. This means that the local state system implementation does not need explicitly represent the state of each location; it just needs to correctly compute the output event from the input event. Therefore, also geographical state systems with an infinite or even uncountable state space can be realized in the context of the present invention.

In addition to this "local state system", a (single-machine) implementation of the aggregation function needs to be provided. This (local) aggregation function might simply be an implementation of the (global) aggregation function g defined in the geographical state system a user wants to be deployed.

Given these two implementations described above, the processing means can then automatically create scalable deployments by dividing the universe geographically among the different computers in a cluster. On each computer, one or more local state systems are instantiated using the geographical areas assigned to the computer. Upon the arrival of an event e having a matching type, the event is routed by the framework to all computers that host a local state system whose area overlaps with the support of e. The local state system instances then each compute an output event. The output events from all these local state systems are then aggregated using the implementation of the aggregation function. The correctness of this approach follows from the associativity of the aggregation function. Moreover, the process of aggregation does not have to be centralized but can be realized by a processing tree consisting of several computers.

By assigning the same area to more than one processor and comparing the respective output events, fault-tolerance can also be achieved.

Fig. 4 is a schematic view of an embodiment of the invention illustrating the organization of the event flow. According to the illustrated embodiment the role of a dispatcher is introduced. Incoming events first arrive at the dispatcher and are then routed to the servers whose local state systems' universes overlap with the support of the event. When events arrive at the servers, they are fed into the local state system instances on this server whose assigned part of the universe overlaps with the event support. Each of these local state system instances will return an output event. These output events are aggregated on the server using the user-defined aggregation function and the result is then sent back to the dispatcher.

The dispatcher computes the final output event from the output events it received from the different servers, again using the user-defined aggregation function.

As the functionality of the dispatcher is stateless, several servers can take the dispatcher role and so the dispatcher does not become the bottleneck.

As can be obtained from Fig. 4, the aggregation process may be organized in a tree-like manner, where the aggregation process is shared among several computers. This solution is particularly advisable if the aggregation function is complex.

Hereinafter, two typical geographic event processing tasks - mobile geo-fencing and heat map computation - that are executed by making use of the present invention are described in some more detail. It will be easily appreciated by those skilled in the art that apart from the two examples, which have been chosen completely arbitrary, there is a wide range of different application scenarios. Mobile Geo-fencing

In mobile geo-fencing a set of mobile users send location updates to a logically centralized system and wish to get notified when other mobile users are closer to them than some predefined range. This can be described as a geographical state system, where

- The state of a location represents the set of mobile users that are close to that location and the set of mobile users that are exactly on that location.

- An incoming event is triggered in case of a location update of one mobile user. The support of the event is the set of locations that are close to the previous or to the new location of that user.

- An outgoing event represents a set of notifications, where each notification announces either that a certain user has become close to some other mobile user, or that a certain user is not close anymore to some other mobile user.

- The state transition function defined by an incoming event e is defined such that whenever the set of users close to a location changes, then a notification about this is added to the aggregation function for each mobile user exactly on that location.

- The aggregation function merges sets of notifications into a single set.

The implementation of the aggregation function is straightforward. An implementation of the local state system would keep a spatial index of all users that are in the area A the instance is responsible for. Upon arrival of an event, the spatial index would be updated with the new location of the user and a spatial query finds out the set of mobile users that are candidates for triggering a notification.

Heat Map Computation

A heat map is a mapping of a temperature (or some other parameter) to each location in a given area. A system for computing heat map updates in real time receives temperature (or other parameter) measurements over time. As soon as the temperature in some area has changed by more than a threshold value, a notification about this is sent out, e.g. for updating a graphical representation of the heat map.

This can be described as a geographical state system, where

- The state of a location represents the recent history of temperature measurements for this location. For each measurement the time when it was measured is represented as well as the confidence of the measurement.

- Outgoing events are temperature change notifications.

- An incoming event is triggered whenever a new temperature measurement arrives. The support of this event is the set of locations for which the measurement is valid. Upon arrival of an event each location in its support adds the measurement to its history, then compares the previous and new current temperature estimation and sends a non-null event if the temperature change is significant.

- The aggregation function merges temperature change events into a temperature change event for a larger area

The implementation of the aggregation function is also here straightforward. An implementation of the local state system could in this case explicitly maintain the temperature value history, or alternatively compute the temperature of a location as a moving average. In the former case only a finite history will be held in memory, and in both realizations a finite resolution of the area into grid points will be applied. Many modifications and other embodiments of the invention set forth herein will come to mind the one skilled in the art to which the invention pertains having the benefit of the teachings presented in the foregoing description and the associated drawings. Therefore, it is to be understood that the invention is not to be limited to the specific embodiments disclosed and that modifications and other embodiments are intended to be included within the scope of the appended claims. Although specific terms are employed herein, they are used in a generic and descriptive sense only and not for purposes of limitation.