JPWO2007123025A1 - Technology to control communication with external devices using a proxy server - Google Patents

Technology to control communication with external devices using a proxy server Download PDF

Info

Publication number
JPWO2007123025A1
JPWO2007123025A1 JP2008512068A JP2008512068A JPWO2007123025A1 JP WO2007123025 A1 JPWO2007123025 A1 JP WO2007123025A1 JP 2008512068 A JP2008512068 A JP 2008512068A JP 2008512068 A JP2008512068 A JP 2008512068A JP WO2007123025 A1 JPWO2007123025 A1 JP WO2007123025A1
Authority
JP
Japan
Prior art keywords
communication
socket
proxy server
state
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
JP2008512068A
Other languages
Japanese (ja)
Other versions
JP4965562B2 (en
Inventor
康泰 青木
康泰 青木
宗孝 大谷
宗孝 大谷
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2008512068A priority Critical patent/JP4965562B2/en
Publication of JPWO2007123025A1 publication Critical patent/JPWO2007123025A1/en
Application granted granted Critical
Publication of JP4965562B2 publication Critical patent/JP4965562B2/en
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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/59Providing operational support to end devices by off-loading in the network or by emulation, e.g. when they are unavailable
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/24Arrangements for testing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • H04L67/125Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
    • 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/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/22Processing or transfer of terminal data, e.g. status or physical capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/02Terminal devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/18Service support devices; Network management devices
    • H04W88/182Network node acting on behalf of an other network entity, e.g. proxy

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Telephonic Communication Services (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Computer And Data Communications (AREA)
  • Communication Control (AREA)
  • Eye Examination Apparatus (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

【課題】組込機器による通信をこれまでより効率的に実現する。【解決手段】通信の制御を代行する外部の代行サーバを介して他の装置と通信する組込機器であって、代行サーバと通信可能な通信デバイスと、他の装置との通信状態を記憶するための記憶部と、中央処理装置により実行されるタスクから他の装置との通信の制御要求を受けたことに応じ、通信デバイスと代行サーバとが通信可能でない状態において、制御要求に応じた制御を正常に行った後の状態に通信状態を更新する更新部と、制御要求に応じた通信状態の更新結果をタスクに返答する返答部と、通信デバイスが代行サーバと通信可能な状態において、代行サーバにおける他の装置との間の通信状態を記憶部に記憶された通信状態に遷移させるための指示を、通信デバイスを用いて代行サーバに対し送信する制御指示部とを備える組込機器。Communication using an embedded device is realized more efficiently than before. An embedded device that communicates with another device via an external proxy server acting as a proxy for communication, and stores a communication device capable of communicating with the proxy server and a communication state between the other device. Control according to the control request in a state where the communication device and the proxy server are not communicable in response to receiving a control request for communication with another device from a task executed by the central processing unit. In the state where the communication device can communicate with the proxy server, the update unit that updates the communication state to the state after the normal operation is performed, the response unit that returns the update result of the communication state according to the control request to the task Embedded machine comprising: a control instruction unit that transmits an instruction for transitioning a communication state with another device in the server to a communication state stored in the storage unit to the proxy server using the communication device .

Description

本発明は、組込機器、代行サーバ、方法、および、プログラムに関する。特に、本発明は、通信の制御を外部の代行サーバによって代行させるための組込機器、代行サーバ、方法、および、プログラムに関する。   The present invention relates to an embedded device, a proxy server, a method, and a program. In particular, the present invention relates to an embedded device, a proxy server, a method, and a program for proxying communication control by an external proxy server.

近年、ソフトウェアに求められる機能は高度になってきている。また、携帯電話やデジタル家電などの組込機器の普及に伴って、ソフトウェアは多数の異なるプラットフォーム上で動作することが求められる場合もある。このようなソフトウェアを効率的に開発するために、従来、モデル駆動開発(MMD:Model Driven Development)が研究されている。モデル駆動開発によれば、統一モデリング言語(UML:Unified Modeled Language)などで記述されたソフトウェアの仕様から、様々なプラットフォーム上で実際に動作するソフトウェアを自動的に生成することができる。   In recent years, functions required for software have become sophisticated. Also, with the proliferation of embedded devices such as mobile phones and digital home appliances, software may be required to run on a number of different platforms. In order to efficiently develop such software, model driven development (MMD) has been studied. According to model-driven development, software that actually operates on various platforms can be automatically generated from software specifications described in a unified modeling language (UML) or the like.

モデル駆動開発を実現する技術として、従来、インターナショナル・ビジネス・マシーンズ・コーポレーションのRational Rose(R)RTが用いられている。この技術において、開発者は、ソフトウェアの仕様の作成や仕様の修正を、汎用性の高いパーソナル・コンピュータ上で行う。そして、作成または修正された仕様に基づき生成されたソフトウェアは、通信回線を介して組込機器に送信されて実行される。更に、この技術では、実際のソフトウェアと仕様とを対比可能なデバッグ環境も提供される。例えば、開発者は、組込機器により実行されるプログラムの実行中の部分が、仕様のどの部分に対応するのかを、パーソナル・コンピュータの画面で確認することができる。   As a technique for realizing model-driven development, the International Rose (R) RT of International Business Machines Corporation has been conventionally used. In this technology, a developer creates a software specification and modifies the specification on a highly versatile personal computer. The software generated based on the created or modified specification is transmitted to the embedded device via the communication line and executed. Furthermore, this technology also provides a debugging environment that can compare actual software and specifications. For example, the developer can confirm on the screen of the personal computer which part of the specification corresponds to the part being executed of the program executed by the embedded device.

特開2002−63088号公報JP 2002-63088 A 特開平9−22391号公報Japanese Patent Laid-Open No. 9-22391

しかしながら、このような開発を行うためには、組込機器に通信機能を設けなければならない。通信機能を実現するためには、例えば、イーサネット(登録商標)などによって通信可能な通信デバイスと、その通信デバイスを制御するデバイスドライバとが必要となる。更に、開発用ソフトウェアによっては、汎用的な通信プロトコルであるTCP/IPの制御用ソフトウェアが必要となる。しかしながら、組込機器によってはTCP/IPによる通信機能を有していない場合がある。このような場合には、最終製品には採用されないデバイスドライバなどを別途開発する必要が生じ、開発コストの増大や開発期間の長期化を招くおそれがある。   However, in order to perform such development, the embedded device must be provided with a communication function. In order to realize the communication function, for example, a communication device that can communicate by Ethernet (registered trademark) and a device driver that controls the communication device are required. Furthermore, some software for development requires TCP / IP control software, which is a general-purpose communication protocol. However, some embedded devices may not have a TCP / IP communication function. In such a case, it is necessary to separately develop a device driver or the like that is not employed in the final product, which may increase the development cost and prolong the development period.

参考技術として、特許文献1および特許文献2を挙げる。特許文献1によると、TCP/IPなどのプロトコルによる通信を、他のプロトコルに変換することができる。これにより、シリアルインターフェイスなどの通信回線によって、イーサネットなどを用いずにTCP/IPによる通信を実現できる。この技術を応用すれば組込機器にイーサネットなどの通信デバイスを不要とすることができる。しかしながら、TCP/IPによる制御用のソフトウェアは必要であり、組込機器などのメモリの必要容量を増大させてしまうおそれがある。   As a reference technique, Patent Document 1 and Patent Document 2 are listed. According to Patent Document 1, communication using a protocol such as TCP / IP can be converted into another protocol. Thereby, TCP / IP communication can be realized by using a communication line such as a serial interface without using Ethernet or the like. If this technology is applied, it is possible to eliminate the need for a communication device such as Ethernet in the embedded device. However, TCP / IP control software is necessary, and there is a risk of increasing the required memory capacity of an embedded device or the like.

特許文献2によると、ある装置の通信を他の装置に代理させることができる。これは、当該装置からリモートプロシジャーコール(RPC:Remote Procedure Call)によって、当該他の装置上の通信用のプロシジャーを呼び出すことによって実現される。しかしながら、リモートプロシジャーコールは、TCP/IPによる通信が確立されていることが前提となっている。即ち、この技術においても、TCP/IPによる制御用のソフトウェアは必要であり、組込機器などのメモリの必要容量を増大させてしまうおそれがある。また、通信回線の通信状況が不安定な場合には通信が切断されて再開不能となってしまう場合がある。   According to Patent Document 2, communication of a certain device can be delegated to another device. This is realized by calling a procedure for communication on the other apparatus by a remote procedure call (RPC) from the apparatus. However, the remote procedure call is premised on the establishment of TCP / IP communication. That is, even in this technique, control software based on TCP / IP is necessary, which may increase the necessary capacity of a memory such as an embedded device. In addition, when the communication status of the communication line is unstable, communication may be disconnected and cannot be resumed.

そこで本発明は、上記の課題を解決することのできる組込機器、代行サーバ、方法、および、プログラムを提供することを目的とする。この目的は特許請求の範囲における独立項に記載の特徴の組み合わせにより達成される。また従属項は本発明の更なる有利な具体例を規定する。   Therefore, an object of the present invention is to provide an embedded device, a proxy server, a method, and a program that can solve the above-described problems. This object is achieved by a combination of features described in the independent claims. The dependent claims define further advantageous specific examples of the present invention.

上記課題を解決するために、本発明の第1の形態においては、通信の制御を代行する外部の代行サーバを介して他の装置と通信する組込機器であって、代行サーバと通信可能な通信デバイスと、他の装置との通信状態を記憶するための記憶部と、中央処理装置により実行されるタスクから他の装置との通信の制御要求を受けたことに応じ、通信デバイスと代行サーバとが通信可能でない状態において、制御要求に応じた制御を正常に行った後の状態に通信状態を更新する更新部と、制御要求に応じた通信状態の更新結果をタスクに返答する返答部と、通信デバイスが代行サーバと通信可能な状態において、代行サーバにおける他の装置との間の通信状態を記憶部に記憶された通信状態に遷移させるための指示を、通信デバイスを用いて代行サーバに対し送信する制御指示部とを備える組込機器を提供する。
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となりうる。
In order to solve the above problems, in the first embodiment of the present invention, an embedded device that communicates with another device via an external proxy server acting as a proxy for communication, and can communicate with the proxy server A communication device and a proxy server in response to receiving a control request for communication with another device from a task executed by the central processing unit, and a storage unit for storing a communication state between the communication device and the other device An update unit that updates the communication state to a state after successfully performing control according to the control request, and a response unit that returns the update result of the communication state according to the control request to the task. In the state where the communication device can communicate with the proxy server, the proxy device uses the communication device to issue an instruction for transitioning the communication state between other devices in the proxy server to the communication state stored in the storage unit. Providing embedded devices and a control instruction unit transmitting to server.
The above summary of the invention does not enumerate all the necessary features of the present invention, and sub-combinations of these feature groups can also be the invention.

本発明によれば、組込機器による通信をこれまでより効率的に実現することができる。   According to the present invention, communication by an embedded device can be realized more efficiently than before.

以下、発明を実施するための最良の形態(以下、実施の形態と称す)を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。   Hereinafter, the present invention will be described through the best mode for carrying out the invention (hereinafter, referred to as an embodiment). However, the following embodiment does not limit the invention according to the claims, and the embodiment is described below. All the combinations of features described in the above are not necessarily essential to the solution of the invention.

図1は、通信システム10の全体構成を示す。通信システム10は、携帯電話20と、代行サーバ30と、通信装置40とを備える。携帯電話20は、ソフトウェア開発やデバッグの対象となる組込機器の一例であり、シリアル・インターフェイスなどの第1通信回線25を介して代行サーバ30に接続されている。そして、携帯電話20は、開発中や動作検証中のプログラムを実行し、その実行状態を通信装置40に通知し、通信装置40の画面上にその実行状態を表示させる。また、携帯電話20は、通信装置40から受けた指示に基づきプログラムの実行を中断したり再開したりする。なお、組込機器は、携帯電話に代えて、PDA、デジタル家電または電子制御の自動車などであってもよい。   FIG. 1 shows the overall configuration of the communication system 10. The communication system 10 includes a mobile phone 20, a proxy server 30, and a communication device 40. The mobile phone 20 is an example of an embedded device to be developed and debugged, and is connected to the proxy server 30 via a first communication line 25 such as a serial interface. Then, the mobile phone 20 executes the program under development or operation verification, notifies the communication device 40 of the execution state, and displays the execution state on the screen of the communication device 40. Further, the mobile phone 20 suspends or resumes the execution of the program based on the instruction received from the communication device 40. Note that the embedded device may be a PDA, a digital home appliance, an electronically controlled automobile, or the like instead of the mobile phone.

代行サーバ30は、第1通信回線25を介して携帯電話20に接続されている他、他の装置(例えば通信装置40)と、イーサネット(登録商標)などに準拠した第2通信回線35を介して接続されている。そして、代行サーバ30は、携帯電話20による通信装置40との通信の制御を代行する。例えば、代行サーバ30は、TCP/IPによる通信の制御機能を有していない携帯電話20のために、携帯電話20と通信装置40との間のTCP/IPによる通信の制御を代行する。通信装置40は、携帯電話20に搭載されるプログラムの開発・デバッグのためのプログラムを動作させる。そして、通信装置40は、代行サーバ30とTCP/IPによる通信を行うことにより、携帯電話20上で動作するプログラムの実行状態を携帯電話20から取得し、または、携帯電話20上で動作するプログラムの実行を中断または再開させる。   The proxy server 30 is connected to the mobile phone 20 via the first communication line 25, and is connected to another device (for example, the communication device 40) and a second communication line 35 compliant with Ethernet (registered trademark) or the like. Connected. Then, the proxy server 30 performs control of communication with the communication device 40 by the mobile phone 20. For example, the proxy server 30 performs control of TCP / IP communication between the mobile phone 20 and the communication device 40 for the mobile phone 20 that does not have a TCP / IP communication control function. The communication device 40 operates a program for developing and debugging a program installed in the mobile phone 20. And the communication apparatus 40 acquires the execution state of the program which operate | moves on the mobile telephone 20 from the mobile telephone 20 by communicating with the proxy server 30 by TCP / IP, or the program which operate | moves on the mobile telephone 20 Suspend or resume execution of

このように、本実施の形態に係る通信システム10は、TCP/IPなどの汎用な通信プロトコルによる通信機能が搭載されていない組込機器のために、組込機器の外部に設けられた代行サーバ30によって、通信プロトコルに準拠した通信の制御を代行させることを目的とする。この結果、携帯電話20には通信制御のためのプログラムを搭載する必要がないので、携帯電話20のメモリの必要容量を削減したり、携帯電話20上で動作するプログラムを開発する手間を軽減できる。   As described above, the communication system 10 according to the present embodiment is a proxy server provided outside an embedded device for an embedded device that is not equipped with a communication function based on a general-purpose communication protocol such as TCP / IP. It is an object to perform communication control according to the communication protocol by 30. As a result, since the mobile phone 20 does not need to be equipped with a program for communication control, the required capacity of the memory of the mobile phone 20 can be reduced, and the effort to develop a program that operates on the mobile phone 20 can be reduced. .

図2は、携帯電話20の機能構成を示す。携帯電話20は、中央処理装置22と、記憶部24と、通信デバイス26とを有する。中央処理装置22は、予め携帯電話20にインストールされたプログラムを実行する。記憶部24は、このプログラムの実行のため、または、通信装置40との通信状態を記憶するために設けられている。通信デバイス26は、第1通信回線25を介して代行サーバ30と通信可能に接続されている。通信デバイス26と代行サーバ30との間の第1通信回線25は、一時的に通信可能でない状態になる場合もある。例えば、利用者は、携帯電話20におけるプログラムの実行中に、第1通信回線25を携帯電話20から一時的に取り外してもよい。   FIG. 2 shows a functional configuration of the mobile phone 20. The mobile phone 20 includes a central processing unit 22, a storage unit 24, and a communication device 26. The central processing unit 22 executes a program installed in the mobile phone 20 in advance. The storage unit 24 is provided for executing this program or for storing a communication state with the communication device 40. The communication device 26 is communicably connected to the proxy server 30 via the first communication line 25. The first communication line 25 between the communication device 26 and the proxy server 30 may be temporarily unable to communicate. For example, the user may temporarily disconnect the first communication line 25 from the mobile phone 20 while the mobile phone 20 is executing a program.

中央処理装置22は、予め携帯電話20にインストールされたプログラムによって、タスク200と、通信モジュール210として機能する。タスク200は、TCP/IPのソケット通信を制御するためのAPI(Application Programming Interface)の呼び出しを含む。このAPIは、例えば、BSD(Berkeley Software Distribution)のUNIX(登録商標)などと互換性を持つ所定の規格を満たしてもよい。なお、タスク200は、例えば、オペレーティングシステムによって定期的に実行権が与えられるプロセスまたはスレッドなどであってもよい。   The central processing unit 22 functions as a task 200 and a communication module 210 by a program installed in the mobile phone 20 in advance. The task 200 includes calling an API (Application Programming Interface) for controlling TCP / IP socket communication. This API may satisfy a predetermined standard compatible with, for example, UNIX (registered trademark) of BSD (Berkeley Software Distribution). Note that the task 200 may be, for example, a process or thread to which execution rights are periodically given by the operating system.

携帯電話20には、ソケット通信を実現するライブラリプログラムに代えて、通信モジュール210として中央処理装置22を機能させるライブラリプログラムがインストールされている。タスク200は、ソケット通信を制御するためのAPIに代えて、インストールされたこのライブラリプログラムのAPIを呼び出すことにより、通信装置40との通信の制御要求を通信モジュール210に送信する。なお、ソケット通信のAPIとこのライブラリプログラムのAPIとでは呼び出しのインターフェイスが同一であるから、通信モジュール210に適合させるためにプログラムを改造する必要はない。   Instead of the library program that realizes socket communication, a library program that causes the central processing unit 22 to function as the communication module 210 is installed in the mobile phone 20. The task 200 transmits a control request for communication with the communication device 40 to the communication module 210 by calling the API of this installed library program instead of the API for controlling socket communication. The socket communication API and the API of the library program have the same calling interface, so that it is not necessary to modify the program to adapt to the communication module 210.

通信モジュール210は、タスク200から制御要求を受けると、制御要求に応じた制御を実行すべき指示を、通信デバイス26を用いて代行サーバ30に対し送信する。但し、第1通信回線25が通信可能でない状態において制御要求を受信した場合には通信モジュール210は以下の処理を行う。通信モジュール210は、受信した制御要求が予め定められたノン・ブロッキング制御要求であることを条件に、代行サーバ30と通信せずに記憶部24内の通信状態を更新する。そして、通信モジュール210は、通信状態の更新結果をタスク200に返答する。そして、第1通信回線25が通信可能な状態になったことを条件に、通信モジュール210は、代行サーバ30による通信装置40との通信状態を記憶部24に記憶された通信状態に遷移させるための指示を代行サーバ30に送信する。これにより、タスク200は、第1通信回線25が通信可能でない状態であっても、第1通信回線25が通信可能となるのを待たずに処理を継続できる。   When receiving a control request from the task 200, the communication module 210 transmits an instruction to execute control according to the control request to the proxy server 30 using the communication device 26. However, when the control request is received when the first communication line 25 is not communicable, the communication module 210 performs the following processing. The communication module 210 updates the communication state in the storage unit 24 without communicating with the proxy server 30 on condition that the received control request is a predetermined non-blocking control request. Then, the communication module 210 returns a communication state update result to the task 200. Then, on condition that the first communication line 25 is in a communicable state, the communication module 210 changes the communication state of the proxy server 30 with the communication device 40 to the communication state stored in the storage unit 24. Is sent to the proxy server 30. Thereby, even if the first communication line 25 is not communicable, the task 200 can continue the process without waiting for the first communication line 25 to be communicable.

図3は、記憶部24のデータ構造の一例を示す。記憶部24は、携帯電話20が通信装置40とソケット通信するためのそれぞれのソケットの通信状態を、当該ソケットの識別情報(例えば、ファイルディスクリプタなどと呼ばれる識別子)に対応付けて記憶する。更に、記憶部24は、それぞれのソケットに対応付けて、当該ソケットに割り当てられたポート番号、当該ソケットの通信に用いる通信バッファのアドレス、および、当該ソケットによる通信が完了するまで処理を中断して待機しているタスクの識別番号を記憶していてもよい。   FIG. 3 shows an example of the data structure of the storage unit 24. The storage unit 24 stores a communication state of each socket for the mobile phone 20 to perform socket communication with the communication device 40 in association with identification information (for example, an identifier called a file descriptor) of the socket. Further, the storage unit 24 associates with each socket, interrupts the processing until the port number assigned to the socket, the address of the communication buffer used for communication of the socket, and communication by the socket are completed. The identification number of the waiting task may be stored.

一例として、識別情報が1のソケットは、当該ソケットが新たに生成された旨を示す生成状態(OPEN状態と記す)である。そして、このソケットにはポート番号およびバッファアドレスの何れも割り当てられていない。また、識別情報が5のソケットは、当該ソケットによるデータの受信を処理している状態(RECV状態と記す)である。このソケットには、通信バッファのアドレス、および、この送受信が完了するまで処理を中断して待機しているタスクの識別番号が割り当てられている。   As an example, a socket whose identification information is 1 is a generation state (denoted as an OPEN state) indicating that the socket has been newly generated. In addition, neither a port number nor a buffer address is assigned to this socket. A socket with identification information 5 is in a state in which data reception by the socket is being processed (referred to as a RECV state). The socket is assigned with an address of a communication buffer and an identification number of a task waiting for interruption of processing until the transmission / reception is completed.

図4は、通信モジュール210の機能構成を示す。通信モジュール210は、更新部220と、返答部230と、制御指示部240と、受信部250とを有する。更新部220は、中央処理装置22により実行されるタスク200から通信装置40との通信の制御要求を受けたことに応じ、その制御要求が、その制御要求に応じた制御の完了を待たずにタスク200の処理を継続可能であるとして予め定められたノン・ブロッキング制御要求であるかを判断する。例えば、更新部220は、タスク200から受けた制御要求が、通信に必要な資源(メモリの記憶領域など)を確保または解放する要求であることを条件に、当該制御要求がノン・ブロッキング制御要求であると判断してもよい。   FIG. 4 shows a functional configuration of the communication module 210. The communication module 210 includes an update unit 220, a response unit 230, a control instruction unit 240, and a reception unit 250. In response to receiving a control request for communication with the communication device 40 from the task 200 executed by the central processing unit 22, the update unit 220 does not wait for completion of control corresponding to the control request. It is determined whether the non-blocking control request is determined in advance as the processing of the task 200 can be continued. For example, on the condition that the control request received from the task 200 is a request for securing or releasing a resource (such as a memory storage area) necessary for communication, the update unit 220 determines that the control request is a non-blocking control request. You may judge that.

更新部220は、ノン・ブロッキング制御要求であることを条件に、たとえ通信デバイス26と代行サーバ30とが通信可能でない状態であっても、その制御要求に応じた制御を正常に行った後の状態に記憶部24の通信状態を更新する。一方で、更新部220は、タスク200から受けた制御要求がノン・ブロッキング制御要求でないブロッキング制御要求であることを条件に、受信部250による制御の実行結果の受信に応じ、記憶部24の通信状態を更新する。例えば、更新部220は、タスク200から受けた制御要求が、通信装置40との間でデータの送受信を要する制御要求であることを条件に、当該制御要求がブロッキング制御要求であると判断する。   The update unit 220 is a non-blocking control request, even if the communication device 26 and the proxy server 30 are not communicable, after the control according to the control request is normally performed. The communication state of the storage unit 24 is updated to the state. On the other hand, on the condition that the control request received from the task 200 is a blocking control request that is not a non-blocking control request, the update unit 220 communicates with the storage unit 24 in response to reception of a control execution result by the receiving unit 250. Update state. For example, the update unit 220 determines that the control request is a blocking control request on condition that the control request received from the task 200 is a control request that requires data transmission / reception with the communication device 40.

返答部230は、その制御要求に応じた通信状態の更新結果をタスク200に返答する。即ち、ノン・ブロッキング制御要求については、その要求に応じた制御の実行を待たずに更新結果がタスク200に返答される。一方、ブロッキング制御要求については、受信部250がその要求に応じた制御の実行結果を代行サーバ30から受信したことに応じ、その実行結果がタスク200に返答される。制御指示部240は、通信デバイス26が代行サーバ30と通信可能な状態において、代行サーバ30における通信装置40との間の通信状態を記憶部24に記憶された通信状態に遷移させるための指示を、通信デバイス26を用いて代行サーバ30に対し送信する。   The reply unit 230 replies to the task 200 with the update result of the communication state corresponding to the control request. That is, for a non-blocking control request, the update result is returned to the task 200 without waiting for execution of control according to the request. On the other hand, regarding the blocking control request, the execution result is returned to the task 200 in response to the reception unit 250 receiving the execution result of the control corresponding to the request from the proxy server 30. The control instruction unit 240 gives an instruction to change the communication state between the communication device 26 and the communication device 40 in the proxy server 30 to the communication state stored in the storage unit 24 when the communication device 26 can communicate with the proxy server 30. The data is transmitted to the proxy server 30 using the communication device 26.

受信部250は、制御指示部240により送信された指示に応じ代行サーバ30が実行した制御の実行結果を、通信デバイス26を用いて代行サーバ30から受信する。実行結果は更新部220および返答部230に通知される。ブロッキング制御要求を受けていた場合において、更新部220は、この実行結果に基づき通信状態を更新すると共に、返答部230はこの実行結果をタスク200に返答する。   The receiving unit 250 receives the execution result of the control executed by the proxy server 30 in response to the instruction transmitted from the control instruction unit 240 from the proxy server 30 using the communication device 26. The execution result is notified to the update unit 220 and the response unit 230. When receiving the blocking control request, the updating unit 220 updates the communication state based on the execution result, and the response unit 230 returns the execution result to the task 200.

図5は、携帯電話20と通信装置40との間の通信の通信状態の状態遷移を示す図である。更新部220は、ノン・ブロッキング制御要求を受けたことに応じ、通信デバイス26と代行サーバ30とが通信可能でない状態であっても、記憶部24に記憶された通信状態を図中の実線に沿って更新する。以下、ノン・ブロッキング制御要求に応じた通信状態の遷移について具体的に説明する。まず、ソケットが生成されていない場合には、そのソケットに対応する状態は存在しない。その状態を、便宜上そのソケットの空き状態とする。更新部220は、新たなソケットを生成する制御要求に応じ、新たに生成するソケットの識別情報に対応付けて、そのソケットが新たに生成された旨を示す生成状態(図5ではOPEN状態)を通信状態として記憶部24に記憶する。識別情報は、代行サーバ30によって生成されるソケットの識別情報に関わらず、更新部220によって生成されるものであってもよい。なお、この制御要求は、BSD Socket APIにおけるsocketシステムコールである。この制御要求はノン・ブロッキング制御要求なので、通信状態の更新は代行サーバ30における制御の実行を待たずに行われる。   FIG. 5 is a diagram illustrating a state transition of a communication state of communication between the mobile phone 20 and the communication device 40. In response to receiving the non-blocking control request, the update unit 220 sets the communication state stored in the storage unit 24 to a solid line in the drawing even when the communication device 26 and the proxy server 30 are not communicable. Update along. Hereinafter, the transition of the communication state in response to the non-blocking control request will be specifically described. First, if a socket has not been created, there is no state corresponding to that socket. This state is referred to as an empty state of the socket for convenience. In response to a control request for generating a new socket, the update unit 220 associates the newly generated socket with identification information of the socket to be generated and indicates a generation state (OPEN state in FIG. 5) indicating that the socket has been newly generated. The communication state is stored in the storage unit 24. The identification information may be generated by the update unit 220 regardless of the socket identification information generated by the proxy server 30. This control request is a socket system call in the BSD Socket API. Since this control request is a non-blocking control request, the communication state is updated without waiting for execution of control in the proxy server 30.

次に、更新部220は、通信装置40からの通信要求を受け入れられる状態とする制御要求を当該ソケットの識別情報に対応付けて受信したことに応じ、当該識別情報に対応する通信状態を、バッファの割当済状態(図5ではLISTEN状態)に更新する。この制御要求は、通信装置40から受ける通信要求を格納するバッファをソケットに割り当てることを代行サーバ30に要求する。一例として、この制御要求は、BSD Socket APIにおけるlistenシステムコールである。この制御要求もまたノン・ブロッキング制御要求なので、通信状態の更新は制御の実行を待たずに行われる。OPEN状態、LISTEN状態または後述のCONNECTED状態において、更新部220は、ソケットを解放する制御要求を当該ソケットの識別情報に対応付けて受信したことに応じ、当該識別状態に対応する通信状態を空き状態に戻す。この制御は、例えば、BSD Soc
ket APIにおけるcloseシステムコールである。この制御要求もまたノン・ブ
ロッキング制御要求なので、通信状態の更新は制御の実行を待たずに行われる。
Next, in response to receiving the control request for enabling the communication request from the communication device 40 to be received in association with the identification information of the socket, the update unit 220 displays the communication state corresponding to the identification information as a buffer. To the assigned state (the LISTEN state in FIG. 5). This control request requests the proxy server 30 to allocate a buffer for storing a communication request received from the communication device 40 to the socket. As an example, this control request is a listen system call in the BSD Socket API. Since this control request is also a non-blocking control request, the communication state is updated without waiting for the execution of the control. In the OPEN state, the LISTEN state, or the CONNECTED state, which will be described later, the update unit 220 sets the communication state corresponding to the identification state to an empty state in response to receiving the control request for releasing the socket in association with the identification information of the socket. Return to. This control is performed by, for example, BSD Soc
This is a close system call in the ket API. Since this control request is also a non-blocking control request, the communication state is updated without waiting for the execution of the control.

更新部220は、タスク200から受けた制御要求が、通信デバイス26と通信装置40との間の通信の属性を変更する要求であることを条件に、その制御要求がノン・ブロッキング制御要求であると判断する。例えば、OPEN状態において、更新部220は、指定されたポート番号をソケットに割り当てる制御要求を当該ソケットの識別情報に対応付けて受信したことに応じ、当該識別情報に対応付けてそのポート番号を記憶部24に記憶する。この制御要求は、例えば、BSD Socket APIにおけるbindシステムコールである。この制御要求もまたノン・ブロッキング制御要求なので、ポート番号の割当は代行サーバ30における制御の実行を待たずに行われる。   The update unit 220 is a non-blocking control request on the condition that the control request received from the task 200 is a request to change the attribute of communication between the communication device 26 and the communication device 40. Judge. For example, in the OPEN state, the update unit 220 stores the port number in association with the identification information in response to receiving the control request for assigning the designated port number to the socket in association with the identification information of the socket. Store in the unit 24. This control request is, for example, a bind system call in the BSD Socket API. Since this control request is also a non-blocking control request, the port number is assigned without waiting for execution of control in the proxy server 30.

一方で、更新部220は、ブロッキング制御要求を受けたことに応じ、受信部250による制御の実行結果の受信に応じ、記憶部24に記憶された通信状態を図中の点線に沿って更新する。以下、ブロッキング制御要求に応じた通信状態の遷移について具体的に説明する。更新部220は、タスク200から受けた制御要求が、通信デバイス26と通信装置40とが通信可能か否かを検出する要求、通信装置40からの通信要求に対し通信許可の返答を行う要求、または、データの送受信の要求であることを条件に、これらの要求がブロッキング制御要求であると判断する。例えば、更新部220は、LISTEN状態において、通信デバイス26と通信装置40とが通信可能か否かを検出する制御要求(例えばselectシステムコール)を、当該ソケットの識別情報に対応付けて受信したことに応じ、当該識別情報に対応する通信状態を通信待ち状態(図5ではLISTEN+SELECT状態)に更新する。selectシステムコールは、複数のソケットの状態を調べるための要求を発行する。このシステムコールによると、それぞれのソケットからのデータの読出が可能か否か、それぞれのソケットへのデータの書込みが可能か否か、または、読出・書込みにエラーが生じているか否かを調べることができる。受信部250が代行サーバ30によって実行された通信可能か否かの検出結果を受信した場合において、更新部220は、当該識別情報に対応する通信状態を割当済状態に戻す。このように、この制御要求はブロッキング制御要求なので、代行サーバ30による制御の実行後に実行結果がタスク200に通知される。   On the other hand, in response to receiving the blocking control request, the updating unit 220 updates the communication state stored in the storage unit 24 along the dotted line in the drawing in response to the reception of the control execution result by the receiving unit 250. . Hereinafter, the transition of the communication state according to the blocking control request will be specifically described. The update unit 220 receives a control request received from the task 200 as a request for detecting whether the communication device 26 and the communication device 40 can communicate, a request for returning a communication permission in response to the communication request from the communication device 40, Alternatively, it is determined that these requests are blocking control requests on condition that they are data transmission / reception requests. For example, the update unit 220 has received a control request (for example, a select system call) for detecting whether the communication device 26 and the communication device 40 can communicate with each other in the LISTEN state in association with the identification information of the socket. Accordingly, the communication state corresponding to the identification information is updated to the communication waiting state (LISTEN + SELECT state in FIG. 5). The select system call issues a request to check the status of multiple sockets. According to this system call, check whether data can be read from each socket, whether data can be written to each socket, or whether an error has occurred in reading / writing. Can do. When the reception unit 250 receives the detection result indicating whether communication is possible, performed by the proxy server 30, the update unit 220 returns the communication state corresponding to the identification information to the assigned state. Thus, since this control request is a blocking control request, the execution result is notified to the task 200 after execution of the control by the proxy server 30.

また、更新部220は、LISTEN状態において、通信装置40からの通信要求に対し通信許可の返答を行う制御要求(例えばacceptシステムコール)を、当該ソケットの識別情報に対応付けて受信したことに応じ、当該識別情報に対応する通信状態を、通信を受け入れる通信受入状態(図5ではACCEPT状態)に更新する。そして、受信部250が代行サーバ30によって実行された制御の実行結果を受信した場合において、更新部220は、当該識別情報に対応する通信状態を割当済状態に戻す。また、更新部220は、この制御によって新たにソケットが生成された場合には、記憶部24に新たなソケットの識別情報を記憶させ、その識別情報に対応付けて接続済状態(図5ではCONNECTED状態)を記憶させてもよい。この場合、更新部220は、新たに生成した識別情報と、代行サーバ30によって生成されたソケットとを対応付けさせるべく、当該識別情報を代行サーバ30に通知する。この制御要求はブロッキング制御要求なので、代行サーバ30による制御の実行後に実行結果が返答される。   Further, in response to the fact that the update unit 220 receives a control request (for example, an accept system call) for returning a communication permission response to the communication request from the communication device 40 in association with the identification information of the socket in the LISTEN state. The communication state corresponding to the identification information is updated to a communication acceptance state that accepts communication (ACCEPT state in FIG. 5). When the receiving unit 250 receives the execution result of the control executed by the proxy server 30, the update unit 220 returns the communication state corresponding to the identification information to the assigned state. Further, when a new socket is generated by this control, the update unit 220 stores the new socket identification information in the storage unit 24 and associates it with the identification information (in FIG. 5, CONNECTED). State) may be stored. In this case, the update unit 220 notifies the proxy server 30 of the identification information so as to associate the newly generated identification information with the socket generated by the proxy server 30. Since this control request is a blocking control request, the execution result is returned after execution of the control by the proxy server 30.

また、更新部220は、CONNECTED状態において、ソケットを用いたデータの送受信を要する制御要求(例えばselectシステムコール、recvシステムコール、または、sendシステムコール)を、当該ソケットの識別情報に対応付けて受信したことに応じ、ブロッキング制御要求を受けたと判断する。そして、更新部220は、当該識別情報に対応する通信状態を通信待ち状態(図5ではSELECT状態、RECV状態、または、SEND状態)に更新する。そして、受信部250が代行サーバ30によって実行されたデータの送受信結果を受信した場合において、更新部220は、当該識別情報に対応する通信状態を接続済状態に戻す。このように、この制御要求はブロッキング制御要求なので、代行サーバ30による制御の実行後に実行結果がタスク200に通知される。   In addition, the updating unit 220 receives a control request (for example, a select system call, a recv system call, or a send system call) that requires transmission / reception of data using a socket in association with the identification information of the socket. Accordingly, it is determined that a blocking control request has been received. Then, the update unit 220 updates the communication state corresponding to the identification information to a communication waiting state (in FIG. 5, a SELECT state, a RECV state, or a SEND state). When the receiving unit 250 receives the data transmission / reception result executed by the proxy server 30, the updating unit 220 returns the communication state corresponding to the identification information to the connected state. Thus, since this control request is a blocking control request, the execution result is notified to the task 200 after execution of the control by the proxy server 30.

図6は、携帯電話20の通信状態とそれに対応して通信装置40に対し送信する指示とを示す。図6を参照して、制御指示部240による処理の具体例を説明する。制御指示部240は、通信デバイス26と代行サーバ30とが通信可能な状態において、代行サーバ30における通信装置40との間の通信状態を記憶部24に記憶された通信状態に遷移させる指示を代行サーバ30に送る。これを実現するために、まず、制御指示部240は、それぞれのソケットに対応する通信状態を中央処理装置22から検索する。そして、制御指示部240は、検索された通信状態に予め対応付けられた指示を代行サーバ30に送信する。図6は、この処理における通信状態と指示との対応付けを示している。即ち、あるソケットについてOPEN状態が検索されたことに応じ、制御指示部240は、socketシステムコールを実行すべき指示を代行サーバ30に対し送信する。また、他のソケットについて通信状態がLISTEN状態であることを条件に、制御指示部240は、新たにソケットを生成して識別情報に対応付けて管理する指示(たとえばsocketシステムコールを実行する指示)、および、通信装置40から受ける通信要求を格納するバッファをそのソケットに割り当てる指示(たとえばlistenシステムコールを実行する指示)を代行サーバ30に対し送信する。また、他のソケットについてSELECT状態が検索されたことに応じ、制御指示部240は、socketシステムコールとselectシステムコールとを順次この順に実行すべき指示を代行サーバ30に対し送信する。更に他のソケットについてLISTEN+SELECT状態が検索されたことに応じ、制御指示部240は、socketシステムコールとbindシステムコールとlistenシステムコールとselectシステムコールとを順次この順に実行すべき指示を代行サーバ30に対し送信する。   FIG. 6 shows a communication state of the mobile phone 20 and an instruction to be transmitted to the communication device 40 correspondingly. A specific example of processing by the control instruction unit 240 will be described with reference to FIG. The control instruction unit 240 performs an instruction to change the communication state of the proxy server 30 with the communication device 40 to the communication state stored in the storage unit 24 in a state where the communication device 26 and the proxy server 30 can communicate with each other. Send to server 30. In order to realize this, first, the control instruction unit 240 searches the central processing unit 22 for a communication state corresponding to each socket. Then, the control instruction unit 240 transmits an instruction associated with the searched communication state in advance to the proxy server 30. FIG. 6 shows the correspondence between communication states and instructions in this process. That is, in response to a search for the OPEN state for a certain socket, the control instruction unit 240 transmits an instruction to execute the socket system call to the proxy server 30. In addition, on the condition that the communication state of the other socket is the LISTEN state, the control instruction unit 240 generates a new socket and manages it in association with the identification information (for example, an instruction to execute a socket system call). And an instruction (for example, an instruction to execute a listen system call) to allocate a buffer for storing a communication request received from the communication device 40 to the socket is transmitted to the proxy server 30. Further, in response to the search of the SELECT state for other sockets, the control instruction unit 240 transmits to the proxy server 30 instructions to sequentially execute the socket system call and the select system call in this order. Further, in response to the search for the LISTEN + SELECT state for another socket, the control instruction unit 240 instructs the proxy server 30 to execute the socket system call, the bind system call, the listen system call, and the select system call in this order. Send to.

図7は、代行サーバ30の機能構成を示す。代行サーバ30は、中央処理装置32と、記憶部34と、LANインターフェイス36と、シリアルインターフェイス38とを有する。記憶部34は、携帯電話20から指定されたソケットの第1識別情報(例えばfdと呼ぶ)と、代行サーバ30が通信装置40と通信するためのソケットの第2識別情報(例えばハンドルと呼ぶ)とを対応付けて記憶する。このように第1識別情報および第2識別情報は異なってもよいが、対応する第1識別情報および第2識別情報は、共に、代行サーバ30によって生成された同一のソケットを識別する。即ち、代行サーバ30によって生成されたあるソケットは、携帯電話20上で動作するタスク200によっては第1識別情報によって識別され、代行サーバ30上で動作する通信モジュール310によっては第2識別情報によって識別される。   FIG. 7 shows a functional configuration of the proxy server 30. The proxy server 30 includes a central processing unit 32, a storage unit 34, a LAN interface 36, and a serial interface 38. The storage unit 34 includes first identification information (for example, referred to as fd) of a socket designated from the mobile phone 20 and second identification information (for example, referred to as a handle) of a socket for the proxy server 30 to communicate with the communication device 40. Are stored in association with each other. Thus, although the first identification information and the second identification information may be different, the corresponding first identification information and second identification information together identify the same socket generated by the proxy server 30. That is, a certain socket generated by the proxy server 30 is identified by the first identification information depending on the task 200 operating on the mobile phone 20, and is identified by the second identification information depending on the communication module 310 operating on the proxy server 30. Is done.

LANインターフェイス36は、イーサネット(登録商標)などの第2通信回線35を介して通信装置40と通信する。LANインターフェイス36は、携帯電話20と通信装置40との通信制御の結果として必要な通信を通信装置40との間で行う。一方、シリアルインターフェイス38は、第1通信回線25を介して携帯電話20と通信する。第1通信回線25は、たとえば、シリアル回線、パラレル回線、または、USB(Universal Serial Bus)などである。シリアルインターフェイス38は、通信制御の指示を携帯電話20から受信し、または、通信制御の実行結果を携帯電話20に送信する。   The LAN interface 36 communicates with the communication device 40 via a second communication line 35 such as Ethernet (registered trademark). The LAN interface 36 performs necessary communication with the communication device 40 as a result of communication control between the mobile phone 20 and the communication device 40. On the other hand, the serial interface 38 communicates with the mobile phone 20 via the first communication line 25. The first communication line 25 is, for example, a serial line, a parallel line, or a USB (Universal Serial Bus). The serial interface 38 receives a communication control instruction from the mobile phone 20 or transmits a communication control execution result to the mobile phone 20.

中央処理装置32は、予めインストールされたプログラムによって、ソケット生成部300と、通信モジュール310と、ID管理部320と、送受信部330として機能する。通信モジュール310は、例えば、Windows(登録商標)オペレーティングシステムのな
どの、ソケット通信を実現するためのライブラリプログラムによって実現される。そして、通信モジュール310は、代行サーバ30と通信装置40との間の通信を制御する。ソケット生成部300は、新たにソケットを生成して第1識別情報に対応付けて管理する指示を受信したことに応じて、代行サーバ30と通信装置40との間の通信に用いるソケットを生成して第2識別情報を取得する。ソケットの生成は、通信モジュール310に対しシステムコールの呼び出しを行うことによって実現される。
The central processing unit 32 functions as a socket generation unit 300, a communication module 310, an ID management unit 320, and a transmission / reception unit 330 by a program installed in advance. The communication module 310 is realized by a library program for realizing socket communication, such as a Windows (registered trademark) operating system. The communication module 310 controls communication between the proxy server 30 and the communication device 40. The socket generation unit 300 generates a socket used for communication between the proxy server 30 and the communication device 40 in response to receiving an instruction to newly generate a socket and manage it in association with the first identification information. To obtain the second identification information. The generation of the socket is realized by calling a system call to the communication module 310.

ID管理部320は、シリアルインターフェイス38が受信した第1識別情報とソケット生成部300が取得した第2識別情報とを対応付けて記憶部34に記憶させる。送受信部330は、ソケットを用いてデータを送受信する指示を当該ソケットの第1識別情報に対応付けてシリアルインターフェイス38から受信したことに応じ、記憶部34においてその第1識別情報に対応する第2識別情報を検索する。そして、送受信部330は、検索された第2識別情報により識別されるソケットを用いて通信装置40とデータを送受信する。代行サーバ30と通信装置40との間のデータの送受信は、通信モジュール310に対しシステムコールの呼び出しを行うことによって実現される。   The ID management unit 320 stores the first identification information received by the serial interface 38 and the second identification information acquired by the socket generation unit 300 in the storage unit 34 in association with each other. In response to receiving an instruction to transmit / receive data using a socket from the serial interface 38 in association with the first identification information of the socket, the transmission / reception unit 330 receives the second identification information corresponding to the first identification information in the storage unit 34. Search for identification information. And the transmission / reception part 330 transmits / receives data with the communication apparatus 40 using the socket identified by the searched 2nd identification information. Data transmission / reception between the proxy server 30 and the communication device 40 is realized by calling a system call to the communication module 310.

なお、本実施の形態において代行サーバ30と通信装置40とは別体に設けられた装置として示したが、同一の情報処理装置が代行サーバ30および通信装置40のそれぞれとして機能してもよい。この場合、送受信部330は、代行サーバ30内で動作する他のタスクとの間でTCP/IPによる通信を行う。このように、代行サーバ30による制御の対象は、代行サーバ30内の他のタスクと携帯電話20との間の通信であってもよい。   In the present embodiment, the proxy server 30 and the communication device 40 are shown as separate devices. However, the same information processing device may function as the proxy server 30 and the communication device 40, respectively. In this case, the transmission / reception unit 330 performs communication by TCP / IP with other tasks operating in the proxy server 30. As described above, the control target by the proxy server 30 may be communication between another task in the proxy server 30 and the mobile phone 20.

図8は、携帯電話20および代行サーバ30による処理の第1例を示す。タスク200は、新たなソケットを生成する制御要求を通信モジュール210に送る(S800)。この制御要求は、たとえばsocketシステムコールを呼び出すことによって実現される。更新部220は、この制御要求を受けると、通信デバイス26と代行サーバ30とが通信可能か否かに関わらず、新たに生成するソケットの第1識別情報(fd)を生成する(S810)。次に、更新部220は、生成したこの第1識別情報に対応付けて、ソケットが新たに生成された旨を示す生成状態(OPEN状態)を通信状態として記憶部24に記憶する(S820)。次に、返答部230は、この第1識別情報を、通信状態の更新結果としてタスク200に返答する(S825)。BSD Socket APIの規格では、socketシステムコールが失敗すると−1がリターンされ、socketシステムコールが成功するとソケットの識別情報がリターンされることが定められている。このため、ソケットの第1識別情報を返答することは、通信状態の更新が成功した旨を返答したこととなる。更新結果の返答を受けて、タスク200は、アプリケーションプログラムによって定められた次の処理を行う(S830)。   FIG. 8 shows a first example of processing by the mobile phone 20 and the proxy server 30. The task 200 sends a control request for creating a new socket to the communication module 210 (S800). This control request is realized, for example, by calling a socket system call. Upon receiving this control request, the update unit 220 generates first identification information (fd) of a newly generated socket regardless of whether the communication device 26 and the proxy server 30 can communicate (S810). Next, the update unit 220 stores a generation state (OPEN state) indicating that a socket has been newly generated in the storage unit 24 as a communication state in association with the generated first identification information (S820). Next, the response unit 230 returns the first identification information to the task 200 as a communication state update result (S825). The BSD Socket API standard stipulates that −1 is returned when a socket system call fails, and that socket identification information is returned when the socket system call is successful. For this reason, returning the first identification information of the socket returns a response indicating that the update of the communication state was successful. In response to the update result response, the task 200 performs the next processing determined by the application program (S830).

通信デバイス26と代行サーバ30とが通信可能な状態においては、または、通信デバイス26と代行サーバ30とが通信可能な状態になると、続いて次の処理が行われる。制御指示部240は、記憶部24に記憶された通信状態が生成状態(OPEN状態)であることを条件に、新たにソケットを生成してその第1識別情報に対応付けて管理する指示を代行サーバ30に対し送信する(S840)。例えば、制御指示部240は、実行すべきsocketシステムコールを識別するAPI番号と、生成したソケットに対応付けて管理すべき第1識別情報(fd)とを送信してもよい。更に、制御指示部240は、タスク200からシステムコールの呼び出しを受けた場合に指定された引数を代行サーバ30に送信してもよい。この指示を受けて、ソケット生成部300は、代行サーバ30と通信装置40との間の通信に用いるソケットを生成してそのソケットの第2識別情報を生成する(S850)。そして、ID管理部320は、受信した第1識別情報と生成した第2識別情報とを対応付けて管理する。   In a state where the communication device 26 and the proxy server 30 can communicate with each other, or when the communication device 26 and the proxy server 30 become communicable, the following processing is subsequently performed. On the condition that the communication state stored in the storage unit 24 is the generation state (OPEN state), the control instruction unit 240 performs an instruction to newly generate a socket and manage it in association with the first identification information. It transmits to the server 30 (S840). For example, the control instruction unit 240 may transmit an API number for identifying a socket system call to be executed and first identification information (fd) to be managed in association with the generated socket. Further, the control instruction unit 240 may transmit a designated argument to the proxy server 30 when receiving a system call from the task 200. Upon receiving this instruction, the socket generation unit 300 generates a socket used for communication between the proxy server 30 and the communication device 40 and generates second identification information of the socket (S850). Then, the ID management unit 320 manages the received first identification information and the generated second identification information in association with each other.

以上、socketシステムコールの例のように、ノンブロッキング制御要求を受けた場合においては、更新部220は、その制御要求に応じた制御の完了を待たずに通信状態を更新する。そして、返答部230は、その通信状態の更新結果をタスク200に返答する。これにより、タスク200は、携帯電話20と代行サーバ30との間の第1通信回線25が通信可能でない場合であっても、その語の処理を継続できる。なお、socektシステムコールはノン・ブロッキング制御要求の一例であり、listenシステムコールについても図8の例と同様である。即ち、通信モジュール210が、ソケットにバッファを割り当てるためのlistenシステムコールの呼び出しを受けると、携帯電話20と代行サーバ30との間の第1通信回線25が通信可能でない場合であっても、更新部220は通信状態を割当済状態(LISTEN状態)に更新し、返答部230は、バッファの割当が成功した旨をタスク200に返答する。このように、リソースの割当要求に対しては実際の制御を通信開始まで遅らせることで、携帯電話20と代行サーバ30とが通信不能な場合であってもタスク200の処理を継続させることができる。   As described above, when the non-blocking control request is received as in the example of the socket system call, the update unit 220 updates the communication state without waiting for the completion of the control according to the control request. Then, the response unit 230 returns the update result of the communication state to the task 200. Thereby, the task 200 can continue processing the word even when the first communication line 25 between the mobile phone 20 and the proxy server 30 is not communicable. The socket system call is an example of a non-blocking control request, and the listen system call is the same as the example of FIG. That is, when the communication module 210 receives a listen system call for allocating a buffer to a socket, the update is performed even if the first communication line 25 between the mobile phone 20 and the proxy server 30 is not communicable. The unit 220 updates the communication state to the allocated state (LISTEN state), and the response unit 230 returns a response to the task 200 that the buffer allocation has been successful. As described above, by delaying the actual control until the start of communication in response to the resource allocation request, even if the mobile phone 20 and the proxy server 30 cannot communicate with each other, the processing of the task 200 can be continued. .

図9は、携帯電話20および代行サーバ30による処理の第2例を示す。タスク200は、通信デバイス26と通信装置40とがソケットを用いて通信可能か否かを検出する制御要求をそのソケットの第1識別情報に対応付けて通信モジュール210に送信する(S900)。この制御要求は、たとえばselectシステムコールを呼び出すことによって実現される。更新部220は、この制御要求を受けると、その第1識別情報に対応するソケットの通信状態を通信待ち状態に更新する(S910)。そして、更新部220は、通信デバイス26と代行サーバ30とが通信可能となるまでタスク200の処理を中断させて待機する(S920)。この場合、更新部220は、その第1識別情報に対応付けて、待機しているタスク200を識別する識別情報を記憶部24に対応付けて記憶してもよい。   FIG. 9 shows a second example of processing by the mobile phone 20 and the proxy server 30. The task 200 transmits a control request for detecting whether or not the communication device 26 and the communication device 40 can communicate using the socket to the communication module 210 in association with the first identification information of the socket (S900). This control request is realized, for example, by calling a select system call. When receiving the control request, the updating unit 220 updates the communication state of the socket corresponding to the first identification information to a communication waiting state (S910). Then, the update unit 220 suspends the processing of the task 200 and waits until the communication device 26 and the proxy server 30 can communicate with each other (S920). In this case, the update unit 220 may store the identification information for identifying the task 200 that is waiting in association with the first identification information in association with the storage unit 24.

通信デバイス26と代行サーバ30とが通信可能な状態において、返答部230は、通信状態が通信待ち状態であることを条件に、次に示す複数の指示を代行サーバ30に送る(S930)。その指示とは、新たにソケットを生成して第1識別情報に対応付けて管理する指示(例えばsocketシステムコールを実行する旨の指示)、通信要求を格納するバッファをそのソケットに割り当てる指示(例えばlistenシステムコールを実行する旨の指示)、および、そのソケットを用いて通信可能か否かを検出する指示(例えばselectシステムコールを実行する指示)である。返答部230は、それぞれのシステムコールを識別するAPI番号と、制御対象となるソケットの第1識別情報とを対応付けて代行サーバ30に送信してもよい。   In a state where the communication device 26 and the proxy server 30 can communicate with each other, the reply unit 230 sends the following instructions to the proxy server 30 on condition that the communication state is a communication waiting state (S930). The instruction includes an instruction to newly generate a socket and manage it in association with the first identification information (for example, an instruction to execute a socket system call), an instruction to allocate a buffer for storing a communication request to the socket (for example, an instruction to execute the listen system call) and an instruction to detect whether communication is possible using the socket (for example, an instruction to execute the select system call). The response unit 230 may transmit the API number for identifying each system call and the first identification information of the socket to be controlled in association with each other to the proxy server 30.

これらの指示を受けて、ソケット生成部300は、通信の制御を行う(S940)。まず、ソケット生成部300は、代行サーバ30と通信装置40との間の通信に用いるソケットを生成してそのソケットの第2識別情報を生成する(S940)。そして、ID管理部320は、その第2識別情報を第1識別情報に対応付けて記憶部34に記憶する。なお、ソケット生成部300は、新たにソケットを生成して識別情報に対応付けて管理する指示を受信した場合であっても、既にその識別情報が第1識別情報として記憶部34に記憶されている場合には、新たにソケットを生成しなくてもよい。その場合、ID管理部320および送受信部330は、既に記憶されている第1識別情報に対応する第2識別情報により識別されるソケットについて、その他の処理を行う。   In response to these instructions, the socket generator 300 controls communication (S940). First, the socket generation unit 300 generates a socket used for communication between the proxy server 30 and the communication device 40 and generates second identification information of the socket (S940). Then, the ID management unit 320 stores the second identification information in the storage unit 34 in association with the first identification information. Note that even when the socket generation unit 300 receives an instruction to newly generate a socket and manage it in association with the identification information, the identification information is already stored in the storage unit 34 as the first identification information. If so, it is not necessary to create a new socket. In that case, the ID management unit 320 and the transmission / reception unit 330 perform other processing on the socket identified by the second identification information corresponding to the first identification information already stored.

ソケット生成部300は、第2識別情報により識別されるソケットに、通信要求を格納するバッファを割り当てる。そして、送受信部330は、そのソケットを用いて通信装置40とデータを送受信する。例えば、送受信部330は、通信装置40と通信することにより、そのソケットを用いた通信が可能か否かを検出する。検出が完了すると検出結果が通信モジュール210に通知される。受信部250が、代行サーバ30による通信可能か否かの検出結果を受信した場合において、返答部230は、その検出結果をタスク200に返答する(S950)。また、更新部220は、第1識別情報に対応する通信状態を割当済状態に戻す。これを受けて、タスク200は、その次の処理を継続する(S960)。   The socket generation unit 300 assigns a buffer for storing a communication request to the socket identified by the second identification information. And the transmission / reception part 330 transmits / receives data with the communication apparatus 40 using the socket. For example, the transmission / reception unit 330 detects whether communication using the socket is possible by communicating with the communication device 40. When the detection is completed, the detection result is notified to the communication module 210. When the reception unit 250 receives a detection result indicating whether or not communication by the proxy server 30 is possible, the response unit 230 returns the detection result to the task 200 (S950). In addition, the update unit 220 returns the communication state corresponding to the first identification information to the assigned state. In response to this, the task 200 continues the next process (S960).

以上、図9を参照して説明したように、データの送受信などを要するブロッキング制御要求については、当該要求に応じた制御の完了に応じてその結果がタスクに返答される。即ち、タスク200は送受信が完了するまで処理を中断する。通信モジュール210は、最近に受けたシステムコールがselectのみであっても、以前に受けていたsocketシステムコールおよびlistenシステムコールに対応する制御を代行サーバ30に指示する。これにより、携帯電話20における通信状態と代行サーバ30における通信状態の整合を保つことができる。   As described above with reference to FIG. 9, the blocking control request that requires data transmission / reception is returned to the task in response to the completion of the control according to the request. That is, the task 200 suspends processing until transmission / reception is completed. The communication module 210 instructs the proxy server 30 to perform control corresponding to the socket system call and listen system call that have been received before, even if the system call that has recently been received is only select. Thereby, matching of the communication state in the mobile phone 20 and the communication state in the proxy server 30 can be maintained.

図10は、携帯電話20および代行サーバ30による処理の第3例を示す。図10を参照して、ソケット通信を行うアプリケーションプログラムの処理の典型例を説明する。タスク200が通信モジュール210に対しsocketシステムコールの呼び出しを行うと(S1000)、更新部220はソケットの第1識別情報を生成し(S1010)、返答部230はその第1識別情報をタスク200に返答する(S1020)。タスク200が、指定したポート番号をソケットに割り当てるbindシステムコールの呼び出しを行うと(S1030)、更新部220は、そのポート番号をそのソケットの第1識別情報に対応付けて記憶部24に記憶する。そして、返答部230は、ポート番号の割当が成功した旨をタスク200に返答する(S1040)。   FIG. 10 shows a third example of processing by the mobile phone 20 and the proxy server 30. A typical example of processing of an application program that performs socket communication will be described with reference to FIG. When the task 200 calls the socket system call to the communication module 210 (S1000), the update unit 220 generates first identification information of the socket (S1010), and the response unit 230 sends the first identification information to the task 200. A response is made (S1020). When the task 200 calls a bind system call that assigns the designated port number to the socket (S1030), the update unit 220 stores the port number in the storage unit 24 in association with the first identification information of the socket. . The reply unit 230 then replies to the task 200 that the port number assignment has been successful (S1040).

タスク200が通信モジュール210に対しlistenシステムコールの呼び出しを行うと(S1050)、更新部220は通信状態を割当済状態に更新し、返答部230はバッファの割当が成功した旨をタスク200に返答する(S1055)。次に、タスク200が、通信装置40からの通信要求に対し通信許可の返答を行うacceptシステムコールの呼び出しを行うと(S1060)、更新部220は、新たに生成するソケットの第1識別情報を生成して記憶部24に記憶させる。また、更新部220は、その第1識別情報に対応する通信状態を通信受入状態(ACCEPT状態)に更新し、携帯電話20と代行サーバ30とが通信可能となるまでタスク200の処理を中断する。
このように、acceptシステムコールなどのブロッキング制御要求が発行されるまではタスク200の処理は中断せずに実行される。
When the task 200 calls the listen system call to the communication module 210 (S1050), the update unit 220 updates the communication state to the assigned state, and the response unit 230 returns a response to the task 200 that the buffer allocation has been successful. (S1055). Next, when the task 200 calls an accept system call that returns a communication permission response to the communication request from the communication device 40 (S1060), the update unit 220 sets the first identification information of the newly generated socket. Generated and stored in the storage unit 24. In addition, the update unit 220 updates the communication state corresponding to the first identification information to the communication acceptance state (ACCEPT state), and interrupts the processing of the task 200 until the mobile phone 20 and the proxy server 30 can communicate with each other. .
As described above, the processing of the task 200 is executed without interruption until a blocking control request such as an accept system call is issued.

携帯電話20と代行サーバ30とが通信可能な状態において、制御指示部240は、次に示す複数の指示を代行サーバ30に送る(S1065)。その指示とは、新たにソケットを生成して第1識別情報に対応付けて管理する指示(例えばsocketシステムコールを実行する旨の指示)、通信装置40から受ける通信要求を格納するバッファをそのソケットに割り当てる指示(例えばlistenシステムコールを実行する旨の指示)、および、通信装置40からの通信要求に対し通信許可の返答を行う指示(例えばacceptシステムコールを実行する旨の指示)である。制御指示部240は、第1識別情報に対応付けてポート番号が対応付けて記憶されていることを条件に、当該ポート番号を割り当てるべき指示をそのポート番号に対応付けて代行サーバ30に対し更に送信してもよい。   In a state where the mobile phone 20 and the proxy server 30 can communicate with each other, the control instruction unit 240 sends the following instructions to the proxy server 30 (S1065). The instruction includes an instruction to newly create a socket and manage it in association with the first identification information (for example, an instruction to execute a socket system call), and a buffer for storing a communication request received from the communication device 40. (For example, an instruction for executing a listen system call) and an instruction for returning a communication permission in response to a communication request from the communication device 40 (for example, an instruction for executing an accept system call). On the condition that the port number is associated with the first identification information and stored, the control instruction unit 240 further associates an instruction to assign the port number with the port number to the proxy server 30. You may send it.

また、制御指示部240は、acceptシステムコールによって新たに生成するソケットに対応付けて管理すべき第1識別情報(newfd)を生成する。具体的には、制御指示部240は、記憶部24の中で空き状態に対応付けられているエントリを検索する。そして、制御指示部240は、そのエントリに対応するソケットの識別情報を取得する。例えば、図3の3行目に例示するエントリは空き状態に対応付けられている。このエントリは、第1識別情報として2を有するエントリの次の行に位置する。このため、制御指示部240は、2に1を加えた3を第1識別情報(newfd)として生成し、記憶部24に記憶させる。そして、制御指示部240は、新たに生成した第1識別情報(newfd)と、代行サーバ30によって生成されたソケットとを対応付けさせるべく、当該第1識別情報(newfd)を代行サーバ30に通知する。   Further, the control instruction unit 240 generates first identification information (newfd) to be managed in association with a socket newly generated by an accept system call. Specifically, the control instruction unit 240 searches the storage unit 24 for an entry associated with the empty state. Then, the control instruction unit 240 acquires the identification information of the socket corresponding to the entry. For example, the entry illustrated in the third line in FIG. 3 is associated with an empty state. This entry is located in the next line of the entry having 2 as the first identification information. Therefore, the control instruction unit 240 generates 3 obtained by adding 1 to 2 as the first identification information (newfd) and stores it in the storage unit 24. Then, the control instruction unit 240 notifies the proxy server 30 of the first identification information (newfd) so as to associate the newly generated first identification information (newfd) with the socket generated by the proxy server 30. To do.

これらの指示を受けて、ソケット生成部300は、socketシステムコール、bindシステムコール、listenシステムコール、および、acceptシステムコールを呼び出す(S1070)。また、代行サーバ30の識別情報管理部320は、通知を受けた第1識別情報(newfd)と、新たに生成するソケットの第2識別情報とを対応付けて記憶部34に記憶する。これらのシステムコールの実行結果は通信モジュール210に返信される(S1075)。これを受けて、更新部220は、第1識別情報(fd)に対応する通信状態を割当済状態(LISTEN状態)に戻し、第1識別情報(newfd)に対応する通信状態を接続済状態に更新する。返答部230は、これらの制御の実行結果として第1識別情報(newfd)をタスク200に返答する(S1080)。これによりタスク200は処理の中断を解除して次の処理を行うことができる。   In response to these instructions, the socket generation unit 300 calls a socket system call, a bind system call, a listen system call, and an accept system call (S1070). In addition, the identification information management unit 320 of the proxy server 30 stores the received first identification information (newfd) and the second identification information of the newly generated socket in the storage unit 34 in association with each other. The execution results of these system calls are returned to the communication module 210 (S1075). In response to this, the updating unit 220 returns the communication state corresponding to the first identification information (fd) to the assigned state (LISTEN state), and sets the communication state corresponding to the first identification information (newfd) to the connected state. Update. The response unit 230 returns the first identification information (newfd) to the task 200 as the execution result of these controls (S1080). As a result, the task 200 can cancel the interruption of processing and perform the next processing.

以上、本発明の実施の形態によれば、携帯電話20および代行サーバ30間の第1通信回線25が有効でない場合であっても、ソケットに関する資源の確保・解放など、実際の通信を要しない制御については、制御が成功したものとしてタスク200の実行を継続させることができる。そして、通信が実際に開始される場合に初めてタスク200の実行を停止させ、資源の確保・解放などの処理を行う。これにより、第1通信回線25の切断が起こりうる場合であっても、タスク200によるTCP/IPの通信を継続させることができる。この結果、第1通信回線25としてはイーサネット(登録商標)などではなく、シリアルインターフェイスやパラレルインターフェイスなどを採用することができ、更に第1通信回線25を一時的に切断することもできる。これにより、携帯電話20の動作状況に影響を与えないために、通常は携帯電話20を代行サーバ30と切断した状態で動作させ、必要な場合にのみ代行サーバ30に接続してデバッグすることもできる。   As described above, according to the embodiment of the present invention, even when the first communication line 25 between the mobile phone 20 and the proxy server 30 is not valid, actual communication such as securing and releasing of the socket-related resources is not required. As for control, it is possible to continue the execution of the task 200 assuming that the control is successful. Then, when the communication is actually started, the execution of the task 200 is stopped for the first time, and processing such as resource reservation / release is performed. Thus, even when the first communication line 25 can be disconnected, the TCP / IP communication by the task 200 can be continued. As a result, a serial interface, a parallel interface, or the like can be employed as the first communication line 25 instead of Ethernet (registered trademark), and the first communication line 25 can be temporarily disconnected. Accordingly, in order not to affect the operation status of the mobile phone 20, the mobile phone 20 is normally operated in a state disconnected from the proxy server 30, and connected to the proxy server 30 and debugged only when necessary. it can.

図11は、代行サーバ30として機能する情報処理装置600のハードウェア構成の一例を示す。情報処理装置600は、ホストコントローラ1082により相互に接続されるCPU1000、RAM1020、及びグラフィックコントローラ1075を有するCPU周辺部と、入出力コントローラ1084によりホストコントローラ1082に接続される通信インターフェイス1030、ハードディスクドライブ1040、及びCD−ROMドライブ1060を有する入出力部と、入出力コントローラ1084に接続されるROM1010、フレキシブルディスクドライブ1050、及び入出力チップ1070を有するレガシー入出力部とを備える。   FIG. 11 shows an example of the hardware configuration of the information processing apparatus 600 that functions as the proxy server 30. The information processing apparatus 600 includes a CPU peripheral unit including a CPU 1000, a RAM 1020, and a graphic controller 1075 connected to each other by a host controller 1082, a communication interface 1030, a hard disk drive 1040, and the like connected to the host controller 1082 by an input / output controller 1084. And an input / output unit having a CD-ROM drive 1060 and a legacy input / output unit having a ROM 1010 connected to an input / output controller 1084, a flexible disk drive 1050, and an input / output chip 1070.

ホストコントローラ1082は、RAM1020と、高い転送レートでRAM1020をアクセスするCPU1000及びグラフィックコントローラ1075とを接続する。CPU1000は、ROM1010及びRAM1020に格納されたプログラムに基づいて動作し、各部の制御を行う。例えばCPU1000は、図7を参照して説明した中央処理装置32として機能する。グラフィックコントローラ1075は、CPU1000等がRAM1020内に設けたフレームバッファ上に生成する画像データを取得し、表示装置1080上に表示させる。これに代えて、グラフィックコントローラ1075は、CPU1000等が生成する画像データを格納するフレームバッファを、内部に含んでもよい。   The host controller 1082 connects the RAM 1020 to the CPU 1000 and the graphic controller 1075 that access the RAM 1020 at a high transfer rate. The CPU 1000 operates based on programs stored in the ROM 1010 and the RAM 1020, and controls each unit. For example, the CPU 1000 functions as the central processing unit 32 described with reference to FIG. The graphic controller 1075 acquires image data generated by the CPU 1000 or the like on a frame buffer provided in the RAM 1020 and displays it on the display device 1080. Alternatively, the graphic controller 1075 may include a frame buffer that stores image data generated by the CPU 1000 or the like.

入出力コントローラ1084は、ホストコントローラ1082と、比較的高速な入出力装置である通信インターフェイス1030、ハードディスクドライブ1040、及びCD−ROMドライブ1060を接続する。通信インターフェイス1030は、ネットワークを介して外部の装置と通信する。例えば通信インターフェイス1030は、図7を参照して説明したLANインターフェイス36として機能する。ハードディスクドライブ1040は、情報処理装置600が使用するプログラム及びデータを格納する。CD−ROMドライブ1060は、CD−ROM1095からプログラム又はデータを読み取り、RAM1020又はハードディスクドライブ1040に提供する。RAM1020は、図7を参照して説明した記憶部34として機能してもよい。   The input / output controller 1084 connects the host controller 1082 to the communication interface 1030, the hard disk drive 1040, and the CD-ROM drive 1060, which are relatively high-speed input / output devices. The communication interface 1030 communicates with an external device via a network. For example, the communication interface 1030 functions as the LAN interface 36 described with reference to FIG. The hard disk drive 1040 stores programs and data used by the information processing apparatus 600. The CD-ROM drive 1060 reads a program or data from the CD-ROM 1095 and provides it to the RAM 1020 or the hard disk drive 1040. The RAM 1020 may function as the storage unit 34 described with reference to FIG.

また、入出力コントローラ1084には、ROM1010と、フレキシブルディスクドライブ1050や入出力チップ1070等の比較的低速な入出力装置とが接続される。入出力チップ1070は、例えばシリアルインターフェイス38などとして機能してもよい。ROM1010は、情報処理装置600の起動時にCPU1000が実行するブートプログラムや、情報処理装置600のハードウェアに依存するプログラム等を格納する。フレキシブルディスクドライブ1050は、フレキシブルディスク1090からプログラム又はデータを読み取り、入出力チップ1070を介してRAM1020またはハードディスクドライブ1040に提供する。入出力チップ1070は、フレキシブルディスク1090や、例えばパラレルポート、シリアルポート、キーボードポート、マウスポート等を介して各種の入出力装置を接続する。   The input / output controller 1084 is connected to the ROM 1010 and relatively low-speed input / output devices such as the flexible disk drive 1050 and the input / output chip 1070. The input / output chip 1070 may function as the serial interface 38, for example. The ROM 1010 stores a boot program executed by the CPU 1000 when the information processing apparatus 600 is activated, a program depending on the hardware of the information processing apparatus 600, and the like. The flexible disk drive 1050 reads a program or data from the flexible disk 1090 and provides it to the RAM 1020 or the hard disk drive 1040 via the input / output chip 1070. The input / output chip 1070 connects various input / output devices via a flexible disk 1090 and, for example, a parallel port, a serial port, a keyboard port, a mouse port, and the like.

情報処理装置600に提供されるプログラムは、フレキシブルディスク1090、CD−ROM1095、又はICカード等の記録媒体に格納されて利用者によって提供される。プログラムは、入出力チップ1070及び/又は入出力コントローラ1084を介して
、記録媒体から読み出され情報処理装置600にインストールされて実行される。また携帯電話20を制御する制御プログラムは、入出力チップ1070を介して携帯電話20に供給され、携帯電話20にインストールされた実行されてもよい。プログラムが情報処理装置600等に働きかけて行わせる動作は、図1から図10において説明した代行サーバ30または携帯電話20おける動作と同一であるから、説明を省略する。
A program provided to the information processing apparatus 600 is stored in a recording medium such as the flexible disk 1090, the CD-ROM 1095, or an IC card and provided by the user. The program is read from the recording medium via the input / output chip 1070 and / or the input / output controller 1084, installed in the information processing apparatus 600, and executed. The control program for controlling the mobile phone 20 may be supplied to the mobile phone 20 via the input / output chip 1070 and executed by being installed in the mobile phone 20. The operations that the program causes the information processing apparatus 600 to perform are the same as the operations in the proxy server 30 or the mobile phone 20 described with reference to FIGS.

以上に示したプログラムは、外部の記憶媒体に格納されてもよい。記憶媒体としては、フレキシブルディスク1090、CD−ROM1095の他に、DVDやPD等の光学記録媒体、MD等の光磁気記録媒体、テープ媒体、ICカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークやインターネットに接続されたサーバシステムに設けたハードディスク又はRAM等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムを情報処理装置600に提供してもよい。   The program shown above may be stored in an external storage medium. As the storage medium, in addition to the flexible disk 1090 and the CD-ROM 1095, an optical recording medium such as a DVD or PD, a magneto-optical recording medium such as an MD, a tape medium, a semiconductor memory such as an IC card, or the like can be used. Further, a storage device such as a hard disk or a RAM provided in a server system connected to a dedicated communication network or the Internet may be used as a recording medium, and the program may be provided to the information processing device 600 via the network.

以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。   As mentioned above, although this invention was demonstrated using embodiment, the technical scope of this invention is not limited to the range as described in the said embodiment. It will be apparent to those skilled in the art that various modifications or improvements can be added to the above-described embodiment. It is apparent from the scope of the claims that the embodiments added with such changes or improvements can be included in the technical scope of the present invention.

図1は、通信システム10の全体構成を示す。FIG. 1 shows the overall configuration of the communication system 10. 図2は、携帯電話20の機能構成を示す。FIG. 2 shows a functional configuration of the mobile phone 20. 図3は、記憶部24のデータ構造の一例を示す。FIG. 3 shows an example of the data structure of the storage unit 24. 図4は、通信モジュール210の機能構成を示す。FIG. 4 shows a functional configuration of the communication module 210. 図5は、携帯電話20と通信装置40との間の通信の通信状態の状態遷移を示す図である。FIG. 5 is a diagram illustrating a state transition of a communication state of communication between the mobile phone 20 and the communication device 40. 図6は、携帯電話20の通信状態とそれに対応して通信装置40に対し送信する指示とを示す。FIG. 6 shows a communication state of the mobile phone 20 and an instruction to be transmitted to the communication device 40 correspondingly. 図7は、代行サーバ30の機能構成を示す。FIG. 7 shows a functional configuration of the proxy server 30. 図8は、携帯電話20および代行サーバ30による処理の第1例を示す。FIG. 8 shows a first example of processing by the mobile phone 20 and the proxy server 30. 図9は、携帯電話20および代行サーバ30による処理の第2例を示す。FIG. 9 shows a second example of processing by the mobile phone 20 and the proxy server 30. 図10は、携帯電話20および代行サーバ30による処理の第3例を示す。FIG. 10 shows a third example of processing by the mobile phone 20 and the proxy server 30. 図11は、代行サーバ30として機能する情報処理装置600のハードウェア構成の一例を示す。FIG. 11 shows an example of the hardware configuration of the information processing apparatus 600 that functions as the proxy server 30.

Claims (16)

通信の制御を代行する外部の代行サーバを介して他の装置と通信する組込機器であって、
前記代行サーバと通信可能な通信デバイスと、
前記他の装置との通信状態を記憶するための記憶部と、
中央処理装置により実行されるタスクから前記他の装置との通信の制御要求を受けたことに応じ、前記通信デバイスと前記代行サーバとが通信可能でない状態において、前記制御要求に応じた制御を正常に行った後の状態に前記通信状態を更新する更新部と、
前記制御要求に応じた前記通信状態の更新結果を前記タスクに返答する返答部と、
前記通信デバイスが前記代行サーバと通信可能な状態において、前記代行サーバにおける前記他の装置との間の通信状態を前記記憶部に記憶された通信状態に遷移させるための指示を、前記通信デバイスを用いて前記代行サーバに対し送信する制御指示部と
を備える組込機器。
An embedded device that communicates with other devices via an external proxy server that performs communication control,
A communication device capable of communicating with the surrogate server;
A storage unit for storing a communication state with the other device;
In response to receiving a control request for communication with the other device from a task executed by the central processing unit, the control according to the control request is normally performed in a state where the communication device and the proxy server are not communicable. An update unit that updates the communication state to the state after
A response unit that returns an update result of the communication state according to the control request to the task;
In a state where the communication device is communicable with the proxy server, an instruction for transitioning the communication state between the other device in the proxy server to the communication state stored in the storage unit, the communication device A built-in device comprising: a control instruction unit that transmits to the proxy server.
前記制御指示部により送信された指示に応じ前記代行サーバが実行した制御の実行結果を、前記通信デバイスを用いて前記代行サーバから受信する受信部を更に備え、
前記更新部は、前記タスクから受けた前記制御要求が、前記制御要求に応じた制御の完了を待たずに前記タスクの処理を継続可能であるとして予め定められたノン・ブロッキング制御要求であることを条件に、前記通信デバイスと前記代行サーバとが通信可能でない状態においても前記通信状態を更新し、前記タスクから受けた前記制御要求が前記ノン・ブロッキング制御要求でないことを条件に、前記受信部による前記実行結果の受信に応じ前記通信状態を更新する
請求項1に記載の組込機器。
A reception unit that receives the execution result of the control executed by the proxy server according to the instruction transmitted by the control instruction unit from the proxy server using the communication device;
The update unit, the control request received from the task is a non-blocking control request determined in advance as being able to continue processing the task without waiting for the completion of control according to the control request The communication unit and the proxy server are updated on the condition that the communication state is updated even when the communication device is not communicable, and the control unit received from the task is not the non-blocking control request. The embedded device according to claim 1, wherein the communication state is updated in response to reception of the execution result by.
前記更新部は、前記タスクから受けた前記制御要求が、通信に必要な資源を確保または解放する要求であることを条件に、当該制御要求が前記ノン・ブロッキング制御要求であると判断し、前記タスクから受けた前記制御要求が、前記他の装置との間でデータの送受信を要する制御要求であることを条件に、当該制御要求が前記ノン・ブロッキング制御要求でないと判断する
請求項2に記載の組込機器。
The update unit determines that the control request is the non-blocking control request on the condition that the control request received from the task is a request to secure or release resources necessary for communication, and The control request received from a task is determined to be not the non-blocking control request on condition that the control request requires data transmission / reception with the other device. Built-in equipment.
前記更新部は、更に、前記タスクから受けた前記制御要求が、前記通信デバイスと前記他の装置との間の通信の属性を変更する要求であることを条件に、当該制御要求が前記ノン・ブロッキング制御要求であると判断する
請求項3に記載の組込機器。
The update unit may further include the control request received from the task on the condition that the control request is a request to change an attribute of communication between the communication device and the other device. The embedded device according to claim 3, wherein the embedded device is determined to be a blocking control request.
前記更新部は、前記タスクから受けた前記制御要求が、前記通信デバイスと前記他の装置とが通信可能か否かを検出する要求であることを条件に、当該制御要求が前記ノン・ブロッキング制御要求でないと判断する
請求項3に記載の組込機器。
The update unit, on the condition that the control request received from the task is a request for detecting whether the communication device and the other device can communicate with each other, the control request is the non-blocking control. The embedded device according to claim 3, wherein the embedded device is determined not to be a request.
前記更新部は、前記タスクから受けた前記制御要求が、前記他の装置からの通信要求に対し通信許可の返答を行う要求であることを条件に、当該制御要求が前記ノン・ブロッキング制御要求でないと判断する
請求項3に記載の組込機器。
The update unit is that the control request is not the non-blocking control request on condition that the control request received from the task is a request for returning a communication permission in response to a communication request from the other device. The embedded device according to claim 3.
前記代行サーバは、当該組込機器と前記他の装置との間のTCP/IPによる通信の制御を代行するものであり、
前記記憶部は、それぞれのソケットの通信状態を当該ソケットの識別情報に対応付けて記憶し、
前記更新部は、新たなソケットを生成する制御要求に応じ、新たに生成するソケットの識別情報に対応付けて、ソケットが新たに生成された旨を示す生成状態を前記通信状態として前記記憶部に記憶し、
前記返答部は、前記識別情報を前記更新結果として前記タスクに返答し、
前記制御指示部は、前記通信デバイスが前記代行サーバと通信可能な状態において、前記通信状態が前記生成状態であることを条件に、新たにソケットを生成して前記識別情報に対応付けて管理する指示を前記代行サーバに対し送信する
請求項3に記載の組込機器。
The proxy server is a proxy for TCP / IP communication control between the embedded device and the other device,
The storage unit stores the communication state of each socket in association with the identification information of the socket,
In response to the control request for generating a new socket, the update unit associates the generation state indicating that the socket has been newly generated with the communication state in the storage unit in association with the identification information of the newly generated socket. Remember,
The response unit returns the identification information to the task as the update result,
The control instruction unit generates a new socket and manages it in association with the identification information on condition that the communication state is the generation state when the communication device is communicable with the proxy server. The embedded device according to claim 3, wherein the instruction is transmitted to the proxy server.
前記更新部は、前記他の装置から受ける通信要求を格納するバッファをソケットに割り当てる制御要求を当該ソケットの識別情報に対応付けて受信したことに応じ、当該識別情報に対応する前記通信状態をバッファの割当済状態に更新し、
前記返答部は、バッファの割当が成功した旨を前記タスクに返答し、
前記制御指示部は、前記通信デバイスが前記代行サーバと通信可能な状態において、前記通信状態が前記割当済状態であることを条件に、新たにソケットを生成して前記識別情報に対応付けて管理する指示、および、当該ソケットにバッファを割り当てる指示を前記代行サーバに対し送信する
請求項7に記載の組込機器。
The update unit buffers the communication state corresponding to the identification information in response to receiving a control request for allocating a buffer for storing a communication request received from the other device to the socket in association with the identification information of the socket. To the assigned state of
The response unit responds to the task that the buffer allocation has been successful,
The control instruction unit creates a new socket and manages the communication device in association with the identification information on condition that the communication state is the assigned state when the communication device can communicate with the proxy server. The embedded device according to claim 7, wherein an instruction to perform and an instruction to allocate a buffer to the socket are transmitted to the proxy server.
前記更新部は、前記通信デバイスと前記他の装置とがソケットを用いて通信可能か否かを検出する制御要求を当該ソケットの識別情報に対応付けて受信したことに応じ、当該識別情報に対応する前記通信状態を通信待ち状態に更新し、
前記制御指示部は、前記通信デバイスが前記代行サーバと通信可能な状態において、前記通信状態が前記通信待ち状態であることを条件に、新たにソケットを生成して前記識別情報に対応付けて管理する指示、当該ソケットに前記バッファを割り当てる指示、および、当該ソケットによる通信が可能か否かを検出する指示を前記代行サーバに対し送信し、 前記受信部が、前記代行サーバによる通信可能か否かの検出結果を受信した場合において、
前記返答部は、前記検出結果の受信に応じ前記検出結果を前記タスクに返答し、
前記更新部は、当該識別情報に対応する前記通信状態を前記割当済状態に戻す
請求項8に記載の組込機器。
The update unit responds to the identification information in response to receiving the control request for detecting whether the communication device and the other apparatus can communicate with each other using the socket in association with the identification information of the socket. Update the communication state to a communication waiting state,
The control instruction unit generates a new socket and manages it in association with the identification information on condition that the communication state is the communication waiting state when the communication device is communicable with the proxy server. An instruction to allocate the buffer to the socket, and an instruction to detect whether or not communication by the socket is possible, and whether or not the reception unit can communicate by the proxy server. When the detection result is received,
The response unit returns the detection result to the task in response to reception of the detection result,
The embedded device according to claim 8, wherein the update unit returns the communication state corresponding to the identification information to the assigned state.
前記更新部は、指定されたポート番号をソケットに割り当てる制御要求を当該ソケットの識別情報に対応付けて受信したことに応じ、当該識別情報に対応付けて前記ポート番号を前記記憶部に記憶し、
前記返答部は、ポート番号の割当が成功した旨を前記タスクに返答し、
前記制御指示部は、前記通信デバイスが前記代行サーバと通信可能な状態において、当該ソケットの識別情報に対応付けてポート番号が対応付けて記憶されていることを条件に、更に当該ポート番号を前記代行サーバに対し送信する
請求項9に記載の組込機器。
In response to receiving the control request for assigning the designated port number to the socket in association with the identification information of the socket, the update unit stores the port number in association with the identification information in the storage unit,
The response unit responds to the task that the port number has been successfully assigned,
The control instruction unit further sets the port number on the condition that the communication device is stored in association with the identification information of the socket in a state where the communication device can communicate with the proxy server. The embedded device according to claim 9, which is transmitted to the proxy server.
当該組込機器には、ソケット通信を実現するライブラリプログラムに代えて、前記更新部、前記返答部、前記制御指示部、および、前記受信部として前記中央処理装置を機能させるライブラリプログラムがインストールされており、
前記タスクは、インストールされた当該ライブラリプログラムのAPIを呼び出すことにより前記制御要求を前記更新部に送信し、
前記更新部は、socketシステムコール、bindシステムコール、listenシステムコール、および、closeシステムコールの少なくとも何れか1つの呼び出しを前記タスクから受けたことを条件に、前記タスクから前記ノン・ブロッキング制御要求を受けたと判断し、acceptシステムコール、selectシステムコール、recvシステムコール、および、sendシステムコールの少なくとも何れか1つの呼び出しを前記タスクから受けたことを条件に、前記タスクから前記ノン・ブロッキング制御要求でない制御要求を受けたと判断する
請求項7に記載の組込機器。
The embedded device is installed with a library program that causes the central processing unit to function as the update unit, the response unit, the control instruction unit, and the reception unit, instead of the library program that realizes socket communication. And
The task sends the control request to the update unit by calling an API of the installed library program,
The update unit receives the non-blocking control request from the task on condition that at least one of a socket system call, a bind system call, a listen system call, and a close system call is received from the task. The non-blocking control request is not issued from the task on the condition that the task receives at least one of the accept system call, the select system call, the recv system call, and the send system call. The embedded device according to claim 7, wherein it is determined that a control request has been received.
組込機器による他の装置との通信の制御を代行する代行サーバであって、
前記組込機器から指定されたソケットの第1識別情報と、当該代行サーバが前記他の装置と通信するためのソケットの第2識別情報とを対応付けて記憶する記憶部と、
新たにソケットを生成して前記第1識別情報に対応付けて管理する指示を受信したことに応じて、当該代行サーバと前記他の装置との間の通信に用いるソケットを生成して第2識別情報を取得するソケット生成部と、
受信した前記第1識別情報と生成したソケットの前記第2識別情報とを対応付けて前記記憶部に記憶する識別情報管理部と
を備える代行サーバ。
A proxy server that performs control of communication with other devices by an embedded device,
A storage unit for storing the first identification information of the socket designated from the embedded device and the second identification information of the socket for the proxy server to communicate with the other device;
In response to receiving an instruction to newly generate a socket and manage it in association with the first identification information, a socket used for communication between the proxy server and the other device is generated and second identification is performed. A socket generator that obtains information;
A proxy server comprising: an identification information management unit that stores the received first identification information and the generated second identification information of the socket in association with each other.
前記ソケット生成部は、新たにソケットを生成して前記識別情報に対応付けて管理する指示を受信した場合であっても、既に当該識別情報が前記第1識別情報として前記記憶部に記憶されている場合には、新たにソケットを生成しない
請求項12に記載の代行サーバ。
Even when the socket generation unit receives an instruction to newly generate a socket and manage it in association with the identification information, the identification information is already stored in the storage unit as the first identification information. The proxy server according to claim 12, wherein no new socket is generated.
ソケットを用いてデータを送受信する指示を当該ソケットの第1識別情報に対応付けて受信したことに応じ、前記記憶部において当該第1識別情報に対応する第2識別情報により識別されるソケットを用いて前記他の装置とデータを送受信する送受信部を更に備える 請求項12に記載の代行サーバ。   Using the socket identified by the second identification information corresponding to the first identification information in the storage unit in response to receiving an instruction to transmit / receive data using the socket in association with the first identification information of the socket The proxy server according to claim 12, further comprising a transmission / reception unit that transmits / receives data to / from the other device. 通信の制御を代行する外部の代行サーバを介して他の装置と通信する組込機器を制御する制御プログラムであって、
前記組込機器を、
前記代行サーバと通信可能な通信デバイスと、
前記他の装置との通信状態を記憶するための記憶部と、
中央処理装置により実行されるタスクから前記他の装置との通信の制御要求を受けたことに応じ、前記通信デバイスと前記代行サーバとが通信可能でない状態において、前記制御要求に応じた制御を正常に行った後の状態に前記通信状態を更新する更新部と、
前記制御要求に応じた前記通信状態の更新結果を前記タスクに返答する返答部と、
前記通信デバイスが前記代行サーバと通信可能な状態において、前記代行サーバにおける前記他の装置との間の通信状態を前記記憶部に記憶された通信状態に遷移させるための指示を、前記通信デバイスを用いて前記代行サーバに対し送信する制御指示部と
して機能させる制御プログラム。
A control program for controlling an embedded device that communicates with another device via an external proxy server that performs control of communication,
The embedded device
A communication device capable of communicating with the surrogate server;
A storage unit for storing a communication state with the other device;
In response to receiving a control request for communication with the other device from a task executed by the central processing unit, the control according to the control request is normally performed in a state where the communication device and the proxy server are not communicable. An update unit that updates the communication state to the state after
A response unit that returns an update result of the communication state according to the control request to the task;
In a state where the communication device is communicable with the proxy server, an instruction for transitioning the communication state between the other device in the proxy server to the communication state stored in the storage unit, the communication device A control program that is used to function as a control instruction unit that transmits to the proxy server.
通信の制御を代行する外部の代行サーバを介して他の装置と通信する組込機器を制御する方法であって、
前記組込機器は、
前記代行サーバと通信可能な通信デバイスと、
前記他の装置との通信状態を記憶するための記憶部と
を有し、
中央処理装置により実行されるタスクから前記他の装置との通信の制御要求を受けたことに応じ、前記通信デバイスと前記代行サーバとが通信可能でない状態において、前記制御要求に応じた制御を正常に行った後の状態に前記通信状態を更新するステップと、
前記制御要求に応じた前記通信状態の更新結果を前記タスクに返答するステップと、
前記通信デバイスが前記代行サーバと通信可能な状態において、前記代行サーバにおける前記他の装置との間の通信状態を前記記憶部に記憶された通信状態に遷移させるための指示を、前記通信デバイスを用いて前記代行サーバに対し送信するステップと
を備える方法。
A method for controlling an embedded device that communicates with another device via an external proxy server that performs control of communication,
The embedded device is
A communication device capable of communicating with the surrogate server;
A storage unit for storing a communication state with the other device,
In response to receiving a control request for communication with the other device from a task executed by the central processing unit, the control according to the control request is normally performed in a state where the communication device and the proxy server are not communicable. Updating the communication state to a state after going to
Returning an update result of the communication state in response to the control request to the task;
In a state where the communication device is communicable with the proxy server, an instruction for transitioning the communication state between the other device in the proxy server to the communication state stored in the storage unit, the communication device And transmitting to the surrogate server.
JP2008512068A 2006-04-13 2007-04-10 Technology to control communication with external devices using a proxy server Expired - Fee Related JP4965562B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008512068A JP4965562B2 (en) 2006-04-13 2007-04-10 Technology to control communication with external devices using a proxy server

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2006111300 2006-04-13
JP2006111300 2006-04-13
PCT/JP2007/057895 WO2007123025A1 (en) 2006-04-13 2007-04-10 Technique of controlling communication of installed apparatus with outside by means of proxy server
JP2008512068A JP4965562B2 (en) 2006-04-13 2007-04-10 Technology to control communication with external devices using a proxy server

Publications (2)

Publication Number Publication Date
JPWO2007123025A1 true JPWO2007123025A1 (en) 2009-09-03
JP4965562B2 JP4965562B2 (en) 2012-07-04

Family

ID=38624931

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008512068A Expired - Fee Related JP4965562B2 (en) 2006-04-13 2007-04-10 Technology to control communication with external devices using a proxy server

Country Status (9)

Country Link
US (1) US7996524B2 (en)
EP (1) EP2015190B1 (en)
JP (1) JP4965562B2 (en)
CN (1) CN101411165B (en)
AT (1) ATE531176T1 (en)
BR (1) BRPI0710748B1 (en)
CA (1) CA2642585C (en)
TW (1) TWI418178B (en)
WO (1) WO2007123025A1 (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8869171B2 (en) * 2010-12-23 2014-10-21 Mellanox Technologies Ltd. Low-latency communications
CN103138965B (en) * 2011-11-28 2016-07-06 中国电信股份有限公司 A kind of methods, devices and systems inquiring about internet of things equipment state
CN103327040A (en) * 2012-03-21 2013-09-25 鸿富锦精密工业(深圳)有限公司 System and method for updating proxy service
US9088612B2 (en) * 2013-02-12 2015-07-21 Verizon Patent And Licensing Inc. Systems and methods for providing link-performance information in socket-based communication devices
US10356047B2 (en) 2013-12-05 2019-07-16 Crowdstrike, Inc. RPC call interception
EP3447973B1 (en) * 2016-05-10 2021-04-07 Huawei Technologies Co., Ltd. Packet switching service recognition method and terminal

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0922391A (en) 1995-07-05 1997-01-21 Matsushita Electric Ind Co Ltd Client/server system
JP3392302B2 (en) * 1996-10-04 2003-03-31 株式会社日立製作所 Information processing apparatus, communication method, and storage medium
JP3608905B2 (en) * 1997-05-29 2005-01-12 三菱電機株式会社 Data communication system and data communication method
JPH11112609A (en) * 1997-10-06 1999-04-23 Toshiba Corp Communication fault recovery method for communication system and record medium recorded with program for the method
JPH11225376A (en) * 1998-02-06 1999-08-17 Ntt Chuo Personal Tsushinmo Kk Communication connecting device
JP3464907B2 (en) 1998-03-20 2003-11-10 富士通株式会社 Protocol conversion system
US7778260B2 (en) * 1998-10-09 2010-08-17 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US7139822B2 (en) 2000-07-07 2006-11-21 International Business Machines Corporation Interception method and system for compensating disadvantageous characteristics of a communication protocol
EP1170923B1 (en) 2000-07-07 2005-05-25 International Business Machines Corporation Interception method and system for compensating disadvantageous characteristics of a communication protocol
US7293108B2 (en) * 2001-03-15 2007-11-06 Intel Corporation Generic external proxy
JP3539941B2 (en) * 2001-07-31 2004-07-07 アンリツ株式会社 Measurement system
EP1563389A4 (en) 2001-08-01 2008-06-25 Actona Technologies Ltd Virtual file-sharing network
CN101159621B (en) * 2001-12-05 2010-12-22 微软公司 Configuration management systems for mobile and embedded devices and method of including limited-resource client device in same
JP4329358B2 (en) 2003-02-24 2009-09-09 富士通株式会社 Stream delivery method and stream delivery system
US7533176B2 (en) * 2004-07-14 2009-05-12 International Business Machines Corporation Method for supporting connection establishment in an offload of network protocol processing
US20060053485A1 (en) * 2004-09-08 2006-03-09 Chia-Hsin Li Network connection through NAT routers and firewall devices
JP2006127461A (en) * 2004-09-29 2006-05-18 Sony Corp Information processing device, communication processing method, and computer program

Also Published As

Publication number Publication date
EP2015190A1 (en) 2009-01-14
TW200803282A (en) 2008-01-01
US20090201944A1 (en) 2009-08-13
JP4965562B2 (en) 2012-07-04
US7996524B2 (en) 2011-08-09
ATE531176T1 (en) 2011-11-15
BRPI0710748A2 (en) 2012-09-18
BRPI0710748B1 (en) 2018-11-27
CA2642585C (en) 2015-03-17
CA2642585A1 (en) 2007-11-01
EP2015190A4 (en) 2010-09-22
CN101411165B (en) 2013-06-19
TWI418178B (en) 2013-12-01
CN101411165A (en) 2009-04-15
EP2015190B1 (en) 2011-10-26
WO2007123025A1 (en) 2007-11-01

Similar Documents

Publication Publication Date Title
US20180210752A1 (en) Accelerator virtualization method and apparatus, and centralized resource manager
US7793298B2 (en) Facilitating access to input/output resources via an I/O partition shared by multiple consumer partitions
JP4690437B2 (en) Communication method, communication apparatus and program for network application
JP4965562B2 (en) Technology to control communication with external devices using a proxy server
KR20080106908A (en) Migrating a virtual machine that owns a resource such as a hardware device
US11221866B2 (en) Accelerator loading method, system, and apparatus
JPWO2009104400A1 (en) Information processing apparatus, information processing system, setting program transmission method, and server setting program
KR20090003224A (en) Network interface routing using computational context
US20100192214A1 (en) Information processing apparatus, information processing method, and recording medium including computer program
JP5541292B2 (en) Distributed system, communication means selection method, and communication means selection program
KR101856486B1 (en) Method for bi-direction calling between open system and mainframe system
US20100146168A1 (en) System and method of inter-connection between components using software bus
JP2002358167A5 (en)
WO2020113817A1 (en) Network isolation method and apparatus based on user mode protocol stack
TW582147B (en) Inbound connector
JP2006277204A (en) Portable communication terminal device
JP2011221634A (en) Computer system, logic section management method and logic division processing program
JP2004102398A (en) Application management device, its method and its computer program
US20010025324A1 (en) Data communication method and apparatus, and storage medium storing program for implementing the method and apparatus
JP3884239B2 (en) Server computer
CN116737404B (en) Method and terminal device for application connection
KR19980086588A (en) System Resource Reduction Tool Using TCP / IP Socket Application
CN118740615A (en) Network resource management method, device, equipment, storage medium and product
CN118733304A (en) Socket communication method and system for realizing local TCP (Transmission control protocol) by shared memory
KR20180116743A (en) Method for bi-direction calling between open system and mainframe system

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111122

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120215

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

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20150406

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees