Fieldpine Logo

 Quick Links: Site Home | Gds Documentation | All Documentation

Mesh Technical Details


The Mesh subsystem is used in Fieldpine products to ensure data is available everywhere it is needed and works regardless of network changes and reliability. The following information is provided to aid support workers and is not necessarily a 100% accurate description of internal operation.

The mesh layer is primarily responsible for ensuring that data is maintained consistenty across all machines and databases. Mesh can be configured to read and write SQL databases on different nodes in the network and these will be maintained to reflect current details. Mesh nodes can include cloud storage services on NAS devices

Consider the simple configuration shown.

When a change is made on an checkout or manager pc, the mesh layer:

With this method of operation, any component can fail and operation will reasonably continue. Should all network access to the store fail, you can manually transfer the data on USB devices (or mobile apps) by simply inserting a USB into store A and then store B. The mesh layer dynamically decides what data needs to go where

With a mesh system, any authorised node that gets any form of connectivity, can be updated. Naturally there are a lot of security and control systems as well.

Mesh operation does not require permanent network connections. A laptop operating in head office (connected to network, will be actively communicating) can be taken on a plane (no network) and edits/changes made to the system. These changes are buffered until that laptop next connects in some way to the network, and then those changes will be applied to the other systems

SQL databases are possible at any point (only two are shown for illustration purposes), and mesh will maintain those databases with current details. Changes made in SQL can be reflected back to the system and replicated to other databases.

To most users, the mesh layer will be completely transparent; data changed in one place simply appears in other places automatically


Concepts

For mesh operation, there are a number of concepts to understand. You do not need these as a normal user, only if you wish to understand how the system works.

RmSystem
The RmSystem defines the overall owner and database in use. The systems in the picture above would all be part of the same RmSystem. Consider RmSystem to be like "live database" or "test database".

If a machine accidentally receives data for a different RmsSystem, it is simply ignored.

If you have multiple seperate businesses, each will have a unique RmSystem. If you create a test database, it will be allocated a RmSystem value.

RmSystem values are designed to be visible, they are like an IP address or domain name. The primarily identify who this data belongs too. An RmSystem value is four numbers, such as 77,123,89,201192. They are written with commas between individual numbers.

Key
In order for a machine to be part of an RmSystem (database) it needs a key. This is a very long random sequence used for encryption control. In order to successfully communicate, a machine needs the RmSystem and a valid key.

Keys are the minimum security requirement, you can apply more restrictions if you wish

Business Transaction
The actual operation the user is wanting to perform. Such as Business Transactions are stored in TUBT packets.

There are some variations of Business Transactions, such as Events (TUEV) and Status Packets (TUST), used for support and monitoring

Physkey
A generated primary key for every mesh record. This key is unique over all systems and uniquely identifies a single record. Physkeys are very like GUID or UUID values but their internal structure is slightly more optimised for indexing purposes, they are not simply random numbers. Physkeys are typically 32 ascii characters, but have excellent compression.
Database-Id
Each database in the network, such as SQL/Server or Access is given a unique "Database-Id". These identifiers are allocated automatically internally and may change from time to time. They are designed to be unique to each database instance. In the illustration, databases "1" and "2" would have different database-ids even though they are part of the same RmSystem.

Database ids are commonly referred to as dbid.

Implementor
Processes Business Transactions and updates strutures and database tables if needed. An implementor essentially does the work of a transaction. An implementor a piece of code or a program.
Device-id
Each computer also internally generates a unique "device-id" that uniquely identifies this computer. This is generated as much as possible from something that changes rarely, such as network MAC address. On virtualised servers where even MAC addresses may not be stable, the system may allocate random UID values and store them in a file for reference. The intent of this value is to uniquely identify each machine running in the Mesh network. The value of this number is treated as a unique sequence of characters and different systems (Windows/Android etc) can use different techniques.

If the device ID changes, extra network traffic is generated. At any single point in time a whole computer will only have one device-id.

There are a couple of other terms also, but these are much more technical and rarely encountered

Piid
A physical installation id. This is a copy of the device-id at the time the system was first installed. A server capable of handling multiple databases will have one Piid per database
Instance id
A unique identifier for a single process. Every program that is communicating on Mesh creates a unique instance id. This can be used to direct communication to a specific single program
Install id
A internal "key" that is generated when a new RmSystem is created. These values are sometimes used when communicating to external servers as proof that they really are members of an RmSystem they claim to be. Using the install id for this verification means that the main encryption keys do not need to be placed on internet servers. The Install id can be manually changed if required, but some disruption to external servers may occur during change over.

Install ids are designed to be protected, but not to the same level is encyption keys

The mesh database is fully able to handle duplicate packet transmission. A node can send exactly the same packet of data as often as it wishes and receivers are responsible for blocking data they have already processed.