JP2013137589A - Service providing method, service utilization method and system - Google Patents

Service providing method, service utilization method and system Download PDF

Info

Publication number
JP2013137589A
JP2013137589A JP2011287033A JP2011287033A JP2013137589A JP 2013137589 A JP2013137589 A JP 2013137589A JP 2011287033 A JP2011287033 A JP 2011287033A JP 2011287033 A JP2011287033 A JP 2011287033A JP 2013137589 A JP2013137589 A JP 2013137589A
Authority
JP
Japan
Prior art keywords
terminal
service
controller
program
new
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2011287033A
Other languages
Japanese (ja)
Other versions
JP5821627B2 (en
Inventor
忠信 ▲角▼田
Tadanobu Tsunoda
Nobutsugu Fujino
信次 藤野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2011287033A priority Critical patent/JP5821627B2/en
Publication of JP2013137589A publication Critical patent/JP2013137589A/en
Application granted granted Critical
Publication of JP5821627B2 publication Critical patent/JP5821627B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

PROBLEM TO BE SOLVED: To enable dynamic introduction of UPnP service.SOLUTION: A terminal 110 retrieves specific UPnP service to install a program for providing designated UPnP service (S101), and a device 120 that provides the specific service responds to the terminal 110 (S102). The terminal 110 transmits notice relating to the installation of a new program for providing new UPnP service on the device 120 (S107) to the specific service to be detected by the response. The device 120 acquires the new program after receiving the notice, by operating in accordance with the specific program for providing the specific service (S109 and S110), and also performs the installation of the new program on itself (S111). The device 120 provides the new service to the terminal 110 by operating in accordance with the new program installed.

Description

本発明は、UPnP(Universal Plug and Play)に関する。   The present invention relates to UPnP (Universal Plug and Play).

状況に応じて適切なソフトウェアを追加または更新する技術は、ユーザの利便性を高める上で有益である。例えば、自律的なシステム構成を支援するための、次のような状況認知基盤システムが提案されている。   A technique of adding or updating appropriate software according to the situation is useful for improving the convenience of the user. For example, the following situation recognition infrastructure system for supporting an autonomous system configuration has been proposed.

当該システムは、システムソフトウェアとプラットホームソフトウェアとを提供する少なくとも一つのサーバと連動して動作する、状況認知型のユーザシステムである。当該システムは、プラットホームマネジャとプロファイルキャッシュを有する。   The system is a situation-aware user system that operates in conjunction with at least one server that provides system software and platform software. The system has a platform manager and a profile cache.

プラットホームマネジャは、センサが提供する周辺状況情報に基づいた状況プロファイルによって、ユーザシステムの運用に必要な少なくとも一つのソフトウェアをサーバからダウンロードして管理する。プロファイルキャッシュは、プラットホームマネジャが管理する少なくとも一つのプロファイルを保存する。上記ユーザシステムによれば、一つのユーザシステムを利用して多様な状況に対応できるように、システムのソフトウェア的な構造が自律的に変更・再構成可能であり、ユーザの便利性が高まる。   The platform manager downloads and manages at least one software necessary for the operation of the user system from the server based on the situation profile based on the surrounding situation information provided by the sensor. The profile cache stores at least one profile managed by the platform manager. According to the above user system, the software structure of the system can be autonomously changed and reconfigured so that various situations can be handled using a single user system, and the convenience of the user is enhanced.

また、近年ではUPnPの利用も広まりつつあり、UPnPのサービスやコントローラ(「コントロールポイント」ともいう)に関する様々な研究が行われている。
例えば、UPnPコントロールポイント装置によって制御されるウェブインタフェースを介して、ローカルエリアネットワーク(例えば、ホームネットワーク)内に位置するサービスおよびメディアコンテンツへのアクセスを提供するためのソリューションが提案されている。当該ソリューションにおいて、UPnP装置は、無許可のアクセスからコンテンツおよびサービスを保護するために、ユーザを認証するように構成されてもよい。
In recent years, the use of UPnP is becoming widespread, and various studies on UPnP services and controllers (also referred to as “control points”) are being conducted.
For example, solutions have been proposed for providing access to services and media content located within a local area network (eg, a home network) via a web interface controlled by a UPnP control point device. In such a solution, UPnP devices may be configured to authenticate users to protect content and services from unauthorized access.

また、サービスを動的に構成して機能拡張し、提供することができるようにするための技術も、いくつか提案されている。
例えば、ある方法によれば、ネットワーク上に第1のサービス記述を広告するとともに、第1のサービス記述が関連づけられた第1のサービスを提供するサービス提供装置において、定義テーブルが準備される。定義テーブルは、具体的には、第2のサービス記述が関連づけられた第2のサービスを利用して第1のサービスを機能拡張するための、条件および呼び出し方法を定義する。
In addition, some techniques for dynamically configuring services to expand and provide functions have been proposed.
For example, according to a method, a definition table is prepared in a service providing apparatus that advertises a first service description on a network and provides a first service associated with the first service description. Specifically, the definition table defines conditions and calling methods for extending the function of the first service using the second service associated with the second service description.

サービス提供装置は、定義テーブルを参照して、条件を満たす第2のサービスを探索する。そして、サービス提供装置は、探索された第2のサービスに関連づけられている第2のサービス記述に基づいて、第1のサービス記述を更新するとともに、ネットワーク上に広告する。さらに、サービス提供装置は、広告された第1のサービスのサービス記述に基づくサービス要求に応答し、第2のサービスを呼び出し、第2のサービスからの応答を受信する。そして、サービス提供装置は、受信された第2のサービスからの応答に基づいて、サービス要求に対する応答を生成する。   The service providing apparatus searches for a second service that satisfies the condition with reference to the definition table. Then, the service providing apparatus updates the first service description and advertises it on the network based on the second service description associated with the searched second service. Further, the service providing apparatus responds to the service request based on the service description of the advertised first service, calls the second service, and receives a response from the second service. Then, the service providing device generates a response to the service request based on the received response from the second service.

また、別の方法によれば、UPnPデバイスは、バスに接続された拡張装置から当該拡張装置のサービス記述を取得し、取得されたサービス記述に基づいて自装置のサービス記述を更新し、更新されたサービス記述をネットワーク上に公開する。そして、UPnPデバイスは、UPnPコントロールポイントからサービス要求を受けると、必要に応じて、サービス要求に基づく制御要求を、該当する拡張装置へ送信し、この拡張装置から制御要求に対する制御応答を受信し、受信した制御応答に基づいてサービス要求に対する応答を生成し、生成した応答をUPnPコントロールポイントへ送信する。   According to another method, the UPnP device acquires the service description of the extension device from the extension device connected to the bus, updates the service description of the own device based on the acquired service description, and is updated. Publish the service description on the network. When the UPnP device receives a service request from the UPnP control point, the UPnP device transmits a control request based on the service request to the corresponding extension device, if necessary, and receives a control response to the control request from the extension device. A response to the service request is generated based on the received control response, and the generated response is transmitted to the UPnP control point.

特開2007−157165号公報JP 2007-157165 A 特表2010−525483号公報Special table 2010-525383 特開2006−99675号公報JP 2006-99675 A 特開2006−202210号公報JP 2006-202210 A

近年、様々な電子機器においてソフトウェア制御が採用されており、ソフトウェアのインストールによる機能拡張が実現可能な電子機器の種類も増えてきた。また、UPnPの普及も進みつつあり、UPnPの多くのサービスは、ソフトウェアを用いて実現される。しかしながら、UPnPの分野においては、ソフトウェア制御の柔軟性を活かしてUPnPのサービスを動的に導入する技術は、まだまだ未発達である。   In recent years, software control has been adopted in various electronic devices, and the types of electronic devices that can be expanded by installing software have increased. Also, the spread of UPnP is progressing, and many UPnP services are realized using software. However, in the field of UPnP, technology for dynamically introducing UPnP services by utilizing the flexibility of software control is still undeveloped.

本発明は、1つの側面では、UPnPのサービスの動的な導入を可能とすることを目的とする。   In one aspect, the present invention is intended to enable dynamic introduction of UPnP services.

一態様によるサービス提供方法では、指定されたUPnPのサービスを提供するためのプログラムをインストールするための、UPnPの特定のサービスを、端末が探索する。そして、前記特定のサービスを提供するデバイスが、前記端末に応答を返す。また、前記端末が、前記応答により検出される前記特定のサービスに対して、UPnPの新規サービスを提供するための新規プログラムの前記デバイスへのインストールに関わるインストール関連通知を送信する。さらに、前記デバイスが、前記特定のサービスを提供するための特定のプログラムにしたがって動作することによって、前記インストール関連通知の受信の後に前記新規プログラムを取得するとともに取得した前記新規プログラムを前記デバイスにインストールする。そして、前記デバイスが、インストールした前記新規プログラムにしたがって動作することにより、前記新規サービスを前記端末に提供する。   In the service providing method according to one aspect, the terminal searches for a specific UPnP service for installing a program for providing a designated UPnP service. Then, the device providing the specific service returns a response to the terminal. In addition, the terminal transmits an installation-related notification related to installation of a new program for providing a new UPnP service to the device with respect to the specific service detected by the response. Further, the device operates in accordance with a specific program for providing the specific service, thereby acquiring the new program after receiving the installation related notification and installing the acquired new program in the device. To do. The device operates in accordance with the installed new program, thereby providing the new service to the terminal.

上記サービス提供方法によれば、デバイスは、端末による探索に応じて、UPnPの新規サービスを端末に提供することができる。すなわち、上記サービス提供方法によれば、UPnPのサービスが動的にデバイスに導入される。   According to the service providing method, the device can provide a new UPnP service to the terminal according to the search by the terminal. That is, according to the service providing method, the UPnP service is dynamically introduced into the device.

第1実施形態の動作シーケンス図である。It is an operation | movement sequence diagram of 1st Embodiment. 第1実施形態のシステム構成図である。It is a system configuration figure of a 1st embodiment. サービス更新サービスのインストールされたデバイスに関するデバイス定義ファイルの例である。It is an example of the device definition file regarding the device in which the service update service is installed. サービス更新サービスのサービス定義ファイルの例である。It is an example of the service definition file of a service update service. 端末とデバイスの間で送受信されるメッセージの例である。It is an example of the message transmitted / received between a terminal and a device. サービス追加・更新コマンドの受信に応じて第1実施形態のデバイスが行う処理のフローチャートである。It is a flowchart of the process which the device of 1st Embodiment performs in response to reception of a service addition / update command. 第2実施形態の動作シーケンス図である。It is an operation | movement sequence diagram of 2nd Embodiment. 第2実施形態のシステム構成図である。It is a system configuration figure of a 2nd embodiment. 第2実施形態の条件テーブルの例である。It is an example of the condition table of 2nd Embodiment. コントローラ更新サービスのインストールされた端末に関するデバイス定義ファイルの例である。It is an example of the device definition file regarding the terminal in which the controller update service is installed. コントローラ更新サービスのサービス定義ファイルの例である。It is an example of the service definition file of a controller update service. 第2実施形態の端末が行う処理のフローチャートである。It is a flowchart of the process which the terminal of 2nd Embodiment performs. 第3実施形態の動作シーケンス図である。It is an operation | movement sequence diagram of 3rd Embodiment. 第3実施形態のシステム構成図である。It is a system configuration figure of a 3rd embodiment. 第3実施形態の条件テーブルの例である。It is an example of the condition table of 3rd Embodiment. 第3実施形態のデバイステーブルの例である。It is an example of the device table of 3rd Embodiment. デバイスまたは端末からの受信開始通知に応じて第3実施形態のサーバが行う処理のフローチャートである。It is a flowchart of the process which the server of 3rd Embodiment performs according to the reception start notification from a device or a terminal. センサからの通知に応じて第3実施形態のサーバが行う処理のフローチャートである。It is a flowchart of the process which the server of 3rd Embodiment performs according to the notification from a sensor. 受信準備コマンドに応じて第3実施形態のデバイスが行う処理のフローチャートである。It is a flowchart of the process which the device of 3rd Embodiment performs according to a reception preparation command. 第4実施形態の動作シーケンス図である。It is an operation | movement sequence diagram of 4th Embodiment. 第4実施形態のシステム構成図である。It is a system configuration figure of a 4th embodiment. 第4実施形態の条件テーブルの例である。It is an example of the condition table of 4th Embodiment. 第4実施形態の端末テーブルの例である。It is an example of the terminal table of 4th Embodiment. 端末からの受信開始通知に応じて第4実施形態のサーバが行う処理のフローチャートである。It is a flowchart of the process which the server of 4th Embodiment performs according to the reception start notification from a terminal. センサからの通知に応じて第4実施形態のサーバが行う処理のフローチャートである。It is a flowchart of the process which the server of 4th Embodiment performs according to the notification from a sensor. 第4実施形態の端末が行う処理のフローチャートである。It is a flowchart of the process which the terminal of 4th Embodiment performs. 第5実施形態の動作シーケンス図である。It is an operation | movement sequence diagram of 5th Embodiment. 第5実施形態のシステム構成図である。It is a system configuration figure of a 5th embodiment. 第5実施形態の条件テーブルの例である。It is an example of the condition table of 5th Embodiment. 第5実施形態の端末テーブルの例である。It is an example of the terminal table of 5th Embodiment. サービスとコントローラ双方の更新機能を持つ更新サービスがインストールされた端末に関するデバイス定義ファイルの例である。It is an example of the device definition file regarding the terminal in which the update service having the update function of both the service and the controller is installed. サービスとコントローラ双方の更新機能を有する更新サービスについてのサービス定義ファイルの例である。It is an example of the service definition file about the update service which has the update function of both a service and a controller. 端末からの受信開始通知に応じて第5実施形態のサーバが行う処理のフローチャート(1/3)である。It is a flowchart (1/3) of the process which the server of 5th Embodiment performs according to the reception start notification from a terminal. 端末からの受信開始通知に応じて第5実施形態のサーバが行う処理のフローチャート(2/3)である。It is a flowchart (2/3) of the process which the server of 5th Embodiment performs according to the reception start notification from a terminal. 端末からの受信開始通知に応じて第5実施形態のサーバが行う処理のフローチャート(3/3)である。It is a flowchart (3/3) of the process which the server of 5th Embodiment performs according to the reception start notification from a terminal. センサからの通知に応じて第5実施形態のサーバが行う処理のフローチャート(1/2)である。It is a flowchart (1/2) of the process which the server of 5th Embodiment performs according to the notification from a sensor. センサからの通知に応じて第5実施形態のサーバが行う処理のフローチャート(2/2)である。It is a flowchart (2/2) of the process which the server of 5th Embodiment performs according to the notification from a sensor. 第5実施形態の端末が事前に行う処理のフローチャートである。It is a flowchart of the process which the terminal of 5th Embodiment performs in advance. 第5実施形態の端末がサーバからのデータの受信に応じて行う処理のフローチャートである。It is a flowchart of the process which the terminal of 5th Embodiment performs according to reception of the data from a server. 情報処理装置の構成図である。It is a block diagram of information processing apparatus.

以下、第1〜第5実施形態について、図面を参照しながら詳細に説明する。第1および第3実施形態は、UPnPのサービスの動的な更新に関連し、第2および第4実施形態は、UPnPのコントローラ(すなわちコントロールポイント)の動的な更新に関連する。また、第5実施形態は、UPnPのサービスとコントローラ双方の動的な更新に関連する。以下に説明するとおり、第1〜第5実施形態のいずれによっても、UPnPの一層柔軟な利用が可能となる。   Hereinafter, the first to fifth embodiments will be described in detail with reference to the drawings. The first and third embodiments relate to dynamic updates of UPnP services, and the second and fourth embodiments relate to dynamic updates of UPnP controllers (ie, control points). The fifth embodiment relates to dynamic update of both UPnP service and controller. As will be described below, UPnP can be used more flexibly by any of the first to fifth embodiments.

なお、説明の便宜上、第1〜第4実施形態に関しては、サービスを提供する装置を「デバイス」といい、コントローラとして動作する装置を「端末」という。また、詳しくは後述するとおり、第5実施形態では、2台の装置のどちらにサービスがインストールされどちらにコントローラがインストールされるかは環境に応じて動的に決まる。そのため、第5実施形態に関しては、2台の装置をともに「端末」という。しかし、これらの「デバイス」および「端末」という名称は、説明の便宜上のものにすぎない。   For convenience of explanation, regarding the first to fourth embodiments, an apparatus that provides a service is referred to as a “device”, and an apparatus that operates as a controller is referred to as a “terminal”. Further, as will be described in detail later, in the fifth embodiment, in which of the two apparatuses the service is installed and in which the controller is installed is dynamically determined according to the environment. Therefore, regarding the fifth embodiment, the two devices are both referred to as “terminals”. However, the names “device” and “terminal” are merely for convenience of explanation.

さて、図1は、第1実施形態の動作シーケンス図である。また、図2は、第1実施形態のシステム構成図である。図2に示すように、第1実施形態のシステム100は、端末110とデバイス120とサービス管理装置130を含む。システム100内には、端末110以外の端末がさらにあってもよい。図1は、図2の端末110、デバイス120、およびサービス管理装置130、ならびに図2には不図示の端末140による動作シーケンスの例を示す。   FIG. 1 is an operation sequence diagram of the first embodiment. FIG. 2 is a system configuration diagram of the first embodiment. As illustrated in FIG. 2, the system 100 according to the first embodiment includes a terminal 110, a device 120, and a service management apparatus 130. There may be further terminals other than the terminal 110 in the system 100. FIG. 1 shows an example of an operation sequence by the terminal 110, the device 120, the service management apparatus 130 of FIG. 2, and the terminal 140 (not shown in FIG. 2).

端末110は、通信機能とUPnPのコントローラ機能を有する端末であれば、どのような種類の端末であってもよい。例えば、端末110は、携帯電話、スマートフォン、タブレット端末、PDA(Personal Digital Assistant)、ノートPC(Personal Computer)のような携帯端末であってもよいし、デスクトップPCであってもよい。端末140も端末110と同様である。   The terminal 110 may be any type of terminal as long as it has a communication function and a UPnP controller function. For example, the terminal 110 may be a mobile terminal such as a mobile phone, a smartphone, a tablet terminal, a PDA (Personal Digital Assistant), a notebook PC (Personal Computer), or a desktop PC. The terminal 140 is the same as the terminal 110.

デバイス120は、通信機能とUPnPのサービス提供機能を有する装置であり、製造工場からの出荷後にソフトウェアをインストールすることの可能な装置である。例えば、携帯電話、スマートフォン、タブレット端末、PDA、ノートPC、デスクトップPCなどがデバイス120として使われることもある。あるいは、組み込み型コンピュータを有するその他の種類の装置(例えば、プリンタ、プロジェクタ、テレビ、録画装置、照明装置など)がデバイス120として使われてもよい。   The device 120 is a device having a communication function and a UPnP service providing function, and is a device capable of installing software after shipment from a manufacturing factory. For example, a mobile phone, a smartphone, a tablet terminal, a PDA, a notebook PC, a desktop PC, or the like may be used as the device 120. Alternatively, other types of devices having embedded computers (eg, printers, projectors, televisions, recording devices, lighting devices, etc.) may be used as the device 120.

端末110とデバイス120は、ネットワークを介して互いに通信することができる。同様に、端末140とデバイス120も、ネットワークを介して互いに通信することができる。   The terminal 110 and the device 120 can communicate with each other via a network. Similarly, the terminal 140 and the device 120 can communicate with each other via a network.

サービス管理装置130は、例えば、ネットワークを介してデバイス120と通信可能なコンピュータであってもよい。あるいは、端末110がサービス管理装置130を含んでいてもよい。   The service management apparatus 130 may be a computer that can communicate with the device 120 via a network, for example. Alternatively, the terminal 110 may include the service management device 130.

端末110とデバイス120とサービス管理装置130のさらなる詳細は、後ほど図2を参照して説明することにして、先に図1の動作シーケンスについて説明する。図1の動作シーケンスは、例えば、「端末110が何らかのUPnPのサービスを利用しようとしたのに、当該サービスを提供するデバイスが見つからなかった」という場合などに実行される。   Further details of the terminal 110, the device 120, and the service management apparatus 130 will be described later with reference to FIG. 2, and the operation sequence of FIG. 1 will be described first. The operation sequence of FIG. 1 is executed, for example, when “the terminal 110 tried to use some UPnP service but no device providing the service was found”.

例えば、端末110のユーザは、ドキュメント表示サービスを利用したいかもしれない。すると、ユーザは、ドキュメント表示サービスを提供するデバイスを探索するよう端末110に指示するための入力を端末110に与える。端末110は、ユーザからの入力にしたがって、ドキュメント表示サービスを提供するデバイスを探索する。   For example, the user of terminal 110 may want to use a document display service. Then, the user gives the terminal 110 an input for instructing the terminal 110 to search for a device that provides the document display service. The terminal 110 searches for a device that provides a document display service in accordance with an input from the user.

しかし、端末110の周囲には、ドキュメント表示サービスを提供するデバイスが存在しなかったとする。すると、端末110は、図1のステップS101の探索を実行する。以下のステップS101〜S112の説明から明らかなとおり、図1の処理により、端末110は、「プログラムをインストールすることによって、新たにドキュメント表示サービスを提供することが可能になるデバイスが周囲に存在するか否か」を確認する。そして、もしそのようなデバイスが見つかれば、端末110は、見つかったデバイスに対して、「ドキュメント表示サービスのプログラムをインストールして、ドキュメント表示サービスを提供せよ」と命令する。その結果、端末110は、ドキュメント表示サービスを利用することが可能となる。   However, it is assumed that there is no device that provides the document display service around the terminal 110. Then, the terminal 110 executes the search in step S101 in FIG. As will be apparent from the following description of steps S101 to S112, the terminal 110 performs the following processing in FIG. 1 to indicate that the device that can provide a new document display service by installing a program exists in the surroundings. Or not. If such a device is found, the terminal 110 instructs the found device to “install the document display service program and provide the document display service”. As a result, the terminal 110 can use the document display service.

図1の処理は、以上のようにして所望のサービスを端末110で利用可能とするために、行われてもよい。もちろん、上記の「端末110が何らかのUPnPのサービスを利用しようとしたのに、当該サービスを提供するデバイスが見つからなかった」という場合以外の場合に、図1の処理が行われてもよい。つまり、図1の処理が開始されるトリガは、特に限定されない。   The process in FIG. 1 may be performed in order to make a desired service available to the terminal 110 as described above. Of course, the process of FIG. 1 may be performed in a case other than the case where “the terminal 110 tried to use some UPnP service but no device providing the service was found”. That is, the trigger for starting the process of FIG. 1 is not particularly limited.

具体的には、まずステップS101で、端末110がUPnPの特定のサービスを探索する。以下では説明の便宜上、この「特定のサービス」を「サービス更新サービス」という。サービス更新サービスは、指定されたUPnPのサービスを提供するためのプログラムをインストールするための、UPnPのサービスである。   Specifically, first, in step S101, the terminal 110 searches for a specific service of UPnP. Hereinafter, for convenience of explanation, this “specific service” is referred to as a “service update service”. The service update service is a UPnP service for installing a program for providing a designated UPnP service.

サービス更新サービスに対してインストール対象として指定されるサービスは、今まで存在しなかった全く新たなサービスであってもよいし、既存のサービスをアップグレードした新たなバージョンのサービスであってもよい。つまり、サービス更新サービスは、全く新たなサービスを追加するために使われることもあるし、既存のサービス更新するために使われることもある。なお、既存のサービスを更新することは、換言すれば、既存のサービスを新規サービスで上書きすることである。つまり、既存のサービスの更新も、広い意味では新規サービスの導入と見なせる。よって、以下では、追加と更新を特に区別しないことがある。   The service designated as the installation target for the service update service may be a completely new service that has not existed until now, or may be a new version of a service that is an upgrade of an existing service. In other words, the service update service may be used to add a completely new service or may be used to update an existing service. Note that updating the existing service is, in other words, overwriting the existing service with the new service. In other words, updating existing services can be regarded as introducing new services in a broad sense. Therefore, in the following, addition and update may not be particularly distinguished.

また、サービス更新サービスは、指定されたUPnPのサービスを提供するためのプログラムをアンインストールするための機能を、さらに有していてもよい。つまり、サービス更新サービスは、既存のサービスの削除するための機能を有していてもよい。   The service update service may further have a function for uninstalling a program for providing a designated UPnP service. That is, the service update service may have a function for deleting an existing service.

ステップS101における探索は、UPnPのディスカバリプロトコルであるSSDP(Simple Service Discovery Protocol)にしたがって行われる。具体的には、ステップS101で端末110は、M-searchメッセージを送信する。M-searchメッセージの送信は、具体的には、ネットワーク内へのマルチキャストである。   The search in step S101 is performed according to SSDP (Simple Service Discovery Protocol) which is a UPnP discovery protocol. Specifically, in step S101, the terminal 110 transmits an M-search message. The transmission of the M-search message is specifically multicast to the network.

図1の例では、デバイス120がサービス更新サービスを提供しているものとする。したがって、ステップS102で、デバイス120が端末110に応答を返す。ステップS102の応答は、具体的には、HTTP(Hypertext Transfer Protocol)応答である。ステップS102でのHTTP応答は、「OK」という意味を示す「200」というステータスコードを含む。ステップS102の応答の具体例は、後述の図5に示す。   In the example of FIG. 1, it is assumed that the device 120 provides a service update service. Therefore, in step S102, the device 120 returns a response to the terminal 110. Specifically, the response in step S102 is an HTTP (Hypertext Transfer Protocol) response. The HTTP response in step S102 includes a status code “200” indicating the meaning “OK”. A specific example of the response in step S102 is shown in FIG.

端末110は、ステップS102の応答を受信すると、次に、ステップS103〜S106に示すとおり、UPnPのディスクリプションプロトコルにしたがって、デバイス120の詳細な情報を取得する。   Upon receiving the response of step S102, the terminal 110 then acquires detailed information of the device 120 according to the UPnP description protocol, as shown in steps S103 to S106.

具体的には、ステップS103で端末110が、デバイス120のデバイス定義(device description)を要求する。ステップS103での要求は、具体的には、GETメソッドが指定されたHTTP要求である。   Specifically, in step S103, the terminal 110 requests a device definition (device description) of the device 120. The request in step S103 is specifically an HTTP request in which a GET method is designated.

デバイス120は、ステップS103の要求を受信すると、ステップS104で、デバイス定義ファイルを端末110に送信する。デバイス定義ファイルは、XML(Extensible Markup Language)形式で記述されており、デバイス120が提供するサービスについての情報を含む。上記のとおりデバイス120はサービス更新サービスを提供しているので、ステップS104で送信されるデバイス定義ファイルは、サービス更新サービスにアクセスするための情報を含む。   Upon receiving the request in step S103, the device 120 transmits a device definition file to the terminal 110 in step S104. The device definition file is described in an XML (Extensible Markup Language) format and includes information on services provided by the device 120. As described above, since the device 120 provides the service update service, the device definition file transmitted in step S104 includes information for accessing the service update service.

したがって、端末110は、デバイス定義ファイルを受信すると、サービス更新サービスにアクセスするための情報を得ることができる。そこで、端末110は、次のステップS105で、サービス更新サービスのサービス定義(service description)を要求する。ステップS105での要求も、具体的には、GETメソッドが指定されたHTTP要求である。   Therefore, when the terminal 110 receives the device definition file, it can obtain information for accessing the service update service. Therefore, the terminal 110 requests a service definition (service description) of the service update service in the next step S105. The request in step S105 is also specifically an HTTP request in which the GET method is designated.

デバイス120は、ステップS105の要求を受信すると、ステップS106で、サービス更新サービスのサービス定義ファイルを端末110に送信する。サービス定義ファイルもXML形式で記述されている。また、サービス更新サービスのサービス定義ファイルでは、サービス更新サービスを利用するために使われる制御メッセージ(「アクション」ともいう)の、名前や引数などが定義されている。   Upon receiving the request in step S105, the device 120 transmits a service definition file of the service update service to the terminal 110 in step S106. The service definition file is also described in XML format. In the service definition file of the service update service, the name, argument, and the like of a control message (also referred to as “action”) used for using the service update service are defined.

以上のようにして、端末110は、デバイス120により提供されるサービス更新サービスを検出することができる。そして、端末110は、検出したサービス更新サービスに対して、ステップS107でコマンドを送信する。   As described above, the terminal 110 can detect the service update service provided by the device 120. Then, the terminal 110 transmits a command to the detected service update service in step S107.

具体的には、ステップS107においてコマンドは、UPnPのコントロールプロトコルであるSOAP(もとはSimple Object Access Protocolの略だが今は何かの略語ではない)によって送信される。ステップS107のコマンドは、端末110が利用しようとしたものの見つけられなかった新規サービス(上記の例ではドキュメント表示サービス)のインストールをデバイス120に命じるためのコマンドである。ステップS107のSOAPコマンドの具体例は、後述の図5に示す。   Specifically, in step S107, the command is transmitted by SOAP (originally an abbreviation for Simple Object Access Protocol but not an abbreviation for anything), which is a UPnP control protocol. The command in step S107 is a command for instructing the device 120 to install a new service (a document display service in the above example) that the terminal 110 tried to use but was not found. A specific example of the SOAP command in step S107 is shown in FIG.

ところで、上記のように、新規サービスのインストールは、既存の古いサービスの置き換えによる更新のために行われることもあるし、全く新規のサービスの追加のために行われることもある。よって、図1のステップS107には「サービス追加・更新コマンド」と書いてあるが、上記のとおり、更新の処理と追加の処理は同様である。   By the way, as described above, the installation of a new service may be performed for updating by replacing an existing old service, or may be performed for adding a completely new service. Therefore, although “service addition / update command” is written in step S107 in FIG. 1, the update processing and the addition processing are the same as described above.

デバイス120は、ステップS107のコマンドを受信すると、次のステップS108で端末110に応答を返す。ステップS108での応答は、具体的には、「OK」という意味を示す「200」というステータスコードを含むHTTP応答である。   Upon receiving the command in step S107, the device 120 returns a response to the terminal 110 in the next step S108. Specifically, the response in step S108 is an HTTP response including a status code “200” indicating the meaning of “OK”.

デバイス120は、さらにステップS109で、サービス管理装置130にサービスを要求する。より具体的には、デバイス120は、SOAPコマンドにおいて端末110により指定された新規サービスを提供するためのプログラムの送信を、サービス管理装置130に要求する。   In step S109, the device 120 requests a service from the service management apparatus 130. More specifically, the device 120 requests the service management apparatus 130 to transmit a program for providing a new service specified by the terminal 110 in the SOAP command.

ステップS107のSOAPコマンドには、端末110が利用しようとする新規サービスを指定するサービス指定情報が含まれている。よって、デバイス120は、ステップS109で当該サービス指定情報をサービス管理装置130に通知することができる。つまり、デバイス120は、サービス指定情報の通知により、上記サービス指定情報で識別される新規サービスのプログラムの送信をサービス管理装置130に要求する。   The SOAP command in step S107 includes service designation information that designates a new service that the terminal 110 intends to use. Therefore, the device 120 can notify the service management apparatus 130 of the service designation information in step S109. That is, the device 120 requests the service management apparatus 130 to transmit a program for a new service identified by the service designation information based on the notification of the service designation information.

すると、次のステップS110でサービス管理装置130は、ステップS109で要求されたサービス(より具体的には、当該サービスを提供するためのプログラムを含むデータ)を、デバイス120に送信する。デバイス120は、こうしてサービス管理装置130からプログラムを受信することにより、インストール対象のプログラムを取得する。   Then, in step S110, the service management apparatus 130 transmits the service requested in step S109 (more specifically, data including a program for providing the service) to the device 120. In this way, the device 120 receives the program from the service management apparatus 130, thereby acquiring the installation target program.

そして、ステップS111でデバイス120は、取得したプログラムをデバイス120自身にインストールする。その結果、デバイス120は、新規サービスを提供することができるようになる。   In step S111, the device 120 installs the acquired program in the device 120 itself. As a result, the device 120 can provide a new service.

また、プログラムのインストールにより、デバイス120が提供するサービスが追加または更新されるので、デバイス120は、デバイス定義ファイルを書き換える。デバイス120は、追加または更新されたサービスのサービス定義ファイルも保存する。   In addition, since the service provided by the device 120 is added or updated by installing the program, the device 120 rewrites the device definition file. The device 120 also stores a service definition file for the added or updated service.

また、ステップS112でデバイス120は、新規サービスの提供が可能になったこと(すなわちサービス追加・更新イベントの発生)を通知する。ステップS112での通知は、UPnPのイベント通知プロトコルであるGENA(General Event Notification Architecture)にしたがって行われる。もしくは、ステップS112での通知は、UPnP1.1より導入されたプロトコルであるMulticast Eventingを用いてもよい。GENAを用いてイベントを通知する場合は、後述するように、予め所定のプロトコルにしたがい、端末がデバイスに対して購読要求(subscription request)を通知しておく必要がある。Multicast Eventingを用いる場合は、事前に端末によるデバイスへの購読要求通知を行う必要はない。以下の例でGENAにより行っているイベント通知は、UPnP1.1以降では、Multicast Eventingに置き換えてもよい。   In step S112, the device 120 notifies that provision of a new service is possible (that is, occurrence of a service addition / update event). The notification in step S112 is performed according to GENA (General Event Notification Architecture) which is a UPnP event notification protocol. Alternatively, the notification in step S112 may use Multicast Eventing, which is a protocol introduced from UPnP1.1. When an event is notified using GENA, the terminal needs to notify a subscription request (subscription request) to the device in advance according to a predetermined protocol, as will be described later. When using Multicast Eventing, there is no need to notify the device of subscription requests to the device in advance. The event notification performed by GENA in the following example may be replaced with Multicast Eventing in UPnP1.1 and later.

図1の例では、ステップS112でデバイス120がサービス追加・更新イベントの通知をGENAのプロトコルにしたがって通知する。よって、端末110だけでなく端末140も、デバイス120が新規サービスの提供を開始したことを認識することができる。   In the example of FIG. 1, in step S112, the device 120 notifies the service addition / update event according to the GENA protocol. Therefore, not only the terminal 110 but also the terminal 140 can recognize that the device 120 has started providing a new service.

また、図1には示されていないが、上記のようにしてデバイス120が新規サービスの提供を開始した後、端末110は、ステップS103〜S104と同様にしてデバイス120のデバイス定義ファイルを再度取得する。こうして取得されるデバイス定義ファイルは、ステップS111で更新されたものであり、インストールされた新規サービスにアクセスするための情報を含む。   Although not shown in FIG. 1, after the device 120 starts providing a new service as described above, the terminal 110 obtains the device definition file of the device 120 again in the same manner as in steps S103 to S104. To do. The device definition file obtained in this way has been updated in step S111 and includes information for accessing the installed new service.

したがって、端末110は、ステップS105〜S106と同様にして、新規サービスについてのサービス定義ファイルを取得することができる。そして、端末110は、取得したサービス定義ファイルに定義されている制御メッセージを、適宜ステップS107と同様にしてSOAPによりデバイス120に送信することで、新規サービスを利用することができる。もちろん、端末140も同様にして、デバイス120の新規サービスを利用することができる。   Therefore, the terminal 110 can acquire the service definition file for the new service in the same manner as steps S105 to S106. Then, the terminal 110 can use the new service by appropriately transmitting the control message defined in the acquired service definition file to the device 120 by SOAP as in step S107. Of course, the terminal 140 can use the new service of the device 120 in the same manner.

続いて、図2を参照して、端末110とデバイス120とサービス管理装置130の詳細について説明する。
図2に示すように、端末110には、UPnPコントローラ111が実装されている。UPnPコントローラ111は、サービス更新サービスに対して制御メッセージ(つまりコマンド)を与える機能を有する、UPnPのコントローラである。図1に示した端末110の動作は、具体的にはUPnPコントローラ111により実行される。
Next, details of the terminal 110, the device 120, and the service management apparatus 130 will be described with reference to FIG.
As shown in FIG. 2, a UPnP controller 111 is mounted on the terminal 110. The UPnP controller 111 is a UPnP controller having a function of giving a control message (that is, a command) to the service update service. Specifically, the operation of the terminal 110 illustrated in FIG. 1 is executed by the UPnP controller 111.

また、デバイス120は、UPnPサービス提供部121を含む。UPnPサービス提供部121は、サービス更新サービス122を提供する。図1のステップS109の要求、ステップS110の受信、ステップS111のインストール、およびステップS112の通知は、具体的には、サービス更新サービス122により行われる。つまり、デバイス120は、サービス更新サービス122を提供するためのプログラムを実行することにより、ステップS109〜S112の処理を行う。   The device 120 includes a UPnP service providing unit 121. The UPnP service providing unit 121 provides a service update service 122. The request in step S109 in FIG. 1, the reception in step S110, the installation in step S111, and the notification in step S112 are specifically performed by the service update service 122. That is, the device 120 performs the processes of steps S109 to S112 by executing a program for providing the service update service 122.

なお、図2には、図1のステップS111でインストールされる新規サービス123が破線で示されている。新規サービス123のプログラムのインストール後には、UPnPサービス提供部121は、新規サービス123も提供することが可能である。また、UPnPコントローラ111は、サービス更新サービス122に対して制御メッセージを与える機能だけでなく、新規サービス123に対して制御メッセージを与える機能を有していてもよい。   In FIG. 2, the new service 123 installed in step S111 of FIG. 1 is indicated by a broken line. After the installation of the new service 123 program, the UPnP service providing unit 121 can also provide the new service 123. Further, the UPnP controller 111 may have not only a function of giving a control message to the service update service 122 but also a function of giving a control message to the new service 123.

さて、サービス管理装置130は格納部131を有する。格納部131には、新規サービス123を提供するためのプログラムである新規サービスプログラム132が、新規サービス123を識別する情報と対応づけられて、格納されている。新規サービスプログラム132は、図1のステップS110でデバイス120に送信され、ステップS111でデバイス120にインストールされる。そして、インストールの結果として、デバイス120は新規サービス123の提供を開始する。   The service management apparatus 130 includes a storage unit 131. In the storage unit 131, a new service program 132, which is a program for providing the new service 123, is stored in association with information for identifying the new service 123. The new service program 132 is transmitted to the device 120 in step S110 of FIG. 1, and is installed in the device 120 in step S111. Then, as a result of the installation, the device 120 starts providing the new service 123.

なお、簡単化のため、図1には1つの新規サービスプログラム132のみが示されている。しかし、格納部131は、複数のサービスそれぞれのプログラムを、当該サービスを識別する情報と対応づけて格納していてもよい。つまり、格納部131は、様々なサービスを提供するための各種プログラムのレポジトリであってもよい。   For simplification, only one new service program 132 is shown in FIG. However, the storage unit 131 may store programs for each of a plurality of services in association with information for identifying the services. That is, the storage unit 131 may be a repository of various programs for providing various services.

続いて、図3〜5を参照して、第1実施形態で使われるファイルとメッセージの例について説明する。図3は、サービス更新サービス122のインストールされたデバイス120に関するデバイス定義ファイルの例である。図4は、サービス更新サービス122のサービス定義ファイルの例である。また、図5は、端末110とデバイス120の間で送受信されるメッセージの例である。   Next, examples of files and messages used in the first embodiment will be described with reference to FIGS. FIG. 3 is an example of a device definition file related to the device 120 in which the service update service 122 is installed. FIG. 4 is an example of a service definition file of the service update service 122. FIG. 5 is an example of a message transmitted / received between the terminal 110 and the device 120.

図3のデバイス定義ファイル150は、新規サービス123を提供するための新規サービスプログラム132が図1のステップS111でインストールされるのにともなって更新された、デバイス定義ファイルの具体例である。なお、図3には参照の便宜のため、左側に行番号が示してある。図4などの他のいくつかの図においても、同様の行番号が示してある。   The device definition file 150 in FIG. 3 is a specific example of the device definition file updated as the new service program 132 for providing the new service 123 is installed in step S111 in FIG. In FIG. 3, the row numbers are shown on the left side for convenience of reference. Similar row numbers are shown in some other figures, such as FIG.

UPnPのデバイス定義ファイルの一般的な形式は公知である。よって、デバイス定義ファイル150のうちサービス更新サービス122と直接関係しない部分については、適宜、説明を省略または簡略化する。   The general format of a UPnP device definition file is known. Therefore, the description of the part of the device definition file 150 that is not directly related to the service update service 122 is omitted or simplified as appropriate.

5〜9行目には、デバイス120全体に関する情報(例えば、9行目のUDN(Unique Device Name)など)が記載されている。そして、10〜25行目には、デバイス120が提供するサービスのリストが記載されている。   Lines 5 to 9 describe information related to the entire device 120 (for example, UDN (Unique Device Name) on line 9). In the 10th to 25th lines, a list of services provided by the device 120 is described.

デバイス定義ファイル150の例では、10〜25行目のリストには、2つのサービスの情報が記載されている。具体的には、11〜17行目には、サービス更新サービス122の情報が記載されている。そして、18〜24行目には、サービス更新サービス122によってデバイス120にインストールされたドキュメント表示サービス(つまり、図2の新規サービス123の具体例)の情報が記載されている。   In the example of the device definition file 150, information on two services is described in the list on the 10th to 25th lines. Specifically, in the 11th to 17th lines, information on the service update service 122 is described. In the 18th to 24th lines, information on the document display service installed in the device 120 by the service update service 122 (that is, a specific example of the new service 123 in FIG. 2) is described.

11〜17行目に記載されているサービス更新サービス122に関する情報は、具体的には以下の情報を含む。
12行目には、サービス更新サービス122の種類が記載されている。また、13行目には、サービス更新サービス122のID(identifier)が記載されている。
The information regarding the service update service 122 described in the 11th to 17th lines specifically includes the following information.
The twelfth line describes the type of service update service 122. The 13th line describes the ID (identifier) of the service update service 122.

14行目には、サービス更新サービス122のサービス定義ファイル(例えば図4のサービス定義ファイル151)のある場所のURI(Uniform Resource Identifier)が記載されている。例えば図1のステップS104で端末110は、デバイス定義ファイル150を取得することで、14行目から、サービス更新サービス122のサービス定義ファイル151のURIを認識することができる。端末110は、デバイス定義ファイル150の14行目のURIを指定してステップS105の要求を送信することで、ステップS106でサービス定義ファイル151を取得することができる。   The 14th line describes a URI (Uniform Resource Identifier) where a service definition file of the service update service 122 (for example, the service definition file 151 in FIG. 4) is located. For example, in step S104 of FIG. 1, the terminal 110 can recognize the URI of the service definition file 151 of the service update service 122 from the 14th line by acquiring the device definition file 150. The terminal 110 can acquire the service definition file 151 in step S106 by specifying the URI of the 14th line of the device definition file 150 and transmitting the request in step S105.

また、例えば図1のステップS107のSOAPコマンドのように、何らかの制御メッセージがサービス更新サービス122に送信されることがある。15行目には、このようなサービス更新サービス122に対する制御メッセージの宛先のURIが記載されている。つまり、端末110は、デバイス定義ファイル150から、ステップS107のSOAPコマンドをどこに宛てて送信すればよいかを認識することができる。   Further, for example, some control message may be transmitted to the service update service 122 as in the SOAP command in step S107 in FIG. Line 15 describes the URI of the destination of the control message for such service update service 122. That is, the terminal 110 can recognize from the device definition file 150 where to send the SOAP command in step S107.

また、端末110は、サービス更新サービス122の状態変数(state variable)が変化したときにGENAによるイベント通知を受け取れるようにするために、購読要求(subscription request)をサービス更新サービス122に送信してもよい。もちろん、端末140も同様に、購読要求を送信してもよい。16行目には、購読要求の宛先のURIが記載されている。   Also, the terminal 110 may transmit a subscription request to the service update service 122 so that the event notification by GENA can be received when the state variable of the service update service 122 changes. Good. Of course, the terminal 140 may transmit a subscription request as well. The 16th line describes the URI of the destination of the subscription request.

例えば、図1の例では、サービス更新サービス122は、ステップS107のコマンドを送信した端末110を、サービス更新サービス122の特定の状態変数(具体的には、後述の状態変数UpdateTime)の購読を要求したものと見なす。また、図1の例では、端末140も、予めデバイス120に対して、状態変数UpdateTimeの購読を要求していたものと仮定する。そのため、図1の例では、ステップS112で、GENAによる通知が端末110と端末140に送信されている。   For example, in the example of FIG. 1, the service update service 122 requests the terminal 110 that has transmitted the command in step S <b> 107 to subscribe to a specific state variable (specifically, a state variable UpdateTime described later) of the service update service 122. It is considered that. In the example of FIG. 1, it is assumed that the terminal 140 has also requested the device 120 to subscribe to the state variable UpdateTime in advance. Therefore, in the example of FIG. 1, the notification by GENA is transmitted to the terminal 110 and the terminal 140 in step S112.

デバイス定義ファイル150においては、以上説明した12〜16行目の情報が、11行目と17行目のタグにはさまれている。したがって、端末110は、デバイス定義ファイル150の11〜17行目から、サービス更新サービス122にアクセスしてサービス更新サービス122を利用するための情報を得ることができる。   In the device definition file 150, the information on the 12th to 16th lines described above is sandwiched between the tags on the 11th and 17th lines. Therefore, the terminal 110 can obtain information for accessing the service update service 122 and using the service update service 122 from the 11th to 17th lines of the device definition file 150.

なお、18〜24行目に記載された、ドキュメント表示サービスに関する情報も、11〜17行目の情報と同様の形式である。よって、18〜24行目についての詳細な説明は省略する。   Note that the information related to the document display service described in the 18th to 24th lines has the same format as the information in the 11th to 17th lines. Therefore, detailed description of the 18th to 24th lines is omitted.

また、以上の説明から明らかなように、図1のステップS104で送信される更新前のデバイス定義ファイルは、図3のデバイス定義ファイル150の18〜24行目がない状態のものである。換言すれば、ステップS111でのインストールにともなって、図3の18〜24行が追加される。   Further, as is clear from the above description, the device definition file before update transmitted in step S104 in FIG. 1 is a state in which there are no 18th to 24th lines in the device definition file 150 in FIG. In other words, 18 to 24 lines in FIG. 3 are added with the installation in step S111.

さて、次に図4を参照して、図1のステップS106で送信される、サービス更新サービス122のサービス定義ファイルの詳細について説明する。
なお、説明の都合上、図4には、第1実施形態では使われないアクションや状態変数についての定義も含むサービス定義ファイル151が例示されており、これらのアクションや状態変数は、後述の第3実施形態で使われる。具体的には、19〜26行目の「Listen」という名前のアクションと、39〜42行目の「ServerUri」および「Listening」という状態変数は、第1実施形態では使われず、第3実施形態で使われる。よって、ここでは19〜26行目と39〜42行目の説明は省略する。また、特に混乱のおそれはないので、以下の第1実施形態の説明における「サービス定義ファイル151」という用語は、19〜26行目と39〜42行目のない状態のサービス定義ファイルを指すものとする。
Now, with reference to FIG. 4, details of the service definition file of the service update service 122 transmitted in step S106 of FIG. 1 will be described.
For convenience of explanation, FIG. 4 exemplifies a service definition file 151 including definitions of actions and state variables that are not used in the first embodiment. Used in three embodiments. Specifically, the action named “Listen” on lines 19 to 26 and the state variables “ServerUri” and “Listening” on lines 39 to 42 are not used in the first embodiment, and the third embodiment. Used in Therefore, description of the 19th to 26th lines and the 39th to 42nd lines is omitted here. Further, since there is no fear of confusion, the term “service definition file 151” in the following description of the first embodiment refers to a service definition file in a state without the 19th to 26th lines and the 39th to 42nd lines. And

また、UPnPのサービス定義の一般的な形式は公知である。そこで、以下ではサービス定義ファイル151の形式についての説明は省略し、サービス定義ファイル151の内容について主に説明する。   Also, the general format of UPnP service definition is known. Therefore, the description of the format of the service definition file 151 is omitted below, and the contents of the service definition file 151 will be mainly described.

さて、サービス定義ファイル151は、図3のデバイス定義ファイル150の14行目に記載されたURIで識別される場所(具体的にはデバイス120内の記憶装置)に記憶されており、図1のステップS106で送信される。   The service definition file 151 is stored in a location (specifically, a storage device in the device 120) identified by the URI described in the 14th line of the device definition file 150 in FIG. It is transmitted in step S106.

4〜33行目には、サービス更新サービス122に関して定義されているアクションのリストが記載されている。
具体的には、5〜12行目では、サービスの追加および更新用の、「UpdateService」という名前のアクションが定義されている。このアクションは2つの入力引数をとる。
In lines 4 to 33, a list of actions defined for the service update service 122 is described.
Specifically, in the 5th to 12th lines, an action named “UpdateService” for adding and updating a service is defined. This action takes two input arguments.

1番目の引数は、「argServiceName」という名前であり、追加または更新の対象のサービスを識別するためのサービス識別情報(例えばURN(Uniform Resource Name)などの名前でもよいし、何らかのIDでもよい)を表す。また、この「argServiceName」という引数は、後述の「ServiceName」という状態変数と関係しており、具体的には、サービス更新サービス122は、「argServiceName」という引数に指定された値を「ServiceName」という状態変数に代入する。   The first argument is the name “argServiceName”, and service identification information for identifying the service to be added or updated (for example, a name such as URN (Uniform Resource Name) or some ID) may be used. Represent. The argument “argServiceName” is related to a state variable “ServiceName” described later. Specifically, the service update service 122 sets the value specified in the argument “argServiceName” as “ServiceName”. Assign to a state variable.

2番目の引数は、「argServiceUri」という名前であり、追加または更新の対象のサービスのデータ(つまりサービスのプログラムを含むデータ)が記憶されている場所を示す。具体的には、URIが「argServiceUri」という引数として指定される。例えば、図1のステップS107のSOAPコマンドは、具体的には「UpdateService」というアクションを指定する制御メッセージである。そして、ステップS107では、図2のサービス管理装置130の格納部131内の新規サービスプログラム132が記憶されている場所のURIが、「argServiceUri」という引数として指定される。   The second argument is named “argServiceUri” and indicates a location where data of a service to be added or updated (that is, data including a service program) is stored. Specifically, the URI is designated as an argument “argServiceUri”. For example, the SOAP command in step S107 in FIG. 1 is a control message that specifically designates an action “UpdateService”. In step S107, the URI where the new service program 132 is stored in the storage unit 131 of the service management apparatus 130 of FIG. 2 is designated as an argument “argServiceUri”.

なお、端末110にとっては、以上の2つの引数として指定する2つの値は、既知である。
また、13〜18行目では、サービスの削除用の、「DeleteService」という名前のアクションが定義されている。なお、「DeleteService」というアクションは省略可能であり、実施形態によっては、サービス更新サービス122がサービスの削除機能を持たなくてもよい。
For terminal 110, the two values specified as the above two arguments are known.
In the 13th to 18th lines, an action named “DeleteService” for defining a service is defined. Note that the action “DeleteService” can be omitted, and the service update service 122 may not have a service deletion function in some embodiments.

図4の例では、「DeleteService」というアクションは、「argServiceName」という名前の1つの入力引数をとる。この引数は、削除対象のサービスを識別するためのサービス識別情報(例えばサービスの名前)を表す。また、この引数も、後述の「ServiceName」という状態変数と関係しており、具体的には、サービス更新サービス122は、「argServiceName」という引数に指定された値を「ServiceName」という状態変数に代入する。   In the example of FIG. 4, the action “DeleteService” takes one input argument named “argServiceName”. This argument represents service identification information (for example, the name of the service) for identifying the service to be deleted. This argument is also related to a state variable “ServiceName” described later. Specifically, the service update service 122 assigns the value specified in the argument “argServiceName” to the state variable “ServiceName”. To do.

19〜26行目の「Listen」という名前のアクションについては、第3実施形態とともに後述する。
27〜32行目では、サービス更新サービス122によってサービスの追加または更新が行われた最終日時を、端末(例えば端末110)が取得するための、「GetUpdateTime」という名前のアクションが定義されている。なお、「GetUpdateTime」というアクションは省略可能である。
The action named “Listen” on the 19th to 26th lines will be described later together with the third embodiment.
In the 27th to 32nd lines, an action named “GetUpdateTime” is defined for the terminal (for example, the terminal 110) to acquire the last date and time when the service update service 122 added or updated the service. The action “GetUpdateTime” can be omitted.

図4の例では、「GetUpdateTime」というアクションは、入力引数をとらず、「ResultUpdateTime」という名前の返り値を返す。「ResultUpdateTime」という返り値は、具体的には、後述の「UpdateTime」という状態変数の値である。   In the example of FIG. 4, the action “GetUpdateTime” does not take an input argument and returns a return value named “ResultUpdateTime”. Specifically, the return value “ResultUpdateTime” is a value of a state variable “UpdateTime” described later.

また、34〜45行目には、サービス更新サービス122に関して定義されている状態変数のリストが記載されている。
具体的には、35〜36行目には、「ServiceName」という名前の文字列型の状態変数が定義されている。「ServiceName」という状態変数は、サービス更新サービス122が最後に追加、更新、または削除したサービスの識別情報(例えばサービスの名前)を示す。
On the 34th to 45th lines, a list of state variables defined for the service update service 122 is described.
Specifically, in the 35th to 36th lines, a character string type state variable named “ServiceName” is defined. The state variable “ServiceName” indicates the identification information (for example, the name of the service) of the service added, updated, or deleted last by the service update service 122.

そして、37〜38行目には、「ServiceUri」という名前のURI型の状態変数が定義されている。「ServiceUri」という状態変数は、サービス更新サービス122が最後に追加または更新したサービスのプログラムがどこから取得されたのかを示す。   In the 37th to 38th lines, a URI type state variable named “ServiceUri” is defined. The state variable “ServiceUri” indicates where the service program last added or updated by the service update service 122 is acquired.

39〜42行目については、第3実施形態とともに後述する。
また、43〜44行目には、「UpdateTime」という名前の日付・時刻型の状態変数が定義されている。「UpdateTime」という状態変数は、サービス更新サービス122によってサービスの追加または更新が行われた最終日時(以下、追加と更新を区別せず、単に「最終更新日時」という)を示す。
The 39th to 42nd lines will be described later together with the third embodiment.
On the 43rd to 44th lines, a date / time state variable named "UpdateTime" is defined. The state variable “UpdateTime” indicates the last date and time when the service was added or updated by the service update service 122 (hereinafter referred to simply as “last update date and time, without distinction between addition and update”).

次に、図5を参照して、端末110とデバイス120の間で送受信されるメッセージの例を説明する。図5の応答152は、図1のステップS102で送信されるHTTP応答の具体例であり、図5のSOAPコマンド153は、図1のステップS107で送信されるSOAPコマンドの具体例である。   Next, an example of a message transmitted and received between the terminal 110 and the device 120 will be described with reference to FIG. The response 152 in FIG. 5 is a specific example of the HTTP response transmitted in step S102 in FIG. 1, and the SOAP command 153 in FIG. 5 is a specific example of the SOAP command transmitted in step S107 in FIG.

応答152の1行目は、HTTPのステータスラインである。2行目は、探索対象(ST:search target)がルートデバイスであることを示す。3行目は、USN(Unique Service Name)を示す。4行目には、応答152を返すデバイス120のデバイス定義ファイル(具体的には図3のデバイス定義ファイル150)のある場所を示すURIが記載されている。5行目は、応答152がHTTPヘッダのみを含む(つまり、エンティティボディを含まない)ことを示す。   The first line of the response 152 is an HTTP status line. The second line indicates that the search target (ST) is a root device. The third line shows a USN (Unique Service Name). In the fourth line, a URI indicating the location of the device definition file (specifically, the device definition file 150 in FIG. 3) of the device 120 that returns the response 152 is described. The fifth line indicates that the response 152 includes only the HTTP header (that is, does not include the entity body).

例えば、図1の端末110は、ステップS102で応答152を受信すると、応答152の4行目のURIを宛先としてステップS103でHTTP要求を送信する。すると、端末110は、ステップS104で図3のデバイス定義ファイル150を取得することができる。   For example, when receiving the response 152 in step S102, the terminal 110 in FIG. 1 transmits an HTTP request in step S103 with the URI in the fourth line of the response 152 as a destination. Then, the terminal 110 can acquire the device definition file 150 of FIG. 3 in step S104.

さて、図5に示すように、図1のステップS107で送信されるSOAPコマンド153は、具体的にはPOSTメソッドのHTTP要求である。
SOAPコマンド153の1行目は、HTTPのリクエストラインである。1行目には、図3のデバイス定義ファイル150の15行目に記載されたURIが、HTTP要求の宛先として指定されている。
As shown in FIG. 5, the SOAP command 153 transmitted in step S107 in FIG. 1 is specifically an HTTP request for the POST method.
The first line of the SOAP command 153 is an HTTP request line. In the first line, the URI described in the fifteenth line of the device definition file 150 in FIG. 3 is designated as the destination of the HTTP request.

2行目のリクエストヘッダフィールドには、SOAPコマンド153の宛先のホストであるデバイス120の、アドレスとポート番号が指定されている。
3行目は、図3の11〜17行目のように定義されるサービス更新サービス122に対して、SOAPコマンド153の送信元の端末110が、図4の5〜12行目のように定義される「UpdateService」というアクションの実行を命令することを示す。
In the request header field on the second line, the address and port number of the device 120 that is the host of the destination of the SOAP command 153 are specified.
In the third line, the terminal 110 that is the source of the SOAP command 153 is defined as shown in the fifth to twelfth lines in FIG. 4 for the service update service 122 defined as the eleventh to 17th lines in FIG. Indicates that the execution of the action “UpdateService” to be executed is instructed.

4〜5行目は一般的なHTTPヘッダフィールドである。7〜16行目はHTTP要求のエンティティボディであり、7〜16行目に具体的な制御メッセージが記載されている。具体的には、11〜14行目において、「UpdateService」というアクションに与える2つの入力引数が指定されている。   The fourth to fifth lines are general HTTP header fields. Lines 7 to 16 are HTTP request entity bodies, and specific control messages are described in lines 7 to 16. Specifically, in the 11th to 14th lines, two input arguments to be given to the action “UpdateService” are specified.

図4の5〜12行目に示すように、「UpdateService」というアクションは、「argServiceName」と「argServiceUri」という2つの引数をとる。SOAPコマンド153の12行目では、「argServiceName」という引数の値として、ドキュメント表示サービス(つまり、インストール対象の新規サービス123)の名前である「DocViewSrv」という文字列が指定されている。また、13行目では、「argServiceUri」という引数の値として、ドキュメント表示サービスのデータ(つまり、新規サービスプログラム132を含むデータ)が格納された場所のURIが指定されている。   As shown in the 5th to 12th lines in FIG. 4, the action “UpdateService” takes two arguments “argServiceName” and “argServiceUri”. In the 12th line of the SOAP command 153, the character string “DocViewSrv” that is the name of the document display service (that is, the new service 123 to be installed) is specified as the value of the argument “argServiceName”. In the 13th line, the URI of the location where the document display service data (that is, the data including the new service program 132) is stored is designated as the value of the argument “argServiceUri”.

したがって、図1のステップS107でSOAPコマンド153を受信したデバイス120(より具体的には、デバイス120内のサービス更新サービス122)は、SOAPコマンド153の12〜13行目から、インストール対象を認識することができる。すなわち、デバイス120は、SOAPコマンド153の13行目のURIを宛先として、図1のステップS109の要求を送信することができる。また、デバイス120は、当該要求の中に、インストール対象のサービスを識別するサービス名として、SOAPコマンド153の12行目に記載された名前を含めることができる。   Accordingly, the device 120 (more specifically, the service update service 122 in the device 120) that has received the SOAP command 153 in step S107 in FIG. 1 recognizes the installation target from the 12th to 13th lines of the SOAP command 153. be able to. That is, the device 120 can transmit the request in step S109 of FIG. 1 with the URI of the thirteenth line of the SOAP command 153 as a destination. In addition, the device 120 can include the name described in the 12th line of the SOAP command 153 as a service name for identifying the service to be installed in the request.

ところで、図1のステップS107でのコマンドの受信から、ステップS112でのイベント通知までの処理は、デバイス120が図6のフローチャートにしたがって動作することにより、実現される。図6は、サービス追加・更新コマンドの受信に応じてデバイス120が行う処理のフローチャートである。   By the way, the processing from the command reception in step S107 in FIG. 1 to the event notification in step S112 is realized by the device 120 operating according to the flowchart in FIG. FIG. 6 is a flowchart of processing performed by the device 120 in response to reception of a service addition / update command.

まず、ステップS201で、デバイス120のUPnPサービス提供部121が、端末110(より具体的には、端末110内のUPnPコントローラ111)から、図1のステップS107のサービス追加・更新コマンドを受信する。図5のSOAPコマンド153の12〜13行目に示すように、ステップS201で受信されるコマンドは、追加または更新の対象であるサービスの名前とURIを引数とする。UPnPサービス提供部121は、コマンドを受信すると、図1のステップS108のとおり、HTTP応答を返す。   First, in step S201, the UPnP service providing unit 121 of the device 120 receives the service addition / update command in step S107 of FIG. 1 from the terminal 110 (more specifically, the UPnP controller 111 in the terminal 110). As shown in the 12th to 13th lines of the SOAP command 153 in FIG. 5, the command received in step S201 has the name of the service to be added or updated and the URI as arguments. When receiving the command, the UPnP service providing unit 121 returns an HTTP response as shown in step S108 of FIG.

また、UPnPサービス提供部121は、受信されたSOAPコマンド153がサービス更新サービス122に対するコマンドであることを、SOAPコマンド153の1行目から認識することができる。よって、UPnPサービス提供部121はサービス更新サービス122を呼び出す。   The UPnP service providing unit 121 can recognize from the first line of the SOAP command 153 that the received SOAP command 153 is a command for the service update service 122. Therefore, the UPnP service providing unit 121 calls the service update service 122.

すると、次のステップS202でサービス更新サービス122が、通知されたURIにあるサービス管理装置130に対して、通知された名前のサービスを要求する。より具体的には、サービス更新サービス122は、SOAPコマンド153の13行目に記載されたURI(つまり新規サービスプログラム132のURI)を宛先として、12行目の名前で識別されるサービスを要求する。ステップS202の要求は、図1のステップS109に相当する。なお、ステップS202の要求は、任意の形式の要求でよく、例えばHTTP要求であってもよいし、その他の形式の要求であってもよい。   Then, in the next step S202, the service update service 122 requests a service with the notified name from the service management apparatus 130 in the notified URI. More specifically, the service update service 122 requests a service identified by the name on the twelfth line with the URI described in the thirteenth line of the SOAP command 153 (that is, the URI of the new service program 132) as the destination. . The request in step S202 corresponds to step S109 in FIG. Note that the request in step S202 may be a request in an arbitrary format, for example, an HTTP request or a request in another format.

また、図1のステップS110に示すように、サービス更新サービス122は、要求したサービスのデータを、サービス管理装置130から受信する。なお、こうしてステップS202で受信されるデータは、具体的には、例えば、新規サービスプログラム132と、新規サービス123のサービス定義ファイルとを含むデータでもよい。   In addition, as illustrated in step S <b> 110 of FIG. 1, the service update service 122 receives data of the requested service from the service management apparatus 130. Note that the data received in step S202 in this way may specifically be data including the new service program 132 and the service definition file of the new service 123, for example.

受信後、ステップS203においてサービス更新サービス122は、受信したサービスのデータに基づいて、以下の3つの処理を行う。
第1に、サービス更新サービス122は、デバイス120のデバイス定義ファイルを更新する。具体的には、例えば、サービス更新サービス122は、図3の18〜24行目をデバイス定義ファイル150に追加し、更新後のデバイス定義ファイル150をデバイス120の記憶装置に記憶する。
After reception, in step S203, the service update service 122 performs the following three processes based on the received service data.
First, the service update service 122 updates the device definition file of the device 120. Specifically, for example, the service update service 122 adds the 18th to 24th lines in FIG. 3 to the device definition file 150 and stores the updated device definition file 150 in the storage device of the device 120.

第2に、サービス更新サービス122は、受信したサービスのサービス定義ファイルを追加または更新する。全く新規のサービスがデバイス120にインストールされる場合は、インストールするサービスのサービス定義ファイルはデバイス120内にない。そこで、この場合、サービス更新サービス122は、サービス管理装置130から受信したデータに基づき、新たなサービス定義ファイルを作成して保存する。また、デバイス120にインストール済みの既存のサービスの新規バージョンがデバイス120にインストールされる場合(つまり既存のサービスが更新される場合)は、当該既存のサービスのサービス定義ファイルはデバイス120内に既にある。そこで、この場合、サービス更新サービス122は、サービス管理装置130から受信したデータに基づき、既存のサービス定義ファイルを更新する。   Second, the service update service 122 adds or updates the service definition file of the received service. When a completely new service is installed in the device 120, the service definition file of the service to be installed is not in the device 120. Therefore, in this case, the service update service 122 creates and stores a new service definition file based on the data received from the service management device 130. Further, when a new version of an existing service already installed in the device 120 is installed in the device 120 (that is, when the existing service is updated), the service definition file of the existing service already exists in the device 120. . Therefore, in this case, the service update service 122 updates the existing service definition file based on the data received from the service management apparatus 130.

第3に、サービス更新サービス122は、受信したサービスのプログラム(つまり新規サービスプログラム132)をデバイス120にインストールする。
サービス更新サービス122は、以上の3つの処理をステップS203で行った後、ステップS204で、図4の43行目に示す「UpdateTime」という状態変数の値を現在時刻に更新する。ステップS203〜S204は、図1のステップS111に対応する。
Third, the service update service 122 installs the received service program (that is, the new service program 132) in the device 120.
After performing the above three processes in step S203, the service update service 122 updates the value of the state variable “UpdateTime” shown in line 43 of FIG. 4 to the current time in step S204. Steps S203 to S204 correspond to step S111 in FIG.

そして、次のステップS205でサービス更新サービス122は、GENAにより、デバイス120の周辺の端末(例えば、図1では端末110と端末140)に対して、ステップS204で更新した「UpdateTime」という状態変数の値を通知する。ステップS205は図1のステップS112に対応する。   Then, in the next step S205, the service update service 122 uses the GENA to update the state variable “UpdateTime” updated in step S204 to the terminals around the device 120 (for example, the terminal 110 and the terminal 140 in FIG. 1). Notify the value. Step S205 corresponds to step S112 in FIG.

以上説明した第1実施形態によれば、端末110は、たとえ所望のサービスを既に提供しているデバイスを見つけられなくても、所望のサービスをサービス更新サービス122に通知することで、所望のサービスを受けられるようになる。なぜなら、サービス更新サービス122が、通知されたサービスのプログラム(つまり新規サービスプログラム132)をデバイス120にインストールし、デバイス120が上記所望のサービス(つまり新規サービス123)の提供を開始するからである。   According to the first embodiment described above, the terminal 110 notifies the service update service 122 of the desired service even if the terminal 110 cannot find a device that already provides the desired service. Can receive. This is because the service update service 122 installs the notified service program (that is, the new service program 132) in the device 120, and the device 120 starts providing the desired service (that is, the new service 123).

このように、第1実施形態によれば、UPnPの新規サービスプログラム132が動的にデバイス120に導入されるので、ユーザの利便性が高まる。以上のような第1実施形態の利点についてさらに詳しく説明すれば、以下のとおりである。   Thus, according to the first embodiment, since the UPnP new service program 132 is dynamically introduced into the device 120, the convenience of the user is enhanced. The advantages of the first embodiment as described above will be described in more detail as follows.

例えば、比較例として、第1のサービスを提供する第1のデバイスが、第2のデバイスが提供する第2のサービスを利用して第1のサービスを拡張し、拡張したサービスを提供する技術を想定する。この比較例では、第1のデバイスはいかようにでもサービスを拡張することができるわけではない。つまり、この比較例において実現可能な機能拡張は、第1のデバイスからアクセス可能な既存の第2のデバイスがどのようなサービスを提供するかによって、限定されてしまう。   For example, as a comparative example, a technology in which a first device that provides a first service extends a first service by using a second service provided by a second device and provides an extended service. Suppose. In this comparative example, the first device cannot expand the service in any way. That is, the function expansion that can be realized in this comparative example is limited by what service the existing second device accessible from the first device provides.

また、この比較例における機能拡張では、ユーザが今どのサービスの利用を望んでいるかという、ユーザの要望に柔軟に対応することができない。つまり、この比較例では、第1のデバイスの外部から、ユーザの要望に応じた機能拡張を行うように第1のデバイスに命令することができない。あるいは、たとえユーザの所望するサービスを第1のデバイスに通知することができたとしても、この比較例では、実現可能な機能拡張が限定的なので、ユーザの要望に対処不能なことが多い。   In addition, in the function expansion in this comparative example, it is not possible to flexibly respond to the user's request as to which service the user wants to use now. That is, in this comparative example, it is not possible to instruct the first device from the outside of the first device to perform function expansion according to the user's request. Alternatively, even if the service desired by the user can be notified to the first device, in this comparative example, the feasible function expansion is limited, and it is often impossible to cope with the user's request.

つまり、この比較例によれば、UPnPのサービスの動的な導入あるいは更新が可能ではあるが、非常に限定的である。
他方、あるデバイス(例えばデバイス120)が発売された時点では予想されていなかったような、新たなサービスが、新たに生まれることがあり得る。つまり、ユーザが将来どのようなサービスの利用を望むようになるかを、予め知ることはできない。
That is, according to this comparative example, UPnP service can be dynamically introduced or updated, but it is very limited.
On the other hand, new services may be born that were not anticipated when a device (eg, device 120) was released. In other words, it is impossible to know in advance what service the user wants to use in the future.

また、既存のサービスに関しても、もちろん、世の中のあらゆるデバイスが当該既存のサービスを提供しているわけではない。そして、当該既存のサービスを提供しているデバイスが近くにない状況下で、ユーザが当該既存のサービスを利用したくなることもあり得る。   Also, regarding existing services, of course, not all devices in the world provide such existing services. In a situation where there is no device that provides the existing service nearby, the user may want to use the existing service.

したがって、「ユーザがあるサービスを利用したいと思ったときに、当該サービスを既に提供しているデバイスがユーザの近くに存在していない」という状況は、ユーザが望むサービスが全く新規であるか既存のものであるかを問わず、起こり得る。そのような状況下でユーザが所望のサービスを受けられるようにするための、動的なサービスの導入は、ユーザの利便性を高めるうえで非常に有益である。   Therefore, when a user wants to use a service, there is no device that already provides that service near the user. It can happen regardless of whether it is. In such a situation, the introduction of a dynamic service so that the user can receive a desired service is very useful for improving the convenience of the user.

ここで、ユーザが、ある任意のサービスの利用を望んだと仮定する。また、ユーザが望んだ当該サービスは、ユーザの近くに存在する既存のデバイス(例えばデバイス120)のハードウェア以外の新たなハードウェアを、必要としないものとする。つまり、もし当該既存のデバイスが、ソフトウェアのインストールが可能な種類のものであれば、当該既存のデバイスは、ユーザが望むサービスを提供する潜在的可能性を持っている。   Here, it is assumed that the user wishes to use an arbitrary service. In addition, it is assumed that the service desired by the user does not require new hardware other than the hardware of an existing device (for example, the device 120) that exists near the user. That is, if the existing device is of a type that allows software installation, the existing device has the potential to provide the service that the user desires.

そして、近年では、汎用的なPCのみならず、携帯電話、スマートフォン、タブレット端末、PDAなどの携帯端末も、製造工場からの出荷後のソフトウェアのインストールが可能である。また、プリンタ、プロジェクタ、テレビ、録画装置、照明装置などの種々の装置も、製造工場からの出荷後のソフトウェアのインストールが可能な種類のものが増えてきた。   In recent years, not only general-purpose PCs but also mobile terminals such as mobile phones, smartphones, tablet terminals, and PDAs can be installed with software after shipment from a manufacturing factory. In addition, various types of devices such as printers, projectors, televisions, recording devices, lighting devices, and the like that can be installed with software after shipment from a manufacturing factory have increased.

つまり、ソフトウェアのインストールによる機能拡張が可能なデバイスの普及が進んできている。そして、そのようなデバイスの普及により、デバイスが任意のサービスを新たに提供するための基盤は、整いつつある。しかし、そのような基盤は、十分に活用されているとはまだ言い難く、UPnPの機能拡張も、上記の比較例のように限定的なレベルにとどまっている。   In other words, devices that can be expanded by installing software are becoming popular. And with the widespread use of such devices, the basis for new provision of arbitrary services by devices is being prepared. However, it is still difficult to say that such a base is fully utilized, and the UPnP function expansion is limited to a limited level as in the above comparative example.

それに対し、第1実施形態によれば、予めサービス管理装置130に新規サービスプログラム132が格納されており、デバイス120がサービス更新サービス122を提供してさえいれば、ユーザは、端末110を介して任意の新規サービス123を受けられる。より正確には、ユーザが望む新規サービス123が、デバイス120の既存のハードウェア以外のハードウェアを必要とせず、ソフトウェアにより実現可能なものであれば、ユーザは端末110を介してデバイス120から任意の新規サービス123を受けられる。   On the other hand, according to the first embodiment, the new service program 132 is stored in the service management apparatus 130 in advance, and as long as the device 120 provides the service update service 122, the user can connect via the terminal 110. Any new service 123 can be received. More precisely, if the new service 123 desired by the user does not require hardware other than the existing hardware of the device 120 and can be realized by software, the user can arbitrarily select from the device 120 via the terminal 110. New service 123 can be received.

このように、第1実施形態によれば、非常に柔軟に、UPnPのサービスの動的な更新を行うことが可能となる。したがって、第1実施形態は、ユーザの利便性向上に資するところが大きい。   As described above, according to the first embodiment, UPnP service can be dynamically updated very flexibly. Therefore, the first embodiment greatly contributes to improvement of user convenience.

また、第1実施形態のサービス更新サービス122は、UPnPのサービスの1種である。サービス更新サービス122がUPnPのサービスであることは、以下のような2つの利点をもたらす。   The service update service 122 of the first embodiment is a type of UPnP service. The service update service 122 being a UPnP service brings the following two advantages.

第1に、図1のステップS101〜S108に示すように、端末110は、UPnPのプロトコルにしたがって、サービス更新サービス122に対して新規サービス123のインストールを命じることができる。つまり、端末110は、新規の特殊なプロトコルを使用する必要がない。   First, as shown in steps S101 to S108 in FIG. 1, the terminal 110 can command the service update service 122 to install a new service 123 according to the UPnP protocol. That is, the terminal 110 does not need to use a new special protocol.

第2に、サービス更新サービス122を多くのデバイス120に組み込むことが容易であり、利便性向上に有益なサービス更新サービス122の普及が促進される。理由は次のとおりである。   Second, it is easy to incorporate the service update service 122 into many devices 120, and the spread of the service update service 122 useful for improving convenience is promoted. The reason is as follows.

種々のOS(Operating System)用にUPnPに関するライブラリが開発されている。そして、UPnPに関する機能は、ライブラリを用いて実装されることが多い。ここで、サービス更新サービス122はUPnPのサービスの1種なので、UPnP用のライブラリの中に、サービス更新サービス122を実現するためのプログラムモジュール(例えばライブラリ関数)を組み込むことが可能である。   Libraries for UPnP have been developed for various operating systems (OSs). And, functions related to UPnP are often implemented using a library. Here, since the service update service 122 is a type of UPnP service, a program module (for example, a library function) for realizing the service update service 122 can be incorporated into the UPnP library.

すると、広く使われるライブラリを介して、多くのデバイス120にサービス更新サービス122を実装することが可能となる。多くのデバイス120においてサービス更新サービス122が実装されていれば、図1のステップS101の探索に対して、サービス更新サービス122を提供するデバイス120が少なくとも1台は見つかる蓋然性も高まる。その結果、ユーザの利便性も向上する。   Then, it becomes possible to implement the service update service 122 in many devices 120 via a widely used library. If the service update service 122 is implemented in many devices 120, it is more likely that at least one device 120 that provides the service update service 122 is found in the search in step S101 of FIG. As a result, user convenience is improved.

続いて、第2実施形態について説明する。第2実施形態は、コントローラの動的な更新に関する。サービスだけでなくコントローラも動的に更新することが可能であれば、ユーザの利便性が大きく向上する。   Next, the second embodiment will be described. The second embodiment relates to dynamic update of the controller. If not only the service but also the controller can be updated dynamically, the convenience for the user is greatly improved.

例えば、あるサービスを提供するデバイスが存在する環境において、ユーザは当該サービスを利用したいかもしれないし、または、ユーザの端末で動作するアプリケーションが、当該サービスを利用しようとするかもしれない。しかし、ユーザの端末には、当該サービスに対応するコントローラがインストールされていないかもしれない。この場合、もし端末に動的にコントローラをインストールすることができれば、ユーザは所望のサービスを受けられるようになり、利便性が向上する。   For example, in an environment where a device that provides a service exists, the user may want to use the service, or an application running on the user's terminal may try to use the service. However, the controller corresponding to the service may not be installed in the user terminal. In this case, if the controller can be dynamically installed in the terminal, the user can receive a desired service and convenience is improved.

あるいは、ユーザの周囲には1つまたは複数のデバイスがあり、ユーザはそれらのデバイスがそれぞれどのようなサービスを提供するのかを知らないかもしれない。そこで、ユーザは、周囲のデバイスがどのようなサービスを提供するのかを調べるよう、端末に指示を与えるかもしれない。その結果、ユーザは使いたいサービスを見つけるかもしれないが、見つけたサービスを利用するためのコントローラは、ユーザの端末にはインストールされていないかもしれない。この場合も、もし端末に動的にコントローラをインストールすることができれば、ユーザは所望のサービスを受けられるようになり、利便性が向上する。   Alternatively, there may be one or more devices around the user, and the user may not know what services each of those devices provides. Therefore, the user may instruct the terminal to check what service the surrounding device provides. As a result, the user may find the service he / she wants to use, but the controller for using the found service may not be installed on the user's terminal. Also in this case, if the controller can be dynamically installed in the terminal, the user can receive a desired service and convenience is improved.

そこで、第2実施形態では、コントローラの動的な更新が行われる。以下、図7〜12を参照して第2実施形態について詳しく説明する。
図7は、第2実施形態の動作シーケンス図である。また、図8は、第2実施形態のシステム構成図である。図8に示すように、第2実施形態のシステム200は、端末210とデバイス220とコントローラ管理装置230を含む。システム200内には端末210以外の端末がさらにあってもよい。図7は、以上の端末210とデバイス220とコントローラ管理装置230による動作シーケンスの例を示す。
Therefore, in the second embodiment, the controller is dynamically updated. Hereinafter, the second embodiment will be described in detail with reference to FIGS.
FIG. 7 is an operation sequence diagram of the second embodiment. FIG. 8 is a system configuration diagram of the second embodiment. As illustrated in FIG. 8, the system 200 according to the second embodiment includes a terminal 210, a device 220, and a controller management device 230. There may be further terminals other than the terminal 210 in the system 200. FIG. 7 shows an example of an operation sequence by the terminal 210, the device 220, and the controller management apparatus 230 described above.

端末210は、通信機能とUPnPのコントローラ機能を有し、かつ、ソフトウェアをインストールすることが可能であれば、どのような種類の端末であってもよい。例えば、端末210は、携帯電話、スマートフォン、タブレット端末、PDA、ノートPCのような携帯端末であってもよいし、デスクトップPCであってもよい。   The terminal 210 may be any type of terminal as long as it has a communication function and a UPnP controller function and can install software. For example, the terminal 210 may be a mobile terminal such as a mobile phone, a smartphone, a tablet terminal, a PDA, or a notebook PC, or a desktop PC.

デバイス220は、通信機能とUPnPのサービス提供機能を有していれば、どのようなデバイスでもよい。第1実施形態のデバイス120とは異なり、第2実施形態のデバイス220は、ソフトウェアのインストールが不可能なものであってもよい。例えば、携帯電話、スマートフォン、タブレット端末、PDA、ノートPC、デスクトップPC、プリンタ、プロジェクタ、テレビ、録画装置、照明装置など、様々な装置がデバイス220として利用される可能性がある。なお、端末210とデバイス220は、ネットワークを介して互いに通信することができる。   The device 220 may be any device as long as it has a communication function and a UPnP service providing function. Unlike the device 120 of the first embodiment, the device 220 of the second embodiment may not be able to install software. For example, various devices such as a mobile phone, a smartphone, a tablet terminal, a PDA, a notebook PC, a desktop PC, a printer, a projector, a television, a recording device, and a lighting device may be used as the device 220. Note that the terminal 210 and the device 220 can communicate with each other via a network.

コントローラ管理装置230は、例えば、ネットワークを介して端末210と通信可能なコンピュータであってもよい。あるいは、デバイス220がコントローラ管理装置230を含んでいてもよい。   The controller management device 230 may be a computer that can communicate with the terminal 210 via a network, for example. Alternatively, the device 220 may include the controller management device 230.

端末210とデバイス220とコントローラ管理装置230のさらなる詳細は、後ほど図8を参照して説明することにして、先に図7の動作シーケンスについて説明する。なお、先に例示したとおり、端末210に動的にコントローラをインストールすることができれば好ましい状況はいくつかある。しかし、以下では説明の簡単化のため、次の2つの仮定が成り立つ状況における動作シーケンスについて説明する。   Further details of the terminal 210, the device 220, and the controller management apparatus 230 will be described later with reference to FIG. 8, and the operation sequence of FIG. 7 will be described first. Note that, as exemplified above, there are several preferable situations where a controller can be dynamically installed in the terminal 210. However, for the sake of simplicity, an operation sequence in a situation where the following two assumptions are satisfied will be described below.

・ユーザが、ある1つのUPnPサービスを利用したい旨を示す入力を、端末210に与えた。または、端末210上で動作するアプリケーションが、ある1つのUPnPサービスを利用しようとした。
・しかし、上記の「ある1つのUPnPサービス」(以下では便宜上、「対象サービス」ともいう)に対して制御メッセージを送る機能を持つコントローラは、端末210にはインストールされていない。
The user gives an input to the terminal 210 indicating that he / she wants to use a certain UPnP service. Alternatively, an application operating on the terminal 210 tries to use a certain UPnP service.
However, a controller having a function of sending a control message to the above “one UPnP service” (hereinafter also referred to as “target service” for convenience) is not installed in the terminal 210.

さて、図7のステップS301では、端末210が、M-searchメッセージをマルチキャストすることにより、対象サービスを探索する。
図7の例では、デバイス220が対象サービスを提供しているものとする。したがって、ステップS302で、デバイス220が端末210に応答(具体的には、「OK」という意味を示す「200」というステータスコードを含むHTTP応答)を返す。
Now, in step S301 in FIG. 7, the terminal 210 searches for the target service by multicasting the M-search message.
In the example of FIG. 7, it is assumed that the device 220 provides the target service. Accordingly, in step S302, the device 220 returns a response (specifically, an HTTP response including a status code “200” indicating the meaning of “OK”) to the terminal 210.

端末210は、ステップS302の応答を受信すると、次に、ステップS303でデバイス220のデバイス定義を要求する。すると、デバイス220は、ステップS304でデバイス定義ファイルを端末210に送信する。   Upon receiving the response in step S302, the terminal 210 next requests the device definition of the device 220 in step S303. Then, the device 220 transmits a device definition file to the terminal 210 in step S304.

端末210は、デバイス定義ファイルを受信すると、対象サービスにアクセスするための情報を得ることができる。そこで、端末210は、次のステップS305で、対象サービスのサービス定義を要求する。すると、デバイス220は、ステップS306で対象サービスのサービス定義ファイルを送信する。   Upon receiving the device definition file, the terminal 210 can obtain information for accessing the target service. Accordingly, the terminal 210 requests a service definition of the target service in the next step S305. Then, the device 220 transmits the service definition file of the target service in step S306.

なお、ステップS301〜S306は、図1のステップS101〜S106と類似なので、上記の説明では詳細を割愛した。また、端末210は以上のようにして、デバイス220の提供する対象サービスを検出し、対象サービスに関する情報を取得することができる。   Note that steps S301 to S306 are similar to steps S101 to S106 of FIG. 1, and thus the details are omitted in the above description. Further, the terminal 210 can detect the target service provided by the device 220 and acquire information on the target service as described above.

そして、端末210は、次のステップS307で、コントローラ管理装置230に対して、対象サービスに対応するコントローラを要求する。ステップS307の要求は、対象サービスを識別するサービス識別情報(例えばサービスのIDまたは名前)を含む。つまり、ステップS307の要求は、サービス識別情報の通知でもある。また、対象サービスに対応するコントローラとは、具体的には、対象サービスを利用するために対象サービスに対して制御メッセージを送る機能を持つUPnPのコントローラである。   In step S307, the terminal 210 requests the controller management device 230 for a controller corresponding to the target service. The request in step S307 includes service identification information (for example, service ID or name) for identifying the target service. That is, the request in step S307 is also notification of service identification information. The controller corresponding to the target service is specifically a UPnP controller having a function of sending a control message to the target service in order to use the target service.

ところで、コントローラ管理装置230は、1つ以上のサービスのそれぞれに対応するコントローラを実現するプログラムを、当該サービスを識別するサービス識別情報と対応づけて格納している。よって、コントローラ管理装置230は、ステップS307の要求を受信すると、通知されたサービス識別情報を用いて、対象サービスに対応するコントローラを実現するプログラムを検索する。そして、コントローラ管理装置230は、検索により見つけたプログラムを、ステップS308で端末210に送信する。   By the way, the controller management device 230 stores a program for realizing a controller corresponding to each of one or more services in association with service identification information for identifying the service. Therefore, when receiving the request in step S307, the controller management device 230 searches for a program that realizes the controller corresponding to the target service, using the notified service identification information. Then, the controller management device 230 transmits the program found by the search to the terminal 210 in step S308.

すると、端末210は、対象サービスに対応するコントローラのプログラムを受信する。そして、端末210は、ステップS309で、受信したプログラムを端末210自身にインストールする。   Then, the terminal 210 receives a controller program corresponding to the target service. In step S309, the terminal 210 installs the received program on the terminal 210 itself.

以上のようにして、端末210には、所望の対象サービスに対応するコントローラのプログラムが、動的にインストールされる。よって、図7には示されていないが、端末210は、今後、インストールされたコントローラから制御メッセージ(具体的にはSOAPコマンド)を送信することにより、対象サービスを利用することができる。   As described above, the controller program corresponding to the desired target service is dynamically installed in the terminal 210. Therefore, although not shown in FIG. 7, the terminal 210 can use the target service by transmitting a control message (specifically, a SOAP command) from the installed controller in the future.

続いて、図8を参照して、端末210とデバイス220とコントローラ管理装置230の詳細について説明する。
図8に示すように、端末210にはUPnP制御部211が含まれる。UPnP制御部211は、1つ以上のコントローラを含むことができるが、例えば図7のステップS301の時点では、UPnP制御部211は1つもコントローラを含んでいなくてもよい。
Next, details of the terminal 210, the device 220, and the controller management apparatus 230 will be described with reference to FIG.
As illustrated in FIG. 8, the terminal 210 includes a UPnP control unit 211. Although the UPnP control unit 211 can include one or more controllers, for example, at the time of step S301 in FIG. 7, the UPnP control unit 211 may not include any controller.

また、端末210は、指定されたUPnPのサービスに対応するコントローラを追加または更新するための、コントローラ更新サービス212を提供する。なお、全く新たなコントローラを追加することも、既存のコントローラを新たなバージョンのコントローラに更新することも、コントローラのプログラムのインストールにより同様に実現される。したがって、以下ではコントローラの追加と更新を区別しないことがある。   The terminal 210 also provides a controller update service 212 for adding or updating a controller corresponding to the designated UPnP service. Note that adding a completely new controller and updating an existing controller to a new version of the controller are realized in the same manner by installing a controller program. Therefore, the following may not distinguish between controller addition and update.

また、第2実施形態では、コントローラ更新サービス212がUPnPのサービスとして実装されている。したがって、コントローラ更新サービス212は、図8には不図示の他の端末のコントローラから、対象サービスを指定する制御メッセージを受け取ることで、対象サービスを決めてもよい。あるいは、端末210のUPnP制御部211の中に、コントローラ更新サービス212を利用するための不図示のコントローラがさらに実装されていてもよい。そして、当該不図示のコントローラが、コントローラ更新サービス212に対して、対象サービスを指定する制御メッセージを与えてもよい。   In the second embodiment, the controller update service 212 is implemented as a UPnP service. Therefore, the controller update service 212 may determine the target service by receiving a control message designating the target service from the controller of another terminal not shown in FIG. Alternatively, a controller (not shown) for using the controller update service 212 may be further installed in the UPnP control unit 211 of the terminal 210. Then, the controller (not shown) may give a control message specifying the target service to the controller update service 212.

しかし、実施形態によっては、「コントローラ更新サービス212と同様の機能を持つものの、UPnPのサービスではない」といったプログラムモジュールが、コントローラ更新サービス212の代わりに使われてもよい。   However, in some embodiments, a program module that has the same function as the controller update service 212 but is not a UPnP service may be used instead of the controller update service 212.

ところで、図7のステップS301の探索、ステップS302の応答の受信、ステップS303の要求、ステップS304の受信、ステップS305の要求、およびステップS306の受信は、具体的には、コントローラ更新サービス212により実行される。また、ステップS307の要求、ステップS308の受信、およびステップS309のインストールも、コントローラ更新サービス212により実行される。   By the way, the search in step S301 in FIG. 7, the reception of the response in step S302, the request in step S303, the reception in step S304, the request in step S305, and the reception in step S306 are specifically executed by the controller update service 212. Is done. Further, the request of step S307, the reception of step S308, and the installation of step S309 are also executed by the controller update service 212.

そして、ステップS309のインストールの結果として、UPnP制御部211には、対象サービスに対応する新規コントローラ213がインストールされる。図8には、新規コントローラ213が破線で示されている。   As a result of the installation in step S309, a new controller 213 corresponding to the target service is installed in the UPnP control unit 211. In FIG. 8, the new controller 213 is indicated by a broken line.

また、デバイス220は、UPnPサービス提供部221を含む。UPnPサービス提供部221は、上記の対象サービスであるサービス222を提供する。
さて、コントローラ管理装置230は格納部231を有する。格納部231には、サービス222に対応する新規コントローラ213を実現するためのプログラムである新規コントローラプログラム232が、サービス222を識別する情報と対応づけられて、格納されている。
The device 220 includes a UPnP service providing unit 221. The UPnP service providing unit 221 provides the service 222 that is the target service.
The controller management device 230 has a storage unit 231. In the storage unit 231, a new controller program 232 that is a program for realizing the new controller 213 corresponding to the service 222 is stored in association with information for identifying the service 222.

新規コントローラプログラム232は、図7のステップS308で送信され、ステップS309で端末210にインストールされる。そして、インストールの結果として、端末210は、新規コントローラ213を介してサービス222を利用することができるようになる。   The new controller program 232 is transmitted in step S308 of FIG. 7, and is installed in the terminal 210 in step S309. As a result of the installation, the terminal 210 can use the service 222 via the new controller 213.

なお、簡単化のため、図8には1つの新規コントローラプログラム232のみが示されている。しかし、格納部231は、複数のサービスに対応する複数のコントローラそれぞれのプログラムを格納していてもよい。つまり、格納部231は、様々なコントローラのプログラムのレポジトリであってもよい。   For simplification, only one new controller program 232 is shown in FIG. However, the storage unit 231 may store a program for each of a plurality of controllers corresponding to a plurality of services. That is, the storage unit 231 may be a repository of programs for various controllers.

また、コントローラ管理装置230は、指定されたサービスに対応するコントローラを決定するコントローラ決定部233を含む。コントローラ決定部233は、具体的には、条件テーブル234を参照することで、指定されたサービスに対応するコントローラを決定する。   Further, the controller management device 230 includes a controller determination unit 233 that determines a controller corresponding to the designated service. Specifically, the controller determination unit 233 determines a controller corresponding to the designated service by referring to the condition table 234.

図9に、条件テーブル234の具体例を示す。図9に示すように、条件テーブル234は、サービスとコントローラを対応づけるテーブルである。なお、図9では、理解を容易にするために、サービスとコントローラがそれぞれ名前で表現されている。しかし、条件テーブル234は、例えば、サービスのIDとコントローラのIDとを対応づけるテーブルであってもよい。IDとしては、例えば、UUID(Universally Unique Identifier)が利用されてもよい。   FIG. 9 shows a specific example of the condition table 234. As shown in FIG. 9, the condition table 234 is a table that associates services with controllers. In FIG. 9, the service and the controller are represented by names in order to facilitate understanding. However, the condition table 234 may be, for example, a table that associates service IDs with controller IDs. For example, a UUID (Universally Unique Identifier) may be used as the ID.

図9の例では、ドキュメント表示サービスにドキュメントページめくりコントローラが対応づけられている。また、照明ON/OFFサービスに、照明ON/OFFリモコンコントローラが対応づけられている。そして、ビデオ録画サービスに、ビデオリモコンコントローラが対応づけられている。   In the example of FIG. 9, a document page turning controller is associated with the document display service. Also, an illumination ON / OFF remote controller controller is associated with the illumination ON / OFF service. A video remote controller is associated with the video recording service.

したがって、例えば、対象サービス(すなわち図8のサービス222)がビデオ録画サービスの場合、図7のステップS307の要求では、ビデオ録画サービスの識別情報(例えば、名前またはID)が指定される。すると、コントローラ決定部233は、条件テーブル234を参照し、指定されたビデオ録画サービスに対応づけられているコントローラを検索する。   Therefore, for example, when the target service (that is, the service 222 in FIG. 8) is a video recording service, identification information (for example, name or ID) of the video recording service is specified in the request in step S307 in FIG. Then, the controller determining unit 233 refers to the condition table 234 and searches for a controller associated with the designated video recording service.

検索の結果、コントローラ決定部233は、「端末210に送信する対象のプログラムは、ビデオリモコンコントローラのプログラムである」と決定する。コントローラ決定部233による決定にしたがって、コントローラ管理装置230は、図7のステップS308で、格納部231に格納されているビデオリモコンコントローラのプログラムを送信する。   As a result of the search, the controller determination unit 233 determines that “the program to be transmitted to the terminal 210 is a program of the video remote controller”. According to the determination by the controller determination unit 233, the controller management device 230 transmits the video remote controller controller program stored in the storage unit 231 in step S308 of FIG.

以上のように、コントローラ管理装置230では、条件テーブル234により、各コントローラのプログラムが、対応するサービスの識別情報と対応づけられている。しかし、実施形態によっては、例えば、対応するサービスの識別情報を含むパスで示されるフォルダにコントローラのプログラムを格納するなどの、他の方法による対応づけが採用されてもよい。   As described above, in the controller management device 230, the program of each controller is associated with the identification information of the corresponding service by the condition table 234. However, in some embodiments, for example, association by another method such as storing a controller program in a folder indicated by a path including identification information of a corresponding service may be employed.

さて、上記のとおり第2実施形態では、図8のコントローラ更新サービス212は、UPnPのサービスの1種である。よって、コントローラ更新サービス212のインストールされた端末210に関するデバイス定義ファイルには、コントローラ更新サービス212に関する情報が含まれる。また、端末210は、デバイス定義ファイルだけでなく、コントローラ更新サービス212に関するサービス定義ファイルも格納している。以下、図10〜11を参照して、これらのデバイス定義ファイルとサービス定義ファイルの具体例について説明する。   As described above, in the second embodiment, the controller update service 212 in FIG. 8 is one type of UPnP service. Therefore, the device definition file related to the terminal 210 in which the controller update service 212 is installed includes information related to the controller update service 212. Further, the terminal 210 stores not only the device definition file but also a service definition file related to the controller update service 212. Hereinafter, specific examples of the device definition file and the service definition file will be described with reference to FIGS.

図10は、端末210に関するデバイス定義ファイルの例である。図10のデバイス定義ファイル240において、5〜9行目には、デバイス220全体に関する情報が記載されている。そして、10〜18行目には、デバイス220が提供するサービスのリストが記載されている。   FIG. 10 is an example of a device definition file related to the terminal 210. In the device definition file 240 of FIG. 10, information about the entire device 220 is described in the fifth to ninth lines. In the 10th to 18th lines, a list of services provided by the device 220 is described.

デバイス定義ファイル240の例では、10〜18行目のリストには、1つのサービス(すなわちコントローラ更新サービス212)の情報のみが記載されている。具体的には、12行目に、コントローラ更新サービス212の種類が記載されており、13行目に、コントローラ更新サービス212のIDが記載されている。また、14行目には、コントローラ更新サービス212のサービス定義ファイルのある場所のURIが記載されている。   In the example of the device definition file 240, only the information of one service (that is, the controller update service 212) is described in the list on the 10th to 18th lines. Specifically, the type of the controller update service 212 is described on the 12th line, and the ID of the controller update service 212 is described on the 13th line. The 14th line describes the URI where the service definition file of the controller update service 212 is located.

そして、コントローラ更新サービス212は、外部から制御メッセージ(具体的にはSOAPコマンド)を受け取ることもできる。15行目には、このようなコントローラ更新サービス212に対する制御メッセージの宛先のURIが記載されている。さらに、16行目には、コントローラ更新サービス212の状態変数についての購読要求の宛先のURIが記載されている。   The controller update service 212 can also receive a control message (specifically, a SOAP command) from the outside. In the 15th line, the URI of the destination of the control message for such a controller update service 212 is described. Further, the 16th line describes the URI of the destination of the subscription request for the state variable of the controller update service 212.

次に、図11を参照して、コントローラ更新サービス212のサービス定義ファイルの詳細について説明する。なお、説明の都合上、図11には、第2実施形態では使われない状態変数についての定義も含むサービス定義ファイル241が例示されている。具体的には、25〜26行目の「Listening」という状態変数は、第2実施形態では使われず、第4実施形態で使われる。よって、ここでは25〜26行目の説明は省略する。また、特に混乱のおそれはないので、以下の第2実施形態の説明における「サービス定義ファイル241」という用語は、25〜26行目のない状態のサービス定義ファイルを指すものとする。   Next, the details of the service definition file of the controller update service 212 will be described with reference to FIG. For convenience of explanation, FIG. 11 illustrates a service definition file 241 that also includes definitions for state variables that are not used in the second embodiment. Specifically, the state variable “Listening” in the 25th to 26th lines is not used in the second embodiment, but is used in the fourth embodiment. Therefore, the description of the 25th to 26th lines is omitted here. In addition, since there is no fear of confusion, the term “service definition file 241” in the following description of the second embodiment refers to a service definition file in a state without the 25th to 26th lines.

さて、サービス定義ファイル241は、図10のデバイス定義ファイル240の14行目に記載されたURIで識別される場所(具体的には端末210内の記憶装置)に記憶されている。   The service definition file 241 is stored in a location (specifically, a storage device in the terminal 210) identified by the URI described in the 14th line of the device definition file 240 in FIG.

4〜19行目には、コントローラ更新サービス212に関して定義されているアクションのリストが記載されている。
具体的には、5〜12行目では、コントローラの追加および更新用の、「UpdateController」という名前のアクションが定義されている。このアクションは2つの入力引数をとる。
In the 4th to 19th lines, a list of actions defined for the controller update service 212 is described.
Specifically, in the 5th to 12th lines, an action named “UpdateController” for adding and updating a controller is defined. This action takes two input arguments.

1番目の引数は、「argServiceName」という名前であり、追加または更新の対象のコントローラに対応するサービスを識別するための識別情報(例えばサービスの名前)を表す。また、この「argServiceName」という引数は、後述の「ServiceName」という状態変数と関係しており、具体的には、コントローラ更新サービス212は、「argServiceName」という引数に指定された値を「ServiceName」という状態変数に代入する。   The first argument is the name “argServiceName” and represents identification information (for example, the name of the service) for identifying the service corresponding to the controller to be added or updated. Further, the argument “argServiceName” is related to a state variable “ServiceName” described later. Specifically, the controller update service 212 sets the value specified in the argument “argServiceName” as “ServiceName”. Assign to a state variable.

2番目の引数は、「argServerUri」という名前であり、追加または更新の対象のコントローラのデータ(つまりコントローラのプログラムを含むデータ)が記憶されている場所を示す。具体的には、コントローラ管理装置230のURIが、「argServerUri」という引数として指定される。なお、端末210にとって当該URIは既知である。   The second argument is named “argServerUri” and indicates the location where the controller data to be added or updated (that is, the data including the controller program) is stored. Specifically, the URI of the controller management device 230 is specified as an argument “argServerUri”. The URI is known to the terminal 210.

また、13〜18行目では、コントローラ削除用の、「DeleteController」という名前のアクションが定義されている。なお、「DeleteController」というアクションは省略可能であり、実施形態によっては、コントローラ更新サービス212がコントローラの削除機能を持たなくてもよい。   In the 13th to 18th lines, an action named “DeleteController” for deleting a controller is defined. Note that the action “DeleteController” can be omitted, and the controller update service 212 may not have a controller deletion function in some embodiments.

図11の例では、「DeleteController」というアクションは、「argServiceName」という名前の1つの入力引数をとる。この引数は、削除対象のコントローラに対応するサービスを識別するための識別情報(例えばサービスの名前)を表す。また、この引数も、「ServiceName」という状態変数と関係しており、具体的には、コントローラ更新サービス212は、「argServiceName」という引数に指定された値を「ServiceName」という状態変数に代入する。   In the example of FIG. 11, the action “DeleteController” takes one input argument named “argServiceName”. This argument represents identification information (for example, the name of the service) for identifying the service corresponding to the controller to be deleted. This argument is also related to the state variable “ServiceName”. Specifically, the controller update service 212 assigns the value specified in the argument “argServiceName” to the state variable “ServiceName”.

また、20〜27行目には、コントローラ更新サービス212に関して定義されている状態変数のリストが記載されている。
具体的には、21〜22行目には、「ServiceName」という名前の文字列型の状態変数が定義されている。「ServiceName」という状態変数は、コントローラ更新サービス212が最後に追加、更新、または削除したコントローラに対応するサービスの識別情報(例えばサービスの名前)を示す。
In the 20th to 27th lines, a list of state variables defined for the controller update service 212 is described.
Specifically, in the 21st to 22nd lines, a character string type state variable named “ServiceName” is defined. The state variable “ServiceName” indicates identification information (for example, the name of the service) of the service corresponding to the controller added, updated, or deleted last by the controller update service 212.

そして、23〜24行目には、「ServerUri」という名前のURI型の状態変数が定義されている。「ServerUri」という状態変数は、コントローラ更新サービス212が最後に追加、更新、または削除したコントローラのプログラムがどこから取得されたのかを示す。   In the 23rd to 24th lines, a URI type state variable named “ServerUri” is defined. The state variable “ServerUri” indicates from where the controller program last added, updated, or deleted by the controller update service 212 is acquired.

25〜26行目については、第4実施形態とともに後述する。
ところで、図7のステップS301〜S309までの処理は、端末210が図12のフローチャートにしたがって動作することにより、実現される。
The 25th to 26th lines will be described later together with the fourth embodiment.
By the way, the processing from step S301 to S309 in FIG. 7 is realized by the terminal 210 operating according to the flowchart in FIG.

まず、ステップS401で、コントローラ更新サービス212が、図7のステップS301のようなM-searchメッセージのマルチキャストにより、端末210の周辺にあるデバイスのUPnPサービス(つまり、上記の対象サービス)を検索する。上記のとおり、対象サービスは、何らかの方法により決められているものとする。   First, in step S401, the controller update service 212 searches for UPnP services of devices in the vicinity of the terminal 210 (that is, the above-described target service) by multicast of the M-search message as in step S301 in FIG. As described above, it is assumed that the target service is determined by some method.

もし、例えばデバイス220のように、対象サービスを提供するデバイスがあれば、コントローラ更新サービス212は図7のステップS302のような応答を受信する。この場合、コントローラ更新サービス212はさらに、図7のステップS303〜S306のようにして、対象サービスを提供するデバイスのデバイス定義ファイルと、対象サービスのサービス定義ファイルを取得する。   If there is a device that provides the target service, for example, the device 220, the controller update service 212 receives a response such as step S302 in FIG. In this case, the controller update service 212 further acquires the device definition file of the device providing the target service and the service definition file of the target service as in steps S303 to S306 in FIG.

次に、ステップS402でコントローラ更新サービス212は、ステップS401で検索したUPnPサービス(つまり対象サービス)を提供するデバイスが発見されたか否かを判断する。   Next, in step S402, the controller update service 212 determines whether a device that provides the UPnP service (that is, the target service) searched in step S401 has been discovered.

ステップS401でのM-searchメッセージの送信から所定の時間が経過しても、ステップS302のような応答が1つも受信されない場合、コントローラ更新サービス212は、「対象サービスを提供するデバイスは発見されなかった」と判断する。そして、対象サービスを提供するデバイスが発見されなかった場合、図12の処理は終了する。つまり、この場合は新規コントローラ213のインストールは行われない。   If no response as in step S302 is received even after a predetermined time has elapsed since the transmission of the M-search message in step S401, the controller update service 212 indicates that “a device providing the target service has not been found. Judging. If no device providing the target service is found, the process in FIG. 12 ends. That is, in this case, the new controller 213 is not installed.

逆に、ステップS302のような応答が得られて、デバイス定義ファイルとサービス定義ファイルが取得されていれば、対象サービスを提供するデバイスが存在する。よって、この場合、コントローラ更新サービス212は、「対象サービスを提供するデバイスが発見された」と判断する。そして、図12の処理はステップS403へと移行する。   Conversely, if a response as in step S302 is obtained and the device definition file and the service definition file are acquired, there is a device that provides the target service. Therefore, in this case, the controller update service 212 determines that “a device that provides the target service has been found”. Then, the processing in FIG. 12 proceeds to step S403.

ステップS403でコントローラ更新サービス212は、コントローラ管理装置230に対して、発見したUPnPサービス(つまり対象サービス)の情報(例えば名前やIDなどの識別情報)を通知して、対象サービスに対応するコントローラを要求する。ステップS403での要求は、図7のステップS307に対応する。そして、図7のステップS308に示すように、コントローラ更新サービス212は、コントローラ管理装置230から、対象サービスに対応するコントローラのデータ(具体的には、図8の新規コントローラプログラム232を含むデータ)を受信する。   In step S403, the controller update service 212 notifies the controller management device 230 of information (for example, identification information such as name and ID) of the discovered UPnP service (that is, the target service), and selects a controller corresponding to the target service. Request. The request in step S403 corresponds to step S307 in FIG. Then, as shown in step S308 in FIG. 7, the controller update service 212 receives controller data (specifically, data including the new controller program 232 in FIG. 8) from the controller management device 230. Receive.

最後に、ステップS404でコントローラ更新サービス212は、受信したコントローラのプログラムを端末210にインストールする。その結果、UPnP制御部211は、サービス222を利用するための新規コントローラ213が存在する状態となる。したがって、端末210のユーザは、端末210から所望のサービス222を利用することが可能となる。   Finally, in step S404, the controller update service 212 installs the received controller program in the terminal 210. As a result, the UPnP control unit 211 is in a state where a new controller 213 for using the service 222 exists. Therefore, the user of the terminal 210 can use the desired service 222 from the terminal 210.

以上説明した第2実施形態によれば、端末210には、必要に応じてコントローラがインストールされる。したがって、対応するコントローラが端末210にプレインストールされていないようなサービスであっても、端末210から利用可能である。つまり、第2実施形態には、端末210のユーザが使えるサービスを増やすことで、ユーザの利便性を向上させる効果がある。   According to the second embodiment described above, a controller is installed in the terminal 210 as necessary. Therefore, even a service in which the corresponding controller is not preinstalled in the terminal 210 can be used from the terminal 210. That is, in the second embodiment, there is an effect of improving user convenience by increasing services that can be used by the user of the terminal 210.

また、第2実施形態のコントローラ更新サービス212はUPnPのサービスなので、UPnP用のライブラリの中に、コントローラ更新サービス212を実現するためのプログラムモジュール(例えばライブラリ関数)を組み込むことが可能である。すると、広く使われるライブラリを介して、多くの端末210にコントローラ更新サービス212を実装することが可能となる。すなわち、コントローラ更新サービス212がUPnPのサービスであることは、利便性の向上に有益なコントローラ更新サービス212の普及を促進する効果がある。   Further, since the controller update service 212 of the second embodiment is a UPnP service, a program module (for example, a library function) for realizing the controller update service 212 can be incorporated in the UPnP library. Then, the controller update service 212 can be implemented in many terminals 210 via a widely used library. That is, the fact that the controller update service 212 is a UPnP service has an effect of promoting the spread of the controller update service 212 that is useful for improving convenience.

続いて、第3実施形態について説明する。第3実施形態は、サービスの更新に関する点において第1実施形態と共通である。しかし、第1実施形態では、端末110からのサービス追加・更新コマンドが、デバイス120におけるサービスのインストールのトリガであるのに対して、第3実施形態では、デバイスが特定の環境に入ることがインストールのトリガである。   Subsequently, the third embodiment will be described. The third embodiment is common to the first embodiment in terms of service updates. However, in the first embodiment, the service addition / update command from the terminal 110 is a trigger for installing the service in the device 120, whereas in the third embodiment, the installation that the device enters a specific environment is installed. This is the trigger.

すなわち、第3実施形態によれば、デバイスが存在する環境に応じて、当該環境で使われるサービス(あるいは当該環境に適したサービス)が、デバイスにインストールされる。以下、図13〜19を参照して第3実施形態について詳しく説明する。   That is, according to the third embodiment, according to the environment in which the device exists, a service used in the environment (or a service suitable for the environment) is installed in the device. Hereinafter, the third embodiment will be described in detail with reference to FIGS.

図13は、第3実施形態の動作シーケンス図である。また、図14は、第3実施形態のシステム構成図である。図14に示すように、第3実施形態のシステム300は、端末310とデバイス320とサーバ330とセンサ340を含む。システム300内には、端末310以外の端末がさらにあってもよく、センサ340以外のセンサがさらにあってもよい。図13は、図14の端末310、デバイス320、サーバ330、およびセンサ340、ならびに図14には不図示の端末350による動作シーケンスの例を示す。   FIG. 13 is an operation sequence diagram of the third embodiment. FIG. 14 is a system configuration diagram of the third embodiment. As illustrated in FIG. 14, the system 300 according to the third embodiment includes a terminal 310, a device 320, a server 330, and a sensor 340. In the system 300, there may be further terminals other than the terminal 310, and there may be further sensors other than the sensor 340. FIG. 13 shows an example of an operation sequence by the terminal 310, the device 320, the server 330, and the sensor 340 in FIG. 14 and the terminal 350 (not shown in FIG. 14).

端末310は、通信機能とUPnPのコントローラ機能を有する端末であれば、どのような種類の端末であってもよい。例えば、端末310は、携帯電話、スマートフォン、タブレット端末、PDA、ノートPCのような携帯端末であってもよいし、デスクトップPCであってもよい。端末350も端末310と同様である。   The terminal 310 may be any type of terminal as long as it has a communication function and a UPnP controller function. For example, the terminal 310 may be a mobile terminal such as a mobile phone, a smart phone, a tablet terminal, a PDA, a notebook PC, or a desktop PC. The terminal 350 is the same as the terminal 310.

デバイス320は、通信機能とUPnPのサービス提供機能を有する装置であり、製造工場からの出荷後にソフトウェアをインストールすることの可能な装置である。より具体的には、デバイス320は、第1実施形態と類似のサービス更新サービス322を提供する。また、例えば、携帯電話、スマートフォン、タブレット端末、PDA、ノートPC、デスクトップPC、プリンタ、プロジェクタ、テレビ、録画装置、照明装置などの様々な装置が、デバイス320として利用される可能性がある。なお、端末310とデバイス320は、ネットワークを介して互いに通信することができる。   The device 320 is a device having a communication function and a UPnP service providing function, and is a device capable of installing software after shipment from a manufacturing factory. More specifically, the device 320 provides a service update service 322 similar to the first embodiment. For example, various devices such as a mobile phone, a smartphone, a tablet terminal, a PDA, a notebook PC, a desktop PC, a printer, a projector, a television, a recording device, and a lighting device may be used as the device 320. Note that the terminal 310 and the device 320 can communicate with each other via a network.

サーバ330は、ネットワークを介した通信が可能なコンピュータである。後述するとおり、第3実施形態では、ある種の通知が、デバイス320からサーバ330に送信されてもよいし、端末310からサーバ330に送信されてもよい。また、別の通知が、センサ340からサーバ330に送信されてもよいし、端末310からサーバ330に送信されてもよい。サーバ330は、ネットワーク(例えばインターネット)を介して各種通知を適宜受信することができるものとする。   The server 330 is a computer that can communicate via a network. As will be described later, in the third embodiment, a certain type of notification may be transmitted from the device 320 to the server 330 or may be transmitted from the terminal 310 to the server 330. Another notification may be transmitted from the sensor 340 to the server 330, or may be transmitted from the terminal 310 to the server 330. It is assumed that the server 330 can appropriately receive various notifications via a network (for example, the Internet).

また、センサ340は、1種の検出装置である。具体的には、デバイス320が特定の環境に存在する場合に、センサ340は、デバイス320が特定の環境に存在することを示す検出通知を送信する。   The sensor 340 is a kind of detection device. Specifically, when the device 320 exists in a specific environment, the sensor 340 transmits a detection notification indicating that the device 320 exists in the specific environment.

センサ340は、特定の環境に予め設置されていてもよい。例えば、上記「特定の環境」が、特定の建物の特定の部屋である場合、当該特定の部屋に予め設置された、無線LAN(Local Area Network)アクセスポイントやRFID(Radio Frequency Identification)リーダなどの装置が、センサ340として使われてもよい。   The sensor 340 may be installed in advance in a specific environment. For example, when the “specific environment” is a specific room of a specific building, a wireless LAN (Local Area Network) access point, an RFID (Radio Frequency Identification) reader, or the like installed in advance in the specific room A device may be used as sensor 340.

例えば、デバイス320は、無線LANの通信インタフェイスを有していてもよい。その場合、デバイス320が特定の環境にあるか否かは、当該特定の環境に設置された無線LANアクセスポイントを介して検出可能である。   For example, the device 320 may have a wireless LAN communication interface. In that case, whether or not the device 320 is in a specific environment can be detected via a wireless LAN access point installed in the specific environment.

同様に、デバイス320はRFID回路を含んでいてもよい。その場合、デバイス320が特定の環境にあるか否かは、当該特定の環境に設置されたRFIDリーダを介して検出可能である。   Similarly, device 320 may include an RFID circuit. In that case, whether or not the device 320 is in a specific environment can be detected via an RFID reader installed in the specific environment.

あるいは、センサ340は、端末310に内蔵されていてもよい。例えば、端末310にGPS(Global Positioning System)センサ内蔵されている場合、当該GPSセンサがセンサ340として使われてもよい。GPSセンサのほかにも、高度センサなど他の種類のセンサが使われてもよい。   Alternatively, the sensor 340 may be built in the terminal 310. For example, when a GPS (Global Positioning System) sensor is built in the terminal 310, the GPS sensor may be used as the sensor 340. In addition to the GPS sensor, other types of sensors such as an altitude sensor may be used.

例えば、近傍のデバイス320を端末310が検出したときに、端末310に内蔵されたGPSセンサが、端末310の緯度と経度を検出してもよい。検出された緯度と経度は、デバイス320の緯度と経度でもある、と見なせる。よって、上記の「特定の環境」が緯度と経度の所定の範囲で表される場合、端末310が近傍にデバイス320を検出したときにGPSセンサが検出した緯度と経度は、デバイス320が特定の環境にあるか否かを示す。   For example, when the terminal 310 detects a nearby device 320, a GPS sensor built in the terminal 310 may detect the latitude and longitude of the terminal 310. It can be considered that the detected latitude and longitude are also the latitude and longitude of the device 320. Therefore, when the above-mentioned “specific environment” is expressed by a predetermined range of latitude and longitude, the latitude and longitude detected by the GPS sensor when the terminal 310 detects the device 320 in the vicinity are specified by the device 320. Indicates whether it is in the environment.

または、センサ340は、デバイス320に内蔵されていてもよい。例えば、センサ340は、デバイス320に内蔵されているGPSセンサであってもよい。デバイス320に内蔵されているGPSセンサが検出する緯度と経度は、デバイス320が特定の環境にあるか否かを示すことが可能な情報の例である。   Alternatively, the sensor 340 may be built in the device 320. For example, the sensor 340 may be a GPS sensor built in the device 320. The latitude and longitude detected by the GPS sensor built in the device 320 is an example of information that can indicate whether or not the device 320 is in a specific environment.

なお、以下ではデバイス320が存在する環境を「コンテキスト」ともいう。
さて、端末310とデバイス320とサーバ330のさらなる詳細は、後ほど図14を参照して説明することにして、先に図13の動作シーケンスについて説明する。
Hereinafter, an environment in which the device 320 exists is also referred to as a “context”.
Now, further details of the terminal 310, the device 320, and the server 330 will be described later with reference to FIG. 14, and the operation sequence of FIG. 13 will be described first.

図13のステップS501〜S506は、図1のステップS101〜S106と同様である。よって、詳しい説明は省略するが、ステップS501〜S506の結果として、端末310は、デバイス320により提供されるサービス更新サービス322を発見し、デバイス320からデバイス定義ファイルとサービス定義ファイルを取得する。   Steps S501 to S506 in FIG. 13 are the same as steps S101 to S106 in FIG. Therefore, although detailed description is omitted, as a result of steps S501 to S506, the terminal 310 discovers the service update service 322 provided by the device 320, and acquires the device definition file and the service definition file from the device 320.

その後、ステップS507で端末310は、検出したサービス更新サービス322に対してコマンド(以下では説明の便宜上「受信準備コマンド」という)を送信する。受信準備コマンドも、具体的にはSOAPコマンドの形式で送信される。受信準備コマンドは、「サービスのデータがサーバ330から将来送信されてくるのに備えて、データを受信する準備を行うように」とデバイス320に促すコマンドである。また、受信準備コマンドはサーバ330のアドレスを含み、デバイス320に対してサーバ330のアドレスを通知する役目も果たす。   Thereafter, in step S507, the terminal 310 transmits a command (hereinafter referred to as “reception preparation command” for convenience of explanation) to the detected service update service 322. The reception preparation command is also specifically transmitted in the form of a SOAP command. The reception preparation command is a command that prompts the device 320 to “prepare to receive data in preparation for the future transmission of service data from the server 330”. The reception preparation command includes the address of the server 330, and also serves to notify the device 320 of the address of the server 330.

デバイス320は、受信準備コマンドを受信すると、次にステップS508で端末310に応答を返す。ステップS508での応答は、具体的には、「OK」という意味を示す「200」というステータスコードを含むHTTP応答である。   Upon receiving the reception preparation command, the device 320 returns a response to the terminal 310 in step S508. The response in step S508 is specifically an HTTP response including a status code “200” indicating the meaning of “OK”.

デバイス320は、さらにステップS509で、サーバ330からサービスのデータを受信するための準備を行う。例えば、デバイス320がサービスのデータを所定のTCP(Transmission Control Protocol)ポートで受信する場合は、ステップS509の受信準備は、上記の所定のTCPポートを開放する(すなわち上記の所定のTCPポートを「LISTEN」状態に設定する)処理を含んでもよい。   In step S509, the device 320 further prepares to receive service data from the server 330. For example, when the device 320 receives service data at a predetermined TCP (Transmission Control Protocol) port, the reception preparation in step S509 releases the predetermined TCP port (that is, the predetermined TCP port is set to “ It may also include processing to set the LISTEN state.

デバイス320は、受信の準備を終えると、次に、ステップS510aに示すように、サーバ330に通知を送る。以下では説明の便宜上、ステップS510aの通知を「受信開始通知」という。受信開始通知は、デバイス320がサービスのデータを受信可能なことをサーバ330に知らせるための通知である。   When the device 320 completes preparation for reception, the device 320 then sends a notification to the server 330 as shown in step S510a. Hereinafter, for convenience of explanation, the notification in step S510a is referred to as “reception start notification”. The reception start notification is a notification for notifying the server 330 that the device 320 can receive service data.

受信開始通知は、サービスのインストール先であるデバイス320のアドレスを明示的にペイロードに含んでもよい。または、サーバ330は、受信開始通知の送信元アドレスを、デバイス320のアドレスとして認識してもよい。   The reception start notification may explicitly include the address of the device 320 to which the service is installed in the payload. Alternatively, the server 330 may recognize the transmission source address of the reception start notification as the address of the device 320.

以下では、サービスのインストール先を示す情報として、受信開始通知には、デバイス320のIPアドレスとデバイス320のUUIDが含まれるものとする。また、複数のOSに応じて、同じサービスを提供するためであっても複数の異なるプログラムが使われる場合がある。よって、以下では、受信開始通知には、デバイス320のOSを示す情報(例えばOSの名称とバージョン番号を表す文字列)が含まれるものとする。   In the following, it is assumed that the reception start notification includes the IP address of the device 320 and the UUID of the device 320 as information indicating the service installation destination. In addition, a plurality of different programs may be used even for providing the same service according to a plurality of OSs. Therefore, in the following, it is assumed that the reception start notification includes information indicating the OS of the device 320 (for example, a character string indicating the OS name and version number).

ところで、ステップS510aの代わりに、ステップS510bのように端末310が受信開始通知をサーバ330に送信してもよい。つまり、端末310は、ステップS508の応答を受信すると、応答の受信を契機として、ステップS510bでサーバ330に対して受信開始通知を送信してもよい。   By the way, instead of step S510a, the terminal 310 may transmit a reception start notification to the server 330 as in step S510b. That is, when receiving the response in step S508, the terminal 310 may transmit a reception start notification to the server 330 in step S510b, triggered by reception of the response.

ステップS510bの受信開始通知は、ステップS510aの受信開始通知と同様に、デバイス320のIPアドレスとデバイス320のUUIDを含む。例えば、ステップS508の応答のメッセージボディにデバイス320のUUIDが含まれていてもよい。すると、端末310は、応答からデバイス320のUUIDを抽出して、受信開始通知に含めることが可能である。   The reception start notification in step S510b includes the IP address of the device 320 and the UUID of the device 320, similarly to the reception start notification in step S510a. For example, the UUID of the device 320 may be included in the message body of the response in step S508. Then, the terminal 310 can extract the UUID of the device 320 from the response and include it in the reception start notification.

第3実施形態では、ステップS510aまたはS510bで受信開始通知が送信された後、サービスのデータがすぐにデバイス320に送信されるとは限らない。サーバ330は、ステップS511aまたはS511bのようなトリガを検出してはじめて、ステップS512のようにサービスのデータをデバイス320に送信する。   In the third embodiment, after the reception start notification is transmitted in step S510a or S510b, the service data is not always transmitted to the device 320 immediately. The server 330 transmits service data to the device 320 as in step S512 only after detecting a trigger such as step S511a or S511b.

具体的には、センサ340がデバイス320を検出した場合、ステップS511aのように、センサ340は、センサ値とデバイス320のデバイスIDをサーバ330に通知する。なおここで、センサ値とは、デバイス320が検出された環境を判別するための情報である。また、デバイスIDとは、デバイス320を識別する識別情報である。   Specifically, when the sensor 340 detects the device 320, the sensor 340 notifies the server 330 of the sensor value and the device ID of the device 320 as in step S511a. Here, the sensor value is information for determining the environment in which the device 320 is detected. The device ID is identification information for identifying the device 320.

例えば、センサ340が所定の場所に固定的に設置されている場合、サーバ330は、センサ340の識別情報とセンサ340の設置場所を対応づけるデータベースを有していてもよい。すると、センサ340の識別情報から、サーバ330は、デバイス320が検出された環境(すなわちセンサ340の固定的な設置場所)を判別することができる。したがって、センサ値としてセンサ340の識別情報が利用可能である。   For example, when the sensor 340 is fixedly installed at a predetermined location, the server 330 may have a database that associates the identification information of the sensor 340 with the installation location of the sensor 340. Then, from the identification information of the sensor 340, the server 330 can determine the environment in which the device 320 is detected (that is, the fixed installation location of the sensor 340). Therefore, the identification information of the sensor 340 can be used as the sensor value.

あるいは、センサ340が端末310またはデバイス320に内蔵されているGPSセンサである場合、GPSセンサの出力する緯度と経度が、センサ値として利用可能である。   Alternatively, when the sensor 340 is a GPS sensor built in the terminal 310 or the device 320, the latitude and longitude output by the GPS sensor can be used as the sensor value.

また、デバイスIDは、例えば、デバイス320のIP(Internet Protocol)アドレスであってもよいし、デバイス320のUUIDであってもよいし、両者の組み合わせであってもよい。   The device ID may be, for example, the IP (Internet Protocol) address of the device 320, the UUID of the device 320, or a combination of both.

以上のステップS511aのようにセンサ340がセンサ値とデバイスIDをサーバ330に通知する代わりに、ステップS511bのように、端末310がサーバ330に対して、デバイス320へサービスのデータを送信するよう要求してもよい。   Instead of the sensor 340 notifying the server 330 of the sensor value and the device ID as in step S511a above, the terminal 310 requests the server 330 to transmit service data to the device 320 as in step S511b. May be.

例えば、場合によっては、実際のセンサ値が得られない環境もあるかもしれない。また、ユーザは、「実際のセンサ値と関係なく、デバイス320が特定の環境にあるものと見なして、当該特定の環境に適したサービスをデバイス320から受けたい」と思うかもしれない。   For example, in some cases, there may be an environment where actual sensor values cannot be obtained. In addition, the user may want to consider that the device 320 is in a specific environment, regardless of the actual sensor value, and want to receive a service suitable for the specific environment from the device 320.

よって、端末310は、ステップS511bのようにサーバ330に要求を送信してもよい。また、ステップS511bの要求には、特定の環境を指定する情報(後述のコンテキスト情報)と、インストール先のデバイス320を識別する識別情報が含まれる。例えば、端末310は、いくつかの環境を選択肢として含むリストをユーザに提示してもよく、端末310は、ユーザからの入力に基づいて、ユーザの選択した環境を指定する情報を要求に含めてもよい。   Therefore, the terminal 310 may transmit a request to the server 330 as in step S511b. In addition, the request in step S511b includes information designating a specific environment (context information to be described later) and identification information for identifying the installation destination device 320. For example, the terminal 310 may present a list including several environments as options to the user, and the terminal 310 includes information specifying the environment selected by the user in the request based on input from the user. Also good.

そして、ステップS511aの通知またはステップS511bの要求の受信に応じて、ステップS512でサーバ330は、サービス(より具体的には、当該サービスを提供するためのプログラムを含むデータ)をデバイス320に送信する。具体的には、ステップS511aの通知を受信した場合、サーバ330は、センサ値に基づいてデバイス320のコンテキストを判別する。また、ステップS511bの要求を受信した場合、サーバ330は、要求からコンテキスト情報を抽出する。そして、サーバ330は、コンテキストに応じた適宜のサービスを選択し、選択したサービスのデータをステップS512で送信する。   In response to reception of the notification in step S511a or the request in step S511b, the server 330 transmits a service (more specifically, data including a program for providing the service) to the device 320 in step S512. . Specifically, when receiving the notification in step S511a, the server 330 determines the context of the device 320 based on the sensor value. Further, when the request in step S511b is received, the server 330 extracts context information from the request. Then, the server 330 selects an appropriate service according to the context, and transmits data of the selected service in step S512.

すると、デバイス320はサービスのデータを受信する。サービスのデータは、具体的には、サービスのプログラムとサービス定義ファイルのデータを含む。よって、デバイス320は、ステップS513で、受信により取得したプログラムをデバイス320自身にインストールする。インストールの結果、デバイス320は、新規サービスを提供することができるようになる。また、デバイス320は、デバイス定義ファイルを更新し、サービス定義ファイルを更新または追加する。   Then, the device 320 receives service data. Specifically, the service data includes service program and service definition file data. Therefore, the device 320 installs the program acquired by reception in the device 320 itself in step S513. As a result of the installation, the device 320 can provide a new service. Further, the device 320 updates the device definition file, and updates or adds the service definition file.

さらに、次のステップS514でデバイス320は、図1のステップS112と同様にして、GENAにより、サービス追加・更新イベントの発生を通知する。
また、図13には示されていないが、上記のようにしてデバイス320が新規サービスの提供を開始した後、端末310および端末350は、新規サービスを利用することができる。インストールされた新規サービスを利用するための方法は、第1実施形態と同様である。
Further, in the next step S514, the device 320 notifies the occurrence of a service addition / update event by GENA in the same manner as in step S112 in FIG.
Although not shown in FIG. 13, after the device 320 starts providing a new service as described above, the terminal 310 and the terminal 350 can use the new service. The method for using the installed new service is the same as in the first embodiment.

ところで、第3実施形態においても、第1実施形態と同様のデバイス定義ファイル(例えば図3のデバイス定義ファイル150のようなデバイス定義ファイル)が使われる。
また、第1実施形態に関して図4を参照して説明したとおり、図4には、説明の都合上、第1実施形態では使われず第3実施形態で使われるアクションや状態変数についての定義も含むサービス定義ファイル151が例示されている。具体的には、図4の19〜26行目で定義されているアクションと、図4の39〜42行目で定義されている状態変数は、上記のとおり、第1実施形態では使われず、第3実施形態で使われる。そこで、以下に図4の19〜26行目と39〜42行目について説明する。
By the way, also in the third embodiment, a device definition file similar to that in the first embodiment (for example, a device definition file such as the device definition file 150 in FIG. 3) is used.
Further, as described with reference to FIG. 4 with respect to the first embodiment, FIG. 4 also includes definitions for actions and state variables that are not used in the first embodiment but are used in the third embodiment for convenience of explanation. A service definition file 151 is illustrated. Specifically, the action defined in lines 19 to 26 in FIG. 4 and the state variable defined in lines 39 to 42 in FIG. 4 are not used in the first embodiment as described above. Used in the third embodiment. Therefore, the 19th to 26th lines and the 39th to 42nd lines in FIG. 4 will be described below.

図4に示したサービス更新サービスのサービス定義ファイル151の19〜26行目には、図13のステップS507の受信準備コマンドに相当する、「Listen」という名前のアクションが定義されている。このアクションは2つの入力引数をとる。   In the 19th to 26th lines of the service definition file 151 of the service update service shown in FIG. 4, an action named “Listen” corresponding to the reception preparation command in step S507 of FIG. 13 is defined. This action takes two input arguments.

1番目の引数は、「argServerUri」という名前であり、サービスのデータの送信元(すなわちサーバ330)のURIを表す。また、この「argServerUri」という引数は、後述の「ServerUri」という状態変数と関係しており、具体的には、デバイス320におけるサービス更新サービス322は、「argServerUri」という引数に指定された値を「ServerUri」という状態変数に代入する。   The first argument is named “argServerUri” and represents the URI of the service data transmission source (that is, the server 330). The argument “argServerUri” is related to a state variable “ServerUri” described later. Specifically, the service update service 322 in the device 320 sets the value specified in the argument “argServerUri” to “ Assign to the state variable ServerUri.

2番目の引数は、「setListeningFlag」という名前であり、サーバ330からのサービスのデータの受信が可能な状態にデバイス320を設定するか否かを表す。また、この「setListeningFlag」という引数は、後述の「Listening」という状態変数と関係しており、具体的には、デバイス320におけるサービス更新サービス322は、「setListeningFlag」という引数に指定された値を「Listening」という状態変数に代入する。   The second argument is the name “setListeningFlag”, and represents whether or not the device 320 is set in a state where service data can be received from the server 330. Further, the argument “setListeningFlag” is related to a state variable “Listening” described later. Specifically, the service update service 322 in the device 320 sets the value specified in the argument “setListeningFlag” to “ Assign to a state variable called Listening.

さて、39〜40行目には、「ServerUri」という名前のURI型の状態変数が定義されている。「ServerUri」という状態変数は、デバイス320が受信しようとする(あるいは既に受信した)データの送信元のサーバ330を示す。   Now, in the 39th to 40th lines, a URI type state variable named “ServerUri” is defined. The state variable “ServerUri” indicates the server 330 that is the transmission source of the data that the device 320 intends to receive (or has already received).

また、41〜42行目には、「Listening」という名前のブール型の状態変数が定義されている。「Listening」という状態変数の値が真(true)の場合、デバイス320は、受信準備が完了した状態(つまりサーバ330からの受信が可能な状態)である。逆に、「Listening」という状態変数の値が偽(false)の場合、デバイス320は、サーバ330からの受信が不可能な状態(例えば、所定のTCPポートが閉じている状態)である。   On the 41st to 42nd lines, a Boolean state variable named “Listening” is defined. When the value of the state variable “Listening” is true, the device 320 is in a state where preparation for reception is completed (that is, a state where reception from the server 330 is possible). Conversely, when the value of the state variable “Listening” is false, the device 320 is in a state where reception from the server 330 is impossible (for example, a state where a predetermined TCP port is closed).

続いて、図14を参照して、端末310とデバイス320とサーバ330の詳細について説明する。
図14に示すように、端末310には、UPnPコントローラ311が実装されている。UPnPコントローラ311は、サービス更新サービスに対して制御メッセージ(つまりコマンド)を与える機能を有する、UPnPのコントローラである。図13に示した端末310の動作(ただしステップS511bの要求の送信を除く)は、具体的にはUPnPコントローラ311により実行される。
Next, details of the terminal 310, the device 320, and the server 330 will be described with reference to FIG.
As shown in FIG. 14, the terminal 310 is equipped with a UPnP controller 311. The UPnP controller 311 is a UPnP controller having a function of giving a control message (that is, a command) to the service update service. The operation of the terminal 310 shown in FIG. 13 (except for the transmission of the request in step S511b) is specifically executed by the UPnP controller 311.

また、端末310はステップS511bのような要求を送信する要求部312をさらに有していてもよい。要求部312は、ステップS511bの要求で指定する環境をユーザに指定させるための処理も行う。しかし、要求部312は省略されていてもよい。   In addition, the terminal 310 may further include a request unit 312 that transmits a request as in step S511b. The request unit 312 also performs processing for causing the user to specify the environment specified by the request in step S511b. However, the request unit 312 may be omitted.

また、デバイス320は、UPnPサービス提供部321を含む。UPnPサービス提供部321は、サービス更新サービス322を提供する。図13のステップS513は、具体的にはサービス更新サービス322により行われる。   The device 320 includes a UPnP service providing unit 321. The UPnP service providing unit 321 provides a service update service 322. Step S513 in FIG. 13 is specifically performed by the service update service 322.

なお、図14には、ステップS513でインストールされる新規サービス323が破線で示されている。新規サービス323のプログラムのインストール後には、UPnPサービス提供部321は、新規サービス323も提供することが可能である。また、UPnPコントローラ311は、サービス更新サービス322に対して制御メッセージを与える機能だけでなく、新規サービス323に対して制御メッセージを与える機能を有していてもよい。   In FIG. 14, the new service 323 installed in step S513 is indicated by a broken line. After the installation of the new service 323 program, the UPnP service providing unit 321 can also provide the new service 323. Further, the UPnP controller 311 may have a function of giving a control message to the new service 323 as well as a function of giving a control message to the service update service 322.

デバイス320はさらに受信部324を含む。受信部324は、サーバ330から新規サービス323のデータを受信するのを待ち、データを受信すると、サービス更新サービス322に受信を通知する。   Device 320 further includes a receiver 324. The reception unit 324 waits to receive data of the new service 323 from the server 330, and when receiving the data, notifies the service update service 322 of the reception.

具体的には、図13のステップS507の受信準備コマンドに応じて、サービス更新サービス322が受信部324を起動し、ステップS309で受信部324が受信準備を行ってもよい。そして、ステップS512で新規サービス323のデータが受信されると、受信部324がサービス更新サービス322に受信を通知してもよい。サービス更新サービス322は、受信部324からの通知に応じて、受信部324が受信したデータを使ってステップS513でインストールを実行してもよい。   Specifically, the service update service 322 may activate the reception unit 324 in response to the reception preparation command in step S507 of FIG. 13, and the reception unit 324 may prepare for reception in step S309. Then, when the data of the new service 323 is received in step S512, the receiving unit 324 may notify the service update service 322 of the reception. The service update service 322 may perform installation in step S513 using data received by the receiving unit 324 in response to a notification from the receiving unit 324.

さて、サーバ330は、格納部331を有する。格納部331には、新規サービス323を提供するためのプログラムである新規サービスプログラム332が、新規サービス323を識別する情報と対応づけられて、格納されている。新規サービスプログラム332は、図13のステップS512で送信され、ステップS513でデバイス320にインストールされる。   Now, the server 330 has a storage unit 331. The storage unit 331 stores a new service program 332 that is a program for providing the new service 323 in association with information for identifying the new service 323. The new service program 332 is transmitted in step S512 of FIG. 13 and installed in the device 320 in step S513.

なお、簡単化のため、図14には1つの新規サービスプログラム332のみが示されているが、格納部331は、複数のサービスそれぞれのプログラムを、当該サービスを識別する情報と対応づけて格納していてもよい。つまり、格納部331は、様々なサービスを提供するための各種プログラムのレポジトリであってもよい。   For simplification, only one new service program 332 is shown in FIG. 14, but the storage unit 331 stores the programs of each of the plurality of services in association with information for identifying the services. It may be. That is, the storage unit 331 may be a repository of various programs for providing various services.

また、あるOSにしたがって動作するデバイスが新規サービス323を提供するためのプログラムと、別のOSにしたがって動作する別のデバイスが、同じ新規サービス323を提供するためのプログラムは、異なる場合がある。そのため、格納部331は、新規サービス323を識別する情報だけでなく、OSを表す情報とも対応づけて、新規サービスプログラム332を格納しているものとする。   In addition, a program for a device operating according to one OS to provide the new service 323 may be different from a program for another device operating according to another OS to provide the same new service 323. Therefore, it is assumed that the storage unit 331 stores the new service program 332 in association with not only information for identifying the new service 323 but also information representing the OS.

さて、サーバ330は、図13のステップS511aでセンサ340から送信されるセンサ値から、デバイス320のコンテキスト(すなわちデバイス320の存在する環境)を抽出するコンテキスト抽出部333をさらに有する。コンテキスト抽出部333は、例えば、所定の場所に設置されたセンサ340(例えば無線LANアクセスポイントやRFIDリーダなど)の識別情報と、センサ340の設置場所を対応づけるデータベースを使って、センサ値からコンテキストを抽出してもよい。また、コンテキスト抽出部333は、地図データを使って、センサ値としての緯度と経度から、コンテキストを抽出してもよい。   The server 330 further includes a context extraction unit 333 that extracts the context of the device 320 (that is, the environment in which the device 320 exists) from the sensor value transmitted from the sensor 340 in step S511a of FIG. The context extraction unit 333 uses, for example, a database that associates the identification information of the sensor 340 (for example, a wireless LAN access point or an RFID reader) installed at a predetermined location with the installation location of the sensor 340, based on the sensor value. May be extracted. Moreover, the context extraction part 333 may extract a context from the latitude and longitude as a sensor value using map data.

なお、コンテキストの粒度は実施形態に応じて任意である。例えば、「Xビルの3階にある第1会議室」や「Y氏の自宅」のような非常に細かな粒度のコンテキストが利用されてもよいし、「会議室」や「自宅」のようにある程度一般化されたコンテキストが利用されてもよい。コンテキスト抽出部333は、実施形態に応じた粒度のコンテキストをセンサ値から抽出するための適宜のルールデータベースを有していてもよい。また、所定の場所に設置されたセンサ340の識別情報と、センサ340の設置場所を対応づける上記データベースにおいて、設置場所がコンテキストの粒度に応じて表現されていてもよい。   The context granularity is arbitrary depending on the embodiment. For example, a context with a very fine granularity such as “the first meeting room on the third floor of the X building” or “the home of Mr. Y” may be used, or “conference room” or “home”. A context generalized to some extent may be used. The context extraction unit 333 may include an appropriate rule database for extracting a context with granularity according to the embodiment from the sensor value. Further, in the database that associates the identification information of the sensor 340 installed at a predetermined location with the installation location of the sensor 340, the installation location may be expressed according to the granularity of the context.

サーバ330はさらに、デバイス320に送信する対象のサービスを決定するサービス決定部334を含む。
なお、図13のステップS511bのように要求部312から要求が送信される場合、サービス決定部334が要求を受信する。そして、サービス決定部334は、受信した要求から、コンテキスト情報を抽出する。逆に、図13のステップS511aのようにセンサ値が送信される場合、サービス決定部334は、コンテキスト抽出部333から、コンテキスト情報を取得する。
The server 330 further includes a service determination unit 334 that determines a target service to be transmitted to the device 320.
When a request is transmitted from the request unit 312 as in step S511b of FIG. 13, the service determination unit 334 receives the request. Then, the service determination unit 334 extracts context information from the received request. Conversely, when the sensor value is transmitted as in step S <b> 511 a of FIG. 13, the service determination unit 334 acquires context information from the context extraction unit 333.

いずれにせよ、サービス決定部334は、コンテキストに基づいてサービスを決定する。その際、サービス決定部334は、条件テーブル335を参照することで、コンテキストに対応するサービスを決定する。   In any case, the service determination unit 334 determines a service based on the context. At that time, the service determining unit 334 determines a service corresponding to the context by referring to the condition table 335.

図15に、条件テーブル335の具体例を示す。図15に示すように、条件テーブル335は、コンテキストとサービスを対応づけるテーブルである。なお、図15では、理解を容易にするために、コンテキストとサービスがそれぞれ名前で表現されている。しかし、条件テーブル335は、例えば、コンテキストを示すコード番号と、サービスのIDとを対応づけるテーブルであってもよい。   FIG. 15 shows a specific example of the condition table 335. As shown in FIG. 15, the condition table 335 is a table that associates contexts with services. In FIG. 15, in order to facilitate understanding, contexts and services are represented by names. However, the condition table 335 may be, for example, a table that associates a code number indicating a context with a service ID.

図15の例では、「会議室」というコンテキストに、ドキュメント表示サービスが対応づけられている。また、「事務所」というコンテキストに、照明ON/OFFサービスが対応づけられている。そして、「自宅」というコンテキストに、ビデオ録画サービスが対応づけられている。したがって、コンテキスト抽出部333によって例えば「会議室」というコンテキストが抽出された場合、サービス決定部334は、ドキュメント表示サービスのデータをデバイス320に送信することを決定する。   In the example of FIG. 15, the document display service is associated with the context “conference room”. The lighting ON / OFF service is associated with the context of “office”. A video recording service is associated with the context “home”. Therefore, when the context “conference room” is extracted by the context extraction unit 333, for example, the service determination unit 334 determines to transmit the document display service data to the device 320.

ここで、再度図14の説明に戻ると、サーバ330はさらに、受信準備の整ったデバイス320についての情報を管理するデバイス管理部336を有する。デバイス管理部336は、具体的には、デバイステーブル337を用いて、デバイス320についての情報を管理する。   Here, returning to the description of FIG. 14 again, the server 330 further includes a device management unit 336 that manages information about the device 320 ready for reception. Specifically, the device management unit 336 manages information about the device 320 using the device table 337.

図16に、デバイステーブル337の具体例を示す。デバイステーブル337の各エントリは、1台のデバイス320に対応する。図16には、2台のデバイス320にそれぞれ対応する2つのエントリが例示されている。図16に示すように、デバイステーブル337は、デバイス320のIPアドレスと、デバイス320のUUIDと、デバイス320のOSとを対応づけるテーブルである。   FIG. 16 shows a specific example of the device table 337. Each entry in the device table 337 corresponds to one device 320. FIG. 16 illustrates two entries corresponding to the two devices 320, respectively. As illustrated in FIG. 16, the device table 337 is a table that associates the IP address of the device 320, the UUID of the device 320, and the OS of the device 320.

図14には1台の端末310と1台のデバイス320しか図示されていないが、システム300は、複数の端末310と複数のデバイス320を含んでいてもよい。よって、デバイス管理部336は、ある1台のデバイス320(より具体的には受信部324)から図13のステップS510aのように受信開始通知を受信するたびに、デバイステーブル337にエントリを追加するか、または既存のエントリを更新する。また、デバイス管理部336は、ある1台の端末310(より具体的にはUPnPコントローラ311)から図13のステップS510bのように受信開始通知を受信するたびに、デバイステーブル337にエントリを追加するか、または既存のエントリを更新する。   Although only one terminal 310 and one device 320 are illustrated in FIG. 14, the system 300 may include a plurality of terminals 310 and a plurality of devices 320. Therefore, the device management unit 336 adds an entry to the device table 337 every time a reception start notification is received from a certain device 320 (more specifically, the reception unit 324) as in step S510a of FIG. Or update an existing entry. Also, the device management unit 336 adds an entry to the device table 337 every time a reception start notification is received from a certain terminal 310 (more specifically, the UPnP controller 311) as in step S510b of FIG. Or update an existing entry.

ここで、再度図14の説明に戻ると、サーバ330はさらに送信部338を有する。送信部338は、サービス決定部334の決定にしたがって、格納部331から適宜の新規サービスプログラム332を読み出して、新規サービスプログラム332をデバイス320に送信する。   Here, returning to the description of FIG. 14 again, the server 330 further includes a transmission unit 338. The transmission unit 338 reads an appropriate new service program 332 from the storage unit 331 according to the determination of the service determination unit 334 and transmits the new service program 332 to the device 320.

ところで、図13のステップS507〜S514までの処理は、サーバ330が図17と図18のフローチャートにしたがって動作し、デバイス320が図19のフローチャートにしたがって動作することにより、実現される。具体的には以下のとおりである。   By the way, the processing from step S507 to S514 in FIG. 13 is realized by the server 330 operating in accordance with the flowcharts of FIGS. 17 and 18 and the device 320 operating in accordance with the flowchart of FIG. Specifically, it is as follows.

図17は、デバイス320または端末310からの受信開始通知に応じて、サーバ330が行う処理のフローチャートである。
ステップS601でサーバ330のデバイス管理部336は、デバイス320または端末310から、受信開始通知を受信する。より具体的には、図13のステップS510aのように、デバイス管理部336は、デバイス320の受信部324から受信開始通知を受信することもある。あるいは、図13のステップS510bのように、デバイス管理部336は、端末310のUPnPコントローラ311から受信開始通知を受信することもある。
FIG. 17 is a flowchart of processing performed by the server 330 in response to a reception start notification from the device 320 or the terminal 310.
In step S <b> 601, the device management unit 336 of the server 330 receives a reception start notification from the device 320 or the terminal 310. More specifically, the device management unit 336 may receive a reception start notification from the reception unit 324 of the device 320 as in step S510a of FIG. Alternatively, as in step S <b> 510 b in FIG. 13, the device management unit 336 may receive a reception start notification from the UPnP controller 311 of the terminal 310.

いずれにしても、受信開始通知は、ステップS510aとS510bに関して説明したとおり、サービスのインストール先であるデバイス320の、IPアドレスとUUIDを含む。   In any case, the reception start notification includes the IP address and UUID of the device 320 to which the service is installed, as described with respect to steps S510a and S510b.

なお、デバイス320のIPアドレスが変化する場合もあり得る。例えば、DHCP(Dynamic Host Configuration Protocol)によってIPアドレスが割り当てられているデバイス320が再起動すると、再起動の前後でデバイス320のIPアドレスは変化するかもしれない。再起動したデバイス320は、サーバ330に新たなIPアドレスを通知するために受信開始通知を再び送信してもよい。   Note that the IP address of the device 320 may change. For example, when a device 320 to which an IP address is assigned by DHCP (Dynamic Host Configuration Protocol) is restarted, the IP address of the device 320 may change before and after the restart. The restarted device 320 may transmit a reception start notification again to notify the server 330 of a new IP address.

また、ある1台のデバイス320が、複数台の端末310から、何らかの間隔を置いて、受信準備コマンドを受信することもあり得る。その場合、複数の受信準備コマンドに対応して、同じデバイス320から、複数の受信開始通知をサーバ330が受信することになる。   In addition, a certain device 320 may receive a reception preparation command from a plurality of terminals 310 at some interval. In this case, the server 330 receives a plurality of reception start notifications from the same device 320 corresponding to the plurality of reception preparation commands.

そこで、デバイス管理部336は、端末310またはデバイス320から受信開始通知を受信すると、次のステップS602で、受信開始通知によって通知されたUUIDと同じUUIDが格納されたエントリがデバイステーブル337に存在するか否かを判断する。もしそのようなエントリがデバイステーブル337にあれば、処理はステップS603に移行する。逆に、そのようなエントリがデバイステーブル337になければ、処理はステップS604に移行する。   Therefore, when the device management unit 336 receives a reception start notification from the terminal 310 or the device 320, an entry in which the same UUID as the UUID notified by the reception start notification is stored in the device table 337 in the next step S602. Determine whether or not. If such an entry exists in the device table 337, the process proceeds to step S603. Conversely, if there is no such entry in the device table 337, the process proceeds to step S604.

ステップS603でデバイス管理部336は、ステップS602で見つけた当該エントリのIPアドレスとOSのフィールドを、受信開始通知により通知されたIPアドレスとOSの値で上書きする。そして、図17の処理は終了する。   In step S603, the device management unit 336 overwrites the IP address and OS field of the entry found in step S602 with the IP address and OS value notified by the reception start notification. Then, the process of FIG. 17 ends.

また、ステップS604でデバイス管理部336は、受信開始通知により通知されたIPアドレスとUUIDとOSの値を格納する新規エントリを、デバイステーブル337に追加する。そして、図17の処理は終了する。   In step S604, the device management unit 336 adds a new entry that stores the IP address, UUID, and OS value notified by the reception start notification to the device table 337. Then, the process of FIG. 17 ends.

図18は、図13のステップS511aのようなセンサ340からの通知に応じて、サーバ330が行う処理のフローチャートである。なお、ステップS511bのような要求に応じてサーバ330が新規サービスプログラム332を送信する場合については、上記の図13〜14についての説明から明らかなので、フローチャートを省略する。   FIG. 18 is a flowchart of processing performed by the server 330 in response to a notification from the sensor 340 as in step S511a of FIG. Note that the case where the server 330 transmits the new service program 332 in response to the request as in step S511b is clear from the description of FIGS.

さて、ステップS701でコンテキスト抽出部333が、センサ340から、図13のステップS511aのように、センサ値とデバイスIDを受信する。デバイスIDは、具体的には、IPアドレスまたはUUIDである。   In step S701, the context extraction unit 333 receives the sensor value and the device ID from the sensor 340 as in step S511a of FIG. Specifically, the device ID is an IP address or a UUID.

次に、ステップS702でコンテキスト抽出部333が、通知されたセンサ値からコンテキスト情報を生成する。なお、コンテキスト情報とは、コンテキストを表す情報である。例えば、コンテキストが「会議室」のような文字列で表される場合は、コンテキスト情報は文字列であるが、もちろん、コンテキスト情報の形式は任意であり、コード番号などが使われてもよい。図14に関して説明したように、例えば、センサ340の識別情報とセンサ340の設置位置を対応づけるデータベース、地図データ、ルールデータベースなどの適宜の情報を利用することで、コンテキスト抽出部333はコンテキスト情報を生成することができる。そして、コンテキスト抽出部333は、生成したコンテキスト情報をサービス決定部334に通知する。   Next, in step S702, the context extraction unit 333 generates context information from the notified sensor value. Note that context information is information representing a context. For example, when the context is represented by a character string such as “conference room”, the context information is a character string, but of course, the format of the context information is arbitrary, and a code number or the like may be used. As described with reference to FIG. 14, for example, by using appropriate information such as a database that associates the identification information of the sensor 340 with the installation position of the sensor 340, map data, and a rule database, the context extraction unit 333 converts the context information into Can be generated. Then, the context extracting unit 333 notifies the service determining unit 334 of the generated context information.

また、ステップS703でコンテキスト抽出部333は、センサ340から通知されたデバイスIDをデバイス管理部336に通知する。そして、デバイス管理部336は、通知されたデバイスIDがUUIDとIPアドレスのどちらなのかを判断する。   In step S703, the context extraction unit 333 notifies the device management unit 336 of the device ID notified from the sensor 340. Then, the device management unit 336 determines whether the notified device ID is a UUID or an IP address.

通知されたデバイスIDがUUIDの場合、処理はステップS704に移行する。逆に、通知されたデバイスIDがIPアドレスの場合、処理はステップS705に移行する。
ステップS704でデバイス管理部336は、通知されたUUIDがUUIDのフィールドに記憶されているエントリが、デバイステーブル337にあるか否かを判断する。もしそのようなエントリがなければ、図18の処理は終了する。逆に、通知されたUUIDがUUIDのフィールドに記憶されているエントリが見つかれば、デバイス管理部336は、見つけたエントリをサービス決定部334に通知し、処理はステップS706に移行する。
If the notified device ID is a UUID, the process proceeds to step S704. Conversely, if the notified device ID is an IP address, the process proceeds to step S705.
In step S <b> 704, the device management unit 336 determines whether there is an entry in the device table 337 in which the notified UUID is stored in the UUID field. If there is no such entry, the process in FIG. 18 ends. On the other hand, if an entry whose notified UUID is stored in the UUID field is found, the device management unit 336 notifies the service determination unit 334 of the found entry, and the process proceeds to step S706.

また、ステップS705でデバイス管理部336は、通知されたIPアドレスがIPアドレスのフィールドに記憶されているエントリが、デバイステーブル337にあるか否かを判断する。もしそのようなエントリがなければ、図18の処理は終了する。逆に、通知されたIPアドレスがIPアドレスのフィールドに記憶されているエントリが見つかれば、デバイス管理部336は、見つけたエントリをサービス決定部334に通知し、処理はステップS706に移行する。   In step S705, the device management unit 336 determines whether the device table 337 has an entry in which the notified IP address is stored in the IP address field. If there is no such entry, the process in FIG. 18 ends. On the other hand, if an entry in which the notified IP address is stored in the IP address field is found, the device management unit 336 notifies the found entry to the service determination unit 334, and the process proceeds to step S706.

ステップS706でサービス決定部334は、ステップS702でコンテキスト抽出部333から通知されたコンテキスト情報と合致するエントリが条件テーブル335にあるか否かを判断する。例えば、コンテキスト抽出部333が「事務所」というコンテキスト情報をサービス決定部334に通知した場合、サービス決定部334は、コンテキストのフィールドに「事務所」と記憶されているエントリを条件テーブル335において探す。   In step S706, the service determination unit 334 determines whether there is an entry in the condition table 335 that matches the context information notified from the context extraction unit 333 in step S702. For example, when the context extracting unit 333 notifies the service determining unit 334 of the context information “office”, the service determining unit 334 searches the condition table 335 for an entry stored as “office” in the context field. .

もし、通知されたコンテキスト情報と合致するエントリが条件テーブル335にあれば、処理はステップS707に移行する。逆に、そのようなエントリが見つからなければ、図18の処理は終了する。   If there is an entry in the condition table 335 that matches the notified context information, the process proceeds to step S707. Conversely, if no such entry is found, the process of FIG. 18 ends.

ステップS707でサービス決定部334は、ステップS704またはS705でデバイステーブル337において見つかったエントリから、IPアドレスとUUIDとOSの値を取得する。そして、サービス決定部334は、取得したこれらの値と、ステップS706で条件テーブル335において見つけたエントリにおける「サービス」フィールドの値とを、送信部338に通知する。   In step S707, the service determination unit 334 acquires the IP address, UUID, and OS value from the entry found in the device table 337 in step S704 or S705. Then, the service determination unit 334 notifies the transmission unit 338 of these acquired values and the value of the “service” field in the entry found in the condition table 335 in step S706.

最後に、ステップS708で送信部338は、サービス決定部334から宛先として通知されたデバイス320に対し、サービス決定部334から通知されたサービスのデータを送信する。より具体的には、送信部338は、サービス決定部334から通知されたサービスとOSに基づいて、格納部331から送信対象のデータ(つまり新規サービスプログラム332と、新規サービス323のサービス定義ファイルを含むデータ)を読み出す。そして、送信部338は、通知されたIPアドレスを宛先として、読み出したデータを送信する。ステップS708の送信は、図13のステップS512の送信に対応する。   Finally, in step S708, the transmission unit 338 transmits the service data notified from the service determination unit 334 to the device 320 notified as the destination from the service determination unit 334. More specifically, based on the service and OS notified from the service determination unit 334, the transmission unit 338 sends data to be transmitted (that is, the new service program 332 and the service definition file of the new service 323) from the storage unit 331. Data). Then, the transmission unit 338 transmits the read data with the notified IP address as a destination. The transmission in step S708 corresponds to the transmission in step S512 in FIG.

なお、ステップS704、S705、またはS706で、検索条件に合致するエントリが見つからない場合は、何らかのエラーがある場合である。よって、これらの場合、上記のとおり図18の処理は終了し、ステップS708のような送信は行われない。   In step S704, S705, or S706, if no entry matching the search condition is found, there is some error. Therefore, in these cases, the processing in FIG. 18 ends as described above, and transmission as in step S708 is not performed.

さて、図19は、図13のステップS507のような受信準備コマンドに応じて、デバイス320が行う処理のフローチャートである。図19は、図13のステップS507〜S514に対応する。なお、図13には、ステップS510aが行われる場合とステップS510bが行われる場合の双方が例示されているが、図19には、ステップS510aが行われる場合の処理手順を例示した。   FIG. 19 is a flowchart of processing performed by the device 320 in response to the reception preparation command as in step S507 in FIG. FIG. 19 corresponds to steps S507 to S514 in FIG. FIG. 13 illustrates both the case where step S510a is performed and the case where step S510b is performed. FIG. 19 illustrates the processing procedure when step S510a is performed.

さて、ステップS801でデバイス320のサービス更新サービス322は、端末310(より具体的にはUPnPコントローラ311)から、図13のステップS507の受信準備コマンドを受信する。図示は省略したが、ステップS801で受信される受信準備コマンドは、具体的にはSOAPコマンドである。   In step S801, the service update service 322 of the device 320 receives the reception preparation command in step S507 of FIG. 13 from the terminal 310 (more specifically, the UPnP controller 311). Although illustration is omitted, the reception preparation command received in step S801 is specifically a SOAP command.

図4のサービス定義ファイル151の19〜26行目に定義されているように、受信準備コマンドは、具体的には「Listen」というアクションであり、「srgSrverUri」と「setListeningFlag」という2つの引数が与えられる。「srgSrverUri」という引数には、サーバ330のURIが指定される。また、受信準備をデバイス320に行わせるために、「setListeningFlag」という引数は真に設定される。   As defined in the 19th to 26th lines of the service definition file 151 in FIG. 4, the reception preparation command is specifically an action “Listen”, and two arguments “srgSrverUri” and “setListeningFlag” Given. The argument “srgSrverUri” specifies the URI of the server 330. Also, the argument “setListeningFlag” is set to true in order to cause the device 320 to prepare for reception.

サービス更新サービス322は、受信準備コマンドを受信すると、図13のステップS508のとおり、HTTP応答を返す。なお、サービス更新サービス322は、サービス更新サービス322の「Listening」という状態変数の値を、「setListeningFlag」という引数に指定された値(すなわち真)に更新する。   When receiving the reception preparation command, the service update service 322 returns an HTTP response as shown in step S508 of FIG. The service update service 322 updates the value of the state variable “Listening” of the service update service 322 to the value (ie, true) specified in the argument “setListeningFlag”.

そして、ステップS802でサービス更新サービス322は、受信部324を起動する。その際、サービス更新サービス322は、受信部324に対して、デバイス320自身のUUIDと、サーバ330のアドレス(つまり、受信準備コマンドで引数に指定されていたサーバ330のURI)を通知する。起動された受信部324は、サーバ330からデータを受信するための適宜の処理を行う。例えば、受信部324は、所定のTCPポートを開放してもよい。ステップS802は図13のステップS509の受信準備に対応する。   In step S <b> 802, the service update service 322 activates the reception unit 324. At that time, the service update service 322 notifies the receiving unit 324 of the UUID of the device 320 itself and the address of the server 330 (that is, the URI of the server 330 specified as an argument in the reception preparation command). The activated receiving unit 324 performs appropriate processing for receiving data from the server 330. For example, the receiving unit 324 may open a predetermined TCP port. Step S802 corresponds to the reception preparation in step S509 of FIG.

また、ステップS803で受信部324は、デバイス320のIPアドレスと、デバイス320のUUIDと、デバイス320のOSを、サーバ330のデバイス管理部336に通知する。ステップS803の通知は、図13のステップS510aの受信開始通知である。   In step S <b> 803, the reception unit 324 notifies the device management unit 336 of the server 330 of the IP address of the device 320, the UUID of the device 320, and the OS of the device 320. The notification in step S803 is the reception start notification in step S510a in FIG.

そして、ステップS803での受信開始通知の送信後、デバイス320は、ステップS804に示すように、受信部324がサーバ330からサービスのデータ(つまり新規サービスプログラム332を含むデータ)を受信するまで待つ。ステップS804での待機は、図13において、デバイス320がステップS510aの送信の後、ステップS512での受信まで待つことに対応する。   After transmitting the reception start notification in step S803, the device 320 waits until the reception unit 324 receives service data (that is, data including the new service program 332) from the server 330, as illustrated in step S804. The waiting in step S804 corresponds to waiting for the device 320 in FIG. 13 to receive in step S512 after the transmission in step S510a.

そして、受信部324がサーバ330からサービスのデータを受信すると、ステップS805で受信部324は、受信したデータをサービス更新サービス322に通知する。
すると、ステップS806でサービス更新サービス322は、受信部324から通知されたデータに基づいて、以下の3つの処理を行う。
When the reception unit 324 receives service data from the server 330, the reception unit 324 notifies the service update service 322 of the received data in step S805.
In step S806, the service update service 322 performs the following three processes based on the data notified from the reception unit 324.

第1に、サービス更新サービス322は、デバイス320のデバイス定義ファイルを更新する。
第2に、サービス更新サービス322は、新規サービス323のサービス定義ファイルを追加または更新する。つまり、新規サービス323が今までデバイス320に存在していなかった全く新しいサービスである場合は、サービス更新サービス322は、新たなサービス定義ファイルを作成して保存する。また、新規サービス323が、デバイス320にインストール済みの既存のサービスの新規バージョンである場合は、サービス更新サービス322は、当該既存のサービスのサービス定義ファイルを更新する。
第3に、サービス更新サービス322は、受信した新規サービスプログラム332をデバイス320にインストールする。
First, the service update service 322 updates the device definition file of the device 320.
Second, the service update service 322 adds or updates the service definition file of the new service 323. That is, if the new service 323 is a completely new service that has not existed in the device 320 until now, the service update service 322 creates and stores a new service definition file. When the new service 323 is a new version of an existing service already installed in the device 320, the service update service 322 updates the service definition file of the existing service.
Third, the service update service 322 installs the received new service program 332 in the device 320.

そして、次のステップS807で、サービス更新サービス322は、図4の43行目に示す「UpdateTime」という状態変数の値を現在時刻に更新する。ステップS806〜S807は、図13のステップS513に対応する。   In the next step S807, the service update service 322 updates the value of the state variable “UpdateTime” shown in the 43rd line of FIG. 4 to the current time. Steps S806 to S807 correspond to step S513 in FIG.

最後に、ステップS808でサービス更新サービス322は、GENAにより、デバイス320の周辺の端末(例えば、図13では端末310と端末350)に対して、ステップS807で更新した「UpdateTime」という状態変数の値を通知する。ステップS808は図13のステップS514に対応する。   Finally, in step S808, the service update service 322 uses the GENA to update the value of the state variable “UpdateTime” updated in step S807 to the terminals around the device 320 (for example, the terminal 310 and the terminal 350 in FIG. 13). To be notified. Step S808 corresponds to step S514 in FIG.

以上説明した第3実施形態には、第1実施形態と同様に、動的なサービスの更新による利便性向上という効果がある。また、サービス更新サービス322がUPnPのサービスであるため、第1実施形態と同様に、端末310が新規の特殊なプロトコルを使用する必要がなく、かつ、ライブラリを介してサービス更新サービス322の普及が促進される、という効果もある。   In the third embodiment described above, as in the first embodiment, there is an effect that convenience is improved by dynamic service update. Further, since the service update service 322 is a UPnP service, the terminal 310 does not need to use a new special protocol as in the first embodiment, and the service update service 322 is widely spread via a library. There is also an effect of being promoted.

さらに、第3実施形態によれば、デバイス320は、コンテキストに応じて、コンテキストに適したサービスを提供することができる。よって、端末310(または端末350)は、デバイス320がコンテキストに応じて提供することが可能となったサービスを利用することができる。   Furthermore, according to the third embodiment, the device 320 can provide a service suitable for the context according to the context. Therefore, the terminal 310 (or the terminal 350) can use a service that the device 320 can provide according to the context.

続いて、第4実施形態について説明する。第4実施形態は、コントローラの更新に関する点において第2実施形態と共通である。しかし、第4実施形態は、端末が特定の環境に入ることがインストールのトリガである点において、第2実施形態と異なる。   Subsequently, a fourth embodiment will be described. The fourth embodiment is common to the second embodiment in terms of updating the controller. However, the fourth embodiment is different from the second embodiment in that the installation trigger is that the terminal enters a specific environment.

すなわち、第4実施形態によれば、端末が存在する環境に応じて、当該環境で使われるサービス(あるいは当該環境に適したサービス)を利用するためのコントローラが、端末にインストールされる。以下、図20〜26を参照して第4実施形態について詳しく説明する。   That is, according to the fourth embodiment, a controller for using a service used in the environment (or a service suitable for the environment) is installed in the terminal according to the environment in which the terminal exists. Hereinafter, the fourth embodiment will be described in detail with reference to FIGS.

図20は、第4実施形態の動作シーケンス図である。また、図21は、第4実施形態のシステム構成図である。図21に示すように、第4実施形態のシステム400は、端末410とデバイス420とサーバ430とセンサ440を含む。システム400内には、端末410以外の端末がさらにあってもよく、センサ440以外のセンサがさらにあってもよい。図20は、図21の端末410、デバイス420、サーバ430、およびセンサ440による動作シーケンスの例を示す。   FIG. 20 is an operation sequence diagram of the fourth embodiment. FIG. 21 is a system configuration diagram of the fourth embodiment. As illustrated in FIG. 21, the system 400 according to the fourth embodiment includes a terminal 410, a device 420, a server 430, and a sensor 440. In the system 400, there may be further terminals other than the terminal 410, and there may be further sensors other than the sensor 440. FIG. 20 shows an example of an operation sequence performed by the terminal 410, the device 420, the server 430, and the sensor 440 in FIG.

端末410は、通信機能とUPnPのコントローラ機能を有し、かつ、ソフトウェアをインストールすることが可能であれば、どのような種類の端末であってもよい。例えば、端末410は、携帯電話、スマートフォン、タブレット端末、PDA、ノートPCのような携帯端末であってもよいし、デスクトップPCであってもよい。   The terminal 410 may be any type of terminal as long as it has a communication function and a UPnP controller function and can install software. For example, the terminal 410 may be a mobile terminal such as a mobile phone, a smartphone, a tablet terminal, a PDA, or a notebook PC, or a desktop PC.

デバイス420は、通信機能とUPnPのサービス提供機能を有していれば、どのようなデバイスでもよい。デバイス420は、ソフトウェアのインストールが不可能なものであってもよい。例えば、携帯電話、スマートフォン、タブレット端末、PDA、ノートPC、デスクトップPC、プリンタ、プロジェクタ、テレビ、録画装置、照明装置など、様々な装置がデバイス420として利用される可能性がある。なお、端末410とデバイス420は、ネットワークを介して互いに通信することができる。   The device 420 may be any device as long as it has a communication function and a UPnP service providing function. The device 420 may not be able to install software. For example, various devices such as a mobile phone, a smartphone, a tablet terminal, a PDA, a notebook PC, a desktop PC, a printer, a projector, a television, a recording device, and a lighting device may be used as the device 420. Note that the terminal 410 and the device 420 can communicate with each other via a network.

サーバ430は、ネットワーク(例えばインターネット)を介した通信が可能なコンピュータである。サーバ430は、少なくとも端末410と通信可能である。また、後述するとおり、第4実施形態では、ある種の通知が、センサ440からサーバ430に送信されてもよく、端末410からサーバ430に送信されてもよい。センサ440が通知を送信する場合は、サーバ430は、センサ440とも通信可能なように構成される。   The server 430 is a computer that can communicate via a network (for example, the Internet). The server 430 can communicate with at least the terminal 410. Further, as described later, in the fourth embodiment, a certain type of notification may be transmitted from the sensor 440 to the server 430, or may be transmitted from the terminal 410 to the server 430. When the sensor 440 transmits a notification, the server 430 is configured to be able to communicate with the sensor 440 as well.

センサ440は、1種の検出装置である。具体的には、端末410が特定の環境に存在する場合に、センサ440は、端末410が特定の環境に存在することを示す検出通知を送信する。なお、第3実施形態に関する説明と同様に、第4実施形態に関する説明においても、環境のことを「コンテキスト」ともいう。   The sensor 440 is a kind of detection device. Specifically, when the terminal 410 exists in a specific environment, the sensor 440 transmits a detection notification indicating that the terminal 410 exists in the specific environment. Note that the environment is also referred to as a “context” in the description of the fourth embodiment, as in the description of the third embodiment.

例えば、センサ440は、特定の環境に予め設置された無線LANアクセスポイントやRFIDリーダなどの装置であってもよい。あるいは、センサ440は、端末410に内蔵されたGPSセンサなどのセンサであってもよい。   For example, the sensor 440 may be a device such as a wireless LAN access point or an RFID reader installed in advance in a specific environment. Alternatively, the sensor 440 may be a sensor such as a GPS sensor built in the terminal 410.

さて、端末410とデバイス420とサーバ430のさらなる詳細は、後ほど図21を参照して説明することにして、先に図20の動作シーケンスについて説明する。
図20のステップS901〜S906は、図7のステップS301〜S306と同様である。よって、詳しい説明は省略するが、ステップS901〜S906の結果として、端末410は、デバイス420の提供するサービス(例えば、後述する図21のサービス422)を発見し、デバイス420からデバイス定義ファイルとサービス定義ファイルを取得する。
その後、ステップS907で端末410は、発見したサービスを利用するためのコントローラのデータをサーバ430から受信するための準備を行う。例えば、ステップS907の受信準備は、所定のTCPポートを開放する処理を含んでもよい。
Now, further details of the terminal 410, the device 420, and the server 430 will be described later with reference to FIG. 21, and the operation sequence of FIG. 20 will be described first.
Steps S901 to S906 in FIG. 20 are the same as steps S301 to S306 in FIG. Therefore, although detailed description is omitted, as a result of steps S901 to S906, the terminal 410 discovers a service provided by the device 420 (for example, a service 422 in FIG. Get a definition file.
Thereafter, in step S907, the terminal 410 makes preparations for receiving from the server 430 controller data for using the discovered service. For example, the reception preparation in step S907 may include a process of opening a predetermined TCP port.

端末410は、受信の準備を終えると、次のステップS908で、サーバ430に通知を送る。以下では説明の便宜上、ステップS908の通知のことも「受信開始通知」という。第4実施形態における受信開始通知は、端末410がコントローラのデータを受信可能なことをサーバ430に知らせるための通知である。   After completing the preparation for reception, the terminal 410 sends a notification to the server 430 in the next step S908. Hereinafter, for convenience of explanation, the notification in step S908 is also referred to as “reception start notification”. The reception start notification in the fourth embodiment is a notification for notifying the server 430 that the terminal 410 can receive controller data.

受信開始通知は、コントローラのインストール先である端末410のアドレスを明示的にペイロードに含んでもよい。または、サーバ430は、受信開始通知の送信元アドレスを、端末410のアドレスとして認識してもよい。   The reception start notification may explicitly include in the payload the address of the terminal 410 where the controller is installed. Alternatively, the server 430 may recognize the transmission source address of the reception start notification as the address of the terminal 410.

以下では、コントローラのインストール先を示す情報として、受信開始通知には、端末410のIPアドレスと端末410のUUIDが含まれるものとする。また、複数のOSに応じて、同じサービスを利用するためであっても複数の異なるコントローラプログラムが使われる場合がある。よって、以下では、受信開始通知には、端末410のOSを示す情報(例えばOSの名称とバージョン番号を表す文字列)が含まれるものとする。さらに、受信開始通知には、端末410が利用しようとするサービス(つまりステップS901〜S906で検出されたサービス)を識別する識別情報(例えばサービスID)も含まれる。   In the following, it is assumed that the reception start notification includes the IP address of the terminal 410 and the UUID of the terminal 410 as information indicating the installation destination of the controller. In addition, depending on a plurality of OSs, a plurality of different controller programs may be used even for using the same service. Therefore, in the following, it is assumed that the reception start notification includes information indicating the OS of the terminal 410 (for example, a character string indicating the OS name and version number). Further, the reception start notification includes identification information (for example, service ID) for identifying the service that the terminal 410 intends to use (that is, the service detected in steps S901 to S906).

さて、第4実施形態では、ステップS908で受信開始通知が送信された後、コントローラのデータがすぐに端末410に送信されるとは限らない。サーバ430は、ステップS909aまたはS909bのようなトリガを検出してはじめて、ステップS910のようにコントローラのデータを端末410に送信する。   In the fourth embodiment, the controller data is not always transmitted to the terminal 410 immediately after the reception start notification is transmitted in step S908. The server 430 transmits controller data to the terminal 410 as in step S910 only after detecting a trigger such as step S909a or S909b.

例えば、センサ440が所定の場所に固定的に設置されている場合、センサ440は、端末410を検出すると、ステップS909aのように、センサ値と端末410の端末IDをサーバ430に送信する。この場合、センサ値は、センサ440の識別情報であってもよい。サーバ430は、センサ440の識別情報とセンサ440の設置場所を対応づけるデータベースを参照することで、端末410が検出された環境(すなわちセンサ440の固定的な設置場所)を判別することができる。   For example, when the sensor 440 is fixedly installed at a predetermined location, when detecting the terminal 410, the sensor 440 transmits the sensor value and the terminal ID of the terminal 410 to the server 430 as in step S909a. In this case, the sensor value may be identification information of the sensor 440. The server 430 can determine the environment (that is, the fixed installation location of the sensor 440) in which the terminal 410 is detected by referring to the database that associates the identification information of the sensor 440 with the installation location of the sensor 440.

あるいは、センサ440が端末410に内蔵されている場合、センサ440は、定期的に、または不定期に、ステップS909aのように、センサ値と端末410の端末IDをサーバ430に送信する。この場合、センサ値は、例えば、緯度と経度の組み合わせである。サーバ430は、地図データを参照することで、端末410の存在する環境を判別することができる。図20の例では、ステップS909aで通知されたセンサ値が、「端末410は特定の環境に存在している」と示す値であったものとする。   Alternatively, when the sensor 440 is built in the terminal 410, the sensor 440 transmits the sensor value and the terminal ID of the terminal 410 to the server 430 periodically or irregularly as in step S909a. In this case, the sensor value is, for example, a combination of latitude and longitude. The server 430 can determine the environment in which the terminal 410 exists by referring to the map data. In the example of FIG. 20, it is assumed that the sensor value notified in step S909a is a value indicating that “the terminal 410 exists in a specific environment”.

なお、端末IDは、例えば、端末410のIPアドレスであってもよいし、端末410のUUIDであってもよいし、両者の組み合わせであってもよい。
ところで、ステップS909aのようにセンサ440が通知を送信する代わりに、ステップS909bのように、端末410がサーバ430に対して、ステップS901〜S906で検出したサービスを利用するためのコントローラのデータを要求してもよい。
The terminal ID may be, for example, the IP address of the terminal 410, the UUID of the terminal 410, or a combination of both.
By the way, instead of the sensor 440 sending a notification as in step S909a, the terminal 410 requests the controller data for using the service detected in steps S901 to S906 from the server 430 as in step S909b. May be.

例えば、場合によっては、実際のセンサ値が得られない環境もあるかもしれない。また、ユーザは、「実際のセンサ値と関係なく、端末410が特定の環境にあるものと見なして、当該特定の環境に適したサービスを、端末410を介してデバイス420から受けたい」と思うかもしれない。   For example, in some cases, there may be an environment where actual sensor values cannot be obtained. In addition, the user wants to receive a service suitable for the specific environment from the device 420 via the terminal 410, assuming that the terminal 410 is in a specific environment regardless of the actual sensor value. It may be.

よって、端末410は、ステップS909bのように要求を送信してもよい。また、ステップS909bの要求には、特定の環境を指定する情報(つまりコンテキスト情報)と、端末410(すなわち、所望のサービスを利用するためのコントローラのインストール先)を識別する端末IDが含まれる。例えば、端末410は、いくつかの環境を選択肢として含むリストをユーザに提示してもよい。そして、端末410は、ユーザからの入力に基づいて、ユーザの選択した環境を指定する情報を要求に含めてもよい。   Therefore, the terminal 410 may transmit a request as in step S909b. The request in step S909b includes information specifying a specific environment (that is, context information) and a terminal ID that identifies the terminal 410 (that is, the installation destination of the controller for using a desired service). For example, the terminal 410 may present a user with a list including several environments as options. Then, the terminal 410 may include information specifying the environment selected by the user in the request based on the input from the user.

そして、ステップS909aの通知またはステップS909bの要求の受信に応じて、ステップS910でサーバ430は、適宜のコントローラ(より具体的には、当該コントローラを実現するためのプログラムを含むデータ)を端末410に送信する。   Then, in response to reception of the notification in step S909a or the request in step S909b, in step S910, the server 430 sends an appropriate controller (more specifically, data including a program for realizing the controller) to the terminal 410. Send.

具体的には、ステップS909aの通知を受信した場合、サーバ430は、センサ値に基づいて端末410のコンテキストを判別する。あるいは、ステップS909bの要求を受信した場合、サーバ430は、コンテキストを指定する情報を要求から抽出する。いずれにせよ、サーバ430は、コンテキストを表す情報を取得する。   Specifically, when the notification in step S909a is received, the server 430 determines the context of the terminal 410 based on the sensor value. Alternatively, when receiving the request in step S909b, the server 430 extracts information specifying the context from the request. In any case, the server 430 acquires information representing the context.

また、サーバ430は、ステップS908の受信開始通知の内容を記憶している。よって、サーバ430は、ステップS909aで通知されたデバイスIDを用いて、記憶している受信開始通知の内容を検索することにより、当該デバイスIDで識別される端末410からかつて受信開始通知により通知されたサービスの識別情報を取得する。そして、サーバ430は、コンテキストと、サービスの識別情報に基づいて、端末410に送信する対象の適宜のコントローラを選択し、選択したコントローラのプログラムをステップS910で送信する。   In addition, the server 430 stores the content of the reception start notification in step S908. Therefore, the server 430 is notified by the reception start notification once from the terminal 410 identified by the device ID by searching the content of the stored reception start notification using the device ID notified in step S909a. Get service identification information. Then, the server 430 selects an appropriate controller to be transmitted to the terminal 410 based on the context and the service identification information, and transmits the program of the selected controller in step S910.

すると、端末410は、ステップS910で送信されたコントローラのプログラムを受信し、次のステップS911で、受信したプログラムを端末410自身にインストールする。   Then, the terminal 410 receives the controller program transmitted in step S910, and installs the received program in the terminal 410 itself in the next step S911.

以上のようにして、端末410には、動的にコントローラのプログラムがインストールされる。よって、図20には示されていないが、端末410は、今後、インストールされたコントローラから制御メッセージ(具体的にはSOAPコマンド)を送信することにより、デバイス420により提供されるサービスを利用することができる。   As described above, the controller program is dynamically installed in the terminal 410. Therefore, although not shown in FIG. 20, the terminal 410 may use a service provided by the device 420 by transmitting a control message (specifically, a SOAP command) from the installed controller in the future. Can do.

ところで、第4実施形態においても、第2実施形態と同様に、コントローラ更新サービス412がUPnPのサービスとして実装されるので、端末410はデバイス定義ファイルとサービス定義ファイルを記憶している。第4実施形態の端末410のデバイス定義ファイルは、例えば、図10のデバイス定義ファイル240と同様であってもよい。   By the way, in the fourth embodiment, as in the second embodiment, the controller update service 412 is implemented as a UPnP service, so the terminal 410 stores a device definition file and a service definition file. The device definition file of the terminal 410 of the fourth embodiment may be the same as the device definition file 240 of FIG. 10, for example.

また、第2実施形態に関して図11を参照して説明したとおり、図11には、説明の都合上、第2実施形態では使われず第4実施形態で使われる状態変数についての定義も含むサービス定義ファイル241が例示されている。具体的には、図11の25〜26行目で定義されている「Listening」という状態変数は、上記のとおり、第2実施形態では使われず第4実施形態で使われる。   Further, as described with reference to FIG. 11 for the second embodiment, for convenience of explanation, FIG. 11 includes service definitions that include definitions for state variables that are not used in the second embodiment but are used in the fourth embodiment. A file 241 is illustrated. Specifically, the state variable “Listening” defined in the 25th to 26th lines in FIG. 11 is not used in the second embodiment but used in the fourth embodiment as described above.

この「Listening」という状態変数は、ブール型の状態変数である。「Listening」という状態変数の値が真の場合は、端末410は受信準備が完了した状態(つまりサーバ430からの受信が可能な状態)である。逆に、「Listening」という状態変数の値が偽の場合、端末410は、サーバ430からの受信が不可能な状態(例えば、所定のTCPポートが閉じている状態)である。   This state variable “Listening” is a Boolean state variable. When the value of the state variable “Listening” is true, the terminal 410 is ready for reception (that is, a state where reception from the server 430 is possible). Conversely, when the value of the state variable “Listening” is false, the terminal 410 is in a state where reception from the server 430 is impossible (for example, a state where a predetermined TCP port is closed).

続いて、図21を参照して、端末410とデバイス420とサーバ430の詳細について説明する。
図21に示すように、端末410にはUPnP制御部411が含まれる。UPnP制御部411は、1つ以上のコントローラを含むことができるが、例えば図20のステップS901の時点では、UPnP制御部411は、1つもコントローラを含んでいなくてもよい。
Next, details of the terminal 410, the device 420, and the server 430 will be described with reference to FIG.
As shown in FIG. 21, the terminal 410 includes a UPnP control unit 411. Although the UPnP control unit 411 can include one or more controllers, for example, at the time of step S901 in FIG. 20, the UPnP control unit 411 may not include any controller.

また、端末410は、UPnPのサービスを利用するためのコントローラを動的に追加または更新するための、コントローラ更新サービス412を提供する。図20のステップS901の探索、ステップS902の応答の受信、ステップS903の要求、ステップS904の受信、ステップS905の要求、およびステップS906の受信は、具体的には、コントローラ更新サービス412により実行される。また、ステップS911のインストールも、コントローラ更新サービス412により実行される。   Also, the terminal 410 provides a controller update service 412 for dynamically adding or updating a controller for using the UPnP service. The search in step S901, the reception of the response in step S902, the request in step S903, the reception in step S904, the request in step S905, and the reception in step S906 are specifically executed by the controller update service 412. . The installation in step S911 is also executed by the controller update service 412.

なお、全く新たなコントローラを追加することも、既存のコントローラを新たなバージョンのコントローラに更新することも、コントローラのプログラムのインストールにより同様に実現される。したがって、以下ではコントローラの追加と更新を区別しないことがある。   Note that adding a completely new controller and updating an existing controller to a new version of the controller are realized in the same manner by installing a controller program. Therefore, the following may not distinguish between controller addition and update.

また、第2実施形態と同様に第4実施形態でも、コントローラ更新サービス412がUPnPのサービスとして実装されている。しかし、実施形態によっては、「コントローラ更新サービス412同様の機能を持つものの、UPnPのサービスではない」というプログラムモジュールが、コントローラ更新サービス412の代わりに使われてもよい。   Similarly to the second embodiment, the controller update service 412 is also implemented as a UPnP service in the fourth embodiment. However, in some embodiments, a program module that has the same function as the controller update service 412 but is not a UPnP service may be used instead of the controller update service 412.

端末410はさらに受信部413を含む。受信部413は、サーバ430からのデータ受信を待ち、データを受信すると、コントローラ更新サービス412に受信を通知する。
具体的には、図20のステップS906の後、コントローラ更新サービス412が受信部413を起動し、ステップS907で受信部413が受信準備を行ってもよい。また、ステップS908の受信開始通知は、受信部413から送信されてもよい。受信部413は、ステップS910でコントローラのプログラムを受信すると、コントローラ更新サービス412に受信を通知する。すると、コントローラ更新サービス412がステップS911でコントローラのプログラムを端末410にインストールする。
Terminal 410 further includes a receiving unit 413. The receiving unit 413 waits for data reception from the server 430, and when receiving the data, notifies the controller update service 412 of the reception.
Specifically, after step S906 of FIG. 20, the controller update service 412 may activate the reception unit 413, and the reception unit 413 may prepare for reception in step S907. In addition, the reception start notification in step S908 may be transmitted from the reception unit 413. When receiving the controller program in step S910, the receiving unit 413 notifies the controller update service 412 of the reception. Then, the controller update service 412 installs the controller program in the terminal 410 in step S911.

端末410は、さらに、図20のステップS909bのような要求を送信する要求部414を有していてもよい。要求部414は、ステップS909bの要求で指定する環境をユーザに指定させるための処理も行う。しかし、要求部414は省略されてもよい。   The terminal 410 may further include a request unit 414 that transmits a request as in step S909b of FIG. The request unit 414 also performs processing for causing the user to specify the environment specified by the request in step S909b. However, the request unit 414 may be omitted.

なお、図21には、ステップS911でインストールされる新規コントローラ415が破線で示されている。
また、デバイス420は、UPnPサービス提供部421を含む。UPnPサービス提供部421は、サービス222を提供する。サービス222は、具体的には、新規コントローラ415を介して利用されるサービスである。換言すれば、サービス222と対応づけられた特定の環境に端末410が入ることをきっかけとして、端末410には新規コントローラ415がインストールされる。
In FIG. 21, the new controller 415 installed in step S911 is indicated by a broken line.
The device 420 includes a UPnP service providing unit 421. The UPnP service providing unit 421 provides the service 222. Specifically, the service 222 is a service used via the new controller 415. In other words, the new controller 415 is installed in the terminal 410 when the terminal 410 enters the specific environment associated with the service 222.

さて、サーバ430は格納部431を有する。格納部431には、サービス422に対応する新規コントローラ415を実現するためのプログラムである新規コントローラプログラム432が格納されている。新規コントローラプログラム432は、図20のステップS910で送信され、ステップS911で端末410にインストールされる。インストールの結果として、端末410は、新規コントローラ415を介してサービス222を利用することができるようになる。   Now, the server 430 has a storage unit 431. The storage unit 431 stores a new controller program 432 that is a program for realizing the new controller 415 corresponding to the service 422. The new controller program 432 is transmitted in step S910 of FIG. 20, and is installed in the terminal 410 in step S911. As a result of the installation, the terminal 410 can use the service 222 via the new controller 415.

なお、簡単化のため図21には1つの新規コントローラプログラム432のみが示されている。しかし、格納部431は、複数のサービスに対応する複数のコントローラそれぞれのプログラムを格納していてもよい。   For simplification, only one new controller program 432 is shown in FIG. However, the storage unit 431 may store programs for a plurality of controllers corresponding to a plurality of services.

また、あるOSにしたがって動作する端末が新規コントローラ415を実現するためのプログラムと、別のOSにしたがって動作する別の端末が、同じ新規コントローラ415を実現するためのプログラムは、異なる場合がある。そのため、格納部431は、具体的には、サービス422を識別する情報とOSを表す情報の双方と対応づけて、新規コントローラプログラム432を格納しているものとする。   In addition, a program for realizing a new controller 415 by a terminal operating in accordance with an OS and a program for realizing the same new controller 415 in another terminal operating in accordance with another OS may be different. Therefore, the storage unit 431 specifically stores the new controller program 432 in association with both information identifying the service 422 and information representing the OS.

さて、サーバ430は、図20のステップS909aで送信されるセンサ値から、端末410のコンテキスト(すなわち端末410の存在する環境)を抽出するコンテキスト抽出部433をさらに有する。コンテキスト抽出部433の詳細は、第3実施形態のコンテキスト抽出部333と同様なので、詳しい説明は省略する。第4実施形態のコンテキスト抽出部433も、実施形態に応じた適宜の粒度のコンテキストを抽出することができる。   Now, the server 430 further includes a context extraction unit 433 that extracts the context of the terminal 410 (that is, the environment in which the terminal 410 exists) from the sensor value transmitted in step S909a of FIG. Details of the context extraction unit 433 are the same as those of the context extraction unit 333 of the third embodiment, and thus detailed description thereof is omitted. The context extraction unit 433 of the fourth embodiment can also extract a context with an appropriate granularity according to the embodiment.

サーバ430はさらに、端末410に送信する対象のコントローラを決定するコントローラ決定部434を含む。
なお、図20のステップS909bのように要求部414から要求が送信される場合、コントローラ決定部434が要求を受信する。そして、コントローラ決定部434は、受信した要求から、コンテキスト情報を抽出する。逆に、図20のステップS909aのようにセンサ値が送信される場合、コントローラ決定部434は、コンテキスト抽出部433から、コンテキスト情報を取得する。
The server 430 further includes a controller determination unit 434 that determines a target controller to be transmitted to the terminal 410.
Note that when a request is transmitted from the request unit 414 as in step S909b of FIG. 20, the controller determination unit 434 receives the request. Then, the controller determination unit 434 extracts context information from the received request. Conversely, when the sensor value is transmitted as in step S <b> 909 a of FIG. 20, the controller determination unit 434 acquires context information from the context extraction unit 433.

いずれにせよ、コントローラ決定部434は、コンテキストに基づいてコントローラを決定する。その際、コントローラ決定部434は、条件テーブル435を参照することで、コンテキストと指定されたサービスの組み合わせに対応するコントローラを決定する。   In any case, the controller determination unit 434 determines a controller based on the context. At that time, the controller determination unit 434 refers to the condition table 435 to determine a controller corresponding to the combination of the context and the designated service.

図22に、条件テーブル435の具体例を示す。図22に示すように、条件テーブル435は、コンテキストとサービスとコントローラを対応づけるテーブルである。なお、図22では、理解を容易にするために、コンテキストとサービスとコントローラがそれぞれ名前で表現されている。しかし、例えば、条件テーブル435は、コンテキストを示すコード番号と、サービスIDとコントローラIDとを対応づけるテーブルであってもよい。   FIG. 22 shows a specific example of the condition table 435. As shown in FIG. 22, the condition table 435 is a table that associates contexts, services, and controllers. In FIG. 22, in order to facilitate understanding, contexts, services, and controllers are represented by names. However, for example, the condition table 435 may be a table that associates a code number indicating a context, a service ID, and a controller ID.

図22の例では、「会議室」というコンテキストと、ドキュメント表示サービスと、ドキュメントページめくりコントローラが対応づけられている。そして、「事務所」というコンテキストと、照明ON/OFFサービスと、照明ON/OFFリモコンコントローラが対応づけられている。また、「自宅」というコンテキストと、ビデオ録画サービスと、ビデオリモコンコントローラが対応づけられている。   In the example of FIG. 22, the context “conference room”, the document display service, and the document page turning controller are associated with each other. The context of “office”, the lighting ON / OFF service, and the lighting ON / OFF remote controller are associated with each other. In addition, the context “home”, the video recording service, and the video remote controller are associated with each other.

例えば、図20のステップS908で端末410の受信部413から送信される受信開始通知において指定されているサービスが、ドキュメント表示サービスであったとする。この場合、コンテキスト抽出部433による「会議室」というコンテキストの抽出に応じて、コントローラ決定部434は、ドキュメントページめくりコントローラのプログラムを端末410に送信することを決定する。   For example, it is assumed that the service specified in the reception start notification transmitted from the reception unit 413 of the terminal 410 in step S908 in FIG. 20 is a document display service. In this case, in response to the extraction of the context “conference room” by the context extraction unit 433, the controller determination unit 434 determines to transmit the document page turning controller program to the terminal 410.

ここで、再度図21の説明に戻ると、サーバ430はさらに、受信準備の整った端末410についての情報を管理する端末管理部436を有する。端末管理部436は、具体的には、端末テーブル437を用いて、端末410についての情報を管理する。   Here, returning to the description of FIG. 21 again, the server 430 further includes a terminal management unit 436 that manages information about the terminal 410 ready for reception. Specifically, the terminal management unit 436 manages information about the terminal 410 using the terminal table 437.

図23に、端末テーブル437の具体例を示す。端末テーブル437の各エントリは、1台の端末410に対応する。図23には、2台の端末410にそれぞれ対応する2つのエントリが例示されている。図23に示すように、端末テーブル437は、端末410のIPアドレスと、端末410のUUIDと、端末410のOSと、端末410が受信を待っている対象のコントローラに対応するサービスとを対応づけるテーブルである。   FIG. 23 shows a specific example of the terminal table 437. Each entry in the terminal table 437 corresponds to one terminal 410. FIG. 23 illustrates two entries respectively corresponding to the two terminals 410. As illustrated in FIG. 23, the terminal table 437 associates the IP address of the terminal 410, the UUID of the terminal 410, the OS of the terminal 410, and the service corresponding to the target controller that the terminal 410 is waiting to receive. It is a table.

図21には1台の端末410と1台のデバイス420しか図示されていないが、システム400は複数の端末410と複数のデバイス420を含んでいてもよい。よって、端末管理部436は、ある1台の端末410(より具体的には受信部413)から図20のステップS908のように受信開始通知を受信するたびに、端末テーブル437にエントリを追加するか、または既存のエントリを更新する。   Although only one terminal 410 and one device 420 are shown in FIG. 21, the system 400 may include a plurality of terminals 410 and a plurality of devices 420. Therefore, the terminal management unit 436 adds an entry to the terminal table 437 every time a reception start notification is received from a certain terminal 410 (more specifically, the reception unit 413) as in step S908 of FIG. Or update an existing entry.

ここで、再度図21の説明に戻ると、サーバ430はさらに送信部438を有する。送信部438は、コントローラ決定部434の決定にしたがって、格納部431から適宜の新規コントローラプログラム432を読み出して、新規コントローラプログラム432を端末410に送信する。   Here, returning to the description of FIG. 21 again, the server 430 further includes a transmission unit 438. The transmission unit 438 reads an appropriate new controller program 432 from the storage unit 431 according to the determination of the controller determination unit 434 and transmits the new controller program 432 to the terminal 410.

ところで、図20のステップS901〜S911までの処理は、サーバ430が図24と図25のフローチャートにしたがって動作し、端末410が図26のフローチャートにしたがって動作することにより、実現される。具体的には以下のとおりである。   By the way, the processing from step S901 to S911 in FIG. 20 is realized by the server 430 operating in accordance with the flowcharts of FIGS. 24 and 25 and the terminal 410 operating in accordance with the flowchart of FIG. Specifically, it is as follows.

図24は、端末410からの受信開始通知に応じて、サーバ430が行う処理のフローチャートである。
ステップS1001でサーバ430の端末管理部436は、端末410から、受信開始通知を受信する。より具体的には、図20のステップS908のように、端末管理部436は、端末410の受信部413から受信開始通知を受信する。
FIG. 24 is a flowchart of processing performed by the server 430 in response to a reception start notification from the terminal 410.
In step S <b> 1001, the terminal management unit 436 of the server 430 receives a reception start notification from the terminal 410. More specifically, the terminal management unit 436 receives a reception start notification from the reception unit 413 of the terminal 410 as in step S908 of FIG.

なお、受信開始通知は、ステップS908に関して説明したとおり、コントローラのインストール先である端末410の、IPアドレスとUUIDを含む。また、受信開始通知は、端末410のOSを示す情報も含み、端末410が受信を待っている対象のコントローラに対応するサービスを識別する識別情報も含む。   Note that the reception start notification includes the IP address and UUID of the terminal 410, which is the installation destination of the controller, as described with reference to step S908. The reception start notification includes information indicating the OS of the terminal 410, and also includes identification information for identifying a service corresponding to a target controller that the terminal 410 is waiting to receive.

そして、第3実施形態において同じデバイス320から複数回サーバ330が受信開始通知を受信する場合があり得るのと類似の理由から、第4実施形態においてもサーバ430は、同じ端末310から複数回受信開始通知を受信する場合があり得る。   Then, for the same reason that the server 330 may receive a reception start notification multiple times from the same device 320 in the third embodiment, the server 430 also receives multiple times from the same terminal 310 in the fourth embodiment. A start notification may be received.

そこで、端末管理部436は、端末410から受信開始通知を受信すると、次のステップS1002で、受信開始通知によって通知されたUUIDと同じUUIDが格納されたエントリが端末テーブル437に存在するか否かを判断する。もしそのようなエントリが端末テーブル437にあれば、処理はステップS1003に移行する。逆に、そのようなエントリが端末テーブル437になければ、処理はステップS1004に移行する。   Therefore, when receiving a reception start notification from the terminal 410, the terminal management unit 436 determines whether or not an entry storing the same UUID as the UUID notified by the reception start notification exists in the terminal table 437 in the next step S1002. Judging. If such an entry exists in the terminal table 437, the process proceeds to step S1003. Conversely, if there is no such entry in the terminal table 437, the process proceeds to step S1004.

ステップS1003で端末管理部436は、ステップS1002で見つけた当該エントリのIPアドレスとOSとサービスのフィールドを、受信開始通知により通知されたIPアドレスとOSとサービスの値で上書きする。そして、図24の処理は終了する。   In step S1003, the terminal management unit 436 overwrites the IP address, OS, and service fields of the entry found in step S1002 with the IP address, OS, and service values notified by the reception start notification. Then, the process of FIG. 24 ends.

また、ステップS1004で端末管理部436は、受信開始通知により通知されたIPアドレスとUUIDとOSとサービスの値を格納する新規エントリを、端末テーブル437に追加する。そして、図24の処理は終了する。   In step S1004, the terminal management unit 436 adds a new entry storing the IP address, UUID, OS, and service value notified by the reception start notification to the terminal table 437. Then, the process of FIG. 24 ends.

図25は、図20のステップS909aのようなセンサ440からの通知に応じて、サーバ430が行う処理のフローチャートである。なお、ステップS909bのような要求に応じてサーバ430が新規コントローラプログラム432を送信する場合については、上記の図20〜21についての説明から明らかなので、フローチャートを省略する。   FIG. 25 is a flowchart of processing performed by the server 430 in response to a notification from the sensor 440 as in step S909a of FIG. Note that the case where the server 430 transmits the new controller program 432 in response to the request as in step S909b is clear from the description of FIGS.

さて、ステップS1101でコンテキスト抽出部433が、センサ440から、図20のステップS909aのように、センサ値と端末IDを受信する。端末IDは、具体的には、IPアドレスまたはUUIDである。   In step S1101, the context extraction unit 433 receives the sensor value and the terminal ID from the sensor 440 as in step S909a of FIG. The terminal ID is specifically an IP address or a UUID.

次に、ステップS1002でコンテキスト抽出部433が、通知されたセンサ値からコンテキスト情報を生成する。ステップS1002におけるコンテキスト情報の生成方法の詳細は、図18のステップS702と同様である。そして、コンテキスト抽出部433は、生成したコンテキスト情報をコントローラ決定部434に通知する。   Next, in step S1002, the context extraction unit 433 generates context information from the notified sensor value. The details of the context information generation method in step S1002 are the same as in step S702 of FIG. Then, the context extraction unit 433 notifies the controller determination unit 434 of the generated context information.

また、ステップS1103でコンテキスト抽出部433は、センサ440から通知された端末IDを端末管理部436に通知する。そして、端末管理部436は、通知された端末IDがUUIDとIPアドレスのどちらなのかを判断する。   In step S <b> 1103, the context extraction unit 433 notifies the terminal management unit 436 of the terminal ID notified from the sensor 440. Then, the terminal management unit 436 determines whether the notified terminal ID is a UUID or an IP address.

通知された端末IDがUUIDの場合、処理はステップS1104に移行する。逆に、通知された端末IDがIPアドレスの場合、処理はステップS1105に移行する。
ステップS1104で端末管理部436は、通知されたUUIDがUUIDのフィールドに記憶されているエントリが、端末テーブル437にあるか否かを判断する。もしそのようなエントリがなければ、図25の処理は終了する。逆に、通知されたUUIDがUUIDのフィールドに記憶されているエントリが見つかれば、端末管理部436は、見つけたエントリをコントローラ決定部434に通知し、処理はステップS1106に移行する。
If the notified terminal ID is a UUID, the process proceeds to step S1104. Conversely, if the notified terminal ID is an IP address, the process proceeds to step S1105.
In step S1104, the terminal management unit 436 determines whether the terminal table 437 has an entry in which the notified UUID is stored in the UUID field. If there is no such entry, the process in FIG. 25 ends. On the other hand, if an entry whose notified UUID is stored in the UUID field is found, the terminal management unit 436 notifies the controller determination unit 434 of the found entry, and the process proceeds to step S1106.

また、ステップS1105で端末管理部436は、通知されたIPアドレスがIPアドレスのフィールドに記憶されているエントリが、端末テーブル437にあるか否かを判断する。もしそのようなエントリがなければ、図25の処理は終了する。逆に、通知されたIPアドレスがIPアドレスのフィールドに記憶されているエントリが見つかれば、端末管理部436は、見つけたエントリをコントローラ決定部434に通知し、処理はステップS1106に移行する。   In step S1105, the terminal management unit 436 determines whether the terminal table 437 has an entry in which the notified IP address is stored in the IP address field. If there is no such entry, the process in FIG. 25 ends. On the other hand, if an entry in which the notified IP address is stored in the IP address field is found, the terminal management unit 436 notifies the found entry to the controller determination unit 434, and the process proceeds to step S1106.

ステップS1106でコントローラ決定部434は、下記2つの情報の組み合わせと合致するエントリが条件テーブル435にあるか否かを判断する。   In step S1106, the controller determination unit 434 determines whether there is an entry in the condition table 435 that matches the combination of the following two pieces of information.

・ステップS1102でコンテキスト抽出部433から通知されたコンテキスト情報。
・ステップS1104またはS1105で見つかったエントリ(つまり端末管理部436から通知されたエントリ)のサービス。
Context information notified from the context extraction unit 433 in step S1102
Service of entry found in step S1104 or S1105 (that is, entry notified from terminal management unit 436).

例えば、センサ440から通知された端末IDが、192.168.0.7というIPアドレスだったとする。この場合、図23の端末テーブル437の2番目のエントリがステップS1105で見つかる。2番目のエントリのサービスのフィールドには、「ドキュメント表示サービス」を示す値が格納されている。また、ステップS1102では、コンテキスト抽出部433が「会議室」というコンテキスト情報をコントローラ決定部434に通知したものとする。すると、ステップS1106でコントローラ決定部434は、図22の条件テーブル435において、会議室とドキュメント表示サービスの組み合わせと合致する1番目のエントリを見つける。   For example, it is assumed that the terminal ID notified from the sensor 440 is an IP address of 192.168.0.7. In this case, the second entry of the terminal table 437 in FIG. 23 is found in step S1105. In the service field of the second entry, a value indicating “document display service” is stored. In step S1102, the context extraction unit 433 notifies the controller determination unit 434 of the context information “conference room”. In step S1106, the controller determination unit 434 finds the first entry that matches the combination of the conference room and the document display service in the condition table 435 of FIG.

例えば以上のようにして、ステップS1106においてエントリが見つかった場合、処理はステップS1107に移行する。逆に、エントリが見つからなければ、図25の処理は終了する。   For example, as described above, when an entry is found in step S1106, the process proceeds to step S1107. Conversely, if no entry is found, the process in FIG. 25 ends.

ステップS1107でコントローラ決定部434は、ステップS1104またはS1105で端末テーブル437において見つかったエントリから、IPアドレスとUUIDとOSの値を取得する。そして、コントローラ決定部434は、取得したこれらの値と、ステップS1106で条件テーブル435において見つけたエントリにおける「コントローラ」フィールドの値とを、送信部438に通知する。   In step S1107, the controller determination unit 434 acquires the IP address, UUID, and OS value from the entry found in the terminal table 437 in step S1104 or S1105. The controller determination unit 434 notifies the transmission unit 438 of these acquired values and the value of the “controller” field in the entry found in the condition table 435 in step S1106.

最後に、ステップS1108で送信部438は、コントローラ決定部434から宛先として通知された端末410に対し、コントローラ決定部434から通知されたコントローラのデータを送信する。より具体的には、送信部438は、コントローラ決定部434から通知されたコントローラとOSに基づいて、格納部431から送信対象のデータ(つまり新規コントローラプログラム432を含むデータ)を読み出す。そして、送信部438は、通知されたIPアドレスを宛先として、読み出したデータを送信する。ステップS1108の送信は、図20のステップS910の送信に対応する。   Finally, in step S1108, the transmission unit 438 transmits the controller data notified from the controller determination unit 434 to the terminal 410 notified as the destination from the controller determination unit 434. More specifically, the transmission unit 438 reads data to be transmitted (that is, data including the new controller program 432) from the storage unit 431 based on the controller and OS notified from the controller determination unit 434. Then, the transmission unit 438 transmits the read data with the notified IP address as a destination. The transmission in step S1108 corresponds to the transmission in step S910 in FIG.

なお、ステップS1104、S1105、またはS1106で、検索条件に合致するエントリが見つからない場合は、何らかのエラーがある場合である。よって、これらの場合、上記のとおり図25の処理は終了し、ステップS1108のような送信は行われない。   In step S1104, S1105, or S1106, if no entry matching the search condition is found, there is some error. Therefore, in these cases, the processing in FIG. 25 ends as described above, and transmission as in step S1108 is not performed.

さて、図26は、端末410が行う処理のフローチャートである。図26は図20のステップ901〜S911に対応する。なお、図20には、ステップS909aが行われる場合とS909bが行われる場合の双方が例示されているが、図26には、ステップS909aが行われる場合の処理手順を例示した。   FIG. 26 is a flowchart of processing performed by the terminal 410. FIG. 26 corresponds to steps 901 to S911 in FIG. FIG. 20 illustrates both the case where step S909a is performed and the case where step S909b is performed. FIG. 26 illustrates a processing procedure when step S909a is performed.

さて、ステップS1201でコントローラ更新サービス412が、図20のステップS901のようなM-searchメッセージのマルチキャストにより、端末410の周辺にあるデバイスのUPnPサービスを検索する。第2実施形態に関して「対象サービス」が何らかの方法により決められているものと仮定したのと同様に、第4実施形態でも、ステップS1201で検索する対象のサービスが何らかの方法により決められているものとする。   In step S1201, the controller update service 412 searches for UPnP services of devices in the vicinity of the terminal 410 by multicasting the M-search message as in step S901 in FIG. Similar to the assumption that the “target service” is determined by some method in the second embodiment, the target service to be searched in step S1201 is also determined by some method in the fourth embodiment. To do.

もし、例えばデバイス420のように、対象サービスを提供するデバイスがあれば、コントローラ更新サービス412は図20のステップS902のような応答を受信する。この場合、コントローラ更新サービス412はさらに、図20のステップS903〜S906のようにして、対象サービスを提供するデバイスのデバイス定義ファイルと、対象サービスのサービス定義ファイルを取得する。   If there is a device that provides the target service, for example, the device 420, the controller update service 412 receives a response as shown in step S902 of FIG. In this case, the controller update service 412 further acquires the device definition file of the device providing the target service and the service definition file of the target service as in steps S903 to S906 in FIG.

次に、ステップS1202でコントローラ更新サービス412は、ステップS1201で検索したUPnPサービスを提供するデバイスが発見されたか否かを判断する。
ステップS1201でのM-searchメッセージの送信から所定の時間が経過しても、ステップS902のような応答が1つも受信されない場合、コントローラ更新サービス412は、「対象サービスを提供するデバイスは発見されなかった」と判断する。そして、図26の処理も終了する。
In step S1202, the controller update service 412 determines whether a device that provides the UPnP service searched in step S1201 has been discovered.
If no response as in step S902 is received even after a predetermined time has elapsed since the transmission of the M-search message in step S1201, the controller update service 412 indicates that “a device providing the target service has not been found. Judging. Then, the process of FIG.

逆に、ステップS902のような応答が得られて、デバイス定義ファイルとサービス定義ファイルが取得されていれば、対象サービスを提供するデバイスが存在する。よって、この場合、コントローラ更新サービス412は、「対象サービスを提供するデバイスが発見された」と判断し、処理はステップS1203へと移行する。   Conversely, if a response as in step S902 is obtained and the device definition file and the service definition file are acquired, there is a device that provides the target service. Therefore, in this case, the controller update service 412 determines that “a device that provides the target service has been discovered”, and the process proceeds to step S1203.

ステップS1203でコントローラ更新サービス412は、受信部413を起動する。その際、コントローラ更新サービス412は受信部413に対して、端末410自身のUUIDと、ステップS1201で発見したサービスと、サーバ430のアドレス(例えばURI)を通知する。起動された受信部413は、サーバ430からデータを受信するための適宜の処理を行う。例えば、受信部413は、所定のTCPポートを開放してもよい。ステップS1203は図20のステップS907の受信準備に対応する。   In step S1203, the controller update service 412 activates the reception unit 413. At that time, the controller update service 412 notifies the receiving unit 413 of the UUID of the terminal 410 itself, the service discovered in step S1201, and the address (for example, URI) of the server 430. The activated receiving unit 413 performs appropriate processing for receiving data from the server 430. For example, the receiving unit 413 may open a predetermined TCP port. Step S1203 corresponds to the reception preparation in step S907 of FIG.

また、ステップS1204で受信部413は、端末410のIPアドレスと、端末410のUUIDと、端末410のOSと、ステップS1201で発見されたサービスを、サーバ430の端末管理部436に通知する。ステップS1204の通知は、図20のステップS908の受信開始通知である。   In step S1204, the reception unit 413 notifies the terminal management unit 436 of the server 430 of the IP address of the terminal 410, the UUID of the terminal 410, the OS of the terminal 410, and the service discovered in step S1201. The notification in step S1204 is the reception start notification in step S908 in FIG.

そして、ステップS1204での受信開始通知の送信後、端末410は、ステップS1205に示すように、受信部413がサーバ430からコントローラのプログラム(つまり図21の新規コントローラプログラム432)を受信するまで待つ。ステップS1204での待機は、図20において、端末410がステップS908の送信の後、ステップS910での受信まで待つことに対応する。   After transmitting the reception start notification in step S1204, the terminal 410 waits until the receiving unit 413 receives a controller program (that is, the new controller program 432 in FIG. 21) from the server 430, as shown in step S1205. The standby in step S1204 corresponds to waiting for the terminal 410 to receive in step S910 after the transmission in step S908 in FIG.

そして、受信部413がサーバ430から新規コントローラプログラム432を受信すると、ステップS1206で受信部413は、受信した新規コントローラプログラム432をコントローラ更新サービス412に通知する。   When the receiving unit 413 receives the new controller program 432 from the server 430, the receiving unit 413 notifies the controller update service 412 of the received new controller program 432 in step S1206.

すると、ステップS1207でコントローラ更新サービス412は、受信部413から通知された新規コントローラプログラム432を端末410にインストールする。その結果、UPnP制御部411は、サービス422を利用するための新規コントローラ415が存在する状態となる。したがって、端末410のユーザは、端末410からサービス422を利用することが可能となる。   In step S <b> 1207, the controller update service 412 installs the new controller program 432 notified from the reception unit 413 in the terminal 410. As a result, the UPnP control unit 411 enters a state where a new controller 415 for using the service 422 exists. Therefore, the user of the terminal 410 can use the service 422 from the terminal 410.

以上説明した第4実施形態には、第2実施形態と同様に、動的なコントローラの更新による利便性向上という効果がある。また、コントローラ更新サービス412がUPnPのサービスであるため、第2実施形態と同様に、UPnP用のライブラリを介してコントローラ更新サービス412の普及が促進される、という効果もある。さらに、第4実施形態によれば、端末410は、コンテキストに応じて、コンテキストに適したサービスを利用するためのコントローラを取得することができ、取得したコントローラを介して、サービスを享受することができる。   As in the second embodiment, the fourth embodiment described above has the effect of improving convenience by dynamically updating the controller. Further, since the controller update service 412 is a UPnP service, there is an effect that the spread of the controller update service 412 is promoted through the UPnP library, as in the second embodiment. Furthermore, according to the fourth embodiment, the terminal 410 can acquire a controller for using a service suitable for the context according to the context, and can enjoy the service via the acquired controller. it can.

続いて、第5実施形態について説明する。第5実施形態は、第3実施形態と第4実施形態の組み合わせに似ており、具体的には、2台の端末の一方にサービスが動的にインストールされ、他方にコントローラが動的にインストールされる。ただし、第5実施形態では、インストールのタイミングがコンテキストに依存するだけでなく、ある端末にサービスとコントローラのいずれがインストールされるのかという選択も、コンテキストに依存する。以下、図27〜39を参照して第5実施形態について詳しく説明する。   Subsequently, a fifth embodiment will be described. The fifth embodiment is similar to the combination of the third embodiment and the fourth embodiment. Specifically, the service is dynamically installed on one of the two terminals, and the controller is dynamically installed on the other. Is done. However, in the fifth embodiment, the installation timing depends not only on the context, but also the choice of which service or controller is installed in a certain terminal depends on the context. Hereinafter, the fifth embodiment will be described in detail with reference to FIGS.

図27は、第5実施形態の動作シーケンス図である。また、図28は、第5実施形態のシステム構成図である。図28に示すように、第5実施形態のシステム500は、端末510と端末520とサーバ530とセンサ540を含む。システム500内には、端末510と端末520以外の端末がさらにあってもよく、センサ540以外のセンサがさらにあってもよい。図27は、図28の端末510、端末520、サーバ530、およびセンサ540、ならびに図28には不図示の端末550による動作シーケンスの例を示す。   FIG. 27 is an operation sequence diagram of the fifth embodiment. FIG. 28 is a system configuration diagram of the fifth embodiment. As shown in FIG. 28, the system 500 of the fifth embodiment includes a terminal 510, a terminal 520, a server 530, and a sensor 540. In the system 500, there may be further terminals other than the terminal 510 and the terminal 520, and there may be further sensors other than the sensor 540. FIG. 27 shows an example of an operation sequence by the terminal 510, the terminal 520, the server 530, and the sensor 540 in FIG. 28 and the terminal 550 (not shown in FIG. 28).

端末510と端末520は、通信機能と、UPnPのサービス提供機能と、UPnPのコントローラ機能を有し、製造工場からの出荷後にソフトウェアをインストールすることが可能な端末であれば、どのような種類の端末であってもよい。また、端末550は、通信機能と、UPnPのコントローラ機能を有する端末であれば、どのような種類の端末であってもよい。   Any type of terminal 510 and terminal 520 may be used as long as they have a communication function, a UPnP service providing function, and a UPnP controller function and can install software after shipment from a manufacturing factory. It may be a terminal. The terminal 550 may be any type of terminal as long as it has a communication function and a UPnP controller function.

端末510と端末520と端末550のいずれも、例えば、携帯電話、スマートフォン、タブレット端末、PDA、ノートPCのような携帯端末であってもよいし、デスクトップPCであってもよい。また、端末510と端末520と端末550は、ネットワークを介して互いに通信することができる。   Any of the terminal 510, the terminal 520, and the terminal 550 may be a mobile terminal such as a mobile phone, a smartphone, a tablet terminal, a PDA, and a notebook PC, or a desktop PC. In addition, the terminal 510, the terminal 520, and the terminal 550 can communicate with each other via a network.

また、以下では、端末510と端末520が一緒に移動するものとする。例えば、「端末510は、あるユーザが携帯するスマートフォンであり、端末520は、当該ユーザが携帯するタブレット端末である」という場合、ユーザの移動にともなって端末510と端末520は一緒に移動する。   In the following, it is assumed that the terminal 510 and the terminal 520 move together. For example, when “the terminal 510 is a smartphone carried by a certain user and the terminal 520 is a tablet terminal carried by the user”, the terminal 510 and the terminal 520 move together with the movement of the user.

サーバ530は、ネットワークを介して、端末510、端末520、およびセンサ540と通信が可能なコンピュータである。
また、センサ540は、1種の検出装置である。上記のように一緒に移動する端末510と端末520が特定の環境に存在する場合に、センサ540は、端末510と端末520が特定の環境に存在することを示す検出通知を送信する。なお、第3〜4実施形態に関する説明と同様に、第5実施形態に関する説明においても、環境のことを「コンテキスト」ともいう。
Server 530 is a computer that can communicate with terminal 510, terminal 520, and sensor 540 via a network.
The sensor 540 is a kind of detection device. As described above, when the terminal 510 and the terminal 520 that move together exist in a specific environment, the sensor 540 transmits a detection notification indicating that the terminal 510 and the terminal 520 exist in the specific environment. Note that the environment is also referred to as a “context” in the description of the fifth embodiment, similarly to the description of the third to fourth embodiments.

センサ540は、特定の環境に予め設置された、無線LANアクセスポイントやRFIDリーダなどの装置であってもよい。この場合、センサ540は、一緒に移動する端末510と端末520の少なくとも一方を検出したときに、上記の検出通知を送信してもよい。   The sensor 540 may be a device such as a wireless LAN access point or an RFID reader installed in advance in a specific environment. In this case, the sensor 540 may transmit the detection notification when detecting at least one of the terminal 510 and the terminal 520 that move together.

あるいは、センサ540は、端末510と端末520のどちらかに内蔵されたGPSセンサであってもよい。また、端末510と端末520の双方に内蔵されたGPSセンサが、それぞれセンサ540として利用されてもよい。例えば、GPSセンサは、定期的に、または不定期に、緯度と経度を送信してもよい。端末510と端末520が特定の環境に存在する場合、緯度と経度は特定の値を持つので、上記のようにしてGPSセンサが送信する緯度と経度は、検出通知の1種として利用可能である。   Alternatively, the sensor 540 may be a GPS sensor built in either the terminal 510 or the terminal 520. In addition, GPS sensors built in both the terminal 510 and the terminal 520 may be used as the sensor 540, respectively. For example, the GPS sensor may transmit the latitude and longitude periodically or irregularly. When the terminal 510 and the terminal 520 exist in a specific environment, the latitude and longitude have specific values, so the latitude and longitude transmitted by the GPS sensor as described above can be used as one type of detection notification. .

さて、端末510と端末520とサーバ530のさらなる詳細は、後ほど図28を参照して説明することにして、先に図27の動作シーケンス図について説明する。
第5実施形態の端末510と端末520は、サービスをインストールする機能とコントローラをインストールする機能を有する、UPnPのサービス(以下、「更新サービス」という)を提供する。図27の動作シーケンスは、更新サービスを提供する1台の端末が、更新サービスを提供する他の端末を探索する処理から始まる。図27の例では、端末510がステップS1301で探索を行うが、端末510と端末520は対称的なので、場合によっては、端末520が探索を行うこともあり得る。
Now, further details of the terminal 510, the terminal 520, and the server 530 will be described later with reference to FIG. 28, and the operation sequence diagram of FIG. 27 will be described first.
The terminal 510 and the terminal 520 of the fifth embodiment provide a UPnP service (hereinafter referred to as “update service”) having a function for installing a service and a function for installing a controller. The operation sequence in FIG. 27 starts from a process in which one terminal that provides the update service searches for another terminal that provides the update service. In the example of FIG. 27, the terminal 510 performs a search in step S1301. However, since the terminal 510 and the terminal 520 are symmetrical, the terminal 520 may perform the search depending on circumstances.

具体的には、ステップS1301で端末510が、M-searchメッセージをマルチキャストすることにより、更新サービスを探索する。上記のとおり端末520も更新サービスを提供しているので、ステップS1302では、端末520が端末510に応答を返す。ステップS1302の応答は、具体的には、「OK」という意味を示す「200」というステータスコードを含むHTTP応答である。   Specifically, in step S1301, the terminal 510 searches for an update service by multicasting an M-search message. As described above, since the terminal 520 also provides the update service, the terminal 520 returns a response to the terminal 510 in step S1302. The response in step S1302 is specifically an HTTP response including a status code “200” indicating the meaning “OK”.

端末510は、ステップS1302の応答を受信すると、次に、ステップS1303で端末520のデバイス定義を要求する。すると、デバイス520は、ステップS1304でデバイス定義ファイルを端末510に送信する。   Upon receiving the response in step S1302, terminal 510 next requests the device definition of terminal 520 in step S1303. The device 520 transmits the device definition file to the terminal 510 in step S1304.

端末510は、デバイス定義ファイルを受信すると、更新サービスにアクセスするための情報を得ることができる。そこで、次のステップS1305で端末510は、端末520の提供する更新サービスに関するサービス定義ファイルを、端末520に要求する。すると、端末520は、ステップS1306でサービス定義ファイルを端末510に送信する。   When the terminal 510 receives the device definition file, the terminal 510 can obtain information for accessing the update service. Accordingly, in the next step S1305, the terminal 510 requests the terminal 520 for a service definition file related to the update service provided by the terminal 520. Then, the terminal 520 transmits the service definition file to the terminal 510 in step S1306.

なお、ステップS1301〜S1306は、図1のステップS101〜S106と類似なので、上記の説明では詳細を割愛した。
さて、次のステップS1307で端末510は、検出した更新サービスに対してコマンドを送信する。ステップS1307で送信されるコマンドは、「サービスまたはコントローラのデータがサーバ530から将来送信されてくるのに備えて、データを受信する準備を行うように」と端末520に促すためのコマンドである。よって、ステップS1307のコマンドを、以下では、第3〜4実施形態と同様に「受信準備コマンド」という。
Since steps S1301 to S1306 are similar to steps S101 to S106 in FIG. 1, the details are omitted in the above description.
In the next step S1307, the terminal 510 transmits a command to the detected update service. The command transmitted in step S1307 is a command for prompting the terminal 520 to “prepare to receive data in preparation for future service or controller data transmitted from the server 530”. Therefore, the command in step S1307 is hereinafter referred to as a “reception preparation command” as in the third to fourth embodiments.

受信準備コマンドは、サーバ530のアドレスを含み、端末520に対してサーバ530のアドレスを通知する役目も果たす。また、第5実施形態における受信準備コマンドも、具体的にはSOAPコマンドの形式で送信される。   The reception preparation command includes the address of the server 530 and also serves to notify the terminal 520 of the address of the server 530. Also, the reception preparation command in the fifth embodiment is specifically transmitted in the form of a SOAP command.

端末520は、受信準備コマンドを受信すると、次にステップS1308で端末510に応答を返す。ステップS1308での応答は、具体的には、「OK」という意味を示す「200」というステータスコードを含むHTTP応答である。   Upon receiving the reception preparation command, the terminal 520 returns a response to the terminal 510 in step S1308. The response in step S1308 is specifically an HTTP response including a status code “200” indicating the meaning of “OK”.

このHTTP応答のメッセージボディには、端末520に関する情報が含まれる。具体的には、端末520のIPアドレスと、端末520のUUIDと、端末520の種別と、端末520のOSを表す情報が、HTTP応答のメッセージボディに含まれる。なお、「端末520の種別」とは、例えば、携帯電話、スマートフォン、タブレット端末、ノートPCなどの種別である。   Information regarding the terminal 520 is included in the message body of the HTTP response. Specifically, information indicating the IP address of the terminal 520, the UUID of the terminal 520, the type of the terminal 520, and the OS of the terminal 520 is included in the message body of the HTTP response. The “type of terminal 520” is, for example, a type of mobile phone, smartphone, tablet terminal, notebook PC, or the like.

さらに、ステップS1309で端末520は、サーバ530からサービスまたはコントローラのデータを受信するための準備を行う。例えば、ステップS1309の受信準備は、所定のTCPポートを開放する処理を含んでもよい。また、端末510も同様に、ステップS1310で受信準備を行う。   In step S 1309, the terminal 520 prepares to receive service or controller data from the server 530. For example, the reception preparation in step S1309 may include a process of opening a predetermined TCP port. Similarly, terminal 510 prepares for reception in step S1310.

さらに、端末510は、ステップS1308の応答を受信した後、ステップS1311で、サーバ530に通知を送る。以下では説明の便宜上、ステップS1311の通知のことも「受信開始通知」という。第5実施形態における受信開始通知は、端末510に関する情報(具体的には、端末510のIPアドレス、UUID、OS、および種別)と、端末520に関する情報(具体的には、端末510のIPアドレス、UUID、OS、および種別)を含む。そして、以上の情報を含む受信開始通知は、端末510と端末520がペアを組んでいることを表してもいるし、また、端末510と端末520がサーバ530からのデータの受信に備えていることを表してもいる。   Furthermore, after receiving the response in step S1308, the terminal 510 sends a notification to the server 530 in step S1311. Hereinafter, for convenience of explanation, the notification in step S1311 is also referred to as “reception start notification”. The reception start notification in the fifth embodiment includes information related to the terminal 510 (specifically, the IP address, UUID, OS, and type of the terminal 510) and information related to the terminal 520 (specifically, the IP address of the terminal 510). , UUID, OS, and type). The reception start notification including the above information also indicates that the terminal 510 and the terminal 520 are paired, and the terminal 510 and the terminal 520 are prepared for receiving data from the server 530. It also represents that.

なお、以下のステップS1312a〜S1317bに例示するように、ペアを組んだ端末510と端末520の一方にやがてサービスがインストールされ、他方にコントローラがインストールされる。   As illustrated in the following steps S1312a to S1317b, the service is installed in one of the paired terminal 510 and terminal 520 and the controller is installed in the other.

また、ペアを組んだ端末510と端末520の双方から重複して受信開始通知を送る必要はないため、第5実施形態では、ステップS1301の探索を行った方の端末510が、サーバ530に受信開始通知を送信する。しかし、実施形態によっては、探索に応答する方の端末520が、サーバ530に受信開始通知を送信してもよい。あるいは、端末510と端末520のそれぞれが受信開始通知を送信する実施形態も可能である。   In addition, since there is no need to send a reception start notification from both the paired terminal 510 and terminal 520, in the fifth embodiment, the terminal 510 that performed the search in step S1301 receives the server 530. Send a start notification. However, depending on the embodiment, the terminal 520 responding to the search may transmit a reception start notification to the server 530. Alternatively, an embodiment in which each of the terminal 510 and the terminal 520 transmits a reception start notification is also possible.

さて、第5実施形態では、第3〜第4実施形態と同様に、ステップS1311で受信開始通知が送信された後、サービスとコントローラのデータがすぐにサーバ530から送信されるとは限らない。サーバ530は、ステップS1312aまたはS1312bのようなトリガを検出してはじめて、サービスとコントローラのデータを送信する。   In the fifth embodiment, the service and controller data are not always transmitted from the server 530 immediately after the reception start notification is transmitted in step S1311, as in the third to fourth embodiments. The server 530 transmits service and controller data only after detecting a trigger such as step S1312a or S1312b.

例えば、センサ540が所定の場所に固定的に設置されている場合、センサ540は、端末510または端末520を検出すると、ステップS1312aのように、センサ値と、検出した端末の端末IDとをサーバ530に送信する。この場合、センサ値は、センサ540の識別情報であってもよい。サーバ530は、センサ540の識別情報とセンサ540の設置場所を対応づけるデータベースを参照することで、端末510または端末520が検出された環境(すなわちセンサ540の固定的な設置場所)を判別することができる。   For example, when the sensor 540 is fixedly installed in a predetermined place, when the sensor 540 detects the terminal 510 or the terminal 520, the sensor value and the terminal ID of the detected terminal are stored in the server as in step S1312a. To 530. In this case, the sensor value may be identification information of the sensor 540. The server 530 refers to a database that associates the identification information of the sensor 540 and the installation location of the sensor 540 to determine the environment in which the terminal 510 or the terminal 520 is detected (that is, the fixed installation location of the sensor 540). Can do.

あるいは、センサ540が端末510に内蔵されている場合、センサ540は、定期的に、または不定期に、ステップS1312aのように、センサ値と端末510の端末IDをサーバ530に送信する。同様に、センサ540が端末520に内蔵されている場合、センサ540は、定期的に、または不定期に、ステップS1312aのように、センサ値と端末520の端末IDをサーバ530に送信する。   Alternatively, when the sensor 540 is built in the terminal 510, the sensor 540 transmits the sensor value and the terminal ID of the terminal 510 to the server 530 periodically or irregularly as in step S1312a. Similarly, when the sensor 540 is built in the terminal 520, the sensor 540 transmits the sensor value and the terminal ID of the terminal 520 to the server 530 periodically or irregularly as in step S1312a.

例えばセンサ値が緯度と経度の組み合わせである場合、サーバ530は、地図データを参照することにより、センサ540を内蔵する端末の存在する環境を判別することができる。なお、上記のとおり、第5実施形態では端末510と端末520が一緒に移動するものとする。つまり端末510と端末520は同じ環境にあるものとする。   For example, when the sensor value is a combination of latitude and longitude, the server 530 can determine the environment in which the terminal incorporating the sensor 540 exists by referring to the map data. As described above, in the fifth embodiment, it is assumed that the terminal 510 and the terminal 520 move together. That is, it is assumed that the terminal 510 and the terminal 520 are in the same environment.

センサ540の種類が何であれ、図27の例では、ステップS1312aで通知されたセンサ値が、「端末510と端末520が特定の環境に存在している」と示す値であったものとする。また、端末IDは、端末のIPアドレスでもよいし、端末のUUIDでもよいし、両者の組み合わせでもよい。   Whatever the type of sensor 540, in the example of FIG. 27, it is assumed that the sensor value notified in step S1312a is a value indicating that “the terminal 510 and the terminal 520 exist in a specific environment”. The terminal ID may be the terminal IP address, the terminal UUID, or a combination of both.

なお、ステップS1312aのようにセンサ540が通知を送信する代わりに、ステップS1312bのように、端末510がセンサ540に対して、「端末510と端末520の一方にサービスのデータを送信し、他方にコントローラを送信せよ」と要求してもよい。   Note that instead of the sensor 540 sending a notification as in step S1312a, the terminal 510 sends “service data to one of the terminal 510 and the terminal 520 and the other to the sensor 540 as in step S1312b. You may request "send controller".

例えば、場合によっては、実際のセンサ値が得られない環境もあるかもしれない。また、ユーザは、「実際のセンサ値と関係なく、端末510と端末520が特定の環境にあるものと見なして、当該特定の環境に適したサービスを受けたい」と思うかもしれない。   For example, in some cases, there may be an environment where actual sensor values cannot be obtained. In addition, the user may want to consider that the terminal 510 and the terminal 520 are in a specific environment regardless of actual sensor values and want to receive a service suitable for the specific environment.

よって、端末510は、ステップS1312bのように要求を送信してもよい。また、ステップS1312bの要求には、特定の環境を指定する情報(つまりコンテキスト情報)と、端末510の端末IDと、端末520の端末IDが含まれる。例えば、端末510は、いくつかの環境を選択肢として含むリストをユーザに提示してもよい。そして、端末510は、ユーザからの入力に基づいて、ユーザの選択した環境を指定する情報を要求に含めてもよい。   Therefore, the terminal 510 may transmit a request as in step S1312b. Further, the request in step S1312b includes information specifying a specific environment (that is, context information), the terminal ID of the terminal 510, and the terminal ID of the terminal 520. For example, the terminal 510 may present a list including several environments as options to the user. The terminal 510 may include information specifying the environment selected by the user in the request based on the input from the user.

そして、ステップS1312aの通知またはステップS1312bの要求の受信に応じて、サーバ530は、どちらの端末にサービスのデータを送信し、どちらの端末にコントローラのデータを送信するかを決定する。サーバ530による決定は、センサ値またはステップS1312bの要求から得られるコンテキスト情報と、端末510に関する情報(具体的には種別)と、端末520に関する情報(具体的には種別)とに基づく。   Then, in response to reception of the notification in step S1312a or the request in step S1312b, the server 530 determines to which terminal the service data is transmitted and to which terminal the controller data is transmitted. The determination by the server 530 is based on the sensor value or context information obtained from the request in step S1312b, information on the terminal 510 (specifically, type), and information on the terminal 520 (specifically, type).

なお、図27におけるステップS1313a〜S1317aは、サーバ530が「端末510にコントローラのデータを送信し、端末520にサービスのデータを送信する」と決定した場合のシーケンスを示す。逆に、サーバ530が「端末510にサービスのデータを送信し、端末520にコントローラのデータを送信する」と決定した場合のシーケンスは、ステップS1313b〜S1317bとして例示されている。   Note that steps S1313a to S1317a in FIG. 27 show a sequence when the server 530 determines that “transmit controller data to terminal 510 and transmit service data to terminal 520”. On the other hand, the sequence in the case where the server 530 determines that “service data is transmitted to the terminal 510 and controller data is transmitted to the terminal 520” is illustrated as steps S1313b to S1317b.

具体的には、ステップS1313aでサーバ530は、コンテキストに応じたコントローラのデータ(具体的にはコントローラのプログラムを含むデータ)を端末510に送信する。すると、次のステップS1314aで端末510は、コントローラを端末510自身にインストールする。   Specifically, in step S1313a, server 530 transmits controller data (specifically, data including a controller program) corresponding to the context to terminal 510. Then, in the next step S1314a, the terminal 510 installs the controller in the terminal 510 itself.

また、ステップS1315aでサーバ530は、上記コントローラに対応するサービスのデータ(具体的にはサービスのプログラムとサービス定義ファイルを含むデータ)を端末520に送信する。すると、次のステップS1316aで端末520は、サービスを端末520自身にインストールする。さらに、ステップS1317aで端末520は、図1のステップS112と同様にして、GENAにより、サービス追加・更新イベントを通知する。図27の例では、端末510と端末550にサービス追加・更新イベントが通知される。   In step S1315a, the server 530 transmits service data (specifically, data including a service program and a service definition file) corresponding to the controller to the terminal 520. Then, in the next step S1316a, the terminal 520 installs the service in the terminal 520 itself. Further, in step S1317a, the terminal 520 notifies the service addition / update event through GENA in the same manner as in step S112 in FIG. In the example of FIG. 27, the service addition / update event is notified to the terminal 510 and the terminal 550.

なお、ステップS1313aとS1315aの送信の順序は逆でもよく、端末510における処理と端末520における処理は独立して行われる。また、以上のステップS1313a〜S1317aの結果として、ユーザは、端末520にインストールされたサービスを、端末510のコントローラを介して利用することができるようになる。   Note that the order of transmission in steps S1313a and S1315a may be reversed, and the processing in terminal 510 and the processing in terminal 520 are performed independently. Further, as a result of the above steps S1313a to S1317a, the user can use the service installed in the terminal 520 via the controller of the terminal 510.

以上のステップS1313a〜S1317aとは逆に、ステップS1313b〜S1317bでは、次のような処理が行われる。
まず、ステップS1313bでサーバ530は、コンテキストに応じたサービスのデータを端末510に送信する。すると、次のステップS1314bで端末510は、サービスを端末510自身にインストールする。さらに、ステップS1315bで端末510は、GENAにより、サービス追加・更新イベントを通知する。図27の例では、端末520と端末550にサービス追加・更新イベントが通知される。
Contrary to the above steps S1313a to S1317a, the following processing is performed in steps S1313b to S1317b.
First, in step S1313b, the server 530 transmits service data corresponding to the context to the terminal 510. Then, in the next step S1314b, the terminal 510 installs the service in the terminal 510 itself. Furthermore, in step S1315b, the terminal 510 notifies a service addition / update event by GENA. In the example of FIG. 27, a service addition / update event is notified to the terminal 520 and the terminal 550.

また、ステップS1316bでサーバ530は、上記サービスに対応するコントローラのデータを端末520に送信する。すると、次のステップS1317bで端末520は、コントローラを端末520自身にインストールする。   In step S1316b, the server 530 transmits the controller data corresponding to the service to the terminal 520. Then, in the next step S1317b, the terminal 520 installs the controller in the terminal 520 itself.

なお、ステップS1313bとS1316bの送信の順序は逆でもよく、端末510における処理と端末520における処理は独立して行われる。また、以上のステップS1313b〜S1317bの結果として、ユーザは、端末510にインストールされたサービスを、端末520のコントローラを介して利用することができるようになる。   Note that the order of transmission in steps S1313b and S1316b may be reversed, and the process in terminal 510 and the process in terminal 520 are performed independently. Further, as a result of the above steps S1313b to S1317b, the user can use the service installed in the terminal 510 via the controller of the terminal 520.

続いて、図28を参照して、端末510と端末520とサーバ530の詳細について説明する。
図28に示すように、端末510はUPnP制御部511を有し、端末520はUPnP制御部521を有する。UPnP制御部511には既存コントローラ512があってもよく、なくてもよい。同様に、UPnP制御部521には既存コントローラ522があってもよく、なくてもよい。
Next, details of the terminal 510, the terminal 520, and the server 530 will be described with reference to FIG.
As illustrated in FIG. 28, the terminal 510 includes a UPnP control unit 511, and the terminal 520 includes a UPnP control unit 521. The UPnP control unit 511 may or may not have the existing controller 512. Similarly, the UPnP control unit 521 may or may not have the existing controller 522.

また、端末510はUPnPサービス提供部513を有し、端末520はUPnPサービス提供部523を有する。UPnPサービス提供部513は、既存サービス514を提供していてもよく、提供していなくてもよい。同様に、UPnPサービス提供部523は、既存サービス524を提供していてもよく、提供していなくてもよい。   The terminal 510 includes a UPnP service providing unit 513, and the terminal 520 includes a UPnP service providing unit 523. The UPnP service providing unit 513 may or may not provide the existing service 514. Similarly, the UPnP service providing unit 523 may or may not provide the existing service 524.

また、UPnPサービス提供部513は更新サービス515を提供し、UPnPサービス提供部523は更新サービス525を提供する。更新サービス515と525は、UPnPのサービスとコントローラのどちらのプログラムが指定された場合にも、指定されたプログラムをインストールすることのできる、UPnPのサービスである。また、更新サービス515と525は、さらに、指定されたサービスまたはコントローラをアンインストールする機能を備えていてもよい。   The UPnP service providing unit 513 provides an update service 515, and the UPnP service providing unit 523 provides an update service 525. The update services 515 and 525 are UPnP services that can install a specified program regardless of whether the UPnP service or the controller program is specified. In addition, the update services 515 and 525 may further have a function of uninstalling a designated service or controller.

さらに、端末510は受信部516を有する。受信部516は、サーバ530から新規サービス518のデータまたは新規コントローラ519のデータを受信するのを待ち、データを受信すると、更新サービス515に受信を通知する。   Further, the terminal 510 has a receiving unit 516. The receiving unit 516 waits to receive the data of the new service 518 or the data of the new controller 519 from the server 530, and when receiving the data, notifies the update service 515 of the reception.

同様に、端末520は受信部526を有する。受信部526は、サーバ530から新規サービス528のデータまたは新規コントローラ529のデータを受信するのを待ち、データを受信すると、更新サービス525に受信を通知する。   Similarly, the terminal 520 includes a receiving unit 526. The receiving unit 526 waits to receive the data of the new service 528 or the data of the new controller 529 from the server 530, and when receiving the data, notifies the update service 525 of the reception.

なお、端末510は、図27のステップS1312bのような要求を送信する要求部517を有していてもよい。要求部517は、ステップS1312bの要求に指定する環境をユーザに指定させるための処理も行う。端末520も、要求部517と同様の要求部527を有していてもよい。しかし、要求部517と要求部527はなくてもよい。   Note that the terminal 510 may include a request unit 517 that transmits a request as in step S1312b of FIG. The request unit 517 also performs processing for causing the user to specify the environment specified in the request in step S1312b. The terminal 520 may also have a request unit 527 similar to the request unit 517. However, the request unit 517 and the request unit 527 may be omitted.

図28に示す端末510と端末520の各部と図27との関係は次のとおりである。
例えば、更新サービス515は、図27のステップS1301の探索、ステップS1302の応答の受信、ステップS1303の要求、ステップS1304の受信、ステップS1305の要求、およびステップS1306の受信を行う。実施形態によっては、以上のステップS1301〜S1306の更新サービス515の動作を、既存コントローラ512が代わりに行ってもよい。
The relationship between each part of terminal 510 and terminal 520 shown in FIG. 28 and FIG. 27 is as follows.
For example, the update service 515 performs the search in step S1301 in FIG. 27, the reception of the response in step S1302, the request in step S1303, the reception in step S1304, the request in step S1305, and the reception in step S1306. Depending on the embodiment, the operation of the update service 515 in the above steps S1301 to S1306 may be performed by the existing controller 512 instead.

そして、ステップS1302の応答、ステップS1303の要求の受信、ステップS1304の送信、ステップS1305の要求の受信、およびステップS1306の送信は、UPnPサービス提供部523が行う。その後のステップS1307では、更新サービス515が受信準備コマンドを送信し、更新サービス525が受信準備コマンドを受信する。   The UPnP service providing unit 523 performs the response in step S1302, the reception of the request in step S1303, the transmission in step S1304, the reception of the request in step S1305, and the transmission in step S1306. In subsequent step S1307, the update service 515 transmits a reception preparation command, and the update service 525 receives the reception preparation command.

さらに、更新サービス525は、ステップS1308で応答を送信し、受信部526を起動する。そして、受信部526がステップS1309の受信準備を行う。
また、ステップS1308の応答は更新サービス515により受信される。そして、更新サービス515は受信部516を起動し、受信部516がステップS1310の受信準備を行う。また、受信部516は、ステップS1311で受信開始通知を送信する。
Further, the update service 525 transmits a response in step S1308 and activates the reception unit 526. Then, the reception unit 526 prepares for reception in step S1309.
Further, the response in step S1308 is received by the update service 515. Then, the update service 515 activates the reception unit 516, and the reception unit 516 prepares for reception in step S1310. In addition, the reception unit 516 transmits a reception start notification in step S1311.

なお、上記のように、ステップS1312bで要求部517が要求を送信してもよい。
その後は、状況に応じて、ステップS1313aで受信部516が新規コントローラ519のデータを受信し、ステップS1314aで更新サービス515が新規コントローラ519のインストールを実行する場合もある。または、ステップS1313bで受信部516が新規サービス518のデータを受信し、ステップS1314bで更新サービス515が新規サービス518のインストールを実行し、ステップS1315bで更新サービス515が通知を送信する場合もある。
As described above, the request unit 517 may transmit the request in step S1312b.
Thereafter, depending on the situation, the receiving unit 516 may receive the data of the new controller 519 in step S1313a, and the update service 515 may install the new controller 519 in step S1314a. Alternatively, the reception unit 516 may receive the data of the new service 518 in step S1313b, the update service 515 may install the new service 518 in step S1314b, and the update service 515 may transmit a notification in step S1315b.

端末520に関しても同様に、状況に応じた動作が行われる。具体的には、ステップS1315aで受信部526が新規サービス528のデータを受信し、ステップS1316aで更新サービス525が新規サービス528のインストールを実行し、ステップS1317aで更新サービス525が通知を送信する場合もある。または、ステップS1316bで受信部526が新規コントローラ529のデータを受信し、ステップS1317bで更新サービス525が新規コントローラ529のインストールを実行する場合もある。   Similarly, the terminal 520 performs an operation corresponding to the situation. Specifically, the reception unit 526 receives data of the new service 528 in step S1315a, the update service 525 executes installation of the new service 528 in step S1316a, and the update service 525 transmits a notification in step S1317a. is there. Alternatively, the receiving unit 526 may receive the data of the new controller 529 in step S1316b, and the update service 525 may install the new controller 529 in step S1317b.

さて、サーバ530は、格納部531を有する。格納部531には、新規サービス518または528を提供するためのプログラムである新規サービスプログラム532と、新規コントローラ519または529を提供するためのプログラムである新規コントローラプログラム533が、格納されている。   Now, the server 530 has a storage unit 531. The storage unit 531 stores a new service program 532 that is a program for providing a new service 518 or 528 and a new controller program 533 that is a program for providing a new controller 519 or 529.

なお、簡単化のため、図28には1つの新規サービスプログラム532と1つの新規コントローラプログラム533のみが図示されている。しかし、格納部531は、複数のサービスそれぞれのプログラムと、それら複数のサービスに対応する複数のコントローラそれぞれのプログラムを格納していてもよい。格納部531は、例えば、サービスを識別する情報と対応づけて、当該サービスのプログラムと、当該サービスを利用するためのコントローラのプログラムとを格納していてもよい。   For simplification, only one new service program 532 and one new controller program 533 are shown in FIG. However, the storage unit 531 may store a program for each of a plurality of services and a program for each of a plurality of controllers corresponding to the plurality of services. For example, the storage unit 531 may store a program of the service and a program of a controller for using the service in association with information for identifying the service.

また、プログラムはOSに依存することがある。そのため、格納部531は、サービスを識別する情報だけでなく、OSを表す情報とも対応づけて、新規サービスプログラム532および新規コントローラプログラム533を格納していてもよい。   Also, the program may depend on the OS. Therefore, the storage unit 531 may store the new service program 532 and the new controller program 533 in association with not only information for identifying the service but also information representing the OS.

さて、サーバ530は、図27のステップS1312aでセンサ540から送信されるセンサ値から、コンテキストを抽出するコンテキスト抽出部534をさらに有する。コンテキスト抽出部534の詳細は、第3実施形態のコンテキスト抽出部333と同様なので、詳しい説明は省略する。第5実施形態のコンテキスト抽出部534も、実施形態に応じた適宜の粒度のコンテキストを抽出することができる。   Now, the server 530 further includes a context extraction unit 534 that extracts a context from the sensor value transmitted from the sensor 540 in step S1312a of FIG. Details of the context extraction unit 534 are the same as those of the context extraction unit 333 of the third embodiment, and a detailed description thereof will be omitted. The context extraction unit 534 of the fifth embodiment can also extract a context with an appropriate granularity according to the embodiment.

サーバ530はさらに決定部535を有する。決定部535は、送信対象のサービスと送信対象のコントローラを決定する。また、決定部535は、端末510と端末520のどちらにサービスを送信するか(換言すれば、端末510と端末520のどちらにコントローラを送信するか)も決定する。決定部535は、具体的には、条件テーブル536を参照することで、決定を下す。   The server 530 further includes a determination unit 535. The determination unit 535 determines a transmission target service and a transmission target controller. Further, the determination unit 535 also determines which of the terminal 510 and the terminal 520 the service is transmitted to (in other words, which of the terminal 510 and the terminal 520 the controller is transmitted). Specifically, the determination unit 535 makes a determination by referring to the condition table 536.

図29に、条件テーブル536の具体例を示す。図29に示すように、条件テーブル536は、以下の5つの項目を対応づけるテーブルである。   FIG. 29 shows a specific example of the condition table 536. As shown in FIG. 29, the condition table 536 is a table that associates the following five items.

・コンテキスト
・サービスのインストール先の端末(以下「サービス提供端末」ともいう)の種別
・コントローラのインストール先の端末(以下「コントローラ端末」ともいう)の種別
・コンテキストに応じたサービス(つまりサービス提供端末にインストールする対象のサービス)
・上記サービスを利用するためのコントローラ(つまりコントローラ端末にインストールする対象のコントローラ)
• Context • Type of service installation destination terminal (hereinafter also referred to as “service providing terminal”) • Type of controller installation destination terminal (hereinafter also referred to as “controller terminal”) • Service corresponding to the context (ie, service providing terminal) Service to be installed on
-Controller for using the above services (that is, the controller to be installed on the controller terminal)

なお、図29では、理解を容易にするために、上記5つの項目がいずれも名前で表現されているが、適宜のコード番号やIDが代わりに使われてもよい。   In FIG. 29, for ease of understanding, the above five items are all represented by names, but appropriate code numbers and IDs may be used instead.

図29には、条件テーブル536の2つのエントリが例示されている。1番目のエントリでは、「会議室」というコンテキストと、タブレット端末と、スマートフォンと、ドキュメント表示サービスと、ドキュメントページめくりコントローラが対応づけられている。2番目のエントリでは、「自宅」というコンテキストと、デスクトップPCと、スマートフォンと、ビデオ録画サービスと、ビデオリモコンコントローラが対応づけられている。   FIG. 29 illustrates two entries of the condition table 536. In the first entry, the context “conference room”, the tablet terminal, the smartphone, the document display service, and the document page turning controller are associated with each other. In the second entry, a context of “home”, a desktop PC, a smartphone, a video recording service, and a video remote controller are associated.

例えば、図27のステップS1312aで通知された端末IDで識別される端末510の種別、および、端末510とペアを組んでいる端末520の種別は、ステップS1311で既にサーバ530に通知されている。通知された種別が、例えば、スマートフォンとタブレット端末だとする。また、ステップS1312aでは、端末510または端末520のうち、センサ540により検出された方の端末IDが通知されるものとする。そして、ステップS1312aで通知されたセンサ値から、コンテキスト抽出部534が「会議室」というコンテキストを抽出したとする。   For example, the type of the terminal 510 identified by the terminal ID notified in step S1312a of FIG. 27 and the type of the terminal 520 paired with the terminal 510 are already notified to the server 530 in step S1311. Assume that the notified types are, for example, a smartphone and a tablet terminal. Also, in step S1312a, the terminal ID of the terminal 510 or the terminal 520 detected by the sensor 540 is notified. Then, it is assumed that the context extraction unit 534 extracts the context “conference room” from the sensor value notified in step S1312a.

すると、決定部535は、センサ540からサーバ530に通知された端末IDから、端末510と端末520のペアを認識し、端末510と端末520の種別を認識する。そして、決定部535は、「会議室」というコンテキストと、「スマートフォン」という種別と、「タブレット端末」という種別の組み合わせに合致するエントリを条件テーブル536において検索する。なお、端末510の種別がサービス提供端末の種別に合致し、端末520の種別がコントローラ端末の種別に合致する場合と、逆に、端末510の種別がコントローラ端末の種別に合致し、端末520の種別がサービス提供端末の種別に合致する場合があり得る。検索の結果、図29の例では、1番目のエントリが見つかる。したがって、決定部535は、見つかった1番目のエントリに基づいて、次のように決定する。   Then, the determination unit 535 recognizes the pair of the terminal 510 and the terminal 520 from the terminal ID notified from the sensor 540 to the server 530, and recognizes the type of the terminal 510 and the terminal 520. Then, the determination unit 535 searches the condition table 536 for an entry that matches the combination of the context “conference room”, the type “smartphone”, and the type “tablet terminal”. Note that the type of the terminal 510 matches the type of the service providing terminal, the type of the terminal 520 matches the type of the controller terminal, and conversely, the type of the terminal 510 matches the type of the controller terminal. The type may match the type of service providing terminal. As a result of the search, the first entry is found in the example of FIG. Therefore, the determination unit 535 determines as follows based on the found first entry.

・端末510と端末520のうち、種別がタブレット端末である方が、サービスのデータの送信先である。
・端末510と端末520のうち、種別がスマートフォンである方が、コントローラのデータの送信先である。
・送信対象のサービスは、ドキュメント表示サービスである。
・送信対象のコントローラは、ドキュメントページめくりコントローラである。
Of the terminal 510 and the terminal 520, the type of the tablet terminal is the service data transmission destination.
Of the terminal 510 and the terminal 520, the type of the smartphone is the controller data transmission destination.
-The transmission target service is a document display service.
-The controller to be transmitted is a document page turning controller.

ここで、再度図28の説明に戻ると、サーバ530はさらに、受信準備の整った端末(図27の例では端末510と端末520)の情報を管理する端末管理部537を有する。端末管理部537は、具体的には、端末テーブル538を用いて、端末についての情報を管理する。   Here, returning to the description of FIG. 28 again, the server 530 further includes a terminal management unit 537 that manages information of terminals (terminal 510 and terminal 520 in the example of FIG. 27) ready for reception. Specifically, the terminal management unit 537 manages information about terminals using the terminal table 538.

図30に、端末テーブル538の具体例を示す。端末テーブル538の各エントリは、1台の端末に対応する。図30には、4台の端末にそれぞれ対応する4つのエントリが例示されている。各エントリは、「IPアドレス」、「UUID」、「OS」、「種別」、および「子端末UUID」という5つのフィールドを含む。   FIG. 30 shows a specific example of the terminal table 538. Each entry in the terminal table 538 corresponds to one terminal. FIG. 30 illustrates four entries respectively corresponding to four terminals. Each entry includes five fields of “IP address”, “UUID”, “OS”, “type”, and “child terminal UUID”.

以下では説明の便宜上、図27のステップS1301〜S1308のような処理によりペアを組んだ2台の端末のうち、ステップS1311で受信開始通知を送信する方の端末を「親端末」または「親」といい、他方の端末を「子端末」または「子」という。なお、親子関係は、端末管理部537による管理の便宜上の関係にすぎない。つまり、親端末にサービスがインストールされて子端末にコントローラがインストールされる場合もあるし、逆に、親端末にコントローラがインストールされて子端末にサービスがインストールされる場合もある。   Hereinafter, for convenience of explanation, the terminal that transmits the reception start notification in step S1311 among the two terminals paired by the processes in steps S1301 to S1308 in FIG. 27 is referred to as “parent terminal” or “parent”. The other terminal is called a “child terminal” or “child”. The parent-child relationship is merely a relationship for convenience of management by the terminal management unit 537. That is, a service may be installed in the parent terminal and a controller may be installed in the child terminal. Conversely, a controller may be installed in the parent terminal and the service may be installed in the child terminal.

端末テーブル538のあるエントリが、ある端末Xに関するエントリであるとする。この場合、IPアドレス、UUID、OS、および種別の各フィールドには、端末XのIPアドレス、端末XのUUID、端末XのOS、および端末Xの種別が記録される。また、子端末UUIDのフィールドには、端末Xが他の端末Yの親である場合は、端末YのUUIDが記録される。逆に、端末Xが他の端末Zの子である場合は、端末X自身は子を持たないので、端末Xに関するエントリにおける子端末UUIDの値は、NULLである。   It is assumed that an entry in the terminal table 538 is an entry related to a certain terminal X. In this case, the IP address of the terminal X, the UUID of the terminal X, the OS of the terminal X, and the type of the terminal X are recorded in the IP address, UUID, OS, and type fields. In the field of the child terminal UUID, when the terminal X is the parent of another terminal Y, the UUID of the terminal Y is recorded. Conversely, when the terminal X is a child of another terminal Z, since the terminal X itself has no child, the value of the child terminal UUID in the entry related to the terminal X is NULL.

図30の端末テーブル538の例では、1番目のエントリの子端末UUIDの値が2番目のエントリのUUIDとして記録されている。そして、2番目のエントリの子端末UUIDの値はNULLである。つまり、1番目のエントリで表される端末と2番目のエントリで表される端末はペアを組んでおり、前者が親端末、後者が子端末である。   In the example of the terminal table 538 of FIG. 30, the value of the child terminal UUID of the first entry is recorded as the UUID of the second entry. The value of the child terminal UUID of the second entry is NULL. That is, the terminal represented by the first entry and the terminal represented by the second entry form a pair, the former being the parent terminal and the latter being the child terminal.

また、3番目のエントリの子端末UUIDの値が4番目のエントリのUUIDとして記録されており、4番目のエントリの子端末UUIDの値はNULLである。つまり、3番目のエントリで表される端末と4番目のエントリで表される端末はペアを組んでおり、前者が親端末、後者が子端末である。   Further, the value of the child terminal UUID of the third entry is recorded as the UUID of the fourth entry, and the value of the child terminal UUID of the fourth entry is NULL. That is, the terminal represented by the third entry and the terminal represented by the fourth entry form a pair, with the former being the parent terminal and the latter being the child terminal.

ここで、再度図28の説明に戻ると、サーバ530はさらに送信部539を有する。送信部539は、決定部535の決定にしたがって、格納部531から適宜の新規サービスプログラム532を読み出して、新規サービスプログラム532とサービス定義ファイルを含むデータを、サービス提供端末に送信する。また、送信部539は、決定部535の決定にしたがって、格納部531から適宜の新規コントローラプログラム533を読み出して、新規コントローラプログラム533を含むデータを、コントローラ端末に送信する。   Here, returning to the description of FIG. 28 again, the server 530 further includes a transmission unit 539. The transmission unit 539 reads an appropriate new service program 532 from the storage unit 531 according to the determination of the determination unit 535, and transmits data including the new service program 532 and the service definition file to the service providing terminal. Further, the transmission unit 539 reads an appropriate new controller program 533 from the storage unit 531 according to the determination of the determination unit 535, and transmits data including the new controller program 533 to the controller terminal.

さて次に、図31を参照して、サービスとコントローラ双方の更新機能を持つ更新サービス525がインストールされた端末520に関するデバイス定義ファイルの例について説明する。   Now, an example of a device definition file related to the terminal 520 in which the update service 525 having the update functions of both the service and the controller is installed will be described with reference to FIG.

図31のデバイス定義ファイル560は、新規サービス528のインストールにともなって更新されたデバイス定義ファイルの例である。より具体的には、図31の例においては、新規サービス528は、ドキュメント表示サービスである。   A device definition file 560 in FIG. 31 is an example of a device definition file updated with the installation of the new service 528. More specifically, in the example of FIG. 31, the new service 528 is a document display service.

図31のデバイス定義ファイル560は、図3のデバイス定義ファイル150と類似である。具体的には、デバイス定義ファイル560の5〜9行目には、端末520全体に関する情報が記載されており、10〜25行目には、端末520が提供するサービスのリストが記載されている。   The device definition file 560 in FIG. 31 is similar to the device definition file 150 in FIG. Specifically, information about the entire terminal 520 is described in lines 5 to 9 of the device definition file 560, and a list of services provided by the terminal 520 is described in lines 10 to 25. .

図31の例では、10〜25行目のリストは、11〜17行目の更新サービス525に関する情報と、18〜24行目のドキュメント表示サービスに関する情報を含む。図31の11〜17行目の内容は、図3のデバイス定義ファイル150の11〜17行目のサービス更新サービス122に関する情報の内容とは異なるが、形式は同じである。よって、図31については、詳しい説明を省略する。   In the example of FIG. 31, the list on the 10th to 25th lines includes information on the update service 525 on the 11th to 17th lines and information on the document display service on the 18th to 24th lines. The contents of the 11th to 17th lines in FIG. 31 are different from the contents of the information related to the service update service 122 in the 11th to 17th lines of the device definition file 150 in FIG. 3, but the format is the same. Therefore, detailed description of FIG. 31 is omitted.

以上のようなデバイス定義ファイル560が、図27のステップS1304で端末520から端末510に送信される。また、図示は省略するが、更新サービス515がインストールされた端末510のデバイス定義ファイルも、図31のデバイス定義ファイル560と同様である。   The device definition file 560 as described above is transmitted from the terminal 520 to the terminal 510 in step S1304 of FIG. Although not shown, the device definition file of the terminal 510 in which the update service 515 is installed is the same as the device definition file 560 of FIG.

次に、図32を参照して、更新サービス525のサービス定義ファイルについて説明する。更新サービス525のサービス定義ファイルは、例えば、図32のサービス定義ファイル561のようなファイルであってもよい。サービス定義ファイル561は、以下のような定義を含む。   Next, the service definition file of the update service 525 will be described with reference to FIG. The service definition file of the update service 525 may be a file such as the service definition file 561 of FIG. The service definition file 561 includes the following definitions.

・サービス更新サービス122についての図4のサービス定義ファイル151と同様の、「UpdateService」というアクションの定義。
・サービス定義ファイル151と同様の、「DeleteService」というアクションの定義。
・サービス定義ファイル151と同様の、「Listen」というアクションの定義。
・コントローラ更新サービス212についての図11のサービス定義ファイル241と同様の、「UpdateController」というアクションの定義。
・サービス定義ファイル241と同様の、「DeleteController」というアクションの定義。
・サービス定義ファイル151と同様の、「GetUpdateTime」というアクションの定義。
・サービス定義ファイル151および241と同様の、「ServiceName」、「ServerUri」、および「Listening」という状態変数の定義。
・サービス定義ファイル151と同様の、「ServiceUri」および「UpdateTime」という状態変数の定義。
Definition of the action “UpdateService” in the same way as the service definition file 151 of FIG.
Definition of the action “DeleteService”, similar to the service definition file 151.
Definition of the action “Listen”, similar to the service definition file 151.
Definition of an action “UpdateController” similar to the service definition file 241 of FIG. 11 for the controller update service 212.
Definition of the action “DeleteController”, similar to the service definition file 241.
Definition of the action “GetUpdateTime”, similar to the service definition file 151.
Definition of state variables “ServiceName”, “ServerUri”, and “Listening” similar to the service definition files 151 and 241.
Definition of state variables “ServiceUri” and “UpdateTime” similar to the service definition file 151.

もちろん、実施形態によっては別のサービス定義ファイルが使われてもよい。また、端末510の更新サービス515についてのサービス定義ファイルも、更新サービス525のサービス定義ファイルと同様である。なお、図27のステップS1307の受信準備コマンドは、具体的には「Listen」というアクションが指定されたSOAPコマンドである。   Of course, another service definition file may be used depending on the embodiment. The service definition file for the update service 515 of the terminal 510 is the same as the service definition file of the update service 525. Note that the reception preparation command in step S1307 of FIG. 27 is specifically a SOAP command in which the action “Listen” is specified.

ところで、図27の処理は、サーバ530が図33〜37のフローチャートにしたがって動作し、端末510が図38〜39のフローチャートにしたがって動作し、端末520が図39のフローチャートにしたがって動作することにより、実現される。具体的には以下のとおりである。   27, the server 530 operates according to the flowcharts of FIGS. 33 to 37, the terminal 510 operates according to the flowcharts of FIGS. 38 to 39, and the terminal 520 operates according to the flowchart of FIG. Realized. Specifically, it is as follows.

図33〜35は、端末からの受信開始通知に応じてサーバ530が行う処理のフローチャートである。なお、サーバ530は、図27のステップS1311のように親端末からの受信開始通知を受信することがあるだけでなく、親端末または子端末の受信部から、受信開始通知と同様の形式の通知(以下では、当該通知も「受信開始通知」という)を受信することもある。   33 to 35 are flowcharts of processing performed by the server 530 in response to a reception start notification from the terminal. Note that the server 530 not only receives a reception start notification from the parent terminal as in step S1311 of FIG. 27, but also receives a notification similar to the reception start notification from the reception unit of the parent terminal or the child terminal. (Hereinafter, this notification is also referred to as “reception start notification”).

例えば、DHCPによってIPアドレスが割り当てられている端末は、再起動後にIPアドレスが変化する可能性がある。そこで、端末は、再起動後に、IPアドレスをサーバ530に通知するために、受信開始通知を送信してもよい。また、OSがアップグレードされた後に、端末は、新しいOSをサーバ530に通知するために、受信開始通知を送信してもよい。   For example, a terminal to which an IP address is assigned by DHCP may change the IP address after rebooting. Therefore, the terminal may transmit a reception start notification to notify the server 530 of the IP address after restarting. Further, after the OS is upgraded, the terminal may transmit a reception start notification in order to notify the server 530 of the new OS.

ここで、ある端末Xからの受信開始通知は、以下の8つの項目を含む。
・端末XのIPアドレスを示す「端末IPアドレス」。
・端末XのUUIDを示す「端末UUID」。
・端末XのOSを示す「端末OS」。
・端末Xの種別を示す「端末種別」。
・端末Xが他の端末Yの親である場合は端末YのIPアドレスを示し、端末Xが他の端末Zの子である場合はNULLである「子端末IPアドレス」。
・端末Xが他の端末Yの親である場合は端末YのUUIDを示し、端末Xが他の端末Zの子である場合はNULLである「子端末UUID」。
・端末Xが他の端末Yの親である場合は端末YのOSを示し、端末Xが他の端末Zの子である場合はNULLである「子端末OS」。
・端末Xが他の端末Yの親である場合は端末Yの種別を示し、端末Xが他の端末Zの子である場合はNULLである「子端末種別」。
Here, the reception start notification from a certain terminal X includes the following eight items.
“Terminal IP address” indicating the IP address of terminal X.
“Terminal UUID” indicating the UUID of terminal X.
“Terminal OS” indicating the OS of the terminal X.
“Terminal type” indicating the type of terminal X.
“The child terminal IP address” which indicates the IP address of the terminal Y when the terminal X is the parent of the other terminal Y and is NULL when the terminal X is a child of the other terminal Z.
A “child terminal UUID” that indicates the UUID of the terminal Y when the terminal X is the parent of the other terminal Y, and NULL when the terminal X is a child of the other terminal Z.
“The child terminal OS” which indicates the OS of the terminal Y when the terminal X is the parent of the other terminal Y, and is NULL when the terminal X is a child of the other terminal Z.
A “child terminal type” indicating the type of the terminal Y when the terminal X is the parent of the other terminal Y, and NULL when the terminal X is a child of the other terminal Z.

また、上記のように受信開始通知は、図27のステップS1311で送信される場合があるだけでなく、任意のタイミングで送信され得るし、子端末からも送信され得る。しかも、例えば、第1と第2の端末がペアを組んだ後、第2の端末が、第3の端末からの更新サービスの探索に応えて、第3の端末とペアを組みなおすかもしれない。同様に、第1の端末が第3の端末とペアを組みなおすこともあり得る。新たなペアが組まれるたびに、ステップS1311と同様の受信開始通知がサーバ530において受信される。   Further, as described above, the reception start notification may be transmitted not only in step S1311 of FIG. 27 but also at an arbitrary timing, and may be transmitted from a child terminal. Moreover, for example, after the first and second terminals have paired, the second terminal may re-pair with the third terminal in response to a search for an update service from the third terminal. . Similarly, the first terminal may re-pair with the third terminal. Each time a new pair is formed, the server 530 receives a reception start notification similar to step S1311.

そこで、第5実施形態では、新たなペアが組まれた場合、サーバ530の端末管理部537は、古いペアの情報(すなわち端末テーブル538上の既存エントリ)を適宜更新または削除し、必要に応じて新規エントリを追加することで、情報の整合性を保つ。図33〜35の処理は、情報の整合性を保つための処理である。   Therefore, in the fifth embodiment, when a new pair is formed, the terminal management unit 537 of the server 530 appropriately updates or deletes the information on the old pair (that is, the existing entry on the terminal table 538), and if necessary, To maintain the consistency of information by adding new entries. The processes in FIGS. 33 to 35 are processes for maintaining the consistency of information.

具体的には、ある端末Xからの受信開始通知をサーバ530の端末管理部537が受信する場合としては、以下の12通りの場合(便宜上、「ケースA」〜「ケースL」という)があり得る。図33〜35の概要を明らかにするため、まず、ケースA〜Lについて説明する。なお以下のケースA〜Lの説明における「登録」とは、具体的には、端末テーブル538への登録である。   Specifically, the terminal management unit 537 of the server 530 receives a reception start notification from a certain terminal X in the following 12 cases (referred to as “case A” to “case L” for convenience). obtain. In order to clarify the outline of FIGS. 33 to 35, cases A to L will be described first. Note that “registration” in the following description of cases A to L is specifically registration in the terminal table 538.

ケースAは次のような場合である。
・端末Xは、現在、端末C0の親として登録されている。
・現在、端末P1が端末C1の親として登録されている。
・しかし、今回、端末Xは端末P1を端末Xの子として通知してきた。
Case A is as follows.
Terminal X is currently registered as the parent of terminal C0.
Currently, terminal P1 is registered as the parent of terminal C1.
However, this time, the terminal X has notified the terminal P1 as a child of the terminal X.

ケースAで端末管理部537は、端末C0と端末C1の登録を削除し、端末Xと端末P1を対応づけ、端末Xと端末P1についての登録済みの情報を通知にしたがって更新する。   In case A, the terminal management unit 537 deletes the registration of the terminal C0 and the terminal C1, associates the terminal X with the terminal P1, and updates the registered information about the terminal X and the terminal P1 according to the notification.

ケースBは次のような場合である。
・端末Xは、現在、端末C0の親として登録されている。
・今回、端末Xは端末C0を端末Xの子として通知してきた。
Case B is the following case.
Terminal X is currently registered as the parent of terminal C0.
-This time, the terminal X has notified the terminal C0 as a child of the terminal X.

ケースBで端末管理部537は、単純に、端末Xと端末C0についての登録済みの情報を通知にしたがって更新する。   In case B, the terminal management unit 537 simply updates the registered information about the terminal X and the terminal C0 according to the notification.

ケースCは次のような場合である。
・端末Xは、現在、端末C0の親として登録されている。
・現在、端末C1が端末P1の子として登録されている。
・しかし、今回、端末Xは端末C1を端末Xの子として通知してきた。
Case C is the following case.
Terminal X is currently registered as the parent of terminal C0.
-Currently, the terminal C1 is registered as a child of the terminal P1.
However, this time, the terminal X has notified the terminal C1 as a child of the terminal X.

ケースCで端末管理部537は、端末C0と端末P1の登録を削除し、端末Xと端末C1を対応づけ、端末Xと端末C1についての登録済みの情報を通知にしたがって更新する。   In case C, the terminal management unit 537 deletes the registration of the terminal C0 and the terminal P1, associates the terminal X with the terminal C1, and updates the registered information about the terminal X and the terminal C1 according to the notification.

ケースDは次のような場合である。
・端末Xは、現在、端末C0の親として登録されている。
・端末Uは未登録の端末である。
・今回、端末Xは端末Uを端末Xの子として通知してきた。
Case D is the following case.
Terminal X is currently registered as the parent of terminal C0.
Terminal U is an unregistered terminal.
This time, terminal X has notified terminal U as a child of terminal X.

ケースDで端末管理部537は、端末C0の登録を削除し、端末Uを新たに登録し、端末Xと端末Uを対応づけ、端末Xについての登録済みの情報を通知にしたがって更新する。   In case D, the terminal management unit 537 deletes the registration of the terminal C0, newly registers the terminal U, associates the terminal X with the terminal U, and updates the registered information about the terminal X according to the notification.

ケースEは次のような場合である。
・端末Xは、現在、端末C0の親として登録されている。
・今回、端末Xは、端末X自身がいずれかの端末の子であるものとして、端末X自身の情報を通知してきた。
Case E is the following case.
Terminal X is currently registered as the parent of terminal C0.
-This time, the terminal X has notified the terminal X itself of information that the terminal X itself is a child of one of the terminals.

ケースEで端末管理部537は、端末C0の登録を削除し、端末Xについての情報を通知にしたがって更新する。   In case E, the terminal management unit 537 deletes the registration of the terminal C0 and updates the information about the terminal X according to the notification.

ケースFは次のような場合である。
・端末Xは、現在、端末P0の子として登録されている。
・現在、端末P1が端末C1の親として登録されている。
・しかし、今回、端末Xは端末P1を端末Xの子として通知してきた。
Case F is the following case.
Terminal X is currently registered as a child of terminal P0.
Currently, terminal P1 is registered as the parent of terminal C1.
However, this time, the terminal X has notified the terminal P1 as a child of the terminal X.

ケースFで端末管理部537は、端末P0と端末C1の登録を削除し、端末Xと端末P1を対応づけ、端末Xと端末P1についての登録済みの情報を通知にしたがって更新する。   In case F, the terminal management unit 537 deletes the registration of the terminal P0 and the terminal C1, associates the terminal X with the terminal P1, and updates the registered information about the terminal X and the terminal P1 according to the notification.

ケースGは次のような場合である。
・端末Xは、現在、端末P0の子として登録されている。
・現在、端末C1が端末P1の子として登録されている。
・しかし、今回、端末Xは端末C1を端末Xの子として通知してきた。
Case G is the following case.
Terminal X is currently registered as a child of terminal P0.
-Currently, the terminal C1 is registered as a child of the terminal P1.
However, this time, the terminal X has notified the terminal C1 as a child of the terminal X.

ケースGで端末管理部537は、端末P0と端末P1の登録を削除し、端末Xと端末C1を対応づけ、端末Xと端末C1についての登録済みの情報を通知にしたがって更新する。   In case G, the terminal management unit 537 deletes the registration of the terminal P0 and the terminal P1, associates the terminal X with the terminal C1, and updates the registered information about the terminal X and the terminal C1 according to the notification.

ケースHは次のような場合である。
・端末Xは、現在、端末P0の子として登録されている。
・端末Uは未登録の端末である。
・今回、端末Xは端末Uを端末Xの子として通知してきた。
Case H is the following case.
Terminal X is currently registered as a child of terminal P0.
Terminal U is an unregistered terminal.
This time, terminal X has notified terminal U as a child of terminal X.

ケースHで端末管理部537は、端末P0の登録を削除し、端末Uを新たに登録し、端末Xと端末Uを対応づけ、端末Xについての登録済みの情報を通知にしたがって更新する。   In case H, the terminal management unit 537 deletes the registration of the terminal P0, newly registers the terminal U, associates the terminal X with the terminal U, and updates the registered information about the terminal X according to the notification.

ケースIは次のような場合である。
・端末Xは、現在、端末P0の子として登録されている。
・今回、端末Xは、端末X自身の情報を通知してきた。
Case I is as follows.
Terminal X is currently registered as a child of terminal P0.
-This time, the terminal X has notified the information of the terminal X itself.

ケースIで端末管理部537は、単純に、端末Xについての登録済みの情報を通知にしたがって更新する。   In case I, the terminal management unit 537 simply updates the registered information about the terminal X according to the notification.

ケースJは次のような場合である。
・端末Xは未登録である。
・現在、端末P1が端末C1の親として登録されている。
・しかし、今回、端末Xは端末P1を端末Xの子として通知してきた。
Case J is the following case.
-Terminal X is unregistered.
Currently, terminal P1 is registered as the parent of terminal C1.
However, this time, the terminal X has notified the terminal P1 as a child of the terminal X.

ケースJで端末管理部537は、端末C1の登録を削除し、端末Xを新たに登録し、端末Xと端末P1を対応づけ、端末P1についての登録済みの情報を通知にしたがって更新する。   In case J, the terminal management unit 537 deletes the registration of the terminal C1, newly registers the terminal X, associates the terminal X with the terminal P1, and updates the registered information about the terminal P1 according to the notification.

ケースKは次のような場合である。
・端末Xは未登録である。
・現在、端末C1が端末P1の子として登録されている。
・しかし、今回、端末Xは端末C1を端末Xの子として通知してきた。
Case K is the following case.
-Terminal X is unregistered.
-Currently, the terminal C1 is registered as a child of the terminal P1.
However, this time, the terminal X has notified the terminal C1 as a child of the terminal X.

ケースKで端末管理部537は、端末P1の登録を削除し、端末Xを新たに登録し、端末Xと端末C1を対応づけ、端末C1についての登録済みの情報を通知にしたがって更新する。   In case K, the terminal management unit 537 deletes the registration of the terminal P1, newly registers the terminal X, associates the terminal X with the terminal C1, and updates the registered information about the terminal C1 according to the notification.

ケースLは次のような場合である。
・端末Xは未登録である。
・端末Uも未登録である。
・今回、端末Xは端末Uを端末Xの子として通知してきた。
Case L is the following case.
-Terminal X is unregistered.
-Terminal U is also unregistered.
This time, terminal X has notified terminal U as a child of terminal X.

ケースLで端末管理部537は、端末Xを新たに登録し、端末Uも新たに登録し、端末Xと端末Uを対応づける。   In case L, the terminal management unit 537 newly registers the terminal X, newly registers the terminal U, and associates the terminal X with the terminal U.

以上のように端末管理部537は、ケースA〜Lに応じて、端末テーブル538を適宜書き換えることで、情報の整合性を保つ。具体的な処理手順は、以下のとおりである。
端末管理部537は、ステップS1401において、いずれかの端末(以下「端末X」とする)から受信開始通知を受信する。
As described above, the terminal management unit 537 keeps information consistency by appropriately rewriting the terminal table 538 according to cases A to L. The specific processing procedure is as follows.
In step S1401, the terminal management unit 537 receives a reception start notification from one of the terminals (hereinafter referred to as “terminal X”).

すると、次にステップS1402で端末管理部537は、受信開始通知で通知された端末UUIDが「UUID」フィールドに格納されたエントリ(つまり端末Xに対応するエントリ)が端末テーブル538に存在するか否かを判断する。そして、エントリが見つかった場合(すなわちケースA〜Iのいずれか)、処理はステップS1403に移行する。逆に、エントリが見つからなかった場合(すなわちケースJ〜Lのいずれか)、処理は図35のステップS1419に移行する。   Then, in step S1402, the terminal management unit 537 determines whether there is an entry in the terminal table 538 in which the terminal UUID notified by the reception start notification is stored in the “UUID” field (that is, the entry corresponding to the terminal X). Determine whether. If an entry is found (that is, one of cases A to I), the process proceeds to step S1403. Conversely, if no entry is found (that is, any of cases J to L), the process proceeds to step S1419 in FIG.

ステップS1403で端末管理部537は、ステップS1402で見つかったエントリの「子端末UUID」フィールドと、受信開始通知により通知された子端末UUIDが同じか否かを判断する。両者の値が等しい場合(すなわちケースBまたはI)、処理はステップS1404に移行する。逆に、両者の値が異なる場合(すなわちケースAおよびC〜Hのうちのいずれか)、処理はステップS1407に移行する。   In step S1403, the terminal management unit 537 determines whether the “child terminal UUID” field of the entry found in step S1402 is the same as the child terminal UUID notified by the reception start notification. If both values are equal (that is, case B or I), the process proceeds to step S1404. Conversely, if the two values are different (that is, one of cases A and C to H), the process proceeds to step S1407.

ステップS1404で端末管理部537は、受信開始通知により通知された子端末UUIDがNULLか否かを判断する。通知された子端末UUIDがNULLの場合(すなわちケースI)、処理はステップS1405に移行する。逆に、通知された子端末UUIDが非NULLの場合(すなわちケースB)、処理はステップS1406に移行する。   In step S1404, the terminal management unit 537 determines whether or not the child terminal UUID notified by the reception start notification is NULL. When the notified child terminal UUID is NULL (that is, Case I), the process proceeds to step S1405. Conversely, when the notified child terminal UUID is non-NULL (that is, case B), the process proceeds to step S1406.

ところで、ステップS1405は、図33に示すように、ステップS1404の判断結果によらず、実行される。つまり、ステップS1405は、ケースBでも実行され、ケースIでも実行される。   Incidentally, step S1405 is executed regardless of the determination result of step S1404, as shown in FIG. That is, step S1405 is executed also in case B and also in case I.

ステップS1405で端末管理部537は、ステップS1402で見つかったエントリ(つまり端末X自身に対応するエントリ)を更新する。具体的には、端末管理部537は、当該エントリの「IPアドレス」、「OS」、および「種別」の各フィールドを、受信開始通知により通知された端末IPアドレス、端末OS、および端末種別の値で上書きする。そして、図33〜35の処理は終了する。   In step S1405, the terminal management unit 537 updates the entry found in step S1402 (that is, the entry corresponding to the terminal X itself). Specifically, the terminal management unit 537 sets the “IP address”, “OS”, and “type” fields of the entry to the terminal IP address, terminal OS, and terminal type notified by the reception start notification. Overwrite with value. And the process of FIGS. 33-35 is complete | finished.

また、ステップS1406はケースBにおいて実行される。ステップS1406で端末管理部537は、端末テーブル538において、受信開始通知により通知された子端末UUIDが「UUID」フィールドに格納されているエントリを更新する。つまり、端末管理部537は、端末Xにとっての子端末C0に対応するエントリを更新する。   Step S1406 is executed in case B. In step S1406, the terminal management unit 537 updates the entry in the terminal table 538 in which the child terminal UUID notified by the reception start notification is stored in the “UUID” field. That is, the terminal management unit 537 updates the entry corresponding to the child terminal C0 for the terminal X.

具体的には、端末管理部537は、当該エントリの「IPアドレス」、「OS」、および「種別」の各フィールドを、受信開始通知により通知された子端末IPアドレス、子端末OS、および子端末種別の値で上書きする。そして、処理はステップS1405へと移行する。   Specifically, the terminal management unit 537 displays the “IP address”, “OS”, and “type” fields of the entry for the child terminal IP address, the child terminal OS, and the child terminal notified by the reception start notification. Overwrite with terminal type value. Then, the process proceeds to step S1405.

また、ステップS1407で端末管理部537は、ステップS1402で見つかったエントリ(つまり端末X自身に対応するエントリ)の「子端末UUID」フィールドがNULLか否かを判断する。「子端末UUID」フィールドがNULLの場合(すなわちケースF〜Hのいずれか)、処理はステップS1408に移行する。逆に、「子端末UUID」フィールドがNULLでない場合(すなわちケースAおよびC〜Eのうちのいずれか)、処理は図34のステップS1409に移行する。   In step S1407, the terminal management unit 537 determines whether the “child terminal UUID” field of the entry found in step S1402 (that is, the entry corresponding to the terminal X itself) is NULL. If the “child terminal UUID” field is NULL (that is, one of cases F to H), the process proceeds to step S1408. Conversely, if the “child terminal UUID” field is not NULL (that is, one of cases A and C to E), the process proceeds to step S1409 in FIG.

ステップS1408で端末管理部537は、ステップS1402で見つかったエントリ(つまり端末X自身に対応するエントリ)の「UUID」フィールドと同じ値が「子端末UUID」フィールドに格納されているエントリを削除する。つまり、端末Xにとって今まで親として登録されていた端末P0に対応するエントリを、端末管理部537は削除する。そして、処理は図34のステップS1413に移行する。   In step S1408, the terminal management unit 537 deletes an entry in which the same value as the “UUID” field of the entry found in step S1402 (that is, the entry corresponding to the terminal X itself) is stored in the “child terminal UUID” field. That is, the terminal management unit 537 deletes the entry corresponding to the terminal P0 that has been registered as a parent so far for the terminal X. Then, the process proceeds to step S1413 in FIG.

さて、図34のステップS1409は、ケースAおよびC〜Eのうちのいずれかであるとき、実行される。ステップS1409で端末管理部537は、ステップS1402で見つかったエントリ(つまり端末X自身に対応するエントリ)の「子端末UUID」フィールドと同じ値が「UUID」フィールドに格納されているエントリを削除する。つまり、端末Xにとって今まで子として登録されていた端末C0に対応するエントリを、端末管理部537は削除する。   Now, step S1409 of FIG. 34 is executed when any of cases A and C to E. In step S1409, the terminal management unit 537 deletes the entry in which the same value as the “child terminal UUID” field of the entry found in step S1402 (that is, the entry corresponding to the terminal X itself) is stored in the “UUID” field. That is, the terminal management unit 537 deletes the entry corresponding to the terminal C0 that has been registered as a child so far for the terminal X.

そして、次のステップS1410で端末管理部537は、受信開始通知により通知された子端末UUIDがNULLか否かを判断する。通知された子端末UUIDがNULLの場合(すなわちケースE)、処理はステップS1411に移行する。逆に、通知された子端末UUIDがNULLでない場合(すなわちケースA、C、またはD)、処理はステップS1413に移行する。   In step S1410, the terminal management unit 537 determines whether the child terminal UUID notified by the reception start notification is NULL. If the notified child terminal UUID is NULL (that is, case E), the process proceeds to step S1411. Conversely, when the notified child terminal UUID is not NULL (that is, case A, C, or D), the process proceeds to step S1413.

ステップS1411で端末管理部537は、ステップS1402で見つかったエントリ(つまり端末X自身に対応するエントリ)の「子端末UUID」フィールドをNULLに書き換える。すなわち、端末管理部537は、端末Xが子を持たないという最新情報を記録する。   In step S1411, the terminal management unit 537 rewrites the “child terminal UUID” field of the entry found in step S1402 (that is, the entry corresponding to the terminal X itself) to NULL. That is, the terminal management unit 537 records the latest information that the terminal X has no children.

そして、次のステップS1412で端末管理部537は、ステップS1402で見つかったエントリ(つまり端末X自身に対応するエントリ)を更新する。具体的には、端末管理部537は、当該エントリの「IPアドレス」、「OS」、および「種別」の各フィールドを、受信開始通知により通知された端末IPアドレス、端末OS、および端末種別の値で上書きする。そして、図33〜35の処理は終了する。   In step S1412, the terminal management unit 537 updates the entry found in step S1402 (that is, the entry corresponding to the terminal X itself). Specifically, the terminal management unit 537 sets the “IP address”, “OS”, and “type” fields of the entry to the terminal IP address, terminal OS, and terminal type notified by the reception start notification. Overwrite with value. And the process of FIGS. 33-35 is complete | finished.

さて、ステップS1413は、ケースA、C、D、F、G、またはHにおいて実行される。ステップS1413で端末管理部537は、ステップS1402で見つかったエントリ(つまり端末X自身に対応するエントリ)を更新する。具体的には、端末管理部537は、当該エントリの「IPアドレス」、「OS」、「種別」、および「子端末UUID」の各フィールドを、受信開始通知により通知された端末IPアドレス、端末OS、端末種別、および子端末UUIDの値で上書きする。なお、「子端末UUID」フィールドの上書きにより、「端末Xが今までのペアを解消して別の端末と新たなペアを組んだ」ということが端末テーブル538に反映される。   Step S1413 is executed in cases A, C, D, F, G, or H. In step S1413, the terminal management unit 537 updates the entry found in step S1402 (that is, the entry corresponding to the terminal X itself). Specifically, the terminal management unit 537 sets the “IP address”, “OS”, “type”, and “child terminal UUID” fields of the entry to the terminal IP address and terminal notified by the reception start notification. The OS, terminal type, and child terminal UUID values are overwritten. Note that, by overwriting the “child terminal UUID” field, it is reflected in the terminal table 538 that “the terminal X has canceled the previous pair and formed a new pair with another terminal”.

そして、次のステップS1414で端末管理部537は、受信開始通知により通知された子端末UUIDが「UUID」フィールドに格納されたエントリが端末テーブル538に存在するか否かを判断する。つまり、端末管理部537は、今回の端末Xからの受信開始通知により端末Xの子端末として通知された端末に対応するエントリが端末テーブル538に存在するか否かを判断する。   In step S1414, the terminal management unit 537 determines whether an entry in which the child terminal UUID notified by the reception start notification is stored in the “UUID” field exists in the terminal table 538. That is, the terminal management unit 537 determines whether there is an entry in the terminal table 538 corresponding to the terminal notified as a child terminal of the terminal X by the current reception start notification from the terminal X.

そして、エントリが見つからない場合(すなわちケースDまたはH)、処理はステップS1415に移行する。逆に、エントリが見つかった場合(すなわちケースA、C、F、またはG)、処理はステップS1416に移行する。   If no entry is found (ie, case D or H), the process proceeds to step S1415. Conversely, if an entry is found (ie, case A, C, F, or G), the process moves to step S1416.

ステップS1415で端末管理部537は、以下のような新規エントリを端末テーブル538に追加する。つまり、端末管理部537は、ケースDまたはHにおける未登録の端末Uについての新規エントリを作成する。   In step S1415, the terminal management unit 537 adds the following new entry to the terminal table 538. That is, the terminal management unit 537 creates a new entry for the unregistered terminal U in case D or H.

・「IPアドレス」フィールドの値は、受信開始通知により通知された子端末IPアドレスである。
・「UUID」フィールドの値は、受信開始通知により通知された子端末UUIDである。
・「OS」フィールドの値は、受信開始通知により通知された子端末OSである。
・「種別」フィールドの値は、受信開始通知により通知された子端末種別である。
・「子端末UUID」フィールドは、NULLである。
The value of the “IP address” field is the child terminal IP address notified by the reception start notification.
The value of the “UUID” field is the child terminal UUID notified by the reception start notification.
The value of the “OS” field is the child terminal OS notified by the reception start notification.
The value of the “type” field is the child terminal type notified by the reception start notification.
The “child terminal UUID” field is NULL.

ステップS1415における以上のエントリの追加後、図33〜35の処理は終了する。   After adding the above entries in step S1415, the processing of FIGS.

さて、ステップS1416は、ケースA、C、F、またはGのとき実行される。ステップS1416で端末管理部537は、ステップS1414で見つかったエントリ(つまり今回の受信開始通知により端末Xの子端末として通知された端末に対応するエントリ)の「子端末UUID」フィールドがNULLか否かを判断する。「子端末UUID」フィールドがNULLではない場合(つまりケースAまたはF)、処理はステップS1417に移行する。逆に、「子端末UUID」フィールドがNULLの場合(つまりケースCまたはG)、処理はステップS1418に移行する。   Step S1416 is executed for cases A, C, F, or G. In step S1416, the terminal management unit 537 determines whether or not the “child terminal UUID” field of the entry found in step S1414 (that is, the entry corresponding to the terminal notified as the child terminal of the terminal X by the current reception start notification) is NULL. Judging. If the “child terminal UUID” field is not NULL (that is, case A or F), the process proceeds to step S1417. Conversely, when the “child terminal UUID” field is NULL (that is, case C or G), the process proceeds to step S1418.

ステップS1417で端末管理部537は、ステップS1414で見つかったエントリの「子端末UUID」フィールドと同じ値が「UUID」フィールドに格納されているエントリを削除する。つまり、ケースAまたはFにおいて、今回端末Xが新たにペアを組んだ端末P1が今までペアを組んでいた端末C1に関するエントリを、端末管理部537は削除する。そして、処理はステップS1418へ移行する。   In step S1417, the terminal management unit 537 deletes the entry in which the same value as the “child terminal UUID” field of the entry found in step S1414 is stored in the “UUID” field. That is, in the case A or F, the terminal management unit 537 deletes the entry related to the terminal C1 that the terminal P1 that has newly paired with the terminal X this time has paired up to now. Then, the process proceeds to step S1418.

ところで、ステップS1418は、図34に示すように、ステップS1416の判断結果によらず、実行される。つまり、ステップS1418は、ケースA、C、F、Gのいずれであっても、実行される。   Incidentally, step S1418 is executed irrespective of the determination result of step S1416, as shown in FIG. That is, step S1418 is executed in any of cases A, C, F, and G.

ステップS1418で端末管理部537は、ステップS1414で見つかったエントリ(つまり今回の受信開始通知により端末Xの子端末として通知された端末に対応するエントリ)を更新する。具体的には、端末管理部537は、当該エントリの「IPアドレス」、「OS」、および「種別」の各フィールドを、受信開始通知により通知された子端末IPアドレス、子端末OS、および子端末種別の値で上書きする。また、端末管理部537は、当該エントリの「子端末UUID」フィールドをNULLに上書きする。なお、「子端末UUID」フィールドの上書きにより、「端末Xの新たな子端末が、今までのペアを解消して端末Xと新たにペアを組んだ」ということが端末テーブル538に反映される。ステップS1418での更新が済むと、図33〜35の処理も終了する。   In step S1418, the terminal management unit 537 updates the entry found in step S1414 (that is, the entry corresponding to the terminal notified as a child terminal of terminal X by the current reception start notification). Specifically, the terminal management unit 537 displays the “IP address”, “OS”, and “type” fields of the entry for the child terminal IP address, the child terminal OS, and the child terminal notified by the reception start notification. Overwrite with terminal type value. Further, the terminal management unit 537 overwrites the “child terminal UUID” field of the entry with NULL. By overwriting the “child terminal UUID” field, it is reflected in the terminal table 538 that “a new child terminal of the terminal X has canceled the pair so far and has newly paired with the terminal X”. . When the update in step S1418 is completed, the processes in FIGS.

さて、図35のステップS1419は、ケースJ、K、またはLのとき(つまり端末テーブル538に未登録の端末Xから受信開始通知を端末管理部537が受信した場合)に実行される。ステップS1419で端末管理部537は、受信開始通知により通知された子端末UUIDが「UUID」フィールドに格納されたエントリが端末テーブル538に存在するか否かを判断する。そして、エントリが見つかった場合(すなわちケースJまたはK)、処理はステップS1420に移行する。逆に、エントリが見つからなかった場合(すなわちケースL)、処理はステップS1424に移行する。   Step S1419 in FIG. 35 is executed in case J, K, or L (that is, when the terminal management unit 537 receives a reception start notification from a terminal X not registered in the terminal table 538). In step S <b> 1419, the terminal management unit 537 determines whether or not an entry in which the child terminal UUID notified by the reception start notification is stored in the “UUID” field exists in the terminal table 538. If an entry is found (that is, case J or K), the process proceeds to step S1420. On the other hand, when no entry is found (that is, case L), the process proceeds to step S1424.

ステップS1420で端末管理部537は、ステップS1419で見つかったエントリ(つまりケースJの場合は端末P1に対応するエントリであり、ケースKの場合は端末C1に対応するエントリ)の「子端末UUID」フィールドがNULLか否かを判断する。そして、「子端末UUID」フィールドがNULLの場合(つまりケースK)、処理はステップS1421に移行する。逆に、「子端末UUID」フィールドがNULLでない場合(つまりケースJ)、処理はステップS1422に移行する。   In step S1420, the terminal management unit 537 displays the “child terminal UUID” field of the entry found in step S1419 (that is, the entry corresponding to terminal P1 in case J and the terminal C1 in case K). Is determined to be NULL. If the “child terminal UUID” field is NULL (that is, case K), the process proceeds to step S1421. Conversely, when the “child terminal UUID” field is not NULL (that is, case J), the process proceeds to step S1422.

ところで、ステップS1421は、図35に示すように、ステップS1420の判断結果によらず、実行される。つまり、ステップS1421は、ケースJでも実行され、ケースKでも実行される。   By the way, step S1421 is executed regardless of the determination result of step S1420, as shown in FIG. That is, step S1421 is executed also in case J and in case K.

ステップS1421で端末管理部537は、ステップS1419で見つかったエントリを更新する。更新対象のエントリは、今までのペアを解消して端末Xと新たにペアを組む登録済みの端末に関するエントリであり、より具体的には、ケースJの場合は端末P1に対応するエントリであり、ケースKの場合は端末C1に対応するエントリである。ステップS1419において、端末管理部537は、具体的には、当該エントリの「IPアドレス」、「OS」、および「種別」の各フィールドを、受信開始通知により通知された子端末IPアドレス、子端末OS、および子端末種別の値で上書きする。ステップS1421での更新後、処理はステップS1425に移行する。   In step S1421, the terminal management unit 537 updates the entry found in step S1419. The entry to be updated is an entry related to a registered terminal that cancels the previous pair and forms a new pair with the terminal X. More specifically, in the case J, the entry corresponds to the terminal P1. Case K is an entry corresponding to the terminal C1. In step S1419, the terminal management unit 537, specifically, the “IP address”, “OS”, and “type” fields of the entry indicate the child terminal IP address and child terminal notified by the reception start notification. Overwrite with OS and child terminal type values. After the update in step S1421, the process proceeds to step S1425.

さて、ステップS1422〜S1423はケースJで実行される。具体的には、ステップS1422で端末管理部537は、ステップS1419で見つかったエントリ(つまり端末P1に対応するエントリ)の「子端末UUID」フィールドと同じ値が「UUID」フィールドに格納されているエントリを削除する。換言すれば、端末管理部537は、ケースJにおける端末C1に対応するエントリを削除する。   Steps S1422 to S1423 are executed in case J. Specifically, in step S1422, the terminal management unit 537 enters an entry in which the same value as the “child terminal UUID” field of the entry found in step S1419 (that is, the entry corresponding to the terminal P1) is stored in the “UUID” field. Is deleted. In other words, the terminal management unit 537 deletes the entry corresponding to the terminal C1 in case J.

そして、次のステップS1423で端末管理部537は、ステップS1419で見つかったエントリの「子端末UUID」フィールドをNULLに更新する。換言すれば、端末管理部537は、ケースJにおける端末P1を、親端末の立場から子端末の立場へと、いわば変身させる。そして、処理はステップS1421に移行する。   In step S1423, the terminal management unit 537 updates the “child terminal UUID” field of the entry found in step S1419 to NULL. In other words, the terminal management unit 537 transforms the terminal P1 in the case J from the position of the parent terminal to the position of the child terminal. Then, the process proceeds to step S1421.

さて、ステップS1424はケースLのとき実行される。ステップS1424で端末管理部537は、以下のような新規エントリを端末テーブル538に追加する。つまり、端末管理部537は、ケースLにおける未登録の端末Uについての新規エントリを作成する。   Step S1424 is executed for case L. In step S1424, the terminal management unit 537 adds the following new entry to the terminal table 538. That is, the terminal management unit 537 creates a new entry for the unregistered terminal U in case L.

・「IPアドレス」フィールドの値は、受信開始通知により通知された子端末IPアドレスである。
・「UUID」フィールドの値は、受信開始通知により通知された子端末UUIDである。
・「OS」フィールドの値は、受信開始通知により通知された子端末OSである。
・「種別」フィールドの値は、受信開始通知により通知された子端末種別である。
・「子端末UUID」フィールドは、NULLである。
The value of the “IP address” field is the child terminal IP address notified by the reception start notification.
The value of the “UUID” field is the child terminal UUID notified by the reception start notification.
The value of the “OS” field is the child terminal OS notified by the reception start notification.
The value of the “type” field is the child terminal type notified by the reception start notification.
The “child terminal UUID” field is NULL.

ステップS1424における以上のエントリの追加後、処理はステップS1425に移行する。   After adding the above entries in step S1424, the process proceeds to step S1425.

ステップS1425は、ケースJ、K、またはLのとき(つまり端末テーブル538に未登録の端末Xから受信開始通知を端末管理部537が受信した場合)、実行される。ステップS1425で端末管理部537は、以下のような新規エントリを端末テーブル538に追加する。つまり、端末管理部537は、端末Xについての新規エントリを作成する。   Step S1425 is executed in case J, K, or L (that is, when the terminal management unit 537 receives a reception start notification from a terminal X not registered in the terminal table 538). In step S1425, the terminal management unit 537 adds the following new entry to the terminal table 538. That is, the terminal management unit 537 creates a new entry for the terminal X.

・「IPアドレス」フィールドの値は、受信開始通知により通知された端末IPアドレスである。
・「UUID」フィールドの値は、受信開始通知により通知された端末UUIDである。
・「OS」フィールドの値は、受信開始通知により通知された端末OSである。
・「種別」フィールドの値は、受信開始通知により通知された端末種別である。
・「子端末UUID」フィールドの値は、受信開始通知により通知された子端末UUIDである。
The value of the “IP address” field is the terminal IP address notified by the reception start notification.
The value of the “UUID” field is the terminal UUID notified by the reception start notification.
The value of the “OS” field is the terminal OS notified by the reception start notification.
The value of the “type” field is the terminal type notified by the reception start notification.
The value of the “child terminal UUID” field is the child terminal UUID notified by the reception start notification.

ステップS1425における以上のエントリの追加後、図33〜35の処理も終了する。   After adding the above entries in step S1425, the processing of FIGS.

次に、図36〜37のフローチャートを参照して、図27のステップS1312aのようなセンサ540からの通知に応じてサーバ530が行う処理について説明する。図36〜37のフローチャートにしたがって、図27のステップS1312a、S1313a、およびS1315aの処理シーケンスが実現されることもあるし、ステップS1312a、S1313b、およびS1316bの処理シーケンスが実現されることもある。   Next, processing performed by the server 530 in response to the notification from the sensor 540 as in step S1312a in FIG. 27 will be described with reference to the flowcharts in FIGS. According to the flowcharts of FIGS. 36 to 37, the processing sequence of steps S1312a, S1313a, and S1315a of FIG. 27 may be realized, or the processing sequence of steps S1312a, S1313b, and S1316b may be realized.

さて、ステップS1501でコンテキスト抽出部534が、センサ540から、図27のステップS1312aのように、センサ値と端末IDを受信する。端末IDは、具体的には、IPアドレスまたはUUIDである。   In step S1501, the context extraction unit 534 receives the sensor value and the terminal ID from the sensor 540 as in step S1312a of FIG. The terminal ID is specifically an IP address or a UUID.

次に、ステップS1502でコンテキスト抽出部534が、通知されたセンサ値からコンテキスト情報を生成する。ステップS1502におけるコンテキスト情報の生成方法の詳細は、図18のステップS702と同様である。そして、コンテキスト抽出部534は、生成したコンテキスト情報を決定部535に通知する。   Next, in step S1502, the context extraction unit 534 generates context information from the notified sensor value. The details of the context information generation method in step S1502 are the same as in step S702 in FIG. Then, the context extraction unit 534 notifies the determination unit 535 of the generated context information.

また、ステップS1503でコンテキスト抽出部534は、センサ540から通知された端末IDを端末管理部537に通知する。そして、端末管理部537は、通知された端末IDがUUIDとIPアドレスのどちらなのかを判断する。   In step S1503, the context extraction unit 534 notifies the terminal management unit 537 of the terminal ID notified from the sensor 540. Then, the terminal management unit 537 determines whether the notified terminal ID is a UUID or an IP address.

通知された端末IDがUUIDの場合、処理はステップS1504に移行する。逆に、通知された端末IDがIPアドレスの場合、処理はステップS1505に移行する。
ステップS1504で端末管理部537は、通知されたUUIDがUUIDのフィールドに記憶されているエントリが、端末テーブル538にあるか否かを判断する。もしそのようなエントリがなければ、図36〜37の処理は終了する。逆に、通知されたUUIDがUUIDのフィールドに記憶されているエントリが見つかれば、端末管理部537は、見つけたエントリを決定部535に通知し、処理はステップS1506に移行する。
If the notified terminal ID is a UUID, the process proceeds to step S1504. Conversely, if the notified terminal ID is an IP address, the process proceeds to step S1505.
In step S1504, the terminal management unit 537 determines whether or not there is an entry in the terminal table 538 in which the notified UUID is stored in the UUID field. If there is no such entry, the processing in FIGS. On the other hand, if an entry in which the notified UUID is stored in the UUID field is found, the terminal management unit 537 notifies the determination unit 535 of the found entry, and the process proceeds to step S1506.

また、ステップS1505で端末管理部537は、通知されたIPアドレスがIPアドレスのフィールドに記憶されているエントリが端末テーブル538にあるか否かを判断する。もしそのようなエントリがなければ、図36〜37の処理は終了する。逆に、通知されたUUIDがUUIDのフィールドに記憶されているエントリが見つかれば、端末管理部537は、見つけたエントリを決定部535に通知し、処理はステップS1506に移行する。   In step S1505, the terminal management unit 537 determines whether there is an entry in the terminal table 538 in which the notified IP address is stored in the IP address field. If there is no such entry, the processing in FIGS. On the other hand, if an entry in which the notified UUID is stored in the UUID field is found, the terminal management unit 537 notifies the determination unit 535 of the found entry, and the process proceeds to step S1506.

ステップS1506で端末管理部537は、ステップS1504またはS1505で見つかったエントリの子端末UUIDのフィールドがNULLか否かを判断する。子端末UUIDのフィールドがNULLの場合、処理はステップS1507に移行する。逆に、子端末UUIDのフィールドがNULLでない場合、処理はステップS1508に移行する。   In step S1506, the terminal management unit 537 determines whether the child terminal UUID field of the entry found in step S1504 or S1505 is NULL. If the field of the child terminal UUID is NULL, the process proceeds to step S1507. On the other hand, if the field of the child terminal UUID is not NULL, the process proceeds to step S1508.

ステップS1507は、センサ540から通知された端末IDが、ある端末の子端末のIDである場合に実行される。ステップS1507で端末管理部537は、当該子端末の種別と、当該子端末の親である上記「ある端末」の種別を取得する。   Step S1507 is executed when the terminal ID notified from the sensor 540 is the ID of a child terminal of a certain terminal. In step S1507, the terminal management unit 537 acquires the type of the child terminal and the type of the “certain terminal” that is the parent of the child terminal.

具体的には、端末管理部537は、ステップS1504またはS1505で見つかったエントリの種別の値を取得する。また、端末管理部537は、ステップS1504またはS1505で見つかったエントリのUUIDのフィールドの値が、子端末UUIDのフィールドに記憶されているエントリの、種別の値を取得する。   Specifically, the terminal management unit 537 acquires the value of the type of the entry found in step S1504 or S1505. In addition, the terminal management unit 537 acquires the value of the type of the entry in which the UUID field value of the entry found in step S1504 or S1505 is stored in the child terminal UUID field.

そして、端末管理部537は、取得した2台の端末の種別の値を決定部535に通知する。また、端末管理部537は、2台の端末に対応する2つのエントリを決定部535に通知してもよい。そして、処理は図37のステップS1509に移行する。   Then, the terminal management unit 537 notifies the determination unit 535 of the acquired values of the types of the two terminals. In addition, the terminal management unit 537 may notify the determination unit 535 of two entries corresponding to two terminals. Then, the process proceeds to step S1509 in FIG.

他方、ステップS1508は、センサ540から通知された端末IDが、ある端末の親端末のIDである場合に実行される。ステップS1508で端末管理部537は、当該親端末の種別と、当該親端末の子である上記「ある端末」の種別を取得する。   On the other hand, step S1508 is executed when the terminal ID notified from the sensor 540 is the ID of the parent terminal of a certain terminal. In step S1508, the terminal management unit 537 acquires the type of the parent terminal and the type of the “certain terminal” that is a child of the parent terminal.

具体的には、端末管理部537は、ステップS1504またはS1505で見つかったエントリの種別の値を取得する。また、端末管理部537は、ステップS1504またはS1505で見つかったエントリの子端末UUIDのフィールドの値が、UUIDのフィールドに記憶されているエントリの、種別の値を取得する。   Specifically, the terminal management unit 537 acquires the value of the type of the entry found in step S1504 or S1505. Further, the terminal management unit 537 acquires the value of the type of the entry in which the value of the child terminal UUID field of the entry found in step S1504 or S1505 is stored in the UUID field.

そして、端末管理部537は、取得した2台の端末の種別の値を決定部535に通知する。また、端末管理部537は、2台の端末に対応する2つのエントリを決定部535に通知してもよい。そして、処理は図37のステップS1509に移行する。   Then, the terminal management unit 537 notifies the determination unit 535 of the acquired values of the types of the two terminals. In addition, the terminal management unit 537 may notify the determination unit 535 of two entries corresponding to two terminals. Then, the process proceeds to step S1509 in FIG.

さて、図37のステップS1509で決定部535は、下記の情報の組み合わせと合致するエントリが条件テーブル536にあるか否かを判断する。   Now, in step S1509 of FIG. 37, the determination unit 535 determines whether or not there is an entry in the condition table 536 that matches the following combination of information.

・ステップS1502でコンテキスト抽出部534から通知されたコンテキスト情報。
・ステップS1507またはS1508で端末管理部537から通知された、2台の端末それぞれの種別。
Context information notified from the context extraction unit 534 in step S1502.
The type of each of the two terminals notified from the terminal management unit 537 in step S1507 or S1508.

例えば、センサ540から通知された端末IDが、10.8.9.11というIPアドレスだったとする。この場合、図30の端末テーブル538の2番目のエントリがステップS1505で見つかる。   For example, it is assumed that the terminal ID notified from the sensor 540 is an IP address of 10.8.9.11. In this case, the second entry of the terminal table 538 of FIG. 30 is found in step S1505.

また、端末テーブル538の2番目のエントリの子端末UUIDのフィールドは、NULLである。よって、ステップS1507で、2番目のエントリの種別が取得され、さらに、2番目のエントリが表す端末の親端末を表すエントリ(すなわち1番目のエントリ)の種別が取得される。すなわち、タブレット端末とスマートフォンという2つの種別の値が取得される。   The field of the child terminal UUID of the second entry in the terminal table 538 is NULL. Accordingly, in step S1507, the type of the second entry is acquired, and further, the type of the entry representing the parent terminal of the terminal represented by the second entry (that is, the first entry) is acquired. That is, two types of values, that is, a tablet terminal and a smartphone are acquired.

ここで、仮にステップS1502では「会議室」というコンテキストが抽出されたとする。すると、ステップS1509において、決定部535は、図29の条件テーブル536において、会議室とタブレット端末とスマートフォンの組み合わせと合致する1番目のエントリを見つける。   Here, it is assumed that the context “conference room” is extracted in step S1502. In step S1509, the determination unit 535 finds the first entry that matches the combination of the conference room, the tablet terminal, and the smartphone in the condition table 536 of FIG.

また、仮にセンサ540から通知された端末IDが10.8.9.10というIPアドレスだった場合も、ステップS1507ではなくステップS1508で種別の値が取得される点以外は上記と同様にして、条件テーブル536の1番目のエントリが見つかる。   Also, if the terminal ID notified from the sensor 540 is an IP address of 10.8.9.10, the same as above except that the type value is acquired in step S1508 instead of step S1507. The first entry in the condition table 536 is found.

例えば以上のようにして、ステップS1509において条件テーブル536のエントリが見つかった場合、処理はステップS1510に移行する。逆に、エントリが見つからなければ、図36〜37の処理は終了する。   For example, as described above, when an entry in the condition table 536 is found in step S1509, the process proceeds to step S1510. Conversely, if no entry is found, the processing in FIGS. 36 to 37 ends.

ステップS1510で決定部535は、ステップS1509において条件テーブル536で見つかったエントリの、サービス提供端末の種別のフィールドと種別の値が合致した方の端末を、サービスの宛先として決定する。そして、決定部535は、当該端末のIPアドレス、UUID、およびOSの値を、端末テーブル538から取得し、取得した値を、サービスの宛先の端末に関する情報として送信部539に通知する。また、決定部535は、ステップS1509において条件テーブル536で見つかったエントリのサービスを、送信対象のサービスとして送信部539に通知する。   In step S1510, the determination unit 535 determines, as the service destination, the terminal whose type value matches the type field of the service providing terminal in the entry found in the condition table 536 in step S1509. Then, the determination unit 535 acquires the IP address, UUID, and OS value of the terminal from the terminal table 538, and notifies the transmission unit 539 of the acquired value as information related to the service destination terminal. Further, the determination unit 535 notifies the transmission unit 539 of the service of the entry found in the condition table 536 in step S1509 as the transmission target service.

さらに、ステップS1511で決定部535は、ステップS1509において条件テーブル536で見つかったエントリの、コントローラ端末の種別のフィールドと種別の値が合致した方の端末を、コントローラの宛先として決定する。そして、決定部535は、当該端末のIPアドレス、UUID、およびOSの値を、端末テーブル538から取得し、取得した値を、コントローラの宛先の端末に関する情報として送信部539に通知する。また、決定部535は、ステップS1509において条件テーブル536で見つかったエントリのコントローラを、送信対象のコントローラとして送信部539に通知する。   Further, in step S1511, the determination unit 535 determines, as the controller destination, the terminal whose type value matches the type field of the controller terminal in the entry found in the condition table 536 in step S1509. Then, the determination unit 535 acquires the IP address, UUID, and OS value of the terminal from the terminal table 538, and notifies the transmission unit 539 of the acquired value as information regarding the destination terminal of the controller. In addition, the determination unit 535 notifies the transmission unit 539 of the controller of the entry found in the condition table 536 in step S1509 as the transmission target controller.

なお、ステップS1510とS1511の順序は逆でもよい。例えば上記のようにセンサ540から10.8.9.11というIPアドレスが端末IDとして通知された場合、ステップS1509では条件テーブル536の1番目のエントリが見つかる。よって、ステップS1510では、種別がタブレット端末である方の端末(つまり10.8.9.11というIPアドレスの端末)が、ドキュメント表示サービスの宛先として決定される。また、ステップS1511では、種別がスマートフォンである方の端末(つまり10.8.9.10というIPアドレスの端末)が、ドキュメントページめくりコントローラの宛先として決定される。   Note that the order of steps S1510 and S1511 may be reversed. For example, when the IP address of 10.8.9.11 is notified as the terminal ID from the sensor 540 as described above, the first entry of the condition table 536 is found in step S1509. Therefore, in step S1510, the terminal whose type is the tablet terminal (that is, the terminal having the IP address of 10.8.9.11) is determined as the destination of the document display service. In step S1511, a terminal whose type is a smartphone (that is, a terminal with an IP address of 10.8.9.10) is determined as the destination of the document page turning controller.

最後に、ステップS1512で送信部539は、条件テーブル536からサービスとコントローラそれぞれの宛先として通知された端末に対し、サービスとコントローラそれぞれのデータを送信する。なお、送信部539は、決定部535から通知されたOSの値に応じて、適宜の新規サービスプログラム532と適宜の新規コントローラプログラム533を選んで送信する。ステップS1512の送信は、図27のステップS1313aとS1315aの送信に対応する場合もあるし、ステップS1313bとS1316bの送信に対応する場合もある。   Finally, in step S1512, the transmission unit 539 transmits the data of the service and the controller to the terminal notified from the condition table 536 as the destination of the service and the controller. The transmission unit 539 selects and transmits an appropriate new service program 532 and an appropriate new controller program 533 according to the value of the OS notified from the determination unit 535. The transmission in step S1512 may correspond to the transmission in steps S1313a and S1315a in FIG. 27, or may correspond to the transmission in steps S1313b and S1316b.

なお、ステップS1504、S1505、またはS1509で、検索条件に合致するエントリが見つからない場合は、何らかのエラーがある場合である。よって、これらの場合、上記のとおり図36〜37の処理は終了し、ステップS1512のような送信は行われない。   If no entry matching the search condition is found in step S1504, S1505, or S1509, there is some error. Therefore, in these cases, the processes in FIGS. 36 to 37 are terminated as described above, and transmission as in step S1512 is not performed.

さて、図38は、端末510が事前に行う処理のフローチャートである。図38は、図27のステップS1301〜S1311に対応する。なお、場合によっては端末520が図38の処理を行ってもよい(すなわち図27で端末510と端末520が入れ替わってもよい)。   FIG. 38 is a flowchart of processing performed in advance by the terminal 510. FIG. 38 corresponds to steps S1301 to S1311 of FIG. In some cases, the terminal 520 may perform the process of FIG. 38 (that is, the terminal 510 and the terminal 520 may be interchanged in FIG. 27).

さて、ステップS1601で更新サービス515が、図27のステップS1301のようなM-searchメッセージのマルチキャストにより、端末510の周辺にある端末の更新サービスを検索する。   In step S1601, the update service 515 searches for update services of terminals in the vicinity of the terminal 510 by multicasting an M-search message as in step S1301 of FIG.

もし、端末520のように、更新サービスを提供する端末があれば、更新サービス515は図27のステップS1302のような応答を受信する。この場合、更新サービス515はさらに、図27のステップS1303〜S1306のようにして、発見した他の端末(例えば端末520)のデバイス定義ファイルと、発見した更新サービスのサービス定義ファイルを取得する。   If there is a terminal that provides an update service, such as the terminal 520, the update service 515 receives a response such as step S1302 in FIG. In this case, the update service 515 further acquires a device definition file of another discovered terminal (for example, the terminal 520) and a service definition file of the discovered update service, as in steps S1303 to S1306 in FIG.

次に、ステップS1602で更新サービス515は、ステップS1601で更新サービスを提供する端末が発見されたか否かを判断する。
ステップS1601でのM-searchメッセージの送信から所定の時間が経過しても、ステップS1302のような応答が1つも受信されない場合、更新サービス515は、「更新サービスを提供する他の端末は発見されなかった」と判断する。そして、図38の処理も終了する。
Next, in step S1602, the update service 515 determines whether a terminal that provides the update service has been found in step S1601.
If no response as in step S1302 is received even after a predetermined time has elapsed since the transmission of the M-search message in step S1601, the update service 515 indicates that “another terminal providing the update service has been found. It was judged that it was not. Then, the process of FIG. 38 is also terminated.

逆に、ステップS1302のような応答が得られて、デバイス定義ファイルとサービス定義ファイルが取得されていれば、更新サービスを提供する他の端末(例えば端末520)が存在する。よって、この場合、更新サービス515は、「更新サービスを提供する他の端末が発見された」と判断し、処理はステップS1603へと移行する。   On the other hand, if a response as in step S1302 is obtained and the device definition file and the service definition file are acquired, there is another terminal (for example, the terminal 520) that provides the update service. Therefore, in this case, the update service 515 determines that “another terminal that provides the update service has been found”, and the process proceeds to step S1603.

さて、以下の説明では、ステップS1601の検索の結果、更新サービス525を提供する端末520が見つかったものとする。
ステップS1603で更新サービス515は、ステップS1601の検索の結果見つけた端末520に対して、図27のステップS1307のように受信準備コマンドを送信する。そして、更新サービス515は、受信準備コマンドに対する、ステップS1308のような応答を、見つけた端末520から受信する。受信される応答は、更新サービス515が見つけた端末520の、IPアドレス、UUID、OS、および種別の値を含む。
In the following description, it is assumed that the terminal 520 that provides the update service 525 is found as a result of the search in step S1601.
In step S1603, the update service 515 transmits a reception preparation command to the terminal 520 found as a result of the search in step S1601, as in step S1307 in FIG. Then, the update service 515 receives a response such as step S1308 to the reception preparation command from the found terminal 520. The received response includes the IP address, UUID, OS, and type values of the terminal 520 found by the update service 515.

そして、次のステップS1604で更新サービス515は、受信部516を起動する。その際、更新サービス515は、受信部516に対して、以下の情報を通知する。   In step S1604, the update service 515 activates the reception unit 516. At that time, the update service 515 notifies the receiving unit 516 of the following information.

・端末510自身のUUID。
・更新サービス515が見つけた端末520の、IPアドレス、OS、および種別。
・サーバ530のアドレス(例えばURI)。
-The UUID of the terminal 510 itself.
The IP address, OS, and type of the terminal 520 that the update service 515 has found.
The address of the server 530 (eg URI).

起動された受信部516は、サーバ530からデータを受信するための適宜の処理(例えば、所定のTCPポートを開放する処理など)を行う。ステップS1604は図27のステップS1310の受信準備に対応する。   The activated receiving unit 516 performs an appropriate process for receiving data from the server 530 (for example, a process for opening a predetermined TCP port). Step S1604 corresponds to the reception preparation in step S1310 of FIG.

また、ステップS1605で受信部516は、サーバ530の端末管理部537に対して、以下の情報を通知する。   In step S <b> 1605, the reception unit 516 notifies the terminal management unit 537 of the server 530 of the following information.

・端末510自身の、IPアドレス、OS、および種別。
・更新サービス515が見つけた端末520の、IPアドレス、OS、および種別。
-IP address, OS, and type of the terminal 510 itself.
The IP address, OS, and type of the terminal 520 that the update service 515 has found.

ステップS1605の通知は、具体的には、図27のステップS1311の受信開始通知である。   Specifically, the notification in step S1605 is the reception start notification in step S1311 in FIG.

さて、図39は、端末510と端末520のそれぞれがサーバ530からのデータの受信に応じて行う処理のフローチャートである。以下では便宜上、端末510が図39の処理を実行する場合を例にして説明を行う。   FIG. 39 is a flowchart of processing performed by each of the terminal 510 and the terminal 520 in response to reception of data from the server 530. Hereinafter, for convenience, the case where the terminal 510 executes the processing of FIG. 39 will be described as an example.

まず、ステップS1701で受信部516が、サーバ530からデータを受信する。そして、ステップS1702で受信部516は、受信したデータがサービスのデータなのかコントローラのデータなのかを判断する。サービスのデータ(つまり新規サービスプログラム532とサービス定義ファイルを含むデータ)が受信された場合、処理はステップS1703に移行する。逆に、コントローラのデータ(つまり新規コントローラプログラム533を含むデータ)が受信された場合、処理はステップS1707に移行する。   First, in step S <b> 1701, the receiving unit 516 receives data from the server 530. In step S1702, the reception unit 516 determines whether the received data is service data or controller data. When service data (that is, data including a new service program 532 and a service definition file) is received, the process proceeds to step S1703. On the other hand, if controller data (that is, data including the new controller program 533) is received, the process proceeds to step S1707.

ステップS1703で受信部516は、受信したサービスのデータを更新サービス515に通知する。
すると、ステップS1704で更新サービス515は、受信部516から通知されたデータを使って、以下の3つの処理を行う。
In step S1703, the reception unit 516 notifies the update service 515 of the received service data.
In step S1704, the update service 515 performs the following three processes using the data notified from the reception unit 516.

第1に、更新サービス515は、端末510のデバイス定義ファイルを更新する。
第2に、更新サービス515は、新規サービス518のサービス定義ファイルを追加または更新する。つまり、新規サービス518が今まで端末510に存在していなかった全く新しいサービスである場合は、更新サービス515は、新たなサービス定義ファイルを作成して保存する。また、新規サービス518が、端末510にインストール済みの既存のサービスの新規バージョンである場合は、更新サービス515は、当該既存のサービスのサービス定義ファイルを更新する。
第3に、更新サービス515は、受信した新規サービスプログラム532を端末510にインストールする。
First, the update service 515 updates the device definition file of the terminal 510.
Second, the update service 515 adds or updates the service definition file of the new service 518. That is, if the new service 518 is a completely new service that has not existed in the terminal 510 until now, the update service 515 creates and stores a new service definition file. When the new service 518 is a new version of an existing service already installed in the terminal 510, the update service 515 updates the service definition file of the existing service.
Third, the update service 515 installs the received new service program 532 in the terminal 510.

そして、次のステップS1705で更新サービス515は、図32のサービス定義ファイル561で定義されている「UpdateTime」という状態変数の値を現在時刻に更新する。端末510が図39の処理を実行する場合、ステップS1704〜S1705は、図27のステップS1314bに対応する。   In step S1705, the update service 515 updates the value of the state variable “UpdateTime” defined in the service definition file 561 in FIG. 32 to the current time. When the terminal 510 executes the process of FIG. 39, steps S1704 to S1705 correspond to step S1314b of FIG.

最後に、ステップS1706で更新サービス515は、GENAにより、端末510の周辺の端末(例えば、図27の例では、端末520と端末550)に対して、ステップS1705で更新した「UpdateTime」という状態変数の値を通知する。端末510が図39の処理を実行する場合、ステップS1706は、図27のステップS1315bに対応する。   Finally, in step S1706, the update service 515 performs a state variable “UpdateTime” updated in step S1705 on the terminals around the terminal 510 (for example, the terminal 520 and the terminal 550 in the example of FIG. 27) by GENA. Notify the value of. When the terminal 510 executes the process of FIG. 39, step S1706 corresponds to step S1315b of FIG.

他方、コントローラのデータが受信された場合、ステップS1707〜S1708の処理が行われる。つまり、ステップS1707で受信部516が、受信した新規コントローラプログラム533を更新サービス515に通知する。すると、ステップS1708で更新サービス515が、通知された新規コントローラプログラム533を端末510にインストールする。端末510が図39の処理を実行する場合、ステップS1708は図27のステップS1314aに対応する。   On the other hand, when the controller data is received, the processing in steps S1707 to S1708 is performed. That is, in step S1707, the reception unit 516 notifies the update service 515 of the received new controller program 533. In step S 1708, the update service 515 installs the notified new controller program 533 in the terminal 510. When the terminal 510 executes the process of FIG. 39, step S1708 corresponds to step S1314a of FIG.

以上説明した第5実施形態には、サービスとコントローラの更新による利便性向上という効果がある。また、更新サービス515と525はUPnPのサービスであるため、UPnP用のライブラリを介して更新サービス515と525の普及が促進される。さらに、第5実施形態では、コンテキストに応じた動的なサービスの利用が可能となる。   The fifth embodiment described above has the effect of improving convenience by updating services and controllers. Further, since the update services 515 and 525 are UPnP services, the spread of the update services 515 and 525 is promoted through the UPnP library. Furthermore, in the fifth embodiment, it is possible to use a dynamic service according to the context.

ところで、以上説明した第1〜第5実施形態における種々の装置は、どれも1種の情報処理装置である。図40に情報処理装置の構成図を示す。
図40の情報処理装置600は、CPU(Central Processing Unit)601、ROM(Read Only Memory)602、RAM(Random Access Memory)603、および通信インタフェイス604を有する。また、情報処理装置600はさらに、入力装置605、出力装置606、記憶装置607、および記憶媒体610の駆動装置608を有していてもよい。そして、情報処理装置600内の上記コンポーネントは、バス609により互いに接続されている。また、情報処理装置600は、通信インタフェイス604を介してネットワーク611に接続されている。ネットワーク611は、例えば、LANでもよいし、LANとインターネットの組み合わせでもよい。
By the way, the various apparatuses in the first to fifth embodiments described above are all one type of information processing apparatus. FIG. 40 shows a configuration diagram of the information processing apparatus.
40 includes a CPU (Central Processing Unit) 601, a ROM (Read Only Memory) 602, a RAM (Random Access Memory) 603, and a communication interface 604. Further, the information processing apparatus 600 may further include an input device 605, an output device 606, a storage device 607, and a drive device 608 for the storage medium 610. The components in the information processing apparatus 600 are connected to each other by a bus 609. The information processing apparatus 600 is connected to the network 611 via the communication interface 604. The network 611 may be, for example, a LAN or a combination of a LAN and the Internet.

CPU601は、プログラムをRAM603にロードし、RAM603をワーキングエリアとしても使用しながら、プログラムを実行する。プログラムは、予めROM602または記憶装置607に記憶されていてもよい。記憶装置607は、例えばハードディスク装置であってもよい。   The CPU 601 loads the program into the RAM 603, and executes the program while using the RAM 603 as a working area. The program may be stored in the ROM 602 or the storage device 607 in advance. The storage device 607 may be a hard disk device, for example.

あるいは、プログラムは、プログラム提供者612により提供され、ネットワーク611と通信インタフェイス604を介して情報処理装置600にダウンロードされ、記憶装置607に記憶されてもよい。プログラム提供者612は、例えば、情報処理装置600以外の他の情報処理装置である。   Alternatively, the program may be provided by the program provider 612, downloaded to the information processing apparatus 600 via the network 611 and the communication interface 604, and stored in the storage device 607. The program provider 612 is an information processing apparatus other than the information processing apparatus 600, for example.

また、プログラムは、コンピュータ読み取り可能な可搬型の記憶媒体610に記憶されて提供されてもよい。プログラムは、駆動装置608にセットされた記憶媒体610から、駆動装置608により読み取られる。読み取られたプログラムは、その後、一旦記憶装置607にコピーされてからRAM603にロードされてもよいし、直接RAM603にロードされてもよい。記憶媒体610としては、CD(Compact Disc)やDVD(Digital Versatile Disk)などの光ディスク、光磁気ディスク、磁気ディスク、不揮発性の半導体メモリカードなどが利用可能である。   The program may be provided by being stored in a computer-readable portable storage medium 610. The program is read by the drive device 608 from the storage medium 610 set in the drive device 608. Thereafter, the read program may be once copied to the storage device 607 and then loaded into the RAM 603 or may be directly loaded into the RAM 603. As the storage medium 610, an optical disk such as a CD (Compact Disc) or a DVD (Digital Versatile Disk), a magneto-optical disk, a magnetic disk, a nonvolatile semiconductor memory card, or the like can be used.

なお、図40には1つの通信インタフェイス604のみが図示されているが、情報処理装置600は、異なる複数の種類の通信インタフェイス604を有していてもよい。例えば、以下のようなものが通信インタフェイス604として利用可能である。   40 illustrates only one communication interface 604, the information processing apparatus 600 may include a plurality of different types of communication interfaces 604. For example, the following can be used as the communication interface 604.

・有線LAN用のネットワークインタフェイス装置
・無線LAN用のネットワークインタフェイス装置
・無線PAN(Personal Area Network)用のネットワークインタフェイス装置
・3GPP(Third Generation Partnership Project)、LTE(Long Term Evolution)、WiMAX(Worldwide Interoperability for Microwave Access)などの、携帯電話やスマートフォンなどで使われる通信規格にしたがった通信回路
-Network interface device for wired LAN-Network interface device for wireless LAN-Network interface device for wireless PAN (Personal Area Network)-3GPP (Third Generation Partnership Project), LTE (Long Term Evolution), WiMAX ( Communication circuits conforming to communication standards used by mobile phones and smartphones, such as Worldwide Interoperability for Microwave Access)

入力装置605は、例えば、入力ボタン、キーボード、マウスやタッチスクリーンなどのポインティングデバイス、マイク、またはそれらの組み合わせである。出力装置606は、例えば、ディスプレイ、スピーカ、LED(Light Emitting Diode)ランプなどのインジケータ、またはそれらの組み合わせである。ディスプレイは、タッチスクリーンであってもよい。   The input device 605 is, for example, an input button, a keyboard, a pointing device such as a mouse or a touch screen, a microphone, or a combination thereof. The output device 606 is, for example, an indicator such as a display, a speaker, an LED (Light Emitting Diode) lamp, or a combination thereof. The display may be a touch screen.

また、ROM602、RAM603、記憶装置607、および記憶媒体610は、いずれも、コンピュータ読み取り可能な記憶媒体の例である。これらのコンピュータ読み取り可能な記憶媒体は、有形の(tangible)記憶媒体であり、信号搬送波のような一時的な(transitory)媒体ではない。   The ROM 602, the RAM 603, the storage device 607, and the storage medium 610 are all examples of computer-readable storage media. These computer readable storage media are tangible storage media and not transitory media such as signal carriers.

ところで、第1実施形態と図40の関係は次のとおりである。図1〜2の端末110、デバイス120、サービス管理装置130、および端末140のいずれも、情報処理装置600のように構成されていてもよい。図1のシーケンス図に示すような各種の通信は、通信インタフェイス604とネットワーク611を介して行われる。   Incidentally, the relationship between the first embodiment and FIG. 40 is as follows. Any of the terminal 110, the device 120, the service management apparatus 130, and the terminal 140 in FIGS. 1 and 2 may be configured as an information processing apparatus 600. Various communications as shown in the sequence diagram of FIG. 1 are performed via the communication interface 604 and the network 611.

端末110のUPnPコントローラ111は、プログラムを実行するCPU601と、CPU601からの指示にしたがって通信を行う通信インタフェイス604により実現される。デバイス120のUPnPサービス提供部121も同様に、CPU601と通信インタフェイス604より実現される。   The UPnP controller 111 of the terminal 110 is realized by a CPU 601 that executes a program and a communication interface 604 that performs communication according to an instruction from the CPU 601. Similarly, the UPnP service providing unit 121 of the device 120 is also realized by the CPU 601 and the communication interface 604.

サービス管理装置130の格納部131は、サービス管理装置130の記憶装置607により実現される。なお、図2の格納部131の中には、簡単化のため、新規サービス123についてのデータとして、新規サービスプログラム132しか図示されていない。しかし、新規サービス123のサービス定義ファイルなども、格納部131には格納されている。他の実施形態に関する図でも同様に、格納部の中にはプログラムしか図示されていないが、格納部には、定義ファイルなどの他の情報も含むデータが格納されている。   The storage unit 131 of the service management apparatus 130 is realized by the storage device 607 of the service management apparatus 130. In the storage unit 131 of FIG. 2, only the new service program 132 is shown as data about the new service 123 for the sake of simplicity. However, the service definition file of the new service 123 is also stored in the storage unit 131. Similarly, in the drawings relating to other embodiments, only the program is illustrated in the storage unit, but the storage unit stores data including other information such as a definition file.

図3のデバイス定義ファイル150や図4のサービス定義ファイル151は、デバイス120の記憶装置607に格納されており、必要に応じてRAM603上に読み出される。端末110は、取得したデバイス定義ファイル150やサービス定義ファイル151を、RAM603上に保持してもよいし、必要に応じて記憶装置607に格納してもよい。   The device definition file 150 in FIG. 3 and the service definition file 151 in FIG. 4 are stored in the storage device 607 of the device 120, and are read onto the RAM 603 as necessary. The terminal 110 may hold the acquired device definition file 150 and service definition file 151 on the RAM 603 or may store them in the storage device 607 as necessary.

また、第2実施形態と図40の関係は次のとおりである。図7〜8の端末210、デバイス220、およびコントローラ管理装置230のいずれも、情報処理装置600のように構成されていてもよい。図7のシーケンス図に示すような各種の通信は、通信インタフェイス604とネットワーク611を介して行われる。   The relationship between the second embodiment and FIG. 40 is as follows. Any of the terminal 210, the device 220, and the controller management apparatus 230 in FIGS. 7 to 8 may be configured as an information processing apparatus 600. Various communications as shown in the sequence diagram of FIG. 7 are performed via the communication interface 604 and the network 611.

端末210のUPnP制御部211とコントローラ更新サービス212は、いずれも、プログラムを実行するCPU601と、CPU601からの指示にしたがって通信を行う通信インタフェイス604により実現される。デバイス220のUPnPサービス提供部221も同様に、CPU601と通信インタフェイス604より実現される。また、コントローラ管理装置230のコントローラ決定部233も同様に、CPU601と通信インタフェイス604より実現される。   Both the UPnP control unit 211 and the controller update service 212 of the terminal 210 are realized by a CPU 601 that executes a program and a communication interface 604 that performs communication according to an instruction from the CPU 601. Similarly, the UPnP service providing unit 221 of the device 220 is also realized by the CPU 601 and the communication interface 604. Similarly, the controller determination unit 233 of the controller management device 230 is realized by the CPU 601 and the communication interface 604.

そして、コントローラ管理装置230の格納部231は、コントローラ管理装置230の記憶装置607により実現される。条件テーブル234は、コントローラ管理装置230の記憶装置607に予め格納されており、必要に応じてRAM603上に読み出される。図10のデバイス定義ファイル240や図11のサービス定義ファイル241は、端末210の記憶装置607に格納されており、必要に応じてRAM603上に読み出される。   The storage unit 231 of the controller management device 230 is realized by the storage device 607 of the controller management device 230. The condition table 234 is stored in advance in the storage device 607 of the controller management device 230, and is read onto the RAM 603 as necessary. The device definition file 240 in FIG. 10 and the service definition file 241 in FIG. 11 are stored in the storage device 607 of the terminal 210, and are read onto the RAM 603 as necessary.

また、第3実施形態と図40の関係は次のとおりである。図13〜14の端末310、デバイス320、サーバ330、および端末350のいずれも、情報処理装置600のように構成されていてもよい。図13のシーケンス図に示すような各種の通信は、通信インタフェイス604とネットワーク611を介して行われる。   The relationship between the third embodiment and FIG. 40 is as follows. Any of the terminal 310, the device 320, the server 330, and the terminal 350 in FIGS. 13 to 14 may be configured as the information processing apparatus 600. Various types of communication as shown in the sequence diagram of FIG. 13 are performed via the communication interface 604 and the network 611.

端末310のUPnPコントローラ311と要求部312は、いずれも、プログラムを実行するCPU601と、CPU601からの指示にしたがって通信を行う通信インタフェイス604により実現される。デバイス320のUPnPサービス提供部321と受信部324のそれぞれも、同様に、CPU601と通信インタフェイス604より実現される。サーバ330のコンテキスト抽出部333とサービス決定部334とデバイス管理部336と送信部338のそれぞれも、同様に、CPU601と通信インタフェイス604より実現される。   Both the UPnP controller 311 and the request unit 312 of the terminal 310 are realized by a CPU 601 that executes a program and a communication interface 604 that performs communication according to an instruction from the CPU 601. Similarly, each of the UPnP service providing unit 321 and the receiving unit 324 of the device 320 is realized by the CPU 601 and the communication interface 604. Similarly, the context extraction unit 333, the service determination unit 334, the device management unit 336, and the transmission unit 338 of the server 330 are each realized by the CPU 601 and the communication interface 604.

また、サーバ330の格納部331は、サーバ330の記憶装置607により実現される。条件テーブル335は、サーバ330の記憶装置607に予め格納されており、必要に応じてRAM603上に読み出される。デバイステーブル337は、RAM603上に作成され、記憶されていてもよい。   Further, the storage unit 331 of the server 330 is realized by the storage device 607 of the server 330. The condition table 335 is stored in advance in the storage device 607 of the server 330, and is read onto the RAM 603 as necessary. The device table 337 may be created and stored on the RAM 603.

そして、図3のデバイス定義ファイル150や図4のサービス定義ファイル151は、デバイス320の記憶装置607に格納されており、必要に応じてRAM603上に読み出される。端末310は、取得したデバイス定義ファイル150やサービス定義ファイル151を、RAM603上に保持してもよいし、必要に応じて記憶装置607に格納してもよい。   The device definition file 150 in FIG. 3 and the service definition file 151 in FIG. 4 are stored in the storage device 607 of the device 320, and are read onto the RAM 603 as necessary. The terminal 310 may hold the acquired device definition file 150 and service definition file 151 on the RAM 603 or may store them in the storage device 607 as necessary.

また、第4実施形態と図40の関係は次のとおりである。図20〜21の端末410、デバイス420、およびサーバ430のいずれも、情報処理装置600のように構成されていてもよい。図20のシーケンス図に示すような各種の通信は、通信インタフェイス604とネットワーク611を介して行われる。   The relationship between the fourth embodiment and FIG. 40 is as follows. Any of the terminal 410, the device 420, and the server 430 in FIGS. 20 to 21 may be configured as the information processing apparatus 600. Various types of communication as shown in the sequence diagram of FIG. 20 are performed via the communication interface 604 and the network 611.

端末410のUPnP制御部411とコントローラ更新サービス412と受信部413と要求部414は、いずれも、プログラムを実行するCPU601と、CPU601からの指示にしたがって通信を行う通信インタフェイス604により実現される。デバイス420のUPnPサービス提供部421も同様に、CPU601と通信インタフェイス604より実現される。サーバ430のコンテキスト抽出部433とコントローラ決定部434と端末管理部436と送信部438のそれぞれも、同様に、CPU601と通信インタフェイス604より実現される。   The UPnP control unit 411, the controller update service 412, the reception unit 413, and the request unit 414 of the terminal 410 are all realized by a CPU 601 that executes a program and a communication interface 604 that performs communication according to an instruction from the CPU 601. Similarly, the UPnP service providing unit 421 of the device 420 is realized by the CPU 601 and the communication interface 604. Similarly, each of the context extraction unit 433, the controller determination unit 434, the terminal management unit 436, and the transmission unit 438 of the server 430 is realized by the CPU 601 and the communication interface 604.

また、サーバ430の格納部431は、サーバ430の記憶装置607により実現される。条件テーブル435は、サーバ430の記憶装置607に予め格納されており、必要に応じてRAM603上に読み出される。端末テーブル437は、RAM603上に作成され、記憶されていてもよい。   The storage unit 431 of the server 430 is realized by the storage device 607 of the server 430. The condition table 435 is stored in advance in the storage device 607 of the server 430, and is read onto the RAM 603 as necessary. The terminal table 437 may be created and stored on the RAM 603.

そして、図10のデバイス定義ファイル240や図11のサービス定義ファイル241は、端末410の記憶装置607に格納されており、必要に応じてRAM603上に読み出される。   The device definition file 240 in FIG. 10 and the service definition file 241 in FIG. 11 are stored in the storage device 607 of the terminal 410, and are read onto the RAM 603 as necessary.

また、第5実施形態と図40の関係は次のとおりである。図27〜28の端末510、端末520、およびサーバ530のいずれも、情報処理装置600のように構成されていてもよい。図27のシーケンス図に示すような各種の通信は、通信インタフェイス604とネットワーク611を介して行われる。   The relationship between the fifth embodiment and FIG. 40 is as follows. Any of terminal 510, terminal 520, and server 530 in FIGS. 27 to 28 may be configured as information processing apparatus 600. Various types of communication as shown in the sequence diagram of FIG. 27 are performed via the communication interface 604 and the network 611.

端末510のUPnP制御部511とUPnPサービス提供部513と受信部516と要求部517は、いずれも、プログラムを実行するCPU601と、CPU601からの指示にしたがって通信を行う通信インタフェイス604により実現される。同様に、端末520のUPnP制御部521とUPnPサービス提供部523と受信部526と要求部527は、いずれも、プログラムを実行するCPU601と、CPU601からの指示にしたがって通信を行う通信インタフェイス604により実現される。サーバ530のコンテキスト抽出部534と決定部535と端末管理部537と送信部539のそれぞれも、同様に、CPU601と通信インタフェイス604より実現される。   The UPnP control unit 511, the UPnP service providing unit 513, the receiving unit 516, and the requesting unit 517 of the terminal 510 are all realized by a CPU 601 that executes a program and a communication interface 604 that performs communication according to an instruction from the CPU 601. . Similarly, the UPnP control unit 521, the UPnP service providing unit 523, the receiving unit 526, and the requesting unit 527 of the terminal 520 are all transmitted by the CPU 601 that executes the program and the communication interface 604 that performs communication in accordance with instructions from the CPU 601. Realized. Similarly, each of the context extraction unit 534, the determination unit 535, the terminal management unit 537, and the transmission unit 539 of the server 530 is realized by the CPU 601 and the communication interface 604.

また、サーバ530の格納部531は、サーバ530の記憶装置607により実現される。条件テーブル536は、サーバ530の記憶装置607に予め格納されており、必要に応じてRAM603上に読み出される。端末テーブル538は、RAM603上に作成され、記憶されていてもよい。   Further, the storage unit 531 of the server 530 is realized by the storage device 607 of the server 530. The condition table 536 is stored in advance in the storage device 607 of the server 530, and is read onto the RAM 603 as necessary. The terminal table 538 may be created and stored on the RAM 603.

そして、端末520に関する図31のデバイス定義ファイル550や図32のサービス定義ファイル551は、端末520の記憶装置607に格納されており、必要に応じてRAM603上に読み出される。端末510は、端末520からデバイス定義ファイル550やサービス定義ファイル551を取得した場合、取得したこれらのファイルを、RAM603上に保持してもよいし、必要に応じて記憶装置607に格納してもよい。   The device definition file 550 of FIG. 31 and the service definition file 551 of FIG. 32 relating to the terminal 520 are stored in the storage device 607 of the terminal 520 and read onto the RAM 603 as necessary. When the terminal 510 acquires the device definition file 550 and the service definition file 551 from the terminal 520, the terminal 510 may store the acquired files on the RAM 603 or store them in the storage device 607 as necessary. Good.

同様に、端末510に関するデバイス定義ファイルやサービス定義ファイルは、端末510の記憶装置607に格納されており、必要に応じてRAM603上に読み出される。端末520は、端末510からデバイス定義ファイルやサービス定義ファイルを取得した場合、取得したこれらのファイルを、RAM603上に保持してもよいし、必要に応じて記憶装置607に格納してもよい。   Similarly, a device definition file and a service definition file related to the terminal 510 are stored in the storage device 607 of the terminal 510, and are read onto the RAM 603 as necessary. When the terminal 520 acquires a device definition file or a service definition file from the terminal 510, the terminal 520 may store the acquired files on the RAM 603 or may store them in the storage device 607 as necessary.

ところで、本発明は上記の第1〜第5実施形態に限られるものではない。上記の説明においてもいくつかの変形について説明したが、第1〜第5実施形態は、さらに下記の観点から変形することもできる。そして、上記の各実施形態および下記の各種変形は、相互に矛盾しない限り、任意に組み合わせることが可能である。   By the way, the present invention is not limited to the first to fifth embodiments. Although some modifications have been described in the above description, the first to fifth embodiments can be further modified from the following viewpoints. The above embodiments and the following various modifications can be arbitrarily combined as long as they do not contradict each other.

例えば、上記の説明においては、様々なシーケンス図とフローチャートを用いて、様々な処理を説明したが、いくつかのステップの順番は入れ替え可能である。例えば、図1のステップS108とS109の順序は逆でもよい。また、図27において、ステップS1310がステップS1307の前に行われてもよい。他にも、順序を入れ替えても矛盾が生じないステップ同士は、逆の順序で実行されてもよいし、並行して実行されてもよい。   For example, in the above description, various processes have been described using various sequence diagrams and flowcharts, but the order of some steps can be changed. For example, the order of steps S108 and S109 in FIG. 1 may be reversed. In FIG. 27, step S1310 may be performed before step S1307. In addition, steps in which no contradiction occurs even when the order is changed may be executed in the reverse order or may be executed in parallel.

デバイス定義ファイルやサービス定義ファイルの具体的な内容も、実施形態に応じて様々であってよい。例えば、サービス更新サービスのサービス定義ファイルにおける各アクションの定義は、図示した定義とは異なる定義であってもよい。   Specific contents of the device definition file and the service definition file may vary depending on the embodiment. For example, the definition of each action in the service definition file of the service update service may be a definition different from the illustrated definition.

また、いくつかの図ではデータをテーブル形式で例示した。しかし、テーブル形式以外の形式が使われてもよい。例えば、XML形式のデータが使われてもよいし、連想配列が使われてもよい。   In some figures, data is illustrated in a table format. However, formats other than the table format may be used. For example, XML format data may be used, or an associative array may be used.

なお、上記では説明の簡単化のため、第1実施形態と第2実施形態に関しては、OS依存性について説明を省略した。   In the above, for the sake of simplification of description, description of OS dependency is omitted for the first embodiment and the second embodiment.

しかし、例えば第1実施形態において、サービス管理装置130は、同じ新規サービス123に対応する、複数のOS用の複数の新規サービスプログラム132を、格納部131に格納していてもよい。そして、図1のステップS109の要求は、デバイス120のOSに関する情報を含んでいてもよい。サービス管理装置130は、通知されたOS用の新規サービスプログラム132をステップS110で送信してもよい。   However, for example, in the first embodiment, the service management apparatus 130 may store a plurality of new service programs 132 for a plurality of OSs corresponding to the same new service 123 in the storage unit 131. The request in step S109 in FIG. 1 may include information related to the OS of the device 120. The service management apparatus 130 may transmit the notified new service program 132 for OS in step S110.

第2実施形態も同様に変形されてよい。例えば、コントローラ管理装置230は、同じ新規コントローラ213に対応する、複数のOS用の複数の新規コントローラプログラム232を、格納部231に格納していてもよい。そして、図7のステップS307の要求は、端末210のOSに関する情報を含んでいてもよい。コントローラ管理装置230は、通知されたOS用の新規コントローラプログラム232をステップS308で送信してもよい。   The second embodiment may be similarly modified. For example, the controller management device 230 may store a plurality of new controller programs 232 for a plurality of OSs corresponding to the same new controller 213 in the storage unit 231. And the request | requirement of FIG.7 S307 may include the information regarding OS of the terminal 210. FIG. The controller management device 230 may transmit the notified new controller program 232 for OS in step S308.

また、いくつかの実施形態を組み合わせることも可能である。例えば、第1実施形態のサービス更新サービス122と、第3実施形態のサービス更新サービス322の機能を兼ね備えたサービス更新サービスが、デバイスに実装されてもよい。同様に、第2実施形態のコントローラ更新サービス212と、第4実施形態のコントローラ更新サービス412の機能を兼ね備えたコントローラ更新サービスが、端末に実装されてもよい。   It is also possible to combine several embodiments. For example, the service update service 122 having the functions of the service update service 122 of the first embodiment and the service update service 322 of the third embodiment may be implemented in the device. Similarly, a controller update service having the functions of the controller update service 212 of the second embodiment and the controller update service 412 of the fourth embodiment may be implemented in the terminal.

あるいは、第5実施形態の更新サービス515や525が、第1実施形態のサービス更新サービス122のようにコンテキストに依存せずにサービスを更新する機能をさらに有していてもよい。同様に、更新サービス515や525が、第2実施形態のコントローラ更新サービス212のようにコンテキストに依存せずにコントローラを更新する機能をさらに有していてもよい。   Alternatively, the update services 515 and 525 of the fifth embodiment may further have a function of updating the service without depending on the context, like the service update service 122 of the first embodiment. Similarly, the update services 515 and 525 may further have a function of updating the controller without depending on the context, like the controller update service 212 of the second embodiment.

また、第5実施形態の説明から明らかなように、1台の端末が、場合に応じて、UPnPコントローラとして動作し得るだけでなく、UPnPサービスを提供することもできる。そこで、以下のような第1実施形態と第2実施形態の組み合わせも可能である。すなわち、1台の端末の中に、第1実施形態のサービス更新サービス122と第2実施形態のコントローラ更新サービス212の双方があってもよい。   Further, as is apparent from the description of the fifth embodiment, one terminal can not only operate as a UPnP controller depending on the situation, but can also provide a UPnP service. Therefore, the following combination of the first embodiment and the second embodiment is also possible. That is, both the service update service 122 of the first embodiment and the controller update service 212 of the second embodiment may exist in one terminal.

ところで、図1のステップS101、図7のステップS301、図13のステップS501、図20のステップS901、および図27のステップS1301には、M-searchメッセージの送信による探索が例示されている。そして、これらのステップの探索に対して、図1、7、13、20、および27には、1つの応答が返される場合が例示されている。しかし、状況によっては、2つ以上の応答が返される場合があり得る。   By the way, in step S101 in FIG. 1, step S301 in FIG. 7, step S501 in FIG. 13, step S901 in FIG. 20, and step S1301 in FIG. For the search of these steps, FIGS. 1, 7, 13, 20, and 27 illustrate a case where one response is returned. However, depending on the situation, more than one response may be returned.

例えば、図1のステップS101のM-searchメッセージに対して、それぞれサービス更新サービス122を提供する複数のデバイスデバイス120が、ステップS102と同様に応答を返すことがあり得る。その場合、端末110は、複数のデバイス120のそれぞれに対して、ステップS103以降の処理を実行してもよい。   For example, in response to the M-search message in step S101 of FIG. 1, a plurality of device devices 120 that provide the service update service 122 may return responses in the same manner as in step S102. In that case, the terminal 110 may perform the processing from step S103 on each of the plurality of devices 120.

逆に、端末110は、複数のデバイス120のうちの1台を選んでから、選んだ1台のデバイス120に対してステップS103以降の処理を実行してもよい。端末110は、例えば、発見された複数のデバイス120のリストを画面に表示し、ユーザからの入力に応じて1台のデバイス120を選択してもよい。あるいは、端末110は、発見された複数のデバイス120のうちの任意の1台(例えば最も早く応答を返したデバイス120)を自動的に選択してもよい。   Conversely, the terminal 110 may select one of the plurality of devices 120 and then execute the processes in and after step S103 for the selected one device 120. For example, the terminal 110 may display a list of a plurality of discovered devices 120 on a screen and select one device 120 in accordance with an input from the user. Alternatively, the terminal 110 may automatically select any one of the discovered devices 120 (for example, the device 120 that returned the earliest response).

図7の場合も同様に、ステップS302のような応答が2つ以上返された場合は、端末210は、1台のデバイス220を選択してもよいし、複数のデバイス220それぞれに対してステップS303以降の処理を実行してもよい。図13と図20の場合も上記の図1や図7と同様である。   Similarly, in the case of FIG. 7, when two or more responses are returned as in step S <b> 302, the terminal 210 may select one device 220, or perform steps for each of the plurality of devices 220. You may perform the process after S303. 13 and 20 are the same as those in FIGS. 1 and 7 described above.

なお、第5実施形態では、サーバ530の端末管理部537が2台の端末をペアとして管理する。よって、図27のステップS1302のような応答が複数得られた場合、端末510は、複数の端末520の中から1台を選択してステップS1303以降の処理を実行することが好ましい。   In the fifth embodiment, the terminal management unit 537 of the server 530 manages two terminals as a pair. Therefore, when a plurality of responses such as step S1302 in FIG. 27 are obtained, it is preferable that the terminal 510 selects one unit from the plurality of terminals 520 and executes the processing after step S1303.

しかし、端末管理部537による端末の管理の仕方が変形された実施形態においては、端末510は、ステップS1302のような応答を返した複数の端末520のそれぞれに対してステップS1303以降の処理を実行してもよい。例えば、端末管理部537は、2台以上の端末を含む端末グループを管理してもよい。   However, in the embodiment in which the terminal management method by the terminal management unit 537 is modified, the terminal 510 performs the processing after step S1303 for each of the plurality of terminals 520 that returned a response as in step S1302. May be. For example, the terminal management unit 537 may manage a terminal group including two or more terminals.

例えば、ステップS1302のような応答が2台の端末520から返された場合、端末510は、2台の端末520それぞれに対してステップS1303〜S1308の処理を行ってもよい。そして、ステップS1311では、3台の端末(つまり端末510自身と、発見された2台の端末520)についての情報を含む受信開始通知を、端末510が送信してもよい。   For example, when a response as in step S1302 is returned from the two terminals 520, the terminal 510 may perform the processes in steps S1303 to S1308 for each of the two terminals 520. In step S1311, the terminal 510 may transmit a reception start notification including information on the three terminals (that is, the terminal 510 itself and the two discovered terminals 520).

端末管理部537は、3台の端末を1つのグループとして管理してもよい。そして、決定部535は、ステップS1312aまたはS1312bの通知に応じて、同じグループに属する任意の2台の端末のペアのうち、通知されたコンテキストとの組み合わせが条件テーブル536のエントリと合致するペアを選んでもよい。   The terminal management unit 537 may manage three terminals as one group. Then, in response to the notification in step S1312a or S1312b, the determination unit 535 selects a pair whose combination with the notified context matches the entry in the condition table 536 from any two pairs of terminals belonging to the same group. You may choose.

また、各実施形態において、サービスまたはコントローラのインストール前に、ユーザにインストールを承認してもらうための処理が行われてもよい。例えば、第1実施形態において、端末110の持ち主とデバイス120の持ち主は違うかもしれない。そこで、例えばステップS107のサービス追加・更新コマンドを受信すると、デバイス120は、指定されたサービスのインストールを許可するか否かをデバイス120のユーザに尋ねるダイアログを表示してもよい。ユーザがインストールを許可した場合のみ、図1のステップS108以降の処理が行われてもよい。他の実施形態においても、適宜のタイミングで、プログラムのインストールを許可するか否かをユーザに確認させるための処理が行われてもよい。   In each embodiment, a process for allowing the user to approve the installation may be performed before installing the service or the controller. For example, in the first embodiment, the owner of the terminal 110 and the owner of the device 120 may be different. Therefore, for example, when receiving the service addition / update command in step S107, the device 120 may display a dialog asking the user of the device 120 whether to permit installation of the specified service. Only when the user permits installation, the processing after step S108 in FIG. 1 may be performed. Also in other embodiments, processing for allowing the user to confirm whether or not to permit installation of the program may be performed at an appropriate timing.

また、上記の説明では、簡単化のため、エラー処理については省略したが、適宜のエラー処理がさらに行われてもよい。例えば、要求されたサービスまたはコントローラのデータがない場合にエラーメッセージを送信するなどの処理が行われてもよい。   In the above description, for simplification, error processing is omitted, but appropriate error processing may be further performed. For example, processing such as sending an error message when there is no data for the requested service or controller may be performed.

ところで、上記の説明においては、サービスまたはコントローラの削除についての説明を簡略化したが、以下のようにして削除が行われてもよい。
例えば、第1実施形態の端末110は、図1のステップS111でデバイス120にインストールされた新規サービス123を使い終わったら、デバイス120に対して、新規サービス123の削除を命じてもよい。具体的には、端末110のUPnPコントローラ111は、図4のサービス定義ファイル151で定義された「DeleteService」アクションを指定したSOAPコマンドをサービス更新サービス122に対して送信してもよい。
By the way, in the above description, the description about the deletion of the service or the controller is simplified. However, the deletion may be performed as follows.
For example, the terminal 110 of the first embodiment may order the device 120 to delete the new service 123 after using the new service 123 installed in the device 120 in step S111 of FIG. Specifically, the UPnP controller 111 of the terminal 110 may transmit a SOAP command specifying the “DeleteService” action defined in the service definition file 151 of FIG. 4 to the service update service 122.

そして、サービス更新サービス122は、受信したコマンドに応じて、削除対象として指定された新規サービス123をアンインストールしてもよい。あるいは、サービス更新サービス122は、デバイス定義ファイル150から、指定された新規サービス123に関する定義(例えば図3の18〜24行)を単に削除することで、新規サービス123を外部のコントローラから使用不能な状態にしてもよい。なお、サービス管理装置130が新規サービス123用のアンインストーラを格納していてもよく、サービス更新サービス122は、アンインストーラをサービス管理装置130に要求してもよい。   Then, the service update service 122 may uninstall the new service 123 designated as a deletion target in accordance with the received command. Alternatively, the service update service 122 cannot delete the new service 123 from an external controller by simply deleting the definition (for example, lines 18 to 24 in FIG. 3) related to the specified new service 123 from the device definition file 150. It may be in a state. The service management apparatus 130 may store an uninstaller for the new service 123, and the service update service 122 may request the service management apparatus 130 for an uninstaller.

もちろん、削除対象のサービスは、図2の新規サービス123に限らず、任意のサービスでよい。また、端末110が削除を命じるタイミングも任意である。
また、第2実施形態の端末210は、図7のステップS309でインストールされた新規コントローラ213を使ってサービス222を利用し終わったら、新規コントローラ213を削除してもよい。具体的には、コントローラ更新サービス212が、新規コントローラ213を削除してもよい。なお、コントローラ管理装置230が新規コントローラ213用のアンインストーラを格納していてもよく、コントローラ更新サービス212は、アンインストーラをコントローラ管理装置230に要求してもよい。
Of course, the service to be deleted is not limited to the new service 123 in FIG. The timing at which the terminal 110 orders the deletion is also arbitrary.
Further, the terminal 210 of the second embodiment may delete the new controller 213 after using the service 222 using the new controller 213 installed in step S309 of FIG. Specifically, the controller update service 212 may delete the new controller 213. The controller management device 230 may store an uninstaller for the new controller 213, and the controller update service 212 may request the controller management device 230 for an uninstaller.

もちろん、削除対象のコントローラは、図8の新規コントローラ213に限らず、任意のコントローラでよい。また、削除のタイミングも任意である。
第3〜第5実施形態に関しても、同様に、明示的な命令に基づく、任意のタイミングでの、サービスまたはコントローラの削除が可能である。さらに、第3〜第5実施形態では、センサからの出力に基づく削除も可能である。
Of course, the controller to be deleted is not limited to the new controller 213 in FIG. The timing of deletion is also arbitrary.
Similarly, in the third to fifth embodiments, it is possible to delete a service or a controller at an arbitrary timing based on an explicit instruction. Furthermore, in the third to fifth embodiments, deletion based on the output from the sensor is also possible.

例えば、サーバのコンテキスト抽出部は、センサ値からコンテキストの変化を検出することもできる。あるコンテキストの検出に応じてサーバの送信部がサービスまたはコントローラのデータを送信した後、コンテキスト抽出部がコンテキストの変化を検出したら、サーバは、送信済みのサービスまたはコントローラの削除を、端末またはデバイスに命じてもよい。   For example, the context extraction unit of the server can detect a change in context from the sensor value. After the server's transmitter sends service or controller data in response to the detection of a context, when the context extractor detects a change in context, the server sends the deletion of the transmitted service or controller to the terminal or device. You may order.

例えば、ある会議室にデバイス320が入るのにともなって、「会議室」というコンテキストが検出され、「会議室」というコンテキストに応じてサービスがデバイス320にインストールされることがある。当該会議室からデバイス320が出るときも、センサ340によるセンサ値の送信が行われてもよい。そして、コンテキスト抽出部333が、コンテキストの変化を検出してもよい。サーバ330は、コンテキストの変化に応じて、上記サービスの削除をデバイス320に命じてもよい。   For example, as the device 320 enters a certain conference room, the context “meeting room” may be detected and a service may be installed in the device 320 according to the context “meeting room”. The sensor value may be transmitted by the sensor 340 also when the device 320 leaves the conference room. Then, the context extraction unit 333 may detect a change in context. The server 330 may instruct the device 320 to delete the service in response to a change in context.

なお、コンテキスト抽出部333による別の新たなコンテキスト(例えば「自宅」というコンテキスト)の検出は、暗黙的には「かつて検出されたコンテキスト(例えば「会議室」というコンテキスト)の環境から、デバイス320が出た」ということを示す。よって、このような新たなコンテキストの検出にともなって、サーバ330がサービスの削除をデバイス320に命じてもよい。   The detection of another new context (for example, the context “home”) by the context extraction unit 333 is implicitly performed by the device 320 from the environment of the context once detected (for example, the context “conference room”). It means that it has come out. Therefore, the server 330 may instruct the device 320 to delete the service in accordance with the detection of such a new context.

同様に、第4実施形態でも、例えば端末410が会議室から出るのにともなって、センサ440がセンサ値を送信してもよく、コンテキスト抽出部433がコンテキストの変化を検出してもよい。そして、コンテキストの変化に応じて、サーバ430は、コントローラの削除を端末410に命じてもよい。同様に、第5実施形態でも、コンテキストの変化にともなって、サーバ530が端末510と端末520にサービスとコントローラの削除を命じてもよい。   Similarly, in the fourth embodiment, for example, as the terminal 410 leaves the conference room, the sensor 440 may transmit the sensor value, and the context extraction unit 433 may detect a change in context. And according to the change of the context, the server 430 may instruct the terminal 410 to delete the controller. Similarly, in the fifth embodiment, the server 530 may instruct the terminal 510 and the terminal 520 to delete the service and the controller as the context changes.

以上のようなコンテキストの変化に応じた削除により、不要なプログラムが削除される。よって、端末やデバイスの記憶容量の無駄な使用が防止可能である。また、ある特定のコンテキスト以外では利用を禁止することが望ましいサービスが、他のコンテキストで利用されることを防ぐことも可能となる。   An unnecessary program is deleted by the deletion according to the change of the context as described above. Therefore, useless use of the storage capacity of the terminal or device can be prevented. In addition, it is possible to prevent a service that is desirably prohibited from being used outside of a specific context from being used in another context.

ところで、第1実施形態と第3実施形態の共通点は色々あるが、例えば以下の2点が挙げられる。   By the way, there are various common points between the first embodiment and the third embodiment. For example, the following two points can be cited.

・新規サービスプログラムのデバイスへのインストールに関わる通知(便宜上、「インストール関連通知」という)を、端末が送信する。
・デバイスが、インストール関連通知の受信の後に、新規サービスプログラムを取得する。
The terminal transmits a notification related to installation of the new service program on the device (referred to as “installation related notification” for convenience).
The device acquires a new service program after receiving the installation related notification.

つまり、第1実施形態におけるインストール関連通知は、図1のステップS107のサービス追加・更新コマンドであり、第3実施形態におけるインストール関連通知は、図13のステップS507の受信準備コマンドである。そして、以上の共通点から理解されるように、第1実施形態の端末110のUPnPコントローラ111も、第3実施形態の端末310のUPnPコントローラ311も、以下の探索部および通知部として動作する。   That is, the installation related notification in the first embodiment is a service addition / update command in step S107 in FIG. 1, and the installation related notification in the third embodiment is a reception preparation command in step S507 in FIG. As understood from the above common points, the UPnP controller 111 of the terminal 110 according to the first embodiment and the UPnP controller 311 of the terminal 310 according to the third embodiment operate as the following search unit and notification unit.

・サービス更新サービスをUPnPのディスカバリプロトコルおよびディスクリプションプロトコルにしたがって探索する探索部。
・探索部がサービス更新サービスを検出すると、サービス更新サービスに対して、インストール関連通知を送信する通知部。
A search unit that searches for a service update service in accordance with the UPnP discovery protocol and description protocol.
A notification unit that transmits an installation-related notification to the service update service when the search unit detects the service update service.

また、第1実施形態と第3実施形態のいずれにおいても、端末は、デバイスが新規サービスプログラムをインストールすると新規サービスに対してUPnPのコントロールプロトコルにしたがって制御メッセージを与える制御部を有する。例えば、図2のUPnPコントローラ111や図14のUPnPコントローラ311が、当該制御部として動作してもよいし、不図示の他のUPnPコントローラが当該制御部として動作してもよい。   In both the first embodiment and the third embodiment, the terminal has a control unit that gives a control message to the new service according to the UPnP control protocol when the device installs the new service program. For example, the UPnP controller 111 in FIG. 2 or the UPnP controller 311 in FIG. 14 may operate as the control unit, or another UPnP controller (not illustrated) may operate as the control unit.

また、第5実施形態の更新サービスも、サービス更新サービスの1種と見なせる。そして、例えば図28の既存コントローラ512が更新サービス525を探索する場合、既存コントローラ512を上記の探索部と見なすこともでき、受信準備コマンドを送信する更新サービス515を上記の通知部と見なすこともできる。また、UPnP制御部511を上記の制御部と見なすこともできる。   The update service of the fifth embodiment can also be regarded as a type of service update service. For example, when the existing controller 512 in FIG. 28 searches for the update service 525, the existing controller 512 can be regarded as the search unit, and the update service 515 that transmits the reception preparation command can be regarded as the notification unit. it can. The UPnP control unit 511 can also be regarded as the control unit.

また、第2実施形態と第4実施形態の共通点も色々あるが、例えば、以下のような共通点が挙げられる。   In addition, there are various common points between the second embodiment and the fourth embodiment. For example, the following common points can be cited.

・デバイスの提供するサービスを検出するための検出部として、コントローラ更新サービスが動作する。
・検出したサービスを識別するサービス識別情報を、管理部(具体的にはコントローラ管理装置230またはサーバ430)に通知する通知部に相当するコンポーネントを、端末が有している。例えば、端末210においては、コントローラ更新サービス212が上記通知部として動作する。また、端末410においては、受信部413または要求部414が上記通知部として動作する。
・通知部からの通知に応じて管理部が新規コントローラプログラムを送信すると、新規コントローラプログラムを端末にインストールするインストール部として、コントローラ更新サービスが動作する。
・インストールされた新規コントローラプログラムにしたがって動作することにより、検出されたサービスを利用するための制御メッセージを当該サービスに対して与える制御部として、UPnP制御部内の新規コントローラが動作する。
The controller update service operates as a detection unit for detecting a service provided by the device.
The terminal has a component corresponding to a notification unit that notifies service management information (specifically, the controller management device 230 or the server 430) of service identification information for identifying the detected service. For example, in the terminal 210, the controller update service 212 operates as the notification unit. In terminal 410, receiving unit 413 or requesting unit 414 operates as the notification unit.
When the management unit transmits a new controller program in response to a notification from the notification unit, the controller update service operates as an installation unit that installs the new controller program in the terminal.
A new controller in the UPnP control unit operates as a control unit that gives a control message for using the detected service to the service by operating in accordance with the installed new controller program.

以上、様々な実施形態について説明したが、上記に例示した以外の適宜の変形が行われてもよい。いずれの実施形態によっても、UPnPのサービスとコントローラの一方または双方が動的に更新されるので、利便性が向上する。   While various embodiments have been described above, appropriate modifications other than those exemplified above may be made. In any of the embodiments, since one or both of the UPnP service and the controller are dynamically updated, convenience is improved.

最後に、上記の種々の実施形態に関して、さらに下記の付記を開示する。
(付記1)
指定されたUPnP(Universal Plug and Play)のサービスを提供するためのプログラムをインストールするための、UPnPの特定のサービスを、端末が探索し、
前記特定のサービスを提供するデバイスが、前記端末に応答を返し、
前記端末が、前記応答により検出される前記特定のサービスに対して、UPnPの新規サービスを提供するための新規プログラムの前記デバイスへのインストールに関わるインストール関連通知を送信し、
前記デバイスが、前記特定のサービスを提供するための特定のプログラムにしたがって動作することによって、前記インストール関連通知の受信の後に前記新規プログラムを取得するとともに取得した前記新規プログラムを前記デバイスにインストールし、
前記デバイスが、インストールした前記新規プログラムにしたがって動作することにより、前記新規サービスを前記端末に提供する
ことを特徴とするサービス提供方法。
(付記2)
前記インストール関連通知は、前記新規サービスを指定するサービス指定情報を含み、
前記サービス提供方法は、さらに、
前記サービス指定情報と対応づけて前記新規プログラムを格納しており、前記端末に含まれるかまたは他のコンピュータに含まれる管理部に対して、前記デバイスが、前記端末からの前記インストール関連通知に含まれる前記サービス指定情報を通知し、
前記管理部が、前記サービス指定情報の通知に応じて、前記新規プログラムを前記デバイスに送信する
ことを含み、
前記デバイスは、前記管理部から前記新規プログラムを受信することにより、前記新規プログラムを取得する
ことを特徴とする付記1に記載のサービス提供方法。
(付記3)
前記インストール関連通知は、前記新規プログラムを受信するための準備を行うよう、前記デバイスに促す通知であり、
前記サービス提供方法は、さらに、
特定の環境に前記デバイスが存在しているとき、検出装置が、前記デバイスが前記特定の環境下にあることを示す検出通知を送信し、
前記新規サービスを指定するサービス指定情報および前記特定の環境と対応づけて前記新規プログラムを格納する管理部が、前記検出通知の受信に応じて、前記新規プログラムを前記デバイスに送信する
ことを含み、
前記デバイスは、前記管理部から前記新規プログラムを受信することにより、前記新規プログラムを取得する
ことを特徴とする付記1に記載のサービス提供方法。
(付記4)
前記インストール関連通知は、前記新規プログラムを受信するための準備を行うよう、前記デバイスに促す通知であり、
前記サービス提供方法は、さらに、
前記新規プログラムを格納する管理部に対して、前記端末が、前記デバイスへの前記新規プログラムの送信を要求し、
前記端末からの要求に応じて、前記管理部が前記新規プログラムを前記デバイスに送信する
ことを含み、
前記デバイスは、前記管理部から前記新規プログラムを受信することにより、前記新規プログラムを取得する
ことを特徴とする付記1に記載のサービス提供方法。
(付記5)
前記デバイスが、前記新規サービスのインストール後、前記新規サービスが前記デバイスにインストールされたことを示す通知を送信する
ことをさらに含むことを特徴とする付記1から4のいずれか1項に記載のサービス提供方法。
(付記6)
端末が、デバイスの提供するUPnPのサービスを検出し、
前記端末が、前記デバイスに含まれるかまたは他のコンピュータに含まれる管理部に対して、前記サービスを識別するサービス識別情報を通知し、
前記サービスを利用するためのUPnPの特定のコントローラを実現するプログラムであって、通知された前記サービス識別情報と対応づけられて前記管理部に格納されている特定のコントローラプログラムを、前記管理部が前記端末に送信し、
前記端末が、前記特定のコントローラプログラムを受信し、
前記端末が、受信した前記特定のコントローラプログラムを前記端末にインストールし、
前記端末が、インストールした前記特定のコントローラプログラムにしたがって動作することにより、検出した前記サービスを利用するための制御メッセージを、検出した前記サービスに対して与える
ことを特徴とするサービス利用方法。
(付記7)
前記管理部は、通知された前記サービス識別情報を用いて前記特定のコントローラプログラムを検索し、検索により見つけた前記特定のコントローラプログラムを前記端末に送信する
ことを特徴とする付記6に記載のサービス利用方法。
(付記8)
前記管理部は、前記サービスを含む複数のサービスそれぞれについて、当該サービスを識別するサービス識別情報および当該サービスが利用される環境と対応づけて、当該サービスを利用するためのUPnPのコントローラのプログラムを格納しており、
前記サービス利用方法は、さらに、特定の環境に前記端末が存在しているときに、検出装置が、前記端末が前記特定の環境下にあることを示す検出通知を前記管理部に送信することを含み、
前記管理部は、前記検出通知を受信すると、
前記端末から通知された前記サービス識別情報と前記特定の環境とに対応づけて格納している前記特定のコントローラプログラムを検索し、
検索により見つけた前記特定のコントローラプログラムを前記端末に送信する
ことを特徴とする付記6に記載のサービス利用方法。
(付記9)
前記端末には、UPnPの特定のサービスのプログラムがインストールされており、
前記端末は、前記特定のサービスの前記プログラムにしたがって動作することにより、前記管理部への通知および前記特定のコントローラプログラムのインストールを実行する
ことを特徴とする付記6から8のいずれか1項に記載のサービス利用方法。
(付記10)
第1の端末と第2の端末と管理装置を含むシステムで実行される方法であって、
UPnP(Universal Plug and Play)のサービスを提供するためのサービスプログラムと、UPnPの何らかのサービスを利用するためのUPnPのコントローラを実現するためのコントローラプログラムのいずれが指定されても、指定されたプログラムをインストールするためのUPnPのサービスである更新サービスを、前記第1の端末と前記第2の端末がともに提供しており、
前記第1の端末と前記第2の端末が特定の環境に入ると、前記第1の端末と前記第2の端末が前記特定の環境下にあることを示す検出通知を、検出装置が送信し、
1つ以上のUPnPのサービスのそれぞれについて、当該サービスと、当該サービスのインストール先の端末であるサービス提供端末の種類と、当該サービスを利用するためのコントローラと、当該コントローラのインストール先の端末であるコントローラ端末の種類と、当該サービスが利用される環境とを、互いに対応づける条件情報を、前記管理装置が格納しており、
前記条件情報により前記特定の環境と対応づけられているサービス提供端末の種類が、前記第1の端末の前記種類と一致し、かつ、前記条件情報により前記特定の環境と対応づけられているコントローラ端末の種類が、前記第2の端末の前記種類と一致する第1の場合には、
前記検出通知の受信に応じて、前記管理装置が、前記条件情報により前記特定の環境と対応づけられている特定のサービスを提供するための特定のサービスプログラムを前記第1の端末に送信するとともに、前記条件情報により前記特定の環境と対応づけられている特定のコントローラを実現するための特定のコントローラプログラムを前記第2の端末に送信し、
前記第1の端末が、前記更新サービスによる処理の一部として、前記特定のサービスプログラムの前記第1の端末へのインストールを実行し、
前記第2の端末が、前記更新サービスによる処理の一部として、前記特定のコントローラプログラムの前記第2の端末へのインストールを実行し、
前記条件情報により前記特定の環境と対応づけられているサービス提供端末の種類が、前記第2の端末の前記種類と一致し、かつ、前記条件情報により前記特定の環境と対応づけられているコントローラ端末の種類が、前記第1の端末の前記種類と一致する第2の場合には、
前記検出通知の受信に応じて、前記管理装置が、前記特定のサービスプログラムを前記第2の端末に送信するとともに、前記特定のコントローラプログラムを前記第1の端末に送信し、
前記第1の端末が、前記更新サービスによる処理の一部として、前記特定のコントローラプログラムの前記第1の端末へのインストールを実行し、
前記第2の端末が、前記更新サービスによる処理の一部として、前記特定のサービスプログラムの前記第2の端末へのインストールを実行する
ことを特徴とする方法。
(付記11)
前記検出装置が、前記第1の端末に含まれるか、前記第2の端末に含まれるか、または、前記特定の環境に予め設置されていることを特徴とする付記10に記載の方法。
(付記12)
前記第1の端末が、前記更新サービスを提供する第2の端末を探索し、
前記第2の端末が、前記第1の端末に応答を返し、
前記第1の端末が、前記管理装置から送信されるプログラムを受信するための準備を行うよう、前記応答により検出される前記第2の端末に命令し、
前記第1の端末が、前記管理装置から送信されるプログラムを受信するための準備を行い、
前記第1の端末と前記第2の端末の一方または双方からの通知により、前記管理装置が、前記第1の端末と前記第2の端末それぞれの前記種類を認識する
ことをさらに含むことを特徴とする付記10または11に記載の方法。
(付記13)
UPnP(Universal Plug and Play)の新規サービスを提供するための新規プログラムを、外部から与えられる通知の受信の後に取得してインストールするための、UPnPの特定のサービスを提供するデバイスと、
端末であって、
前記特定のサービスをUPnPのディスカバリプロトコルおよびディスクリプションプロトコルにしたがって探索する探索部と、
前記探索部が前記特定のサービスを検出すると、前記特定のサービスに対して、前記新規プログラムの前記デバイスへのインストールに関わるインストール関連通知を送信する第1の通知部と、
前記デバイスが前記インストール関連通知の受信の後に前記デバイスに前記新規プログラムをインストールすると、前記新規サービスに対してUPnPのコントロールプロトコルにしたがって制御メッセージを与える第1の制御部と、
を備えることを特徴とする端末と、
を備えることを特徴とするシステム。
(付記14)
前記デバイスまたは他のデバイスにより提供される、前記特定のサービス以外かつ前記新規サービス以外の、UPnPの別のサービスを利用するための、UPnPのコントローラを実現するコントローラプログラムを、前記別のサービスと対応づけて格納する管理部を、前記システムはさらに備え、
前記端末はさらに、
前記別のサービスを検出する検出部と、
前記検出部が検出した前記別のサービスを識別するサービス識別情報を前記管理部に通知する第2の通知部と、
前記通知部からの通知に応じて前記管理部が前記コントローラプログラムを送信すると、前記コントローラプログラムを前記端末にインストールするインストール部と、
前記インストール部がインストールした前記コントローラプログラムにしたがって動作することにより、前記別のサービスを利用するための制御メッセージを、前記別のサービスに対して与える第2の制御部と
を備える
ことを特徴とする付記13に記載のシステム。
Finally, the following additional notes are disclosed regarding the various embodiments described above.
(Appendix 1)
The terminal searches for a specific UPnP service for installing a program for providing a specified UPnP (Universal Plug and Play) service,
A device providing the specific service returns a response to the terminal;
The terminal sends an installation-related notification regarding installation of a new program for providing a new UPnP service to the device for the specific service detected by the response;
The device operates according to a specific program for providing the specific service, thereby acquiring the new program after receiving the installation-related notification and installing the acquired new program on the device,
The service providing method, wherein the device provides the new service to the terminal by operating according to the installed new program.
(Appendix 2)
The installation related notification includes service designation information for designating the new service,
The service providing method further includes:
The new program is stored in association with the service designation information, and the device is included in the installation-related notification from the terminal with respect to a management unit included in the terminal or included in another computer. The service designation information to be notified,
The management unit includes transmitting the new program to the device in response to the notification of the service designation information;
The service providing method according to claim 1, wherein the device acquires the new program by receiving the new program from the management unit.
(Appendix 3)
The installation related notification is a notification prompting the device to prepare for receiving the new program,
The service providing method further includes:
When the device exists in a specific environment, the detection apparatus transmits a detection notification indicating that the device is in the specific environment;
A management unit that stores the new program in association with the specific environment and the service specification information that specifies the new service, and transmits the new program to the device in response to receiving the detection notification;
The service providing method according to claim 1, wherein the device acquires the new program by receiving the new program from the management unit.
(Appendix 4)
The installation related notification is a notification prompting the device to prepare for receiving the new program,
The service providing method further includes:
For the management unit storing the new program, the terminal requests transmission of the new program to the device,
In response to a request from the terminal, the management unit transmits the new program to the device,
The service providing method according to claim 1, wherein the device acquires the new program by receiving the new program from the management unit.
(Appendix 5)
The service according to any one of appendices 1 to 4, further comprising: after the installation of the new service, the device transmits a notification indicating that the new service has been installed on the device. How to provide.
(Appendix 6)
The terminal detects the UPnP service provided by the device,
The terminal notifies service identification information for identifying the service to a management unit included in the device or included in another computer,
A program for realizing a specific controller of UPnP for using the service, wherein the management unit stores a specific controller program stored in the management unit in association with the notified service identification information. To the terminal,
The terminal receives the specific controller program;
The terminal installs the received specific controller program on the terminal,
A service usage method, characterized in that a control message for using the detected service is given to the detected service by the terminal operating in accordance with the installed specific controller program.
(Appendix 7)
The service according to claim 6, wherein the management unit searches for the specific controller program using the notified service identification information, and transmits the specific controller program found by the search to the terminal. How to Use.
(Appendix 8)
The management unit stores, for each of a plurality of services including the service, a service identification information for identifying the service and an UPnP controller program for using the service in association with an environment in which the service is used. And
The service utilization method further includes: when the terminal exists in a specific environment, the detection device transmits a detection notification indicating that the terminal is in the specific environment to the management unit. Including
When the management unit receives the detection notification,
Search for the specific controller program stored in association with the service identification information notified from the terminal and the specific environment,
The service use method according to appendix 6, wherein the specific controller program found by the search is transmitted to the terminal.
(Appendix 9)
A program for a specific service of UPnP is installed in the terminal,
The terminal according to any one of appendices 6 to 8, wherein the terminal performs notification to the management unit and installation of the specific controller program by operating according to the program of the specific service. The service usage described.
(Appendix 10)
A method executed in a system including a first terminal, a second terminal, and a management device,
Regardless of which one of a service program for providing a UPnP (Universal Plug and Play) service and a controller program for realizing a UPnP controller for using some UPnP service is designated, the designated program Both the first terminal and the second terminal provide an update service that is a UPnP service for installation,
When the first terminal and the second terminal enter a specific environment, a detection device transmits a detection notification indicating that the first terminal and the second terminal are in the specific environment. ,
For each of the one or more UPnP services, the service, the type of service providing terminal that is the installation destination terminal of the service, the controller for using the service, and the installation destination terminal of the controller The management device stores condition information that correlates the type of controller terminal and the environment in which the service is used,
The type of service providing terminal associated with the specific environment according to the condition information matches the type of the first terminal, and the controller is associated with the specific environment according to the condition information In the first case where the terminal type matches the type of the second terminal,
In response to receiving the detection notification, the management device transmits a specific service program for providing a specific service associated with the specific environment based on the condition information to the first terminal. , Transmitting a specific controller program for realizing a specific controller associated with the specific environment according to the condition information to the second terminal,
The first terminal performs installation of the specific service program on the first terminal as part of the processing by the update service;
The second terminal performs installation of the specific controller program on the second terminal as part of the processing by the update service;
The type of service providing terminal associated with the specific environment by the condition information matches the type of the second terminal, and the controller is associated with the specific environment by the condition information In the second case where the terminal type matches the type of the first terminal,
In response to receiving the detection notification, the management device transmits the specific service program to the second terminal, and transmits the specific controller program to the first terminal,
The first terminal performs installation of the specific controller program on the first terminal as part of processing by the update service,
The method, wherein the second terminal performs installation of the specific service program on the second terminal as part of processing by the update service.
(Appendix 11)
The method according to appendix 10, wherein the detection device is included in the first terminal, included in the second terminal, or previously installed in the specific environment.
(Appendix 12)
The first terminal searches for a second terminal providing the update service;
The second terminal returns a response to the first terminal;
The first terminal instructs the second terminal detected by the response to prepare for receiving a program transmitted from the management device;
The first terminal prepares to receive a program transmitted from the management device,
The management apparatus further includes recognizing the types of the first terminal and the second terminal based on a notification from one or both of the first terminal and the second terminal. The method according to Supplementary Note 10 or 11.
(Appendix 13)
A device that provides a specific service of UPnP for acquiring and installing a new program for providing a new service of UPnP (Universal Plug and Play) after receiving a notification given from outside;
A terminal,
A search unit for searching for the specific service in accordance with a UPnP discovery protocol and a description protocol;
When the search unit detects the specific service, a first notification unit that transmits an installation-related notification related to installation of the new program on the device to the specific service;
A first control unit that provides a control message to the new service according to a UPnP control protocol when the device installs the new program after receiving the installation-related notification;
A terminal characterized by comprising:
A system comprising:
(Appendix 14)
A controller program that realizes a UPnP controller for using another UPnP service other than the specific service and the new service provided by the device or another device corresponds to the other service. The system further includes a management unit for storing,
The terminal further includes
A detection unit for detecting the another service;
A second notification unit for notifying the management unit of service identification information for identifying the other service detected by the detection unit;
When the management unit transmits the controller program in response to a notification from the notification unit, an installation unit that installs the controller program in the terminal;
A second control unit that gives a control message for using the other service to the other service by operating according to the controller program installed by the installation unit; The system according to appendix 13.

100、200、300、400、500 システム
110、140、210、310、350、410、510、520、550 端末
111、311 UPnPコントローラ
120、220、320、420 デバイス
121、221、321、421、513、523 UPnPサービス提供部
122、322 サービス更新サービス
123、323、518、528 新規サービス
130 サービス管理装置
131、231、331、431、531 格納部
132、332、532 新規サービスプログラム
150、240、560 デバイス定義ファイル
151、241、561 サービス定義ファイル
152 応答
153 SOAPコマンド
211、411、511、521 UPnP制御部
212、412 コントローラ更新サービス
213、415、519、529 新規コントローラ
222、422 サービス
230 コントローラ管理装置
232、432、533 新規コントローラプログラム
233 コントローラ決定部
234、335、435、536 条件テーブル
312、414、517、527 要求部
324、413、516、526 受信部
330、430、530 サーバ
333、433、534 コンテキスト抽出部
334 サービス決定部
336 デバイス管理部
337 デバイステーブル
338、438、539 送信部
340、440、540 センサ
434 コントローラ決定部
436、537 端末管理部
437、538 端末テーブル
512、522 既存コントローラ
514、524 既存サービス
515、525 更新サービス
535 決定部
600 情報処理装置
601 CPU
602 ROM
603 RAM
604 通信インタフェイス
605 入力装置
606 出力装置
607 記憶装置
608 駆動装置
609 バス
610 記憶媒体
611 ネットワーク
612 プログラム提供者
100, 200, 300, 400, 500 System 110, 140, 210, 310, 350, 410, 510, 520, 550 Terminal 111, 311 UPnP controller 120, 220, 320, 420 Device 121, 221, 321, 421, 513 523 UPnP service providing unit 122, 322 Service update service 123, 323, 518, 528 New service 130 Service management device 131, 231, 331, 431, 531 Storage unit 132, 332, 532 New service program 150, 240, 560 Device Definition file 151, 241, 561 Service definition file 152 Response 153 SOAP command 211, 411, 511, 521 UPnP control unit 212, 412 Controller update service 13, 415, 519, 529 New controller 222, 422 Service 230 Controller management device 232, 432, 533 New controller program 233 Controller determination unit 234, 335, 435, 536 Condition table 312, 414, 517, 527 Request unit 324, 413 516, 526 Receiving unit 330, 430, 530 Server 333, 433, 534 Context extracting unit 334 Service determining unit 336 Device management unit 337 Device table 338, 438, 539 Transmitting unit 340, 440, 540 Sensor 434 Controller determining unit 436, 537 Terminal management unit 437, 538 Terminal table 512, 522 Existing controller 514, 524 Existing service 515, 525 Update service 535 Determination unit 60 The information processing apparatus 601 CPU
602 ROM
603 RAM
604 Communication interface 605 Input device 606 Output device 607 Storage device 608 Drive device 609 Bus 610 Storage medium 611 Network 612 Program provider

Claims (7)

指定されたUPnP(Universal Plug and Play)のサービスを提供するためのプログラムをインストールするための、UPnPの特定のサービスを、端末が探索し、
前記特定のサービスを提供するデバイスが、前記端末に応答を返し、
前記端末が、前記応答により検出される前記特定のサービスに対して、UPnPの新規サービスを提供するための新規プログラムの前記デバイスへのインストールに関わるインストール関連通知を送信し、
前記デバイスが、前記特定のサービスを提供するための特定のプログラムにしたがって動作することによって、前記インストール関連通知の受信の後に前記新規プログラムを取得するとともに取得した前記新規プログラムを前記デバイスにインストールし、
前記デバイスが、インストールした前記新規プログラムにしたがって動作することにより、前記新規サービスを前記端末に提供する
ことを特徴とするサービス提供方法。
The terminal searches for a specific UPnP service for installing a program for providing a specified UPnP (Universal Plug and Play) service,
A device providing the specific service returns a response to the terminal;
The terminal sends an installation-related notification regarding installation of a new program for providing a new UPnP service to the device for the specific service detected by the response;
The device operates according to a specific program for providing the specific service, thereby acquiring the new program after receiving the installation-related notification and installing the acquired new program on the device,
The service providing method, wherein the device provides the new service to the terminal by operating according to the installed new program.
前記インストール関連通知は、前記新規サービスを指定するサービス指定情報を含み、
前記サービス提供方法は、さらに、
前記サービス指定情報と対応づけて前記新規プログラムを格納しており、前記端末に含まれるかまたは他のコンピュータに含まれる管理部に対して、前記デバイスが、前記端末からの前記インストール関連通知に含まれる前記サービス指定情報を通知し、
前記管理部が、前記サービス指定情報の通知に応じて、前記新規プログラムを前記デバイスに送信する
ことを含み、
前記デバイスは、前記管理部から前記新規プログラムを受信することにより、前記新規プログラムを取得する
ことを特徴とする請求項1に記載のサービス提供方法。
The installation related notification includes service designation information for designating the new service,
The service providing method further includes:
The new program is stored in association with the service designation information, and the device is included in the installation-related notification from the terminal with respect to a management unit included in the terminal or included in another computer. The service designation information to be notified,
The management unit includes transmitting the new program to the device in response to the notification of the service designation information;
The service providing method according to claim 1, wherein the device acquires the new program by receiving the new program from the management unit.
前記インストール関連通知は、前記新規プログラムを受信するための準備を行うよう、前記デバイスに促す通知であり、
前記サービス提供方法は、さらに、
特定の環境に前記デバイスが存在しているとき、検出装置が、前記デバイスが前記特定の環境下にあることを示す検出通知を送信し、
前記新規サービスを指定するサービス指定情報および前記特定の環境と対応づけて前記新規プログラムを格納する管理部が、前記検出通知の受信に応じて、前記新規プログラムを前記デバイスに送信する
ことを含み、
前記デバイスは、前記管理部から前記新規プログラムを受信することにより、前記新規プログラムを取得する
ことを特徴とする請求項1に記載のサービス提供方法。
The installation related notification is a notification prompting the device to prepare for receiving the new program,
The service providing method further includes:
When the device exists in a specific environment, the detection apparatus transmits a detection notification indicating that the device is in the specific environment;
A management unit that stores the new program in association with the specific environment and the service specification information that specifies the new service, and transmits the new program to the device in response to receiving the detection notification;
The service providing method according to claim 1, wherein the device acquires the new program by receiving the new program from the management unit.
端末が、デバイスの提供するUPnPのサービスを検出し、
前記端末が、前記デバイスに含まれるかまたは他のコンピュータに含まれる管理部に対して、前記サービスを識別するサービス識別情報を通知し、
前記サービスを利用するためのUPnPの特定のコントローラを実現するプログラムであって、通知された前記サービス識別情報と対応づけられて前記管理部に格納されている特定のコントローラプログラムを、前記管理部が前記端末に送信し、
前記端末が、前記特定のコントローラプログラムを受信し、
前記端末が、受信した前記特定のコントローラプログラムを前記端末にインストールし、
前記端末が、インストールした前記特定のコントローラプログラムにしたがって動作することにより、検出した前記サービスを利用するための制御メッセージを、検出した前記サービスに対して与える
ことを特徴とするサービス利用方法。
The terminal detects the UPnP service provided by the device,
The terminal notifies service identification information for identifying the service to a management unit included in the device or included in another computer,
A program for realizing a specific controller of UPnP for using the service, wherein the management unit stores a specific controller program stored in the management unit in association with the notified service identification information. To the terminal,
The terminal receives the specific controller program;
The terminal installs the received specific controller program on the terminal,
A service usage method, characterized in that a control message for using the detected service is given to the detected service by the terminal operating in accordance with the installed specific controller program.
前記管理部は、前記サービスを含む複数のサービスそれぞれについて、当該サービスを識別するサービス識別情報および当該サービスが利用される環境と対応づけて、当該サービスを利用するためのUPnPのコントローラのプログラムを格納しており、
前記サービス利用方法は、さらに、特定の環境に前記端末が存在しているときに、検出装置が、前記端末が前記特定の環境下にあることを示す検出通知を前記管理部に送信することを含み、
前記管理部は、前記検出通知を受信すると、
前記端末から通知された前記サービス識別情報と前記特定の環境とに対応づけて格納している前記特定のコントローラプログラムを検索し、
検索により見つけた前記特定のコントローラプログラムを前記端末に送信する
ことを特徴とする請求項4に記載のサービス利用方法。
The management unit stores, for each of a plurality of services including the service, a service identification information for identifying the service and an UPnP controller program for using the service in association with an environment in which the service is used. And
The service utilization method further includes: when the terminal exists in a specific environment, the detection device transmits a detection notification indicating that the terminal is in the specific environment to the management unit. Including
When the management unit receives the detection notification,
Search for the specific controller program stored in association with the service identification information notified from the terminal and the specific environment,
The service use method according to claim 4, wherein the specific controller program found by the search is transmitted to the terminal.
第1の端末と第2の端末と管理装置を含むシステムで実行される方法であって、
UPnP(Universal Plug and Play)のサービスを提供するためのサービスプログラムと、UPnPの何らかのサービスを利用するためのUPnPのコントローラを実現するためのコントローラプログラムのいずれが指定されても、指定されたプログラムをインストールするためのUPnPのサービスである更新サービスを、前記第1の端末と前記第2の端末がともに提供しており、
前記第1の端末と前記第2の端末が特定の環境に入ると、前記第1の端末と前記第2の端末が前記特定の環境下にあることを示す検出通知を、検出装置が送信し、
1つ以上のUPnPのサービスのそれぞれについて、当該サービスと、当該サービスのインストール先の端末であるサービス提供端末の種類と、当該サービスを利用するためのコントローラと、当該コントローラのインストール先の端末であるコントローラ端末の種類と、当該サービスが利用される環境とを、互いに対応づける条件情報を、前記管理装置が格納しており、
前記条件情報により前記特定の環境と対応づけられているサービス提供端末の種類が、前記第1の端末の前記種類と一致し、かつ、前記条件情報により前記特定の環境と対応づけられているコントローラ端末の種類が、前記第2の端末の前記種類と一致する第1の場合には、
前記検出通知の受信に応じて、前記管理装置が、前記条件情報により前記特定の環境と対応づけられている特定のサービスを提供するための特定のサービスプログラムを前記第1の端末に送信するとともに、前記条件情報により前記特定の環境と対応づけられている特定のコントローラを実現するための特定のコントローラプログラムを前記第2の端末に送信し、
前記第1の端末が、前記更新サービスによる処理の一部として、前記特定のサービスプログラムの前記第1の端末へのインストールを実行し、
前記第2の端末が、前記更新サービスによる処理の一部として、前記特定のコントローラプログラムの前記第2の端末へのインストールを実行し、
前記条件情報により前記特定の環境と対応づけられているサービス提供端末の種類が、前記第2の端末の前記種類と一致し、かつ、前記条件情報により前記特定の環境と対応づけられているコントローラ端末の種類が、前記第1の端末の前記種類と一致する第2の場合には、
前記検出通知の受信に応じて、前記管理装置が、前記特定のサービスプログラムを前記第2の端末に送信するとともに、前記特定のコントローラプログラムを前記第1の端末に送信し、
前記第1の端末が、前記更新サービスによる処理の一部として、前記特定のコントローラプログラムの前記第1の端末へのインストールを実行し、
前記第2の端末が、前記更新サービスによる処理の一部として、前記特定のサービスプログラムの前記第2の端末へのインストールを実行する
ことを特徴とする方法。
A method executed in a system including a first terminal, a second terminal, and a management device,
Regardless of which one of a service program for providing a UPnP (Universal Plug and Play) service and a controller program for realizing a UPnP controller for using some UPnP service is designated, the designated program Both the first terminal and the second terminal provide an update service that is a UPnP service for installation,
When the first terminal and the second terminal enter a specific environment, a detection device transmits a detection notification indicating that the first terminal and the second terminal are in the specific environment. ,
For each of the one or more UPnP services, the service, the type of service providing terminal that is the installation destination terminal of the service, the controller for using the service, and the installation destination terminal of the controller The management device stores condition information that correlates the type of controller terminal and the environment in which the service is used,
The type of service providing terminal associated with the specific environment according to the condition information matches the type of the first terminal, and the controller is associated with the specific environment according to the condition information In the first case where the terminal type matches the type of the second terminal,
In response to receiving the detection notification, the management device transmits a specific service program for providing a specific service associated with the specific environment based on the condition information to the first terminal. , Transmitting a specific controller program for realizing a specific controller associated with the specific environment according to the condition information to the second terminal,
The first terminal performs installation of the specific service program on the first terminal as part of the processing by the update service;
The second terminal performs installation of the specific controller program on the second terminal as part of the processing by the update service;
The type of service providing terminal associated with the specific environment by the condition information matches the type of the second terminal, and the controller is associated with the specific environment by the condition information In the second case where the terminal type matches the type of the first terminal,
In response to receiving the detection notification, the management device transmits the specific service program to the second terminal, and transmits the specific controller program to the first terminal,
The first terminal performs installation of the specific controller program on the first terminal as part of processing by the update service,
The method, wherein the second terminal performs installation of the specific service program on the second terminal as part of processing by the update service.
UPnP(Universal Plug and Play)の新規サービスを提供するための新規プログラムを、外部から与えられる通知の受信の後に取得してインストールするための、UPnPの特定のサービスを提供するデバイスと、
端末であって、
前記特定のサービスをUPnPのディスカバリプロトコルおよびディスクリプションプロトコルにしたがって探索する探索部と、
前記探索部が前記特定のサービスを検出すると、前記特定のサービスに対して、前記新規プログラムの前記デバイスへのインストールに関わるインストール関連通知を送信する第1の通知部と、
前記デバイスが前記インストール関連通知の受信の後に前記デバイスに前記新規プログラムをインストールすると、前記新規サービスに対してUPnPのコントロールプロトコルにしたがって制御メッセージを与える第1の制御部と、
を備えることを特徴とする端末と、
を備えることを特徴とするシステム。
A device that provides a specific service of UPnP for acquiring and installing a new program for providing a new service of UPnP (Universal Plug and Play) after receiving a notification given from outside;
A terminal,
A search unit for searching for the specific service in accordance with a UPnP discovery protocol and a description protocol;
When the search unit detects the specific service, a first notification unit that transmits an installation-related notification related to installation of the new program on the device to the specific service;
A first control unit that provides a control message to the new service according to a UPnP control protocol when the device installs the new program after receiving the installation-related notification;
A terminal characterized by comprising:
A system comprising:
JP2011287033A 2011-12-27 2011-12-27 Service providing method, service using method and system Expired - Fee Related JP5821627B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011287033A JP5821627B2 (en) 2011-12-27 2011-12-27 Service providing method, service using method and system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011287033A JP5821627B2 (en) 2011-12-27 2011-12-27 Service providing method, service using method and system

Publications (2)

Publication Number Publication Date
JP2013137589A true JP2013137589A (en) 2013-07-11
JP5821627B2 JP5821627B2 (en) 2015-11-24

Family

ID=48913277

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011287033A Expired - Fee Related JP5821627B2 (en) 2011-12-27 2011-12-27 Service providing method, service using method and system

Country Status (1)

Country Link
JP (1) JP5821627B2 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015093192A1 (en) * 2013-12-18 2015-06-25 シャープ株式会社 Device to be controlled, control device, and information apparatus
JP2015125512A (en) * 2013-12-25 2015-07-06 株式会社ミクシィ Management system, management method by management system, management device, control method for management device, and program
CN110659084A (en) * 2013-08-20 2020-01-07 富士通株式会社 Information processing apparatus, communication apparatus, information processing method, and recording medium
JP2020113127A (en) * 2019-01-15 2020-07-27 レノボ・シンガポール・プライベート・リミテッド Information processor and method for set-up

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005066808A1 (en) * 2004-01-06 2005-07-21 Matsushita Electric Industrial Co., Ltd. Device linkage service system and electronic device constituting the system
JP2006259839A (en) * 2005-03-15 2006-09-28 Fujitsu Ltd Integrated function control program, device and method
JP2007133796A (en) * 2005-11-14 2007-05-31 Hitachi Ltd Information processor and information processing system
JP2007286850A (en) * 2006-04-14 2007-11-01 Canon Inc Communication equipment and its installation method
JP2009129198A (en) * 2007-11-22 2009-06-11 Sony Corp Information processor and information processing method
JP2010061683A (en) * 2003-01-02 2010-03-18 Samsung Electronics Co Ltd Application management system and method
JP2010160748A (en) * 2009-01-09 2010-07-22 Nippon Hoso Kyokai <Nhk> Network controller and computer program

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010061683A (en) * 2003-01-02 2010-03-18 Samsung Electronics Co Ltd Application management system and method
WO2005066808A1 (en) * 2004-01-06 2005-07-21 Matsushita Electric Industrial Co., Ltd. Device linkage service system and electronic device constituting the system
JP2006259839A (en) * 2005-03-15 2006-09-28 Fujitsu Ltd Integrated function control program, device and method
JP2007133796A (en) * 2005-11-14 2007-05-31 Hitachi Ltd Information processor and information processing system
JP2007286850A (en) * 2006-04-14 2007-11-01 Canon Inc Communication equipment and its installation method
JP2009129198A (en) * 2007-11-22 2009-06-11 Sony Corp Information processor and information processing method
JP2010160748A (en) * 2009-01-09 2010-07-22 Nippon Hoso Kyokai <Nhk> Network controller and computer program

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
WILLIAM LUPTON, ANDRE BTTARO, FRANCOIS-GAEL OTTOGALLI, LEVENT GURDEN, NOCOLAS CHABANOLES, JOOYEOL LE, SOFTWAREMANAGEMENT:1 SERVICE TEMPLATE VERSION 1.01 FOR UPNP VERSION 1.0, JPN6015024375, 20 July 2010 (2010-07-20), pages 18 - 55, ISSN: 0003097507 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110659084A (en) * 2013-08-20 2020-01-07 富士通株式会社 Information processing apparatus, communication apparatus, information processing method, and recording medium
CN110659084B (en) * 2013-08-20 2023-04-07 富士通株式会社 Information processing apparatus, communication apparatus, information processing method, and recording medium
WO2015093192A1 (en) * 2013-12-18 2015-06-25 シャープ株式会社 Device to be controlled, control device, and information apparatus
JP2015125512A (en) * 2013-12-25 2015-07-06 株式会社ミクシィ Management system, management method by management system, management device, control method for management device, and program
JP2020113127A (en) * 2019-01-15 2020-07-27 レノボ・シンガポール・プライベート・リミテッド Information processor and method for set-up

Also Published As

Publication number Publication date
JP5821627B2 (en) 2015-11-24

Similar Documents

Publication Publication Date Title
JP6296813B2 (en) Information processing terminal, information processing terminal control method, and program
JP5760716B2 (en) Application providing system, application providing method, information processing apparatus, and information processing program
KR101651029B1 (en) Method and apparatus for automatic service discovery and connectivity
US9917893B2 (en) Method and system for supporting dynamic instance hosting service of virtual object
US10007396B2 (en) Method for executing program and electronic device thereof
JP6821674B2 (en) Methods and mobile devices for locking and unlocking mobile devices with touch screen
US9332061B2 (en) Master device, integrated service management system, and integrated service management method
US20180152811A1 (en) Beacon addressing
KR101307476B1 (en) Contents sharing service method and system using location-based
KR101995260B1 (en) Method and system for providing app service
CN103269396A (en) Method and system capable of conducting management on mobile terminal
CN114461240B (en) Software upgrading method, software upgrading system and electronic equipment
JP5821627B2 (en) Service providing method, service using method and system
KR101943430B1 (en) User Device, Driving Method of User Device, Apparatus for Providing Service and Driving Method of Apparatus for Providing Service
JP5822050B1 (en) Device information providing system and device information providing method
JP6448901B2 (en) Peripheral device control system and method based on topology
US20190095261A1 (en) Software resource management
KR101573594B1 (en) Service system and method for providing dynamic mashup service based on service intent
US20150222712A1 (en) Information processing terminal and control method
CN115599265A (en) Intelligent device control method, terminal device, server and storage medium
WO2022083342A1 (en) Data transmission method and electronic device
JP6583424B2 (en) Information processing system, information processing method, and information processing program
JP5975125B2 (en) Application providing system and application providing method
WO2019144213A1 (en) Facilitating invocation of a service hosted at a proximate electronic device from a mobile software application
JP2014153797A (en) Device information providing system and device information providing method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140904

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150515

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150623

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150811

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150908

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150921

R150 Certificate of patent or registration of utility model

Ref document number: 5821627

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees