Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών...

106
ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΠΑΤΡΑΣ ΠΑΡΑΡΤΗΜΑ ΠΥΡΓΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΜΜΕ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ: Μελέτη και συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης Web εφαρμογών ΕΠΙΜΕΛΕΙΑ: Ξένος Απόστολος Γαρουφαλίδης Χρήστος Εποπτεύων Καθηγητές: Σκλάβος Νίκος, Χριστοδούλου Σωτήρης ΠΥΡΓΟΣ - ΙΟΥΝΙΟΣ 2010

Upload: gtx10

Post on 28-Jul-2015

220 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΠΑΤΡΑΣ

ΠΑΡΑΡΤΗΜΑ ΠΥΡΓΟΥ

ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΜΜΕ

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ:

Μελέτη και συγκριτική αξιολόγηση των πιο σημαντικών

πλατφόρμων ανάπτυξης Web εφαρμογών

ΕΠΙΜΕΛΕΙΑ:

Ξένος Απόστολος

Γαρουφαλίδης Χρήστος

Εποπτεύων Καθηγητές: Σκλάβος Νίκος, Χριστοδούλου Σωτήρης

ΠΥΡΓΟΣ - ΙΟΥΝΙΟΣ 2010

Page 2: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

1

ΠΕΡΙΕΧΟΜΕΝΑ

ΠΕΡΙΛΗΨΗ (Ελληνικά)........................................................... 3

ΠΕΡΙΛΗΨΗ (Αγγλικά).............................................................. 4

ΚΕΦΑΛΑΙΟ 1 Διαδίκτυο και Web εφαρμογές 1.1 Η ιστορία του Διαδικτύου ........................ 5

1.2 Διαδίκτυο ................................................. 6

1.3 Το Διαδίκτυο στον 21ο αιώνα .................. 7

1.4 Πλαίσιο Web εφαρμογής ......................... 7

1.5 Ιστορία Web εφαρμογών ......................... 7

1.6 Αρχιτεκτονικές ........................................ 8

1.7 Χαρακτηριστικά ...................................... 10

1.8 Λίστα πλαισίων Web εφαμοργών ........... 14

1.9 Aνάπτυξη ιστοσελίδων ........................... 19

1.10 Τεχνικές για εύχρηστες web εφαρμογές .... 19

ΚΕΦΑΛΑΙΟ 2 Συστήµατα Διαχείρισης Περιεχοµένου (CMS)

2.1 Εισαγωγή στα CMS ............................... 22

2.2 Web CMS .............................................. 24

2.3 Πως γινόταν την δεκαετία του 90’ ........ 25

2.4 Πως γίνεται σήμερα .............................. 25

2.5 Πως γίνεται με ένα Web CMS .............. 26

2.6 Πλεονεκτήματα χρήσης ενός Web CMS .. 26

ΚΕΦΑΛΑΙΟ 3 Είδη Web CMS

3.1 Κλειστού κώδικα (closed source) ........ 28

3.2 Ανοιχτού κώδικα (open source) .......... 29

3.3 Μειονεκτήματα των Commercial Closed Source Web

CMS έναντι των Open Source Web CMS 30

3.4 Πλεονεκτήματα των Commercial Closed Source Web

CMS έναντι των Open Source Web CMS 30

ΚΕΦΑΛΑΙΟ 4 Drupal 4.1 Τι είναι ................................................ 32

4.2 Απο που προήλθε ................................ 32

4.3 Σχεδίαση .............................................. 33

4.4 Μονάδες .............................................. 34

4.5 Κριτική ............................................... 36

4.6 Διανομές ............................................. 37

4.7 Χαρακτηριστικά ................................. 38

ΚΕΦΑΛΑΙΟ 5 Ruby on Rails

5.1 Τι είναι ................................................ 47

5.2 Ιστορία ................................................ 49

5.3 Τεχνική επισκόπηση ........................... 49

Page 3: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

2

5.4 Δομή πλαισίου .................................... 50

5.5 Φιλοσοφία και σχεδίαση .................... 50

5.6 Πρόσφατε εξελίξεις ............................ 51

5.7 Trademarks ......................................... 51

5.8 Κριτική ............................................... 52

5.9 Χαρακτηριστικά ................................. 52

ΚΕΦΑΛΑΙΟ 6 Joomla

6.1 Τι είναι ................................................ 55

6.2 Ιστορία ............................................... 55

6.3 Ανάπτυξη ........................................... 57

6.4 Κοινότητα .......................................... 58

6.5 Χαρακτηριστικά ................................ 58

ΚΕΦΑΛΑΙΟ 7 Υλοποίηση

7.1 Υλοποίηση Joomla ............................. 73

7.2 Υλοποίηση Drupal ............................. 77

7.3 Υλοποίηδη WaterCMS (Ruby) .......... 84

7.4 Πίνακες κριτηρίων και Συμπεράσματα .. 93

ΒΙΒΛΙΟΓΡΑΦΙΑ

Page 4: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

3

ΠΕΡΙΛΗΨΗ

Σκοπός της παρούσας πτυχιακής εργασίας είναι η μελέτη καθώς

και η συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων

ανάπτυξης web εφαρμογών.

Για την υλοποίηση της εργασίας, επιλέχθηκαν τρεις από τις

σημαντικότερες πλατφόρμες συστήματος διαχείρησης περιεχομένου

(CMS).

1. Joomla

2. Drupal

3. Ruby on Rails

Ο αναγνώστης μαθαίνει για το διαδίκτυο, την ιστορία του και πως

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

Ενημερώνεται για τις web εφαρμογές και τις ιστοσελίδες, τον τρόπο

σχεδίασης τους και πως ωφελούν τον χρήστη.

Οι CMS πλατφόρμες χρησιμοποιούνται για την δημιουργία ιστοσελίδων

στο διαδίκτυο. Με τη χρήση πληροφορίων από το διαδίκτυο κάνουμε μια

εκτενή αναφορά για τις πλατφόρμες συστήματος διαχείρισης

περιεχομένου ανοιχτού και κλειστού κώδικα και ιδιαίτερα για τις τρεις

που έχουμε ασχοληθεί. Με απλά διαγράμματα δείχνουμε πως

κατασκευάζονταν οι ιστοσελίδες παλαιότερα και πως τώρα, καθώς και

τα πλεονεκτήματα χρήσης αυτών των πλατφόρμων.

Τέλος δημιουργήσαμε 3 ιστοσελίδες, καθεμία με μία από τις CMS

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

παραθέτοντας πίνακες σύγκρισης καθώς και περιγραφή των

σημαντικότερων πλεονεκτημάτων και μειονεκτημάτων τους.

Page 5: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

4

SUMMARY

The purpose of this thesis is to study and benchmarking of the most

significant web application development platforms.

We chose 3 of the most significant content management system

platforms (CMS), in order to implement our study. These 3 platforms are

the following:

1. Joomla

2. Drupal

3. Ruby on Rails

The reader learns about Internet, it’s history and how it has been

developed since it’s creation. He is being informed about web

applications and their benefits as well as websites and the way of their

creation.

CMS platforms are being used for website development. Using

information from web, we made an extensive report for many CMS

platforms and especially the 3 we study for. Using simple diagrams we

show the way of constructing websites along with their advantages.

At last we created 3 websites using 3 different cms and we compared

their features ,quoting comparison tables and also we desciribed their

most important advantages and disadvantages.

Page 6: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

5

1 Διαδίκτυο και Web εφαρμογές

1.1 Η Iστορία του Διαδικτύου

Η αρχή έγινε από τον Paul Baran, ερευνητή της εταιρίας Rand, ο οποίος

σχεδίασε ένα δίκτυο επικοινωνίας υπολογιστών χωρίς κεντρικό άξονα,

κεντρικούς διακόπτες, ούτε καν κεντρική διεύθυνση. Το δίκτυο

στηριζόταν στην υπόθεση ότι οι συνδέσεις του δικτύου μεταξύ των

πόλεων είναι πλέον αναξιόπιστες.

Οι ιδέες του Baran οδήγησαν το 1969 στη

δημιουργία του πειραματικού δικτύου

ARPAnet, από τα αρχικά της υπηρεσίας ARPA,

Advanced Research Projects Agency (που

αργότερα ονομάσθηκε DARPA, Defence

Advanced Projects Agency), του αμερικανικού

Πενταγώνου.

Μετά την έναρξη λειτουργίας του δικτύου, και άλλα πειραματικά δίκτυα

συνδέθηκαν με το ARPAnet χρησιμοποιώντας την τεχνολογία των

δικτυώσεων της DARPA. Τα περισσότερα από αυτά είχαν σχέση με

στρατιωτική έρευνα, ενώ συχνά συνδέονταν και πανεπιστήμια. Οι

ερευνητές αυτοί, ενώ βρίσκονταν σε απομακρυσμένα κέντρα

υπολογιστών, μπορούσαν μέσα από το δίκτυο να μοιράζονται μεταξύ

τους προγράμματα, βάσεις δεδομένων αλλά και σκληρούς δίσκους

υπολογιστών. Το 1971 είχαν ήδη συνδεθεί 23 κόμβοι (hosts), ενώ το

1980 έγιναν 200, με παράλληλη δημιουργία των πρώτων διεθνών

συνδέσεων.

Στις αρχές του 1980 το ARPAnet χωρίστηκε σε δύο τμήματα, τα οποία

ωστόσο επικοινωνούσαν μεταξύ τους. Το πρώτο ήταν αποκλειστικά

αφιερωμένο σε στρατιωτικές εφαρμογές και ονομαζόταν MILNET. Το

άλλο τμήμα, που περιλάμβανε όλες τις υπόλοιπες χρήσεις, αρχικά

ονομάστηκε DARPA Internet, για να επικρατήσει με την πάροδο του

χρόνου η σύντομη ονομασία "δίκτυο του Internet".

Η διασύνδεση των υπολογιστών άρχισε να γίνεται ιδιαίτερα δημοφιλής

στα τέλη της δεκαετίας του '70 και στις αρχές της δεκαετίας του '80,

Page 7: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

6

οπότε και δημιουργήθηκαν τρία μεγάλα δίκτυα: το ΒΙΤΝΕΤ (Because It's

Time Network), το CSNET(Computer Science Network) και το NSFnet

(National Science Foundation Network). Το τελευταίο, εγκαθιστώντας

μία γραμμή των 56 Kbps, έγινε ο βασικότερος κορμός (backbone) του

Διαδικτύου.

Από το 1983 άρχισε να χρησιμοποιείται το πρωτόκολλο TCP/IP

(Transmission Control Protocol/Internet Protocol), που αναπτύχθηκε στη

δεκαετία του '70 από την DARPA. Από τις αρχές όμως της δεκαετίας του

'80, ο Διεθνής Οργανισμός Προτύπων ISO 70 (International Standards

Organization) ανέπτυξε περιορισμένης χρήσης πρωτόκολλα Ανοιχτής

Διασύνδεσης Συστημάτων OSI (Open Systems Interconnection).

Παράλληλα, η ανάπτυξη του λειτουργικού συστήματος UNIX

διευκόλυνε την επέκταση των διασυνδέσεων μέσω του UUCP (UNIX-to-

UNIX Copy Program.)

1.2 Διαδίκτυο

Το Διαδίκτυο είναι οπτικοποιηµένη αναπαράσταση διαφόρων

διαδροµών (routes) διαµέσου ενός τµήµατος του Ίντερνετ. Στην γενική

του έννοια, διαδίκτυο (ίντερνετ) είναι ένα δίκτυο ηλεκτρονικών

υπολογιστών που (δια)συνδέει άλλα δίκτυα. Ο αντίστοιχος αγγλικός όρος

internet προκύπτει από τη σύνθεση λέξεων inter-network.

Στην πιο εξειδικευµένη και περισσότερο χρησιµοποιούµενη του µορφή,

µε τους όρους Διαδίκτυο, Ιντερνέτ ή Ίντερνετ (µε κεφαλαίο το αρχικό

γράµµα) περιγράφεται το παγκόσµιο πλέγµα διασυνδεδεµένων

υπολογιστών και των υπηρεσιών και πληροφοριών που παρέχει στους

χρήστες του. Το Διαδίκτυο χρησιµοποιεί µεταγωγή πακέτων (packet

switching) και τη στοίβα πρωτοκόλλων TCP/IP. Σήµερα, ο όρος

διαδίκτυο κατέληξε να αναφέρεται στο παγκόσµιο αυτό δίκτυο. Για να

ξεχωρίζει, το παγκόσµιο αυτό δίκτυο γράφεται µε κεφαλαίο το αρχικό

"Δ". Η τεχνική της διασύνδεσης δικτύων µέσω µεταγωγής πακέτων και

της στοίβας πρωτοκόλλων TCP/IP ονοµάζεται διαδικτύωση.

Page 8: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

7

1.3 Το διαδίκτυο στον 21ο αιώνα

Το Διαδίκτυο δεν αποτελεί πλέον ένα μέσο επικοινωνίας και

ανταλλαγής δεδομένων αποκλειστικά μεταξύ φοιτητών και ερευνητών.

Έχει επεκταθεί και εισβάλει στην καθημερινότητα όλων. Ήδη μιλάμε για

ηλεκτρονικό εμπόριο, τηλε-εργασία, τηλε-εκπαίδευση, τηλε-ϊατρική. Ο

πλανήτης είναι, με λίγα λόγια, δικτυωμένος. Και με το πέρασμα του

χρόνου θα δικτυώνεται ολοένα και περισσότερο.

Το Διαδίκτυο συγκροτείται από πολύπλευρα εµπορικά συµβόλαια (π.χ.

οµότιµες συµφωνίες) και από τεχνικές προδιαγραφές ή πρωτόκολλα που

περιγράφουν την ανταλλαγή δεδοµένων στο δίκτυο. Τα πρωτόκολλα

αυτά µορφοποιούνται µε συζητήσεις µέσα στο Internet Engineering Task

Force (IETF) και τις οµάδες εργασίας του, οι οποίες είναι ανοιχτές για

δηµόσια συµµετοχή και κριτική. Αυτές οι επιτροπές παράγουν κείµενα

που είναι γνωστά ως Αιτήµατα για Σχολιασµό (ΑΓΣ). Ορισµένα ΑΓΣ

εγείρονται από το Συµβούλιο Αρχιτεκτονικής του Διαδικτύου (IAB).

1.4 Πλαίσιο Web εφαρμογής (Web application framework)

Το πλαίσιο web εφαρμογής είναι ένα πλαίσιο λογισμικού, το οποίο είναι

σχεδιασμένο να υποστηρίζει την ανάπτυξη των δυναμικών ιστοσελίδων,

των Web εφαρμογών και των υπηρεσιών web. To πλαίσιο στοχεύει να

αμβλύνει την διαδικασία που σχετίζεται με τις κοινές δραστηριότητες

που εκτελούνται στην ανάπτυξη του Web. Για παράδειγμα, πολλά

πλαίσια προμηθεύουν πληροφορίες για πρόσβαση σε βάση δεδομένων,

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

χρήση ήδη χρησιμοποιημένου λογισμικού ή κώδικα.

1.5 Ιστορία Web εφαρμογών

H σχεδίαση του παγκόσμιου ιστού δεν ήταν αισθητά δυναμική, καθώς

το αρχικό υπερκείμενο απαρτιζόταν απο χειρόγραφο κώδικα HTML, που

είχε εκδοθεί στους Web servers. Όλες οι μετατροπές στις ιστοσελίδες,

έπρεπε να εκτελεστούν από τον δημιουργό τους. Το Common Gateway

Interface (CGI) δημιουργήθηκε για να διασυνδέει τις εξωτερικές

Page 9: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

8

εφαρμογές με τους Web servers , καθώς και να προσδώσει μια δυναμική

στην ιστοσελιδά που θα αντικατοπτρίζει τις εισροές του χρήστη. Το CGI

όμως μπορούσε να επηρεάσει δυσμενώς την φόρτωση του server

μολονότι κάθε αίτημα έπρεπε να ξεκινήσει μια ξεχωριστή διαδικασία.

Οι προγραμματιστές για να παρέχουν υψηλής διακίνησης Web

εφαρμογές, ζητούσαν την ενοποίηση τους με τους Web servers. O

Αpache HTTP server, για παράδειγμα, υποστηρίζει μονάδες που μπορούν

να επεκτείνουν έναν Web server με αυθαίρετες εκτελέσεις κώδικα (όπως

το mod perl) ή να πρωωθήσει συγκεκριμένες αιτήσεις σε server που

μπορεί να χειριστεί δυναμικό περιεχόμενο (όπως το mod jk). Μερικοί

Web servers (όπως ο Apache Tomcat) ήταν ειδικά σχεδιασμένοι για να

χειρίζονται δυναμικό κείμενο εκτελώντας κώδικα γραμμένo σε γλώσσες

όπως η Java.

Σχεδόν την ίδια χρονική περίοδο, νέες γλώσσες αναπτύσσονταν ειδικά

για χρήση στο διαδίκτυο, όπως οι ColdFusion, php και Active server

pages.

Παράλληλα ενώ η πλειοψηφεία των διαθέσιμων γλωσσών που

χρησιμοποιήθηκαν για τη δημιουργία δυναμικών ιστοσελίδων, έχουν

βιβλιοθήκες που βοηθούν με συχνές εργασίες, οι Web εφαρμογές συχνά

απαιτούν συγκεκριμένες βιβλιοθήκες που είναι χρήσιμες στις εφαρμογές,

όπως η δημιουργία HTML κώδικα (για παράδειγμα, JavaServer Faces).

Τελικά εμφανίστηκαν «full stack» frameworks, που συχνά

συγκέντρωναν πολλαπλές βιβλιοθήκες χρήσιμες για επέκταση του Web

σε ένα ενιαίο λειτουργικό έτοιμο για χρήση. Παραδείγματα είναι τα

JavaEE (Servlets), WebObjects, OpenACS και το Ruby on Rails.

1.6 Αρχιτεκτονικές

Model view controller (MVC)

Πολλά πλαίσια ακολουθούν το πρότυπο αρχιτεκτονικής του Model

View Controller (MVC) για να διαχωρίσουν το υπόδειγμα στοιχείων με

επιχειρηματικούς κανόνες από την διεπαφή με τον χρήστη. Γενικά αυτό

Page 10: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

9

θεωρείται ως μια καλή εξάσκηση καθώς καταμετρεί τον κώδικα, προωθεί

την επανάχρηση του και επιτρέπει να εφαρμοστούν πολλαπλές διεπαφές.

Push-based vs Pull-based

Τα περισσότερα MVC πλαίσια ακολουθούν μια push-based

αρχιτεκτονική. Αυτά τα πλαίσια χρησιμοποιούν πράξεις που κάνουν την

απαιτούμενη επεξεργασία και μετά ωθούν την πληροφορία στο οπτικό

επίπεδο ώστε να φανούν τα αποτελέσματα. Struts, Django, Ruby on Rails

και Spring MVC είναι καλά παραδείγματα αυτής της αρχιτεκτονικής.

Μια εναλλακτική σε αυτό είναι η pull-based αρχιτεκτονική, η οποία

επίσης ονομάζεται “component-based”. Αυτά τα πλαίσια ξεκινάνε με το

οπτικό επίπεδο, το οποίο μπορεί να «τραβήξει» αποτελέσματα από

πολλαπλούς ελεκτές όπως χρειαστεί. Σε αυτήν την αρχιτεκτονική, οι

πολλαπλοί ελεκτές έχουν την δυνατότητα να συνδέονται με μια ενιαία

όψη. Struts2, Tapestry, JBoss Seam, Wicket και Stripes είναι

παραδείγματα της pull-based αρχιτεκτονικής.

Content Management Systems

Μερικά συστήματα διαχείρισης περιεχομένου έχουν ξεκινήσει να

εξαπλώνονται σε μεγαλύτερου επιπέδου πλαίσια Web εφαρμογών. Για

παράδειγμα, η κατασκευή του Drupal μας δίνει έναν μικρό πυρήνα, ο

οποίος λειτουργεί μέσω των modules που προμηθεύουν λειτουργίες

συσχετισμένες με τα πλαίσια Web εφαμοργών. Ιστορικά αυτά τα projects

έχουν οροθετηθεί ως συστήματα διαχείρισης περιεχομένου. Οπότε, είναι

αμφισβητούμενο αν ή «διαχείριση του περιεχομένου» είναι ο

πρωταρχικός σκοπός αυτών των συστημάτων, ειδικά όταν κάποια από

αυτά, όπως το SilverStripe, δίνουν ένα πλαίσιο MVC που είναι

προσανατολισμένο στην διαχείριση ενός αντικειμένου. Τα πρόσθετα

modules ενεργοποιούν αυτά τα συστήματα ώστε να λειτουργούν σαν

ολοκληρωμένες εφαρμογές πέρα από τον σκοπό της διαχείρισης

περιεχομένου. Τα πρόσθετα modules μπορούν να προμηθεύσουν

λειτουργικά APIs, λειτουργικά πλαίσια, πρότυπα κωδικοποίησης και

Page 11: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

10

πολλές από τις λειτουργίες παραδοσιακά σχετίζονται με τα πλαίσια Web

εφαρμογών.

1.7 Χαρακτηριστικά

Ασφάλεια

Μερικά πλαίσια Web εφαρμογών έχουν πλαίσια πιστοποίησης και

εξουσιοδότησης, που καθιστούν ικανό τον Web server να αναγνωρίσει

τους χρήστες της εφαρμογής και να περιορίσει την πρόσβαση τους σε

κάποιες λειτουργίες βασισμένος σε κάποια συγκεκριμένα κριτήρια. Το

Django είναι ένα παράδειγμα που δίνει πρόσβαση σε κάθε σελίδα

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

Web με τους χρήστες και τους αναθέτει τους ρόλους τους.

Πρόσβαση στη βάση δεδομένων και χαρτογράφηση

Πολλά πλαίσια Web εφαρμογών δημιουργούν ένα ενοποιημένο API στο

σύστημα υποστήριξης της βάσης δεδομένων, που ενεργοποιεί τις Web

εφαρμογές να δουλέψουν με μια ποικιλία από βάσεις δεδομένων χωρίς

αλλαγές κώδικα και επιτρέποντας τους προγραμματιστές να δουλέψουν

με υψηλότερου επιπέδου σχέδια. Για μεγαλύτερη απόδοση, οι συνδέσεις

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

παράδειγμα ο AOLserver. Επιπρόσθετα, κάποια πλαίσια συσχετισμένα

με το αντικείμενο, περιέχουν εργαλεία χαρτογράφησης που προμηθεύουν

μια προγραμματιστική τεχνική που ονομάζεται Object-Relational

Mapping, η οποία θα χωρίσει τα αντικείμενα σε πλειάδες. Άλλα

χαρακτηριστικά τα οποία μπορούμε να πάρουμε από τα πλαίσια Web

εφαρμογών είναι συναλλαγματική υποστήριξη και μετεγκατάσταση της

βάσης δεδομένων.

Χαρτογράφηση του URL

Οι εγκαταστάσεις χαρτογράφησης URL ενός πλαισίου είναι ο

μηχανισμός με τον οποίο τα πλαίσια ερμηνεύουν τα URLs. Μερικά

Page 12: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

11

πλαίσια, όπως το Django, αντιπαραβάλουν τo προμηθευόμενo URL με

πρότυπα που χρησιμοποιούν κανονικές εκφράσεις, τη στιγμή που κάποια

άλλα χρησιμοποιούν την επανεγγραφή του URL για να μεταφράσουν το

προμηθευόμενο URL, σε μορφή που θα είναι αναγνωρίσιμη από την

μηχανή επεξεργασίας. Μια άλλη τεχνική είναι η διασταύρωση

γραφήματος που χρησιμοποιεί το Zope, όπου το URL αναλύεται σε

βήματα και διασταυρώνεται με το γράφημα του αντικειμένου.

Ένα σύστημα χαρτογράφησης που χρησιμοποιεί αντιπαραβολή

προτύπων ή επανεγγραφή URL, επιτρέπει να χρησιμοποιηθούν πιο

«φιλικά» URLs, αυξάνοντας έτσι την απλότητα της ιστοσελίδας και

επιτρέποντας να δώσει καλύτερες ενδείξεις στις μηχανές αναζήτησης. Για

παράδειγμα, όταν ένα URL τελειώνει με

“/page.cgi?cat=science&topic=physics” μπορεί απλά να μετατραπεί σε

“/page/science/physics”. Αυτό καθιστά την ανάγνωση του URL πιο

εύκολη και προμηθεύει τις μηχανές αναζήτησης με καλύτερες

πληροφορίες σχετικά με την κατασκευαστική δομή της ιστοσελίδας. Η

προσέγγιση της διασταύρωσης του γραφήματος έχει ως αποτέλεσμα να

δημιουργήσει «φιλικά» URLs. Ένα σύντομο URL όπως το

“/page/science” μπορεί να υπάρχει ως προεπιλογή καθώς είναι μια

συντομότερη μορφή του “/page/science/physics”.

Πρότυπο συστήματος Web

Οι δυναμικές ιστοσελίδες συνήθως αποτελούνται από ένα στατικό

μέρος (HTML) και ένα δυναμικό μέρος, το οποίο είναι ο κώδικας που

παράγει την HTML. Ο κώδικας αυτός μπορεί να κάνει αυτή την εργασία,

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

μπορεί να εισέλθει από μια βάση δεδομένων, εκ τούτου κάνοντας πιθανή

την μείωση του αριθμού των σελίδων σε μια ιστοσελίδα.

Ας σκεφτούμε το παράδειγμα ενός αντιπροσώπου ακινήτων που έχει

500 σπίτια για πώληση. Σε μία στατική ιστοσελίδα, ο αντιπρόσωπος θα

έπρεπε να δημιουργήσει 500 σελίδες για να μπορέσει να δώσει

πληροφορίες για το κάθε σπίτι. Σε μία δυναμική ιστοσελίδα όμως, ο

αντιπρόσωπος μπορεί απλά να συνδέσει την σελίδα με μια βάση

δεδομένων που έχει 500 καταχωρήσεις.

Page 13: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

12

Σε ένα πλαίσιο, οι μεταβλητές από την προγραμματιστική γλώσσα

μπορούν να εισέλθουν χωρίς την χρήση κώδικα και ως εκ τούτου δεν

χρειάζεται η γνώση προγραμματισμού για να μπορέσει κάποιος να

ανανεώσει την ιστοσελίδα. Η σύνταξη γίνεται διαθέσιμη για να γίνει

διαχωρισμός μεταξύ της HTML και των μεταβλητών. Για παράδειγμα,

στο JSP η καρτέλα <c:out> χρησιμοποιείται για να εξάγει μεταβλητές

ενώ το Smarty χρησιμοποιεί την {$variable}.

Πολλές μηχανές πλαισίων υποστηρίζουν περιορισμένες λογικές

καρτέλες, όπως οι IF και FOREACH. Αυτές υπάρχουν για να

χρησιμοποιηθούν σε περιπτώσεις που πρέπει να παρθούν αποφάσεις για

το επίπεδο παρουσίασης, για να κρατήσουν μια διαχωριστική γραμμή

από το λογικό επίπεδο, ή το μοντέλο στο πρότυπο MVC.

Caching

To Web caching είναι το «κρύψιμο» των Web εγγράφων ώστε να

μειωθεί η χρήση του εύρους ζώνης, η φόρτωση του server, και το lag. Η

Web cache αποθηκεύει αντίγραφα των εγγράφων που περνάνε μέσα από

αυτό. Μεταγενέστερες αιτήσεις μπορούν να βρουν ανταπόκριση από την

cache αν πληρούν κάποιες προϋποθέσεις. Μερικά πλαίσια εφαρμογών

προμηθεύουν μηχανισμούς για «απόκρυψη» εγγράφων και διαπερνούν

διάφορα στάδια της προετοιμασίας της σελίδας, όπως είναι η πρόσβαση

στη βάση δεδομένων και η ερμηνεία του πλαισίου.

Ajax

Ajax, η συντομογραφία δηλαδή του “Asynchronous Javascript and

XML”, είναι μια τεχνική ανάπτυξης Web για την δημιουργία

αλληλεπιδραστικών εφαρμογών Web. Ο σκοπός είναι να φτιάξει

ιστοσελίδες που θα ανταποκρίνονται καλύτερα ανταλλάσσοντας μικρά

ποσά πληροφοριών με τον server, έτσι ώστε η ιστοσελίδα να μην

χρείαζεται να ανανεωθεί ολόκληρη κάθε φορά που ο χρήστης κάνει

αίτηση για μία αλλαγή. Χρησιμοποιήθηκε για να γίνουν οι ιστοσελίδες

πιο αλληλεπιδραστικές, γρήγορες και εύχρηστες.

Page 14: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

13

Λόγω της περισύνθετης δομής της προγραμματιστικής γλώσσας Ajax

στην Javascript, υπάρχουν πολλά πλαίσια Ajax, τα οποία ασχολούνται

αποκλειστικά με την υποστήριξη της Ajax. Μερικά από αυτά τα πλαίσια

είναι ενσωματωμένα σε μεγαλύτερα πλαίσια. Για παράδειγμα, το πλαίσιο

Prototype Javascript περιέχεται μέσα στο Ruby on Rails.

Με το αυξανόμενο ενδιαφέρον για ανάπτυξη εφαρμογών Rich Media

“Web 2.0”, η πολυπλοκότητα του προγραμματισμού στην Ajax και την

Javascript έγινε τόσο εμφανής, που η τεχνολογία μεταγλώτισης

εισχώρησε για να επιτρέψει τους developers να γράψουν υψηλού

επιπέδου κώδικα σε γλώσσες όπως η Java, Python και Ruby. Οι πρώτοι

από τους 3 μεταγλωτιστές ήταν Morfik ενώ ακολούθησε το Google Web

Toolkit και η Python και Ruby υπό την μορφή των Pyjamas και RubyJS.

Αυτοί οι μεταγλωτιστές έκαναν την ανάπτυξη των εφαρμογών Rich

Media Ajax παρόμοια με την ανάπτυξη των εφαρμογών Desktop.

Αυτόματη Διαμόρφωση

Μερικά πλαίσια ελαχιστοποιούν την διαμόρφωση των Web εφαρμογών

μέσω της χρήσης της ενδοσκόπησης γνωστών συμβάσεων. Για

παράδειγμα, πολλά πλαίσια Java χρησιμοποιούν το Hibernate σαν ένα

σταθερό επίπεδο, το οποίο μπορεί να παράγει ένα σχήμα βάσης

δεδομένων εκείνη την στιγμή, ικανό να ακολουθήσει τις απαραίτητες

πληροφορίες. Αυτό επιτρέπει τον σχεδιαστή της εφαρμογής να σχεδιάσει

επαγγελματικά αντικείμενα χωρίς να χρειάζεται να καθορίσει ακριβώς το

σχήμα της βάσης δεδομένων. Πλαίσια όπως το Ruby on Rails μπορούν

επίσης να δουλέψουν αντίστροφα, το οποίο σημαίνει ότι καθορίζουν τις

ιδιότητες του αντικειμένου του μοντέλου στο σχήμα μιας βάσης

δεδομένων.

Υπηρεσίες Web

Μερικά πλαίσια προμηθεύουν εργαλεία για την δημιουργία υπηρεσιών

Web. Αυτά τα εργαλεία μπορούν να χρησιμοποιηθούν και με άλλο τρόπο

ώστε να βοηθήσουν στην ολοκλήρωση της web εφαρμογής.

Page 15: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

14

1.8 Λίστα πλαισίων Web εφαρμογών

1. Πλαίσια PHP

Zend Framework

CakePHP

Symphony

CodeIgniter

Seagull

Prado

Solar

eZ Components

Kohana

Jelix

Flow3

MODx

Sapphire

PHP for Applications

Yii

Limonade

Tekuna

DooPHP

Fat-Free

Akelos

Page 16: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

15

PHP on TRAX

ATK

2. Πλαίσια Ruby

Ruby on Rails

Merb

Ramaze

Halcyon

Sinatra

Webby

Sass

3. Πλαίσια Perl

Catalyst

Interchange

Mason

CGI:Application

Jifty

Gantry

Dancer

Mojolicious

4. Πλαίσια Java

Struts

Page 17: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

16

Hibernate

Javaserver Faces

Spring

Apache Wicket

Play

Google Web Toolkit

Stripes

5. Πλαίσια Javascript

jQuery

MooTools

Prototype

Script.aculo.us

Dojo

Yahoo! UI Librady

Ext

Qooxdoo

$fx()

Scripty2

AJS

Archetype

RightJS

Glow

Page 18: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

17

My Library

DHTMLX

Echo

midori

6. Πλαίσια CSS

YAML

YUI Grids CSS

Blueprint

GridEasy

Malo

Emastic

960 Grid System

Elements

WYMstyle

Boilerplate

Tripoli

Sparkl

Typogridphy

The Golden Grid

The 1kb CSS Grid

SenCSs

Taffy

Page 19: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

18

Logic CSS

Hartija

BlueTrip

Compass

Elastic

Winston

Baseline

Floatz

Formee

7. Πλαίσια Python

Django

Pylons

Grok

TurboGears

Web2spy

CherryPy

8. Πλαίσια ColdFusion

ColdFusion on Wheels

ColdSpring

onTap

Model-Glue

Page 20: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

19

9. Πλαίσια ASP.Net

ASP.NET MVC Framework

DotNetNuke

MonoRail

Vici MVC

1.9 Aνάπτυξη ιστοσελίδων

Η ανάπτυξη ιστοσελίδων γίνεται με την γλώσσα HTML, η οποία

χρησιμοποιεί ένα είδος ετικετών <tags> για τη διαμόρφωση του τρόπου

παρουσίασης του κειμένου και των πολυμεσικών στοιχείων.

Όταν ένας φυλλομετρητής ανακαλεί μια ιστοσελίδα, τότε στην ουσία

διαβάζει τον κώδικα της ιστοσελίδας ως ένα αρχείο κειμένου και ψάχνει

να βρει μέσα σε αυτό ετικέτες, οι οποίες δηλώνουν πως θα παρουσιαστεί

το κείμενο και τα πολυμεσικά στοιχεία, ώστε να δημιουργηθεί το τελικό

οπτικό αποτέλεσμα της ιστοσελίδας. Στη συνέχεια, ο φυλλομετρητής

αναλαμβάνει να δημιουργήσει αυτό το τελικό αποτέλεσμα.

1.10 Tεχνικές για εύχρηστες Web εφαρμογές

Ένα από τα μεγαλύτερα στοιχήματα για έναν Web designer είναι ο

σχεδιασμός του περιβάλλοντος χρήσης μιας online εφαρμογής. Ακόμα

περισσότερο αν η εφαρμογή πρόκειται να χρησιμοποιείται καθημερινά

από ανθρώπους με διαφορετικές ανάγκες, λίγη υπομονή και άφθονη

όρεξη για γκρίνια! Δεν πρέπει όμως να είμαστε αυστηροί με τους

χρήστες, καθώς οι ίδιοι είμαστε οι αυστηρότεροι κριτές για τη δουλειά

των άλλων στον ίδιο τομέα.

Ο σχεδιασμός μιας Web εφαρμογής είναι ένας γρίφος που αρχικά

φαίνεται βουνό - και ίσως να είναι. Αυτό που χρειάζεται τελικά είναι

μεθοδικότητα, πολλές (μα πολλές) επαναλήψεις και σκέψη στο design

και δυο “μυστικά” συστατικά: ομοιογένεια και απλότητα.

Page 21: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

20

Ευτυχώς όμως, δεν είναι ανάγκη να «ξανα-ανακαλύψουμε τον τροχό».

Μπορούμε να στηριχτούμε στην εμπειρία των μεγαλύτερων design

agencies για να δούμε ποια είναι τα κύρια σχεδιαστικά χαρακτηριστικά

των πιο επιτυχημένων Web εφαρμογών:

Όμορφα & λειτουργικά tables

Δεν υπάρχουν πολλά HTML tags πιο παραξηγημένα στο Web design

από το <table>. Και όμως, αν φροντίσει κάποιος να χρησιμοποιήσει

tables γι’αυτό που προορίζονταν αρχικά, την παρουσίαση δεδομένων, θα

δει ότι σε παρόμοιες περιπτώσεις είναι μονόδρομος.

Λειτουργική χρήση εικονιδίων

Όταν τα εικονίδια χρησιμοποιούνται με φειδωλό τρόπο, μπορούν να

βοηθήσουν αρκετά στη μείωση του χρόνου απόκρισης του χρήστη,

καθώς οπτικοποιούν πολύ αποτελεσματικά την πληροφορία. Δοκιμάστε

να αναζητήσετε ένα αρχείο στο filesystem σας μέσα σε ένα φάκελο

γεμάτο αρχεία ίδιου τύπου - εφόσον όλα τα εικονίδια είναι ίδια και οι

τίτλοι εκτενείς, θα δυσκολευτείτε αρκετά.

Πολλές Web εφαρμογές χρησιμοποιούν εικονίδια μεγάλου μεγέθους

στo dashboard τους και άλλα μικρότερα ως φόντο σε πεδία, σε κουμπιά

και στα μενού πλοήγησης.

Διακριτικό περιβάλλον χρήσης

Είτε αφορά την παλέτα χρωμάτων είτε το πλήθος των γραμματοσειρών

που χρησιμοποιούνται, τα περισσότερα Web apps είναι αρκετά λακωνικά

και στα δύο. Η γραμματοσειρά Lucida Grande φαίνεται να κυριαρχεί στις

αγγλόφωνες εφαρμογές (στα ελληνικά δυστυχώς δεν είναι και η πιο

καθαρή γραμματοσειρά), ενώ οι τόνοι του γκρι και τα απλά χρώματα

χρησιμοποιούνται κατά κόρον.

Page 22: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

21

Για να μειώσει τη φθορά και την κούραση από την επαναλαμβανόμενη

χρήση, το backround διατηρεί γκρι φόντο σε όλες τις σελίδες και δίνει

στο χρήστη τη δυνατότητα να αλλάξει τα χρώματα του header.

Φόρμες

Σχεδιασμένες με κομψό τρόπο και απαραιτήτως ισομετρικές,

χρησιμοποιούνται για να αντλήσουν τις απαραίτητες πληροφορίες του

ατόμου που τις συμπληρώνει χωρίς να του προκαλούν ανία.

Tabs

Τα tab modules είναι ένας πρώτης τάξεως τρόπος να κρύψετε

πληροφορία που δεν είναι ανάγκη να είναι εμφανής ανά πάσα στιγμή,

παρά μόνο εφόσον το επιλέξει ο χρήστης. Όπως είναι λογικό, ο αριθμός

των διαφορετικών ενεργειών που μπορούν να γίνουν μέσω μιας

εφαρμογής σχεδόν επιβάλλει τη χρήση tabs σε ορισμένες περιπτώσεις.

Page 23: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

22

2 Συστήματα Διαχείρησης Περιεχομένου (CMS)

2.1 Εισαγωγή στα CMS

Μέχρι πριν από λίγα χρόνια, ο μόνος τρόπος για να διατηρήσει μια

εταιρία το site της ενημερωμένο ήταν να συνάψει συμβόλαιο με μια

εταιρία παροχής υπηρεσιών συντήρησης. Τα τελευταία χρόνια, όμως, οι

ίδιες οι εταιρίες παροχής τέτοιων υπηρεσιών προσφέρουν μια πολλά

υποσχόμενη εναλλακτική λύση. Πολλές από αυτές έχουν αναπτύξει

ειδικά συστήματα, τα οποία μειώνουν το χρόνο και το κόστος

λειτουργίας ενός δικτυακού τόπου.

Ο όρος Content Management Systems (CMS, Συστήματα Διαχείρισης

Περιεχομένου) αναφέρεται στις εφαρμογές που επιτρέπουν στον πελάτη

να διαχειρίζεται το δικτυακό του περιεχόμενο, όπως κείμενα, εικόνες,

πίνακες κ.λπ., με εύκολο τρόπο, συνήθως παρόμοιο με αυτόν της χρήσης

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

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

σχετικές με τη δημιουργία ιστοσελίδων ή γραφικών, καθώς συνήθως τα

κείμενα γράφονται μέσω κάποιων online WYSIWYG ("What You See Is

What You Get") html editors, ειδικών δηλαδή κειμενογράφων,

παρόμοιων με το MS Word, που επιτρέπουν τη μορφοποίηση των

κειμένων όποτε υπάρχει ανάγκη.

Οι αλλαγές του site μπορούν να γίνουν από οποιονδήποτε υπολογιστή

που είναι συνδεμένος στο Διαδίκτυο, χωρίς να χρειάζεται να έχει

εγκατεστημένα ειδικά προγράμματα επεξεργασίας ιστοσελίδων,

γραφικών κτλπ. Μέσω ενός απλού φυλλομετρητή ιστοσελίδων (browser),

ο χρήστης μπορεί να συντάξει ένα κείμενο και να ενημερώσει άμεσα το

δικτυακό του τόπο.

Αυτό που αποκαλούμε πολλές φορές "δυναμικό περιεχόμενο" σε ένα

website δεν είναι άλλο παρά οι πληροφορίες που παρουσιάζονται στο site

και μπορούν να αλλάξουν από τους ίδιους τους διαχειριστές του μέσω

κάποιας εφαρμογής, η οποία ουσιαστικά μπορεί να εισάγει (προσθέτει),

διορθώνει και να διαγράφει εγγραφές σε πίνακες βάσεων δεδομένων,

όπου τις περισσότερες φορές καταχωρούνται όλες αυτές οι πληροφορίες.

Page 24: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

23

Αυτό σημαίνει ότι δεν χρειάζεται να δημιουργηθούν πολλές ξεχωριστές

ιστοσελίδες για την παρουσίαση των πληροφοριών στο site, αλλά αρκεί

ένας ενιαίος σχεδιασμός στα σημεία όπου θέλουμε να εμφανίζεται το

περιεχόμενό μας, καθώς και να υπάρχει ο ειδικός σε κάποια

συγκεκριμένη γλώσσα προγραμματισμού (ASP, PHP, Coldfusion, Perl,

CGI κ.λπ.), ο οποίος αναλαμβάνει να εμφανίσει τις σωστές πληροφορίες

στις σωστές θέσεις.

Έτσι, για το δικτυακό τόπο μιας εφημερίδας π.χ., που απαιτεί εύλογα

καθημερινή ενημέρωση αλλά δεν χρησιμοποιεί κάποιο σύστημα Content

Management, θα πρέπει ο υπεύθυνος για το σχεδιασμό του (designer) να

δημιουργήσει μια σελίδα με τα γραφικά, την πλοήγηση και το

περιβάλλον διεπαφής (interface) του website, ο υπεύθυνος ύλης να

τοποθετήσει το περιεχόμενο στα σημεία της ιστοσελίδας που θέλει, και

να ενημερωθούν οι σύνδεσμοι των υπόλοιπων σελίδων ώστε να

συνδέονται με την καινούργια. Αφού την αποθηκεύσει, πρέπει να την

ανεβάσει στο website μαζί με τις υπόλοιπες ιστοσελίδες που άλλαξαν.

Αντιθέτως, αν ο δικτυακός τόπος λειτουργεί με χρήση κάποιου

συστήματος CM, το μόνο που έχει να κάνει ο διαχειριστής του είναι να

ανοίξει τη σχετική φόρμα εισαγωγής νέου άρθρου στη διαχειριστική

εφαρμογή του website και να γράψει ή να επικολλήσει (copy-paste) τα

στοιχεία που επιθυμεί. Αυτόματα, μετά την καταχώριση γίνονται από το

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

ώστε το άρθρο να είναι άμεσα διαθέσιμο στους επισκέπτες και όλοι οι

σύνδεσμοι προς αυτό ενημερωμένοι.

Με την αυξανόμενη τάση χρήσης των CMS στην Ελλάδα και το

εξωτερικό, γίνεται εμφανές ότι το μέλλον του Διαδικτύου σε ό,τι αφορά

περιεχόμενο και πληροφορίες που πρέπει να ανανεώνονται τακτικά,

ανήκει στα προγράμματα διαχείρισης περιεχομένου, αφού προσφέρουν

πολλά πλεονεκτήματα, ταχύτητα και ευκολίες στη χρήση τους.

Τα Συστήματα Διαχείρισης Περιεχομένου μπορούν να χρησιμοποιηθούν

και να αντικαταστήσουν ένα συμβόλαιο συντήρησης επάξια. Τα CMS

μπορούν να χρησιμοποιηθούν για:

Page 25: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

24

Ειδήσεις (εφημερίδες, περιοδικά, πρακτορεία ειδήσεων κ.λπ.)

Παρουσιάσεις εταιριών και προσωπικού

Καταλόγους προϊόντων

Παρουσιάσεις προϊόντων

Online υποστήριξη

Αγγελίες και ανακοινώσεις

Παρουσιάσεις και προβολή γεωγραφικών περιοχών

Διαφημίσεις

Δελτία Τύπου

Όρους και συμβόλαια

Χάρτες, κατευθύνσεις, οδηγίες

Ένα ολοκληρωμένο CMS πρέπει να διαχειρίζεται όλες τις δυναμικές

πληροφορίες του site και να προσφέρει υπηρεσίες που εξυπηρετούν

πλήρως τις ανάγκες των διαχειριστών του.

2.2 Web CMS

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

οι οποίες εμπλέκονται στη δημιουργία και διάθεση ψηφιακού

περιεχομένου σε πρόσωπα όπως πελάτες, προμηθευτές, συνεργάτες και

προσωπικό τα οποία προσπελαύνουν περιεχόμενα του Ιστού μέσω

extranet, Internet ή intranet.

Ένα σύστημα διαχείρισης περιεχομένου ιστού αποτελείται από τα

εργαλεία λογισμικού τα οποία χρησιμοποιούνται για να παρέχουν

αυτοματοποιημένη υποστήριξη σε δραστηριότητες WCM.

Page 26: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

25

2.3 Πως γινόταν μια ιστοσελίδα τη δεκαετία του 90’

Για να δηµιουργήσουµε τη σελίδα στα δεξιά, έπρεπε να ξέρουµε πως να

γραψουµε τον κώδικα στα αριστερά.

2.4 Πως γίνεται σήµερα

Η µορφοποίηση διαχειρίζεται από την HTML σε ένα CSS αρχείο, αλλά

ακόµη απαιτείται η γνώση γραφής του κώδικα στα αριστερά για να

δηµιουργηθεί η σελίδα στα δεξιά.

Page 27: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

26

2.5 Πως γίνεται µε ένα CMS

Με ένα CMS αυτό που χρειάζεται να ξέρει κάποιος σήµερα είναι πως να

γράψει το κόκκινο κείµενο στα αριστερά για να δηµιουργήσει τη σελίδα

στα δεξιά.

2.6 Πλεονεκτήματα χρήσης CMS

Γρήγορη ενημέρωση, διαχείριση και αρχειοθέτηση του

περιεχομένου του δικτυακού τόπου

Ενημέρωση του περιεχομένου από οπουδήποτε

Ταυτόχρονη ενημέρωση από πολλούς χρήστες και διαφορετικούς

υπολογιστές

Να μην απαιτούνται ειδικές τεχνικές γνώσεις από τους διαχειριστές

του

Εύκολη χρήση και άμεση γνώση του τελικού αποτελέσματος, όπως

γίνεται με τους γνωστούς κειμενογράφους

Δυνατότητα αναζήτησης του περιεχομένου που καταχωρείται και

αυτόματη δημιουργία αρχείου

Ασφάλεια και προστασία του σχεδιασμού του site από

λανθασμένες ενέργειες, που θα μπορούσαν να δημιουργήσουν

προβλήματα στην εμφάνισή του

Διαχωρισμός του περιεχομένου από το σχεδιασμό και την

πλοήγηση (navigation) του δικτυακού τόπου

Page 28: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

27

Αλλαγή σχεδιασμού ή τρόπου πλοήγησης χωρίς να είναι

απαραίτητη η ενημέρωση όλων των σελίδων από τον ίδιο το

χρήστη

Αυτόματη δημιουργία των συνδέσμων μεταξύ των σελίδων και

αποφυγή προβλημάτων ανύπαρκτων σελίδων (404 error pages)

Μικρότερος φόρτος στον εξυπηρετητή (server) και χρήση

λιγότερου χώρου, αφού δεν υπάρχουν πολλές επαναλαμβανόμενες

στατικές σελίδες, από τη στιγμή που η ανάπτυξη των σελίδων

γίνεται δυναμικά

Όλο το περιεχόμενο καταχωρείται στην/στις βάσεις δεδομένων, τις

οποίες μπορούμε πιο εύκολα και γρήγορα να τις προστατεύσουμε

τηρώντας αντίγραφα ασφαλείας

Ασφαλώς υπάρχουν και άλλα χαρακτηριστικά και πρόσθετες υπηρεσίες,

ανάλογα με το CMS, που άλλοτε χρεώνονται επιπλέον και άλλοτε

ενσωματώνονται και προσφέρονται δωρεάν προς χρήση, όπως:

Εφαρμογή διαχείρισης και προβολής διαφημιστικών banners,

δημοσκοπήσεων και παραμετροποίησης (personalisation)

Δυνατότητα παρουσίασης του περιεχομένου σε συνεργαζόμενα

sites (syndication)

Στατιστικά

Διαχείριση μελών

Newsletters

Forum

Page 29: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

28

3 Είδη Web CMS

3.1 Κλειστού κώδικα

Ο όρος «εφαρμογή κλειστού κώδικα» περιγράφει την εφαρμογή της

οποίας ο κώδικας δεν έχει δημοσιευτεί, σε αντίθεση με την «εφαρμογή

ανοιχτού κώδικα».

Τα πιο δημοφιλή CMS κλειστού κώδικα είναι:

Vignette Content Management: Τα προϊόντα και οι λύσεις της

Vignette βοηθούν τις επιχειρήσεις να αποκτήσουν και να

διαχειρίζονται τις πληροφορίες που χρειάζονται. Ως έμπειρη

εταιρεία αποδοτικότητας, η Vignette συντελεί στην αύξηση της

παραγωγικότητας, μείωση του κόστους, βελτίωση της εμπειρίας

του χρήστη και διαχείριση ρίσκου. Οι Intranet, extranet και

Internet λύσεις της συμπεριλαμβάνουν portal, integration,

enterprise content management και δυνατότητες συνεργασίας που

γρήγορα μπορούν να αποδώσουν μοναδικά προτερήματα.

ΙΒΜ Workplace Web Content Management: Αυτό το προϊόν

παρέχει μια ευρεία γκάμα λειτουργιών όπως: personalization, το

web content management, η διαχείριση εγγράφων και οι

λειτουργίες συνεργασίας και παραγωγικότητας στα πλαίσια της

επεκτάσιμης υποδομής του Webshere Portal.

Jalios JCMS: Αυτό το σύστημα διαχείρισης περιεχομένου

αναπτύχθηκε από μια γαλλική εταιρεία την Jalios, η οποία

ιδρύθηκε το 2001 και βασίστηκε στο Παρίσι και στην Γαλλία. Το

σύστημα αυτό εκτός των άλλων περιλαμβάνει διαχείριση

περιεχομένου, διαχείριση κειμένου, πύλες, collaborations και

workflow.

Powerfront CMS: Το Powerfront CMS είναι καθαρά εμπορικό

σύστημα διαχείρισης περιεχομένου το οποίο εξασφαλίζει λύσεις

για διαχείριση περιεχομένου, σχεδιασμό ιστοσελίδων, θέματα

ασφάλειας, ηλεκτρονικές συναλλαγές, procurement, reportion

options και θέματα υποστηρίξης. Στοχεύει στην υποστήριξη

Page 30: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

29

πολύπλοκων επαγγελματικών websites, intranets, extranets ή

procurement websites.

Dynamicweb: Η τεχνολογική πλατφόρμα DynamicWEB η οποία

κατέχει ηγετική θέση στην Σκανδιναβία, βασίζεται στην σύγχρονη

τεχνολογία Microsoft .NET, και έχει επιλεχθεί από περισσότερες

από 3.000 εταιρείες και οργανισμούς σε Σκανδιναβία, Ολλανδία,

Βέλγιο, Ην. Βασίλειο, Ιαπωνία, Ισπανία, Πορτογαλία και Ρωσία.

3.2 Ανοιχτού κώδικα

Οι εφαρμογές ανοιχτού κώδικα έχουν τα παρακάτω χαρακτηριστικά:

1. Επιτρέπουν την πρόσβαση και την αλλαγή του πηγαίου κώδικα.

2. Συχνά είναι δωρεάν.

3. Τυπικά απαιτούν τουλάχιστον κάποιες τεχνικές γνώσεις για να

στηθούν και να λειτουργήσουν.

4. Υποστηρίζονται από μία κοινότητα χρηστών και

προγραμματιστών.

5. Συχνά, συνοδεύονται από αρκετά «plug-ins» τα οποία δημιουργεί

και προσφέρει η κοινότητα.

Τα πιο δημοφιλή CMS ανοιχτού κώδικα είναι:

Joomla: Ένα πλήρες σύστημα διαχείρισης περιεχομένου, γεμάτο

δυνατότητες αλλά και ταυτόχρονα εξαιρετικά ευέλικτο και φιλικό.

Το Joomla είναι η εφαρμογή που χρειάζεστε για να δημοσιεύσετε

στο διαδίκτυο μια προσωπική ιστoσελίδα, αλλά και έναν ολόκληρο

εταιρικό διαδικτυακό τόμο. Είναι προσαρμόσιμο σε περιβάλλον

επιχειρηματικής κλίμακας όπως τα intranets μεγάλων επιχειρήσεων

ή οργανισμών. Οι δυνατότητες επέκτασης του είναι πρακτικά

απεριόριστες.

Drupal: Το Drupal είναι ένα ανοιχτού κώδικα σύστημα

διαχείρισης περιεχομένου. Χρησιμοποιείται για την δημιουργία και

την διαχείριση πολλών και διαφορετικών ιστότοπων. Η

σταθερότητα, ευελιξία και η ασφάλεια του είναι μερικά από τα

σημεία αναφοράς του.

Page 31: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

30

Dotnetnuke: Είναι ανοιχτού κώδικα εφαρμογή, ιδανικό πλαίσιο

για δημιουργία, ανάπτυξη και διαχείριση διαδραστικού Ιστού, για

ενδοδικτυακές ή extranet περιοχές.

3.3 Μειονεκτήματα των Commercial Closed Source Web CMS έναντι

των Open Source Web CMS

Κόστος: Ο σημαντικότερος παράγοντας είναι το κόστος. Στα

εμπορικά Web CMS πρέπει να πληρωθεί η άδεια λειτουργίας.

Επίσης επιβαρύνονται με έξοδα συντήρησης κάθε χρόνο.

Ασφάλεια: Οι εμπορικές πλατφόρμες είναι κυρίως κλειστού

κώδικα, το οποίο σημαίνει ότι δεν είναι ορατός ο πηγαίος κώδικας

τους. Ώς αποτέλεσμα, κάποια ελλατωματικά κενά ή λειτουργίες

του κώδικα που μπορεί να προκύψουν και σχετίζονται με την

ασφάλεια, να μην μπορούν να διορθωθούν.

Σταθερότητα και επιδόσεις: Οι πλατφόρμες ανοιχτού κώδικα

έχουν ως επί το πλείστον μια πολύ ευρύτερη βάση από την

εγκατάσταση των εμπορικών πλατφόρμων κλειστού κώδικα.

Συνεπώς ελέγχονται περισσότερο διεξοδικά και βελτιστοποιούνται

μέσα από αυτές τις εμπειρίες.

Υποστήριξη: Στην περίπτωση των Web CMS κλειστού κώδικα, η

υποστήριξη μπορεί να κοστίζει. Κυρίως forum ή λίστες για την

ανταλλαγή μεταξύ τους δεν υπάρχουν.

3.4 Πλεονεκτήματα των Commercial Closed Source Web CMS

έναντι των Open Source Web CMS

Ασφάλεια για το μέλλον: Η ανάπτυξη ή η υποστήριξη μιας

πλατφόρμας ανοιχτού κώδικα μπορεί να διακοπεί ανά πάσα

στιγμή, διότι ορισμένοι προγραμματιστές μπορεί να μην έχουν

χρόνο ή ενδιαφέρον να συνεχίσουν το συγκεκριμένο έργο πια.

Αυτό εξασφαλίζεται στον εμπορικό τομέα καθώς υπάρχουν

συμβάσεις ανάπτυξης για κάθε σχεδιασμό πλατφόρμας.

Page 32: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

31

Ανάπτυξη τεχνογνωσίας: Η εταιρεία ανάπτυξης του Web CMS

μπορεί να προβεί σε τροποποιήσεις του λογισμικού ανά πάσα

στιγμή για να ικανοποιήσει τα έργα των πελατών της, λόγω του ότι

υπάρχουν εκτενείς γνώσεις προγραμματισμού. Στον χώρο του

ανοιχτού κώδικα η προμήθεια του κώδικα που περιέχει κάποιες

συγκεκριμένες δεξιότητες είναι πρόβλημα.

Σταθερότητα και απόδοση: Οι open source πλατφόρμες συνήθως

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

ελέγχονται επαγγελματικά. Οπότε είναι πιθανόν να υπάρξει κάποιο

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

προγραμματισμό.

Εγγύηση: Στις πλατφόρμες ανοιχτού κώδικα δεν υπάρχει εγγύηση.

Υποστήριξη: Στις πλατφόρμες κλειστού κώδικα η εκτενής

υποστηρίξη είναι εγγυημένη, καθώς υπάρχουν κυρώσεις σε

περίπτωση μη επίβλεψης.

Page 33: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

32

4 DRUPAL

4.1 Τι είναι

To Drupal είναι ένα αρθρωτό σύστημα διαχείρισης περιεχομένου

(Content management system, CMS) ανοικτού/ελεύθερου λογισμικού,

γραμμένο στη γλώσσα προγραμματισμού PHP. Το Drupal, όπως πολλά

σύγχρονα CMS, επιτρέπει στο διαχειριστή συστήματος να οργανώνει το

περιεχόμενο, να προσαρμόζει την παρουσίαση, να αυτοματοποιεί

διαχειριστικές εργασίες και να διαχειρίζεται τους επισκέπτες του

ιστοτόπου και αυτούς που συνεισφέρουν. Παρόλο που υπάρχει μια

πολύπλοκη προγραμματιστική διεπαφή, οι περισσότερες εργασίες

μπορούν να γίνουν με λίγο ή και καθόλου προγραμματισμό. Το Drupal

ορισμένες φορές περιγράφεται ως "υποδομή για εφαρμογές ιστού",

καθώς οι δυνατότητές του προχωρούν παραπέρα από τη διαχείριση

περιεχομένου, επιτρέποντας ένα μεγάλο εύρος υπηρεσιών και

συναλλαγών.

Το Drupal μπορεί να εκτελεστεί σε διάφορες πλατφόρμες,

συμπεριλαμβανομένων των λειτουργικών συστημάτων Windows, Mac

OS X, Linux, FreeBSD, ή οποιουδήποτε λογισμικού που υποστηρίζει είτε

το διακομιστή ιστοσελίδων Apache HTTP Server (έκδοση 1.3+), είτε το

Internet Information Services (έκδοση IIS5+), καθώς επίσης και τη

γλώσσα προγραμματισμού PHP (έκδοση 4.3.3+). Το Drupal απαιτεί μια

βάση δεδομένων όπως η MySQL και η PostgreSQL για την αποθήκευση

του περιεχομένου και των ρυθμίσεων του.

4.2 Από πού προήλθε

Αρχικά γραμμένο από τον Dries Buytaert ως σύστημα πίνακα

ανακοινώσεων (BBS, bulletin board system), το Drupal μετατράπηκε σε

εγχείρημα ανοικτού κώδικα το 2001. Drupal είναι η διατύπωση στην

Page 34: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

33

Αγγλική γλώσσα της Ολλανδικής λέξης "druppel", που σημαίνει

"σταγόνα". Το όνομα πάρθηκε από τον ξεπερασμένο πλέον ιστότοπο

Drop.org, του οποίου ο κώδικας εξελίχθηκε στο Drupal. Ο Buytaert

ήθελε να ονομάσει τον ιστότοπο "dorp" (στα Ολλανδικά σημαίνει

"χωριό", αναφερόμενος στη διάσταση της κοινότητας), αλλά έκανε ένα

ορθογραφικό λάθος κατά τη διαδικασία ελέγχου του ονόματος χώρου

(domain name) και τελικά σκέφτηκε ότι ακούγεται καλύτερα.

Από το Μάιο του 2006 ως τον Απρίλιο του 2007, χρήστες κατέβασαν

το Drupal από τον επίσημο ιστότοπο περισσότερες από 600.000 φορές.

Μια μεγάλη κοινότητα χρηστών λαμβάνει πλέον μέρος στη συνεχή

εξέλιξη του Drupal.

4.3 Σχεδίαση

Το Drupal έχει λάβει επαίνους από τους διαχειριστές ιστοσελίδων,

σχεδιαστές και προγραμματιστές για τον αρθρωτό σχεδιασμό του, που

παρέχει το βασικό του στρώμα, ή "πυρήνα", να παρέχει τα βασικά

χαρακτηριστικά του Drupal στην προεπιλεγμένη εγκατάστασή του.

Πρόσθετα χαρακτηριστικά λειτουργικότητας και παρουσίασης μπορούν

να επεκταθούν στον πυρήνα με την πρόσθεση προσαρτώμενων μονάδων

και θεματικών παραλλαγών.

Οι μονάδες του Drupal χρησιμοποιούνται για να "υπερβούν" τα

ενσωματωμένα χαρακτηριστικά του πυρήνα, επεκτείνοντας έτσι ή και

αντικαθιστώντας την εξ' ορισμού συμπεριφορά του Drupal, χωρίς την

επέμβαση στον αυτούσιο κώδικα των αρχείων του πυρήνα του Drupal. Η

δυνατότητα αυτή της τροποποίησης της λειτουργικότητας του πυρήνα

έχει επίπτωση στην προσαρμοστικότητα του Drupal καθώς και στην

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

SQL (SQL injection).

Προσαρμοσμένες θεματικές παραλλαγές, που μπορούν να προστεθούν

χωρίς να επηρεάζουν τον πυρήνα του Drupal, χρησιμοποιούν

προτυποποιημένες μορφές που μπορούν να δημιουργηθούν από μηχανές

σχεδίασης θεματικών παραλλαγών τρίτων.

Page 35: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

34

4.4 Μονάδες

Ο πυρήνας του Drupal έχει σχεδιαστεί βάση ενός συστήματος από hook,

ή callback, που επιτρέπει στις γραμμένες από την κοινότητα μονάδες να

εισάγουν συναρτήσεις στο μονοπάτι εκτέλεσης του Drupal.

Οι μονάδες που περιέχονται στον πυρήνα του Drupal παρέχουν στους

χρήστες τη δυνατότητα να:

υποβάλλουν, αναθεωρούν και να κατηγοριοποιούν την ύλη

εκτελούν αναζητήσεις

υποβάλλουν σχόλια

λαμβάνουν μέρος σε φόρουμ συζητήσεων

ψηφίζουν σε ψηφοφορίες

δουλεύουν σε συνεργατικά συγγραφικά έργα

τροποποιούν και να βλέπουν προσωπικά προφίλ

επικοινωνούν μεταξύ τους ή και με τους διαχειριστές του

ιστοτόπου

αλλάζουν την εμφάνιση του ιστότοπου με έτοιμες ή φτιαγμένες με

το χέρι θεματικές παραλλαγές

δημιουργούν μενού με πολλαπλά επίπεδα

βλέπουν τη γραφική διεπαφή και τα μηνύματα στη μητρική τους

γλώσσα

παρέχουν ροές RSS

συλλέγουν περιεχόμενο από ροές RSS άλλων ιστότοπων

εγγράφονται ως χρήστες και να διαχειρίζονται τους λογαριασμούς

τους

καθορίζουν ρόλους χρηστών, με τον ορισμό αδειών (permissions)

στους χρήστες για τη χρησιμοποίηση επιλεγμένων

χαρακτηριστικών του ιστότοπου

χρησιμοποιούν κανόνες πρόσβασης για την άρνηση πρόσβασης

στον ιστοτόπο σε συγκεκριμένα ονόματα χρηστών, διευθύνσεις

ηλεκτρονικού ταχυδρομείου και διευθύνσεις IP

λαμβάνουν στατιστικά και αναφορές για τους διαχειριστές

χειρίζονται θέματα λανθάνουσας μνήμης και απόπνιξης ώστε να

βελτιώσουν την απόδοση του ιστοτόπου σε περιόδους μεγάλης

κίνησης

Page 36: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

35

δημιουργούν και καθορίζουν διάφορα φίλτρα εισόδου και

μορφότυπους ύλης

δημιουργούν φιλικές στο χρήστη, εύκολες προς απομνημόνευση,

διευθύνσεις URL (πχ. "www.mysite.com/products" αντί για

"www.mysite.com/?q=node/432")

Επιπρόσθετα, ο ιστότοπος του Drupal παρέχει εκατοντάδες δωρεάν

μονάδες γραμμένες από την κοινότητα του Drupal, που παρέχουν:

δυνατότητες συστημάτων e-commerce

χαρακτηριστικά ροής εργασιών

γκαλερί φωτογραφιών

σελίδες ομάδων ατόμων (οργανικά γκρουπ)

χάρτες ιστοτόπου για το Google

αντικείμενα Amazon

διαχείριση λιστών ηλεκτρονικού ταχυδρομείου

ένα σύστημα διαχείρισης πελατών (CRM), το CiviCRM

ενσωμάτωση με ένα CVS.

Παρακολούθηση των εκδόσεων συστήματος

Η μονάδα module_update, μια σχετικά νέα μονάδα διαθέσιμη για την

έκδοση 5.x (που προστίθεται και ως μέρος του πυρήνα για την 6.0),

ειδοποιεί αυτόματα το διαχειριστή για τυχόν νέες εκδόσεις των

εγκατεστημένων μονάδων και θεματικών παραλλαγών.

Θεματικές παραλλαγές

Οι περισσότερες θεματικές παραλλαγές είναι γραμμένες για τη μηχανή

PHPTemplate ή την XTemplate. Παλιότερες παραλλαγές

χρησιμοποιούσαν γραμμένο στο χέρι κώδικα σε PHP.

Προηγούμενες εκδόσεις του συστήματος θεματικής παραλλαγής του

Drupal είχαν δεχθεί κριτική ότι ήταν λιγότερο προσανατολισμένο για τη

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

Page 37: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

36

Mambo. Η συμπερίληψη στο Drupal των μηχανών PHPTemplate και

XTemplate διόρθωσαν αυτά τα προβλήματα.

Μεταφράσεις

Τον Αύγουστο του 2007, οι μεταφράσεις για τη διεπαφή του Drupal

είναι διαθέσιμες σε 37 γλώσσες εκτός της Αγγλικής (της εξ' ορισμού). Οι

υποστηριζόμενες γλώσσες περιλαμβάνουν ορισμένες που διαβάζονται

από δεξιά προς τα αριστερά, όπως τα Αραβικά και τα Εβραϊκά.

4.5 Κριτική

Ορισμένοι χρήστες θεωρούν το Drupal δυσκολότερο στην εκμάθηση

και στην εγκατάσταση συγκρινόμενο με άλλες δημοφιλείς εφαρμογές

διαχείρισης περιεχομένου. Συγκεκριμένα, η πολυπλοκότητα των

επιλογών των ρυθμίσεων και η σπαρτιάτικη εμφάνιση ενός ιστότοπου

του οποίου μόλις ολοκληρώθηκε η εγκατάσταση συχνά έρχονται σε

αντιπαράθεση με την απλότητα εργαλείων όπως το WordPress και της

πρόσφατης ανανεωμένης εμπειρίας χρήστη του Joomla. Το Drupal 5.0,

που ανακοινώθηκε στις 15 Ιανουαρίου 2007, έρχεται πακέτο με ένα

εγκαταστάτη διεπαφής ιστοσελίδας, με μια νέα θεματική παραλλαγή και

με ένα επανασχεδιασμένο πίνακα διαχείρισης για να απαντήσει εν μέρει

σε αυτές τις κριτικές. Το Drupal υποστηρίζει τη χρήση προφίλ

εγκαταστάσεων με προκαθορισμένο περιεχόμενο για τον ιστότοπο, αλλά

λίγα έχουν εκδοθεί έως τώρα (2007).

Ορισμένοι προγραμματιστές ασκούν κριτική στο Drupal για την

αποκλειστική χρήση διαδικασιακής PHP αντί για αντικειμενοστραφή

PHP. Το άρθρο Προγραμματισμός του Drupal από μια οπτική

αντικειμενοστρέφειας εξηγεί πως αρχές του αντικειμενοστραφούς

προγραμματισμού και της έννοιας του AOP εφαρμόζονται στο Drupal,

παρόλο που δεν χρησιμοποιούνται τα αντικειμενοστραφή

χαρακτηριστικά της PHP. Η βελτιωμένη υποστήριξη για τον

αντικειμενοστραφή προγραμματισμό στην PHP5 υπήρξε ως ένας από

τους λόγους για τα σχέδια του έργου του Drupal να αφαιρέσει την

υποστήριξη για την PHP4 σε μελλοντικές εκδόσεις του λογισμικού.

Page 38: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

37

4.6 Διανομές

Προσαρμοσμένες διανομές του Drupal περιλαμβάνουν ορισμένα πακέτα

με μονάδες τρίτων, ορισμένα από τα οποία έρχονται με τροποποιήσεις

στον πυρήνα, συμπεριλαμβανομένου του vbDrupal, που είναι το Drupal

συγχωνευμένο με το VBulletin.

Το Drupal 4.2 υπήρξε η βάση για το DeanSpace, ένα σύστημα

διαχείρισης περιεχομένου που χρησιμοποιήθηκε για τη λειτουργία

πολλών ανεξάρτητων ιστοτόπων για την υποστήριξη της προεδρικής

προεκλογικής καμπάνιας του Χάουαρντ Ντιν το 2004. Αφού έληξε η

καμπάνια του Dean, το έργο DeanSpace εξελίχθηκε στο CivicSpace, μια

πλατφόρμα βασισμένη στο Drupal που "ενθάρρυνε τη συλλογική πράξη

μέσα σε κοινότητες και συνένωσε απομακρυσμένες ομάδες

υποστηρικτών με συνεκτικό τρόπο". Έτσι, το CivicSpace είναι μια

διανομή βασισμένη στο Drupal 4.2.

Πολλές καινοτομίες του CivicSpace έχουν ενσωματωθεί πίσω στο

σχέδιο του Drupal. Χαρακτηριστικά ιδιαίτερα χρήσιμα σε μη

κερδοσκοπικούς οργανισμούς και πολιτικές καμπάνιες παρέχονται στη

μονάδα CiviCRM για το Drupal 5.0 και άνω.

Έχει προταθεί η διανομή "προ-κατασκευασμένων" εγκαταστάσεων

Drupal που έχουν προ-διαμορφωθεί με μονάδες τρίτων και ρυθμιστεί για

συγκεκριμένα ήδη ιστοτόπων: ένα on-line κατάστημα, ένας ιστότοπος με

κριτικές για μουσική, ένας ιστοτόπος για ιστολόγια, κτλ. Το Drupal 5.x

τείνει προς αυτή την κατεύθυνση, παρέχοντας ένα σετ από "προφίλ

εγκατάστασης" προσαρμοσμένα για συγκεκριμένους στόχους.

Page 39: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

38

4.7 Χαρακτηριστικά

Γενικά Χαρακτηριστικά

Collaborative Book: Το collaborative book μας επιτρέπει να

εγκαταστήσουμε ένα "βιβλίο" και να αδειοδοτήσουμε άλλους

χρήστες να συνεισφέρουν με περιεχόμενο.

«Φιλικά» URLs: Το Drupal χρησιμοποιεί το mod_rewrite από τον

Apache για να ενεργοποιήσει προσαρμόσιμα URLs τα οποία είναι

«φιλικά» προς τον χρήστη και της μηχανές αναζήτησης.

Σχήμα 1. Φιλικά URLs (Friendly URLs)

Modules: Η κοινότητα του Drupal έχει συνεισφέρει με πολλά

modules που είναι λειτουργικά και επεκτείνουν τον πυρήνα του

Drupal.

Σχήμα 2. Modules

Page 40: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

39

Online βοήθεια

Ανοιχτός κώδικας: Ο πηγαίος κώδικας του Drupal είναι

διαθέσιμος υπό τους όρους της GNU General Public License 2

(GPL). Αντίθετα με το ιδιόκτητα blogging ή CMS, το Drupal είναι

ελεύθερο να αναπτυχθεί και να διαμορφωθεί.

Εξατομίκευση: Ένα εύρωστο εξατομικευμένο περιβάλλον υπάρχει

στον πυρήνα του Drupal. Το περιεχομένο και η παρουσίαση

μπορούνε να διαμορφωθούν βάση τις προτιμήσεις του χρήστη.

Σύστημα Αδειοδότησης: Οι Διαχειριστές του Drupal δεν

χρειάζεται να δώσουν σε κάθε χρήστη ξεχωριστά, κάποια

δικαιώματα. Θέτουν τα δικαιώματα σε ρόλους και σε γκρουπς και

μετά βάζουν τους χρήστες μέσα σε αυτά τα γκρουπ.

Σχήμα 3-4. Σύστημα Αδειόδοτησης (Role based permission system)

Page 41: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

40

Αναζήτηση: Όλο το περιεχόμενο του Drupal είναι πλήρως

καταχωρημένο και εύκολο στην αναζήτηση.

Σχήμα 5. Αναζήτηση (Search)

Διαχείριση Χρήστη

Πιστοποίηση Χρήστη: Οι χρήστες μπορούν να εγγραφούν και να

πιστοποιήσουν την ταυτότητα τους, τοπικά ή χρησιμοποιώντας

κάποια εξωτερική πιστοποίηση όπως το Jabber, Blogger,

LiveJournal. Σχήμα 6.

Page 42: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

41

Διαχείριση Περιεχομένου

Ψηφοφορίες: Το Drupal έχει ενσωματωμένο το module

ψηφοφοριών το οποίο δίνει τη δυνατότητα στους διαχειριστές ή

στους χρήστες να δημιουργήσουν ψηφοφορίες και να τις

εμφανίσουν σε διάφορες σελίδες.

Templating: Το theme του Drupal ξεχωρίζει το περιεχόμενο από

την παρουσίαση επιτρέποντας να χειριστούμε το πως δείχνει και

την αίσθηση μιας σελίδας του Drupal. Τα Templates

δημιουργούνται από βασικό HTML και PHP κώδικα που σημαίνει

ότι δεν χρειάζεται να μάθει κάποιος μια ιδιόκτητη γλώσσα

πλαισίου.

Σχήμα 7. Παράδειγμα 1 Template

Page 43: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

42

Σχήμα 8. Παράδειγμα 2 Template

Threaded comments: To Drupal δίνει την δυνατότητα να

συζητήσουμε για ένα θέμα στο δημοσιευμένο περιεχόμενο. Τα

σχόλια ιεραρχούνται όπως σε ένα newsgroup ή σε ένα forum.

Έλεγχος έκδοσης: Το σύστημα ελέγχου έκδοσης ανιχνεύει τις

πληροφορίες μιας επερχόμενης ανανέωσης συμπεριλαμβανομένου,

το τι άλλαξε, ποιος το άλλαξε, την ημερομηνία και την μέρα των

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

την καταγραφή των αλλαγών ή ακόμα να μπορέσουμε να

επιστρέψουμε σε κάποια προηγούμενη έκδοση.

Page 44: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

43

Σχήμα 9. Έλεγχος Έκδοσης (Version Control)

Blogging

Blogger API υποστήριξη: Το Blogger API επιτρέπει στην

ιστοσελίδα να ανανεωθεί από πολλά και διάφορα εργαλεία. Αυτό

συμπεριλαμβάνει εργαλεία τα οποία δεν έχουν σχέση με κάποιον

Web browser και έχουν ένα πιο «πλούσιο» περιβάλλον

επεξεργασίας.

Content syndication: Το Drupal εξάγει το περιεχόμενο της

ιστοσελίδας σε RDF/RSS μορφή. Αυτό επιτρέπει σε όσους

συλλέγουν νέα να πλοηγούνται με ευκολία στα νέα της

ιστοσελίδας.

News aggregator: Το Drupal έχει ενσωματωμένο το News

aggregator για διάβασμα νέων από άλλες ιστοσελίδες. Το News

aggregator «αποκρύπτει» άρθρα στην βάση δεδομένων MySQL

και ο χρόνος που απαιτείται είναι καθορισμένος από τον χρήστη.

Page 45: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

44

Σχήμα 9. Συλλέκτης νέων (News aggregator)

Permalinks: Όλο το περιεχόμενο που δημιουργείται στο Drupal

έχει ένα μόνιμο σύνδεσμο ή “perma link” βοηθώντας έτσι τους

χρήστες να δώσουν τον σύνδεσμο σε άλλους με ευκολία.

Πλατφόρμα

Apache or IIS, Unix/Linux/BSD/Solaris/Windows/Mac OS X

υποστήριξη: Από την αρχή, το Drupal σχεδιάστηκε για να

υποστηρίζει πολλές πλατφόρμες.

Ανεξαρτησία βάσης δεδομένων: Αρκετοί χρήστες τρέχουν το

Drupal με MySQL αλλά δεν είναι η καλύτερη λύση για όλους. Το

Drupal κατασκευάστηκε για να υποστηρίζει MySQL και

PostgreSQL μαζί.

Multi-language: Το Drupal σχεδιάστηκε για να καλύπτει τις

προδιαγραφές του κοινού παγκοσμίως και μπορεί να δημιουργεί

ιστοσελίδες ή άλλες εφαρμογές σε όλες τις γλώσσες. Όλο το

κέιμενο μπορεί να μεταφραστεί με μια γραφική διεπαφή χρήστη ή

ενσωματώνοντας εργαλεία μεταγλωτισμού όπως το GNU gettext.

Page 46: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

45

Διαχείριση και ανάλυση

Ανάλυση, ανίχνευση και στατιστικές: Το Drupal μπορεί να

εκτυπώσει αναφορές του browser με πληροφορίες από

παραπομπές, διασημότητα περιεχομένου και τον τρόπο με τον

οποίο οι επισκέπτες πλοηγούνται στην ιστοσελίδα. Σχήμα 10.

Ανάλυση, ανίχνευση και στατιστικές (Analysis, Tracking and Statistics)

Καταγραφή και Αναφορά: Όλες οι σημαντικές δραστηριότητες

καταγράφονται σε ένα μέρος καταγραφής γεγονότων για να

ελεγχθεί από τον διαχειριστή οποιαδήποτε στιγμή.

Σχήμα 11. Καταγραφή και Αναφορά (Logging and Report)

Page 47: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

46

Διαχείριση μέσω Web: Το Drupal μπορεί να διαχειριστεί

εξ’ολοκλήρου χρησιμοποιώντας έναν Web browser, δίνοντας την

δυνατότητα, αυτό να γίνει από οποιοδήποτε σημείο του κόσμου

και δεν χρειάζεται επιπρόσθετο λογισμικό να υπάρχει στον

υπολογιστή.

Σχήμα 12. Διαχείριση μέσω Web (Web based administration)

Κοινότητα

Forums: Το χαρακτηριστικό της συζήτησης σε forum έχει

σχεδιαστεί στο Drupal ώστε να δημιουργεί ζωντανές και δυναμικές

ιστοσελίδες.

Απόδοση και Επεκτασιμότητα

Caching: Ο μηχανισμός caching εξαλείφει ερωτήματα στη βάση

δεδομένων αυξάνοντας την απόδοση και μειώνοντας της φόρτωση

του server. To Caching μπορεί να συντονιστεί σε πραγματικό

χρόνο και πολλές ιστοσελίδες υψηλής επισκεψιμότητας έχουν

αποδώσει εξαιρετικά σε περίπτωση φόρτωσης.

Page 48: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

47

5 Ruby On Rails

5.1 Τι είναι

Το Ruby On Rails, ή αλλιώς RoR, είναι μια εφαρμογή Web ανοιχτού

κώδικα, για την γλώσσα προγραμματισμού Ruby, που προορίζεται να

χρησιμοποιηθεί με μια ευέλικτη μεθοδολογία και χρησιμοποιείται από

τους Web developers για ταχεία ανάπτυξη.

Το Rails είναι ένα πλαίσιο ανάπτυξης του Web «γραμμένο» στην

γλώσσα προγραμματισμού Ruby. Σχεδιάστηκε για να καταστήσει τις

εφαρμογές Web ευκολότερες, δημιουργώντας διάφορες υποθέσεις

σχετικά με το τι χρειάζεται ο κάθε developer για να ξεκινήσει. Παρέχει

την ευκολία στον developer να γράψει λιγότερο κώδικα και την ίδια

στιγμή να επιτυγχάνει περισσότερα απο άλλες γλώσσες και

Frameworks.Οι «βετεράνοι» developers του Rails αναφέρουν επίσης πως

η ανάπτυξη Web εφαρμογής μετατρέπεται σε παιχνίδι.

Το Rails είναι ένα αδιάλλακτο λογισμικό.Δηλαδή, υποθέτει οτί υπάρχει

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

να προτρέπει τον εν λόγω(καλύτερο) τρόπο-και σε μερικές περιπτώσεις

να αποθαρρύνει τις εναλλακτικές λύσεις.

Εάν κατανοήσετε τον «Τρόπο του Rails»είναι πιθανόν να ανακαλύψετε

μία τεράστια αύξηση στην παραγωγικότητα. Εάν εμμένετε όμως στις

παλιές «συνήθειες» απο τις άλλες γλώσσες προγραμματισμού κατά την

ενασχόληση σας με το Rails, και προσπαθείτε να χρησιμοποιήσετε

πρότυπα που διδαχθήκατε αλλού, είναι πιθανόν να έχετε μια λιγότερο

ευχάριστη εμπειρία.

Page 49: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

48

Η Ruby είναι μια γλώσσα προγραμματισμού που εμπνέεται από την Perl

με μερικά από τα χαρακτηριστικά της Smalltalk, μιας πραγματικά παλιάς

γλώσσας. Σχεδιάστηκε και αναπτύχθηκε από τον Yukihiro Matsumoto.

Είναι μια αρκετά αντικειμενοστραφής γλώσσα που μπορεί να

παρομοιαστεί εύκολα με το Python.

Eίναι μια γλώσσα σχετικά άγνωστη έναντι των άλλων γλωσσών, όπως

είναι η Perl και η PHP.Πρόκειται για μια object-oriented γλώσσα.Object

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

λειτουργίας .Π.χ. ένα αυτοκίνητο έχει τις εξής ιδιότητες: μάρκα, μοντέλο,

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

πίνακα βάσεων δεδομένων.

Μία γλώσσα σαν την Ruby είναι ιδανική για Web εφαρμογές βασισμένες

σε βάσεις δεδομένων.

Το Ruby on Rails γρήγορα εξελίσσεται σε έναν απο τους πιο δημοφιλή

συνδυασμούς μοντέρνας γλώσσας προγραμματισμού με Web

framework.Βασικά η Ruby είναι μια γλώσσα προγραμματισμού η οποία

χρησιμοποιείται εδώ και κάποια χρόνια και το Rails είναι ενα Web

framework για την Ruby το οποίο αν και πρόσφατα παρουσιάστηκε

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

Web development. To Rails με την εύκολη ένταξη του στους Web server

και τις βάσεις καθώς και το “κομψό” του περιβάλλον το κάνουν τον

ιδανικό υποψήφιο για κάθε προγραμματιστή που επιθυμεί να αναπτύξει

μία απο τις πίο πρόσφατες και εξαιρετικές Web εφαρμογές.

Ωστόσο όμως ,όπως γίνεται με όλες τις γλώσσες ή τα framework,το να

προσπαθήσεις να μάθεις το Rails και γενικότερα τον τρόπο λειτουργίας

του απο την αρχή μπορεί να καταλήξει αρκετά δύσκολο.

Page 50: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

49

5.2 Ιστορία

Το Ruby On Rails εξήχθη από τον Davin Heinemeier Hansson από την

εργασία του Basecamp, πρόκειται για ένα εργαλείο διαχείρισης

εφαρμογών από την 37signals (τώρα πια μια επιχείρηση εφαρμογών

Ιστού). Ο Heinemeier Hansson αρχικά εξέδωσε το Rails ως ανοιχτό

κώδικα τον Ιούλιο του 2004, αλλά δεν έδωσε δικαιώματα χρήσης στο

πρόγραμμα μέχρι τον Φεβρουάριο του 2005. Ο Αύγουστος του 2006

αποτελεί ορόσημο για το framework καθώς η Apple ανήγγειλε ότι θα

εξέδιδε το Ruby On Rails με το MAC OS Χ v10.5 "Leopard" , που

εκδόθηκε τον Οκτώβριο του 2007.

5.3 Τεχνική επισκόπηση

Όπως πολλά σύγχρονα Web frameworks,έτσι και το Rails χρησιμοποιεί

το σχέδιο αρχιτεκτονικής MVC για να οργανώσει τον προγραμματισμό

της εφαρμογής.

Το Ruby On Rails έχει διάφορα εργαλεία που προορίζονται για να

κάνουν την ανάπτυξη των κοινών εφαρμογών πιο εύκολη. Το Rails

παρέχει scaffolding το οποίο μπορεί αυτόματα να κατασκευάσει μερικά

από τα μοντέλα και τις απόψεις που απαιτούνται για έναν βασικό

ιστοχώρο. Ένας απλός Ruby Web server περιέχει το WEBrick και το

RAKE. Με τη συμπερίληψη αυτών των απλών εργαλείων με το Rails

Framework ουσιαστικά έχουμε ένα βασικό περιβάλλον ανάπτυξης με

όλες τις εκδόσεις του λογισμικού.

Το Ruby On Rails βασίζεται σε Web server για να λειτουργήσει. Το

Mongrel προτιμάται σε γενικές γραμμές πέρα από το WEBrick ,αλλά

μπορεί επίσης να λειτουργήσει με τα Lighttpd, Abyss, Apache και πολλά

άλλα.

Το Rails επίσης ξεχωρίζει για την εκτενή χρήση βιβλιοθήκης

JavaScript Prototype και Script.aculo.us. Στο Rails χρησιμοποίησαν

αρχικά το “ελαφρύ” SOAP για τις υπηρεσίες δικτύου το οποίο και

αντικαταστάθηκε απο το RESTful web services.

Page 51: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

50

Από την έκδοση 2.0, το Ruby On Rails προσφέρει και HTML και XML

ως σχήματα παραγωγής.

5.4 Δομή πλαισίου

Το Ruby On Rails είναι χωρισμένο σε διάφορα πακέτα, όπως το

ActiveRecord (ένα σύστημα χαρτογράφησης για την πρόσβαση βάσεων

δεδομένων), το ActiveResource (παρέχει τις υπηρεσίες Ιστού

ActionPack, ActiveSupport και ActionMailer. Πριν από την έκδοση 2.0,

το Rails περιελάμβανε επίσης το πακέτο Action Web Service που

αντικαταστάθηκε τώρα από τον Active Resource. Εκτός βέβαια από τα

βασικά πακέτα , οι Web developers μπορούν να δημιουργήσουν plugins

για να επεκτείνουν τα ήδη υπάρχοντα πακέτα.

5.5 Φιλοσοφία και σχεδίαση

Το Ruby On Rails έχει ως σκοπό να δώσει έμφαση στο Convention

over Configuration (CoC) ,και τη σύντομη αρχή ανάπτυξης Don't Repeat

Yourself (DRY).

"Convention over Configuration" " σημαίνει ότι ένας developer πρέπει

μόνο να διευκρινίσει τις μη συμβατικές πτυχές της εφαρμογής.

Παραδείγματος χάριν, εάν υπάρχει μια κατηγορία πώλησης στο μοντέλο,

ο αντίστοιχος πίνακας στη βάση δεδομένων θα ονομαστεί πωλήσεις εξ’

ορισμού. Έτσι με αυτό τον τρόπο ο developer θα γράψει λιγότερο κώδικα

μειώνοντας έτσι τις επαναλήψεις.

"Don't repeat yourself" σημαίνει ότι οι πληροφορίες βρίσκονται σε μια

ενιαία, σαφή θέση. Παραδείγματος χάριν, χρησιμοποιώντας την ενότητα

ActiveRecord του Rails, ο developer δεν χρειάζεται να διευκρινίσει τα

ονόματα απο τις στήλες στην βάση δεδομένων στους ορισμούς

κατηγορίας. Αντ' αυτού, το Ruby On Rails μπορεί να ανακτήσει αυτές τις

πληροφορίες από τη βάση δεδομένων βάσει του ονόματος της

κατηγορίας.

Page 52: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

51

5.6 Πρόσφατες Εξελίξεις

Η έκδοση Rails 2.3 κυκλοφόρησε στις 15 Μαρτίου 2009.Έγιναν

σημαντικές νέες αναπτύξεις όπου περιλαμβάνονται templates, engines,

Rack και τα τοποθετημένα μοντέλα εντύπου.

• Τα templates επιτρέπουν τον developer να παράγει τον σκελετό της

εφαρμογής με τα σύνηθες gems και τις διαμορφώσεις.

• Οι engines, επιτρέπουν την επαναχρησιμοποίηση διάφορων

κομματιών μιας εφαρμογής με τις διαδρομές, τις πορείες άποψης και τα

πρότυπα.

• Η επιφάνεια εργασίας(interface) του Rack Web server επιτρέπουν

σε κάποιον να γράψει τα βελτιστοποιημένα κομμάτια του κώδικα που

αποστέλλονται γύρω από ActionController.

Στις 23 Δεκεμβρίου 2008, το Merb, ένα άλλο πλαίσιο εφαρμογής Web,

και το Rails ανήγγειλαν μια δέσμευση για την από κοινού τους εργασία.

Η ομάδα του Rails ανήγγειλε ότι θα δουλέψουν με το εγχείρημα Merb

για να φέρουν “Τις καλύτερες ιδέες του Merb" στo Rails 3, λήγοντας

έτσι την άσκοπη " πανομοιότυπη αναπαραγωγή"(duplication) και στις

δύο κοινότητες.

5.7 Trademarks

Τον Μάρτιο του 2007 ο David Heinemeier Hansson κατέθεσε τρεις

trademarks αιτήσεις σχετικά με το Rails στο USPTO. Αυτές οι εφαρμογές

κατωχυρώνουν τη φράση "RUBY ON RAILS " , τη λέξη " RAILS" και

το επίσημο λογότυπο .Κατά συνέπεια, το καλοκαίρι του 2007 ο Hansson

αρνήθηκε την άδεια στην Apress να χρησιμοποιήσει το λογότυπο Rails

στο εξώφυλλο κάποιου καινούργιου βιβλίο σχετικά με το RAILS. Το

επεισόδιο αύτο έδωσε αφορμή για διαμαρτυρία στην κοινότητα του

Rails. Σε απάντηση σε αυτήν την κριτική, ο Hansson έκανε τις ακόλουθες

δηλώσεις «Θα χορηγήσω μόνο προωθητική χρήση [Του λογότυπου Rails]

για προϊόντα στα οποία είμαι άμεσα συνδεμένος . Όπως στα βιβλία στα

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

Page 53: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

52

δικαίωμα λόγου στην εκτελεστική επιτροπή. Θα επιδιώξω να επιβάλω

trademarks για όλα τα σύμβολα του Rails.»

5.8 Κριτική

Το Rails έχει επικριθεί για ζητήματα σχετικά με την εξελιξιμότητα του,

ειδικότερα σε προβλήματα σε σχέση με την συμβατότητα με τις βάσεων

δεδομένων . Αυτοί οι κριτικοί ανέφεραν συχνά τις διάφορες διακοπές του

Twitter{http://twitter.com/} το 2007 και το 2008, οι οποίες προέτρεψαν

φαινομενικά το Twitter να μετεξελιχθεί σε Scala(το οποίο λειτουργεί σε

Java Virtual Machine) για το σύστημα αναμονής τους.

5.9 Χαρακτηριστικά

Το Ruby on Rails περιέχει κάποια χαρακτηριστικά τα οποία βοηθούν

στην αύξηση της παραγωγικότητας των developers. Μερικά από αυτά

είναι τα εξής:

Αρχιτεκτονική MVC: Το Ruby on Rails βασίζεται στην αρχιτεκτονική

MVC (Model View Controller) η οποία δίνει την δυνατότητα στην βάση

δεδομένων να διαχωριστεί από την παρουσίαση.

Σχήμα 1. Αρχιτεκτονική MVC (MVC Architecture)

Page 54: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

53

Βιβλιοθήκη πρόσβασης στη βάση δεδομένων: Το Ruby on Rails

περιέχει μια βιβλιοθήκη πρόσβασης στη βάση δεδομένων – Ενεργή

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

Ενεργή εγγραφή χαρτογραφεί αυτόματα τους πίνακες σε κατηγορίες και

τις σειρές σε αντικείμενα.

Σχήμα 2.

Βιβλιοθήκη πρόσβασης στη βάση δεδομένων (Database Access Library)

Βιβλιοθήκες για κοινές εργασίες: Το Ruby on Rails περιέχει ένα πλήθος

από βιβλιοθήκες που απλοποιούν την κωδικοποίηση των κοινών

προγραμματισμένων εργασιών όπως επικυρώσεις, διαχείρησης τομέων

κτλπ.

Βιβλιοθήκη AJAX: Μια επεκτεινόμενη βιβλιοθήκη από AJAX

λειτουργίες παρέχεται στο πλαίσιο Rails. Ο κώδικας της Ruby μπορεί να

χρησιμοποιηθεί για να παράγει κώδικα AJAX. To συσχετισμένο Java

scripting χρησιμοποιείται για να παραχθεί αυτόματα το AJAX.

Page 55: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

54

Convention over configuration: Το Ruby on Rails δεν έχει κάποια

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

που μπορούν να χρησιμοποιηθούν για να προσδιοριστεί η ρύθμιση των

παραμέτρων.

Customized URL: Προσαρμοσμένα ή «φιλικά» στις μηχανές

αναζήτησης URLs μπορούν να αναπτυχθούν χρησιμοποιώντας το

πλαίσιο Ruby on Rails.

Debugging: Λεπτομερή αναφορές σφαλμάτων προμηθεύονται,

καθιστώντας πιο εύκολο να εξαλειφθούν τα bugs από τις εφαρμογές.

Components: Τα Components μπορούν να χρησιμοποιηθούν για

αποθήκευση του ήδη υπάρχοντα κώδικα. Επίσης μπορούν να

συμπεριληφθούν για το template modularization.

Page 56: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

55

6 JOOMLA

6.1 Τι είναι;

Το Joomla είναι ένα δωρεάν σύστημα διαχείρισης περιεχομένου.

Χρησιμοποιείται για τη δημοσίευση περιεχομένου στον Παγκόσμιο ιστό

(World Wide Web) και σε τοπικά δίκτυα - intranets. Είναι γραμμένο σε

PHP και αποθηκεύει τα δεδομένα του στη βάση MySQL. Το βασικό

χαρακτηριστικό του είναι ότι οι σελίδες που εμφανίζει είναι δυναμικές,

δηλαδή δημιουργούνται την στιγμή που ζητούνται. Ένα σύστημα

διακομιστή (server) όπως είναι ο Apache λαμβάνει τις αιτήσεις των

χρηστών και τις εξυπηρετεί. Με ερωτήματα προς τη βάση λαμβάνει

δεδομένα τα οποία μορφοποιεί και αποστέλλει στον εκάστοτε

φυλλομετρητή (Web browser) του χρήστη. Το Joomla έχει και άλλες

δυνατότητες εμφάνισης όπως η προσωρινή αποθήκευση σελίδας, RSS

feeds, εκτυπώσιμες εκδόσεις των σελίδων, ειδήσεις, blogs,

δημοσκοπήσεις, έρευνες, καθώς και πολύγλωσση υποστήριξη των

εκδόσεών του.

6.2 Ιστορία

Το Joomla είναι ένα νόμιμο αποτέλεσμα της αντιγραφής του πηγαίου

κώδικα του Mambo, που αναπτύχθηκε ξεχωριστά από την αναπτυξιακή

ομάδα του Joomla στις 17 Αυγούστου του 2005. Το όνομα Mambo

ήταν το εμπορικό σημα της Miro International Pty Ltd, η οποία

δημιούργησε έναν μη κερδοσκοπικό οργανισμό με την προϋπόθεση να

χρηματοδοτήσει το σχέδιο και να το προστατεύσει από νομικές αγωγές.

Η αναπτυξιακή ομάδα του Joomla επικαλέστηκε ότι πολλές από τις

παροχές που είχαν αρχικά συμφωνηθεί, δεν τηρήθηκαν από την

οργανωτική επιτροπή του Mambo, με αποτέλεσμα να τεθεί υπό

αμφισβήτηση η δημιουργία του Joomla ως πλατφόρμα ανοιχτού

κώδικα.Η αναπτυξιακή ομάδα του Joomla δημιούργησε μια .org

Page 57: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

56

ιστοσελίδα ονομαζόμενη “OpenSourceMatters” για να διαμοιράσει

πληροφορίες στους χρήστες, στους developers, στους Web designers και

γενικά σε όλη την κοινότητα. Ο αρχηγός της ομάδας ο Andrew Eddie,

γνωστός και ως “MasterChief”, έγραψε ένα γράμμα ανοιχτό προς όλη την

κοινότητα, το οποίο εμφανιζόταν στον τομέα των ανακοινώσεων του

forum στην ιστοσελίδα mamboserver.com. Κάτι λιγότερο από 1000

χρήστες επισκέφθηκαν την ιστοσελίδα opensourcematters.org μέσα σε

μία μέρα, πράγμα πολύ ενθαρρυντικό. Ο διευθυντής της Miro, Peter

Lamont, έδωσε μια σκληρή απάντηση στην αναπτυξιακή ομάδα με ένα

άρθρο που είχε τίτλο “The Mambo Open Source Controversy – 20

Questions with Miro”. Έτσι δημιουργήθηκε μια αντιπαράθεση στην

κοινότητα σχετικά με το ελεύθερο λογισμικό και τον προσδιορισμό του

ως «ανοιχτού κώδικα». Τα forums από πολλές άλλες πλατφόρμες

«ανοιχτού κώδικα» ήταν ενεργά με δημοσιεύσεις άλλοτε υπέρ και άλλοτε

κατά των πράξεων των δύο πλευρών (Joomla development team –

Miro).Δύο εβδομάδες μετά από τις ανακοινώσεις του Eddie, οι 2 πλευρές

αναδιοργανώθηκαν και η κοινότητα συνέχισε ξανά να μεγαλώνει. O Eben

Moglen και το Νομικό Κέντρο Ελευθερίας Λογισμικού (Software

Freedom Law Center, SFLC) βοήθησαν την κεντρική ομάδα του Joomla

που ξεκίνησε τον Αύγουστο του 2005, πράγμα που ήταν φανερό από τις

ανακοινώσεις στο blog του Moglen. Το Νομικό Κέντρο Ελευθερίας

Λογισμικού συνέχισε να βοηθάει με νόμιμη καθοδήγηση το Joomla

project.

Την 18η Αυγούστου 2005, ο Andrew Eddie έκανε έκκληση προς την

κοινότητα για την εύρεση ονομάτος για το project. Η κεντρική ομάδα του

Joomla έδειξε ότι θα έπαιρνε την τελική απόφαση για το όνομα, με βάση

τις προτάσεις από την κοινότητα. Τελικά όμως, επιλέχθηκε ένα όνομα το

οποίο δεν ήταν στην λίστα με τα προτεινόμενα ονόματα από την

κοινότητα.

Την 1η Σεπτεμβρίου του 2005, το νέο όνομα, “Joomla”, ανακοινώθηκε.

Είναι η αγγλική μετάφραση της λέξης από την γλώσσα των Swahili

“jumla”, που σημαίνει «όλοι μαζί».Στις 6 Σεπτεμβρίου 2005, η

αναπτυξιακή ομάδα κάλεσε την κοινότητα να βοηθήσει στην δημιουργία

του λογότυπου. Έτσι η κοινότητα μπορούσε να ψηφίσει πιο λογότυπο

ήταν το καλύτερο, με την τελική απόφαση να βγαίνει στις 22

Page 58: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

57

Σεπτεμβρίου. Μετά την επιλογή του λογότυπου, ακολούθησαν επιλογές

για τις brand guidelines, τα εγχειρίδια χρήσης τα οποία εκδόθηκαν για το

κοινό στις 2 Οκτωμβρίου.

Το Joomla (έκδοση 1.0.0) εκδόθηκε στις 16 Σεπτεμβρίου 2005. Ήταν

μια επεξεργασμένη έκδοση του Mambo 4.5.2.3, το οποίο είχε αρκετά

bugs και προστασία μέτριου επιπέδου.

Το Joomla κέρδισε το βραβείο Packt Publishing το 2006 και το 2007, ως

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

κώδικα.

Στις 27 Οκτωμβρίου 2008, το Packt Publishing ανακοίνωσε τον Johan

Janssens, το πολυτιμότερο άτομο (MVP), για την δουλειά του ως

developer του Joomla 1.5 και της αρχιτεκτονικής του. Το 2009 ο Louis

Landry έλαβε το βραβείο του MVP, για την συμβολή του στην

αρχιτεκτονική και στην καθοδήγηση δημιουργίας του Joomla.

Η έκδοση 1.5 του Joomla εκδόθηκε στις 22 Ιανουαρίου του 2008. Η πιο

πρόσφατη έκδοση μέχρι στιγμής είναι η 1.5.17 (27 Απριλίου 2010). Τον

Μάϊο, η πρώτη beta έκδοση 1.6 έγινε διαθέσιμη στο κοινό για testing

λόγους.

6.3 Ανάπτυξη

Το Joomla μπορεί να εγκατασταθεί χειροκίνητα από τον πηγαίο κώδικα,

σε ένα σύστημα το οποίο τρέχει έναν Web server που υποστηρίζει

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

περισσότερο χρόνο και εμπειρία από οποιαδήποτε άλλη εναλλακτική

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

συστήματος ή με την χρήση του TurnKey.

Υπάρχουν πολλές εταιρείες Web hosting, οι οποίες προμηθεύουν έναν

πίνακα ελέγχου που αυτοματοποιεί την ανάπτυξη της ιστοσελίδας στο

Joomla.

Page 59: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

58

Το Joomla επίσης μπορεί να εγκατασταθεί μέσω της Microsoft Web

πλατφόρμας των Windows. Η πλατφόρμα αυτή ανιχνεύει πιθανόν

ελλείψεις των PHP ή MySQL, τις εγκαθιστά και τις τροποποιεί

κατάλληλα πριν προχωρήσει στην τελική εγκατάσταση του Joomla.

6.4 Κοινότητα

Το Joomla έχει μια επίσημη και πολλές ανεπίσημες κοινότητες. Από τον

Ιούλιο του 2008 η επίσημη κοινότητα του Joomla έχει πάνω από 300.000

θέματα στα forums της και πάνω από 1.300.000 posts. Περισσότερα από

255.000 μέλη είναι εγγεγραμμένα χρησιμοποιώντας 40 διαφορετικές

γλώσσες. Ανεπίσημες ιστοσελίδες εκδόθηκαν σε πολλές γλώσσες κατά

καιρούς με την χρήση του Joomla.

6.5 Χαρακτηριστικά

Διαχειριστής Χρηστών: Το Joomla έχει ένα σύστημα εγγραφής το οποίο

επιτρέπει στους χρήστες να τροποποιούν τις προσωπικές τους ρυθμίσεις.

Υπάρχουν 9 γκρουπ χρηστών με διάφορους τύπους αδειών, πάνω στα

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

αναγνώριση του χρήστη είναι το πιο σημαντικό μέρος του

χαρακτηριστικού «Διαχείριση Χρηστών» γι’αυτό το Joomla υποστηρίζει

πολλαπλά πρωτόκολα, συμπεριλαμβανομένου το LDAP, OpenID και το

Gmail. Αυτό επιτρέπει στους χρήστες να χρησιμοποιήσουν τον ήδη

υπάρχων λογαριασμό τους για να προχωρήσουν στην διαδικασία

εγγραφής.

Page 60: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

59

Σχήμα 1. Διαχειριστής Χρηστών (User Manager)

Διαχειριστής Μέσων: Ο Διαχειριστής Μέσων είναι ένα εργαλείο για την

εύκολη διαχείριση των αρχείων ή των φακέλων των Μέσων. Δίνεται η

δυνατότητα να τροποποιηθούν οι ρυθμίσεις τύπου MIME ώστε να

χειριστούμε αρχεία οποιουδήποτε τύπου. Ο Διαχειριστής Μέσων είναι

ενσωματωμένος στο εργαλείο επεξεργασίας αντικειμένων με αποτέλεσμα

να βοηθάει στην λήψη φωτογραφιών ή άλλων τύπων αρχείων,

οποιαδήποτε στιγμή.

Σχήμα 2. Ο Διαχειριστής Μέσων (Media Manager) βρίσκεται στο

SiteDirectory drop-down μενού.

Page 61: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

60

Σχήμα 3. Κάτω από την λίστα αρχείων και φακέλων, μπορούμε να δούμε

αυτά τα 3 κουτιάς εισαγωγής.

Σχήμα 4. Το «ανέβασμα» αρχείου (Upload) μας επιτρέπει να επιλέξουμε το

αρχείο και να το «ανεβάσουμε» στην θήκη φωτογραφιών

(χρησιμοποιώντας το κουμπί Browse και έπειτα πατώντας το κουμπί

Upload στην πανω δεξιά γωνία)

Page 62: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

61

Σχήμα 5. Το κουτί Code εμφανίζει τον κώδικα σε HTML και μας επιτρέπει

να δώσουμε τον σύνδεσμο της φωτογραφίας που έχουμε επιλέξει.

Σχήμα 6. Μέσω του κουμπιού Create Directory μπορούμε να

δημιουργήσουμε έναν καινούριο φάκελο, μέσα στον οποίο μπορούμε να

«ανεβάσουμε» αρχεία. Πληκτρολογούμε στο όνομα του καταλόγου, όπως

φαίνεται στην φωτογραφία και έπειτα πατάμε το εικονίδιο Create στο

μενού στην πάνω δεξιά γωνία.

Page 63: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

62

Σχήμα 7. Αν θελήσουμε να σβήσουμε ένα αρχείο ή έναν άδειο φάκελο,

μπορούμε να πατήσουμε στο εικονίδιο με τον Κάδο που βρίσκεται κάτω

από το αντικείμενο που θέλουμε να σβήσουμε. Θα χρειαστεί να

επιβεβαιώσουμε την διαγραφή.

Διαχειριστής Γλώσσας: Υπάρχει μεγάλη υποστήριξη για πολλές

γλώσσες του κόσμου και UTF-8 κωδικοποίηση. Αν χρειαστεί η

ιστοσελίδα να είναι σε μια συγκεκριμένη γλώσσα, και ο πίνακας του

Διαχειριστή σε κάποια άλλη, υπάρχει η δυνατότητα υποστήριξης

πολλαπλών γλωσσών.

Σχήμα 8. Διαχειριστής Γλώσσας (Language Manager)

Page 64: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

63

Σχήμα 9. Πως να προσθέσουμε μια νέα γλώσσα στο Joomla;

Όταν μπούμε στον πίνακα διαχείρισης, θα δούμε την ενδεικτική σελίδα με

όλες τις ρυθμίσεις.

Σχήμα 10. Αν θελήσουμε να προσθέσουμε μια νέα γλώσσα στην

εγκατάσταση του Joomla, τότε μπορούμε να επισκεφθούμε την σελίδα

Joomla Extentions - Languages και να «κατεβάσουμε» την επιθυμητή

γλώσσα. Μετά πάμε στο μενού Installers και επιλέγουμε Languages.

Page 65: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

64

Πατάμε το κουμπί Browse και μετά βρίσκουμε το αρχείο εγκατάστασης της

γλώσσας και έπειτα πατάμε στην επιλογή Upload File & Install. Σχήμα 11.

Σχήμα 12. Περιμένουμε για επιβεβαίωση και πατάμε Continue. Από τις

γλώσσες που βρίσκονται στον κατάλογο επιλέγουμε την καινούρια και μετά

πατάμε στο εικονίδιο Publish.

Τώρα έχουμε εγκαταστήσει επιτυχημένα μια νέα γλώσσα στο Joomla. Το

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

στον πίνακα διαχείρισης: Global Configuration -> Site. Στην επιλογή

Γλώσσας επιλέγουμε αυτή που εγκαταστήσαμε τελευταία και αυτόματα θα

γίνει προεπιλογή στην ιστοσελίδα μας.

Page 66: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

65

Διαχείριση των Banner: Είναι εύκολο να τοποθετηθούν banners στην

ιστοσελίδα με την χρήση του Διαχειριστή Banner, ξεκινώντας απλά από

την δημιουργία ενός πελατειακού προφίλ. Μόλις προστεθούν τα

επιθυμητά campaigns και banners, μπορεί κάποιος να τοποθετήσει

impression numbers, special URLs και πολλά άλλα.

Σχήμα 13. Διαχείριση των Banner (Banner Management)

Διαχείριση Επαφών: Ο Διαχειριστής Επαφών βοηθάει τους χρήστες να

βρουν το κατάλληλο άτομο που ψάχνουν καθώς και πληροφορίες του.

Επίσης, υποστηρίζει πολλαπλές φόρμες επαφών ξεκινώντας από

ξεχωριστές επαφές μέχρι και ολόκληρα γκρουπς.

Σχήμα 14. Διαχείριση Επαφών (Contact Management)

Page 67: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

66

Ψηφοφορίες: Αν κάποιος θέλει να μάθει περισσότερες πληροφορίες για

τους χρήστες, είναι εύκολο να δημιουργήσει ψηφοφορίες με πολλαπλές

επιλογές.

Σχήμα 15. Πως να δημιουργήσουμε μια ψηφοφορία;

Βήμα 1 Από το μενού στην κορυφή της σελίδας του διαχειριστή επιλέγουμε

Components -> Polls:

Βήμα 2 Πατάμε το New από το μενού πάνω δεξιά. Ας ονομάσουμε την

ψηφοφορία: «Πως σας φαίνεται η ιστοσελίδα μας;».

Σχήμα 16. Βήμα 3 Στο δεξιό μενού τοποθετούμε τις επιθυμητές επιλογές:

«Υπέροχη», «Μέτρια» , «Κακή».

Page 68: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

67

Βήμα 4 Για να αποθηκεύσουμε την ψηφοφορία, πατάμε στο κουμπί Save

πάνω δεξιά.

Σχήμα 17. Βήμα 5 Τώρα η ψηφοφορία πρέπει να δημοσιευτεί. Πηγαίνουμε

Extensions -> Module Manager από το μενού στην κορυφή.

Σχήμα 18. Βήμα 6 Επιλέγουμε New από πάνω δεξιά, βρίσκουμε το Poll

στην λίστα και το τσεκάρουμε.

Βήμα 7 Πατάμε: Next

Βήμα 8 Βάζουμε τίτλο: Πως σας φαίνεται η ιστοσελίδα μας;

Βήμα 9 Επιλέγουμε :“Show title” , No.

Βήμα 10 Από το δεξιό κουτί, Module Parameters > Poll επιλέγουμε την

ψηφοφορία «Πώς σας φαίνεται η ιστοσελίδα μας;».

Page 69: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

68

Βήμα 11 Πατάμε το Save και θα δούμε ότι η ψηφοφορία εμφανίστηκε στην

αρχική σελίδα. Σχήμα 19.

Αναζήτηση: Βοηθάει στην πλοήγηση των χρηστών στα πιο δημοφιλή

αντικείμενα και προμηθεύει τον Διαχειριστή με στατιστικές αναζήτησης.

Διαχείριση των Συνδέσμων: Προμηθεύει πηγές συνδέσμων στους

χρήστες της ιστοσελίδας οι οποίες είναι απλό να χωριστούν σε

κατηγορίες.

Σχήμα 20. Διαχείριση Συνδέσμων (Web link Management)

Page 70: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

69

Διαχείριση Περιεχομένου: Το απλοποιημένο σε 3 βαθμίδες σύστημα

των αντικειμένων, δίνει την δυνατότητα το περιεχόμενο να οργανωθεί

στιγμιαία. Το περιεχόμενο μπορεί να οργανωθεί με οποιοδήποτε

επιθυμητό τρόπο και δεν έχει απαραίτητα σχέση με το πως θα φαίνεται

στην ιστοσελίδα. Οι χρήστες μπορούν να αξιολογούν τα αντικείμενα, να

τα στέλνουν μέσω e-mail σε άλλους, ή να τα αποθηκεύουν αυτόματα σε

ένα .PDF αρχείο (με UTF-8 υποστήριξη για όλες τις γλώσσες). Οι

Διαχειριστές μπορούν να αρχειοθετήσουν το περιεχόμενο για ασφάλεια,

κρύβοντας το από τους απλούς επισκέπτες της ιστοσελίδας.

Στις ιστοσελίδες που είναι ανοιχτές για το κοινό, το ενσωματωμένο

εργαλείο απόκρυψης των e-mail, προστατεύει τις ηλεκτρονικές

διευθύνσεις από τα spambots.

Η δημιουργία του περιεχομένου είναι απλή με τον επεξεργαστή

WYSIWYG, δίνοντας την δυνατότητα στους χρήστες να τοποθετήσουν

κείμενο και φωτογραφίες μαζί με έναν πολύ ελκυστικό τρόπο. Μόλις

δημιουργηθούν τα άρθρα, υπάρχει ένας μεγάλος αριθμός από

προεγκατεστημένα modules για να εμφανίσουν τα πιο δημοφιλή άρθρα,

τα τελευταία νέα αντικείμενα, newsflashes, συσχετισμένα άρθα και άλλα.

Σχήμα 21. Διαχείριση Περιεχομένου (Content Management)

Page 71: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

70

Σύνδεση και Διαχείριση των Newsfeed: Με το Joomla, είναι εύκολο να

συνδέσεις το περιεχόμενο της ιστοσελίδας σου, επιτρέποντας στους

χρήστες να γράψουν το νέο περιεχόμενο στη λίστα με το αγαπημένο τους

RSS reader. Είναι το ίδιο εύκολο να ενσωματώσουν τα RSS feeds από

άλλες πηγές και να τα συγκεντρώσουν όλα στην ιστοσελίδα.

Πως να προσθέσουμε και να χρησιμοποιήσουμε News/RSS Feed;

Για να συμπεριλάβουμε ένα RSS feed από άλλη ιστοσελίδα, πρέπει πρώτα

να φτιάξουμε ένα RSS Block. Είναι το ίδιο με το να προσθέσουμε ενα νέο

Block, αλλά στο Block dropdown μενού, επιλέγουμε: Core / RSS

Newsfeed. Μετά πατάμε Update. Έπειτα συμπληρώνουμε τις πληροφορίες

και επιλέγουμε την τοποθεσία. Τέλος, πατάμε το κουμπί Update. Σχήμα 22.

Διαχειριστής Μενού: Ο Διαχειριστής Μενού επιτρέπει τη δημιουργία

όσων μενού και αντικειμένων μενού χρειαζόμαστε. Μπορούμε να

δομήσουμε την ιεραρχία των μενού εντελώς ανεξάρτητα από την δομή

του περιεχομένου. Το μενού μπορεί να τοποθετηθεί σε πολλαπλά μέρη

και σε οποιοδήποτε στυλ επιλεχθεί, π.χ rollovers, dropdown, flyouts και

οτιδήποτε άλλο τρόπο πλοήγησης μπορούμε να σκεφτούμε.

Page 72: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

71

Σχήμα 23. Διαχειριστής Μενού (Menu Manager)

Διαχείριση Προτύπου: Τα πρότυπα στο Joomla είναι ένας καλός δρόμος

να διαμορφώσουμε την ιστοσελίδα μας ώστε να φαίνεται όπως ακριβώς

θέλουμε. Μπορούμε να χρησιμοποιήσουμε το ίδιο πρότυπο για όλο την

ιστοσελίδα ή ξεχωριστό για κάθε τομέα.

Ενσωματωμένο Σύστημας Βοήθειας: Το Joomla έχει ενσωματωμένο

τομέα βοήθειας για να βοηθήσει του χρήστες να βρουν ότι ζητάνε. Ένα

γλωσσάριο εξηγεί τους όρους σε απλά Αγγλικά, ένας ελεγκτής έκδοσης

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

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

αν όλα αυτά δεν καταφέρουν να βοηθήσουν υπάρχουν πολλοί σύνδεσμοι

σε άλλες πηγές για περαιτέρω βοήθεια και υποστήριξη.Ενσωματωμένο

Page 73: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

72

Σχήμα 24. Σύστημα Βοήθειας (Intergrated Help System)

Χαρακτηριστικά Συστήματος: Αν ο Διαχειριστής της ιστοσελίδας

χρειαστεί να αντιμετωπίσει ένα πρόβλημα, το debugging mode και η

αναφορά λαθών είναι ανεκτίμητα.

Το επίπεδο FTP επιτρέπει διάφορες διαδικασίες αρχείων (όπως

εγκατάσταση προεκτάσεων) χωρίς να χρειάζεται να γίνουν όλοι οι

φάκελοι ή τα αρχεία writable. Έτσι το έργο για τον Διαχειριστή είναι πιο

εύκολο και αυξάνεται η ασφάλεια της ιστοσελίδας.

Οι Διαχειριστές μπορούν να επικοινωνήσουν γρήγορα και αποδοτικά με

τους χρήστες, ένας προς έναν, μέσω προσωπικών μηνυμάτων ή με όλους

μαζί μέσω του συστήματος πολλαπλών μηνυμάτων.

Υπηρεσίες Web: Με τις Υπηρεσίες Web, μπορούμε να

χρησιμοποιήσουμε Remote Procedure Calls (μέσω HTTP και XML).

Επίσης μπορούμε να ενσωματώσουμε υπηρεσίες XML-RPC με το

Blogger και τα Joomla APIs.

Επεκτασιμότητα: Υπάρχουν μερικά βασικά χαρακτηριστικά του Joomla

αλλά η «δύναμη» του είναι ο τρόπος με τον οποίο μπορεί να

προσαρμοστεί στις ανάγκες μας.

Page 74: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

73

7 Υλοποίηση και Σύκριση

7.1 Joomla

Η υλοποίηση που κάναμε του Joomla υπάρχει στο

http://174.132.7.136/~ptixiaki/joomla/index.php

Σχήμα 1. Αρχική / Administrator

Κάνοντας Login ο Administrator, εμφανίζεται ένα μενού κάτω αριστερά

που επιτρέπει να γίνει η διαχείριση της ιστοσελίδας. Οι επιλογές που

υπάρχουν είναι “Your details” , “Submit an Article” , “Submit a Web

Link” , “Logout”.

Σχήμα 2. Your details

Page 75: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

74

Πατώντας στην επιλογή “Your details”, εμφανίζεται η παραπάνω

σελίδα. Εδώ μπορούμε να τροποποιήσουμε τις προσωπικές μας

λεπτομέρειες, να αλλάξουμε την γλώσσα και την ώρα.

Σχήμα 3. Submit an Article

Στην παραπάνω σελίδα, μας δίνεται η δυνατότητα να γράψουμε ένα

άρθρο, να ανεβάσουμε φωτογραφίες, να το κατηγοριοποιήσουμε και να

επιλέξουμε σε ποιους χρήστες θα είναι ορατό.

Σχήμα 4. Submit a Web Link

Μέσω αυτής της σελίδας μας δίνεται η δυνατότητα να δημοσιεύσουμε

έναν σύνδεσμο από κάποια άλλη ιστοσελίδα, και να τον βάλουμε σε

κάποια κατηγορία.

Τέλος υπάρχει η επιλογή ¨Logout¨ που μας οδηγεί στην αποσύνδεση

από τον λογαριασμό μας.

Page 76: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

75

Σχήμα 5. Αρχική / Επισκέπτης

Σχήμα 6. Σύνδεσμος Ποδόσφαιρο

Σχήμα 7. Σύνδεσμος Φωτογραφιών Μπάσκετ/Ποδοσφαίρου

Page 77: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

76

Σχήμα 8. Forum

Σχόλια

Το Joomla μπορούμε να πούμε ότι είναι αρκετά εύκολο στην διαχείριση

του. Έχουμε πλήρη έλεγχο σε ότι υπάρχει στην ιστοσελίδα π.χ το άρθρο

στην Αρχική σελίδα μπορούμε να το μετατρέψουμε σε .pdf αρχείο, να το

εκτυπώσουμε ή να στείλουμε σαν email πατώντας τα κουμπάκια που έχει

δίπλα.

Αρκετά σημαντικό είναι ότι η κατηγοριοποίηση παρ’όλο που είναι

υψηλού επιπέδου, είναι ευέλικτη και δεν πρόκειται να δυσκολέψει ακόμα

και κάποιον αρχάριο χρήστη. Υποστηρίζει πολλά plugins με το

σημαντικότερο να είναι το forum και έχει search box.

Έχει όλες τις επιλογές συγκεντρωμένες και δεν χρειάζεται κάποιος να

ψάχνει σε όλα τα μέρη της ιστοσελίδας για να τις βρει.

Η δυσκολία που προέκυψε ήταν στο να φορτώσουμε ένα video από

άλλη ιστοσελίδα, καθώς αργούσε αρκετά η ιστοσελίδα μας – πιθανόν

λόγω της χρήσης Javascript και CSS.

Page 78: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

77

7.2 Drupal

Η υλοποίηση που κάναμε του Drupal υπάρχει στο

http://ksenos.drupalcafe.com

Σχήμα 1. Αρχική / Administator

Αυτή είναι η αρχική σελίδα του site μας. Υπάρχουν διάφορα μενού και

καρτέλες τα οποία χρησιμεύουν στην πλοήγηση μας στο site. Όπως

βλέπουμε, πάνω αριστερά υπάρχει το admin menu, το οποίο μας

επιτρέπει να διαχειριστούμε την ιστοσελίδα. Έχει 4 επιλογές τις οποίες

θα δούμε παρακάτω.

Page 79: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

78

Σχήμα 2. My account

Μόλις πατήσουμε αυτή την επιλογή εμφανίζεται η παραπάνω σελίδα.

Έχουμε την δυνατότητα να αλλάξουμε το username μας, την διεύθυνση

email και τον κωδικό μας. Μπορούμε να επιλέξουμε αν ο λογαριασμός

θα είναι ενεργός με την επιλογή Active ή εάν δεν θα υπάρχει δυνατότητα

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

για το theme του site και για την τοπική ώρα και ημερομηνία.

Page 80: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

79

Σχήμα 3. Create content

Εδώ, μπορούμε εύκολα και γρήγορα να δημιουργήσαμε ένα θέμα στο

forum μας, να ανεβάσουμε εικόνες, να δημιουργήσουμε σελίδες ή

ψηφοφορίες αλλά και να γράψουμε ολόκληρο άρθρο.

Σχήμα 4. Administer

Page 81: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

80

Αυτή η επιλογή είναι στην ουσία η διαχείριση του site. Επιλέγουμε να

τροποποιήσουμε το περιεχόμενο που υπάρχει, την εμφάνιση του site,

τους χρήστες και τις άδειες που έχουν, τις ονομασίες από τις υποσελίδες

και γενικά οτιδήποτε υπάρχει στην ιστοσελίδα.

Σχήμα 5. Logout

Πατώντας την επιλογή Logout, ξαναφορτώνει η αρχική σελίδα, και

βλέπουμε τα κουτάκια username και password, όπου μπορούμε να

συνδεθούμε σαν κάποιος άλλος χρήστης, να δημιουργήσουμε καινούριο

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

επισκέπτες.

Page 82: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

81

Σχήμα 6. Αρχική / Επισκέπτης

Σχήμα 7. Forum

Page 83: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

82

Σχήμα 8. Σύνδεσμος Φωτογραφίες

Σχήμα 9. Σύνδεσμος Videos

Page 84: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

83

Σχόλια

Το Drupal CMS έχει πολλές δυνατότητες, αρκεί ο χρήστης να είναι

εξοικειωμένος για να μπορέσει να τις χρησιμοποιήσει κατάλληλα.

Όπως φαίνεται η σελίδα είναι αρκετά φιλική και ευπαρουσίαστη,

παραθέτοντας επιλογές οι οποίες είναι κατηγοριοποιημένες στα

αντίστοιχα μενού και καλύπτουν όλες τις ανάγκες.

Η αλλαγή του theme γίνεται γρήγορα και υπάρχει μια πληθώρα από

ελεύθερα themes, που ανανεώνουν το site και του δίνουν άλλη

αίσθηση. Ανά πάσα στιγμή μπορούμε να ανεβάσουμε κάποιο κέιμενο

και να διορθώσουμε τυχόν λάθη. Το ίδιο συμβαίνει και με τις

φωτογραφίες.

Παρ’όλα αυτά υπάρχουν μερικά αρνητικά. Υπάρχουν τόσες πολλές

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

υπάρχουν δίπλα από τις επιλογές είναι εντελώς γραφικά και δεν

βοηθάνε στο άνοιγμα-κλείσιμο των υποκατηγοριών. Αυτό σημαίνει

ότι πρέπει να πατήσουμε σε άλλη επιλογή για να «κλείσουν» οι

υποκατηγορίες της προηγούμενης. Επίσης δεν μας παρέχει

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

Σημαντικό είναι ότι δεν υπάρχει search box, τουλάχιστον στα free

themes που παρέχονται. Τέλος, το taxonomy module μας μπέρδεψε,

αρχικά ως ορολογία αλλά και ως δυσκολία στην χρήση των tags για

κατηγοριοποίηση του περιεχομένου.

Page 85: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

84

7.3 WaterCMS (Ruby)

Η υλοποίηση του WaterCMS, που είναι βασισμένο στη γλώσσα

Ruby, υπάρχει στο http://soloikos.publishpath.com

Σχήμα 1. Αρχική / Administrator

Αυτή είναι η αρχική σελίδα που βλέπει ο Administrator μόλις κάνει

login. Τα μενού διαχείρισης βρίσκονται στην κορυφή στα δεξιά. Ας

δούμε πρώτα τις επιλογές Page Settings, Preview Page και Add a New

Page.

Page 86: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

85

Σχήμα 2. Page Settings (Basic)

Εδώ υπάρχουν ρυθμίσεις σχετικά με την ονομασία της σελίδας.

Σχήμα 3-4. Page Settings (Advanced)

Στην καρτέλα advanced υπάρχουν ρυθμίσεις σχετικά με το στήσιμο της

ιστοσελίδας, τα templates που παρέχονται και άλλα διάφορα όπως SSL

encryption ή να είναι κρυφή από κάποια κατηγορία χρηστών.

Page 87: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

86

Page 88: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

87

Σχήμα 5. Page Settings (Users and Roles)

Σε αυτή την καρτέλα, ρυθμίζουμε σε ποιους θα είναι ορατή η σελίδα.

Παρακάτω υπάρχουν οι ανάλογες επιλογές.

Page 89: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

88

Σχήμα 6. Η επιλογή Preview Page χρησιμοποιείται για να δει ο

Administrator το πως βλέπει την ιστοσελίδα ένας απλός επισκέπτης ή

χρήστης.

Η επιλογή Αdd a New Page προσθέτει μια καρτέλα δίπλα από τις ήδη

υπάρχουσες Home, ΠΟΔΟΣΦΑΙΡΟ, ΜΠΑΣΚΕΤ. Δυστυχώς το δωρεάν

πακέτο δεν επιτρέπει να προσθέσουμε πάνω από 3 καρτέλες.

Page 90: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

89

Σχήμα 7. Ας περάσουμε τώρα στο Administator μενού. Όπως φαίνεται

στην παρακάτω εικόνα, μόλις πάμε τον κέρσορα πάνω από την επιλογή

“My Website” εμφανίζεται αυτόματα ένα drop down μενού, με 5

επιλογές.

Εδώ μπορούμε να ρυθμίσουμε το design της ιστοσελίδας ανεβάζοντας

κάποιο δικό μας layout ή αγοράζοντας κάποιο έτοιμο. Μπορούμε να

διαχειριστούμε τις πληροφορίες των χρηστών, τα δικαιώματα που έχουν

και να δούμε στατιστικές επισκεψιμότητας στην ιστοσελίδα μας και στα

επιμέρους κομμάτια της. Η επιλογή “My Account” χρησιμεύει στο να

δούμε/επεξεργαστούμε τις ρυθμίσεις του προσωπικού μας λογαριασμού.

Τέλος η επιλογή Help μας μεταφέρει σε έναν οδηγό βοηθειών και με την

επιλογή log-out αποσυνδεόμαστε από τον λογαριασμό μας.

Page 91: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

90

Σχήμα 8. Αρχική / Επισκέπτης

Page 92: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

91

Σχήμα 9. Σύνδεσμος (link) Ποδόσφαιρο

Σχήμα 10. Σύνδεσμος Μπάσκετ

Page 93: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

92

Σχόλια

Από την χρήση του WaterCMS βγάλαμε τα εξής συμπεράσματα. Είναι

αρκετά φιλικό προς τον νεό χρήστη, γιατί έχει λίγες και βασικές επιλογές

που δεν σε κάνουν να χαθείς ή να μην ξέρεις τι κάνεις. Προσφέρει μια

σχετικά εύκολη προσθήκη/επεξεργασία υλικού.

Δίπλα από κάθε επιλογή έχει ένα κουμπάκι “Explain this” που πατώντας

το εξηγεί τη χρήση της. Πολύ θετική είναι η παρουσία του search box

ακόμα και στο δωρεάν πακέτο. Επίσης έχει προαιρετική εμφάνιση

κώδικα στις αναρτήσεις, πράγμα που καθιστά τον χρήστη ικανό να μάθει

HTML.

Από την άλλη πλευρά, είναι κλειστού κώδικα οπότε υπάρχουν

περιορισμοί ως δωρεάν πακέτο. Δεν αφήνει να δημιουργήσουμε πάνω

από 3 subpages και δεν μπορεί να υπάρξει πάνω από ένας διαχειριστής.

Τέλος, το πιο σημαντικό μειονέκτημα του είναι ότι δεν υποστηρίζει

forum.

Page 94: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

93

7.4 Πίνακες Κριτηρίων και Συμπεράσματα

Γενικά

Χαρακτηριστικά Drupal Joomla RoR

Τελευταία ανανέωση 6/3/2010 - 5.22

& 6.16

27/04/2010 –

1.5.17

7/12/2009 – Ruby

1.9.1

25/05/2010 –

Rails 2.3.8

System requirements IE 6.x +

Firefox 2.x +

Opera 7 +

Safari 1.x +

Camino 1.x +

IE 6.x +

Firefox 1.5 +

Safari 1.x +

Opera 7 +

IE 6.x +

Firefox 1.5 +

Safari 1.x +

Opera 7 +

Application Server PHP PHP FastCGI

Approximate Cost Free Free Free

Βάση δεδομένων MySQL 4.1 or 5.0

Postgre 7.4

MySQL 3.23 + MySQL

PostgreSQL

SQL Server

Oracle

Άδεια GNU/GPL GNU/GPL v2 MIT

Operating System Any Any Any

Γλώσσα προγραμματισμού PHP 4.3.5 + PHP 4.4.10 + Ruby

Root Access

Shell Access

Web Server Apache &

Microsoft IIS

Apache 1.3.x + &

2.x +

Mongrel &

Apache

Page 95: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

94

Υποστήριξη

Χαρακτηριστικά Drupal Joomla RoR

Πρόγραμμα πιστοποίησης

Κώδικας Skeletons

Εμπορικά Manuals

Εμπορική υποστήριξη

Κοινότητα ανάπτυξης

Διαδικτυακή βοήθεια

Pluggable API

Επαγγελματική υποστήριξη

Επαγγελματικές υπηρεσίες

Public Forum

Public Mailing List

Test Framework Free Add On

Third-Party Developers

Συσκέψεις χρηστών

Ευχρηστία

Χαρακτηριστικά Drupal Joomla RoR

Drag N Drop Content Free Add On Free Add On

Email to discussion Free Add On Free Add On

Φιλικά Urls

Αυξομείωση μεγέθους εικόνας Free Add On

Macro Language Free Add On

Page 96: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

95

Mass Upload Free Add On

Πρωτοτυπία Περιορισμένη

Server Page Language

Ορθογραφικός Έλεγχος Free Add On

Style Wizard Περιορισμένο

Subscriptions Free Add On

Template Language Περιορισμένη

UI επίπεδα

Αναίρεση Περιορισμένη

WYSIWYG Editor Free Add On Free Add On

Zip Archives

Απόδοση

Χαρακτηριστικά Drupal Joomla RoR

Advanced Caching

Database Replication Περιορισμένη

Load Balancing

Page Caching

Static Content Export Free Add On

Page 97: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

96

Interoperability (Διαλειτουργικότητα)

Χαρακτηριστικά Drupal Joomla RoR

Content Syndication

FTP Support Περιορισμένη

iCal Free Add On Free Add On

UTF-8 Support

WAI compliant Περιορισμένη

WebDAV Support

XHTML Compliant

Flexibility (Ευελιξία)

Χαρακτηριστικά Drupal Joomla RoR

CGI-Mode Support

Content Reuse Περιορισμένο

Extensible User Profiles

Interface Localization Περιορισμένο

Metadata Περιορισμένη

Multi-Lingual Content Free Add On Περιορισμένο

Multi-Lingual Content

Integration

Free Add On Free Add On

Multi System Deployment Free Add On

URL αντιγραφή Περιορισμένη

Page 98: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

97

Διαχείριση

Χαρακτηριστικά Drupal Joomla RoR

Διαχείριση Διαφήμισης Free Add On

Asset Management Free Add On

Clipboard

Content Scheduling Free Add On

Content Staging Free Add On

Inline Administration

Διαδικτυακή Διαχείριση

Package Deployment

Subsites/Roots Free Add On

Themes/Skins

Trash

Web Statistics

Web-Based Style/Template

Management Free Add On

Web-Based Translation

Management Free Add On

Workflow Engine Περιορισμένη

Ασφάλεια

Χαρακτηριστικά Drupal Joomla RoR

Audit Trail

Captcha Free Add On Free Add On

Page 99: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

98

Content Approval

Email Verification

Granular Privileges

Kerberos Authentication

LDAP Authentication Free Add On

Login History

NIS Authentication

NTLM Authentication Free Add On

Pluggable Authentication

Problem Notification

Sandbox

Session Management

SMB Authentication

SSL Compatible

SSL Logins

SSL pages

Versioning

Ενσωματωμένα Συστήματα

Χαρακτηριστικά Drupal Joomla RoR

Blog Free Add On

Chat Free Add On Free Add On

Ταξινόμηση Free Add On Free Add On

Διαχείριση περιεχομένου Free Add On Free Add On

Page 100: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

99

Καταχώριση δεδομένων Free Add On Free Add On

Αναφορά βάσης δεδομένου Free Add On

Discussion / Forum Free Add On

Document Management Περιορισμένο Free Add On

Events Calendar Free Add On Free Add On Free Add On

Events Management Free Add On Free Add On

Expense Reports Free Add On

FAQ Management

File Distribution Free Add On Free Add On

Graphs and Charts Free Add On

Groupware Free Add On Free Add On

Guest Book Free Add On Free Add On Free Add On

Help Desk / Bug Reporting Free Add On Free Add On

HTTP Proxy

In/Out Board

Job Postings Free Add On Free Add On

Link Management Free Add On

Φόρμα Επικοινωνίας Free Add On Free Add On

Matrix

My Page / Πίνακας οργάνων Free Add On

Αλληγραφία Free Add On Free Add On

Έκθεση φωτογραφιών Free Add On Free Add On Free Add On

Polls

Διαχείριση προΐοντων Free Add On

Page 101: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

100

Project Tracking Free Add On Free Add On

Μηχανή αναζήτησης

Χάρτης ιστοσελίδας Free Add On Free Add On

Stock αποθέματα Free Add On

Δημοσκοπήσεις Free Add On Free Add On

Syndicated Content (RSS)

Tests/ Quizzes Free Add On Free Add On

Time Tracking Free Add On

Συμβολή χρήστη Free Add On

Καιρός Free Add On

Web Services Front End

Wiki Free Add On Free Add On

Εμπόριο

Χαρακτηριστικά Drupal Joomla RoR

Παρακολούθηση Συνεργάτων Free Add On Free Add On

Inventory Management Free Add On Free Add On

Pluggable Payments Free Add On Free Add On

Pluggable Shipping Free Add On Free Add On

Pluggable Tax Free Add On Free Add On

Point of Sale Free Add On

Shopping Cart Free Add On Free Add On

Συνδρομές Free Add On Free Add On

Wish Lists Free Add On Free Add On

Page 102: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

101

Συμπεράσματα

Χωρίς αμφισβήτηση το Drupal και το Joomla είναι τα δύο μεγάλα

ονόματα και οι ναυαρχίδες στον χώρο των CMS. To WaterCMS που

βασίζεται στη γλώσσα Ruby, δεν είναι τόσο διαδεδομένο και δεν έχει το

ίδιο εύρος υποστήριξης με τα άλλα δύο.

Τα βασικά πλεονεκτήματα του Joomla είναι η ευκολία στη χρήση, η

μεγάλη κοινότητα, τα πολλά extensions και η ξεκάθαρη λογική που

ακολουθεί με αυτά. Δηλαδή το component κάνει αυτό, το module εκείνο,

το plugin το τάδε κλπ. Θα προτείναμε το Joomla για ιστοσελίδες με

πολλά δεδομένα και περιεχόμενο, που χρειάζεται συνεχή ενημέρωση.

Μερικά παραδείγματα εταιρειών/ιστοσελίδων που χρησιμοποιούν το

Joomla είναι:

MTV Networks Quizilla (Social networking) -

http://www.quizilla.com

IHOP (Restaurant chain) - http://www.ihop.com

Harvard University (Educational) - http://gsas.harvard.edu

Citibank (Financial institution intranet) - Not publicly accessible

The Green Maven (Eco-resources) - http://www.greenmaven.com

Outdoor Photographer (Magazine) -

http://www.outdoorphotographer.com

PlayShakespeare.com (Cultural) - http://www.playshakespeare.com

Senso Interiors (Furniture design) - http://www.sensointeriors.co.za

Το Drupal, από την άλλη, απευθύνεται σε πιο προχωρημένους χρήστες

καθώς έχει πολλά πράγματα και πρέπει να ψάξεις που είναι το καθένα και

το πως λειτουργεί. Έχει όμως τεράστιες δυνατότητες και πρόκεται να

καλύψουν κάθε ανάγκη. Η κατηγοριοποίηση του περιεχομένου του δεν

είναι και το ευκολότερο πράγμα και ίσως μπορεί να μπερδέψει. Η

εξοικείωση μαζί του είναι απαραίτητη για την σωστή και κατάλληλη

χρήση του. Μεγάλες εταιρίες οργανισμοί καθώς και ιδρύματα

χρησιμοποιούν το Drupal:

The Whitehouse uses Drupal - see Drupal founder Dries Buytaert's

blog entry and TechPresident post (TechPresident also a Drupal

site).

Page 103: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

102

Foreign Affairs uses Drupal

The BBC uses Drupal

The Fiancial Times uses Drupal

Ubuntu and Canonical use Drupal

Die Zeit (major German newspaper) uses Drupal

Die Welt (another major German newspaper) uses Drupal

The Cable News Network (CNN) uses Drupal

Amnesty International uses Drupal

Greenpeace uses Drupal

The US National Aeronautics and Space Administration (NASA)

uses Drupal

The North Atlantic Treaty Organisation(NATO) uses Drupal

The United Nations uses Drupal

IBM recommends Drupal

Popular Science tears out Vignette and replaced it with Drupal

Fast Company uses Drupal

America Online (AOL) uses Drupal

Sun Microsystems uses Drupal (here, too)

Novell uses Drupal

Yahoo! uses Drupal

Harvard University uses Drupal

In fact, many universities use Drupal

Fedex uses Drupal

Nike uses Drupal

Forbes uses Drupal

Warner Bros uses Drupal

20th Century Fox uses Drupal

MacWorld uses Drupal

Adobe uses Drupal (here too)

Java.net uses Drupal

RackSpace (major web hosting provider) uses Drupal

New York City mayor Mike Bloomberg uses Drupal

Former first lady and (unsuccessful) contender for the US

Democratic presidential nomination, Hillary Clinton uses Drupal

Το WaterCMS έχει λίγα πράγματα, είναι απλό αλλά και αρκετά

εύκολο. Δεν υποστηρίζει ότι τα άλλα δύο, πράγμα που φαίνεται και στους

παραπάνω πίνακες σύγκρισης. Συνήθως είναι ιδανικό για κάποια

προσωπική ιστοσελίδα ή blog κάποιου που δεν έχει ιδιαίτερες γνώσεις.

Page 104: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

103

Μια ξεκάθαρη απάντηση στην προτίμηση για κάποιο από τα 3 CMS

δεν υπάρχει. Σίγουρα τα 2 πρώτα έχουν σημαντικό προβάδισμα αλλά όλα

κρίνονται στο τι πραγματικά χρειάζεται ο χρήστης και τις δυνατότητές

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

έχουν προσωπική άποψη και πιο μπορεί να καλύψει πραγματικά τις

ανάγκες τους. Αν πάλι αυτό φαίνεται δύσκολο, παρέχουμε τους

παραπάνω πίνακες για τον έλεγχο, του τι πραγματικά υποστηρίζει η κάθε

πλατφόρμα ώστε να κάνει κάποιος την τελική επιλογή του.

Page 105: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

104

ΒΙΒΛΙΟΓΡΑΦΙΑ

1. PHP, Ruby, Perl, Java, Javascript, CSS, Python, ColdFusion,

ASP.NET Web Frameworks Tables

http://www.bestwebframeworks.com

2. Web Application Framework

http://en.wikipedia.org/wiki/Web_application_framework

3. Συστήματα Διαχείρισης Περιεχομένου (CMS)

http://www.go-online.gr/ebusiness/specials/article.html?article_id=1042

4. Drupal v6.16

http://en.wikipedia.org/wiki/Drupal

http://drupal.org

http://mydrupal.gr

5. Ruby on Rails (Ruby v1.9.1 & Rails v2.3.8)

http://en.wikipedia.org/wiki/Ruby_on_rails

http://rubyonrails.org

6. Joomla v1.5.17

http://en.wikipedia.org/wiki/Joomla

http://www.joomla.org

http://www.joomla.gr

7. Open vs Closed source

http://www.mytechcorner.com/2009/06/open-source-vs-closed-source-

cms.html

http://www.contentmanager.net/magazine/article_257_open_source_com

mercial_cms.html

8. Joomla/Drupal/WaterCMS Tutorials & Screenshots

http://www.siteground.com/site_search_results.htm?site_search_qry=tuto

rial

Page 106: Μελέτη και Συγκριτική αξιολόγηση των πιο σημαντικών πλατφόρμων ανάπτυξης web εφαρμογών

105

9. Πίνακες Σύγκρισης

http://www.cmsmatrix.org

10. Υλοποίηση Drupal

http://www.drupalcafe.com

11. Υλοποίηση WaterCMS

http://www.embracewater.com