Information processing device, virtual service distribution program, and communication method

JP2024039394A5Pending Publication Date: 2025-09-17帝都久利寿 +1
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2022143917
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2022-09-09
Publication Date
2025-09-17

AI Technical Summary

Technical Problem

Existing systems lack the ability to provide versatile and secure inter-process communication services, particularly in environments where inquiries via inter-process communication are not permitted.

Method used

An information processing device equipped with a communication program and a virtual service providing program that can execute services based on packet destination addresses, allowing for the execution of virtual services when the destination matches a specific network address, and responding with the service's execution results.

Benefits of technology

Enables the provision of various services in a highly versatile manner, enhancing security and flexibility in data processing environments.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

To provide a technique for providing various services with a high general use method.SOLUTION: An information processing device contains: a communication program that plays a role of at least a transport layer; and a virtual service distribution program that can refer to a packet containing data output toward a lower order layer from the communication program. The virtual service distribution program executes virtual services in accordance with a packet in the case where a destination address of the packet is matched to a specified network address that is previously set.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present disclosure relates to an information processing device, a virtual service providing program, and a communication method. [Background technology]

[0002] Generally, a computer executes a plurality of processes, and data exchange between such processes is realized by using, for example, inter-process communication (IPC).

[0003] Japanese Patent Laid-Open Publication No. 2006-186610 (Patent Document 1) discloses a configuration in which a communication board monitors another communication board through inter-process communication. [Prior art documents] [Patent documents]

[0004] [Patent Document 1] JP 2006-186610 A Summary of the Invention [Problem to be solved by the invention]

[0005] From the viewpoint of security, there are environments in which queries via inter-process communication are not permitted. The present disclosure provides a technique for providing various services in a highly versatile manner. [Means for solving the problem]

[0006] An information processing device according to an embodiment of the present disclosure includes a communication program responsible for at least the transport layer, and a virtual service providing program capable of referencing a packet including data output from the communication program to a lower layer. When a destination address of the packet matches a specific network address set in advance, the virtual service providing program executes a virtual service corresponding to the packet.

[0007] The virtual service providing program may be configured to respond with at least a part of the execution result of the virtual service as information.

[0008] The virtual service may include a process of transmitting data to an outside of the information processing device. The virtual service providing program may have multiple specific network addresses.

[0009] The virtual service providing program may have a plurality of interfaces for receiving requests for execution of a virtual service.

[0010] A virtual service may include a process for interacting with a user. A virtual service providing program according to another embodiment of the present disclosure is configured to be able to refer to a packet including data output from a communication program in charge of at least the transport layer to a lower layer. The virtual service providing program causes a computer to execute a step of determining whether or not a destination address of the packet matches a specific network address set in advance, and a step of executing a virtual service corresponding to the packet when the destination address of the packet matches the specific network address.

[0011] A communication method executed by a computer according to yet another embodiment of the present disclosure includes the steps of referencing a packet including data output from a communication program responsible for at least the transport layer to a lower layer, determining whether a destination address of the packet matches a specific network address that has been set in advance, and, if the destination address of the packet matches the specific network address, executing a virtual service corresponding to the packet. Effect of the Invention

[0012] According to the present disclosure, a technology can be provided that provides various services in a highly versatile manner. [Brief description of the drawings]

[0013] [Figure 1] It is a schematic diagram showing a functional configuration example of a device according to this embodiment. [Diagram 2] It is a flowchart showing an example of processing by a virtual service providing program of a device according to this embodiment. [Diagram 3] It is a schematic diagram showing a hardware configuration example of a device according to this embodiment. [Figure 4] It is a schematic diagram showing a processing example of a virtual service providing program of a device according to this embodiment. [Diagram 5] It is a schematic diagram showing another processing example of a virtual service providing program of a device according to this embodiment. [Figure 6] It is a schematic diagram showing still another processing example of a virtual service providing program of a device according to this embodiment. [Figure 7] It is a schematic diagram showing an example of virtual device setting of a virtual service providing program of a device according to this embodiment. [Figure 8] It is a schematic diagram showing still another processing example of a virtual service providing program of a device according to this embodiment. [Figure 9] It is a schematic diagram showing another functional configuration example of a device according to this embodiment.

Embodiments for Carrying Out the Invention

[0014] Embodiments according to the present disclosure will be described in detail with reference to the drawings. Note that the same or corresponding parts in the drawings are denoted by the same reference numerals and their descriptions will not be repeated.

[0015] <A. Terms> In this specification, the term "device" includes any information processing device capable of communication processing. Devices include, for example, (stationary and portable) personal computers, smartphones, tablets, wearable devices (such as smartwatches and AR glasses) worn on the user's body (such as arms and heads), smart home appliances, connected automobiles, control devices installed in factories, IoT devices, and the like.

[0016] In this specification, "network address" means identification information for identifying a device existing on a network, and is not limited to the commonly used IP (Internet Protocol) addresses (IPv4 and IPv6), and may be a unique address system (adopting an address length of any length).

[0017] In this specification, "program" means a group of computer-readable codes (stored in a medium) and also means the state of being executed by a processor. That is, the term "program" may include, in addition to the codes stored in the medium, data expanded in memory, and functions and processes realized by being executed by a processor. However, some or all of the functions and processes realized by executing the "program" by a processor may be realized by using a hardwired circuit such as an ASIC (Application Specific Integrated Circuit) or an FPGA (Field-Programmable Gate Array) as an alternative.

[0018] In this specification, "virtual service" includes any process executed within a device. At least a part of the processing result (primary information) by the "virtual service", or at least a part of the result obtained by performing some processing on the processing result (secondary information) may be responded to the source.

[0019] <B. Overview> First, an overview of a device 100 according to the present embodiment will be described.

[0020] Fig. 1 is a schematic diagram showing an example of a functional configuration of a device 100 according to the present embodiment. Fig. 1 shows a main part of a process in which an application executed by the device 100 (e.g., corresponding to an application layer (layer 7) of the OSI (Open Systems Interconnection) reference model) transmits and receives data.

[0021] 1, the device 100 includes a virtual service providing program 130, an upper layer communication program 140, and a lower layer communication program 150. The upper layer communication program 140 and the lower layer communication program 150 may be included as part of an OS (Operating System).

[0022] The upper layer communication program 140 is responsible for at least the transport layer (layer 4) of the OSI reference model. The upper layer communication program 140 may also be responsible for the network layer (layer 3) of the OSI reference model.

[0023] As an example, the upper layer communication program 140 may be a program in charge of socket communication. In this case, the upper layer communication program 140 is in charge of session management of TCP (Transmission Control Protocol) and UDP (User Datagram Protocol) that function as a transport layer, and of sending and receiving packets based on network addresses (e.g., IP addresses).

[0024] The upper layer communication program 140 may be implemented as a socket communication interface.

[0025] The lower layer communication program 150 is responsible for the data link layer (layer 2) of the OSI reference model. As an example, the lower layer communication program 150 may be implemented as a data link driver. The lower layer communication program 150 may be an Ethernet (registered trademark) interface. The lower layer communication program 150 controls a hardware interface of a physical layer (not shown).

[0026] Data output from the upper layer communication program 140 to a lower layer is made into a "packet" by the network layer (layer 3), and is therefore also referred to as a "packet" in the following description. That is, in this specification, a "packet" includes data output from the upper layer communication program 140 to a lower layer. However, depending on the implementation, the data may not be a complete packet, but even in such a case, it may be within the technical scope of the present invention. Also, the term "packet" includes one or more packets.

[0027] In a virtual environment provided on a hypervisor, the data link layer and the physical layer may be virtualized, and in such a case, the data link layer may not exist. Therefore, the technical scope of the present invention may also include a configuration in which the lower layer communication program 150 does not exist. However, even in such a virtual environment, packets may be generated internally.

[0028] In the following explanation, a configuration example in which the upper layer communication program 140 is also responsible for the network layer (third layer) will be mainly explained, but the virtual service providing program 130 or another communication program may be responsible for the network layer (third layer).

[0029] The virtual service providing program 130 is capable of at least referring to packets including data output (internally) from the upper layer communication program 140 to the lower layer. Note that the virtual service providing program 130 may or may not be able to refer to received data (received packets) transmitted or output from the lower layer to the upper layer communication program 140.

[0030] When the destination address of a packet transferred from the upper layer communication program 140 to the lower layer communication program 150 matches a specific preset network address, the virtual service providing program 130 executes a virtual service corresponding to the packet. When the destination address of a packet does not match a specific preset network address, the packet is transferred directly to the lower layer communication program 150.

[0031] Note that, while Figure 1 shows an example configuration in which the virtual service providing program 130 is placed on the path transferred from the upper layer communication program 140 to the lower layer communication program 150, a path may be provided for transferring a copy of a packet sent from the upper layer communication program 140 to the virtual service providing program 130, separate from the path transferred from the upper layer communication program 140 to the lower layer communication program 150.

[0032] For example, the upper layer communication program 140 responds to a packet having a specific network address as a destination address and executes a virtual service corresponding to the packet. If necessary, the upper layer communication program 140 responds to the source of the packet with the execution result of the virtual service (primary information and / or secondary information).

[0033] As an example, the upper layer communication program 140 generates and transmits a packet 161 in response to a request from an upper level such as an application. If the destination address of the packet 161 is a specific network address, the virtual service providing program 130 executes the virtual service, includes the execution result in a response packet 162, and transmits the response packet 162 to the upper layer communication program 140.

[0034] On the other hand, if the destination address of the packet 163 generated by the upper layer communication program 140 does not correspond to a specific network address, the packet 163 is transferred directly to the lower layer communication program 150 .

[0035] In this way, when the destination address of the packet to be transferred matches a specific network address set in advance, the upper-layer communication program 140 executes a virtual service corresponding to the packet.

[0036] <C. Processing Overview> Next, an overview of the processing executed by the device 100 according to the present embodiment will be described.

[0037] FIG. 2 is a flowchart showing an example of processing by the virtual service providing program 130 of the device 100 according to the present embodiment. Each step shown in FIG. 2 may be realized, for example, by a processor of the device 100 executing the virtual service providing program 130.

[0038] Referring to FIG. 2, when the device 100 receives a packet from above (YES in step S100), it determines whether the destination address of the received packet matches a specific network address set in advance (step S102).

[0039] If the destination address of the received packet matches the specific network address (YES in step S102), the device 100 executes a virtual service corresponding to the packet (step S104). Then, the processing ends.

[0040] If the destination address of the received packet does not match the specific network address (NO in step S102), the processing of step S104 is skipped.

[0041] <D. Hardware Configuration Example of Device 100> Next, a hardware configuration example of the device 100 according to the present embodiment will be described.

[0042] FIG. 3 is a schematic diagram showing a hardware configuration example of the device 100 according to the present embodiment. FIG. 3 shows, as an example, a hardware configuration example of the device 100 which is a personal computer.

[0043] Referring to FIG. 3, the device 100 includes, as a hardware configuration, one or more processors 102, a memory 104, a storage 106, a display 108, an input unit 110, and a communication unit 112.

[0044] The processor 102 is an arithmetic circuit that sequentially reads and executes computer-readable instructions. The processor 102 is composed of, for example, a central processing unit (CPU), a micro processing unit (MPU), a graphics processing unit (GPU), etc. The device 100 may have multiple processors 102, or a single processor 102 may have multiple cores.

[0045] The processor 102 may include not only a processor in the narrow sense, but also a hardwired circuit such as an ASIC in which a circuit for implementing processing is formed in advance, and an FPGA in which a configuration for implementing processing is realized by configuration. Furthermore, in this specification, the processor 102 may also include a SoC (System on Chip) in which various processing elements are integrated. Therefore, the processor 102 can also be called a processing circuitry.

[0046] The memory 104 is, for example, a volatile storage device such as a dynamic random access memory (DRAM) or a static random access memory (SRAM). The storage 106 is, for example, a non-volatile storage device such as a hard disk drive (HDD) or a solid state drive (SSD).

[0047] Various programs and various data are stored in the storage 106. The processor 102 loads designated programs from among the various programs stored in the storage 106 onto the memory 104 and executes them in sequence, thereby achieving various processes as described below.

[0048] As an example, the storage 106 stores an OS 120, one or more applications 122, and a virtual service providing program 130. The OS 120 is a program that provides an environment for executing various processes in the device 100. The application 122 is a program that is created arbitrarily depending on the purpose, and includes, for example, an application that provides a web browser. The virtual service providing program 130 is a program for realizing various processes as described below.

[0049] The display 108 presents the results of processing by the processor 102 to the outside. The display 108 may be, for example, an LCD (Liquid Crystal Display) or an organic EL (Electro-Luminescence) display. The display 108 may be a head-mounted display worn on the user's head, or a projector that projects an image onto a screen. The display 108 may be an indicator disposed at any position on the housing of the device 100.

[0050] The input unit 110 accepts user operations and the like for the device 100. The input unit 110 may be, for example, a keyboard, a mouse, a touch panel disposed on the display 108, a switch disposed anywhere on the housing of the device 100, or the like.

[0051] The communication unit 112 includes hardware for communicating with other devices 100. The communication unit 112 is a network interface for connecting the device 100 to a network. For example, the communication unit 112 includes wired connection terminals such as an Ethernet (registered trademark) port, a USB (Universal Serial Bus) port, a serial port such as IEEE 1394, and a legacy parallel port. Alternatively, the communication unit 112 may include a processing circuit and an antenna for wireless communication with devices, routers, mobile base stations, etc. The wireless communication supported by the communication unit 112 may be, for example, any of Wi-Fi (registered trademark), Bluetooth (registered trademark), ZigBee (registered trademark), LPWA (Low Power Wide Area), GSM (registered trademark), W-CDMA, CDMA200, LTE (Long Term Evolution), and the fifth-generation mobile communication system (5G).

[0052] The device 100 may further have a component for reading various programs and / or various data from a non-transitory medium storing various programs (computer-readable instructions) and / or various data. The medium may be, for example, an optical medium such as a DVD (Digital Versatile Disc) or a semiconductor medium such as a USB memory.

[0053] Rather than installing various programs and / or various data into the device 100 via the medium, it may be possible to install the necessary programs and data into the device 100 from a distribution server on the network.

[0054] The configuration for realizing the functions and processes according to this embodiment is not limited to the hardware configuration example shown in FIG. 3, and any hardware configuration according to the era in which it is realized can be adopted.

[0055] <E. Virtual service provision program 130> Next, an example of a virtual service provided by the virtual service providing program 130 of the device 100 according to the present embodiment will be described.

[0056] (e1: An example of a virtual service) The virtual service providing program 130 of the device 100 according to this embodiment can provide one or more virtual services. The contents of the virtual service are not limited in any way, but examples of the virtual service include a management service for providing and setting information related to communication processing, and a proxy service for executing various processes in response to a request from the application 122, etc.

[0057] Some examples of virtual services are described below. (e2: Network address query) For example, the application 122 may need the network address of its own device when communicating with another device 100. In such a case, the application 122 may inquire of the virtual service providing program 130 about the network address of its own device. That is, as an example of a management service, the application 122 may respond with the network address of its own device.

[0058] FIG. 4 is a schematic diagram showing an example of processing of the virtual service providing program 130 of the device 100 according to the present embodiment.

[0059] 4, the virtual service providing program 130 presets a specific network address for providing a virtual service that responds with the network address of its own device. In the example shown in FIG. 4, the specific network address is assumed to be "fc00::1".

[0060] When it is desired to obtain the network address of its own device, the application 122 requests the upper layer communication program 140 to generate and transmit a packet 161 having a destination address of "fc00::1". When the virtual service providing program 130 determines that the destination address of the generated packet 161 matches a specific network address set in advance, it executes a virtual service corresponding to the network address "fc00::1" (in this example, providing the network address of its own device). Then, the virtual service providing program 130 responds to the application 122 via the upper layer communication program 140 with a response packet 162 including the network address of its own device obtained by executing the virtual service.

[0061] On the other hand, when it is desired to transmit data to another device 100, the application 122 requests the upper layer communication program 140 to generate and transmit a packet 163 whose destination address is the network address (for example, "fc01:ef49:405f:e763:4a14:d899:8ca4:b65b") of the other destination device 100. If the virtual service providing program 130 determines that the destination address of the generated packet 163 does not match a specific network address that has been set in advance, it allows the packet 163 to pass through as is.

[0062] In this way, the virtual service providing program 130 provides various virtual services by performing a kind of filtering on packets having a specific network address set as the destination address. Also, when viewed from a higher level such as the application 122, the virtual service providing program 130 appears as a virtual device having a specific network address. Note that the virtual service providing program 130 can also provide one or more virtual devices.

[0063] Therefore, the virtual service providing program 130 may correspond to the network layer (layer 3) of the OSI reference model. The virtual service providing program 130 functions as a virtual device having a specific network address (virtual network address), and the application 122 can exchange various information with the virtual service providing program 130 as if communicating with another device 100.

[0064] (e3: Inquiry regarding availability of virtual service providing program 130) For example, the application 122 may need to check whether or not the virtual service providing program 130 is available in the current execution environment (i.e., its own device). In such a case, the application 122 may be configured to inquire of the virtual service providing program 130 whether or not the virtual service providing program 130 is available in its own device. That is, as an example of a management service, the application 122 may be configured to respond with whether or not the virtual service providing program 130 is available.

[0065] In this case, as in FIG. 4, the application 122 requests the upper layer communication program 140 to generate and transmit a packet 161 whose destination address is a specific network address (for example, "fc00::1"). When the virtual service providing program 130 determines that the destination address of the generated packet 161 matches a specific network address set in advance, it executes a virtual service corresponding to the network address "fc00::1" (for example, notifying that the virtual service providing program 130 is available). In this case, the virtual service providing program 130 responds to the application 122 via the upper layer communication program 140 with a response packet 162 in response to the packet 161. If the virtual service providing program 130 exists, the virtual service providing program 130 is usually available, so it is sufficient to simply transmit the response packet 162 without performing any special processing.

[0066] On the other hand, if the virtual service providing program 130 does not exist, the response packet 162 cannot be sent, and the application 122 can therefore determine that the virtual service providing program 130 is not available.

[0067] As described above, from the application 122's perspective, it is possible to confirm in advance whether or not the virtual service providing program 130 can be used, which makes it easier to implement the start conditions for communication processing and the like.

[0068] (e4: Get / search for network addresses) For example, when communicating with multiple devices 100 using network addresses, it may be necessary to obtain in advance network addresses that can be selected as destinations. For this reason, the virtual service providing program 130 may provide a list of network addresses that are known to be selectable as destinations. Alternatively, the virtual service providing program 130 may respond with a network address that matches a specified search condition from among the network addresses obtained in advance. In other words, as an example of a management service, it may be possible to perform the acquisition and search of a list of network addresses.

[0069] For example, application 122 requests upper layer communication program 140 to generate and transmit packet 161 whose destination address is a specific network address (e.g., "fc00::1"). At this time, packet 161 may include a command for acquiring a list of network addresses, or may include a command for searching for a network address that matches a search condition from among the acquired network addresses.

[0070] Fig. 5 is a schematic diagram showing another processing example of the virtual service providing program 130 of the device 100 according to the present embodiment. Referring to Fig. 5, when the virtual service providing program 130 determines that the destination address of the generated packet 161 matches a specific network address set in advance, it executes a virtual service corresponding to the network address "fc00::1" (in this example, acquisition and search of a list of network addresses).

[0071] In this case, the virtual service providing program 130 has a search engine and executes the specified acquisition or search process as a virtual service in accordance with the command included in the packet 161. Then, the virtual service providing program 130 transmits a response packet 162 including a list of network addresses obtained by executing the virtual service.

[0072] The application 122 can determine the destination device 100 based on the list of network addresses from the virtual service providing program 130 .

[0073] (e5: Management services) The virtual service providing program 130 has various settings, and there is a need to be able to check and change these settings from the application 122, etc. The management service may include a service for checking and changing the settings of the virtual service providing program 130 from the application 122, etc.

[0074] Management services may be provided via a web interface that allows a user to interactively review and change settings via application 122 (e.g., a web browser).

[0075] Furthermore, various pieces of information held by the virtual service providing program 130 may also be made available for confirmation, modification, and the like via the application 122 .

[0076] (e6: Sending email) For example, when sending an e-mail from the application 122 to an e-mail address, it is often necessary to request sending of the e-mail from an SMTP (Simple Mail Transfer Protocol) server separate from the device 100. The virtual service providing program 130 may be configured to send such e-mail. That is, as an example of a proxy service, the virtual service providing program 130 may be configured to send e-mail on behalf of the device.

[0077] Fig. 6 is a schematic diagram showing yet another processing example of the virtual service providing program 130 of the device 100 according to the present embodiment. Referring to Fig. 6, when the virtual service providing program 130 determines that the destination address of the generated packet 161 matches a specific network address set in advance, it executes a virtual service (sending an e-mail in this example) corresponding to the network address "fc00::3".

[0078] In this case, the virtual service providing program 130 is configured to function as a kind of SMTP server, and sends an email 164 to a specified email address according to the data contained in the packet 161 .

[0079] The virtual service providing program 130 may send a packet 163 including a transmission log of an e-mail 164 or the like to the sender of the packet 161 .

[0080] The proxy service is not limited to sending e-mail, but includes any service such as data transfer by FTP (File Transfer Service), sending SMS (Short Message Service), proxy access to any network service, etc. In this way, the proxy service may include a process of sending data outside the device 100.

[0081] The virtual service providing program 130 may be able to use a lower layer communication program 150 (not shown) so as to be able to send e-mail.

[0082] (e7:Interface) As described above, the virtual service providing program 130 can provide a plurality of virtual services. Here, a plurality of interfaces for receiving a request for execution of a virtual service may be prepared. That is, the virtual service providing program 130 may have a plurality of interfaces for receiving a request for execution of a virtual service.

[0083] FIG. 7 is a schematic diagram showing an example of the virtual device setting 172 of the virtual service providing program 130 of the device 100 according to the present embodiment.

[0084] 7, the virtual device setting 172 includes, for example, settings of an interface for using a virtual service and a corresponding network address. In the example shown in FIG. 7, a management interface, a web-based interface, and a proxy interface are provided.

[0085] More specifically, in the example shown in FIG. 7, when the virtual service providing program 130 receives a packet in which the network address "fc00::1" is set as the destination address, it executes a management service based on the received packet.

[0086] Furthermore, when the virtual service providing program 130 receives a packet with the network address "fc00::2" set as the destination address, it operates as a kind of web server. The virtual service providing program 130 executes management services and proxy services according to the specified URL, command, etc.

[0087] Furthermore, when the virtual service providing program 130 receives a packet in which the network address "fc00::3" is set as the destination address, it executes a proxy service.

[0088] In this way, the virtual service providing program 130 can prepare a plurality of network addresses for providing a virtual service. In this case, the virtual service providing program 130 has a plurality of specific network addresses for executing a service based on a received packet.

[0089] The interface for requesting execution of a virtual service from the application 122 or the like may be designed in any manner, without being limited to the example of the interface setting shown in FIG.

[0090] The above-mentioned management interface and proxy interface may support, for example, a remote procedure call (RPC). In this case, a packet having a specific network address as its destination address may contain a command for calling a subroutine or procedure prepared in the virtual service providing program 130. The virtual service providing program 130 may also respond with the result of executing a process according to the command contained in the packet.

[0091] For example, a packet having a specific network address as its destination address may include a subroutine or procedure name for obtaining the network address of the device itself. For example, to call a subroutine or procedure called "Whoami," application 122 may specify "fc00::1 / / Whoami."

[0092] To realize the above-mentioned web interface, the virtual service providing program 130 may have httpd (HyperText Transfer Protocol Daemon). In this case, a packet having a specific network address as a destination address may be generated and transmitted according to HTTP (Hypertext Transfer Protocol), and the virtual service providing program 130 may respond according to HTTP.

[0093] For example, if the script for acquiring necessary information from the virtual service providing program 130 is "GetAddress.js", then the application 122 may specify a URL such as "https: / / fc00::2 / GetAddress.js".

[0094] (e8:User interaction) The virtual service providing program 130 not only executes the requested virtual service, but also can perform user interaction as part of the virtual service.

[0095] Fig. 8 is a schematic diagram showing yet another processing example of the virtual service providing program 130 of the device 100 according to the present embodiment. Referring to Fig. 8, the virtual service providing program 130 receives a packet 161 whose destination address is set to a specific network address, and transmits a command 166 for providing a user interface screen 190 when executing a virtual service corresponding to the received packet 161.

[0096] The command 166 includes information for providing a user interface screen 190. The command 166 may be sent, for example, to the OS or to the application 122. Any command 166 for providing a user interface screen 190 may be generated depending on the program execution environment of the device 100.

[0097] The virtual service providing program 130 may be implemented in any manner to provide the user interface screen 190. For example, an API (Application Programming Interface) provided by the OS may be used, or the virtual service providing program 130 may directly generate the user interface screen 190.

[0098] The virtual service providing program 130 acquires a command 168 input by the user operating a user interface screen 190. The user interface screen 190 shown in Fig. 8 is configured to request consent from the user. If the user consents, the virtual service providing program 130 continues the virtual service. For example, the virtual service providing program 130 may continue the virtual service and access 167 the specified destination.

[0099] On the other hand, if the user does not consent, the virtual service providing program 130 may discontinue the virtual service.

[0100] In this way, the virtual service providing program 130 can provide a virtual service that interacts with the user. That is, the virtual service may include a process for interacting with the user. The frequency and timing of the interaction with the user can be designed as desired.

[0101] For convenience of explanation, Fig. 8 shows an example of a dialogue with a user using a graphical user interface, but a character user interface may be used to realize the dialogue with the user. In other words, any user interface may be used for the dialogue with the user.

[0102] (e9: Event execution of virtual service provision program 130) In the processing example shown in FIG. 8 above, in response to a request from an application 122 or the like, the virtual service providing program 130 provides a user interface screen 190, but the virtual service providing program 130 may also be configured to provide the user interface screen 190 when any condition is satisfied.

[0103] For example, when some event occurs, the virtual service providing program 130 may provide the user interface screen 190. The event includes, for example, the occurrence of a situation in which a process that requires user approval must be executed, the occurrence of a situation in which some kind of notification must be given to the user, and the like.

[0104] In this way, the virtual service providing program 130 can provide its own virtual service independently of the application 122 and the like.

[0105] (e10: Application implementation) In the device 100, any application 122 can use the virtual service providing program 130. The application 122 may be generated by building any project, or may be source code (for example, written in JavaScript (registered trademark)) executed on a web browser.

[0106] As described above, the virtual service providing program 130 functions as a virtual device having a specific network address. Therefore, the application 122 only needs to be implemented so that the specific network address can be specified as a destination, which reduces the constraints on implementation.

[0107] (e11:Other) The functions and processes provided by the above-mentioned virtual service providing program 130 can be combined in any manner.

[0108] 9 is a schematic diagram showing another example of the functional configuration of the device 100 according to the present embodiment. Referring to FIG. 9, the device 100 may include a communication processing program 160 in parallel with the virtual service providing program 130.

[0109] The communication processing program 160 may be, for example, a program that executes a process such as obtaining an authenticated network address.

[0110] 9, a packet generated and transmitted by the upper layer communication program 140 is forwarded to both the virtual service providing program 130 and the communication processing program 160. The virtual service providing program 130 processes only packets whose destination address matches a specific network address, and the communication processing program 160 executes communication processing according to the destination of the packet. If the specific network address is virtual, the packet cannot be forwarded in the real network, and therefore no actual communication processing is performed.

[0111] For example, when the virtual service providing program 130 needs to execute a process to send data outside the device 100, information may be exchanged between the virtual service providing program 130 and the communication processing program 160 so that the processing can be entrusted to the communication processing program 160.

[0112] Furthermore, the virtual service providing program 130 may be able to execute its own communication processing. In this case, the virtual service providing program 130 may be able to use the lower layer communication program 150.

[0113] Furthermore, the virtual service providing program 130 and the communication processing program 160 may be integrated. In this case, the processing of either the virtual service providing program 130 or the communication processing program 160 is selected according to the destination of a received packet.

[0114] Furthermore, the virtual service providing program 130 may be implemented as a part of any program instead of the communication processing program 160.

[0115] <F. Advantages> According to the network system according to this embodiment, for a packet designated with a specific network address as the destination, information corresponding to the request included in the packet is provided, so that the processing can be enriched using the information.

[0116] The embodiments disclosed this time should be considered illustrative in all respects and not restrictive. The scope of the present invention is shown not by the above description but by the claims, and it is intended that all modifications within the meaning and scope equivalent to the claims are included.

Description of Reference Numerals

[0117] 100 Device, 102 Processor, 104 Memory, 106 Storage, 108 Display, 110 Input Unit, 112 Communication Unit, 120 OS, 122 Application, 130 Virtual Service Providing Program, 140 Upper Layer Communication Program, 150 Lower Layer Communication Program, 160 Communication Processing Program, 161, 163 Packet, 162 Response Packet, 164 E-mail, 166 Command, 167 Access, 168 Instruction, 172 Virtual Device Setting, 190 User Interface Screen.

Claims

1. a communication program responsible for at least the transport layer; a virtual service providing program capable of referencing a packet including data output from the communication program to a lower layer, The virtual service providing program determines whether the destination address of the packet matches a predetermined specific network address, and if the destination address of the packet matches the specific network address, executes a virtual service corresponding to the packet.

2. The information processing apparatus according to claim 1 , wherein the virtual service providing program responds with at least a part of the execution result of the virtual service as information.

3. The information processing device according to claim 1 , wherein the virtual service includes a process for transmitting data to an external device of the information processing device.

4. The information processing apparatus according to claim 1 , wherein the virtual service providing program has a plurality of the specific network addresses.

5. 4. The information processing apparatus according to claim 1, wherein the virtual service providing program has a plurality of interfaces for receiving requests for execution of the virtual service.

6. 4. The information processing device according to claim 1, wherein the virtual service includes a process for interacting with a user.

7. A virtual service delivery program, comprising: It is configured to be able to refer to packets containing data output from a communication program in charge of at least the transport layer to a lower layer, The virtual service providing program causes the computer to: determining whether the destination address of the packet matches a predetermined specific network address; and if the destination address of the packet matches the specific network address, executing a virtual service corresponding to the packet.

8. 1. A computer-implemented communication method comprising: At layers below the transport layer, a step of referring to a packet including data output from a communication program in charge of at least the transport layer to a lower layer; determining whether the destination address of the packet matches a predetermined specific network address; and executing a virtual service corresponding to the packet if the destination address of the packet matches the specific network address.