This application is based upon and claims the benefit of priority from Japanese Patent Application No. 2021-068892, filed on Apr. 15, 2021, the entire contents of which are incorporated herein by reference.
Embodiments described herein relate generally to an information processing system, a client device, and an information processing method.
A system that uses a smartphone possessed by a customer who shops in a store, a tablet terminal provided by the store for the customer, or the like, as a user interface device to perform an information process such as registration of merchandises to be purchased and settlement of prices thereof by a cloud server is known. That is, a system that manages merchandise sales by a client server system including a client device using the smartphone, the tablet terminal, or the like and a server such as a cloud server is known. However, in such a system, if some kind of failure occurs, such as a communication failure between the client device and the server, the subsequent processes cannot be continued, and the customer cannot finish shopping.
Therefore, it is considered to prepare first and second servers and take over the processing by the second server if a failure occurs in the first server. However, in this case, cooperation between the first server and the second server is required, and thus the processing load increases. Under these circumstances, it is desired to be able to easily switch servers if a failure occurs.
An object to be solved by exemplary embodiments is to provide an information processing system, a client device, and an information processing method in which servers can be easily switched if a failure occurs.
In general, according to one embodiment, an information processing system includes a first server, a second server, and a client device. The client device is configured to provide a plurality of first requests to the first server, each first request indicating that the first server should perform a first information process. The first server is configured to perform the first information processes according to the first requests from the client device and record a first performance result of each first information process in association with an identifier, the identifier being the same for each first performance result. The client device is configured to record a history of the first requests in correlation with the identifier. The client device is configured to determine occurrence of a failure regarding the first server. In response to determining that the failure has occurred, the client device is configured to (a) use the history to identify an incomplete information process that the client device requested for the first server to perform but that was not completed by the first server due to the failure and (b) provide a second request to the second server, the second request indicating that the second server should perform the incomplete information process, and the second request including the identifier. The second server is configured to perform the incomplete information process according to the second request from the client device and record a second performance result of the incomplete information process in association with the identifier. The second server is configured to provide a notification to the first server, the notification including the second performance result together with the identifier. In response to receiving the notification, the first server is configured to record the second performance result in association with the identifier.
Hereinafter, an embodiment of a merchandise sales processing system configured by applying an information processing system is described with reference to the drawings.
In
The user terminal 200 and the cart terminal 300 are information processing devices that function as user interfaces for customer who shops by using the merchandise sales processing system in a store. In
The cloud server 400 performs an information process for a merchandise sales process such as registration of the merchandises to be purchased and the settlement of the prices thereof according to the request from the user terminal 200 and the cart terminal 300. For example, the cloud server 400 includes a function of performing various information processes for the merchandise sales process and publishes a plurality of application programing interfaces (API) for receiving requests for performing the information processes. In API, a basic uniform resource locator (URL) for specifying the API, a definition regarding an argument to be added to the basic URL, and the like are determined. Also, if an access by an access URL configured by adding the argument or the like to the basic URL is received, the cloud server 400 performs the information process specified by the access URL.
As the communication network 500, for example, the Internet, a virtual private network (VPN), a local area network (LAN), a public communication network, a mobile communication network, and the like can be used by itself or in combination as appropriate. As the communication network 500, a mobile communication network and the Internet are typically used. That is, the communication network 500 is typically a wide area network.
The schematic configuration of each store system 100 is common. That is, in the store system 100, a store server 1, a checkout machine 2, a gateway 3, and an access point 4 are communicably configured (e.g., operatively coupled) via an in-store communication network 5. However, the store server 1, the checkout machine 2, the gateway 3, the access point 4, and the in-store communication network 5 may have common functions for realizing the operations described below and do not have to be completely the same. Some store systems 100 may include devices that are not illustrated in
The store server 1 performs an information process for the merchandise sales process such as the registration of the merchandise to be purchased and the settlement of the prices thereof according to the request from the user terminal 200 and the cart terminal 300. The store server 1 includes functions of performing the same information process as those performed by the cloud server 400 for the merchandise sales process. The store server 1 also publishes APIs for receiving the request for performing the information processes. Regarding the same information process, the basic URLs of the APIs published by the cloud server 400 and the store server 1 respectively are correlated with each other in advance. According to the present embodiment, for example, with respect to the APIs of the process of registering the designated merchandises as the merchandises to be purchased, “xyz.cloud.co.jp/api/registration” and “192.168.1.zzz/api/registration” are determined as basic URLs regarding the cloud server 400 and the store server 1, respectively. That is, only the domain portions of the basic URL determined by the API of the same information process are different. Also, if the access by the access URL is received, the store server 1 performs the information process to be provided by the APIs specified by the access URL. That is, the store server 1 includes a function of performing the same merchandise sales process as the cloud server 400. However, the store server 1 performs these functions in order to temporarily perform the function of the cloud server 400 by proxy as described below. That is, the cloud server 400 corresponds to the first server that actively performs the merchandise sales process and the store server 1 corresponds to the second server that performs the merchandise sales process by proxy. Also, the user terminal 200 and the cart terminal 300 correspond to the client device for using the merchandise sales process by the cloud server 400 or the store server 1. The store server 1 is a local server that is provided in the store that is a facility where the user terminal 200 and the cart terminal 300 as client device are operated.
The checkout machine 2 is a user interface device if the customer performs the settlement in the store. The settlement methods that the checkout machine 2 can use for the above settlement may be all or any part of the well-known settlement methods such as cash settlement, credit card settlement, electronic money settlement, point settlement, and code settlement. The code settlement is also referred to as the mobile settlement, the smartphone settlement, or the like. The checkout machine 2 may be operated by any one of the clerk or the customer. The checkout machine 2 may be configured, for example, based on a self-service-type checkout machine used for a semi-self-service-type point-of-sale (POS) system in the related art. The checkout machine 2 may have a function of performing the information process for registering a merchandise as a merchandise to be purchased. In this case, the checkout machine 2 may be configured, for example, based on a face-to-face POS terminal used in a POS system in the related art or a self-service-type POS terminal used in the self-service-type POS system in the related art.
The gateway 3 interconnects the in-store communication network 5 and the communication network 500 and can perform the communication via both the in-store communication network 5 and the communication network 500. As the gateway 3, for example, the communication device in the related art that interfaces the LAN and the Internet can be used.
The access point 4 performs the communication process for enabling the user terminal 200 to access the in-store communication network 5 by the wireless communication. As the access point 4, for example, a well-known communication device that performs the wireless communication by the IEEE 802.11 standard can be used. The access point 4 is installed in a store so that the user terminal 200 can perform wireless communication from anywhere on the sales floor of the store. Depending on the scale of the store, the plurality of access points 4 may be disposed in one store system 100.
As the in-store communication network 5, the Internet, VPN, LAN, the public communication network, the mobile communication network, and the like can be used by itself or in combination as appropriate. However, generally, the in-store communication network 5 is LAN. That is, generally, the in-store communication network 5 is a narrow area network.
In the store where the store system 100 is provided, a two-dimensional code TCI for check-in is posted near the entrance. The two-dimensional code TCI indicates check-in data for check-in. The check-in data is different on a per store basis. For example, the check-in data indicates information such as (1) an operation version of the store system 100, (2) a store code for identifying the store, (3) a name of a business operator who operates the store, (4) a name of the store provided with the store system 100, (5) a business operator code for identifying the business operator who operates the store, and (6) a connection destination for communicating with the store system 100 by the user terminal 200 or information required for the connection, for each store. Examples of the connection destination for communicating with the store system 100 by the user terminal 200 include the access point 4. Examples of the information required for the connection include a service set identifier (SSID) for identifying the access point 4, a password for accessing the access point 4, and the like. Examples of the information required for the connection also include a domain name of the store server 1. The check-in data may not include a part of the various kinds of exemplified information. The check-in data may indicate information different from the various kinds of exemplified information.
The processor 11 corresponds to a central portion of the computer. The processor 11 performs an information process for realizing various functions as the store server 1 according to an operating system and an information processing program such as an application program. The processor 11 is, for example, a central processing unit (CPU).
The main memory 12 corresponds to the main storage portion of the computer. The main memory 12 includes a non-volatile memory area and a volatile memory area. The main memory 12 stores the information processing program in the non-volatile memory area. The main memory 12 may store data required for performing the information process by the processor 11 in the non-volatile or volatile memory area. The main memory 12 uses the volatile memory area as a work area in which data is appropriately rewritten by the processor 11. The non-volatile memory area is, for example, a read only memory (ROM). The volatile memory area is, for example, a random access memory (RAM).
The auxiliary storage unit 13 corresponds to an auxiliary storage portion of the computer. As the auxiliary storage unit 13, for example, storage units using well-known storage devices such as an electric erasable programmable read-only memory (EEPROM), a hard disc drive (HDD), or a solid state drive (SSD) can be used. The auxiliary storage unit 13 stores data used for performing various processes by the processor 11, data generated by the process in the processor 11, or the like. The auxiliary storage unit 13 may store the above information processing program.
The communication interface 14 performs data communication with each unit connected to the in-store communication network 5 according to a predetermined communication protocol. As the communication interface 14, for example, a well-known communication device for the LAN can be applied. The transmission line 15 includes an address bus, a data bus, a control signal line, and the like, and transmits data and control signals to be transmitted and received to and from the connected each of the units.
The auxiliary storage unit 13 stores a proxy POS app APA that is one of the information processing programs. The proxy POS app APA is an application program, and the information process for realizing the functions as the store server 1 is described therein. A part of the storage area of the auxiliary storage unit 13 is used for storing transaction data DAA. The transaction data DAA is a collection of various kinds of data for managing one transaction regarding the merchandise sales in the store.
The touch panel 204 (e.g., a user interface) functions as an input device and a display device of the user terminal 200. The camera 205 (e.g., image capture device) includes an optical system and an image sensor and the image sensor generates image data that indicates an image in the field of view formed by the optical system. The sound unit 206 (e.g., a speaker) outputs various sounds such as voice and melody. The sensor group 207 (e.g., one or more sensors, a sensor system, etc.) includes various sensors such as an angular velocity sensor and a global positioning system (GPS) sensor.
The wireless communication unit 208 transmits and receives data to and from the access point 4 by wireless communication according to the wireless communication protocol. As the wireless communication unit 208, for example, a well-known communication device can be used in conformity to the IEEE 802.11 standard. The mobile communication unit 209 is an interface of the data communication via the communication network 500. As the mobile communication unit 209, for example, a well-known communication device for performing data communication via a mobile communication network can be used.
The auxiliary storage unit 203 stores a smartphone POS app APB that is one of the information processing programs. The smartphone POS app APB is an application program, and the information process described below that causes the user terminal 200 to function as the user interface for customers of the store system 100 is described therein. A part of the storage area of the auxiliary storage unit 203 is used for storing history data DAB. The history data DAB is data for managing the history of the request made to the cloud server 400 regarding one transaction.
The auxiliary storage unit 304 stores a cart terminal app APC that is one of the information processing programs. The cart terminal app APC is an application program, and the information process for causing the cart terminal 300 to function as a user interface for customers of the store system 100 is described therein. A part of the storage area of the auxiliary storage unit 304 is used to store history data DAC. The history data DAC is data for managing the history of the request made to the cloud server 400 regarding one transaction. The history data DAC may have, for example, the same configuration as the history data DAB.
The auxiliary storage unit 403 stores a web POS app APD that is one of the information processing programs. The web POS app APD is an application program, and the information process described below for providing the service described below is described therein. A part of the storage area of the auxiliary storage unit 403 is used to store transaction data DAD. The transaction data DAD is a collection of various kinds of data for managing one transaction. The auxiliary storage unit 403 may store the plurality of pieces of the transaction data DAD regarding each of the plurality of transactions processed in parallel.
In the store server 1, the user terminal 200, the cart terminal 300, or the cloud server 400, the proxy POS app APA, the smartphone POS app APB, the cart terminal app APC, or the web POS app APD may be transferred in a state of being stored in the auxiliary storage units 13, 203, 304, and 403, and hardware in a state of not storing the proxy POS app APA, the smartphone POS app APB, the cart terminal app APC, or the web POS app APD in the auxiliary storage units 13, 203, 304, and 403, and the proxy POS app APA, the smartphone POS app APB, the cart terminal app APC, or the web POS app APD may be individually transferred. The proxy POS app APA, the smartphone POS app APB, the cart terminal app APC, or the web POS app APD can be transferred by being recorded in a removable recording medium such as magnetic disks, magneto-optical disks, optical disks, and semiconductor memories or by communication via a network.
Subsequently, an operation of the merchandise sales processing system configured as described above is described. Contents of the various kinds of processes described below are examples, and a change of an order of some processes, omission of some processes, or addition of other processes can be appropriately performed. In the following description, for example, for easier understanding of characteristic operations of the present embodiment, description of some processes is omitted. For example, if some errors occur, a process for dealing with the errors may be performed, but description of such a processes is omitted.
A service provided to the customer by the operation of the merchandise sales processing system described below is referred to as a smartphone POS service, a cart POS service, or the like, but in the following, the service is referred to as a smartphone POS service. Also, in the following, operations for realizing shopping using the user terminal 200 are mainly described.
In order to use the smartphone POS service, the customer can install the smartphone POS app APB on a smartphone or the like owned by the customer to use the smartphone as the user terminal 200. Otherwise, the customer rents the user terminal 200 configured by installing the smartphone POS app APB in a tablet computer or the like from the store. Also, prior to entering the store, the customer starts the information process based on the smartphone POS app APB.
In the cloud server 400, if an access from the user terminal 200 is made with performing the usage start process, the processor 401 starts the information process according to the web POS app APD (hereinafter, referred to as a web POS process) in order to provide the smartphone POS service to the corresponding user terminal 200. If the web POS process is already performed using another user terminal 200 as a target, the processor 401 starts a new web POS process in parallel with the web POS process. That is, the processor 401 may perform a plurality of web POS processes in parallel using a plurality of user terminals 200 as targets, respectively. Hereinafter, if “the user terminal 200” is simply used, the expression indicates the user terminal 200 to be a target of the web POS process in the description.
The customer possesses the user terminal 200 and enters any store provided with the store system 100. At this point, the customer photographs the two-dimensional code TCI with the camera 205 of the user terminal 200 so that the check-in data indicated by the corresponding two-dimensional code TCI is read by the user terminal 200.
If the usage start process in ACT 11 in
In ACT 13, the processor 201 requests the start of the transaction from the cloud server 400. The processor 201 performs various requests on the cloud server 400 described below including the request here, by accessing the cloud server 400 by using an access URL generated by adding the argument defined on a per API basis to the basic URL of the API published in order to receive these requests. However, some requests such as the start request of the transaction may be performed without using an API.
For example, if the basic URL of the API regarding the process for starting the transaction is determined as “xyz.cloud.co.jp/api/start”, the processor 201 generates the access URL by adding a store code or the like indicated in the check-in data as the argument and accesses the cloud server 400 from the mobile communication unit 209 via the communication network 500 by the access URL.
In the cloud server 400, if the provision start process in ACT 41 in
In ACT 43, the processor 401 determines the transaction code for identifying the transaction that starts according to the start request. For example, according to a predetermined rule, the processor 401 determines a code different from the transaction code for identifying the other transaction as a new transaction code.
In ACT 44, the processor 401 generates the transaction data DAD correlated with the transaction to be started and stores the transaction data DAD in the auxiliary storage unit 403. If the transaction data DAD generated by another web POS process performed in parallel is already stored in the auxiliary storage unit 403, the processor 401 keeps the transaction data DAD as it is and stores the transaction data DAD newly generated here in the auxiliary storage unit 403. The processor 401 includes a transaction code determined in ACT 43, a user code acquired in the provision start process in ACT 41, and a store code included in the access URL for the start request as the argument, in the transaction data DAD to be generated here. In this step, the processor 401 does not include merchandise data in the transaction data DAD. In ACT 45, the processor 401 responds to the start request. For example, the processor 401 transmits the predetermined response data to the user terminal 200 via the communication network 500. The processor 401 includes the transaction code determined in ACT 43, in the response data.
In the user terminal 200, the processor 201 requests the transaction start in ACT 13 in
If the merchandise is registered as the merchandise to be purchased, the customer inputs the merchandise code of the merchandise to the user terminal 200. For example, the customer causes the camera 205 to read the barcode indicating the merchandise code displayed on the merchandise. Otherwise, for example, the customer touches a button displayed on the touch panel 204 and correlated with the merchandise code. Otherwise, for example, the customer operates the touch panel 204 and manually inputs the merchandise code. When changing the quantity of the registered merchandise as the merchandise to be purchased, the customer performs a predetermined operation, for example, on the touch panel 204. If the customer wants to exclude the registered merchandise as the merchandise to be purchased from the merchandises to be purchased, the customer performs a predetermined operation, for example, on the touch panel 204. If the customer wants to end the registration of the merchandises to be purchased and settle the prices of the merchandises to be purchased, the customer performs a predetermined operation for instructing the settlement on the touch panel 204. The customer performs another predetermined operation.
In ACT 16, the processor 201 waits for the operation as described above, by the customer. What kind of operation the processor 201 waits for here may be appropriately determined, for example, by the developer of the web POS app APD. Then, if any one operation to be received is performed, the processor 201 determines YES and proceeds to ACT 17.
In ACT 17, the processor 201 requests the process according to the operation from the cloud server 400. For example, if the registration of the merchandise to be purchased is requested, the processor 201 accesses the cloud server 400 by using the access URL generated, for example, by adding the merchandise code or the like as the argument to the basic URL of the API published for the registration request. For example, if the change of the quantity of the merchandise to be purchased is requested, the processor 201 accesses the cloud server 400 by using the access URL generated, for example, by adding the merchandise code and the changed quantity as the argument to the basic URL of the API published for the quantity change request. If the exclusion of the merchandise to be purchased is requested, the processor 201 accesses the cloud server 400 by using the access URL generated, for example, by adding the merchandise code or the like as the argument to the basic URL of the API published for the exclusion request. For example, if the settlement is requested, the processor 201 accesses the cloud server 400 by using the access URL generated, for example, by adding the settlement data indicating the settlement method to be applied, as the argument, to the basic URL of the API published for the settlement request. That is, the processor 201 performs the information process based on the smartphone POS app APB, and thus the computer including the processor 201 as the central portion functions as a first request unit. In ACT 18, the processor 201 updates the history data DAB stored in the auxiliary storage unit 203 to include an access URL used for the request in ACT 17.
In the cloud server 400, the processor 401 responds in ACT 45 in
If the access by the access URL is performed as described above, the processor 401 determines YES in ACT 46 and proceeds to ACT 48. In ACT 48, the processor 401 performs the process according to the request. If the access by the access URL for the registration request is received, the processor 401 adds the merchandise data including the merchandise code included in the access URL as the argument to the transaction data DAD stored in the auxiliary storage unit 403. For example, if the access by the access URL for the quantity change request is received, the processor 401 finds the merchandise data including the merchandise code included in the access URL as the argument from the transaction data DAD stored in the auxiliary storage unit 403 and changes the quantity included in the corresponding merchandise data to the quantity included in the access URL as the argument. For example, if the access by the access URL for the exclusion request is received, the processor 401 finds the merchandise data including the merchandise code included in the access URL as the argument from the transaction data DAD stored in the auxiliary storage unit 403 and deletes the corresponding merchandise data from the transaction data DAD. For example, if the access by the access URL for the settlement request is received, the processor 401 calculates the prices of the merchandises to be purchased based on the transaction data DAD stored in the auxiliary storage unit 403 and performs the process predetermined for settling the corresponding price by the settlement method indicated by the settlement data included in the access URL as the argument. However, these processes are examples, and the other processes may be performed for the same request. In addition, by updating the transaction data DAD by the above process, the processor 401 manages performance results of a plurality of processes in correlation with one transaction identifier by using the transaction data DAD. Therefore, the processor 401 performs the information process based on the web POS app APD, and thus a computer including the processor 401 as the central portion functions as a first processing unit and a second management unit.
In ACT 49, the processor 401 responds to the request received this time. The processor 401 transmits, for example, response data including the data of the screen indicating the content of the changed transaction data to the user terminal 200 via the communication network 500. For example, if the transaction completion state predetermined by the process in ACT 48 is set, the processor 401 includes notification data predetermined for notifying the completion of the transaction in response data. What kind of state is set as the transaction completion state may be determined in any way, for example, by the developer of the web POS app APD. For example, it is assumed that the state in which the settlement is completed is determined as the transaction completion state.
In ACT 50, the processor 401 confirms whether the transaction is completed, by the process performed in ACT 48. Also, if the transaction is not completed, the processor 401 determines NO and returns to the waiting state of ACTS 46 and 47. However, if the transaction is completed, for example, if the settlement normally ends in ACT 48, the processor 401 determines YES in ACT 50 and ends the web POS process.
In the user terminal 200, the processor 201 updates the history data DAB in ACT 18 in
In ACT 21, the processor 201 performs the process according to the response from the cloud server 400. For example, if the response data including the data of the screen indicating the content of the changed transaction data is received as described above, the processor 201 displays the corresponding screen on the touch panel 204.
In ACT 22, the processor 201 confirms whether the transaction is completed. Also, for example, if the notification data for notifying the transaction completion is not included in the response data, the processor 201 determines NO and returns to the waiting state of ACT 16. That is, the processor 201 continuously waits for a new operation. Also, the processor 201 repeatedly performs ACTS 17 to 21 according to the new operation. That is, whenever a new process is requested, the processor 201 adds the access URL used for the request to the history data DAB. The processor 201 updates the history data DAB so that access orders of each access URL are expressed according to the description order of each access URL in the history data DAB. Therefore, the processor 201 performs the information process based on the smartphone POS app APB, and thus a computer including the processor 201 as the central portion functions as a recording unit.
If the communication with the cloud server 400 cannot be continued due to the failure in the communication network 500 or the failure of the cloud server 400, the processor 201 determines YES in ACT 20 and proceeds to ACT 23 in
In ACT 23, the processor 201 requests the start of a proxy for performing the process of the transaction interrupted due to the failure by proxy, from the store server 1. For example, after the communication with the access point 4 is established based on the information required for the connection to the access point 4 indicated in the check-in data, the processor 201 accesses the store server 1 by the access URL including the transaction code as the argument in the basic URL indicated in the check-in data regarding the process for the start of the proxy via the corresponding access point 4 and the in-store communication network 5. As a result, for example, the user terminal 200 existing in the store A accesses the store server 1 included in the store system 100-1. In addition, for example, the user terminal 200 existing in the store B accesses the store server 1 included in the store system 100-2.
In the store server 1, if the access from the user terminal 200 by the access URL for the request of the proxy start process is performed as described above, the processor 11 starts the information process according to the proxy POS app APA (hereinafter, referred to as a proxy POS process) in order to provide the smartphone POS service to the corresponding user terminal 200 by proxy. If the proxy POS process is already performed using another user terminal 200 as a target, the processor 11 starts a new proxy POS process in parallel with the proxy POS process. That is, the processor 11 may perform a plurality of proxy POS processes in parallel using the plurality of user terminals 200 as targets, respectively. Hereinafter, if “the user terminal 200” is simply used, the expression indicates the user terminal 200 to be a target of the proxy POS process in the description.
In the user terminal 200, the processor 201 requests the proxy start in ACT 23 in
In ACT 25, the processor 201 requests the process from the store server 1 based on the history data DAB. For example, the processor 201 selects the access URL used for the oldest access included in the history data DAB and accesses the store server 1 by the access URL obtained by substituting a domain portion of the access URL with the domain indicated in the check-in data. That is, if the access URL selected from the history data DAB is “xyz.cloud.co.jp/api/registration/4946843523221”, and the domain indicated in the check-in data is “192.168.1.zzz”, the processor 201 accesses the store server 1 by the access URL set as “192.168.1.zzz/api/registration/4946843523221”.
In the store server 1, after the response in ACT 62 in
In ACT 64, the processor 11 performs the process according to the request. For example, the processor 11 performs the information process in the same manner as performed by the processor 401 of the cloud server 400 in ACT 48 in
In the user terminal 200, the processor 201 updates the history data DAB in ACT 25 in
In ACT 27, the processor 201 confirms whether the reproduction of the request is completed based on the history data DAB. For example, if ACT 25 is performed immediately before, if the access URL used for the newest access included in the history data DAB is not selected, the processor 201 determines that the reproduction is not completed, determines NO, and repeats ACT 25 and subsequent processes in the same manner as described above. However, at this point, in ACT 25, the processor 201 selects an unselected access URL from the access URLs included in the history data DAB in chronological order. Therefore, the processor 201 requests the process requested from the cloud server 400 by the access URL included in the history data DAB, from the store server 1 in the same manner. Therefore, the processor 201 performs the information process based on the smartphone POS app APB, and thus a computer including the processor 201 as the central portion functions as a second request unit. Accordingly, the processor 201 uses the history data DAB to identify an incomplete information process that the processor 201 requested for the cloud server 400 to perform but that was not completed by the cloud server 400 due to a failure and provides a request to the store server 1 for the store server to perform the incomplete information process.
In the store server 1, if the processes requested from the cloud server 400 are sequentially requested as described above, the processor 11 is in the waiting state of ACT 63 in
As described above, the user terminal 200 requests the process from the store server 1 again, based on the history data DAB, and the processor 11 performs the process according to the request in the store server 1, and thus the transaction data DAA is generated including the merchandise data in the auxiliary storage unit 13 of the store server 1 in the same manner as the transaction data DAD stored in the auxiliary storage unit 403 of the cloud server 400 if the failure occurs.
In the user terminal 200, while the processor 201 requests the process requested from the cloud server 400 from the store server 1 as described above, even if there is a response from the store server 1, a process according to the response is not performed. Therefore, the generation of the transaction data DAA described above is performed in the background.
For example, in a state where the access URL used for the newest access included in the history data DAB is selected, the processor 201 determines that the reproduction is completed in ACT 27, determines YES, and proceeds to ACT 28. In ACT 28, the processor 201 waits for the operation in the same manner as ACT 16 in
In ACT 29, the processor 201 requests the process according to the operation from the store server 1. Here, the process of the processor 201 is the same process as in ACT 17 in
In the store server 1, if the access for the new request according to the operation is received in this manner, the processor 11 determines YES in ACT 63 in
If the transaction is completed, for example, if the settlement normally ends in ACT 64, the processor 11 determines YES in ACT 66 and proceeds to ACT 67. In ACT 67, the processor 11 notifies the transaction data DAA to the cloud server 400. The processor 11 transmits the notification data including the transaction data DAA to the cloud server 400 via the in-store communication network 5, the gateway 3, and the communication network 500. If the failure described above is not resolved yet, and the notification of the transaction data cannot be completed, the transmission of the notification data is repeated after a predetermined period of time. Otherwise, an API providing data indicating the operation state of the cloud server 400 is published by the cloud server 400, and the processor 11 may confirm the operation state of the cloud server 400 by using the API and transmit the notification data after confirming that the failure is resolved. Also, if the notification is completed, the processor 11 ends the proxy POS process. Therefore, the processor 11 performs the information process based on the proxy POS app APA, and thus a computer including the processor 11 as the central portion functions as a notification unit.
If the communication network 500 is the cause of the processor 201 in the user terminal 200 determining that the failure occurs in ACT 20 in
In ACT 51, the processor 401 updates the transaction data DAD based on the notification data. For example, the processor 401 selects the transaction data DAD including the transaction code included in the notification data from the transaction data DAD stored in the auxiliary storage unit 403. Also, the processor 401 rewrites all the merchandise data included in the corresponding transaction data DAD to the merchandise data in the notification data. Also, the processor 401 ends the proxy POS process accordingly. That is, the processor 401 updates the transaction data DAD to the data indicating the content of the transaction completed by the store server 1 by proxy. Therefore, the processor 401 performs the information process based on the web POS app APD, and thus a computer including the processor 401 as the central portion functions as an update unit.
If it is not required to store the transaction data DAD regarding the completed transaction in the cloud server 400, the processor 401 may delete the transaction data DAD including the transaction code included in the notification data from the auxiliary storage unit 403 in ACT 51. Otherwise, if journal data based on the transaction data DAD regarding the completed transaction is stored in the cloud server 400, if the processor 401 determines YES in ACT 50 or after ending ACT 51, the processor 401 may generate the journal data based on the transaction data DAD, store the journal data in the auxiliary storage unit 403, and delete the corresponding transaction data DAD.
In the user terminal 200, the processor 201 requests the process in ACT 29 in
In ACT 31, the processor 201 performs the process according to the response from the store server 1. For example, if the response data including the data of the screen indicating the content of the changed transaction data is received, the processor 201 displays the corresponding screen on the touch panel 204. In ACT 32, the processor 201 confirms whether the transaction is completed. Also, for example, if the notification data for notifying the transaction completion is not included in the response data, the processor 201 determines NO and returns to the waiting state of ACT 28. Thereafter, the processor 201 repeatedly performs ACTS 29 to 31 whenever the operation is performed by the customer.
If the notification data for notifying the transaction completion is included in the response data received from the cloud server 400, the processor 201 determines YES in ACT 22 in
As described above, the merchandise sales processing system holds the history of the request from the cloud server 400 in the user terminal 200, and causes the store server 1 to perform the process performed by the cloud server 400 based on the history by the request from the user terminal 200 in the circumstance where the cloud server 400 cannot perform the process due to the failure. Accordingly, a list of the merchandises to be purchased that are managed by the transaction data DAA in the store server 1 can be matched with a list of merchandises to be purchased that are managed by the transaction data DAD in the cloud server 400 if the failure occurs. Also, by causing the store server 1 to perform the subsequent processes, the process of the transaction can be continued by the store server 1 by proxy. Also, it is not required to cause the cloud server 400 and the store server 1 to cooperate with each other to match the transaction data DAA and the transaction data DAD, and the server can be easily switched if the failure occurs.
In the merchandise sales system, regarding the transaction interrupted by the store server 1 by proxy in the cloud server 400, after the interrupted transaction is completed by the store server 1, the result of the transaction is notified from the store server 1 to the cloud server 400. Also, the cloud server 400 can complete the interrupted transaction based on the notification.
According to the embodiment, various modifications as below can be made. The information processes performed by the cloud server 400 and the store server 1 are not limited to the information processes for the merchandise sales processes and may be any information processes.
For example, the cloud server 400 may be substituted with any other server device such as a server device installed in the headquarters that collectively manage a plurality of stores.
The store server 1 may be substituted with another server device provided in any facilities other than the store.
If the shopping is realized by using the cart terminal 300 instead of the user terminal 200, the user terminal 200 can be also read as the cart terminal 300. That is, the processor 302 of the cart terminal 300 may perform substantially the same information processes as those by the processor 201 of the user terminal 200. Here, in case of the cart terminal 300, the reading of the check-in data may be omitted, for example, by storing at least a part of various kinds of data indicated in the check-in data, in the main memory 303 or the auxiliary storage unit 304 in advance. In addition, the cart terminal 300 accesses the cloud server 400 via the access point 4, the in-store communication network 5, the gateway 3, and the communication network 500.
If the user terminal 200 is rented to the customer by the store, the reading of the check-in data may be omitted by storing at least a part of various kinds of data indicated in the check-in data in the main memory 202 or the auxiliary storage unit 203 in advance.
The process of the cloud server 400 or the process of the store server 1 may be performed by a plurality of server devices in a dispersed manner.
The request and the response of the store server 1 from and to the user terminal 200 and the cart terminal 300 may be relayed by another server device.
A part or all of the respective functions realized by the processors 11, 201, 302, and 401 by the information process can also be realized by hardware that performs the information processes that are not based on a program such as a logic circuit. Further, the above functions can be realized by combining software control with the above hardware such as the logic circuit.
While certain embodiments have been described, these embodiments have been presented by way of example only, and are not intended to limit the scope of the inventions. Indeed, the novel embodiments described herein may be embodied in a variety of other forms; furthermore, various omissions, substitutions and changes in the form of the embodiments described herein may be made without departing from the spirit of the inventions. The accompanying claims and their equivalents are intended to cover such forms or modifications as would fall within the scope and spirit of the inventions.
Number | Date | Country | Kind |
---|---|---|---|
2021-068892 | Apr 2021 | JP | national |