Re: A first stab at a schema (Was: Would Any Developers Use This? )
Re: A first stab at a schema (Was: Would Any Developers Use This? )
- Subject: Re: A first stab at a schema (Was: Would Any Developers Use This? )
- From: Chris Boot <email@hidden>
- Date: Sun, 16 Sep 2001 22:40:35 +0200
Hi,
>
>> A first stab at a schema for an updating system:
>
>>
>
>> Every application that wants to be included in the update system puts
>
>> an
>
>> Update.plist file inside the resources. The file doesn't include much:
>
>>
>
>> The URL to the XML file which defines the most recent version. This XML
>
>> file is kept on the developers server. Example:
>
>> <key>UpdateInfoURL</key>
>
>> <value>http://www.developersite.com/programs/updates/myprogram.xml</value>
>
>>
>
>> It could also include additional parameters that can be used by the
>
>> developer on the server side, example could be name and serialnumber.
>
>> The
>
>> value will be appended to the url defined by the xml file on the server
>
>> side. This information could be written to the Update.plist when you
>
>> install the application or register it. This is optional.
>
>> <key>Parameters</key>
>
>> <value>username=foo&serialnumber=01234</value>
>
>>
>
>> All the other information about application name, version and such can
>
>> be
>
>> taken from regular Info.plist. No need for redundancy.
>
>>
>
>> On the server side there is an XML file pointed to by the UpdateInfoXML
>
>> field. It includes this basic information:
>
>> <version>1.01</version>
>
>> <size>125640</size> (this is in bytes)
>
>> <downloadURL>http://www.developersite.com/programs/download/myprogram1.01.
>
>> dmg</downloadURL>
>
>> <infoURL>http://www.developersite.com/programs/updates/myprogram.htm</info
>
>> URL>
>
>>
>
>> This is the basic info needed for the update system. There might be
>
>> some
>
>> extra info to sort out all little issues, like required version to
>
>> apply
>
>> the updater on (if that is the case). The update app scans all
>
>> applications after Update.plist files and builds a database. When
>
>> checking
>
>> for upgrades it will go out and fetch those XML files and compare it
>
>> with
>
>> the stored information. If the version is newer (or date if that is
>
>> better) it asks the user if it should download and install the new
>
>> version.
>
>>
>
>> The developer could have a script on the server side
>
>> (<downloadURL>https://www.developersite.com/programs/download?id=myprogram
>
>> 1.01.dmg</downloadURL>) which would append the optional parameters from
>
>> the Update.plist file. The complete URL would be
>
>> https://www.developersite.com/programs/download?app=myprogram1.01.dmg&user
>
>> name=foo&serialnumber=01234. Now you could check if it's a valid user
>
>> or
>
>> track some download statistics.
>
>>
>
>> This is just a suggestion how it could be done, comments?
This sounds roughly like how I described it. I do however think that we're
regressing by using our own XML for the server side rather than just a
normal plist file.
I also don't really agree with the parameters which are sent to the
server-side script, as my idea was that there be no data posted to the
server. This reduces the privacy concern that certain users may have. I
can see a big use for it, and it'll have to be discussed before we decide
for good.
I think the first step of the process of actually making the program is
finding a name for the system. Then we can create a SourceForge project and
all work on it together. Any ideas are welcome (it looks like I'm leading
this thing, but I'd be glad to pass that responsibility on to someone else).
Let's get it on!
--
Chris Boot
email@hidden
"Unix is user friendly. It's just selective when choosing friends."