JP5821627B2 - Service providing method, service using method and system - Google Patents
Service providing method, service using method and system Download PDFInfo
- Publication number
- JP5821627B2 JP5821627B2 JP2011287033A JP2011287033A JP5821627B2 JP 5821627 B2 JP5821627 B2 JP 5821627B2 JP 2011287033 A JP2011287033 A JP 2011287033A JP 2011287033 A JP2011287033 A JP 2011287033A JP 5821627 B2 JP5821627 B2 JP 5821627B2
- Authority
- JP
- Japan
- Prior art keywords
- terminal
- service
- controller
- program
- specific
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Stored Programmes (AREA)
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.
近年、様々な電子機器においてソフトウェア制御が採用されており、ソフトウェアのインストールによる機能拡張が実現可能な電子機器の種類も増えてきた。また、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 is a notification related to installation of a new program for providing a new UPnP service for the specific service detected by the response, and receives the new program. An installation-related notification that is a notification prompting the device to prepare for the transmission is transmitted. Further, 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 service specification information that specifies the new service and the specific environment transmits the new program to the device in response to reception of the detection notification. In addition, the device operates in accordance with a specific program for providing the specific service, so that the device receives and acquires the new program from the management unit after receiving the installation-related notification. Install a new program on the device. 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〜第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
端末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
デバイス120は、通信機能とUPnPのサービス提供機能を有する装置であり、製造工場からの出荷後にソフトウェアをインストールすることの可能な装置である。例えば、携帯電話、スマートフォン、タブレット端末、PDA、ノートPC、デスクトップPCなどがデバイス120として使われることもある。あるいは、組み込み型コンピュータを有するその他の種類の装置(例えば、プリンタ、プロジェクタ、テレビ、録画装置、照明装置など)がデバイス120として使われてもよい。
The
端末110とデバイス120は、ネットワークを介して互いに通信することができる。同様に、端末140とデバイス120も、ネットワークを介して互いに通信することができる。
The terminal 110 and the
サービス管理装置130は、例えば、ネットワークを介してデバイス120と通信可能なコンピュータであってもよい。あるいは、端末110がサービス管理装置130を含んでいてもよい。
The
端末110とデバイス120とサービス管理装置130のさらなる詳細は、後ほど図2を参照して説明することにして、先に図1の動作シーケンスについて説明する。図1の動作シーケンスは、例えば、「端末110が何らかのUPnPのサービスを利用しようとしたのに、当該サービスを提供するデバイスが見つからなかった」という場合などに実行される。
Further details of the terminal 110, the
例えば、端末110のユーザは、ドキュメント表示サービスを利用したいかもしれない。すると、ユーザは、ドキュメント表示サービスを提供するデバイスを探索するよう端末110に指示するための入力を端末110に与える。端末110は、ユーザからの入力にしたがって、ドキュメント表示サービスを提供するデバイスを探索する。
For example, the user of
しかし、端末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
図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
端末110は、ステップS102の応答を受信すると、次に、ステップS103〜S106に示すとおり、UPnPのディスクリプションプロトコルにしたがって、デバイス120の詳細な情報を取得する。
Upon receiving the response of step S102, the terminal 110 then acquires detailed information of the
具体的には、ステップS103で端末110が、デバイス120のデバイス定義(device description)を要求する。ステップS103での要求は、具体的には、GETメソッドが指定されたHTTP要求である。
Specifically, in step S103, the terminal 110 requests a device definition (device description) of the
デバイス120は、ステップS103の要求を受信すると、ステップS104で、デバイス定義ファイルを端末110に送信する。デバイス定義ファイルは、XML(Extensible Markup Language)形式で記述されており、デバイス120が提供するサービスについての情報を含む。上記のとおりデバイス120はサービス更新サービスを提供しているので、ステップS104で送信されるデバイス定義ファイルは、サービス更新サービスにアクセスするための情報を含む。
Upon receiving the request in step S103, the
したがって、端末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
以上のようにして、端末110は、デバイス120により提供されるサービス更新サービスを検出することができる。そして、端末110は、検出したサービス更新サービスに対して、ステップS107でコマンドを送信する。
As described above, the terminal 110 can detect the service update service provided by the
具体的には、ステップ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
ところで、上記のように、新規サービスのインストールは、既存の古いサービスの置き換えによる更新のために行われることもあるし、全く新規のサービスの追加のために行われることもある。よって、図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
デバイス120は、さらにステップS109で、サービス管理装置130にサービスを要求する。より具体的には、デバイス120は、SOAPコマンドにおいて端末110により指定された新規サービスを提供するためのプログラムの送信を、サービス管理装置130に要求する。
In step S109, the
ステップ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
すると、次のステップS110でサービス管理装置130は、ステップS109で要求されたサービス(より具体的には、当該サービスを提供するためのプログラムを含むデータ)を、デバイス120に送信する。デバイス120は、こうしてサービス管理装置130からプログラムを受信することにより、インストール対象のプログラムを取得する。
Then, in step S110, the
そして、ステップS111でデバイス120は、取得したプログラムをデバイス120自身にインストールする。その結果、デバイス120は、新規サービスを提供することができるようになる。
In step S111, the
また、プログラムのインストールにより、デバイス120が提供するサービスが追加または更新されるので、デバイス120は、デバイス定義ファイルを書き換える。デバイス120は、追加または更新されたサービスのサービス定義ファイルも保存する。
In addition, since the service provided by the
また、ステップ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
図1の例では、ステップS112でデバイス120がサービス追加・更新イベントの通知をGENAのプロトコルにしたがって通知する。よって、端末110だけでなく端末140も、デバイス120が新規サービスの提供を開始したことを認識することができる。
In the example of FIG. 1, in step S112, the
また、図1には示されていないが、上記のようにしてデバイス120が新規サービスの提供を開始した後、端末110は、ステップS103〜S104と同様にしてデバイス120のデバイス定義ファイルを再度取得する。こうして取得されるデバイス定義ファイルは、ステップS111で更新されたものであり、インストールされた新規サービスにアクセスするための情報を含む。
Although not shown in FIG. 1, after the
したがって、端末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
続いて、図2を参照して、端末110とデバイス120とサービス管理装置130の詳細について説明する。
図2に示すように、端末110には、UPnPコントローラ111が実装されている。UPnPコントローラ111は、サービス更新サービスに対して制御メッセージ(つまりコマンド)を与える機能を有する、UPnPのコントローラである。図1に示した端末110の動作は、具体的にはUPnPコントローラ111により実行される。
Next, details of the terminal 110, the
As shown in FIG. 2, a
また、デバイス120は、UPnPサービス提供部121を含む。UPnPサービス提供部121は、サービス更新サービス122を提供する。図1のステップS109の要求、ステップS110の受信、ステップS111のインストール、およびステップS112の通知は、具体的には、サービス更新サービス122により行われる。つまり、デバイス120は、サービス更新サービス122を提供するためのプログラムを実行することにより、ステップS109〜S112の処理を行う。
The
なお、図2には、図1のステップS111でインストールされる新規サービス123が破線で示されている。新規サービス123のプログラムのインストール後には、UPnPサービス提供部121は、新規サービス123も提供することが可能である。また、UPnPコントローラ111は、サービス更新サービス122に対して制御メッセージを与える機能だけでなく、新規サービス123に対して制御メッセージを与える機能を有していてもよい。
In FIG. 2, the
さて、サービス管理装置130は格納部131を有する。格納部131には、新規サービス123を提供するためのプログラムである新規サービスプログラム132が、新規サービス123を識別する情報と対応づけられて、格納されている。新規サービスプログラム132は、図1のステップS110でデバイス120に送信され、ステップS111でデバイス120にインストールされる。そして、インストールの結果として、デバイス120は新規サービス123の提供を開始する。
The
なお、簡単化のため、図1には1つの新規サービスプログラム132のみが示されている。しかし、格納部131は、複数のサービスそれぞれのプログラムを、当該サービスを識別する情報と対応づけて格納していてもよい。つまり、格納部131は、様々なサービスを提供するための各種プログラムのレポジトリであってもよい。
For simplification, only one
続いて、図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
図3のデバイス定義ファイル150は、新規サービス123を提供するための新規サービスプログラム132が図1のステップS111でインストールされるのにともなって更新された、デバイス定義ファイルの具体例である。なお、図3には参照の便宜のため、左側に行番号が示してある。図4などの他のいくつかの図においても、同様の行番号が示してある。
The
UPnPのデバイス定義ファイルの一般的な形式は公知である。よって、デバイス定義ファイル150のうちサービス更新サービス122と直接関係しない部分については、適宜、説明を省略または簡略化する。
The general format of a UPnP device definition file is known. Therefore, the description of the part of the
5〜9行目には、デバイス120全体に関する情報(例えば、9行目のUDN(Unique Device Name)など)が記載されている。そして、10〜25行目には、デバイス120が提供するサービスのリストが記載されている。
デバイス定義ファイル150の例では、10〜25行目のリストには、2つのサービスの情報が記載されている。具体的には、11〜17行目には、サービス更新サービス122の情報が記載されている。そして、18〜24行目には、サービス更新サービス122によってデバイス120にインストールされたドキュメント表示サービス(つまり、図2の新規サービス123の具体例)の情報が記載されている。
In the example of the
11〜17行目に記載されているサービス更新サービス122に関する情報は、具体的には以下の情報を含む。
12行目には、サービス更新サービス122の種類が記載されている。また、13行目には、サービス更新サービス122のID(identifier)が記載されている。
The information regarding the
The twelfth line describes the type of
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
また、例えば図1のステップS107のSOAPコマンドのように、何らかの制御メッセージがサービス更新サービス122に送信されることがある。15行目には、このようなサービス更新サービス122に対する制御メッセージの宛先のURIが記載されている。つまり、端末110は、デバイス定義ファイル150から、ステップS107のSOAPコマンドをどこに宛てて送信すればよいかを認識することができる。
Further, for example, some control message may be transmitted to the
また、端末110は、サービス更新サービス122の状態変数(state variable)が変化したときにGENAによるイベント通知を受け取れるようにするために、購読要求(subscription request)をサービス更新サービス122に送信してもよい。もちろん、端末140も同様に、購読要求を送信してもよい。16行目には、購読要求の宛先のURIが記載されている。
Also, the terminal 110 may transmit a subscription request to the
例えば、図1の例では、サービス更新サービス122は、ステップS107のコマンドを送信した端末110を、サービス更新サービス122の特定の状態変数(具体的には、後述の状態変数UpdateTime)の購読を要求したものと見なす。また、図1の例では、端末140も、予めデバイス120に対して、状態変数UpdateTimeの購読を要求していたものと仮定する。そのため、図1の例では、ステップS112で、GENAによる通知が端末110と端末140に送信されている。
For example, in the example of FIG. 1, the
デバイス定義ファイル150においては、以上説明した12〜16行目の情報が、11行目と17行目のタグにはさまれている。したがって、端末110は、デバイス定義ファイル150の11〜17行目から、サービス更新サービス122にアクセスしてサービス更新サービス122を利用するための情報を得ることができる。
In the
なお、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
さて、次に図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
For convenience of explanation, FIG. 4 exemplifies a
また、UPnPのサービス定義の一般的な形式は公知である。そこで、以下ではサービス定義ファイル151の形式についての説明は省略し、サービス定義ファイル151の内容について主に説明する。
Also, the general format of UPnP service definition is known. Therefore, the description of the format of the
さて、サービス定義ファイル151は、図3のデバイス定義ファイル150の14行目に記載されたURIで識別される場所(具体的にはデバイス120内の記憶装置)に記憶されており、図1のステップS106で送信される。
The
4〜33行目には、サービス更新サービス122に関して定義されているアクションのリストが記載されている。
具体的には、5〜12行目では、サービスの追加および更新用の、「UpdateService」という名前のアクションが定義されている。このアクションは2つの入力引数をとる。
In
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
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
なお、端末110にとっては、以上の2つの引数として指定する2つの値は、既知である。
また、13〜18行目では、サービスの削除用の、「DeleteService」という名前のアクションが定義されている。なお、「DeleteService」というアクションは省略可能であり、実施形態によっては、サービス更新サービス122がサービスの削除機能を持たなくてもよい。
For
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
図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
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
図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
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
そして、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
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
応答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
例えば、図1の端末110は、ステップS102で応答152を受信すると、応答152の4行目のURIを宛先としてステップS103でHTTP要求を送信する。すると、端末110は、ステップS104で図3のデバイス定義ファイル150を取得することができる。
For example, when receiving the
さて、図5に示すように、図1のステップS107で送信されるSOAPコマンド153は、具体的にはPOSTメソッドのHTTP要求である。
SOAPコマンド153の1行目は、HTTPのリクエストラインである。1行目には、図3のデバイス定義ファイル150の15行目に記載されたURIが、HTTP要求の宛先として指定されている。
As shown in FIG. 5, the
The first line of the
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
In the third line, the terminal 110 that is the source of the
4〜5行目は一般的なHTTPヘッダフィールドである。7〜16行目はHTTP要求のエンティティボディであり、7〜16行目に具体的な制御メッセージが記載されている。具体的には、11〜14行目において、「UpdateService」というアクションに与える2つの入力引数が指定されている。
The fourth to fifth lines are general HTTP header fields.
図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
したがって、図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
ところで、図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
まず、ステップ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
また、UPnPサービス提供部121は、受信されたSOAPコマンド153がサービス更新サービス122に対するコマンドであることを、SOAPコマンド153の1行目から認識することができる。よって、UPnPサービス提供部121はサービス更新サービス122を呼び出す。
The UPnP
すると、次のステップS202でサービス更新サービス122が、通知されたURIにあるサービス管理装置130に対して、通知された名前のサービスを要求する。より具体的には、サービス更新サービス122は、SOAPコマンド153の13行目に記載されたURI(つまり新規サービスプログラム132のURI)を宛先として、12行目の名前で識別されるサービスを要求する。ステップS202の要求は、図1のステップS109に相当する。なお、ステップS202の要求は、任意の形式の要求でよく、例えばHTTP要求であってもよいし、その他の形式の要求であってもよい。
Then, in the next step S202, the
また、図1のステップS110に示すように、サービス更新サービス122は、要求したサービスのデータを、サービス管理装置130から受信する。なお、こうしてステップS202で受信されるデータは、具体的には、例えば、新規サービスプログラム132と、新規サービス123のサービス定義ファイルとを含むデータでもよい。
In addition, as illustrated in step S <b> 110 of FIG. 1, the
受信後、ステップS203においてサービス更新サービス122は、受信したサービスのデータに基づいて、以下の3つの処理を行う。
第1に、サービス更新サービス122は、デバイス120のデバイス定義ファイルを更新する。具体的には、例えば、サービス更新サービス122は、図3の18〜24行目をデバイス定義ファイル150に追加し、更新後のデバイス定義ファイル150をデバイス120の記憶装置に記憶する。
After reception, in step S203, the
First, the
第2に、サービス更新サービス122は、受信したサービスのサービス定義ファイルを追加または更新する。全く新規のサービスがデバイス120にインストールされる場合は、インストールするサービスのサービス定義ファイルはデバイス120内にない。そこで、この場合、サービス更新サービス122は、サービス管理装置130から受信したデータに基づき、新たなサービス定義ファイルを作成して保存する。また、デバイス120にインストール済みの既存のサービスの新規バージョンがデバイス120にインストールされる場合(つまり既存のサービスが更新される場合)は、当該既存のサービスのサービス定義ファイルはデバイス120内に既にある。そこで、この場合、サービス更新サービス122は、サービス管理装置130から受信したデータに基づき、既存のサービス定義ファイルを更新する。
Second, the
第3に、サービス更新サービス122は、受信したサービスのプログラム(つまり新規サービスプログラム132)をデバイス120にインストールする。
サービス更新サービス122は、以上の3つの処理をステップS203で行った後、ステップS204で、図4の43行目に示す「UpdateTime」という状態変数の値を現在時刻に更新する。ステップS203〜S204は、図1のステップS111に対応する。
Third, the
After performing the above three processes in step S203, the
そして、次のステップS205でサービス更新サービス122は、GENAにより、デバイス120の周辺の端末(例えば、図1では端末110と端末140)に対して、ステップS204で更新した「UpdateTime」という状態変数の値を通知する。ステップS205は図1のステップS112に対応する。
Then, in the next step S205, the
以上説明した第1実施形態によれば、端末110は、たとえ所望のサービスを既に提供しているデバイスを見つけられなくても、所望のサービスをサービス更新サービス122に通知することで、所望のサービスを受けられるようになる。なぜなら、サービス更新サービス122が、通知されたサービスのプログラム(つまり新規サービスプログラム132)をデバイス120にインストールし、デバイス120が上記所望のサービス(つまり新規サービス123)の提供を開始するからである。
According to the first embodiment described above, the terminal 110 notifies the
このように、第1実施形態によれば、UPnPの新規サービスプログラム132が動的にデバイス120に導入されるので、ユーザの利便性が高まる。以上のような第1実施形態の利点についてさらに詳しく説明すれば、以下のとおりである。
Thus, according to the first embodiment, since the UPnP
例えば、比較例として、第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
このように、第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
第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
第2に、サービス更新サービス122を多くのデバイス120に組み込むことが容易であり、利便性向上に有益なサービス更新サービス122の普及が促進される。理由は次のとおりである。
Second, it is easy to incorporate the
種々の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
すると、広く使われるライブラリを介して、多くのデバイス120にサービス更新サービス122を実装することが可能となる。多くのデバイス120においてサービス更新サービス122が実装されていれば、図1のステップS101の探索に対して、サービス更新サービス122を提供するデバイス120が少なくとも1台は見つかる蓋然性も高まる。その結果、ユーザの利便性も向上する。
Then, it becomes possible to implement the
続いて、第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
端末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
コントローラ管理装置230は、例えば、ネットワークを介して端末210と通信可能なコンピュータであってもよい。あるいは、デバイス220がコントローラ管理装置230を含んでいてもよい。
The
端末210とデバイス220とコントローラ管理装置230のさらなる詳細は、後ほど図8を参照して説明することにして、先に図7の動作シーケンスについて説明する。なお、先に例示したとおり、端末210に動的にコントローラをインストールすることができれば好ましい状況はいくつかある。しかし、以下では説明の簡単化のため、次の2つの仮定が成り立つ状況における動作シーケンスについて説明する。
Further details of the terminal 210, the
・ユーザが、ある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
さて、図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
端末210は、ステップS302の応答を受信すると、次に、ステップS303でデバイス220のデバイス定義を要求する。すると、デバイス220は、ステップS304でデバイス定義ファイルを端末210に送信する。
Upon receiving the response in step S302, the terminal 210 next requests the device definition of the
端末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
なお、ステップ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
そして、端末210は、次のステップS307で、コントローラ管理装置230に対して、対象サービスに対応するコントローラを要求する。ステップS307の要求は、対象サービスを識別するサービス識別情報(例えばサービスのIDまたは名前)を含む。つまり、ステップS307の要求は、サービス識別情報の通知でもある。また、対象サービスに対応するコントローラとは、具体的には、対象サービスを利用するために対象サービスに対して制御メッセージを送る機能を持つUPnPのコントローラである。
In step S307, the terminal 210 requests the
ところで、コントローラ管理装置230は、1つ以上のサービスのそれぞれに対応するコントローラを実現するプログラムを、当該サービスを識別するサービス識別情報と対応づけて格納している。よって、コントローラ管理装置230は、ステップS307の要求を受信すると、通知されたサービス識別情報を用いて、対象サービスに対応するコントローラを実現するプログラムを検索する。そして、コントローラ管理装置230は、検索により見つけたプログラムを、ステップS308で端末210に送信する。
By the way, the
すると、端末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
続いて、図8を参照して、端末210とデバイス220とコントローラ管理装置230の詳細について説明する。
図8に示すように、端末210にはUPnP制御部211が含まれる。UPnP制御部211は、1つ以上のコントローラを含むことができるが、例えば図7のステップS301の時点では、UPnP制御部211は1つもコントローラを含んでいなくてもよい。
Next, details of the terminal 210, the
As illustrated in FIG. 8, the terminal 210 includes a
また、端末210は、指定されたUPnPのサービスに対応するコントローラを追加または更新するための、コントローラ更新サービス212を提供する。なお、全く新たなコントローラを追加することも、既存のコントローラを新たなバージョンのコントローラに更新することも、コントローラのプログラムのインストールにより同様に実現される。したがって、以下ではコントローラの追加と更新を区別しないことがある。
The terminal 210 also provides a
また、第2実施形態では、コントローラ更新サービス212がUPnPのサービスとして実装されている。したがって、コントローラ更新サービス212は、図8には不図示の他の端末のコントローラから、対象サービスを指定する制御メッセージを受け取ることで、対象サービスを決めてもよい。あるいは、端末210のUPnP制御部211の中に、コントローラ更新サービス212を利用するための不図示のコントローラがさらに実装されていてもよい。そして、当該不図示のコントローラが、コントローラ更新サービス212に対して、対象サービスを指定する制御メッセージを与えてもよい。
In the second embodiment, the
しかし、実施形態によっては、「コントローラ更新サービス212と同様の機能を持つものの、UPnPのサービスではない」といったプログラムモジュールが、コントローラ更新サービス212の代わりに使われてもよい。
However, in some embodiments, a program module that has the same function as the
ところで、図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
そして、ステップS309のインストールの結果として、UPnP制御部211には、対象サービスに対応する新規コントローラ213がインストールされる。図8には、新規コントローラ213が破線で示されている。
As a result of the installation in step S309, a
また、デバイス220は、UPnPサービス提供部221を含む。UPnPサービス提供部221は、上記の対象サービスであるサービス222を提供する。
さて、コントローラ管理装置230は格納部231を有する。格納部231には、サービス222に対応する新規コントローラ213を実現するためのプログラムである新規コントローラプログラム232が、サービス222を識別する情報と対応づけられて、格納されている。
The
The
新規コントローラプログラム232は、図7のステップS308で送信され、ステップS309で端末210にインストールされる。そして、インストールの結果として、端末210は、新規コントローラ213を介してサービス222を利用することができるようになる。
The
なお、簡単化のため、図8には1つの新規コントローラプログラム232のみが示されている。しかし、格納部231は、複数のサービスに対応する複数のコントローラそれぞれのプログラムを格納していてもよい。つまり、格納部231は、様々なコントローラのプログラムのレポジトリであってもよい。
For simplification, only one
また、コントローラ管理装置230は、指定されたサービスに対応するコントローラを決定するコントローラ決定部233を含む。コントローラ決定部233は、具体的には、条件テーブル234を参照することで、指定されたサービスに対応するコントローラを決定する。
Further, the
図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
検索の結果、コントローラ決定部233は、「端末210に送信する対象のプログラムは、ビデオリモコンコントローラのプログラムである」と決定する。コントローラ決定部233による決定にしたがって、コントローラ管理装置230は、図7のステップS308で、格納部231に格納されているビデオリモコンコントローラのプログラムを送信する。
As a result of the search, the
以上のように、コントローラ管理装置230では、条件テーブル234により、各コントローラのプログラムが、対応するサービスの識別情報と対応づけられている。しかし、実施形態によっては、例えば、対応するサービスの識別情報を含むパスで示されるフォルダにコントローラのプログラムを格納するなどの、他の方法による対応づけが採用されてもよい。
As described above, in the
さて、上記のとおり第2実施形態では、図8のコントローラ更新サービス212は、UPnPのサービスの1種である。よって、コントローラ更新サービス212のインストールされた端末210に関するデバイス定義ファイルには、コントローラ更新サービス212に関する情報が含まれる。また、端末210は、デバイス定義ファイルだけでなく、コントローラ更新サービス212に関するサービス定義ファイルも格納している。以下、図10〜11を参照して、これらのデバイス定義ファイルとサービス定義ファイルの具体例について説明する。
As described above, in the second embodiment, the
図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
デバイス定義ファイル240の例では、10〜18行目のリストには、1つのサービス(すなわちコントローラ更新サービス212)の情報のみが記載されている。具体的には、12行目に、コントローラ更新サービス212の種類が記載されており、13行目に、コントローラ更新サービス212のIDが記載されている。また、14行目には、コントローラ更新サービス212のサービス定義ファイルのある場所のURIが記載されている。
In the example of the
そして、コントローラ更新サービス212は、外部から制御メッセージ(具体的にはSOAPコマンド)を受け取ることもできる。15行目には、このようなコントローラ更新サービス212に対する制御メッセージの宛先のURIが記載されている。さらに、16行目には、コントローラ更新サービス212の状態変数についての購読要求の宛先のURIが記載されている。
The
次に、図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
さて、サービス定義ファイル241は、図10のデバイス定義ファイル240の14行目に記載されたURIで識別される場所(具体的には端末210内の記憶装置)に記憶されている。
The
4〜19行目には、コントローラ更新サービス212に関して定義されているアクションのリストが記載されている。
具体的には、5〜12行目では、コントローラの追加および更新用の、「UpdateController」という名前のアクションが定義されている。このアクションは2つの入力引数をとる。
In the 4th to 19th lines, a list of actions defined for the
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
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
また、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
図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
また、20〜27行目には、コントローラ更新サービス212に関して定義されている状態変数のリストが記載されている。
具体的には、21〜22行目には、「ServiceName」という名前の文字列型の状態変数が定義されている。「ServiceName」という状態変数は、コントローラ更新サービス212が最後に追加、更新、または削除したコントローラに対応するサービスの識別情報(例えばサービスの名前)を示す。
In the 20th to 27th lines, a list of state variables defined for the
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
そして、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
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
もし、例えばデバイス220のように、対象サービスを提供するデバイスがあれば、コントローラ更新サービス212は図7のステップS302のような応答を受信する。この場合、コントローラ更新サービス212はさらに、図7のステップS303〜S306のようにして、対象サービスを提供するデバイスのデバイス定義ファイルと、対象サービスのサービス定義ファイルを取得する。
If there is a device that provides the target service, for example, the
次に、ステップS402でコントローラ更新サービス212は、ステップS401で検索したUPnPサービス(つまり対象サービス)を提供するデバイスが発見されたか否かを判断する。
Next, in step S402, the
ステップ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
逆に、ステップ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
ステップS403でコントローラ更新サービス212は、コントローラ管理装置230に対して、発見したUPnPサービス(つまり対象サービス)の情報(例えば名前やIDなどの識別情報)を通知して、対象サービスに対応するコントローラを要求する。ステップS403での要求は、図7のステップS307に対応する。そして、図7のステップS308に示すように、コントローラ更新サービス212は、コントローラ管理装置230から、対象サービスに対応するコントローラのデータ(具体的には、図8の新規コントローラプログラム232を含むデータ)を受信する。
In step S403, the
最後に、ステップS404でコントローラ更新サービス212は、受信したコントローラのプログラムを端末210にインストールする。その結果、UPnP制御部211は、サービス222を利用するための新規コントローラ213が存在する状態となる。したがって、端末210のユーザは、端末210から所望のサービス222を利用することが可能となる。
Finally, in step S404, the
以上説明した第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
続いて、第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
すなわち、第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
端末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
デバイス320は、通信機能とUPnPのサービス提供機能を有する装置であり、製造工場からの出荷後にソフトウェアをインストールすることの可能な装置である。より具体的には、デバイス320は、第1実施形態と類似のサービス更新サービス322を提供する。また、例えば、携帯電話、スマートフォン、タブレット端末、PDA、ノートPC、デスクトップPC、プリンタ、プロジェクタ、テレビ、録画装置、照明装置などの様々な装置が、デバイス320として利用される可能性がある。なお、端末310とデバイス320は、ネットワークを介して互いに通信することができる。
The
サーバ330は、ネットワークを介した通信が可能なコンピュータである。後述するとおり、第3実施形態では、ある種の通知が、デバイス320からサーバ330に送信されてもよいし、端末310からサーバ330に送信されてもよい。また、別の通知が、センサ340からサーバ330に送信されてもよいし、端末310からサーバ330に送信されてもよい。サーバ330は、ネットワーク(例えばインターネット)を介して各種通知を適宜受信することができるものとする。
The
また、センサ340は、1種の検出装置である。具体的には、デバイス320が特定の環境に存在する場合に、センサ340は、デバイス320が特定の環境に存在することを示す検出通知を送信する。
The
センサ340は、特定の環境に予め設置されていてもよい。例えば、上記「特定の環境」が、特定の建物の特定の部屋である場合、当該特定の部屋に予め設置された、無線LAN(Local Area Network)アクセスポイントやRFID(Radio Frequency Identification)リーダなどの装置が、センサ340として使われてもよい。
The
例えば、デバイス320は、無線LANの通信インタフェイスを有していてもよい。その場合、デバイス320が特定の環境にあるか否かは、当該特定の環境に設置された無線LANアクセスポイントを介して検出可能である。
For example, the
同様に、デバイス320はRFID回路を含んでいてもよい。その場合、デバイス320が特定の環境にあるか否かは、当該特定の環境に設置されたRFIDリーダを介して検出可能である。
Similarly,
あるいは、センサ340は、端末310に内蔵されていてもよい。例えば、端末310にGPS(Global Positioning System)センサ内蔵されている場合、当該GPSセンサがセンサ340として使われてもよい。GPSセンサのほかにも、高度センサなど他の種類のセンサが使われてもよい。
Alternatively, the
例えば、近傍のデバイス320を端末310が検出したときに、端末310に内蔵されたGPSセンサが、端末310の緯度と経度を検出してもよい。検出された緯度と経度は、デバイス320の緯度と経度でもある、と見なせる。よって、上記の「特定の環境」が緯度と経度の所定の範囲で表される場合、端末310が近傍にデバイス320を検出したときにGPSセンサが検出した緯度と経度は、デバイス320が特定の環境にあるか否かを示す。
For example, when the terminal 310 detects a
または、センサ340は、デバイス320に内蔵されていてもよい。例えば、センサ340は、デバイス320に内蔵されているGPSセンサであってもよい。デバイス320に内蔵されているGPSセンサが検出する緯度と経度は、デバイス320が特定の環境にあるか否かを示すことが可能な情報の例である。
Alternatively, the
なお、以下ではデバイス320が存在する環境を「コンテキスト」ともいう。
さて、端末310とデバイス320とサーバ330のさらなる詳細は、後ほど図14を参照して説明することにして、先に図13の動作シーケンスについて説明する。
Hereinafter, an environment in which the
Now, further details of the terminal 310, the
図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
その後、ステップ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
デバイス320は、受信準備コマンドを受信すると、次にステップS508で端末310に応答を返す。ステップS508での応答は、具体的には、「OK」という意味を示す「200」というステータスコードを含むHTTP応答である。
Upon receiving the reception preparation command, the
デバイス320は、さらにステップS509で、サーバ330からサービスのデータを受信するための準備を行う。例えば、デバイス320がサービスのデータを所定のTCP(Transmission Control Protocol)ポートで受信する場合は、ステップS509の受信準備は、上記の所定のTCPポートを開放する(すなわち上記の所定のTCPポートを「LISTEN」状態に設定する)処理を含んでもよい。
In step S509, the
デバイス320は、受信の準備を終えると、次に、ステップS510aに示すように、サーバ330に通知を送る。以下では説明の便宜上、ステップS510aの通知を「受信開始通知」という。受信開始通知は、デバイス320がサービスのデータを受信可能なことをサーバ330に知らせるための通知である。
When the
受信開始通知は、サービスのインストール先であるデバイス320のアドレスを明示的にペイロードに含んでもよい。または、サーバ330は、受信開始通知の送信元アドレスを、デバイス320のアドレスとして認識してもよい。
The reception start notification may explicitly include the address of the
以下では、サービスのインストール先を示す情報として、受信開始通知には、デバイス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
ところで、ステップ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
ステップ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
第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
具体的には、センサ340がデバイス320を検出した場合、ステップS511aのように、センサ340は、センサ値とデバイス320のデバイスIDをサーバ330に通知する。なおここで、センサ値とは、デバイス320が検出された環境を判別するための情報である。また、デバイスIDとは、デバイス320を識別する識別情報である。
Specifically, when the
例えば、センサ340が所定の場所に固定的に設置されている場合、サーバ330は、センサ340の識別情報とセンサ340の設置場所を対応づけるデータベースを有していてもよい。すると、センサ340の識別情報から、サーバ330は、デバイス320が検出された環境(すなわちセンサ340の固定的な設置場所)を判別することができる。したがって、センサ値としてセンサ340の識別情報が利用可能である。
For example, when the
あるいは、センサ340が端末310またはデバイス320に内蔵されているGPSセンサである場合、GPSセンサの出力する緯度と経度が、センサ値として利用可能である。
Alternatively, when the
また、デバイスIDは、例えば、デバイス320のIP(Internet Protocol)アドレスであってもよいし、デバイス320のUUIDであってもよいし、両者の組み合わせであってもよい。
The device ID may be, for example, the IP (Internet Protocol) address of the
以上のステップS511aのようにセンサ340がセンサ値とデバイスIDをサーバ330に通知する代わりに、ステップS511bのように、端末310がサーバ330に対して、デバイス320へサービスのデータを送信するよう要求してもよい。
Instead of the
例えば、場合によっては、実際のセンサ値が得られない環境もあるかもしれない。また、ユーザは、「実際のセンサ値と関係なく、デバイス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
よって、端末310は、ステップS511bのようにサーバ330に要求を送信してもよい。また、ステップS511bの要求には、特定の環境を指定する情報(後述のコンテキスト情報)と、インストール先のデバイス320を識別する識別情報が含まれる。例えば、端末310は、いくつかの環境を選択肢として含むリストをユーザに提示してもよく、端末310は、ユーザからの入力に基づいて、ユーザの選択した環境を指定する情報を要求に含めてもよい。
Therefore, the terminal 310 may transmit a request to the
そして、ステップ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
すると、デバイス320はサービスのデータを受信する。サービスのデータは、具体的には、サービスのプログラムとサービス定義ファイルのデータを含む。よって、デバイス320は、ステップS513で、受信により取得したプログラムをデバイス320自身にインストールする。インストールの結果、デバイス320は、新規サービスを提供することができるようになる。また、デバイス320は、デバイス定義ファイルを更新し、サービス定義ファイルを更新または追加する。
Then, the
さらに、次のステップS514でデバイス320は、図1のステップS112と同様にして、GENAにより、サービス追加・更新イベントの発生を通知する。
また、図13には示されていないが、上記のようにしてデバイス320が新規サービスの提供を開始した後、端末310および端末350は、新規サービスを利用することができる。インストールされた新規サービスを利用するための方法は、第1実施形態と同様である。
Further, in the next step S514, the
Although not shown in FIG. 13, after the
ところで、第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
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
図4に示したサービス更新サービスのサービス定義ファイル151の19〜26行目には、図13のステップS507の受信準備コマンドに相当する、「Listen」という名前のアクションが定義されている。このアクションは2つの入力引数をとる。
In the 19th to 26th lines of the
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
2番目の引数は、「setListeningFlag」という名前であり、サーバ330からのサービスのデータの受信が可能な状態にデバイス320を設定するか否かを表す。また、この「setListeningFlag」という引数は、後述の「Listening」という状態変数と関係しており、具体的には、デバイス320におけるサービス更新サービス322は、「setListeningFlag」という引数に指定された値を「Listening」という状態変数に代入する。
The second argument is the name “setListeningFlag”, and represents whether or not the
さて、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
また、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
続いて、図14を参照して、端末310とデバイス320とサーバ330の詳細について説明する。
図14に示すように、端末310には、UPnPコントローラ311が実装されている。UPnPコントローラ311は、サービス更新サービスに対して制御メッセージ(つまりコマンド)を与える機能を有する、UPnPのコントローラである。図13に示した端末310の動作(ただしステップS511bの要求の送信を除く)は、具体的にはUPnPコントローラ311により実行される。
Next, details of the terminal 310, the
As shown in FIG. 14, the terminal 310 is equipped with a
また、端末310はステップS511bのような要求を送信する要求部312をさらに有していてもよい。要求部312は、ステップS511bの要求で指定する環境をユーザに指定させるための処理も行う。しかし、要求部312は省略されていてもよい。
In addition, the terminal 310 may further include a
また、デバイス320は、UPnPサービス提供部321を含む。UPnPサービス提供部321は、サービス更新サービス322を提供する。図13のステップS513は、具体的にはサービス更新サービス322により行われる。
The
なお、図14には、ステップS513でインストールされる新規サービス323が破線で示されている。新規サービス323のプログラムのインストール後には、UPnPサービス提供部321は、新規サービス323も提供することが可能である。また、UPnPコントローラ311は、サービス更新サービス322に対して制御メッセージを与える機能だけでなく、新規サービス323に対して制御メッセージを与える機能を有していてもよい。
In FIG. 14, the
デバイス320はさらに受信部324を含む。受信部324は、サーバ330から新規サービス323のデータを受信するのを待ち、データを受信すると、サービス更新サービス322に受信を通知する。
具体的には、図13のステップS507の受信準備コマンドに応じて、サービス更新サービス322が受信部324を起動し、ステップS309で受信部324が受信準備を行ってもよい。そして、ステップS512で新規サービス323のデータが受信されると、受信部324がサービス更新サービス322に受信を通知してもよい。サービス更新サービス322は、受信部324からの通知に応じて、受信部324が受信したデータを使ってステップS513でインストールを実行してもよい。
Specifically, the
さて、サーバ330は、格納部331を有する。格納部331には、新規サービス323を提供するためのプログラムである新規サービスプログラム332が、新規サービス323を識別する情報と対応づけられて、格納されている。新規サービスプログラム332は、図13のステップS512で送信され、ステップS513でデバイス320にインストールされる。
Now, the
なお、簡単化のため、図14には1つの新規サービスプログラム332のみが示されているが、格納部331は、複数のサービスそれぞれのプログラムを、当該サービスを識別する情報と対応づけて格納していてもよい。つまり、格納部331は、様々なサービスを提供するための各種プログラムのレポジトリであってもよい。
For simplification, only one
また、あるOSにしたがって動作するデバイスが新規サービス323を提供するためのプログラムと、別のOSにしたがって動作する別のデバイスが、同じ新規サービス323を提供するためのプログラムは、異なる場合がある。そのため、格納部331は、新規サービス323を識別する情報だけでなく、OSを表す情報とも対応づけて、新規サービスプログラム332を格納しているものとする。
In addition, a program for a device operating according to one OS to provide the
さて、サーバ330は、図13のステップS511aでセンサ340から送信されるセンサ値から、デバイス320のコンテキスト(すなわちデバイス320の存在する環境)を抽出するコンテキスト抽出部333をさらに有する。コンテキスト抽出部333は、例えば、所定の場所に設置されたセンサ340(例えば無線LANアクセスポイントやRFIDリーダなど)の識別情報と、センサ340の設置場所を対応づけるデータベースを使って、センサ値からコンテキストを抽出してもよい。また、コンテキスト抽出部333は、地図データを使って、センサ値としての緯度と経度から、コンテキストを抽出してもよい。
The
なお、コンテキストの粒度は実施形態に応じて任意である。例えば、「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
サーバ330はさらに、デバイス320に送信する対象のサービスを決定するサービス決定部334を含む。
なお、図13のステップS511bのように要求部312から要求が送信される場合、サービス決定部334が要求を受信する。そして、サービス決定部334は、受信した要求から、コンテキスト情報を抽出する。逆に、図13のステップS511aのようにセンサ値が送信される場合、サービス決定部334は、コンテキスト抽出部333から、コンテキスト情報を取得する。
The
When a request is transmitted from the
いずれにせよ、サービス決定部334は、コンテキストに基づいてサービスを決定する。その際、サービス決定部334は、条件テーブル335を参照することで、コンテキストに対応するサービスを決定する。
In any case, the
図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
ここで、再度図14の説明に戻ると、サーバ330はさらに、受信準備の整ったデバイス320についての情報を管理するデバイス管理部336を有する。デバイス管理部336は、具体的には、デバイステーブル337を用いて、デバイス320についての情報を管理する。
Here, returning to the description of FIG. 14 again, the
図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
図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
ここで、再度図14の説明に戻ると、サーバ330はさらに送信部338を有する。送信部338は、サービス決定部334の決定にしたがって、格納部331から適宜の新規サービスプログラム332を読み出して、新規サービスプログラム332をデバイス320に送信する。
Here, returning to the description of FIG. 14 again, the
ところで、図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
図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
In step S <b> 601, the
いずれにしても、受信開始通知は、ステップS510aとS510bに関して説明したとおり、サービスのインストール先であるデバイス320の、IPアドレスとUUIDを含む。
In any case, the reception start notification includes the IP address and UUID of the
なお、デバイス320のIPアドレスが変化する場合もあり得る。例えば、DHCP(Dynamic Host Configuration Protocol)によってIPアドレスが割り当てられているデバイス320が再起動すると、再起動の前後でデバイス320のIPアドレスは変化するかもしれない。再起動したデバイス320は、サーバ330に新たなIPアドレスを通知するために受信開始通知を再び送信してもよい。
Note that the IP address of the
また、ある1台のデバイス320が、複数台の端末310から、何らかの間隔を置いて、受信準備コマンドを受信することもあり得る。その場合、複数の受信準備コマンドに対応して、同じデバイス320から、複数の受信開始通知をサーバ330が受信することになる。
In addition, a
そこで、デバイス管理部336は、端末310またはデバイス320から受信開始通知を受信すると、次のステップS602で、受信開始通知によって通知されたUUIDと同じUUIDが格納されたエントリがデバイステーブル337に存在するか否かを判断する。もしそのようなエントリがデバイステーブル337にあれば、処理はステップS603に移行する。逆に、そのようなエントリがデバイステーブル337になければ、処理はステップS604に移行する。
Therefore, when the
ステップS603でデバイス管理部336は、ステップS602で見つけた当該エントリのIPアドレスとOSのフィールドを、受信開始通知により通知されたIPアドレスとOSの値で上書きする。そして、図17の処理は終了する。
In step S603, the
また、ステップS604でデバイス管理部336は、受信開始通知により通知されたIPアドレスとUUIDとOSの値を格納する新規エントリを、デバイステーブル337に追加する。そして、図17の処理は終了する。
In step S604, the
図18は、図13のステップS511aのようなセンサ340からの通知に応じて、サーバ330が行う処理のフローチャートである。なお、ステップS511bのような要求に応じてサーバ330が新規サービスプログラム332を送信する場合については、上記の図13〜14についての説明から明らかなので、フローチャートを省略する。
FIG. 18 is a flowchart of processing performed by the
さて、ステップS701でコンテキスト抽出部333が、センサ340から、図13のステップS511aのように、センサ値とデバイスIDを受信する。デバイスIDは、具体的には、IPアドレスまたはUUIDである。
In step S701, the
次に、ステップS702でコンテキスト抽出部333が、通知されたセンサ値からコンテキスト情報を生成する。なお、コンテキスト情報とは、コンテキストを表す情報である。例えば、コンテキストが「会議室」のような文字列で表される場合は、コンテキスト情報は文字列であるが、もちろん、コンテキスト情報の形式は任意であり、コード番号などが使われてもよい。図14に関して説明したように、例えば、センサ340の識別情報とセンサ340の設置位置を対応づけるデータベース、地図データ、ルールデータベースなどの適宜の情報を利用することで、コンテキスト抽出部333はコンテキスト情報を生成することができる。そして、コンテキスト抽出部333は、生成したコンテキスト情報をサービス決定部334に通知する。
Next, in step S702, the
また、ステップS703でコンテキスト抽出部333は、センサ340から通知されたデバイスIDをデバイス管理部336に通知する。そして、デバイス管理部336は、通知されたデバイスIDがUUIDとIPアドレスのどちらなのかを判断する。
In step S703, the
通知されたデバイス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
また、ステップS705でデバイス管理部336は、通知されたIPアドレスがIPアドレスのフィールドに記憶されているエントリが、デバイステーブル337にあるか否かを判断する。もしそのようなエントリがなければ、図18の処理は終了する。逆に、通知されたIPアドレスがIPアドレスのフィールドに記憶されているエントリが見つかれば、デバイス管理部336は、見つけたエントリをサービス決定部334に通知し、処理はステップS706に移行する。
In step S705, the
ステップS706でサービス決定部334は、ステップS702でコンテキスト抽出部333から通知されたコンテキスト情報と合致するエントリが条件テーブル335にあるか否かを判断する。例えば、コンテキスト抽出部333が「事務所」というコンテキスト情報をサービス決定部334に通知した場合、サービス決定部334は、コンテキストのフィールドに「事務所」と記憶されているエントリを条件テーブル335において探す。
In step S706, the
もし、通知されたコンテキスト情報と合致するエントリが条件テーブル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
最後に、ステップS708で送信部338は、サービス決定部334から宛先として通知されたデバイス320に対し、サービス決定部334から通知されたサービスのデータを送信する。より具体的には、送信部338は、サービス決定部334から通知されたサービスとOSに基づいて、格納部331から送信対象のデータ(つまり新規サービスプログラム332と、新規サービス323のサービス定義ファイルを含むデータ)を読み出す。そして、送信部338は、通知されたIPアドレスを宛先として、読み出したデータを送信する。ステップS708の送信は、図13のステップS512の送信に対応する。
Finally, in step S708, the
なお、ステップ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
さて、ステップS801でデバイス320のサービス更新サービス322は、端末310(より具体的にはUPnPコントローラ311)から、図13のステップS507の受信準備コマンドを受信する。図示は省略したが、ステップS801で受信される受信準備コマンドは、具体的にはSOAPコマンドである。
In step S801, the
図4のサービス定義ファイル151の19〜26行目に定義されているように、受信準備コマンドは、具体的には「Listen」というアクションであり、「srgSrverUri」と「setListeningFlag」という2つの引数が与えられる。「srgSrverUri」という引数には、サーバ330のURIが指定される。また、受信準備をデバイス320に行わせるために、「setListeningFlag」という引数は真に設定される。
As defined in the 19th to 26th lines of the
サービス更新サービス322は、受信準備コマンドを受信すると、図13のステップS508のとおり、HTTP応答を返す。なお、サービス更新サービス322は、サービス更新サービス322の「Listening」という状態変数の値を、「setListeningFlag」という引数に指定された値(すなわち真)に更新する。
When receiving the reception preparation command, the
そして、ステップS802でサービス更新サービス322は、受信部324を起動する。その際、サービス更新サービス322は、受信部324に対して、デバイス320自身のUUIDと、サーバ330のアドレス(つまり、受信準備コマンドで引数に指定されていたサーバ330のURI)を通知する。起動された受信部324は、サーバ330からデータを受信するための適宜の処理を行う。例えば、受信部324は、所定のTCPポートを開放してもよい。ステップS802は図13のステップS509の受信準備に対応する。
In step S <b> 802, the
また、ステップS803で受信部324は、デバイス320のIPアドレスと、デバイス320のUUIDと、デバイス320のOSを、サーバ330のデバイス管理部336に通知する。ステップS803の通知は、図13のステップS510aの受信開始通知である。
In step S <b> 803, the
そして、ステップS803での受信開始通知の送信後、デバイス320は、ステップS804に示すように、受信部324がサーバ330からサービスのデータ(つまり新規サービスプログラム332を含むデータ)を受信するまで待つ。ステップS804での待機は、図13において、デバイス320がステップS510aの送信の後、ステップS512での受信まで待つことに対応する。
After transmitting the reception start notification in step S803, the
そして、受信部324がサーバ330からサービスのデータを受信すると、ステップS805で受信部324は、受信したデータをサービス更新サービス322に通知する。
すると、ステップS806でサービス更新サービス322は、受信部324から通知されたデータに基づいて、以下の3つの処理を行う。
When the
In step S806, the
第1に、サービス更新サービス322は、デバイス320のデバイス定義ファイルを更新する。
第2に、サービス更新サービス322は、新規サービス323のサービス定義ファイルを追加または更新する。つまり、新規サービス323が今までデバイス320に存在していなかった全く新しいサービスである場合は、サービス更新サービス322は、新たなサービス定義ファイルを作成して保存する。また、新規サービス323が、デバイス320にインストール済みの既存のサービスの新規バージョンである場合は、サービス更新サービス322は、当該既存のサービスのサービス定義ファイルを更新する。
第3に、サービス更新サービス322は、受信した新規サービスプログラム332をデバイス320にインストールする。
First, the
Second, the
Third, the
そして、次のステップS807で、サービス更新サービス322は、図4の43行目に示す「UpdateTime」という状態変数の値を現在時刻に更新する。ステップS806〜S807は、図13のステップS513に対応する。
In the next step S807, the
最後に、ステップS808でサービス更新サービス322は、GENAにより、デバイス320の周辺の端末(例えば、図13では端末310と端末350)に対して、ステップS807で更新した「UpdateTime」という状態変数の値を通知する。ステップS808は図13のステップS514に対応する。
Finally, in step S808, the
以上説明した第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
さらに、第3実施形態によれば、デバイス320は、コンテキストに応じて、コンテキストに適したサービスを提供することができる。よって、端末310(または端末350)は、デバイス320がコンテキストに応じて提供することが可能となったサービスを利用することができる。
Furthermore, according to the third embodiment, the
続いて、第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
端末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
サーバ430は、ネットワーク(例えばインターネット)を介した通信が可能なコンピュータである。サーバ430は、少なくとも端末410と通信可能である。また、後述するとおり、第4実施形態では、ある種の通知が、センサ440からサーバ430に送信されてもよく、端末410からサーバ430に送信されてもよい。センサ440が通知を送信する場合は、サーバ430は、センサ440とも通信可能なように構成される。
The
センサ440は、1種の検出装置である。具体的には、端末410が特定の環境に存在する場合に、センサ440は、端末410が特定の環境に存在することを示す検出通知を送信する。なお、第3実施形態に関する説明と同様に、第4実施形態に関する説明においても、環境のことを「コンテキスト」ともいう。
The
例えば、センサ440は、特定の環境に予め設置された無線LANアクセスポイントやRFIDリーダなどの装置であってもよい。あるいは、センサ440は、端末410に内蔵されたGPSセンサなどのセンサであってもよい。
For example, the
さて、端末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
Steps S901 to S906 in FIG. 20 are the same as steps S301 to S306 in FIG. Therefore, although a 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, the
Thereafter, in step S907, the terminal 410 makes preparations for receiving from the
端末410は、受信の準備を終えると、次のステップS908で、サーバ430に通知を送る。以下では説明の便宜上、ステップS908の通知のことも「受信開始通知」という。第4実施形態における受信開始通知は、端末410がコントローラのデータを受信可能なことをサーバ430に知らせるための通知である。
After completing the preparation for reception, the terminal 410 sends a notification to the
受信開始通知は、コントローラのインストール先である端末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
以下では、コントローラのインストール先を示す情報として、受信開始通知には、端末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
例えば、センサ440が所定の場所に固定的に設置されている場合、センサ440は、端末410を検出すると、ステップS909aのように、センサ値と端末410の端末IDをサーバ430に送信する。この場合、センサ値は、センサ440の識別情報であってもよい。サーバ430は、センサ440の識別情報とセンサ440の設置場所を対応づけるデータベースを参照することで、端末410が検出された環境(すなわちセンサ440の固定的な設置場所)を判別することができる。
For example, when the
あるいは、センサ440が端末410に内蔵されている場合、センサ440は、定期的に、または不定期に、ステップS909aのように、センサ値と端末410の端末IDをサーバ430に送信する。この場合、センサ値は、例えば、緯度と経度の組み合わせである。サーバ430は、地図データを参照することで、端末410の存在する環境を判別することができる。図20の例では、ステップS909aで通知されたセンサ値が、「端末410は特定の環境に存在している」と示す値であったものとする。
Alternatively, when the
なお、端末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
例えば、場合によっては、実際のセンサ値が得られない環境もあるかもしれない。また、ユーザは、「実際のセンサ値と関係なく、端末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
よって、端末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
具体的には、ステップS909aの通知を受信した場合、サーバ430は、センサ値に基づいて端末410のコンテキストを判別する。あるいは、ステップS909bの要求を受信した場合、サーバ430は、コンテキストを指定する情報を要求から抽出する。いずれにせよ、サーバ430は、コンテキストを表す情報を取得する。
Specifically, when the notification in step S909a is received, the
また、サーバ430は、ステップS908の受信開始通知の内容を記憶している。よって、サーバ430は、ステップS909aで通知されたデバイスIDを用いて、記憶している受信開始通知の内容を検索することにより、当該デバイスIDで識別される端末410からかつて受信開始通知により通知されたサービスの識別情報を取得する。そして、サーバ430は、コンテキストと、サービスの識別情報に基づいて、端末410に送信する対象の適宜のコントローラを選択し、選択したコントローラのプログラムをステップS910で送信する。
In addition, the
すると、端末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
ところで、第4実施形態においても、第2実施形態と同様に、コントローラ更新サービス412がUPnPのサービスとして実装されるので、端末410はデバイス定義ファイルとサービス定義ファイルを記憶している。第4実施形態の端末410のデバイス定義ファイルは、例えば、図10のデバイス定義ファイル240と同様であってもよい。
By the way, in the fourth embodiment, as in the second embodiment, the
また、第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
この「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
続いて、図21を参照して、端末410とデバイス420とサーバ430の詳細について説明する。
図21に示すように、端末410にはUPnP制御部411が含まれる。UPnP制御部411は、1つ以上のコントローラを含むことができるが、例えば図20のステップS901の時点では、UPnP制御部411は、1つもコントローラを含んでいなくてもよい。
Next, details of the terminal 410, the
As shown in FIG. 21, the terminal 410 includes a
また、端末410は、UPnPのサービスを利用するためのコントローラを動的に追加または更新するための、コントローラ更新サービス412を提供する。図20のステップS901の探索、ステップS902の応答の受信、ステップS903の要求、ステップS904の受信、ステップS905の要求、およびステップS906の受信は、具体的には、コントローラ更新サービス412により実行される。また、ステップS911のインストールも、コントローラ更新サービス412により実行される。
Also, the terminal 410 provides a
なお、全く新たなコントローラを追加することも、既存のコントローラを新たなバージョンのコントローラに更新することも、コントローラのプログラムのインストールにより同様に実現される。したがって、以下ではコントローラの追加と更新を区別しないことがある。 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
端末410はさらに受信部413を含む。受信部413は、サーバ430からのデータ受信を待ち、データを受信すると、コントローラ更新サービス412に受信を通知する。
具体的には、図20のステップS906の後、コントローラ更新サービス412が受信部413を起動し、ステップS907で受信部413が受信準備を行ってもよい。また、ステップS908の受信開始通知は、受信部413から送信されてもよい。受信部413は、ステップS910でコントローラのプログラムを受信すると、コントローラ更新サービス412に受信を通知する。すると、コントローラ更新サービス412がステップS911でコントローラのプログラムを端末410にインストールする。
Specifically, after step S906 of FIG. 20, the
端末410は、さらに、図20のステップS909bのような要求を送信する要求部414を有していてもよい。要求部414は、ステップS909bの要求で指定する環境をユーザに指定させるための処理も行う。しかし、要求部414は省略されてもよい。
The terminal 410 may further include a
なお、図21には、ステップS911でインストールされる新規コントローラ415が破線で示されている。
また、デバイス420は、UPnPサービス提供部421を含む。UPnPサービス提供部421は、サービス222を提供する。サービス222は、具体的には、新規コントローラ415を介して利用されるサービスである。換言すれば、サービス222と対応づけられた特定の環境に端末410が入ることをきっかけとして、端末410には新規コントローラ415がインストールされる。
In FIG. 21, the
The
さて、サーバ430は格納部431を有する。格納部431には、サービス422に対応する新規コントローラ415を実現するためのプログラムである新規コントローラプログラム432が格納されている。新規コントローラプログラム432は、図20のステップS910で送信され、ステップS911で端末410にインストールされる。インストールの結果として、端末410は、新規コントローラ415を介してサービス222を利用することができるようになる。
Now, the
なお、簡単化のため図21には1つの新規コントローラプログラム432のみが示されている。しかし、格納部431は、複数のサービスに対応する複数のコントローラそれぞれのプログラムを格納していてもよい。
For simplification, only one
また、あるOSにしたがって動作する端末が新規コントローラ415を実現するためのプログラムと、別のOSにしたがって動作する別の端末が、同じ新規コントローラ415を実現するためのプログラムは、異なる場合がある。そのため、格納部431は、具体的には、サービス422を識別する情報とOSを表す情報の双方と対応づけて、新規コントローラプログラム432を格納しているものとする。
In addition, a program for realizing a
さて、サーバ430は、図20のステップS909aで送信されるセンサ値から、端末410のコンテキスト(すなわち端末410の存在する環境)を抽出するコンテキスト抽出部433をさらに有する。コンテキスト抽出部433の詳細は、第3実施形態のコンテキスト抽出部333と同様なので、詳しい説明は省略する。第4実施形態のコンテキスト抽出部433も、実施形態に応じた適宜の粒度のコンテキストを抽出することができる。
Now, the
サーバ430はさらに、端末410に送信する対象のコントローラを決定するコントローラ決定部434を含む。
なお、図20のステップS909bのように要求部414から要求が送信される場合、コントローラ決定部434が要求を受信する。そして、コントローラ決定部434は、受信した要求から、コンテキスト情報を抽出する。逆に、図20のステップS909aのようにセンサ値が送信される場合、コントローラ決定部434は、コンテキスト抽出部433から、コンテキスト情報を取得する。
The
Note that when a request is transmitted from the
いずれにせよ、コントローラ決定部434は、コンテキストに基づいてコントローラを決定する。その際、コントローラ決定部434は、条件テーブル435を参照することで、コンテキストと指定されたサービスの組み合わせに対応するコントローラを決定する。
In any case, the
図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
ここで、再度図21の説明に戻ると、サーバ430はさらに、受信準備の整った端末410についての情報を管理する端末管理部436を有する。端末管理部436は、具体的には、端末テーブル437を用いて、端末410についての情報を管理する。
Here, returning to the description of FIG. 21 again, the
図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
図21には1台の端末410と1台のデバイス420しか図示されていないが、システム400は複数の端末410と複数のデバイス420を含んでいてもよい。よって、端末管理部436は、ある1台の端末410(より具体的には受信部413)から図20のステップS908のように受信開始通知を受信するたびに、端末テーブル437にエントリを追加するか、または既存のエントリを更新する。
Although only one
ここで、再度図21の説明に戻ると、サーバ430はさらに送信部438を有する。送信部438は、コントローラ決定部434の決定にしたがって、格納部431から適宜の新規コントローラプログラム432を読み出して、新規コントローラプログラム432を端末410に送信する。
Here, returning to the description of FIG. 21 again, the
ところで、図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
図24は、端末410からの受信開始通知に応じて、サーバ430が行う処理のフローチャートである。
ステップS1001でサーバ430の端末管理部436は、端末410から、受信開始通知を受信する。より具体的には、図20のステップS908のように、端末管理部436は、端末410の受信部413から受信開始通知を受信する。
FIG. 24 is a flowchart of processing performed by the
In step S <b> 1001, the
なお、受信開始通知は、ステップ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
そこで、端末管理部436は、端末410から受信開始通知を受信すると、次のステップS1002で、受信開始通知によって通知されたUUIDと同じUUIDが格納されたエントリが端末テーブル437に存在するか否かを判断する。もしそのようなエントリが端末テーブル437にあれば、処理はステップS1003に移行する。逆に、そのようなエントリが端末テーブル437になければ、処理はステップS1004に移行する。
Therefore, when receiving a reception start notification from the terminal 410, the
ステップS1003で端末管理部436は、ステップS1002で見つけた当該エントリのIPアドレスとOSとサービスのフィールドを、受信開始通知により通知されたIPアドレスとOSとサービスの値で上書きする。そして、図24の処理は終了する。
In step S1003, the
また、ステップS1004で端末管理部436は、受信開始通知により通知されたIPアドレスとUUIDとOSとサービスの値を格納する新規エントリを、端末テーブル437に追加する。そして、図24の処理は終了する。
In step S1004, the
図25は、図20のステップS909aのようなセンサ440からの通知に応じて、サーバ430が行う処理のフローチャートである。なお、ステップS909bのような要求に応じてサーバ430が新規コントローラプログラム432を送信する場合については、上記の図20〜21についての説明から明らかなので、フローチャートを省略する。
FIG. 25 is a flowchart of processing performed by the
さて、ステップS1101でコンテキスト抽出部433が、センサ440から、図20のステップS909aのように、センサ値と端末IDを受信する。端末IDは、具体的には、IPアドレスまたはUUIDである。
In step S1101, the
次に、ステップS1002でコンテキスト抽出部433が、通知されたセンサ値からコンテキスト情報を生成する。ステップS1002におけるコンテキスト情報の生成方法の詳細は、図18のステップS702と同様である。そして、コンテキスト抽出部433は、生成したコンテキスト情報をコントローラ決定部434に通知する。
Next, in step S1002, the
また、ステップS1103でコンテキスト抽出部433は、センサ440から通知された端末IDを端末管理部436に通知する。そして、端末管理部436は、通知された端末IDがUUIDとIPアドレスのどちらなのかを判断する。
In step S <b> 1103, the
通知された端末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
また、ステップS1105で端末管理部436は、通知されたIPアドレスがIPアドレスのフィールドに記憶されているエントリが、端末テーブル437にあるか否かを判断する。もしそのようなエントリがなければ、図25の処理は終了する。逆に、通知されたIPアドレスがIPアドレスのフィールドに記憶されているエントリが見つかれば、端末管理部436は、見つけたエントリをコントローラ決定部434に通知し、処理はステップS1106に移行する。
In step S1105, the
ステップS1106でコントローラ決定部434は、下記2つの情報の組み合わせと合致するエントリが条件テーブル435にあるか否かを判断する。
In step S1106, the
・ステップS1102でコンテキスト抽出部433から通知されたコンテキスト情報。
・ステップS1104またはS1105で見つかったエントリ(つまり端末管理部436から通知されたエントリ)のサービス。
Context information notified from the
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
例えば以上のようにして、ステップ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
最後に、ステップS1108で送信部438は、コントローラ決定部434から宛先として通知された端末410に対し、コントローラ決定部434から通知されたコントローラのデータを送信する。より具体的には、送信部438は、コントローラ決定部434から通知されたコントローラとOSに基づいて、格納部431から送信対象のデータ(つまり新規コントローラプログラム432を含むデータ)を読み出す。そして、送信部438は、通知されたIPアドレスを宛先として、読み出したデータを送信する。ステップS1108の送信は、図20のステップS910の送信に対応する。
Finally, in step S1108, the
なお、ステップ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
さて、ステップS1201でコントローラ更新サービス412が、図20のステップS901のようなM-searchメッセージのマルチキャストにより、端末410の周辺にあるデバイスのUPnPサービスを検索する。第2実施形態に関して「対象サービス」が何らかの方法により決められているものと仮定したのと同様に、第4実施形態でも、ステップS1201で検索する対象のサービスが何らかの方法により決められているものとする。
In step S1201, the
もし、例えばデバイス420のように、対象サービスを提供するデバイスがあれば、コントローラ更新サービス412は図20のステップS902のような応答を受信する。この場合、コントローラ更新サービス412はさらに、図20のステップS903〜S906のようにして、対象サービスを提供するデバイスのデバイス定義ファイルと、対象サービスのサービス定義ファイルを取得する。
If there is a device that provides the target service, for example, the
次に、ステップS1202でコントローラ更新サービス412は、ステップS1201で検索したUPnPサービスを提供するデバイスが発見されたか否かを判断する。
ステップS1201でのM-searchメッセージの送信から所定の時間が経過しても、ステップS902のような応答が1つも受信されない場合、コントローラ更新サービス412は、「対象サービスを提供するデバイスは発見されなかった」と判断する。そして、図26の処理も終了する。
In step S1202, the
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
逆に、ステップ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
ステップS1203でコントローラ更新サービス412は、受信部413を起動する。その際、コントローラ更新サービス412は受信部413に対して、端末410自身のUUIDと、ステップS1201で発見したサービスと、サーバ430のアドレス(例えばURI)を通知する。起動された受信部413は、サーバ430からデータを受信するための適宜の処理を行う。例えば、受信部413は、所定のTCPポートを開放してもよい。ステップS1203は図20のステップS907の受信準備に対応する。
In step S1203, the
また、ステップS1204で受信部413は、端末410のIPアドレスと、端末410のUUIDと、端末410のOSと、ステップS1201で発見されたサービスを、サーバ430の端末管理部436に通知する。ステップS1204の通知は、図20のステップS908の受信開始通知である。
In step S1204, the
そして、ステップ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
そして、受信部413がサーバ430から新規コントローラプログラム432を受信すると、ステップS1206で受信部413は、受信した新規コントローラプログラム432をコントローラ更新サービス412に通知する。
When the receiving
すると、ステップS1207でコントローラ更新サービス412は、受信部413から通知された新規コントローラプログラム432を端末410にインストールする。その結果、UPnP制御部411は、サービス422を利用するための新規コントローラ415が存在する状態となる。したがって、端末410のユーザは、端末410からサービス422を利用することが可能となる。
In step S <b> 1207, the
以上説明した第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
続いて、第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
端末510と端末520は、通信機能と、UPnPのサービス提供機能と、UPnPのコントローラ機能を有し、製造工場からの出荷後にソフトウェアをインストールすることが可能な端末であれば、どのような種類の端末であってもよい。また、端末550は、通信機能と、UPnPのコントローラ機能を有する端末であれば、どのような種類の端末であってもよい。
Any type of
端末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実施形態に関する説明においても、環境のことを「コンテキスト」ともいう。
The
センサ540は、特定の環境に予め設置された、無線LANアクセスポイントやRFIDリーダなどの装置であってもよい。この場合、センサ540は、一緒に移動する端末510と端末520の少なくとも一方を検出したときに、上記の検出通知を送信してもよい。
The
あるいは、センサ540は、端末510と端末520のどちらかに内蔵されたGPSセンサであってもよい。また、端末510と端末520の双方に内蔵されたGPSセンサが、それぞれセンサ540として利用されてもよい。例えば、GPSセンサは、定期的に、または不定期に、緯度と経度を送信してもよい。端末510と端末520が特定の環境に存在する場合、緯度と経度は特定の値を持つので、上記のようにしてGPSセンサが送信する緯度と経度は、検出通知の1種として利用可能である。
Alternatively, the
さて、端末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
The terminal 510 and the
具体的には、ステップ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
端末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
なお、ステップ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
受信準備コマンドは、サーバ530のアドレスを含み、端末520に対してサーバ530のアドレスを通知する役目も果たす。また、第5実施形態における受信準備コマンドも、具体的にはSOAPコマンドの形式で送信される。
The reception preparation command includes the address of the
端末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
さらに、ステップS1309で端末520は、サーバ530からサービスまたはコントローラのデータを受信するための準備を行う。例えば、ステップS1309の受信準備は、所定のTCPポートを開放する処理を含んでもよい。また、端末510も同様に、ステップS1310で受信準備を行う。
In
さらに、端末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
なお、以下のステップS1312a〜S1317bに例示するように、ペアを組んだ端末510と端末520の一方にやがてサービスがインストールされ、他方にコントローラがインストールされる。
As illustrated in the following steps S1312a to S1317b, the service is installed in one of the paired
また、ペアを組んだ端末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
さて、第5実施形態では、第3〜第4実施形態と同様に、ステップS1311で受信開始通知が送信された後、サービスとコントローラのデータがすぐにサーバ530から送信されるとは限らない。サーバ530は、ステップS1312aまたはS1312bのようなトリガを検出してはじめて、サービスとコントローラのデータを送信する。
In the fifth embodiment, the service and controller data are not always transmitted from the
例えば、センサ540が所定の場所に固定的に設置されている場合、センサ540は、端末510または端末520を検出すると、ステップS1312aのように、センサ値と、検出した端末の端末IDとをサーバ530に送信する。この場合、センサ値は、センサ540の識別情報であってもよい。サーバ530は、センサ540の識別情報とセンサ540の設置場所を対応づけるデータベースを参照することで、端末510または端末520が検出された環境(すなわちセンサ540の固定的な設置場所)を判別することができる。
For example, when the
あるいは、センサ540が端末510に内蔵されている場合、センサ540は、定期的に、または不定期に、ステップS1312aのように、センサ値と端末510の端末IDをサーバ530に送信する。同様に、センサ540が端末520に内蔵されている場合、センサ540は、定期的に、または不定期に、ステップS1312aのように、センサ値と端末520の端末IDをサーバ530に送信する。
Alternatively, when the
例えばセンサ値が緯度と経度の組み合わせである場合、サーバ530は、地図データを参照することにより、センサ540を内蔵する端末の存在する環境を判別することができる。なお、上記のとおり、第5実施形態では端末510と端末520が一緒に移動するものとする。つまり端末510と端末520は同じ環境にあるものとする。
For example, when the sensor value is a combination of latitude and longitude, the
センサ540の種類が何であれ、図27の例では、ステップS1312aで通知されたセンサ値が、「端末510と端末520が特定の環境に存在している」と示す値であったものとする。また、端末IDは、端末のIPアドレスでもよいし、端末のUUIDでもよいし、両者の組み合わせでもよい。
Whatever the type of
なお、ステップS1312aのようにセンサ540が通知を送信する代わりに、ステップS1312bのように、端末510がセンサ540に対して、「端末510と端末520の一方にサービスのデータを送信し、他方にコントローラを送信せよ」と要求してもよい。
Note that instead of the
例えば、場合によっては、実際のセンサ値が得られない環境もあるかもしれない。また、ユーザは、「実際のセンサ値と関係なく、端末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
なお、図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
具体的には、ステップS1313aでサーバ530は、コンテキストに応じたコントローラのデータ(具体的にはコントローラのプログラムを含むデータ)を端末510に送信する。すると、次のステップS1314aで端末510は、コントローラを端末510自身にインストールする。
Specifically, in step S1313a,
また、ステップS1315aでサーバ530は、上記コントローラに対応するサービスのデータ(具体的にはサービスのプログラムとサービス定義ファイルを含むデータ)を端末520に送信する。すると、次のステップS1316aで端末520は、サービスを端末520自身にインストールする。さらに、ステップS1317aで端末520は、図1のステップS112と同様にして、GENAにより、サービス追加・更新イベントを通知する。図27の例では、端末510と端末550にサービス追加・更新イベントが通知される。
In step S1315a, the
なお、ステップ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
以上のステップ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
また、ステップS1316bでサーバ530は、上記サービスに対応するコントローラのデータを端末520に送信する。すると、次のステップS1317bで端末520は、コントローラを端末520自身にインストールする。
In step S1316b, the
なお、ステップ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
続いて、図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
As illustrated in FIG. 28, the terminal 510 includes a
また、端末510はUPnPサービス提供部513を有し、端末520はUPnPサービス提供部523を有する。UPnPサービス提供部513は、既存サービス514を提供していてもよく、提供していなくてもよい。同様に、UPnPサービス提供部523は、既存サービス524を提供していてもよく、提供していなくてもよい。
The terminal 510 includes a UPnP
また、UPnPサービス提供部513は更新サービス515を提供し、UPnPサービス提供部523は更新サービス525を提供する。更新サービス515と525は、UPnPのサービスとコントローラのどちらのプログラムが指定された場合にも、指定されたプログラムをインストールすることのできる、UPnPのサービスである。また、更新サービス515と525は、さらに、指定されたサービスまたはコントローラをアンインストールする機能を備えていてもよい。
The UPnP
さらに、端末510は受信部516を有する。受信部516は、サーバ530から新規サービス518のデータまたは新規コントローラ519のデータを受信するのを待ち、データを受信すると、更新サービス515に受信を通知する。
Further, the terminal 510 has a receiving
同様に、端末520は受信部526を有する。受信部526は、サーバ530から新規サービス528のデータまたは新規コントローラ529のデータを受信するのを待ち、データを受信すると、更新サービス525に受信を通知する。
Similarly, the terminal 520 includes a receiving
なお、端末510は、図27のステップS1312bのような要求を送信する要求部517を有していてもよい。要求部517は、ステップS1312bの要求に指定する環境をユーザに指定させるための処理も行う。端末520も、要求部517と同様の要求部527を有していてもよい。しかし、要求部517と要求部527はなくてもよい。
Note that the terminal 510 may include a
図28に示す端末510と端末520の各部と図27との関係は次のとおりである。
例えば、更新サービス515は、図27のステップS1301の探索、ステップS1302の応答の受信、ステップS1303の要求、ステップS1304の受信、ステップS1305の要求、およびステップS1306の受信を行う。実施形態によっては、以上のステップS1301〜S1306の更新サービス515の動作を、既存コントローラ512が代わりに行ってもよい。
The relationship between each part of
For example, the
そして、ステップ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
さらに、更新サービス525は、ステップS1308で応答を送信し、受信部526を起動する。そして、受信部526がステップS1309の受信準備を行う。
また、ステップS1308の応答は更新サービス515により受信される。そして、更新サービス515は受信部516を起動し、受信部516がステップS1310の受信準備を行う。また、受信部516は、ステップS1311で受信開始通知を送信する。
Further, the
Further, the response in step S1308 is received by the
なお、上記のように、ステップS1312bで要求部517が要求を送信してもよい。
その後は、状況に応じて、ステップS1313aで受信部516が新規コントローラ519のデータを受信し、ステップS1314aで更新サービス515が新規コントローラ519のインストールを実行する場合もある。または、ステップS1313bで受信部516が新規サービス518のデータを受信し、ステップS1314bで更新サービス515が新規サービス518のインストールを実行し、ステップS1315bで更新サービス515が通知を送信する場合もある。
As described above, the
Thereafter, depending on the situation, the receiving
端末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
さて、サーバ530は、格納部531を有する。格納部531には、新規サービス518または528を提供するためのプログラムである新規サービスプログラム532と、新規コントローラ519または529を提供するためのプログラムである新規コントローラプログラム533が、格納されている。
Now, the
なお、簡単化のため、図28には1つの新規サービスプログラム532と1つの新規コントローラプログラム533のみが図示されている。しかし、格納部531は、複数のサービスそれぞれのプログラムと、それら複数のサービスに対応する複数のコントローラそれぞれのプログラムを格納していてもよい。格納部531は、例えば、サービスを識別する情報と対応づけて、当該サービスのプログラムと、当該サービスを利用するためのコントローラのプログラムとを格納していてもよい。
For simplification, only one
また、プログラムはOSに依存することがある。そのため、格納部531は、サービスを識別する情報だけでなく、OSを表す情報とも対応づけて、新規サービスプログラム532および新規コントローラプログラム533を格納していてもよい。
Also, the program may depend on the OS. Therefore, the
さて、サーバ530は、図27のステップS1312aでセンサ540から送信されるセンサ値から、コンテキストを抽出するコンテキスト抽出部534をさらに有する。コンテキスト抽出部534の詳細は、第3実施形態のコンテキスト抽出部333と同様なので、詳しい説明は省略する。第5実施形態のコンテキスト抽出部534も、実施形態に応じた適宜の粒度のコンテキストを抽出することができる。
Now, the
サーバ530はさらに決定部535を有する。決定部535は、送信対象のサービスと送信対象のコントローラを決定する。また、決定部535は、端末510と端末520のどちらにサービスを送信するか(換言すれば、端末510と端末520のどちらにコントローラを送信するか)も決定する。決定部535は、具体的には、条件テーブル536を参照することで、決定を下す。
The
図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
すると、決定部535は、センサ540からサーバ530に通知された端末IDから、端末510と端末520のペアを認識し、端末510と端末520の種別を認識する。そして、決定部535は、「会議室」というコンテキストと、「スマートフォン」という種別と、「タブレット端末」という種別の組み合わせに合致するエントリを条件テーブル536において検索する。なお、端末510の種別がサービス提供端末の種別に合致し、端末520の種別がコントローラ端末の種別に合致する場合と、逆に、端末510の種別がコントローラ端末の種別に合致し、端末520の種別がサービス提供端末の種別に合致する場合があり得る。検索の結果、図29の例では、1番目のエントリが見つかる。したがって、決定部535は、見つかった1番目のエントリに基づいて、次のように決定する。
Then, the
・端末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
図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
端末テーブル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
さて次に、図31を参照して、サービスとコントローラ双方の更新機能を持つ更新サービス525がインストールされた端末520に関するデバイス定義ファイルの例について説明する。
Now, an example of a device definition file related to the terminal 520 in which the
図31のデバイス定義ファイル560は、新規サービス528のインストールにともなって更新されたデバイス定義ファイルの例である。より具体的には、図31の例においては、新規サービス528は、ドキュメント表示サービスである。
A
図31のデバイス定義ファイル560は、図3のデバイス定義ファイル150と類似である。具体的には、デバイス定義ファイル560の5〜9行目には、端末520全体に関する情報が記載されており、10〜25行目には、端末520が提供するサービスのリストが記載されている。
The
図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
以上のようなデバイス定義ファイル560が、図27のステップS1304で端末520から端末510に送信される。また、図示は省略するが、更新サービス515がインストールされた端末510のデバイス定義ファイルも、図31のデバイス定義ファイル560と同様である。
The
次に、図32を参照して、更新サービス525のサービス定義ファイルについて説明する。更新サービス525のサービス定義ファイルは、例えば、図32のサービス定義ファイル561のようなファイルであってもよい。サービス定義ファイル561は、以下のような定義を含む。
Next, the service definition file of the
・サービス更新サービス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
Definition of the action “DeleteService”, similar to the
Definition of the action “Listen”, similar to the
Definition of an action “UpdateController” similar to the
Definition of the action “DeleteController”, similar to the
Definition of the action “GetUpdateTime”, similar to the
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
もちろん、実施形態によっては別のサービス定義ファイルが使われてもよい。また、端末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
ところで、図27の処理は、サーバ530が図33〜37のフローチャートにしたがって動作し、端末510が図38〜39のフローチャートにしたがって動作し、端末520が図39のフローチャートにしたがって動作することにより、実現される。具体的には以下のとおりである。
27, the
図33〜35は、端末からの受信開始通知に応じてサーバ530が行う処理のフローチャートである。なお、サーバ530は、図27のステップS1311のように親端末からの受信開始通知を受信することがあるだけでなく、親端末または子端末の受信部から、受信開始通知と同様の形式の通知(以下では、当該通知も「受信開始通知」という)を受信することもある。
33 to 35 are flowcharts of processing performed by the
例えば、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
ここで、ある端末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
そこで、第5実施形態では、新たなペアが組まれた場合、サーバ530の端末管理部537は、古いペアの情報(すなわち端末テーブル538上の既存エントリ)を適宜更新または削除し、必要に応じて新規エントリを追加することで、情報の整合性を保つ。図33〜35の処理は、情報の整合性を保つための処理である。
Therefore, in the fifth embodiment, when a new pair is formed, the
具体的には、ある端末Xからの受信開始通知をサーバ530の端末管理部537が受信する場合としては、以下の12通りの場合(便宜上、「ケースA」〜「ケースL」という)があり得る。図33〜35の概要を明らかにするため、まず、ケースA〜Lについて説明する。なお以下のケースA〜Lの説明における「登録」とは、具体的には、端末テーブル538への登録である。
Specifically, the
ケース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
ケース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
ケース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
ケース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
ケース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
ケース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
ケース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
ケース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
ケース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
ケース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
ケース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
ケース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
以上のように端末管理部537は、ケースA〜Lに応じて、端末テーブル538を適宜書き換えることで、情報の整合性を保つ。具体的な処理手順は、以下のとおりである。
端末管理部537は、ステップS1401において、いずれかの端末(以下「端末X」とする)から受信開始通知を受信する。
As described above, the
In step S1401, the
すると、次にステップS1402で端末管理部537は、受信開始通知で通知された端末UUIDが「UUID」フィールドに格納されたエントリ(つまり端末Xに対応するエントリ)が端末テーブル538に存在するか否かを判断する。そして、エントリが見つかった場合(すなわちケースA〜Iのいずれか)、処理はステップS1403に移行する。逆に、エントリが見つからなかった場合(すなわちケースJ〜Lのいずれか)、処理は図35のステップS1419に移行する。
Then, in step S1402, the
ステップS1403で端末管理部537は、ステップS1402で見つかったエントリの「子端末UUID」フィールドと、受信開始通知により通知された子端末UUIDが同じか否かを判断する。両者の値が等しい場合(すなわちケースBまたはI)、処理はステップS1404に移行する。逆に、両者の値が異なる場合(すなわちケースAおよびC〜Hのうちのいずれか)、処理はステップS1407に移行する。
In step S1403, the
ステップS1404で端末管理部537は、受信開始通知により通知された子端末UUIDがNULLか否かを判断する。通知された子端末UUIDがNULLの場合(すなわちケースI)、処理はステップS1405に移行する。逆に、通知された子端末UUIDが非NULLの場合(すなわちケースB)、処理はステップS1406に移行する。
In step S1404, the
ところで、ステップ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
また、ステップS1406はケースBにおいて実行される。ステップS1406で端末管理部537は、端末テーブル538において、受信開始通知により通知された子端末UUIDが「UUID」フィールドに格納されているエントリを更新する。つまり、端末管理部537は、端末Xにとっての子端末C0に対応するエントリを更新する。
Step S1406 is executed in case B. In step S1406, the
具体的には、端末管理部537は、当該エントリの「IPアドレス」、「OS」、および「種別」の各フィールドを、受信開始通知により通知された子端末IPアドレス、子端末OS、および子端末種別の値で上書きする。そして、処理はステップS1405へと移行する。
Specifically, the
また、ステップS1407で端末管理部537は、ステップS1402で見つかったエントリ(つまり端末X自身に対応するエントリ)の「子端末UUID」フィールドがNULLか否かを判断する。「子端末UUID」フィールドがNULLの場合(すなわちケースF〜Hのいずれか)、処理はステップS1408に移行する。逆に、「子端末UUID」フィールドがNULLでない場合(すなわちケースAおよびC〜Eのうちのいずれか)、処理は図34のステップS1409に移行する。
In step S1407, the
ステップS1408で端末管理部537は、ステップS1402で見つかったエントリ(つまり端末X自身に対応するエントリ)の「UUID」フィールドと同じ値が「子端末UUID」フィールドに格納されているエントリを削除する。つまり、端末Xにとって今まで親として登録されていた端末P0に対応するエントリを、端末管理部537は削除する。そして、処理は図34のステップS1413に移行する。
In step S1408, the
さて、図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
そして、次のステップS1410で端末管理部537は、受信開始通知により通知された子端末UUIDがNULLか否かを判断する。通知された子端末UUIDがNULLの場合(すなわちケースE)、処理はステップS1411に移行する。逆に、通知された子端末UUIDがNULLでない場合(すなわちケースA、C、またはD)、処理はステップS1413に移行する。
In step S1410, the
ステップS1411で端末管理部537は、ステップS1402で見つかったエントリ(つまり端末X自身に対応するエントリ)の「子端末UUID」フィールドをNULLに書き換える。すなわち、端末管理部537は、端末Xが子を持たないという最新情報を記録する。
In step S1411, the
そして、次のステップS1412で端末管理部537は、ステップS1402で見つかったエントリ(つまり端末X自身に対応するエントリ)を更新する。具体的には、端末管理部537は、当該エントリの「IPアドレス」、「OS」、および「種別」の各フィールドを、受信開始通知により通知された端末IPアドレス、端末OS、および端末種別の値で上書きする。そして、図33〜35の処理は終了する。
In step S1412, the
さて、ステップ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
そして、次のステップS1414で端末管理部537は、受信開始通知により通知された子端末UUIDが「UUID」フィールドに格納されたエントリが端末テーブル538に存在するか否かを判断する。つまり、端末管理部537は、今回の端末Xからの受信開始通知により端末Xの子端末として通知された端末に対応するエントリが端末テーブル538に存在するか否かを判断する。
In step S1414, the
そして、エントリが見つからない場合(すなわちケース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
・「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
ステップS1417で端末管理部537は、ステップS1414で見つかったエントリの「子端末UUID」フィールドと同じ値が「UUID」フィールドに格納されているエントリを削除する。つまり、ケースAまたはFにおいて、今回端末Xが新たにペアを組んだ端末P1が今までペアを組んでいた端末C1に関するエントリを、端末管理部537は削除する。そして、処理はステップS1418へ移行する。
In step S1417, the
ところで、ステップ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
さて、図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
ステップS1420で端末管理部537は、ステップS1419で見つかったエントリ(つまりケースJの場合は端末P1に対応するエントリであり、ケースKの場合は端末C1に対応するエントリ)の「子端末UUID」フィールドがNULLか否かを判断する。そして、「子端末UUID」フィールドがNULLの場合(つまりケースK)、処理はステップS1421に移行する。逆に、「子端末UUID」フィールドがNULLでない場合(つまりケースJ)、処理はステップS1422に移行する。
In step S1420, the
ところで、ステップ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
さて、ステップ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
そして、次のステップS1423で端末管理部537は、ステップS1419で見つかったエントリの「子端末UUID」フィールドをNULLに更新する。換言すれば、端末管理部537は、ケースJにおける端末P1を、親端末の立場から子端末の立場へと、いわば変身させる。そして、処理はステップS1421に移行する。
In step S1423, the
さて、ステップS1424はケースLのとき実行される。ステップS1424で端末管理部537は、以下のような新規エントリを端末テーブル538に追加する。つまり、端末管理部537は、ケースLにおける未登録の端末Uについての新規エントリを作成する。
Step S1424 is executed for case L. In step S1424, the
・「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
・「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
さて、ステップS1501でコンテキスト抽出部534が、センサ540から、図27のステップS1312aのように、センサ値と端末IDを受信する。端末IDは、具体的には、IPアドレスまたはUUIDである。
In step S1501, the
次に、ステップS1502でコンテキスト抽出部534が、通知されたセンサ値からコンテキスト情報を生成する。ステップS1502におけるコンテキスト情報の生成方法の詳細は、図18のステップS702と同様である。そして、コンテキスト抽出部534は、生成したコンテキスト情報を決定部535に通知する。
Next, in step S1502, the
また、ステップS1503でコンテキスト抽出部534は、センサ540から通知された端末IDを端末管理部537に通知する。そして、端末管理部537は、通知された端末IDがUUIDとIPアドレスのどちらなのかを判断する。
In step S1503, the
通知された端末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
また、ステップS1505で端末管理部537は、通知されたIPアドレスがIPアドレスのフィールドに記憶されているエントリが端末テーブル538にあるか否かを判断する。もしそのようなエントリがなければ、図36〜37の処理は終了する。逆に、通知されたUUIDがUUIDのフィールドに記憶されているエントリが見つかれば、端末管理部537は、見つけたエントリを決定部535に通知し、処理はステップS1506に移行する。
In step S1505, the
ステップS1506で端末管理部537は、ステップS1504またはS1505で見つかったエントリの子端末UUIDのフィールドがNULLか否かを判断する。子端末UUIDのフィールドがNULLの場合、処理はステップS1507に移行する。逆に、子端末UUIDのフィールドがNULLでない場合、処理はステップS1508に移行する。
In step S1506, the
ステップS1507は、センサ540から通知された端末IDが、ある端末の子端末のIDである場合に実行される。ステップS1507で端末管理部537は、当該子端末の種別と、当該子端末の親である上記「ある端末」の種別を取得する。
Step S1507 is executed when the terminal ID notified from the
具体的には、端末管理部537は、ステップS1504またはS1505で見つかったエントリの種別の値を取得する。また、端末管理部537は、ステップS1504またはS1505で見つかったエントリのUUIDのフィールドの値が、子端末UUIDのフィールドに記憶されているエントリの、種別の値を取得する。
Specifically, the
そして、端末管理部537は、取得した2台の端末の種別の値を決定部535に通知する。また、端末管理部537は、2台の端末に対応する2つのエントリを決定部535に通知してもよい。そして、処理は図37のステップS1509に移行する。
Then, the
他方、ステップS1508は、センサ540から通知された端末IDが、ある端末の親端末のIDである場合に実行される。ステップS1508で端末管理部537は、当該親端末の種別と、当該親端末の子である上記「ある端末」の種別を取得する。
On the other hand, step S1508 is executed when the terminal ID notified from the
具体的には、端末管理部537は、ステップS1504またはS1505で見つかったエントリの種別の値を取得する。また、端末管理部537は、ステップS1504またはS1505で見つかったエントリの子端末UUIDのフィールドの値が、UUIDのフィールドに記憶されているエントリの、種別の値を取得する。
Specifically, the
そして、端末管理部537は、取得した2台の端末の種別の値を決定部535に通知する。また、端末管理部537は、2台の端末に対応する2つのエントリを決定部535に通知してもよい。そして、処理は図37のステップS1509に移行する。
Then, the
さて、図37のステップS1509で決定部535は、下記の情報の組み合わせと合致するエントリが条件テーブル536にあるか否かを判断する。
Now, in step S1509 of FIG. 37, the
・ステップS1502でコンテキスト抽出部534から通知されたコンテキスト情報。
・ステップS1507またはS1508で端末管理部537から通知された、2台の端末それぞれの種別。
Context information notified from the
The type of each of the two terminals notified from the
例えば、センサ540から通知された端末IDが、10.8.9.11というIPアドレスだったとする。この場合、図30の端末テーブル538の2番目のエントリがステップS1505で見つかる。
For example, it is assumed that the terminal ID notified from the
また、端末テーブル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
また、仮にセンサ540から通知された端末IDが10.8.9.10というIPアドレスだった場合も、ステップS1507ではなくステップS1508で種別の値が取得される点以外は上記と同様にして、条件テーブル536の1番目のエントリが見つかる。
Also, if the terminal ID notified from the
例えば以上のようにして、ステップ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
さらに、ステップS1511で決定部535は、ステップS1509において条件テーブル536で見つかったエントリの、コントローラ端末の種別のフィールドと種別の値が合致した方の端末を、コントローラの宛先として決定する。そして、決定部535は、当該端末のIPアドレス、UUID、およびOSの値を、端末テーブル538から取得し、取得した値を、コントローラの宛先の端末に関する情報として送信部539に通知する。また、決定部535は、ステップS1509において条件テーブル536で見つかったエントリのコントローラを、送信対象のコントローラとして送信部539に通知する。
Further, in step S1511, the
なお、ステップ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
最後に、ステップS1512で送信部539は、条件テーブル536からサービスとコントローラそれぞれの宛先として通知された端末に対し、サービスとコントローラそれぞれのデータを送信する。なお、送信部539は、決定部535から通知されたOSの値に応じて、適宜の新規サービスプログラム532と適宜の新規コントローラプログラム533を選んで送信する。ステップS1512の送信は、図27のステップS1313aとS1315aの送信に対応する場合もあるし、ステップS1313bとS1316bの送信に対応する場合もある。
Finally, in step S1512, the
なお、ステップ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
さて、ステップS1601で更新サービス515が、図27のステップS1301のようなM-searchメッセージのマルチキャストにより、端末510の周辺にある端末の更新サービスを検索する。
In step S1601, the
もし、端末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
次に、ステップS1602で更新サービス515は、ステップS1601で更新サービスを提供する端末が発見されたか否かを判断する。
ステップS1601でのM-searchメッセージの送信から所定の時間が経過しても、ステップS1302のような応答が1つも受信されない場合、更新サービス515は、「更新サービスを提供する他の端末は発見されなかった」と判断する。そして、図38の処理も終了する。
Next, in step S1602, the
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
逆に、ステップ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
さて、以下の説明では、ステップ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
In step S1603, the
そして、次のステップS1604で更新サービス515は、受信部516を起動する。その際、更新サービス515は、受信部516に対して、以下の情報を通知する。
In step S1604, the
・端末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
The address of the server 530 (eg URI).
起動された受信部516は、サーバ530からデータを受信するための適宜の処理(例えば、所定のTCPポートを開放する処理など)を行う。ステップS1604は図27のステップS1310の受信準備に対応する。
The activated receiving
また、ステップS1605で受信部516は、サーバ530の端末管理部537に対して、以下の情報を通知する。
In step S <b> 1605, the
・端末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
ステップ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
まず、ステップS1701で受信部516が、サーバ530からデータを受信する。そして、ステップS1702で受信部516は、受信したデータがサービスのデータなのかコントローラのデータなのかを判断する。サービスのデータ(つまり新規サービスプログラム532とサービス定義ファイルを含むデータ)が受信された場合、処理はステップS1703に移行する。逆に、コントローラのデータ(つまり新規コントローラプログラム533を含むデータ)が受信された場合、処理はステップS1707に移行する。
First, in step S <b> 1701, the receiving
ステップS1703で受信部516は、受信したサービスのデータを更新サービス515に通知する。
すると、ステップS1704で更新サービス515は、受信部516から通知されたデータを使って、以下の3つの処理を行う。
In step S1703, the
In step S1704, the
第1に、更新サービス515は、端末510のデバイス定義ファイルを更新する。
第2に、更新サービス515は、新規サービス518のサービス定義ファイルを追加または更新する。つまり、新規サービス518が今まで端末510に存在していなかった全く新しいサービスである場合は、更新サービス515は、新たなサービス定義ファイルを作成して保存する。また、新規サービス518が、端末510にインストール済みの既存のサービスの新規バージョンである場合は、更新サービス515は、当該既存のサービスのサービス定義ファイルを更新する。
第3に、更新サービス515は、受信した新規サービスプログラム532を端末510にインストールする。
First, the
Second, the
Third, the
そして、次のステップS1705で更新サービス515は、図32のサービス定義ファイル561で定義されている「UpdateTime」という状態変数の値を現在時刻に更新する。端末510が図39の処理を実行する場合、ステップS1704〜S1705は、図27のステップS1314bに対応する。
In step S1705, the
最後に、ステップS1706で更新サービス515は、GENAにより、端末510の周辺の端末(例えば、図27の例では、端末520と端末550)に対して、ステップS1705で更新した「UpdateTime」という状態変数の値を通知する。端末510が図39の処理を実行する場合、ステップS1706は、図27のステップS1315bに対応する。
Finally, in step S1706, the
他方、コントローラのデータが受信された場合、ステップ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
以上説明した第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
ところで、以上説明した第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
CPU601は、プログラムをRAM603にロードし、RAM603をワーキングエリアとしても使用しながら、プログラムを実行する。プログラムは、予めROM602または記憶装置607に記憶されていてもよい。記憶装置607は、例えばハードディスク装置であってもよい。
The CPU 601 loads the program into the
あるいは、プログラムは、プログラム提供者612により提供され、ネットワーク611と通信インタフェイス604を介して情報処理装置600にダウンロードされ、記憶装置607に記憶されてもよい。プログラム提供者612は、例えば、情報処理装置600以外の他の情報処理装置である。
Alternatively, the program may be provided by the
また、プログラムは、コンピュータ読み取り可能な可搬型の記憶媒体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
なお、図40には1つの通信インタフェイス604のみが図示されているが、情報処理装置600は、異なる複数の種類の通信インタフェイス604を有していてもよい。例えば、以下のようなものが通信インタフェイス604として利用可能である。
40 illustrates only one
・有線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
また、ROM602、RAM603、記憶装置607、および記憶媒体610は、いずれも、コンピュータ読み取り可能な記憶媒体の例である。これらのコンピュータ読み取り可能な記憶媒体は、有形の(tangible)記憶媒体であり、信号搬送波のような一時的な(transitory)媒体ではない。
The
ところで、第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
端末110のUPnPコントローラ111は、プログラムを実行するCPU601と、CPU601からの指示にしたがって通信を行う通信インタフェイス604により実現される。デバイス120のUPnPサービス提供部121も同様に、CPU601と通信インタフェイス604より実現される。
The
サービス管理装置130の格納部131は、サービス管理装置130の記憶装置607により実現される。なお、図2の格納部131の中には、簡単化のため、新規サービス123についてのデータとして、新規サービスプログラム132しか図示されていない。しかし、新規サービス123のサービス定義ファイルなども、格納部131には格納されている。他の実施形態に関する図でも同様に、格納部の中にはプログラムしか図示されていないが、格納部には、定義ファイルなどの他の情報も含むデータが格納されている。
The storage unit 131 of the
図3のデバイス定義ファイル150や図4のサービス定義ファイル151は、デバイス120の記憶装置607に格納されており、必要に応じてRAM603上に読み出される。端末110は、取得したデバイス定義ファイル150やサービス定義ファイル151を、RAM603上に保持してもよいし、必要に応じて記憶装置607に格納してもよい。
The
また、第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
端末210のUPnP制御部211とコントローラ更新サービス212は、いずれも、プログラムを実行するCPU601と、CPU601からの指示にしたがって通信を行う通信インタフェイス604により実現される。デバイス220のUPnPサービス提供部221も同様に、CPU601と通信インタフェイス604より実現される。また、コントローラ管理装置230のコントローラ決定部233も同様に、CPU601と通信インタフェイス604より実現される。
Both the
そして、コントローラ管理装置230の格納部231は、コントローラ管理装置230の記憶装置607により実現される。条件テーブル234は、コントローラ管理装置230の記憶装置607に予め格納されており、必要に応じてRAM603上に読み出される。図10のデバイス定義ファイル240や図11のサービス定義ファイル241は、端末210の記憶装置607に格納されており、必要に応じてRAM603上に読み出される。
The
また、第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
端末310のUPnPコントローラ311と要求部312は、いずれも、プログラムを実行するCPU601と、CPU601からの指示にしたがって通信を行う通信インタフェイス604により実現される。デバイス320のUPnPサービス提供部321と受信部324のそれぞれも、同様に、CPU601と通信インタフェイス604より実現される。サーバ330のコンテキスト抽出部333とサービス決定部334とデバイス管理部336と送信部338のそれぞれも、同様に、CPU601と通信インタフェイス604より実現される。
Both the
また、サーバ330の格納部331は、サーバ330の記憶装置607により実現される。条件テーブル335は、サーバ330の記憶装置607に予め格納されており、必要に応じてRAM603上に読み出される。デバイステーブル337は、RAM603上に作成され、記憶されていてもよい。
Further, the
そして、図3のデバイス定義ファイル150や図4のサービス定義ファイル151は、デバイス320の記憶装置607に格納されており、必要に応じてRAM603上に読み出される。端末310は、取得したデバイス定義ファイル150やサービス定義ファイル151を、RAM603上に保持してもよいし、必要に応じて記憶装置607に格納してもよい。
The
また、第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
端末410のUPnP制御部411とコントローラ更新サービス412と受信部413と要求部414は、いずれも、プログラムを実行するCPU601と、CPU601からの指示にしたがって通信を行う通信インタフェイス604により実現される。デバイス420のUPnPサービス提供部421も同様に、CPU601と通信インタフェイス604より実現される。サーバ430のコンテキスト抽出部433とコントローラ決定部434と端末管理部436と送信部438のそれぞれも、同様に、CPU601と通信インタフェイス604より実現される。
The
また、サーバ430の格納部431は、サーバ430の記憶装置607により実現される。条件テーブル435は、サーバ430の記憶装置607に予め格納されており、必要に応じてRAM603上に読み出される。端末テーブル437は、RAM603上に作成され、記憶されていてもよい。
The
そして、図10のデバイス定義ファイル240や図11のサービス定義ファイル241は、端末410の記憶装置607に格納されており、必要に応じてRAM603上に読み出される。
The
また、第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
端末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
また、サーバ530の格納部531は、サーバ530の記憶装置607により実現される。条件テーブル536は、サーバ530の記憶装置607に予め格納されており、必要に応じてRAM603上に読み出される。端末テーブル538は、RAM603上に作成され、記憶されていてもよい。
Further, the
そして、端末520に関する図31のデバイス定義ファイル550や図32のサービス定義ファイル551は、端末520の記憶装置607に格納されており、必要に応じてRAM603上に読み出される。端末510は、端末520からデバイス定義ファイル550やサービス定義ファイル551を取得した場合、取得したこれらのファイルを、RAM603上に保持してもよいし、必要に応じて記憶装置607に格納してもよい。
The
同様に、端末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
ところで、本発明は上記の第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
第2実施形態も同様に変形されてよい。例えば、コントローラ管理装置230は、同じ新規コントローラ213に対応する、複数のOS用の複数の新規コントローラプログラム232を、格納部231に格納していてもよい。そして、図7のステップS307の要求は、端末210のOSに関する情報を含んでいてもよい。コントローラ管理装置230は、通知されたOS用の新規コントローラプログラム232をステップS308で送信してもよい。
The second embodiment may be similarly modified. For example, the
また、いくつかの実施形態を組み合わせることも可能である。例えば、第1実施形態のサービス更新サービス122と、第3実施形態のサービス更新サービス322の機能を兼ね備えたサービス更新サービスが、デバイスに実装されてもよい。同様に、第2実施形態のコントローラ更新サービス212と、第4実施形態のコントローラ更新サービス412の機能を兼ね備えたコントローラ更新サービスが、端末に実装されてもよい。
It is also possible to combine several embodiments. For example, the
あるいは、第5実施形態の更新サービス515や525が、第1実施形態のサービス更新サービス122のようにコンテキストに依存せずにサービスを更新する機能をさらに有していてもよい。同様に、更新サービス515や525が、第2実施形態のコントローラ更新サービス212のようにコンテキストに依存せずにコントローラを更新する機能をさらに有していてもよい。
Alternatively, the
また、第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
ところで、図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
逆に、端末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
図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
なお、第5実施形態では、サーバ530の端末管理部537が2台の端末をペアとして管理する。よって、図27のステップS1302のような応答が複数得られた場合、端末510は、複数の端末520の中から1台を選択してステップS1303以降の処理を実行することが好ましい。
In the fifth embodiment, the
しかし、端末管理部537による端末の管理の仕方が変形された実施形態においては、端末510は、ステップS1302のような応答を返した複数の端末520のそれぞれに対してステップS1303以降の処理を実行してもよい。例えば、端末管理部537は、2台以上の端末を含む端末グループを管理してもよい。
However, in the embodiment in which the terminal management method by the
例えば、ステップ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
端末管理部537は、3台の端末を1つのグループとして管理してもよい。そして、決定部535は、ステップS1312aまたはS1312bの通知に応じて、同じグループに属する任意の2台の端末のペアのうち、通知されたコンテキストとの組み合わせが条件テーブル536のエントリと合致するペアを選んでもよい。
The
また、各実施形態において、サービスまたはコントローラのインストール前に、ユーザにインストールを承認してもらうための処理が行われてもよい。例えば、第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
また、上記の説明では、簡単化のため、エラー処理については省略したが、適宜のエラー処理がさらに行われてもよい。例えば、要求されたサービスまたはコントローラのデータがない場合にエラーメッセージを送信するなどの処理が行われてもよい。 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
そして、サービス更新サービス122は、受信したコマンドに応じて、削除対象として指定された新規サービス123をアンインストールしてもよい。あるいは、サービス更新サービス122は、デバイス定義ファイル150から、指定された新規サービス123に関する定義(例えば図3の18〜24行)を単に削除することで、新規サービス123を外部のコントローラから使用不能な状態にしてもよい。なお、サービス管理装置130が新規サービス123用のアンインストーラを格納していてもよく、サービス更新サービス122は、アンインストーラをサービス管理装置130に要求してもよい。
Then, the
もちろん、削除対象のサービスは、図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
Further, the
もちろん、削除対象のコントローラは、図8の新規コントローラ213に限らず、任意のコントローラでよい。また、削除のタイミングも任意である。
第3〜第5実施形態に関しても、同様に、明示的な命令に基づく、任意のタイミングでの、サービスまたはコントローラの削除が可能である。さらに、第3〜第5実施形態では、センサからの出力に基づく削除も可能である。
Of course, the controller to be deleted is not limited to the
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
なお、コンテキスト抽出部333による別の新たなコンテキスト(例えば「自宅」というコンテキスト)の検出は、暗黙的には「かつて検出されたコンテキスト(例えば「会議室」というコンテキスト)の環境から、デバイス320が出た」ということを示す。よって、このような新たなコンテキストの検出にともなって、サーバ330がサービスの削除をデバイス320に命じてもよい。
The detection of another new context (for example, the context “home”) by the
同様に、第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
以上のようなコンテキストの変化に応じた削除により、不要なプログラムが削除される。よって、端末やデバイスの記憶容量の無駄な使用が防止可能である。また、ある特定のコンテキスト以外では利用を禁止することが望ましいサービスが、他のコンテキストで利用されることを防ぐことも可能となる。 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のディスカバリプロトコルおよびディスクリプションプロトコルにしたがって探索する探索部。
・探索部がサービス更新サービスを検出すると、サービス更新サービスに対して、インストール関連通知を送信する通知部。
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
また、第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
また、第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
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
(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
(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
(Appendix 5)
The service according to any one of
(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
(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 9)
A program for a specific service of UPnP is installed in the terminal,
The terminal according to any one of
(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 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
(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
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
Claims (6)
前記特定のサービスを提供するデバイスが、前記端末に応答を返し、
前記端末が、前記応答により検出される前記特定のサービスに対して、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, the relative said particular service that is detected by the response, a notification related to installation on the device of a new program for providing a new service of UPnP, for receiving the new program to make ready, sends installation-related notification Ru the notification der prompting the device,
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 service specification information that specifies the new service, in response to receiving the detection notification, transmits the new program to the device ,
The device is said by operating according to the specific program for providing a particular service, the new program obtained obtains from the management unit after reception of the installation-related notifications to receive the new program Installed on the device,
The device provides the new service to the terminal by operating according to the installed new program.
Service providing way to characterized in that it comprises.
前記端末が、前記デバイスに含まれるかまたは他のコンピュータに含まれる管理部に対して、前記サービスを識別するサービス識別情報を通知し、
特定の環境に前記端末が存在しているときに、検出装置が、前記端末が前記特定の環境下にあることを示す検出通知を、前記管理部に送信し、
前記管理部は、前記サービスを含む複数のサービスそれぞれについて、当該サービスを識別するサービス識別情報および当該サービスが利用される環境と対応づけて、当該サービスを利用するための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,
When the said terminal to a particular environment is present, the detection device, a detection notification indicating that the terminal is under the particular circumstances, and transmitted to the management unit,
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 when the detection notification is received,
A specific controller program that is a program for realizing a specific UPnP controller for using the service, and stores the controller identification information notified from the terminal in association with the specific environment. Search for the specific controller program,
Sending the specific controller program found by the search to the terminal ;
The terminal receives the specific controller program;
The terminal installs the received specific controller program on the terminal,
The terminal operates in accordance with the particular controller programs installed, service usage control message for using the detected the service, characterized in that given to the detected the service.
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の新規サービスを提供するための新規プログラムの前記デバイスへのインストールに関わる通知であって、前記新規プログラムを受信するための準備を行うよう、前記デバイスに促す当該通知であるインストール関連通知を送信する端末と、A notification related to installation of a new program for providing a new service of UPnP for the specific service detected by the search and performing the search for the specific service, A terminal that sends an installation-related notification, which is the notification prompting the device to make preparations for receiving the program;
特定の環境に前記デバイスが存在しているとき、前記デバイスが前記特定の環境下にあることを示す検出通知を送信する検出装置と、A detection apparatus that transmits a detection notification indicating that the device is in the specific environment when the device exists in the specific environment;
前記新規サービスを指定するサービス指定情報および前記特定の環境と対応づけて前記新規プログラムを格納しており、前記検出通知の受信に応じて、前記新規プログラムを前記デバイスに送信する管理部と、A management unit that stores the new program in association with service specification information that specifies the new service and the specific environment, and that transmits the new program to the device in response to reception of the detection notification;
を備え、With
前記デバイスは、前記特定のサービスを提供するための特定のプログラムにしたがって動作することによって、前記インストール関連通知の受信の後に前記管理部から前記新規プログラムを受信して取得するとともに取得した前記新規プログラムを前記デバイスにインストールし、インストールした前記新規プログラムにしたがって動作することにより、前記新規サービスを前記端末に提供する、The device receives and acquires the new program from the management unit after receiving the installation-related notification by operating according to a specific program for providing the specific service, and the acquired new program Providing the new service to the terminal by operating in accordance with the installed new program.
ことを特徴とするシステム。A system characterized by that.
特定の環境に前記端末が存在しているときに、前記端末が前記特定の環境下にあることを示す検出通知を送信する検出装置と、
前記サービスを含む複数のサービスそれぞれについて、当該サービスを識別するサービス識別情報および当該サービスが利用される環境と対応づけて、当該サービスを利用するためのUPnPのコントローラのプログラムを格納しており、前記デバイスに含まれるかまたは他のコンピュータに含まれている管理部と、
を備え、
前記端末は、前記管理部に対して、検出した前記UPnPのサービスを識別するサービス識別情報を通知し、
前記管理部は、前記検出通知の受信を行い、前記検出通知を受信すると、前記サービスを利用するためのUPnPの特定のコントローラを実現するプログラムである特定のコントローラプログラムであって、前記端末から通知された前記サービス識別情報と前記特定の環境とに対応付けて格納している前記特定のコントローラプログラムを検索し、前記検索により見つけた前記特定のコントローラプログラムを前記端末に送信し、
前記端末は、前記特定のコントローラプログラムを受信し、受信した前記特定のコントローラプログラムを前記端末にインストールし、インストールした前記特定のコントローラプログラムにしたがって動作することにより、検出した前記サービスを利用するための制御メッセージを、検出した前記サービスに対して与える、
ことを特徴とするシステム。 A terminal that detects a UPnP service provided by a device and provides a control message for using the detected service to the detected service;
A detection device that transmits a detection notification indicating that the terminal is in the specific environment when the terminal exists in the specific environment;
For each of a plurality of services including the service, a UPnP controller program for using the service is stored in association with service identification information for identifying the service and an environment in which the service is used, A management unit included in the device or included in another computer;
With
The terminal notifies the management unit of service identification information for identifying the detected UPnP service,
The management unit receives the detection notification, and upon receiving the detection notification, the management unit is a specific controller program that is a program for realizing a specific controller of UPnP for using the service, and is notified from the terminal Searching for the specific controller program stored in association with the service identification information and the specific environment, and transmitting the specific controller program found by the search to the terminal,
The terminal receives the specific controller program, installs the received specific controller program on the terminal, and operates according to the installed specific controller program, thereby using the detected service Giving a control message to the detected service;
A system characterized by that.
前記第1の端末と前記第2の端末が特定の環境に入ると、前記第1の端末と前記第2の端末が前記特定の環境下にあることを示す検出通知を送信する検出装置と、A detection device that transmits a detection notification indicating that the first terminal and the second terminal are in the specific environment when the first terminal and the second terminal enter the specific environment;
1つ以上のUPnPのサービスのそれぞれについて、当該サービスと、当該サービスのインストール先の端末であるサービス提供端末の種類と、当該サービスを利用するためのコントローラと、当該コントローラのインストール先の端末であるコントローラ端末の種類と、当該サービスが利用される環境とを、互いに対応づける条件情報を格納している管理装置と、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 A management device that stores condition information that associates the type of controller terminal with the environment in which the service is used;
を備え、With
前記管理装置は、前記検出通知の受信を行い、前記検出通知を受信したときに、前記条件情報により前記特定の環境と対応づけられているサービス提供端末の種類が、前記第1の端末の前記種類と一致し、かつ、前記条件情報により前記特定の環境と対応づけられているコントローラ端末の種類が、前記第2の端末の前記種類と一致する第1の場合と、前記条件情報により前記特定の環境と対応づけられているサービス提供端末の種類が、前記第2の端末の前記種類と一致し、かつ、前記条件情報により前記特定の環境と対応づけられているコントローラ端末の種類が、前記第1の端末の前記種類と一致する第2の場合とのどちらであるかの判定を行い、The management device receives the detection notification, and when the detection notification is received, the type of service providing terminal associated with the specific environment by the condition information is the first terminal of the first terminal In the first case where the type of the controller terminal that matches the type and matches the specific environment by the condition information matches the type of the second terminal, and the specific information by the condition information The type of the service providing terminal associated with the environment is the same as the type of the second terminal, and the type of the controller terminal associated with the specific environment according to the condition information is Determine whether the second case matches the type of the first terminal,
前記判定により前記第1の場合であると判定された場合には、When it is determined that the first case is determined by the determination,
前記管理装置は、前記条件情報により前記特定の環境と対応づけられている特定のサービスを提供するための特定のサービスプログラムを前記第1の端末に送信するとともに、前記条件情報により前記特定の環境と対応づけられている特定のコントローラを実現するための特定のコントローラプログラムを前記第2の端末に送信し、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, and uses the specific information based on the condition information. A specific controller program for realizing a specific controller associated with the second controller is transmitted to the second terminal,
前記第1の端末は、前記更新サービスによる処理の一部として、前記特定のサービスプログラムの前記第1の端末へのインストールを実行し、The first terminal performs installation of the specific service program on the first terminal as part of processing by the update service;
前記第2の端末は、前記更新サービスによる処理の一部として、前記特定のコントローラプログラムの前記第2の端末へのインストールを実行し、The second terminal performs installation of the specific controller program on the second terminal as part of processing by the update service,
前記判定により前記第2の場合であると判定された場合には、If it is determined by the determination that the second case is present,
前記管理装置は、前記特定のサービスプログラムを前記第2の端末に送信するとともに、前記特定のコントローラプログラムを前記第1の端末に送信し、The management device transmits the specific service program to the second terminal, and transmits the specific controller program to the first terminal,
前記第1の端末は、前記更新サービスによる処理の一部として、前記特定のコントローラプログラムの前記第1の端末へのインストールを実行し、The first terminal performs installation of the specific controller program on the first terminal as part of processing by the update service,
前記第2の端末は、前記更新サービスによる処理の一部として、前記特定のサービスプログラムの前記第2の端末へのインストールを実行するThe second terminal executes installation of the specific service program on the second terminal as part of processing by the update service.
ことを特徴とするシステム。A system characterized by that.
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 JP2013137589A (en) | 2013-07-11 |
JP5821627B2 true 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) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3037962B1 (en) * | 2013-08-20 | 2020-09-16 | Fujitsu Limited | Information processing device, communication device, information processing method, and information processing program |
JPWO2015093192A1 (en) * | 2013-12-18 | 2017-03-16 | シャープ株式会社 | Controlled device, control device, and information device |
JP6305758B2 (en) * | 2013-12-25 | 2018-04-04 | 株式会社ミクシィ | MANAGEMENT SYSTEM, MANAGEMENT METHOD BY MANAGEMENT SYSTEM, MANAGEMENT DEVICE, MANAGEMENT DEVICE CONTROL METHOD, AND PROGRAM |
JP6654714B1 (en) * | 2019-01-15 | 2020-02-26 | レノボ・シンガポール・プライベート・リミテッド | Information processing apparatus and setup method |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100493883B1 (en) * | 2003-01-02 | 2005-06-10 | 삼성전자주식회사 | System and method for managing application |
US7428574B2 (en) * | 2004-01-06 | 2008-09-23 | Matsushita Electric Industrial Co., Ltd. | Device cooperation service system and electronic devices included in 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 |
JP4898269B2 (en) * | 2006-04-14 | 2012-03-14 | キヤノン株式会社 | Communication device and installation method thereof |
JP5056373B2 (en) * | 2007-11-22 | 2012-10-24 | ソニー株式会社 | Information processing apparatus and information processing method |
JP5173855B2 (en) * | 2009-01-09 | 2013-04-03 | 日本放送協会 | Network control device and computer program |
-
2011
- 2011-12-27 JP JP2011287033A patent/JP5821627B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2013137589A (en) | 2013-07-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6296813B2 (en) | Information processing terminal, information processing terminal control method, and program | |
US10007396B2 (en) | Method for executing program and electronic device thereof | |
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 | |
US9332061B2 (en) | Master device, integrated service management system, and integrated service management method | |
US20180152811A1 (en) | Beacon addressing | |
JP6821674B2 (en) | Methods and mobile devices for locking and unlocking mobile devices with touch screen | |
KR101995260B1 (en) | Method and system for providing app service | |
US20140195663A1 (en) | Method and System for Providing Cloud-Based Common Distribution Applications | |
KR101307476B1 (en) | Contents sharing service method and system using location-based | |
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 | |
JP2014120177A (en) | System and method of controlling surrounding devices, based on topology | |
US20190095261A1 (en) | Software resource management | |
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 | |
JP7434485B2 (en) | Information processing terminal, control method, and operating system | |
JP6010577B2 (en) | Application management terminal, application management method, application management terminal program | |
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 | Written amendment |
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 |