WO2007123025A1 - 組込機器による外部との通信を代行サーバにより制御させる技術 - Google Patents
組込機器による外部との通信を代行サーバにより制御させる技術 Download PDFInfo
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/24—Arrangements for testing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/59—Providing operational support to end devices by off-loading in the network or by emulation, e.g. when they are unavailable
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
- H04L67/125—Protocols 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W8/00—Network data management
- H04W8/22—Processing or transfer of terminal data, e.g. status or physical capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W88/00—Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
- H04W88/02—Terminal devices
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W88/00—Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
- H04W88/18—Service support devices; Network management devices
- H04W88/182—Network 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
Claims
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103138965A (zh) * | 2011-11-28 | 2013-06-05 | 中国电信股份有限公司 | 一种查询物联网设备状态的方法、装置和系统 |
Families Citing this family (5)
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)
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)
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 | 情報処理装置、通信処理方法、並びにコンピュータ・プログラム |
-
2007
- 2007-04-10 CN CN200780011378.XA patent/CN101411165B/zh not_active Expired - Fee Related
- 2007-04-10 JP JP2008512068A patent/JP4965562B2/ja not_active Expired - Fee Related
- 2007-04-10 EP EP07741331A patent/EP2015190B1/en not_active Not-in-force
- 2007-04-10 WO PCT/JP2007/057895 patent/WO2007123025A1/ja active Application Filing
- 2007-04-10 US US12/296,791 patent/US7996524B2/en not_active Expired - Fee Related
- 2007-04-10 BR BRPI0710748A patent/BRPI0710748B1/pt active IP Right Grant
- 2007-04-10 CA CA2642585A patent/CA2642585C/en active Active
- 2007-04-10 AT AT07741331T patent/ATE531176T1/de not_active IP Right Cessation
- 2007-04-10 TW TW096112525A patent/TWI418178B/zh not_active IP Right Cessation
Patent Citations (6)
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)
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)
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 |