Την άλλη μέρα απολάμβανα ένα πολύ καλά σχεδιασμένο παιχνίδι με βάση το Java στον browser μου Firefox. Μετά, δεν θα μπορούσα παρά να σκέφτομαι τη χρησιμότητα και τη δύναμη της Java - ειδικά πώς δουλεύουν τα ενσωματωμένα στο διαδίκτυο Java applets. Στο εταιρικό περιβάλλον όπου εργάζομαι, η Java θεωρείται το εργαλείο εφαρμογής του διαδικτύου που είναι η επιλογή για την ανάπτυξη εφαρμογών βασισμένων στον browser. Οι εφαρμογές ActiveX είναι απενεργοποιημένες σε όλα τα προγράμματα περιήγησης από προεπιλογή.
Η Sun Microsystems ανέπτυξε τη γλώσσα και την αρχιτεκτονική προγραμματισμού Java το 1995. Από τότε, έχει γίνει ένα πολύτιμο και αναπόσπαστο μέρος της εξέλιξης του Internet. Ο Παύλος έδωσε μια μεγάλη λίστα για παραδείγματα εφαρμογών Java Top 5 ιστότοποι για παραδείγματα εφαρμογών Java Top 5 ιστότοποι για παραδείγματα εφαρμογών Java Διαβάστε περισσότερα που θα αποδειχθούν πολύ χρήσιμα για τους προγραμματιστές και ο Karl παρείχε έναν χρήσιμο οδηγό για τον τρόπο κατάργησης των παλαιότερων εκδόσεων του JRE Πώς να Κατάργηση παλαιών εκδόσεων Java Runtime από τον υπολογιστή σας Πώς να αφαιρέσετε παλιές εκδόσεις Runtime Java από τον υπολογιστή σας Διαβάστε περισσότερα από το σύστημά σας.
Σε αυτό το άρθρο, θα ήθελα να αφιερώσω μια στιγμή για να αναλογιστώ τους λόγους για τους οποίους η Java θεωρείται μία από τις πιο αξιόπιστες αρχιτεκτονικές για την ανάπτυξη και τη λειτουργία εφαρμογών μέσω του Διαδικτύου και καλύπτει λίγο το πώς λειτουργούν τα Java applets. Όπως μπορεί να γνωρίζουν οι περισσότεροι αναγνώστες, η ομορφιά της Java είναι ότι η αρχιτεκτονική Java Virtual Machine επιτρέπει στην Java να λειτουργεί σε πολλαπλές πλατφόρμες - συμπεριλαμβανομένων των Windows, του Solaris, του Linux και της Apple. Η ικανότητα να γράφει κοινές εφαρμογές που μπορούν να τρέξουν σε πολλαπλές αρχιτεκτονικές καθιστά την Java ένα από αυτά τα μοντέλα προγραμματισμού web που έχουν επιβιώσει και άνθισε για πάνω από μια δεκαετία και μισό.
Γιατί μπορείτε να εγκαταστήσετε και να εκτελέσετε λογισμικό Java Anywhere
Ο λόγος για τον οποίο το μοντέλο της Sun λειτουργεί τόσο καλά είναι εν μέρει λόγω του γεγονότος ότι δημιουργήθηκε για να ξεπεράσει ένα από τα πολλά μειονεκτήματα του πρώιμου Internet. Λίγες πολύ "χρήσιμες" εφαρμογές θα μπορούσαν να λειτουργήσουν μέσω του Διαδικτύου εξαιτίας όλων των ανησυχιών σχετικά με την ασφάλεια που επιτρέπουν σε μια εφαρμογή που βασίζεται στο Διαδίκτυο να έχει πρόσβαση στις ρυθμίσεις των φυλλομετρητών και πληροφορίες - ή χειρότερα, στο σύστημα αρχείων και στο λειτουργικό σύστημα του υπολογιστή. Οι αρχαίοι αρχιτέκτονες αρχιτεκτονικής συνειδητοποίησαν ότι για να επιβιώσουν οποιοδήποτε περιβάλλον λογισμικού ιστού, θα έπρεπε να λάβει σοβαρά υπόψη αυτά τα θέματα ασφάλειας.
Πριν φτάσουμε στην ασφάλεια, θα ήθελα να καλύψω εν συντομία την ίδια την αρχιτεκτονική και τι έκανε το σύστημα τόσο αποτελεσματικό και ισχυρό τόσο για τους προγραμματιστές λογισμικού όσο και για τους χρήστες του Διαδικτύου που ήθελαν πιο χρήσιμες και λειτουργικές εφαρμογές ιστού.
Εάν ρίξετε μια ματιά στην κακή προσπάθειά μου να σχεδιάσετε παραπάνω, θα δείτε μια ακατέργαστη αναπαράσταση της ροής του προγράμματος Java. Ουσιαστικά, οι προγραμματιστές της Java γράφουν μια αίτηση. Εστιάζομαι στα Java Applets, επειδή πρόκειται για εφαρμογές στο Διαδίκτυο - οι τοπικές εφαρμογές Java είναι ένα εντελώς διαφορετικό κτήνος με τις δικές τους μοναδικές εκτιμήσεις.
Οι προγραμματιστές δημιουργούν κώδικα Java Applet που μπορεί να ενσωματωθεί σε οποιαδήποτε ιστοσελίδα. Είτε χρησιμοποιείτε το Ubuntu, το Mac ή τα Windows, όταν ξεκινάτε αυτό το applet με την συγκεκριμένη έκδοση του προγράμματος περιήγησης, το Applet επιχειρεί να τρέξει μέσα σε αυτό το "sandbox" γνωστό ως Java Runtime Environment ή Java Machine. Βρήκα μερικά δροσερά και απλά παραδείγματα για το πώς δουλεύουν οι εφαρμογές Java, δημιουργήθηκε από τον Joseph Bergin του Πανεπιστημίου Pace το 1996.
Όπως μπορείτε να δείτε, αυτή η απλή εφαρμογή δέχεται είσοδο χρήστη και ανταποκρίνεται σε αυτή την είσοδο, διαχωρίζοντας τυχαία σημεία με τον τρόπο που επιλέξατε. Αυτή η εφαρμογή δέχεται τον κώδικα Java και τον μετατρέπει σε αναγνώσιμο από μηχανή κώδικα, ο οποίος είναι κατάλληλος για το συγκεκριμένο λειτουργικό σύστημα, έτσι ώστε οι λειτουργίες του ποντικιού, της οθόνης και άλλων λειτουργιών του συστήματος να λειτουργούν σωστά με αυτήν την εφαρμογή.
Όπως μπορείτε να δείτε από τον κώδικα του περιβάλλοντος, η Java είναι μια αντικειμενοστρεφής γλώσσα, με τάξεις και αντικείμενα που είναι κοινά για όλους τους προγραμματιστές Java. Αυτή είναι η ομορφιά της ανάπτυξης της Java - η πλατφόρμα για την οποία γράφετε δεν έχει σημασία, επειδή όλοι μιλούν την ίδια γλώσσα.
Η Java είναι πλέον μια πλατφόρμα χρόνου εκτέλεσης εφαρμογών, η οποία γίνεται όλο και περισσότερο αποδεκτή και "κανονική" σε όλο τον κόσμο και είναι μία από τις πιο δημοφιλείς γλώσσες προγραμματισμού που επιλέγονται για την ανάπτυξη εφαρμογών στο διαδίκτυο. Μπορείτε να εγκαταστήσετε το πιο πρόσφατο JRE για το λειτουργικό σας σύστημα οποιαδήποτε στιγμή.
Ασφάλεια ανησυχίες και γιατί θα πρέπει να νιώθετε ασφαλή
Το σύνολο της διάταξης Java αναπτύχθηκε με γνώμονα την ασφάλεια των χρηστών. Οι προγραμματιστές της Sun ήθελαν να διαρθρώσουν το JRE και τη γλώσσα με τρόπο που, αν και δεν είναι αδύνατο να χαράξει, θα ήταν πολύ πιο δύσκολο. Τα τελευταία χρόνια έχουμε ακούσει κάποιους λογαριασμούς εφιάλτων για ιούς ActiveX και παρόμοια, αλλά η Java παραμένει στην κορυφή της λίστας για τις περισσότερες επιχειρήσεις και εταιρικά περιβάλλοντα ως μία από τις ασφαλέστερες μεθόδους για την εκτέλεση εφαρμογών ιστού σε ένα πρόγραμμα περιήγησης. Οι περισσότερες εταιρείες αφήνουν την Java ενεργοποιημένη στα προγράμματα περιήγησής τους και οι περισσότερες μηχανές-πελάτες εγκαθίστανται με το τελευταίο JRE.
Όταν εκτελείτε ένα Java Applet ή απλώς εγκαταστήσετε το JRE, θα παρατηρήσετε ότι το εικονίδιο Java εμφανίζεται στη γραμμή εργασιών σας. Όταν βλέπετε αυτό, ξέρετε ότι έχετε εγκαταστήσει Java. Για να ελέγξετε την έκδοση, κάντε δεξί κλικ, ανοίξτε τον Πίνακα Ελέγχου και επιλέξτε " About ... "
Αυτό το περιβάλλον χρόνου εκτέλεσης ή "sandbox" προστατεύει τον υπολογιστή σας από κακόβουλο κώδικα, απλά από τον τρόπο που αναπτύχθηκε η λειτουργικότητα και η δομή της γλώσσας. Μερικές από τις εκτιμήσεις ασφαλείας που μπορείτε να υπολογίζετε όταν επιτρέπετε την Java στο πρόγραμμα περιήγησής σας και η εγκατάσταση του JRE στο σύστημά σας έχει ως εξής.
- Η Java έχει δημόσιες μεθόδους που μπορούν να χρησιμοποιήσουν οι προγραμματιστές, αλλά αυτές οι συνήθεις μέθοδοι έχουν ελέγχους ασφάλειας που διασφαλίζουν ότι δεν χρησιμοποιούνται κατά λάθος από την εφαρμογή. Αυτό σημαίνει ότι η πρόσβαση σε πολλά αντικείμενα (όπως το αντικείμενο Αρχείο) έχει μια συγκεκριμένη διαδικασία ελέγχου ασφαλείας πριν οποιαδήποτε εφαρμογή μπορεί να έχει πρόσβαση σε αυτήν τη δημόσια μέθοδο μέσα στη βιβλιοθήκη Java.
- Η Java θεωρείται "τύπου ασφαλής", που σημαίνει ότι οι τύποι μεταβλητών μεταγλώττισης και εκτέλεσης είναι συμβατοί - επαληθεύονται κατά τη συμπλήρωση ή το χρόνο εκτέλεσης. Αυτό αναστέλλει τον κακόβουλο κώδικα που επιχειρεί να αποκτήσει προστασία από την ασφάλεια πρόσβασης από αντικείμενα "χύτευσης". Όλα αυτά σημαίνει ότι η Java έχει καταργήσει την ικανότητα μιας άλλης ολόκληρης κατηγορίας λογισμικού Malware και Virus να προκαλέσει προβλήματα.
- Οι προγραμματιστές δηλώνουν τις μεθόδους ως "τελικές", πράγμα που σημαίνει ότι οι εξωτερικές εφαρμογές (όπως κακόβουλο λογισμικό) δεν μπορούν να αντικαταστήσουν τις μεθόδους - για το αντικείμενο χρησιμοποιείται μόνο η πραγματική δηλωμένη μέθοδος. Μια άλλη ρωγμή ασφαλείας που σφραγίστηκε από την Java.
- Τέλος, ενώ είναι ένα αγκάθι στην πλευρά πολλών προγραμματιστών, η Java δεν επιτρέπει δείκτες ως τύπος δεδομένων. Αν και αυτό σημαίνει ότι οι προγραμματιστές πρέπει να αναπτύξουν άλλους τρόπους για να ολοκληρώσουν εργασίες όπου θα χρησιμοποιούν δείκτες, σημαίνει επίσης ότι οι δείκτες συστοιχιών δεν μπορούν να χειριστούν - ούτε οι προγραμματιστές μπορούν να υπερβούν κατά λάθος ένα μήκος πίνακα με ελαττωματικό κώδικα. Οι κακόβουλες εφαρμογές δεν μπορούν να εκμεταλλευτούν την αριθμητική ένδειξη για να αποκτήσουν πρόσβαση σε δείκτες αντικειμένου συστήματος, επειδή δεν υπάρχει δείκτης για χειρισμό.
- Η Java έχει τη δική της "συλλογή απορριμμάτων" για να ανακτήσει τη μνήμη, εμποδίζοντας έτσι τη δυνατότητα για κακόβουλο κώδικα να διαθέσει μνήμη για ένα σκοπό, να την εκχωρήσει και στη συνέχεια να την χρησιμοποιήσει (με νέο δείκτη) για κακόβουλους σκοπούς. Και πάλι - μια ολόκληρη κατηγορία κακόβουλου κώδικα έχει αποκλειστεί εξαιτίας αυτού.
Εάν δεν είστε προγραμματιστής, τότε όλες οι παραπάνω πληροφορίες πρέπει απλά να σας καθησυχάσουν ότι η προσέγγιση Java για την εκτέλεση εφαρμογών ιστού είναι μία από τις ασφαλέστερες διαθέσιμες. Μπορείτε να αισθανθείτε αρκετά σίγουροι για την εκτέλεση του JRE στο σύστημά σας και για την εκτόξευση εφαρμογών Java.
Ένα ακόμα πράγμα που πρέπει να καταλάβετε όταν εκτελείτε Java Applets είναι όταν σας ρωτάτε αν θέλετε να δώσετε ένα "αξιόπιστο πιστοποιητικό". Αποδεχτείτε προσεκτικά αυτά τα αιτήματα, διότι μόλις το κάνετε, ο κώδικας Java μπορεί να τρέξει κάπως έξω από το κανονικό του sandbox. "Μπορείτε να αποκτήσετε πρόσβαση σε όσα πιστοποιητικά έχετε ως αξιόπιστα μεταβαίνοντας στον Πίνακα ελέγχου Java και κάνοντας κλικ στην καρτέλα ασφαλείας και, στη συνέχεια, κάνοντας κλικ στο" Πιστοποιητικά ... "
Τα μη υπογεγραμμένα applets μπορούν να κάνουν μόνο τις συνδέσεις δικτύου πίσω στον κεντρικό υπολογιστή τους, να προβάλλουν έγγραφα ιστού, να επικαλούνται μόνο δημόσιους τρόπους (δείτε τα πλεονεκτήματα ασφαλείας που αναφέρονται παραπάνω) και μπορούν να διαβάσουν τις ιδιότητες του συστήματος. Τα υπογεγραμμένα Applets, από την άλλη πλευρά, έχουν πρόσβαση στο τοπικό σύστημα αρχείων, αρχεία, πρόχειρο και εκτυπωτές και έχουν πρόσβαση σε άλλους απομακρυσμένους διακομιστές και πολλά άλλα. Ακόμα κι έτσι, το γεγονός ότι ο χρήστης (εσείς) πρέπει να χορηγήσει ρητά αυτή την άδεια είναι μια ωραία διασφάλιση. Αναγνώρισα κάθε εφαρμογή στη λίστα μου - τίποτα δεν προστίθεται αυτόματα.
Είστε προγραμματιστής Java; Ποια είναι η γνώμη σας για τη λειτουργικότητα και την ασφάλεια των εφαρμογών Java; Εάν είστε απλός χρήστης του Διαδικτύου και όχι προγραμματιστής, θεωρείτε ότι η διαδικασία εκτέλεσης των μικροεφαρμογών Java είναι αρκετά εύκολη για να καταλάβετε; Μοιραστείτε τις σκέψεις σας στην παρακάτω ενότητα σχολίων.