(57)【特許請求の範囲】
【請求項１】
通信可能な他の通信装置が提供するBluetoothのプロファイルで定めるサービスに接続するためのサービス情報を記憶するサービス情報記憶手段と、
前記サービス情報記憶手段に記憶したサービス情報に従って、通信可能な他の通信装置が提供するサービスをBluetoothのプロファイルで定める他のサービスに変換するサービス変換手段と、
前記サービス変換手段で変換されるサービスに対して、サービスを行う必要があるか否かを判断し、サービスを行う必要がないと判断されるサービスを除いたサービスについて、自身が提供するサービスであると他の通信装置に認識させるためのサービス情報を生成するサービス情報生成手段と、を備えることを特徴とするサービス提供装置。
【請求項２】
前記サービス情報生成手段は、実際にサービスを行う他の通信装置の識別名称と、サービス種別と、通信チャネル番号と、サービス名とを含むサービス情報を生成することを特徴とする請求項１に記載のサービス提供装置。
【請求項３】
前記サービス情報生成手段は、サービスの変換内容を特定する情報を含むサービス情報を生成することを特徴とする請求項２に記載のサービス提供装置。
【請求項４】
前記他の通信装置とは異なる通信装置との間の通信で、Bluetoothとは異なる通信を行うための通信手段を備えることを特徴とする請求項１乃至３のいずれかに記載のサービス提供装置。
【請求項５】
前記サービス情報生成手段に対してサービス情報の生成を指示する指示手段をさらに備えることを特徴とする請求項１及至４のいずれかに記載のサービス提供装置。
【請求項６】
複数の通信装置に対してサービスを提供するサーバとの間で通信を行い、該サーバからサービスを受信する通信手段を備え、
前記サービス情報記憶手段は、前記サーバから提供されたサービスに関するサービス情報を記憶することを特徴とする請求項１及至５のいずれかに記載のサービス提供装置。
【請求項７】
前記サービス変換手段は、他の通信装置のそれぞれが提供する少なくとも１以上のサービスのすべてを提供可能な単一のBluetoothのプロファイルで定めるサービスに変換することを特徴とする請求項１及至６のいずれかに記載のサービス提供装置。
【請求項８】
前記サービス変換手段は、複数の他の通信装置それぞれが提供する少なくとも１以上のサービスを組み合わせて、これらサービスのいずれとも異なるBluetoothのプロファイルで定める新たなサービスに変換することを特徴とする請求項１及至７のいずれかに記載のサービス提供装置。
【請求項９】
前記サービス変換手段は、他の通信装置が提供するサービスをBluetoothのプロファイルで定める複数のサービスに変換することを特徴とする請求項１及至７のいずれかに記載のサービス提供装置。
【請求項１０】
通信可能な他の通信装置が提供するBluetoothのプロファイルで定めるサービスに接続するためのサービス情報を記憶するステップと、
前記記憶されたサービス情報に従って、通信可能な他の通信装置が提供するサービスをBluetoothのプロファイルで定める他のサービスに変換するステップと、
前記変換されるサービスに対して、サービスを行う必要があるか否かを判断し、サービスを行う必要がないと判断されるサービスを除いたサービスについて、自身が提供するサービスであると他の通信装置に認識させるためのサービス情報を生成するステップと、を実行させることを特徴とするサービス提供プログラム。
【請求項１１】
通信可能な他の通信装置が提供するBluetoothのプロファイルで定めるサービスに接続するためのサービス情報を記憶し、前記記憶されたサービス情報に従って、通信可能な他の通信装置が提供するサービスをBluetoothのプロファイルで定める他のサービスに変換し、
前記変換されるサービスに対して、サービスを行う必要があるか否かを判断し、サービスを行う必要がないと判断されるサービスを除いたサービスについて、自身が提供するサービスであると他の通信装置に認識させるためのサービス情報を生成するステップと、を実行させることを特徴とするサービス提供方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、無線通信により各種サービスを提供可能なサービス提供装置、サービス提供プログラム及びサービス提供方法に関する。
【０００２】
【従来の技術】
Bluetooth（TM） SIG(Special Interest Group)によって規格化されているBluetoothと呼ばれる無線通信方式の仕様（http://www.Bluetooth.org/より取得可能）では、無線デバイス、通信プロトコル、アプリケーションモデルまでを規定している。アプリケーションモデルの仕様はプロファイルと呼ばれている。プロファイルの例としては、ファイル転送方法を規定したFile Transfer Profile、電子名刺情報の交換方法を規定した Object Push Profile、写真電子画像の交換方法を規定した Basic Imaging Profile、プリントアウトする電子情報をプリンタに送信する方法を規定した Basic Printing Profileなどがある。
【０００３】
Bluetooth機器がデータ交換を行う場合、まず、周囲に存在するBluetooth機器の発見処理を行う。発見処理により、周囲に存在する機器のデバイスアドレスを取得することができる。Bluetooth機器は、周辺機器を発見すると、周辺機器からサービス情報の取得を行う。サービス情報とは、その機器が提供可能なサービス、すなわち、その機器がサポートしているプロファイル情報であり、そのサービスに接続するためのパラメータが含まれている。
【０００４】
Bluetooth機器は、周辺機器を発見し、サービス情報の取得を行った結果、自装置がサポートしているプロファイルと同一のプロファイルをサポートしていることが判明した機器に接続して情報交換を行うことができる。
【０００５】
Bluetooth機器は、相手機器と接続するために先に述べたサービス情報の取得という処理が重要であるが、この処理は SDP (Service Discovery Protocol) としてBluetooth  SIGにより規定されている。SDPによる処理は周辺機器と接続するための非常に重要な手順であり、SDPの処理や相手機器に提供するサービス情報を工夫することで、周辺機器との接続を制御することができる。サービス情報の取得や交換に関する発明のうち、とくにBluetoothに関連するものとしては、特許文献１及び２に記載されている。
【０００６】
【特許文献１】
特開2002-196990公報
【特許文献２】
特開2002-99473公報
【０００７】
【発明が解決しようとする課題】
Bluetoothは、相互接続性を重視する観点から、複数のプロファイルを規定しているが、その弊害として共通のプロファイルをサポートしていない機器同士で接続しても、データの交換を行えないという問題がある。
【０００８】
また、Bluetooth 機器間であれば、同一のプロファイルを使用する限り、相互にデータの交換を行えるが、例えばイーサネット（登録商標）を介してLAN に接続された機器のように、Bluetooth 以外のインタフェースを有する機器は一般に Bluetooth のプロファイルをサポートしていないため、これらの機器と Bluetooth 機器との間でデータの交換を行うことは不可能である。
【０００９】
この問題を解決するために、異なるプロファイルを持ち、相互に直接データを交換することが不可能な複数のBluetooth機器間、またはBluetooth機器と例えばイーサネットのようにBluetooth以外のインタフェースをもった機器との間に介在し、各機器が有するサービスを自由に相互利用可能とする装置
を提供することを目的とする。
【００１０】
本発明は、このような点に鑑みてなされたものであり、その目的は、通信インタフェースの異なる他の通信装置が提供するサービスをあたかも自己のサービスのように見せかけるようにしたサービス提供装置、サービス提供プログラム及びサービス提供方法を提供することにある。
【００１１】
本発明の一態様によれば、通信可能な他の通信装置が提供するBluetoothのプロファイルで定めるサービスに接続するためのサービス情報を記憶するサービス情報記憶手段と、
前記サービス情報記憶手段に記憶したサービス情報に従って、通信可能な他の通信装置が提供するサービスをBluetoothのプロファイルで定める他のサービスに変換するサービス変換手段と、
前記サービス変換手段で変換されるサービスに対して、サービスを行う必要があるか否かを判断し、サービスを行う必要がないと判断されるサービスを除いたサービスについて、自身が提供するサービスであると他の通信装置に認識させるためのサービス情報を生成するサービス情報生成手段と、を備えることを特徴とするサービス提供装置が提供される。
【００１２】
【発明の実施の形態】
以下、本発明に係るサービス提供装置について、図面を参照しながら具体的に説明する。
【００１３】
(第１の実施形態）
図１は本発明に係るサービス提供装置の第１の実施形態の概略構成を示すブロック図である。図１のサービス提供装置は、他の通信装置との間でBluetoothの通信プロトコルで近距離無線通信を行う。より具体的には、サービス提供装置は、File Transfer Profile（以後、FTPと表記）、Object Push Profile（以後、OPPと表記）、Basic Imaging Profile（以後、BIPと表記）、Basic Printing Profile（以後、BPPと表記）の４つのサービスをサポートしており、それぞれに対応したデータの送受信を行う。
【００１４】
図１のサービス提供装置は、自装置と通信可能な周辺機器が提供するサービス情報を記憶する周辺機器管理部１００と、周辺機器が提供するサービスを別種類のサービスに変換するサービス変換部３００と、周辺機器が提供するサービスを自装置が提供するサービスとして見せかけるためのサービス情報を生成するサービス情報生成部２００と、周辺機器との間でBluetoothの規格で近距離無線通信を行うための通信制御を行うBluetooth管理部９００とを備えている。
【００１５】
Bluetooth管理部９００は、Bluetoothプロトコルスタックとして、SDP(Service Discovery Protocol)とOBEX(Object Exchange Protocol)をサポートする。Bluetooth管理部９００の内部には、SDPの処理を行うSDP処理部９０１と、SDPデータベース９０２と、OBEXの処理を行うOBEX処理部９０３とが設けられている。
【００１６】
なお、図１では、本発明の特徴的な部分以外の構成要素（例えばＣＰＵ等）は省略している。
【００１７】
周辺機器管理部１００は、Bluetooth管理部９００を利用してBluetoothの機器発見処理とサービス発見処理を行い、周辺機器がFTP,OPP,BIP,BPPをサポートしていた場合は、それらの全サービス情報を取得して記憶する。サービス情報生成部２００は、周辺機器管理部１００の記憶したサービス情報に基づいて、自装置の提供するサービス情報を生成し、Bluetooth 管理部に登録する。
【００１８】
Bluetoothで互いに通信を行う周辺機器（Bluetooth機器）は、各々が提供可能なサービスをサービスレコードとして各機器内のデータベースに登録しており、相手機器からサービス取得要求を受けた場合にサービスレコード情報を提供する。先に述べたサービス発見処理とは、周辺機器に対してサービス取得要求を送り、相手が有するサービスレコードに記載されている情報を取得することを示している。図１では、サービスレコードを登録するデータベースをSDPデータベース９０２と表記している。
【００１９】
図２は、図１のサービス提供装置１と周辺機器１１，１２，１３との通信の様子を示す図である。機器１１，１２，１３はいずれもBluetooth機器であり、機器１１はFTPとOPPをサポートしたＰＣ、機器１２はBIPをサポートしたデジタルカメラ、機器１３はBPPをサポートしたプリンタであるとする。
【００２０】
図１の周辺機器管理部１００は、機器発見処理とサービス発見処理を行い、発見した機器情報を内部に記憶する。図２の場合、周辺機器管理部１００は内部に図３に示すサービス情報テーブルを作成する。図３のサービス情報テーブルは、機器名とその機器が有するサービス名（プロファイル名）と、各サービスに接続するためのパラメータであるサーバチャンネルナンバー（SCN）と、サービスネーム（SN）との対応関係を記憶している。
【００２１】
なお、図３のサービス情報テーブルは、機器名としては機器１１、機器１２、機器１３としか表記していないが、これらは機器の識別情報であり、Bluetooth機器の場合はデバイスアドレス、フレンドリーネームも併せて記憶しているものとする。
【００２２】
以下、FTPの場合を一例とし、サービス情報テーブルの作成に関する具体例を説明する。機器１１はFTPをサポートしていることから、図４に示すサービス情報の内容を電子情報の形式でサービスレコードとして機器１１の内部に登録している。
【００２３】
図４に示すサービス情報は、Bluetoothの仕様書におけるサービス記述形式に従っている。図４にSCNの値が２として記述されているが、この値は機器１１内で割り当てられた値である。サービス提供装置１は、サービス発見処理の結果、機器１１からFTPに関する情報を取得することで、図４に記述された全情報を知ることが可能である。
【００２４】
サービス提供装置１は、図４の内容を確認した上で、図３のサービス情報テーブルを作成する。なお、相手機器から取得したサービス情報の中で、SCN及びSN以外の情報についてもサービス情報テーブルに記憶してもよい。但し、図４に示したSCN及びSN以外の値は、機器に依存する値でないため、相手機器から取得しなくても知ることができ、例えば予めデフォルト値として所持することも可能である。
【００２５】
以後、図４に示したサービス情報をFTP（”Obex File Transfer”,2）と表記することにする。また、便宜上、図４に対応するサービスレコードもFTP（”Obex File Transfer”,2）と表記する。また、サービス提供装置１が機器１１のFTPサービスを検出した場合、「サービス提供装置１１はFTP（”Obex File Transfer”,2）を所持している」というような表現を用いる。
【００２６】
周辺機器管理部１００は、自装置の周囲に存在する機器のアドレスや名前などの情報を周辺機器情報として取得し、それらの機器のうち自装置と通信可能なものからサービス情報を取得し、図３に示したサービス情報テーブルが完成すると、サービス情報生成部２００に対してサービス情報取得完了通知を送る。
【００２７】
サービス情報生成部２００は、サービス情報取得完了通知を受け取ると、周辺機器管理部１００のサービス情報テーブルの内容を確認し、その情報を利用して新たなサービスレコードを作成し、作成したサービスレコードを自装置のSDPデータベース９０２に登録する。
【００２８】
以下、サービス情報生成部２００がSDPデータベース９０２に登録するサービスレコードの作成方法を説明する。
【００２９】
＜サービスレコード作成例１＞
サービス情報生成部２００は、サービス情報テーブルに登録されているサービスを自装置のサービスレコードとして登録する。各サービスレコードに記述されるSCNを除くパラメータについては、周辺機器から取得してサービス情報テーブルに記述されている情報をそのまま記述するか、または、デフォルト値として用いられる値を記述する。サービス情報生成部２００は、SCNについては、Bluetooth管理部９００が設定した値を取得し、取得した値をサービスレコードに記述する。
【００３０】
例えば、サービス情報テーブルが図３の場合、サービス情報生成部２００は、FTP（”OBEX File Transfer”,１）、OPP（”OBEX Object Push”,２）、BIP（”OBEX Basic Imaging”３）、BPP（”OBEX Basic Printing”４）の４つをサービスレコードとしてBluetooth管理部９００のSDPデータベース９０２に登録する。ここで、各サービスのSCNの値１，２，３，４はBluetooth管理部９００から取得した値である。
【００３１】
その結果、他機器からサービス提供装置１に対してサービス発見処理を行い、サービス情報を取得した場合、サービス提供装置１はサービスとしてFTP（”OBEX File Transfer”,１）、OPP（”OBEX Object Push”,２）、BIP（”OBEX Basic Imaging”３）、BPP（”OBEX Basic Printing”４）を所持しているように認識される。
【００３２】
＜サービスレコード作成例２＞
サービスレコード作成例１において、登録する各サービスレコードのSNの値をサービス情報生成部２００が独自に作成するとする。例えば、サービス情報生成部２００は、FTP（”サービス提供装置１のFile Transfer”,１）、OPP（” サービス提供装置１の Object Push”,２）、BIP（” サービス提供装置１の Basic Imaging”３）、BPP（” サービス提供装置１のBasic Printing”４）の４つをサービスレコードとしてBluetooth管理部９００のSDPデータベース９０２に登録する。
【００３３】
その結果、他機器からサービス提供装置１に対しサービス発見処理を行い、サービス情報を取得した場合、サービス提供装置１はサービスとしてFTP（” サービス提供装置１の File Transfer”，１）、OPP（” サービス提供装置１のObject Push”,２）、BIP（” サービス提供装置１のBasic Imaging”，３）、BPP（” サービス提供装置１のBasic Printing”４）を所持しているように認識される。
【００３４】
＜サービスレコード作成例３＞
サービス情報生成部２００は、サービス情報テーブルに登録されている一つのサービスに対し、それを自装置がサポートしている全サービスへ複製および変換作成して登録する。各サービスレコードに登録するSCNは、Bluetooth管理部９００が設定した値を取得し、その値を採用する。SNについてはサービス情報生成部２００が独自に作成する。SCN，SN以外の値はサービス情報生成部２００で設定されているデフォルト値を利用する。
【００３５】
例えば、図３の機器１１のFTPサービスに対して、FTP(“ftp1”,1)、OPP(“opp1”,1)、BIP(“bip1”,1)、BPP(“bpp1”,1)の４つのサービスレコードを複製および変換作成する。機器１１のOPP，機器１２のBIP，機器１３のBPPについても同様にそれぞれ４つのサービスレコードを生成する。この場合、例えば、一例として示すが、サービス情報生成部２００は、以下の１６個のサービスレコードをBluetooth管理部９００のSDPデータベース９０２に登録することになる。
FTP(“ftp1”,1)、OPP(“opp1”,1)、
BIP(“bip1”,1)、BPP(“bpp1”,1)、
FTP(“ftp2”,2)、OPP(“opp2”,2)、
BIP(“bip2”,2)、BPP(“bpp2”,2)、
FTP(“ftp3”,3)、OPP(“opp3”,3)、
BIP(“bip3”,3)、BPP(“bpp3”,3)、
FTP(“ftp4”,4)、OPP(“opp4”,4)、
BIP(“bip4”,4)、BPP(“bpp4”,4)
【００３６】
その結果、他機器からサービス提供装置１に対しサービス発見処理を行い、サービス情報を取得した場合、サービス提供装置１は合計１６個のサービスを所持しているように認識される。
【００３７】
＜サービスレコード作成例４＞
サービスレコード作成例３において、サービス情報生成部２００は、SNを生成する場合に、対応する機器名を付加する。この場合、例えば、サービス情報生成部２００は、以下の１６個のサービスレコードをBluetooth管理部９００のSDPデータベース９０２に登録することになる。
FTP(“ftp_機器11”,1)、OPP(“opp_機器11”,1)、
BIP(“bip_機器11”,1)、BPP(“bpp_機器11”,1)、
FTP(“ftp_機器11”,2)、OPP(“opp_機器11”,2)、
BIP(“bip_機器11”,2)、BPP(“bpp_機器11”,2)、
FTP(“ftp_機器12”,3)、OPP(“opp_機器12”,3)、
BIP(“bip_機器12”,3)、BPP(“bpp_機器12”,3)、
FTP(“ftp_機器13”,4)、OPP(“opp_機器13”,4)、
BIP(“bip_機器13”,4)、BPP(“bpp_機器13”,4)
【００３８】
その結果、他機器からサービス提供装置１に対しサービス発見処理を行い、サービス情報を取得した場合、サービス提供装置１は合計１６個のサービスを所持しているように認識される。
【００３９】
＜サービスレコード作成例５＞
上述したサービスレコード作成例３において、サービス情報生成部２００は、SNを生成する場合にサービスの変換情報を付加する。この場合、例えば、サービス情報生成部２００は、以下の１６個のサービスレコードをBluetooth管理部９００のSDPデータベース９０２に登録することになる。
FTP(“ftp→ftp”,1)、OPP(“opp→ftp”,1)、
BIP(“bip→ftp”,1)、BPP(“bpp→ftp”,1)、
FTP(“ftp→opp”,2)、OPP(“opp→opp”,2)、
BIP(“bip→opp”,2)、BPP(“bpp→opp”,2)、
FTP(“ftp→bip”,3)、OPP(“opp→bip”,3)、
BIP(“bip→bip”,3)、BPP(“bpp→bip”,3)、
FTP(“ftp→bpp”,4)、OPP(“opp→bpp”,4)、
BIP(“bip→bpp”,4)、BPP(“bpp→bpp”,4)
【００４０】
その結果、他機器からサービス提供装置１に対しサービス発見処理を行い、サービス情報を取得した場合、サービス提供装置１は合計１６個のサービスを所持しているように認識される。
【００４１】
＜サービスレコード作成例６＞
上述したサービスレコード作成例３において、サービス情報生成部２００は、SNを生成する場合に対応する機器名とサービスの変換情報を付加する。この場合、例えば、サービス情報生成部２００は、以下の１６個のサービスレコードをBluetooth管理部９００のSDPデータベース９０２に登録することになる。
FTP(“機器11_ftp→ftp”,1)、OPP(“機器11_opp→ftp”,1)、
BIP(“機器11_bip→ftp”,1)、BPP(“機器11_bpp→ftp”,1)、
FTP(“機器11_ftp→opp”,2)、OPP(“機器11_opp→opp”,2)、
BIP(“機器11_bip→opp”,2)、BPP(“機器11_bpp→opp”,2)、
FTP(“機器12_ftp→bip”,3)、OPP(“機器12_opp→bip”,3)、
BIP(“機器12_bip→bip”,3)、BPP(“機器12_bpp→bip”,3)、
FTP(“機器13_ftp→bpp”,4)、OPP(“機器13_opp→bpp”,4)、
BIP(“機器13_bip→bpp”,4)、BPP(“機器13_bpp→bpp”,4)
【００４２】
その結果、他機器からサービス提供装置１に対しサービス発見処理を行い、サービス情報を取得した場合、サービス提供装置１は合計１６個のサービスを所持しているように認識される。
【００４３】
＜サービスレコード作成例７＞
上述したサービスレコード作成例３に示したように、サービス情報テーブルに登録されている一つのサービスに対し、それを自装置がサポートしている全サービスに複製および変換作成して登録する場合、非常に多くのサービスレコードが登録されることになる。サービスレコード作成例７では、サービスレコード作成例３の方式を拡張し、不必要と判断した登録するサービスレコードは登録しないようにする。
【００４４】
サービス情報生成部２００は、周辺機器管理部１００のサービス情報テーブルを確認し、そこに登録されている機器とサービスの対応関係を考慮し、各機器は対応しているサービスのみサポートし、その他のサービスでサービス提供装置１に対して接続を行うことはないと仮定する。図３の場合、機器１１はFTPとOPP，機器１２はBIP，機器１３はBPPのみサポートと仮定し、機器１１がサービス提供装置１に対してBIPやBPPのための接続を行うことはないと仮定する。
【００４５】
例えば、図３の機器１１のFTPサービスに対して、FTP(“ftp1”,1)、OPP(“opp1”,1)、BIP(“bip1”,1)、BPP(“bpp1”,1)の４つのサービスレコードを作成するが、それぞれのサービスレコードは図５に示す手順で登録される。
【００４６】
まず、機器ＡがサービスとしてプロファイルＡをサポートしていることを認識する（ステップＳ１）。ここで、プロファイルＡは、FTP,OPP,BIP,BPPのいずれかを取りうるとする。
【００４７】
次に、機器Ａ以外にFTPをサポートしている機器が存在するか否かを判断し（ステップＳ２）、存在する場合には、サービスレコードとしてFTP("ftp n", n)が未登録であれば登録する（ステップＳ３）。
【００４８】
ステップＳ２で存在しないと判断された場合、あるいはステップＳ３の処理が終了した場合には、機器Ａ以外にOPPをサポートしている機器が存在するか否かを判断する（ステップＳ４）。存在する場合には、サービスレコードとしてOPP("opp n", n)が未登録であれば登録する（ステップＳ５）。
【００４９】
ステップＳ４で存在しないと判断された場合、あるいはステップＳ５の処理が終了した場合には、機器Ａ以外にBIPをサポートしている機器が存在するか否かを判断する（ステップＳ６）。存在する場合には、サービスレコードとしてBIP("bip n", n)が未登録であれば登録する（ステップＳ７）。
【００５０】
ステップＳ６で存在しないと判断された場合、あるいはステップＳ７の処理が終了した場合には、機器Ａ以外にBPPをサポートしている機器が存在するか否かを判断する（ステップＳ８）。存在する場合には、サービスレコードとしてBPP("bpp n", n)が未登録であれば登録する（ステップＳ９）。
【００５１】
例えば、図５の手順によれば、機器Ａを機器１１、プロファイルＡをFTP、ｎの値を１とすると、機器１２はBIP，機器１３はBPPのみをサポートしていることから、サービスレコード作成例３では、FTP(“ftp1”,1)、OPP(“opp1”,1)、BIP(“bip1”,1)、BPP(“bpp1”,1)の４つが登録されるのに対し、本例ではBIP(“bip1”,1)、BPP(“bpp1”,1)のみが登録される。同様に、図３にある機器１１のOPPサービスに対して、機器Ａを機器１１、プロファイルＡをOPP、ｎの値を２とすると、BIP(“bip2”,2)、BPP(“bpp2”,2)のみが登録される。
【００５２】
同様に、図３の機器１２のBIPサービスに対して、機器Ａを機器１２、プロファイルＡをBIP、ｎの値を３とすると、FTP(“機器12_ftp→bip”,3)、OPP(“機器12_opp→bip”,3)、BPP(“機器12_bpp→bip”,3)のみが登録される。
【００５３】
同様に、図３にある機器１３のBPPサービスに対して、機器Ａを機器１３、プロファイルＡをBPP、ｎの値を４とすると、FTP(“ftp4”,4)、OPP(“opp4”,4)、BIP(“bip4”,4)のみが登録される。
【００５４】
不要なサービスレコードを登録しないことで、サービスレコード作成例3では１６個のサービスレコードが登録されるのに対し、本例ではサービス情報生成部２００は、以下の１０個のサービスレコードをBluetooth管理部９００のSDPデータベース９０２に登録することになる。
BIP(“bip1”,1)、BPP(“bpp1”,1)、
BIP(“bip2”,2)、BPP(“bpp2”,2)、
FTP(“ftp3”,3)、OPP(“opp3”,3)、BPP(“bpp3”,3)、
FTP(“ftp4”,4)、OPP(“opp4”,4)、BIP(“bip4”,4)
【００５５】
その結果、他機器からサービス提供装置１に対しサービス発見処理を行い、サービス情報を取得した場合、サービス提供装置１は合計１０個のサービスを所持しているように認識される。
【００５６】
なお、サービスレコード作成例７においては、サービスレコード作成例３の拡張という形で説明したが、サービスレコード作成例４、サービスレコード作成例５についても同様の拡張により不必要なサービスレコードを登録しないようにすることが可能である。
【００５７】
＜サービスレコード作成例８＞
上述したサービスレコード作成例３に示したように、サービス情報テーブルに登録されている一つのサービスに対し、それを自装置がサポートしている全サービスへ複製および変換作成して登録する場合、非常に多くのサービスレコードが登録されることになる。サービスレコード作成例８では、サービスレコード作成例３の方式を拡張し、不必要と判断したサービスレコードは登録しないようにする。
【００５８】
サービスを提供する機器をサーバ機器、サーバ機器のサービスを利用する機器をクライアント機器と呼ぶとすると、クライアント機器とサーバ機器の両方の機能を備えたBluetooth機器だけでなく、どちらか一方の機能のみを備えたBluetooth機器も存在する。
【００５９】
また、クライアントとサーバの両機能を備えた機器においても、サーバとして提供するサービスと、クライアントとして利用できるサービスが異なる場合もある。例えば、サーバとしてFTPサービスが提供可能であっても、クライアントとしてはFTPサービスの利用が不可能な機器、または、サーバとしてFTPサービスが提供不可能であってもクライアントとしてはFTPサービスの利用が可能な機器などが存在する可能性がある。
【００６０】
サービス情報生成部２００は、それぞれの周辺機器がクライアントとしてどのようなサービスをサポートしているのかを検出する機能を有する。サービス情報生成部２００は、Bluetooth管理部９００のSDP処理部９０１が受信した周辺機器からのサービス検索要求の内容を確認する。
【００６１】
例えば、機器Ａから「FTPとBIPのサービスに対応する情報を取得したい」という内容のサービス検索要求を受信したとすると、サービス情報生成部２００は、機器ＡはクライアントとしてFTPとBIPをサポートしていると判断する。サービス情報生成部２００は、クライアントとして周辺機器がとしてどのようなサービスをサポートしているのかを一定時間検出した結果、クライアントとしてサポートしていないと判断したサービスレコードを削除する。
【００６２】
例えば、サービスレコード作成例３の場合において、プリンタである機器１３からサービス検索要求を受けなかったとすると、機器１３はクライアントとしてBPPをサポートしていないと判断する。サービス情報生成部２００は、不要なサービスレコードを図６に示す手順で削除する。
【００６３】
図６において、まず、各種のフラグFTPFlag,OPPFlag,BIPFlag,BPPFlagをゼロに初期化する（ステップＳ１１）。次に、サービス検索要求を受信したか否かを判断し（ステップＳ１２）、受信した場合には、サービス検索要求の内容を確認する（ステップＳ１３）。ここでは、FTP,OPP,BIP,BPPのいずれかのサービス検索要求が含まれている場合には、対応するFlagを「１」にセットする。
【００６４】
ステップＳ１２で受信しなかった判断された場合、あるいはステップＳ１３の処理が終了した場合には、タイムアウトしたか否かを判断する（ステップＳ１４）。タイムアウトしていない場合はステップＳ１２に戻り、タイムアウトした場合には、FTPFlagが「１」か否かを判断し（ステップＳ１５）、「１」の場合には、登録されている全FTPサービスを削除する（ステップＳ１６）。
【００６５】
ステップＳ１５で「１」でないと判断された場合、あるいはステップＳ１６の処理が終了した場合には、OPPFlagが「１」か否かを判断し（ステップＳ１７）、「１」の場合には、登録されている全OPPサービスを削除する（ステップＳ１８）。
【００６６】
ステップＳ１７で「１」でないと判断された場合、あるいはステップＳ１８の処理が終了した場合には、BIPFlagが「１」か否かを判断し（ステップＳ１９）、「１」の場合には、登録されている全BIPサービスを削除する（ステップＳ２０）。
【００６７】
ステップＳ１９で「１」でないと判断された場合、あるいはステップＳ２０の処理が終了した場合には、BPPFlagが「１」か否かを判断し（ステップＳ２１）、「１」の場合には、登録されている全BPPサービスを削除する（ステップＳ２２）。
【００６８】
このように、不要なサービスレコードを削除することで、サービスレコード作成例3では１６個のサービスレコードが登録されるのに対し、本例では以下の１２個のサービスレコードのみがBluetooth管理部９００のSDPデータベース９０２に登録されていることになる。
FTP(“ftp1”,1)、OPP(“opp1”,1)、BIP(“bip1”,1)、
FTP(“ftp2”,2)、OPP(“opp2”,2)、BIP(“bip2”,2)、
FTP(“ftp3”,3)、OPP(“opp3”,3)、BIP(“bip3”,3)、
FTP(“ftp4”,4)、OPP(“opp4”,4)、BIP(“bip4”,4)
【００６９】
その結果、他機器からサービス提供装置１に対しサービス発見処理を行い、サービス情報を取得した場合、サービス提供装置１は合計１２個のサービスを所持しているように認識される。
【００７０】
なお、サービスレコード作成例８においては、サービスレコード作成例３の拡張という形で説明したが、サービスレコード作成例４、サービスレコード作成例５についても同様の拡張により不必要なサービスレコードを登録しないようにすることが可能である。
【００７１】
＜サービスレコード作成例９＞
サービスレコード作成例３に示したように、サービス情報テーブルに登録されている一つのサービスに対し、それを自装置がサポートしている全サービスへ変換して登録する場合、非常に多くのサービスレコードが登録されることになる。
【００７２】
サービスレコード作成例９では、サービスレコード作成例３の方式を拡張し、不必要と判断したサービスレコードは登録しないようにする。
【００７３】
サービスレコード作成例６とサービスレコード作成例７で示した方式を組み合わせることで、サービスレコード作成例3では１６個のサービスレコードが登録されるのに対し、本例では以下の７個のサービスレコードのみがBluetooth管理部９００のSDPデータベース９０２に登録されていることになる。
BIP(“bip1”,1)、
BIP(“bip2”,2)、
FTP(“ftp3”,3)、OPP(“opp3”,3)、
FTP(“ftp4”,4)、OPP(“opp4”,4)、BIP(“bip4”,4)
【００７４】
その結果、他機器からサービス提供装置１に対しサービス発見処理を行い、サービス情報を取得した場合、サービス提供装置１は合計７個のサービスを所持しているように認識される。
【００７５】
なお、サービスレコード作成例９においては、サービスレコード作成例３の拡張という形で説明したが、サービスレコード作成例４、サービスレコード作成例５についても同様の拡張により不必要なサービスレコードを登録しないようにすることが可能である。
【００７６】
以上に説明したサービスレコード作成例１〜９が、サービス情報生成部２００によるサービスレコードの作成および登録方法の一例である。
【００７７】
サービス情報生成部２００は、サービスレコードの登録または削除を行うたびに、周辺機器管理部１００のサービス情報テーブルを変更する。例えば、サービス情報生成部２００が、サービスレコード作成例３に示したサービスレコードを登録していたとすると、周辺機器管理部１００のサービス情報テーブルは図７のように書き換えられる。また、サービスレコード作成例８の場合であれば、サービス情報テーブルは図８のように書き換えられる。
【００７８】
次に、サービス変換部３００の動作について説明する。サービス情報生成部２００がサービスレコードを登録することで、周辺機器からはサービス提供装置１が種々のサービスを所持しているように見え、それらのサービスを利用するためにサービス提供装置１に対して接続要求を行うことができるようになる。Bluetooth管理部９００は、これらの接続要求を受け入れ、他機器との間でOBEXのプロトコルに従ったコネクションを設定し、そのOBEXコネクションによってデータの送受信が可能であるとする。
【００７９】
例えば、サービス提供装置１がサービスレコード作成例８で示したサービス情報を登録していたとすると、機器１１はサービス提供装置１のFTP("ftp3",3)サービスを検出し、そのサービスを利用するために接続要求を送信すると、機器１１とサービス提供装置１のOBEX処理部９０３の間にOBEXコネクションが設定される。OBEX処理部９０３は、設定されたコネクションにより受信したデータをサービス変換部３００へ出力する。サービス変換部３００は入力されたデータをファイルとして保存する。Bluetooth管理部９００は機器１１との通信が終了し接続が切断されると、サービス変換部３００に切断されたことを通知する。
【００８０】
サービス変換部３００は切断が通知されると、周辺機器管理部１００のサービス情報テーブルを参照し、FTP("ftp3",3)に対応する機器とサービス（プロファイル）とSCNを確認する。
【００８１】
例えば、図８の場合、対応する機器は機器１２、サービスはBIP、SCNは１となる。サービス変換部３００は、これらの相手機器情報をパラメータとしてBluetooth管理部９００に機器１２のBIPサービスとの接続要求を行うように指示する。OBEX処理部９０３と機器１２とのBIPサービスのコネクションが設定されると、サービス変換部３００は保存していたファイルをBIPサービスで利用されるフォーマットに変換した後、機器１２へ送信するようにBluetooth管理部９００に指示する。
【００８２】
以上に説明したサービス変換部３００の動作例では、機器１１からのデータの受信が完了し、機器１１とのコネクションが切断された後に機器１２や機器１３への接続を開始し、データ転送を行うという動作例を示した。
【００８３】
しかし、サービス提供装置３のBluetooth管理部９００が機器１１から接続されている状態において、別の機器である機器１２や機器１３への接続が可能であるなら、機器１１からの切断を待つことなく別機器との接続を行っても良い。
【００８４】
周辺機器ごとに、サポートするサービス（プロファイル）が異なる場合には、各周辺機器間で直接データ交換を行うことが不可能であるが、本実施形態で示したサービス提供装置１を用いることで、直接データ交換を行うことが不可能な機器間でのデータ交換を行うことができる。
【００８５】
図１のサービス提供装置は、周辺機器管理部１００が機器発見処理とサービス発見処理を予め行い、サービス情報テーブルの内容が適切に設定されていることを前提とした。実際には、機器発見処理とサービス発見処理は、さまざまな方法によって起動することができ、これによりサービス情報テーブルを適切な状態に設定することができる。
【００８６】
例えば、図９は図１の構成にアプリケーション部１０００を追加したものであり、サービス情報の収集をユーザの指示によって行えるようにしている。図９のアプリケーション部１０００はユーザからの操作が可能なインタフェースを備えており、ユーザからの周辺機器の探索の指示を受け付け、指示があると周辺機器管理部１００に対して周辺機器の探索及びサービス情報の取得を命令する。
【００８７】
サービス情報の収集は、タイマーにより自動的に行うことが可能である。この場合のサービス提供装置の構成は図１０のようになる。図１０のサービス提供装置は、図１の構成にタイマー部４００を追加したものである。タイマー部４００は予め設定された時間が経過するごとに周辺機器管理部１００に対して周辺機器の探索及びサービス情報の取得を命令する。
【００８８】
サービス発見処理は、他の機器からの要求によっても起動可能である。周囲の Bluetooth機器からの要求によって収集する場合の構成は図１と同様である。この場合は、周囲の Bluetooth 機器が Bluetooth 管理部に接続し、サービス情報更新要求を送信する。
【００８９】
Bluetooth 管理部９００は、受信した更新要求を周辺機器管理部１００に通知する。周辺機器管理部１００は、更新要求を受け取ると、 Bluetooth 管理部９００に周辺機器の探索およびサービス情報の取得を命令する。このとき、サービス情報テーブルに以前と同様の指示を受けた時刻を記憶しておき、その時刻から予め定めた期間が経過していないときは、周辺機器管理部１００は、周辺機器の探索およびサービス情報の取得を行わずに、以前に取得しておいた情報を代わりに用いる。
【００９０】
また、イーサネットなどの他のインタフェースを経由してサービス発見処理の起動要求を受け取ることもできる。この場合の本発明のサービス提供装置の構成は図１１のようになる。
【００９１】
図１１では、図１に新たにネットワーク管理部５００を追加している。ネットワーク管理部５００は、インターネットを介して接続された外部の機器から起動要求を受け取ると、その要求を周辺機器管理部１００に通知する。以後の処理は周囲の Bluetooth 機器から要求を受けた場合と同様である。
【００９２】
収集要求の受け取り方は、例えばネットワーク管理部５００において Web サーバを動作させておき、HTTP プロトコルに則ったリクエストとして行うことができる。この場合、収集された情報は、上記リクエストに対するレスポンスとして、たとえば html 形式のデータでネットワーク管理部を介してリクエストを行った機器へと返送される。
【００９３】
サービス情報の収集は、周辺機器から何らかの要求があったことをきっかけとして行ってもよい。例えば、Bluetooth 管理部９００が、他の機器が機器発見処理を行っていることを INQUIRY メッセージを受信して知った場合には、Bluetooth 管理部９００から周辺機器管理部１００にイベントを発行し、このイベントを受けた周辺機器管理部１００が Bluetooth 管理部９００に周辺機器の探索およびサービス情報の収集を指示する。
【００９４】
INQUIRY メッセージを発行して機器発見処理を行っている機器はこれまで周囲にいなかった新しい機器である可能性が高いので 、INQUIRY メッセージを受けたときにサービス情報の収集処理を起動すると、新しく来た機器の発見やサービス情報の取得を速やかに行える可能性が高くなる。
【００９５】
また、INQUIRY メッセージではなく、周囲の Bluetooth 機器から自装置に対してサービス発見手順SDP (Service Discovery Protocol)のコネクションが張られたときにその機器のみのサービス情報の取得、またはその機器を含めたすべての機器の発見とサービス情報の取得を行うようにしてもよい。
【００９６】
この場合は、サービス発見手順においてどのような種別のサービスに関する情報が要求されたかの情報を Bluetooth 管理部９００から周辺機器管理部１００に伝えることにより、周辺機器管理部がより適切な指示を Bluetooth 管理部に出すことが可能となる。
【００９７】
例えば、周辺機器が FTP のサービスに関する情報を要求してきた場合には、周辺機器管理部１００は、FTP および自装置のサービス変換部３００により FTPに変換することが可能なプロファイルに関するサービス情報のみを取得するよう Bluetooth 管理部９００に指示を出すことができる。特に必要のない、他のプロファイルに関する情報を収集しないので、処理の効率が向上する。
【００９８】
また、どのような種別のサービスに関する情報が要求されたかの情報は、＜サービスレコード作成例７＞において説明したようにBluetooth 管理部に登録するサービスレコードを限定するためにも用いることができる。
【００９９】
以上に説明したサービス情報の収集手順は、複数を組み合わせて使うことも可能である。例えば、普段はタイマーによって定期的にサービス情報収集処理が起動され周辺機器管理部の保持するテーブルが自動的に更新されるが、アプリケーション部１０００を介してユーザからの要求があったときにもサービス情報収集処理が起動され、これにより前記テーブルを強制的に更新させるといったことが可能である。
【０１００】
このように、第１の実施形態では、他の機器が提供する各種サービスに関するサービスレコードを生成するため、これらサービスをあたかも自装置が提供するかのように見せかけることができ、本来自装置が提供するサービスよりも広範なサービスを他の機器に対して提供できる。
【０１０１】
また、Bluetooth機器間の通信では、各機器がサポートするサービス（プロファイル）が異なると、各機器間で直接データ交換を行うことが不可能であるが、第１の実施形態で示したサービス提供装置１を用いることで、直接データ交換を行うことが不可能な機器間でのデータ交換が可能になる。
【０１０２】
(第２の実施形態)
第２の実施形態のサービス提供装置は、周囲のBluetooth機器が提供するサービスだけでなく、ファイルサーバやWebサーバが管理するサービスも自己のサービスとして見せかけて提供するものである。
【０１０３】
第１の実施形態では、周囲のBluetooth 機器の持つサービスを、サービス変換部３００で変換して得られるサービスを自装置の提供するサービスとしてBluetooth管理部９００に登録したが、このように変換されてBluetooth管理部に登録されるサービスは必ずしも周囲の Bluetooth 機器が提供するものに限らない。
【０１０４】
第２の実施形態のサービス情報生成部２００は、Bluetooth 以外の通信インタフェースを介して利用可能なサービスも自装置の提供するサービスとして Bluetooth 管理部９００に登録することが可能である。
【０１０５】
第２の実施形態のサービス提供装置は図１１と同様に構成されている。周辺機器管理部１００は、ネットワーク管理部５００を介して、Bluetooth 以外の通信インタフェースを介して利用可能なサービスを調べ、サービス情報テーブルに登録する。
【０１０６】
通信インタフェースとして、例えばイーサネットを用いてインターネットに接続する。このとき利用可能なサービスとしては、電子メールの送受信、ファイルサーバを介したファイルの共有、Web サーバとの間のデータのダウンロードおよびアップロードなどが挙げられる。周辺機器管理部１００は、これらのサービスをサービス情報テーブルに格納する。
【０１０７】
図１２はサービス提供装置とファイルサーバとがイーサネットに接続されている例を示すネットワーク配置図、図１３は図１２のように配置された場合のサービス情報テーブルの一例を示す図である。図１２では、Bluetooth機器である機器１１および機器１２と、イーサネットに接続されたファイルサーバである機器２１が本発明のサービス提供装置１と通信可能である。
【０１０８】
図１３のサービス情報テーブルは、第１の実施形態において説明に用いた図３のテーブルとほぼ同様であるが、サービスの種別が Bluetooth のプロファイルに限らないこと、サービスを利用するためのパラメータがサーバチャネル番号に限らないことなどが異なるため、テーブルの構成を若干変更している。
【０１０９】
図１２の例では、イーサネットを介して LAN 側から利用可能なサービスとして、ファイル共有サービスであるNFS(Network File System)が利用可能であり、そのパラメータとして共有されるフォルダへのパスが記述されている。これらのサービスは、サービス情報生成部において Bluetooth のプロファイルへと変換されて、Bluetooth 管理部９００に登録される。
【０１１０】
例えば、ファイルの共有サービスであればBluetooth のプロファイルである FTP として登録される。変換された後のサービスレコードの作成方法は、第1の実施形態において説明したのと同様である。
【０１１１】
このとき、第1の実施形態においてサービスネームに付加したサービスの変換情報は、NFS から FTP に変換されたことを示すものであり、例えば、第１の実施形態における＜サービスレコード作成例４＞では“ftp→NFS” のようになり、＜サービスレコード作成例５＞では “機器２１＿ftp→NFS” のようになる。
【０１１２】
Bluetooth のサービスとして登録されるサービスの種別は、必ずしもネットワーク管理部５００を介して利用可能なサービスの種別と直接関連するものでなくてもよい。
【０１１３】
例えば、メール送信サービスを本来はファイルやフォルダを扱うプロファイルである FTP として登録することも可能である。この場合は、FTP に従って周囲の Bluetooth機器から Bluetooth管理部９００へ送信されたファイルがサービス変換部によりネットワーク管理部９００を介してインターネット上の他の機器へメールとして送信される。
【０１１４】
複数のあて先が考えられる場合は、どのあて先に向けてメールが送信されるかは、複数の宛先のそれぞれに対応するFTP サービスをそれぞれ登録してもよいし、単一のFTP サービスにおいてどのフォルダの中にファイルが格納されたかによって区別してもよい。
【０１１５】
また、Web サーバへのアップロードサービスを Bluetooth の Imaging Profile サービスとして登録することもできる。このときは、周囲の Bluetooth 機器から Imaging Profile に従って送信された画像データがネットワーク管理部を介して Web サーバにアップロードされ、例えば他の機器からブラウザなどのソフトウェアを用いてその画像データを見ることができる。
【０１１６】
このように、第２の実施形態では、周囲のBluetooth機器だけでなく、ファイルサーバやWebサーバが提供する各種サービスも自己のサービスとして見せかけて提供できるため、第１の実施形態よりもさらに広範なサービス提供が行える。
【０１１７】
(第３の実施形態)
第３の実施形態は、周囲の複数の機器が提供する各サービスをまとめて単一のサービスとして周囲の他の機器に提供するものである。
【０１１８】
第３の実施形態のサービス提供装置のブロック構成は図１と同じであるが、周辺機器管理部１００、サービス情報生成部２００及びサービス変換部３００の処理内容が図１の装置と異なっている。
【０１１９】
図１４は、第３の実施形態のサービス提供装置５と周辺機器１１，１２，１３との通信の様子を示す図である。機器１１，１２，１３はそれぞれBluetooth機器であり、第1の実施形態と同様に、例えば、機器１１はFTPとOPPをサポートしたＰＣ、機器１２はBIPをサポートしたデジタルカメラ、機器１３はBPPをサポートしたプリンタである。
【０１２０】
周辺機器管理部１００は、定期的に機器発見処理とサービス発見処理を行い、発見した機器情報を内部に記憶する。サービス提供装置５内の周辺機器管理部１００は、第１の実施形態と同様に、図３に示すサービス情報テーブルを作成する。
【０１２１】
なお、本実施形態では、サービス情報やサービスレコードの表記方法を第１の実施形態と同様にする。
【０１２２】
周辺機器管理部１００は、周辺機器情報を取得し、周囲に存在するすべての通信可能な機器からサービス情報を取得し、図３に示したサービス情報テーブルが完成すると、サービス情報生成部２００に対してサービス情報取得完了通知を送る。サービス情報生成部２００は、サービス情報取得完了通知を受け取ると、新たなサービスレコードを作成し、作成したサービスレコードを自装置のSDPデータベース９０２に登録する。
【０１２３】
サービス情報生成部２００は、FTPサービスのサービスレコードを一つ作成してSDPデータベース９０２に登録する。サービスレコードに登録するSCNは、Bluetooth管理部９００より設定可能かつその値を利用することで他機器と通信可能となるSCNの値を取得し、その値を採用する。SNについてはサービス情報生成部２００が独自に作成する。SCN，SN以外の値はサービス情報生成部２００で設定されているデフォルト値を利用する。例えば、サービス情報生成部２００が作成して登録するサービスレコードは、FTP（“サービス提供装置５の複合サービス”，１）となる。
【０１２４】
図１５は第３の実施形態のサービス提供装置５のサービス情報テーブルの一例を示す図である。図示のように、図１５のテーブルは、図３のテーブルに変換サービスの項目を追加したものである。図１５のテーブルでは、変換サービスの項目のそれぞれにFTP（“サービス提供装置５の複合サービス”，１）が記述されている。これらはすべて同一のものを参照するために複数の項目に記述したものであり、実際にSDPデータベース９０２に登録されているサービスレコードは一つである。
【０１２５】
次に、サービス変換部３００の動作について説明する。サービス情報生成部２００がサービスレコードを登録することで、周辺機器からはサービス提供装置５がFTP（“サービス提供装置５の複合サービス”，５）という一つのサービスを所持しているように見え、そのFTPサービスを利用するためにサービス提供装置５に対して接続要求を行うことができる。Bluetooth管理部９００は、これらの接続要求を受け入れ、他機器との間でOBEXのプロトコルに従ったコネクションを設定し、そのOBEXコネクションによってFTPに従ったデータの送受信が可能となる。
【０１２６】
例えば、機器１１はサービス提供装置５のFTP（“サービス提供装置５の複合サービス”，５）サービスを検出し、そのサービスを利用するために接続要求を送信すると、機器１１とサービス提供装置５のOBEX処理部９０３の間にFTP用のOBEXコネクションが設定される。
【０１２７】
FTP用のOBEXコネクションでは、フォルダやファイルの送受信が可能であることから、サービス提供装置１１はサービス提供装置５に対してフォルダやファイルの送信を試みることが可能である。
【０１２８】
このとき、サービス提供装置１１からは、サービス提供装置５がFTP（“サービス提供装置５の複合サービス”，５）という一つのサービスのみを提供しているように見えるため、たとえばサービス提供装置５を経由してサービス提供装置１２にファイルを送りたい場合と、サービス提供装置５を経由してサービス提供装置１３にファイルを送りたい場合との区別をつけるための工夫が必要となる。これは、送信したいファイルを格納したフォルダの名前に、ファイルの宛先となる機器の名前などの情報を含めることでなされる。これについて以下に説明する。
【０１２９】
OBEX処理部９０３は、設定されたコネクションにより受信したデータをすべてサービス変換部３００へ出力する。サービス変換部３００は入力されたデータの種類、つまり、機器１１が送信したデータ（ファイルやフォルダ）に応じて、以下の処理を行う。
【０１３０】
＜機器１１がフォルダ名に一つの機器名が含まれるフォルダを一つ送信した場合＞
機器名を含めるフォルダ名の書式を“To_機器名”とする。例えば、フォルダ名が“To_機器１２”というフォルダを機器１１がサービス提供装置５へ送信したとすると、OBEX処理部９０３は、機器１１からOBEXプロトコルの命令要求として、SetPath要求を受信する。このSetPath要求には“To_機器１２”という情報が含まれている。
【０１３１】
サービス変換部３００は、OBEX処理部９０３からSetPath要求が入力されると、フォルダ名の書式を調べ、“To_機器名”であった場合は、フォルダ名から機器名情報を検出する。機器名情報を検出すると、周辺機器管理部１００のサービス情報テーブルを確認し、検出した機器名に対応するサービス（プロファイル）を調べる。
【０１３２】
例えば、サービス情報テーブルが図３の場合は、対応する機器１２がBIPをサポートしていることがわかる。対応する機器とプロファイルの情報がサービス情報テーブルに存在することを確認すると、サービス変換部３００は、内部に“To_機器１２”というフォルダを作成し、以後OBEX処理部９０３が受信しサービス変換部３００へ出力したデータを作成したフォルダの下に記憶する。一方、サービス情報テーブルに機器名が検出できなかった場合、サービス変換部３００は受信拒否をOBEX処理部９０３へ通知する。
【０１３３】
また、サービス情報テーブルに機器名が存在したとしても、その機器がサポートしているプロファイルがサービス提供装置５のサポートしているプロファイル（本実施形態ではFTP，OPP，BIP，BPPとする）のいずれでもない場合は、サービス変換部３００は受信拒否をOBEX処理部９０３へ通知する。OBEX処理部９０３は受信拒否がサービス変換部３００から通知されると、相手機器に対してエラーを通知する。
【０１３４】
Bluetooth管理部９００は機器１１との通信が終了し接続が切断されるとサービス変換部３００に切断されたことを通知する。
【０１３５】
サービス変換部３００は切断が通知されると、フォルダ（本例においてはTo_機器１２”）を作成し、フォルダ下に機器１１から受信したデータを記憶していた場合、Bluetooth管理部９００に、フォルダ名に含まれている機器１２のBIPサービスとの接続要求を行うように指示する。
【０１３６】
ここで、サービス変換部３００は、機器１２との接続パラメータは、周辺機器管理部１００のサービス情報テーブルを参照し取得するとする。OBEX処理部９０３と機器１２とのBIPサービスのコネクションが設定されると、サービス変換部３００は記憶していたデータをBIPサービスで利用されるフォーマットに変換した後、機器１２への送信をBluetooth管理部９００に指示する。
【０１３７】
＜機器１１がフォルダ名に複数の機器名が含まれるフォルダを一つ送信した場合＞
機器名を含めるフォルダ名の書式を“To_機器名＿機器名”とする。例えば、フォルダ名が“To_機器１２＿機器１３”というフォルダを機器１１がサービス提供装置５へ送信したとすると、OBEX処理部９０３は、機器１１からOBEXプロトコルの命令要求として、SetPath要求を受信する。このSetPath要求には“To_機器１２＿機器１３”という情報が含まれている。
【０１３８】
サービス変換部３００は、OBEX処理部９０３からSetPath要求が入力されると、フォルダ名の書式を調べ、“To_機器名＿機器名”であった場合は、フォルダ名から機器名情報を検出する。機器名情報を検出すると、周辺機器管理部１００のサービス情報テーブルを確認し、検出した機器名に対応するサービス（プロファイル）を調べる。
【０１３９】
例えば、サービス情報テーブルが図３の場合は、対応する機器１２がBIPをサポートしており、また、機器１３がBPPをサポートしていることがわかる。対応する機器とプロファイルの情報がサービス情報テーブルに存在することを確認すると、サービス変換部３００は、内部に“To_機器１２＿機器１３”というフォルダを作成し以後OBEX処理部９０３が受信しサービス変換部３００へ出力したデータを作成したフォルダの下に記憶する。
【０１４０】
一方、サービス情報テーブルに機器１２と機器１３の両機器とも対応する機器名が検出できなかった場合、サービス変換部３００は受信拒否をOBEX処理部９０３へ通知する。
【０１４１】
また、サービス情報テーブルに機器１２、機器１３の機器名が存在したとしても、両機器ともサポートしているプロファイルがサービス提供装置５のサポートしているプロファイル（本実施形態ではFTP，OPP，BIP，BPPとする）のいずれでもない場合は、サービス変換部３００は受信拒否をOBEX処理部９０３へ通知する。OBEX処理部９０３は受信拒否がサービス変換部３００から通知されると、相手機器に対してエラーを通知する。
【０１４２】
Bluetooth管理部９００は機器１１との通信が終了し接続が切断されるとサービス変換部３００に切断されたことを通知する。サービス変換部３００は切断が通知されると、フォルダ（本例においてはTo_機器１２＿機器１３”）を作成し、フォルダ下に機器１１から受信したデータを記憶していた場合、Bluetooth管理部９００に、フォルダ名に含まれている機器１２のBIPサービス、および機器１３のBPPサービスそれぞれに対して接続要求を行うように指示する。
【０１４３】
ここで、サービス変換部３００は、機器１２および機器１３との接続パラメータは、周辺機器管理部１００のサービス情報テーブルを参照して取得するとする。OBEX処理部９０３と機器１２とのBIPサービスのコネクションが設定されると、サービス変換部３００は記憶していたデータをBIPサービスで利用されるフォーマットに変換した後、機器１２への送信をBluetooth管理部９００に指示する。OBEX処理部９０３と機器１３とのBPPサービスのコネクションが設定されると、サービス変換部３００は記憶していたデータをBPPサービスで利用されるフォーマットに変換した後、機器１３への送信をBluetooth管理部９００に指示する。
【０１４４】
＜機器１１がフォルダ名に異なる機器名が一つ含まれるフォルダを複数送信した場合＞
機器名を含めるフォルダ名の書式を“To_機器名”とする。例えば、フォルダ名が“To_機器１２”というフォルダと“To_機器１３”というフォルダを機器１１がサービス提供装置５へ送信したとする。
【０１４５】
この場合、OBEX処理部９０３は最初に“To_機器１２”という情報が含まれたSetPath要求を受信する。サービス変換部３００は、OBEX処理部９０３からSetPath要求が入力されると、フォルダ名の書式を調べ、フォルダ名から機器名情報“機器１２”を検出する。機器名情報を検出すると、周辺機器管理部１００のサービス情報テーブルを確認し、“機器１２”に対応するサービス（プロファイル）を調べる。
【０１４６】
例えば、サービス情報テーブルが図３の場合は、機器１２がBIPをサポートしていることがわかる。機器１２のプロファイルの情報（この場合はBIP）がサービス情報テーブルに存在することを確認すると、サービス変換部３００は内部に“To_機器１２”というフォルダを作成する。以後、OBEX処理部９０３が受信したデータはサービス変換部３００へと出力されるが、機器１１が送信したフォルダ名“To_機器１２”に含まれる全ファイルは、サービス変換部３００が作成した“To_機器１２”に保存されるとする。
【０１４７】
機器１１からフォルダ“To_機器１２”の送信が完了すると、OBEX処理部９０３は次に“To_機器１３”という情報が含まれたSetPath要求を受信する。
【０１４８】
サービス変換部３００は、OBEX処理部９０３からSetPath要求が入力されると、フォルダ名の書式を調べ、フォルダ名から機器名情報“機器１３”を検出する。機器名情報を検出すると、周辺機器管理部１００のサービス情報テーブルを確認し、“機器１３”に対応するサービス（プロファイル）を調べる。
【０１４９】
例えば、サービス情報テーブルが図３の場合は、機器１３がBPPをサポートしていることがわかる。機器１３のプロファイルの情報（この場合はBPP）がサービス情報テーブルに存在することを確認すると、サービス変換部３００は内部に“To_機器１３”というフォルダを作成する。以後、OBEX処理部９０３が受信したデータはサービス変換部３００へと出力されるが、機器１１が送信したフォルダ名“To_機器１３”に含まれる全ファイルは、サービス変換部３００が作成した“To_機器１３”に保存されるとする。
【０１５０】
なお、サービス情報テーブルに機器名が検出できなかった場合、サービス変換部３００は受信拒否をOBEX処理部９０３へ通知する。また、サービス情報テーブルに機器名が存在したとしても、その機器がサポートしているプロファイルがサービス提供装置５のサポートしているプロファイル（本実施形態ではFTP，OPP，BIP，BPPとする）のいずれでもない場合は、サービス変換部３００は受信拒否をOBEX処理部９０３へ通知する。
【０１５１】
OBEX処理部９０３は受信拒否がサービス変換部３００から通知されると、相手機器に対してエラーを通知する。例えば、機器１２、機器１３ともにサービス情報テーブルで検出できなかったとすると、フォルダ“To_機器１２”とフォルダ“To_機器１３”に含まれるファイルなどのデータは、サービス変換部３００には全く保存されない。また、例えば、機器１２はサービス情報テーブルで検出できなかったが、機器１３は検出できた場合は、フォルダ“To_機器１３”に含まれるファイルなどのデータは、サービス変換部３００に保存されるが、フォルダ“To_機器１２”に含まれるファイルなどのデータは、サービス変換部３００には保存されない。
【０１５２】
Bluetooth管理部９００は機器１１との通信が終了し接続が切断されるとサービス変換部３００に切断されたことを通知する。
【０１５３】
サービス変換部３００は切断が通知されると、内部に作成しているフォルダを確認する。“To_機器１２”というフォルダを作成していた場合、Bluetooth管理部９００を利用して機器１２のBIPサービスに対して接続要求を行う。
【０１５４】
また、“To_機器１３”というフォルダを作成していた場合、Bluetooth管理部９００を利用して機器１３のBPPサーに対して接続要求を行う。OBEX処理部９０３と機器１２とのBIPサービスのコネクションが設定されると、サービス変換部３００は記憶していたデータをBIPサービスで利用されるフォーマットに変換した後、機器１２へ送信する。OBEX処理部９０３と機器１３とのBPPサービスのコネクションが設定されると、サービス変換部３００は記憶していたデータをBPPサービスで利用されるフォーマットに変換した後、機器１３へ送信する。
【０１５５】
以上のサービス変換部３００の動作例では、機器１１からのデータの受信が完了し、機器１１とのコネクションが切断された後に機器１２や機器１３への接続を開始し、データ転送を行うという動作例を示した。しかし、サービス提供装置４のBluetooth管理部９００が機器１１から接続されている状態において、別の機器である機器１２や機器１３への接続が可能であるなら、機器１１からの切断を待つことなく別機器との接続を行っても良い。
【０１５６】
上述した第１の実施形態のサービス提供装置１によれば、サービス種別（プロファイル）の異なる機器間でのデータ交換も可能になるが、サービス提供装置１を介してＮ台の機器へデータを送信する場合には、サービス提供装置１とＮ回コネクションを設定し、データを繰り返し送信する必要がある。
【０１５７】
これに対して、第３の実施形態で示したサービス提供装置５では、サービス提供装置５を介してＮ台の機器へデータを送信する場合にも、サービス提供装置５と一つのコネクションを設定するだけでＮ台に自動的にデータを送信でき、サービス提供装置１を用いる場合よりも効率的なデータ交換が可能となる。
【０１５８】
(第４の実施形態)
第４の実施形態は、複数の機器が提供するそれぞれ種類の異なる複数のサービスを組み合わせることにより、そのいずれとも異なる新たな種別のサービスを提供するものである。
【０１５９】
周辺機器管理部の記憶するサービス情報テーブルに Basic Imaging Profile をサポートし静止画像を映し出すことができる第一のBluetooth 機器と、Headset Profile をサポートし、音声を出力できる第二の Bluetooth 機器があった場合、サービス情報生成部はこれらを組み合わせたサービスをBluetooth における AV(Audio/Video) Profile として Bluetooth 管理部に登録する。この場合も、第1の実施形態において説明したのと同様に、サービス情報生成部はサービスネームにサービスの変換情報を付加することができる。たとえば、第1の実施形態における＜サービスレコード作成例４＞ではサービスネームは “BIP+Headset → AV”  としてAV(“BIP+Headset → AV”) というようなサービスレコードを Bluetooth 管理部に登録する。
【０１６０】
図１６は、本実施の形態におけるサービス情報テーブルの例である。この例においては、機器１１はHeadset Profile のサービスを、機器１２は Basic Imaging Profile のサービスをそれぞれ提供している。本実施の形態においては、これらを組み合わせることにより新たに AV Profile のサービスが生成され他の機器に対して提供される。機器１１の持つサービスもしくは機器１２の持つサービスのいずれかのみではAV Profile のサービスを生成することができないので、サービスを組み合わせる相手の機器を記憶する必要がある。このために、サービスを組み合わる相手機器を記載するフィールドを新たに設けた点が、図７や図８に示したサービス情報テーブルと異なっている。
【０１６１】
機器１２の持つ Basic Imaging Profile のサービスは、Headset Profileと組み合わせて AV Profile として提供する他にも、これまでの実施の形態において説明してきたのと同様に、他の機器のサービスと組み合わせることなく単独で FTP, OPP などのサービスに変換して提供することができる。このようなサービスもテーブルに併せて記載する。なお、プロファイルによってはサーバチャネル番号を必要としないものもあるので、そのようなプロファイルに対してはサーバチャネル番号の項目は空白としている。
【０１６２】
AV Profile をサポートしビデオ画像の出力を希望する第三のBluetooth 機器は、Bluetooth 管理部９００に登録されたAV Profile サービスに対して画像および音声を送出する。Bluetooth 管理部９００は、これを受信すると画像と音声を分割し、画像は第一の Bluetooth 機器へ、音声は第二の Bluetooth 機器へ出力する。このとき、AV Profile では動画像がサポートされているが、Imaging Profile では静止画像のみをサポートしているので、サービス変換部において動画像から静止画像へ、たとえばコマ落としなどによる変換処理を行う。
【０１６３】
サービスを組み合わせる相手は、Bluetooth 機器に限定されるものではない。例えば、周辺機器管理部１００の記憶するサービス情報テーブルに Bluetooth ヘッドセット機器と、LAN で接続されたプロジェクタ機器が登録されている場合、サービス変換部はこれらを組み合わせたサービスを Bluetooth AV Profile として Bluetooth 管理部９００に登録することができる。これにより、音声の出力、画像の出力というそれぞれ単一の機能しか持たず単独ではビデオ信号の出力ができない２つの機器を組み合わせて、一つの Bluetooth AV Profile に準拠した機器として見せることができ、Bluetooth AV Profile に準拠した他の機器からビデオ信号の出力が可能となる。
【０１６４】
このように、第４の実施形態では、複数の機器がそれぞれ提供するサービスを組み合わせて、新規なサービスを生成して提供するため、個々のサービスよりも付加価値の高いサービスを提供できる。
【０１６５】
(第５の実施形態)
第５の実施形態は、周辺機器が提供する単一のサービスを、複数のサービスとして周囲の他の機器に提供するものである。単一のサービスを直接利用できない Bluetooth 機器が、本発明の通信機器の提供する複数のサービスを組み合わせて利用することにより、前記単一のサービスを利用することができるようになる。
【０１６６】
本実施形態における機器の構成は第２の実施形態における図１１と同様である。ネットワーク管理部５００を介してインターネットにメールを送信することが可能である場合、サービス変換部３００はこれを Bluetooth におけるObject Push Profile と File Transfer Profile の２つのプロファイルに分割して Bluetooth 管理部に登録する。周囲の Bluetooth 機器は、メールのあて先情報を vCard に記載して Object Push Profile に従って送り、同時にメールの本文をファイルとして送信すると、メールがインターネットを介して送信される。
【０１６７】
このようにサービスを分割したときは、登録するサービスの名称をObject Push Profile については “メール(アドレス)” 、File Transfer Profile については “メール(本文)” とするなど、相互の対応がわかりやすいものにしておくことが望ましい。このとき、サービス情報生成部によって Bluetooth 管理部に登録されるサービスレコードは、たとえば OPP(“メール送信(アドレス)”,1) と FTP(“メール送信(本文)”,2) のようになる。
【０１６８】
メールを送ろうとする Bluetooth 機器は、サービスレコードに記載のサービスネームから、これらがメールの送信サービスに対応するものであることを知り、これらの２つのサービスのそれぞれに対してコネクションを張り、OPP に対してはメールアドレスを記載した vCard を、FTP に対してはメールの本文をそれぞれ送信する。これらのデータはBluetooth管理部９００によって受信されて、サービス変換部３００に格納される。受信が完了し前記のコネクションが両方とも切断されたことが Bluetooth 管理部９００によって検出されサービス変換部３００に通知されると、サービス変換部３００は格納したメールアドレスと本文とを組み合わせ、ネットワーク管理部５００を介して宛先へと送信する。
【０１６９】
このように、第５の実施形態では、周辺機器が提供する単一のサービスを複数のサービスとして他の機器に提供できるため、そのままでは単一のサービスを利用できない他の機器が、複数のサービスに分けて提供を受けることにより、結果的に元の単一のサービスを受けられるようになる。これにより、プロファイル等の異なる種々のサービスの提供を受けられるようになる。
【０１７０】
上述した実施形態で説明したサービス提供装置は、ハードウェアで構成してもよいし、ソフトウェアで構成してもよい。ソフトウェアで構成する場合には、サービス提供装置の少なくとも一部の機能を実現するプログラムをフロッピーディスクやＣＤ−ＲＯＭ等の記録媒体に収納し、コンピュータに読み込ませて実行させてもよい。記録媒体は、磁気ディスクや光ディスク等の携帯可能なものに限定されず、ハードディスク装置やメモリなどの固定型の記録媒体でもよい。
【０１７１】
また、サービス提供装置の少なくとも一部の機能を実現するプログラムを、インターネット等の通信回線（無線通信も含む）を介して頒布してもよい。さらに、同プログラムを暗号化したり、変調をかけたり、圧縮した状態で、インターネット等の有線回線や無線回線を介して、あるいは記録媒体に収納して頒布してもよい。
【０１７２】
【発明の効果】
以上詳細に説明したように、本発明によれば、周辺機器が提供するサービスも、自己のサービスと同様に提供できるため、サービス種別が異なる各種サービスを提供でき、サービスの利用価値が高まる。
【０１７３】
また、他の通信装置がサポートするサービス（プロファイル）が異なると、各通信装置間で直接データ交換を行うことが不可能であるが、本発明によれば、直接データ交換を行うことが不可能な通信装置間でのデータ交換が可能になる。
【図面の簡単な説明】
【図１】本発明に係るサービス提供装置の第１の実施形態の概略構成を示すブロック図。
【図２】図１のサービス提供装置１と周辺機器１１，１２，１３との通信の様子を示す図。
【図３】サービス情報テーブルの一例を示す図。
【図４】サービス情報の一例を示す図。
【図５】サービスレコードの登録手順の一例を示すフローチャート。
【図６】サービスレコードの削除手順の一例を示すフローチャート。
【図７】サービス情報テーブルの一例を示す図。
【図８】サービス情報テーブルの一例を示す図。
【図９】図１の構成にアプリケーション部を追加したサービス提供装置のブロック図。
【図１０】図１の構成にタイマーを追加したサービス提供装置のブロック図。
【図１１】図１の構成にネットワーク管理部を追加したサービス提供装置のブロック図。
【図１２】サービス提供装置とファイルサーバとがイーサネットに接続されている例を示すネットワーク配置図。
【図１３】図１２のように配置された場合のサービス情報テーブルの一例を示す図。
【図１４】第３の実施形態のサービス提供装置５と周辺機器１１，１２，１３との通信の様子を示す図。
【図１５】第３の実施形態のサービス提供装置５のサービス情報テーブルの一例を示す図。
【図１６】本実施の形態におけるサービス情報テーブルの例を示す図。
【符号の説明】
１００  周辺機器管理部
２００  サービス情報生成部
３００  サービス変換部
４００  タイマー部
５００  ネットワーク管理部
９００  Bluetooth管理部
９０１  SDP処理部
９０２  SDPデータベース
９０３  OBEX処理部
１０００  アプリケーション部
【図１】
0003946650.tif 000002
【図２】
0003946650.tif 000003
【図３】
0003946650.tif 000004
【図４】
0003946650.tif 000005
【図５】
0003946650.tif 000006
【図６】
0003946650.tif 000007
【図７】
0003946650.tif 000008
【図８】
0003946650.tif 000009
【図９】
0003946650.tif 000010
【図１０】
0003946650.tif 000011
【図１１】
0003946650.tif 000012
【図１２】
0003946650.tif 000013
【図１３】
0003946650.tif 000014
【図１４】
0003946650.tif 000015
【図１５】
0003946650.tif 000016
【図１６】
0003946650.tif 000017