The current situation
Operating system and application developers are now being required to provide updates for their products during the product’s service life and beyond. This is to provide for a computing environment that is performs in an efficient, secure, reliable and optimum manner. The updates may be released at regular intervals such as on a monthly basis or in response to a situation such as the discovery of a bug or security exploit.
A common situation that happens with most regular and mobile computing devices when a user takes delivery of them is that the user downloads a large data package to bring it up to date. This may be done many times if multiple units running the same platform are purchased.
Similarly, a household may have multiple units running the same operating environment and they have to keep these up to date. The typical example of this may be a family with two or three children who are at secondary school. Here, they may have two or three computers for the children to use as well as one computer per adult. This could be brought about with the older child being given a more powerful computer as they enter senior high school or another computer given to the younger children as they start their secondary school.
But the same bandwidth would be used again and again to update each and every device. This may not be a problem for a couple with one device per adult but would be a problem when you are thinking of environments with more than two devices which is fast becoming the norm.
Using a network-attached storage to locally cache updates
Somehow the network-attached storage devices need to be able to support the ability to locally hold updates and patches for operating systems and applications used in computers on a home or small-business network.
The practice is performed frequently with large-business computer setups because of the number of computers being managed in these setups. But it could be practiced with home and small-business setups using a simplified interface. This could be based on the use of a local-storage application for regular or mobile client operating environments which supports this kind of local updating.
A local client application to manage system-update needs
Here, the local-client software could register which operating environment the host computer runs and what eligible applications are on the system so as to prepare an “update manifest” or “shopping list” for the computer. The “shopping list” would be based on the core name of the software, no matter whether different computers are running different variants of the software, such as home laptops running Windows 7 Home Premium while a work-home laptop runs Windows 7 Professional. This manifest would be updated if new applications are installed, existing applications are removed or changed to different editions or the operating system is upgraded to a different version or edition.
A local software manifest held by the NAS
This manifest is then uploaded to the NAS which runs a server application to regularly check the software developers’ update sites for the latest versions and updates for the programs that exist on the “shopping list”. There could be a “commonality” check that assesses whether particular updates and patches apply across older and newer versions of the same software, which can be true for some Windows patches that apply from Windows XP to Windows 7 with the same code.
At regular intervals, the NAS checks for the updates and downloads them as required. Here, it could be feasible to implement logic the check the updates and patches for malware especially as this update path can be an exploit vector. Then the computers that exist on the network check for new software updates and patches at the NAS.
Such a concept could be implemented at the client with most regular and mobile operating systems and could be implemented on network-attached storage devices that work to a platform that allows software addition.
It would also require software developers who develop the operating systems and application software to provide a level of support for update checking by intermediate devices. Initially this could require setups that are particular to a particular developer being installed on the client device and the NAS, but this could move towards one software update solution across many developers.
A change of mindset
What needs to happen is a change of mindset regarding software distribution in the home and small business. Here, the use of local network storage for software updates doesn’t just suit the big business with more than 50 computers in its fleet.
It could suit the household with two or more children in secondary school or a household with many young adults. Similarly a shop that is growing steadily and acquiring a second POS terminal or a medical practice that is setting up for two or more doctors practising concurrently may want this same ability out of their server or NAS.
The NAS shouldn’t just be considered as a storage device but as a way of saving bandwidth when deploying updates in to a household or small business who has multiple computers on the same platform.