WO2007123025A1 - 組込機器による外部との通信を代行サーバにより制御させる技術 - Google Patents

組込機器による外部との通信を代行サーバにより制御させる技術 Download PDF

Info

Publication number
WO2007123025A1
WO2007123025A1 PCT/JP2007/057895 JP2007057895W WO2007123025A1 WO 2007123025 A1 WO2007123025 A1 WO 2007123025A1 JP 2007057895 W JP2007057895 W JP 2007057895W WO 2007123025 A1 WO2007123025 A1 WO 2007123025A1
Authority
WO
WIPO (PCT)
Prior art keywords
communication
socket
unit
proxy server
state
Prior art date
Application number
PCT/JP2007/057895
Other languages
English (en)
French (fr)
Inventor
Yasuhiro Aoki
Munetaka Ohtani
Original Assignee
International Business Machines Corporation
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 Corporation filed Critical International Business Machines Corporation
Priority to CN200780011378.XA priority Critical patent/CN101411165B/zh
Priority to BRPI0710748A priority patent/BRPI0710748B1/pt
Priority to US12/296,791 priority patent/US7996524B2/en
Priority to AT07741331T priority patent/ATE531176T1/de
Priority to EP07741331A priority patent/EP2015190B1/en
Priority to CA2642585A priority patent/CA2642585C/en
Priority to JP2008512068A priority patent/JP4965562B2/ja
Publication of WO2007123025A1 publication Critical patent/WO2007123025A1/ja

Links

Classifications

    • 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
    • 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
    • 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
    • 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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • 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

Definitions

  • the present invention relates to an embedded device, a proxy server, a method, and a program.
  • 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.
  • Rational Rose (R) RT of International Business Machines Corporation has been used as a technology for realizing model-driven development.
  • developers create software specifications and modify specifications on a highly versatile personal computer. Then, the software generated based on the created or modified specification is transmitted to the embedded device through the communication line and executed.
  • this technology also provides a debugging environment that can compare actual software with specifications. For example, the developer can check on the personal computer screen which part of the specification corresponds to the part of the program executed by the embedded device.
  • Patent Document 1 Japanese Patent Application Laid-Open No. 2002-63088
  • Patent Document 2 JP-A-9 22391
  • a built-in device must have a communication function. Don't be.
  • a communication device that can communicate by Ethernet (registered trademark) and a device driver that controls the communication device are required.
  • TC is a general-purpose communication protocol.
  • IP communication function There may be no IP communication function. In such cases, it may be necessary to separately develop device drivers that are not used in the final product, which may increase development costs and prolong development periods.
  • Patent documents 1 and 2 are cited as reference technologies. According to Patent Document 1, TCP
  • Communication using protocols such as ZIP can be converted to other protocols.
  • communication using ⁇ CPZIP can be realized by using a communication line such as a serial interface without using Ethernet.
  • a communication line such as a serial interface without using Ethernet.
  • TCPZIP control software is necessary, which may increase the required memory capacity of embedded devices.
  • communication of a certain device can be delegated to another device. This is realized by calling a procedure for communication on the other device by a remote procedure call (RPC) from the device.
  • RPC remote procedure call
  • remote procedure calls are based on the assumption that TCPZIP communication has been established. In other words, this technology also requires software for control by TCPZIP, which may increase the required memory capacity of embedded devices and the like. Also, if the communication status of the communication line is unstable, communication may be cut off and it may not be possible to resume.
  • 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.
  • the communication control is delegated.
  • An embedded device that communicates with another device via an external proxy server, a communication device capable of communicating with the proxy server, a storage unit for storing a communication state with the other device, and a central processing unit
  • the communication device and the proxy server are not able to communicate with each other.
  • An update unit that updates the communication status, a response unit that returns the update result of the communication status according to the control request to the task, and other devices in the proxy server in a state where the communication device can communicate with the proxy server.
  • An embedded device is provided that includes a control instruction unit that transmits an instruction for transitioning the communication state to the communication state stored in the storage unit to the proxy server using a communication device.
  • 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 that is a target for software development and debugging, 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. In addition, the mobile phone 20 suspends or resumes the execution of the program based on the instruction received from the communication device 40.
  • Embedded devices may be PDAs, digital home appliances, or electronically controlled vehicles instead of mobile phones.
  • 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 circuit compliant with Ethernet (registered trademark). Connected via line 35. Then, the proxy server 30 performs control of communication with the communication device 40 by the mobile phone 20.
  • the proxy server 30 has a TCP / IP communication control function, and performs control of TCP / IP communication between the mobile phone 20 and the communication device 40 for the mobile phone 20.
  • the communication device 40 operates a program for developing and debugging a program mounted on the mobile phone 20. Then, the communication device 40 acquires the execution state of the program operating on the mobile phone 20 from the mobile phone 20 by communicating with the proxy server 30 using TCP / IP, or operates on the mobile phone 20. Suspend or resume program execution.
  • the communication system 10 has a communication function based on a general-purpose communication protocol such as TCPZIP, and is provided outside the embedded device for the embedded device.
  • the purpose of the proxy server 30 is to delegate communication control in accordance with the communication protocol.
  • FIG. 2 shows a functional configuration of the mobile phone 20.
  • the cellular 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.
  • 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.
  • Task 200 includes a call to an API (Application Programming Interface) for controlling TCP / IP socket communication.
  • This API is, for example, BSD (Berkeley Software Distribution) UNIX A predetermined standard compatible with (registered trademark) or the like may be satisfied.
  • the task 200 may be, for example, a process or thread that is periodically granted execution rights by the operating system! / ⁇ .
  • the mobile phone 20 is installed with a library program that causes the central processing unit 22 to function as the communication module 210 instead of the library program that realizes socket communication.
  • the task 200 transmits a control request for communication with the communication device 40 to the communication module 210 by calling the API of the installed library program instead of the API for controlling socket communication. Since the API for socket communication and the API for this library program have the same calling interface, it is not necessary to modify the program to adapt to the communication module 210.
  • the communication module 210 When the communication module 210 receives 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 first communication line 25 is not communicable and the control request is received under the state, 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 the condition that the received control request is a predetermined non-blocking control request. Then, the communication module 210 returns the update result of the communication state 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. To send to the proxy server 30. Thus, even if the first communication line 25 is not communicable, the task 200 can continue processing without waiting for the first communication line 25 to be communicable.
  • FIG. 3 shows an exemplary data structure of the storage unit 24.
  • the storage unit 24 stores the 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 and suspends the processing until the port number assigned to the socket, the address of the communication buffer used for communication of the socket, and the communication through the socket are completed. The identification number of the task waiting You may remember.
  • identification information for example, an identifier called a file descriptor
  • a socket having identification information power ⁇ is in a generation state (denoted as an OPEN state) indicating that the socket has been newly generated. Neither port number nor buffer address is assigned to this socket. Also, the socket with the identification information 5 is in a state in which data reception by the socket is processed (denoted as RECV state). This socket is assigned the address of the communication buffer, and the identification number of the task that will wait and wait until the transmission / reception is completed.
  • 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.
  • the update unit 220 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 the control according to the control request. Next, it is determined whether the non-blocking control request is determined in advance so that the processing of the task 200 can be continued.
  • the update unit 220 receives a control request received from the task 200, and the control request is a non-blocking control request on the condition that it is a request to secure or release resources (memory storage area, etc.) necessary for communication. You may judge that there is.
  • the updating unit 220 performs control according to the control request even if the communication device 26 and the proxy server 30 are in a state where communication is not possible.
  • the communication state of the storage unit 24 is updated to the state after normal operation.
  • the update unit 220 responds to the reception of the control execution result by the receiving unit 250, and the storage unit 24 Update the communication status of.
  • the update unit 220 determines that the control request is a blocking control request on the condition that the control request received from the task 200 is a control request that requires data transmission / reception with the communication device 40. .
  • the response unit 230 replies to the task 200 with the update result of the communication state corresponding to the control request.
  • the update result is returned to the task 200 without waiting for execution of the control according to the request.
  • the blocking control request when the receiving unit 250 receives the execution result of the control corresponding to the request from the proxy server 30, the execution result is returned to the task 200.
  • the control instruction unit 240 is a communication device In a state where the communication device 26 can communicate with the proxy server 30, an instruction for changing the communication state between the communication device 40 in the proxy server 30 to the communication state stored in the storage unit 24 is transmitted using the communication device 26. Sent to proxy server 30.
  • the receiving unit 250 receives the execution result of the control executed by the proxy server 30 in response to the instruction transmitted by 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.
  • 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.
  • FIG. 5 is a diagram showing a state transition of a communication state of communication between the mobile phone 20 and the communication device 40.
  • the update unit 220 shows the communication state stored in the storage unit 24 even if the communication device 26 and the proxy server 30 are not communicable. Update along the solid line.
  • the transition of the communication state in response to the non-blocking control request will be specifically described.
  • 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.
  • 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 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.
  • the updating unit 220 performs communication corresponding to the identification information. Update the state to the buffer's assigned state (listen state in Figure 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.
  • this control request is a listen system call in the BSD Socket API.
  • This control request is also non-blocking Since this is a control request, the communication state is updated without waiting for execution of the control.
  • the update unit 220 vacates the communication state corresponding to the identification state in response to receiving the control request for releasing the socket in association with the identification information of the socket. Return to the state.
  • This control is for example BSD Soc
  • the update unit 220 receives the control request power received from the task 200 on the condition that the request for changing the attribute of communication between the communication device 26 and the communication device 40 is non-blocking control.
  • Judge as a request.
  • the update unit 220 in response to receiving a control request for assigning a designated port number to a socket in association with the identification information of the socket, associates the port number with the identification information.
  • 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.
  • the updating unit 220 changes the communication state stored in the storage unit 24 to a dotted line in the figure in response to the reception of the control execution result by the receiving unit 250. Update along. 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 to detect whether the communication device 26 and the communication device 40 can communicate with each other, a request to return 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.
  • the update unit 220 receives 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 association with the identification information of the socket. Accordingly, the communication status corresponding to the identification information is updated to the communication waiting status (LISTEN + SELECT status in Fig. 5).
  • the select system call issues a request to check the status of multiple sockets. According to this system call, it is possible to read data from each socket. Whether data can be written to each socket. It is possible to check whether or not it is possible, or whether or not there is an error in reading and writing.
  • the updating unit 220 returns the communication state corresponding to the identification information to the assigned state.
  • this control request is a blocking control request, the execution result task 200 is notified after the control by the proxy server 30 is executed.
  • 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. If necessary, the communication state corresponding to the identification information is updated to the communication acceptance state that accepts communication (ACCEPT state in Fig. 5). Then, when the reception 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. In addition, 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 (the CONNECTED state in FIG. 5). State) may be stored.
  • a control request for example, an accept system call
  • the update unit 220 notifies the proxy server 30 of the identification information for associating 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.
  • the update unit 220 sends a control request (for example, a select system call, a recv system call, or a send system call) that requires data transmission / reception using a socket to the identification information of the socket. It is determined that a blocking control request has been received in response to reception in association. Then, the update unit 220 updates the communication state corresponding to the identification information to the communication waiting state (in FIG. 5, the SELECT state, the RECV state, or the SEND state). Then, 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 the control by the proxy server 30 is executed.
  • a control request for example, a select system call, a recv system call, or a send system call
  • FIG. 6 shows a communication state of the mobile phone 20 and a finger transmitted to the communication device 40 correspondingly. Display.
  • the control instruction unit 240 gives an instruction to change the communication state between the communication device 26 and the communication server 40 in the proxy server 30 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 proxy server 30.
  • 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.
  • Figure 6 shows the correspondence between communication status and instructions in this process.
  • the control instruction unit 240 transmits an instruction to execute the socket system call to the proxy server 30.
  • the control instruction unit 240 generates an instruction to newly create a socket and associate it with 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) for assigning a socket storing a communication request received from the communication device 40 to the socket is transmitted to the proxy server 30.
  • control instruction unit 240 sends instructions to the proxy server 30 to execute the socket system call and the select system call in this order. Further, in response to the LISTEN + SELECT state being retrieved for another socket, the control instruction unit 240 sends instructions to execute the socket system call, the bind system call, the listen system call, and the select system call in this order. Sent to bar 30.
  • 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 the socket designated from the mobile phone 20 and second identification information (for example, referred to as a handle) of the socket for the proxy server 30 to communicate with the communication device 40. ) are stored in association with each other.
  • the first identification information and the second identification information may be different, but the corresponding first identification information and second identification information together identify the same socket generated by the proxy server 30.
  • a certain socket generated by the proxy server 30 has a first identification information depending on the task 200 operating on the mobile phone 20.
  • the communication module 310 operating on the proxy server 30 is identified by the second identification information.
  • 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.
  • 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, parallel line, or USB (Universal Serial
  • 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.
  • 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 and uses a socket used for communication between the proxy server 30 and the communication device 40 in response to receiving an instruction to manage the socket in association with the first identification information. To generate the second identification information.
  • the generation of the socket is realized by calling a system call to the communication module 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.
  • the transmission / reception unit 330 responds to the first identification information in the storage unit 34 in response to receiving an instruction to transmit / receive data using the socket from the serial interface 38 in association with the first identification information of the socket. Search for second identification information. Then, the transmission / reception unit 330 transmits / receives data to / from the communication device 40 using the socket identified by the searched second 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.
  • the proxy server 30 and the communication device 40 are shown as devices provided separately from each other, but the same information processing device is connected to the proxy server 30 and the communication device 40. It may function as each.
  • the transmission / reception unit 330 communicates with other tasks operating in the proxy server 30 using TCPZIP.
  • the object of control by the proxy server 30 may be communication between another task in the proxy server 30 and the mobile phone 20.
  • 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 by invoking the socket system call, for example.
  • the updating unit 220 Upon receiving this control request, the updating 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).
  • the updating 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).
  • 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 if the socket system call fails, 1 is returned, and if the socket system call succeeds, socket identification information is returned. For this reason, returning the first identification information of the socket means that the communication status has been successfully updated.
  • the task 200 performs the next processing determined by the application program (S830).
  • the control instruction unit 240 When 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 can communicate with each other, the following processing is performed.
  • the control instruction unit 240 On the condition that the communication state stored in the storage unit 24 is the generation state (OPEN state), the control instruction unit 240 generates an instruction to newly generate a socket and manage it in association with the first identification information. It transmits to the proxy server 30 (S840).
  • 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.
  • the socket generation unit 300 In response to 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.
  • the updating unit 220 updates the communication state without waiting for the completion of control corresponding to the control request. Then, the response unit 230 returns the update result of the communication state to the task 200.
  • 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 socekt system call is an example of a non-blocking control request, and the listen system call is the same as the example in FIG. In other words, when a listen system call is called to allocate a buffer to the communication module 210 socket, the first communication line 25 between the mobile phone 20 and the proxy server 30 is updated even if communication is not possible.
  • the unit 220 updates the communication state to the allocated state (LISTEN state), and the response unit 230 returns to the task 200 that the buffer allocation has been successful. In this way, 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, the processing of the task 200 can be continued. it can.
  • 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 by invoking the select system call, for example.
  • 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 updating unit 220 suspends the processing of the task 200 and waits until the communication device 26 and the proxy server 30 can communicate (S920).
  • the update unit 220 may store the identification information for identifying the task 200 to be on standby in association with the first identification information in association with the storage unit 24.
  • the response unit 230 sends the following instructions to the proxy server 30 on condition that the communication state is a communication waiting state ( S930).
  • the instructions include 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 communication request.
  • An instruction to assign a buffer to be stored to the socket for example, an instruction to execute a listen system call
  • an instruction to detect whether communication is possible using the socket for example, an instruction to execute a 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 to the proxy server 30 in association with each other.
  • socket generation unit 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.
  • the socket generation unit 300 assigns a buffer storing a communication request to the socket identified by the second identification information. Then, the transmission / reception unit 330 transmits / receives data to / from the communication device 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 receiving unit 250 receives a detection result indicating whether communication by the proxy server 30 is possible, the reply 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 processing (S960).
  • the result is returned to the task upon completion of control according to the request. That is, the task 200 suspends processing until transmission / reception is completed.
  • the communication module 210 gives the proxy server 30 control corresponding to the so cket system call and listen system call that were received before, even if the system call that was received recently is only select. Instruct. As a result, the communication state of the mobile phone 20 and the communication state of the proxy server 30 can be kept consistent.
  • 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.
  • the update unit 220 When the task 200 calls the socket system call to the communication module 210 (S 1 000), the update unit 220 generates the first identification information of the socket (S1010), and the response unit 230 receives the first identification information. Reply to task 200 (S1020).
  • the update unit 220 associates the port number with the first identification information of the socket in the storage unit 24.
  • the reply unit 230 replies to the task 200 that the port number assignment has been successful (S 1040).
  • the update unit 220 updates the communication state to the allocated state, and the response unit 230 indicates that the buffer allocation has been successful. Reply to task 200 (S1055).
  • the update unit 220 generates the first identification information of the newly generated socket. Is generated and stored in the storage unit 24.
  • the updating 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. .
  • control instruction unit 240 sends the following instructions to proxy server 30 (S1065).
  • 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), and a buffer for storing a communication request received from the communication device 40.
  • An instruction to allocate a socket to the socket for example, an instruction to execute a listen system call
  • an instruction to respond to communication permission in response to a communication request from the communication device 40 for example, to execute an accep t system call. Instructions).
  • the control instruction unit 240 displays the first identification information. On the condition that the port number is stored in association with each other, an instruction to allocate the port number may be further transmitted to the proxy server 30 in association with the port number.
  • the control instruction unit 240 generates first identification information (newfd) to be managed in association with a newly generated socket by an accept system call. Specifically, the control instruction unit 240 searches the storage unit 24 for an entry associated with the free state. Then, the control instruction unit 240 acquires the identification information of the socket corresponding to the entry. For example, the entry illustrated on the third line in Fig. 3 is associated with an empty state. This entry is located in the line following the entry with 2 as the first identification information. Therefore, the control instruction unit 240 generates 3 having 1 added to 2 as first identification information (newfd) and stores it in the storage unit 24. Then, the control instruction unit 240 sends the first identification information (newfd) newly generated to the proxy server 30 to associate the first identification information (newfd) generated with the socket generated by the proxy server 30. Notice.
  • socket generator 300 calls a socket system call, a bind system call, a listen system call, and an accept system call (S107 0). Further, the identification information management unit 320 of the proxy server 30 stores the received first identification information (ne wfd) 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 update unit 220 returns the communication state corresponding to the first identification information (fd) to the assigned state (LISTEN state), and changes the communication state corresponding to the first identification information (newfd) to the connected state. Update to state. 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 processing interruption and perform the next processing.
  • the execution of the task 200 can be continued assuming that the control is successful. Then, when communication is actually started, the execution of the task 200 is stopped for the first time, and processing such as securing and releasing resources is performed. As a result, the first communication line 2 Even if disconnection of 5 can occur, TCP / IP communication by task 200 can be continued. As a result, a serial interface or parallel interface other than Ethernet (registered trademark) can be employed as the first communication line 25, and the first communication line 25 can be temporarily disconnected. As a result, in order not to affect the operation status of the mobile phone 20, the mobile phone 20 is normally disconnected from the proxy server 30 and connected to the proxy server 30 for debugging only when necessary. it can.
  • FIG. 11 shows an exemplary 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 having a CPU 1000, a RAM 1020, and a graphic controller 1075 connected to each other by a host controller 1082, a communication interface 1030 connected to the host controller 1082 by an input / output controller 1084, a hard disk
  • An input / output unit having a drive 1040 and a CD-ROM drive 1060, and a legacy input / output unit having a ROM 1010, a flexible disk drive 1050, and an input / output chip 1070 connected to the input / output controller 1084 are provided.
  • the host controller 1082 connects the RAM 1020 to the CPUIOOO and the graphic controller 1075 that access the RAM 1020 at a high transfer rate.
  • the CPUIOOO operates based on the programs stored in the ROM 1010 and the RAM 1020 and controls each part.
  • the CPUIOOO functions as the central processing unit 32 described with reference to FIG.
  • the graphic controller 1075 acquires image data generated by a CPUIOOO or the like on a frame buffer provided in the RAM 1020 and displays it on the display device 1080.
  • the graphic controller 1075 may include a frame buffer for storing image data generated by the CPUIOOO or the like.
  • 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 that are relatively high-speed input / output devices.
  • the communication interface 1030 communicates with an external device via a network.
  • 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.
  • CD-ROM drive 1060 reads programs or data from CD-ROM 1095, RAM 1020 or hard disk Provide to drive 1040.
  • the RAM 1020 functions as the storage unit 34 described with reference to FIG.
  • the ROM 1010 and relatively low speed input / output devices such as the flexible disk drive 1 050 and the input / output chip 1070 are connected to the input / output controller 1084.
  • the input / output chip 1070 may function as the serial interface 38, for example.
  • the ROM 10 10 stores a boot program executed by the CPU 1000 when the information processing apparatus 600 is started up, 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.
  • the 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 out from the recording medium force 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 device 600 to perform are the same as the operations in the proxy server 30 or the mobile phone 20 described in FIGS.
  • the program described above may be stored in an external storage medium.
  • the storage medium in addition to the flexible disk 1090 and CD-ROM1095, optical recording media such as DVD and PD, magneto-optical recording media such as MD, tape media, semiconductor memory such as IC cards, and the like can be used.
  • a storage device such as a node 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 apparatus 600 via the network.
  • FIG. 1 shows the overall configuration of a communication system 10.
  • FIG. 2 shows a functional configuration of mobile phone 20.
  • FIG. 3 shows an example of the data structure of the storage unit 24.
  • FIG. 4 shows a functional configuration of communication module 210.
  • FIG. 5 is a diagram showing a state transition of a communication state of communication between the mobile phone 20 and the communication device 40.
  • FIG. 6 shows a communication state of the mobile phone 20 and an instruction to be transmitted to the communication device 40 correspondingly.
  • FIG. 7 shows a functional configuration of proxy server 30.
  • FIG. 8 shows a first example of processing by the mobile phone 20 and the proxy server 30.
  • FIG. 9 shows a second example of processing by the mobile phone 20 and the proxy server 30.
  • FIG. 10 shows a third example of processing by the mobile phone 20 and the proxy server 30.
  • FIG. 11 shows an example of a hardware configuration of the information processing apparatus 600 that functions as the proxy server 30.

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

【課題】組込機器による通信をこれまでより効率的に実現する。 【解決手段】通信の制御を代行する外部の代行サーバを介して他の装置と通信する組込機器であって、代行サーバと通信可能な通信デバイスと、他の装置との通信状態を記憶するための記憶部と、中央処理装置により実行されるタスクから他の装置との通信の制御要求を受けたことに応じ、通信デバイスと代行サーバとが通信可能でない状態において、制御要求に応じた制御を正常に行った後の状態に通信状態を更新する更新部と、制御要求に応じた通信状態の更新結果をタスクに返答する返答部と、通信デバイスが代行サーバと通信可能な状態において、代行サーバにおける他の装置との間の通信状態を記憶部に記憶された通信状態に遷移させるための指示を、通信デバイスを用いて代行サーバに対し送信する制御指示部とを備える組込機器。

Description

明 細 書
組込機器による外部との通信を代行サーバにより制御させる技術 技術分野
[0001] 本発明は、組込機器、代行サーバ、方法、および、プログラムに関する。特に、本発 明は、通信の制御を外部の代行サーバによって代行させるための組込機器、代行サ ーバ、方法、および、プログラムに関する。
背景技術
[0002] 近年、ソフトウェアに求められる機能は高度になってきている。また、携帯電話ゃデ ジタル家電などの組込機器の普及に伴って、ソフトウェアは多数の異なるプラットフォ ーム上で動作することが求められる場合もある。このようなソフトウェアを効率的に開 発するために、従来、モデル駆動開発(MMD : Model Driven Development) が研究されている。モデル駆動開発によれば、統一モデリング言語 (UML : Unified Modeled Language)などで記述されたソフトウェアの仕様から、様々なプラットフ オーム上で実際に動作するソフトウェアを自動的に生成することができる。
[0003] モデル駆動開発を実現する技術として、従来、インターナショナル'ビジネス ·マシ 一ンズ.コーポレーションの Rational Rose (R)RTが用いられている。この技術にお いて、開発者は、ソフトウェアの仕様の作成や仕様の修正を、汎用性の高いパーソナ ル 'コンピュータ上で行う。そして、作成または修正された仕様に基づき生成されたソ フトウエアは、通信回線を介して組込機器に送信されて実行される。更に、この技術 では、実際のソフトウェアと仕様とを対比可能なデバッグ環境も提供される。例えば、 開発者は、組込機器により実行されるプログラムの実行中の部分が、仕様のどの部 分に対応するのかを、パーソナル 'コンピュータの画面で確認することができる。
[0004] 特許文献 1 :特開 2002— 63088号公報
特許文献 2:特開平 9 22391号公報
発明の開示
発明が解決しょうとする課題
[0005] し力しながら、このような開発を行うためには、組込機器に通信機能を設けなければ ならない。通信機能を実現するためには、例えば、イーサネット (登録商標)などによ つて通信可能な通信デバイスと、その通信デバイスを制御するデバイスドライバとが 必要となる。更に、開発用ソフトウェアによっては、汎用的な通信プロトコルである TC
PZIPの制御用ソフトウェアが必要となる。しかしながら、組込機器によっては TCPZ
IPによる通信機能を有していない場合がある。このような場合には、最終製品には採 用されないデバイスドライバなどを別途開発する必要が生じ、開発コストの増大や開 発期間の長期化を招くおそれがある。
[0006] 参考技術として、特許文献 1および特許文献 2を挙げる。特許文献 1によると、 TCP
ZIPなどのプロトコルによる通信を、他のプロトコルに変換することができる。これによ り、シリアルインターフェイスなどの通信回線によって、イーサネットなどを用いずに τ CPZIPによる通信を実現できる。この技術を応用すれば組込機器にイーサネットな どの通信デバイスを不要とすることができる。し力しながら、 TCPZIPによる制御用の ソフトウェアは必要であり、組込機器などのメモリの必要容量を増大させてしまうおそ れがある。
[0007] 特許文献 2によると、ある装置の通信を他の装置に代理させることができる。これは 、当該装置からリモートプロシジャ一コール(RPC :Remote Procedure Call)によ つて、当該他の装置上の通信用のプロシジャ一を呼び出すことによって実現される。 しかしながら、リモートプロシジャ一コールは、 TCPZIPによる通信が確立されている ことが前提となっている。即ち、この技術においても、 TCPZIPによる制御用のソフト ウェアは必要であり、組込機器などのメモリの必要容量を増大させてしまうおそれがあ る。また、通信回線の通信状況が不安定な場合には通信が切断されて再開不能とな つてしまう場合がある。
[0008] そこで本発明は、上記の課題を解決することのできる組込機器、代行サーバ、方法 、および、プログラムを提供することを目的とする。この目的は特許請求の範囲におけ る独立項に記載の特徴の組み合わせにより達成される。また従属項は本発明の更な る有利な具体例を規定する。
課題を解決するための手段
[0009] 上記課題を解決するために、本発明の第 1の形態にぉ 、ては、通信の制御を代行 する外部の代行サーバを介して他の装置と通信する組込機器であって、代行サーバ と通信可能な通信デバイスと、他の装置との通信状態を記憶するための記憶部と、 中央処理装置により実行されるタスク力 他の装置との通信の制御要求を受けたこと に応じ、通信デバイスと代行サーバとが通信可能でない状態において、制御要求に 応じた制御を正常に行った後の状態に通信状態を更新する更新部と、制御要求に 応じた通信状態の更新結果をタスクに返答する返答部と、通信デバイスが代行サー バと通信可能な状態において、代行サーバにおける他の装置との間の通信状態を 記憶部に記憶された通信状態に遷移させるための指示を、通信デバイスを用いて代 行サーバに対し送信する制御指示部とを備える組込機器を提供する。
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなぐ これらの特徴群のサブコンビネーションもまた、発明となりうる。
発明の効果
[0010] 本発明によれば、組込機器による通信をこれまでより効率的に実現することができ る。
発明を実施するための最良の形態
[0011] 以下、発明を実施するための最良の形態 (以下、実施の形態と称す)を通じて本発 明を説明するが、以下の実施形態は特許請求の範隨こかかる発明を限定するもの ではなぐまた実施形態の中で説明されている特徴の組み合わせの全てが発明の解 決手段に必須であるとは限らない。
[0012] 図 1は、通信システム 10の全体構成を示す。通信システム 10は、携帯電話 20と、 代行サーバ 30と、通信装置 40とを備える。携帯電話 20は、ソフトウエア開発やデバッ グの対象となる組込機器の一例であり、シリアル 'インターフェイスなどの第 1通信回 線 25を介して代行サーバ 30に接続されている。そして、携帯電話 20は、開発中や 動作検証中のプログラムを実行し、その実行状態を通信装置 40に通知し、通信装置 40の画面上にその実行状態を表示させる。また、携帯電話 20は、通信装置 40から 受けた指示に基づきプログラムの実行を中断したり再開したりする。なお、組込機器 は、携帯電話に代えて、 PDA,デジタル家電または電子制御の自動車などであって ちょい。 [0013] 代行サーバ 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上で動作す るプログラムの実行を中断または再開させる。
[0014] このように、本実施の形態に係る通信システム 10は、 TCPZIPなどの汎用な通信 プロトコルによる通信機能が搭載されて 、な 、組込機器のために、組込機器の外部 に設けられた代行サーバ 30によって、通信プロトコルに準拠した通信の制御を代行 させることを目的とする。この結果、携帯電話 20には通信制御のためのプログラムを 搭載する必要がないので、携帯電話 20のメモリの必要容量を削減したり、携帯電話 20上で動作するプログラムを開発する手間を軽減できる。
[0015] 図 2は、携帯電話 20の機能構成を示す。携帯電話 20は、中央処理装置 22と、記 憶部 24と、通信デバイス 26とを有する。中央処理装置 22は、予め携帯電話 20にィ ンストールされたプログラムを実行する。記憶部 24は、このプログラムの実行のため、 または、通信装置 40との通信状態を記憶するために設けられている。通信デバイス 2 6は、第 1通信回線 25を介して代行サーバ 30と通信可能に接続されている。通信デ バイス 26と代行サーバ 30との間の第 1通信回線 25は、一時的に通信可能でない状 態になる場合もある。例えば、利用者は、携帯電話 20におけるプログラムの実行中 に、第 1通信回線 25を携帯電話 20から一時的に取り外してもよい。
[0016] 中央処理装置 22は、予め携帯電話 20にインストールされたプログラムによって、タ スク 200と、通信モジュール 210として機能する。タスク 200は、 TCP/IPのソケット 通信を制御するための API (Application Programming Interface)の呼び出し を含む。この APIは、例えば、 BSD (Berkeley Software Distribution)の UNIX (登録商標)などと互換性を持つ所定の規格を満たしてもよい。なお、タスク 200は、 例えば、オペレーティングシステムによって定期的に実行権が与えられるプロセスま たはスレッドなどであってもよ!/ヽ。
[0017] 携帯電話 20には、ソケット通信を実現するライブラリプログラムに代えて、通信モジ ユール 210として中央処理装置 22を機能させるライブラリプログラムがインストールさ れている。タスク 200は、ソケット通信を制御するための APIに代えて、インストールさ れたこのライブラリプログラムの APIを呼び出すことにより、通信装置 40との通信の制 御要求を通信モジュール 210に送信する。なお、ソケット通信の APIとこのライブラリ プログラムの APIとでは呼び出しのインターフェイスが同一であるから、通信モジユー ル 210に適合させるためにプログラムを改造する必要はない。
[0018] 通信モジュール 210は、タスク 200から制御要求を受けると、制御要求に応じた制 御を実行すべき指示を、通信デバイス 26を用いて代行サーバ 30に対し送信する。 但し、第 1通信回線 25が通信可能でな 、状態にぉ 、て制御要求を受信した場合に は通信モジュール 210は以下の処理を行う。通信モジュール 210は、受信した制御 要求が予め定められたノン'ブロッキング制御要求であることを条件に、代行サーバ 3 0と通信せずに記憶部 24内の通信状態を更新する。そして、通信モジュール 210は 、通信状態の更新結果をタスク 200に返答する。そして、第 1通信回線 25が通信可 能な状態になったことを条件に、通信モジュール 210は、代行サーバ 30による通信 装置 40との通信状態を記憶部 24に記憶された通信状態に遷移させるための指示を 代行サーバ 30に送信する。これにより、タスク 200は、第 1通信回線 25が通信可能で な 、状態であっても、第 1通信回線 25が通信可能となるのを待たずに処理を継続で きる。
[0019] 図 3は、記憶部 24のデータ構造の一例を示す。記憶部 24は、携帯電話 20が通信 装置 40とソケット通信するためのそれぞれのソケットの通信状態を、当該ソケットの識 別情報 (例えば、ファイルディスクリプタなどと呼ばれる識別子)に対応付けて記憶す る。更に、記憶部 24は、それぞれのソケットに対応付けて、当該ソケットに割り当てら れたポート番号、当該ソケットの通信に用いる通信バッファのアドレス、および、当該 ソケットによる通信が完了するまで処理を中断して待機しているタスクの識別番号を 記憶していてもよい。
[0020] 一例として、識別情報力^のソケットは、当該ソケットが新たに生成された旨を示す 生成状態 (OPEN状態と記す)である。そして、このソケットにはポート番号およびバッ ファアドレスの何れも割り当てられていない。また、識別情報が 5のソケットは、当該ソ ケットによるデータの受信を処理して 、る状態 (RECV状態と記す)である。このソケッ トには、通信バッファのアドレス、および、この送受信が完了するまで処理を中断して 待機して ヽるタスクの識別番号が割り当てられて!/ヽる。
[0021] 図 4は、通信モジュール 210の機能構成を示す。通信モジュール 210は、更新部 2 20と、返答部 230と、制御指示部 240と、受信部 250とを有する。更新部 220は、中 央処理装置 22により実行されるタスク 200から通信装置 40との通信の制御要求を受 けたことに応じ、その制御要求が、その制御要求に応じた制御の完了を待たずにタス ク 200の処理を継続可能であるとして予め定められたノン ·ブロッキング制御要求であ るかを判断する。例えば、更新部 220は、タスク 200から受けた制御要求力 通信に 必要な資源 (メモリの記憶領域など)を確保または解放する要求であることを条件に、 当該制御要求がノン 'ブロッキング制御要求であると判断してもよい。
[0022] 更新部 220は、ノン'ブロッキング制御要求であることを条件に、たとえ通信デバイス 26と代行サーバ 30とが通信可能でな 、状態であっても、その制御要求に応じた制 御を正常に行った後の状態に記憶部 24の通信状態を更新する。一方で、更新部 22 0は、タスク 200から受けた制御要求がノン 'ブロッキング制御要求でないブロッキン グ制御要求であることを条件に、受信部 250による制御の実行結果の受信に応じ、 記憶部 24の通信状態を更新する。例えば、更新部 220は、タスク 200から受けた制 御要求が、通信装置 40との間でデータの送受信を要する制御要求であることを条件 に、当該制御要求がブロッキング制御要求であると判断する。
[0023] 返答部 230は、その制御要求に応じた通信状態の更新結果をタスク 200に返答す る。即ち、ノン'ブロッキング制御要求については、その要求に応じた制御の実行を待 たずに更新結果がタスク 200に返答される。一方、ブロッキング制御要求については 、受信部 250がその要求に応じた制御の実行結果を代行サーバ 30から受信したこと に応じ、その実行結果がタスク 200に返答される。制御指示部 240は、通信デバイス 26が代行サーバ 30と通信可能な状態において、代行サーバ 30における通信装置 4 0との間の通信状態を記憶部 24に記憶された通信状態に遷移させるための指示を、 通信デバイス 26を用いて代行サーバ 30に対し送信する。
[0024] 受信部 250は、制御指示部 240により送信された指示に応じ代行サーバ 30が実行 した制御の実行結果を、通信デバイス 26を用いて代行サーバ 30から受信する。実 行結果は更新部 220および返答部 230に通知される。ブロッキング制御要求を受け ていた場合において、更新部 220は、この実行結果に基づき通信状態を更新すると 共に、返答部 230はこの実行結果をタスク 200に返答する。
[0025] 図 5は、携帯電話 20と通信装置 40との間の通信の通信状態の状態遷移を示す図 である。更新部 220は、ノン'ブロッキング制御要求を受けたことに応じ、通信デバィ ス 26と代行サーバ 30とが通信可能でな 、状態であっても、記憶部 24に記憶された 通信状態を図中の実線に沿って更新する。以下、ノン'ブロッキング制御要求に応じ た通信状態の遷移について具体的に説明する。まず、ソケットが生成されていない場 合には、そのソケットに対応する状態は存在しない。その状態を、便宜上そのソケット の空き状態とする。更新部 220は、新たなソケットを生成する制御要求に応じ、新た に生成するソケットの識別情報に対応付けて、そのソケットが新たに生成された旨を 示す生成状態(図 5では OPEN状態)を通信状態として記憶部 24に記憶する。識別 情報は、代行サーバ 30によって生成されるソケットの識別情報に関わらず、更新部 2 20によって生成されるものであってもよい。なお、この制御要求は、 BSD Socket A PIにおける socketシステムコールである。この制御要求はノン'ブロッキング制御要 求なので、通信状態の更新は代行サーバ 30における制御の実行を待たずに行われ る。
[0026] 次に、更新部 220は、通信装置 40からの通信要求を受け入れられる状態とする制 御要求を当該ソケットの識別情報に対応付けて受信したことに応じ、当該識別情報 に対応する通信状態を、バッファの割当済状態(図 5では LISTEN状態)に更新する 。この制御要求は、通信装置 40から受ける通信要求を格納するバッファをソケットに 割り当てることを代行サーバ 30に要求する。一例として、この制御要求は、 BSD Soc ket APIにおける listenシステムコールである。この制御要求もまたノン'ブロッキング 制御要求なので、通信状態の更新は制御の実行を待たずに行われる。 OPEN状態 、 LISTEN状態または後述の CONNECTED状態において、更新部 220は、ソケッ トを解放する制御要求を当該ソケットの識別情報に対応付けて受信したことに応じ、 当該識別状態に対応する通信状態を空き状態に戻す。この制御は、例えば、 BSD Soc
ket APIにおける closeシステムコールである。この制御要求もまたノン 'ブ ロッキング制御要求なので、通信状態の更新は制御の実行を待たずに行われる。
[0027] 更新部 220は、タスク 200から受けた制御要求力 通信デバイス 26と通信装置 40 との間の通信の属性を変更する要求であることを条件に、その制御要求がノン 'プロ ッキング制御要求であると判断する。例えば、 OPEN状態において、更新部 220は、 指定されたポート番号をソケットに割り当てる制御要求を当該ソケットの識別情報に対 応付けて受信したことに応じ、当該識別情報に対応付けてそのポート番号を記憶部 24に記憶する。この制御要求は、例えば、 BSD Socket APIにおける bindシステム コールである。この制御要求もまたノン.ブロッキング制御要求なので、ポート番号の 割当は代行サーバ 30における制御の実行を待たずに行われる。
[0028] 一方で、更新部 220は、ブロッキング制御要求を受けたことに応じ、受信部 250に よる制御の実行結果の受信に応じ、記憶部 24に記憶された通信状態を図中の点線 に沿って更新する。以下、ブロッキング制御要求に応じた通信状態の遷移について 具体的に説明する。更新部 220は、タスク 200から受けた制御要求が、通信デバイス 26と通信装置 40とが通信可能か否かを検出する要求、通信装置 40からの通信要求 に対し通信許可の返答を行う要求、または、データの送受信の要求であることを条件 に、これらの要求がブロッキング制御要求であると判断する。例えば、更新部 220は、 LISTEN状態において、通信デバイス 26と通信装置 40とが通信可能か否かを検出 する制御要求 (例えば selectシステムコール)を、当該ソケットの識別情報に対応付 けて受信したことに応じ、当該識別情報に対応する通信状態を通信待ち状態(図 5で は LISTEN + SELECT状態)に更新する。 selectシステムコールは、複数のソケット の状態を調べるための要求を発行する。このシステムコールによると、それぞれのソ ケットからのデータの読出が可能か否力 それぞれのソケットへのデータの書込みが 可能か否力、または、読出 '書込みにエラーが生じている力否かを調べることができる
。受信部 250が代行サーバ 30によって実行された通信可能力否かの検出結果を受 信した場合において、更新部 220は、当該識別情報に対応する通信状態を割当済 状態に戻す。このように、この制御要求はブロッキング制御要求なので、代行サーバ 30による制御の実行後に実行結果力タスク 200に通知される。
[0029] また、更新部 220は、 LISTEN状態において、通信装置 40からの通信要求に対し 通信許可の返答を行う制御要求(例えば acceptシステムコール)を、当該ソケットの 識別情報に対応付けて受信したことに応じ、当該識別情報に対応する通信状態を、 通信を受け入れる通信受入状態(図 5では ACCEPT状態)に更新する。そして、受 信部 250が代行サーバ 30によって実行された制御の実行結果を受信した場合にお いて、更新部 220は、当該識別情報に対応する通信状態を割当済状態に戻す。また 、更新部 220は、この制御によって新たにソケットが生成された場合には、記憶部 24 に新たなソケットの識別情報を記憶させ、その識別情報に対応付けて接続済状態( 図 5では CONNECTED状態)を記憶させてもよい。この場合、更新部 220は、新た に生成した識別情報と、代行サーバ 30によって生成されたソケットとを対応付けさせ るべぐ当該識別情報を代行サーバ 30に通知する。この制御要求はブロッキング制 御要求なので、代行サーバ 30による制御の実行後に実行結果が返答される。
[0030] また、更新部 220は、 CONNECTED状態において、ソケットを用いたデータの送 受信を要する制御要求(例えば selectシステムコール、 recvシステムコール、または 、 sendシステムコール)を、当該ソケットの識別情報に対応付けて受信したことに応じ 、ブロッキング制御要求を受けたと判断する。そして、更新部 220は、当該識別情報 に対応する通信状態を通信待ち状態(図 5では SELECT状態、 RECV状態、または 、 SEND状態)に更新する。そして、受信部 250が代行サーバ 30によって実行され たデータの送受信結果を受信した場合において、更新部 220は、当該識別情報に 対応する通信状態を接続済状態に戻す。このように、この制御要求はブロッキング制 御要求なので、代行サーバ 30による制御の実行後に実行結果がタスク 200に通知さ れる。
[0031] 図 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に対し送信する。
図 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識別情報によって識別される。
[0033] LANインターフェイス 36は、イーサネット(登録商標)などの第 2通信回線 35を介し て通信装置 40と通信する。 LANインターフェイス 36は、携帯電話 20と通信装置 40 との通信制御の結果として必要な通信を通信装置 40との間で行う。一方、シリアルイ ンターフェイス 38は、第 1通信回線 25を介して携帯電話 20と通信する。第 1通信回 線 25は、たとえば、シリアル回線、パラレル回線、または、 USB (Universal Serial
Bus)などである。シリアルインターフェイス 38は、通信制御の指示を携帯電話 20か ら受信し、または、通信制御の実行結果を携帯電話 20に送信する。
[0034] 中央処理装置 32は、予めインストールされたプログラムによって、ソケット生成部 30 0と、通信モジュール 310と、 ID管理部 320と、送受信部 330として機能する。通信モ ジュール 310は、例えば、 Windows (登録商標)オペレーティングシステムのな どの、ソケット通信を実現するためのライブラリプログラムによって実現される。そして、 通信モジュール 310は、代行サーバ 30と通信装置 40との間の通信を制御する。ソケ ット生成部 300は、新たにソケットを生成して第 1識別情報に対応付けて管理する指 示を受信したことに応じて、代行サーバ 30と通信装置 40との間の通信に用いるソケ ットを生成して第 2識別情報を取得する。ソケットの生成は、通信モジュール 310に対 しシステムコールの呼び出しを行うことによって実現される。
[0035] ID管理部 320は、シリアルインターフェイス 38が受信した第 1識別情報とソケット生 成部 300が取得した第 2識別情報とを対応付けて記憶部 34に記憶させる。送受信部 330は、ソケットを用いてデータを送受信する指示を当該ソケットの第 1識別情報に対 応付けてシリアルインターフェイス 38から受信したことに応じ、記憶部 34においてそ の第 1識別情報に対応する第 2識別情報を検索する。そして、送受信部 330は、検 索された第 2識別情報により識別されるソケットを用いて通信装置 40とデータを送受 信する。代行サーバ 30と通信装置 40との間のデータの送受信は、通信モジュール 3 10に対しシステムコールの呼び出しを行うことによって実現される。
[0036] なお、本実施の形態において代行サーバ 30と通信装置 40とは別体に設けられた 装置として示したが、同一の情報処理装置が代行サーバ 30および通信装置 40のそ れぞれとして機能してもよい。この場合、送受信部 330は、代行サーバ 30内で動作 する他のタスクとの間で TCPZIPによる通信を行う。このように、代行サーバ 30による 制御の対象は、代行サーバ 30内の他のタスクと携帯電話 20との間の通信であっても よい。
[0037] 図 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)。
[0038] 通信デバイス 26と代行サーバ 30とが通信可能な状態にぉ 、ては、または、通信デ バイス 26と代行サーバ 30とが通信可能な状態になると、続いて次の処理が行われる 。制御指示部 240は、記憶部 24に記憶された通信状態が生成状態 (OPEN状態)で あることを条件に、新たにソケットを生成してその第 1識別情報に対応付けて管理す る指示を代行サーバ 30に対し送信する(S840)。例えば、制御指示部 240は、実行 すべき socketシステムコールを識別する API番号と、生成したソケットに対応付けて 管理すべき第 1識別情報 (fd)とを送信してもよい。更に、制御指示部 240は、タスク 2 00からシステムコールの呼び出しを受けた場合に指定された引数を代行サーバ 30 に送信してもよい。この指示を受けて、ソケット生成部 300は、代行サーバ 30と通信 装置 40との間の通信に用いるソケットを生成してそのソケットの第 2識別情報を生成 する(S850)。そして、 ID管理部 320は、受信した第 1識別情報と生成した第 2識別 情報とを対応付けて管理する。
[0039] 以上、 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の処理を継続させることができる。
[0040] 図 9は、携帯電話 20および代行サーバ 30による処理の第 2例を示す。タスク 200は 、通信デバイス 26と通信装置 40とがソケットを用いて通信可能力否かを検出する制 御要求をそのソケットの第 1識別情報に対応付けて通信モジュール 210に送信する( S900)。この制御要求は、たとえば selectシステムコールを呼び出すことによって実 現される。更新部 220は、この制御要求を受けると、その第 1識別情報に対応するソ ケットの通信状態を通信待ち状態に更新する(S910)。そして、更新部 220は、通信 デバイス 26と代行サーバ 30とが通信可能となるまでタスク 200の処理を中断させて 待機する(S920)。この場合、更新部 220は、その第 1識別情報に対応付けて、待機 して ヽるタスク 200を識別する識別情報を記憶部 24に対応付けて記憶してもよ ヽ。
[0041] 通信デバイス 26と代行サーバ 30とが通信可能な状態において、返答部 230は、通 信状態が通信待ち状態であることを条件に、次に示す複数の指示を代行サーバ 30 に送る(S930)。その指示とは、新たにソケットを生成して第 1識別情報に対応付けて 管理する指示 (例えば socketシステムコールを実行する旨の指示)、通信要求を格 納するバッファをそのソケットに割り当てる指示(例えば listenシステムコールを実行 する旨の指示)、および、そのソケットを用いて通信可能か否かを検出する指示 (例え ば selectシステムコールを実行する指示)である。返答部 230は、それぞれのシステ ムコールを識別する API番号と、制御対象となるソケットの第 1識別情報とを対応付け て代行サーバ 30に送信してもよい。
[0042] これらの指示を受けて、ソケット生成部 300は、通信の制御を行う (S940)。まず、ソ ケット生成部 300は、代行サーバ 30と通信装置 40との間の通信に用いるソケットを生 成してそのソケットの第 2識別情報を生成する(S940)。そして、 ID管理部 320は、そ の第 2識別情報を第 1識別情報に対応付けて記憶部 34に記憶する。なお、ソケット 生成部 300は、新たにソケットを生成して識別情報に対応付けて管理する指示を受 信した場合であっても、既にその識別情報が第 1識別情報として記憶部 34に記憶さ れている場合には、新たにソケットを生成しなくてもよい。その場合、 ID管理部 320お よび送受信部 330は、既に記憶されている第 1識別情報に対応する第 2識別情報に より識別されるソケットについて、その他の処理を行う。
[0043] ソケット生成部 300は、第 2識別情報により識別されるソケットに、通信要求を格納 するノ ッファを割り当てる。そして、送受信部 330は、そのソケットを用いて通信装置 4 0とデータを送受信する。例えば、送受信部 330は、通信装置 40と通信することによ り、そのソケットを用いた通信が可能か否かを検出する。検出が完了すると検出結果 が通信モジュール 210に通知される。受信部 250が、代行サーバ 30による通信可能 か否かの検出結果を受信した場合において、返答部 230は、その検出結果をタスク 200に返答する(S950)。また、更新部 220は、第 1識別情報に対応する通信状態を 割当済状態に戻す。これを受けて、タスク 200は、その次の処理を継続する(S960)
[0044] 以上、図 9を参照して説明したように、データの送受信などを要するブロッキング制 御要求については、当該要求に応じた制御の完了に応じてその結果がタスクに返答 される。即ち、タスク 200は送受信が完了するまで処理を中断する。通信モジュール 210は、最近に受けたシステムコールが selectのみであっても、以前に受けていた so cketシステムコールおよび listenシステムコールに対応する制御を代行サーバ 30に 指示する。これにより、携帯電話 20における通信状態と代行サーバ 30における通信 状態の整合を保つことができる。
[0045] 図 10は、携帯電話 20および代行サーバ 30による処理の第 3例を示す。図 10を参 照して、ソケット通信を行うアプリケーションプログラムの処理の典型例を説明する。タ スク 200が通信モジュール 210に対し socketシステムコールの呼び出しを行うと(S 1 000)、更新部 220はソケットの第 1識別情報を生成し (S1010)、返答部 230はその 第 1識別情報をタスク 200に返答する(S1020)。タスク 200が、指定したポート番号 をソケットに割り当てる bindシステムコールの呼び出しを行うと(S 1030)、更新部 22 0は、そのポート番号をそのソケットの第 1識別情報に対応付けて記憶部 24に記憶す る。そして、返答部 230は、ポート番号の割当が成功した旨をタスク 200に返答する( S 1040)。
[0046] タスク 200が通信モジュール 210に対し listenシステムコールの呼び出しを行うと( S 1050)、更新部 220は通信状態を割当済状態に更新し、返答部 230はバッファの 割当が成功した旨をタスク 200に返答する(S1055)。次に、タスク 200が、通信装置 40からの通信要求に対し通信許可の返答を行う acceptシステムコールの呼び出し を行うと (S 1060)、更新部 220は、新たに生成するソケットの第 1識別情報を生成し て記憶部 24に記憶させる。また、更新部 220は、その第 1識別情報に対応する通信 状態を通信受入状態 (ACCEPT状態)に更新し、携帯電話 20と代行サーバ 30とが 通信可能となるまでタスク 200の処理を中断する。
このように、 acceptシステムコールなどのブロッキング制御要求が発行されるまでは タスク 200の処理は中断せずに実行される。
[0047] 携帯電話 20と代行サーバ 30とが通信可能な状態において、制御指示部 240は、 次に示す複数の指示を代行サーバ 30に送る(S1065)。その指示とは、新たにソケッ トを生成して第 1識別情報に対応付けて管理する指示 (例えば socketシステムコ一 ルを実行する旨の指示)、通信装置 40から受ける通信要求を格納するバッファをそ のソケットに割り当てる指示 (例えば listenシステムコールを実行する旨の指示)、お よび、通信装置 40からの通信要求に対し通信許可の返答を行う指示 (例えば accep tシステムコールを実行する旨の指示)である。制御指示部 240は、第 1識別情報に 対応付けてポート番号が対応付けて記憶されていることを条件に、当該ポート番号を 割り当てるべき指示をそのポート番号に対応付けて代行サーバ 30に対し更に送信し てもよい。
[0048] また、制御指示部 240は、 acceptシステムコールによって新たに生成するソケット に対応付けて管理すべき第 1識別情報 (newfd)を生成する。具体的には、制御指 示部 240は、記憶部 24の中で空き状態に対応付けられているエントリを検索する。そ して、制御指示部 240は、そのエントリに対応するソケットの識別情報を取得する。例 えば、図 3の 3行目に例示するエントリは空き状態に対応付けられている。このエントリ は、第 1識別情報として 2を有するエントリの次の行に位置する。このため、制御指示 部 240は、 2に 1をカ卩えた 3を第 1識別情報 (newfd)として生成し、記憶部 24に記憶 させる。そして、制御指示部 240は、新たに生成した第 1識別情報 (newfd)と、代行 サーバ 30によって生成されたソケットとを対応付けさせるベぐ当該第 1識別情報 (ne wfd)を代行サーバ 30に通知する。
[0049] これらの指示を受けて、ソケット生成部 300は、 socketシステムコール、 bindシステ ムコール、 listenシステムコール、および、 acceptシステムコールを呼び出す(S 107 0)。また、代行サーバ 30の識別情報管理部 320は、通知を受けた第 1識別情報 (ne wfd)と、新たに生成するソケットの第 2識別情報とを対応付けて記憶部 34に記憶す る。これらのシステムコールの実行結果は通信モジュール 210に返信される(S1075 )。これを受けて、更新部 220は、第 1識別情報 (fd)に対応する通信状態を割当済状 態 (LISTEN状態)に戻し、第 1識別情報 (newfd)に対応する通信状態を接続済状 態に更新する。返答部 230は、これらの制御の実行結果として第 1識別情報 (newfd )をタスク 200に返答する(S1080)。これによりタスク 200は処理の中断を解除して次 の処理を行うことができる。
[0050] 以上、本発明の実施の形態によれば、携帯電話 20および代行サーバ 30間の第 1 通信回線 25が有効でな 、場合であつても、ソケットに関する資源の確保'解放など、 実際の通信を要しない制御については、制御が成功したものとしてタスク 200の実行 を継続させることができる。そして、通信が実際に開始される場合に初めてタスク 200 の実行を停止させ、資源の確保'解放などの処理を行う。これにより、第 1通信回線 2 5の切断が起こりうる場合であっても、タスク 200による TCP/IPの通信を継続させる ことができる。この結果、第 1通信回線 25としてはイーサネット (登録商標)などではな ぐシリアルインターフェイスやパラレルインターフェイスなどを採用することができ、更 に第 1通信回線 25を一時的に切断することもできる。これにより、携帯電話 20の動作 状況に影響を与えないために、通常は携帯電話 20を代行サーバ 30と切断した状態 で動作させ、必要な場合にのみ代行サーバ 30に接続してデバッグすることもできる。
[0051] 図 11は、代行サーバ 30として機能する情報処理装置 600のハードウェア構成の一 例を示す。情報処理装置 600は、ホストコントローラ 1082により相互に接続される CP U1000、 RAM1020、及びグラフィックコントローラ 1075を有する CPU周辺部と、入 出力コントローラ 1084によりホストコントローラ 1082に接続される通信インターフェイ ス 1030、ハードディスクドライブ 1040、及び CD— ROMドライブ 1060を有する入出 力部と、入出力コントローラ 1084に接続される ROM1010、フレキシブルディスクドラ イブ 1050、及び入出力チップ 1070を有するレガシー入出力部とを備える。
[0052] ホストコントローラ 1082は、 RAM1020と、高い転送レートで RAM1020をアクセス する CPUIOOO及びグラフィックコントローラ 1075とを接続する。 CPUIOOOは、 RO M1010及び RAM1020に格納されたプログラムに基づいて動作し、各部の制御を 行う。例えば CPUIOOOは、図 7を参照して説明した中央処理装置 32として機能する 。グラフィックコントローラ 1075は、 CPUIOOO等が RAM1020内に設けたフレーム ノ ッファ上に生成する画像データを取得し、表示装置 1080上に表示させる。これに 代えて、グラフィックコントローラ 1075は、 CPUIOOO等が生成する画像データを格 納するフレームバッファを、内部に含んでもよい。
[0053] 入出力コントローラ 1084は、ホストコントローラ 1082と、比較的高速な入出力装置 である通信インターフェイス 1030、ハードディスクドライブ 1040、及び CD— ROMド ライブ 1060を接続する。通信インターフェイス 1030は、ネットワークを介して外部の 装置と通信する。例えば通信インターフェイス 1030は、図 7を参照して説明した LA Nインターフェイス 36として機能する。ハードディスクドライブ 1040は、情報処理装置 600が使用するプログラム及びデータを格納する。 CD— ROMドライブ 1060は、 CD —ROM1095からプログラム又はデータを読み取り、 RAM1020又はハードディスク ドライブ 1040に提供する。 RAM1020は、図 7を参照して説明した記憶部 34として 機會してちょい。
[0054] また、入出力コントローラ 1084には、 ROM1010と、フレキシブルディスクドライブ 1 050や入出力チップ 1070等の比較的低速な入出力装置とが接続される。入出力チ ップ 1070は、例えばシリアルインターフェイス 38などとして機能してもよい。 ROM 10 10は、情報処理装置 600の起動時に CPU1000が実行するブートプログラムや、情 報処理装置 600のハードウェアに依存するプログラム等を格納する。フレキシブルデ イスクドライブ 1050は、フレキシブルディスク 1090からプログラム又はデータを読み 取り、入出力チップ 1070を介して RAM1020またはハードディスクドライブ 1040に 提供する。入出力チップ 1070は、フレキシブルディスク 1090や、例えばパラレルポ ート、シリアルポート、キーボードポート、マウスポート等を介して各種の入出力装置を 接続する。
[0055] 情報処理装置 600に提供されるプログラムは、フレキシブルディスク 1090、 CD— R OM1095、又は ICカード等の記録媒体に格納されて利用者によって提供される。プ ログラムは、入出力チップ 1070及び/又は入出力コントローラ 1084を介して 、記録媒体力 読み出され情報処理装置 600にインストールされて実行される。また 携帯電話 20を制御する制御プログラムは、入出力チップ 1070を介して携帯電話 20 に供給され、携帯電話 20にインストールされた実行されてもよい。プログラムが情報 処理装置 600等に働きかけて行わせる動作は、図 1から図 10において説明した代行 サーバ 30または携帯電話 20おける動作と同一であるから、説明を省略する。
[0056] 以上に示したプログラムは、外部の記憶媒体に格納されてもよい。記憶媒体として は、フレキシブルディスク 1090、 CD— ROM1095の他に、 DVDや PD等の光学記 録媒体、 MD等の光磁気記録媒体、テープ媒体、 ICカード等の半導体メモリ等を用 いることができる。また、専用通信ネットワークやインターネットに接続されたサーバシ ステムに設けたノヽードディスク又は RAM等の記憶装置を記録媒体として使用し、ネ ットワークを介してプログラムを情報処理装置 600に提供してもよい。
[0057] 以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実 施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または 改良を加えることが可能であることが当業者に明らかである。その様な変更または改 良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載 力 明らかである。
図面の簡単な説明
[図 1]図 1は、通信システム 10の全体構成を示す。
[図 2]図 2は、携帯電話 20の機能構成を示す。
[図 3]図 3は、記憶部 24のデータ構造の一例を示す。
[図 4]図 4は、通信モジュール 210の機能構成を示す。
[図 5]図 5は、携帯電話 20と通信装置 40との間の通信の通信状態の状態遷移を示す 図である。
[図 6]図 6は、携帯電話 20の通信状態とそれに対応して通信装置 40に対し送信する 指示とを示す。
[図 7]図 7は、代行サーバ 30の機能構成を示す。
[図 8]図 8は、携帯電話 20および代行サーバ 30による処理の第 1例を示す。
[図 9]図 9は、携帯電話 20および代行サーバ 30による処理の第 2例を示す。
[図 10]図 10は、携帯電話 20および代行サーバ 30による処理の第 3例を示す。
[図 11]図 11は、代行サーバ 30として機能する情報処理装置 600のハードウェア構成 の一例を示す。

Claims

請求の範囲
[1] 通信の制御を代行する外部の代行サーバを介して他の装置と通信する組込機器 であって、
前記代行サーバと通信可能な通信デバイスと、
前記他の装置との通信状態を記憶するための記憶部と、
中央処理装置により実行されるタスク力 前記他の装置との通信の制御要求を受け たことに応じ、前記通信デバイスと前記代行サーバとが通信可能でない状態におい て、前記制御要求に応じた制御を正常に行った後の状態に前記通信状態を更新す る更新部と、
前記制御要求に応じた前記通信状態の更新結果を前記タスクに返答する返答部と 前記通信デバイスが前記代行サーバと通信可能な状態にぉ 、て、前記代行サー バにおける前記他の装置との間の通信状態を前記記憶部に記憶された通信状態に 遷移させるための指示を、前記通信デバイスを用いて前記代行サーバに対し送信す る制御指示部と
を備える組込機器。
[2] 前記制御指示部により送信された指示に応じ前記代行サーバが実行した制御の実 行結果を、前記通信デバイスを用いて前記代行サーバから受信する受信部を更に 備え、
前記更新部は、前記タスクから受けた前記制御要求が、前記制御要求に応じた制 御の完了を待たずに前記タスクの処理を «続可能であるとして予め定められたノン' ブロッキング制御要求であることを条件に、前記通信デバイスと前記代行サーバとが 通信可能でな!、状態にお!、ても前記通信状態を更新し、前記タスクから受けた前記 制御要求が前記ノン'ブロッキング制御要求でないことを条件に、前記受信部による 前記実行結果の受信に応じ前記通信状態を更新する
請求項 1に記載の組込機器。
[3] 前記更新部は、前記タスクから受けた前記制御要求が、通信に必要な資源を確保 または解放する要求であることを条件に、当該制御要求が前記ノン'ブロッキング制 御要求であると判断し、前記タスク力 受けた前記制御要求が、前記他の装置との間 でデータの送受信を要する制御要求であることを条件に、当該制御要求が前記ノン' ブロッキング制御要求でな 、と判断する
請求項 2に記載の組込機器。
[4] 前記更新部は、更に、前記タスク力も受けた前記制御要求が、前記通信デバイスと 前記他の装置との間の通信の属性を変更する要求であることを条件に、当該制御要 求が前記ノン'ブロッキング制御要求であると判断する
請求項 3に記載の組込機器。
[5] 前記更新部は、前記タスクから受けた前記制御要求が、前記通信デバイスと前記 他の装置とが通信可能力否かを検出する要求であることを条件に、当該制御要求が 前記ノン ·ブロッキング制御要求でな!、と判断する
請求項 3に記載の組込機器。
[6] 前記更新部は、前記タスク力 受けた前記制御要求力 前記他の装置からの通信 要求に対し通信許可の返答を行う要求であることを条件に、当該制御要求が前記ノ ン ·ブロッキング制御要求でな 、と判断する
請求項 3に記載の組込機器。
[7] 前記代行サーバは、当該組込機器と前記他の装置との間の TCP/IPによる通信 の制御を代行するものであり、
前記記憶部は、それぞれのソケットの通信状態を当該ソケットの識別情報に対応付 けて記'隐し、
前記更新部は、新たなソケットを生成する制御要求に応じ、新たに生成するソケット の識別情報に対応付けて、ソケットが新たに生成された旨を示す生成状態を前記通 信状態として前記記憶部に記憶し、
前記返答部は、前記識別情報を前記更新結果として前記タスクに返答し、 前記制御指示部は、前記通信デバイスが前記代行サーバと通信可能な状態にお いて、前記通信状態が前記生成状態であることを条件に、新たにソケットを生成して 前記識別情報に対応付けて管理する指示を前記代行サーバに対し送信する 請求項 3に記載の組込機器。
[8] 前記更新部は、前記他の装置力も受ける通信要求を格納するバッファをソケットに 割り当てる制御要求を当該ソケットの識別情報に対応付けて受信したことに応じ、当 該識別情報に対応する前記通信状態をバッファの割当済状態に更新し、
前記返答部は、ノ ッファの割当が成功した旨を前記タスクに返答し、
前記制御指示部は、前記通信デバイスが前記代行サーバと通信可能な状態にお いて、前記通信状態が前記割当済状態であることを条件に、新たにソケットを生成し て前記識別情報に対応付けて管理する指示、および、当該ソケットにバッファを割り 当てる指示を前記代行サーバに対し送信する
請求項 7に記載の組込機器。
[9] 前記更新部は、前記通信デバイスと前記他の装置とがソケットを用いて通信可能か 否かを検出する制御要求を当該ソケットの識別情報に対応付けて受信したことに応 じ、当該識別情報に対応する前記通信状態を通信待ち状態に更新し、
前記制御指示部は、前記通信デバイスが前記代行サーバと通信可能な状態にお いて、前記通信状態が前記通信待ち状態であることを条件に、新たにソケットを生成 して前記識別情報に対応付けて管理する指示、当該ソケットに前記バッファを割り当 てる指示、および、当該ソケットによる通信が可能力否かを検出する指示を前記代行 サーバに対し送信し、 前記受信部が、前記代行サーバによる通信可能力否かの検 出結果を受信した場合にぉ 、て、
前記返答部は、前記検出結果の受信に応じ前記検出結果を前記タスクに返答し、 前記更新部は、当該識別情報に対応する前記通信状態を前記割当済状態に戻す 請求項 8に記載の組込機器。
[10] 前記更新部は、指定されたポート番号をソケットに割り当てる制御要求を当該ソケッ トの識別情報に対応付けて受信したことに応じ、当該識別情報に対応付けて前記ポ ート番号を前記記憶部に記憶し、
前記返答部は、ポート番号の割当が成功した旨を前記タスクに返答し、 前記制御指示部は、前記通信デバイスが前記代行サーバと通信可能な状態にお いて、当該ソケットの識別情報に対応付けてポート番号が対応付けて記憶されている ことを条件に、更に当該ポート番号を前記代行サーバに対し送信する 請求項 9に記載の組込機器。
[11] 当該組込機器には、ソケット通信を実現するライブラリプログラムに代えて、前記更 新部、前記返答部、前記制御指示部、および、前記受信部として前記中央処理装置 を機能させるライブラリプログラム力 Sインストールされており、
前記タスクは、インストールされた当該ライブラリプログラムの APIを呼び出すことに より前記制御要求を前記更新部に送信し、
前記更新部は、 socketシステムコール、 bindシステムコール、 listenシステムコ一 ル、および、 closeシステムコールの少なくとも何れ力 1つの呼び出しを前記タスクから 受けたことを条件に、前記タスク力も前記ノン'ブロッキング制御要求を受けたと判断 し、 acceptシステムコ一ノレ、 selectシステムコ一ノレ、 recvシステムコ一ノレ、および、 se ndシステムコールの少なくとも何れか 1つの呼び出しを前記タスク力 受けたことを条 件に、前記タスク力も前記ノン'ブロッキング制御要求でない制御要求を受けたと判 断する
請求項 7に記載の組込機器。
[12] 組込機器による他の装置との通信の制御を代行する代行サーバであって、
前記組込機器から指定されたソケットの第 1識別情報と、当該代行サーバが前記他 の装置と通信するためのソケットの第 2識別情報とを対応付けて記憶する記憶部と、 新たにソケットを生成して前記第 1識別情報に対応付けて管理する指示を受信した ことに応じて、当該代行サーバと前記他の装置との間の通信に用いるソケットを生成 して第 2識別情報を取得するソケット生成部と、
受信した前記第 1識別情報と生成したソケットの前記第 2識別情報とを対応付けて 前記記憶部に記憶する識別情報管理部と
を備える代行サーバ。
[13] 前記ソケット生成部は、新たにソケットを生成して前記識別情報に対応付けて管理 する指示を受信した場合であっても、既に当該識別情報が前記第 1識別情報として 前記記憶部に記憶されて 、る場合には、新たにソケットを生成しな ヽ
請求項 12に記載の代行サーバ。
[14] ソケットを用いてデータを送受信する指示を当該ソケットの第 1識別情報に対応付 けて受信したことに応じ、前記記憶部において当該第 1識別情報に対応する第 2識 別情報により識別されるソケットを用いて前記他の装置とデータを送受信する送受信 部を更に備える 請求項 12に記載の代行サーバ。
[15] 通信の制御を代行する外部の代行サーバを介して他の装置と通信する組込機器 を制御する制御プログラムであって、
前記組込機器を、
前記代行サーバと通信可能な通信デバイスと、
前記他の装置との通信状態を記憶するための記憶部と、
中央処理装置により実行されるタスク力 前記他の装置との通信の制御要求を受け たことに応じ、前記通信デバイスと前記代行サーバとが通信可能でない状態におい て、前記制御要求に応じた制御を正常に行った後の状態に前記通信状態を更新す る更新部と、
前記制御要求に応じた前記通信状態の更新結果を前記タスクに返答する返答部と 前記通信デバイスが前記代行サーバと通信可能な状態にぉ 、て、前記代行サー バにおける前記他の装置との間の通信状態を前記記憶部に記憶された通信状態に 遷移させるための指示を、前記通信デバイスを用いて前記代行サーバに対し送信す る制御指示部と
して機能させる制御プログラム。
[16] 通信の制御を代行する外部の代行サーバを介して他の装置と通信する組込機器 を制御する方法であって、
前記組込機器は、
前記代行サーバと通信可能な通信デバイスと、
前記他の装置との通信状態を記憶するための記憶部と
を有し、
中央処理装置により実行されるタスク力 前記他の装置との通信の制御要求を受け たことに応じ、前記通信デバイスと前記代行サーバとが通信可能でない状態におい て、前記制御要求に応じた制御を正常に行った後の状態に前記通信状態を更新す るステップと、
前記制御要求に応じた前記通信状態の更新結果を前記タスクに返答するステップ と、
前記通信デバイスが前記代行サーバと通信可能な状態にぉ 、て、前記代行サー バにおける前記他の装置との間の通信状態を前記記憶部に記憶された通信状態に 遷移させるための指示を、前記通信デバイスを用いて前記代行サーバに対し送信す るステップと
を備える方法。
PCT/JP2007/057895 2006-04-13 2007-04-10 組込機器による外部との通信を代行サーバにより制御させる技術 WO2007123025A1 (ja)

Priority Applications (7)

Application Number Priority Date Filing Date Title
CN200780011378.XA CN101411165B (zh) 2006-04-13 2007-04-10 利用代理服务器控制嵌入式设备与外部的通信的方法和设备
BRPI0710748A BRPI0710748B1 (pt) 2006-04-13 2007-04-10 dispositivo integrado e método para controlar um dispositivo integrado
US12/296,791 US7996524B2 (en) 2006-04-13 2007-04-10 Controlling external communication of embedded device using proxy server
AT07741331T ATE531176T1 (de) 2006-04-13 2007-04-10 Technik zur steuerung der kommunikation einer installierten vorrichtung mit der aussenwelt mittels eines proxy-servers
EP07741331A EP2015190B1 (en) 2006-04-13 2007-04-10 Technique of controlling communication of installed apparatus with outside by means of proxy server
CA2642585A CA2642585C (en) 2006-04-13 2007-04-10 Technique of controlling external communication of embeded device using proxy server
JP2008512068A JP4965562B2 (ja) 2006-04-13 2007-04-10 組込機器による外部との通信を代行サーバにより制御させる技術

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2006111300 2006-04-13
JP2006-111300 2006-04-13

Publications (1)

Publication Number Publication Date
WO2007123025A1 true WO2007123025A1 (ja) 2007-11-01

Family

ID=38624931

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2007/057895 WO2007123025A1 (ja) 2006-04-13 2007-04-10 組込機器による外部との通信を代行サーバにより制御させる技術

Country Status (9)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103138965A (zh) * 2011-11-28 2013-06-05 中国电信股份有限公司 一种查询物联网设备状态的方法、装置和系统

Families Citing this family (5)

* 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
CN103327040A (zh) * 2012-03-21 2013-09-25 鸿富锦精密工业(深圳)有限公司 代理服务更新系统及方法
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

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0922391A (ja) 1995-07-05 1997-01-21 Matsushita Electric Ind Co Ltd クライアント/サーバシステム
JPH11225376A (ja) * 1998-02-06 1999-08-17 Ntt Chuo Personal Tsushinmo Kk 通信接続装置
JPH11275170A (ja) * 1998-03-20 1999-10-08 Fujitsu Ltd プロトコル変換システム
JP2002063088A (ja) 2000-07-07 2002-02-28 Internatl Business Mach Corp <Ibm> データ通信方法
JP2003046599A (ja) * 2001-07-31 2003-02-14 Anritsu Corp 測定システム
US20060009213A1 (en) 1998-10-09 2006-01-12 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3392302B2 (ja) * 1996-10-04 2003-03-31 株式会社日立製作所 情報処理装置、通信方法および記憶媒体
JP3608905B2 (ja) * 1997-05-29 2005-01-12 三菱電機株式会社 データ通信システム及びデータ通信方法
JPH11112609A (ja) * 1997-10-06 1999-04-23 Toshiba Corp 通信システムにおける通信障害回復方法ならびに同方法がプログラムされ記録される記録媒体
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
EP1563389A4 (en) 2001-08-01 2008-06-25 Actona Technologies Ltd VIRTUAL DATA DISTRIBUTION NETWORK
CN101159621B (zh) * 2001-12-05 2010-12-22 微软公司 移动式和嵌入式设备的配置和管理系统
JP4329358B2 (ja) 2003-02-24 2009-09-09 富士通株式会社 ストリーム配信方法、及びストリーム配信システム
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 (ja) * 2004-09-29 2006-05-18 Sony Corp 情報処理装置、通信処理方法、並びにコンピュータ・プログラム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0922391A (ja) 1995-07-05 1997-01-21 Matsushita Electric Ind Co Ltd クライアント/サーバシステム
JPH11225376A (ja) * 1998-02-06 1999-08-17 Ntt Chuo Personal Tsushinmo Kk 通信接続装置
JPH11275170A (ja) * 1998-03-20 1999-10-08 Fujitsu Ltd プロトコル変換システム
US20060009213A1 (en) 1998-10-09 2006-01-12 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
JP2002063088A (ja) 2000-07-07 2002-02-28 Internatl Business Mach Corp <Ibm> データ通信方法
JP2003046599A (ja) * 2001-07-31 2003-02-14 Anritsu Corp 測定システム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
TAKADA H.: "Kumikomi System ni Tekishita TCP/IP API", COMPUTER SYSTEM SYMPOSIUM RONBUNSHU, vol. 98, no. 15, 19 November 1998 (1998-11-19), pages 25 - 32 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103138965A (zh) * 2011-11-28 2013-06-05 中国电信股份有限公司 一种查询物联网设备状态的方法、装置和系统

Also Published As

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

Similar Documents

Publication Publication Date Title
US7793298B2 (en) Facilitating access to input/output resources via an I/O partition shared by multiple consumer partitions
KR100934336B1 (ko) 장치 리소스를 위한 실체-기반 분산 컴퓨팅
US9535745B2 (en) Migrating a virtual machine that owns a resource such as a hardware device
TWI239160B (en) Remote booting method and apparatus applied in WAN based on IP technique
US20100205249A1 (en) System and method for event detection and re-direction over a network using a presentation level protocol
US20100192214A1 (en) Information processing apparatus, information processing method, and recording medium including computer program
JP2008516309A (ja) プレゼンテーションレベルプロトコルを使用しネットワークを介するデータ同期化のためのシステムおよび方法
KR101856486B1 (ko) 컴퓨팅 디바이스에서 수행되는 오픈 시스템과 메인프레임 시스템 사이의 양방향 호출 방법
JP4965562B2 (ja) 組込機器による外部との通信を代行サーバにより制御させる技術
WO2019062722A1 (zh) 基于微服务架构的报文处理方法、装置和bras
JP5541292B2 (ja) 分散システム、通信手段選択方法および通信手段選択プログラム
US10223178B2 (en) Enabling WPD devices to be managed at the capability level
JP3884239B2 (ja) サーバ計算機
JP3998604B2 (ja) コンピュータ装置、エージェントの実行継続方法、アクセス制限保証方法、および、プログラム
CN118740615A (zh) 网络资源管理方法、装置、设备、存储介质以及产品
KR19980086588A (ko) Tcp/ip 소켓 애플리케이션을 이용한 시스템 자원 저감 툴
JP2005055961A (ja) タスク間通信プログラム及びタスク間通信方法
CN114780038A (zh) 一种虚拟机存储分配方法及相关组件
KR20180116743A (ko) 컴퓨팅 디바이스에서 수행되는 오픈 시스템과 메인프레임 시스템 사이의 양방향 호출 방법
KR19980086589A (ko) Tcp/ip 소켓 애플리케이션을 이용한 시스템 자원 저감 툴

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 07741331

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2642585

Country of ref document: CA

WWE Wipo information: entry into national phase

Ref document number: 200780011378.X

Country of ref document: CN

WWE Wipo information: entry into national phase

Ref document number: 12296791

Country of ref document: US

Ref document number: 2008512068

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 6104/CHENP/2008

Country of ref document: IN

WWE Wipo information: entry into national phase

Ref document number: 2007741331

Country of ref document: EP

ENP Entry into the national phase

Ref document number: PI0710748

Country of ref document: BR

Kind code of ref document: A2

Effective date: 20081013