Home       Goals       Download       Documentation       Support Us       Development       Job Openings       Webstore       Patrons       Contact us / Enlist      

 

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

application_update_framework [2012/03/30 01:32] (current)
Line 1: Line 1:
 +====== Application update framework ======
  
 +
 +This page is an attempt to describe the process of updating of an application in order to create a universal update framework that can be used by multiple applications to perform regular updates of applications according to a set of available rules that can be set for the application. This is not intended to superseed the update fucnctions of various operating systems but rather to supplement it in order to make it possible for application developers to enable their applications for dynamic growth regarding content as well as keeping the applications updated.
 +
 +===== ExampleApplication1. =====
 +
 +For each application there are a few things we need to think about.
 +
 +==== ApplicationContent ====
 +
 + - Here we talk about all files for the application.
 +
 +These files can be of any type, this should be irrelevant for the update application, all the update application needs to know are facts about the files.
 +
 +==== Location specific information ====
 +
 +Where is said content on device - [[Define structure of content-repository]], i.e. where to place content, 
 +
 +Where is said content on remote server (update repository) [[Define structure of content-repository]] i.e. where is content one is searching for placed. This is done by entering url's and linking these to a unique number.
 +
 +A url can also be something like 127.0.0.0 (or perhaps rather use localhost (i.e. DNS like denomination) in order to make application independant from IPv4 and thus i.e. IPv6 compatible).
 +
 +==== What files to update ====
 +
 +A list of which files/content for a particular application one wants updated [[Define update list structure]] here each file needs a reference to a content-repository (defined above) possibly using a unique number generated by the application so that all applications of one kind will not be hit by potential hacking attempts over a range of different mobile/non mobile devices.
 +
 +
 +==== What if location of material one is updating changes ? ====
 +
 +What if location of material one is updating changes ? create mechanism with where the update application becomes aware of changes to update repository structure and can prompt the url for info on said changes and notifying the app user of said changes and asking if user wants to update internal references for future use. One could use such a mechanism to continuously alter locations for material as to prevent automated attacks on specific repository structures.
 +
 +
 +==== Frequency of said updates ====
 +
 +What content one wants added to the application (i.e. files not already covered by regular updates (subscription model)) and how often (frequency) - A marker should probably go in the file list for each file and a list of different update intervals could then be created in a separate table/file
 +
 +
 +==== Update options ====
 +
 +Does user want to be prompted yes / no ( important for mobile users as they might prefer certain carriers etc. and not just update silent.
 +
 +Silent update - Application updates all files in update list
 +
 +Does user want to search for new material
 +
 +Does user want new material silently or to be prompted.
 +
 +==== Error checking download, checksums, encryption and rollback ====
 +
 +=== File size matches ===
 +Check size against list - Define list
 +
 +=== Hash checking (checksums) ===
 +Hash checking against source, manual check, automated check
 +Define what checksum to use - Where is checksum found automated - How is checksum entered manually
 +
 +=== Encryption ===
 +Define encryption types, and when and how encryption is used.
 +
 +=== Roll back ===
 +
 +Any update of an application needs a rollback option in case of being broken, hence a program utilizing this update application should have the possibility of a failsafe start that asks if one wants to make a rollback, perhaps a grubbish start of the program where starting program in certain way or by running the app-update app one can roll back a specific application defined within the scope of applications under the app-update app's domain.
 +
 +[[Define rollback mechanism]]
 +
 +
 +=== Method of transfer ===
 +
 +This section is dedicated to a discussion of possible transfer methods for the updates.
 +
 +TFTP - [[TFTP_Method|Method]] - [[TFTP_Advantages|Advantages]] - [[TFTP_Disadvantages|Disadvantages]]
 +
 +cURL - [[cURL_Method|Method]] - [[cURL_Advantages|Advantages]] - [[curl_Disadvantages|Disadvantages]]
 +
 +SFTP - [[http://kb.iu.edu/data/akqg.html|Method]] - [[sftp_Advantages|Advantages]] - [[sftp_disadvantages|Disadvantages]]
 +
 +=== References ===
 +
 +TFTP http://en.wikipedia.org/wiki/Trivial_File_Transfer_Protocol
 +
 +cURL http://en.wikipedia.org/wiki/CURL - http://curl.haxx.se/
 +
 +
 +SFTP - http://kb.iu.edu/data/akqg.html
application_update_framework.txt ยท Last modified: 2012/03/30 01:32 (external edit)
 
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki



The contents of this site, i.e. texts, programs and images, but not limited to these, belongs to their respective owners and are protected under international copyright treaties according to individual licensing.

Please make sure you familiarize yourself with the appropriate permissions / licenses and follow these individually before using anything you find on this site.

The Global Ability Initiative is a Non Profit venture dedicated to the development of gratis, open source software for the disabled, the sick and the needy - We aim to provide assistive software to a wide variety of people, suffering for example from Aphasia, MS, ALS, Cerebral Palsy and other disabilities as well as pushing initiatives in the field of ECG monitoring.

With reservation for changes and errors.