(57)【要約】【課題】  上位装置であるデータ転送先の情報処理装置が、自らの状況に応じてデータの転送タイミングを制御できる通信処理装置を提供する。【解決手段】  転送先の情報処理装置による制御に基づいてフラグを変更するフラグ管理部と、転送元の端末装置から転送先の情報処理装置へ転送する受信データを逐次記憶する記憶部と、フラグ管理部のフラグに基づき、記憶部の受信データを情報処理端末へ転送するタイミングを制御する制御部とを備える通信処理装置。【選択図】      図２
2016151895.tif 000002
【特許請求の範囲】
【請求項１】
転送先の情報処理装置による制御に基づいてフラグを変更するフラグ管理部と、
転送元の端末装置から転送先の情報処理装置へ転送する受信データを逐次記憶する記憶部と、
前記フラグ管理部のフラグに基づき、前記記憶部の受信データを前記情報処理端末へ転送するタイミングを制御する制御部と
を備える通信処理装置。
【請求項２】
前記フラグ管理部が転送先の情報処理装置の制御によりフラグの設定を変更し、
前記制御部が、前記フラグ管理部のフラグが第１の状態の場合、前記記憶部が記憶する受信データの合計データサイズが所定のデータサイズに到達した場合、もしくは前回受信データを転送してから所定の時間が経過した場合、前記記憶部が記憶する全ての受信データを前記情報処理端末へ転送し、また、前記フラグ管理部のフラグが第２の状態の場合、前記記憶部が受信データを記憶するごとに、受信データを前記情報処理端末へ転送する請求項１に記載の通信処理装置。
【請求項３】
前記フラグ管理部のフラグが第２の状態の場合、前記制御部の”ＴＣＰ＿ＮＯＤＥＬＡＹ”オプション機能が転送先の情報処理装置の制御により有効に設定される請求項２に記載の通信処理装置。
【請求項４】
フラグ管理部が転送先の情報処理装置による制御に基づいてフラグを変更し、
記憶部が転送元の端末装置から転送先の情報処理装置へ転送する受信データを逐次記憶し、
制御部が前記フラグ管理部のフラグに基づき、前記記憶部の受信データを前記情報処理端末へ転送するタイミングを制御する
通信処理装置のデータ転送方法。
【請求項５】
前記フラグ管理部が転送先の情報処理装置の制御によりフラグの設定を変更し、
前記制御部が、前記フラグ管理部のフラグが第１の状態の場合、前記記憶部が記憶する受信データの合計データサイズが所定のデータサイズに到達した場合、もしくは前回受信データを転送してから所定の時間が経過した場合、前記記憶部が記憶する全ての受信データを前記情報処理端末へ転送し、また、前記フラグ管理部のフラグが第２の状態の場合、前記記憶部が受信データを記憶するごとに、受信データを前記情報処理端末へ転送する請求項４に記載の通信処理装置のデータ転送方法。
【請求項６】
前記フラグ管理部のフラグが第２の状態の場合、前記制御部の”ＴＣＰ＿ＮＯＤＥＬＡＹ”オプション機能が転送先の情報処理装置の制御により有効に設定される請求項５に記載の通信処理装置のデータ転送方法。
【請求項７】
転送先の情報処理装置による制御に基づいてフラグを変更する処理と、
転送元の端末装置から転送先の前記情報処理装置へ転送する受信データを逐次、記憶部に記憶する処理と、
前記フラグに基づき、前記受信データを前記情報処理装置へ転送するタイミングを制御する処理と
をコンピュータに実行させるプログラム。
【請求項８】
前記フラグが第１の状態の場合、前記記憶部が記憶する受信データの合計データサイズが所定のデータサイズに到達した場合、もしくは前回受信データを転送してから所定の時間が経過した場合、前記記憶部が記憶する全ての受信データを前記情報処理装置へ転送し、また、前記フラグが第２の状態の場合、前記記憶部が受信データを記憶するごとに、受信データを前記情報処理装置へ転送する処理をコンピュータに実行させる請求項７に記載のプログラム。
【請求項９】
前記フラグが第２の状態の場合、”ＴＣＰ＿ＮＯＤＥＬＡＹ”オプション機能が前記情報処理装置の制御に基づいて有効に設定される請求項８に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、上位装置と下位装置とのデータ転送を制御する通信処理装置及び通信処理装置のデータ転送方法およびそのためのプログラムに関する。
【背景技術】
【０００２】
通信処理装置において、データの転送を制御する技術が知られている。この技術は、通信またはデータ処理の状況に基づき上位装置へデータを転送するタイミングまたはデータ量を制御する。
【０００３】
この種の通信処理装置の一例が特許文献１及び特許文献２に記載されている。特許文献１に記載された技術において、状況に応じて送信装置が送信データをプリンタへファイル単位で転送するかページ単位で転送するかのどちらかに切り替える。これにより、スループットの低下及び最初のプリント出力が得られるまでの時間の遅延を低減することができる。
【０００４】
また、特許文献２に記載された技術において、各ノードが送信情報を含むデータを受信した際、送信情報に即時送信フラグあるいは即時送信を示す優先度を検出する。この場合、各ノードは、即時送信フラグあるいは優先度を含む即時データの送信先サーバと接続を行う。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平０９−２２２９６６号公報
【特許文献２】特開２００３−９２５９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した特許文献１に記載された技術は、印刷のためのデータを送信する送信装置が送信単位を手動で切り替える。もしくは送信装置が共通回線の状況を確認し、自動で転送データの単位を切り替える。共通回線とは、複数のプリンタと接続するネットワークである。共通回線が使用状態である場合、共通回線に接続するいずれかのプリンタ（上位装置）は、ネットワークに接続するいずれかのクライアントマシンから送信データを受信している。したがって、特許文献１に記載された技術は、共通回線の状況、すなわち共通回線に接続するいずれかのプリンタの送信データの受信以外の理由で、たとえば自身のプリンタのビジー状態、プリンタの故障、あるいは使用者や保守作業者の作業中など、上位装置であるプリンタの状況に基づいたデータの転送制御はできないし、そのような制御についての記載がない。
【０００７】
また、特許文献２に記載された技術は、フラグは送信情報ごとに設定され、端末装置からノードに対する通信全体に適用されるものではない。したがって、特許文献２に記載された技術からは、上位装置の状況に基づいたデータの転送制御を想定することができない。
【０００８】
本発明の目的の一例は、上位装置であるデータ転送先の情報処理装置が、自らの状況に応じてデータの転送タイミングを制御できる通信処理装置及びデータ転送方法およびそのためのプログラムを提供することにある。
【課題を解決するための手段】
【０００９】
本発明の一形態における第１の通信処理装置は、転送先の情報処理装置による制御に基づいてフラグを変更するフラグ管理部と、転送元の端末装置から転送先の情報処理装置へ転送する受信データを逐次記憶する記憶部と、フラグ管理部のフラグに基づき、記憶部の受信データを情報処理端末へ転送するタイミングを制御する制御部とを備える。
【００１０】
本発明の一形態における第１の通信処理装置のデータ転送方法は、フラグ管理部が転送先の情報処理装置による制御に基づいてフラグを変更し、記憶部が転送元の端末装置から転送先の情報処理装置へ転送する受信データを逐次記憶し、制御部がフラグ管理部のフラグに基づき、記憶部の受信データを情報処理端末へ転送するタイミングを制御する。
【００１１】
本発明の一形態における第１のプログラムは、コンピュータに、転送先の情報処理装置による制御に基づいてフラグを変更する処理と、転送元の端末装置から転送先の前記情報処理装置へ転送する受信データを逐次、記憶部に記憶する処理と、前記フラグに基づき、前記受信データを前記情報処理装置へ転送するタイミングを制御する処理を実行させる。
【発明の効果】
【００１２】
本発明によれば、上位装置であるデータ転送先の情報処理装置が、自らの状況に応じてデータの転送タイミングを制御できるという効果が得られる。
【図面の簡単な説明】
【００１３】
【図１】図１は、本発明の第１の実施の形態における通信処理装置１０００の構成を示すブロック図である。
【図２】図２は、第１の実施の形態における通信処理装置１０００と上位装置である情報処理装置２０００と下位装置である端末装置３０００、３１００との接続の一例を示すブロック図である。
【図３】図３は、第１の実施の形態における通信処理装置１０００をコンピュータ装置で実現した場合のハードウェア構成例を示す図である。
【図４】図４は、第１の実施の形態における通信処理装置１０００でのデータ転送制御の動作を示すフローチャートである。
【図５】図５は、第２の実施の形態における通信処理装置１００１と情報処理装置２００１のハードウェアの構成の一例と、それぞれと端末装置３００１、３１０１との接続の一例を示すブロック図である。
【図６】図６は、第２の実施の形態に係る通信処理装置１００１および情報処理装置２００１のソフトウェアおよびファームウェア構成の一例を示すブロック図である。
【図７】図７は、第２の実施の形態に係るＩＯドライバ１０２１１の構成の一例を示すブロック図である。
【図８】図８は、第２の実施の形態に係る通信処理装置１００１での、通信エンドポイントへフラグの設定を“ＯＮ”にする動作の概要を示すフローチャートである。
【図９】図９は、第２の実施の形態に係る通信処理装置１００１でのデータ転送制御の動作の概要を示すフローチャートである。
【発明を実施するための形態】
【００１４】
次に、本発明の実施形態について図面を参照して詳細に説明する。
【００１５】
［第１の実施の形態］
図１は、本発明の第１の実施の形態における通信処理装置１０００の構成を示すブロック図である。図１を参照すると、通信処理装置１０００は、フラグ管理部１０１と記憶部１０２と制御部１０３と、を備える。また、図２は、本発明の第１の実施の形態における通信処理装置１０００と上位装置である情報処理装置２０００と下位装置である端末装置３０００、３１００とを接続したシステムの一例を示すブロック図である。なお、通信処理装置１０００と接続する下位装置である端末装置の台数は、図２のように２台のみに限らず、何台でもよい。
【００１６】
次に、第１の実施の形態における通信処理装置１０００の構成について説明する。
【００１７】
フラグ管理部１０１は、転送先の情報処理装置２０００による制御に基づいて、データ転送制御のためのフラグの”ＯＮ”と”ＯＦＦ”を管理する。情報処理装置２０００は、自らの通信の状況、プロセッサやメモリ使用量などの負荷の状況に応じて、フラグ管理部１０１のフラグ設定を制御できればよい。
【００１８】
転送データ管理部１０２は、転送元の端末装置３０００、３１００から送信され転送先の情報処理装置２０００へ転送する受信データを逐次記憶し管理する。
【００１９】
フラグ管理部１０１で生成されるフラグが”ＯＦＦ”の場合、転送データ管理部１０２が記憶する受信データの合計データサイズが所定のデータサイズに到達した場合、もしくは前回受信データを転送してから所定の時間が経過した場合、制御部１０３は、転送データ管理部１０２が記憶する全ての受信データを情報処理装置２０００へ転送する。また、フラグ管理部１０１のフラグが”ＯＮ”の場合、制御部１０３は、転送データ管理部１０２が受信データを記憶するごとに、受信データを情報処理装置２０００へ転送する。
【００２０】
図３は、本発明の第１の実施の形態における通信処理装置１０００をコンピュータ装置で実現した場合のハードウェア構成例を示す図である。図３に示されるように、通信処理装置１０００は、それぞれ通信インタフェース１０、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１、出力装置１２、入力装置１３、主記憶装置１４、および二次記憶装置１５を含む。
【００２１】
通信インタフェース１０は、情報処理装置２０００、端末装置３０００、３１００および周辺端末との通信のための入出力インタフェースを構成する。また通信インタフェース１０は、通信処理装置１０００に接続する図示しないネットワークとの接続制御のためのインタフェースも含む。
【００２２】
ＣＰＵ１１は、オペレーティングシステムを動作させて本発明の第１の実施の形態に係る通信処理装置１０００の全体を制御する。また、ＣＰＵ１１は、例えば二次記憶装置１５から主記憶装置１４にプログラムまたはデータを読み出す。具体的には、通信処理装置１０００のＣＰＵ１１は、第１の実施の形態におけるフラグ管理部１０１と転送データ管理部１０２と制御部１０３として動作し、それぞれプログラム制御に基づいて各種の処理を実行する。また、通信処理装置１０００のＣＰＵ１１は、１つに限らず２つ以上備えていてもよい。
【００２３】
出力装置１２は、例えばディスプレイ、表示器で実現され、出力を確認するために用いられる。
【００２４】
入力装置１３は、例えばマウスやキーボード、内蔵のキーボタン等で実現され、入力操作に用いられる。入力装置１３は、マウスやキーボード、内蔵のキーボタンに限らず、例えばタッチパネルでもよい。
【００２５】
主記憶装置１４は、ＣＰＵ１１の制御に基づく作業用メモリである。
【００２６】
二次記憶装置１５は、例えば光ディスク、フレキシブルディスク、磁気光ディスク、外付けハードディスク、または半導体メモリ等であって、コンピュータプログラムをコンピュータ読み取り可能に記録する。二次記憶装置１５は、通信処理装置１０００が実行するためのコンピュータプログラムを一時的に記憶するまたは非一時的に記憶する。したがって、ＣＰＵ１１は、二次記憶装置１５に記録されているコンピュータプログラムを読み込み、そのプログラムにしたがって、フラグ管理部１０１と転送データ管理部１０２と制御部１０３として機能するよう動作してもよい。
【００２７】
また、コンピュータプログラムは、通信網に接続されている図示しない外部コンピュータからダウンロードされてもよい。
【００２８】
なお、第１の実施の形態の説明において利用されるブロック図（図１）には、機能単位のブロックが示されている。これらの機能ブロックは、図３に示すコンピュータ装置に限らず、各部がハードウェア回路によって実現されてもよい。ただし、通信処理装置１０００が備える各部の実現手段は特に限定されない。すなわち、通信処理装置１０００は、物理的に結合した１つの装置により実現されてもよいし、物理的に分離した２つ以上の装置を有線または無線で接続し、これら複数の装置により実現されてもよい。
【００２９】
以上のように構成された通信処理装置１０００の動作について、図４、図５のフローチャートを参照して説明する。
【００３０】
図４は、第１の実施の形態における通信処理装置１０００でのデータ転送制御の動作の概要を示すフローチャートである。尚、このフローチャートによる処理は、前述したＣＰＵによるプログラム制御に基づいて、実行されても良い。
【００３１】
図４に示すように、まず、フラグ管理部１０１は、転送先の情報処理装置２０００の制御に基づき、フラグの“ＯＮ”と“ＯＦＦ”を管理する（ステップＳ１０１）。具体的には、情報処理装置２０００よりフラグを“ＯＮ”にするような制御信号を受信した場合、フラグ管理部１０１は、管理するフラグを“ＯＮ”に設定し、情報処理装置２０００よりフラグを“ＯＦＦ”にするような制御信号を受信した場合、フラグ管理部１０１は、管理するフラグを“ＯＦＦ”に設定する。
【００３２】
次に、転送データ管理部１０２は、転送元の端末装置３０００、３１００から転送先の情報処理装置２０００へ転送する受信データを監視する（ステップＳ１０２）。転送データ管理部１０２が転送元の端末装置３０００、３１００から転送先の情報処理装置２０００へ転送する受信データを検知した場合（ステップＳ１０２でＹＥＳ）、受信データを転送データ管理部１０２の記憶装置（たとえば、主記憶装置１４）に記憶し、データを受信したことを制御部１０３に通知する（ステップＳ１０３）。受信データを検知しない場合（ステップＳ１０２でＮＯ）、ステップＳ１０１に戻る。
【００３３】
次に、制御部１０３は、フラグ管理部１０１が管理するフラグを確認する（ステップＳ１０４）。フラグが“ＯＦＦ”の場合（ステップＳ１０４でＮＯ）、制御部１０３は、転送データ管理部１０２が記憶している受信データの合計サイズを確認する（ステップＳ１０５）。転送データ管理部１０２が記憶している受信データの合計サイズが所定のサイズを超えている場合、もしくは前回受信されたデータを情報処理装置２０００に転送してから所定の時間が経過した場合（ステップＳ１０５でＹＥＳ）、制御部１０３は、転送データ管理部１０２（主記憶装置１４）が記憶した全ての受信データを情報処理装置２０００へ転送する（ステップＳ１０６）。転送データ管理部１０２が記憶している受信データの合計サイズが所定のサイズを超えておらず、かつ前回受信データを転送してから所定の時間が経過していない場合（ステップＳ１０５でＮＯ）、ステップＳ１０１に戻る。ステップＳ１０４でフラグが“ＯＮ”の場合（ステップＳ１０４でＹＥＳ）、すみやかに制御部１０３は、転送データ管理部１０２がステップＳ１０３において記憶した全ての受信データを情報処理装置２０００へ転送する（ステップＳ１０６）。
【００３４】
以上で、通信処理装置１０００は、データ転送制御の動作を終了する。
【００３５】
次に、本発明の第１の実施の形態の効果について説明する。
【００３６】
上述した本実施形態における通信処理装置１０００は、上位装置であるデータ転送先の情報処理装置が、自らの状況に応じてデータの転送タイミングを制御できる。
【００３７】
その理由は、以下のような構成を含むからである。即ち、第１にフラグ管理部１０１は、転送先の情報処理装置２０００の制御に基づき、フラグ管理部１０１が管理するフラグの“ＯＮ”と“ＯＦＦ”を管理する。第２に、フラグが“ＯＮ”の場合、制御部１０３は、転送データ管理部１０２が記憶した全ての受信データを情報処理装置２０００へ転送する。第３に、フラグが“ＯＦＦ”の場合、転送データ管理部１０２が記憶している受信データの合計サイズが所定のサイズを超えるまで、あるいは前回受信データを転送してから所定の時間が経過するまでは受信データを転送データ管理部１０２に記憶し続ける。これにより、制御部１０３は、情報処理装置２０００の制御の下にフラグ管理部１０１がフラグを管理し、そのフラグに基づいて、受信データの転送タイミングを決定するので、上位装置であるデータ転送先の情報処理装置が、自らの状況に応じてデータの転送タイミングを制御できるという効果が得られる。
【００３８】
［第２の実施形態］
次に、本発明の第２の実施形態について図面を参照して詳細に説明する。以下、本実施形態の説明が不明確にならない範囲で、前述の説明と重複する内容については説明を省略する。
【００３９】
図５は、本発明の第２の実施形態に係る通信処理装置１００１と情報処理装置２００１のハードウェアの構成の一例と、それぞれと端末装置３００１、３１０１とを接続したシステムの一例を示すブロック図である。
【００４０】
図５を参照すると、本実施形態における通信処理装置１００１は、ＩＯ（Ｉｎｐｕｔ  Ｏｕｔｐｕｔ）コントローラ１０１１、ＩＯプロセッサ１０２１、ローカルメモリ１０３１、スイッチ１０４１、ネットワークカード１０５１を備える。また、情報処理装置２００１は、ＣＰＵ２０１１、記憶装置２０２１、メモリコントローラ２０３１を備える。
【００４１】
ＩＯコントローラ１０１１は、情報処理装置２００１のメモリコントローラ２０３１とのインタフェースであり、ＩＯプロセッサ１０２１やスイッチ１０４１を経由して、ネットワークカード１０５１とメモリコントローラ２０３１とのトランザクション送受信を行う機能を有する。
【００４２】
ＩＯプロセッサ１０２１は、通信処理装置１００１を制御するファームウエア（ＦＷ）を動作させるプロセッサであり、ローカルメモリ１０３１へのアクセス、ＩＯコントローラ１０１１の制御、ネットワークカード１０５１の制御を行う機能を有する。ＩＯプロセッサ１０２１は、第１の実施形態におけるフラグ管理部１０１、制御部１０３に相当する。
【００４３】
ローカルメモリ１０３１は、通信処理装置１００１の各種制御情報や、ネットワーク端末３００１、３１０１からの受信データや、記憶装置２０２１からの読出しデータなどを記憶・格納する機能を有する。これは、第１の実施形態における転送データ管理部１０２に相当する。
【００４４】
スイッチ１０４１は、ＩＯコントローラ１０１１とＩＯプロセッサ１０２１とネットワークカード１０５１を接続する機能を有しており、ＩＯコントローラ１０１１とＩＯプロセッサ１０２１とネットワークカード１０５１からのトランザクションを、目的の宛先にスイッチする（切替える）機能を有する。
【００４５】
ネットワークカード１０５１は、通信処理装置１００１と端末装置３００１、３１０１との通信インタフェースである。
【００４６】
図６は、本発明の第２の実施形態に係る通信処理装置１００１および情報処理装置２００１のソフトウェアおよびファームウェア構成の一例を示すブロック図である。
【００４７】
まず、情報処理装置２００１のＣＰＵ２０１１で動作するソフトウェアは、基本ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）２０１１１と通信管理ソフトウェア２０１１２とアプリケーション２０１１３、２０１１４で構成されており、通信処理装置１００１に対してチャネルプログラム２０１１５を生成することにより、通信処理装置１００１のＩＯプロセッサ１０２１で動作するファームウェアを実効的に指示する。
【００４８】
基本ＯＳ２０１１１は、ＣＰＵ２０１１を制御する機能を有する基本ＯＳである。
【００４９】
通信管理ソフトウェア２０１１２は、コンピュータシステム上で動作するアプリケーション２０１１３、２０１１４からのネットワークＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）コマンドを解析・実行する機能を有する。ネットワークＡＰＩコマンドの解析結果に応じて、通信管理ソフトウェア２０１１２は、通信用のエンドポイント作成とそれに伴うバッファ領域を記憶装置２０２１上に確保する機能や、基本ＯＳ２０１１１に対して、チャネルプログラム２０１１５の作成を指示する機能を有する。また、通信管理ソフトウェア２０１１２は、チャネルプログラム２０１１５の基となる雛形から、エンドポイント毎のバッファ管理データを反映したチャネルプログラム２０１１５を生成する機能を有する。
【００５０】
アプリケーション２０１１３、２０１１４は、コンピュータシステム上で動作するユーザアプリケーションである。例えばＦＴＰ（Ｆｉｌｅ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）やサーバ・クライアントといったアプリケーションである。図６ではアプリケーションは２０１１３と２０１１４の２つを図示しているが、２つに限らず幾つでもよい。
【００５１】
次に、ＩＯプロセッサ１０２１で動作するファームウェアは、ＩＯドライバ１０２１１、ネットワークドライバ１０２１２、ネットワークスタック１０２１３、基本ＯＳ１０２１５で構成される。
【００５２】
ＩＯドライバ１０２１１は、情報処理装置２００１が作成したチャネルプログラム２０１１５を取得・解析し、解析結果に応じて通信処理装置１００１の制御する機能と、端末装置３００１、３１０１との通信エンドポイントの生成を指示する機能と、通信エンドポイント毎のデータの受信状態等を管理する機能と、記憶装置２０２１に格納されているデータを取出し、ローカルメモリ１０３１に格納する機能と、ローカルメモリ１０３１に格納されているデータを記憶装置２０２１に格納する機能を有する。
【００５３】
また、ＩＯドライバ１０２１１は、チャネルプログラム２０１１５の基となる制御フラグを、通信エンドポイント毎に設定する機能と、制御フラグに応じてローカルメモリ１０３１に格納されているデータを記憶装置２０２１に格納するタイミングを制御する機能を有する。制御フラグは、第１の実施の形態のフラグ管理部１０１で管理されるフラグに相当する。
【００５４】
ネットワークドライバ１０２１２は、ネットワークカード１０５１を制御する機能を有する。
【００５５】
ネットワークスタック１０２１３は、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）やＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）、ＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）、その他ネットワークプロトコルを実現する機能を有しており、ＩＯドライバ１０２１１の指示に応じて、通信エンド端末を生成し、端末装置３００１、３１０１とのコネクションを確立し、データ通信を行う機能を有している。
【００５６】
基本ＯＳ１０２１５は、ＩＯプロセッサ１０２１を制御する機能を有する基本ＯＳである。
【００５７】
図７は、本発明の第２の実施形態に係るＩＯドライバ１０２１１の構成の一例を示すブロック図である。
【００５８】
ＩＯドライバ１０２１１は、複数の通信制御プロセス１０２１１１と、データブロック生成プロセス１０２１１２と、チャネルプログラム実行プロセス１０２１１３と、受信データキュー１０２１１４と、データブロックキュー１０２１１５で構成される。
【００５９】
通信制御プロセス１０２１１１は、通信エンドポイントと１対１に対応している。通信制御プロセス１０２１１１は、ネットワークスタック１０２１３からの通知を受けてローカルメモリ１０３１に格納されている端末装置３００１、３１０１からの受信データの情報を取得して受信データキュー１０２１１４に登録する機能と、受信データキュー１０２１１４に登録されているデータの総長を確認してデータブロックを生成するかを判断する機能と、フラグの設定を制御する機能と、データブロック生成プロセス１０２１１２にデータブロック生成要求を通知し、データブロックの生成を指示する機能を有する。
【００６０】
データブロック生成プロセス１０２１１２は、受信データの受信データキュー１０２１１４への溜め込み時間を監視する機能と、データブロック生成要求に応じて受信データキュー１０２１１４から受信データを取得してデータブロックを生成してデータブロックキュー１０２１１５に登録する機能を有する。
【００６１】
チャネルプログラム実行プロセス１０２１１３は、情報処理装置２００１が作成したチャネルプログラム２０１１５を取得・解読し、解読結果に応じて通信処理装置１００１を制御する機能を有する。チャネルプログラム２０１１５の解読結果に応じて通信処理装置１００１を制御する機能は、端末装置３００１、３１０１との通信エンドポイントとなる通信制御プロセス１０２１１１を割り当てる機能や、通信制御プロセス１０２１１１にフラグの設定を通知する機能や、記憶装置２０２１に格納されているデータを取出しローカルメモリ１０３１に格納する機能や、データブロックキュー１０２１１５からデータを取得して記憶装置２０２１に格納する機能がある。
【００６２】
受信データキュー１０２１１４は、通信制御プロセス１０２１１１から登録される受信データ情報の登録順序を管理する機能と、登録された受信データサイズを記憶する機能と、データブロック生成プロセス１０２１１２からの取得要求に応じて管理している受信データを通知する機能を有している。
【００６３】
データブロックキュー１０２１１５は、データブロック生成プロセス１０２１１２から登録されるデータブロックの登録順序を管理する機能と、チャネルプログラム実行プロセス１０２１１３からの取得要求に応じて管理しているデータブロックを通知する機能を有している。
【００６４】
次に、通信処理装置１００１の動作について図８、９に示すフローチャートを参照して説明する。なお、情報処理装置２００１からのチャネルプログラムを用いた通信処理装置１００１における通信エンドポイントの生成と、端末装置３００１、３１０１との通信コネクションの確立は完了しているものとする。
【００６５】
図８は、第２の実施の形態における通信処理装置１００１での、通信エンドポイントへフラグの設定を“ＯＮ”にする動作の概要を示すフローチャートである。尚、一例としてＴＣＰオプションのＴＣＰ＿ＮＯＤＥＬＡＹの設定をアプリケーション２０１１３が行う際の動作として説明する。ＴＣＰオプションのＴＣＰ＿ＮＯＤＥＬＡＹの動作、効果に関しては一般的周知の動作なので説明は割愛する。また、このフローチャートによる処理は、前述したＣＰＵによるプログラム制御に基づいて、実行されても良い。
【００６６】
図８に示すように、まず、アプリケーション２０１１３は、通信エンドポイントに対してＴＣＰ＿ＮＯＤＥＬＡＹの設定をネットワークＡＰＩコマンドで行う（ステップＳ２０１）。
【００６７】
次に、通信管理ソフトウェア２０１１２および基本ＯＳ２０１１１は、チャネルプログラム２０１１５を生成し、ＩＯドライバ１０２１１に通知する（ステップＳ２０２）。
【００６８】
次に、チャネルプログラム実行プロセス１０２１１３は、チャネルプログラム２０１１５を取得し内容を確認する（ステップＳ２０３）。チャネルプログラム２０１１５の内容がＴＣＰオプションのＴＣＰ＿ＮＯＤＥＬＡＹを設定するコマンドの場合（ステップＳ２０３でＹＥＳ）、チャネルプログラム実行プロセス１０２１１３は、指定された通信エンドポイントにＴＣＰ＿ＮＯＤＥＬＡＹの設定を行い、フラグの設定を通信制御プロセス１０２１１１に通知する（ステップＳ２０４）。チャネルプログラム２０１１５の内容がＴＣＰオプションのＴＣＰ＿ＮＯＤＥＬＡＹを設定するコマンドではない場合（ステップＳ２０３でＮＯ）、チャネルプログラム実行プロセス１０２１１３は、何もせず終了する。
【００６９】
以上で、通信処理装置１００１は、通信エンドポイントへフラグの設定を“ＯＮ”にする動作を終了する。
【００７０】
図９は、第２の実施の形態における通信処理装置１００１でのデータ転送制御の動作の概要を示すフローチャートである。尚、このフローチャートによる処理は、前述したＣＰＵによるプログラム制御に基づいて、実行されても良い。
【００７１】
図９に示すように、まず、ネットワークカード１０５１は、ネットワークを介して端末装置３００１からデータを受信する（ステップＳ３０１）。
【００７２】
次に、ネットワークカード１０５１は、受信したデータをローカルメモリ１０３１に格納し、同時にネットワークカード１０５１は、データの受信をネットワークドライバ１０２１２に割り込みにより通知する（ステップＳ３０２）。
【００７３】
次に、ネットワークドライバ１０２１２は、ネットワークカード１０５１がローカルメモリ１０３１に格納した受信データをネットワークスタック１０２１３に受け渡す（ステップＳ３０３）。
【００７４】
次に、ネットワークスタック１０２１３は、ＴＣＰ／ＩＰのプロトコルに従って受信データを処理し、データ受信を通信制御プロセス１０２１１１に通知する（ステップＳ３０４）。ここで通信制御プロセス１０２１１１は、端末装置３００１に対応した通信エンドポイントを処理するプロセスとする。
【００７５】
次に、通信制御プロセス１０２１１１は、ローカルメモリ１０３１に格納されている受信データの情報を取得し、受信データキュー１０２１１４に順番に登録する（ステップＳ３０５）。ここで受信データの情報とは、ローカルメモリ３２０内でのアドレスとサイズの情報とする。
【００７６】
次に、通信制御プロセス１０２１１１は、受信データキュー１０２１１４に記憶されている受信データのデータサイズを取得し、登録する受信データのサイズを加算し、受信データキュー１０２１１４に登録し直す（ステップＳ３０６）。
【００７７】
次に、通信制御プロセス１０２１１１は、フラグの設定が“ＯＮ”か否かを確認する（ステップＳ３０７）。もしフラグの設定が“ＯＦＦ”の場合（ステップＳ３０７でＮＯ）、通信制御プロセス１０２１１１は、ステップＳ２０６で登録する受信データのサイズを加算した結果が、所定の閾値を超えるかどうか確認する（ステップＳ３０８）。もし所定の閾値を超える場合もしくは前回受信データを転送してから所定の時間が経過した場合（ステップＳ３０８でＹＥＳ）、通信制御プロセス１０２１１１は、データブロック生成要求をデータブロック生成プロセス１０２１１２に通知する（ステップＳ３０９）。所定の閾値を超えておらず、かつ前回受信データを転送してから所定の時間が経過していない場合（ステップＳ３０８でＮＯ）、ステップＳ３０１に戻る。ステップＳ３０７で、もしフラグの設定が“ＯＮ”の場合（ステップＳ３０７でＹＥＳ）、通信制御プロセス１０２１１１は、データブロック生成要求をデータブロック生成プロセス１０２１１２に通知する（ステップＳ３０９）。
【００７８】
次に、データブロック生成プロセス１０２１１２は、受信データキュー１０２１１４から受信データを順番に取り出し、データブロックを生成し、データブロックキュー１０２１１５に生成したデータブロックを登録する（ステップＳ３１０）。
【００７９】
次に、チャネルプログラム実行プロセス１０２１１３は、情報処理装置２００１の基本ＯＳ２０１１１が通知する記憶装置２０２１へのデータの格納を指示する内容のチャネルプログラムに従い、データブロックキュー１０２１１５に登録されているデータブロックを取り出し、記憶装置２０２１に格納する（ステップＳ３１１）。
【００８０】
以上で、通信処理装置１００１は、データ転送制御の動作を終了する。
【００８１】
上述した本実施形態における通信処理装置１００１は、第１の実施形態と同様、上位装置であるデータ転送先の情報処理装置が、自らの状況に応じてデータの転送タイミングを制御できる。
【００８２】
その理由は、以下のような構成を含むからである。即ち、第１に通信管理ソフトウェア２０１１２および基本ＯＳ２０１１１はフラグの設定情報を含んだチャネルプログラム２０１１５を生成し、ＩＯドライバ１０２１１に通知する。第２に、チャネルプログラム実行プロセス１０２１１３がチャネルプログラム２０１１５を取得し内容を確認し、内容に応じて指定された通信エンドポイントに例えばＴＣＰ＿ＮＯＤＥＬＡＹの設定を行い、フラグの設定を通信制御プロセス１０２１１１に通知する。第３に通信制御プロセス１０２１１１は、フラグの設定が“ＯＮ”か否かを確認し、フラグが“ＯＮ”の場合、通信制御プロセス１０２１１１は、データブロック生成要求をデータブロック生成プロセス１０２１１２に通知する。第３に、フラグが“ＯＦＦ”の場合、所定の閾値を超える場合もしくは前回受信データを転送してから所定の時間が経過した場合、通信制御プロセス１０２１１１は、データブロック生成要求をデータブロック生成プロセス１０２１１２に通知する。これにより、通信制御プロセス１０２１１１は、情報処理装置２００１が通知するチャネルプログラム２０１１５に含まれたフラグの設定情報に基づいて受信データの転送タイミングを決定するので、上位装置であるデータ転送先の情報処理装置が、自らの状況に応じてデータの転送タイミングを制御できるという効果が得られる。
【００８３】
また、フラグの設定は“ＯＮ”の場合と“ＯＦＦ”の場合の２種類として説明したが、フラグの種類は“ＯＮ”、“ＯＦＦ”に限らない。すなわち、フラグが第１の状態か否かを判断し、第１の状態であれば、通信制御プロセス１０２１１１は、データブロック生成要求をデータブロック生成プロセス１０２１１２に通知する。フラグが第１の状態でなければ（第２の状態であれば）、所定の閾値を超える場合もしくは前回受信データを転送してから所定の時間が経過した場合、通信制御プロセス１０２１１１は、データブロック生成要求をデータブロック生成プロセス１０２１１２に通知する、としても構わない。
【００８４】
以上説明した、本発明の各実施形態における各構成要素は、その機能をハードウェア的に実現することはもちろん、プログラム制御に基づくコンピュータ装置、ファームウェアで実現することができる。プログラムは、磁気ディスクや半導体メモリなどのコンピュータ可読記録媒体に記録されて提供され、コンピュータの立ち上げ時などにコンピュータに読み取られる。この読み取られたプログラムは、そのコンピュータの動作を制御することにより、そのコンピュータを前述した各実施の形態における構成要素として機能させる。
【００８５】
以上、各実施の形態を参照して本発明を説明したが、本発明は上記実施の形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解しえる様々な変更をすることができる。
【００８６】
たとえば、以上の各実施形態で説明した各構成要素は、必ずしも個々に独立した存在である必要はない。例えば、各構成要素は、複数の構成要素が１個のモジュールとして実現されたり、一つの構成要素が複数のモジュールで実現されたりしてもよい。また、各構成要素は、ある構成要素が他の構成要素の一部であったり、ある構成要素の一部と他の構成要素の一部とが重複していたり、といったような構成であってもよい。
【００８７】
また、以上説明した各実施形態では、複数の動作をフローチャートの形式で順番に記載してあるが、その記載の順番は複数の動作を実行する順番を限定するものではない。このため、各実施形態を実施するときには、その複数の動作の順番は内容的に支障しない範囲で変更することができる。
また各構成要素の各動作の具体的な記載は、各構成要素の各動作を限定するものではない。このため、各構成要素の具体的な各動作は、各実施形態を実施する上で機能的、性能的、その他の特性に対して支障をきたさない範囲内で変更されて良い。
【符号の説明】
【００８８】
１０    通信インタフェース
１１、２０１１    ＣＰＵ
１２    出力装置
１３    入力装置
１４    主記憶装置
１５    二次記憶装置
１０１    フラグ管理部
１０２    記憶部
１０３    制御部
１０００、１００１    通信処理装置
１０１１    ＩＯコントローラ
１０２１    ＩＯプロセッサ
１０３１    ローカルメモリ
１０４１    スイッチ
１０５１    ネットワークカード
２０００、２００１    情報処理装置
２０２１    記憶装置
２０３１    メモリコントローラ
３０００、３００１、３１００、３１０１    端末装置
１０２１１    ＩＯドライバ
１０２１２    ネットワークドライバ
１０２１３    ネットワークスタック
１０２１５、２０１１１    基本ＯＳ
２０１１２    通信管理ソフトウェア
２０１１３、２０１１４    アプリケーション
２０１１５    チャネルプログラム
１０２１１１    通信制御プロセス
１０２１１２    データブロック生成プロセス
１０２１１３    チャネルプログラム実行プロセス
１０２１１４    受信データキュー
１０２１１５    データブロックキュー
【図１】
2016151895.tif 000003
【図２】
2016151895.tif 000004
【図３】
2016151895.tif 000005
【図４】
2016151895.tif 000006
【図５】
2016151895.tif 000007
【図６】
2016151895.tif 000008
【図７】
2016151895.tif 000009
【図８】
2016151895.tif 000010
【図９】
2016151895.tif 000011