(57)【要約】【課題】同一のシリアルリンク上で、コネクション型オブジェクト交換通信のマルチセッション制御を行う。【解決手段】リモート機器から受信したオブジェクト通信パケットヘッダのオペレーションコード／レスポンスコードをセッション管理手段がオペコード管理テーブルから検索することで、サーバ役割でのリクエストパケットを受信したのか、クライアント役割でのレスポンスパケットを受信したのかを判定する。セッション管理手段は、受信したオブジェクト通信パケットの種別に従い、サーバ用セッション情報かクライアント用セッション情報を選択する。オブジェクト交換手段は、受信したオブジェクト通信パケットと選択したセッション情報をもとに、オブジェクト交換処理を行なうことで、同一のシリアルリンク上に、サーバであると同時にクライアントとして動作可能な仮想的なオブジェクト交換のマルチセッションを実現する。【選択図】　図６
2004110345.tif 000002
【特許請求の範囲】
【請求項１】
オブジェクト交換を行うＯＢＥＸ通信のサーバ役割および、クライアント役割を同一のシリアル伝送路の論理リンク上で実現するマルチセッション制御装置においてあって、
シリアル伝送路の論理リンクにＯＢＥＸパケットを送信するデータ送信手段と、
シリアル伝送路の論理リンクからＯＢＥＸパケットを受信するデータ受信手段と、
ＯＢＥＸパケットを解析するパケット解析手段と、
ＯＢＥＸパケットを生成するパケット生成手段と、
リモート機器とのオブジェクト交換処理を行うオブジェクト交換手段と、
サーバ・クライアントそれぞれのセッション情報を保持するセッション情報記憶手段と、
ＯＢＥＸパケットのオペレーションコードを記憶しているオペレーションコード記憶手段と、
サーバ動作時のセッション情報とクライアント動作時のセッション情報を選択するセッション制御手段を備え、
受信したＯＢＥＸパケットのオペレーションコードを解析してリクエストとレスポンスのどちらを受信したかを判定してセッション情報を選択することを特徴とするマルチセッション制御装置。
【請求項２】
前記データ送信手段は複数のシリアル伝送路の論理リンクにデータをし、
前記データ受信手段は複数のシリアル伝送路からデータを受信し、
前記セッション情報記憶手段は複数のシリアル伝送路の論理リンクに対してサーバ・クライアントそれぞれのセッション情報を保持し、
前記セッション制御手段は複数のシリアル伝送路の論理リンクに対してサーバ動作時のセッション情報とクライアント動作時のセッション情報を選択し、
複数のシリアル伝送路の論理リンクから受信したＯＢＥＸパケットのオペレーションコードを解析してリクエストとレスポンスのどちらを受信したかを判定してシリアル伝送路の論理リンク毎にセッション情報を選択することを特徴とする請求項１記載のマルチセッション制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はＩｒＤＡ、Ｂｌｕｅｔｏｏｔｈなどのシリアル伝送路をエミュレートする通信方式を搭載した機器間で、スケジュール、アドレス帳などのオブジェクト・データを交換するデータ転送システムに関する。
【０００２】
【従来の技術】
従来のコネクション型オブジェクト交換通信の通信方法が１９９９年３月１８日にＩｎｆｒａｒｅｄ　Ｄａｔａ　Ａｓｓｏｓｉａｔｉｏｎから発行された「ＩｒＤＡ　Ｏｂｊｅｃｔ　Ｅｘｃｈａｎｇｅ　Ｐｒｏｔｏｃｏｌ　Ｖｅｒｓｉｏｎ１．２」（ＩｒＯＢＥＸ）に記載されている（非特許文献１参照）。
【０００３】
この通信方法により、図４、図５に示すフォーマットのＯＢＥＸパケットによる機器間のオブジェクト交換を行うことができる。
【０００４】
図１は、リンクプロトコル層にＢｌｕｅｔｏｏｔｈのシリアルエミュレートの通信プロトコル（ＲＦＣＯＭＭ）を使用する前述のＩｒＯＢＥＸ通信方式を用いたオブジェクト交換システムの例である。
【０００５】
図１の機器間でサーバ−クライアントとクライアント−サーバの複数セッションを同時に行う場合、図２に示すようにセッション毎にシリアル伝送路が１リンクづつ必要である。
【０００６】
【特許文献１】
特許第３１８０７９０号
【非特許文献１】
「ＩｒＤＡ　Ｏｂｊｅｃｔ　Ｅｘｃｈａｎｇｅ　Ｐｒｏｔｏｃｏｌ　Ｖｅｒｓｉｏｎ１．２」１９９９年３月１８日　Ｉｎｆｒａｒｅｄ　Ｄａｔａ　Ａｓｓｏｓｉａｔｉｏｎ発行
【０００７】
【発明が解決しようとする課題】
上記のような、従来のオブジェクト通信セッション制御方式においては、通信対象機器は、機器間のＯＢＥＸセッション開始時にサーバ動作を行うか、またはクライアント動作を行うかを決定し、シリアル伝送路の論理リンク毎に、サーバ機器はＯＢＥＸのリクエストパケットのみを受信し、クライアント機器はＯＢＥＸのレスポンスパケットのみを受信することになる。
【０００８】
このような従来方法では、同一機器がサーバ動作とクライアント動作の両方を行うような、マルチセッションを実現するにはシリアル伝送路の論理リンクを複数張ることが要求され、機器間の通信リソースが消費されるという問題がある。
【０００９】
そこで、本発明は、受信したＯＢＥＸパケットのオペレーションコードがリクエストとレスポンスのどちらかであるかをセッション制御手段が検出し、サーバ動作時または、クライアント動作時のセッション情報を適切に選択することで、図３に示すようにサーバ動作時および、クライアント動作時のＯＢＥＸパケットが同一のシリアル伝送路の論理リンク上に伝送された場合にも、それぞれのオブジェクト交換処理を正常に行うことを目的としている。
【００１０】
【課題を解決するための手段】
この課題を解決するために第１の構成では、オブジェクト交換を行うＯＢＥＸ通信のサーバ役割および、クライアント役割を同一のシリアル伝送路の論理リンク上で実現するマルチセッション制御装置において、シリアル伝送路の論理リンクにＯＢＥＸパケットを送信するデータ送信手段と、シリアル伝送路の論理リンクからＯＢＥＸパケットを受信するデータ受信手段と、ＯＢＥＸパケットを解析するパケット解析手段と、ＯＢＥＸパケットを生成するパケット生成手段と、リモート機器とのオブジェクト交換処理を行うオブジェクト交換手段と、サーバ・クライアントそれぞれのセッション情報を保持するセッション情報記憶手段と、ＯＢＥＸパケットのオペレーションコードを記憶しているオペレーションコード記憶手段と、サーバ動作時のセッション情報とクライアント動作時のセッション情報を選択するセッション制御手段を備え、受信したＯＢＥＸパケットのオペレーションコードを解析してリクエストとレスポンスのどちらを受信したかを判定してセッション情報を選択することを特徴とする。
【００１１】
また、第２の構成においては、前記データ送信手段は複数のシリアル伝送路の論理リンクにデータを送信し、前記データ受信手段は複数のシリアル伝送路からデータを受信し、前記セッション情報記憶手段は複数のシリアル伝送路の論理リンクに対してサーバ・クライアントそれぞれのセッション情報を保持し、前記セッション制御手段は複数のシリアル伝送路の論理リンクに対してサーバ動作時のセッション情報とクライアント動作時のセッション情報を選択し、複数のシリアル伝送路の論理リンクから受信したＯＢＥＸパケットのオペレーションコードを解析してリクエストとレスポンスのどちらを受信したかを判定してシリアル伝送路の論理リンク毎にセッション情報を選択することを特徴とする。
【００１２】
【発明の実施の形態】
以下、本発明の実施の形態について、図６から図１０を用いて説明する。
【００１３】
（実施の形態１）
図６は本発明の一実施の形態によるマルチセッション制御装置の構成を示す図である。図７は本発明の一実施の形態によるセッション情報記憶手段１０５のセッション情報管理テーブルのデータ構造を示す表である。図８は本発明の一実施の形態によるオペコード記憶手段１０６のオペレーションコード検索テーブルのデータ構造を示す表である。図９は本発明の一実施の形態によるデータ受信時の処理手順を示すフローチャートである。図１０は本発明の一実施の形態によるデータ送信時の処理手順を示すフローチャートである。
【００１４】
まず、本発明の一実施の形態に係るマルチセッション制御装置の構成を説明する。
【００１５】
図６の１２０は、リモート機器とＯＢＥＸ通信を行うシリアル伝送路の論理リンクである。１０１はシリアル伝送路の論理リンクへＯＢＥＸパケットを送信するデータ送信手段である。１０２はシリアル伝送路の論理リンクからＯＢＥＸパケットを受信するデータ受信手段である。１０３はＯＢＥＸパケットに含まれるオペレーションコードまたは、レスポンスコードと各種ヘッダに分解するパケット解析手段である。１０４はリモート機器へ送信するＯＢＥＸパケットを生成するパケット生成手段である。１０５は図７のサーバ・クライアントそれぞれのセッション情報を管理するセッション情報記憶手段である。１０６は図８のオペレーションコード情報を保持するオペレーションコード記憶手段である。１０７はリモート機器から受信したＯＢＥＸパケットのオペレーションコードおよび、レスポンスコードを取得し、ＯＢＥＸパケットがリクエストかレスポンスかを判定し、サーバ用のセッション情報または、クライアント用のセッション情報を取得するセッション制御手段である。１０８はリモート機器から受信したリクエストおよび、レスポンスに従ってオブジェクト交換処理を行うオブジェクト交換手段である。
【００１６】
以上のように構成された本発明の一実施の形態に係るマルチセッション制御装置について、以下、その動作を述べる。
【００１７】
図９を参照して、リモート機器からのＯＢＥＸパケット受信時の動作について説明する。
【００１８】
データ受信手段１０２はリモート機器からの送信データをシリアル伝送路１２０を介して受信する（Ｓ４０１）。
【００１９】
まず、データ受信手段１０２は受信データがＯＢＥＸの１パケット分に達するまでデータ受信処理を繰り返し（Ｓ４０２のＮ）、受信データがＯＢＥＸの１パケット分に達した場合、データ受信手段１０２は受信したＯＢＥＸパケットをセッション制御手段１０７に渡す（Ｓ４０２のＹ）。
【００２０】
次に、Ｓ４０２のデータ受信手段１０２がＯＢＥＸの１パケット分に達したかの判定には、受信したＯＢＥＸパケットに設定されているパケット・レングス（図４、図５にＢｙｔｅ１、２で示されるフィールドで示される）を使用する。
【００２１】
次に、セッション制御手段１０７はＯＢＥＸパケットの先頭１バイト目に設定されているオペレーションコードを取得する（Ｓ４０３）。
【００２２】
次に、セッション制御手段１０７は取得したオペレーションコードがオペレーションコード記憶手段１０６に登録されていないか検索する（Ｓ４０４）。
【００２３】
ここで、Ｓ４０４のオペレーションコード検索において、オペレーションコード記憶手段１０６に登録されている図８のオペレーションコード検索テーブル３００を使用する。
【００２４】
次に、セッション制御手段１０７はＳ４０４のオペレーションコード検索結果で、オペレーションコード記憶手段１０６にオペレーションコードが登録されているか否かを判定し、オペレーションコード記憶手段１０６にオペレーションコードが登録されている場合（Ｓ４０５のＹ）、セッション制御手段１０７はセッション情報記憶手段１０５からサーバ用に保持している図７のセッション情報２１０を取得し（Ｓ４０６）、状態フィールド２０３がリモート機器からのリクエストを受付可能な状態であれば（Ｓ４０７のＹ）、セッション情報２１０の状態フィールド２０３を「リクエスト受信」に更新し、受信したＯＢＥＸパケットをオブジェクト交換手段１０８に渡す（Ｓ４０８）。
【００２５】
その結果、オブジェクト交換手段１０８はパケット解析手段１０３を使用して、受信したＯＢＥＸパケットを解析し、リクエストに従ったオブジェクト交換処理を行う（Ｓ４０９）。
【００２６】
また、Ｓ４０５において、オペレーションコード記憶手段１０６にオペレーションコードが登録されていない場合、セッション制御手段１０７は受信したＯＢＥＸパケットがレスポンスであったと判定する（Ｓ４０５のＮ）。
【００２７】
セッション制御手段１０７はセッション情報記憶手段１０５からクライアント用に保持しているセッション情報２２０を取得し（Ｓ４１０）、図７の状態フィールド２０３がリモート機器からのレスポンスを受付可能な状態であれば（Ｓ４１１のＹ）、セッション情報２２０の状態フィールド２０３を「レスポンス受信」に更新し、受信したＯＢＥＸパケットをオブジェクト交換手段１０８に渡す（Ｓ４１２）。
【００２８】
その結果、オブジェクト交換手段１０８はパケット解析手段１０３を使用して、受信したＯＢＥＸパケットを解析し、レスポンスに従ったオブジェクト交換処理を行う（Ｓ４１３）。
【００２９】
次に、図１０を参照して、リモート機器へのデータ送信時の動作について説明する。
【００３０】
まず、オブジェクト交換手段１０８はパケット生成手段１０４を使用して、リクエストまたは、レスポンスのＯＢＥＸパケットを生成し、セッション制御手段１０７に渡す（Ｓ５０１）。
【００３１】
次に、セッション制御手段１０７はＯＢＥＸパケットに設定されているオペレーションコードを取得する（Ｓ５０２）。セッション制御手段１０７は取得したオペレーションコードがオペレーションコード記憶手段１０６に登録されていないか検索する（Ｓ５０３）。Ｓ５０３のオペレーションコード検索において、セッション制御手段１０７はオペレーションコード記憶手段１０６に登録されている図８のオペレーションコード検索テーブル３００を使用する。
【００３２】
次に、セッション制御手段１０７はＳ５０３のオペレーションコード検索結果で、オペレーションコード記憶手段１０６にオペレーションコードが登録されているか否かを判定し、オペレーションコード記憶手段１０６にオペレーションコードが登録されている場合（Ｓ５０４のＹ）、セッション制御手段１０７はセッション情報記憶手段１０５からクライアント用に保持しているセッション情報２２０を取得し（Ｓ５０５）、図７の状態フィールド２０３がリクエストを送信可能な状態であれば（Ｓ５０６のＹ）、セッション情報２２０の状態フィールド２０３を「リクエスト送信」に更新し、送信するＯＢＥＸパケットをデータ送信手段１０１に渡す（Ｓ５０９）。
【００３３】
ここで、Ｓ５０４において、オペレーションコード記憶手段１０６にオペレーションコードが登録されていない場合、セッション制御手段１０７は、送信するオブジェクト通信パケットがレスポンスであると判定する（Ｓ５０４のＮ）。
【００３４】
セッション制御手段１０７はセッション情報記憶手段１０５からサーバ用に保持しているセッション情報２１０を取得し（Ｓ５０７）、図７の状態フィールド２０３がリモート機器へのレスポンスを送信可能な状態であれば（Ｓ５０８のＹ）、セッション情報２１０の状態フィールド２０３を「レスポンス送信」に更新し、送信するＯＢＥＸパケットをデータ送信手段１０１に渡す（Ｓ５０９）。
【００３５】
その結果、データ送信手段１０１は送信するＯＢＥＸパケットをシリアル伝送路１２０に送信する（Ｓ５１０）。
【００３６】
次に、本発明の実施の形態を具体的な数値を用い、図６〜図８、図１１〜図１６を参照しながら説明する。
【００３７】
図１１〜図１６はオブジェクト通信パケットの送受信を行う際にセッション制御手段１０７が更新する図７のセッション情報管理テーブルの内容を表記したものである。
【００３８】
図６を参照して、データ受信手段１０２はリモート機器からの受信データの２バイト目から２バイト分をＯＢＥＸパケットのレングスと判定し、前記ＯＢＥＸパケット・レングス分のデータを受信するまで受信処理を繰り返す。
【００３９】
まず、データ受信手段１０２はＯＢＥＸの１パケット分を受信した時点で、受信データをセッション制御手段１０７に渡す。
【００４０】
セッション制御手段１０７はＯＢＥＸパケットに設定されているオペレーションコードを取得し、オペレーションコードがオペレーションコード記憶手段１０６に登録されていないか検索する。取得したオペレーションコードが０ｘ８０の場合、図８のオペレーションコード検索テーブル３００のＮｏフィールド３０１が「０」、オペレーションコードフィールド３０２が「０ｘ８０」、Ｏｐｅｒａｔｉｏｎフィールド３０３が「Ｃｏｎｎｅｃｔ」のレコードと一致する。
【００４１】
そのため、セッション制御手段１０７はＯＢＥＸパケットがリクエストと判定し、図７のセッション情報管理テーブル２００からセッション番号フィールド２０１が「０」のサーバ用セッション情報２１０を取得する。
【００４２】
サーバ用セッション情報２１０では、サーバ用セッション情報２１０の状態フィールド２０３は初期状態となっているので、リクエスト受付可能と判断して、サーバ用セッション情報２１０の状態フィールド２０３に「リクエスト受信」、Ｏｐｅｒａｔｉｏｎフィールド２０５に「Ｃｏｎｎｅｃｔ」を設定する（図１１）。
【００４３】
その結果、セッション制御手段１０７は受信したＯＢＥＸパケットをオブジェクト交換手段１０８に渡す。
【００４４】
次に、オブジェクト交換手段１０８はパケット解析手段１０３を使用して、受信したＯＢＥＸパケットを解析し、リクエスト内容に対応したＣｏｎｎｅｃｔレスポンスのＯＢＥＸパケットをパケット生成手段１０４を使用して生成する。
【００４５】
ここで、生成するＯＢＥＸパケットはリクエストの処理成功を示す「０ｘ１０」のレスポンスコードで始まるものとする。オブジェクト交換手段１０８は送信するＯＢＥＸパケットをセッション制御手段１０７に渡す。
【００４６】
次に、セッション制御手段１０７は、送信するＯＢＥＸパケットのレスポンスコード「０ｘ１０」をオペレーションコードと仮定して、オペレーションコード記憶手段１０６に登録されていないか検索する。
【００４７】
ここで、送信するＯＢＥＸパケットのレスポンスコード「０ｘ１０」は、オペコード記憶手段１０６に登録されている図８のオペレーションコード検索テーブル３００に登録されていないので、送信するＯＢＥＸパケットはレスポンスであると判定される。
【００４８】
続いて、セッション制御手段１０７は、セッション情報記憶手段１０５がサーバ用に保持している図１１のセッション情報２１０を取得し、状態フィールド２０３に「レスポンス送信」を設定しＣｏｎｎｅｃｔレスポンスのＣｏｎｎｅｃｔｉｏｎＩＤヘッダ（図４のＢｙｔｅ３ｔｏｎフィールドに格納されている）から取得したＣｏｎｎｅｃｔｉｏｎＩＤ「０ｘ０００００００１」をＣｏｎｎｅｃｔｉｏｎＩＤフィールド２０４に設定する（図１２）。
【００４９】
次に、セッション制御手段１０７は、送信するＯＢＥＸパケットをデータ送信手段１０１に渡し、データ送信手段１０１は、ＯＢＥＸパケットをシリアル伝送路１２０に送信する。
【００５０】
また、オブジェクト交換手段１０８からＯＢＥＸのクライアント動作として、ＣｏｎｎｅｃｔリクエストのＯＢＥＸパケットを送信する場合、オブジェクト交換手段１０８はパケット生成手段１０４を使用して、オペレーションコード「０ｘ８０」のＣｏｎｎｅｃｔリクエストを生成し、セッション制御手段１０７に渡す。
【００５１】
セッション制御手段１０７は、送信するＣｏｎｎｅｃｔリクエストのオペレーションコード「０ｘ１０」がオペコード記憶手段１０６に登録されている図８のオペレーションコード検索テーブル３００に登録されていないか検索する。
【００５２】
検索結果、Ｃｏｎｎｅｃｔレスポンスのレスポンスコード「０ｘ１０」は図８のオペレーションコード検索テーブル３００のＮｏフィールド３０１が「０」、オペレーションコードフィールド３０２が「０ｘ８０」、Ｏｐｅｒａｔｉｏｎフィールド３０３が「Ｃｏｎｎｅｃｔ」のレコードと一致する。
【００５３】
その結果、セッション制御手段１０７はセッション情報記憶手段１０５がクライアント用に保持しているセッション情報２２０を取得する。ここで、クライアント用セッション情報２２０の状態フィールド２０３は初期状態となっているので、リクエスト送信可能と判断して、クライアント用セッション情報２２０の状態フィールド２０３に「リクエスト送信」、Ｏｐｅｒａｔｉｏｎフィールド２０５に「Ｃｏｎｎｅｃｔ」を設定する（図１３）。
【００５４】
また、リモート機器からＣｏｎｎｅｃｔレスポンスを受信した場合、データ受信手段１０２は受信したオブジェクト通信パケットをセッション制御手段１０７に渡す。
【００５５】
この場合、セッション制御手段１０７は、オブジェクト通信パケットに設定されているレスポンスコードをオペレーションコードと仮定して、オペコード記憶手段１０６に登録されている図８のオペレーションコード検索テーブル３００に登録されていないか検索する。取得したオペレーションコードは「０ｘ１０」なので、図８のオペレーションコード検索テーブル３００からの検索に失敗する。
【００５６】
その結果、セッション制御手段１０７は受信したオブジェクト通信パケットがレスポンスと判定し、図１３のセッション情報管理テーブル２００からセッション番号フィールド２０１が「１」のクライアント用セッション情報２２０を取得する。
【００５７】
ここで、クライアント用セッション情報２２０の状態フィールド２０３は「リクエスト送信」となっているので、レスポンス受付可能と判断してクライアント用セッション情報２２０の状態フィールド２０３に「レスポンス受信」、ＣｏｎｎｅｃｔｉｏｎＩＤフィールド２０４にＣｏｎｎｅｃｔレスポンスに含まれるＣｏｎｎｅｃｔｉｏｎＩＤヘッダから取得したＣｏｎｎｅｃｔｉｏｎＩＤ「０ｘ０００００００２」を設定する（図１４）。
【００５８】
その後、セッション制御手段１０７は、受信したＯＢＥＸパケットをオブジェクト交換手段１０８に渡す。
【００５９】
オブジェクト交換手段１０８では、パケット解析手段１０３を使用して、受信したＯＢＥＸパケットを解析し、Ｃｏｎｎｅｃｔが成功したことを確認し、オブジェクト交換のためのＰｕｔリクエストのＯＢＥＸパケットをパケット生成手段１０４を使用して生成する。ここで、生成したＰｕｔリクエストは「０ｘ８２」のオペレーションコードで始まるデータである。オブジェクト交換手段１０８は送信するＰｕｔリクエストのＯＢＥＸパケットをセッション制御手段１０７に渡す。
【００６０】
その後、セッション制御手段１０７は、送信するＰｕｔリクエスト送信のオペレーションコードを取得し、オペレーションコード「０ｘ８２」がオペコード記憶手段１０６に登録されている図８のオペレーションコード検索テーブル３００に登録されていないか検索する。
【００６１】
ここで、取得したオペレーションコードが「０ｘ８２」なので、図８のオペレーションコード検索テーブル３００のＮｏフィールド３０１が「３」、オペレーションコードフィールド３０２が「０ｘ８２」、Ｏｐｅｒａｔｉｏｎフィールド３０３が「Ｐｕｔ」のレコードと一致する。
【００６２】
これを受けて、セッション制御手段１０７は受信データがＯＢＥＸリクエストと判定し、図７のセッション情報管理テーブル２００からセッション番号フィールド２０１が「１」のクライアント用セッション情報２２０を取得する。ここで、クライアント用セッション情報２２０の状態フィールド２０３は「レスポンス受信」となっているので、リクエスト送信可能と判断してクライアント用セッション情報２２０の状態フィールド２０３に「リクエスト受信」、Ｏｐｅｒａｔｉｏｎフィールド２０５に「Ｐｕｔ」を設定する（図１５）。
【００６３】
最後に、セッション制御手段１０７は送信するＰｕｔリクエストをデータ送信手段１０１に渡し、データ送信手段１０１はシリアル伝送路１２０に送信する。
【００６４】
また別に、リモート機器からＰｕｔレスポンスを受信した場合、データ受信手段１０２は受信したＯＢＥＸパケットをセッション制御手段１０７に渡す。
【００６５】
セッション制御手段１０７はオブジェクト通信パケットに設定されているレスポンスコードをオペレーションコードと仮定して取得し、オペレーションコード記憶手段１０６に登録されていないか検索する。
【００６６】
ここで、取得したオペレーションコードは「０ｘ１０」なので、オペコード記憶手段１０６に登録されている図８のオペレーションコード検索テーブル３００からの検索に失敗する。
【００６７】
その結果、セッション制御手段１０７は、受信したオブジェクト通信パケットがレスポンスと判定し、図１５のセッション情報管理テーブル２００からセッション番号フィールド２０１が「１」のクライアント用セッション情報２２０を取得する。クライアント用セッション情報２２０の状態フィールド２０３は「リクエスト送信」となっているので、レスポンス受付可能と判断して、クライアント用セッション情報２２０の状態フィールド２０３に「レスポンス受信」を設定する（図１６）。
【００６８】
次に、セッション制御手段１０７は受信したＯＢＥＸパケットをオブジェクト交換手段１０８に渡す。オブジェクト交換手段１０８はパケット解析手段１０３を使用して、受信したＯＢＥＸパケットを解析し、Ｐｕｔが成功したことを確認して次のオブジェクト交換の処理が必要であれば、前述のＰｕｔ処理と同様の手順を繰り返す。
【００６９】
なお、以上の説明では、シリアル伝送路を特に指定していないが、シリアル伝送路がＲＳ−２３２Ｃ、赤外線通信（ＩｒＤＡ）、Ｂｌｕｅｔｏｏｔｈ、ＬＡＮなどの場合についても同様に実施可能である。
【００７０】
（実施の形態２）
図１７は本発明の実施の形態２に係る複数のシリアル伝送路の論理リンクに対するマルチセッション制御装置の構成図である。図１８は図１７のセッション情報記憶手段１０５が管理するセッション情報管理テーブルである。図１９はリモート機器からデータ受信時の処理手順を示すフローチャートである。図２０はリモート機器へのデータ送信時の処理手順を示すフローチャートである。
【００７１】
まず、本発明の一実施の形態に係る複数のシリアル伝送路の論理リンクに対するマルチセッション制御装置の構成を説明する。
【００７２】
図１７の１２０ａと１２０ｂはそれぞれ異なるリモート機器とＯＢＥＸ通信を行うシリアル伝送路の論理リンクである。１０１ａは複数のシリアル伝送路の論理リンクへデータを送信するデータ送信手段である。１０２ａは複数のシリアル伝送路の論理リンクからデータを受信するデータ受信手段である。１０５ａは図１８の複数のシリアル伝送路の論理リンクのサーバ・クライアントそれぞれのセッション情報を管理するセッション情報記憶手段である。１０７ａはリモート機器から受信したＯＢＥＸパケットのオペレーションコードおよび、レスポンスコードを取得し、受信したＯＢＥＸパケットがリクエストかレスポンスかを判定し、受信したシリアル伝送路の論理リンクのサーバ用のセッション情報または、クライアント用のセッション情報を取得するセッション制御手段である。
【００７３】
以上のように構成された本発明の一実施の形態に係る複数のシリアル伝送路の論理リンクに対するマルチセッション制御方式について、以下にその動作を述べる。
【００７４】
図１９を参照して、リモート機器からのデータ受信時の動作について説明する。
【００７５】
データ受信手段１０２ａはリモート機器からの送信データをシリアル伝送路１２０ａまたは、シリアル伝送路１２０ｂを介して受信する（Ｓ６０１）。
【００７６】
データ受信手段１０２ａはシリアル伝送路１２０ａまたは、シリアル伝送路１２０ｂからの受信データがＯＢＥＸの１パケット分に達するまでデータ受信処理を繰り返し（Ｓ６０２のＮ）、いずれかの受信データがＯＢＥＸの１パケット分に達した場合、データ受信手段１０２ａは受信したＯＢＥＸパケットとシリアル伝送路の伝送路ＩＤをセッション制御手段１０７ａに渡す（Ｓ６０２のＹ）。
【００７７】
ここで、Ｓ６０２のデータ受信手段１０２ａがＯＢＥＸの１パケット分に達したかの判定には、受信したＯＢＥＸパケットに設定されているパケット・レングスを使用する。
【００７８】
セッション制御手段１０７ａは、ＯＢＥＸパケットに設定されているオペレーションコードを取得する（Ｓ４０３）。
【００７９】
セッション制御手段１０７ａは、取得したオペレーションコードがオペレーションコード記憶手段１０６に登録されていないか検索する（Ｓ４０４）。
【００８０】
セッション制御手段１０７ａは、Ｓ４０４のオペレーションコード検索結果で、オペレーションコード記憶手段１０６にオペレーションコードが登録されているか否かを判定し、オペレーションコード記憶手段１０６にオペレーションコードが登録されている場合、セッション制御手段１０７ａはセッション情報記憶手段１０５ａから、伝送路ＩＤが一致するサーバ用に保持している図１８のセッション情報２１０を取得し（Ｓ６０６）、状態フィールド２０３がリモート機器からのリクエストを受付可能な状態であれば（Ｓ４０７のＹ）、セッション情報２１０の状態フィールド２０３を「リクエスト受信」に更新し、受信したＯＢＥＸパケットをオブジェクト交換手段１０８に渡す（Ｓ４０８）。
【００８１】
オブジェクト交換手段１０８はパケット解析手段１０３を使用して、受信したＯＢＥＸパケットを解析し、リクエストに従ったオブジェクト交換処理を行う（Ｓ４０９）。
【００８２】
Ｓ４０５において、オペレーションコード記憶手段１０６にオペレーションコードが登録されていない場合、セッション制御手段１０７ａは、受信したＯＢＥＸパケットがレスポンスであったと判定する。
【００８３】
その結果、セッション制御手段１０７ａはセッション情報記憶手段１０５ａから、伝送路ＩＤが一致するクライアント用に保持している図１８のセッション情報２２０を取得し（Ｓ６１０）、状態フィールド２０３がリモート機器からのレスポンスを受付可能な状態であれば（Ｓ４１１のＹ）、セッション情報２２０の状態フィールド２０３を「レスポンス受信」に更新し、受信したＯＢＥＸパケットをオブジェクト交換手段１０８に渡す（Ｓ４１２）。オブジェクト交換手段１０８はパケット解析手段１０３を使用して、受信したＯＢＥＸパケットを解析し、レスポンスに従ったオブジェクト交換処理を行う（Ｓ４１３）。
【００８４】
次に、図２０を参照して、リモート機器へのデータ送信時の動作について説明する。先ず、オブジェクト交換手段１０８はパケット生成手段１０４を使用して、リクエスト、または、レスポンスのＯＢＥＸパケットを生成し、生成したＯＢＥＸパケットと通信相手を特定する伝送路ＩＤをセッション制御手段１０７ａに渡す（Ｓ７０１）。
【００８５】
次に、セッション制御手段１０７ａは、ＯＢＥＸパケットに設定されているオペレーションコードを取得する（Ｓ５０２）。
【００８６】
次に、セッション制御手段１０７ａは取得したオペレーションコードがオペレーションコード記憶手段１０６に登録されていないか検索する（Ｓ５０３）。
【００８７】
ここで、セッション制御手段１０７ａはＳ５０３のオペレーションコード検索結果で、オペレーションコード記憶手段１０６にオペレーションコードが登録されているか否かを判定し、オペレーションコード記憶手段１０６に登録されている図８のオペレーションコード検索テーブル３００にオペレーションコードが登録されている場合、セッション制御手段１０７ａはセッション情報記憶手段１０５ａから伝送路ＩＤの一致するクライアント用に保持しているセッション情報２２０を取得し（Ｓ７０５）、図１８のセッション情報２２０の状態フィールド２０３がリクエストを送信可能な状態であれば、状態フィールド２０３を「リクエスト送信」に更新し、送信するＯＢＥＸパケットをデータ送信手段１０１ａに渡す（Ｓ５０９）。
【００８８】
Ｓ５０４において、オペレーションコード記憶手段１０６にオペレーションコードが登録されていない場合、セッション制御手段１０７ａは送信するＯＢＥＸパケットがレスポンスであると判定する。
【００８９】
セッション制御手段１０７ａはセッション情報記憶手段１０５ａから伝送路ＩＤの一致するサーバに保持している図１８のセッション情報２１０を取得し（Ｓ７０７）、状態フィールド２０３がリモート機器へのレスポンスを送信可能な状態であれば、セッション情報２１０の状態フィールド２０３を「レスポンス送信」に更新し、送信するＯＢＥＸパケットをデータ送信手段１０１ａに渡す（Ｓ５０９）。
【００９０】
データ送信手段１０１ａは送信するＯＢＥＸパケットをシリアル伝送路１２０ａまたは、シリアル伝送路１２０ｂに送信する（Ｓ５１０）。
【００９１】
次に、本発明の実施の形態を具体的な数値を用い、図８、図１８、図２１〜図２６を参照しながら説明する。
【００９２】
図２１〜図２６はＯＢＥＸパケットの送受信を行う際にセッション制御手段１０７ａが更新する図１８のセッション情報管理テーブルの内容を表記したものである。
【００９３】
図１７を参照して、データ受信手段１０２ａはリモート機器からの送信データをシリアル伝送路１２０ａから受信し、受信したデータの２バイト目から２バイト分をＯＢＥＸパケットのレングスと判定し、前記ＯＢＥＸパケット・レングス分のデータを受信するまで、受信処理を繰り返す。
【００９４】
ここで、シリアル伝送路１２０ａからのデータ受信中にシリアル伝送路１２０ｂからデータ受信した場合は、それぞれ受信処理を行う。
【００９５】
データ受信手段１０２ａは、ＯＢＥＸの１パケット分を受信した時点で、受信データとシリアル伝送路１２０ａの伝送路ＩＤ「１」をセッション制御手段１０７ａに渡す。
【００９６】
セッション制御手段１０７ａはＯＢＥＸパケットに設定されているオペレーションコードを取得し、オペレーションコードがオペレーションコード記憶手段１０６に登録されていないか検索する。
【００９７】
検索結果、取得したオペレーションコードが０ｘ８０の場合、図８のオペレーションコード検索テーブル３００のＮｏフィールド３０１が「０」、オペレーションコードフィールド３０２が「０ｘ８０」、Ｏｐｅｒａｔｉｏｎフィールド３０３が「Ｃｏｎｎｅｃｔ」のレコードと一致する。
【００９８】
セッション制御手段１０７ａは、受信したＯＢＥＸパケットをリクエストと判定し、図１８のセッション情報管理テーブル２００から伝送路ＩＤフィールド２０６が「１」で、セッション番号フィールド２０１が「０」のサーバ用セッション情報２１０を取得する。
【００９９】
ここで、サーバ用セッション情報２１０の状態フィールド２０３は初期状態となっているので、リクエスト受付可能と判断して、サーバ用セッション情報２１０の状態フィールド２０３に「リクエスト受信」、Ｏｐｅｒａｔｉｏｎフィールド２０５に「Ｃｏｎｎｅｃｔ」を設定する（図２１）。
【０１００】
ついで、セッション制御手段１０７ａは、受信したＯＢＥＸパケットと伝送路ＩＤをオブジェクト交換手段１０８に渡す。
【０１０１】
次に、オブジェクト交換手段１０８はパケット解析手段１０３を使用して、受信したＯＢＥＸパケットを解析し、リクエスト内容に対応したＣｏｎｎｅｃｔレスポンスのＯＢＥＸパケットをパケット生成手段１０４を使用して生成する。
【０１０２】
生成したＣｏｎｎｅｃｔレスポンスは、リクエストの処理成功を示す「０ｘ１０」のレスポンスコードで始まるものとする。
【０１０３】
オブジェクト交換手段１０８は、送信するＣｏｎｎｅｃｔレスポンスと伝送路ＩＤをセッション制御手段１０７ａに渡す。
【０１０４】
ここで、セッション制御手段１０７ａは、送信するＣｏｎｎｅｃｔレスポンスのレスポンスコード「０ｘ１０」をオペレーションコードと仮定して、オペレーションコード記憶手段１０６に登録されていないか検索する。その結果、Ｃｏｎｎｅｃｔレスポンスのレスポンスコード「０ｘ１０」はオペレーションコード記憶手段１０６に登録されていないので、送信するＯＢＥＸパケットがレスポンスであると判定する。
【０１０５】
セッション制御手段１０７ａはセッション情報記憶手段１０５ａが伝送路ＩＤ「１」のサーバ用に保持しているセッション情報２１０を取得し、状態フィールド２０３に「レスポンス送信」、ＣｏｎｎｅｃｔレスポンスのＣｏｎｎｅｃｔｉｏｎＩＤヘッダから取得したＣｏｎｎｅｃｔｉｏｎＩＤ「０ｘ０００００００１」をＣｏｎｎｅｃｔｉｏｎＩＤフィールド２０４に設定する（図２２）。
【０１０６】
セッション制御手段１０７ａは送信するＯＢＥＸパケットと伝送路ＩＤをデータ送信手段１０１ａに渡し、データ送信手段１０１ａはシリアル伝送路１２０ａに送信する。
【０１０７】
ここで、オブジェクト交換手段１０８からシリアル伝送路１２０ｂのＯＢＥＸのクライアント動作として、Ｃｏｎｎｅｃｔリクエストを送信する場合、オブジェクト交換手段１０８はパケット生成手段１０４を使用して、オペレーションコード「０ｘ８０」のＣｏｎｎｅｃｔリクエストを生成し、伝送路ＩＤ「２」と共にセッション制御手段１０７ａに渡す。ここで、セッション制御手段１０７ａは、送信するＣｏｎｎｅｃｔリクエストのオペレーションコード「０ｘ１０」をオペレーションコード記憶手段１６０６に登録されていないか検索する。
【０１０８】
Ｃｏｎｎｅｃｔレスポンスのレスポンスコード「０ｘ１０」は、図８のオペレーションコード検索テーブル３００のＮｏフィールド３０１が「０」、オペレーションコードフィールド３０２が「０ｘ８０」、Ｏｐｅｒａｔｉｏｎフィールド３０３が「Ｃｏｎｎｅｃｔ」のレコードと一致する。従って、セッション制御手段１０７ａは図２２のセッション情報記憶手段１０５ａが伝送路ＩＤ「２」のクライアント用に保持しているセッション情報２４０を取得する。
【０１０９】
クライアント用セッション情報２４０の状態フィールド２０３は初期状態となっているので、リクエスト送信可能と判断して、クライアント用セッション情報２４０の状態フィールド２０３に「リクエスト送信」を設定し、Ｏｐｅｒａｔｉｏｎフィールド１７０５に「Ｃｏｎｎｅｃｔ」を設定する（図２３）。
【０１１０】
シリアル伝送路１２０ｂのリモート機器からＣｏｎｎｅｃｔレスポンスのＯＢＥＸパケットを受信した場合、データ受信手段１０２ａは受信したＯＢＥＸパケットと伝送路ＩＤ「２」をセッション制御手段１０７ａに渡す。
【０１１１】
セッション制御手段１０７ａはＯＢＥＸパケットに設定されているレスポンスコードをオペレーションコードと仮定して取得し、オペレーションコード記憶手段１０６に登録されていないか検索する。
【０１１２】
取得したオペレーションコードが「０ｘ１０」の場合、図８のオペレーションコード検索テーブル３００からの検索に失敗する。
【０１１３】
その結果、セッション制御手段１０７ａは受信したＯＢＥＸパケットがレスポンスと判定し、図２３のセッション情報管理テーブル２００から伝送路ＩＤフィールドが「２」のクライアント用セッション情報２４０を取得する。クライアント用セッション情報２４０の状態フィールド２０３は「リクエスト送信」となっているので、レスポンス受付可能と判断して、クライアント用セッション情報２４０の状態フィールド２０３に「レスポンス受信」、ＣｏｎｎｅｃｔｉｏｎＩＤフィールド１０５ａにＣｏｎｎｅｃｔレスポンスに含まれるＣｏｎｎｅｃｔｉｏｎＩＤヘッダから取得したＣｏｎｎｅｃｔｉｏｎＩＤ「０ｘ０００００００２」を設定する（図２４）。
【０１１４】
次に、セッション制御手段１０７ａは受信したＯＢＥＸパケットをオブジェクト交換手段１０８に渡す。
【０１１５】
オブジェクト交換手段１０８は、パケット解析手段１０３を使用して、受信したＯＢＥＸパケットを解析し、Ｃｏｎｎｅｃｔが成功したことを確認し、オブジェクト交換のためのＰｕｔリクエストのＯＢＥＸパケットをパケット生成手段１６０４を使用して生成する。生成したＰｕｔリクエストは、「０ｘ８２」のオペレーションコードで始まるデータである。
【０１１６】
オブジェクト交換手段１０８は送信するＰｕｔリクエストのＯＢＥＸパケットと、伝送路ＩＤ「２」をセッション制御手段１０７ａに渡す。セッション制御手段１０７ａは、送信するＰｕｔリクエスト送信のオペレーションコードを取得し、オペレーションコード「０ｘ８２」が、オペレーションコード記憶手段１０６に登録されていないか検索する。
【０１１７】
取得したオペレーションコードが０ｘ８２なので、図８のオペレーションコード検索テーブル３００のＮｏフィールド３０１が「３」、オペレーションコードフィールド３０２が「０ｘ８２」、Ｏｐｅｒａｔｉｏｎフィールド３０３が「Ｐｕｔ」のレコードと一致する。
【０１１８】
ここで、セッション制御手段１０７ａは受信したＯＢＥＸパケットがリクエストと判定し、図２４のセッション情報管理テーブル２００から伝送路ＩＤフィールド２０６が「２」のクライアント用セッション情報２４０を取得する。クライアント用セッション情報２４０の状態フィールド２０３は「レスポンス受信」となっているので、リクエスト送信可能と判断して、クライアント用セッション情報２４０の状態フィールド２０３に「リクエスト受信」、Ｏｐｅｒａｔｉｏｎフィールド２０５に「Ｐｕｔ」を設定する（図２５）。
【０１１９】
次に、セッション制御手段１０７ａは送信するＯＢＥＸパケットと伝送路ＩＤをデータ送信手段１０１ａに渡し、データ送信手段１０１ａはシリアル伝送路１２０ｂに送信する。
【０１２０】
シリアル伝送路１２０ｂに接続されたリモート機器からＰｕｔレスポンスを受信した場合、データ受信手段１０２ａは、受信したＯＢＥＸパケットと伝送路ＩＤ「２」をセッション制御手段１０７ａに渡す。
【０１２１】
セッション制御手段１０７ａはＯＢＥＸパケットの先頭１バイト目に設定されているレスポンスコードをオペレーションコードと仮定して取得し、オペレーションコード記憶手段１０６に登録されていないか検索する。
【０１２２】
ここで、取得したオペレーションコードは「０ｘ１０」なので、図８のオペレーションコード検索テーブル３００からの検索に失敗する。セッション制御手段１０７ａは、受信したＯＢＥＸパケットがレスポンスと判定し、図２５のセッション情報管理テーブル２００から伝送路ＩＤが「２」のクライアント用セッション情報２４０を取得する。
【０１２３】
クライアント用セッション情報２４０の状態フィールド２０３は「リクエスト送信」となっているので、レスポンス受付可能と判断して、クライアント用セッション情報２４０の状態フィールド２０３に「レスポンス受信」を設定する（図２６）。
【０１２４】
セッション制御手段１０７ａは受信したＯＢＥＸパケットをオブジェクト交換手段１０８に渡す。
【０１２５】
オブジェクト交換手段１０８はパケット解析手段１０３を使用して、受信したＯＢＥＸパケットを解析し、Ｐｕｔが成功したことを確認し、次のオブジェクト交換の処理が必要であれば、前述のＰｕｔ処理と同様の手順を繰り返す。
【０１２６】
なお、以上の説明では、シリアル伝送路を特に指定していないが、シリアル伝送路がＲＳ−２３２Ｃ、赤外線通信（ＩｒＤＡ）、Ｂｌｕｅｔｏｏｔｈ、ＬＡＮなどの場合についても同様に実施可能である。
【０１２７】
【発明の効果】
以上のように第１の発明によれば、セッション制御手段が受信したオブジェクト通信パケットのオペレーションコードにより、サーバ動作時、クライアント動作時のセッション情報を選択するので、１：１通信時のシリアル伝送路の論理リンク上に仮想的なオブジェクト交換のマルチセッションを実現できるため、機器間のシリアル伝送路確保のためのリソースが少なくて済むという効果が得られる。
【０１２８】
また、第２の発明によれば、セッション制御手段がシリアル伝送路の論理リンク毎に、受信したオブジェクト通信パケットのオペレーションコードにより、サーバ動作時、クライアント動作時のセッション情報を選択するので、１：Ｎ通信時の複数のシリアル伝送路の論理リンクそれぞれに対して、仮想的なオブジェクト交換のマルチセッションを実現できるため、機器間のシリアル伝送路確保のためのリソースが少なくて済むという効果が得られる。
【図面の簡単な説明】
【図１】Ｂｌｕｅｔｏｏｔｈによるシリアルエミュレートの通信レイヤ「ＲＦＣＯＭＭ」を使用したオブジェクト交換システムにおいて、サーバ・クライアントの複数セッションを行う場合のシリアル伝送路の論理リンク数を示す概念図
【図２】従来のオブジェクト交換を行う機器間のセッションとシリアル伝送路の関係を示す概念図
【図３】本発明のオブジェクト交換を行う機器間のセッションとシリアル伝送路の関係を示す概念図
【図４】オブジェクト通信のリクエストパケットのフォーマットを示す図
【図５】オブジェクト通信のレスポンスパケットのフォーマットを示す図
【図６】本発明の一実施の形態によるマルチセッション制御装置の構成を示す図
【図７】本発明の一実施の形態によるセッション情報記憶手段１０５のセッション情報管理テーブルのデータ構造を示す図
【図８】本発明の一実施の形態によるオペコード記憶手段１０６のオペレーションコード検索テーブルのデータ構造を示す図
【図９】本発明の一実施の形態によるデータ受信時の処理手順を示すフローチャート
【図１０】本発明の一実施の形態によるデータ送信時の処理手順を示すフローチャート
【図１１】本発明の一実施の形態によるセッション情報管理テーブル２００の、ある時点での内容を表す図
【図１２】本発明の一実施の形態によるセッション情報管理テーブル２００の、ある時点での内容を表す図
【図１３】本発明の一実施の形態によるセッション情報管理テーブル２００の、ある時点での内容を表す図
【図１４】本発明の一実施の形態によるセッション情報管理テーブル２００の、ある時点での内容を表す図
【図１５】本発明の一実施の形態によるセッション情報管理テーブル２００の、ある時点での内容を表す図
【図１６】本発明の一実施の形態によるセッション情報管理テーブル２００の、ある時点での内容を表す図
【図１７】本発明の一実施の形態による複数のシリアル伝送路の論理リンクに対するマルチセッション制御装置の構成を示す図
【図１８】本発明の一実施形態によるセッション情報記憶手段１０５のセッション情報管理テーブルのデータ構造を示す図
【図１９】本発明の一実施の形態によるデータ受信時の処理手順を示すフローチャート
【図２０】本発明の一実施の形態によるデータ送信時の処理手順を示すフローチャート
【図２１】本発明の一実施の形態によるセッション情報管理テーブル２００の、ある時点での内容を表す図
【図２２】本発明の一実施の形態によるセッション情報管理テーブル２００の、ある時点での内容を表す図
【図２３】本発明の一実施の形態によるセッション情報管理テーブル２００の、ある時点での内容を表す図
【図２４】本発明の一実施の形態によるセッション情報管理テーブル２００の、ある時点での内容を表す図
【図２５】本発明の一実施の形態によるセッション情報管理テーブル２００の、ある時点での内容を表す図
【図２６】本発明の一実施の形態によるセッション情報管理テーブル２００の、ある時点での内容を表す図
【符号の説明】
１００　本発明の一実施の形態を示すマルチセッション制御装置
１０１　データ送信手段
１０２　データ受信手段
１０３　パケット解析手段
１０４　パケット生成手段
１０５　セッション情報記憶手段
１０６　オペレーションコード記憶手段
１０７　セッション制御手段
１０８　オブジェクト交換手段
１２０　シリアル伝送路
【図１】
2004110345.tif 000003
【図２】
2004110345.tif 000004
【図３】
2004110345.tif 000005
【図４】
2004110345.tif 000006
【図５】
2004110345.tif 000007
【図６】
2004110345.tif 000008
【図７】
2004110345.tif 000009
【図８】
2004110345.tif 000010
【図９】
2004110345.tif 000011
【図１０】
2004110345.tif 000012
【図１１】
2004110345.tif 000013
【図１２】
2004110345.tif 000014
【図１３】
2004110345.tif 000015
【図１４】
2004110345.tif 000016
【図１５】
2004110345.tif 000017
【図１６】
2004110345.tif 000018
【図１７】
2004110345.tif 000019
【図１８】
2004110345.tif 000020
【図１９】
2004110345.tif 000021
【図２０】
2004110345.tif 000022
【図２１】
2004110345.tif 000023
【図２２】
2004110345.tif 000024
【図２３】
2004110345.tif 000025
【図２４】
2004110345.tif 000026
【図２５】
2004110345.tif 000027
【図２６】
2004110345.tif 000028