Προγραμματιστικά εργαλεία σε περιβάλλον Linux

From EEYEM Pilot Wiki
Revision as of 12:15, 31 October 2016 by Admin (Talk | contribs) (Εξυπηρετητής Εφαρμογών Διαδικτύου Apache Tomcat)

Jump to: navigation, search

Εισαγωγή

Εγκατασταση VirtualBox

Το περιβάλλον στο οποίο μπορεί να επιτευχθεί ο προγραμματισμός MySQL η οποία θα καλείται από ένα πρόγραμμα Java είναι το Linux. Για να εγκατασταθεί το Linux πρέπει να υπάρχει μία ελεύθερη κατάτμηση (partition) στον σκληρό δίσκο. Ένας πιο απλός και πρακτικός τρόπος είναι η χρήση εικονικού μηχανήματος. Η πλατφόρμα η οποία προσφέρεται δωρεάν στο διαδίκτυο και στην οποία μπορεί να εγκατασταθεί ένα διαφορετικό λειτουργικό σύστημα σε ένα εικονικό μηχάνημα με προδιαγραφές τις οποίες μπορούμε να επιλέξουμε είναι το VirtualBox της Oracle. Για την εγκατάσταση του VirtualBox απαιτούνται τα παρακάτω βήματα:

1.)Αρχικά κατεβάζουμε το αρχείο εγκατάστασης από την τοποθεσία https://www.virtualbox.org

2.)Ο σύνδεσμος που χρειάζεται για να επιλέξουμε την έκδοση την οποία επιθυμούμε είναι ο Downloads στο μενού αριστερά στη σελίδα.

3.)Δεδομένου ότι το λειτουργικό σύστημα του υπολογιστή σας είναι τα Windows επιλέγουμε την πιο πρόσφατη έκδοση του VirtualBox για Windows.

4.)Επιλέγουμε τον φάκελο στον οποίο θα αποθηκευτεί το πρόγραμμα εγκατάστασης.

5.)Από την ίδια σελίδα, μεταφορτώστε και το " VirtualBox 5.1.8 (ή την πιο πρόσφατη ) Oracle VM VirtualBox Extension Pack" (την αντίστοιχη έκδοση με αυτή του βήματος 3 ,την πιο πρόσφατη δηλαδή ). Το πακέτο αυτό είναι ανεξάρτητο του λειτουργικού συστήματος που έχετε εγκατεστημένο στον υπολογιστή σας και προσφέρει επιπλέον δυνατότητες στον εικονικό υπολογιστή που θα δημιουργήσετε.

6.)Αποθηκεύστε αυτό το πακέτο στον ίδιο φάκελο που αποθηκεύσατε και το πρόγραμμα εγκατάστασης (βήμα 4).

7.)Μεταβείτε στον φάκελο στον οποίο αποθηκεύσατε το πρόγραμμα εγκατάστασης , επιλέχτε το συγκεκριμένο αρχείο και κάνετε διπλό κλικ. Ακολουθώντας τις οδηγίες σε κάθε βήμα πραγματοποιήστε την εγκατάσταση.

8.)Μετά την εγκατάσταση του Virtual Box, εκκινήστε το πρόγραμμα και από το μενού του προγράμματος επιλέξτε "File → Preferences..."(Αρχείο → Προτιμήσεις - στην Ελληνική έκδοση). Στο παράθυρο που ανοίγει επιλέξτε το "Extensions"(Επεκτάσεις). Κάντε κλικ στο μπλε τετράγωνο με τις καμπυλωμένες γωνίες για να προσθέσετε ένα νέο extension (μια νέα επέκταση). Στο παράθυρο που ανοίγει επιλέξτε το αρχείο που μεταφορτώσατε στο βήμα 5. Έχετε ολοκληρώσει την εγκατάσταση όλων των στοιχείων του Virtual Box.

Εγκατάσταση Linux στο VirtualBox

Κατόπιν της επιτυχούς εγκατάστασης του VirtualBox ακολουθεί η εγκατάσταση σε αυτό το εικονικό μηχάνημα του λειτουργικού συστήματος Linux. Στη συνέχεια θα εγκατσταθούν σε αυτό το λειτουργικό σύστημα τα απαραίτητα προγράμματα για τον σκοπό της εργασίας μας. Επιλέχθηκε η διανομή Fedora 21 . Είναι η καταλληλότερη προκειμένου να μπορούμε να χρησιμοποιησούμε τον Application Server Tomcat σε συνδυασμό με MySQL και Java. Δεν χρειάζεται να γίνει η εγκατάσταση ολόκληρου του λειτουργικού συστήματος στο εικονικό μηχάνημα παρά μόνο ενός αρχείου. Το αρχείο αυτό έχει παραχθεί και επεξεργαστεί από τους διδάσκοντες. Βρίσκεται στην τοποθεσία https://goo.gl/lYsWQZ .

Οδηγίες εγκατάστασης αρχείου στο οποίο περιέχεται το λειτουργικό σύστημα

1) Για να ολοκληρώσετε τη διαδικασία θα χρειαστεί να διαθέτετε τουλάχιστο 10GB ελεύθερα στον υπολογιστή σας.

2) Κατεβάστε από το σύνδεσμο https://goo.gl/lYsWQZ το αρχείο “Fedora 21 - ΕΑΠ ΠΛΣ60 2015-2016 Εκφώνηση.ova” (≈1800MB) και αποθηκεύστε το σε κάποιον φάκελο στον υπολογιστή σας.

3) Ακολουθεί η εκκίνηση του προγράμματος Virtual Box και από το μενού του προγράμματος επιλέγουμε "File → Import Appliance...". Αν το μενού είναι στα ελληνικά επιλέγουμε "Αρχείο → Εισαγωγή Συσκευής".

4) Επιλέγουμε το αρχείο που κατεβάσαμε από τον σύνδεσμο στο βήμα 1. Έχουμε ολοκληρώσει την εγκατάσταση του λειτουργικού συστήματος στον εικονικό υπολογιστή.

Προκειμένου να γίνεται η εκκίνηση του νέου υπολογιστή με λειτουργικό σύστημα Linux από το VirtualBox ακολουθούμε τα εξής βήματα. Αρχικά ανοίγουμε το VirtualBox , στη συνέχεια επιλέγουμε τη μηχανή με το εγκατεστημένο λειτουργικό σύστημα , όπως έγινε στα βήματα 1 - 4, (Fedora 21 - ΕΑΠ ΠΛΣ60 2015-2016)και επιλέγουμε "Start" (ή "Ξεκίνημα" στην ελληνική έκδοση) για να εκκινήσουμε τον εικονικό υπολογιστή. Όπως έχει προαναφερθεί, το λειτουργικό σύστημα του εικονικού υπολογιστή έχει ήδη παραμετροποιηθεί από τους διδάσκοντες κατάλληλα, ώστε να μπορείτε χωρίς καμία επιπλέον κίνηση από μέρους σας να μεταγλωττίζετε και να εκτελείτε προγράμματα. Ακολουθούν πληροφορίες για τις παραμετροποιήσεις που έχουν γίνει και θα χρειαστείτε στα πλαίσια της άσκησης.

1) Έχει δημιουργηθεί ένας λογαριασμός χρήστη με όνομα “hadoop2.0” (το όνομα του χρήστη είναι χωρίς τα εισαγωγικά). Ο κωδικός για τον χρήστη αυτό είναι επίσης “hadoop2.0” (πάλι χωρίς τα εισαγωγικά). Αυτόν τον λογαριασμό θα χρησιμοποιείτε για να εισέρχεστε στο σύστημα και να πραγματοποιείτε την εργασία.

2) Σε περίπτωση που χρειαστεί να εισέλθετε ως διαχειριστής στο σύστημα (όπως θα περιγραφεί παρακάτω αργότερα), το όνομα χρήστη είναι “root” και ο κωδικός είναι πάλι “hadoop2.0”. Προσέξτε πως το γραφικό περιβάλλον LXDE (lightweight X11 desktop environment) που έχει εγκατασταθεί δεν σας επιτρέπει να εισέλθετε στο σύστημα απευθείας ως διαχειριστής. Θα πρέπει να εισέλθετε πρώτα ως χρήστης “hadoop2.0” και στην συνέχεια από ένα τερματικό (terminal) να δώσετε την εντολή “su –“. Μπορείτε να ανοίξετε τερματικό πηγαίνοντας στο “Start → System Tools → LXTerminal” στο λειτουργικό σύστημα Linux.

Εξυπηρετητές Παγκοσμίου Ιστού και Αιτήσεις Χρηστών

Αρχικά, οι εξυπηρετητές παγκόσμιου ιστού (web servers) δημοσίευαν μόνο στατικό περιεχόμενο χωρίς να λαμβάνεται υπόψη τυχόν δεδομένα που μπορεί να αποστέλλουν οι χρήστες. Τα Java Servlets είναι προγράμματα που εκτελούνται στους web εξυπηρετητές (server side programs) και χειρίζεται αιτήσεις χρηστών (requests) (δηλαδή προσπελάσεις σελίδων στον εξυπηρετητή με client side programs) και επιστρέφουν μια προσαρμοσμένη (δυναμική όπως αναφέρεται συχνά) απάντηση (response) για κάθε αίτημα χρήστη. Η δυναμική απάντηση μπορεί να βασίζεται σε δεδομένα εισόδου του χρήστη (π.χ. στοιχεία αναζήτησης) με τα δεδομένα της απόκρισης, δηλαδή της σελίδας που θα λάβει ο χρήστης, να είναι δυνατό να ανακτώνται από βάσεις δεδομένων ή άλλες εφαρμογές και να συνδυάζονται με επιπλέον στατικά χαρακτηριστικά σχεδίασης και πληροφορίες. Όλα αυτά εκτελούνται με χρήση του HTTP πρωτόκολλου που αποτελεί το πλέον διαδεδομένο στο Διαδίκτυο.

Εικόνα1

Τεχνολογίες στην πλευρά του εξυπηρετητή (server side programs)

Σήμερα υπάρχουν πολλές και ανταγωνιζόμενες τεχνολογίες server side programming όπως: βασισμένες σε Java (π.χ. servlet, JSP, JSF, Struts, Spring, Hibernate), αλλά και πολλές άλλες όπως ASP.NET (π.χ. με προγραμματισμό σε C#), PHP, Ruby, Python κλπ. Τα Java servlet αποτελούν τη βάση για τον προγραμματισμό με Java στην πλευρά του εξυπηρετητή Web. Εν γένει οι τεχνολογίες JSP (JavaServer Pages), JSF (JavaServer Faces), Struts, Spring, Hibernate, και πολλές άλλες αποτελούν επεκτάσεις της τεχνολογίας των servlet. Για το λόγο αυτό η εργασία με Java servlet βοηθά στη βαθιά κατανόηση των βασικότερων στοιχείων του προγραμματισμού Java για το Web.

Εξυπηρετητής Εφαρμογών Διαδικτύου Apache Tomcat

Τα Servlets είναι προγράμματα που εκτελούνται σε κάποιο εξυπηρετητή που μπορεί να εκτελεί Java όταν δέχεται κλήσεις για την παροχή μίας ιστοσελίδας-εφαρμογής Διαδικτύου, δηλαδή είναι προγράμματα που εκτελούνται στην πλευρά του εξυπηρετητή (οι κλήσεις θεωρούμε ότι έρχονται από την πλευρά του χρήστη, δηλαδή με την κλήση μέσα από ένα web browser μιας διεύθυνσης μιας ιστοσελίδας-εφαρμογής Διαδικτύου). Ο εξυπηρετητής Εφαρμογών Διαδικτύου Apache Tomcat Server (@ http://tomcat.apache.org) αποτελεί την επίσημη βασική υλοποίηση αναφοράς για Java servlet και JSP και παρέχεται δωρεάν από το open-source foundation Apache (@ http://www.apache.org). Για να λειτουργήσουν τα Java Servlets απαιτείται η εγκατάσταση και λειτουργία του εξυπηρετητή Tomcat. Στην εικονική μηχανή που έχετε διαθέσιμη με την εκφώνηση της εργασίας ο εξυπηρετητής έχει ήδη εγκατασταθεί και βρίσκεται ρυθμισμένος έτοιμος για να προγραμματίσετε.

Ο Τοmcat βρίσκεται στη θέση /usr/share/tomcat/ το οποίο για συντομία αναφέρεται ως <CATALINA_HOME>, και είναι διαθέσιμος για προσπέλαση από τον Firefox που διαθέτει η εικονική μηχανή στο port 8080 (π.χ. http://localhost:8080/ για την κεντρική σελίδα εισαγωγής και http://localhost:8080/examples για διάφορα παραδείγματα).

Catalina είναι o servlet container του Tomcat:

Εικόνα2

H βασική ιδέα για τους Servlet container είναι να δίνουν τη δυνατότητα να παράγονται δυναμικά web ιστοσελίδες με χρήση της Java server-side. Πλήρης τεκμηρίωση μπορείτε να βρείτε για τα Java Servlets http://java.sun.com/products/servlet (http://www.oracle.com/technetwork/java/javaee/servlet/index.html

Το πρόγραμμα "Hello-world" Servlet

Προκειμένου να γίνει μετάφραση του java προγράμματος για java servlet και στη συνέχεια να εκτελεστεί και να προσπελαστεί (το αποτέλεσμα που εκτυπώνει) με χρήση ενός web browser (π.χ. firefox) ακολουθείται η εξής διαδικασία κάθε φορά που ένας χρήστης το ζητήσει. Μέσα από ένα web browser στη δική σας περίπτωση τον firefox στην εικονική μηχανή στέλνει το πρόγραμμα το αποτέλεσμά του στη σελίδα. Ένα παράδειγμα προγράμματος προς μετάφραση είναι το : “HelloServlet.java”.Στην παρούσα περίπτωση θα γράψετε ένα java servlet "HelloServlet.java" το οποίο θα μεταφράσετε σε "HelloServlet.class". Ο web browser μπορεί να εκτελέσει/προσπελάσει/δει το πρόγραμμα "HelloServlet.class" αν γράψετε τη διεύθυνση URL http://localhost:8080/helloServlet/sayhello Όλα τα εργαλεία που χρειάζεστε για την μεταγλώττιση και εκτέλεση του προγράμματος “HelloJava.java” βρίσκονται προεγκατεστημένα στην εικονική μηχανή και είναι το JDK (JVM) και ο Tomcat. Κάθε εφαρμογή Διαδικτύου – εφαρμογή Web (webapp) αναφέρεται ως web context στον Tomcat και μπορεί να περιλαμβάνει αρχεία όπως: εικόνες, html αρχεία, προγράμματα και βιβλιοθήκες. Κάθε Tomcat Java webapp έχει μία συγκεκριμένη δομή φακέλων για να αποθηκεύονται τα αρχεία της. Αφού ξεκινήσετε την εικονική μηχανή, κάνετε login όπως περιγράφηκε παραπάνω. Στο lxterminal που έχετε ανοίξει (προσοχή στα κεφαλαία και πεζά παίζουν ρόλο δεν είναι το ίδιο!) μπείτε ως root και στη συνέχεια: