Η διαχείριση ενημερωμένων εκδόσεων του Eclipse μπορεί να χρησιμοποιηθεί για την απόδοση και την αναζήτηση δικτυακών τόπων ενημέρωσης του Eclipse με προβλέψιμο τρόπο. Ένας δικτυακός τόπος ενημέρωσης μπορεί να περιέχει κατηγορίες που εμφανίζονται στην προβολή διακλάδωσης, και αυτές οι κατηγορίες με τη σειρά τους περιέχουν λειτουργίες. Μπορείτε να επιθεωρήσετε τις λειτουργίες στην προβολή "Προεπισκόπηση" μέσα από τη διαχείριση ενημερωμένων εκδόσεων. Αν μια υποψήφια λειτουργία είναι έγκυρη, θα περιέχει το κουμπί άμεσης εγκατάστασης που θα εκκινήσει τον οδηγό εγκατάστασης του Eclipse. Όταν ολοκληρωθεί η εργασία εγκατάστασης, η λειτουργία θα αποτελεί μέρος του προϊόντος.
Αυτός ο τυπικός τρόπος παρουσίασης των λειτουργιών προς εγκατάσταση δεν είναι και ο μόνος. Οι παροχείς μπορούν να αναλάβουν τον έλεγχο της παρουσίασης, της καταχώρησης, της αναζήτησης καθώς και άλλων εργασιών από τη διαχείριση ενημερωμένων εκδόσεων και να τον επιστρέψουν σε αυτήν, μόνο όταν πρόκειται να γίνει πραγματικά η εγκατάσταση μιας λειτουργίας σε ένα προϊόν Eclipse.
Η διαχείριση ενημερωμένων εκδόσεων έχει τη δυνατότητα να εκτελεί μια μικροεφαρμογή εξυπηρετητή που μπορεί να δέχεται αιτήσεις από διαδικτυακές σελίδες. Αυτή η δυνατότητα δεν είναι αυτόματη: Πρέπει να ενεργοποιηθεί από τη σελίδα Προτιμήσεις>Εγκατάσταση/ενημέρωση>Ενημερωμένες εκδόσεις που ενεργοποιούνται μέσω διαδικτύου. Όταν πατήσετε OK, η διαχείριση ενημερωμένων εκδόσεων θα ενεργοποιήσει τον εξυπηρετητή εφαρμογών που μπορεί να χειρίζεται εισερχόμενες αιτήσεις. Στη συνέχεια, όλα τα URL που ανοίγουν μέσα από τη διαχείριση ενημερωμένων εκδόσεων θα κωδικοποιηθούν με τις πληροφορίες του URL επανάκλησης. Αν το αρχικό URL είναι κανονική διαδικτυακή σελίδα, το κωδικοποιημένο URL θα περιλαμβάνει το τμήμα του ερωτήματος που προσθέτει το URL επανάκλησης που θα χρησιμοποιηθεί για την κλήση του Eclipse:
http://acme.com/myApplication.html
γίνεται
http://acme.com/myApplication.html?updateURL=<localhost>:<localport>?org.eclipse.update/install
όπου "localhost" είναι η διεύθυνση του εξυπηρετητή του Eclipse που εκτελείται στον τοπικό σας υπολογιστή, η τοπική θύρα επιλέγεται δυναμικά κατά την εκκίνηση του εξυπηρετητή και το ερώτημα είναι το όνομα της διαδικτυακής εφαρμογής του Eclipse και το όνομα της μικροεφαρμογής εξυπηρετητή που χειρίζεται την αίτηση.
Αν το αρχικό URL είναι ήδη ερώτημα:
http://acme.com/myApplication/myServlet?arg1=value1&arg2=value2
η κωδικοποίηση απλώς θα προσθέσει τις πληροφορίες σας ως άλλη μία παράμετρο:
http://acme.com/myApplication/myServlet?arg1=value1&arg2=value2&updateURL=<localhost>:<localport>?org.eclipse.update/install
Η κωδικοποίηση παραβλέπεται από κανονικές διαδικτυακές σελίδες και ερωτήματα και δεν προκαλεί προβλήματα ούτε επηρεάζει την παρουσίαση. Απλώς προσθέτει πληροφορίες που μπορούν να χρησιμοποιηθούν από μια σελίδα που τη γνωρίζει.
Καθώς η εκκίνηση μιας διαδικτυακής σελίδας πρέπει να γίνει από τη διαχείριση ενημερωμένων εκδόσεων, οι σελιδοδείκτες δικτυακού τόπου στην προβολή "Ενημερωμένες εκδόσεις" μπορούν να δημιουργηθούν ως διαδικτυακοί σελιδοδείκτες. Η διαχείριση ενημερωμένων εκδόσεων χειρίζεται αυτούς τους σελιδοδείκτες ανάλογα και όταν διπλοπατήσετε σε έναν από αυτούς, θα ανοίξει το URL σε ένα πρόγραμμα πλοήγησης (αν είναι ενσωματωμένο στην εκδοχή του λειτουργικού και του παραθυρικού συστήματος, θα ανοίξει απευθείας μέσα στη διαχείριση ενημερωμένων εκδόσεων, διαφορετικά, θα ανοίξει στο παράθυρο του μόνιμου προγράμματος πλοήγησης).
Οι παροχείς μπορούν να ρυθμίσουν τις διαδικτυακές σελίδες ενημέρωσης όπως επιθυμούν: μπορούν να χρησιμοποιήσουν περίπλοκες διαδικτυακές εφαρμογές υποστηριζόμενες από βάσεις δεδομένων ή απλά, στατικά HTML. Η χρήση πιο σύνθετης αρχιτεκτονικής επιτρέπει στους παροχείς να προσφέρουν μεγαλύτερη αξία στους χρήστες. Σύνθετες αναζητήσεις νέων λειτουργιών, ενημερωμένες εκδόσεις και ηλεκτρονικά πακέτα επιδιόρθωσης κώδικα, πλούσιες οπτικές παρουσιάσεις επιλεγμένων λειτουργιών, άρθρα σχετικά με τις δυνατότητές τους, χρήσιμες διασυνδέσεις, ψηφοφορίες για τις δημοφιλέστερες λειτουργίες, είναι μόνο λίγες από τις δυνατότητες. Επιπλέον, οι παροχείς μπορούν να ενεργοποιήσουν τη λειτουργία εξακρίβωσης στοιχείων, ώστε να περιορίσουν την πρόσβαση σε ορισμένες λειτουργίες, να απαιτούν εγγραφή χρήστη κτλ.
Υπάρχουν πολλοί διαφορετικοί τρόποι για να εξαχθούν οι κωδικοποιημένες πληροφορίες. Ένας πολύ απλός τρόπος είναι η χρήση της λειτουργίας JavaScript, όπως περιγράφεται παρακάτω:
<SCRIPT LANGUAGE="JavaScript"> function getArgs() { var args = new Object(); var query = location.search.substring(1); var pairs = query.split("&"); for (var i=0; i<pairs.length; i++) { var pos = pairs[i].indexOf('='); if (pos == -1) continue; var argname = pairs[i].substring(0, pos); var value = pairs[i].substring(pos+1); args[argname] = unescape(value); } return args; } </SCRIPT>
Η παραπάνω λειτουργία αναλύει το URL της τρέχουσας σελίδας και επιστρέφει ορίσματα ερωτήματος με τη μορφή πίνακα.
Ο ρόλος του URL επανάκλησης είναι να επιτρέψει στις διαδικτυακές σελίδες να επιστρέψουν τον έλεγχο πίσω στο Eclipse. Όταν ο χρήστης έχει επιλέξει μια λειτουργία προς εγκατάσταση, πρέπει να επιστρέψει στο Eclipse για να την ολοκληρώσει. Ο ρόλος της ενημέρωσης που ενεργοποιείται μέσω του διαδικτύου δεν είναι να ξεπεραστούν οι διαδικτυακοί τόποι ενημέρωσης. Οι τόποι αυτοί εξακολουθούν να χρησιμεύουν, ωστόσο σε αυτό το σενάριο χρησιμοποιούνται απλώς ως μια φυσική θέση αποθήκευσης λειτουργιών. Η διαδικτυακή σελίδα πρέπει κάποια στιγμή να επανακαλέσει το Eclipse και να μεταβιβάσει το URL του διαδικτυακού τόπου ενημέρωσης, καθώς και την ταυτότητα και την εκδοχή της επιλεγμένης λειτουργίας. Αυτές οι πληροφορίες κωδικοποιούνται μέσω του αρχικού URL επανάκλησης και με την προσθήκη των ορισμάτων, διαμορφώνοντας ένα ερώτημα.
Τα ορίσματα για το ερώτημα επανάκλησης είναι τα εξής:
Η επανάκληση του Eclipse πρέπει να γίνει όταν οι χρήστες ολοκληρώσουν όλες τις επιλογές τους στη διαδικτυακή σελίδα και το μόνο που έχει απομείνει είναι να πατηθεί κάποιο κουμπί ή υπερδιασύνδεση για να εκτελεστεί μεταφόρτωση. Μια απλή υλοποίηση αυτής της δυνατότητας θα ήταν η εξής:
<input type="button" name="Download" value="Download" onClick="javascript:download('com.example.root', '1.0.0')">
Στον παραπάνω κώδικα, η ταυτότητα και οι εκδόσεις της λειτουργίας είναι μη προσαρμόσιμες στο προσδιοριστικό του κουμπιού.
Η λειτουργία μεταφόρτωσης μπορεί να υλοποιηθεί ως εξής:
function download(id, version) { var args = getArgs(); if (args.updateURL) { var updateURL = args.updateURL; var callback = updateURL+"?server= "+escape("http://acme.com/updateSite/")+ "&feature="+escape(id+'_'+version)+"&backURL="+escape(location); location = callback; } }
Στη λειτουργία JavaScript παραπάνω, το URL επανάκλησης που ήταν κωδικοποιημένο εξαρχής στο URL της σελίδας χρησιμοποιείται για τη διαμόρφωση του ερωτήματος. Μόλις το ερώτημα δημιουργηθεί, ζητείται από το πρόγραμμα πλοήγησης να το ανοίξει. Με αυτό το βήμα, το πρόγραμμα πλοήγησης θα καλέσει τη μικροεφαρμογή εξυπηρετητή του Eclipse, η οποία θα επεξεργαστεί το ερώτημα, θα συνδεθεί με το δικτυακό τόπο ενημέρωσης του παροχέα (ο οποίος σε αυτή την περίπτωση είναι ο δικτυακός τόπος "http://acme.com/updateSite/") και θα εντοπίσει τη λειτουργία με την ταυτότητα και την έκδοση που έχουν καταχωρηθεί. Αν η διαδικασία είναι επιτυχής, το παράθυρο του Eclipse θα μετακινηθεί στο πάνω μέρος και θα ανοίξει ο γνωστός οδηγός εγκατάστασης. Σε αυτό το σημείο, θα μεταφερθείτε στο Eclipse και μπορείτε να ολοκληρώσετε κανονικά την εγκατάσταση.
Είναι σημαντικό να επισημάνουμε ότι η ύπαρξη κωδικοποιημένου URL επανάκλησης είναι κρίσιμης σημασίας για ολόκληρο το μηχανισμό. Αν η σελίδα που περιέχει τη διασύνδεση ή το κουμπί μεταφόρτωσης είναι σε βάθος αρκετών επιπέδων στο χάρτη του δικτυακού τόπου, η κεντρική διαδικτυακή σελίδα (εκείνη που εκκινείται από τη διαχείριση ενημερωμένων εκδόσεων) πρέπει να διασφαλίσει ότι το URL επανάκλησης που μεταβιβάστηκε σε όλες τις σελίδες άνοιξε μέσα από τη συγκεκριμένη σελίδα. Αυτό μπορεί να γίνει με διάφορους τρόπους (άμεση κωδικοποίηση στη σελίδα, αποθήκευση προσωρινού cookie, αποθήκευση σε μια μικροεφαρμογή εξυπηρετητή που εξυπηρετεί σελίδες από το δικτυακό τόπο κτλ.).