Projects:Retail Multi Server Environment
There is a requirement to support WebPOS in distributed server environments. Distributed server environments make it possible to:
- distribute the load from many POS systems on different servers
- locally install a store server in a store so-that when the store is offline WebPOS systems can still work in case of high volume environments
Related to distributed environments there is also the requirement to make sure that tickets are always stored centrally before they are removed from the WebPOS internal database.
The WebPOS system should transparently switch from a store server to a central server or vice versa depending on which server is available or if the store is connected to the internet.
The other main requirement is to be sure that there is no single-point-of-failure. Therefore request routing/transparent server switching is implemented in the WebPOS client.
Also some requests can be tried on the first available server, other requests (like transactions) should be send to all available transactional servers. A message can only be deleted from the local storage if it was delivered correctly on the main/central server.
When working with multiple servers we also need to take care of authenticating on several servers without storing the password locally. A solution has been designed for this using symmetric encryption.
The changes in this project, defined here, are mainly related to this last topic, switching transparently. The changes include:
- defining the available server(s) somewhere, or defining a central server
- in the WebPOS add an extra communication layer which allows switching from one server to another and which support distributing requests to different servers
- implement authentication using generated authentication tokens
- Tracking issue: https://issues.openbravo.com/view.php?id=29912