Information processing apparatus
By connecting multiple substrates in an edge device for communication-enabled task allocation, the limitations of conventional edge devices are overcome, enhancing convenience and versatility in distributed data processing.
Patent Information
- Application Number
- JP2023150494
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-09-15
- Publication Date
- 2025-03-28
- Estimated Expiration
- 2043-09-15
AI Technical Summary
Conventional edge devices have limitations in adding new substrates for processing, such as a PC, which restricts their versatility and convenience in distributed data processing.
The information processing device connects multiple substrates in a communication-enabled configuration, allowing one substrate to accept processing requests and allocate tasks to other substrates, with results outputted to the assigned substrate.
This configuration enhances the convenience and versatility of edge devices by enabling easy addition of new substrates and efficient processing allocation, improving overall performance in distributed data processing.
Smart Images

Figure 2025043154000001_ABST
Abstract
Description
[Technical field]
[0001] An embodiment of the present invention relates to an information processing device. [Background technology]
[0002] Traditionally, companies that operate multiple stores transmit data collected at each store to a server (e.g., a cloud server) that oversees the multiple stores, and centrally analyzes and processes the data on that server.
[0003] In recent years, in order to achieve distributed data processing and reduce the amount of data transmitted, information processing devices called edge gateways or edge servers (hereinafter also referred to as edge devices) have been installed in stores, and data processing and analysis are being performed on the edge devices.
[0004] Incidentally, some of the above-mentioned edge devices are equipped with multiple boards for the purpose of executing multiple processes in parallel, etc. In such edge devices, each board can execute a different process.
[0005] However, in conventional edge devices, each board is inserted into a slot in a main board such as a motherboard and operates under the control of the main board, so there are limitations on the boards that can be used. For example, in conventional edge devices, it is not easy to add boards such as a PC (Personal Computer) that was operating in the existing system, so there is room for improvement in terms of convenience. Summary of the Invention [Problem to be solved by the invention]
[0006] The problem to be solved by the present invention is to improve the convenience of an information processing apparatus that performs processing using a plurality of substrates. [Means for solving the problem]
[0007] An information processing device according to an embodiment is an information processing device having a plurality of boards, the plurality of boards being connected in a connection form that allows communication with each other, and one of the plurality of boards is equipped with a reception unit that receives a processing request to be executed from an external device, an allocation unit that allocates the processing specified in the processing request to one of the plurality of boards, and an output unit that outputs the processing result processed on the assigned board. [Brief description of the drawings]
[0008] [Figure 1] FIG. 1 is a diagram illustrating an example of a configuration of a store system according to an embodiment. [Diagram 2] FIG. 2 is a diagram illustrating an example of a hardware configuration of an edge device according to the embodiment. [Diagram 3] FIG. 3 is a diagram illustrating an example of a hardware configuration of a board included in the edge device of the embodiment. [Figure 4] FIG. 4 is a diagram illustrating an example of a functional configuration of a board included in the edge device of the embodiment. [Diagram 5] FIG. 5 is a diagram showing an example of a selection screen according to the embodiment. [Figure 6] FIG. 6 is a sequence diagram showing an example of a process performed between the master substrate and the slave substrate of the embodiment. [Figure 7] FIG. 7 is a flowchart illustrating an example of a configuration change detection process executed by the master board of the embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0009] Hereinafter, an information processing device according to the present embodiment will be described in detail with reference to the accompanying drawings. In the following embodiment, an edge device used in a store will be described as an example of the information processing device. Note that the invention is not limited to this application example.
[0010] Fig. 1 is a diagram showing an example of the configuration of a store system 1 according to an embodiment. As shown in Fig. 1, the store system 1 includes a POS terminal 2, an edge device 3, and a server 4. The POS terminal 2 and the edge device 3 are communicatively connected via a network Na. The edge device 3 is communicatively connected to a server 4 of a network Nb via a communication device 5, such as a router, connected to the network Na.
[0011] Here, the network Na is, for example, a network such as a LAN (local area network) provided in a store, and the network Nb is, for example, a network such as the Internet, a VPN (virtual private network), a public communication network, or a mobile communication network.
[0012] The POS terminal 2 is an example of a product sales data processing device installed in a store. One or more POS terminals 2 are installed in a store, and execute data processing related to commercial transactions of products purchased by customers.
[0013] The edge device 3 is an example of an information processing device. The edge device 3 receives a processing request from the POS terminal 2 or the like connected to the network Na, and executes various processes (information processing) instructed by the processing request. Note that the processing request includes processing content instructing the processing method, etc., in addition to the data to be processed.
[0014] The server 4 is a server device that manages multiple stores. The server 4 is provided in the headquarters of a company that operates the stores, and is communicatively connected to the edge device 3 of each store. The server 4 may be realized by a single device, or may be a cloud server (or a cloud system) realized by multiple devices connected to a network.
[0015] Next, a description will be given of an example of the configuration of the above-mentioned edge device 3. First, a description will be given of the hardware configuration of the edge device 3. FIG.
[0016] 2, the edge device 3 includes a plurality of boards 31. Each of the boards 31 includes a computer configuration such as a CPU and a memory, and can operate independently. Each of the boards 31 includes a communication interface that complies with a general-purpose interface standard such as a Universal Serial Bus (USB) connector or a LAN connector, and is connected to each other so as to be able to communicate with each other via the communication interface.
[0017] In this manner, the edge device 3 of this embodiment can be formed by connecting a plurality of boards 31 with a general-purpose communication interface. Therefore, since the edge device 3 can be formed using various boards 31, versatility can be improved. For example, since a board such as a PC (Personal Computer) that was operating in an existing system can be added to the edge device 3, convenience can be improved.
[0018] Although Figure 2 shows an example in which the boards 31 are connected in a daisy chain manner (connected in a daisy chain), this is not limited to this, and the boards 31 may be connected in a bus or star type connection form (network topology) via a switching hub, USB hub, etc.
[0019] At least one of the multiple boards 31 is connected to the network Na via a connection interface. In this embodiment, it is assumed that a master board 31, which will be described later, is connected to the network Na.
[0020] At least one of the multiple boards 31 has a display interface such as HDMI (High-Definition Multimedia Interface, registered trademark) and an input interface to which an input device such as a keyboard can be connected, and is connected to a display device 32 and an input device 33. In this embodiment, the display device 32 and the input device 33 are connected to a master board 31, which will be described later.
[0021] Next, a description will be given of an example of a hardware configuration of the board 31. Fig. 3 is a diagram showing an example of a hardware configuration of the board 31 included in the edge device 3. As shown in Fig. 3, the board 31 includes a CPU (Central Processing Unit) 311, a ROM (Read Only Memory) 312, a RAM (Random Access Memory) 313, a storage unit 314, a communication unit 315, a connection unit 316, and the like.
[0022] The CPU 311 is an example of a processor. The ROM 312 stores various programs. The RAM 313 is a workspace in which programs and various data are expanded.
[0023] The CPU 311, the ROM 312, and the RAM 313 are connected via a bus or the like to constitute a computer-configured control unit 300. In the control unit 300, the CPU 311 operates in accordance with a program stored in the ROM 312 or the storage unit 314 and loaded in the RAM 313 to execute various types of processing.
[0024] The storage unit 314 is an auxiliary storage device such as a hard disk drive (HDD) or a flash memory. The storage unit 314 stores possible programs and setting information in addition to basic software such as an operating system (OS). For example, the storage unit 314 stores programs and setting information for linking with other boards 31. The storage unit 314 also stores programs and setting information related to processing executed on its own board 31.
[0025] The communication unit 315 controls communication via the communication interface. For example, the communication unit 315 controls communication with other boards 31. The communication unit 315 also controls communication with external devices such as the server 4.
[0026] The connection unit 316 controls input and output of various information via the display interface and the input interface. For example, the connection unit 316 outputs information for display to the display device 32 connected to the display interface. For example, the connection unit 316 accepts input of operation information indicating the operation content from the input device 33 connected to the input interface.
[0027] The specifications and configurations of the multiple boards 31 may be the same or different. For example, some of the boards 31 may be equipped with a dedicated circuit such as an ASIC (Application Specific Integrated Circuit) or a hardware configuration such as an accelerator that is not equipped on the other boards 31. Furthermore, the OS installed on some of the boards 31 may be of a different type or version from the OS installed on the other boards 31.
[0028] Next, a functional configuration of the board 31 will be described. Fig. 4 is a diagram showing an example of a functional configuration of the board 31 included in the edge device 3. In Fig. 4, the functional configuration of the master board 31 (hereinafter also referred to as the master board) and the functional configuration of the slave board 31 (hereinafter also referred to as the slave board) will be described separately.
[0029] Here, the master board means one board 31 among the multiple boards 31 that is set as a master machine, and manages and controls the other boards 31. The master machine may be set by the user or may be configured to be set automatically. In the latter case, for example, a board 31 to which a display device 32 or an input device 33 is connected may be set as the master machine, or may be configured to be set randomly. Also, a slave board means another board other than the master board, and executes processing under the control of the master board. Any board 31 is capable of operating as both a master board and a slave board.
[0030] As shown in FIG. 4, the master board comprises a board management section 301, a processing allocation section 302, a master board setting section 303, a communication control section 304, and a display control section 305 as functional components.
[0031] The functional configuration of the master board is a software configuration that is realized by the processor of the board 31 operating according to a program stored in a ROM or storage unit, but is not limited to this.
[0032] The board management unit 301 is an example of an acquisition unit. The board management unit 301 acquires specification information indicating the specifications of each slave board from the slave board, and stores and manages it in the storage unit 314. For example, the board management unit 301 acquires specification information indicating the specifications and features of hardware resources and software resources from each slave board, and stores and manages it for each slave board. Note that the board management unit 301 may be configured to acquire and manage specification information not only for slave boards, but also for its own board 31 (master board) in a similar manner.
[0033] It should be noted that there is no particular restriction on the timing at which the board management unit 301 acquires the specification information. For example, the board management unit 301 may be configured to acquire the specification information from each of the boards 31 when the edge device 3 is started up, or may be configured to acquire the specification information at predetermined time intervals (every hour, etc.). The board management unit 301 may also be configured to acquire the specification information from each of the boards 31 when it detects that the configuration of the boards 31 has been changed based on communication between the boards 31. Specifically, the board management unit 301 acquires the specification information from each of the boards 31 when a board 31 is added or removed, or replaced with another board 31, etc.
[0034] The process allocation unit 302 is an example of a receiving unit, an allocation unit, and an output unit. The process allocation unit 302 receives a process request from an external device such as the POS terminal 2, and performs a process of allocating the received process request to each board 31. Specifically, the process allocation unit 302 allocates the process to the board 31 based on an allocation table that associates the process content requested in the process request with the board 31 that executes the process of the process content.
[0035] Here, the requested processing content is not particularly limited, and may be, for example, a sales aggregation process based on one day's worth of transaction data, a demand forecast process that analyzes product purchasing trends and purchase quantities, etc. Also, it may be an image analysis process of a surveillance camera that captures images inside a store, or a process related to the creation of a machine learning model for performing image analysis. Also, the allocation table may be preset, or may be set automatically or manually.
[0036] When the allocation table is automatically set, for example, the processing allocation unit 302 may allocate processing to be executed by each board 31 based on the specification information managed by the board management unit 301. Specifically, the processing allocation unit 302 allocates processing content suitable for processing by each board 31 based on the processing capacity of each board 31 and the presence or absence of dedicated circuits such as ASICs and additional functions such as accelerators, which are indicated in the specification information.
[0037] In this case, the processing content requested by the external device may include an identifier indicating the type of processing as well as conditions related to the specifications of the board 31 suitable for executing the processing (hereinafter also referred to as specification conditions), thereby enabling efficient automatic setting of the allocation table. For example, the board management unit 301 compares the specification conditions included in the processing request with the specifications of each board 31 indicated in the specification information, and sets an allocation table in which the identifier of the processing request is associated with the board 31 that satisfies the specification conditions of the processing request.
[0038] Furthermore, when the allocation table is set manually, the processing allocation unit 302 may cooperate with the display control unit 305, which will be described later, to cause the display device 32 to display a screen for assisting in setting the allocation table. For example, the processing allocation unit 302 may display a screen showing the specifications of each board 31 and the processing content that can be executed by each board 31, based on the specification information managed by the board management unit 301, on the display device 32. This allows the operator who manually sets the allocation table to create the allocation table while looking at the screen displayed on the display device 32, and therefore the processing allocation unit 302 can assist in the creation of the allocation table.
[0039] The processing allocation unit 302 may be configured to dynamically determine the board 31 that is to handle a processing request in response to a processing request from an external device without relying on an allocation table. In this case, for example, by transmitting the processing request including specification conditions, the processing allocation unit 302 allocates the processing of the processing request to a board 31 that satisfies the specification conditions.
[0040] Furthermore, the processing allocation unit 302 allocates a process requested by an external device to the board 31, and when the board 31 executes the process, it acquires the processing result from the allocated board 31. The processing allocation unit 302 then returns the processing result to the external device that requested the process. Note that the processing result processed by the board 31 is not limited to being returned to the external device that requested the process, and may be configured to be transmitted to the upper server 4.
[0041] The master substrate setting unit 303 is a functional unit for setting the substrate 31 to be the master substrate. Specifically, the master substrate setting unit 303 cooperates with the display control unit 305 to cause the display device 32 to display a screen on which the substrate 31 to be the master substrate can be selected.
[0042] As an example, the master board setting unit 303 displays a selection screen that displays a list of each of the boards 31 in a selectable state. Furthermore, the master board setting unit 303 may display, on the selection screen, the specifications of each board 31 and the process contents that can be executed by each board 31, based on the specification information managed by the board management unit 301.
[0043] Fig. 5 is a diagram showing an example of a selection screen for a master board. As shown in Fig. 5, board images Ga representing each of the boards 31 are displayed in an identifiable state on the selection screen G. In Fig. 5, identifiers "Board 1" to "Board 3" are displayed on the board images Ga of the three boards 31, making each board 31 identifiable.
[0044] Furthermore, each board image Ga displays specification information Gb of the corresponding board 31. Furthermore, the board image Ga corresponding to the main board displays information Gc indicating that it is a main board.
[0045] Here, each of the board images Ga functions as an operator that can be selected. By selecting one of the board images Ga via the input device 33, the operator can set the board 31 corresponding to the selected board image Ga as the main board.
[0046] Specifically, the master substrate setting unit 303 accesses the selected substrate 31 and performs settings (hereinafter also referred to as master setting) for functioning as the master substrate. For example, the master substrate setting unit 303 performs master setting on the setting information held in the memory unit 314 of the selected substrate 31. Furthermore, when a substrate 31 other than its own substrate 31 is selected as the master substrate, the master substrate setting unit 303 cancels the master setting set for its own substrate 31.
[0047] The board 31 for which the master setting has been performed will function as a master board the next time the edge device 3 is started up. Also, the board 31 for which the master setting has been cancelled will function as a slave board the next time the edge device 3 is started up.
[0048] The timing at which the master substrate setting unit 303 displays the selection screen is not limited to when an instruction is received from the operator. For example, the master substrate setting unit 303 may display the selection screen for the master substrate when it detects that the configuration of the substrate 31 has been changed. Specifically, when a substrate 31 has been added or removed, or replaced with another substrate 31, the master substrate setting unit 303 may display the selection screen for the master substrate together with a message notifying that the configuration has been changed. A change in the configuration of the substrate 31 can be detected, for example, based on communication between substrates 31 or specification information acquired by the substrate management unit 301.
[0049] Furthermore, when a board 31 other than its own board 31 is selected as the master board, the master board setting unit 303 may move (or copy) the allocation table held in the memory unit 314 of its own board 31 to the memory unit 314 of the board 31 selected as the master board. This allows the contents of the existing allocation table to be handed over to the new master board, improving convenience when switching the master board.
[0050] Returning to Fig. 4, the communication control unit 304 is an example of a communication control unit. The communication control unit 304 controls the communication function of the slave substrate. Specifically, the communication control unit 304 controls the slave substrate to suppress communication other than communication between substrates 31, that is, communication between the slave substrate and an external device. Here, there is no particular restriction on the method of controlling the slave substrate, and various methods can be adopted.
[0051] For example, the communication control unit 304 may transmit an access control list in which the addresses (IP addresses, MAC addresses, etc.) of each board 31 are registered to the slave board, and block communications from addresses other than those registered in the access control list.
[0052] In this way, by limiting the communication targets of the slave board, it is possible to prevent direct access to the slave board from external devices. This improves the security of the slave board, allowing the edge device 3 to be operated stably.
[0053] 2, only the master board is connected to the network Na, and the slave board is physically disconnected from the network Na. In such a configuration, the communication control unit 304 may be unnecessary. However, when multiple boards 31 are connected in a bus type or the like, there is a possibility that an external device may directly access the slave board, so it is preferable to suppress direct access from an external device to the slave board by controlling the communication control unit 304.
[0054] The display control unit 305 is an example of a display control unit. The display control unit 305 controls a screen to be displayed on the display device 32. Specifically, the display control unit 305 causes the display device 32 to display a screen for supporting the operation of the edge device 3 by cooperating with other functional configurations. For example, the display control unit 305 causes the display device 32 to display a screen for supporting the setting of an allocation table and a selection screen for selecting a master board.
[0055] On the other hand, the slave substrate has an information processing unit 306 as a functional configuration, as shown in Fig. 4. The functional configuration of the slave substrate is a software configuration realized by the processor of the substrate 31 operating according to a program stored in the ROM or storage unit, but is not limited to this.
[0056] The information processing unit 306 executes the process assigned to its own board 31 by the process allocation unit 302. When the information processing unit 306 executes the process assigned to its own board 31, it outputs the process result to the process allocation unit 302 of the master board. Then, as described above, the process allocation unit 302 of the master board transmits the process result acquired from the board 31 to the external device that originated the request or to the server 4.
[0057] In the functional configuration of FIG. 4, the main board is configured not to include the information processing unit 306, but this is not limited thereto, and the main board may also include the information processing unit 306 when processing is performed on the main board.
[0058] The following describes an example of the operation of the edge device 3. Fig. 6 is a sequence diagram showing an example of processing performed between the master board and the slave board. Note that this processing is premised on the assumption that the allocation table has already been set.
[0059] First, when the processing allocation unit 302 of the master substrate receives a processing request from an external device (step S11), it selects a substrate 31 to which the processing related to the processing request is to be allocated based on the processing content of the received processing request and the allocation table (step S12). Next, the processing allocation unit 302 outputs the data to be processed and the processing content transmitted in the processing request to the substrate 31 set in step S12 (step S13). Note that Fig. 6 shows an example in which the processing is allocated to one of the slave substrates.
[0060] On the other hand, when the information processing unit 306 of the slave substrate to be assigned receives the data to be processed from the master substrate, it executes the processing instructed by the processing request (step S14). Then, when the processing is completed, the information processing unit 306 outputs the processing result of the processing to the master substrate (step S15).
[0061] When the processing allocation unit 302 of the master substrate acquires the processing result from the slave substrate selected in step S12, it outputs (responds) the processing result to the external device or the like that requested the processing (step S16).
[0062] In this way, in the edge device 3, each time the main board receives a processing request from an external device, one of the boards 31 executes the processing instructed by the processing request, and the main board outputs the processing result to the requesting external device, etc. As a result, the external device requesting the processing can obtain the processing result of the requested processing by sending the processing request to the edge device 3 without being aware of the existence of multiple boards 31. Therefore, processing using the edge device 3 can be easily performed.
[0063] Next, an example of a configuration change detection process executed by the master board of the edge device 3 will be described with reference to Fig. 7. Fig. 7 is a flowchart showing an example of a configuration change detection process executed by the master board.
[0064] When the configuration of the board 31 is changed, such as by adding or removing a board 31 or replacing it with another board 31, the board management unit 301 detects that the configuration has been changed (step S21). Next, the board management unit 301 acquires specification information from each board 31, and stores and manages the information in the storage unit 314 (step S22).
[0065] Next, the process allocation unit 302 updates the allocation table by allocating processes to be executed by each of the boards 31 based on the specification information acquired in step S22 (step S23). Furthermore, the master board setting unit 303, in cooperation with the display control unit 305, causes the display device 32 to display a master board selection screen (see FIG. 5) (step S24), and waits for an operation from the operator (step S25).
[0066] When a master substrate is selected by an operation from an operator (step S25; Yes), the master substrate setting unit 303 judges whether or not the master substrate has been changed (step S26). If it is judged that the master substrate has not been changed (step S26; No), the master substrate setting unit 303 ends this process.
[0067] Furthermore, in step S26, if it is determined that the master board has been changed (step S26; Yes), the master board setting unit 303 sets the board 31 selected as the master board as the master board (step S27), and ends this process.
[0068] As described above, the edge device 3 of this embodiment includes a plurality of boards 31 connected in a form that enables mutual communication, and one of the plurality of boards 31 functions as a master board. When the master board receives a processing request to be executed from an external device, it assigns the processing specified in the processing request to one of the boards 31, and outputs the processing result processed by the assigned board 31.
[0069] As a result, in the edge device 3 of this embodiment, a process requested by an external device can be assigned to each board and executed using multiple boards 31 connected in a form that allows mutual communication. Therefore, in this embodiment, the convenience of the edge device 3 that performs processing using multiple boards 31 can be improved.
[0070] The programs executed by each device in the above-described embodiments (and the modified examples) are provided in a state where they are pre-installed in a ROM, a storage unit, etc. The programs executed by each device in the above-described embodiments may be provided by being recorded in a computer-readable recording medium such as a CD-ROM, a flexible disk (FD), a CD-R, or a digital versatile disk (DVD) in the form of an installable or executable file.
[0071] Furthermore, the programs executed by each device of the above-described embodiments may be stored on a computer connected to a network such as the Internet and provided by being downloaded via the network. Also, the programs executed by each device of the above-described embodiments may be provided or distributed via a network such as the Internet.
[0072] Although the embodiment of the present invention has been described above, this embodiment is presented as an example and is not intended to limit the scope of the invention. These new embodiments and their modifications can be implemented in various other forms, and various omissions, substitutions, changes, and combinations can be made without departing from the gist of the invention. These embodiments and their modifications are included in the scope and gist of the invention, and are included in the scope of the invention and its equivalents described in the claims. [Explanation of symbols]
[0073] 1 Store System 2. POS terminal 3. Edge Devices 4 Server 300 Control section 301 Board Management Department 302 Processing Allocation Unit 303 Master Board Setting Section 304 Communication Control Unit 305 Display control section 306 Information Processing Department [Prior art documents] [Patent documents]
[0074] [Patent Document 1] Patent No. 4898754
Claims
1. An information processing device having a plurality of substrates, the plurality of boards are connected in a form enabling mutual communication; One of the plurality of substrates is A reception unit that receives a processing request to be executed from an external device; an allocation unit that allocates the processing instructed in the processing request to any one of the plurality of substrates; an output unit that outputs a processing result processed on the assigned substrate; An information processing device comprising:
2. The one substrate is an acquisition unit that acquires specification information indicating specifications of the boards from the plurality of boards; Further comprising: the allocation unit selects a substrate to which the process instructed in the process request is to be assigned, based on the specification information acquired by the acquisition unit; The information processing device according to claim 1 .
3. The one substrate is Further comprising a communication control unit that controls communication functions of other boards other than the board itself and blocks communication other than between the boards. The information processing device according to claim 1 .
4. Each of the plurality of substrates is configured to be operable as the one substrate; A substrate set as a master from among the plurality of substrates operates as the one substrate. The information processing device according to claim 1 .
5. The one substrate is a display control unit that displays on a display device a screen on which a board to be set as a master can be selected from the plurality of boards; The information processing device according to claim 4 .
Citation Information
Patent Citations
Radio system, radio method, communication terminal, communication method, extension device and program
JP2003032261A
Blade server system and its management method
JP2006277033A
Control terminal device, audio system, and audio system control program
JP2017010084A
Systems and methods for distributed offload of execution path monitoring
US20120203887A1
Performance tuning in a network system
US20230161631A1