Τι είναι το SOA; Εξυπηρέτηση προσανατολισμένη ArchiΑρχές δομής

Τι είναι το SOA (Service Oriented Archiδομή);

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

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

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

Προσανατολισμένο στις υπηρεσίες ArchiΑρχές tecture (SOA).

Υπάρχουν 9 τύποι αρχών σχεδιασμού SOA που αναφέρονται παρακάτω

1. Τυποποιημένη σύμβαση παροχής υπηρεσιών

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

2. Χαλαρή σύζευξη

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

3. Αφαίρεση υπηρεσιών

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

4. Επαναχρησιμοποίηση υπηρεσίας

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

5. Αυτονομία εξυπηρέτησης

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

6. Υπηρεσιακή ανιθαγένεια

Στην ιδανική περίπτωση, οι υπηρεσίες θα πρέπει να είναι ανιθαγενείς. Αυτό σημαίνει ότι οι υπηρεσίες δεν πρέπει να αποκρύπτουν πληροφορίες από το ένα κράτος στο άλλο. Αυτό θα πρέπει να γίνει είτε από την εφαρμογή πελάτη. Ένα παράδειγμα μπορεί να είναι μια παραγγελία που έγινε σε έναν ιστότοπο αγορών. Τώρα μπορείτε να έχετε μια υπηρεσία web που σας δίνει την τιμή ενός συγκεκριμένου αντικειμένου. Ωστόσο, εάν τα προϊόντα προστεθούν σε ένα καλάθι αγορών και η ιστοσελίδα πλοηγηθεί στη σελίδα όπου πραγματοποιείτε την πληρωμή, η ευθύνη της τιμής του προϊόντος που θα μεταφερθεί στη σελίδα πληρωμής δεν θα πρέπει να βαρύνει την υπηρεσία web. Αντίθετα, πρέπει να γίνει από την εφαρμογή web.

7. Ανιχνευσιμότητα υπηρεσίας

Οι υπηρεσίες μπορούν να εντοπιστούν (συνήθως σε ένα μητρώο υπηρεσιών). Το έχουμε ήδη δει αυτό στην έννοια του UDDI, το οποίο εκτελεί ένα μητρώο που μπορεί να περιέχει πληροφορίες σχετικά με την υπηρεσία Ιστού.

8. Συνθεσιμότητα υπηρεσιών

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

9. Service Interoperaευελιξία

Οι υπηρεσίες θα πρέπει να χρησιμοποιούν πρότυπα που επιτρέπουν σε διάφορους συνδρομητές να χρησιμοποιούν την υπηρεσία. Στις υπηρεσίες web, πρότυπα όπως XML και η επικοινωνία μέσω HTTP χρησιμοποιείται για να διασφαλιστεί ότι συμμορφώνεται με αυτήν την αρχή.