Περιεχόµενα. 1 Αρχιτεκτονικές µε βάση υπηρεσίες 43. Πρόλογος από τον Steve Mills Πρόλογος από τον Ronald Schmelzer Πρόλογος...

Σχετικά έγγραφα
οικονομικές τάσεις Εκτεταμένη συνεργασία της εφοδιαστικής αλυσίδας. έργου FLUID-WIN το οποίο χρηματοδοτήθηκε από το 6ο Πρόγραμμα Πλαίσιο Παγκόσμιες

Αρχιτεκτονικές κατανεμημένων συστημάτων. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 12

ΙΑΧΕΙΡΙΣΗ ΟΣΟΛΗΨΙΩΝ Να θυµηθούµε:

Υπηρεσιοστρεφής Αρχιτεκτονική SOA (Service Oriented Architecture)

Συστήματα Διοίκησης ΕΙΣΑΓΩΓΗ. Ηλεκτρονικές Συναλλαγές. Καθηγητής Δ. Ασκούνης, Δ. Πανόπουλος

Αρχιτεκτονικές κατανεμημένων συστημάτων. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 12

6. Διαχείριση Έργου. Έκδοση των φοιτητών

Ελληνικό Ανοικτό Πανεπιστήµιο. Η Ανάλυση και ο Σχεδιασµός στην Ενοποιηµένη ιαδικασία. ρ. Πάνος Φιτσιλής

Ανάλυση Απαιτήσεων Απαιτήσεις Λογισµικού

Εισαγωγή. Κατανεµηµένα Συστήµατα 01-1

Μεθοδική Ανάπτυξη Δικτυακής Υποδομής. Παρουσίαση στην ημερίδα για Σύγχρονες τάσεις στις Τηλεπικοινωνίες και Τεχνολογίες Αιχμής

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ

Νίκος Χαριτωνίδης. Πρόλογος

ΕΝΙΑΙΟ ΠΛΑΙΣΙΟ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΠΟΥΔΩΝ

ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΙΟΙΚΗΣΗΣ. Στόχοι

ΟΡΓΑΝΩΣΗ ΚΑΙ ΔΙΟΙΚΗΣΗ ΕΠΙΧΕΙΡΗΣΕΩΝ. Μάθηµα 4ο: Θεµελιώδεις Αρχές και Τεχνικές του

Γενικές Αρχές. Τεχνολογία ικτύων Επικοινωνιών ΙΙ

Διαδικασίες παραγωγής λογισμικού. Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση

Βάσεις Δεδομένων. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

Ενότητα 12 (κεφάλαιο 28) Αρχιτεκτονικές Εφαρμογών

Η συμβολή στην επιτυχία ενός οργανισμού, παρουσιάζοντας σχετικά δεδομένα με τη χρήση τεχνικών 2Δ ή 3Δ τεχνολογίας. Αρμοδιότητα

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

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

ΑΞΙΟΛΟΓΗΣΗ (THE MATRIX)

Περιεχόµενα. Πληροφοριακά Συστήµατα: Κατηγορίες και Κύκλος Ζωής. Π.Σ. ιαχείρισης Πράξεων. Π.Σ. ιοίκησης. Κατηγορίες Π.Σ. Ο κύκλος ζωής Π.Σ.

ΠΑΝΕΠΙΣΤΗΜΙΟ ΣΤΕΡΕΑΣ ΕΛΛΑΔΑΣ- ΤΜΗΜΑ ΠΕΡΙΦΕΡΕΙΑΚΗΣ ΟΙΚΟΝΟΜΙΚΗΣ ΑΝΑΠΤΥΞΗΣ, ΜΑΘΗΜΑ: ΔΙΑΧΕΙΡΙΣΗ ΑΝΘΡΩΠΙΝΩΝ ΚΑΙ ΦΥΣΙΚΩΝ ΠΟΡΩΝ- ΧΡΙΣΤΟΣ ΑΠ.

ΒΕΛΤΙΣΤΟΠΟΙΗΣΤΕ ΤΟ ΕΝΕΡΓΕΙΑΚΟ ΠΑΡΚΟ ΣΑΣ.

ΔΙΑΚΗΡΥΞΗ ΔΗΜΟΠΡΑΣΙΑΣ ΜΕ ΑΡΙΘΜΟ ΔΔ-...

Πλαίσιο Εργασιών. Στρατηγικές Ευκαιρίες

Σχεδιασµός βασισµένος σε συνιστώσες

ΚΕΦΑΛΑΙΟ 17: Web Services Εισαγωγή

Πρωτόκολλα Διαδικτύου

Αρχιτεκτονική Λογισμικού

Διερευνητική μάθηση We are researchers, let us do research! (Elbers and Streefland, 2000)

Πίνακας Περιεχομένων. μέρος A 1 Εισαγωγή στην Τεχνολογία Λογισμικού

Ο ΑΝΤΙΚΤΥΠΟΣ ΤΟΥ ΔΙΑΔΙΚΤΥΑΚΟΥ ΠΕΡΙΕΧΟΜΕΝΟΥ ΣΤΟΝ ΕΛΛΗΝΙΚΟ ΤΟΥΡΙΣΜΟ

Κεφάλαιο 1 ο. Διοίκηση και διαχείριση της ψηφιακής επιχείρησης

ποτελεσματικότητα διαδικασίες sms ταχύτητα οργανόγραμμα ανάθεσηαρχειοθέτηση υτοματοποιημένη εκτέλεση ψηφιακή υπογραφή ISO ενημερώσεις διαγράμματα

Κεφάλαιο 2 ο. Συστήματα Πληροφοριών στην επιχείρηση

Σχεδιαστής Ιστοσελίδων

ΕΠΙΚΟΙΝΩΝΙΑ ΠΡΟΣΩΠΟ ΜΕ ΠΡΟΣΩΠΟ ΑΠΟ ΚΑΘΕ ΣΗΜΕΙΟ ΤΗΣ ΓΗΣ.

* Enterprise Resource Planning ** Customer Relationship Management

RobotArmy Περίληψη έργου

Περιεχόμενα. Κεφάλαιο 2 Κοινωνικοτεχνικά συστήματα 49

Διοίκηση Παραγωγής και Υπηρεσιών

Υπηρεσίες Ιστού (Web Services) ΜΙΧΑΛΗΣ ΜΑΛΙΑΠΠΗΣ

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Rational Unified Process. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική

ΚΕΦΑΛΑΙΟ 1: Τα είδη των Δικτύων Εισαγωγή

Είδη Groupware. Λογισμικό Συνεργασίας Ομάδων (Groupware) Λογισμικό Groupware. Υπάρχουν διάφορα είδη groupware ανάλογα με το αν οι χρήστες εργάζονται:

Προδιαγραφές Απαιτήσεων Επικύρωση Απαιτήσεων

Περίληψη ιπλωµατικής Εργασίας

ΔΙΑΧΕΙΡΙΣΗ ΑΕΙΦΟΡΟΥ ΤΟΥΡΙΣΜΟΥ

Η Oracle ανακοίνωσε την πιο ολοκληρωμένη λύση στον τομέα της Ανάλυσης δεδομένων στο Cloud

Ηλεκτρονικό Εμπόριο. Ενότητα 7: Διαχείριση Εφοδιαστικής Αλυσίδας Σαπρίκης Ευάγγελος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Βελτιώστε την απόδοση, εξασφαλίστε το κέρδος.

Στρατηγικό Σχεδιασµό Πληροφοριακών Συστηµάτων

Αλλάξτε τον τρόπο που κάνετε τη δουλειά σας

Διαδικασίες παραγωγής λογισμικού. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 4

Ολοκληρωµένες λύσεις ERP για κάθε επιχείρηση

Αποµακρυσµένη κλήση διαδικασιών

Ομαδοποίηση των απαιτήσεων του προτύπου ISO Σύστημα ποιότητας Ευθύνη της διοίκησης Διαχείριση πόρων Υλοποίηση του προϊόντος

7.3 Πρωτόκολλο TCP. 1. Το TCP πρωτόκολλο παρέχει υπηρεσίες προσανατολισµένες σε σύνδεση. Σ Λ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ

Ηλεκτρονικό Επιχειρείν & Νέες Τεχνολογίες για Επιχειρηματικότητα ΔΕΟ45

τεχνογνωσία στην πληροφορική

Τεχνική υποστήριξη λογισμικού HP

Πληροφορική 2. Τεχνολογία Λογισμικού

Η-επιχειρείν και συνεργασία σε παγκόσμιο επίπεδο

Μάθηση & Εξερεύνηση στο περιβάλλον του Μουσείου

Ελληνικό Ανοικτό Πανεπιστήµιο. Η ιαχείριση Απαιτήσεων στην Ενοποιηµένη ιαδικασία. ρ. Πάνος Φιτσιλής

Περίληψη Λαμπρόπουλος

Cloud ERP. Αλλάξτε τον τρόπο που κάνετε τη δουλειά σας

Erasmus + Στρατηγικές Συμπράξεις για την Επαγγελματική Εκπαίδευση και Κατάρτιση

Περιβάλλον ithink. Σχήμα 1. ιάγραµµα ελέγχου προσοµοίωσης δραστηριοτήτων

Κεφάλαιο 10 ο Υποπρογράµµατα

Περιεχόμενα. Visio / White paper 1

Συλλογικοί Κατάλογοι & Διαδίκτυο

1. Πρακτικές για κάθε Στάδιο της ιαδικασίας Εθελοντισµού 1.1 Προσέλκυση και Επιλογή Εθελοντών

Σχεδιασμός χωρητικότητας HP NonStop Server

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ

ΜΕΡΟΣ Ι: ΓΕΩΓΡΑΦΙΚΑ Ε ΟΜΕΝΑ ΚΑΙ ΣΥΣΤΗΜΑΤΑ ΓΕΩΓΡΑΦΙΚΩΝ ΠΛΗΡΟΦΟΡΙΩΝ Η ΦΥΣΗ ΤΩΝ ΓΕΩΓΡΑΦΙΚΩΝ Ε ΟΜΕΝΩΝ...

Ηλεκτρονικό Κατάστημα

Εισαγωγή στον Επαγγελματικό Τουρισμό

Συνέντευξη με τον Διευθυντή του Ευρωπαϊκού Οργανισμού για την Ασφάλεια και την Υγεία στην Εργασία, Jukka Takala. Τι σημαίνει εκτίμηση κινδύνου;

ΟΡΓΑΝΩΣΗ ΚΑΙ ΔΙΟΙΚΗΣΗ ΕΠΙΧΕΙΡΗΣΕΩΝ. Κεφάλαιο 1: Εισαγωγή στη Διοίκηση Επιχειρήσεων

Βασικές έννοιες. Κατανεμημένα Συστήματα 1

ίκτυα και Internet στο Επιχειρηματικό Περιβάλλον

Ενότητα 2: Ενθάρρυνση προς ηλικιωμένους για μάθηση της τεχνολογίας

Εισαγωγή στη Σχεδίαση Λογισμικού

Γνωρίστε καλύτερα τους πελάτες σας

Επικοινωνία με μηνύματα. Κατανεμημένα Συστήματα 1

Τεχνολογία Διοίκησης Επιχειρησιακών Διαδικασιών

Το FUTURE Time Traveller έκλεισε ένα χρόνο!

Committed to Excellence

ΥΠΗΡΕΣΙΑ. Ηλεκτρονική ιαχείριση Τάξης. Οδηγίες χρήσης για τον µαθητή.

Αρχιτεκτονική σχεδίαση με ηλεκτρονικό υπολογιστή

Πολιτική Ασφαλείας Δεδομένων Πιστοποίηση ISO 27001:2013 από την TÜV Austria Hellas

Αειφορικός σχεδιασµός & κατασκευή κτιρίων

Διεθνής Πολιτική και Ειδοποίηση περί Απορρήτου της CWT. Τελευταία ενημέρωση Μάιος 2018

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι

Transcript:

Περιεχόµενα Πρόλογος από τον Steve Mills... 21 Πρόλογος από τον Ronald Schmelzer... 23 Πρόλογος... 29 Ευχαριστίες... 31 Σχετικά µε τους συγγραφείς... 33 ΜΕΡΟΣ 1: ΕΙΣΑΓΩΓΗ... 41 1 Αρχιτεκτονικές µε βάση υπηρεσίες 43 1.1 Εικονικές επιχειρήσεις... 44 1.1.1 Βελτιστοποίηση επιχειρηµατικών διαδικασιών... 44 1.1.2 Συνεργασίες, συγχωνεύσεις, και εξαγορές... 46 1.1.3 Κοινή χρήση πόρων... 48

10 Αρχιτεκτονική πλατφόρµας υπηρεσιών Iστού 1.2 Η ανάγκη για χαλαρή σύζευξη...49 1.2.1 Ζητήµατα σχετικά µε τρέχουσες τεχνολογίες κατανεµηµένων συστηµάτων... 49 1.2.2 Πλεονεκτήµατα του µηνυµατοστρεφούς ενδιάµεσου λογισµικού... 50 1.2.3 Μελλοντική εξασφάλιση... 52 1.3 Τι είναι υπηρεσία;...54 1.3.1 Η εξέλιξη των σηµαντικών στοιχείων λογισµικού... 54 1.3.2 Η λογισµική εκδοχή των υπηρεσιών... 56 1.4 Αρχιτεκτονική µε βάση υπηρεσίες...59 1.4.1 Σύνδεση/ ηµοσίευση/εντοπισµός...59 1.4.2 Πλαίσιο εφαρµογών SOA...63 1.5 Σύνοψη...64 2 Υπόβαθρο... 65 2.1 XML...65 2.1.1 Βασικές έννοιες της XML... 65 2.1.2 DTD, σχήµατα XML, και RelaxNG... 67 2.1.3 Χώροι ονοµάτων XML... 68 2.2 Παγκόσµιος Ιστός...70 2.2.1 URI... 71 2.2.2 HTTP... 71 2.2.3 MIME... 72 2.3 Σύνοψη...72 3 Υπηρεσίες Ιστού: Μια υλοποίηση της SOA... 73 3.1 Εµβέλεια της αρχιτεκτονικής...75 3.2 Υπηρεσίες µεταφοράς...78 3.3 Υπηρεσίες ανταλλαγής µηνυµάτων...78 3.3.1 SOAP... 79 3.3.2 ιευθυνσιοδότηση WS... 81 3.4 Περιγραφή υπηρεσιών...82 3.4.1 WSDL... 82 3.4.2 Πολιτική... 83

Περιεχόµενα 11 3.5 Υπηρεσίες εντοπισµού...84 3.5.1 UDDI... 85 3.5.2 Ανταλλαγή µεταδεδοµένων... 86 3.6 Ποιότητα υπηρεσιών...87 3.6.1 Ασφάλεια WS... 87 3.6.2 Αξιόπιστη ανταλλαγή µηνυµάτων... 88 3.6.3 Συναλλαγές... 90 3.7 Συστατικά στοιχεία υπηρεσιών...92 3.7.1 Σύνθεση υπηρεσιών Ιστού... 92 3.8 Συνθετικότητα...93 3.9 ιαλειτουργικότητα...95 3.9.1 WS-Ι... 95 3.10 REST...97 3.10.1 Ο όρος αναπαραστατική στην αρχιτεκτονική REST... 97 3.10.2 Ο όρος µεταφορά κατάστασης στην αρχιτεκτονική REST... 98 3.10.3 οµή διασύνδεσης REST... 98 3.10.4 REST και υπηρεσίες Ιστού... 99 3.11 Εµβέλεια εφαρµοσιµότητας της SOA και των υπηρεσιών Ιστού...100 3.12 Σύνοψη...101 ΜΕΡΟΣ 2: ΠΛΑΙΣΙΟ ΕΡΓΑΣΙΑΣ ΑΝΤΑΛΛΑΓΗΣ ΜΗΝΥΜΑΤΩΝ... 103 4 SOAP...105 4.1 Σύντοµο ιστορικό του SOAP...105 4.2 Αρχιτεκτονικές έννοιες...106 4.2.1 Καθορισµός µερικών όρων... 106 4.2.2 Το µοντέλο επεξεργασίας SOAP... 108 4.2.3 Ρόλοι SOAP... 111 4.2.4 Σφάλµατα SOAP... 115 4.2.5 Έγγραφα και RPC... 116 4.2.6 Μοτίβα ανταλλαγής µηνυµάτων... 117 4.2.7 Συνδέσεις SOAP... 120

12 Αρχιτεκτονική πλατφόρµας υπηρεσιών Iστού 4.3 Προσαρτήµατα SOAP...123 4.4 ιαφορές µεταξύ SOAP 1.1 και 1.2...126 4.5 Σύνοψη...127 5 ιευθυνσιοδότηση υπηρεσιών Ιστού...129 5.1 ιευθυνσιοδότηση υπηρεσιών Ιστού...130 5.2 Αρχιτεκτονικές έννοιες...132 5.2.1 Αναφορές ακραίων σηµείων... 132 5.2.2 Σύγκριση ακραίων σηµείων... 134 5.2.3 Κεφαλίδες πληροφοριών µηνύµατος... 135 5.2.4 Σύνδεση αναφορών ακραίων σηµείων σε µηνύµατα SOAP... 138 5.2.5 Το µοτίβο αίτησης-απόκρισης στη ιευθυνσιοδότηση WS... 140 5.3 Παράδειγµα...142 5.4 Μελλοντικές κατευθύνσεις...144 5.5 Σύνοψη...144 ΜΕΡΟΣ 3: ΠΕΡΙΓΡΑΦΗ ΜΕΤΑ Ε ΟΜΕΝΩΝ... 145 6 Γλώσσα Περιγραφής Υπηρεσιών Ιστού (WSDL)...147 6.1 Ο ρόλος της WSDL σε WS-*/SOA...148 6.2 Ιστορικό...149 6.3 Αρχιτεκτονικές έννοιες...150 6.3.1 Επεκτασιµότητα... 150 6.3.2 Υποστήριξη για πολλά συστήµατα τύπων... 151 6.3.3 Ενοποίηση ανταλλαγής µηνυµάτων και RPC... 151 6.3.4 ιαχωρισµός του τι από το πώς και το πού... 152 6.3.5 Υποστήριξη πολλών πρωτοκόλλων και µηχανισµών µεταφοράς... 152 6.3.6 Καµία σειρά... 153 6.3.7 Καµία σηµασιολογία... 153 6.4 WSDL 1.1...154 6.4.1 οµή της γλώσσας... 154

Περιεχόµενα 13 6.4.2 Βέλτιστες πρακτικές... 162 6.4.3 Προβλήµατα και περιορισµοί... 163 6.5 WSDL v2.0...164 6.5.1 Γενική δοµή της γλώσσας... 164 6.5.2 Επεκτάσεις διασυνδέσεων... 165 6.5.3 Εξάλειψη του <message>... 165 6.5.4 Μοτίβα ανταλλαγής µηνυµάτων... 166 6.5.5 Υπηρεσίες... 166 6.5.6 Λειτουργίες και ιδιότητες... 167 6.6 Μελλοντικές κατευθύνσεις...167 6.7 Σύνοψη...168 7 Πολιτική υπηρεσιών Ιστού...169 7.1 Το κίνητρο για την Πολιτική WS...170 7.2 Αρχιτεκτονικές έννοιες...172 7.2.1 Πλαίσιο εργασίας πολιτικών... 173 7.2.2 Προσάρτηση πολιτικών σε υπηρεσίες Ιστού... 179 7.3 Μελλοντικές κατευθύνσεις...182 7.4 Σύνοψη...183 ΜΕΡΟΣ 4: ΕΝΤΟΠΙΣΜΟΣ ΜΕΤΑ Ε ΟΜΕΝΩΝ... 185 8 Παγκόσµια Περιγραφή, Εντοπισµός, και Ενοποίηση (UDDI)...187 8.1 Ρόλος του UDDI στη SOA και τη Στοίβα WS...188 8.1.1 Χρήση του UDDI κατά τη σχεδίαση και την ανάπτυξη... 188 8.1.2 Χρήση του UDDI κατά το χρόνο εκτέλεσης... 189 8.2 Το κίνητρο για το UDDI...189 8.3 Αρχιτεκτονικές έννοιες...190 8.3.1 Μοντέλο δεδοµένων UDDI V3... 190 8.3.2 UDDI και WSDL... 194 8.3.3 UDDI και WS-Policy... 198 8.3.4 Αρχιτεκτονική UDDI V3 και API... 200 8.3.5 Νέες λειτουργίες του UDDI V3... 204

14 Αρχιτεκτονική πλατφόρµας υπηρεσιών Iστού 8.4 Μελλοντικές κατευθύνσεις...211 8.4.1 Τυποποίηση της γλώσσας ταξινοµίας... 211 8.4.2 Σηµασιολογική αναζήτηση... 211 8.4.3 Ασφάλεια µε βάση τα στιγµιότυπα... 212 8.5 Σύνοψη...212 9 Ανταλλαγή µεταδεδοµένων υπηρεσιών Ιστού...213 9.1 Αρχιτεκτονικές έννοιες...215 9.1.1 Επεκτασιµότητα των διαλέκτων µεταδεδοµένων... 215 9.1.2 Χρήση έµµεσης αναφοράς: Αναφορές και θέσεις µεταδεδοµένων... 216 9.1.3 Λειτουργίες αίτησης µεταδεδοµένων... 217 9.1.4 Προεπιλεγµένη σύνδεση πρωτοκόλλου... 221 9.2 Μελλοντικές κατευθύνσεις...222 9.3 Σύνοψη...222 ΜΕΡΟΣ 5: ΑΞΙΟΠΙΣΤΗ ΑΛΛΗΛΕΠΙ ΡΑΣΗ... 225 10 Αξιόπιστη ανταλλαγή µηνυµάτων...227 10.1 Κίνητρα για αξιόπιστη ανταλλαγή µηνυµάτων...228 10.1.1 Το δίκτυο είναι αξιόπιστο... 228 10.1.2 Η καθυστέρηση είναι µηδενική... 229 10.1.3 Υπάρχει µόνο ένας διαχειριστής... 230 10.2 Σενάρια αξιόπιστης ανταλλαγής µηνυµάτων...231 10.2.1 Αποθήκευση και προώθηση... 231 10.2.2 Παράθυρο δέσµης... 231 10.2.3 Αποκατάσταση αστοχιών... 232 10.2.4 Συναλλαγές µεγάλης διάρκειας... 232 10.3 Αρχιτεκτονικές έννοιες...233 10.4 Μοντέλο επεξεργασίας...234 10.4.1 Κύκλος ζωής ακολουθίας... 236 10.4.2 Βασική σύνταξη... 238

Περιεχόµενα 15 10.4.3 Στοιχείο Sequence... 238 10.4.4 Στοιχείο SequenceAcknowledgement... 240 10.4.5 Στοιχείο AckRequested... 242 10.4.6 Στοιχείο SequenceFault... 242 10.4.7 Υποστήριξη σηµασιολογίας παράδοσης... 243 10.4.8 Ισχυρισµοί πολιτικής... 244 10.4.9 Χρονικό όριο αδράνειας... 244 10.4.10 ιάστηµα αναµετάδοσης... 245 10.4.11 ιάστηµα επιβεβαίωσης... 245 10.4.12 Βασικό προφίλ Αξιόπιστης Ανταλλαγής Μηνυµάτων WS... 245 10.5 Πλεονεκτήµατα και αδυναµίες...246 10.6 Παραδείγµατα...247 10.7 Μελλοντικές κατευθύνσεις...253 10.8 Σύνοψη...253 11 Συναλλαγές...255 11.1 Ρόλος των συναλλαγών σε υπηρεσίες Ιστού/SOA...256 11.2 Κίνητρο για τις συναλλαγές...258 11.2.1 Κλασικές συναλλαγές... 258 11.2.2 Επιχειρηµατικές συναλλαγές... 262 11.3 Αρχιτεκτονικές έννοιες...266 11.3.1 Ορισµός αρχιτεκτονικών όρων των συναλλαγών... 266 11.3.2 Υπηρεσίες και πρωτόκολλα... 268 11.4 Παράδειγµα...286 11.4.1 Σενάριο ταξιδιωτικού πράκτορα µε τη χρήση ατοµικής συναλλαγής... 286 11.4.2 Σενάριο ταξιδιωτικού πράκτορα µε χρήση επιχειρηµατικής δραστηριότητας... 290 11.5 Σύνοψη...296

16 Αρχιτεκτονική πλατφόρµας υπηρεσιών Iστού ΜΕΡΟΣ 6: ΑΣΦΑΛΕΙΑ... 299 12 Ασφάλεια...301 12.1 Ένα παράδειγµα: Υπηρεσίες Ιστού ταξιδιωτικών πρακτόρων...303 12.2 Ρόλοι της ασφάλειας στις υπηρεσίες Ιστού...304 12.3 Κίνητρο για τη χρήση της Ασφάλειας WS...306 12.4 Ασφάλεια από άκρο σε άκρο υπό την παρουσία ενδιάµεσων...307 12.5 Συνδυασµός πολλών περιοχών ασφάλειας...309 12.6 Σύντοµο ιστορικό...310 12.7 Αρχιτεκτονικές έννοιες...311 12.8 Μοντέλο επεξεργασίας...314 12.8.1 Υπογραφή XML... 314 12.8.2 Κρυπτογράφηση XML... 316 12.9 Συνδυασµός των στοιχείων...316 12.9.1 Το βασικό µοντέλο... 317 12.9.2 Μοντέλο µε ενδιάµεσο... 319 12.9.3 Σχέσεις εµπιστοσύνης... 320 12.10 ιαλειτουργικότητα...322 12.10.1 Βασικό Προφίλ Ασφάλειας... 322 12.11 Μελλοντικές κατευθύνσεις...324 12.12 Σύνοψη...325 13 Προχωρηµένα θέµατα ασφάλειας...327 13.1 Εµπιστοσύνη WS...328 13.1.1 Εντός ζώνης... 332 13.1.2 Εκτός ζώνης... 332 13.2 Ασφαλής Συνδιάλεξη WS...333 13.3 Ιδιωτικό Απόρρητο WS...334 13.4 Οµοσπονδία WS...335 13.5 Εξουσιοδότηση WS...337

Περιεχόµενα 17 13.6 Μοντέλο εξουσιοδότησης υπηρεσιών Ιστού...338 13.7 Ασφάλεια και πολιτική...339 13.8 Μοντέλο ισχυρισµών...340 13.9 Άλλα θέµατα ασφάλειας...341 13.9.1 Κρυπτογραφία δηµοσίου κλειδιού... 341 13.10 Μη-απάρνηση...342 13.10.1 Ακεραιότητα δεδοµένων και πιστοποίηση προέλευσης... 343 13.10.2 Απόδειξη προέλευσης µηνύµατος... 345 13.10.3 Απόδειξη παραλαβής µηνύµατος... 346 13.10.4 Παράδοση απόδειξης παραλαβής µηνύµατος... 347 13.11 Σύνοψη...347 ΜΕΡΟΣ 7: ΣΥΝΘΕΣΗ ΥΠΗΡΕΣΙΩΝ... 349 14 Μοντελοποίηση επιχειρηµατικών διαδικασιών: BPEL...351 14.1 Κίνητρο για την BPEL...353 14.1.1 Ένα σύντοµο ιστορικό... 354 14.2 Αρχιτεκτονικές έννοιες...355 14.2.1 Επισκόπηση του µοντέλου σύνθεσης διαδικασιών... 356 14.2.2 Αφηρηµένες και εκτελέσιµες διαδικασίες... 359 14.2.3 Αναδροµική σύνθεση µε βάση τον τύπο... 360 14.2.4 Κύκλος ζωής στιγµιοτύπου διαδικασίας... 365 14.2.5 Χειρισµός συµβάντων... 368 14.2.6 Αντιµετώπιση έκτακτων καταστάσεων... 368 14.2.7 Επεκτασιµότητα και ρόλος των πολιτικών υπηρεσιών Ιστού.. 371 14.3 Μοντέλο επεξεργασίας BPEL...372 14.3.1 ιανοµή... 372 14.3.2 Αλληλεπίδραση µε τη διαδικασία... 372 14.3.3 Περιήγηση στο µοντέλο διαδικασιών... 373 14.3.4 Εµβέλειες και χειριστές... 375 14.4 Μελλοντικές κατευθύνσεις...377 14.5 Σύνοψη...379

18 Περιεχόµενα ΜΕΡΟΣ 8: ΠΕΡΙΠΤΩΣΙΟΛΟΓΙΚΕΣ ΜΕΛΕΤΕΣ... 381 15 Περιπτωσιολογική µελέτη: Εφοδιαστική αλυσίδα ανταλλακτικών αυτοκινήτων...383 15.1 Περιγραφή σεναρίου...383 15.2 Αρχιτεκτονική...384 15.3 Περιγραφές υπηρεσιών Ιστού...387 15.4 Μηνύµατα και πρωτόκολλα...392 15.5 Σύνοψη...396 16 Περιπτωσιολογική µελέτη: Παραγγελίες πακέτων υπηρεσιών...397 16.1 Περιγραφή σεναρίου...397 16.2 Αρχιτεκτονική...398 16.3 Περιγραφές υπηρεσιών Ιστού...400 16.4 Μηνύµατα και πρωτόκολλα...404 16.5 Σύνοψη...406 ΜΕΡΟΣ 9: ΣΥΜΠΕΡΑΣΜΑΤΑ... 407 17 Προβλέψεις για το µέλλον...409 17.1 Σηµασιολογία...409 17.2 Καλωδίωση...410 17.3 Περιορισµοί διάταξης...413 17.4 ηµιουργία συµβάσεων...414 17.5 Σύνοψη...415

Περιεχόµενα 19 18 Συµπεράσµατα...417 18.1 Μια σύνοψη της πλατφόρµας υπηρεσιών Ιστού...417 18.2 Τυποποίηση...419 18.2.1 Ζητήµατα σχετικά µε τη διαδικασία τυποποίησης... 419 18.3 Ανταγωνιστικές προδιαγραφές...421 18.4 Προοπτικές...423 18.4.1 Γιατί θα πετύχει;... 423 18.4.2 Κίνδυνοι... 424 18.5 Ανάπτυξη επάνω στη βασική πλατφόρµα...425 18.6 Σύνοψη...428 Βιβλιογραφικές αναφορές...429 Ευρετήριο...435

Πρόλογος από τον Steve Mills Στόχων των υπηρεσιών Ιστού είναι η πλήρης διαλειτουργικότητα σε επίπεδο επιχειρήσεων για τις πλατφόρµες ενδιάµεσου λογισµικού των διαφόρων κατασκευαστών. Παρακολουθώ τη βιοµηχανία από τα πρώτα δειλά της βήµατα, που έγιναν εδώ και περισσότερα από πέντε χρόνια µε τη µορφή του SOAP, και τη βλέπω να βαδίζει σταθερά προς αυτή την πλατφόρµα ενοποίησης µε την εµφάνιση του ενός βασικού συστατικού στοιχείου µετά το άλλο. Αν και δεν έχουµε φτάσει ακόµα στον προορισµό µας, είµαι βέβαιος ότι έχουν τεθεί στερεά τεχνικά θεµέλια, και ότι τώρα µια κοινή διαδικασία κατασκευής βρίσκεται εν εξελίξει. Το παρόν βιβλίο ασχολείται µε αυτό το τεχνικό υπόβαθρο. Ξεκινώντας µε µια εξήγηση ορισµένων από τους παρακινητικούς παράγοντες οι οποίοι οδηγούν τους πελάτες προς την πλήρη και σε βάθος ενοποίηση πλατφορµών ενδιάµεσου λογισµικού, οι συγγραφείς σάς ξεναγούν σε ολόκληρη την πλατφόρµα υπηρεσιών Ιστού και σας επιτρέπουν να κατανοήσετε γιατί αυτή η πλατφόρµα λύνει αποτελεσµατικά το πρόβληµα της ενοποίησης (integration). ύο περιπτωσιολογικές µελέτες, η µία για µια διεπιχειρησιακή (B2B) συναλλαγή και η άλλη για µια κατάσταση ενοποίησης επιχειρηµατικών εφαρµογών, επεξηγούν πώς η πλατφόρµα υπηρεσιών Ιστού µπορεί να εφαρµοστεί αποτελεσµατικά για να καλύψει όλες τις απαιτήσεις ενοποίησης. Τέλος, οι συγγραφείς παρέχουν µια ιδέα των πιθανών µελλοντικών εξελίξεων, από άποψη τόσο βραχυπρόθεσµης όσο και µακροπρόθεσµης εξέλιξης του τοµέα της ενοποίησης. 21

22 Αρχιτεκτονική πλατφόρµας υπηρεσιών Iστού Παρόλο που υπάρχουν δεκάδες βιβλία σχετικά µε υπηρεσίες Ιστού, αυτό το βιβλίο είναι µοναδικό για δύο σηµαντικούς λόγους: είναι το πρώτο βιβλίο που παρέχει µια περιεκτική κάλυψη ολόκληρης της πλατφόρµας υπηρεσιών Ιστού και, αντί να δίνουν µια στεγνή εξήγηση των πολυπληθών προδιαγραφών WS-*, οι συγγραφείς κάνουν υποκειµενικές κρίσεις σχετικά µε το ποιες προδιαγραφές είναι βασικές για την πλατφόρµα και ποιες όχι. Οι τολµηροί ισχυρισµοί τους για το τι είναι βασικό, καθιστά σαφές ότι η πλατφόρµα των υπηρεσιών Ιστού έχει µια σαφή υποκείµενη αρχιτεκτονική, και ότι δεν αποτελεί απλώς µια συλλογή εγγράφων προδιαγραφών, όπως πιστεύεται συνήθως. Ο δεύτερος παραπάνω λόγος δείχνει και τη βασική αιτία που το παρόν βιβλίο είναι τόσο µοναδικό: οι συγγραφείς είναι στην πραγµατικότητα οι ίδιοι εκείνοι άνθρωποι που είχαν συµµετάσχει στον καθορισµό όλων αυτών των προδιαγραφών οι οποίες α- ποτελούν την πλατφόρµα των υπηρεσιών Ιστού. Με άλλα λόγια, το βιβλίο είναι όσο περισσότερο από πρώτο χέρι γίνεται! Με δεδοµένη τη σηµασία της πραγµατικής διαλειτουργικότητας µεταξύ πλατφορµών διαφορετικών κατασκευαστών, η πλήρης κατανόηση των υπηρεσιών Ιστού είναι απαραίτητη σε όλους. Υποψιάζοµαι ότι αυτό το βιβλίο θα αποτελέσει βασικό ορόσηµο στα ταξίδια που θα πραγµατοποιείτε στις λεωφόρους των υπηρεσιών Ιστού. Steve Mills Senior VP και ιοικητικό Στέλεχος Οµάδας IBM Software Group εκέµβριος 2004

Πρόλογος από τον Ronald Schmelzer Μία από τις µόνιµες επιδιώξεις των επιχειρήσεων όλων των τύπων, µεγεθών, και βιο- µηχανιών, είναι η ικανότητα των πληροφοριακών τους συστηµάτων να ικανοποιούν τις εξελισσόµενες επιχειρηµατικές τους ανάγκες. Επειδή τα συστήµατα IT των περισσότερων επιχειρήσεων αποτελούν ένα µίγµα συστηµάτων διαφορετικών τύπων, ηλικιών, αρχιτεκτονικών, και τεχνολογιών, οι εταιρίες πρέπει να συνεχίσουν να επενδύουν στην όλο και πιο σύνθετη υποδοµή της τεχνολογίας πληροφοριών τους, αποκοµίζοντας οφέλη τα οποία συνεχώς λιγοστεύουν. Κατά περιόδους, φαίνεται ότι όσο περισσότερο επενδύουν οι εταιρίες στην τεχνολογία πληροφοριών, τόσο πιο µικρό επιχειρηµατικό όφελος αποκοµίζουν, επειδή ξοδεύεται περισσότερος χρόνος για να µπορούν τα υπάρχοντα συστήµατα να συνδιαλέγονται το ένα µε το άλλο, παρά για να αποκτήσουν δυνατότητες οι οποίες θα τους επιτρέπουν να διεκπεραιώνουν νέες, παραγωγικές εργασίες για την επιχείρηση. Μέρος της αιτίας για το τρέχον πρόβληµα της τεχνολογίας των πληροφοριών είναι ότι οι εταιρίες δεν λαµβάνουν τις αποφάσεις που αφορούν την τεχνολογία και την αρχιτεκτονική από κοινού. Αντίθετα, οι περισσότερες εταιρίες είναι υποχρεωµένες να λαµβάνουν τέτοιου είδους αποφάσεις καθοδόν, χρησιµοποιώντας τις καλύτερες πληροφορίες και αιτιολογίες που έχουν διαθέσιµες τη συγκεκριµένη στιγµή. Ορισµένες φορές, αυτές οι αποφάσεις λαµβάνονται µε βάση σκοπιµότητες, ενώ σε άλλες περιπτώσεις, οι αποφάσεις λαµβάνονται για στρατηγικούς λόγους οι οποίοι χάνονται όταν η εταιρία υφίσταται δραστικές αλλαγές, όπως µια συγχώνευση ή µια εξαγορά, ή κατά τη διάρκεια µιας περιόδου σηµαντικής οικονοµικής κρίσης. Ως αποτέλεσµα, πολλές από τις αποφάσεις που αφορούν την τεχνολογία των πληροφοριών οδηγούν την εταιρία σε σηµαντικές δαπάνες. 23

24 Αρχιτεκτονική πλατφόρµας υπηρεσιών Ιστού Επιπλέον, καθώς µια εταιρία συσσωρεύει πάγια IT, προκύπτουν νέες τεχνολογίες οι οποίες φαίνεται ότι καθιστούν παρωχηµένες τις παλαιότερες που είχε υλοποιήσει η επιχείρηση. Ωστόσο, οι περισσότερες εταιρίες απεχθάνονται να πετούν τις προηγούµενες επενδύσεις τους (παρωχηµένα συστήµατα) και να τις αντικαθιστούν µε νέα συστήµατα, και, κατά συνέπεια, αυτές οι εταιρίες είναι υποχρεωµένες να κάνουν τα παλιά τους συστήµατα να λειτουργούν σε νέα περιβάλλοντα. Έτσι, αντί τα οικοσυστήµατα IT να απλοποιούνται µε την πάροδο του χρόνου, το πρόβληµα γίνεται πιο περίπλοκο, ακριβότερο, και πιο άκαµπτο καθώς εµφανίζονται νέα συστήµατα. Αυτό το πρόβληµα της ετερογένειας αποτελεί τον κύριο λόγο για τον οποίο οι προκλήσεις της ενοποίησης συνεχίζουν να µαστίζουν τόσο πολλούς οργανισµούς. Για να αντιµετωπίσουν αυτά τα προβλήµατα, οι εταιρίες χρειάζονται δύο είδη λύσεων: λύσεις τεχνολογίας οι οποίες στοχεύουν στην απλοποίηση των προβληµάτων ενοποίησης µέσω ενός συνδυασµού διαλειτουργικότητας βασισµένης σε πρότυπα και µιας δυνατότητας επαναχρησιµοποίησης των παρωχηµένων περιβαλλόντων, και αρχιτεκτονικές λύσεις που στοχεύουν στην αλλαγή του τρόπου µε τον οποίο οι εταιρίες κατασκευάζουν, διανέµουν, διαχειρίζονται, προστατεύουν, και κλιµακώνουν τα πληροφοριακά τους συστήµατα. Ενώ η τελευταία λύση απαιτεί αλλαγές στη διαχείριση, τη δοµή, και τη διακυβέρνηση της Τεχνολογίας των Πληροφοριών, η προηγούµενη απαιτεί µια βασισµένη σε πρότυπα, περιεκτική πλατφόρµα τεχνολογίας για εργασία σε ένα ετερογενές περιβάλλον. Η Αρχιτεκτονική µε Βάση Υπηρεσίες (Service-Oriented Architectures, SOA), η οποία στηρίζεται στις υπηρεσίες Ιστού, φιλοδοξεί να παράσχει και τα δύο από τα ανωτέρω είδη λύσεων στο διαρκές πρόβληµα της έλλειψης ευελιξίας της Τεχνολογίας Πληροφοριών. Οι έξυπνες επιχειρήσεις συνειδητοποιούν όλο και περισσότερο ότι η πραγµατική αξία των υπηρεσιών Ιστού βρίσκεται στη χρήση χαλαρά συνδεδεµένων, βασισµένων σε πρότυπα τεχνολογιών για την κατασκευή SOA. Πολλές επιχειρήσεις έχουν υλοποιήσει µε επιτυχία υπηρεσίες Ιστού για να λύσουν προβλήµατα ενοποίησης από σηµείο σε σηµείο, και τώρα προσπαθούν να εκµεταλλευτούν τη δύναµη και την ευελιξία των υπηρεσιών Ιστού µε στρατηγικό τρόπο σε όλο το εύρος της επιχείρησης, γεγονός που σηµαίνει χαλαρά συνδεδεµένες SOA µε βάση πρότυπα. Η δύναµη και η ευελιξία που µπορούν να προσφέρουν οι SOA σε µια επιχείρηση αποτελούν πολύ σηµαντικούς παράγοντες. Αν ένας οργανισµός δηµιουργήσει µια αφηρηµένη αναπαράσταση της υποδοµής IT του, έτσι ώστε να παρουσιάσει τη λειτουργικότητά της υπό τη µορφή γενικών υπηρεσιών οι οποίες προσφέρουν σαφή επιχειρηµατική αξία, οι καταναλωτές αυτών των υπηρεσιών (είτε είναι στην ίδια εταιρία είτε κάποιος από τους επιχειρηµατικούς της συνεργάτες) µπορούν να προσπελάζουν τις υπηρεσίες εκείνες ανεξάρτητα από την υποκείµενη τεχνολογία που τις υποστηρίζει. Επιπλέον, αν οι καταναλωτές των υπηρεσιών είναι σε θέση να εντοπίζουν τις διαθέσιµες υπηρεσίες και να συνδέονται µαζί τους µε δυναµικό και ευέλικτο τρόπο κατασκευάζοντας εφαρµο-

Πρόλογος από τον Ronald Schmelzer 25 γές µέσα από τη σύνθεση υπηρεσιών η υποδοµή IT πίσω από τις υπηρεσίες µπορεί να προσφέρει εξαιρετική ευελιξία στις επιχειρήσεις που κάνουν τις κλήσεις. Η διαφορά µεταξύ της χρήσης SOA και άλλων προσεγγίσεων στην επιχειρηµατική αρχιτεκτονική βρίσκεται στην ευελιξία που προσφέρει η πρώτη στις επιχειρήσεις. Οι εταιρίες έχουν συνηθίσει πλέον στο γεγονός ότι η λήψη αποφάσεων και οι υλοποιήσεις για την Τεχνολογία Πληροφοριών εµποδίζουν την οργάνωσή τους, και ότι η τεχνολογία και οι περιορισµοί της καθοδηγούν συχνά τις επιχειρηµατικές τους αποφάσεις. Ο προσανατολισµός στις υπηρεσίες, ωστόσο, έχει τη δυνατότητα να αντιστρέψει αυτή την εξίσωση και να επιτρέψει τελικά στις επιχειρηµατικές αποφάσεις να οδηγούν τις τεχνολογικές. Επιχειρηµατική ευελιξία είναι η δυνατότητα µιας εταιρίας να ανταποκρίνεται γρήγορα και αποτελεσµατικά στην αλλαγή, και να χρησιµοποιεί τις αλλαγές για να αποκτά ανταγωνιστικό πλεονέκτηµα. Για τον αρχιτέκτονα, η κατασκευή µιας αρχιτεκτονικής που παρέχει επιχειρηµατική ευελιξία σηµαίνει µια υποδοµή IT η οποία είναι σε θέση να καλύψει επιχειρηµατικές καταστάσεις µε άγνωστες ακόµα απαιτήσεις, µια κατάσταση που καθιστά τον παραδοσιακό σχεδιασµό IT τελείως άχρηστο. Στη µετάβαση που πραγµατοποιείται σήµερα προς τα κατανεµηµένα συστήµατα, ενώ κάθε κοµµάτι είναι το ίδιο σηµαντικό µε αυτά που προηγήθηκαν, υπάρχει ένα τελείως διαφορετικό οικονοµικό µοντέλο. Αντί για τεράστιες επενδύσεις στην Τεχνολογία Πληροφοριών, το σηµερινό στέλεχος ενδιαφέρεται για οικονοµία. Η οικονοµία εξαρτάται στενά από ένα από τα ιερά δισκοπότηρα της ανάπτυξης λογισµικού: την επαναχρησιµοποίηση κώδικα. Σε µια SOA, οι προγραµµατιστές πρέπει να κατασκευάζουν τις υπηρεσίες έτσι ώστε να είναι όσο το δυνατόν απλούστερες, ενώ πρέπει να τις αναδιοργανώνουν συνεχώς ώστε να τους δίνουν τη µεγαλύτερη δυνατή εφαρµοσιµότητα. Οι υπηρεσίες που προκύπτουν είναι κατόπιν επαναχρησιµοποιήσιµες κατά το χρόνο εκτέλεσης αποτελούν εξειδικευµένα αλλά και γενικότερα τµήµατα λειτουργικότητας λογισµικού, τα οποία µπορούν να χρησιµοποιηθούν σε ποικίλες καταστάσεις, σε αντιδιαστολή µε την τυπική επαναχρησιµοποίηση κώδικα, η οποία αποτελεί αρχή κατά τη φάση της σχεδίασης. Από τη στιγµή που θα τεθεί σε ισχύ η SOA, νέες επιχειρηµατικές απαιτήσεις θα συνεχίσουν να δηµιουργούν την ανάγκη για νέες και ενηµερωµένες υπηρεσίες. Το προσωπικό της Τεχνολογίας Πληροφοριών µπορεί κατόπιν να πραγµατοποιεί τις απαραίτητες αλλαγές σε µια συνεχή βάση. Επιπλέον, µια κατά περίπτωση (ad-hoc) προσέγγιση στην αναβάθµιση των υπηρεσιών, οι οποίες συντίθενται σε επιχειρηµατικές εφαρµογές, µειώνει την ανάγκη για ολοκληρωτική αντικατάσταση µεγάλων τµηµάτων της υποδοµής IT. Κατ αυτό τον τρόπο, οι εταιρίες χρειάζεται να εξετάζουν τη στρατηγική ολοκληρωτικής αντικατάστασης µόνο ως έσχατη λύση, και πάλι µόνο µέσα σε ένα προσανατολισµένο σε υπηρεσίες πλαίσιο. Υπάρχει µια πρόσθετη έννοια, σχετική µε την ευρεία εφαρµοσιµότητα, η οποία προχωράει ακόµα πιο πέρα: η έννοια της καταναλωσιµότητας. Μια υπηρεσία δεν αρκεί να έχει

26 Αρχιτεκτονική πλατφόρµας υπηρεσιών Ιστού τις προοπτικές για να χρησιµοποιείται σε ποικίλες καταστάσεις πρέπει να είναι πραγµατικά χρησιµοποιήσιµη. Όχι µόνο η λειτουργικότητά της πρέπει να είναι τεχνικά εφαρ- µόσιµη σε διάφορες καταστάσεις, αλλά οι άνθρωποι πρέπει να γνωρίζουν για την υπηρεσία, να κατανοούν τη χρήση της, και να είναι σε θέση να την εντοπίσουν όταν τη χρειάζονται. Υπό αυτή τη µορφή, τεχνολογίες όπως αποθήκες (repositories) και εργαλεία διαχείρισης µεταδεδοµένων αρχίζουν να γίνονται γρήγορα το ίδιο σηµαντικά όσο οι υποδοµές χρόνου εκτέλεσης και χρόνου σχεδίασης για τις ίδιες τις υπηρεσίες. Ενώ οι έννοιες της SOA φαίνονται ελκυστικές στις περισσότερες επιχειρήσεις, η κατασκευή υποδοµών µε βάση υπηρεσίες δεν είναι εύκολη δουλειά. Αυτός είναι ο λόγος που το παρόν βιβλίο, Αρχιτεκτονική Πλατφόρµας Υπηρεσιών Ιστού: SOAP, WSDL, WS-Policy, WS-Addressing, WS-BPEL, WS-Reliable Messaging και Άλλα, αποτελεί ένα τόσο σηµαντικό και κρίσιµο αναγνωστικό βοήθηµα. Σε αυτό το βιβλίο, οι Sanjiva Weerawarana, Francisco Curbera, Frank Leymann, Tony Storey, και Donald Ferguson εξηγούν ότι οι υπηρεσίες Ιστού και η SOA είναι απαραίτητες τεχνολογίες οι οποίες βοηθούν τις επιχειρήσεις να καλύψουν τις συνεχώς εξελισσόµενες απαιτήσεις τους. Το βιβλίο δεν παρέχει µόνο κάλυψη των τεχνολογιών και των προδιαγραφών σε επίπεδο υλοποίησης, όπως θα ήθελαν οι τεχνικοί προγραµµατιστές, αλλά παρέχει επίσης το σωστό τεχνικό πλαίσιο για αναγνώστες που προέρχονται από το χώρο των επιχειρήσεων. Ένα καινούργιο κοινό, αυτό των επιχειρηµατικών αρχιτεκτόνων (enterprise architects), οι οποίοι είναι περισσότερο εστιασµένοι στις επιχειρήσεις από τους προγραµµατιστές, ενώ παράλληλα έχουν να αντιµετωπίσουν πιο συγκεκριµένες τεχνικές απαιτήσεις από τους συµβατικούς επιχειρηµατικούς χρήστες, θα βρει το βιβλίο εξαιρετικά χρήσιµο. Το βιβλίο δίνει στους εν λόγω χρήστες τα µέσα για να συζητήσουν τα θέµατα µε πιο τεχνικούς υπεύθυνους ανάπτυξης λογισµικού, και τα δοµικά στοιχεία για να υλοποιήσουν έννοιες υψηλότερου επιπέδου οι οποίες αποφασίζονται από τους ανωτέρους τους σε επίπεδο επιχείρησης. Στο πρώτο κεφάλαιο, οι συγγραφείς κάνουν τη σωστή παρατήρηση ότι η SOA αποτελεί µια µετατόπιση σε ένα νέο υπόδειγµα, η οποία απαιτεί όχι µόνο µια αλλαγή στην τεχνολογία, αλλά και µια αλλαγή στον τρόπο της πολιτιστικής µας σκέψης σχετικά µε το πώς να δηµιουργούµε, να διαχειριζόµαστε, να προστατεύουµε, και να διανέµουµε πόρους υπηρεσιών στο δίκτυο. Στο στόχαστρο βρίσκονται οι έννοιες η σωστή αντιστοίχιση του επιχειρηµατικού καθοδηγητικού παράγοντα της ευκινησίας, ή της ευελιξίας, στις τεχνικές δυνατότητες µιας SOA, ώστε να είναι δυνατή η γρήγορη αλλαγή µε χαµηλές οικονοµικές επιβαρύνσεις. Το βιβλίο κατόπιν συνεχίζει στην περιγραφή της επιχειρηµατικής ευελιξίας µε αφηρηµένο τρόπο, συνδέοντας παράλληλα τις ιδέες σε συγκεκριµένες έννοιες της επιχειρηµατικής διαδικασίας. Καθώς το βιβλίο προχωρεί, ο αναγνώστης µαθαίνει όλο και περισσότερα για τις βασικές προδιαγραφές των υπηρεσιών Ιστού SOAP, WSDL, και UDDI, καθώς επίσης

Πρόλογος από τον Ronald Schmelzer 27 και για τα βασισµένα στην XML θεµέλια εκείνων των µορφών. Αυτό που κάνει το βιβλίο να ξεχωρίζει είναι η λεπτοµερής περιγραφή του σχετικά µε τις εν εξελίξει προδιαγραφές, όπως οι WS-Policy, WS-Addressing, WS-ReliableMessaging, WS- AtomicTransaction, WS-BusinessActivity, καθώς επίσης και η προδιαγραφή BPEL, οι οποίες αν και καινούργιες ακόµα την εποχή που γραφόταν αυτός ο πρόλογος στο µέλλον σίγουρα θα αποτελούν επίσηµες προδιαγραφές για τη SOA. Επιπρόσθετα, οι συγγραφείς αφιερώνουν αρκετό χρόνο περιγράφοντας τις πρακτικές υλοποιήσεις της SOA, ιδιαίτερα σε ένα πλαίσιο ανταλλαγής µηνυµάτων (messaging). Οι περιγραφές τους µπορούν να εφαρµοστούν άµεσα σε ένα µεγάλο εύρος µηνυµατοστρεφών προσεγγίσεων ενδιάµεσου λογισµικού, καθώς επίσης και σε νεοεµφανιζόµενες υλοποιήσεις ιαύλων Επιχειρηµατικών Υπηρεσιών (Enterprise Service Bus). Για την ακρίβεια, αυτό που δίνει στο βιβλίο αξιοπιστία είναι η πείρα των συγγραφέων. Οι συγγραφείς, µέλη της πρωτοποριακής οµάδας λογισµικού της ΙΒΜ, όχι µόνο έχουν µεγάλη πείρα στις υπηρεσίες Ιστού και τη SOA, αλλά έχουν συµµετάσχει οι ίδιοι στη δηµιουργία των προδιαγραφών. Με αυτό το δεδοµένο, οι συγγραφείς παρέχουν τόσο την πείρα τους στην υλοποίηση των υπηρεσιών Ιστού και τη SOA από την ΙΒΜ, όσο και την πείρα τους στη δηµιουργία των ίδιων των προδιαγραφών που περιγράφονται στο βιβλίο θα µπορούσαµε να πούµε ότι αυτό το βιβλίο είναι ένας οδηγός εκ των έσω για τις υπηρεσίες Ιστού και τη SOA. Συµπερασµατικά, ο προσανατολισµός στις υπηρεσίες αντιπροσωπεύει την επόµενη µεγάλη τάση στα επιχειρηµατικά υπολογιστικά συστήµατα, και κατά συνέπεια απαιτεί νέα προοπτική, νέες τεχνικές, και νέα εργαλεία για την υλοποίηση τεχνολογικών λύσεων οι οποίες θα ικανοποιούν τις ανάγκες των επιχειρήσεων. Στο συγκεκριµένο χρονικό σηµείο, η βιοµηχανία της Τεχνολογίας των Πληροφοριών στέκεται σε µια κόψη µια αιχµή όπου οι σποραδικές εφαρµογές των υπηρεσιών Ιστού αρχίζουν να αποτελούν µια κίνηση προς το ευέλικτο, οικονοµικό υπολογιστικό µοντέλο που βασίζεται στις SOA. Όταν οι άνθρωποι στέκονται σε ένα τέτοιο κατώφλι, συχνά δυσκολεύονται να προγραµµατίσουν για το µέλλον, επειδή πολλά από τα επιχειρηµατικά µοτίβα που ίσχυαν στο παρελθόν ίσως πλέον να µην ισχύουν. Η ελπίδα µας είναι ότι µέσω της εκµάθησης των βασικών αρχών της SOA και των υπηρεσιών Ιστού, και των λεπτοµερειών που απαιτούνται για την υλοποίησή τους στις σηµαντικότερες εφαρµογές σας, θα µπορέσετε να αποκτήσετε την κατάλληλη ενηµέρωση και εκπαίδευση ώστε να συµµετάσχετε και να οδηγήσετε την επανάσταση που φέρνει η SOA για τον επιχειρη- µατικό κόσµο. Ronald Schmelzer Senior Analyst ZapThink, LLC εκέµβριος 2004

Πρόλογος Οι υπηρεσίες Ιστού είναι ένα χάος! Υπάρχουν περισσότερες από 150 προδιαγραφές υπηρεσιών Ιστού (WS-*)! Απλό; Αυτά τα πράγµατα είναι πιο περίπλοκα από το CORBA! εν υπάρχει αρχιτεκτονική απλώς ένας σωρός από ανταγωνιστικές προδιαγραφές! Αυτές οι προδιαγραφές είναι πυκνότερες και από το πλουτώνιο! Αυτές είναι µερικές από τις επικρίσεις που έχουµε ακούσει από διάφορους µεταξύ των οποίων και δικοί µας συνάδελφοι για τις υπηρεσίες Ιστού. Γι αυτό γράψαµε τούτο το βιβλίο: για να δείξουµε ότι η πλατφόρµα WS-* δεν είναι ένας τυχαίος περίπατος στο χώρο των προδιαγραφών WS-*, αλλά µια οργανωµένη και δοµηµένη αρχιτεκτονική µε καλά καθορισµένη σχεδίαση και αρχιτεκτονικούς στόχους. Αυτούς τους στόχους τους εφαρµόζουµε κατά την εργασία µας στις προδιαγραφές WS-*, αλλά και όταν αποφασίζουµε αν χρειαζόµαστε ή όχι µια νέα προδιαγραφή σε έναν συγκεκριµένο τοµέα. Ο στόχος του παρόντος βιβλίου είναι να παρουσιάσει τη συνεκτική, δοµηµένη αρχιτεκτονική της πλατφόρµας υπηρεσιών Ιστού, στης οποίας τον καθορισµό έχουµε συνεισφέρει. Η αρχιτεκτονική είναι σχεδιασµένη για να επιτρέπει αλληλεπίδραση χαλαρής σύζευξης µεταξύ υπηρεσιών, µε αξιοπιστία επιχειρηµατικής ποιότητας, ασφάλεια, και δυνατότητες συναλλαγών. Ξεκινάµε µε την παρουσίαση ορισµένων από τις δυνάµεις 29

30 Αρχιτεκτονική πλατφόρµας υπηρεσιών Ιστού του επιχειρηµατικού κόσµου οι οποίες παρακινούν τη δηµιουργία της υπολογιστικής πλατφόρµας µε βάση τις υπηρεσίες (Κεφάλαιο 1, Αρχιτεκτονικές µε βάση υπηρεσίες ). Κατόπιν εστιάζουµε στις υπηρεσίες Ιστού ως µια υλοποίηση αυτής της υπολογιστικής πλατφόρµας µε βάση υπηρεσίες, και προσδιορίζουµε ποιες προδιαγραφές συµβάλλουν σε αυτή (Κεφάλαιο 3, Υπηρεσίες Ιστού ). Στη συνέχεια, εξετάζουµε κάθε σηµαντικό µέρος της πλατφόρµας, και παρέχουµε το αρχικό κίνητρο που οδήγησε στον καθορισµό των προδιαγραφών οι οποίες διέπουν το συγκεκριµένο συστατικό στοιχείο. Καλύπτουµε το πλαίσιο εργασίας ανταλλαγής µηνυµάτων, περιγράφοντας µεταδεδοµένα, αξιόπιστη αλληλεπίδραση, ασφάλεια, και σύνθεση υπηρεσιών σε διαφορετικά µέρη του βιβλίου. Πριν ολοκληρώσουµε, εξετάζουµε δύο περιπτωσιολογικές µελέτες για να δείξουµε πώς η πλατφόρµα υπηρεσιών Ιστού µπορεί να αντιµετωπίσει σενάρια ενοποίησης (integration) τόσο ενδοδικτύων όσο και εξτραδικτύων. Στα συµπεράσµατά µας, συνοψίζουµε την πλατφόρµα και εξηγούµε γιατί πιστεύουµε ότι η ενοποιηµένη αρχιτεκτονική που παρουσιάζουµε έχει νόηµα και θα κερδίσει τη µάχη της τυποποίησης. Τέλος, παρουσιάζουµε τις σκέψεις µας για το µέλλον της πλατφόρ- µας των υπηρεσιών Ιστού. Αφού διαβάσετε το βιβλίο, δεν θα πρέπει πλέον να θεωρείτε ότι οι υπηρεσίες Ιστού στερούνται αρχιτεκτονικής, ή ότι η αρχιτεκτονική τους είναι κρυµµένη κάπου µεταξύ 150 και πλέον προδιαγραφών WS-*. Ίσως να µην συµφωνείτε µε την επιλογή µας σχετικά µε τα συστατικά στοιχεία που αποτελούν την αρχιτεκτονική, αλλά επιλέξαµε το σύνολο των συστατικών µε βάση το γεγονός ότι ήταν σχεδιασµένα από το µηδέν ώστε να συνεργάζονται για να λύσουν ένα συγκεκριµένο πρόβληµα: αυτό της ύπαρξης µια πανταχού παρούσας πλατφόρµας για την ενοποίηση ετερογενών συστηµάτων, µε σκοπό την πλούσια επιχειρηµατική επικοινωνία. Ποιος πρέπει να διαβάσει αυτό το βιβλίο; Γράψαµε αυτό το βιβλίο για τεχνικούς επαγγελµατίες και σπουδαστές. Αν και το Κεφάλαιο 2, Υπόβαθρο, αποτελεί µια σύντοµη εισαγωγή στο απαραίτητο υλικό υποβάθρου σχετικά µε σηµαντικές τεχνολογίες XML, θεωρούµε ότι ο αναγνώστης διαθέτει ήδη µια καλή γνώση των τεχνολογιών που αναφέρονται εδώ. Το βιβλίο θα εκτιµηθεί από προγραµµατιστές που θέλουν να κατανοήσουν τη γενική πλατφόρµα των υπηρεσιών Ιστού. Ωστόσο, δεν πρόκειται για ένα βιβλίο ανάπτυξης λογισµικού, από την άποψη ότι δεν παρέχει λεπτοµερή κατανόηση σε επίπεδο κώδικα. Κάτι τέτοιο δεν αποτελούσε στόχο µας. Το βιβλίο θα φανεί χρήσιµο σε αρχιτέκτονες, συµβούλους, και τεχνικά προσανατολισµένα διευθύνοντα στελέχη. Σπουδαστές που έχουν ήδη παρακολουθήσει εισαγωγικά µαθήµατα στα κατανεµηµένα συστήµατα ή τα συστήµατα βάσεων δεδοµένων, θα είναι σε θέση να κατανοήσουν την πλατφόρµα υπηρεσιών Ι- στού.

256 Μέρος 5: Αξιόπιστη αλληλεπίδραση 11.1 Ρόλος των συναλλαγών σε υπηρεσίες Ιστού/SOA Οι συναλλαγές (transactions) [Bern 1997], [Gray 1993] αποτελούν θεµελιώδη έννοια για την κατασκευή αξιόπιστων κατανεµηµένων εφαρµογών. Μια συναλλαγή είναι ένας µηχανισµός που εξασφαλίζει ότι όλοι οι συµµετέχοντες σε µια εφαρµογή επιτυγχάνουν ένα αµοιβαία συµφωνηθέν αποτέλεσµα. Παραδοσιακά, οι συναλλαγές παρέχουν τις ακόλουθες ιδιότητες: Ατοµικότητα (Atomicity) Είτε η συναλλαγή ολοκληρώνεται επιτυχώς και πραγµατοποιούνται όλες οι ενέργειες που εκτελεί η εφαρµογή, είτε η συναλλαγή ολοκληρώνεται ανεπιτυχώς και δεν πραγµατοποιείται καµία ε- νέργεια. Συνέπεια (Consistency) Οι συναλλαγές παράγουν συνεπή αποτελέσµατα και φροντίζουν ώστε κατά την ολοκλήρωσή τους η κατάσταση της εφαρ- µογής να είναι ορθή. Αποµόνωση (Isolation) Οι ενδιάµεσες καταστάσεις που παράγονται ενώ εκτελείται η συναλλαγή είναι αόρατες σε άλλες συναλλαγές. Επιπλέον, οι συναλλαγές εµφανίζονται να εκτελούνται σειριακά, ακόµα και αν εκτελούνται ταυτόχρονα. Αυτό επιτυγχάνεται µε το κλείδωµα των πόρων κατά τη διάρκεια της συναλλαγής, έτσι ώστε µια άλλη συναλλαγή να µην µπορεί να τους αποκτήσει µε τρόπο ο οποίος προκαλεί διενέξεις. ιάρκεια (Durability) Μετά την επιτυχή ολοκλήρωση µιας συναλλαγής, οι αλλαγές διατηρούνται, εκτός και αν συµβεί µια καταστροφική βλάβη. Οι συναλλαγές µε τις εν λόγω ιδιότητες (που συχνά λέγονται ACID) είναι γνωστές ως ατοµικές (atomic). Σε ένα περιβάλλον υπηρεσιών Ιστού, οι συναλλακτικές εφαρµογές κατασκευάζονται από τη σύνθεση µίας ή περισσότερων υπηρεσιών Ιστού, κάθε µία από τις οποίες µπορεί να χειρίζεται πόρους, να ακολουθεί τις ιδιότητες που περιγράφηκαν νωρίτερα, και να αποτελεί µέρος ενός συµφωνηθέντος γενικού συντονιζόµενου αποτελέσµατος. Ωστόσο, σε ένα περιβάλλον υπηρεσιών Ιστού, οι υπηρεσίες που αποτελούν τα συστατικά µέρη µιας εφαρµογής είναι συνήθως χαλαρά συνδεδεµένες και κατανεµηµένες στα διάφορα ανεξάρτητα συστήµατα ενός δικτύου. Εποµένως, ίσως κάποιες από τις ιδιότητες των ατοµικών συναλλαγών να πρέπει να εφαρµοστούν µε λιγότερο αυστηρό τρόπο. Χρειάζονται περισσότερο ευέλικτες µορφές συντονισµού επεξεργασίας αποτελεσµάτων, οι οποίες θα διαθέτουν πιο χαλαρές µορφές συναλλαγών για την εξυπηρέτηση συνεργασιών, εργασιακής ροής, επεξεργασίας σε πραγµατικό χρόνο, κ.ο.κ. Τέλος, υπάρχει µια απαίτηση για την επεξεργασία αποτελεσµάτων η οποία, αν και δεν απαιτεί απαραίτητα συναλλακτική συµπεριφορά, χρειάζεται ωστόσο τη δυνατότητα αναγνώρισης λειτουργιών οι οποίες αποτελούν µέρος της ίδιας εφαρµογής υπηρεσιών Ιστού.

11 Συναλλαγές 257 Η προδιαγραφή Συντονισµού WS ορίζει µια τέτοια υπηρεσία συντονισµού, ενώ οι προδιαγραφές Ατοµικής Συναλλαγής WS και Επιχειρηµατικής ραστηριότητας WS παρέχουν ένα αρχικό σύνολο µε τα πιο κοινά πρωτοκόλλα συντονισµού. Το Σχήµα 11-1 παρουσιάζει τη θέση των συναλλαγών (και των προδιαγραφών που περιγράφηκαν νωρίτερα) στο µοντέλο των υπηρεσιών Ιστού. Οι συναλλαγές παρέχουν µια υπηρεσία ενδιάµεσου λογισµικού η οποία ενισχύει τις βασικές τεχνολογίες των υπηρεσιών Ιστού όπως το SOAP, η Γλώσσα Περιγραφής Υπηρεσιών Ιστού (WSDL), και το UDDI (Παγκόσµια Περιγραφή, Εντοπισµός, και Ενοποίηση), επιτρέποντας την κατασκευή ενός αξιόπιστου υπολογιστικού περιβάλλοντος. Σχήµα 11-1 Υπηρεσίες Ιστού και συναλλαγές.

258 Μέρος 5: Αξιόπιστη αλληλεπίδραση 11.2 Κίνητρο για τις συναλλαγές 11.2.1 Κλασικές συναλλαγές υστυχώς, οι εφαρµογές είναι επιρρεπείς σε πολλές περιπτώσεις βλάβης. Κατά την εκτέλεσή τους σε κατανεµηµένα συστήµατα, οι εφαρµογές αντιµετωπίζουν µεγαλύτερα προβλήµατα αξιοπιστίας, επειδή τέτοια περιβάλλοντα διαθέτουν πρόσθετες πηγές αστοχιών. Τα κατανεµηµένα συστήµατα γενικά αποτελούνται από διάφορους υπολογιστές συνδεδεµένους σε κάποιο δίκτυο, όπου κάθε σύστηµα µπορεί να υποστεί ανεξάρτητες αστοχίες οποιουδήποτε από τα συστατικά του στοιχεία, όπως οι ίδιοι οι υπολογιστές, οι δικτυακές συνδέσεις, τα λειτουργικά συστήµατα, το ενδιάµεσο λογισµικό, ή οι µεµονωµένες εφαρµογές. Η αστοχία κάποιου συστατικού µέρους πρέπει να αντι- µετωπίζεται στο πλαίσιο ολόκληρης της εφαρµογής, ώστε να εξασφαλίζεται η συνολική σωστή εκτέλεση του προγράµµατος. Η έννοια των συναλλαγών στοχεύει στην ικανοποίηση αυτής της απαίτησης συνέπειας µέσω µιας ιδιότητας που ονοµάζεται ατοµικότητα (atomicity), σύµφωνα µε την οποία η εφαρµογή είτε ολοκληρώνεται κανονικά, παράγοντας τα ζητούµενα αποτελέσµατα, είτε ακυρώνεται, επαναφέροντας τυχόν πόρους που έχουν τροποποιηθεί στην αρχική τους κατάσταση. Ο τρόπος που γίνεται αυτό συνήθως αποτελεί επιλογή της υλοποίησης, και κανονικά αντιµετωπίζεται από µια υπηρεσία συναλλαγών την οποία παρέχουν τα λειτουργικά συστήµατα ή το ενδιάµεσο λογισµικό συστήµατος. Η εφαρµογή λειτουργεί σε συνεργασία µε το ενδιάµεσο λογισµικό συστήµατος, το οποίο παρέχει µια υπηρεσία συναλλαγών για την ενορχήστρωση της έκβασης της συναλλαγής. Χρησιµοποιώντας την υπηρεσία συναλλαγών, η εφαρµογή δείχνει πότε ξεκινάει η συναλλαγή, και καθορίζει πότε και πώς πρέπει να ολοκληρωθεί. Η υπηρεσία συναλλαγών καταγράφει τις υπηρεσίες Ιστού που προσπελάζονται από την εφαρ- µογή, έτσι ώστε να µπορεί να εκτελέσει την απαραίτητη επεξεργασία του αποτελέσµατος όταν ολοκληρωθεί η εφαρµογή. Μια συναλλαγή µπορεί να ολοκληρωθεί µε δύο τρόπους: µε δέσµευση (commit) ή µε ακύρωση (abort). Όταν µια συναλλαγή δεσµεύεται, όλες οι αλλαγές που προκλήθηκαν από λειτουργίες της εφαρµογής γίνονται µόνιµες (γράφονται σε κάποιο µέσο µόνιµης αποθήκευσης, όπως ο δίσκος). Όταν µια συναλλαγή ακυρώνεται, όλες οι αλλαγές που έγιναν κατά τη διάρκειά της αναιρούνται. Τα περισσότερα συστήµατα συναλλαγών που λειτουργούν σήµερα υλοποιούν συναλλαγές ACID. Για να επιτύχουν ατοµικότητα µεταξύ των υπηρεσιών Ιστού οι οποίες προσπελάζονται από την εφαρµογή, χρησιµοποιούν ένα πρωτόκολλο δύο φάσεων. Η υπηρεσία συναλλαγών καθορίζει ρόλους, στους οποίους ένας συντονιστής ενεργεί για λογαριασµό της εφαρµογής µε στόχο την ενορχήστρωση της επεξεργασίας της έκβασης µεταξύ των συµµετεχουσών υπηρεσιών Ιστού (δείτε το Σχήµα 11-2).

11 Συναλλαγές 259 Σχήµα 11-2 Ρόλοι υπηρεσίας συναλλαγών. Φάση 1: Προετοιµασία (preparation) Κατά τη διάρκεια της πρώτης φάσης του πρωτοκόλλου ατοµικών συναλλαγών, ο συντονιστής ζητάει από τους συµ- µετέχοντες να ψηφίσουν για την έκβαση της συναλλαγής. Όλοι οι συµµετέχοντες δίνουν τη δική τους άποψη για την έκβαση της συναλλαγής, αποκρινόµενοι είτε θετικά είτε αρνητικά στην αίτηση για ψηφοφορία. Φάση 2: Έκβαση (Outcome) Κατά τη διάρκεια της δεύτερης φάσης του πρωτοκόλλου ατοµικών συναλλαγών, ο συντονιστής, έχοντας συγκεντρώσει τις αποκρίσεις της προετοιµασίας, ενηµερώνει τους συµµετέχοντες για την έκβαση της συναλλαγής. Κατά τη διάρκεια της πρώτης φάσης, ο συντονιστής στέλνει την αίτηση για ψηφοφορία στους συµµετέχοντες ως λειτουργία Prepare. Οι συµµετέχοντες πρέπει να κάνουν µόνιµες οποιεσδήποτε αλλαγές κατάστασης εµφανίστηκαν κατά τη διάρκεια της συναλλαγής. Αυτό τους επιτρέπει είτε να δεσµεύσουν είτε να ακυρώσουν αυτές τις αλλαγές αργότερα, αφού έχουν προσδιορίσει τη συνολική έκβαση της συναλλαγής (δείτε Φάση 1 στο Σχήµα 11-3). Με την προϋπόθεση ότι δεν παρουσιάστηκαν αστοχίες κατά τη διάρκεια της πρώτης φάσης, ο συντονιστής στέλνει την έκβαση στους συµµετέχοντες ως µια λειτουργία Commit δεύτερης φάσης. Οι συµµετέχοντες µπορούν να αντικαταστήσουν την αρχική κατάσταση της υπηρεσίας Ιστού µε την κατάσταση που έγινε µόνιµη κατά τη διάρκεια της πρώτης φάσης (δείτε Φάση 2 στο Σχήµα 11-3).

260 Μέρος 5: Αξιόπιστη αλληλεπίδραση Σχήµα 11-3 Πρωτόκολλο δέσµευσης δύο φάσεων επιτυχία. Ωστόσο, αν κατά τη διάρκεια της πρώτης φάσης παρουσιαστεί κάποιο πρόβληµα (υπάρχει κάποια ψήφος όχι στην αίτηση για ψηφοφορία δείτε το Σχήµα 11-4, Φάση 1), ο συντονιστής στέλνει την έκβαση ως λειτουργία Rollback δεύτερης φάσης σε όλους τους συµµετέχοντες (δείτε το Σχήµα 11-4, Φάση 2). Οι συµµετέχοντες ακυρώνουν την εργασία που εκτελέστηκε κατά τη διάρκεια της συναλλαγής, και επαναφέρουν την υπηρεσία Ιστού στην αρχική κατάσταση που είχε πριν από τη συναλλαγή. Σχήµα 11-4 Πρωτόκολλο δέσµευσης δύο φάσεων αποτυχία.

11 Συναλλαγές 261 Για την εγγύηση της οµοφωνίας, η δέσµευση δύο φάσεων αποτελεί απαραίτητα ένα πρωτόκολλο µε µπλοκάρισµα. Μετά την επιστροφή της απόκρισης στη Φάση 1, κάθε συµµετέχων που επιστρέφει µια απόκριση Prepared πρέπει να παραµείνει µπλοκαρισµένος µέχρι να λάβει το µήνυµα της Φάσης 2 από το συντονιστή. Μέχρι ο συµµετέχων να λάβει αυτό το µήνυµα, οποιοιδήποτε πόροι που χρησιµοποιεί θα είναι µη διαθέσιµοι προς χρήση από άλλες συναλλαγές, επειδή κάτι τέτοιο θα µπορούσε να παραβιάσει την ιδιότητα Αποµόνωσης της συµπεριφοράς ACID. Ένα τέτοιο κλασικό πρωτόκολλο ACID λέγεται ότι είναι ένα καλά ορισµένο πρωτόκολλο δύο φάσεων. Είναι καλά ορισµένο, αν όλες οι λειτουργίες του καλύπτονται από αντίστοιχα κλειδώ- µατα, και είναι δύο φάσεων, αν το πρωτόκολλο κλειδώµατος αποκτά και αποδεσµεύει κλειδώµατα σε ξεχωριστές φάσεις κλειδώµατος και ξεκλειδώµατος, έτσι ώστε κανένα ξεκλείδωµα να µην προηγείται ενός κλειδώµατος για οποιαδήποτε λειτουργία. Το Σχήµα 11-5 δείχνει ότι όλες οι υπηρεσίες Ιστού που χρησιµοποιεί η εφαρµογή παραµένουν µπλοκαρισµένες, και τα αποτελέσµατα είναι µη διαθέσιµα µέχρι να ολοκληρωθεί η συναλλαγή. Αν παρουσιαστεί βλάβη στο συντονιστή πριν την παράδοση του µηνύµατος της δεύτερης φάσης, αυτοί οι πόροι παραµένουν µπλοκαρισµένοι µέχρι να ανακάµψει η συναλλαγή. Σχήµα 11-5 Κλασική συναλλαγή.

262 Μέρος 5: Αξιόπιστη αλληλεπίδραση 11.2.2 Επιχειρηµατικές συναλλαγές Οι περισσότερες επιχειρηµατικές εφαρµογές (εργασιακή ροή, διεπιχειρησιακή συνεργασία) πρέπει να καταλήγουν σε κάποιο αµοιβαία συµφωνηθέν αποτέλεσµα. Ωστόσο, ορισµένα χαρακτηριστικά των εν λόγω εφαρµογών αποκλείουν την απλή εφαρµογή των κλασικών πρωτοκόλλων συναλλαγών ACID. Αυτά τα χαρακτηριστικά είναι τα εξής: ραστηριότητα µεγάλης διάρκειας 1. Οι υπηρεσίες Ιστού που προσπελάζονται από µια επιχειρηµατική εφαρµογή ίσως να χρειάζονται περισσότερο χρόνο για να αποκριθούν, και η συνολική εφαρµογή µπορεί να παραµένει ενεργός για ε- κτεταµένες χρονικές περιόδους (λεπτά, ώρες, ηµέρες, εβδοµάδες). Η δυνατότητα της εφαρµογής να εφαρµόζει επιχειρηµατική λογική για το χειρισµό αστοχιών και τη συνέχιση της επεξεργασίας όταν κάτι πηγαίνει στραβά µε µια συγκεκριµένη αίτηση υπηρεσίας Ιστού. Η δυνατότητα επιλογής των υπηρεσιών Ιστού που θα συµπεριλαµβάνονται στη γενική έκβαση της συναλλαγής. Εφαρµογές που εκτείνονται συνήθως σε πολλούς επιχειρηµατικούς τοµείς, µέσα στους οποίους οι υλοποιήσεις των υπηρεσιών Ιστού γενικά µπορεί να µην επιτρέπουν τη δέσµευση των πόρων τους από κάποια εξωτερική οντότητα. Εποµένως, οι επιχειρηµατικές συναλλαγές απαιτούν έναν µηχανισµό ο οποίος θα παρακολουθεί τις υπηρεσίες Ιστού που προσπελάζει η εφαρµογή, θα καθορίζει ποιες υ- πηρεσίες Ιστού συµπεριλαµβάνονται στη συναλλαγή, και θα παρέχει κοινή επεξεργασία αποτελέσµατος σε όλη την έκταση ενός τέτοιου περιβάλλοντος. Σε τέτοια περιβάλλοντα, η χρήση αποκλειστικά κλασικών αρχιτεκτονικών συναλλαγών είναι δύσκολη, αν όχι αδύνατη. Οι εφαρµογές µεγάλης διάρκειας που εκτελούνται αποκλειστικά µε τη χρήση ιδιοτήτων συναλλαγών ACID, παρουσιάζουν ορισµένα σηµαντικά προβλήµατα. Η διάρκεια της εφαρµογής θα µπορούσε να σηµαίνει ότι το επίπεδο ταυτοχρονισµού που παρέχεται από µια κλασική συναλλαγή πρέπει να περιοριστεί σηµαντικά, ανάλογα µε τις προσεγγίσεις που υιοθετούνται για την παροχή απο- µόνωσης (όπως το κλείδωµα). Οι αστοχίες αντιµετωπίζονται διαφορετικά ώστε να αποφεύγεται η επανάληψη σηµαντικών ποσοτήτων εργασίας, καθώς οι συναλλαγές ACID θα ακυρώσουν όλη την 1 Ορισµός: Μια δραστηριότητα ορίζεται ως υπολογιστική µονάδα αποτελούµενη από ένα πλήθος εργασιών οι οποίες διεκπεραιώνονται από µία ή περισσότερες υπηρεσίες Ιστού.

11 Συναλλαγές 263 εργασία που έχει διεκπεραιωθεί και όχι ένα µέρος της. Ορισµένες υπηρεσίες Ιστού µπορεί να µην συµπεριληφθούν στη συνολική επεξεργασία αποτελέσµατος όταν µια εφαρµογή προτιµήσει να επιλέξει µεταξύ εναλλακτικών αποτελεσµάτων (όπως η επιλογή του παρόχου µε το χαµηλότερο κόστος από πολλούς πιθανούς προµηθευτές). Η επιχειρηµατική λογική των τυπικών συστηµάτων διαχείρισης επιχειρηµατικών διαδικασιών υποστηρίζει σύνθετες διαδικασίες µεγάλης διάρκειας, όπου η αναίρεση των εργασιών που έχουν ήδη ολοκληρωθεί µπορεί να είναι πιο κατάλληλη λύση για λόγους ανάκαµψης. Εναλλακτικά, η επιχειρηµατική διαδικασία µπορεί να επιλέξει µια άλλη αποδεκτή διαδροµή εκτέλεσης για την περαιτέρω συνέχιση της επεξεργασίας. (Όπως δείχνει το Σχήµα 11-6, η εφαρµογή αποφασίζει ότι η κράτηση πρέπει να περιλαµβάνει µόνο τα αεροπορικά εισιτήρια και το ξενοδοχείο, και ακυρώνει την ενοικίαση αυτοκινήτου.) Σχήµα 11-6 Επιχειρηµατική συναλλαγή. Σε τέτοια σενάρια, οι ιδιότητες µιας συναλλαγής ACID πρέπει να χαλαρώσουν, ώστε να παράσχουν αυτό που συνήθως αναφέρεται ως εκτεταµένες συναλλαγές (extended transactions). Ένα µοντέλο εκτεταµένων συναλλαγών, για παράδειγµα, θα µπορούσε να χαλαρώσει την ιδιότητα αποµόνωσης έτσι ώστε ταυτόχρονοι χρήστες να µπορούν να παρατηρήσουν τις ενδιάµεσες ενηµερώσεις λειτουργιών, ή σε περιπτώσεις όπου απαγορεύεται η διατήρηση κλειδωµάτων από λειτουργίες σε µια ανεξάρτητη υπηρεσία Ιστού (λόγου χάρη, για να δει κάποιος τη σύνοψη των πτήσεων ώστε να ελέγξει την τρέχουσα διαθεσιµότητα θέσεων). Το Σχήµα 11-6 παρουσιάζει τις υπηρεσίες Ι- στού που χρησιµοποιεί η εφαρµογή, όπου τα αποτελέσµατα των λειτουργιών πτήσης,

264 Μέρος 5: Αξιόπιστη αλληλεπίδραση ξενοδοχείου, και ενοικίασης αυτοκινήτου είναι διαθέσιµα πριν την ολοκλήρωση της συναλλαγής. Όπως θα δείτε, πρωτόκολλα, όπως η Επιχειρηµατική ραστηριότητα WS, εµπίπτουν σε αυτό το εκτεταµένο φάσµα συναλλακτικής συµπεριφοράς, το οποίο παρέχει έναν ποικίλο βαθµό λειτουργικότητας σχετικό µε κάθε µία από τις ιδιότητες συναλλαγών ACID. Σε ορισµένες κατηγορίες εφαρµογών είναι γνωστό ότι πόροι που αποκτώνται µέσα σε µια συναλλαγή µπορούν να αποδεσµευτούν νωρίς, έτσι ώστε να µη χρειάζεται να περιµένετε µέχρι να τελειώσει ολόκληρη η συναλλαγή. Αν υιοθετήσετε µια τέτοια στρατηγική, και αν η συνολική συναλλαγή ακυρωθεί, ίσως χρειαστεί να λάβετε ορισµένα µέτρα ώστε να επαναφέρετε το σύστηµα σε συνεπή κατάσταση. Ίσως χρειαστεί να πραγµατοποιήσετε αντιστάθµιση (compensation) των πόρων που έχουν αποδεσµευτεί νωρίς. Αυτό παρουσιάζεται στο Σχήµα 11-6. Επειδή οι υπηρεσίες Ιστού γίνονται διαθέσιµες πριν την ολοκλήρωση της συναλλαγής, η ακύρωση της λειτουργίας ενοικίασης αυτοκινήτου σηµαίνει ότι πρέπει να εκτελέσετε αντιστάθµιση. Τέτοια είδους ανάκαµψη µέσω αντιστάθµισης ή δραστηριοτήτων χειρισµού σφαλµάτων (που µπορεί να εκτελούν ανάκαµψη προώθησης ή οπισθοδρόµησης forward/backward recovery) διαφέρει συνήθως από εφαρµογή σε εφαρµογή, µπορεί να µη χρειάζεται καθόλου, ή ίσως να µπορεί να αντιµετωπιστεί αποτελεσµατικότερα από την εφαρµογή. Εποµένως, ένα µοντέλο εκτεταµένων συναλλαγών είναι συνήθως πιο κατάλληλο για µεγάλες αλληλεπιδράσεις. Για παράδειγµα, ένα σύστηµα αεροπορικών κρατήσεων θα µπορούσε να κρατήσει µια θέση σε µια πτήση για ένα άτοµο για ένα συγκεκριµένο χρονικό διάστηµα. Ωστόσο, αν το άτοµο αυτό δεν επιβεβαιώσει την κράτηση µέσα σε εκείνο το διάστηµα, το σύστηµα θα χρησιµοποιήσει τη θέση για κάποιον άλλο επιβάτη. Η υποστήριξη συναλλαγών εξασφαλίζει ότι παρατηρείται η κατάλληλη έκβαση σε όλες τις εργασίες που αποτελούν την επιχειρηµατική δραστηριότητα µέσα στην εφαρ- µογή. Όπως αναφέρθηκε προηγουµένως, τα αποτελέσµατα µιας εργασίας µπορεί να γίνουν διαθέσιµα πριν την ολοκλήρωση της συνολικής επιχειρηµατικής εφαρµογής ή δραστηριότητας. Για να κατανοήσετε καλύτερα τις επιχειρηµατικές συναλλαγές, µπορείτε να φανταστείτε το σχετικά απλό σενάριο της διευθέτησης τρόπου µετακίνησης και καταλύµατος για µια διάσκεψη (δείτε το Σχήµα 11-7). Συνήθως, ένας συµµετέχων χρειάζεται µεταφορά στην πόλη όπου θα γίνει η διάσκεψη (µέσω αεροπλάνου, τραίνου, ή αυτοκινήτου), στέγαση σε ένα ξενοδοχείο (πολυτελείας, απλό, ή οικονοµικό), και ενδεχο- µένως άλλες σχετικές κρατήσεις στον τόπο της διάσκεψης (την ενοικίαση ενός αυτοκίνητου ή κάποιον άλλο τρόπο για τις τοπικές µετακινήσεις, κρατήσεις εστιατορίων, ή εισιτήρια για ψυχαγωγικές εκδηλώσεις).

11 Συναλλαγές 265 Σχήµα 11-7 Σενάριο διευθέτησης ταξιδιού. Κατά τη διάρκεια της εργασίας, ο ταξιδιωτικός πράκτορας πρέπει να µπορεί να πραγ- µατοποιήσει επιµέρους κρατήσεις που φαίνονται κατάλληλες ενώ επεξεργάζεται τη γενική συναλλαγή. Η εφαρµογή πρέπει να εκπληρώσει την απαίτηση του ταξιδιωτικού πράκτορα ώστε να ικανοποιηθούν οι ανάγκες του συµµετέχοντος στη διάσκεψη, δίνοντας παράλληλα στους παρόχους των υπηρεσιών Ιστού την αυτονοµία να διατηρήσουν τον έλεγχο των δικών τους πόρων (όπως αερογραµµές, ξενοδοχεία, γραφεία ε- νοικίασης, και εστιατόρια). Οι εργασίες που απαιτούνται για την κράτηση είναι αλληλένδετες µέσα σε αυτή την επιχειρηµατική εφαρµογή, ωστόσο δεν είναι απαραίτητα προκαθορισµένες. Οι εργασίες πρέπει να προχωρήσουν ανεξάρτητα η µία από την άλλη, αλλά όλες οι προκύπτουσες επιλογές πρέπει να οµαδοποιηθούν σε µία και µοναδική κράτηση. Ο ταξιδιωτικός πράκτορας προσφέρει ένα εύρος από ταξιδιωτικές επιλογές οι οποίες αντικατοπτρίζουν προτιµήσεις ή κριτήρια πελατών βασισµένα σε παράγοντες όπως το κόστος, το πρόγραµµα, ή η διαθεσιµότητα. Όταν ο ταξιδιωτικός πράκτορας εκτελεί µια εργασία µε έναν πάροχο υπηρεσιών Ιστού, έχει τη δυνατότητα να συµπεριλάβει ή να µην συµπεριλάβει την εργασία αυτή στην τελική κράτηση, ανάλογα µε την επιλογή που κάνει ο πελάτης.

266 Μέρος 5: Αξιόπιστη αλληλεπίδραση Για παράδειγµα, ο πελάτης ίσως πρέπει να ταξιδέψει σε συγκεκριµένες ώρες, ή µπορεί να έχει περισσότερη ευελιξία και να θέλει να εξετάσει τις επιλογές οικονοµικών ταξιδιών. Ο ταξιδιωτικός πράκτορας θα εκτελέσει τις εργασίες αναζητώντας κρατήσεις από διάφορες αερογραµµές. Με βάση το πρόγραµµα, το κόστος, τις χρηµατικές κυρώσεις σε περίπτωση ακύρωσης, κ.ο.κ., η αεροπορική εταιρία θα πραγµατοποιήσει µια κράτηση, και ο πελάτης θα επιλέξει µια πτήση. Η επιλεγµένη πτήση θα προστεθεί στις συµπεριλαµβανόµενες εργασίες κατά την επιβεβαίωση της γενικής συναλλαγής. Οι υπόλοιπες πτήσεις θα ακυρωθούν χωρίς να επηρεάσουν τη γενική κράτηση. Επιπρόσθετα, η απόφαση για µια συγκεκριµένη επιλογή θα µπορούσε να επηρεάσει άλλες εργασίες για παράδειγµα, µια πτήση σε µια συγκεκριµένη ηµεροµηνία µπορεί να καθορίσει συγκεκριµένες ανάγκες του πελάτη για κατάλυµα. 11.3 Αρχιτεκτονικές έννοιες 11.3.1 Ορισµός αρχιτεκτονικών όρων των συναλλαγών Στην προηγούµενη ενότητα περιγράφηκαν µερικές από τις βασικές αρχές των συναλλαγών και η εφαρµογή τους σε παραδείγµατα σεναρίων. Η επόµενη ενότητα τοποθετεί αυτή την περιγραφή στο πλαίσιο των υπηρεσιών Ιστού, και προσδιορίζει τις προδιαγραφές που παρέχουν το γενικό αρχιτεκτονικό πλαίσιο εργασίας για την υποστήριξη συναλλαγών στον κόσµο των υπηρεσιών Ιστού. Συντονισµός Η προδιαγραφή Συντονισµού WS (WS-Coordination) καθορίζει ένα γενικό πλαίσιο εργασίας, το οποίο επιτρέπει σε µια εφαρµογή να προσδιορίζει σχετικές λειτουργίες στις διάφορες υπηρεσίες Ιστού, και κάνει δυνατή τη διαχείριση οποιασδήποτε απαραίτητης επεξεργασίας κατά την ολοκλήρωση της δραστηριότητας. Ο Συντονισµός WS καθορίζει πρωτόκολλα και υπηρεσίες που κάνουν τα εξής: Παρέχουν ένα θεµατικό πλαίσιο (context) για τον προσδιορισµό λειτουργιών υπηρεσιών Ιστού ως µέρος µιας συγκεκριµένης δραστηριότητας Επιτρέπουν σε υπηρεσίες Ιστού να εκδηλώσουν ενδιαφέρον για τη συµµετοχή στην έκβαση µιας δραστηριότητας Επιτρέπουν την επιλογή ενός πρωτοκόλλου συντονισµού το οποίο θα εκτελείται µεταξύ της υπηρεσίας συντονισµού και των συµµετεχουσών υπηρεσιών Ι- στού κατά την ολοκλήρωση της δραστηριότητας