Network system and control method of a network system, and a control device

A POS terminal has a server-function unit with a server function, and a client-function unit. When able to communicate normally with the control server, the client-function unit communicates with the control server as a client of the control server, and executes processes with the control server. When unable to communicate normally with the control server 15, the client-function unit communicates with the server-function unit as a client of the server-function unit, and executes processes with the server-function unit.

Priority is claimed under 35 U.S.C. § 119 to Japanese Application no. 2015-092865 filed on Apr. 30, 2015 which is hereby incorporated by reference in their entirety.

BACKGROUND

1. Technical Field

The present disclosure relates to a network system and a control method of a network system, and a control device.

2. Related Art

Systems in which a control device (client terminal) and servers communicate through a local area network, and the control device acquires information about the current load on the servers from the servers and determines which server to connect with based on the acquired information, are known from the literature. See, for example, JP-A-2009-9174. More recently, network systems (cloud systems) in which a server (a cloud server) connected to a global network such as the Internet executes a process in response to a request from a client have become common.

Because the control device, which is a client device, may be unable to communicate normally with the server due to a server overload or other reason in a cloud system such as described in JP-A-2009-9174, there is a need to handle such events appropriately.

SUMMARY

A system having a control server and a control device that connects to the control server through a global network according to the disclosure can appropriately handle situations in which the control device cannot communicate normally with the control server.

A network system according to the disclosure includes a control server having with a server function and configured to connect to a global network; and a control device configured to communicate with the server through the global network. The control device has a server-function unit with a server function, and a client-function unit. The client-function unit is configured to communicate with the control server as a client of the control server, and execute a process with the control server, when the client-function unit can communicate normally with the control server; and when the client-function unit cannot communicate normally with the control server, communicate with the server-function unit as a client of the server-function unit, and execute a process with the server-function unit.

Thus comprised, the control device in a system having a control server and a control device that connects to the control server through a global network can appropriately handle processing when unable to communicate normally with the control server.

In a network system according to another aspect of the disclosure, the control server stores server-side data, and the control device stores control device-side data that can be referenced by the server-function unit, and can be synchronized with the server-side data when normal communication with the control server is enabled. When able to communicate normally with the control server, the client-function unit of the control device communicates with the control server and executes a process based on the process result of the control server using the server-side data; and when not able to communicate normally with the control server, the client-function unit of the control device communicates with the server-function unit and executes a process based on the process result of the server-function unit using the control device-side data.

Thus comprised, the client-function unit can continue executing an identical process using identical data even when communication is switched from the control server to the server-function unit.

In a network system according to another aspect of the disclosure, the server-side data and the control device-side data are master databases storing transaction-related information. The client-function unit of the control device communicates with the control server and executes a transaction-related process based on the process result of the control server using the server-side data when able to communicate normally with the control server; and when not able to communicate normally with the control server, communicates with the server-function unit and executes a transaction-related process based on the process result of the server-function unit using the control device-side data.

Thus comprised, the client-function unit can continue executing an identical transaction process using identical data masters even when communication is switched from the control server to the server-function unit.

In a network system according to another aspect of the disclosure, the control device has a recording function for recording on a recording medium; and the client-function unit of the control device produces a receipt based on the transaction-related process.

Thus comprised, in a system having a control device that executes a transaction process and processes receipts, and a control server that connects to the control device through a global network, the control device can handle processing appropriately even when unable to communicate normally with the control server.

In a network system according to another aspect of the disclosure, the client-function unit of the control device monitors the communication response speed of the control server, and when the communication response speed is slower than a specific speed, determines normal communication with the control server is not possible, and switches communication from the control server to the server-function unit.

Thus comprised, the client-function unit can appropriately detect that normal communication with the control server is not possible.

In a network system according to another aspect of the disclosure, after switching communication to the server-function unit, the client-function unit of the control device monitors the communication response speed of the control server, and when the communication response speed is faster than a specific speed, switches communication from the server-function unit to the control server.

Thus comprised, the client-function unit can resume communication with the control server when normal communication with the control server is enabled.

In a network system according to another aspect of the disclosure, while communicating with the control server, the client-function unit of the control device monitors the communication response speed of the server-function unit, and when the communication response speed of the server-function unit is slower than a specific speed, does not change the communicating device.

Thus comprised, changing the communicating device unnecessarily can be prevented.

In a network system according to another aspect of the disclosure, while communicating with the control server, the client-function unit of the control device does not monitor the communication response speed of the server-function unit when the communication response speed of the control server is faster than a specific speed.

Thus comprised, unnecessarily executing the process of monitoring the communication response speed of the server-function unit can be prevented, the processor load can be reduced, and process efficiency can be improved.

Another aspect of the disclosure is a control method of a network system having a control server configured to connect to a global network and having a server function, and a control device configured to communicate with the server through the global network, wherein the control device has a server-function unit with a server function, communicates with the control server as a client of the control server and executes a process with the control server when able to communicate normally with the control server, and when unable to communicate normally with the control server, communicates with the server-function unit as a client of the server-function unit and executes a process with the server-function unit.

Thus comprised, in a system having a control server and a control device that connects to the control server through a global network, the control device can appropriately handle processing when unable to communicate normally with the control server.

Another aspect of the disclosure is a control device having: a communication unit configured to communicate through a global network with a control server having a server function; a server-function unit with a server function; and a client-function unit configured to communicate with the control server as a client of the control server and execute a process with the control server when the client-function unit can communicate normally with the control server, and when the client-function unit cannot communicate normally with the control server, communicate with the server-function unit as a client of the server-function unit and execute a process with the server-function unit.

Thus comprised, in a system having a control server and a control device that connects to the control server through a global network, the control device can appropriately handle processing when unable to communicate normally with the control server.

Other objects and attainments together with a fuller understanding of the disclosure will become apparent and appreciated by referring to the following description and claims taken in conjunction with the accompanying drawings.

DESCRIPTION OF EMBODIMENTS

A preferred embodiment of the present disclosure is described below with reference to the accompanying figures.

FIG. 1shows the configuration of a transaction processing system1(network system) according to a preferred embodiment of the disclosure.

As shown inFIG. 1, the transaction processing system1includes a plurality of store systems11. A store system11is a system that is used in retail businesses such as supermarkets, convenience stores, department stores, and restaurants.

The store system11has functions for processing transactions according to the products purchased by customers, and producing sales (transaction) receipts based on the transactions.

A checkout counter L where customer transactions are processed is located in the business where the store system11is deployed. A POS terminal10(control device) that can produce receipts appropriate to the transaction is installed at each checkout counter L.

The POS terminal10has functions for executing a transaction process appropriate to the transaction performed at the checkout counter L, and producing receipts recorded with information related to the transaction. The receipt produced by the POS terminal10is then given to the customer.

The configuration and functions of the POS terminal10, and processes based on the functions of the POS terminal10, are described further below.

The store system11also has a local area network LN.

The POS terminal10connects to the local area network LN according to a communication protocol appropriate to the LAN. Any suitable communication protocol may be used by the POS terminal10to connect to the local area network LN, and a wired or wireless connection may be used.

A communication device14is also connected to the local area network LN. The communication device14is an interface device that connects the local area network LN to a global network GN (network) such as the Internet. The communication device14has the functions of a modem (or ONU (Optical Network Unit)), a router, a DHCP (Dynamic Host Configuration Protocol) server, and a NAT (Network Address Translation) unit. The communication device14passes data between devices when a device connected to the local area network LN and a device connected to the global network GN communicate with each other. Note that the communication device14is represented by a single function block inFIG. 1, but the communication device14may comprise plural devices with different functions.

The POS terminal10can also access the global network GN through the communication device14.

A control server15(server) connects to the global network GN. The control server15has a server function, and is a cloud server in a cloud system in which the POS terminal10is a client. More specifically, when triggered by a request from a client device, for example, the control server15runs a specific operating process and sends data based on the result of the process to the client. Note that the control server15is represented by a single function block inFIG. 1, but this does not mean that the control server15is embodied by a single server device. For example, the control server15may include a plurality of server devices. More specifically, the control server15may be any configuration that can execute the processes described below.

FIG. 2is a block diagram illustrating the functional configuration of the POS terminal10and control server15in the transaction processing system1.

The POS terminal10is a thermal line printer that stores roll paper (recording medium) and records images by forming dots with a thermal line head on the roll paper.

As shown inFIG. 2, the POS terminal10has a control device controller50(control unit), a control device recording unit51, a control device storage unit52, a control device communication unit53(communication unit), and a control device-side device communication unit54.

The control device controller50has a CPU, ROM, RAM, and other peripheral circuits not shown, and controls the POS terminal10.

The control device recording unit51includes mechanisms related to recording on roll paper, such as a conveyance mechanism for conveying roll paper stored inside the cabinet of the POS terminal10, a recording mechanism for forming dots and recording images on the roll paper with a thermal head, and a cutter mechanism for cutting the roll paper at a specific position. The control device recording unit51conveys the roll paper with the conveyance mechanism, records receipt-related images on the roll paper with the recording mechanism, and cuts the roll paper at a specific position with the cutter mechanism as controlled by the control device controller50to produce a receipt.

The control device storage unit52has nonvolatile memory such as an EPROM device, and stores data.

The control device storage unit52stores a control device-side product master database521(control device-side data), which is a product master database relationally storing the product code of a product to other information related to that product. The information related to the product includes at least the price of the product.

The control device storage unit52also stores a control device-side web application522. The control device-side web application522is described further below.

The control device storage unit52also stores a POS terminal master database523. The POS terminal master database523is described further below.

A specific web browser is installed on the POS terminal10. The control device controller50functions as a client-function unit501by reading and running the installed web browser.

Specific web server software is also installed on the POS terminal10. The control device controller50also functions as a server-function unit502by reading and running the installed web server software.

The control device-side web application522is a software application that is run by the specific web server software application installed on the POS terminal10, and communicates with the specific web server application by interprocess communication.

The server-function unit502also functions as a control device-side application execution unit5021by reading and running the control device-side web application522.

The server-function unit502has a server function, and in relationship to the client-function unit501functions as a server of which the client function unit501is a client.

The functions of the function blocks of the control device controller50, and processes based on those functions, are described further below.

The control device communication unit53accesses the local area network LN and communicates with devices (including other POS terminals10) connected to the network as controlled by the control device controller50.

The control device communication unit53also accesses the global network GN and communicates with devices connected to the network (including the control server15) through the communication device14as controlled by the control device controller50.

The control device-side device communication unit54has an interface board with a USB port, a port conforming to a non-USB serial communication standard, or ports conforming to other communication protocols. Devices can connect to each port. The control device-side device communication unit54communicates with devices connected to the POS terminal10through the corresponding port as controlled by the control device controller50.

Note that the control device-side device communication unit54may also be configured with a wireless communication capability and communicate with devices wirelessly.

A barcode scanner BS, customer display CD, cash drawer KS, and touch panel TP are devices connected to the POS terminal10.

The barcode scanner BS is used to read barcodes from products and product packaging, and outputs data representing the barcode to the control device-side device communication unit54. The control device-side device communication unit54then outputs the data input from the barcode scanner BS to the control device controller50.

The customer display CD displays images as controlled by the control device controller50. The information presented on the customer display CD can be read by the customer involved in the transaction at the checkout counter L.

The cash drawer KS has a tray for storing cash, and a mechanism for locking the tray, and unlocks and opens the tray as controlled by the control device controller50.

The touch panel TP has a display device such as an LCD panel or OLED panel, and a touch sensor disposed over the display device for detecting touch operations by the user (including the checkout clerk). The touch panel TP is disposed to a position at the checkout counter L where it can be read by the checkout clerk and operated by touch. The touch panel TP displays images on the display device as controlled by the control device controller50. The client function unit501of the control device controller50can display a web page on the touch panel TP based on an HTML file acquired by a specific means. When a touch operation by the user is detected, the touch panel TP outputs a signal indicating the touched position to the control device controller50.

Based on input from the touch panel TP, the control device controller50executes a process corresponding to the touch operation of the user.

As shown inFIG. 2, the control server15has a server controller40, server storage unit41, and server communication unit42.

The server controller40includes a CPU, ROM, RAM, and other peripheral circuits, and controls the control server15.

The server storage unit41has nonvolatile memory such as a hard disk drive or EEPROM device not shown, and stores data.

The server storage unit41stores a server-side product master database411(server-side data) relationally storing a product code for each product and the product price.

The server storage unit41stores a server-side HTML file412, which is an HTML file. The server-side HTML file412is described further below.

The server storage unit41stores a server-side web application413. The server-side web application413is described further below.

The server storage unit41also stores a transaction information management database414. The transaction information management database414is described further below.

Specific web server software is installed on the control server15. The server controller40functions as a server-side server software execution unit401by reading and running the installed web server software.

The server-side web application413is a software application that is run by the specific web server software installed on the control server15, and communicates with the specific web server application by interprocess communication.

The server-side server software execution unit401also functions as a server-side application execution unit4011by reading and running the server-side web application413.

The server communication unit42accesses the global network GN and communicates with devices connected to the network (including the POS terminal10) as controlled by the server controller40.

The client-function unit501is described in detail next.

The checkout clerk working the register at the checkout counter L (or other person) turns the POS terminal10installed at the same checkout counter L on at some specific time before the transaction starts. For example, the checkout clerk may turn the power of the POS terminal10on before the store where the transaction processing system1is installed opens each day.

The POS terminal10is configured to automatically start a specific web browser installed on the POS terminal10when the power turns on.

When the browser starts, the client function unit501of the POS terminal10accesses a specific URL on the control server15, and accesses the control server15by HTTP. The URL of the control server15and other information required to communicate with the control server15is previously registered. When accessed by the POS terminal10, the server-side server software execution unit401of the server controller40of the control server15sends the server-side HTML file412corresponding to the accessed URL to the POS terminal10. The client function unit501of the control device controller50of the POS terminal10thus acquires the server-side HTML file412transmitted by the control server15.

A program with a function for communicating with the server-side application execution unit4011of the server controller40of the control server15in specific circumstances as described below to execute transaction-related processes, and a function for communicating with the control device-side application execution unit5021of the server-function unit502in specific circumstances as described below to execute transaction-related processes, is embedded in the server-side HTML file412in a specific scripting language. The functions of the client function unit501of the control device controller50of the POS terminal10are embodied by programs written in a specific scripting language that runs on the browser, the server-side web application413of the control server15, the control device-side web application522of the POS terminal10, and associated programs.

As described above, the POS terminal10executes a transaction process according to a transaction performed at the checkout counter L, and creates a record based on the transaction process. The process of creating the record is described in detail below. Specifically, the client-function unit501changes the device with which it communicates between the control server15and the server-function unit502by means of a communication monitoring and switching process described below. When the communication device is set to the control server15, the client-function unit501communicates with the control server15, executes a transaction-related process with the control server15, and creates a transaction record. When the communication device is set to the server-function unit502, the client-function unit501communicates with the server-function unit502, executes a transaction-related process with the server-function unit502, and creates a transaction record.

The communication monitoring and switching process is described below, and the operation of the POS terminal10when communicating with the control server15and when communicating with the server-function unit502is then described.

FIG. 3is a flow chart showing the operation of the POS terminal10when executing the communication monitoring and switching process.

Note that when the operation shown inFIG. 3starts, the client-function unit501is set to communicate with the control server15.

After the browser of the POS terminal10starts and the server-side HTML file412is acquired, the client-function unit501executes the following process continuously.

More specifically, the client-function unit501sends data related to a response request to the control server15at a specific interval. The control server15has a function for returning response data when response request data is received. The client-function unit501then measures the communication response speed of the control server15based on how much time passes until the response data is received after the response request data is sent. As described above, the client-function unit501measures how long it takes to receive from the control server15a response to the response request data that is transmitted at a specific interval, and thereby monitors the communication response speed of the control server15. Note that the method of measuring the communication response speed (the method of monitoring the communication response speed) is not limited to the foregoing example, and any appropriate method may be used.

As shown inFIG. 3, the client-function unit501monitors whether or not the communication response speed of the control server15is less than a specific threshold TH1(a specific speed) (step SA1). The specific threshold TH1value is set so that if communication between the POS terminal10and the control server15is delayed for more than an allowable time, the communication response speed of the control server15is below the threshold TH1. The specific threshold TH1is set based on tests or simulations.

If the communication response speed of the control server15is less than the threshold TH1, the client-function unit501determines that normal communication with the control server15is not possible. More specifically, in this embodiment of the disclosure, a state in which the POS terminal10and control server15cannot communicate normally is when the communication response speed of the control server15is below the threshold TH1.

If in step SA1the communication response speed of the control server15is below the threshold TH1(step SA1: YES), the client-function unit501starts monitoring the communication response speed of the server-function unit502(step SA2).

In this event, when monitoring the communication response speed of the server-function unit502, the client-function unit501outputs response request data to the server-function unit502at a specific interval. The server-function unit502has a function for returning response data when response request data is received. The client-function unit501then measures the communication response speed of the server-function unit502based on how much time passes until the response data is received after the response request data is output. As described above, the client-function unit501measures how long it takes to receive from the server-function unit502a response to the response request data transmitted at a specific interval, and thereby monitors the communication response speed of the server-function unit502. Note that the method of measuring the communication response speed (the method of monitoring the communication response speed) is not limited to the foregoing example, and any appropriate method may be used.

In this embodiment of the disclosure, if the communication response speed of the control server15is greater than the threshold TH1, the client-function unit501does not monitor the communication response speed of the server-function unit502, but if the communication response speed of the control server15is less than the threshold TH1, starts monitoring the communication response speed of the server-function unit502. If the communication response speed of the control server15is greater than the threshold TH1, the addressed device is not changed and remains set to the control server15, and there is no need to monitor the communication response speed of the server-function unit502. By thus starting monitoring the communication response speed of the server-function unit502after the communication response speed of the control server15goes below the threshold TH1, unnecessarily monitoring the communication response speed of the server-function unit502can be prevented, the processor load on the POS terminal10can be reduced, and processing efficiency can be improved.

After starting monitoring the communication response speed of the server-function unit502, the client-function unit501determines if the communication response speed of the server-function unit502is less than a threshold TH2(step SA3). The specific threshold TH2value is set so that if communication between the client-function unit501and server-function unit502is delayed for more than an allowable time, the communication response speed of the server-function unit502is below the threshold TH2. The specific threshold TH2is set based on tests or simulations.

If the communication delay exceeds the allowable range of the communication response speed of the server-function unit502(if the communication response speed of the server-function unit502is slower than the threshold TH2), the CPU of the POS terminal10may be overloaded, or the server-function unit502may be running multiple processes. However, because the specifications of the CPU of the POS terminal10anticipate changing the device the client-function unit501communicates with to the server-function unit502when normal communication with the control server15is not possible, the possibility of a drop in the communication response speed of the server-function unit502is extremely low compared with the possibility of a delay in communication with the control server15. In other words, the possibility of a delay in communication with the control server15and communication with the control device controller50both exceeding the allowable range is extremely low.

If in step SA3the communication response speed of the server-function unit502is not lower than the threshold TH2(step SA3: NO), the client-function unit501changes the addressed device from the control server15to the server-function unit502(step SA4).

Next, the client-function unit501monitors if the communication response speed of the control server15has become faster than the threshold TH1(step SA5). Note that the threshold used for comparison with the communication response speed of the control server15in step SA5is not limited to threshold TH1, and may be a threshold reflecting the threshold TH1with a specific margin.

If the communication response speed of the control server15is greater than the threshold TH1(step SA5: YES), the client-function unit501stops monitoring the communication response speed of the server-function unit502, changes the device addressed by the client-function unit501to the control server15(step SA6), and then returns to step SA1.

If in step SA3the communication response speed of the server-function unit502is determined to be slower than threshold TH2(step SA3: YES), the client-function unit501executes a corresponding process (step SA7) and the addressed device does not change (step SA8). In step SA7, the client-function unit501displays information on the touch panel TP indicating that the transaction process and associated processes cannot be executed because normal communication with the control server15and server-function unit502is not possible. By reading the information on the touch panel TP in this event, the user, such as the checkout clerk, can know that a transaction cannot be processed with the POS terminal10and why, and based thereon can take action to resolve the problem.

As described above, the client-function unit501does not change the addressed device when the communication response speed of the server-function unit502is slower than threshold TH2even if the communication response speed of the control server15is slower than threshold TH1. As a result, the device addressed as the server is not changed unnecessarily.

Next, the client-function unit501monitors whether or not the communication response speed of the server-function unit502is faster than threshold TH2(or a threshold reflecting threshold TH2with a margin) (step SA9), and if the communication response speed of the server-function unit502is slower than threshold TH2(step SA9: NO), monitors if the communication response speed of the control server15has become faster than threshold TH1(or a threshold reflecting threshold TH1with a margin) (step SA10).

If the communication response speed of the control server15is faster than threshold TH1(step SA10: YES), the client-function unit501stops monitoring the communication response speed of the server-function unit502(step SA11), and returns to step SA1.

If the communication response speed of the server-function unit502becomes faster than threshold TH2before the communication response speed of the control server15becomes faster than threshold TH1(step SA9: YES), the client-function unit501switches communication from the control server15to the server-function unit502(step SA12).

Next, the client-function unit501monitors whether or not the communication response speed of the control server15has become faster than the threshold TH1(or a threshold reflecting threshold TH1with a margin) (step SA13).

If the communication response speed of the control server15is faster than threshold TH1(step SA13: YES), the client-function unit501stops monitoring the communication response speed of the server-function unit502and switches communication from the client-function unit501to the control server15(step SA14), and returns to step SA1.

As described below, when communication is switched to the server-function unit502, the client-function unit501communicates with the control device-side application execution unit5021of the server-function unit502instead of the server-side application execution unit4011of the control server15, and executes the transaction process and associated processes in conjunction with the control device-side application execution unit5021. The server-side web application413embodying the function of the server-side application execution unit4011, and the control device-side web application522embodying the function of the control device-side application execution unit5021, are applications with identical functionality, and are synchronized by a specific means. In addition, the server-side product master database411used when the server-side application execution unit4011executes processes, and the control device-side product master database521used when the control device-side application execution unit5021of the server-function unit502executes processes, contain the same content, and are synchronized by a specific means described below. As a result, the process result of one process the client-function unit501executes with the server-side application execution unit4011, and the result of the same process the client-function unit501executes with the control device-side application execution unit5021, are fundamentally the same, and changing the device the client-function unit501communicates with does not change the result of the process.

As described above, the client-function unit501monitors the communication response speed of the control server15, determines normal communication with the control server15is not possible if the communication response speed is slower than a specific speed, and except in specific circumstances switches communication from the control server15to the server-function unit502.

As a result, the client-function unit501switches communication to the server-function unit502and can continue running processes (including a transaction process) even when normal communication with the control server15is not possible. Business operations are therefore not interrupted. It is also possible to connect a server (substitute server) that can replace the control server15to the local area network LN, and the client-function unit501could be configured to access the substitute server through the local area network LN when normal communication with the control server15is not possible. In this case, however, normal communication with the substitute server may also not be possible due to congestion on the local area network LN or other reason. On the other hand, because the device with which the client-function unit501communicates is changed to the server-function unit502, with which the client-function unit501can communicate by interprocess communication and which is part of the same device as the client-function unit501, instead of to a substitute server connected through a network, these communication problems will not occur, and the possibility of being able to continue normal business operations even when normal communication with the control server15is not possible is extremely high.

Note that when normal communication with the control server15is possible, the client-function unit501in this embodiment of the disclosure communicates with the control server15. More specifically, communication between the client-function unit501and control server15is prioritized over communication with the server-function unit502. This is for the following reason. Specifically, each POS terminal10in the transaction processing system1must execute processes using data, such as the server-side product master database411, stored on the control server15by functions of the server-side web application413. This is because identical processes can still be executed when the content of the server-side product master database411changes, or when the server-side web application413changes, because each POS terminal10uses master databases reflecting the most recent content and functions of the program reflecting the most recent changes. As a result, the client-function unit501prioritizes communication with the control server15over communication with the server-function unit502.

Transaction Processing when the POS Terminal10and Control Server15Communicate Normally

The operation of devices in the transaction processing system1when a transaction is performed at the checkout counter L and the POS terminal10can communicate normally with the control server15is described next.

In the communication monitoring and switching process described above, the client-function unit501determines if normal communication with the control server15is possible, and if normal communication is possible, sets the addressed device to the control server15and executes the process of the flow chart shown in column (A) ofFIG. 5.

The checkout clerk working the register at the checkout counter L (or other person) turns the POS terminal10installed at the same checkout counter L on at some specific time before the transaction starts. For example, the checkout clerk may turn the power of the POS terminal10on before the store where the transaction processing system1is installed opens each day.

When the browser starts, the client function unit501of the POS terminal10acquires the server-side HTML file412from the control server15. The client-function unit501executes the acquired server-side HTML file412, and displays a user interface for processing transactions60(FIG. 4) on the touch panel TP.

FIG. 4shows an example of a user interface for processing transactions60that is displayed on the touch panel TP.

A list display area61where the names of the products (product names) being purchased by the customer, the prices of the products, and the quantities of the products are presented in a list is displayed at the top left of the user interface for processing transactions60shown inFIG. 4. To the right of this list display area61is presented an amount display area62where the total amount of the products being purchased by the customer, the amount of money received from the customer in the transaction, and the amount of change due to the customer are displayed.

Below the list display area61is a barcode information display area63the information (referred to below as barcode information) expressed by the barcode that is read by the barcode scanner BS is displayed. The barcode information is the product code assigned to the product, for example.

A virtual keypad64is displayed on the right side of the barcode information display area63. The virtual keypad64includes an Enter key641for finalizing the transaction.

FIG. 5is a flow chart showing the operation of devices in the transaction processing system1during a transaction. Column (A) shows the operation of the POS terminal10, and column (B) shows the operation of the control server15.

As shown in column (A) ofFIG. 5and column (B) ofFIG. 5, the POS terminal10and control server15start the transaction process when a transaction begins (step SB1and step SC1).

FIG. 6is a flow chart showing part of the process executed by the POS terminal10and control server15in the transaction process. Column (A) shows the operation of the POS terminal10, and column (B) shows the operation of the control server15.

In the transaction process, the checkout clerk reads the barcode on the product or the packaging of the product being purchased by the customer with the barcode scanner BS (step SX1). Upon reading a barcode, the barcode scanner BS sends data based on the read result (referred to below as as the “read result data”) through the port to which the barcode scanner BS is connected to the control device-side device communication unit54of the POS terminal10. The control device-side device communication unit54then outputs the read result data to the control device controller50.

The read result data is data including information indicating the product code of the product.

As shown in column (A) ofFIG. 6, the client function unit501of the control device controller50of the POS terminal10acquires the read result data based on the input from the control device-side device communication unit54(step SD1).

Next, the client function unit501acquires the product code based on the read result data (step SD2).

Next, the client function unit501displays the product code acquired in step SD2in the barcode information display area63of the user interface for processing transactions60(step SD3).

Next, the client function unit501controls the control device communication unit53to send the product name for the product code acquired in step SD2and data querying the price of the product (referred to below as as product information request data) to the control server15(step SD4).

Note that the client function unit501manages the information required to communicate with the control server15, such as the address of the control server15and the corresponding protocol, opens a connection with the control server15based on the managed information, and communicates data through the opened connection.

As shown in column (B) ofFIG. 6, the server-side application execution unit4011of the server controller40of the control server15controls the server communication unit42to receive the product information request data (step SE1).

Next, based on the received product information request data, the server-side application execution unit4011acquires the product code, references the server-side product master database411stored by the server storage unit41, and acquires the name and the price of the product identified by the acquired product code (step SE2).

Next, the server-side application execution unit4011controls the server communication unit42, and sends product information response data expressing the product name and price information acquired in step SE2to the POS terminal10(step SE3).

As shown in column (A) ofFIG. 6, the client function unit501of the control device controller50of the POS terminal10controls the control device communication unit53to receive the product information response data (step SD5).

Next, the client function unit501acquires the product name and product price based on the received product information response data, and displays the name, price, and quantity of the product in the corresponding fields of the list display area61in the user interface for processing transactions60(step SD6).

As described above, during a transaction, the checkout clerk reads the barcode with the barcode scanner BS from each product being purchased by the customer, and the POS terminal10and control server15execute the process shown in the flow chart inFIG. 6based on the read barcode.

When reading the barcode from every product and processing by each device based on the read barcode is completed, the name, price, and quantity of each product being purchased by the customer is displayed in the list display area61.

When the barcode of every product has been read, the checkout clerk uses the virtual keypad64to confirm the transaction total, receives payment from the customer, and makes change as due. The client function unit501of the control device controller50of the POS terminal10then appropriately displays the total of the products purchased by the customer, the amount received from the customer for the transaction, and the change due to the customer in the amount display area62of the user interface for processing transactions60. The client function unit501also controls the customer display CD appropriately to display information related to the transaction on the customer display CD. The client function unit501also controls the cash drawer KS appropriately to open the tray of the cash drawer KS.

When change has been given to the customer, the checkout clerk presses the Enter key641of the virtual keypad64of the user interface for processing transactions60. The transaction process ends when the checkout clerk operates the Enter key641.

As shown in column (A) ofFIG. 5, when the transaction process ends, the client function unit501of the control device controller50of the POS terminal10acquires the transaction information (step SB2).

The transaction information is information including: identification information uniquely assigned to each transaction (referred to below as transaction identification information); information denoting the combination of product code, name, price, and quantity for each product purchased by the customer (referred to below as the purchased product information); information denoting the total purchase amount, cash amount received from the customer, and change returned to the customer (referred to below as transaction amount information); information denoting the time of the transaction (referred to below as as the transaction time information); and the store ID, which is identification information for the store (business) where the transaction was completed.

Note that during a transaction, the client function unit501stores information contained the purchased product information and information contained in the transaction amount information to specific storage areas. In step SC2, the client function unit501acquires purchased product information and transaction amount information based on the information stored to the specific storage areas.

The time that the transaction was performed as indicated by the transaction time information is the time when the Enter key641was operated. The time that the transaction was performed as indicated by the transaction time information is not limited to the time that the Enter key641was operated, and may be any time derived from the transaction, such as the time when the barcode for the first product was read in the transaction.

The client function unit501also has a function for generating transaction identification information for each transaction, and generates the transaction identification information using this function. The value of the transaction identification information is unique to each transaction performed in each store.

After acquiring the transaction information, the client function unit501controls the control device communication unit53to send transaction information data expressing the acquired transaction information to the control server15(step SB3).

As shown in column (B) ofFIG. 5, the server-side application execution unit4011of the server controller40of the control server15controls the server communication unit42to receive the transaction information data (step SC2).

Next, the server-side application execution unit4011generates recording data for producing a receipt in a specific layout based on the transaction information indicated by the received transaction information data (step SC3).

The recording data is control data specifying producing a receipt according to a specific layout, and including in this example a top logo, bottom logo, transaction identification information, the time of the transaction, the name, price, quantity and total amount of the products purchased by the customer, the amount received from the customer, and the amount of change due to the customer. The recording data in this embodiment is an XML document of information written in a specific XML format.

Next, the server-side application execution unit4011controls the server communication unit42to send the generated recording data to the POS terminal10(step SC4).

As shown in column (A) ofFIG. 5, the client function unit501of the control device controller50of the POS terminal10controls the control device communication unit53to receive the recording data (step SB4).

Next, the client function unit501, based on the recording data in the XML document, generates recording commands in the command language of the control device recording unit51(step SB5).

Next, the client function unit501, based on the generated recording commands, controls the control device recording unit51to produce a receipt (step SB6).

The receipt produced in step SB6is then given by the checkout clerk to the customer.

As shown in column (B) ofFIG. 5, after the transaction information data is received in step SC2, the server-side application execution unit4011of the server controller40of the control server15accesses the transaction information management database414stored by the server storage unit41(step SC5).

Each record in the transaction information management database414relationally stores the purchased product information, transaction amount information, transaction time information, and store ID.

Next, based on the transaction information data received in step SC2, a record relating the transaction identification information, purchased product information, transaction amount information, transaction time information, and store ID is created in the transaction information management database414(step SC6).

The control server15thus cumulatively stores transaction information appropriate to the transaction. As a result, the control server15can manage sales by store and sales by individual product in each store.

Transaction Processing when the POS Terminal10and Control Server15Cannot Communicate Normally

The operation of the POS terminal10when a transaction is performed at the checkout counter L and the POS terminal10cannot communicate normally with the control server15is described next.

The client-function unit501determines if normal communication with the control server15is possible in the communication monitoring and switching process described above, and if normal communication is not possible, sets the addressed device to the server-function unit502and executes the process of the flow chart shown in column (A) ofFIG. 7.

FIG. 7is a flow chart showing the operation of the POS terminal10when communication with the control server15is not possible, column (A) showing the operation of the client function unit501, and column (B) showing the operation of the server-function unit502(including the control device-side application execution unit5021).

When the process shown in the flow chart inFIG. 7starts, acquisition of the server-side HTML file412by the client function unit501of the POS terminal10has completed. More specifically, the process of the flow chart shown inFIG. 7is based on the POS terminal10and control server15being not able to communicate normally with each other for some reason after the client function unit501has acquired the server-side HTML file412.

Note that a configuration that stores a HTML file synchronized by some means with the server-side HTML file412in the POS terminal10, and retrieves the stored HTML file when the client function unit501cannot acquire the server-side HTML file412from the control server15because the client function unit501cannot communicate normally with the control server15is also conceivable.

As shown in column (A) ofFIG. 7and column (B) ofFIG. 7, the client function unit501, and the control device-side application execution unit5021of the server-function unit502, start the transaction process when a transaction begins (step SF1and step SG1).

FIG. 8is a flow chart showing part of the process executed by the client function unit501and the control device-side application execution unit5021in the transaction process, column (A) showing the operation of the client function unit501, and column (B) showing the operation of the control device-side application execution unit5021of the server-function unit502.

When the transaction process starts, the checkout clerk reads the barcode from the product or the packaging of the product being purchased by the customer with the barcode scanner BS (step SX2). When a barcode is read, the barcode scanner BS outputs the read result data through the port to which the barcode scanner BS is connected to the control device-side device communication unit54of the POS terminal10. The control device-side device communication unit54then outputs the read result data to the control device controller50. As described above, the read result data is data containing information indicating the product code of the product.

As shown in column (A) ofFIG. 8, the client function unit501of the control device controller50of the POS terminal10acquires the read result data based on the input from the control device-side device communication unit54(step SH1).

Next, the client function unit501acquires the product code based on the read result data (step SH2).

Next, the client function unit501displays the product code acquired in step SH2in the barcode information display area63of the user interface for processing transactions60(step SH3).

Next, the client function unit501controls the control device communication unit53to output product information request data querying the name and the price of the product identified by the product code acquired in step SH2to the control device-side application execution unit5021(step SH4).

As shown in column (B) ofFIG. 8, the control device-side application execution unit5021acquires the product information request data input from the client function unit501(step SI1).

Next, the control device-side application execution unit5021acquires the product code based on the acquired product information request data, references the control device-side product master521stored by the control device storage unit52, and acquires the name and price of the product identified by the acquired product code (step SI2).

When the POS terminal10and control server15can communicate normally, the control device-side product master database521is synchronized by a specific means with the server-side product master database411stored on the control server15. The control device-side product master database521and server-side product master database411may be synchronized as described below.

A specialized application with a function for synchronizing the control device-side product master database521with the server-side product master database411is installed on the POS terminal10. By reading and running this application, the control device controller50communicates with the control server15at a specific time, such as when the POS terminal10power turns on, receives from the control server15a copy of the server-side product master database411, and stores the received copy as the control device-side product master database521in the control device storage unit52. The control device controller50then intermittently queries the control server15for any changes made to the server-side product master database411.

If the server-side product master database411has not been updated between one query and the next, the server-side application execution unit4011of the control server15reports the same to the POS terminal10in response to the query. If the server-side product master database411has been updated between one query and the next, the server-side application execution unit4011sends to the POS terminal10a command to update the control device-side product master521appropriately to the changes to the server-side product master database411. If such a control command is received from the control server15in response to the query, the control device controller50of the POS terminal10updates the control device-side product master521based on the control command.

Note that the means of synchronizing the control device-side product master521and the server-side product master database411is not limited to the foregoing. For example, instead of sending such a control command, the control server15may send a copy of the server-side product master database411, or data describing the difference between the previous and current versions of the server-side product master database411.

Further alternatively, instead of the POS terminal10querying the control server15for changes to the master database, the control server15may be configured to send the foregoing control command, send a copy of the server-side product master database411, or send data describing the difference between the previous and current versions of the server-side product master database411, to the POS terminal10whenever the server-side product master database411is updated.

Note that the server-side web application413and the control device-side web application522are also synchronized by the same method when the POS terminal10and control server15can communicate normally.

Next, the control device-side application execution unit5021outputs the product information response data denoting the product name and product price information acquired in step SI2to the client function unit501(step SI3).

As shown in column (A) ofFIG. 8, the client function unit501acquires the product information response data input from the control device-side application execution unit5021(step SH5).

Next, the client function unit501acquires the product name and price data based on the received product information response data, and displays the combination of name, price, and quantity information for the product in the appropriate fields of the list display area61in the user interface for processing transactions60(step SH6).

As shown in column (A) ofFIG. 7, the client function unit501acquires the foregoing transaction information when the transaction process ends (step SF2).

Next, the client function unit501stores (records) the transaction information data representing the transaction information acquired in step SF2in the temporary transaction information database524of the control device storage unit52(step SF3).

The temporary transaction information database524is a database that cumulatively temporarily stores transaction information data based on the transaction process executed by the POS terminal10when the control server15and POS terminal10cannot communicate with each other.

As described further below, after the client function unit501can communicate again with the control server15, it sends the transaction information data cumulatively stored in the temporary transaction information database524to the control server15. After sending the transaction information data to the control server15, the client function unit501deletes the transmitted transaction information data from the temporary transaction information database524.

After storing the transaction information in step SF3, the client function unit501outputs the transaction information data to the control device-side application execution unit5021(step SF4).

As shown in column (B) ofFIG. 7, the control device-side application execution unit5021then acquires the transaction information data input from the client function unit501(step SG2).

Next, the control device-side application execution unit5021generates recording data for producing a receipt based on the transaction information described by the transaction information data acquired in step SG2(step SG3). This recording data is an XML document of information written in a specific XML format.

Next, the control device-side application execution unit5021outputs the generated recording data to the client function unit501(step SG4).

As shown in column (A) ofFIG. 7, the client function unit501acquires the recording data input from the control device-side application execution unit5021(step SF5).

Next, the client function unit501generates recording commands in a command language appropriate to the control device recording unit51based on the recording device data in the XML document (step SF6).

Next, the client function unit501controls the control device recording unit51to produce a receipt based on the generated recording commands (step SF7).

The receipt produced in step SF7is then given by the checkout clerk to the customer.

As described above, when the POS terminal10cannot communicate normally with the control server15, the POS terminal10processes transactions using the locally stored control device-side product master521instead of using the server-side product master database411on the control server15. As a result, the POS terminal10can run the transaction process even when the POS terminal10and control server15cannot communicate with each other, and the user can continue normal business operations.

Operation of the POS terminal10and control server15after communication is re-enabled from a state in which the POS terminal10and control server15cannot communicate normally with each other is described next.

FIG. 9is a flow chart of the operation of the POS terminal10and the control server15when the POS terminal10and control server15cannot communicate with each other and communication therebetween is then re-enabled. column (A) ofFIG. 9(shows the operation of the POS terminal10, and column (B) shows the operation of the control server15. Note that when the flow chart shown in column (A) ofFIG. 9starts, communication between the POS terminal10and the control server15is not possible.

As shown in column (A) ofFIG. 9, when communication with control server15is disabled, the client function unit501of the POS terminal10monitors by a specific means if communication with the control server15has been enabled again (step SJ1).

If communication with the control server15is possible (step SJ1: YES), the client function unit501references the temporary transaction information database524(step SJ2).

Next, the client function unit501determines if new transaction information data has been stored (registered) in the temporary transaction information database524(step SJ3).

If at least one record of transaction information data was stored in the temporary transaction information database524, a transaction was performed at the checkout counter L where the POS terminal10is located and the POS terminal10ran the transaction process while communication with the control server15was disabled.

If at least one record of transaction information data was not stored in the temporary transaction information database524, a transaction was not performed at the checkout counter L where the POS terminal10is located while communication with the control server15was disabled.

If at least one record of transaction information data was not stored in the temporary transaction information database524(step SJ3: NO), the client function unit501ends the process.

If at least one record of transaction information data was stored in the temporary transaction information database524(step SJ3: YES), the client function unit501acquires all transaction information data stored in the database (step SJ4).

Next, the client function unit501controls the control device communication unit53and sends all acquired transaction information data to the control server15(step SJ5).

As shown in column (B) ofFIG. 9, the server-side application execution unit4011of the server controller40of the control server15controls the server communication unit42to receive the transaction information data (if there is more than one record of transaction information data, each of the plural transaction information data records) (step SK1).

Next, the server-side application execution unit4011accesses the transaction information management database414stored by the server storage unit41(step SK2).

Next, based on each transaction information data record received in step SK1, the server-side application execution unit4011creates a record in the transaction information management database414relationally storing the transaction identification information, purchased product information, transaction amount information, transaction time information, and store ID (if there were plural records of transaction information data, creates a record for each transaction information data record) (step SK3).

As described above, transaction information data based on transactions that are performed while the POS terminal10cannot communicate normally with the control server15is cumulatively stored in the POS terminal10, and is sent to the control server15after communication with the control server15is enabled again. Based on the received transaction information data, the control server15updates the transaction information management database414. As a result, even when the POS terminal10and control server15cannot communicate, a record corresponding to the transaction information data based on the performed transaction is created without fail in the transaction information management database414of the control server15.

As described above, a transaction processing system1(network system) according to this embodiment of the disclosure includes a control server15with a server function that connects to a global network GN, and a POS terminal10capable of communicating with the control server15through the global network GN.

The POS terminal10has a server-function unit502with a server function, and a client-function unit501. When the server-function unit502having a server function can communicate normally with the control server15, the client-function unit501communicates with the control server15as a client of the control server15, and executes processes in conjunction with the control server15. When normal communication with the control server15is not possible, the client-function unit501communicates with the server-function unit502as a client of the server-function unit502, and executes processes in conjunction with the server-function unit502.

Thus comprised, the POS terminal10can continue executing processes even when normal communication with the control server15is not possible by the client-function unit501changing the device with which it communicates from the control server15to the server-function unit502. More specifically, in a system having a control server15, and a POS terminal10that connects to the control server15through a global network GN, the POS terminal10can continue normal operations even when normal communication with the control server15is not possible.

In this embodiment of the disclosure, the control server15stores a server-side product master database411(server-side data). The POS terminal10stores a control device-side product master database521that can be referenced by the server-function unit502, and is synchronized with the server-side product master database411when the POS terminal10can communicate normally with the control server15. When able to communicate normally with the control server15, the client-function unit501of the POS terminal10communicates with the control server15, and executes processes based on the processing results of the control server15using the server-side product master database411. When unable to communicate normally with the control server15, the client-function unit501of the POS terminal10communicates with the server-function unit502, and executes processes based on the processing result of the server-function unit502using the control device-side product master database521.

Thus comprised, the client-function unit501can continue executing identical identical transaction-related processes using identical master databases whether communication is switched from the control server15to the server-function unit502.

In this embodiment of the disclosure, the server-side product master database411and control device-side product master database521are both master databases storing transaction-related information. When normal communication with the control server15is possible, the client-function unit501of the POS terminal10communicates with the control server15and executes transaction-related processes based on the process results of the control server15using the server-side product master database411. When normal communication with the control server15is not possible, the client-function unit501of the POS terminal10communicates with the server-function unit502, and executes transaction-related processes based on the process results of the server-function unit502using the control device-side product master database521.

Thus comprised, the client-function unit501can continue executing identical identical transaction-related processes using identical master databases whether communication is switched from the control server15to the server-function unit502.

In this embodiment of the disclosure the POS terminal10has a recording function for recording on roll paper (recording media). The client-function unit501of the POS terminal10produces receipts based on the transaction processes.

Thus comprised, a transaction processing system1having a POS terminal10configured to execute a transaction process and produce receipts, and a control server15that connects to the POS terminal10through a global network GN, can appropriately handle events in which the POS terminal10cannot communicate normally with the control server15.

In this embodiment of the disclosure, the client-function unit501of the POS terminal10monitors the communication response speed of the control server15, and determines normal communication with the control server15is not possible and switches communication from the control server15to the server-function unit502if the communication response speed is slower than a specific speed.

Thus comprised, the client-function unit501can appropriately detect when normal communication with the control server15is not possible.

After switching to the server-function unit502, the client-function unit501of the POS terminal10in this embodiment of the disclosure monitors the communication response speed of the control server15, switches from the server-function unit502to the control server15if the communication response speed of the control server15is greater than a specific speed.

Thus comprised, the client-function unit501communicates with the control server15when able to communicate with the control server15.

When communicating with the control server15, the client-function unit501of the POS terminal10in this embodiment of the disclosure monitors the communication response speed of the server-function unit502, and does not switch the communication connection if the communication response speed of the server-function unit502is below a specific speed.

Thus comprised, changing the communication connection when not necessary is prevented.

When communicating with the control server15, the client-function unit501of the POS terminal10in this embodiment of the disclosure does not monitor the communication response speed of the server-function unit502when the communication response speed of the control server15is greater than a specific speed.

Thus comprised, unnecessarily executing processes related to monitoring the communication response speed of the server-function unit502can be prevented, the processor load reduced, and processing efficiency improved.

The disclosure is described above with reference to a preferred embodiment thereof, but the disclosure is not limited thereto and can be modified and adapted in many ways without departing from the scope of the accompanying claims.

For example, the POS terminal10in the foregoing embodiment has a recording function for recording on recording media, and the POS terminal10produces receipts based transaction processes. However, a configuration in which a recording device with a recording function is connected to the POS terminal10, and receipts are produced by the recording device, is also conceivable.

In this example, the server-side data and control device-side data are product masters. However, the data may be any data that requires synchronization.

An example of the transaction processing system1according to the disclosure applied to a store system is described above, but the facilities in which the transaction processing system1is used are not limited to stores.

The devices of the transaction processing system1may also communicate using any desirable method.

In addition, the POS terminal10records by a thermal recording method in the foregoing example, but the recording method is not so limited.

The function blocks described above with reference to the figures can be embodied as desired by the cooperation of hardware and software, and do not suggest a specific hardware configuration.

The function blocks shown in the accompanying function block diagrams illustrate the functional configurations of the devices, but the specific embodiments thereof are not so limited. More specifically, there is no requirement for hardware embodiments of the function blocks shown in the figures, and a configuration in which the functions of plural functional parts are rendered by a single processor executing one or more programs is obviously conceivable. Some functions embodied by software in the foregoing embodiment may also alternatively be embodied by hardware, and some functions embodied by hardware in the foregoing embodiment may also alternatively be embodied by software.