N Tier (Multi-Tier), 3-Tier, 2-Tier Archiδομή με ΠΑΡΑΔΕΙΓΜΑ

Τι είναι το N-Tier;

An Εφαρμογή N-Tier πρόγραμμα είναι αυτό που κατανέμεται μεταξύ τριών ή περισσότερων χωριστών υπολογιστών σε ένα κατανεμημένο δίκτυο.

Η πιο κοινή μορφή n-tier είναι η 3-tier Application και ταξινομείται σε τρεις κατηγορίες.

  • Προγραμματισμός διεπαφής χρήστη στον υπολογιστή του χρήστη
  • Επιχειρηματική λογική σε έναν πιο κεντρικό υπολογιστή και
  • Απαιτούμενα δεδομένα σε έναν υπολογιστή που διαχειρίζεται μια βάση δεδομένων.

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

In N-tier, "N" αναφέρεται σε έναν αριθμό βαθμίδων ή επιπέδων που χρησιμοποιούνται όπως - 2 επιπέδων, 3 επιπέδων ή 4 επιπέδων κ.λπ. Ονομάζεται επίσης "Πολυεπίπεδο Archiδομή».

Η αρχιτεκτονική n-tier είναι ένα αποδεδειγμένο στη βιομηχανία μοντέλο αρχιτεκτονικής λογισμικού. Είναι κατάλληλο για την υποστήριξη εφαρμογών πελάτη-διακομιστή σε επίπεδο επιχείρησης παρέχοντας λύσεις σε επεκτασιμότητα, ασφάλεια, ανοχή σφαλμάτων, επαναχρησιμοποίηση και δυνατότητα συντήρησης. Βοηθά τους προγραμματιστές να δημιουργήσουν ευέλικτες και επαναχρησιμοποιήσιμες εφαρμογές.

N-Tier Archiδομή

Μια διαγραμματική αναπαράσταση ενός συστήματος n-tier απεικονίζει εδώ – επίπεδα παρουσίασης, εφαρμογής και βάσης δεδομένων.

N-Tier Archiδομή
Ν Βαθμίδα Archiδιάγραμμα δομής

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

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

  • MakeMyTrip.com
  • Επιχειρηματική εφαρμογή Sales Force
  • Ινδικοί Σιδηρόδρομοι – IRCTC
  • Amazon.com, κ.λπ.

Μερικοί κοινοί όροι που πρέπει να θυμάστε, ώστε να κατανοήσετε την έννοια πιο ξεκάθαρα.

  • Κατανεμημένο Δίκτυο: Είναι μια αρχιτεκτονική δικτύου, όπου τα στοιχεία που βρίσκονται σε υπολογιστές δικτύου συντονίζουν και επικοινωνούν τις ενέργειές τους μόνο περνώντας μηνύματα. Είναι μια συλλογή πολλαπλών συστημάτων που βρίσκονται σε διαφορετικούς κόμβους αλλά εμφανίζονται στο χρήστη ως ένα ενιαίο σύστημα.
    • Παρέχει ένα ενιαίο δίκτυο επικοινωνίας δεδομένων το οποίο μπορεί να διαχειρίζεται χωριστά από διαφορετικά δίκτυα.
    • Ένα παράδειγμα Κατανεμημένου Δικτύου – όπου διαφορετικοί πελάτες συνδέονται εντός της αρχιτεκτονικής LAN στη μία πλευρά και στην άλλη πλευρά συνδέονται με διακόπτες υψηλής ταχύτητας μαζί με ένα ράφι διακομιστών που περιέχει κόμβους υπηρεσίας.
  • Διακομιστή-πελάτη Archiδομή: Είναι ένα μοντέλο αρχιτεκτονικής όπου ο πελάτης (ένα πρόγραμμα) ζητά μια υπηρεσία από έναν διακομιστή (άλλο πρόγραμμα) δηλαδή Είναι μια υπηρεσία απόκρισης αιτήματος που παρέχεται μέσω Διαδικτύου ή μέσω ενδοδικτύου. Σε αυτό το μοντέλο, Πελάτης θα χρησιμεύσει ως ένα σύνολο προγράμματος/κώδικα που εκτελεί ένα σύνολο ενεργειών μέσω του δικτύου. Ενώ διακομιστή, από την άλλη πλευρά, είναι ένα σύνολο ενός άλλου προγράμματος, το οποίο στέλνει τα σύνολα αποτελεσμάτων στο σύστημα πελάτη όπως ζητήθηκε.
    • Σε αυτό, ο υπολογιστής-πελάτης παρέχει μια διεπαφή σε έναν τελικό χρήστη για να ζητήσει μια υπηρεσία ή έναν πόρο από έναν διακομιστή και, από την άλλη πλευρά, ο διακομιστής επεξεργάζεται το αίτημα και εμφανίζει το αποτέλεσμα στον τελικό χρήστη.
    • Ένα παράδειγμα μοντέλου πελάτη-διακομιστή – μηχανή ΑΤΜ. Μια τράπεζα είναι ο διακομιστής για την επεξεργασία της εφαρμογής μέσα στις μεγάλες βάσεις δεδομένων πελατών και το μηχάνημα ATM είναι ο πελάτης που έχει διεπαφή χρήστη με κάποια απλή επεξεργασία εφαρμογής.
  • Πλατφόρμα: Στην επιστήμη των υπολογιστών ή στη βιομηχανία λογισμικού, μια πλατφόρμα είναι ένα σύστημα στο οποίο μπορούν να εκτελεστούν προγράμματα εφαρμογών. Αποτελείται από έναν συνδυασμό υλικού και λογισμικού που έχουν μια ενσωματωμένη οδηγία για έναν επεξεργαστή/μικροεπεξεργαστή να εκτελεί συγκεκριμένες λειτουργίες.
    • Με πιο απλά λόγια, η πλατφόρμα είναι ένα σύστημα ή μια βάση όπου οποιεσδήποτε εφαρμογές μπορούν να τρέξουν και να εκτελεστούν για να αποκτήσουν μια συγκεκριμένη εργασία.
    • Ένα παράδειγμα πλατφόρμας – Ένα προσωπικό μηχάνημα φορτωμένο με Windows 2000 ή Mac OS X ως παραδείγματα 2 διαφορετικών πλατφορμών.
  • Βάση δεδομένων: Είναι μια συλλογή πληροφοριών με οργανωμένο τρόπο ώστε να είναι εύκολη η πρόσβαση, η διαχείριση και η ενημέρωση.
    • Παραδείγματα βάσεων δεδομένων – MySQL, SQL Διακομιστής και Oracle Database είναι μερικά κοινά Db.

Τύποι N-Tier Archiτεχνολογίες

Υπάρχουν διάφοροι τύποι N-Tier Archiτεχνολογίες, όπως 3-επίπεδο Architecture, 2-Tier Architecture και 1- Tier Archiδομή.

Πρώτα, θα δούμε 3-tier Archiδομή, η οποία είναι πολύ σημαντική.

3-Tier Archiδομή

Βλέποντας το παρακάτω διάγραμμα, μπορείτε εύκολα να το αναγνωρίσετε Αρχιτεκτονική 3 επιπέδων έχει τρία διαφορετικά στρώματα.

  • Επίπεδο παρουσίασης
  • Επίπεδο επιχειρησιακής λογικής
  • Επίπεδο βάσης δεδομένων
3 Tier Archiδιάγραμμα δομής
3 Tier Archiδιάγραμμα δομής

Εδώ έχουμε πάρει ένα απλό παράδειγμα φόρμας μαθητή για να κατανοήσουμε και τα τρία αυτά επίπεδα. Έχει πληροφορίες για έναν μαθητή όπως – Όνομα, Διεύθυνση, Email και Εικόνα.

Επίπεδο διεπαφής χρήστη ή επίπεδο παρουσίασης

3-Tier Archiδομή

Επίπεδο παρουσίασης

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();

Επεξήγηση κώδικα

  • Ο παραπάνω κώδικας ορίζει τη βασική σχεδίαση μιας μπροστινής όψης εφαρμογών καθώς και την κλήση των συναρτήσεων άλλων επιπέδων ώστε να μπορούν να ενσωματωθούν μεταξύ τους.

Επίπεδο πρόσβασης επιχειρήσεων –

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

  • Η επιχειρηματική λογική λειτουργεί ως διεπαφή μεταξύ του επιπέδου πελάτη και του επιπέδου πρόσβασης δεδομένων
  • Όλη η επιχειρηματική λογική – όπως η επικύρωση δεδομένων, οι υπολογισμοί, η εισαγωγή/τροποποίηση δεδομένων γράφονται κάτω από το επίπεδο επιχειρηματικής λογικής.
  • Κάνει την επικοινωνία ταχύτερη και ευκολότερη μεταξύ του πελάτη και του επιπέδου δεδομένων
  • Καθορίζει μια σωστή δραστηριότητα ροής εργασίας που είναι απαραίτητη για την ολοκλήρωση μιας εργασίας.
// 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 δίνονται όπως παρακάτω

  1. Προσπαθήστε να αποσυνδέσετε τα στρώματα από ένα άλλο στρώμα όσο το δυνατόν περισσότερο, χρησιμοποιώντας μια τεχνική όπως το σαπούνι XML.
  2. Χρησιμοποιήστε ορισμένα αυτοματοποιημένα εργαλεία για να δημιουργήσετε μια αντιστοίχιση μεταξύ ενός επιπέδου επιχειρησιακής λογικής και ενός επιπέδου σχεσιακής βάσης δεδομένων (επίπεδο δεδομένων). Τα εργαλεία που μπορούν να βοηθήσουν στη μοντελοποίηση αυτών των τεχνικών χαρτογράφησης είναι – Entity Framework και Hibernate για .Net κ.λπ.
  3. Στο επίπεδο παρουσίασης πελάτη, βάλτε έναν κοινό κωδικό για όλους τους πελάτες σε μια ξεχωριστή βιβλιοθήκη όσο το δυνατόν περισσότερο. Αυτό θα μεγιστοποιήσει την επαναχρησιμοποίηση του κώδικα για όλους τους τύπους πελατών.
  4. Ένα επίπεδο κρυφής μνήμης μπορεί να προστεθεί σε ένα υπάρχον επίπεδο για να επιταχύνει την απόδοση.

Περίληψη

Η αρχιτεκτονική N-tier βοηθά στη διαχείριση όλων των στοιχείων (επιχειρηματικό επίπεδο, επίπεδο παρουσίασης και επίπεδο βάσης δεδομένων) μιας εφαρμογής κάτω από μια στέγη.

Οι εφαρμογές που χρησιμοποιούν μικρό αριθμό χρηστών σε ένα τοπικό δίκτυο μπορούν να επωφεληθούν από την αρχιτεκτονική n-tier.

Αυτός ο αρχιτεκτονικός σχεδιασμός διασφαλίζει τη διατήρηση, την κλιμάκωση και την αποτελεσματική ανάπτυξη μιας εφαρμογής στο Διαδίκτυο.