platform-update-home/doc/working/update-policy.html

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.4, Tue Jun 24 01:18:52 2003 UTC revision 1.5, Wed Jun 25 01:33:04 2003 UTC
# Line 8  Line 8 
8  item] Improve organizational control over product updates</p>  item] Improve organizational control over product updates</p>
9  <h2>1. The Problem</h2>  <h2>1. The Problem</h2>
10  <p>Eclipse Update allows users to search for updates to the currently installed  <p>Eclipse Update allows users to search for updates to the currently installed
11  features. For each installed feature, Update will use the embedded URL to  features. For each installed feature, Update uses the embedded URL to
12  connect to the remote server and search for new versions. If there are updates,  connect to the remote server and search for new versions. If there are updates,
13  Eclipse allows users to initiate the install procedure. After downloading,  Eclipse allows users to initiate the install procedure. After downloading,
14  installing and restarting the platform, new feature version is ready for use.</p>  installing and restarting the platform, new feature version is ready for use.</p>
15  <p>In companies with many users of the same Eclipse-based product (typically a  <p>In companies with many users of the same Eclipse-based product (typically a
16  commercial one), several problems can arise from this model:</p>  commercial one), several problems can arise from this model:</p>
17  <ol>  <ol>
18    <li>Updates for very large products (e.g. 500+ plug-ins) can also be large.    <li>Updates for very large products (e.g. 500+ plug-ins) are also large.
19    I/T support teams may not like the idea of hundreds of developers individually    I/T support teams may not like the idea of hundreds of developers individually
20    downloading 500MEG updates to their individual machines. In addition to the    downloading 500MEG updates to their individual machines. In addition to the
21    bandwidth hit, such a large download request may fail, leading to repeated    bandwidth hit, such a large download request may fail, leading to repeated
# Line 23  Line 23 
23    <li>Some companies explicitly don't want the developers downloading updates    <li>Some companies explicitly don't want the developers downloading updates
24    directly from the Internet. For example, they can set up a local support team    directly from the Internet. For example, they can set up a local support team
25    that may not be ready to handle requests related to the version of the product    that may not be ready to handle requests related to the version of the product
26    available from the provider's update site. They may want to limit updates and      already available from the provider's update site. They may want to restrict updates and
27    fixes to the internally approved list. Ideally, they would do that by setting    fixes to the internally approved list. Ideally, they would do that by setting
28    up 'proxy' update sites on the LAN (behind the firewall).</li>    up 'proxy' update sites on the LAN (behind the firewall).</li>
29    <li>Once updates are set in the proxy sites as above, administrators need a    <li>Once updates are set in the proxy sites as above, administrators need a
# Line 31  Line 31 
31  </ol>  </ol>
32  <h2>2. The Proposal</h2>  <h2>2. The Proposal</h2>
33  <p>The proposed solution in Eclipse 3.0 consists of three new capabilities that  <p>The proposed solution in Eclipse 3.0 consists of three new capabilities that
34  together address all of the above problems. </p>  together address the above problems. </p>
35  <h3>2.1 Support for creating local (proxy) update sites</h3>  <h3>2.1 Support for creating local (proxy) update sites</h3>
36  <p>First step for a product administrator would be to set up a local Eclipse  <p>First step for a product administrator would be to set up a local Eclipse
37  update site on a server connected to the company's LAN (behind the firewall).  update site on a server connected to the company's LAN (behind the firewall).
38  The update site would be a subset of the product's update site on the Internet  The update site would be a subset of the product's update site on the Internet
39  because it would contain only features and plug-ins related to the updates that  because it would contain only features and plug-ins related to the updates that
40  the company wants applied at the moment. Technically, this site would be a  the company wants applied at the moment. Technically, this site would be a
41  regular Elipse update site with site.xml, feature and plug-in archives.</p>  regular Eclipse update site with site.xml, feature and plug-in archives.</p>
42  <p>Administrators would construct this site in two ways:</p>  <p>Administrators would construct this site in two ways:</p>
43  <ol>  <ol>
44    <li>Product support teams would make the zip file of the update site readily    <li>Product support teams would make a zip file of the update site readily
45    available for this particular purpose. Administrators would simply need to    available for this particular purpose. Administrators would simply need to
46    download the zip file from the product support web page using the tool of    download the zip file from the product support web page using the tool of
47    their choice and unzip it in the local server. This approach is useful for    their choice and unzip it in the local server. This approach is useful for
# Line 53  Line 53 
53    would be very similar to the current update search wizard up to the install    would be very similar to the current update search wizard up to the install
54    point. At that juncture, Update would simply copy archives into the designated    point. At that juncture, Update would simply copy archives into the designated
55    local site and update site.xml instead of commencing the installation phase.    local site and update site.xml instead of commencing the installation phase.
56    This option is fully automated and would greatly simplify administrator's task    This mirroring capability would be fully automated and would greatly simplify administrator's task
57    but relies on Update network connection capabilities (improved downloading    but it relies on Update network connection support (improved downloading
58    reliability and performance is addressed in a different Update 3.0 plan item).</li>    reliability and performance is addressed in a different Update 3.0 plan item).</li>
59  </ol>  </ol>
60  <h3>2.2 Common update policy control</h3>  <h3>2.2 Common update policy control</h3>
61  <p>Since features have Update site URL embedded, they are unaware of the local  <p>Since features have Update site URL embedded in the manifest, they are unaware of the local
62  update sites set up by administrators. It is therefore important to provide <b>  update sites set up by the administrators. It is therefore important to provide <b>
63  redirection capability</b>. This and other update policy settings can be set for  redirection capability</b>. This and other update policy settings can be set for
64  a Eclipse product by creating an update policy file and configuring Update to  an Eclipse product by creating an update policy file and configuring Update to
65  use that file when searching.</p>  use that file when searching.</p>
66  <p>The file in question can have any name, but needs to conform to standard Java  <p>The file in question uses XML format and can have any name. The file can be set in <b>
67  properties syntax. The file can be set in <b>  Preferences&gt;Install/Update</b><font color="#0000FF"> </font>in the <b>Update
68  Preferences&gt;Install/Update&gt;Automatic Updates</b> <font color="#0000FF">[as of  Policy</b> group. The text field
69  M1; final home may change for 3.0; in M1, the entry is called 'Address Mapping  is empty by default: users may set the URL of the update policy file. The file
70  URL'; this will also change in subsequent milestones]</font>. This entry field  is managed by the local administrator and is shared for all the product
 is empty by default: users may set the URL of the update policy file. This file  
 is set up by local administrators and is shared for all the product  
71  installations. Sharing can be achieved in two ways:</p>  installations. Sharing can be achieved in two ways:</p>
72  <ul>  <ul>
73    <li>If users install the product: users are told to open the preference page    <li>If users install the product: users are told to open the preference page
# Line 78  Line 76 
76    in the primary product feature and set the default value of the 'updatePolicyFile'    in the primary product feature and set the default value of the 'updatePolicyFile'
77    property as follows:<br>    property as follows:<br>
78    <br>    <br>
79  &nbsp;&nbsp;&nbsp; <code>org.eclipse.update.core/updatePolicyFile = &lt;URL value&gt;  &nbsp;&nbsp;&nbsp; <code>org.eclipse.update.core/updatePolicyFile = &lt;URL value&gt;<br>
80    </code><br>    </code><font color="#0000FF">[this does not work yet]</font><br>
81    <br>    <br>
82    This will cause all the installation to have this file set by default.</li>    This will cause all the installations to have this file set by default.</li>
83  </ul>  </ul>
84  <p>A file has been chosen for two reasons: it allows central control over the  <p>File-based mechanism has been chosen for two reasons: it allows central control over the
85  update policy settings for an installed product, and it is also 'all or nothing'  update policy settings for an installed product, and it is also 'all or nothing'
86  - individual users cannot change some aspects of the policy while keeping  - individual users cannot change some aspects of the policy while keeping
87  others.</p>  others.</p>
88  <p>The policy file can contain the following key/value pairs:</p>  <p>The policy file must conform to the following DTD (note that the syntax is
89  <h4>url-map</h4>  subject to change up to the 3.0 API freeze):</p>
 <p>Syntax:</p>  
90  <blockquote>  <blockquote>
91    <pre>url-map.&lt;feature ID prefix&gt; = &lt;local URL&gt;    <p><tt>&lt;?xml encoding=&quot;ISO-8859-1&quot;?&gt;</tt>
92  url-map.* = &lt;default local URL for all the features&gt;</pre>    <p><tt>&lt;!ELEMENT update-policy (url-map)*&gt;</tt><br>
93      <tt>&lt;!ATTLIST update-policy</tt><br>
94      <tt>&gt;</tt></p>
95      <p><tt>&lt;!ELEMENT url-map EMPTY&gt;<br>
96      &lt;!ATTLIST url-map<br>
97      &nbsp;&nbsp;&nbsp; pattern&nbsp;&nbsp;&nbsp; CDATA #REQUIRED<br>
98      &nbsp;&nbsp;&nbsp; url&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CDATA
99      #REQUIRED<br>
100      &gt;</tt></p>
101  </blockquote>  </blockquote>
102  <p>This key is used to remap Update URLs embedded in feature manifests. When  <h4>url-map</h4>
103  searching for new updates, Eclipse search will check the update policy (if  <ul>
104      <li><b>pattern</b> - a string that represents prefix of a feature ID (up to
105        and including a complete ID)</li>
106      <li><b>url</b> - a URL of the alternative update site that should be used if
107        the feature ID begins with the pattern</li>
108    </ul>
109    <p>This element is used to override Update URLs embedded in feature manifests. When
110    looking for new updates, Eclipse search will check the update policy (if
111  present) and check if <b>url-map</b> for the matching feature prefix is  present) and check if <b>url-map</b> for the matching feature prefix is
112  specified. If a match is found, the mapped URL will be used instead of the  specified. If a match is found, the mapped URL will be used <b> instead</b> of the
113  embedded one. This way, administrators can configure Eclipse products to search  embedded one. This way, administrators can configure Eclipse products to search
114  for updates in the local server behind the firewall. </p>  for updates in the local server behind the firewall. Mealwhile, third-party
115  <p>Several url-map entries may exist in the file. The feature prefixes may be  features installed by Eclipse Update will continue to be updated using the
116    default mechanism because they will not find matches in the policy.</p>
117    <p>Several <b>url-map</b> elements may exist in the file. Feature prefixes can be
118  chosen to be less or more specific. For example, to redirect all Eclipse  chosen to be less or more specific. For example, to redirect all Eclipse
119  updates, the key would be <code>url-map.org.eclipse</code>. Similarly, it is  updates, the pattern attribute would be <code>&quot;org.eclipse&quot;</code>. Similarly, it is
120  possible to use a complete feature ID as a prefix if redirection is required on  possible to use a complete feature ID as a pattern if redirection is required on
121  a per-feature basis. Finally, using '*' would set up a server URL for all the  a per-feature basis.</p>
122  features (a setting that should generally not be used unless total control is  <p>Patterns in the file may be chosen to progressively narrow the potential
123  needed).</p>  matches. This may result in multiple matches for a given feature. In this case,
124  <p>In case of multiple matches, the one with a longer pattern will be used. For  the <b>match with a longest pattern</b> will be used. For
125  example:</p>  example:</p>
126  <blockquote>  <blockquote>
127  <pre>url-map.org.eclipse = URL1  <pre>&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
128  url-map.org.eclipse.jdt = URL2</pre>  &lt;update-policy&gt;
129            &lt;url-map pattern=&quot;org.eclipse&quot; url=&quot;URL1&quot;/&gt;
130            &lt;url-map pattern=&quot;org.eclipse.jdt&quot; url=&quot;URL2&quot;/&gt;
131    &lt;/update-policy&gt;</pre>
132  </blockquote>  </blockquote>
133  <p>In the case above, all Eclipse features will be updated from URL1, except  <p>In the case above, all Eclipse features will be updated from URL1, except <code>org.eclipse.jdt</code> that will use URL2.</p>
134  those starting with <code>org.eclipse.jdt</code> that will use URL2.</p>  <p>Update policy files do not contain translatable strings and therefore do not
135  <h4>try-embedded</h4>  require special NL handling. In general, the files should use UTF-8 encoding.</p>
 <p>Syntax:</p>  
 <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <code>try-embedded = (true | false)  
 &quot;true&quot;</code></p>  
 <p>This key sets the policy regarding features for which mapped URL was not  
 found. If 'true' (default), update search will default to the embedded URL if no  
 matching <code>url-map</code> has been found in the update policy file. Setting  
 'false' effectively hides the embedded update URL. The default settings is  
 recommended because it allows the primary product features to be updated from  
 the local server, while third-party (add-on) features downloaded into the  
 product using Eclipse Update can still by updated from the internet.</p>  
136  <h3>2.3 Automatic discovery of updates</h3>  <h3>2.3 Automatic discovery of updates</h3>
137  <p>The third part of the overall solution is covered by another plan item (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=37684">Improve  <p>The third part of the overall solution is covered by another plan item (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=37684">Improve
138  Update Manager search</a>) but is mentioned here because it is an integral part  Update Manager search</a>) but is mentioned here because it is an integral part
# Line 133  Line 140 
140  specified schedule (on each startup (the default), once a day, once a week  specified schedule (on each startup (the default), once a day, once a week
141  etc.). </p>  etc.). </p>
142  <h2>3. Conclusion </h2>  <h2>3. Conclusion </h2>
143  <p>Here is the complete sequence of steps that represents the solution:</p>  <p>Here is the complete sequence of steps that comprise the solution:</p>
144  <ol>  <ol>
145    <li>Administrator allocates a server on the company LAN for hosting local    <li>Administrator allocates a server on the company LAN for hosting local
146    product updates. Initially it contains no update sites.</li>    product updates. Initially it contains no update sites. The machine must have
147        an HTTP server running.</li>
148    <li>Administrator sets up an update policy file on that server and instructs    <li>Administrator sets up an update policy file on that server and instructs
149    all users to configure their products using the provided URL.</li>    all users to set the update policy preference the provided URL.</li>
150    <li>As the product provider ships updates and fixes on their update sites, the    <li>As the product provider ships updates and fixes on their update sites,
151    administrators downloads supported updates into the local server.</li>      administrator downloads supported updates onto the local server.</li>
152    <li>Automatic updates executed at the scheduled frequency picks up the local    <li>Automatic update executed at the scheduled frequency when the client's
153    updates and informs the user</li>      product is up picks up the local
154      updates and notifies the user</li>
155    <li>User chooses to install the discovered updates</li>    <li>User chooses to install the discovered updates</li>
156  </ol>  </ol>
157  <h2>4. Schedule</h2>  <h2>4. Schedule</h2>
158  <p>Early implementation of the update policy (with redirection) is already in  <p>Early implementation of the update policy (with redirection) is already in
159  the regular integration builds (since M1). Wizard for creating partial local  the regular integration builds (since M1) but expect the actual update policy
160    DTD to be in flux at least until M2. Wizard for creating partial local
161  shadows of the remote update sites will appear after M2 (actual milestone not  shadows of the remote update sites will appear after M2 (actual milestone not
162  known yet).</p>  known yet).</p>

Legend:
Removed from v.1.4  
changed lines
  Added in v.1.5