Research: Disconnected scale model

Issue No: FRM-199
Created 6/26/2014 3:45:32 PM
Type Task
Priority Major
Status Closed
Resolution Fixed
Fixed Version 15.3
Description We need to have a disconnected model for scale.   We need to solve for "remote" scales ability to maintain data and have executable object. When the internet is present, scale will need to be able to get the latest objects as needed. The initial version must also be able to use/call/run acu programs to handle functions like the scale ticket printing, grading testing equiement and weight reading programs.     The idea of disconnected is the ability to run without connection to the main server (or some other internet source) which means today these locations/scales cannot use thin client to connect to our software.     How does this work today (talking disconnected/remote scales):   All acu programs and all iRely databases exist in a local copy of the software at a remote pc. Since all the system exists on the remote pc, if we have no internet available, the application simply runs the programs to allow scale ticket entry.   A background program will run using the local sql table, an acu program and windows scheduler to look at the local table for records ready to transmit to the home office/main server. This background program builds an xml file and calls a web service on the main server to transmit these records/scale tickets from the pc to the server. When the connection is down, the local pc continues to allow entry of new tickets and once the internet/connection to the server is again available then it will transmit all stored records.     i21 issue....   Need to be able to run the "scale" program on a pc with no internet connection. This means the new code will have to reside locally with the last known object and be able to execute that until the internet is available again and any new object can be downloaded. Note: not all scales are "remote" but in theory, all scales should have the ability to gather tickets even if there is no connection to the internet or server.     1) Need to create a way to save and run sentia programs on a stand alone pc. If connection to the cloud exists, then it should make sure it is the latest program before running.   2) Need to have a way to use a local data base to use for table look ups, storing of scaled data and so on. This data will always be kept and updated by another process when connections are available.   3) Must be able run Scale/Scale set up and reports outside of i21 on these scale computers.   While I see that we can change some of our processes for updating local data nightly as well as how we update the server when the connection is present, these processes will work as they are today until a later release.     From Steve 4/29/2015: *(Mike)*   Here are some ideas and questions on how we can do this but I am open to any suggestions.   # This should be part of the i21 Framework so the module programmers don’t have to code this as it could be used for other screens/modules in the future. *(Mike) This would depend on the true number of applications that may need this. Due to the amount of data, for scale we keep a "targeted" local DB with only those things needed to process scaling. Doing more than that would become a large effort.* # Extend GCE CURD to run disconnected. # Do we require a local SQL Database to store the data or would it be better/easier to store the data in JSON files or another method? *(Mike) if we can store data in tables that work like SQL Server without the cost, then that woudl be a huge benefit.* # When there is an Internet connection we could update the i21 database and archive the local data. # We need to consider other related table data (Entity, Inventory, etc.) being required to run i21 disconnected. POS would require local copies of Entity and Inventory data to work. How/when do we update this data and what happens if the user needs to add/edit records in these tables? *(Mike) Scale already keeps a local copy of the data tables (last nights known values) to use in this situation. Our process is not impacted by this loss because the intent of the scaling process is to gather tickets and we use a web service to update the main server once that connection is restored.* # Provide a Workstation/User Option in i21 to run one or more screens disconnected from i21.