Geographic space management

Geographic space may be managed by a system including a plurality of subsystems operable to respectively perform data processing, the data processing relating to traffic, of a plurality of regions, the plurality of regions obtained by dividing a geographic space including routes on which mobile objects move, and one or more servers collectively operable to obtain statistic information of at least one subsystem among the plurality of subsystems, the statistic information relating to a processing load of the at least one subsystem, and divide the geographic space into the plurality of regions based on the statistic information.

BACKGROUND

The present invention relates to a system for managing geographic space and providing navigational support.

As the geographic space being handled by driving support systems expands, the amount of information being transmitted, received, and processed increases, and the corresponding load might exceed the processing power of a single server. Even if the geographic space is divided, and a plurality of servers are used to process the spaces resulting from the division, automobiles move at high speeds among the plurality of divided geographic spaces, and therefore further communication between the servers is necessary, such that the processing capability may be exceeded even when a plurality of servers are used. Furthermore, when the geographic space is divided, the density of roads, the number of moving automobiles, and the like is different in each geographic space resulting from the division, and therefore there is a difference in system resources and workloads among servers, such that an overall efficiency of the system may drop when a load is focused on a certain server.

SUMMARY

According to a first aspect of the present invention, a system may include a plurality of subsystems operable to respectively perform data processing, the data processing relating to traffic, of a plurality of regions, the plurality of regions obtained by dividing a geographic space including routes on which mobile objects move, and one or more servers collectively operable to obtain statistic information of at least one subsystem among the plurality of subsystems, the statistic information relating to a processing load of the at least one subsystem, and divide the geographic space into the plurality of regions based on the statistic information. The first aspect may enable division of geographic space management among a plurality of subsystems based on statistic information.

The first aspect of the innovations may also include a computer-implemented method performed by the above apparatus, as well as a computer program product including a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a processor to cause the processor to perform the computer-implemented method.

DETAILED DESCRIPTION

Hereinafter, example embodiments of the present invention will be described. The example embodiments shall not limit the invention according to the claims, and the combinations of the features described in the embodiments are not necessarily essential to the invention.

FIG. 1shows a system100and a map area corresponding to a geographic space managed by the system100, according to an embodiment of the present invention. The system100manages a geographic space that includes routes on which a moving object10moves. The system100is operable to divide the geographic space into a plurality of regions, manage these regions, and dynamically change the boundary of at least one of the regions, which may improve the overall system efficiency. The moving object10may be a moving object that moves on routes including land routes, sea routes, and/or air routes, for example. The geographic space may be land, sea, or air space that includes the routes on which the moving object travels.

FIG. 1shows an automobile as an example of the moving object10, which moves along roads as examples of land routes.FIG. 1shows an example in which the system100performs management by using map areas corresponding to a geographical area including a road on which the automobile is moving. The system100divides the map area into a plurality of regions and includes a plurality of subsystems200that respectively manage these regions.FIG. 1shows an example in which the map area is divided into six regions from region A to region F, and six subsystems200respectively manage these six regions resulting from the division. InFIG. 1, region A to region F are shown as being separated from the subsystems200, but each subsystem200may include a map of the corresponding region and these maps may be managed within the respective subsystems200.

Each of the subsystems200may be implemented on a server, and portions of the system100other than the subsystems may also be implemented on one or more servers. In other words, the system100may be implemented on a plurality of servers, and each of the servers may include a processor and a computer readable storage medium storing a set of instructions that, when executed by the processor, causes the processor to operate. These servers may exist at any point on a network including the Internet, a subscriber network, a cellular network, or a desired combination of networks. The servers may be dedicated servers, or may be shared servers that perform other operations.

The system100acquires the positions of a moving object10from the moving object10, and the subsystem200managing the region that includes the acquired position of the moving object10within the map area may manage the movement of this moving object10. The system100acquires information such as events that have occurred to the moving object10and/or on the road outside, and the subsystem200managing the region including the position where such an event has occurred may manage the state of the event. Events may include information about accidents, obstructions, or construction on the road, or information about the weather, temperature, buildings, shops, or parking lots near the road. In response to a setting or a request from the moving object10, the subsystem200may provide notification about the event information to the moving object10that made the request.

For example, if the moving object10is moving on a route in a geographical area corresponding to region A, then the subsystem200managing region A manages this moving object10. The system100may increase or decrease the number of subsystems200according to the surface area of the geographic space to be managed.

Since the map area is divided into a plurality of regions, despite the moving object10simply moving on a route, the region corresponding to the position of the moving object10might change.FIG. 1shows an example in which the moving object10is driving on a road such that the position of the moving object10moves from region A to region B. In this case, according to the movement of the moving object10, the system100may transfer the information concerning the moving object10from the subsystem200managing region A to the subsystem200managing region B, and may also transfer the management of the moving object10to the subsystem200managing region B.

In this way, a transfer of management among the plurality of subsystems200occurs according to the movement of the moving object10. Therefore, by transmitting and receiving information of moving objects10among the subsystems200, the amount of information to be transmitted and received increases in response to an increase in the number of moving objects10and the number of routes. Furthermore, since the density of moving objects10and routes is not uniform among the regions, there are cases where the load may be overwhelming on a certain subsystem200. Therefore, the system100of the present embodiment may dynamically change the boundary of at least one region to prevent a load imbalance and/or a decrease in productivity of the plurality of subsystems200.

FIG. 2shows an exemplary configuration of the system100, according to an embodiment of the present invention. The system100may be operable to communicate with each of a plurality of moving objects10to send and receive the information used to manage the moving objects10. The system100may be operable to acquire map data and/or information exchanged with the moving objects10, through the Internet, a subscriber network, a cellular network, or any desired combination of networks. The system100includes an acquiring section (i.e., module)110, an analyzing section120, a dividing section130, a region manager140, a receiving section150, a transmitting section152, a gateway apparatus160, a monitoring section170, a statistic information storage175, a control device180, a division calculation module190, and a plurality of subsystems200.

The acquiring section110may be operable to acquire map data corresponding to the geographical areas where a moving object10is positioned, from an external database30, for example. In response to the map being updated, the acquiring section110may acquire some or all of the updated map data. The acquiring section110may be operable to acquire the map data from the Internet, a subscriber network, a cellular network, or any desired combination of networks. The system100may be operable to store the map data in advance.

The acquiring section110may further acquire an event that has occurred within the geographic space to be managed by the system100. In this case, the acquiring section110may acquire accident information, traffic information, weather information, time information, etc.

The analyzing section120may be operable to communicate with the acquiring section110, and to analyze the map data to divide the map area into the plurality of regions. The analyzing section120may analyze route information included in the map data. The analyzing section120may analyze route information indicating the number of roads, traffic lights, railroad crossings, or the like, the type of roads, the number of lanes in each road, and the speed limit on each road, for example.

The dividing section130may be operable to communicate with the analyzing section120, and to divide the map area into a plurality of regions. The dividing section130may divide the map area such that the loads of the subsystems200managing their respective regions are substantially uniform. The dividing section130may divide the map area such that the number of roads, traffic lights, railroad crossings, and the like in a single region is no greater than a threshold amount. Furthermore, the dividing section130may divide the map area such that the length of a type of road, e.g. a highway or a road only for automobiles, in a single region, is no greater than a threshold length. The dividing section130may divide the map area such that the length of roads having a certain number of lanes or speed limit in a single region is no greater than a threshold length.

The region manager140may be operable to store information concerning the plurality of regions resulting from the division. The region manager140may be operable to specify the subsystem200managing the region that includes the position of the moving object10, according to the position of the moving object10. The region manager140may be operable to adjust the loads of the plurality of subsystems200by dynamically changing the boundary of at least one of the plurality of regions. The region manager140may adjust the loads of the subsystems200by changing the boundary of a region managed by a subsystem200whose load is relatively higher than the loads of the other subsystems200. The region manager140may be realized by one or more servers. The region manager140includes a memory unit142, a boundary managing section144, and a determining section146.

The memory unit142may be operable to communicate with the dividing section130and store information concerning the plurality of regions resulting from the division by the dividing section130. The memory unit142may store setting values or the like of the system100. The memory unit142may store intermediate data, calculation results, threshold values, parameters, and the like that are generated by or used in the operations of the system100. In response to a request from any component within the system100, the memory unit142may supply the data stored therein to the component making the request. The memory unit142may be a computer readable storage medium such as an electric storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, or a semiconductor storage device.

The boundary managing section144may be operable to communicate with each of the subsystems200and change the boundary of the region being managed by at least one of the subsystems200. The boundary managing section144may be operable to change the boundary of the region according to information such as the moving objects10, the routes, and events occurring in each region managed by a subsystem200or according to information about the subsystems200. The boundary managing section144may provide instructions for changing the boundary of one or more subsystems200adjacent to the boundary being changed. The boundary managing section144may communicate with the memory unit142and update the boundary information of the region(s) of which the boundary was changed.

The determining section146may be operable to communicate with the memory unit142and determine the subsystem200that is to manage the moving object10from the position information of the moving object10, based on the information of the plurality of regions. The determining section146may identify a position in the map area managed by the system100that corresponds to the position information of the moving object10, and determine the subsystem200that manages the region including the identified position in the map area to be the subsystem200for managing this moving object10. The determining section146may store the position information of this moving object10and/or the determined subsystem200in the memory unit142, in association with this moving object10. The determining section146may store a history of the position information of this moving object10and/or the determined subsystem200in the memory unit142.

Each of the boundary managing section144, and determining section146, may be a circuit, a shared or dedicated computer readable medium storing computer readable program instructions executable by a shared or dedicated processor, etc.

The receiving section150may be operable to receive information transmitted from each of a plurality of moving objects10. Each moving object10may transmit information at designated time intervals, and the receiving section150may sequentially receive this transmitted information. The receiving section150may receive position information of the moving objects10and event information observed by the moving objects10. The receiving section150may be operable to receive, as position information, observation information of a moving object10that is observed by other moving objects10. The position information may be information that represents longitude and latitude in an absolute coordinate system, distance and direction from a reference point, etc. The position information may include height (altitude) information. The receiving section150may acquire the absolute position information or relative position information of the moving object10.

The receiving section150may receive an observation position observed by the moving object10using GPS. The receiving section150may receive the observation information detected by the moving object10using a geomagnetic sensor, for example. The receiving section150may communicate with the plurality of moving objects10and receive the position information of each moving object10, via the Internet40. The receiving section150may receive the position information of the plurality of moving objects10through wireless communication, a subscriber network, a cellular network, or any desired combination of networks.

The transmitting section152may be operable to transmit event information to each of the moving objects10according to settings, for example. The transmitting section152may transmit information concerning the route on which the moving object10is expected to travel. The transmitting section152may communicate with the moving objects10and transmit each type of information to the moving objects10via the Internet40. The transmitting section152may transmit each type of information to the moving objects10through wireless communication, a subscriber network, a cellular network, or any desired combination of networks.

The gateway apparatus160may be operable to transfer communication between the plurality of subsystems200and the plurality of moving objects10. The gateway apparatus160may communicate with the receiving section150and receive the information transmitted by each moving object10. The gateway apparatus160may communicate with the region manager140and request from the region manager140the transfer destination for each piece of information received from the moving objects10. In response to this request, the gateway apparatus160may receive from the region manager140the information of the subsystem200that is to manage the moving object10that transmitted the information. The gateway apparatus160may transfer the information received from the moving object10to the subsystem200that is to manage the moving object10. In other words, the gateway apparatus160may transfer the information received from each moving object10to the subsystem200determined by the region manager140.

The gateway apparatus160may communicate with each of the subsystems200and receive the information transmitted by each subsystem200. The gateway apparatus160may communicate with the transmitting section152and supply the transmitting section152with the information received from each subsystem200, such that this information is transferred to the moving objects10designated for each subsystem200.

The gateway apparatus160may include a plurality of gateways, and may quickly perform transfer between the plurality of subsystems200and the plurality of moving objects10. In this case, the receiving section150may function as a load balancer that supplies the information from the moving objects10, such that the load is spread among the plurality of gateways. The load balancer may sequentially supply information from the moving objects10to the gateways having lighter loads. The gateway apparatus160may be a network that provides a connection between a plurality of networks using the same or different types of protocols.

The monitoring section170may be operable to monitor the loads of each of the subsystems200. The monitoring section170may be further operable to monitor the performance indicator of each subsystem200. The performance indicator may factor in capacity information, such as the capacity of a system processor, memory, storage, network communication, etc., system load information, such as utilization rate of a processor, memory, network, etc., regional load information, such as the number of each type of agents, the number of events occurred, the number of links/nodes within a region, the number of cross-region links, dynamic information within a map, or presence or absence of an administrative boundary. The system load information may be set to a target output value while the regional load information is variable. The monitoring section170may communicate with the plurality of subsystems200and monitor the amount of traffic, the number of moving objects10, the number of events, the number of roads, and the like in the map area managed by the subsystems200. The monitoring section170may monitor the amount of data processed by each subsystem200and the amount of data transmitted and received by each subsystem200. The monitoring section170may monitor the amount of heat generated by each subsystem200and the amount of memory used by each subsystem200. The monitoring section170may communicate with the region manager140and supply the monitoring results to the region manager140. The monitoring section170may monitor the statistic information stored in the statistic information storage175.

The statistic information storage175may be operable to store statistic information, which may include historical data. More specifically, statistic information storage175may communicate with the boundary managing section144, the monitoring section170, and the division calculation module190, and collect information concerning system monitoring information, the number of agents of various types, the number of events occurred, the number of links between the regions in a map, dynamic information within a map, etc., and record them as statistical information. In the statistic information storage175, capacity information of a CPU, memory, network volume, etc., system load information including utilization rate of a CPU, memory, etc. of a subsystem200, and regional load information, such as a number of mobile objects in a corresponding region of a subsystem200, a number of events occurring in the corresponding region, a number of routes in the corresponding region, a number of routes crossing a boundary of the corresponding region, etc., may be measured and stored in a timeline, and the storage may be configured to enable reference of the statistic information at any point in the past or within any span of time in the past. In response to a request from the division calculation module190, the monitoring section170, etc., the statistic information storage175may supply the data stored therein to the component making the request. The statistic information storage175may be a computer readable storage medium such as an electric storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, or a semiconductor storage device.

The control device180displays a graphical interface showing the geographical space, its regions, system resources, server topologies, etc., and accepts input for requesting information, boundary modification, resource allocation, performance indicator functions, etc. The control device may receive information, such as alerts, from monitoring section170, and may receive information for displaying the geographical space from division calculation module190. The control device may send information, such as performance indicator functions, candidate sets of constraint values, selections of candidates, etc., to the division calculation module190. The control device180may be any device capable of displaying a graphical interface and accepting input, such as a personal computer, a tablet computer, a smart phone, etc.

The division calculation module190may be operable to receive information, such as the system load information, stored in the statistic information storage175, and to calculate a boundary of a region to be assigned to each subsystem200, based on a performance indicator of each subsystem200. The performance indicator may be calculated from a performance indicator function set by a user through the control device180, and the performance indicator function may be designated so that the system load of each subsystem does not exceed a performance threshold. The division calculation module190may calculate a configuration of lines and points to form a border of each region by use of an optimal technique, such as linear programming, non-linear programming, dynamic programming, multi-objective optimization, etc., to satisfy an index (objective function) designated by a user based on the information stored in the statistical information database. The division calculation module may receive information, such as current region boundaries, from the boundary managing section144, and may send information, such as boundary modifications, to the boundary managing section144.

Each of the acquiring section110, analyzing section120, dividing section130, gateway apparatus160, receiving section150, transmitting section152, monitoring section170, and division calculation module190may be a circuit, a shared or dedicated computer readable medium storing computer readable program instructions executable by a shared or dedicated processor, etc. The circuits, computer-readable mediums, and/or processors may be implemented in shared or dedicated servers.

The subsystems200may be operable to respectively perform data processing relating to traffic of the plurality of regions obtained by dividing the geographic space including routes on which mobile objects10move. Each subsystem200may manage the moving objects10positioned within the corresponding management target region, from among the plurality of moving objects10. Each subsystem200may set one of the regions resulting from the division as a management target region, and may manage the mapping of the moving objects10that are management targets on a map of this management target region. Each subsystem200may be operable to manage events occurring within the corresponding management target region, and may manage mapping of these events on the map of this management target region.

Each subsystem200may begin data processing relating to a moving object10that is a new management target, in response to the region manager140changing the boundary of the management target region. In this case, in response to the change of the boundary, the subsystem200for which a new management target, e.g. a map, a moving object10, an event, etc., has been generated may receive the information concerning this management target from the subsystem200that was managing this management target prior to the boundary change. Each subsystem200may stop managing the information of a management target in response to receiving information indicating the exclusion of the management target, or in response to supplying information indicating the addition of the management target to another subsystem200, which may be due to the region manager140changing the boundary of the management target region. Each subsystem200includes a managing section210and an identifying section220.

The managing section210provided in one subsystem200may manage the route information of the region managed by this subsystem200, i.e. individual route information. The identifying section220provided in one subsystem200may identify the routes within the individual route information on which a moving object10is positioned, based on the position information received from the moving objects10in the region managed by this subsystem200. In other words, the managing section210and the identifying section220may map the management target moving objects10on a map of the management target region, based on the position information received from the moving objects10. The subsystem200may include a function known as LDM (Local Dynamic Map), by using the managing section210and the identifying section220. Each of the managing section210, and identifying section220, may be a circuit, a shared or dedicated computer readable medium storing computer readable program instructions executable by a shared or dedicated processor, etc.

The system100of the present embodiment described above may manage a map area containing regions obtained by dividing a geographic space for a plurality of subsystems200, along with moving objects10and events positioned within this map area. The region manager140dynamically changes the loads of the subsystems200by changing the boundary of at least one of the regions according to at least one of the data processing loads relating to the moving objects10and the number of moving objects10positioned in each of the regions, for example. In this way, the system100can prevent the loads placed on the servers among the subsystems200from exceeding the processing capacities of the servers. Furthermore, the system100can prevent a decrease in efficiency of the overall system due to a certain server among the subsystems200having an overwhelming load.

FIG. 3shows an operational flow of a system, according to an embodiment of the present invention. The present embodiment describes an example in which the system performs operations from S301to S307shown inFIG. 3to dynamically adjust the loads of the plurality of subsystems200.FIG. 3shows one example of the operational flow of the system100shown inFIG. 1, but the system100shown inFIG. 1is not limited to using this operational flow, and the operational flow ofFIG. 3may be performed by other systems.

First, an acquiring section, such as the acquiring section110, may acquire the map data of the geographic space to be managed by the system (S301). The acquiring section may acquire map data of a geographic space that includes one or more cities, one or more towns, and the like. The acquiring section may include map data of a geographic space including one or more states, countries, continents, etc.

Next, an analyzing section, such as the analyzing section120, analyzes the acquired map area, and a dividing section, such as the dividing section130, may divide the area of the map data (map area) according to this analysis (S302). The analyzing section may count the number of roads, the number of events, and the like in the map area. The analyzing section may analyze the map area by calculating the number of roads and the number of events per unit surface area. The dividing section may divide the map area into a plurality of regions according to the processing capability of a single subsystem. The dividing section may divide the map area into a number of regions that is less than the number of subsystems. The dividing section may store the information concerning the regions resulting from the division in a memory unit, such as the memory unit142.

Next, a receiving section, such as the receiving section150, may receive the information transmitted from each of a plurality of moving objects, such as moving object10(S303). The receiving section may receive the position information of each moving object. The receiving section may receive information concerning events observed by each of the moving objects, in addition to the position information. The receiving section may supply a gateway apparatus, such as the gateway apparatus160, with the pieces of received information. The gateway apparatus may request the transfer destination of each piece of received information from the region manager.

Next, in response to the request from the gateway apparatus, the region manager may determine the regions in which the moving objects are positioned, based on the position information received from each of the moving objects, and may determine the subsystem for managing the maps of these regions from among a plurality of subsystems, such as the plurality of subsystems200(S304). Specifically, the region manager may determine each region in the map area in which a moving object is positioned, according to the position information of each moving object. The region manager may determine the subsystem to manage each determined region for each piece of position information, and provide notification to the gateway apparatus.

The gateway apparatus may transfer each piece of received information, with the subsystem corresponding to the position information as determined by the region manager serving as the transfer destination. The subsystems may each perform mapping of the received information on a map of the corresponding management target region. Specifically, each subsystem may map the management target moving objects that this subsystem manages, sequentially update the mapping according to position information sequentially transmitted from these moving objects, and manage the movement of these moving objects on the map.

Each subsystem may perform a search of a route from the position of a moving object on the map to a position where this moving object will arrive in the future. Each subsystem may search for a route to which the moving object is capable of moving in a threshold time, or may instead search for a route to a position on the map designated by the moving object or a recognized position, such as a landmark.

Each subsystem may map management target events on the map managed by this subsystem, and may transmit information concerning these events to the moving objects, according to settings or the like. In this way, the subsystems can notify a moving object of information concerning events occurring at positions near the position of the moving object. The subsystems can notify each moving object about information concerning the route relating to the movement direction of the moving object. The subsystems may provide an application that operates independently from the system with the position information, event information, route information, and the like of each moving object.

A monitoring section, such as the monitoring section170, may monitor each of the subsystems and supply the region manager with the monitoring results. The region manager may determine whether or not the load placed on each subsystem is large (or small) (S305). Here, the region manager may determine whether the load placed on each subsystem is small. The region manager may determine whether or not the load of one subsystem is relatively large (or relatively small) compared to the other subsystems.

The region manager may determine whether or not the load of each subsystem is greater than (or less than) a threshold load. The region manager may determine whether or not the load placed on each subsystem is larger than a threshold load, in order of load size, beginning with the subsystem having the largest load. The region manager may determine whether or not the load placed on each subsystem is smaller than a threshold load, in order of load size, beginning with the subsystem having the smallest load.

The region manager may determine whether or not the load of one subsystem is both larger than the load of another subsystem and larger than a threshold load. The region manager may determine whether or not the load of one subsystem is both smaller than the load of another subsystem, and smaller than a threshold load. The region manager may determine whether to change the boundary of a region managed by a subsystem, according to the determination of the size of the load of this subsystem.

The region manager determines, for each region, whether to change the boundary of the region according to the number of moving objects in the region, the data processing load relating to the moving objects, the data processing load on the subsystem, the data processing load on the server, etc. The region manager may determine, for each region, whether to change the boundary of the region according to the number of events occurring in the region, the data processing load relating to these events, the data processing load on the subsystem, the data processing load on the server, etc.

The plurality of subsystems may calculate the complexity of the route network in each of the regions, and, according to the complexity, the region manager may determine whether to change the boundary of the corresponding region. In this case, if a plurality of subsystems have performed the route search, then the plurality of subsystems may calculate the complexity of the route network based on a history of the processing loads of the route searches performed in each of the regions. The region manager may determine, for each region, whether to change the boundary of the region according to the amount of traffic of the moving objects in the region. In this case, for each region, the region manager may determine whether to change the boundary of the region according to the amount of traffic of the moving objects moving between this region and the adjacent regions.

If the load of one or more of the subsystems is determined to be large or small (S305: Yes), then the region manager may change the boundary of the region managed by the subsystem having a load determined to be large or small (S306). The region manager may change the boundary of at least one region to decrease (or increase) the number of moving objects positioned within a partial region next to the boundary, the data processing load relating to those moving objects, etc. For example, the region manager balances the loads by changing the boundary of a region with a large load and transferring management of a portion of this region that has a large number of moving objects and/or a large data processing load relating to these moving objects to an adjacent region.

The region manager may change the boundary of at least one region to decrease (or increase) the number of events occurring within a range in the region, the data processing load relating to these events, etc. For example, the region manager balances the loads by changing the boundary of a region with a large load, and transferring management of a portion of this region that has a large number of events and/or a large data processing load relating to these events to an adjacent region.

The region manager may change the boundary of at least one region to decrease (or increase) the complexity of the route network within the region. For example, the region manager balances the loads by changing the boundary of a region with a large load, and transferring management of a portion of this region that has a highly complex route network to an adjacent region.

If a boundary of a region is positioned in the midst of a route portion where the traffic amount exceeds a predetermined reference traffic amount, then the region manager may change the boundary of the region such that the entire route portion is included in one of the adjacent regions. For example, the region manager balances the loads by changing the boundary of a region with a large load, and transferring management such that the entire route portion of this region that includes the route portion where the traffic amount exceeds the reference traffic amount is included in an adjacent region.

The region manager may change the boundary of a region such that the amount of traffic passing across the boundary of the region decreases. For example, the region manager may exclude or disqualify any boundary change candidate that is expected to cause the amount of traffic of moving objects crossing the boundary to increase relative to the amount of traffic crossing the boundary before the boundary of the region is changed. For example, the region manager may exclude or disqualify a boundary change candidate where the boundary would cross through a town from the boundary change candidates.

The region manager may change the boundary to a position expected to cause the traffic amount after the change to be less than the traffic amount of the moving objects crossing the boundary before the boundary of the region is changed. For example, the region manager may change the boundary such that the number of routes crossing the boundary is smaller than before the change, or may change the boundary such that smaller routes and routes with fewer curves cross the boundary than before the change.

In the manner described above, for each of the plurality of subsystems, the region manager may determine the magnitude of the load and adjust the balance of the loads. If it is determined that none of the loads of the subsystems are large or small (S305: No), then the region manager need not change the boundary of a region. In other words, the region manager may allow the subsystems to continue management with loads within a suitable range.

Next, the system may determine whether instructions have been received to suspend or stop operation (S307). If the program has ended, instructions have been received from the user of the system, or an emergency stop has occurred, for example (S307: Yes), then the system may end the operation.

If instructions for suspending or stopping the operation have not been received, then the system may return to the operation of S303for receiving information from the moving objects and continue managing the subsystems. Until receiving instructions to suspend or stop the operation, the system may repeatedly perform the operations from S303to S307to continue the management of the subsystems while adjusting the loads of the subsystems.

In the manner described above, the system according to the present embodiment dynamically changes the boundaries of the regions managed by the subsystems, according to, for example, the load of each of the subsystems, and can therefor handle dynamic changes in events and the number of moving objects. For example, in response to the load of one subsystem becoming large, the system changes the boundary of the region managed by this subsystem in a manner that decreases the surface area of this region, and can therefore dynamically adjust the balance of the loads among the subsystems. Furthermore, in response to the load of one subsystem becoming small, the region manager may change the boundary of the region managed by this subsystem to increase the surface area of this region, and can therefore adjust the balance of the loads among the subsystems.

In this way, the system can manage the geographic space without exceeding the processing capabilities of the subsystems, and can prevent a decrease in efficiency of the overall system caused by an overwhelming load on a certain subsystem. Furthermore, the system changes the boundary of at least one region such that the amount of traffic crossing the border of this region managed by a subsystem decreases, and can therefore decrease the number of times that data is exchanged among the subsystems, thereby also decreasing the amount of data that is exchanged. In other words, even if the geographic space is increased, the system prevents an overwhelming load on a certain subsystem, and efficiently processes data with the plurality of subsystems operating in a loosely coupled manner, and can therefore handle a large geographic space encompassing one or more states, countries, continents, etc.

A first example in which the system balances the loads of two subsystems is described below usingFIGS. 4 to 6.FIG. 4shows an example of a map area divided by a dividing section, such as the dividing section130, according to an embodiment of the present invention.FIG. 4shows an example of the result of an operation of dividing a map area, such as S302ofFIG. 3.FIG. 4shows an example in which the map area is divided into region A and region B. A first subsystem manages region A, and a second subsystem manages region B.

The first subsystem may manage the routes in region A, the events occurring in region A, and the moving objects moving on the routes in region A. The first subsystem may receive information of a moving object that has moved from region B to region A, from the second subsystem, and begin management of the moving object. The first subsystem may supply the second subsystem with information of a moving object that has moved from region A to region B, and transfer the management of the moving object. Region A includes a town T1and a town T2, and region B includes a town T3, a town T4, and a town T5.

FIG. 5shows an example of an increased load of one subsystem, according to an embodiment of the present invention. City development has progressed in region A, and a town T6has been formed. In this way, since a new town T6has formed, the routes in region A and the number of moving objects moving in region A have increased. In such a case, the load of the first subsystem managing region A increases relative to the load of the second subsystem. If this happens, then the processing load on the first subsystem increases, and causes the load to exceed the processing capability of the first subsystem.

The system of the present embodiment may change the boundary of region A according to the load of the first subsystem. Specifically, a region manager, such as the region manager140, may change the boundaries of region A and region B according to the monitoring results of the loads of the first and second subsystems from a monitoring section, such as the monitoring section170. In this case, the region manager may instruct the first subsystem to change the boundary such that the partial region including the town T6in region A is removed from region A, and may instruct the second subsystem to change the boundary such that the partial region including the town T6in region A is added to region B.

According to the instructions from the region manager, the first subsystem may supply the second subsystem with information of the portion of region A including the town T6, and stop management of this region portion. According to the instructions from the region manager, the second subsystem may receive the information of the portion of region A including the town T6from the first subsystem, and begin management of this portion.FIG. 6shows an example of region boundaries changed by the region manager, according to an embodiment of the present invention. In this way, the system according to the present embodiment can prevent processing from overwhelming the first subsystem, and can prevent the load from exceeding the processing capability of the first subsystem.

A second example in which the system adjusts the balance of loads between two subsystems is described below usingFIGS. 7 to 9.FIG. 7shows an example of a map area that is divided by a dividing section, such as the dividing section130, according to an embodiment of the present invention.FIG. 7shows an example of a result of an operation of dividing a map area, such as S302ofFIG. 3.FIG. 7shows an example in which the map area is divided into region A and region B. A first subsystem manages region A, and a second subsystem manages region B.

The first subsystem may manage the routes in region A, the events occurring in region A, and the moving objects moving on the routes in region A. The first subsystem may receive information of a moving object that has moved from region B to region A, from the second subsystem, and begin management of the moving object. The first subsystem may supply the second subsystem with information of a moving object that has moved from region A to region B, and transfer the management of the moving object.

Region A includes a town T1and a town T2, and region B includes a town T3and a town T4. The traffic amount, which is the amount of moving objects, between the town T1and the town T2is greater than the traffic amount between the town T3and the town T4. Furthermore, the traffic amount between the town T2and the town T3is approximately equal to the traffic amount of between the town T3and the town T4.

FIG. 8shows an example of a case in which the loads of two subsystems are increased, according to an embodiment of the present invention.FIG. 8shows an example in which road development between the town T2and the town T3has progressed, and the traffic amount between the town T2and the town T3has increased relative to the traffic amount between the town T3and the town T4.

In this embodiment, the traffic amount between region A and region B has increased, and therefore the amount of data exchanged between the first subsystem and the second subsystem has increased. The improvement of the road infrastructure and development of each town may have caused the processing to be increased on the first subsystem and/or the second subsystem, or cause the loads of the first subsystem and/or the second subsystem to exceed their processing capabilities.

If a boundary is positioned in a region in the midst of a route portion where the traffic amount exceeds a predetermined reference traffic amount in this manner, then the system may change the boundary of this region to include the entirety of this route portion in one of the adjacent regions. In this embodiment, a region manager, such as the region manager140, may change the boundaries of region A and region B in response to the monitoring results of a monitoring section, such as the monitoring section170, indicating that the traffic amount between the town T2and the town T3has exceeded the reference traffic amount. In this embodiment, the region manager may instruct the first subsystem to change the boundary such that the entire route between the town T2and the town T3is included as a new management target in region A, and may instruct the second subsystem to change the boundary such that the entire route between the town T2and the town T3is no longer included as a management target.

The ranges around the town T2and the town T3often include complex routes, and therefore the region manager may change the boundaries of the regions in a manner to avoid these ranges, or to minimize changes outside of the route between the town T2and the town T3. The region manager may set the town T2, the town T3, and the route connecting the town T2and the town T3as management targets of the first subsystem (or the second subsystem).

In response to the instructions from the region manager, the second subsystem may supply the first subsystem with the information of the portion of region B including the town T3and the route connecting the town T2and the town T3, and may stop management of this region portion. In response to the instructions from the region manager, the first subsystem may receive from the second subsystem the information of this portion of region B, and may begin managing this region portion. In other embodiments, the second subsystem may continue to manage a transferred region portion until the first subsystem begins to manage the transferred region portion. This ensures that no portion is unmanaged at any time.FIG. 9shows an example of a boundary of a region changed by a region manager, such as the region manager140, according to an embodiment of the present invention. In this way, the system may prevent an increase in the amount of information exchanged among the plurality of subsystems.

The system may change the management target regions managed respectively by the subsystems, according to the respective loads of the subsystems. The system100may also divide or combine the management target regions according to the respective loads of the subsystems.

For example, if the load of a first subsystem is high, and the load of a second subsystem of an adjacent region to the region of the first subsystem cannot handle any more load, the region manager may divide the first subsystem into two. In this case, the region manager may cause the first subsystem to manage one of the regions resulting from the division, and transfer the management of the other region resulting from the division to a subsystem having no region allocated thereto.

If the loads of two subsystems of adjacent regions are low, and combining the management target regions of these two subsystems would result in a load that could be managed by a single subsystem, then the region manager may combine these two management target regions into one. In this case, the region manager may cause one of the two subsystems to manage the one management target region resulting from the combination, and may remove the region allocation from the other subsystem. In this way, the system may adjust the loads of the subsystems by dividing or combining the management target regions.

In the system, a dividing section, such as the dividing section130, may divide the map area into a plurality of regions. The dividing section may divide the map area into a plurality of regions with designated shapes. The dividing section may divide the map area into regions with square or hexagonal shapes, for example, or into regions with a combination of a plurality of types of shapes. In embodiments where the dividing section divides the map area into regions with square or hexagonal shapes, for example, the boundaries of the regions may form a grid pattern or a honeycomb pattern.

If the map area is divided into shapes in this manner, then the system may further include a plurality of redundant regions with shapes that do not substantially match the shape of the regions resulting from the division. In this case, the dividing section may perform division while shifting the center or weighted center of each region relative to the center or weighted center of each redundant region, such that the regions and the redundant regions do not completely overlap. For example, if the map area is divided into a plurality of regions having a plurality of square shapes, then the dividing section may provide redundant regions that resemble these square shapes. The dividing section may provide the centers of these square redundant regions at positions matching the vertices of the square regions. The subsystems may respectively manage these redundant regions.

In this way, if a moving object moves near the vertex of a region or moves in a serpentine route near a vertex, even though the moving object moves between regions, the moving object is moving at a position near the center of the redundant region including this vertex. Accordingly, even though a moving object moves in a manner that would cause information to be exchanged a plurality of times between a plurality of subsystems, the system can decrease the number of information exchanges by using a subsystem to manage the redundant region.

The system dynamically changes the boundary of a region managed by a subsystem, according to the load of the subsystem. In the above description, as a result of changing the boundary, due to an increase of the management target region, the subsystem receives information of this increased region from the subsystem that has previously managed this region. In addition, each of the subsystems may manage at least a portion of the data processing relating to a moving object positioned within a range from the boundary with an adjacent management target region, in parallel with the subsystem that manages this adjacent region.

In this way, each subsystem manages a region that has been expanded in advance, and therefore if the boundary of a region is dynamically changed, then management of the transferred region portion can begin immediately without immediately exchanging information with another subsystem. Furthermore, after a boundary is changed and management of the transferred region portion has begun, the subsystem may receive information of the transferred region portion from another subsystem. In this way, the system can spread out the exchange of information among the subsystems over time, thereby preventing temporary increases in the processing of a subsystem.

FIG. 10shows an operational flow for dividing a geographical space, according to an embodiment of the present invention. The present embodiment describes an example in which the system performs operations from S1009to S1070to divide a geographical space.FIG. 10shows one example of the operational flow of the system100shown inFIG. 2, but the system100shown inFIG. 2is not limited to using this operational flow, and the operational flow ofFIG. 10may be performed by other systems.

At S1009, a performance indicator function is received from a control device, such as control device180. The performance indicator function is a formula, such as a mathematical formula, to determine a score of each cell based on statistic information. The performance indicator function can be designed by a user by using variables that each represent one statistic of all or one cell or region, and the constrained values. For example, if a user would like to balance average loads of each server, then the user can define a performance indicator function that outputs higher value for even distribution of loads among servers. The performance indicator function can be a linear function of variables having a user-defined weight, or a higher order function. Among the variables that may be used in designing the performance indicator function are capacity information, such as the capacity of a system processor, memory, storage, network communication, etc., system load information, such as utilization rate of a processor, memory, network, etc., regional load information, such as the number of each type of agents, the number of events occurred, the number of links/nodes within a region, the number of cross-region links, dynamic information within a map, or presence or absence of an administrative boundary. The system load information may be set to a target output value while the regional load information is variable. At S1010, a division calculation module, such as division calculation module190, obtains statistic information from a statistic information storage, such as statistic information storage175. At S1020, the division calculation module determines one or more divisions of the geographical space based on the statistic information and performance objectives. At S1030, the division calculation module presents each division in a graphical user interface on a display of the control device. At S1040, the control device receives a division selection from input, such as by a user, and a boundary managing section, such as boundary managing section144, applies the selected division. A region manager, such as region manager140, may be notified of the determined region boundaries by the boundary managing section, and may assign processes to each subsystem accordingly. At S1050, the performance of the system with the selected division is monitored by a monitoring section, such as monitoring section170. At S1060, the monitoring section verifies that the performance of the system is consistent with the performance objectives used to determine the division. Even after the determination of the region boundaries, the performance indication of each subsystem may be constantly monitored by the monitoring section, and if the performance indicator exceeds the performance threshold for a certain amount of time, the load among the subsystems becomes imbalanced, or any other inconsistency with the performance objectives is realized, then the control device receives notification from the monitoring section, and one or more regional boundaries may be recalculated by the division calculation module upon receiving authorization for recalculating one or more regional boundaries from the control device. The control device may not send authorization for recalculating to the division calculation module until certain input is received by the control device, such as from a user. If the performance is consistent with the performance objectives, then the process continues to S1070. However, if the performance is not consistent with the performance objectives, then the process returns to S1010, and proceeds to determine new boundaries. For example, an update of the map information may lead to the regional load information increasing the number of links, and in response, the performance threshold is exceeded. At S1070, a user-modified boundary may be applied by the boundary managing section.

In other embodiments, the system may calculate a performance indicator, determine whether the performance indicator exceeds a performance threshold, determine a division of the geographic space that can improve the performance indicator, and recommend the division of the geographic space through a user interface of a control device. In some embodiments, the performance indicator remains below the performance threshold during required performance, but may exceed the performance threshold if the performance indicator increases too much, such as in response to the load increasing too much. In other embodiments, the performance indicator remains above the performance threshold during required performance, but may exceed the performance threshold if the performance indicator decreases too much, such as in response to the load increasing too much.

FIG. 11shows an operational flow for obtaining statistic information of a geographical space, according to an embodiment of the present invention. The present embodiment describes an example in which the system performs operations from S1111to S1114to obtain statistic information of a geographical space, such as S1010ofFIG. 10by collecting statistical data of a road network in the geographical space.FIG. 11shows one example of the operational flow of the system100shown inFIG. 2, but the system100shown inFIG. 2is not limited to using this operational flow, and the operational flow ofFIG. 11may be performed by other systems.

At S1111, a monitoring section, such as monitoring section170, may separate the geographic space into cells. These cells may be much smaller than regions, such that each region encompasses hundreds of cells. At S1112, the monitoring section may calculate the number of road links in each cell, and assign the number of road links to each cell. At51113, the monitoring section may collect statistical and historical data of vehicle traffic data. This data may come from a statistic information storage, such as statistic information storage175, or directly from car probe data analysis. The monitoring section may calculate this data for each cell in the geographic space, and assign the data to each cell. At S1114, the monitoring section may collect statistical and historical data of traffic events. The monitoring section may calculate this data for each cell in the geographic space, and may assign the data to each cell. Once the monitoring section assigns each cell these data points, a division calculation module, such as the division calculation module190, may begin a division determination.

FIG. 12shows a geographical space that has been separated into cells, according to an embodiment of the present invention. As shown inFIG. 12, each cell, such as cell1235, is much smaller than the region in which the cell is located. Statistic information may be obtained on a per cell basis, which may assist in the determination of optimal boundaries. The size of each cell may be varied according to processing capabilities and desired accuracy. Using smaller cells in the determination of boundaries may result in more accurate optimal boundaries, but may require more processing and/or memory capacity. Using larger cells in the determination of boundaries may result in less accurate optimal boundaries, but may require less processing and/or memory capacity. In some embodiments a control device, such as control device180, may change the cell size in response to input from a user in a user interface displayed on the control device.

FIG. 13shows a division calculation module190, according to an embodiment of the present invention. The division calculation module190may include an obtaining section191, a dividing section192, a calculation section193, an input section194, a screen generating section195, and a modifying section196. The obtaining section191may obtain statistic information of at least one subsystem among the plurality of subsystems, the statistic information relating to a processing load of the at least one subsystem. The statistic information may then flow to the dividing section192. The dividing section192may be operable to divide the geographic space into the plurality of regions based on the statistic information. The calculating section193may calculate a performance indicator of the at least one subsystem, wherein the performance indicator is a function of at least one statistics parameter included in the statistic information. The input section194may be operable to receive the function of the performance indicator from a control device, such as control device180, through a user interface. However, if a function of the performance indicator is already accessible by the calculating section193, then the calculating section193may use the accessible function. The input section194may be further operable to receive a modification request from a control device through a user interface, wherein the modification request includes a request to modify a boundary of a region among the plurality of regions. The screen generating section195may be operable to generate a screen image showing a map of the geographic space, a boundary of each region, and a performance indicator of each region. For example, the performance indicator(s) calculated by the calculating section193may be shown on the map in the screen image. The modifying section196may be operable to modify the boundary of the region in response to the modification request, which may include increasing performance of the at least one subsystem by reshaping the boundary of the at least one subsystem from a shape in the modification request. In response to input on the control device, a boundary modification request may be sent to the division calculation module190, and received by the input section194. In some embodiments, the boundary modification request may be submitted to a boundary managing section, such as boundary managing section144. In other embodiments, performance of subsystems may be verified before submission to the boundary managing section. If the performance cannot be verified, then the requested shape of the boundary may be modified.

FIG. 14shows an operational flow for determining divisions of a geographic space based on statistic information, according to an embodiment of the present invention. The present embodiment describes an example in which the system performs operations from S1410to S1429to determine divisions of the geographical space.FIG. 14shows one example of the operational flow of the division calculation module190shown inFIG. 13, but the division calculation module190shown inFIG. 13is not limited to using this operational flow, and the operational flow ofFIG. 14may be performed by other division calculation modules.

At S1410, statistic information may be obtained by an obtaining section, such as obtaining section191. At S1421, the obtaining section may detect trends in traffic changes. The term for detecting changes may be any time period such as days, weeks, months, years, etc. For example, some cells may exhibit increasing traffic and events, according to the statistic information, while other cells may exhibit decreasing traffic and events, according to the statistic information. At S1422, the obtaining section may obtain a set of constraint values for a current objective function. At S1423, a calculating section, such as calculating section193, may calculate a candidate set of constraint values for each of any number of alternate objective functions. Examples of constraints for an objective function of a performance objective include: Load values of all the subsystems do not exceed a threshold; Averages of load values between the subsystems are substantially equal (the difference between average values is not more than a constant value); A load value of a subsystem responsible for a specific region is always not more than a constant value; The number of regions and/or the number of subsystems in operation is not more than a constant value; etc. Each objective function may include more than one constraint. At S1424, a dividing section, such as dividing section192may determine a division of regions for the geographical space for a candidate set of a single objective function. The calculated performance indicator of each cell in the geographic space may be used by the dividing section to determine optimized region boundaries. At S1429, if the dividing section has determined a division of regions for each objective function, then the process is ended. If, at S1429, the dividing section has not determined a division of regions for every objective function, then S1424is repeated for an uncalculated objective function.

FIG. 15shows an optimized region boundary, according to an embodiment of the present invention. A portion of a geographic space is shown inFIG. 15divided into a matrix of cells. Each cell is represented by a shade of gray representing the performance indicator of the cell as calculated by the performance indicator function. Lighter shades of gray may represent lower performance indicator values, and darker shades of gray may represent higher performance indicator values. In consideration of these performance indicator values, a division calculation module, such as division calculation module190, has determined an optimal boundary1510of cell separation. The boundary1510may be an optimized boundary resulting from a calculated division according to a set of constraints of an objective function. As shown, each cell appears wholly on one side or the other of the boundary1510, because the division calculation module may only consider cells as a whole. Thus, if smaller cells are used in the division calculation, then the optimal boundary may not appear exactly the same despite using the same objective function.

FIG. 16shows an operational flow for calculating a division of a geographic space based on a candidate set of constraint values, according to an embodiment of the present invention. The present embodiment describes an example in which the system performs operations from S1625to S1628to determine divisions of the geographical space.FIG. 16shows one example of the operational flow of the division calculation module190shown inFIG. 13, but the division calculation module190shown inFIG. 13is not limited to using this operational flow, and the operational flow ofFIG. 16may be performed by other division calculation modules.

At S1625, a dividing section, such as dividing section192may apply capacity information of each cell to a performance indicator function. At S1626, the dividing section may apply system load information to the performance indicator function. At S1627, the dividing section may apply regional load information to the performance indicator function. At S1628, the dividing section may calculate the performance indicators for each cell. In some embodiments, the dividing section may perform the operational flow ofFIG. 16once for each individual cell.

FIG. 17shows a graphical presentation of candidate divisions of a geographical space, according to an embodiment of the present invention. A screen generating section, such as screen generating section195, may present the graphical presentation on a display182of a control device180. The screen generating section may present calculated region to a user through a user interface. The screen generating section may display a regionally-divided map of the geographic space and relationships with regional maps and servers200A-G. The screen generating section may show each server200along with an estimated central processing unit (CPU) usage, based on calculated performance indicator information. The screen generating section supplies each region with capacity information of a corresponding subsystem from the statistical information database. Based on the performance indicator, the screen generating section may assign a color representing health as an overlay in each region. The screen generating section may present the regions calculated by a division calculation module, such as division calculation module190, on a map, and present color-coding according to the performance indicator in each region. To the left of the map including the estimated CPU usage, the screen generating section presents a selection of divisions according to difference objective functions. Each division selection includes a preview map. Division selection1702may be for an objective function aimed at high availability of servers. As an example of high availability, redundant servers, such as mirror servers, are used to prepare for sudden shutdowns of a server, to prepare for fluctuation of loads, etc. Division selection1704may be for an objective function aimed at a balance between available servers and energy consumption. Division selection1706may be for an objective function aimed at low energy consumption. From this screen, a user may select a division through an input of the control device180. In other embodiments, the screen generating section may present memory consumption and network traffic.

FIG. 18shows a graphical presentation of a server topology1800and region map interaction, according to an embodiment of the present invention. A screen generating section, such as screen generating section195, may present a map area of a geographic space managed by a system, such as system100, on a display182of control device180. In this graphical presentation, the screen generating section may present the server topology1800alongside the map area. The screen generating section may present the server topology1800with a detailed view of the server configuration of the system. The server configuration includes regional manager140and servers200A-G. When selecting a region in such a map view, the affected servers are indicated in the server topology1800. In response to selection of one or more regions, such as through an input of the control device180, the screen generating section may highlight one or more servers in the server topology1800. As shown, the screen generating section has highlighted servers200C,200D, and200E in response to a selection of the region(s) managed by servers200C,200D, and200E. In some embodiments, the screen generating section may present the amount of network traffic in server topology1800.

FIG. 19shows an operational flow for applying a user-modified boundary, according to an embodiment of the present invention. The present embodiment describes an example in which the system performs operations from S1971to S1976to determine divisions of the geographical space.FIG. 19shows one example of the operational flow of the modifying section196shown inFIG. 13, but modifying section196shown inFIG. 13is not limited to using this operational flow, and the operational flow ofFIG. 19may be performed by other division calculation modules.

At S1971, a modification section, such as modification section196, receives a modification request, which may include a request to modify a boundary of a region among the plurality of regions, from a control device, such as the control device180. A boundary modification request may include at least one boundary, and a shape of the boundary. At S1972, performance indicators are calculated for the modified boundaries by a calculation section, such as calculation section193, for any regions affected by the boundary modification. At S1973, the modification section determines whether the performance indicators are all consistent with the current objective function after modifying the boundaries. If the performance indicators are inconsistent with the objective function, then the process proceeds to S1974. At S1974, the modification section may reshape the modified boundary so that the performance indicators of the affected regions are consistent with the current objective function. If at S1973the performance indicators are already consistent with the current objective function, then the process skips S1974and proceeds to S1975. At S1975, the modification section may forward the boundary modification to a boundary managing section, such as the boundary managing section144, which implements the boundary modification, which may include reassigning portions of the geographic space to different subsystems. At S1976, the modification section verifies whether there are any remaining boundary modifications to receive and/or process. If there are no more boundary modification requests, then the process ends. If there is at least one unprocessed modification request, then the process returns to S1971.

FIGS. 20A-Bshows a graphical presentation for boundary modification input, according to an embodiment of the present invention. A screen generating section, such as screen generating section195, may present a boundary modification interface on a display182of control device180. In the boundary modification interface, a user can modify a regionally-divided area by operation on the screen such as drag-and-drop, click operation, keyboard combination, etc., and accordingly, the boundary modification interface may change the performance indicator based on the statistic information supplied from a statistic information storage, such as statistic information storage175, and visually support a user to acquire an optimal division, and/or server configuration. The screen generating section may present the boundary modification interface with a status window2000, which shows details of the statistic information. As shown inFIG. 20A, a processor202A and a memory204A are being overloaded, as indicated visually, such as by the darker color, even though a network controller206A is stable. In a neighboring region, a processor202B, a memory204B, and a network controller206B are all stable. To alleviate the overloaded server, a boundary2010is being erased between these regions, which may allow the processor202B, the memory204B, and the network controller206B to share loads of the joint region with the processor202A, the memory204A, and the network controller206A, as shown inFIG. 20A.

InFIG. 20B, a boundary2012is being drawn to replace boundary2010. By modifying a boundary between regions, the screen generating section may dynamically change the indicators that represent resource usage of each subsystem to show how much effect the boundary modification has on system resource usage. A dividing section, such as dividing section192, may recalculate performance indicators based on the modified boundary, and the screen generating section may change the color-coding or shading according to the calculation result. In response to the newly drawn boundary2012, the processor202A, the memory204A, the network controller206A, the processor202B, the memory204B, and the network controller206B are all stable.

In other embodiments, a drag-and-drop or flick operation on a boundary of a region may allow a user to modify the form or position of the region on the display182. Even after regional division is determined and implemented, the performance indicators in each region may be calculated at any time, and the color or shade of each region is changed in the interface according to the calculation result.

FIGS. 21A-Bshows a graphical presentation for regional resource allocation input, according to an embodiment of the present invention. A screen generating section, such as screen generating section195, may present a regional resource allocation input interface on a display182of control device180. In the regional resource allocation input interface, a user can increase or decrease each subsystem's resources, and the effect will be shown dynamically by changing the resource usage indicators. The regional resource allocation input interface may include a status window2100, including details of performance indicators, and an additional resource pool2120, where a user may select additional processing capacity2122, additional memory capacity2124, and additional network capacity2126. As shown inFIG. 21A, a processor202A and a memory204A are being overloaded, as indicated by the darker color, even though a network controller206A is stable. To alleviate the deficiency of the memory204A, a user may add additional memory2124to the memory204A via a screen operation. In response to this screen operation, control device180may submits a hardware work order to a division calculation module, such as division calculation module190, which may then forward the work order to an appropriate entity capable of physically upgrading hardware of the system. Alternatively, the division calculation module may forward the work order to a boundary managing section, such as boundary managing section144, which may find and select an unused or redundant server matching the increased memory requirement, then may assign control of the region to the selected server. InFIG. 21B, the memory204A is now stable, as indicated by the lighter shade. However, the processor202A is still overloaded, as indicated by the darker shade.

FIGS. 22A-Bshows a graphical presentation for regional division and resource allocation input, according to an embodiment of the present invention. A screen generating section, such as screen generating section195, may present a regional division and resource allocation input interface on a display182of control device180. In the regional division and resource allocation input interface, a user can add a boundary to create a new region and managing subsystem, and the screen generating section may present the effect dynamically by displaying new resource usage indicators. The regional division and resource allocation input interface may include a status window2200, including details of performance indicators. As shown inFIG. 22A, a processor202A and a memory204A are being overloaded, as indicated by the darker color, even though a network controller206A is stable. To alleviate the deficiency of the processor202A, and the memory204A, a new boundary2212is being drawn, creating a new region and managing subsystem. The new managing subsystem may include a processor202H, a memory204H, and a network controller206H. InFIG. 22B, the processor202A and the memory204A are now stable, as indicated by the lighter shade, due to the newly added subsystem relieving part of the load.

FIG. 23shows an exemplary configuration of a computer2300according to an embodiment of the invention. The computer2300according to the present embodiment includes a CPU2305, a RAM2320, a graphics controller2375, and a display apparatus2380which are mutually connected by a host controller2382. The computer2300also includes input/output units such as a communication interface2330, a hard disk drive2340, and a DVD-ROM drive2360which are connected to the host controller2382via an input/output controller2384. The computer also includes legacy input/output units such as a ROM2310and a keyboard2350which are connected to the input/output controller2384through an input/output chip2370.

The host controller2382connects the RAM2320with the CPU2305and the graphics controller2375which access the RAM2320at a high transfer rate. The CPU2305operates according to programs stored in the ROM2310and the RAM2320, thereby controlling each unit. The graphics controller2375obtains image data generated by the CPU2305on a frame buffer or the like provided in the RAM2320, and causes the image data to be displayed on the display apparatus2380. Alternatively, the graphics controller2375may contain therein a frame buffer or the like for storing image data generated by the CPU2305.

The input/output controller2384connects the host controller2382with the communication interface2330, the hard disk drive2340, and the DVD-ROM drive2360, which are relatively high-speed input/output units. The communication interface2330communicates with other electronic devices via a network. The hard disk drive2340stores programs and data used by the CPU2305within the computer2300. The DVD-ROM drive2360reads the programs or the data from the DVD-ROM2395, and provides the hard disk drive2340with the programs or the data via the RAM2320.

The ROM2310and the keyboard2350and the input/output chip2370, which are relatively low-speed input/output units, are connected to the input/output controller2384. The ROM2310stores therein a boot program or the like executed by the computer2300at the time of activation, a program depending on the hardware of the computer2300. The keyboard2350inputs text data or commands from a user, and may provide the hard disk drive2340with the text data or the commands via the RAM2320. The input/output chip2370connects a keyboard2350to an input/output controller2384, and may connect various input/output units via a parallel port, a serial port, a keyboard port, a mouse port, and the like to the input/output controller2384.

A program to be stored on the hard disk drive2340via the RAM2320is provided by a recording medium as the DVD-ROM2395, and an IC card. The program is read from the recording medium, installed into the hard disk drive2340within the computer2300via the RAM2320, and executed in the CPU2305.

A program that is installed in the computer2300and causes the computer2300to function as a system, such as system100ofFIG. 1, includes an acquiring module, an analyzing module, a dividing module, a region managing module, a storage module, a boundary managing module, a determining module, a receiving module, a transmitting module, a gateway module, a judging module, a monitoring module, a subsystem module a managing module, and an identifying module. The program or module acts on the CPU2305, to cause the computer2300to function as an acquiring section, an analyzing section, a dividing section, a region manager, a storage section, a boundary managing section, a determining section, a receiving section, a transmitting section, a gateway apparatus, a judging section, a monitoring section, a subsystem, a managing section, and an identifying section, such as the acquiring section110, the analyzing section120, the dividing section130, the region manager140, the memory unit142, the boundary managing section144, the determining section146, the receiving section150, the transmitting section152, the gateway apparatus160, the judging section162, the monitoring section170, the subsystem200, the managing section210, and the identifying section220described above.

The information processing described in these programs is read into the computer2300, to function as an acquiring section, an analyzing section, a dividing section, a region manager, a storage section, a boundary managing section, a determining section, a receiving section, a transmitting section, a gateway apparatus, a judging section, a monitoring section, a subsystem, a managing section, and an identifying section, which are the result of cooperation between the program or module and the above-mentioned various types of hardware resources. Moreover, the system is constituted by realizing the operation or processing of information in accordance with the usage of the computer2300.

For example when communication is performed between the computer2300and an external device, the CPU2305may execute a communication program loaded onto the RAM2320, to instruct communication processing to a communication interface2330, based on the processing described in the communication program. The communication interface2330, under control of the CPU2305, reads the transmission data stored on the transmission buffering region provided in the recording medium, such as a RAM2320, a hard disk drive2340, or a DVD-ROM2395, and transmits the read transmission data to a network, or writes reception data received from a network to a reception buffering region or the like provided on the recording medium. In this way, the communication interface2330may exchange transmission/reception data with the recording medium by a DMA (direct memory access) method, or by a configuration that the CPU2305reads the data from the recording medium or the communication interface2330of a transfer destination, to write the data into the communication interface2330or the recording medium of the transfer destination, so as to transfer the transmission/reception data.

In addition, the CPU2305may cause all or a necessary portion of the file of the database to be read into the RAM2320such as by DMA transfer, the file or the database having been stored in an external recording medium such as the hard disk drive2340, the DVD-ROM drive2360(DVD-ROM2395) to perform various types of processing onto the data on the RAM2320. The CPU2305may then write back the processed data to the external recording medium by means of a DMA transfer method or the like. In such processing, the RAM2320can be considered to temporarily store the contents of the external recording medium, and so the RAM2320, the external recording apparatus, and the like are collectively referred to as a memory, a storage section, a recording medium, a computer readable medium, etc. Various types of information, such as various types of programs, data, tables, and databases, may be stored in the recording apparatus, to undergo information processing. Note that the CPU2305may also use a part of the RAM2320to perform reading/writing thereto on the cache memory. In such an embodiment, the cache is considered to be contained in the RAM2320, the memory, and/or the recording medium unless noted otherwise, since the cache memory performs part of the function of the RAM2320.

The CPU2305may perform various types of processing, onto the data read from the RAM2320, which includes various types of operations, processing of information, condition judging, search/replace of information, etc., as described in the present embodiment and designated by an instruction sequence of programs, and writes the result back to the RAM2320. For example, when performing condition judging, the CPU2305may judge whether each type of variable shown in the present embodiment is larger, smaller, no smaller than, no greater than, or equal to the other variable or constant, and when the condition judging results in the affirmative (or in the negative), the process branches to a different instruction sequence, or calls a sub routine.

In addition, the CPU2305may search for information in a file, a database, etc., in the recording medium. For example, when a plurality of entries, each having an attribute value of a first attribute is associated with an attribute value of a second attribute, are stored in a recording apparatus, the CPU2305may search for an entry matching the condition whose attribute value of the first attribute is designated, from among the plurality of entries stored in the recording medium, and reads the attribute value of the second attribute stored in the entry, thereby obtaining the attribute value of the second attribute associated with the first attribute satisfying the predetermined condition.

The above-explained program or module may be stored in an external recording medium. Exemplary recording mediums include a DVD-ROM2395, as well as an optical recording medium such as a Blu-ray Disk or a CD, a magneto-optic recording medium such as a MO, a tape medium, and a semiconductor memory such as an IC card. In addition, a recording medium such as a hard disk or a RAM provided in a server system connected to a dedicated communication network or the Internet can be used as a recording medium, thereby providing the program to the computer2300via the network.

As made clear from the above, the embodiments of the present invention can be used to realize a system for geographic space management.