ΚΕΦΑΛΑΙΟ 3 ΑΡΧΙΤΕΚΤΟΝΙΚΕΣ ΔΙΑΤΑΞΕΙΣ ΛΟΓΙΣΜΙΚΟΥ. Έννοιες-κλειδιά. Σύνοψη

Σχετικά έγγραφα
Αρχιτεκτονικές Συστημάτων

Τεχνολογία Λογισμικού

Αρχιτεκτονική Λογισμικού

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

Information Technology for Business

Υπηρεσίες Ιστού (Web Services) ΜΙΧΑΛΗΣ ΜΑΛΙΑΠΠΗΣ

Αρχιτεκτονική του πληροφοριακού συστήµατος Cardisoft Γραµµατεία 2003 ιαχείριση Προσωπικού

Εργαλεία ανάπτυξης εφαρμογών internet Ι

Γεω-χωρικές υπηρεσίες και τεχνολογίες WEB. Βασίλειος Βεσκούκης Μηχανικός ΗΥ, Επ.Καθ. ΕΜΠ

Ελληνικό Ανοικτό Πανεπιστήµιο. Η Ανάλυση και ο Σχεδιασµός στην Ενοποιηµένη ιαδικασία. ρ. Πάνος Φιτσιλής

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Ενότητα 1: Εισαγωγή στις Βάσεις Δεδομένων. Αθανάσιος Σπυριδάκος Διοίκηση Επιχειρήσεων

ΣΥΣΤΗΜΑΤΑ ΔΙΑΧΕΙΡΙΣΗΣ ΕΠΙΧΕΙΡΗΜΑΤΙΚΩΝ ΠΟΡΩΝ

Κεφάλαιο 4: Λογισμικό Συστήματος

ΕΡΓΑΣΙΑ. (στο µάθηµα: Τεχνολογίες Εφαρµογών ιαδικτύου του Η εξαµήνου σπουδών του Τµήµατος Πληροφορικής & Τηλ/νιών)

Επικοινωνία Client/Server

Βάσεις Δεδομένων. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

UML. Γενικά χαρακτηριστικά Στοιχεία µοντέλων Συσχετίσεις. Παραδείγματα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ - Π.Μ.Σ. ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ

Σχεδίαση και Ανάπτυξη Ιστότοπων

Βασικές Έννοιες Web Εφαρμογών

Σχεδιασµός βασισµένος σε συνιστώσες

Linux Terminal Server Project

Διαχείριση Ειδοποιήσεων με Κινητές Συσκευές

Μάθημα 3: Αρχιτεκτονική Υπολογιστών

SNMP ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ

Εισαγωγή, Βασικές Έννοιες, Οφέλη και Κίνδυνοι

7.2 Τεχνολογία TCP/IP

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι

Απαντήστε στις παρακάτω ερωτήσεις πολλαπλής επιλογής (μόνο μία ερώτηση είναι σωστή):

Λειτουργικά Συστήματα Ι. Καθηγήτρια Παπαδάκη Αναστασία

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Εισαγωγή. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική

Διαδίκτυο: δίκτυο διασυνδεμένων δικτύων Ξεκίνησε ως ένα μικρό κλειστό στρατιωτικό δίκτυο, απόρροια του Ψυχρού Πολέμου μεταξύ ΗΠΑ και ΕΣΣΔ.

Επιχειρησιακά Πληροφοριακά Συστήματα. Site: Στόχος Σκοπός μαθήματος

Βασικές έννοιες. Κατανεμημένα Συστήματα 1

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ. Σημειώσεις Θεωρίας

Τεχνολογία Πολυμέσων. Ενότητα # 1: Εισαγωγή Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Δυναμικές Ιστοσελίδες Προγραμματισμός στην πλευρά του client

Τεχνολογία Λογισµικού Ι Κεφάλαια 1-21

Η Διαλειτουργικότητα στην Υπηρεσία του Πολίτη

Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420)

Τεχνολογία Λογισµικού Ι Κεφάλαιο 4

Λογισµικό (Software SW) Λειτουργικά Συστήµατα και ίκτυα

Εισαγωγή. Τεχνολογία Πολυμέσων και Πολυμεσικές Επικοινωνίες 01-1

Τεχνολογία Λογισμικού

Προγραμματισμός διαδικτυακών εφαρμογών με PHP

Λειτουργικά Συστήματα. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

Ανάλυση Περιπτώσεων Χρήσης

Περίληψη ιπλωµατικής Εργασίας

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

Διαγράμματα UML για την τεκμηρίωση της Αρχιτεκτονικής

Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ. «Φέτα» ημιαγωγών (wafer) από τη διαδικασία παραγωγής ΚΜΕ

Θέματα Συστημάτων Πολυμέσων. Ενότητα # 1: Εισαγωγή Διδάσκων: Γεώργιος K. Πολύζος Τμήμα: Μεταπτυχιακό Πρόγραμμα Σπουδών Επιστήμη των Υπολογιστών

ΚΕΦΑΛΑΙΟ 1.7. Πρωτόκολλα και Αρχιτεκτονική Δικτύου

Μεθοδική Ανάπτυξη Δικτυακής Υποδομής. Παρουσίαση στην ημερίδα για Σύγχρονες τάσεις στις Τηλεπικοινωνίες και Τεχνολογίες Αιχμής

Δίκτυα Υπολογιστών Firewalls. Χάρης Μανιφάβας

Τμήμα του εθνικού οδικού δικτύου (Αττική οδός)


ΕΝΟΤΗΤΑ 2 η ΙΑΧΕΙΡΙΣΗ ΡΟΗΣ ΕΡΓΑΣΙΑΣ (WORKFLOW MANAGEMENT) 2.1 Εισαγωγή

κεφάλαιο Βασικές Έννοιες Επιστήμη των Υπολογιστών

ΜΕΘΟΔΟΛΟΓΙΕΣ ΑΝΑΠΤΥΞΗΣ ΣΥΣΤΗΜΑΤΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ

Οόρος«thin» 13η Συνάντηση Εκπαιδευτικών Πληροφορικής. Thinclients 2/4. Υπολογιστικό μοντέλο Thinclients 1/4. Τεχνολογία Τhinclient Edubuntu LTSP

Νέες τεχνολογίες εισάγονται ή χρησιµοποιούνται

ΚΕΦΑΛΑΙΟ 4 ΠΡΟΔΙΑΓΡΑΦΗ ΑΠΑΙΤΗΣΕΩΝ ΑΠΟ ΤΟ ΛΟΓΙΣΜΙΚΟ

ΚΟΙΝΩΝΙΚΗ ΔΙΚΤΥΩΣΗ ΜΕΣΩ ΚΙΝΗΤΩΝ ΣΥΣΚΕΥΩΝ: ΧΡΗΣΗ ΔΕΚΤΗ GPS ΓΙΑ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΗΣ ΚΟΙΝΩΝΙΚΗΣ ΔΙΚΤΥΩΣΗΣ ΣΕ ΚΙΝΗΤΗ ΣΥΣΚΕΥΗ

ΟΙΚΟΝΟΜΙΚΗ ΠΡΟΣΦΟΡΑ ΣΧΕ ΙΑΣΗΣ ΚΑΙ ΚΑΤΑΣΚΕΥΗΣ web εφαρµογής - ηλεκτρονικού κατατήµατος για έξυπνα κινητά

Κεφάλαιο 13: : Εφαρμογές νέφους. Καραμαούνας Π. 1

Κατανεµηµένος Προγραµµατισµός & Προγραµµατισµός στο ιαδίκτυο

Εισαγωγή στην Τεχνολογία Λογισµικού

Η εποχή του SaaS έφτασε! Το λογισμικό ως υπηρεσία SaaS συμφέρει!

Διαχείριση Πληροφοριακών Συστημάτων

Βασικές έννοιες. Κατανεμημένα Συστήματα 1

Εισαγωγή στην Τεχνολογία Λογισµικού

ΟΤΑ Επιχειρησιακή Νοηµοσύνη. Ενότητα: Bc1.1.6 Παρακολούθηση (monitoring) εκτέλεσης Επιχειρησιακών Διαδικασιών και εξαγωγή «µετρήσιµων» (metrics)

Εισαγωγή. Κατανεµηµένα Συστήµατα 01-1

Τεχνολογία Λογισμικού. Ενότητα 1: Εισαγωγή στην UML Καθηγητής Εφαρμογών Ηλίας Γουνόπουλος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

ΕΡΓΑΣΙΑ. (στο μάθημα: Τεχνολογίες Εφαρμογών Διαδικτύου του Η εξαμήνου σπουδών του Τμήματος Πληροφορικής & Τηλ/νιών)

Σχολή Προγραµµατιστών Ηλεκτρονικών Υπολογιστών (ΣΠΗΥ) Τµήµα Προγραµµατιστών Σειρά 112

Εισαγωγή στην Τεχνολογία Λογισµικού

ΟΤΑ Επιχειρησιακή Νοηµοσύνη

ΠΕΡΙΕΧΟΜΕΝΑ. Πρόλογος Κεφάλαιο 1 ο Αρχές Διαχείρισης πληροφορίας στον Παγκόσμιο Ιστό... 15

Πληροφορική 2. Τεχνολογία Λογισμικού

Σύστημα Διαχείρισης Προϋπολογισμού. Bank Budget MIS

Ανάπτυξη Δικτυακής Εφαρμογής Διάχυσης και Ανάλυσης Γεωχωρικών Δεδομένων και Πληροφοριών

ίκτυα - Internet Υπηρεσίες Internet O Παγκόσµιος Ιστός (World Wide Web) Ηλεκτρονική Αλληλογραφία ( ) Υπηρεσία FTP (File Transfer Protocol)

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Rational Unified Process. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική

Κεφάλαιο 1. Εισαγωγή στα συστήματα σχεδιομελέτης και παραγωγής με χρήση υπολογιστή computer aided design and manufacture (cad/cam)

Τεχνολογία Λογισμικού

αντίστοιχο γεγονός. Όταν όντως το κουμπί

Ολοκληρωµένα συστήµατα διαχείρισης κρίσεων δασικών πυρκαγιών: το σύστηµα firementor

Ενότητα 12 (κεφάλαιο 28) Αρχιτεκτονικές Εφαρμογών

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

Πληροφορίες για το μάθημα

Κεντρική Μονάδα Επεξεργασίας

Ανάλυση Απαιτήσεων Απαιτήσεις Λογισµικού

ΠΛΗΡΟΦΟΡΙΚΗ: ΥΠΟΛΟΓΙΣΤΕΣ & ΤΕΧΝΟΛΟΓΙΕΣ ΔΙΑΔΙΚΤΥΟΥ

Εισαγωγή στην Πληροφορική

Cloud Computing with Google and Microsoft. Despoina Trikomitou Andreas Diavastos Class: EPL425

1.2.2 Το μοντέλο δικτύωσης TCP/IP 1 / 26

* Enterprise Resource Planning ** Customer Relationship Management

Αρχιτεκτονική Η/Υ Το chipset ενός υπολογιστικού συστήματος. Δρ. Μηνάς Δασυγένης

Transcript:

ΚΕΦΑΛΑΙΟ 3 ΑΡΧΙΤΕΚΤΟΝΙΚΕΣ ΔΙΑΤΑΞΕΙΣ ΛΟΓΙΣΜΙΚΟΥ Σκοπός του κεφαλαίου είναι η εισαγωγή της έννοιας της διάταξης λογισμικού, ως αρχιτεκτονικής δόμησης των υπολογιστικών πόρων και της ανάθεσης σε αυτούς συστατικών στοιχείων λογισμικού. Ο προσδιορισμός των συστατικών στοιχείων λογισμικού που ανατίθενται (τοποθετούνται) για εκτέλεση σε υπολογιστικούς πόρους μπορεί να γίνει με διάφορες μεθοδολογίες οι σημαντικότερες από τις οποίες θα μας απασχολήσουν στη συνέχεια του βιβλίου. Ωστόσο η τοποθέτηση της αναφοράς στο αντικείμενο στο σημείο αυτό κρίνεται σκόπιμη διότι η βασική γνώση σχετικά με τις σύγχρονες αρχιτεκτονικές διατάξεις λογισμικού είναι χρήσιμη κατά τα επόμενα βήματα του προσδιορισμού των απαιτήσεων και της σχεδίασης του λογισμικού. Μετά τη μελέτη του κεφαλαίου αυτού, ο αναγνώστης θα είναι σε θέση να: Ορίσει την έννοια της αρχιτεκτονικής διάταξης λογισμικού και να αναφέρει τέσσερις τέτοιες διατάξεις. Αντιλαμβάνεται τις δυνατότητες από την αξιοποίηση κατανεμημένων αρχιτεκτονικών λογισμικού. Έννοιες-κλειδιά Διάταξη λογισμικού Πελάτης-εξυπηρετητής Τριμερής διάταξη λογισμικού Πολυμερής διάταξη λογισμικού Σύνοψη Τα σύγχρονα υπολογιστικά περιβάλλοντα και οι συναφείς τεχνολογίες επιτρέπουν την κατάτμηση της λειτουργικότητας μιας εφαρμογής λογισμικού σε επιμέρους 73 I ΣΤΟΙΧΕΙΑ ΤΕΧΝΟΛΟΓΙΑΣ ΛΟΓΙΣΜΙΚΟΥ ΒΑΣΙΛΕΙΟΣ ΒΕΣΚΟΥΚΗΣ

δομικά τμήματα. Καθένα από αυτά δεν είναι απαραίτητο να εκτελείται στην ίδια υπολογιστική μηχανή, αλλά μπορεί να ανατίθεται σε ανεξάρτητους υπολογιστικούς πόρους οι οποίοι συνδέονται μέσω κάποιου δικτύου, ανταλλάσσουν δεδομένα και υπηρεσίες και τελικά όλο το σύστημα μαζί ικανοποιεί τις απαιτήσεις για τις οποίες κατασκευάστηκε. Με τον τρόπο αυτό μεταβαίνουμε από την ανάθεση όλης της λειτουργικότητας του λογισμικού σε μια μηχανή (μονολιθική διάταξη) στο διαμοιρασμό αυτής σε δύο (διάταξη client-server) ή περισσότερους υπολογιστικούς πόρους (τριμερείς και πολυμερείς διατάξεις). Εισαγωγικές παρατηρήσεις Η εξάπλωση του «προσωπικού υπολογιστή» έφερε μια πραγματική επανάσταση στην αγορά η οποία έδωσε την αναγκαία ώθηση για να φτάσουμε στη σημερινή πραγματικότητα. Αρχικά, κάθε επιχείρηση απέκτησε τον «δικό της» υπολογιστή ο οποίος εκτελούσε συνήθως μαθηματικούς υπολογισμούς με ακρίβεια και ταχύτητα. Στη συνέχεια η έννοια του υπολογιστή σταδιακά σταμάτησε να ταυτίζεται με την πραγματοποίηση μαθηματικών υπολογισμών, οι οποίοι, εξάλλου, δεν ήταν απαραίτητοι σε όλους και να επεκτείνεται σημαντικά. Εφαρμογές όπως η επεξεργασία κειμένου έβαλαν τη γραφομηχανή στο ράφι και σιγά-σιγά η τυπογραφία, η σχεδίαση και άλλες εφαρμογές που μπορούσαν να κινήσουν την αγορά, απέκτησαν ως εργαλείο αυτό που σήμερα θεωρείται αυτονόητο: τον ηλεκτρονικό υπολογιστή. Τα δίκτυα υπολογιστών, ιδιαίτερα όταν βγήκαν από το χώρο των στρατιωτικών εφαρμογών, έδωσαν μια νέα δυνατότητα στον «προσωπικό υπολογιστή»: να μοιράζεται τη δουλειά. Με τον τρόπο αυτό έγινε δυνατός ο διαχωρισμός της διαχείρισης των δεδομένων από τη χρήση τους και αναπτύχθηκε το μοντέλο client-server (ελληνική απόδοση: «πελάτη-εξυπηρετητή»). Η πραγματική επανάσταση, ωστόσο, ήρθε με το διαδίκτυο. Το Internet προσέφερε την υποδομή τα πάντα (δηλαδή κάθε είδους εργασία) να μοιράζονται οπουδήποτε (δηλαδή σε υπολογιστικούς πόρους που βρίσκονται «κάπου» στο διαδίκτυο). Η δυνατότητα αυτή χρειάστηκε να επωαστεί για σχετικά μεγάλο χρονικό διάστημα μέχρι να φτάσουμε να μιλάμε για αυτό που σήμερα ονομάζουμε «cloud». Το «σύννεφο» είναι ένα πρακτικά απειροσύνολο υπολογιστικών πόρων η πραγματική υπόσταση των οποίων γίνεται αδιάφορη προς τους χρήστες τους, με τρόπο που ο καθένας 74 I ΣΤΟΙΧΕΙΑ ΤΕΧΝΟΛΟΓΙΑΣ ΛΟΓΙΣΜΙΚΟΥ ΒΑΣΙΛΕΙΟΣ ΒΕΣΚΟΥΚΗΣ

μπορεί να χρησιμοποιεί πόρους που δεν θα μπορούσε να αποκτήσει ποτέ ο ίδιος. Έτσι, μπορεί κανείς να έχει εικονικούς υπολογιστές, δίκτυα, αποθήκευση κ.ά., χωρίς να απασχολείται με τη φυσική υπόστασή τους και τους κάθε είδους περιορισμούς και απαιτήσεις αυτής. Αυτό μας επιτρέπει να μιλάμε για υπηρεσίες και όχι μόνο για εφαρμογές λογισμικού. Γνώση υποδομής για τις υπηρεσίες αυτές είναι οι αρχιτεκτονικές διατάξεις λογισμικού. ΕΝΟΤΗΤΑ 3.1. Η ΕΝΝΟΙΑ ΤΗΣ ΔΙΑΤΑΞΗΣ ΛΟΓΙΣΜΙΚΟΥ Ακολούθως θα εισάγουμε την έννοια της αρχιτεκτονικής διάταξης ή σκέτο διάταξης λογισμικού. Ο όρος «διάταξη» αποδίδει στην ελληνική το αγγλικό «deployment». Θα παρουσιαστούν τέσσερα μοντέλα διατάξεων: το μονολιθικό μοντέλο, το μοντέλο πελάτη-εξυπηρετητή (client-server), το τριμερές μοντέλο (3-tier), καθώς και ένα γενικευμένο μοντέλο πολλαπλής διάταξης (multi-tier). Διάταξη λογισμικού Διάταξη λογισμικού (software deployment) είναι η κατάτμηση μιας εφαρμογής σε ανεξάρτητα λειτουργικά τμήματα και η ανάθεση αυτών σε διατιθέμενους υπολογιστικούς πόρους (συστήματα, επεξεργαστές). Με βάση τον παραπάνω ορισμό, με τον όρο «διάταξη» αναφερόμαστε στην γενική αρχιτεκτονική του λογισμικού. Σε αρκετές περιπτώσεις, χρησιμοποιείται σκέτος ο όρος «αρχιτεκτονική», ιδιαίτερα εκεί όπου το λογισμικό θεωρείται από εξωτερική σκοπιά και όχι από αυτή του κατασκευαστή. Ακολούθως θα αναφερόμαστε στη γενική αρχιτεκτονική με τον όρο «διάταξη», και στην εσωτερική αρχιτεκτονική, στην οποία ήδη αναφερθήκαμε, με τον όρο «αρχιτεκτονική». Ο ορισμός των διατάξεων που θα ακολουθήσει θα βασιστεί στην κατηγοριοποίηση των εργασιών που μπορεί να κάνει μια εφαρμογή λογισμικού 75 I ΣΤΟΙΧΕΙΑ ΤΕΧΝΟΛΟΓΙΑΣ ΛΟΓΙΣΜΙΚΟΥ ΒΑΣΙΛΕΙΟΣ ΒΕΣΚΟΥΚΗΣ

όπως φαίνεται στο Σχήμα 3.1. Η κατηγοριοποίηση αυτή έχει γίνει γενικά αποδεκτή στην κοινότητα του λογισμικού. Διακρίνονται τρία είδη εργασιών: οι εργασίες παρουσίασης, οι εργασίες διαχείρισης δεδομένων και οι εργασίες επιχειρησιακής λογικής. 76 I ΣΤΟΙΧΕΙΑ ΤΕΧΝΟΛΟΓΙΑΣ ΛΟΓΙΣΜΙΚΟΥ ΒΑΣΙΛΕΙΟΣ ΒΕΣΚΟΥΚΗΣ

Σχήμα 3.1 Μια διάκριση των εργασιών που κάνει μια εφαρμογή λογισμικού. Παρουσίαση Διεπαφές χρήστη και εξωτερικών συστηµάτων λογισµικού Διαχείριση δεδοµένων Αποθήκευση και ανάκτηση δεδοµένων Επιχειρησιακή λογική Λειτουργίες που υλοποιεί η εφαρµογή 77 I ΣΤΟΙΧΕΙΑ ΤΕΧΝΟΛΟΓΙΑΣ ΛΟΓΙΣΜΙΚΟΥ ΒΑΣΙΛΕΙΟΣ ΒΕΣΚΟΥΚΗΣ

Ως εργασίες παρουσίασης ορίζονται όλες οι εργασίες που σχετίζονται με την επικοινωνία του συστήματος με το χρήστη και με εξωτερικές συσκευές και συστήματα, δηλαδή οι εργασίες που υλοποιούν τις διεπαφές του λογισμικού με το περιβάλλον του. Οι εργασίες διαχείρισης δεδομένων είναι εκείνες που ασχολούνται με την αποθήκευση και ανάκτηση των δεδομένων. Τέλος, οι εργασίες επιχειρησιακής λογικής (business logic) είναι όλες οι που υλοποιούν τις ιδιαίτερες λειτουργικές απαιτήσεις κάθε εφαρμογής λογισμικού. Η διάκριση αυτή απαιτεί μια αυστηρότητα στον ορισμό των μονάδων λογισμικού, η οποία είναι ιδιαίτερα σημαντική: Μια μονάδα λογισμικού η οποία εκτελεί έναν υπολογισμό (εργασία επιχειρησιακής λογικής) δε θα πρέπει να στέλνει η ίδια το αποτέλεσμά του σε καμία συσκευή εισόδου/εξόδου (διεπαφή, εργασία παρουσίασης). Αντίστοιχα, μια μονάδα που διαχειρίζεται δεδομένα δεν πρέπει να εκτελεί καμία υπολογιστική εργασία σε αυτά, όσο ελκυστική και αν φαίνεται μια τέτοια ιδέα κατά τη στιγμή του προγραμματισμού. Η πειθαρχία αυτή συχνά συγκρούεται με θέματα όπως ελαχιστοποίηση χρήσης μνήμης ή επιδόσεις. Ωστόσο, αποδίδει σχεδόν πάντα το κόστος της, καθώς κάνει ευκολότερη τη συντήρηση και επαναχρησιμοποίηση του λογισμικού. ΕΝΟΤΗΤΑ 3.2. ΤΥΠΙΚΕΣ ΔΙΑΤΑΞΕΙΣ ΛΟΓΙΣΜΙΚΟΥ 3.2.1. Η μονολιθική διάταξη Η απλούστερη διάταξη λογισμικού είναι η μονολιθική (Σχήμα 3.2). Σε αυτήν, ολόκληρη η εφαρμογή τρέχει σε ένα και μόνο υπολογιστικό σύστημα. Η διάταξη αυτή είναι κατάλληλη για μικρές εφαρμογές με σχετικά περιορισμένες απαιτήσεις και λειτουργίες και, όπως είναι αναμενόμενο, υπήρξε η διάταξη που για μεγάλο χρονικό διάστημα χρησιμοποιήθηκε στους προσωπικούς υπολογιστές. 78 I ΣΤΟΙΧΕΙΑ ΤΕΧΝΟΛΟΓΙΑΣ ΛΟΓΙΣΜΙΚΟΥ ΒΑΣΙΛΕΙΟΣ ΒΕΣΚΟΥΚΗΣ

Σχήμα 3.2 Η μονολιθική διάταξη λογισμικού. Εξυπηρετητής δεδοµένων (Database server) 79 I ΣΤΟΙΧΕΙΑ ΤΕΧΝΟΛΟΓΙΑΣ ΛΟΓΙΣΜΙΚΟΥ ΒΑΣΙΛΕΙΟΣ ΒΕΣΚΟΥΚΗΣ

Ο συμβολισμός που χρησιμοποιείται στο 3.2 αναφέρεται ως «διάγραμμα διάταξης λογισμικού» (deployment diagram) και περιγράφει την ανάθεση τμημάτων της εφαρμογής σε υπολογιστικούς πόρους. Τα τμήματα αυτά συμβολίζονται με ένα τρισδιάστατο παραλληλεπίπεδο σκιασμένο όπως στο σχήμα, στην μπροστινή πλευρά του οποίου αναγράφεται η ονομασία κάθε τμήματος. Στο διάγραμμα διάταξης γίνεται αναλυτική αναφορά στην Ενότητα 9.2. 3.2.2. Η διάταξη πελάτη-εξυπηρετητή Η αύξηση των απαιτήσεων από το λογισμικό, της πολυπλοκότητας, αλλά και του όγκου των δεδομένων που διαχειρίζεται μια εφαρμογή, κατέστησαν την μονολιθική διάταξη ανεπαρκή για την ικανοποίηση πολλών απαιτήσεων. Παράλληλα, η ανάπτυξη των συστημάτων διαχείρισης σχεσιακών βάσεων δεδομένων, αλλά και των δικτύων, επέτρεψαν την εξέλιξη της μονολιθικής διάταξης σε αυτή του πελάτη-εξυπηρετητή (client-server). 80 I ΣΤΟΙΧΕΙΑ ΤΕΧΝΟΛΟΓΙΑΣ ΛΟΓΙΣΜΙΚΟΥ ΒΑΣΙΛΕΙΟΣ ΒΕΣΚΟΥΚΗΣ

Σχήμα 3.3 Η διάταξη πελάτη-εξυπηρετητή. Εξυπηρετητής δεδομένων (Database server) Πελάτης (Client) διαχείρισης δεδομένων 81 I ΣΤΟΙΧΕΙΑ ΤΕΧΝΟΛΟΓΙΑΣ ΛΟΓΙΣΜΙΚΟΥ ΒΑΣΙΛΕΙΟΣ ΒΕΣΚΟΥΚΗΣ

Στο Σχήμα 3.3 φαίνεται το διάγραμμα διάταξης πελάτη-εξυπηρετητή. Οι εργασίες που σχετίζονται με τη διαχείριση δεδομένων ανατίθενται σε ένα ξεχωριστό τμήμα της εφαρμογής, το οποίο τρέχει συνήθως σε ένα αφιερωμένο στη διαχείριση δεδομένων υπολογιστικό σύστημα. Οι εργασίες παρουσίασης και επιχειρησιακής λογικής τρέχουν σε ένα άλλο τμήμα, το οποίο επικοινωνεί μέσω δικτύου με τον εξυπηρετητή ζητώντας του την παροχή σχετικών με δεδομένα υπηρεσιών. Η ιδέα, πρωτοποριακή για την εποχή της, έλυσε το πρόβλημα των ολοένα και μεγαλύτερων υπολογιστικών απαιτήσεων από τα γιγαντωμένα μονολιθικά συστήματα οι οποίες μεγάλωναν μαζί με τον αριθμό των χρηστών αλλά και την πολυπλοκότητα των εργασιών που εκτελούσαν. Με τον καιρό διάφορα προβλήματα της διάταξης αυτής αναδείχτηκαν. Το σημαντικότερο εντοπίζεται στην ανάγκη συντήρησης όλων των συστημάτων πελάτη (τα οποία μπορούσαν να είναι πολυάριθμα) καθώς συνέβαιναν οποιεσδήποτε μεταβολές στο επίπεδο της επιχειρησιακής λογικής. Επίσης, όσο μεγάλωνε η πολυπλοκότητα των λειτουργιών, τόσο περισσότερο τα συστήματα όπου έτρεχαν τα συστήματα πελάτη αποδεικνύονταν ανεπαρκή από πλευράς υπολογιστικής ισχύος. 3.2.3. Η τριμερής διάταξη Εμφανίστηκαν, λοιπόν, νέες εκδοχές της διάταξης πελάτη-εξυπηρετητή που διαχωρίζουν ακόμη περισσότερο τις λειτουργίες του λογισμικού. Το τμήμα λογισμικού «πελάτης» ελαφρύνεται και μένει μόνο με την ευθύνη της παρουσίασης, ενώ εμφανίζεται και ένας δεύτερος τύπος εξυπηρετητή, ο εξυπηρετητής εφαρμογών, ο οποίος κάνει τις εργασίες του επιπέδου της επιχειρησιακής λογικής. Η διάταξη αναφέρεται σαν «τριμερής» (3-tier) και εικονίζεται στο Σχήμα 3.4. 82 I ΣΤΟΙΧΕΙΑ ΤΕΧΝΟΛΟΓΙΑΣ ΛΟΓΙΣΜΙΚΟΥ ΒΑΣΙΛΕΙΟΣ ΒΕΣΚΟΥΚΗΣ

Σχήμα 3.4 Η τριμερής διάταξη λογισμικού. Διαχείριση υπηρεσιών μέσω web - εξυπηρετητής web (web / application server) διαχείρισης δεδομένων επικοινωνίας εφαρμογών Διαχείριση δεδομένων (Data management) διαχείρισης δεδομένων Επιχειρησιακή λογική (Business Logic) 83 I ΣΤΟΙΧΕΙΑ ΤΕΧΝΟΛΟΓΙΑΣ ΛΟΓΙΣΜΙΚΟΥ ΒΑΣΙΛΕΙΟΣ ΒΕΣΚΟΥΚΗΣ

Στην περίπτωση αυτή, ο πελάτης χαρακτηρίζεται ως «ελαφρύς» (thin client) ακριβώς διότι κάνει λιγότερα πράγματα απ ότι στην αρχική εκδοχή της διάταξης πελάτη-εξυπηρετητή. Τα συστήματα των εξυπηρετητών δεδομένων και εφαρμογών είναι συνήθως μεγάλα κεντρικά υπολογιστικά συστήματα. Τα προβλήματα της διάταξης πελάτη-εξυπηρετητή περιορίζονται, διότι οι απαιτήσεις συντήρησης των πελατών υφίστανται μόνον όταν συμβαίνουν μεταβολές στο επίπεδο της παρουσίασης, χωρίς, πάντως, να σταματήσουν να υπάρχουν. Το σχήμα μπορεί να υλοποιηθεί πάνω από οποιοδήποτε δίκτυο, χωρίς τη χρήση πρωτοκόλλων τα οποία να είναι συμβατά με πρότυπα. Η ιδέα αποκτά μεγαλύτερο ενδιαφέρον όταν μεταφέρεται στο διαδίκτυο, είτε πραγματικά ως υλοποίηση, είτε χρησιμοποιώντας τεχνολογίες διαδικτύου μέσα σε τοπικό δίκτυο, όπως συζητείται στη συνέχεια. 3.2.4. Η πολυμερής διάταξη Το επόμενο αναμενόμενο βήμα, είναι η αφαίρεση και της αρμοδιότητας της παρουσίασης από τον πελάτη και η ανάθεσή της σε έναν εξυπηρετητή παρουσίασης. Η ιδέα του εξυπηρετητή παρουσίασης γεννήθηκε με την εμφάνιση του παγκοσμίου ιστού και του Internet και έγινε δυνατή με την ανάπτυξη τεχνολογιών που επιτρέπουν την αλληλεπίδραση μεταξύ του web server και του συνδεδεμένου σε αυτόν πελάτη (browser). Το πρόγραμμα πλοήγησης ή «φυλομετρητής» όπως έχει ατυχώς αποδοθεί στην ελληνική ο όρος «browser», έχει εξελιχθεί σε ένα πλήρες περιβάλλον στο οποίο μια εικονική μηχανή προσφέρει πολύ περισσότερες από υπηρεσίες παρουσίασης, με την έννοια της απλής εμφάνισης περιεχομένου στην οθόνη του χρήστη. Σήμερα είναι δυνατή κάθε είδους αλληλεπίδραση του χρήστη με τον browser, με κάθε συσκευή που είναι διαθέσιμη στον υπολογιστή: πληκτρολόγιο, ποντίκι, κάμερα, κ.λπ. Η διάταξη ονομάστηκε πολυμερής (multitier) ή βασισμένη-στο-web (web based) και εμφανίζεται στο Σχήμα 3.5. 84 I ΣΤΟΙΧΕΙΑ ΤΕΧΝΟΛΟΓΙΑΣ ΛΟΓΙΣΜΙΚΟΥ ΒΑΣΙΛΕΙΟΣ ΒΕΣΚΟΥΚΗΣ

Σχήμα 3.5 Μια πολυμερής διάταξη λογισμικού. Πελάτης - λογισμικό φυλομετρητή (web browser) διαδικτύου Διαχείριση υπηρεσιών μέσω web - εξυπηρετητής web (web / application server) Διαχείριση δεδομένων (Data management) διαχείρισης δεδομένων επικοινωνίας εφαρμογών Επιχειρησιακή λογική (Business Logic) 85 I ΣΤΟΙΧΕΙΑ ΤΕΧΝΟΛΟΓΙΑΣ ΛΟΓΙΣΜΙΚΟΥ ΒΑΣΙΛΕΙΟΣ ΒΕΣΚΟΥΚΗΣ

Τα τμήματα της εφαρμογής λογισμικού διατάσσονται με τρόπο που όλες οι εργασίες των τριών κατηγοριών (παρουσίασης, διαχείρισης δεδομένων και επιχειρησιακής λογικής) εκτελούνται σε έναν ή περισσότερους για κάθε κατηγορία εξυπηρετητές. Οι τεχνολογίες που χρησιμοποιούνται για την υλοποίηση τέτοιων αρχιτεκτονικών στο διαδίκτυο διακρίνονται σε αυτές που αφορούν την πλευρά του πελάτη (client-side), την πλευρά του εξυπηρετητή (server-side) και τα πρωτόκολλα παροχής υπηρεσιών πάνω από το web (web services). Ο εξυπηρετητής παρουσίασης δεν είναι παρά ένας εξυπηρετητής web (web server). Ο πελάτης δεν απαιτείται να διαθέτει κανένα τμήμα της εφαρμογής παρά μόνο τη δυνατότητα επικοινωνίας με τον web server, δηλαδή μια δικτυακή σύνδεση και ένα πρόγραμμα πλοήγησης στο web (browser). Για το λόγο αυτό ο πελάτης αναφέρεται και ως «web client». Τα προβλήματα ανάγκης συντήρησης των συστημάτων των πελατών εκμηδενίζονται, δημιουργούνται, όμως, άλλα, αυτά της ταχύτητας και της ασφάλειας των δικτυακών συνδέσεων, η αναφορά στα οποία είναι εκτός της εμβέλειας του παρόντος. Η πολυμερής διάταξη εφαρμογών μπορεί να γίνει ιδιαίτερα σύνθετη: μία συγκεκριμένη εφαρμογή μπορεί να συντίθεται από τμήματα που βρίσκονται διάσπαρτα στο τοπικό δίκτυο ή το Internet και μάλιστα μπορούν περισσότερα του ενός τμήματα να προσφέρουν υπηρεσίες της ίδιας κατηγορίας. Για παράδειγμα, μπορούμε να έχουμε περισσότερους από έναν εξυπηρετητές διαχείρισης δεδομένων, επιχειρησιακής λογικής ή παρουσίασης. Επίσης, μια εφαρμογή μπορεί να λαμβάνει υπηρεσίες από άλλες εφαρμογές οι οποίες μπορούν με τη σειρά τους να είναι πολυμερείς ως προς την αρχιτεκτονική. Στην περίπτωση αυτή όλες οι υπηρεσίες που προσφέρονται πάνω από το διαδίκτυο τόσο αυτές που η μία εφαρμογή προσφέρει στην άλλη, όσο και αυτές που προσφέρονται στον τελικό πελάτη, χρησιμοποιούν δικτυακά πρωτόκολλα όπως το HTTP. Μια τέτοια περίπτωση φαίνεται στο Σχήμα 3.6 που ακολουθεί. 86 I ΣΤΟΙΧΕΙΑ ΤΕΧΝΟΛΟΓΙΑΣ ΛΟΓΙΣΜΙΚΟΥ ΒΑΣΙΛΕΙΟΣ ΒΕΣΚΟΥΚΗΣ

Σχήμα 3.6 Μια πολυμερής αρχιτεκτονική διάταξη λογισμικού πάνω από το διαδίκτυο. Πελάτης - λογισμικό φυλομετρητή (web browser) διαδικτύου Διαχείριση υπηρεσιών μέσω web - εξυπηρετητής web (web / application server) επικοινωνίας εφαρμογών Διαχείριση δεδομένων (Data management) διαχείρισης δεδομένων Επιχειρησιακή λογική (Business Logic) διαδικτύου web / application server 2 επικοινωνίας εφαρμογών Διαχείριση δεδομένων (Data management) διαχείρισης δεδομένων Επιχειρησιακή λογική (Business Logic) 87 I ΣΤΟΙΧΕΙΑ ΤΕΧΝΟΛΟΓΙΑΣ ΛΟΓΙΣΜΙΚΟΥ ΒΑΣΙΛΕΙΟΣ ΒΕΣΚΟΥΚΗΣ

ΒΙΒΛΙΟΓΡΑΦΊΑ Booch, G., Object-Oriented Analysis and Design with Applications, Addison-Wesley. Martin J., Odell J., Object-Oriented Analysis and Design, Prentice Hall. Pressman, R. S., Software Engineering-A Practitioners Approach, McGraw-Hill. Sommerville, I. Software Engineering. London: Addison-Wesley. 88 I ΣΤΟΙΧΕΙΑ ΤΕΧΝΟΛΟΓΙΑΣ ΛΟΓΙΣΜΙΚΟΥ ΒΑΣΙΛΕΙΟΣ ΒΕΣΚΟΥΚΗΣ