Αρχές SOA (Αρχιτεκτονική προσανατολισμένη στις υπηρεσίες)

Anonim

Η αρχιτεκτονική προσανατολισμένη στις υπηρεσίες (SOA) είναι ένα αρχιτεκτονικό μοτίβο στη σχεδίαση λογισμικού υπολογιστών στο οποίο τα στοιχεία εφαρμογών παρέχουν υπηρεσίες σε άλλα στοιχεία μέσω ενός πρωτοκόλλου επικοινωνίας, συνήθως μέσω ενός δικτύου. Οι αρχές του προσανατολισμού των υπηρεσιών είναι ανεξάρτητες από οποιοδήποτε προϊόν, προμηθευτή ή τεχνολογία.

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

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

Το SOA βασίζεται σε ορισμένες βασικές αρχές που αναφέρονται παρακάτω

  1. Τυποποιημένη σύμβαση παροχής υπηρεσιών - Οι υπηρεσίες τηρούν μια περιγραφή υπηρεσίας. Μια υπηρεσία πρέπει να έχει κάποιο είδος περιγραφής που να περιγράφει ποια είναι η υπηρεσία. Αυτό διευκολύνει τις εφαρμογές πελατών να κατανοήσουν τι κάνει η υπηρεσία.
  1. Loose Coupling - Λιγότερη εξάρτηση μεταξύ τους. Αυτό είναι ένα από τα κύρια χαρακτηριστικά των υπηρεσιών Ιστού που δηλώνει απλώς ότι θα πρέπει να υπάρχει όσο το δυνατόν λιγότερη εξάρτηση μεταξύ των υπηρεσιών Ιστού και του πελάτη που επικαλείται την υπηρεσία Ιστού. Επομένως, εάν η λειτουργικότητα της υπηρεσίας αλλάξει ανά πάσα στιγμή, δεν θα πρέπει να σπάσει την εφαρμογή πελάτη ή να την σταματήσει να λειτουργεί.
  1. Service Abstraction - Οι υπηρεσίες αποκρύπτουν τη λογική που περικλείουν από τον έξω κόσμο. Η υπηρεσία δεν πρέπει να εκθέτει τον τρόπο με τον οποίο εκτελεί τη λειτουργικότητά της. θα πρέπει απλώς να ενημερώσει την εφαρμογή πελάτη για το τι κάνει και όχι για το πώς το κάνει.
  1. Service Reusability - Η λογική χωρίζεται σε υπηρεσίες με σκοπό τη μεγιστοποίηση της επαναχρησιμοποίησης. Σε οποιαδήποτε αναπτυξιακή εταιρεία η επαναχρησιμοποίηση είναι ένα μεγάλο θέμα γιατί προφανώς δεν θα θέλαμε να ξοδέψουμε χρόνο και προσπάθεια δημιουργώντας τον ίδιο κώδικα ξανά και ξανά σε πολλές εφαρμογές που τις απαιτούν. Ως εκ τούτου, μόλις γραφτεί ο κωδικός για μια διαδικτυακή υπηρεσία, θα πρέπει να έχει τη δυνατότητα να λειτουργεί με διάφορους τύπους εφαρμογών.
  1. Υπηρεσία Αυτονομία - Οι υπηρεσίες πρέπει να έχουν τον έλεγχο της λογικής που ενσωματώνουν. Η υπηρεσία γνωρίζει τα πάντα σχετικά με τη λειτουργικότητα που προσφέρει και ως εκ τούτου πρέπει επίσης να έχει πλήρη έλεγχο του κώδικα που περιέχει.
  1. Service Statelessness - Στην ιδανική περίπτωση, οι υπηρεσίες πρέπει να είναι απάτριδες. Αυτό σημαίνει ότι οι υπηρεσίες δεν πρέπει να αποκρύπτουν πληροφορίες από το ένα κράτος στο άλλο. Αυτό θα πρέπει να γίνει είτε από την εφαρμογή πελάτη. Ένα παράδειγμα μπορεί να είναι μια παραγγελία που πραγματοποιείται σε έναν ιστότοπο αγορών. Τώρα μπορείτε να έχετε μια διαδικτυακή υπηρεσία που σας δίνει την τιμή ενός συγκεκριμένου αντικειμένου. Εάν όμως τα στοιχεία προστίθενται σε ένα καλάθι αγορών και η ιστοσελίδα μεταβεί στη σελίδα όπου πραγματοποιείτε την πληρωμή, η ευθύνη της τιμής του αντικειμένου που θα μεταφερθεί στη σελίδα πληρωμής δεν πρέπει να γίνει από την υπηρεσία ιστού. Αντ 'αυτού, πρέπει να γίνει από την εφαρμογή Ιστού.
  1. Ανακάλυψη υπηρεσίας - Οι υπηρεσίες μπορούν να εντοπιστούν (συνήθως σε μητρώο υπηρεσιών). Αυτό το έχουμε ήδη δει στην έννοια του UDDI, το οποίο εκτελεί ένα μητρώο το οποίο μπορεί να διατηρεί πληροφορίες σχετικά με την υπηρεσία διαδικτύου.
  1. Συνθεσιμότητα υπηρεσιών - Οι υπηρεσίες σπάνε τα μεγάλα προβλήματα σε λίγα προβλήματα. Κάποιος δεν πρέπει ποτέ να ενσωματώσει όλες τις λειτουργίες μιας εφαρμογής σε μία μόνο υπηρεσία, αλλά αντ 'αυτού, να χωρίσει την υπηρεσία σε ενότητες το καθένα με ξεχωριστή επιχειρησιακή λειτουργικότητα.
  1. Διαλειτουργικότητα υπηρεσίας - Οι υπηρεσίες πρέπει να χρησιμοποιούν πρότυπα που επιτρέπουν σε διαφορετικούς συνδρομητές να χρησιμοποιούν την υπηρεσία. Στις υπηρεσίες Ιστού, χρησιμοποιούνται πρότυπα όπως XML και επικοινωνία μέσω HTTP για να διασφαλιστεί ότι συμμορφώνεται με αυτήν την αρχή.