Patent Description:
In recent years, proposals have been made of techniques for supporting drivers in terms of recognition, decision-making, and operation by installing a communication function for connecting to the Internet and a cloud to vehicles and obtaining various types of information such as road traffic information. In International Publication No. <CIT>, a proposal is made of applying, as a method for providing notification of such information, an asynchronous message notification method called the publish-subscribe scheme, in which identifiers called "topics" are used. The publish-subscribe scheme includes a "broker" that mediates the communication between publisher devices and subscriber devices. The subscriber devices can receive messages posted by the publisher devices to the broker by subscribing and registering to the broker with respect to topics (publish messages) of interest.

Suppose a case where, by using a communication method such as the publish-subscribe scheme, a vehicle is notified of road traffic information obtained by analyzing videos from cameras installed on roads. In the publish-subscribe scheme, a publisher device and a subscriber device need to share a "topic" in some way. For example, each camera (publisher device) installed on a road manages an individual location on the road, such as an intersection, by associating a topic with the individual location, and posts road traffic information obtained by analyzing a video of the location to the broker together with the topic. The vehicle, which is a subscriber device, by registering to the broker with respect to a topic associated with a desired location, can receive road traffic information corresponding to the desired location that is published by a publisher device.

However, since the vehicle is a moving object, the road traffic information that the vehicle needs changes as the vehicle moves. Thus, it is difficult to provide the vehicle beforehand with topics that the vehicle will need. For example, it is conceivable to perform registration with respect to all topics published by publisher devices. However, in this case, a load will be imposed on the subscriber device because the subscriber device would need to choose an appropriate topic from among a large number of topics. Furthermore, there is a problem that the subscriber device cannot follow topics that are dynamically generated by the publisher devices.

Further prior art can be found in document <CIT>, disclosing dynamically routing messages in a publish/subscribe system by creating temporal topics for subscriptions and publications. According thereto, a messaging application receives messages from sensors (e.g., road condition sensors). Upon analyzing the messages using data analytics, an event (e.g., icy road condition) may be correlated with the analyzed messages. In such a scenario, a temporal topic based on the triggered event is created. Furthermore, a temporal publication (e.g., "icy road condition near exit <NUM>") and a temporal subscription are created. Potential subscribers to be associated with the temporal subscription are identified by using either geo-location information or social media information. Once those subscribers are identified, they are associated with the temporal subscription. The temporal publication is then published to the subscribers associated with the temporal subscription. In this manner, messages are dynamically routed to the appropriate subscribers that may have previously been excluded based on dynamically created temporal topics, subscriptions and publications.

Further prior art can be found in document <CIT>, disclosing vehicle communication using a publish/subscribe messaging protocol.

Further prior art can be found in document <CIT>, disclosing a method and an apparatus for a vehicle-to-vehicle message service.

Further prior art can be found in document <CIT>, disclosing an in-vehicle alert delivery maximizing communications efficiency and subscriber privacy.

In one aspect of the present invention, a technique for allowing appropriate subscription/registration to be performed automatically so that useful information can be obtained at a low load is provided.

The present invention in its first aspect provides a communication apparatus as specified in claims <NUM> to <NUM>.

The present invention in its second aspect provides an information processing apparatus as specified in claims <NUM> and <NUM>.

The present invention in its third aspect provides a delivery system as specified in claim <NUM>.

The present invention in its fourth aspect provides a control method as specified in claim <NUM>.

The present invention in its fifth aspect provides a program as specified in claim <NUM>.

<FIG> is a diagram illustrating an example of a configuration of a delivery system according to a first embodiment. In <FIG>, a vehicle <NUM> is traveling on a road toward an intersection B <NUM>, and is approaching an intersection A <NUM>. The vehicle <NUM> is one example of a moving object that moves with an on-vehicle device <NUM> mounted thereon. The on-vehicle device <NUM> is a communication apparatus that can perform wireless communication. The on-vehicle device <NUM> realizes the exchange of messages according to the publish-subscribe scheme via a server <NUM> by performing wireless communication with the server <NUM> via a base station <NUM>. The on-vehicle device <NUM> plays the role of a subscriber device in such a message exchange scheme.

The server <NUM> performs various types of data processing. By performing wireless communication, the server <NUM> can connect to the on-vehicle device <NUM> and to cameras 103a and 103b via the base station <NUM>. The cameras 103a and 103b (collectively referred to as cameras <NUM> hereinafter) are installed on a road, and photograph the traffic conditions at intersections or the like. Furthermore, the cameras <NUM> can analyze road conditions from captured image data obtained by photographing, and can wirelessly notify other devices of the analysis results. In the above-described exchange of messages according to the publish-subscribe scheme, the cameras <NUM> play the role of publisher devices.

The base station <NUM> wirelessly connects to the on-vehicle device <NUM>, the cameras <NUM>, and the server <NUM>, and relays wireless communication among such devices. Thus, the base station <NUM> allows the on-vehicle device <NUM> and the cameras <NUM> to communicate with the server <NUM>, which is located on the Internet or a cloud. The base station <NUM> allows the on-vehicle device <NUM>, the cameras <NUM>, and the server <NUM> to communicate over the same network.

Next, the functional configurations of the on-vehicle device <NUM>, the cameras <NUM>, and the server <NUM> according to the present embodiment will be described. Note that the configuration of functional blocks described in the following is only one example. Some (or in some cases, all) of the described functional blocks may be replaced with other functional blocks achieving similar functions, some functional blocks may be omitted, and additional functional blocks may be added. Furthermore, a functional block mentioned in the following description may be split into a plurality of functional blocks, and a plurality of functional blocks may be integrated into one functional block.

<FIG> is a block diagram illustrating an example of a functional configuration of the on-vehicle device <NUM> according to the present embodiment. A position information processing unit <NUM> obtains, manages, and processes position information indicating the position of the vehicle <NUM> having the on-vehicle device <NUM> mounted thereon. The position information can be obtained from a Global Navigation Satellite System (GNSS) receiver, an odometer, a gyrosensor, an acceleration sensor, etc., provided in the vehicle <NUM>. A storage unit <NUM> stores topic information necessary for the publish-subscribe scheme, etc. A measurement unit <NUM> measures the moving distance, the moving time, or the like of the vehicle <NUM> while the vehicle <NUM> is traveling. A registration management unit <NUM>, by conforming to the publish-subscribe scheme, manages the state of subscription/registration to topics using a message for subscription/registration with respect to a topic and a message for requesting cancellation of the subscription/registration.

A communication unit <NUM> performs wireless communication with other devices via the base station <NUM>. For example, the communication unit <NUM> sends messages generated by the registration management unit <NUM> to the server <NUM> via the base station <NUM>. Furthermore, the communication unit <NUM> receives messages, etc., from the server <NUM> via the base station <NUM>. A control unit <NUM> controls the entire on-vehicle device <NUM> and controls the above-described functional units, for example.

<FIG> is a block diagram illustrating an example of a functional configuration of a camera <NUM> according to the present embodiment. A camera function processing unit <NUM> implements conventional camera functions such as photographing. A storage unit <NUM> stores information relating to the camera functions, the position information of the camera, an effective area of photographic data, etc. Furthermore, the storage unit <NUM> stores a topic name that is associated with the position information of the camera, the effective area of photographic data, etc. A topic name is information uniquely specifying a topic in the delivery system, and is also referred to as a topic identifier. In the present example, in the camera 103a, which is installed near the intersection A <NUM>, the position information of the camera and the effective area of photographic data are stored so as to be associated with the topic name "Intersection_00A". In the camera 103b near the intersection B <NUM>, the position information of the camera and the effective area of photographic data are stored so as to be associated with the topic name "Intersection_00B". A video analysis unit <NUM> analyzes a video photographed by the camera function processing unit <NUM> and analyzes road conditions at an intersection or the like. Specifically, the video analysis unit <NUM> detects events that may affect the driving of vehicles, such as the presence/absence of accidents, traffic jams, emergency vehicles, construction vehicles, vehicles traveling in an abnormal fashion, etc., and generates road traffic information based on the result of the detection.

A message deliver unit <NUM> performs publisher-side message processing in the publish-subscribe scheme. Specifically, the message deliver unit <NUM> generates a publish/deliver request for publishing/delivering a message indicating the result (road traffic information) of the analysis by the video analysis unit <NUM>, and supplies the publish/deliver request to a communication unit <NUM>. The publish/deliver request includes the message indicating the road traffic information and the topic name stored in the storage unit <NUM>. By performing wireless communication, the communication unit <NUM> sends the publish/deliver request generated by the message deliver unit <NUM> to the server <NUM> via the base station <NUM>. A control unit <NUM> controls the above-described functional units inside the camera <NUM>.

<FIG> is a block diagram illustrating an example of a functional configuration of the server <NUM> according to the present embodiment. A topic selection unit <NUM>, based on position information received from the on-vehicle device <NUM>, selects one or more topics to which the on-vehicle device <NUM> is to be subscribed/registered. In order to perform such a selection, the topic selection unit <NUM> uses topic management information stored in a storage unit <NUM>. The management information in the present embodiment is information in which a topic name (topic identifier) and a geographic area corresponding to the topic are associated with one another. <FIG> is a diagram illustrating an example of a data configuration of a topic management table that is one example of the management information. In the topic management table, a "topic name (identifier)" that a camera <NUM> uses during publishing/delivery and a geographic "delivery area" of the publishing/delivery by the camera <NUM> are stored so as to be associated with one another. The "delivery area" is expressed using "target position information" indicating the geographic installation location of the camera <NUM>, and "delivery area information" indicating the size of the delivery area of the camera <NUM>. The geographic areas corresponding to the topics are the areas indicated by the "delivery area information".

Such information included in the topic management table may be statically recorded in advance, or may be obtained from the cameras <NUM> during or immediately after connection processing with the cameras <NUM> is performed. In the latter method for example, each camera <NUM> associates the topic name used to publish a message with attribute information, which includes the position information of the camera (corresponding to the target position information) and the effective area of data (corresponding to the delivery area information), and notifies the server <NUM> of them. In the server <NUM>, a control unit <NUM> generates the topic management table from such information notification of which is provided from the cameras <NUM>, and stores the topic management table to the storage unit <NUM>. The topic selection unit <NUM> selects one or more topics to be received by the on-vehicle device <NUM> by comparing the position information received from the on-vehicle device <NUM> and the delivery areas recorded in the topic management table. Specifically, the topic selection unit <NUM> selects topics including the position indicated by the position information in the delivery area thereof.

Returning to <FIG>, a broker unit <NUM> mediates the communication between publisher devices (the cameras <NUM> in the present example) and subscriber devices (the on-vehicle device <NUM> in the present example) in the publish-subscribe scheme. For example, upon receiving a subscribe/register request from an external device, the broker unit <NUM> associates the IP address, port number, etc., of the external device, with the topic name specified in the subscribe/register request and stores them in the storage unit <NUM>. Thus, the external device is subscribed/registered with respect to the specified topic name. In addition, upon receiving a publish/deliver request from a publisher device, the broker unit <NUM> generates a publish message to be delivered to one or more subscriber devices based on the publish message included in the publish/deliver request. Furthermore, via a communication unit <NUM>, the broker unit <NUM> delivers the publish message to one or more external devices subscribed/registered with respect to the topic name specified by the publish/deliver request.

The communication unit <NUM> realizes communication with the cameras <NUM> and the on-vehicle device <NUM> via the base station <NUM>. The communication unit <NUM> receives subscribe/register requests and publish/deliver requests to be processed by the broker unit <NUM>, and delivers publish messages generated by the broker unit <NUM>. A control unit <NUM> controls the above-described functional units of the server <NUM>.

<FIG> is a block diagram illustrating an example of a hardware configuration of the on-vehicle device <NUM>. The on-vehicle device <NUM> includes a CPU <NUM>, a ROM <NUM>, a RAM <NUM>, an auxiliary storage device <NUM>, a communication interface <NUM>, a device interface <NUM>, and a bus <NUM>. The CPU <NUM> realizes the functions of the on-vehicle device <NUM> illustrated in <FIG> by controlling the entire on-vehicle device <NUM> using data and a control program stored in the ROM <NUM> or the RAM <NUM>. Note that the on-vehicle device <NUM> may include one or more dedicated pieces of hardware that are different from the CPU <NUM>, and the dedicated hardware may execute at least part of the processing by the CPU <NUM>. Examples of the dedicated hardware include an application specific integrated circuit (ASIC), a field-programmable gate array (FPGA), a digital signal processor (DSP), etc. The ROM <NUM> stores programs, etc., that do not need to be changed. The RAM <NUM> temporarily stores programs and data supplied from the auxiliary storage device <NUM>, data supplied from the outside via the communication interface <NUM>, etc. The auxiliary storage device <NUM> is configured using a hard disk drive or the like, for example, and stores various types of data.

The communication interface <NUM> is used for communication with external devices. For example, the communication unit <NUM> uses the communication interface <NUM> to perform wireless communication with the server <NUM>, which is an external device. Various devices are connected to the device interface <NUM>. For example, a display device for displaying, to a user, messages (road traffic information) received from the server <NUM> may be connected to the device interface <NUM>. Furthermore, a GNSS receiver, an odometer, a gyrosensor, an acceleration sensor, etc., for obtaining position information indicating the position of the vehicle <NUM> may be connected to the interface <NUM>. The bus <NUM> connects the above-described units in the on-vehicle device <NUM> and transmits information thereto.

An example of the hardware configuration of the on-vehicle device <NUM> has been described with reference to <FIG> above. However, the cameras <NUM> and the server <NUM> can also be realized using a similar hardware configuration. For example, if a camera <NUM> has a hardware configuration as illustrated in <FIG>, an image-capturing unit including a mechanism for executing the capturing of images may be connected to the device interface <NUM>.

Message delivery processing by the delivery system according to the present embodiment will be described with reference to the flowcharts illustrated in <FIG> and <FIG>, and the operation sequence diagram illustrated in <FIG>. <FIG> is a flowchart illustrating processing executed by the on-vehicle device <NUM>. The processing indicated by the flowchart in <FIG> may be realized by the control unit <NUM> executing a control program stored in the storage unit <NUM> and thereby computing and processing information and controlling pieces of hardware. <FIG> is a flowchart illustrating processing executed by the server <NUM>. The processing indicated by the flowchart in <FIG> may be realized by the control unit <NUM> executing a control program stored in the storage unit <NUM> and thereby computing and processing information and controlling pieces of hardware. <FIG> is a sequence diagram illustrating operations of the delivery system in the message delivery processing according to the first embodiment.

The on-vehicle device <NUM>, the camera 103a, the camera 103b, and the server <NUM> are in a state of being capable of communicating with one another over the same network via the base station <NUM>. The on-vehicle device <NUM>, the camera 103a, the camera 103b, and the server <NUM> perform connection processing by following a protocol for realizing the publish-subscribe scheme (steps F701, F702, and F703). Examples of protocols for the publish-subscribe scheme include MQ Telemetry Transport (MQTT), Robot Operating System (ROS), etc. Any known protocol may be used in the present embodiment.

In the on-vehicle device <NUM>, the position information processing unit <NUM> obtains position information of the vehicle <NUM> having the on-vehicle device <NUM> mounted thereon from the vehicle <NUM> (step S501). Here, suppose that the vehicle <NUM> is traveling through the location "intersection A <NUM>" in <FIG>. Note that, while the position information is actually formed from complicated pieces of data from a GNSS receiver, a gyrosensor, an acceleration sensor, etc., such pieces of data are collectively referred to here as "intersection A position information". Via the communication unit <NUM>, the control unit <NUM> notifies the server <NUM> of the "intersection A position information" obtained by the position information processing unit <NUM>, and waits for a response from the server <NUM> (steps S502 and F704). Furthermore, the on-vehicle device <NUM> needs to notify the server <NUM> of position information updated as the vehicle <NUM> moves. In the present embodiment, the on-vehicle device <NUM> obtains and notifies the server <NUM> of position information at predetermined time intervals (for example, every second). Accordingly, the measurement unit <NUM> starts measuring time to determine whether or not a predetermined amount of time has elapsed (step S503). Note that, while the elapse of a predetermined amount of time is used as the notification timing of position information in the present embodiment, there is no limitation to this. For example, a configuration may be adopted such that a notification of position information is provided each time the vehicle <NUM> moves a predetermined distance (for example, <NUM>). In this case, the measurement unit <NUM> measures the moving distance of the vehicle <NUM>. Furthermore, both the elapse of a predetermined amount of time and the movement over a predetermined distance may be used. That is, a configuration may be adopted such that position information is obtained each time the elapse of a predetermined amount of time or the movement over a predetermined distance is detected.

In the server <NUM>, upon receiving position information (the "intersection A position information" here) of the vehicle <NUM> from the on-vehicle device <NUM> via the communication unit <NUM> (YES in step S601), the broker unit <NUM> supplies the position information to the topic selection unit <NUM> (step F705). The topic selection unit <NUM> refers to the topic management table (<FIG>), and selects one or more topic names including the position indicated by the received position information ("intersection A position information") in the delivery area thereof (step S602). Here, suppose that the latitude and longitude included in the "intersection A position information" are within the area indicated by the delivery area information associated with the topic name "Intersection _00A" in the topic management table. In this case, the topic selection unit <NUM> selects the topic name "Intersection _00A" (step F706). Via the communication unit <NUM>, the broker unit <NUM> notifies the on-vehicle device <NUM> of the topic name (topic identifier) selected by the topic selection unit <NUM> (steps S603 and F707).

In the on-vehicle device <NUM>, upon receiving the topic name from the server <NUM> via the communication unit <NUM> (YES in step S504), the control unit <NUM> performs subscription/registration management processing (steps S505 to S508). Note that, if no notification of a topic name is received from the server <NUM> in response to the position information notification of which was provided in step S502 (NO in step S504), processing proceeds to step S509, and the subscription/registration management processing is skipped. The subscription/registration management processing is performed in accordance with the topic name notification of which is provided from the server <NUM> and the state (topic registration state) of subscription/registration with respect to the topic name. In this example, the on-vehicle device <NUM> has not performed subscription/registration up to this point, and there is no registration-complete topic (NO in step S505). Accordingly, the registration management unit <NUM> makes a subscribe/register request to the server <NUM> with respect to the topic name received in step S504 (steps S508 and F708). Specifically, the registration management unit <NUM> generates a subscribe/register request message using the received topic name, and sends the message to the server <NUM> via the communication unit <NUM>. After making the subscribe/register request, the registration management unit <NUM> manages the topic name as a registration-complete topic.

A specific example of a subscribe/register request message generated by the registration management unit <NUM> will be described with reference to the example message formats illustrated in <FIG>. The format illustrated in <FIG> is used for subscribe/register requests. In a subscribe/register request message, "subscribe" is set to "message type", and the subscription/registration-target topic name is set to "topic name". "Message length" and "topic length" are set as appropriate.

In the server <NUM>, upon receiving the subscribe/register request from the on-vehicle device <NUM> via the communication unit <NUM>, the broker unit <NUM> subscribes/registers the on-vehicle device <NUM> with respect to the topic name included in the request (YES in step S604, and step S605). Note that the on-vehicle device <NUM> is the communication apparatus that is the transmission source of the request. For example, the broker unit <NUM> stores, to the storage unit <NUM>, the topic identified by the topic name included in the subscribe/register request so as to be associated with the IP address, port number, etc., of the on-vehicle device <NUM>. Thus, the on-vehicle device <NUM> is subscribed/registered with respect to the topic name "Intersection_00A" in the broker unit <NUM>.

Note that, while subscription/registration is performed by the server <NUM> providing a notification of a topic name selected based on position information received from the on-vehicle device <NUM>, and the on-vehicle device <NUM> making a subscribe/register request with respect to the topic name that the on-vehicle device <NUM> is notified of in the above, there is no limitation to this. For example, in the server <NUM> having received position information from the on-vehicle device <NUM>, the topic selection unit <NUM> may select a topic based on the position information, and the broker unit <NUM> may subscribe/register the on-vehicle device <NUM> with respect to the selected topic. Alternatively, a configuration may be adopted such that the on-vehicle device <NUM> makes a subscribe/register request upon notifying the server <NUM> of position information. In this case, the on-vehicle device <NUM> sets "subscribe" to "message type" without setting any information to "topic name" in the format illustrated in <FIG>, and sends the subscribe/register request with position information added thereto, for example. Note that information indicating an unknown state may be set to "topic name". In the server <NUM> having received this register request, the topic selection unit <NUM> selects a topic name based on the position information added to the subscribe/register request, and the broker unit <NUM> subscribes/registers the on-vehicle device <NUM> with respect to the selected topic. In each of the above-described cases, the server <NUM> notifies the on-vehicle device <NUM> of the topic name which has been selected by the topic selection unit <NUM> and with respect to which subscription/registration has been performed by the broker unit <NUM>. The on-vehicle device <NUM> can manage the received topic name as a registration-complete topic.

Meanwhile, the cameras 103a and 103b installed on the road respectively photograph the intersection A <NUM> and the intersection B <NUM>. As described above, the cameras 103a and 103b are each provided with the video analysis unit <NUM>, which analyzes captured video data. The video analysis unit <NUM> analyzes photographic data, generates road traffic information as a result of the analysis, and publishes and delivers a message including the generated road traffic information.

Here, suppose that an accident occurs at the intersection A <NUM>, which the vehicle <NUM> is approaching. The camera 103a analyzes captured image data using the video analysis unit <NUM>, and recognizes that an accident has occurred at the intersection A <NUM>. The message deliver unit <NUM> of the camera 103a forms a message having a publishable/deliverable format from this analysis result (road traffic information). Specifically, the message deliver unit <NUM> performs publishing/delivery using the format illustrated in <FIG>. "Publish" is set to "message type", and the topic name "Intersection _00A" associated with the installation location or the like of the camera 103a is set to "topic name". Furthermore, the above-described analysis result (road traffic information) is stored to "message", and "message length" and "topic length" are set as appropriate. The message deliver unit <NUM> sends the message generated in such a manner to the server <NUM> via the communication unit <NUM> as a publish/deliver request (step F709).

Upon receiving the publish/deliver request from the camera 103a (YES in step S608), the broker unit <NUM> in the server <NUM> delivers the message included in the request to one or more devices subscribed/registered with respect to the topic name included in the request (step S609). Here, the on-vehicle device <NUM> is subscribed/registered with respect to the topic "Intersection _00A" as described above. Accordingly, the publish message received from the camera 103a is delivered to the on-vehicle device <NUM> (step F710). As a result of the above processing, the on-vehicle device <NUM> can receive the publish message published by the camera 103a (step S509), and can thereby ascertain that an accident has occurred near the intersection A <NUM>.

Subsequently, once the vehicle <NUM> moves and the measurement unit <NUM> in the on-vehicle device <NUM> detects the elapse of a predetermined amount of time (YES in step S510, and step F711), the processing illustrated in <FIG> is terminated, and processing is started again from step S501. That is, in the on-vehicle device <NUM>, the position information processing unit <NUM> obtains position information of the vehicle <NUM> from the vehicle <NUM> again (step S501). Here, suppose that the vehicle <NUM> has moved to near the "intersection B <NUM>" in <FIG>, and the position information processing unit <NUM> receives "intersection B position information". The control unit <NUM> notifies the server <NUM> of the "intersection B position information", which is the obtained position information, and waits for a response (steps S502 and F712).

In the server <NUM> having received the "intersection B position information", the topic selection unit <NUM> refers to the topic management table (<FIG>) and selects one or more topic names including the "intersection B position information" in the delivery area thereof (steps S601, S602, and F713). In this example, the topic selection unit <NUM> selects the topic name "Intersection_00B" (step F714). Via the communication unit <NUM>, the broker unit <NUM> notifies the on-vehicle device <NUM> of the topic name selected by the topic selection unit <NUM> (steps S603 and F715).

In the on-vehicle device <NUM>, when the topic name "Intersection _00B" is received via the communication unit <NUM> (YES in step S504), the registration management unit <NUM> performs the subscription/registration management processing (steps S505 to S508). At this time, in the on-vehicle device <NUM>, "Intersection _00A" is already a registration-complete topic, and thus there is a registration-complete topic (YES in step S505). The topic name "Intersection_00B", notification of which is newly provided, is a registration-incomplete topic, and notification of only this registration-incomplete topic is provided from the server <NUM>. In this case, processing branches from step S506 (NO) to step S507. The registration management unit <NUM> makes a subscribe/register cancellation request with respect to topics other than the topic name received in step S504 among the topics (registration-complete topics) for which subscription/registration is already complete (steps S507 and F716). Here, the registration management unit <NUM> makes a subscribe/register cancellation request with respect to the registration-complete topic "Intersection_00A", for which the subscription/registration processing has been performed earlier. A topic for which a subscribe/register cancellation request has been made is treated as a registration-incomplete topic. A specific subscribe cancellation request message will be described with reference to the example message format illustrated in <FIG>. The registration management unit <NUM> sets "unsubscribe" to "message type" in the format in <FIG>, and sets the topic name for which registration is to be cancelled (here, "Intersection_00A") to "topic name". After setting "message length" and "topic length" as appropriate, the registration management unit <NUM> sends this message (subscribe/register cancellation request) to the server <NUM> via the communication unit <NUM>.

In the server <NUM>, when the subscribe/register cancellation request is received from the on-vehicle device <NUM> via the communication unit <NUM> (YES in step S606), the broker unit <NUM> cancels the subscription/registration of the on-vehicle device <NUM> (step S607). The subscription/registration that is cancelled here is the subscription/registration of the on-vehicle device <NUM> with respect to the topic specified in the subscribe/register cancellation request. Specifically, the broker unit <NUM> deletes the IP address, port number, etc., relating to the device by which the request for registration cancellation has been made from a list of subscription/registration information relating to the topic specified in the subscribe/register cancellation request.

In the on-vehicle device <NUM>, after cancelling the subscription/registration with respect to the topic name "Intersection _00A", the registration management unit <NUM> performs the subscription/registration processing with respect to the topic name "Intersection_00B" (step S508 and F717). The subscription/registration processing is as described in relation to step S509. Following this, the on-vehicle device <NUM> can obtain information regarding the vicinity of the intersection B <NUM>, which is the area the vehicle <NUM> is traveling (steps F718 and F719).

Note that, while a case where notification is provided only of a registration-incomplete topic has been described above, there are also cases where notification is provided of both a registration-incomplete topic and a registration-complete topic. For example, suppose a case where notification is provided of two topic names, namely "Intersection _00A" and "Intersection _00B", in a state in which registration has already been completed with respect to the topic "Intersection_00A". Processing proceeds from step S506 to step S507 also in this case, but no subscribe/register cancellation request is generated because there is no topic that has ceased to be specified among the topics for which subscription/registration has been performed. Subsequently, the registration management unit <NUM> issues, to the server <NUM>, a subscribe/register request with respect to the topic name "Intersection _00B". Thus, the registration management unit <NUM> performs the subscription/registration processing with respect to "Intersection_00B", which is a registration-incomplete topic, and maintains the registration with respect to "Intersection _00A". Furthermore, a case where notification is provided of only a registration-complete topic can also be considered. For example, suppose a case where notification of only the topic "Intersection _00A" is provided from the server <NUM> in a state in which registration has already been completed with respect to the topic "Intersection _00A". In this case, because registration has already been completed for the topic notification of which has been provided (YES in step S506), processing proceeds to step S509, and subscription/registration is not updated. Furthermore, while a case where notification is provided of one each of a registration-complete topic and a registration-incomplete topic has been described above, notification may be provided of a plurality of registration-complete topics and a plurality of registration-incomplete topics. For example, if notification is provided of a plurality of topics in a state in which there is no registration-complete topic (NO in step S505), the subscription/registration processing is performed for all of these topics in step S508.

As described up to this point, the on-vehicle device <NUM> operates as a subscriber and notifies the server <NUM>, which has a topic management function, of position information of the vehicle <NUM> having the on-vehicle device <NUM> mounted thereon. The topic management function of the server <NUM> selects one or more topics based on the position information. By the on-vehicle device <NUM> being subscribed/registered with respect to the selected topics, the on-vehicle device <NUM> can receive messages suitable for the on-vehicle device <NUM> among various messages that are published and delivered. In such a manner, appropriate subscription/registration is realized by the on-vehicle device <NUM> notifying the server <NUM> of position information of the vehicle <NUM>, and it becomes unnecessary for the on-vehicle device <NUM> to select topics for which subscription/registration is to be performed or to filter publish messages. Thus, the on-vehicle device <NUM> can obtain road traffic information suitable for the driver of the vehicle <NUM> at a low load and with little delay.

In the first embodiment, description has been provided of an example of processing in which subscription/registration is managed and updated based on the position where a vehicle is traveling. In the second embodiment, description will be provided of a delivery system in which subscription/registration is managed and updated based on position information of a destination to which a vehicle is moving.

<FIG> is a diagram illustrating an example of a configuration of a delivery system according to the second embodiment. <FIG> illustrates a state in which the vehicle <NUM> is traveling toward a destination <NUM>. A camera 103c is installed on a road near the destination <NUM>, and photographs roads near the destination <NUM>. The functional configuration and the hardware configuration of the on-vehicle device <NUM>, the camera 103c, and the server <NUM> illustrated in <FIG> are similar to those in the first embodiment (<FIG> and <FIG>).

In the following, operations in the second embodiment will be described with reference to the flowcharts illustrated in <FIG> and <FIG>, and the operation sequence diagram illustrated in <FIG>. <FIG> is a flowchart illustrating processing executed by the on-vehicle device <NUM> according to the second embodiment. This processing may be realized by the control unit <NUM> executing a control program stored in the storage unit <NUM> and thereby computing and processing information and controlling pieces of hardware. <FIG> is a flowchart illustrating processing executed by the server <NUM> according to the second embodiment. This processing may be realized by the control unit <NUM> executing a control program stored in the storage unit <NUM> and thereby computing and processing information and controlling pieces of hardware. <FIG> is a sequence diagram illustrating operations of the delivery system in the message delivery processing according to the second embodiment.

The on-vehicle device <NUM>, the cameras <NUM>, and the server <NUM>, which are capable of communicating with one another over the same network via the base station <NUM>, perform connection processing by following a protocol for realizing the publish-subscribe scheme (steps F1301, F1302, and F1303). In <FIG>, the camera 103c installed at the destination <NUM> and other cameras (cameras 103a and 103b) are illustrated as examples of the cameras <NUM>. Examples of protocols for the publish-subscribe scheme include MQ Telemetry Transport (MQTT), Robot Operating System (ROS), etc. Any known protocol may be used in the present embodiment.

The position information processing unit <NUM> in the on-vehicle device <NUM> obtains position information (referred to as destination information hereinafter) of the destination from a car navigation system or the like of the vehicle <NUM> having the on-vehicle device <NUM> mounted thereon (step S1101). Here, the vehicle <NUM> is traveling toward the destination <NUM> as illustrated in <FIG>. Note that, while the destination information is actually formed from complicated data from a GNSS receiver, etc., such pieces of data are collectively referred to here as "location C position information". Via the communication unit <NUM>, the control unit <NUM> in the on-vehicle device <NUM> notifies the server <NUM> of the "location C position information", which is the obtained destination information, and waits for a response from the server <NUM> (steps S1102 and F1304).

In the server <NUM>, upon receiving the destination information "location C position information" of the vehicle <NUM> from the on-vehicle device <NUM> via the communication unit <NUM> (step S1201), the broker unit <NUM> provides the destination information to the topic selection unit <NUM> (step F1305). The topic selection unit <NUM> selects one or more topics including the position indicated by the "location C position information" in the delivery area thereof (step S1202), and notifies the broker unit <NUM> thereof (step F1306). Because the method for selecting topic names is similar to that in the first embodiment, description thereof will be omitted here. Here, description is provided supposing that "Position_00C" has been selected as a topic name related to the "location C position information". Via the communication unit <NUM>, the broker unit <NUM> notifies the on-vehicle device <NUM> of the topic name selected by the topic selection unit <NUM> (steps S1203 and F1307).

Upon receiving the topic name "Position _00C" via the communication unit <NUM> (YES in step S1103, and step F1307), the registration management unit <NUM> in the on-vehicle device <NUM> makes a subscribe/register request to the server <NUM> using this topic name (step S1104 and F1308). Furthermore, the registration management unit <NUM> manages this topic name as a registration-complete topic. Because the topic registration method in the on-vehicle device <NUM> and the server <NUM> is similar to that in the first embodiment, description thereof is omitted here.

Meanwhile, the camera 103c installed on the road at the destination <NUM> photographs nearby roads including the destination <NUM>. As described above, each camera is provided with the video analysis unit <NUM>, which analyzes captured video data, and the camera analyzes photographic data using the function. Here, suppose that a traffic jam occurs near the destination <NUM>. The camera 103c analyzes captured image data using the video analysis unit <NUM>, and recognizes that a traffic jam has occurred near the destination <NUM>, for example. The control unit <NUM> in the camera 103c forms a message having a publishable/deliverable format from the analysis result using the message deliver unit <NUM>, and sends the message to the server <NUM> via the communication unit <NUM> (step F1309). The camera 103c delivers a publish message having "Position _00C" set to "topic name". Because the specific publish message delivery method is similar to that in the first embodiment, description thereof will be omitted here.

The on-vehicle device <NUM> receives the publish message published by the camera 103c (steps S1105 and F1310). The processing in which the on-vehicle device <NUM> receives the publish message from the camera 103c via the server <NUM> is similar to that in the first embodiment. Thus, detailed description thereof will be omitted here. The user is notified, by the on-vehicle device <NUM>, of the message received in such a manner, and the user can ascertain the road traffic conditions around the destination <NUM>.

According to the subscription/registration management in the first embodiment, subscription/registration is updated in accordance with the current position of the vehicle <NUM>. In contrast to this, the subscription/registration according to the second embodiment is performed based on the position of a destination, and thus is not updated until the vehicle <NUM> arrives at the destination or the destination is changed. Accordingly, the registration management unit <NUM> determines whether one of the following situations has occurred (step S1106). That is, the registration management unit <NUM> determines whether the destination has been reached or the destination has been changed. When it is determined that one of the situations has occurred (the destination has been reached or the destination has been changed) (YES in step S1106), the registration management unit <NUM> makes a request for cancellation of subscription/registration with respect to the topic for which subscription/registration has been completed through steps S1101 to S1104 (step S1107). Once the main processing is terminated in such a manner, processing from step S1101 is started again. On the other hand, if neither one of the situations has occurred (the destination has not been reached and the destination has not been changed) (NO in step S1106), the reception of messages relating to the topic for which subscription/registration has been completed is continued (step S1105).

Note that, while subscription/registration is performed based on destination information of the on-vehicle device <NUM> in the second embodiment, it is also conceivable to register, for subscription, the communication method of the communication unit <NUM> provided in the on-vehicle device <NUM> in parallel with such subscription/registration. For example, suppose a case where the communication unit <NUM> has a communication method with which large-capacity communication can be performed, and the on-vehicle device <NUM> notifies the server <NUM> of the communication method. The server <NUM> notifies the on-vehicle device <NUM> of the IP address, URL, etc., of the camera 103c if the communication method received from the on-vehicle device <NUM> is a communication method with which large-capacity communication can be performed. The on-vehicle device <NUM> can directly receive video data from the camera 103c using such information. Furthermore, a configuration may be adopted such that the on-vehicle device <NUM> executes both the registration management described in the first embodiment (configuration in which subscription/registration is updated in accordance with the current position of the vehicle <NUM>) and the registration management described in the second embodiment (configuration in which subscription/registration is performed in accordance with the destination position.

As described up to this point, according to the second embodiment, the on-vehicle device <NUM> operating as a subscriber can receive appropriate publish messages by notifying the server <NUM> of the destination position of the vehicle <NUM>. Accordingly, it becomes unnecessary to select topics for which subscription/registration is to be performed, to filter publish messages, etc., on the on-vehicle device <NUM> side, and thus notification of road traffic information suitable for the driver of the vehicle <NUM> can be provided without delay.

As described above, according to the above-described embodiments, the on-vehicle device <NUM> is subscribed/registered with respect to appropriate topics at a low load. Thus, road traffic information matching the traveling state of the vehicle <NUM> can be obtained, and drivers can be provided with more support in terms of recognition, decision-making, and operation.

Note that, while the on-vehicle device <NUM> is described as an example of a subscriber-side communication apparatus, and the vehicle <NUM> is described as an example of a moving object carrying the communication apparatus in the above-described embodiments, there is no limitation to this. For example, the subscriber-side communication apparatus may be a portable terminal, and the moving object carrying the portable terminal may be a person, a drone, or the like.

The scope of the following claims is to be accorded the broadest interpretation so as to encompass all such modifications.

Claim 1:
A communication apparatus (<NUM>) comprising:
notifying means (<NUM>, <NUM>, <NUM>, S501-S502, F704) for notifying an external device of position information;
receiving means (<NUM>, <NUM>, S504, F707) for receiving an identifier notified from the external device after notifying the position information;
storing means (<NUM>, <NUM>, S508) for storing the identifier received by the receiving means as management information for specifying a message that the communication apparatus is to subscribe to;
obtaining means (S509, F710) for, in a case where a message delivered from outside and associated with the identifier stored as the management information is received, obtaining information included in the received message, and
sending means (<NUM>, S507, F716) for sending, to the external device, a cancellation request for cancelling subscription to the identifier, in a case where a predetermined condition is fulfilled regarding the identifier.