Flexible Distribution
With conventional software, all of an application's compiled code has to be installed on a machine before it can run. Similarly, any data files that are accessed directly need to also be on the machine. If the application accesses a database then that may be stored remotely but even so a large amount of information has to normally be transferred to a machine before an application can execute.
In the case of Adapt a user of an application can access the dAtas that form the Total Design Knowledge. The flexible lists used to hold each dAta can consist of a number of memory blocks each of which may exist on the local machine or on a remote device (such as the cloud). This means that only a small number of the memory blocks that make up the application need to be transferred to the local machine before it can start to execute. As a result, an application that has not previously been run on a particular machine can start to execute almost instantaneously (and without a separate installation process) because memory blocks are transferred 'on demand' so that only those that are actually required need be downloaded.
In addition, in a situation where an application is just used on a system and not adapted or the definition viewed etc. then a large percentage of the application information need not be downloaded to that system (until it is required). In situations where a system does not have a permanent link to the cloud then the full application can be downloaded to ensure it is always operable.
Flexible Distribution utilises the access control mechanism within the Flexible List System to coordinate and synchronise changes that may occur to a specific list across a number of machines. It is obviously important to ensure that a list element can only be changed on one system at any one time and that other systems that may access the element always 'see' the latest version.
When the application designer makes a change or wishes to distribute a change made by a user to other users then Flexible Distribution ensures that any stored memory blocks of the relevant dAtas on remote systems are discarded; this ensures that the newly revised versions will be downloaded when they are next required on those systems. In this way, applications are seamlessly updated as they are used.
Of course, some types of user will not wish updates to be made automatically because they have to formally approve and accept any revisions. Flexible Distribution together with Change Management records each version of the application to fully support such users and to allow reversion to older versions should problems arise with a new version.