Γικησοκενηρικά Πληροθοριακά Σσζηήμαηα Μαρίνος Θεμιζηοκλέοσς Email: mthemist@unipi.gr Αλδξνύηζνπ 150 Γξαθείν 206 Τει. 210 414 2723 Ώξεο Γξαθείνπ: Τεηάξηε 5-6 κκ
M A N A G E M E N T Η Τετνολογική Σηοίβα ηων Web Services Choreography-CDL4WS Orchestration BPEL4WS Web Services Reliability Web Services Security UDDI WSDL SOAP XML HTTP, JMS, SMTP Transactions Coordination Context Business Processes Quality of Service Discovery Description Message Transport
Τετνολογική Υποδομή WS Enabling Technology Standards Core Services Standards Service Composition and Collaboration Standards
Enabling Technology Standards XML: Τν ζεκειηώδε δνκηθό ζηνηρείν ησλ WS ζρεδόλ γηα όια ηα επίπεδα HTTP: Μεηαθνξά κελπκάησλ
SOAP: WSDL: Core Services Standards XML based protocol Αληαιιαγή κελπκάησλ κεηαμύ WS Πξνζπέιαζε firewalls κέζσ HTTP Μνληέιν αίηεζεο - απόθξηζεο Τππνπνηεκέλνο ηξόπνο πεξηγξαθήο δεδνκέλσλ θαη ιεηηνπξγηώλ WS Οξίδεη ηελ XML ζύληαμε γηα ηελ πεξηγξαθή WS ππό ηε κνξθή επηθνηλσληαθώλ άθξσλ ηθαλώλ λα αληαιιάδνπλ κελύκαηα
Core Services Standards UDDI Γεκόζην επξεηήξην δεκνζίεπζεο on-line WS Υπνζηεξίδεη ηνλ εληνπηζκό ησλ WS Παξέρνπλ ζπλδέζεηο πξνο ην WDSL
Service Composition and Collaboration Standards Service Composition Πεξηγξάθνπλ ηε ινγηθή εθηέιεζεο ησλ WS Πεξηγξάθνπλ ηα rules, control flows Βνεζνύλ ζηελ νινθιήξσζε ησλ ΔΓ Service Collaboration Γηεπηρεηξηαζηαθόο ζπληνληζκόο (Choreography)
QoS Ποιότητα Υπηρεσιών (Quality of Service) αλαθέξεηαη ζηελ δπλαηόηεηα ησλ web services λα αληαπνθξίλνληαη ζε αλακελόκελεο θιήζεηο ιεηηνπξγηώλ θαη λα ηηο πινπνηνύλ ζε επίπεδν αλάινγν ησλ απαηηήζεσλ ηνπ πάξνρνπ αιιά θαη ηνπ πειάηε.
QoS Τα θύξηα ζπζηαηηθά γηα ηελ ππνζηήξημε Ποιότητας Υπηρεσιών ζε έλα πεξηβάιινλ Web Services, είλαη πεξηιεπηηθά: Γηαζεζηκόηεηα Πξνζβαζηκόηεηα Σπκκόξθσζε ζηα πξόηππα Αθεξαηόηεηα Απόδνζε Αμηνπηζηία Κιηκάθσζε Αζθάιεηα Γηεθπεξαίσηηθόηεηα
Service Level Agreement (SLA) Ο ηξόπνο δηαζθάιηζεο ησλ αμηώζεσλ αλάκεζα ζε ζπλεξγάηεο, επηρεηξεκαηηθέο κνλάδεο, εμσηεξηθέο ππεξεζίεο θαη νξγαληζκνύ είλαη κέζσ ηνπ Service Level Agreement SLA
QoS Service Level Agreement SLA είλαη έλα επίζεκν ζπκθσλεηηθό κεηαμύ ησλ δπν πιεπξώλ, ηππνπνηεί ηηο ιεπηνκέξεηεο κηαο Web Service κε όξνπο θνηλήο απνδνρήο
QoS Μηα SLA κπνξεί λα πεξηέρεη ηα εμήο κέξε: Σθνπόο Μέξε Πεξίνδνο ηζρύνο Αληηθείκελν Πεξηνξηζκνύο Δπίπεδν ππεξεζηώλ Κπξώζεηο Δπηπξόζζεηεο ππεξεζίεο Απνθιεηζζέληεο όξνη Γηαρεηξηζηήο
SOAP: Simple Object Access Protocol
Αδσναμίες Σσμβαηικών Πρωηοκόλλων CORBA, Java RMI Πξσηόθνιια επηθνηλσλίαο server-to-server Σεκαληηθά κεηνλεθηήκαηα ζε client-to-server Πην έληνλα ζε θαηαλεκεκέλα πεξηβάιινληα Σε θάζε ζύλδεζε απαηηνύλ ηελ ρξήζε ηνπ ΙΓΙΟΥ θαηαλεκεκέλνπ αληηθεκελνζηξεθή κνληέινπ θαη ηελ αλάπηπμε θνηλώλ βηβιηνζεθώλ
SOAP Τν SOAP ιύλεη απηό ην πξόβιεκα Παξέρεη δηαιεηηνπξγηθόηεηα κεηαμύ εηεξνγελώλ πιαηθόξκσλ πινπνίεζεο De facto standard πξσηόθνιιν επηθνηλσλίαο γηα WS Σηόρνο ηνπ είλαη ε επηθνηλσλία κεηαμύ εθαξκνγώλ Κσδηθνπνηεί θαη ρξεζηκνπνηεί XML πξνθεηκέλνπ λα εμππεξεηήζεη ηελ επηθνηλσλία request-response Φξεζηκνπνηεη ηελ HTTP σο κέζν επηθνηλσλίαο
Τι Κάνει ηο SOAP; Οξίδεη έλα κνληέιν επηθνηλσλίαο γηα ρξήζε απιώλ κελπκάησλ αίηεζεο απόθξηζεο Τα κελύκαηα απηά είλαη γξακκέλα ζε XML Τν κνληέιν απηό είλαη ην βαζηθό πξσηόθνιν γηα ηελ ειεθηξνληθή επηθνηλσλία
SOAP: Ένα Πρωηόκολλο Φαμηλού Βάροσς Έρεη κόλν δύν ηδηόηεηεο Να ιάβεη/ζηείιεη παθέηα επηθνηλσλίαο κέζσ HTTP Να δηαρεηξηζηεί XML κελύκαηα Wire Protocol: Οξίδεη ηε κνξθή ησλ δεδνκέλσλ πνπ ζα αληαιιαγνύλ
Ιδιόηηηες Wire Protocols Compactness: Πόζν πεξηεθηηθό γίλεηαη έλα παθέην θαηά ηελ επηθνηλσλία Protocol Efficiency Απνδνηηθόηεηα πξσηνθόιινπ Coupling (ηξόπνο έλσζεο): πνζνζηό αιιαγώλ πνπ πξέπεη λα θάλεη ε εθαξκνγή πειάηε Scalability (Δπεθηαζηκόηεηα) ζηε ρξήζε πνιιώλ παξαιεπηώλ Interoperability (Γηαιεηηνπξγηθόηεηα)
Ιδιόηηηες XML και SOAP Φαιαξέο ζπλδέζεηο Γηαιεηηνπξγηθόηεηα Scalable (κέζσ HTTP) Αιιά απηέο νη ηδηόηεηεο ηνπο επεξεάδνπλ ηελ απνδνηηθόηεηα θαη ηελ πεξηεθηηθόηεηα Τν γεγνλόο όηη θαη ηα δύν ζηεξίδνληαη ζε πξσηόθνιια εγγξάθσλ ηα θάλεη κε απνδνηηθά! Καλέλα Πξσηόθνιιν δελ έρεη όιεο ηηο ηδηόηεηεο ησλ Wire Protocols
SOAP Σηόρνο: Αληαιιαγή δεδνκέλσλ κέζσ δηθηύσλ Σπκππθλώλεη θαη θσδηθνπνηεί XML δεδνκέλα Οξίδεη θαλόλεο γηα ηε κεηάδνζε-ιήςε Γηθηπαθό πξσηόθνιιν πνπ κεηαδίδεη κελύκαηα κεηαμύ WS πνπ πεξηγξάθνληαη κέζσ WSDL δηεπαθώλ Πεξηγξάθεη ην ΠΩΣ έλα κήλπκα θσδηθνπνηείηαη Γελ πξνζδηνξίδεη ηνλ ηξόπν κεηαθνξάο ηνπ
Το Γίκησο Δπικοινωνίας και Μηνσμάηων ηων Web Services Web Services Web Services Γηεπαθή WSDL Γηεπαθή WSDL Μελύκαηα SOAP Πξσηόθνιν Μεηαθνξάο (π.ρ.http) TCP/IP
SOAP Stateless one way κεραληζκόο αληαιιαγήο δεδνκέλσλ Οξίδεη έλαλ απιό κεραληζκό πνπ νξίδεη έλα κνληέιν παθεηνπνίεζεο θαη έλα κεραληζκό γηα ηελ θσδηθνπνίεζε ησλ δεδνκέλσλ κεηαμύ ησλ εθαξκνγώλ Οη εθαξκνγέο κπνξνύλ λα δεκηνπξγήζνπλ ζύλζεηεο παηέληεο επηθνηλσλίαο ζπλδπάδνληαο ραξαθηεξηζηηθά ζηνηρεία πνπ βξίζθνληαη ζε θαηώηεξα από ην SOAP επίπεδα
SOAP Γελ αζρνιείηαη κε Γξνκνιόγεζε δεδνκέλσλ Αμηόπηζηε κεηάδνζε δεδνκέλσλ Πξνζπέιαζε Firewalls θιπ Παξέρεη πιήξε πεξηγξαθή γηα ηηο απαηηνύκελεο ελέξγεηεο πνπ ρξεηάδνληαη από έλα θόκβν SOAP γηα ηε ιήςε ελόο SOAP κελύκαηνο
Καηανεμημένη Ανηαλλαγή Μηνσμάηων με Φρήζη SOAP Web Service Requestor Δθαξκνγή Πειάηε 1 6 Web Service Provider Δθαξκνγή Web Service 5 4 3 Υπνδνκή Υινπνίεζεο Web Service SOAP Μήλπκα XML Αξρείν SOAP Server 2 Πξσηόθνιν Μεηαθνξάο Γηθηύνπ (HTTP) Firewall Πξσηόθνιν Μεηαθνξάο Γηθηύνπ (HTTP)
SOAP Τν SOAP ιεηηνπξγεί σο κεραληζκόο ζύλδεζεο κεηαμύ 2 αιιειεπηδξώλησλ άθξσλ επηθνηλσλίαο Έλα άθξν HTTP URL πνπ πξνζδηνξίδεη/βξίζθεη κία κέζνδν γηα εθηέιεζε Δπηηξέπεη επέιηθηε ζύλδεζε Παξάδεηγκα Έλα WS παξέρεη 2 bindings Ο πειάηεο κπνξεί λα ππνβάιεη έλα αίηεκα SOAP ρξεζηκνπνηώληαο είηε HTTP είηε email κέζσ SMTP
SOAP Γηα απιά WS: Τν SOAP πξνζδηνξίδεη κία δνκή γηα απιή αληαιιαγή κελπκάησλ Γηα απηνκαηνπνίεζε ΔΓ ή όηαλ εκπιέθνληαη ζύλζεηα WS απαηηείηαη ε ρξήζε πνιιάπιώλ κελπκάησλ Έηζη ζπλήζσο ρξεζηκνπνηείηαη επηθνλσλία ρσξίο fixed παηέληα Σε απηή ηελ πεξίπησζε ην body ηνπ SOAP νξίδεη ην πνηνο ζα ζηείιεη ην κήλπκα ή πόηε ζα ζηαιεί ην επόκελν κήλπκα
Παηένηες Ανηαλλαγής Μηνσμάηων SOAP Απνζηνιέαο SOAP Message Παξαιήπηεο Request Message Απνζηνιέαο Παξαιήπηεο Response Message
Γομή Μηνσμάηων SOAP <Envelope> 0...1 <Header> 1 <Body> 1...* <Header Block> <Body Entry>
SOAP Envelope Ο ζθνπόο ηεο SOAP είλαη λα παξέρεη έλαλ εληαίν ηξόπν κεηαθνξάο κελπκάησλ κεηαμύ δπν ηειηθώλ άθξσλ.
SOAP Envelope Ο θάθεινο < Envelope> ηεο SOAP θαζνξίδεη έλα πιαίζην πνπ πεξηγξάθεη: ην πεξηερόκελν ελόο κελύκαηνο θαη ηνλ ηξόπν επεμεξγαζίαο
SOAP Envelope <?xml version= 1.0 e ncoding= UTF-8?> <env:envelope> xmlns:env= http://www.w3.org/2003/05/soap-envelope > <env:header> <!--optional--> <! header blocks go here --> </env:header> <env:body> <!--payload or Fault element goes here --> </env:body> </env:envelope>
SOAP Envelope Τν πξνεγνύκελν παξάδεηγκα δείρλεη έλα κήλπκα SOAP, ην ζηνηρείν <Envelope> είλαη ην ζηνηρείν ξίδα (root element), Απηό κπνξεί λα πεξηέρεη πξναηξεηηθά έλα ηκήκα <Header> θαη έλα ππνρξεσηηθό ηκήκα ην <Body>.
SOAP Envelope Δάλ ρξεζηκνπνηεζεί <Header> πξέπεη λα είλαη άκεζν παηδί ηνπ < Envelope> θαη λα πξνεγείηαη ηνπ <Body>.
SOAP Envelope Όια ηα κέξε ηνπ SOAP πξνζδηνξίδνληαη ρξεζηκνπνηώληαο ην W3C XML schema Σην SOAP ηα namespaces δειώλνληαη σο ζπλήζσο κε xmlns ιέμεηο θιεηδηά.
SOAP Envelope Γηα ηελ αλαγλώξηζε ηνπ tag ηνπ θαθέινπ, σο ην namespace ηνπ SOAP v1.2 απαηείηαη ε ρξήζε ηνπ URI: http://www.w3.org/2003/05/soap-envelope
SOAP Envelope Τν SOAP πξνζδηνξίδεη έλα κνληέιν δεδνκέλσλ πνπ κπνξεί λα ρξεζηκνπνηεζεί γηα ηελ απεηθόληζε απζαίξεησλ δνκώλ δεδνκέλσλ: π.ρ. αθεξαίνπο, πίλαθεο, αξρεία θαη έπεηηα θαζνξίδεη ηνπο θαλόλεο ηεο κεηάδνζεο.
SOAP Envelope <env:envelope> xmlns:env= http://www.w3.org/2003/05/soap-envelope env:encodingstyle= http://schemas.xmlsoap.org/soap/encoding/ > </env:envelope>
SOAP Header Τν ζηνηρείν <Envelope> κπνξεί λα πεξηέρεη έλα ηκήκα <Header> ην νπνίν πεξηέρεη όια ηηο ππνδείμεηο επεμεξγαζίαο.
SOAP Header Τν ζηνηρείν <Header> κπνξεί λα πεξηέρεη πιεξνθνξίεο γηα: ην πνπ ζα ζηαιεί ην έγγξαθν, ην πνπ δεκηνπξγήζεθε, κπνξεί λα πεξηέρεη θαη ςεθηαθέο ππνγξαθέο.
SOAP Header Απηνύ ηνπ ηύπνπ νη πιεξνθνξίεο πξέπεη λα βξίζθνληαη ρσξηζηά από ην SOAP <Body> ην νπνίν είλαη ππνρξεσηηθό θαη πεξηέρεη ην XML έγγξαθν (SOAP payload). Ο ζθνπόο ηνπ <Header> είλαη λα ζπκπεξηιάβεη πξνεθηάζεηο ζηελ θόξκα ηνπ κελύκαηνο ρσξίο λα ρξεηάδεηαη λα ηηο εληάμεη ζην XML κήλπκα ή λα δηαθνξνπνηήζεη ηελ βαζηθή δνκή ηνπ SOAP.
SOAP Header Τν <Header> ηνπ SOAP παξέρεη έλα κεραληζκό γηα παξνρή πεξηζζόηεξσλ πιεξνθνξηώλ πνπ πξνζδηνξίδνπλ ην XML αξρείν ην νπνίν κεηαθέξεη ην <Body>. Δπίζεο, ην <Header> παξέρεη επεθηαζηκόηεηα, δειαδή επηπξόζζεηεο πιεξνθνξίεο ζρεηηθέο κε ζπγθεθξηκέλεο ππεξεζίεο, όπσο νη απαηηήζεηο αζθάιεηαο.
SOAP Message Έλα κήλπκα SOAP κεηαθέξεηε κέζσ ηνπ κνλνπαηηνύ κελπκάησλ πνπ δεκηνπξγείηαη αλάκεζα ζε απνζηνιέα θαη απνδέθηε.
SOAP Message SOAP header SOAP v1.1 Code module SOAP v1.2 Code module Header block Header block Message ID Code module Message ID 2 Code module Digital Signature Code module SOAP body Message body Purchase order Code module Other Code module
SOAP Message Ultimate receiver (1) Submit digitally Signed purchase order Purchasing Service node Customer node Initial sender Signature validation Service node Intermediary node
SOAP Body Τν <Body> είλαη ε πεξηνρή ηνπ κελύκαηνο ηεο SOAP όπνπ κεηαθέξεη ην αξρείν XML. Τν ζηνηρείν <Body> πεξηέρεη είηε ηα ζπγθεθξηκέλα δεδνκέλα ηεο εθαξκνγήο, είηε έλα κήλπκα ζθάικαηνο. Τν ζηνηρείν <Body> πξέπεη λα παξνπζηαζζεί θαη λα είλαη άκεζν παηδί ηνπ θαθέινπ. Μπνξεί λα πεξηέρεη έλα απζαίξεην αξηζκό παηδηώλ, ηα νπνία νλνκάδνληαη body entries, Δπίζεο κπνξεί λα είλαη θελό.
Document Style W.S. Η SOAP κπνξεί επίζεο λα ρξεζηκνπνηεζεί γηα ηελ αληαιιαγή εγγξάθσλ πνπ λα πεξηέρνπλ νπνηνδήπνηε είδνο δεδνκέλσλ XML.
Document Style W.S. Τππηθά ε απνζηνιή κε-θσδηθνπνηεκέλνπ XML πεξηερνκέλνπ εληόο ηνπ body είλαη γλσζηό σο document-style SOAP, δηόηη επηθεληξώλεηαη ζην κήλπκα σο έλα XML έγγξαθν παξά έλα απζαίξεην κνληέιν δεδνκέλσλ ην νπνίν είλαη ζε κνξθή XML.
Document Style W.S. Οη document-style Web Services θαηεπζύλνληαη από κελύκαηα. Όηαλ έλαο πειάηεο θαιεί έλα document-style Web Service ζηέιλεη έλα νιόθιεξν έγγξαθν, όπσο π.ρ. κηα παξαγγειία.
Document Style W.S. Web Service definition Request for quote Receive Check Database Quote document Send Business process flow
Πλεονεκηήμαηα SOAP Απλόηηηα: Σηεξίδεηαη ζε XML κελύκαηα πνπ είλαη πνιύ θαιά δνκεκέλα θαη κεηαθξάδνληαη εύθνια Μεηαθερζιμόηηηα: Δίλαη αλεμάξηεην από ηελ πιαηθόξκα πινπνίεζεο Φιλικό προς Firewall: Μπνξεί λα πξνζπεξάζεη ηα Firewall κε επθνιία. Φρήζη Open Standards: Φξεζηκνπνηεί XML γηα λα κνξθνπνηεί δεδνκέλα. Απηό ην θάλεη επεθηάζηκν
Πλεονεκηήμαηα SOAP Γιαλειηοσργικόηηηα: Η ρξήζε ησλ XML θαη HTTP ην θαζηζηά ην πην θαιά δηαδεδνκέλν πξσηόθνιιν Δπξεία απνδνρή Αληίζηαζε ζηηο ηερλνινγηθέο αιιαγέο
Μειονεκηήμαηα SOAP Αξρηθά είρε πνιύ ζηελή ζύλδεζε κε ηελ HTTP θαη έηζη δέλ ήηαλ θαηάιιειν γηα όιεο ηηο πεξηπηώζεηο Τν HTTP είλαη έλα αξγό πξσηόθνιιν θαη επνκέλσο ε απόδνζε ηνπ SOAP ήηαλ ρακειή. Πξόζθαηεο εθδόζεηο SOAP δελ εμαξηώληαη ηόζν πνιύ από HTTP SOAP είλαη stateless: απαηηεί από ηηο εθαξκνγέο πνπ αηηνύληαη θάηη λα επαλαιακβάλνπλ ηα ζηνηρεία ηνπο ζε πεξίπησζε πνπ απαηηνύληαη πεξηζζόηεξεο ζπλδέζεηο.
Μειονεκηήμαηα SOAP Σε πεξηπηώζεηο όπνπ αξθεηά web services ζπλεξγάδνληαη γηα λα απηνκαηνπνηήζνπλ κία ΔΓ ηόηε ην ηδαληθό ζα ήηαλ λα ζπκνύληαη ηελ θαηάζηαζε ηνπο. Κάηη ηέηνην όκσο δελ γίλεηαη SOAP serializes by value and not by reference: Serialization by value απαηηεί πνιιαπιά αληίγξαθα ελόο αληηθεηκέλνπ λα πεξηέρνπλ ζε βάζνο ρξόλνπ πιεξνθνξίεο θαηάζηαζεο πνπ δελ είλαη ζπγρξνληζκέλεο κε άιια αληίγξαθα ηνπ ηδίνπ αληηθεηκέλνπ. Απηό ζεκαίλεη όηη ην SOAP δελ επηηξέπεη πξνο ην παξόλ λα θάλεη ρξήζε object references.