Τι είναι το Eclipse;

Το Eclipse είναι μια πλατφόρμα η οποία έχει σχεδιαστεί εξαρχής για τη δόμηση ενσωματωμένων εργαλείων διαδικτύου και ανάπτυξης εφαρμογών. Από το σχεδιασμό της, η πλατφόρμα από μόνη της δεν παρέχει σημαντική λειτουργικότητα για τον τελικό χρήστη. Η αξία της πλατφόρμας έγκειται σε αυτά τα οποία μπορεί να προωθήσει: ταχεία ανάπτυξη ενσωματωμένων λειτουργιών με βάση ένα μοντέλο πρόσθετων λειτουργιών.

Το Eclipse παρέχει ένα κοινό μοντέλο περιβάλλοντος χρήστη (UI) που επιτρέπει την εργασία με εργαλεία.  Είναι σχεδιασμένο ώστε να εκτελείται σε πολλά λειτουργικά συστήματα, παρέχοντας ταυτόχρονα ισχυρή ενοποίηση με κάθε υποκείμενο λειτουργικό σύστημα.  Στα φορητά API του Eclipse μπορούν να προγραμματιστούν πρόσθετες λειτουργίες και να εκτελούνται χωρίς αλλαγές σε οποιοδήποτε από τα υποστηριζόμενα λειτουργικά συστήματα. 

Στον πυρήνα του Eclipse βρίσκεται μια αρχιτεκτονική δομή για τη δυναμική ανακάλυψη, φόρτωση και εκτέλεση των πρόσθετων λειτουργιών. Η πλατφόρμα χειρίζεται την οργάνωση της διαδικασίας εύρεσης και εκτέλεσης του σωστού κώδικα. Το περιβάλλον χρήστη της πλατφόρμας παρέχει ένα τυπικό μοντέλο πλοήγησης για τον χρήστη.  Κάθε πρόσθετη λειτουργία μπορεί έτσι να εστιάζεται στη σωστή πραγματοποίηση λίγων εργασιών. Τι είδους εργασίες; Ορισμοί, δοκιμές, κινήσεις, δημοσιεύσεις, μεταγλωττίσεις, εντοπισμός και διόρθωση σφαλμάτων, δημιουργία διαγραμμάτων... το μοναδικό όριο είναι η φαντασία σας.

Ανοικτή αρχιτεκτονική

Η πλατφόρμα Eclipse ορίζει μια ανοικτή αρχιτεκτονική, έτσι ώστε κάθε ομάδα ανάπτυξης πρόσθετης λειτουργίας να εστιάζεται στην περιοχή της δικής της εξειδίκευσης. Έτσι, οι ειδικοί για το χώρο αποθήκευσης θα αναλαμβάνουν τη δόμηση των παρασκηνιακών στοιχείων και οι ειδικοί για τη δυνατότητα χρήσης θα αναλαμβάνουν τη δόμηση των εργαλείων για τους τελικούς χρήστες. Εάν η πλατφόρμα είναι καλά σχεδιασμένη, τότε θα μπορούν να προστεθούν σημαντικές νέες λειτουργίες και επίπεδα ενοποίησης, χωρίς να επηρεάζονται τα άλλα εργαλεία.

Η πλατφόρμα Eclipse χρησιμοποιεί το μοντέλο ενός κοινού πάγκου εργασίας για την ενοποίηση των εργαλείων, από την πλευρά του τελικού χρήστη. Τα εργαλεία που αναπτύσσετε εσείς μπορούν να συνδεθούν στον πάγκο εργασίας, με τη χρήση των προσδιορισμένων ρουτινών, οι οποίες καλούνται σημεία επέκτασης.

Η ίδια η πλατφόρμα είναι δομημένη σε επίπεδα πρόσθετων λειτουργιών, το καθένα από τα οποία ορίζει επεκτάσεις στα σημεία επέκτασης των πρόσθετων λειτουργιών χαμηλότερων επιπέδων, που με τη σειρά τους ορίζουν τα δικά τους σημεία επέκτασης για την περαιτέρω προσαρμογή. Αυτό το μοντέλο επέκτασης επιτρέπει στους προγραμματιστές πρόσθετων λειτουργιών να προσθέτουν μια ποικιλία λειτουργιών στη βασική πλατφόρμα εργαλείων. Τα τεχνουργήματα για κάθε εργαλείο, όπως αρχεία και άλλα δεδομένα, συντονίζονται από ένα κοινό μοντέλο πόρων πλατφόρμας.

Η πλατφόρμα προσφέρει στους χρήστες έναν κοινό τρόπο εργασίας με τα εργαλεία και παρέχει την ενοποιημένη διαχείριση των πόρων που δημιουργούν με τις πρόσθετες λειτουργίες.

Οι προγραμματιστές πρόσθετων λειτουργιών κερδίζουν επίσης από αυτή την αρχιτεκτονική.  Η πλατφόρμα διαχειρίζεται την πολυπλοκότητα των διαφόρων περιβαλλόντων εκτέλεσης, όπως τα διάφορα λειτουργικά συστήματα ή τα περιβάλλοντα εξυπηρετητών ομάδων εργασίας.  Οι προγραμματιστές πρόσθετων λειτουργιών μπορούν να εστιάζονται στην συγκεκριμένη εργασία τους, χωρίς να χρειάζεται να ανησυχούν για αυτά τα θέματα ενοποίησης.

Δομή πλατφόρμας

Η ίδια η πλατφόρμα του Eclipse είναι δομημένη σε υποσυστήματα, τα οποία υλοποιούνται σε μία ή περισσότερες πρόσθετες λειτουργίες.  Τα υποσυστήματα βασίζονται σε ένα μηχανισμό περιβάλλοντος εκτέλεσης. Το παρακάτω σχέδιο παρουσιάζει μια απλουστευμένη εικόνα.

Βάση περιβάλλοντος εκτέλεσης πλατφόρμας με ομάδες προσθήκης πρόσθετων λειτουργιών

Οι πρόσθετες λειτουργίες οι οποίες απαρτίζουν ένα υποσύστημα ορίζουν σημεία επέκτασης για τη συμπεριφορά των προσθηκών στην πλατφόρμα.  Ο παρακάτω πίνακας περιγράφει τα κύρια συστατικά στοιχεία του περιβάλλοντος εκτέλεσης της πλατφόρμας, τα οποία υλοποιούνται ως μία ή περισσότερες πρόσθετες λειτουργίες.

Περιβάλλον εκτέλεσης πλατφόρμας

Ορίζει το μοντέλο σημείου επέκτασης και πρόσθετης λειτουργίας. Ανακαλύπτει με δυναμικό τρόπο τις πρόσθετες λειτουργίες και διατηρεί τις πληροφορίες σχετικά με τις πρόσθετες λειτουργίες και τα σημεία επέκτασής τους σε ένα μητρώο πλατφόρμας. Η εκκίνηση των πρόσθετων λειτουργιών πραγματοποιείται όταν αυτό ζητηθεί, ανάλογα με τις ενέργειες του χρήστη στην πλατφόρμα. Το περιβάλλον εκτέλεσης υλοποιείται με τη χρήση του πλαισίου OSGi.

Διαχείριση πόρων (χώρος εργασίας)

Ορίζει API για τη δημιουργία και τη διαχείριση πόρων (έργα, αρχεία και φάκελοι) οι οποίοι δημιουργούνται από εργαλεία και διατηρούνται στο σύστημα αρχείων.

Περιβάλλον χρήστη του πάγκου εργασίας

Υλοποιεί το κέντρο χειρισμού για την πλοήγηση στην πλατφόρμα. Ορίζει σημεία επέκτασης για την προσθήκη συστατικών στοιχείων του περιβάλλοντος χρήστη, όπως είναι οι προβολές ή οι ενέργειες μενού.  Παρέχει πρόσθετα πακέτα εργαλείων (JFace και SWT) για τη δόμηση ενός περιβάλλοντος χρήστη. Οι υπηρεσίες του περιβάλλοντος χρήστη είναι δομημένες με τέτοιο τρόπο, ώστε ένα υποσύνολο πρόσθετων λειτουργιών περιβάλλοντος χρήστη να μπορεί να δομήσει εφαρμογές πελάτη με πολλές δυνατότητες, οι οποίες θα είναι ανεξάρτητες από το μοντέλο διαχείρισης πόρων και χώρου εργασίας. Οι πρόσθετες λειτουργίες που βασίζονται στο IDE ορίζουν επιπλέον δυνατότητες για την πλοήγηση και τον χειρισμό των πόρων.

Σύστημα βοήθειας

Ορίζει σημεία επέκτασης για πρόσθετες λειτουργίες για την παροχή βοήθειας και άλλης τεκμηρίωσης ως ηλεκτρονικά αναζητούμενα βιβλία.

Υποστήριξη συνεργασίας

Ορίζει ένα μοντέλο προγραμματισμού συνεργασίας για τη διαχείριση και την τήρηση εκδοχών των πόρων. 

Υποστήριξη εντοπισμού και διόρθωσης σφαλμάτων

Ορίζει ένα μοντέλο εντοπισμού και διόρθωσης σφαλμάτων, ανεξάρτητο της γλώσσας καθώς και κλάσεις περιβάλλοντος χρήστη για τη δόμηση λειτουργιών εντοπισμού και διόρθωσης σφαλμάτων και λειτουργιών εκκίνησης.

Άλλα βοηθητικά προγράμματα

Δυνατότητα παροχής άλλων βοηθητικών πρόσθετων λειτουργιών, όπως αναζήτηση και σύγκριση πόρων, πραγματοποίηση διεργασιών δόμησης με τη χρήση αρχείων ρυθμίσεων XML και δυναμική ανανέωση της πλατφόρμας από έναν εξυπηρετητή.

Χρήση ως έχει

Η βασική πλατφόρμα όπως παραδίδεται - ή μεταφορτώνεται από το διαδίκτυο - αποτελεί ένα ενοποιημένο περιβάλλον ανάπτυξης (IDE) για οτιδήποτε (και τίποτα συγκεκριμένο).

Παράθυρο πάγκου εργασίας

Αυτό που καθορίζει την απόλυτη λειτουργικότητα της πλατφόρμας είναι οι πρόσθετες λειτουργίες.  Για το λόγο αυτό, το Eclipse SDK παρέχεται μαζί με επιπλέον πρόσθετες λειτουργίες για τη βελτίωση της λειτουργικότητας του SDK.

Οι πρόσθετες λειτουργίες μπορούν να παρέχουν υποστήριξη για την επεξεργασία και το χειρισμό πρόσθετων ειδών, όπως αρχεία Java, προγράμματα C, έγγραφα Word, σελίδες HTML και αρχεία JSP.