N Tier (Multi-Tier), 3-Tier, 2-Tier Archiδομή με ΠΑΡΑΔΕΙΓΜΑ
⚡ Έξυπνη Σύνοψη
Η αρχιτεκτονική N-Tier, που ονομάζεται επίσης αρχιτεκτονική πολλαπλών επιπέδων, κατανέμει μια εφαρμογή σε τρία ή περισσότερα ξεχωριστά επίπεδα, όπως παρουσίαση, επιχειρηματική λογική και δεδομένα. Αυτό το μοντέλο βελτιώνει την επεκτασιμότητα, την ασφάλεια και την επαναχρησιμοποίηση για εφαρμογές client-server σε επίπεδο επιχείρησης.

Τι είναι το N-Tier;
An Εφαρμογή N-Tier πρόγραμμα είναι αυτό που κατανέμεται μεταξύ τριών ή περισσότερων χωριστών υπολογιστών σε ένα κατανεμημένο δίκτυο.
Η πιο κοινή μορφή n-tier είναι η 3-tier Application και ταξινομείται σε τρεις κατηγορίες.
- Προγραμματισμός διεπαφής χρήστη στον υπολογιστή του χρήστη
- Επιχειρηματική λογική σε έναν πιο κεντρικό υπολογιστή και
- Απαιτούμενα δεδομένα σε έναν υπολογιστή που διαχειρίζεται μια βάση δεδομένων.
Αυτό το μοντέλο αρχιτεκτονικής παρέχει στους προγραμματιστές λογισμικού έναν τρόπο να δημιουργούν επαναχρησιμοποιήσιμες εφαρμογές/συστήματα με μέγιστη ευελιξία.
In N-tier, "N" αναφέρεται σε έναν αριθμό επιπέδων ή στρώσεων που χρησιμοποιούνται, όπως – 2 επιπέδων, 3 επιπέδων ή 4 επιπέδων κ.λπ. Ονομάζεται επίσης "Πολυεπίπεδο Archiδομή".
Η αρχιτεκτονική n-tier είναι ένα μοντέλο αρχιτεκτονικής λογισμικού που έχει δοκιμαστεί στον κλάδο. Είναι κατάλληλο για την υποστήριξη εφαρμογών client-server σε επίπεδο επιχείρησης, παρέχοντας λύσεις για επεκτασιμότητα, ασφάλεια, ανοχή σφαλμάτων, επαναχρησιμοποίηση και συντηρησιμότητα. Βοηθά τους προγραμματιστές να δημιουργούν ευέλικτες και επαναχρησιμοποιήσιμες εφαρμογές.
N-Tier Archiδομή
Μια διαγραμματική αναπαράσταση ενός συστήματος n-tier απεικονίζει εδώ – επίπεδα παρουσίασης, εφαρμογής και βάσης δεδομένων.

Αυτά τα τρία στρώματα μπορούν να υποδιαιρεθούν περαιτέρω σε διαφορετικά υποστρώματα ανάλογα με τις απαιτήσεις.
Μερικές από τις δημοφιλείς ιστοσελίδες που έχουν εφαρμόσει αυτήν την αρχιτεκτονική είναι:
- MakeMyTrip.com
- Επιχειρηματική εφαρμογή Sales Force
- Ινδικοί Σιδηρόδρομοι – IRCTC
- Amazon.com, κ.λπ.
Μερικοί συνηθισμένοι όροι που πρέπει να θυμάστε, ώστε να κατανοήσετε καλύτερα την έννοια:
- Κατανεμημένο Δίκτυο: Πρόκειται για μια αρχιτεκτονική δικτύου όπου τα στοιχεία που βρίσκονται στους υπολογιστές του δικτύου συντονίζονται και επικοινωνούν τις ενέργειές τους μόνο μέσω της μετάδοσης μηνυμάτων. Πρόκειται για μια συλλογή πολλαπλών συστημάτων που βρίσκονται σε διαφορετικούς κόμβους, αλλά εμφανίζονται στον χρήστη ως ένα ενιαίο σύστημα.
- Παρέχει ένα ενιαίο δίκτυο επικοινωνίας δεδομένων το οποίο μπορεί να διαχειρίζεται χωριστά από διαφορετικά δίκτυα.
- Ένα παράδειγμα Κατανεμημένου Δικτύου - όπου διαφορετικοί πελάτες είναι συνδεδεμένοι εντός αρχιτεκτονικής LAN από τη μία πλευρά και από την άλλη πλευρά είναι συνδεδεμένοι με διακόπτες υψηλής ταχύτητας μαζί με ένα rack διακομιστών που περιέχουν κόμβους υπηρεσιών.
- Διακομιστή-πελάτη Archiδομή: Είναι ένα μοντέλο αρχιτεκτονικής όπου ο πελάτης (ένα πρόγραμμα) ζητά μια υπηρεσία από έναν διακομιστή (ένα άλλο πρόγραμμα), δηλαδή είναι μια υπηρεσία αιτήματος-απόκρισης που παρέχεται μέσω διαδικτύου ή μέσω intranet. Σε αυτό το μοντέλο, Πελάτης θα χρησιμεύσει ως ένα σύνολο προγράμματος/κώδικα που εκτελεί ένα σύνολο ενεργειών μέσω του δικτύου. Ενώ διακομιστή, από την άλλη πλευρά, είναι ένα σύνολο ενός άλλου προγράμματος, το οποίο στέλνει τα σύνολα αποτελεσμάτων στο σύστημα πελάτη όπως ζητήθηκε.
- Σε αυτό, ο υπολογιστής-πελάτης παρέχει μια διεπαφή σε έναν τελικό χρήστη για να ζητήσει μια υπηρεσία ή έναν πόρο από έναν διακομιστή και, από την άλλη πλευρά, ο διακομιστής επεξεργάζεται το αίτημα και εμφανίζει το αποτέλεσμα στον τελικό χρήστη.
- Ένα παράδειγμα Μοντέλου Πελάτη-Διακομιστή – ένα μηχάνημα ΑΤΜ. Μια τράπεζα είναι ο διακομιστής για την επεξεργασία της εφαρμογής εντός των μεγάλων βάσεων δεδομένων πελατών και το μηχάνημα ΑΤΜ είναι ο πελάτης που διαθέτει μια διεπαφή χρήστη με κάποια απλή επεξεργασία εφαρμογών.
- Πλατφόρμα: Στην επιστήμη των υπολογιστών ή στη βιομηχανία λογισμικού, μια πλατφόρμα είναι ένα σύστημα στο οποίο μπορεί να εκτελεστεί ένα πρόγραμμα εφαρμογής. Αποτελείται από έναν συνδυασμό υλικού και λογισμικού που έχει ενσωματωμένες οδηγίες για έναν επεξεργαστή/μικροεπεξεργαστή για την εκτέλεση συγκεκριμένων λειτουργιών.
- Με πιο απλά λόγια, η πλατφόρμα είναι ένα σύστημα ή μια βάση όπου οποιαδήποτε εφαρμογή μπορεί να εκτελεστεί για να επιτύχει μια συγκεκριμένη εργασία.
- Ένα παράδειγμα πλατφόρμας – Ένα προσωπικό μηχάνημα φορτωμένο με Windows 2000 ή Mac OS X ως παραδείγματα 2 διαφορετικών πλατφορμών.
- Βάση δεδομένων: Είναι μια συλλογή πληροφοριών με οργανωμένο τρόπο ώστε να είναι εύκολη η πρόσβαση, η διαχείριση και η ενημέρωση.
- Παραδείγματα βάσεων δεδομένων – MySQL, SQL Διακομιστής και Oracle Database είναι μερικές κοινές βάσεις δεδομένων.
Τύποι N-Tier Archiτεχνολογίες
Υπάρχουν διάφοροι τύποι N-Tier Archiτεχνολογίες, όπως 3-επίπεδο Architecture, 2-Tier Archiδομή και 1-Tier Archiδομή.
Πρώτα, θα δούμε 3-tier Archiδομή, η οποία είναι πολύ σημαντική.
3-Tier Archiδομή
Βλέποντας το παρακάτω διάγραμμα, μπορείτε εύκολα να το αναγνωρίσετε Αρχιτεκτονική 3 επιπέδων έχει τρία διαφορετικά στρώματα.
- Επίπεδο παρουσίασης
- Επίπεδο επιχειρησιακής λογικής
- Επίπεδο βάσης δεδομένων

Εδώ έχουμε πάρει ένα απλό παράδειγμα μιας φόρμας μαθητή για να κατανοήσουμε και τα τρία αυτά επίπεδα. Περιέχει πληροφορίες για έναν μαθητή όπως – Όνομα, Διεύθυνση, Email και Φωτογραφία.
Επίπεδο διεπαφής χρήστη ή επίπεδο παρουσίασης
Επίπεδο παρουσίασης
private void DataGrid1_SelectedIndexChanged(object sender, System.EventArgs e) { // Object of the Property layer clsStudent objproperty=new clsStudent(); // Object of the business layer clsStudentInfo objbs=new clsStudentInfo(); // Object of the dataset in which we receive the data sent by the business layer DataSet ds=new DataSet(); // here we are placing the value in the property using the object of the //property layer objproperty.id=int.Parse(DataGridl.SelectedItem.Cells[1].Text.ToString()); // In this following code we are calling a function from the business layer and // passing the object of the property layer which will carry the ID till the database. ds=objbs.GetAllStudentBsIDWise(objproperty); // What ever the data has been returned by the above function into the dataset //is being populate through the presentation laye. txtId.Text=ds.Tables[0].Rows[0][0].ToString(); txtFname.Text=ds.Tables[0].Rows[0][1].ToString(); txtAddress.Text=ds.Tables[0].Rows[0][2].ToString(); txtemail.Text=ds.Tables[0].Rows[0][3].ToString();
Code εξήγηση
- Ο παραπάνω κώδικας ορίζει τον βασικό σχεδιασμό μιας προβολής front-end εφαρμογών καθώς και την κλήση των συναρτήσεων άλλων επιπέδων, ώστε να μπορούν να ενσωματωθούν μεταξύ τους.
Επίπεδο πρόσβασης επιχειρήσεων –
Αυτή είναι η συνάρτηση του επιχειρηματικού επιπέδου που δέχεται τα δεδομένα από το επίπεδο εφαρμογής και τα μεταβιβάζει στο επίπεδο δεδομένων.
- Η επιχειρηματική λογική λειτουργεί ως διεπαφή μεταξύ του επιπέδου πελάτη και του επιπέδου πρόσβασης δεδομένων.
- Όλη η επιχειρηματική λογική – όπως η επικύρωση δεδομένων, οι υπολογισμοί, η εισαγωγή/τροποποίηση δεδομένων – γράφεται στο επίπεδο επιχειρηματικής λογικής.
- Κάνει την επικοινωνία ταχύτερη και ευκολότερη μεταξύ του πελάτη και του επιπέδου δεδομένων.
- Καθορίζει μια σωστή δραστηριότητα ροής εργασίας που είναι απαραίτητη για την ολοκλήρωση μιας εργασίας.
// this is the function of the business layer which accepts the data from the //application layer and passes it to the data layer. public class clsStudentInfo { public DataSet GetAllStudentBsIDWise(clsStudent obj) { DataSet ds=new DataSet(); ds=objdt.getdata_dtIDWise(obj);// Calling of Data layer function return ds; } }
Επεξήγηση κώδικα
Ο κώδικας χρησιμοποιεί τη συνάρτηση του επιχειρηματικού επιπέδου, το οποίο θα δεχτεί τα δεδομένα για το επίπεδο εφαρμογής και θα τα μεταβιβάσει στο επίπεδο δεδομένων. Οι κώδικες του επιχειρηματικού επιπέδου λειτουργούν ως μεσολαβητές μεταξύ των συναρτήσεων που ορίζονται στο επίπεδο παρουσίασης και στο επίπεδο δεδομένων και καλούν τις συναρτήσεις αντίστροφα.
Επίπεδο πρόσβασης δεδομένων
Αυτή είναι η συνάρτηση επιπέδου δεδομένων, η οποία λαμβάνει τα δεδομένα από το επιχειρηματικό επίπεδο και εκτελεί την απαραίτητη λειτουργία στη βάση δεδομένων.
// this is the datalayer function which is receiving the data from the business //layer and performing the required operation into the database public class clsStudentData // Data layer class { // object of property layer class public DataSet getdata_dtIDUise(clsStudent obj) { DataSet ds; string sql; sql="select * from student where Studentld=" +obj.id+ "order by Studentld; ds=new DataSet(); //this is the datalayer function which accepts the sql query and performs the //corresponding operation ds=objdt.ExecuteSql(sql); return ds; } }
Επεξήγηση κώδικα
Ο κώδικας που ορίζεται στο παραπάνω επίπεδο συνόλου δεδομένων δέχεται ολόκληρο το αίτημα, που ζητείται από το σύστημα, και εκτελεί τις απαιτούμενες λειτουργίες στη βάση δεδομένων.
2-Tier Archiδομή
Είναι σαν την αρχιτεκτονική Client-Server, όπου η επικοινωνία λαμβάνει χώρα μεταξύ πελάτη και διακομιστή.
Σε αυτόν τον τύπο αρχιτεκτονικής λογισμικού, το επίπεδο παρουσίασης ή το επίπεδο διεπαφής χρήστη εκτελείται στην πλευρά του πελάτη, ενώ το επίπεδο συνόλου δεδομένων εκτελείται και αποθηκεύεται στην πλευρά του διακομιστή.
Δεν υπάρχει επίπεδο επιχειρηματικής λογικής ή ενδιάμεσο επίπεδο μεταξύ πελάτη και διακομιστή.
Single Tier ή 1-Tier Archiδομή
Είναι η απλούστερη, καθώς ισοδυναμεί με την εκτέλεση της εφαρμογής σε έναν προσωπικό υπολογιστή. Όλα τα απαραίτητα στοιχεία για την εκτέλεση μιας εφαρμογής βρίσκονται σε μία μόνο εφαρμογή ή διακομιστή.
Το επίπεδο παρουσίασης, το επίπεδο επιχειρηματικής λογικής και το επίπεδο δεδομένων βρίσκονται όλα σε ένα μόνο μηχάνημα.
Πλεονεκτήματα και μειονεκτήματα του Multi-Tier Archiτεχνολογίες
Όπως κάθε επιλογή σχεδιασμού, η πολυεπίπεδη προσέγγιση προσφέρει σαφή οφέλη μαζί με μερικά μειονεκτήματα, τα οποία συνοψίζονται παρακάτω.
| Πλεονεκτήματα | Μειονεκτήματα |
|---|---|
| Απεριόριστες δυνατότητες | Αύξηση της Προσπάθειας |
| ημερομηνία Integrity | Αύξηση της πολυπλοκότητας |
| Επαναχρησιμοποίηση | |
| Μειωμένη Διανομή | |
| Βελτιωμένη ασφάλεια | |
| Βελτιωμένη Διαθεσιμότητα |
Ως εκ τούτου, είναι μέρος ενός προγράμματος που κρυπτογραφεί επιχειρηματικά προβλήματα του πραγματικού κόσμου και καθορίζει πώς τα δεδομένα μπορούν να ενημερωθούν, να δημιουργηθούν, να αποθηκευτούν ή να αλλάξουν για να ολοκληρωθεί η εργασία.
N-Tier Architecture Tips and Development
Λαμβάνοντας υπόψη ότι οι επαγγελματίες λογισμικού πρέπει να έχουν τον πλήρη έλεγχο όλων των επιπέδων της αρχιτεκτονικής, παρακάτω δίνονται συμβουλές για την αρχιτεκτονική n-tier:
- Προσπαθήστε να αποσυνδέσετε τα επίπεδα μεταξύ τους όσο το δυνατόν περισσότερο χρησιμοποιώντας μια τεχνική όπως το SOAP XML.
- Χρησιμοποιήστε ορισμένα αυτοματοποιημένα εργαλεία για να δημιουργήσετε έναν χάρτηping μεταξύ ενός επιπέδου επιχειρηματικής λογικής και ενός επιπέδου σχεσιακής βάσης δεδομένων (επίπεδο δεδομένων). Εργαλεία που μπορούν να βοηθήσουν στη μοντελοποίηση αυτών των χαρτώνping τεχνικές είναι το Entity Framework και το Hibernate για .Net, κ.λπ.
- Στο επίπεδο παρουσίασης του πελάτη, τοποθετήστε τον κοινό κώδικα για όλους τους πελάτες σε ξεχωριστή βιβλιοθήκη όσο το δυνατόν περισσότερο. Αυτό θα μεγιστοποιήσει την επαναχρησιμοποίηση του κώδικα για όλους τους τύπους πελατών.
- Ένα επίπεδο κρυφής μνήμης μπορεί να προστεθεί σε ένα υπάρχον επίπεδο για να επιταχύνει την απόδοση.

