3 <TITLE>Automatic software distribution via HTTP
</TITLE>
4 <!-- Changed by: Petter Reinholdtsen, 31-Jan-1996 -->
5 <!-- Deadline 29. january 1996 -->
8 <H1 ALIGN=center
>Automatic software distribution via HTTP
</H1>
9 <H2 ALIGN=center
>Adding a web-interface to Store
</H2>
10 <ADDRESS>Petter Reinholdtsen, Telenor Media
</ADDRESS>
13 Store is a software administration tool which gives consistent
14 configuration and distribution in an heterogeneous UNIX environment.
15 It was originally implemented using NFS as the transport protocol.
16 This paper presents an implementation of Store using HTTP. This
17 enables distribution of Store application across firewalls and
18 filtering routers. With this infrastructure it is possible for
19 network aware software to query it's main site about new versions, and
20 automatically upgrade itself.
23 store, software distribution, automatic software upgrade, tardist, storetar
27 Automatic software distribution in an heterogeneous UNIX environment
28 can save many hours of labor. With such infrastructure implemented it
29 not only simplifies system administration, but also enables network
30 software to automatically inform the user of new releases or even to
31 automatically upgrade itself over the net.
33 <P>This paper presents an extension of Store[
1] using HTTP. Store is a
34 software administration tool made at PVV[
2], an Computer Students
35 Association at the University of Trondhjem, Norway. For long, I have
36 been planning to extend Store to use HTTP. This was mostly because
37 Store's regular transport-mechanism, NFS, is extremely insecure.
38 Because of this insecurity, firewalls and some routers will not allow
39 NFS-traffic. HTTP on the other hand is considered harmless.
41 <P>This summer I had the pleasure of testing SGI's tardist. This is
42 an HTTP/WWW extension of their normal distribution format. Being
43 placed on the wrong side of an NFS-filtering router, I was very eager
44 to implement Store using HTTP.
47 <H2>Description of Store
</H2>
49 Store is a system administration tool suite, which targets the
50 maintenance and distribution of third party application in an
51 heterogeneous environment. Third party application is defined as
52 <CITE>[...], any group of programs and data files that forms a
53 logical unit and can be isolated from the operating
54 system.
</CITE>[
4] Normally this is some .tar.gz-distribution found
57 <P>Store uses NFS as the transport protocol, and a bunch of
58 perl scripts to maintain and distribute the application. The
59 source-code and the "original" binary version of the application
60 resides on a "Master store". The binary version is automatically
61 copied to "Slave stores" who serves the architecture in question.
63 <P>The appropriate version is placed in a "link three", which is
64 soft-links into the local Slave or Master store. Store uses three
65 "axes" (domain, architecture and level) to choose the appropriate
66 version for the given system configuration. Every file is given a
69 <P>This system allows flexible and consistent application management
70 of different setup for different systems.
72 <P>To allow software transfer via unsecure channels, Stig S. Bakken at
73 PVV is working on application signing. Each sysadm will sign the
74 files he inserts on the master store. The sysadm on the slave store
75 can then choose who he trust, and only fetch the versions compiled by
78 <P>Store also has functions to simplify compiling and configuring the
79 applications. These features are not described in this paper.
81 <H2>Store via HTTP
</H2>
83 Store via HTTP presents the local slave or master store to the net.
84 It presents three different "views" to the store; application list,
85 application info and application binaries/source. Different
86 parameters are given to specify the wanted information. To the list
87 of application, normal parameters will be wanted architecture, level
88 (alpha/beta/release/old) or date of change. The application name is
89 required for the application info. The info-page is used by automatic
90 software upgrade to get information about the latest versions and
91 supported architecture.
93 <P>The HTTP server side is implemented as a standard CGI-script. The
94 script either returns formatted or unformatted lists (application list
95 and info), or on-the-fly .tar.gz-files (binaries and source).
97 The client side is some perl-scripts which either connects to the HTTP
98 server and downloads the wanted application, or unpacks the already
101 <P>By adding a new mime-type (application/x-storetar) to the users
102 .mailcap and the appropriate programs to handle it, the user is able
103 to browse the list of available software, and receive and install the
104 software locally using a normal web-browser. To install the software,
105 the client program unpacks the newly downloaded .tar.gz-file in the
106 slave store directory. Currently the software must be downloaded and
107 installed by the sysadm-user "store", but with suid-programs and
108 password protection, any user could install software.
111 <H2>Automatic software upgrade
</H2>
113 Automatic software upgrade enable network-aware software to connect to
114 the original site, and asks about the last version. If there is a
115 newer version available, the user is given the opportunity to
116 automatically replace the old binaries/configuration files with new
117 ones which are fetched over the net.
119 <P>To enable secure upgrade over the net, the software and the address
120 of the master site must be signed, to prevent compromised software to
121 enter the system. With an public key-system, the author/distributer
122 can distribute the public key and the with the initial package.
126 Store via HTTP only gives the infrastructure to distribute software.
127 To fully explore the opportunities support for encrypting, payment and
128 global caching must be developed.
130 <P>Encrypting gives the opportunity to restrict the availability of
131 software in a more controlled way. The software can be downloaded by
132 anyone, but only unpacked and used by the authorized sysadm.
134 <P>Payment will enable the copyright owner of the application to sell
135 the software via the Store HTTP infrastructure. Different solution to
136 this problem are currently being tested. DigiCash[
5], CyberCash[
6]
137 and Millicent[
7] are some of the proposed systems.
139 <P>Global caching should be implemented to reduce the bandwidth used in
140 distributing the software. This could be solved by implementing a
141 more intelligent interaction with the normal web-caches.
145 When the software administration tool Store is given an HTTP-based
146 infrastructure, it no longer inherit the drawbacks of NFS. It is now
147 possible to automatically fetch software thru firewalls and filtering
148 routers. Via the HTTP-store infrastructure it is also possible to
149 implement automatic software upgrading for network-aware applications.
151 There is still some missing parts in Store, notably signing of
152 software and software caching. The first part is being incooperated
153 in the main Store distribution. The second could be solved using the
154 normal web-caches. The current HTTP-Store server needs some tuning
155 for optimized caching.
158 <H2>Acknowledgments
</H2>
160 Thanks to Per Einar Dybvik, Telenor Media, for inspiring me to write
161 this paper (and paying me while implementing :-). Thanks to Stig
162 S. Bakken, University of Trondheim, for information about Store and
163 many gory details. Thanks to Ken Ronny Schouten for moral support and
164 inspiring discussions.
166 <P>No thanks to the Computer Science department at University of
167 Troms
ø, for neither help nor support.
172 <LI><A HREF=
"http://www.pvv.unit.no/~arnej/store/storedoc.html">Store
173 - A System for Third Party Software Installation and Maintenance
</A>
174 <BR>http://www.pvv.unit.no/~arnej/store/storedoc.html
176 <LI><A HREF=
"http://www.pvv.unit.no/">ProgramVareVerkstedet
</A>
177 <BR>http://www.pvv.unit.no/
179 <LI><A HREF=
"http://www.pvv.unit.no/~arnej/store/storedoc_toc.html">STORE -
180 Table of Contents
</A>
181 <BR>http://www.pvv.unit.no/~arnej/store/storedoc_toc.html
183 <LI><!-- 4 --><A HREF=
"ftp://ftp.pvv.unit.no/pub/store/paper.ps">Store - a
184 System for Handling Third-Party Applications in a Heterogeneous
185 Computer Environment
</A>
186 <BR>ftp://ftp.pvv.unit.no/pub/store/paper.ps
187 <LI><!-- 5 --><A HREF=
"http://www.digicash.com/">DigiCash
</A>
188 <BR>http://www.digicash.com/
189 <LI><!-- 6 --><A HREF=
"http://www.cybercash.com/">CyberCash
</A>
190 <BR>http://www.cybercash.com/
191 <LI><!-- 7 --><A HREF=
"http://www.w3.org/pub/Conferences/WWW4/Papers/246/">Millicent
</A>
192 <BR>http://www.w3.org/pub/Conferences/WWW4/Papers/
246/
195 <H3>About the Author
</H3>
197 Petter Reinholdtsen (
<A HREF=
"http://www.td.org.uit.no/~pere/">http://www.td.org.uit.no/~pere/
</A>)
198 <pere@td.org.uit.no
> is an undergraduate at the University of
199 Troms
ø. His main interest is distributed information systems
200 and the Internet. He has been working with Internet services and web
201 since he formed the first team at the Internet Hunt. He has been in
202 from the start at the Norwegian Telecom's main web-services,
<A
203 HREF=
"http://origo.telenor.no/">Telenor Origo
</A> at Telenor Media.
204 The last to years he has also been working part time as
205 webmaster/designer at the university library and the Norwegian