JP2007183738A - 情報処理装置および方法、並びにプログラム - Google Patents

情報処理装置および方法、並びにプログラム Download PDF

Info

Publication number
JP2007183738A
JP2007183738A JP2006000648A JP2006000648A JP2007183738A JP 2007183738 A JP2007183738 A JP 2007183738A JP 2006000648 A JP2006000648 A JP 2006000648A JP 2006000648 A JP2006000648 A JP 2006000648A JP 2007183738 A JP2007183738 A JP 2007183738A
Authority
JP
Japan
Prior art keywords
processing
protocol stack
api
application program
processing unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2006000648A
Other languages
English (en)
Other versions
JP4506676B2 (ja
Inventor
Hideo Neishi
英生 根石
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2006000648A priority Critical patent/JP4506676B2/ja
Priority to US11/616,466 priority patent/US20070156915A1/en
Priority to CNA200710001826XA priority patent/CN1997028A/zh
Publication of JP2007183738A publication Critical patent/JP2007183738A/ja
Application granted granted Critical
Publication of JP4506676B2 publication Critical patent/JP4506676B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/12Protocol engines
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/325Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the network layer [OSI layer 3], e.g. X.25
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/326Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the transport layer [OSI layer 4]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Communication Control (AREA)

Abstract

【課題】特定のネットワークプロトコルスタックに対して、多様なAPIを提供することができるようにする。
【解決手段】API処理部121は、アプリケーションプログラムからの要求に応じて、複数の階層からなる通信処理のうち、ネットワークプロトコルスタックの上位の層の第1の処理を実行し、プロトコルスタック処理部142は、第1の処理の処理結果に応じて、ネットワークプロトコルスタックの第2の処理を実行することで、特定のネットワークプロトコルスタックに対して、多様なAPIを提供することができるようになる。本発明は、パーソナルコンピュータに適用できる。
【選択図】図3

Description

本発明は情報処理装置および方法、並びにプログラムに関し、特に、TOE(TCP Offload Engine)により通信をする情報処理装置および方法、並びにプログラムに関する。
従来より、インターネットなどのネットワークで使用されるプロトコルとして、TCP/IP(Transmission Control Protocol/Internet Protocol)がある。TCP/IPは、もともとUNIX(登録商標)においてソフトウェア(ソフトウェアプログラム)により実装されていた経緯があり、現在でもその処理の大部分がソフトウェアにより行われている。しかし、容量の大きいデータのネットワーク転送要求が高まるにつれて、TCP/IPの処理の高速化を求める声が大きくなってきた。
そのような要求に対して、例えば、TOE(TCP Offload Engine)と称される、ホスト側のCPU(Central Processing Unit)リソースが費やされていたTCP/IPの処理を、別のチップ(専用のハードウェア)が代わりに行うようにする技術がある。このようにすることで、ホスト側のCPUリソースをアプリケーションプログラムの処理だけに割り当てることができるようになり、ホスト側のCPUの負荷を減らすとともに、TCP/IPの処理を高速化させることができる。
また、TCP/IPなどのネットワークプロトコルスタック(Network Protocol Stack)(以下、プロトコルスタックとも称する)を実装する場合、一般的に、プロトコルスタックとAPI(Application Program Interface)とが、OS(Operating System)のカーネル(kernel)内部に実装されているため(1つのプログラムになっているため)、それらは不可分に結び付いている。
ここで、プロトコルスタックとは、1つの通信であっても、役割の異なる複数のプロトコルからなることが多いため、それらのプロトコルをまとめたものをいう。例えば、TCP/IPの場合、TCP(Transmission Control Protocol)とIP(Internet Protocol)とは、本来独立したプロトコルであるが、2つを組み合わせた使用方法が一般的であるため、それらを組み合わせたプロトコルスタックとして表現されている。また、一般的に、階層的に定義されているプロトコルに対応して、それを実装するソフトウェアも階層的に構築されており、このことから、プロトコルスタックは、それらのソフトウェアによる実装を指すこともある。したがって、以下、例えば、TCP/IPやUDP/IP(User Datagram Protocol/Internet Protocol)などの複数のプロトコルからなるプロトコル、またはそれを実装するソフトウェアのことをプロトコルスタックと称して説明する。
また、APIとは、あるプラットホーム向けのソフトウェアを開発するときに使用することができる命令や関数の集合のことをいう。具体的には、例えば、ソケットAPI(Socket API)は、アプリケーション層とトランスポート層との間に定義されており、これによりネットワーク通信や、プロセス間通信(IPC(InterProcess Communication))を行う。これらのソケットAPIは、例えば、OSがUNIX(登録商標)である場合、BSDソケットにより実装され、また、OSがWindows(登録商標)である場合、Winsock(Windows(登録商標) Sockets)により実装されている。
すなわち、従来においては、プロトコルスタックとAPIとが不可分に結び付いた状態で、TCP/IPの処理を行っていた。
さらに、入力してくるAV(Audio Visual)データをAVバッファ回路に格納した後に、パケット処理部において、32キロバイトのジャンボパケットデータを生成し、CPUが生成したヘッダデータに基づいて、生成したジャンボパケットデータを分割して、最大1518バイトのイーサーネット(登録商標)パケットを生成して送信する送信装置もある(例えば、特許文献1)。
特開2003−229905号公報
しかしながら、プロトコルスタックを実装する場合、プロトコルスタックとAPIとがOSのカーネルの内部により不可分に結び付いているために、特定のプロトコルスタックに対して、多様なAPIを提供することができないという問題があった。
例えば、特開2003−229905号公報に開示されている送信装置は、パケットデータを分割して送信しているが、プロトコルスタックとAPIとが不可分に結び付いているために、多様なAPIを使用することができない可能性があった。
また、プロトコルスタックとAPIとが密接に結び付いていることにより、プロトコルスタックとAPIのうち、片方に障害が発生した場合、他方にも直接影響が及んでしまうという問題もあった。
さらに、必要となるAPIのみを選択してメモリ上にロードすることができないため、メモリの使用効率が悪くなるという問題もあった。
本発明はこのような状況に鑑みてなされたものであり、特定のプロトコルスタックに対して、多様なAPIを提供することができるようにするものである。
本発明の一側面は、ネットワークを介して、前記ネットワークに接続された他の機器と通信するために通信処理を実行する情報処理装置において、アプリケーションプログラムからの要求に応じて、複数の階層からなる前記通信処理のうち、ネットワークプロトコルスタックの上位の層の第1の処理を実行する第1の処理手段と、前記第1の処理の処理結果に応じて、前記ネットワークプロトコルスタックの第2の処理を実行する第2の処理手段とを備え、前記第1の処理手段は、前記アプリケーションプログラムによって呼び出されるAPIにより、前記第1の処理を実行する情報処理装置である。
ネットワークとは、少なくとも2つの装置が接続され、ある装置から、他の装置に対して、情報の伝達をできるようにした仕組みをいう。ネットワークを介して通信する装置は、独立した装置どうしであってもよいし、1つの装置を構成している内部ブロックどうしであってもよい。
また、通信とは、無線通信および有線通信は勿論、無線通信と有線通信とが混在した通信、すなわち、ある区間では無線通信が行われ、他の区間では有線通信が行われるようなものであってもよい。さらに、ある装置から他の装置への通信が有線通信で行われ、他の装置からある装置への通信が無線通信で行われるようなものであってもよい。
前記第2の処理手段の状態を監視し、その状態に関する情報を蓄積する監視手段を備えるようにすることができる。
前記第1の処理手段は、前記第1の処理を実行するために必要となる前記APIを選択し、選択された前記APIをロードすることにより、前記第1の処理を実行するようにすることができる。
前記APIは、ソケットAPIであるようにすることができる。
前記ネットワークプロトコルスタックは、TCP/IPであるようにすることができる。
前記第2の処理手段に障害が発生した場合、前記第2の処理を実行する第3の処理手段を備え、前記第1の処理手段は、前記第2の処理手段に障害が発生した場合、前記アプリケーションプログラムから障害発生前の状態を取得し、取得した前記状態の結果に応じて、前記第1の処理を実行し、前記第3の処理手段は、前記第1の処理の処理結果に応じて、前記第2の処理を実行するようにすることができる。
前記第1の処理手段または前記第2の処理手段に障害が発生した場合、前記第1の処理を実行する第3の処理手段と、前記第1の処理手段または前記第2の処理手段に障害が発生した場合、前記第2の処理を実行する第4の処理手段とを備え、前記第3の処理手段は、前記第1の処理手段または前記第2の処理手段に障害が発生した場合、前記アプリケーションプログラムから障害発生前の状態を取得し、取得した前記状態の結果に応じて、前記第1の処理を実行し、前記第4の処理手段は、前記第1の処理の処理結果に応じて、前記第2の処理を実行するようにすることができる。
本発明の一側面は、ネットワークを介して、前記ネットワークに接続された他の機器と通信するために通信処理を実行する第1の処理手段と第2の処理手段とを備える情報処理装置の情報処理方法であって、アプリケーションプログラムからの要求に応じて、複数の階層からなる前記通信処理のうち、ネットワークプロトコルスタックの上位の層の第1の処理を実行する第1の処理ステップと、前記第1の処理の処理結果に応じて、前記ネットワークプロトコルスタックの第2の処理を実行する第2の処理ステップとを含み、前記第1の処理ステップは、前記アプリケーションプログラムによって呼び出されるAPIにより、前記第1の処理を実行する情報処理方法である。
本発明の一側面は、ネットワークを介して、前記ネットワークに接続された他の機器と通信するために通信処理を、第1の処理手段と第2の処理手段とに行わせるプログラムにおいて、アプリケーションプログラムからの要求に応じて、複数の階層からなる前記通信処理のうち、ネットワークプロトコルスタックの上位の層の第1の処理を実行する第1の処理ステップと、前記第1の処理の処理結果に応じて、前記ネットワークプロトコルスタックの第2の処理を実行する第2の処理ステップとを含み、前記第1の処理ステップは、前記アプリケーションプログラムによって呼び出されるAPIにより、前記第1の処理を実行するプログラムである。
本発明の一側面においては、アプリケーションプログラムからの要求に応じて、複数の階層からなる前記通信処理のうち、ネットワークプロトコルスタックの上位の層の第1の処理が実行され、前記第1の処理の処理結果に応じて、前記ネットワークプロトコルスタックの第2の処理が実行され、前記アプリケーションプログラムによって呼び出されるAPIにより、前記第1の処理が実行される。
以上のように、本発明の一側面によれば、特定のプロトコルスタックに対して、多様なAPIを提供することができる。
以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書または図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書または図面に記載されていることを確認するためのものである。従って、明細書または図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
本発明の一側面の情報処理装置(例えば、図1のパーソナルコンピュータ1)は、アプリケーションプログラムからの要求に応じて、複数の階層からなる通信処理のうち、ネットワークプロトコルスタックの上位の層の第1の処理を実行する第1の処理手段(例えば、図3のAPI処理部121)と、第1の処理の処理結果に応じて、ネットワークプロトコルスタックの第2の処理を実行する第2の処理手段(例えば、図3のプロトコルスタック処理部142)とを備え、第1の処理手段は、アプリケーションプログラムによって呼び出されるAPIにより、第1の処理を実行する。
第2の処理手段の状態を監視し、その状態に関する情報を蓄積する監視手段(例えば、図3のネットワーク管理部122)を備えるようにすることができる。
第1の処理手段は、第1の処理を実行するために必要となるAPIを選択し、選択されたAPIをロードすることにより、第1の処理を実行するようにすることができる。
APIは、ソケットAPIであるようにすることができる。
ネットワークプロトコルスタックは、TCP/IPであるようにすることができる。
第2の処理手段(例えば、図6のプロトコルスタックモジュール102−1のプロトコルスタック処理部142)に障害が発生した場合、第2の処理を実行する第3の処理手段(例えば、図6のプロトコルスタックモジュール102−2のプロトコルスタック処理部142)を備え、第1の処理手段は、第2の処理手段に障害が発生した場合、アプリケーションプログラムから障害発生前の状態を取得し、取得した状態の結果に応じて、第1の処理を実行し、第3の処理手段は、第1の処理の処理結果に応じて、第2の処理を実行するようにすることができる。
第1の処理手段(例えば、図7のユーザモジュール101のミドルウェア113−1のAPI処理部121)または第2の処理手段(例えば、図7のプロトコルスタックモジュール102−1のプロトコルスタック処理部142)に障害が発生した場合、第1の処理を実行する第3の処理手段(例えば、図7のユーザモジュール101のミドルウェア113−2のAPI処理部121)と、第1の処理手段または第2の処理手段に障害が発生した場合、第2の処理を実行する第4の処理手段(例えば、図7のプロトコルスタックモジュール102−2のプロトコルスタック処理部142)とを備え、第3の処理手段は、第1の処理手段または第2の処理手段に障害が発生した場合、アプリケーションプログラムから障害発生前の状態を取得し、取得した状態の結果に応じて、第1の処理を実行し、第4の処理手段は、第1の処理の処理結果に応じて、第2の処理を実行するようにすることができる。
本発明の一側面の情報処理方法またはプログラムは、アプリケーションプログラムからの要求に応じて、複数の階層からなる通信処理のうち、ネットワークプロトコルスタックの上位の層の第1の処理を実行する第1の処理ステップ(例えば、図5のステップS12の処理)と、第1の処理の処理結果に応じて、ネットワークプロトコルスタックの第2の処理を実行する第2の処理ステップ(例えば、図5のステップS13の処理)とを含み、第1の処理ステップは、アプリケーションプログラムによって呼び出されるAPIにより、第1の処理を実行する。
本発明の一側面のプログラムは、記録媒体(例えば、図1のリムーバブルメディア21)に記録することができる。
以下、図面を参照しながら本発明の実施の形態について説明する。
図1は、パーソナルコンピュータ1のハードウェアの構成の例を示すブロック図である。
図1の例のパーソナルコンピュータ1において、CPU(Central Processing Unit)11は、ROM(Read Only Memory)12に記憶されているプログラム、または記録部18からRAM(Random Access Memory)13にロードされたプログラムにしたがって各種の処理を実行する。RAM13にはまた、CPU11が各種の処理を実行する上において必要なデータなども適宜記憶される。
CPU11、ROM12、およびRAM13は、バス14を介して相互に接続されている。このバス14にはまた、入出力インターフェース15も接続されている。
入出力インターフェース15には、キーボード、マウスなどよりなる入力部16、スピーカおよびLCD(Liquid Crystal Display)などのディスプレイなどよりなる出力部17、ハードディスクなどより構成される記録部18、並びに通信部19が接続されている。
通信部19は、例えば、NIC(Network Interface Card)などから構成され、ネットワークを介しての他のブロックとの通信処理を制御する。通信部19の詳細は後述する。
入出力インターフェース15にはまた、必要に応じてドライブ20が接続され、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどのリムーバブルメディア21が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記録部18にインストールされる。
なお、パーソナルコンピュータ1のハードウェアの構成は、図1の例に限定されず、後述する図3のユーザモジュール101の機能的構成を少なくとも有していればよい。
図2は、通信部19のハードウェアの構成の例を示すブロック図である。
通信部19は、入出力インターフェース15(図1)に接続され、CPU11(図1)から供給されるデータを、ネットワークを介して、ネットワークに接続されている他の機器に送信したり、ネットワークに接続されている他の機器から送信されてくるデータを受信し、受信したデータをCPU11に供給したりする。また、通信部19は、例えば、TCP/IPなどのプロトコルスタックの処理(プロトコルスタックに関する所定の処理)を行う。
通信部19は、CPU51、ROM52、RAM53、記録部55、インターフェース56、および送受信処理部57を含むようにして構成される。CPU51、ROM52、RAM53、記録部55、インターフェース56、および送受信処理部57のそれぞれは、バス54を介して相互に接続されている。
図2の例の通信部19において、CPU51は、ROM52に記憶されているプログラム、または記録部55からRAM53にロードされたプログラムにしたがって各種の処理を実行する。RAM53にはまた、CPU51が各種の処理を実行する上において必要なデータなども適宜記憶される。
送受信処理部57は、CPU51の制御の基に、例えば、ネットワークを介して、ネットワークに接続されている他の機器にデータを送信したり、ネットワークに接続されている他の機器から送信されてくるデータを受信したりするための所定の処理を行う。
なお、通信部19のハードウェアの構成は、図2の例に限定されず、後述する図3のプロトコルスタックモジュール102の機能的構成例を少なくとも有していればよい。
図3は、本発明を適用したパーソナルコンピュータ1の一実施の形態の構成を示すブロック図である。
パーソナルコンピュータ1は、ネットワークを介して、ネットワークに接続されている他の機器と通信を行う機器であり、本発明の情報処理装置の一例である。
パーソナルコンピュータ1は、ユーザモジュール101およびプロトコルスタックモジュール102を含むようにして構成される。すなわち、例えば、パーソナルコンピュータ1のうち、ユーザモジュール101は、パーソナルコンピュータ1の機能的構成例を示し、プロトコルスタックモジュール102は、通信部19の機能的構成例を示している。
なお、本実施の形態では、パーソナルコンピュータ1は、上述した図1のハードウェア構成を有しているので、ユーザモジュール101は、例えば、CPU11(図1)が実行するプログラム(ソフトウェア)として構成されている。ただし、パーソナルコンピュータ1のハードウェア構成を図1とは異ならせることで、ユーザモジュール101は、ハードウェア単体として構成することもできるし、ソフトウェアとハードウェアとの組み合わせとして構成することもできる。
また、通信部19は、上述した図2のハードウェア構成を有しているので、プロトコルスタックモジュール102は、例えば、CPU51(図2)が実行するプログラム(ソフトウェア)として構成されている。ただし、通信部19のハードウェア構成を図2とは異ならせることで、プロトコルスタックモジュール102は、ハードウェア単体として構成することもできるし、ソフトウェアとハードウェアとの組み合わせとして構成することもできる。
ユーザモジュール101は、例えば、記録部18(図1)などに記録され、必要に応じて、RAM13(図1)にロードされて、CPU11(図1)により実行される。
なお、CPU11は、ユーザモジュール101を実行する場合、ユーザモジュール101の全てをRAM13にロードするのではなく、必要となる機能のみを選択してRAM13にロードし、その選択された機能を実行することができる。
ユーザモジュール101は、アプリケーションプログラム111、GUIコマンドツール112、およびミドルウェア113を含むようにして構成される。
アプリケーションプログラム111は、例えば、ウェブブラウザ、メーラー(電子メールを送受信し、管理するためのアプリケーションプログラム)などの、パーソナルコンピュータ1において、ユーザにより操作されるアプリケーションプログラムである。アプリケーションプログラム111は、ユーザによる操作に応じて、その操作に対応する処理を実行するAPIを指定するコマンド(以下、APIコールと称する)をミドルウェア113に供給する。
GUIコマンドツール112は、例えば、ネットワークの運用監視や開発時のデバックなどに使用するアプリケーションプログラムである。GUIコマンドツール112は、ユーザによる操作に応じて、その操作に対応するAPIコールをミドルウェア113に供給する。
ミドルウェア113は、アプリケーションプログラム111およびGUIコマンドツール112のそれぞれに、例えば、通信に関する機能などの、特定の機能を提供するソフトウェアである。例えば、ミドルウェア113は、後述するプロトコルスタックモジュール102に関する機能を提供する。
ミドルウェア113は、API処理部121およびネットワーク管理部122を含むようにして構成される。
API処理部121は、アプリケーションプログラム111またはGUIコマンドツール112から供給されてくる、APIコールに応じた所定の処理を実行する。API処理部121は、所定の処理の処理結果をプロトコルスタックモジュール102に供給する。
すなわち、API処理部121は、例えば、OSのカーネルなどにおいて、不可分に結び付いていたAPIとプロトコルスタックとが分離されているので、プロトコルスタックの処理を行わないことになる(プロトコルスタックの処理は、後述するプロトコルスタック処理部142が行う)。
換言すれば、通信機能(通信処理)を階層構造に分割したモデルで考えた場合、API処理部121は、例えば、TCP/IPなどのプロトコルスタックの上位の層における処理を行っているとも言える。
ここで、詳細は後述するが、API処理部121による所定の処理結果としては、図中のユーザモジュール101とプロトコルスタックモジュール102との間の2本の線(後述するコマンドバスとデータバス)により示すように、例えば、コマンド(以下、プロトコルスタックコマンドとも称する)やデータ(例えば、AV(Audio Visual)データなど)などが、プロトコルスタックモジュール102に供給される。
API処理部121は、APIディスパッチャ131、ソケットプロキシ132、プロトコルスタックAPI133、およびデバイスドライバ134を含むようにして構成される。
なお、図3の例では、プロトコルスタックAPI133を拡張用のAPIの一例として説明するが、他の拡張用のAPIを追加してもよい。また、API処理部121は、デバイスドライバ134を含まないようにして、APIディスパッチャ131、ソケットプロキシ132、およびプロトコルスタックAPI133から構成するようにしてもよい。この場合、デバイスドライバ134は、ミドルウェア113に含まれることになる。
APIディスパッチャ131は、アプリケーションプログラム111またはGUIコマンドツール112から供給されるAPIコールを基に、ソケットプロキシ132またはプロトコルスタックAPI133のいずれか一方にAPIコールを供給することにより、所定の処理を実行させる。
ソケットプロキシ132は、標準的なAPIであり、例えば、UNIX(登録商標)系のBSDソケットやWindows(登録商標)系のWinsockなどのソケットAPIにより、データを送受信するための所定の機能を提供する。ソケットプロキシ132は、APIディスパッチャ131から供給されるAPIコールに応じた所定の処理を行い、所定の処理を行うことにより得られたデータをデバイスドライバ134に供給する。また、ソケットプロキシ132は、APIディスパッチャ131から供給されるAPIコールに応じて、プロトコルスタックモジュール102に指示するためのプロトコルスタックコマンドを生成し、生成したプロトコルスタックコマンドをデバイスドライバ134に供給する。
プロトコルスタックAPI133は、プロトコルスタックモジュール102専用の拡張APIであり、例えば、SNMP(Simple Network Management Protocol)インターフェースなどのプロトコルスタックモジュール102に関する所定の機能を提供する。プロトコルスタックAPI133は、APIディスパッチャ131から供給されるAPIコールに応じた所定の処理を行い、所定の処理を行うことにより得られたデータをデバイスドライバ134に供給する。また、プロトコルスタックAPI133は、APIディスパッチャ131から供給されるAPIコールに応じて、プロトコルスタックモジュール102に指示するためのプロトコルスタックコマンドを生成し、生成したプロトコルスタックコマンドをデバイスドライバ134に供給する。
すなわち、ソケットプロキシ132およびプロトコルスタックAPI133のそれぞれにおいては、例えば、TCP/IPなどのプロトコルスタックの処理を行っていないことになる。
したがって、API処理部121で行われる処理は、プロトコルスタックに依存しないので、プロトコルスタックを意識することなく、拡張用のAPI(例えば、プロトコルスタックAPI133以外のAPI)を自由に追加することができる。換言すれば、API処理部121は、プロトコルスタックに対して、多様なAPIを提供できるとも言える。
デバイスドライバ134は、ソケットプロキシ132またはプロトコルスタックAPI133のいずれか一方から供給される、AVデータなどのデータをプロトコルスタックモジュール102に供給する。また、デバイスドライバ134は、ソケットプロキシ132またはプロトコルスタックAPI133のいずれか一方から供給されるプロトコルスタックコマンドをプロトコルスタックモジュール102に供給する。
なお、デバイスドライバ134(ユーザモジュール101)とプロトコルスタックインターフェース141(プロトコルスタックモジュール102)との間のインターフェースの詳細は、図4を参照して後述する。
ネットワーク管理部122は、API処理部121を介して、プロトコルスタックモジュール102の状態を監視し、その状態に関する情報を蓄積する。例えば、ネットワーク管理部122は、プロトコルスタックモジュール102の状態を監視することにより、ログやエラーに関する情報、すなわち、例えば、ネットワークの負荷、プロトコルスタックモジュール102の負荷、またはプロトコルスタックモジュール102が新規で追加されたかなどの情報を蓄積する。
ネットワーク管理部122は、GUIコマンドツール112(またはアプリケーションプログラム111)から供給されるコマンドが、プロトコルスタックモジュール102のモニタや管理に関するコマンドである場合、自分が蓄積しているプロトコルスタックモジュール102の状態に関する情報をGUIコマンドツール112(またはアプリケーションプログラム111)に供給する。また、このとき、ネットワーク管理部122は、自分が蓄積している情報を分析したり、それらの情報を加工してから、GUIコマンドツール112(またはアプリケーションプログラム111)に供給するようにしてもよい。
このとき、GUIコマンドツール112(またはアプリケーションプログラム111)は、API処理部121を介して、ネットワーク管理部122から供給される情報を、出力部17の画面などに表示させる。その結果、ユーザは、プロトコルスタックモジュール102やネットワークの状態を知ることができる。
プロトコルスタックモジュール102は、例えば、ROM52(図2)または記録部55(図2)などに記録され、必要に応じて、RAM53(図2)にロードされて、CPU51(図2)により実行される。
プロトコルスタックモジュール102は、プロトコルスタックインターフェース141およびプロトコルスタック処理部142を含むように構成される。
プロトコルスタック処理部142は、プロトコルスタックインターフェース141を介して、デバイスドライバ134(ユーザモジュール101)から供給される、AVデータなどのデータまたはプロトコルスタックコマンドを基に、プロトコルスタックの処理を行う。プロトコルスタック処理部142は、所定の処理が施されたデータ(パケット)を、ネットワークを介して、ネットワークに接続された他の機器に送信する。
また、プロトコルスタック処理部142は、プロトコルスタックインターフェース141およびデバイスドライバ134を介して、API処理部121により提供される機能を適宜取得して、プロトコルスタックの処理を行う。
換言すれば、通信機能(通信処理)を階層構造に分割したモデルで考えた場合、プロトコルスタック処理部142は、API処理部121により行われる処理の下位の層、すなわち、例えば、TCP/IPなどのプロトコルスタックの処理を行っているとも言える。
ここで、プロトコルスタックの処理では、例えば、チェックサム(Check Sum)、IPフラグメント(IP Fragment)、またはIPデフラグメント(IP Defragment)などの処理や、セッションを張る処理、パケットをロスしたときのパケットを再送する処理、またはルーティングの処理などが行われる。
なお、プロトコルスタック処理部142における、チェックサム、IPフラグメント、またはIPデフラグメントの処理のそれぞれは、例えば、ハードウェアにより実装され、セッションを張る処理、パケットをロスしたときのパケットを再送する処理、またはルーティングの処理のそれぞれは、例えば、CPU51(図2)が実行するプログラム(ソフトウェア)により実装される。すなわち、上述したように、プロトコルスタックモジュール102は、例えば、CPU51(図2)が実行するプログラム(ソフトウェア)として構成されているが、通信部19のハードウェア構成を図2とは異ならせることで、プロトコルスタックモジュール102は、ハードウェア単体として構成することもできるし、ソフトウェアとハードウェアとの組み合わせとして構成することもできる。
すなわち、本実施の形態では、これらプロトコルスタックの処理を、CPU11(図1)に負担がかからないようにするために、CPU11が実行するのではなく、CPU51(図2)が実行している。
以上のように、パーソナルコンピュータ1においては、APIとプロトコルスタックとが分離しているので、ユーザモジュール101が、プロトコルスタックの処理を行わずに、プロトコルスタックモジュール102が、プロトコルスタックの処理を行うことになる。
次に、図4を参照して、ユーザモジュール101とプロトコルスタックモジュール102との間のインターフェースについて説明する。
図4の例に示されるように、プロトコルスタックモジュール102は、コマンド用とデータ用の2つのインターフェースを持っている。プロトコルスタックモジュール102は、これらの2つのインターフェースにより、コマンドバスおよびデータバスを介して、ユーザモジュール101と接続されている。すなわち、ユーザモジュール101とプロトコルスタックモジュール102とは、図中左側のコマンド用のコマンドバスと、図中右側のデータ用のデータバスによりそれぞれ接続されている。
ここで、コマンドバスであるが、例えば、32ビットのSRAM/SSRAM(Static Random Access Memory/Synchronous SRAM)に準拠しており、ユーザモジュール101とプロトコルスタックモジュール102との間のコマンド(プロトコルスタックコマンド)のやり取りや、高速転送を必要としないデータを転送する場合に使用される。
また、データバスは、例えば、32/64ビット選択式のDMA(Direct Memory Access)からなり、ユーザモジュール101とプロトコルスタックモジュール102との間で、例えば、AVデータなどの大容量のデータを高速転送する。
なお、ユーザモジュール101とプロトコルスタックモジュール102との間においては、データバスを使用せずに、コマンドバスのみを使用して、コマンドまたはデータを転送することも可能である。
ところで、上述したように、パーソナルコンピュータ1においては、ユーザモジュール101が、プロトコルスタックの処理を行わずに、プロトコルスタックモジュール102が、プロトコルスタックの処理を行うが、以下、その処理の一例として、図5のフローチャートを参照して、図3のパーソナルコンピュータ1による、データ送信の処理について説明する。なお、この処理は、例えば、ユーザによりユーザインターフェースを介して、データを送信するための所定の指令がされたときに開始される。
ステップS11において、アプリケーションプログラム111は、ユーザの操作に応じて、コマンドを発行し、発行したコマンドをAPI処理部121に供給する。
例えば、ステップS11において、アプリケーションプログラム111は、ユーザの操作に応じて、UNIX(登録商標)系のOS上で動作している場合、BSDソケットコマンドを発行し(Windows(登録商標)系のOS上で動作している場合、Winsockコマンドを発行し)、発行したBSDソケットコマンド(Winsockコマンド)をAPI処理部121に供給する。
ステップS12において、API処理部121は、アプリケーションプログラム111から供給されるAPIコールに応じて、所定の処理を行い、所定の処理を行うことにより得られたデータまたはコマンド(プロトコルスタックコマンド)を、プロトコルスタックモジュール102(プロトコルスタック処理部142)に供給する。
例えば、ステップS12において、API処理部121は、UNIX(登録商標)系のOS上で動作している場合、アプリケーションプログラム111から供給されるBSDソケットコマンドに応じた所定の処理を行い、所定の処理を行うことにより得られたAVデータなどのデータを、データバスを介して、プロトコルスタックモジュール102(プロトコルスタック処理部142)に供給する。また、API処理部121は、アプリケーションプログラム111から供給されるBSDソケットコマンドに応じたプロトコルスタックコマンドを生成し、生成したプロトコルスタックコマンドを、コマンドバスを介して、プロトコルスタックモジュール102(プロトコルスタック処理部142)に供給する。
なお、このとき、API処理部121は、APIとプロトコルスタックとが分離しているので、例えば、TCP/IPなどのプロトコルスタックの処理を行わないことになる。
ステップS13において、プロトコルスタック処理部142は、データバスを介して、API処理部121から供給されるデータまたはプロトコルスタックコマンドを基に、プロトコルスタックの処理を行う。プロトコルスタック処理部142は、所定の処理が施されたデータ(パケット)を、ネットワークを介して、ネットワークに接続された他の機器に送信して、データ送信の処理は終了する。
例えば、ステップS13において、プロトコルスタック処理部142は、コマンドバスを介して、API処理部121から供給されるプロトコルスタックコマンドを基に、データバスを介して、API処理部121から供給されるAVデータに対して、例えば、チェックサム(Check Sum)、IPフラグメント(IP Fragment)、またはIPデフラグメント(IP Defragment)などの処理や、セッションを張る処理、パケットをロスしたときのパケットの再送処理、またはルーティングの処理などを行って、それらの処理が施されたデータ(パケット)を、ネットワークを介して、ネットワークに接続された他の機器に送信する。
すなわち、プロトコルスタック処理部142は、APIとプロトコルスタックとが分離しているので、プロトコルスタックの処理のみを行うことになる。
以上のように、パーソナルコンピュータ1においては、ユーザモジュール101(API処理部121)が、プロトコルスタックの処理を行わずに、プロトコルスタックモジュール102(プロトコルスタック処理部142)が、プロトコルスタックの処理を行う。
このように、本発明においては、OSのカーネルなどにおいて、不可分に結び付いていたAPIとプロトコルスタックとを分離させることにより、API処理部121の代わりに、プロトコルスタック処理部142がプロトコルスタックの処理を行う。その結果、APIとプロトコルスタックとが分離されているので、例えば、TCP/IPやUDP/IPなどのプロトコルスタックに対して、多様なAPIを提供することができる。
ところで、パーソナルコンピュータ1においては、プロトコルスタックモジュール102またはミドルウェア113を複数設けるようにすることで、本番系に障害が発生した場合に待機系に切り替えて、障害を回避することができる(フォールトトレラント)。
ここで、ミドルウェア113は、例えば、機器(パーソナルコンピュータ1)上に1つまたは2つのインスタンスを生成することができる。したがって、パーソナルコンピュータ1においては、1つのミドルウェア113のインスタンスに2つのプロトコルスタックモジュール102が接続される場合と、ミドルウェア113のインスタンスとプロトコルスタックモジュール102とが1対1となるように接続される場合とがある。
まず、図6を参照して、パーソナルコンピュータ1において、1つのミドルウェア113のインスタンスに2つのプロトコルスタックモジュール102が接続される場合について説明する。
図6のパーソナルコンピュータ1において、ユーザモジュール101は、アプリケーションプログラム111−1乃至アプリケーションプログラム111−3およびミドルウェア113を含むようにして構成される。
すなわち、図6で示される例においては、アプリケーションプログラム111−1乃至アプリケーションプログラム111−3が起動しており、ミドルウェア113を介して、本番系のプロトコルスタックモジュール102−1により、ネットワークを介して、ネットワークに接続された他の機器(リモート)と通信を行っている。また、このとき、プロトコルスタックモジュール102−2は、処理を行わずに待機系となっている。
ここで、パーソナルコンピュータ1では、本番系のプロトコルスタックモジュール102−1に障害が発生した場合、既存のセッションが切断されるので、ミドルウェア113は、待機系のプロトコルスタックモジュール102−2を初期化して、リモートと再接続をする。ただし、障害が発生した本番系のプロトコルスタックモジュール102−1の中にバッファされていたパケットは破棄されてしまうので、ミドルウェア113は、アプリケーションプログラム111−1乃至アプリケーションプログラム111−3のそれぞれに、それぞれがどこまでパケットを送信し終えたかを通知する。アプリケーションプログラム111−1乃至アプリケーションプログラム111−3のそれぞれは、ミドルウェア113からの通知にしたがって、あらためて破棄されたパケットを再送する。
次に、図7を参照して、パーソナルコンピュータ1において、ミドルウェア113のインスタンスとプロトコルスタックモジュール102とが1対1となるように接続される場合について説明する。
図7のパーソナルコンピュータ1において、ユーザモジュール101は、アプリケーションプログラム111−1乃至アプリケーションプログラム111−3、ミドルウェア113−1、およびミドルウェア113−2を含むようにして構成される。
すなわち、図7で示される例においては、アプリケーションプログラム111−1およびアプリケーションプログラム111−2が起動しており、本番系のミドルウェア113−1を介して、本番系のプロトコルスタックモジュール102−1により、ネットワークを介して、リモートと通信を行っている。また、ミドルウェア113−2およびプロトコルスタックモジュール102−2は、待機系となり、アプリケーションプログラム111−3も起動していないことになる。
ここで、パーソナルコンピュータ1では、本番系のプロトコルスタックモジュール102−1に障害が発生した場合、既存のセッションは切断されて送信途中のパケットは破棄される。したがって、パケットを送信していたアプリケーションプログラム111−2は、待機系のミドルウェア113−2およびプロトコルスタックモジュール102−2のそれぞれを用いて、あらためてリモートとセッションを確立し、パケットを再送する。
なお、本番系のミドルウェア113−1に障害が発生した場合、本番系のプロトコルスタックモジュール102−1に障害が発生した場合と同様に、既存のセッションは切断されて送信途中のパケットは破棄され、パケットを送信していたアプリケーションプログラム111−2は、待機系のミドルウェア113−2およびプロトコルスタックモジュール102−2のそれぞれを用いて、あらためてリモートとセッションを確立し、パケットを再送する。
以上のように、パーソナルコンピュータ1においては、2つのプロトコルスタックモジュール102−1およびプロトコルスタックモジュール102−2のそれぞれを設けることにより、本番系のプロトコルスタックモジュール102−1に障害が発生した場合、待機系のプロトコルスタックモジュール102−2に切り替えて、プロトコルスタックの処理を続けることができる。
このように、OSのカーネルなどにおいて、不可分に結び付いていたAPIとプロトコルスタックとを分離させることにより、プロトコルスタックの処理を分離することができるので、例えば、プロトコルスタックの処理を行う、本番系のプロトコルスタックモジュール102−1に障害が起こった場合でも、待機系のプロトコルスタックモジュール102−2に切り替えることで、その影響を最小限に抑えることが可能となる。また、障害発生時には、例えば、ミドルウェア113とプロトコルスタックモジュール102とを別個に検証し、どちらに原因があるかなどが明確となり、より迅速に、障害の原因を突き止めることができる。
なお、パーソナルコンピュータ1のリソースに余裕のある場合、ミドルウェア113レベルでの耐故障性を上げたいとき、1つのミドルウェア113から構成される図6よりも、2つのミドルウェア113から構成される図7の構成とするほうが望ましい。
以上のようにして、本発明によれば、不可分に結び付いていたAPIとプロトコルスタックとを分離させることにより、プロトコルスタックの処理を分離することができるので、特定のプロトコルスタックに対して、多様なAPIを提供することができる。その結果、例えば、アプリケーションプログラムを開発するユーザ(開発者)に対して、多様なネットワークプログラミングに関するAPIを提供することができる。
また、本発明によれば、ホスト側のCPU11が行っていた、TCP/IPなどのプロトコルスタックの処理を、プロトコルスタックの処理を専用で実行するCPU51が行うようにしたので、ホスト側のCPUリソースをアプリケーションプログラムの処理だけに割り当てることができるようになり、ホスト側のCPU11の負荷を減らすとともに、TCP/IPの処理を高速化させることができる。
さらに、本発明によれば、例えば、ユーザによるアプリケーションプログラム111(GUIコマンドツール112)の操作に応じて、ソケットプロキシ132またはプロトコルソケットAPI133など、各機能ごとに必要となるものだけ選択してロードすることにより、メモリを有効に利用することができる。その結果、リソースが十分でない機器であっても、メモリを有効に利用可能となるので、例えば、大容量のAVデータの送受信を行うことができる。
また、本発明によれば、不可分に結び付いていたAPIとプロトコルスタックとが分離されているので、ユーザ(開発者)は、APIとプロトコルスタックとの間のインターフェースを自由に定義することができる。
なお、図1の通信部19は、上述した例ではパーソナルコンピュータ1の一構成要素とされたが、図2の構成例に示すように、1つの装置として把握することも可能である。すなわち、例えば、図1の通信部19を、パーソナルコンピュータ1から着脱自在な装置として構成することも可能である。この場合、通信部19は、パーソナルコンピュータ1のみならず、例えば、ビデオカメラ、AVサーバ、またはスイッチャなどの様々な機器に装着されて、ネットワーク通信を行うための上述した各種処理を実行することができる。
また、上述した例においては、プロトコルスタックとして、TCP/IPを一例にして説明したが、本発明においてはそれに限らず、例えば、UDP/IPなどであってもよい。
さらにまた、本発明においては、例えば、パーソナルコンピュータ1と通信用機器とを、シリアル接続やUSB(Universal Serial Bus)接続などにより接続させて、接続された通信用機器により、ネットワークを介して、ネットワークに接続されている他の機器と通信をさせるようにしてもよい。すなわち、この場合、パーソナルコンピュータ1は、ユーザモジュール101に関する処理を行い、通信用機器は、シリアルケーブルやUSBケーブルなどを介して、パーソナルコンピュータ1から供給されてくるコマンドやデータを基に、プロトコルスタックモジュール102に関する所定の処理を行って、データ(パケット)を他の機器に送信する。
上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
この記録媒体は、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disk))を含む)、光磁気ディスク(MD(Mini-Disk)(登録商標)を含む)、若しくは半導体メモリなどよりなる図1のリムーバブルメディア21により構成されるだけでなく、コンピュータに予め組み込まれた状態でユーザに提供される、プログラムが記録されている図1のROM12や記録部18などで構成される。
また、上述した一連の処理を実行させるプログラムは、必要に応じてルータ、モデムなどのインターフェースを介して、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の通信媒体を介してコンピュータにインストールされるようにしてもよい。
なお、本明細書において、記録媒体に格納されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
パーソナルコンピュータのハードウェアの構成の例を示すブロック図である。 通信部のハードウェアの構成の例を示すブロック図である。 本発明を適用したパーソナルコンピュータの一実施の形態の構成を示すブロック図である。 ユーザモジュールとプロトコルスタックモジュールとの間のインターフェースについて説明する図である。 パーソナルコンピュータによる、データ送信の処理について説明するフローチャートである。 パーソナルコンピュータにおいて、1つのミドルウェアのインスタンスに2つのプロトコルスタックモジュールが接続される場合について説明する図である。 パーソナルコンピュータにおいて、ミドルウェアのインスタンスとプロトコルスタックモジュールとが1対1となるように接続される場合について説明する図である。
符号の説明
1 パーソナルコンピュータ, 11 CPU, 12 ROM, 13 RAM, 18 記録部, 19 通信部, 20 ドライブ, 21 リムーバブルメディア, 51 CPU, 52 ROM, 53 RAM, 55 記録部, 101 ユーザモジュール, 102 プロトコルスタックモジュール, 111 アプリケーションプログラム, 112 GUIコマンドツール, 113 ミドルウェア, 121 API処理部, 122 ネットワーク管理部, 131 APIディスパッチャ, 132 ソケットプロキシ, 133 プロトコルスタックAPI, 134 デバイスドライバ, 141 プロトコルスタックインターフェース, 142 プロトコルスタック処理部

Claims (9)

  1. ネットワークを介して、前記ネットワークに接続された他の機器と通信するために通信処理を実行する情報処理装置において、
    アプリケーションプログラムからの要求に応じて、複数の階層からなる前記通信処理のうち、ネットワークプロトコルスタックの上位の層の第1の処理を実行する第1の処理手段と、
    前記第1の処理の処理結果に応じて、前記ネットワークプロトコルスタックの第2の処理を実行する第2の処理手段と
    を備え、
    前記第1の処理手段は、前記アプリケーションプログラムによって呼び出されるAPI(Application Program Interface)により、前記第1の処理を実行する
    情報処理装置。
  2. 前記第2の処理手段の状態を監視し、その状態に関する情報を蓄積する監視手段を備える
    請求項1の情報処理装置。
  3. 前記第1の処理手段は、前記第1の処理を実行するために必要となる前記APIを選択し、選択された前記APIをロードすることにより、前記第1の処理を実行する
    請求項1の情報処理装置。
  4. 前記APIは、ソケットAPIである
    請求項1の情報処理装置。
  5. 前記ネットワークプロトコルスタックは、TCP/IP(Transmission Control Protocol/Internet Protocol)である
    請求項1の情報処理装置。
  6. 前記第2の処理手段に障害が発生した場合、前記第2の処理を実行する第3の処理手段を備え、
    前記第1の処理手段は、前記第2の処理手段に障害が発生した場合、前記アプリケーションプログラムから障害発生前の状態を取得し、取得した前記状態の結果に応じて、前記第1の処理を実行し、
    前記第3の処理手段は、前記第1の処理の処理結果に応じて、前記第2の処理を実行する
    請求項1の情報処理装置。
  7. 前記第1の処理手段または前記第2の処理手段に障害が発生した場合、前記第1の処理を実行する第3の処理手段と、
    前記第1の処理手段または前記第2の処理手段に障害が発生した場合、前記第2の処理を実行する第4の処理手段と
    を備え、
    前記第3の処理手段は、前記第1の処理手段または前記第2の処理手段に障害が発生した場合、前記アプリケーションプログラムから障害発生前の状態を取得し、取得した前記状態の結果に応じて、前記第1の処理を実行し、
    前記第4の処理手段は、前記第1の処理の処理結果に応じて、前記第2の処理を実行する
    請求項1の情報処理装置。
  8. ネットワークを介して、前記ネットワークに接続された他の機器と通信するために通信処理を実行する第1の処理手段と第2の処理手段とを備える情報処理装置の情報処理方法であって、
    アプリケーションプログラムからの要求に応じて、複数の階層からなる前記通信処理のうち、ネットワークプロトコルスタックの上位の層の第1の処理を実行する第1の処理ステップと、
    前記第1の処理の処理結果に応じて、前記ネットワークプロトコルスタックの第2の処理を実行する第2の処理ステップと
    を含み、
    前記第1の処理ステップは、前記アプリケーションプログラムによって呼び出されるAPIにより、前記第1の処理を実行する
    情報処理方法。
  9. ネットワークを介して、前記ネットワークに接続された他の機器と通信するために通信処理を、第1の処理手段と第2の処理手段とに行わせるプログラムにおいて、
    アプリケーションプログラムからの要求に応じて、複数の階層からなる前記通信処理のうち、ネットワークプロトコルスタックの上位の層の第1の処理を実行する第1の処理ステップと、
    前記第1の処理の処理結果に応じて、前記ネットワークプロトコルスタックの第2の処理を実行する第2の処理ステップと
    を含み、
    前記第1の処理ステップは、前記アプリケーションプログラムによって呼び出されるAPIにより、前記第1の処理を実行する
    プログラム。
JP2006000648A 2006-01-05 2006-01-05 情報処理装置および方法、並びにプログラム Expired - Fee Related JP4506676B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2006000648A JP4506676B2 (ja) 2006-01-05 2006-01-05 情報処理装置および方法、並びにプログラム
US11/616,466 US20070156915A1 (en) 2006-01-05 2006-12-27 Information processing apparatus, information processing method, and program
CNA200710001826XA CN1997028A (zh) 2006-01-05 2007-01-05 信息处理装置和方法以及程序

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006000648A JP4506676B2 (ja) 2006-01-05 2006-01-05 情報処理装置および方法、並びにプログラム

Publications (2)

Publication Number Publication Date
JP2007183738A true JP2007183738A (ja) 2007-07-19
JP4506676B2 JP4506676B2 (ja) 2010-07-21

Family

ID=38225991

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006000648A Expired - Fee Related JP4506676B2 (ja) 2006-01-05 2006-01-05 情報処理装置および方法、並びにプログラム

Country Status (3)

Country Link
US (1) US20070156915A1 (ja)
JP (1) JP4506676B2 (ja)
CN (1) CN1997028A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010018053A (ja) * 2008-07-08 2010-01-28 Mitsubishi Electric Corp 衛星管制システム及び衛星管制装置
WO2013180167A1 (ja) * 2012-05-30 2013-12-05 横河電機株式会社 通信装置
KR101577034B1 (ko) * 2014-06-26 2015-12-14 (주)모두텍 소프트웨어적인 네트워크 부가기능 추가가 용이한 멀티코어 기반의 toe 시스템 및 그 제어 방법

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7304586B2 (en) 2004-10-20 2007-12-04 Electro Industries / Gauge Tech On-line web accessed energy meter
US7747733B2 (en) 2004-10-25 2010-06-29 Electro Industries/Gauge Tech Power meter having multiple ethernet ports
US20070208894A1 (en) * 2006-03-02 2007-09-06 Curry David S Modification of a layered protocol communication apparatus
US10845399B2 (en) * 2007-04-03 2020-11-24 Electro Industries/Gaugetech System and method for performing data transfers in an intelligent electronic device
US8402151B2 (en) * 2007-12-07 2013-03-19 Roche Diagnostics Operations, Inc. Dynamic communication stack
CN101895441B (zh) * 2010-07-21 2014-03-12 中兴通讯股份有限公司 一种物联网终端java应用的业务调试装置和方法
US8832342B2 (en) * 2011-10-28 2014-09-09 Lg Cns Co., Ltd. Traffic communication module and method of forming the same

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05327826A (ja) * 1992-05-15 1993-12-10 Nec Corp 通信プロトコル障害情報蓄積システム
JPH06309251A (ja) * 1993-04-26 1994-11-04 Hitachi Ltd 高速の通信アダプタを実装した計算機
JPH09305510A (ja) * 1996-05-13 1997-11-28 Hitachi Ltd 自動経路切替システム
JPH10190649A (ja) * 1996-10-16 1998-07-21 Hewlett Packard Co <Hp> 双方向データストリーム伝送装置
JPH10320327A (ja) * 1997-03-19 1998-12-04 Fujitsu Ltd 二重化された通信アダプタの切替方法、切替方式、および切替用プログラムを格納した記録媒体
JP2004192642A (ja) * 2002-12-06 2004-07-08 Docomo Communications Laboratories Usa Inc 設定変更可能な信頼性の高いメッセージ通信システム

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6412068B1 (en) * 1999-07-07 2002-06-25 Dell Products, L.P. Card management bus and method
US7287192B1 (en) * 1999-09-23 2007-10-23 Computer Associates Think, Inc. Identifying a failed device in a network
US6690789B1 (en) * 2000-08-31 2004-02-10 Cisco Technology, Inc. Fault tolerant telephony control
US7287090B1 (en) * 2000-12-21 2007-10-23 Noatak Software, Llc Method and system for identifying a computing device in response to a request packet
US20030023775A1 (en) * 2001-07-13 2003-01-30 International Business Machines Corporation Efficient notification of multiple message completions in message passing multi-node data processing systems
US6892321B2 (en) * 2001-07-17 2005-05-10 International Business Machines Corporation Transition to switch node adapter diagnostics using adapter device driver
FR2829337B1 (fr) * 2001-09-03 2003-10-31 Schneider Automation Equipement d'automatisme connecte a un reseau tcp/ip
US7318095B2 (en) * 2001-11-21 2008-01-08 Clearcube Technology, Inc. Data fail-over for a multi-computer system
US7024591B2 (en) * 2002-07-12 2006-04-04 Crossroads Systems, Inc. Mechanism for enabling enhanced fibre channel error recovery across redundant paths using SCSI level commands
US7158998B2 (en) * 2002-07-31 2007-01-02 Cingular Wireless Ii, Llc Efficient synchronous and asynchronous database replication
US6938179B2 (en) * 2002-11-01 2005-08-30 Nokia Corporation Socket extensions for redundancy
JP4029804B2 (ja) * 2003-09-02 2008-01-09 ブラザー工業株式会社 ネットワーク装置、および送信出力レベル変更方法
US7590717B1 (en) * 2003-10-09 2009-09-15 Nortel Networks Limited Single IP address for redundant shelf processors
US7877627B1 (en) * 2008-12-18 2011-01-25 Supercon, L.L.C. Multiple redundant computer system combining fault diagnostics and majority voting with dissimilar redundancy technology

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05327826A (ja) * 1992-05-15 1993-12-10 Nec Corp 通信プロトコル障害情報蓄積システム
JPH06309251A (ja) * 1993-04-26 1994-11-04 Hitachi Ltd 高速の通信アダプタを実装した計算機
JPH09305510A (ja) * 1996-05-13 1997-11-28 Hitachi Ltd 自動経路切替システム
JPH10190649A (ja) * 1996-10-16 1998-07-21 Hewlett Packard Co <Hp> 双方向データストリーム伝送装置
JPH10320327A (ja) * 1997-03-19 1998-12-04 Fujitsu Ltd 二重化された通信アダプタの切替方法、切替方式、および切替用プログラムを格納した記録媒体
JP2004192642A (ja) * 2002-12-06 2004-07-08 Docomo Communications Laboratories Usa Inc 設定変更可能な信頼性の高いメッセージ通信システム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010018053A (ja) * 2008-07-08 2010-01-28 Mitsubishi Electric Corp 衛星管制システム及び衛星管制装置
WO2013180167A1 (ja) * 2012-05-30 2013-12-05 横河電機株式会社 通信装置
US10305793B2 (en) 2012-05-30 2019-05-28 Yokogawa Electric Corporation Communication device for switching stacks and method of controlling execution of stacks
KR101577034B1 (ko) * 2014-06-26 2015-12-14 (주)모두텍 소프트웨어적인 네트워크 부가기능 추가가 용이한 멀티코어 기반의 toe 시스템 및 그 제어 방법

Also Published As

Publication number Publication date
CN1997028A (zh) 2007-07-11
JP4506676B2 (ja) 2010-07-21
US20070156915A1 (en) 2007-07-05

Similar Documents

Publication Publication Date Title
JP4506676B2 (ja) 情報処理装置および方法、並びにプログラム
US9872205B2 (en) Method and system for sideband communication architecture for supporting manageability over wireless LAN (WLAN)
US11196677B2 (en) Heterogeneous multi-protocol stack method, apparatus, and system
US20180210752A1 (en) Accelerator virtualization method and apparatus, and centralized resource manager
JP2005228316A (ja) Tcpコネクション管理装置、tcpコネクション管理方法及びプログラム保存装置
CN1633647A (zh) 用于管理网络中的数据传送的系统、方法和产品
US20110276625A1 (en) Method and system for host independent keyboard, video, and mouse (kvm) redirection
WO2010097978A1 (ja) 通信装置、方法及びプログラム
CN111147573A (zh) 一种数据传输的方法和装置
CN116048538B (zh) 用于dpu的服务网格部署方法及装置
CN111885093B (zh) 事件请求的传输方法和装置、存储介质及电子设备
US8798097B2 (en) Communication devices that communicate using frames and computer-readable media for controlling communication devices
US8352623B2 (en) System for energy efficient computer management environment via tightly integrated target status and directed work sessions
CN100363922C (zh) 用于独立于带宽延迟产品的tcp/ip卸载的系统和方法
US20140297791A1 (en) Communication apparatus, method of controlling the same, and storage medium
US8693483B2 (en) Adjusting MSS of packets sent to a bridge device positioned between virtual and physical LANS
CN116192863B (zh) 微服务流量处理方法、dpu服务网格部署方法及系统
JP4415391B2 (ja) データをネットワークに送信する方法及び装置並びにデータをネットワークから受信する方法及び装置
EP4030679A1 (en) Sequence number synchronization method and apparatus
CN113259404B (zh) 基于tcp/ip协议的工业通信中间件及其使用方法
JP6979913B2 (ja) 情報処理装置、情報処理方法、及びプログラム
CN107948105B (zh) 控制设备的端口状态的方法和系统
US8473965B2 (en) Net-timer daemon
JP2017157963A (ja) 通信装置、通信方法及びプログラム
JP4671438B2 (ja) サーバ装置及びその制御方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090518

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090611

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090807

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091105

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091228

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: 20100406

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100419

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130514

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130514

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees