Υπηρεσιοστρεφής Αρχιτεκτονική SOA (Service Oriented Architecture) Χρήστος Ηλιούδης
Πλεονεκτήματα των Υπηρεσιών Ιστού Διαλειτουργικότητα: Η χαλαρή σύζευξή τους οδηγεί στην ανάπτυξη ευέλικτου λογισμικού στα κατανεμημένα πληροφοριακά περιβάλλοντα. Ενσωμάτωση: Επιτρέπουν την εύκολη και γρήγορη ενσωμάτωση μειώνοντας σημαντικά το κόστος ανάπτυξης λογισμικού. Επεκτασιμότητα: Έχουν την δυνατότητα εκσυγχρονισμού πληροφοριακών συστημάτων που έχουν δημιουργηθεί με παλαιές τεχνολογίες. Επαναχρησιμοποίηση: Μπορούν να επαναχρησιμοποιηθούν και να βελτιστοποιηθούν με ευκολία ενσωματώνοντας νέα χαρακτηριστικά. 2
Πλεονεκτήματα των Υπηρεσιών Ιστού (2) Αναβάθμιση: Περιέχουν την περιγραφή στο εσωτερικό τους οπότε είναι εύκολο να χρησιμοποιηθούν από πληροφοριακά συστήματα και να τα αναβαθμίσουν. Οι υπηρεσίες ιστού χρησιμοποιούν υπάρχοντα πρότυπα για την ανάπτυξή τους. Απλοποιούν την ενσωμάτωση συστημάτων μεταξύ εταιριών (Business to Business Integration). Εισάγουν νέα δεδομένα στην δημιουργία εταιρικών μοντέλων. Μπορούν να συγκεντρώσουν με χαμηλό κόστος τις επιχειρηματικές διαδικασίες σε ένα κοινό σημείο πρόσβασης.. 3
Τα μειονεκτήματα των υπηρεσιών ιστού Βρίσκονται ακόμη σε μεταβατικό στάδιο και δεν έχουν ωριμάσει. Χρησιμοποιούν μεγάλη ποσότητα δεδομένων στην ανταλλαγή μηνυμάτων. Τα μηνύματα αποτελούνται από μπλοκ XML και μεταδίδονται σε αυτή τη μορφή. Δε χρησιμοποιείται η δυαδική μέθοδος που είναι αρκετά πιο γρήγορη 4
Η Αρχιτεκτονική των Υπηρεσιών Ιστού Service provider: Ο πάροχος μιας υπηρεσίας εφαρμόζει μία διεργασία και την καθιστά διαθέσιμη στο διαδίκτυο. Service requestor: Ο αιτών μίας υπηρεσίας στην ουσία είναι ένας client ή μία υπηρεσία που χρησιμοποιεί μία άλλη στέλνοντάς της ένα αίτημα. Service registry: Μία υπηρεσία μητρώου είναι ένας κοινός κεντρικός χώρος που περιέχει μία λίστα από υπηρεσίες ιστού που έχουν δημιουργήσει εταιρίες ή οργανισμοί. 5
Η Αρχιτεκτονική των Υπηρεσιών ο ρόλος του service requestor βρίσκεται ενδιάμεσα στους άλλους δύο έχοντας την ικανότητα να αιτείται δεδομένα και πληροφορίες από ένα service provider, αλλά και να καλεί μία υπηρεσία από ένα registry service. Ιστού 6
αρχιτεκτονική των υπηρεσιών ιστού : πρότυπα Επίπεδο μεταφοράς (Transport layer): Το επίπεδο αυτό είναι υπεύθυνο για τη μεταφοράς των μηνυμάτων μεταξύ των υπηρεσιών. Τα πρωτόκολλα που χρησιμοποιούνται είναι το HTTP, το SMPT και το FTP. Επίπεδο επίκλησης (Invocation layer): Το επίπεδο αυτό είναι υπεύθυνο για την σύνταξη των μηνυμάτων της υπηρεσίας χρησιμοποιώντας το κοινό πρότυπο της XML. Η κάψουλα μεταφοράς των μηνυμάτων όμως και η δομική μονάδα των υπηρεσιών ιστού είναι το Simple Object Access Protocol SOAP. 7
αρχιτεκτονική των υπηρεσιών ιστού : πρότυπα Επίπεδο περιγραφής (Description layer): Στο επίπεδο αυτό περιγράφεται η λειτουργία που εφαρμόζει μία υπηρεσία ιστού μέσω της περιγραφικής γλώσσας υπηρεσιών ιστού WSDL. Επίπεδο διαδικασίας (Process layer): Στο επίπεδο αυτό βρίσκονται περισσότερες από μία υπηρεσίες ιστού. Μία από αυτές είναι η ανακάλυψη (discovery) μιας υπηρεσίας που γίνεται μέσω του προτύπου UDDI (Universal Description Discovery Integration). 8
Επίπεδα Αρχιτεκτονικής υπηρεσιών ιστού 9
Υπηρεσιοστρεφής Αρχιτεκτονική SOA (Service Oriented Architecture) Η υπηρεσιοστρεφής αρχιτεκτονική είναι ένα είδος αρχιτεκτονικής που έχει ως στόχο την δημιουργία λογισμικού μέσω υπηρεσιών που είναι διαθέσιμες σε κάποιο δίκτυο όπως το web. Η βασική φιλοσοφία αυτής της αρχιτεκτονικής είναι η χαλαρή σύζευξη μεταξύ των τμημάτων λογισμικού έτσι ώστε να μπορούν να επαναχρησιμοποιηθούν. 10
SOA - εφαρμογές Οι εφαρμογές που χρησιμοποιούνται στην αρχιτεκτονική έχουν δημιουργηθεί σύμφωνα με τα πρότυπα μιας υπηρεσίας ιστού. 11
Επαναχρησιμοποίηση υπηρεσιών Η SOA υιοθετεί το προτέρημα της επαναχρησιμοποίησης μιας υπηρεσίας ιστού που μπορεί να δημιουργηθεί από μια υπάρχουσα υποδομή ενός πληροφοριακού συστήματος. Επιτρέπει δηλαδή στις επιχειρήσεις και τους οργανισμούς να επαναχρησιμοποιήσουν υπάρχουσες εφαρμογές διαφορετικών τεχνολογιών και ετερογενών εφαρμογών. 12
Για να επιτευχθεί αυτό αρχικά είναι σημαντικό να παρέχεται ένας αφηρημένος (abstract) προσδιορισμός της υπηρεσίας ιστού, περιέχοντας τις απαραίτητες λεπτομέρειες ώστε οποιαδήποτε υπηρεσία ή client θελήσει να τη χρησιμοποιήσει και να την δεσμεύσει (bind), να μπορεί να το πράξει με τον καταλληλότερο τρόπο 13
H λειτουργία αυτή υποστηρίζεται από την προδιαγραφή WSDL. Ύστερα κάθε πάροχος μιας υπηρεσίας (service provider) πρέπει να δημοσιεύσει (publish) τις λεπτομέρειες της έτσι ώστε εκείνοι που θέλουν να τις χρησιμοποιήσουν να μπορούν να καταλάβουν ακριβέστερα τι κάνουν 14
Η πλευρά που αιτείται τη χρήση μιας υπηρεσίας ιστού (service requestors) θα πρέπει να έχει κάποιο τρόπο να βρει (find) ποιες υπηρεσίες είναι διαθέσιμες που ικανοποιούν τις ανάγκες της. Για να γίνει επομένως ορθά η διαδικασία της δημοσίευσης, της δέσμευσης και της εύρεσης μιας υπηρεσίας τα πρότυπα θα πρέπει να καθοριστούν με τέτοιο τρόπο ώστε να εξυπηρετούν την παραπάνω διαδικασία 15
Ο δίαυλος υπηρεσιών ιστού UDDI (Universal Description Discovery & Integration) 2. Κοινοποίηση Υπηρεσίας σε ένα Registry 3. Αναζήτηση πιθανών πάροχων Υπηρεσίας 4. Λίστα παρόχων Υπηρεσίας και Περιγραφής 6. Αίτηση Υπηρεσίας Προμηθευτής Υπηρεσίας 7. Παροχή Υπηρεσίας Αιτών Υπηρεσίας 1. Ανάπτυξη Υπηρεσίας Ιστού 5. Ανάπτυξη Εφαρμογής & Σύνδεση στην Υπηρεσία 16