1 / 36

Software Architecture

Software Architecture. 18/01/10. เทคโนโลยีเว็บเซอร์วิส.

abia
Download Presentation

Software Architecture

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Software Architecture 18/01/10

  2. เทคโนโลยีเว็บเซอร์วิสเทคโนโลยีเว็บเซอร์วิส • เว็บเซอร์วิส เป็นระบบซอร์ฟแวร์ที่รองรับการทำงานร่วมกันระหว่างเครื่องคอมพิวเตอร์ที่แตกต่างกันในเน็ตเวิร์ค โดย เว็บเซอร์วิสจะใช้ Web Service Discripsion language(WSDL) ในการอธิบายการอินเตอร์เฟส ในขณะที่ระบบอื่นสามารถเรียกใช้ เว็บเซอร์วิสได้โดยผ่านทาง SOAP messages ซึ่งทำงานบน HTTP (HypertextTransfer Protocol) • ในตัวของ เว็บเซอร์วิสเองมีหลักการพื้นฐานมาจาก Service-Oriented Architecture (SOA) ซึ่ง ระบบซอร์ฟแวร์ทั้งหมดจะถูกกระจายเสมือนเป็นชุดของบริการ ในการที่จะอนุญาตให้ระบบอื่นได้ใช้ เว็บเซอร์วิส เหล่านี้ ต้องมีกลไกที่เป็นทางการในการอธิบาย การค้นหา และการเรียกใช้บริการ

  3. SOA ภาพที่ 2-1 รูปบบการทำงานร่วมกันในสถาปัตยกรรมแบบ Service-Oriented Architecture

  4. จากรูปจะเห็นว่า Service-Oriented Architecture ประกอบด้วย ServiceProvider Service Registry และ Service Consumer ในส่วนของการทำงานหลักของ service provider เป็นการใช้ฟังก์ชันของ เว็บเซอร์วิส โดย provider จะใช้วิธีมาตรฐานในการอธิบายการอินเตอร์เฟสฟังก์ชันเหล่านั้น สุดท้าย ก็จะบอกวิธีการอินเตอร์เฟสเหล่านี้ให้กับ service registry เพื่อที่จะยอมให้ service consumer ทำการค้นหาบริการต่างๆ [18] โดยที่จะมอง service registry เสมือนเป็น Web services library จะตอบรับ เว็บเซอร์วิสทั้งหมดที่ประกาศไว้โดย service providers และแสดงเว็บเซอร์วิสเหล่านั้นต่อผู้ใช้บริการ ด้วยวิธีการนี้ ผู้ใช้บริการจะสามารถค้นหาข้อมูลที่แสดงถึงวิธีการติดต่อ(binding) และเรียกใช้ เว็บเซอร์วิสได้

  5. ผู้ใช้บริการ จะใช้บริการของเว็บเซอร์วิส ที่ได้จาก service providers เพื่อให้ได้ประโยชน์สูงสุด อันดับแรก ผู้ใช้บริการจะเปิดข้อมูลการอินเตอร์เฟสของบริการจาก service registry และจากการอินเตอร์เฟสของบริการนั้น ผู้ใช้บริการก็จะได้ทราบถึงชื่อเมธอดชนิดของข้อมูลพารามิเตอร์ และทรานสปอร์ตโปรโตคอล ในการเรียกใช้เมธอด ต่อจากนั้นจะใช้ข้อมูลนี้ในการผูกกับเว็บเซอร์วิส สุดท้ายแล้วผู้ใช้บริการก็จะสามารถเรียกใช้ เว็บเซอร์วิส ได้ เทคโนโลยีที่รองรับกฎพื้นฐานสามข้อนี้ได้แก่ UDDI WSDL และ SOAP

  6. SOAP และองค์ประกอบ • SOAP เป็น xml base protocol ที่นำมาใช้ในการแลกเปลี่ยนข้อมูลโดยใช้รูปแบบของ xml ในการอธิบาย methods และ ค่า parameters เพื่อสร้างการเรียกใช้ในระยะไกลข้ามเครือข่ายผ่านทาง HTTP ดังนั้น SOAP จึงทำให้การสื่อสารระหว่าง application ที่ทำงานบนระบบปฏิบัติการและ programming language ที่ต่างกันได้ SOAP มีองค์ประกอบดังต่อไปนี้

  7. SOAPenvelope เป็นตัวกำหนด framework ทั้งหมดของ SOAP message และสร้างองค์ประกอบต่างๆที่เป็นรากฐานของ packet ที่ถูกส่งออกไป SOAPenvelope ยังทำหน้าที่ห่อหุ้ม SOAPheader , SOAPbody ของ SOAPmessage อีกด้วย

  8. SOAP Header ส่วนประกอบต่างๆของ SOAPheader จะมีความสัมพันธ์กับองค์ประกอบต่างๆใน SOAP body โดยทำการรองรับข้อมูล เกี่ยวกับ payload ที่อยู่ใน SOAPbody และเนื่องจาก SOAP ไม่มีกฎตายตัวในเรื่องของชนิดข้อมูลที่ถูกใส่ไว้ใน SOAPheader ซึ่งเป็นข้อดีที่สามารถใส่ข้อมูลที่ต้องการได้เช่น session ID, user name , password ของผู้ส่ง ข้อมูลที่นำมาใช้ในการทำ authentication หรือ ข้อมูลสำหรับจัดการ transaction เป็นต้น

  9. SOAP body เป็นที่ซึ่งบรรจุการกระทำทั้งหมด และเป็นที่ๆข้อมูลข่าวสารถูกส่งผ่านไปยังเว็บเซอร์วิส ซึ่งก็คือเป็นส่วนที่ทำการแลกเปลี่ยนข้อมูลกับผู้รับ SOAP message นั้นเอง และบางครั้งอาจจะมีส่วนของ SOAP fault ที่ถูกนำมาใช้ในการนำส่งที่ผิดพลาดและข้อมูลเกี่ยวกับสถานะ

  10. SOAP มีระบบพื้นฐานที่สำคัญอยู่สี่ส่วนได้แก่ SOAP Client SOAP Server Web Server และ Web Service ดังรูปที่ 2-3

  11. SOAP Client ทำหน้าที่ส่ง SOAP request และรับ SOAPresponse ผ่านโปรโตคอล HTTP Web Server จะทำหน้าที่รับ SOAP request และตอบกลับไปยัง SOAP Client ในความเป็นจริงแล้ว Web Server ควรที่จะมีส่วนที่ทำงานเป็น SOAP Server อยู่ในตัวเพื่อที่จะสามารถวิเคราะห์ได้ทั้ง SOAP message และ HTTP Header

  12. SOAP Server วิเคราะห์ SOAP request message เรียก web service ที่ตรงตามความต้องการ และสร้าง SOAPresponsemessage ไปยัง Client • Web Service ให้บริการแก่ Client ซึ่งหน้าที่ของบริการต่างๆขึ้นอยู่กับความต้องการทางธุรกิจ Web Service อาจจะมีโปรแกรม back end database ไว้รองรับการบริการเพื่อเพิ่มศักยภาพในการให้บริการ

  13. UDDI • Universal Description, Discovery and Integration (UDDI) ทำงานเป็น service registry ใน Service-Oriented Architecture(SOA) มันจะบอกถึงวิธีการที่ Web service ลงทะเบียนข้อมูลการให้บริการของมันให้กับ service depository และอนุญาตให้ service consumers ค้นหาการบริการที่ได้ลงทะเบียนไว้แล้วและยอมให้ใช้บริการนั้นได้ [4] หรือกล่าวได้ว่า UDDI จะให้กลไกในการทำการลงทะเบียนแก่ Web services ที่กระจายทั่วไปในอินเตอร์เน็ตและให้วิธีการในการในการค้นหาแก่ service consumers หน้าที่ของ UDDI จะคล้ายกับการทำ Naming Services ของ CORBA และ RMI(Remote Method Invocation) [5]

  14. WSDL • Web Services Description Language (WSDL) คือรูปแบบของ XML ในการอธิบาย Web services ที่เป็นข้อมูลต่างๆของการสื่อสารระหว่าง end points ที่ซึ่งสามารถแลกเปลี่ยนข้อความที่แน่นอนได้ [19] เมื่อ Web service ได้ประกาศการให้บริการของมันไปยัง UDDI registry แล้ว มันจะเป็นเอกสาร WSDL ซึ่งจะได้นำมาใช้ในการอธิบาย Web service นั้น อันที่จริงแล้วเอกสาร WSDL จะให้การอินเตอร์เฟสของ Web service แก่ user เพื่อที่จะ bind และใช้สื่อสารกับบริการ เช่นใน IDL ของ CORBA [20].

  15. ระบบกระจายศูนย์(distributed system) • การให้บริการในระบบกระจาย เป็นการทำงานในลักษณะชุดของการทำงานร่วมกันในการดำเนินการของเซอร์ฟเวอร์ที่ได้กระจายอยู่ระหว่างเครื่องคอมพิวเตอร์จำนวนมาก ซึ่ง การดำเนินการของเซอร์ฟเวอร์เหล่านี้จะรับ requests จากการดำเนินการของผู้ใช้บริการและร่วมกันจัดการข้อมูลและประมวนผลการให้บริการ • โดยปกติแล้วการดำเนินการจะมีชั้นของการสื่อสารในการส่งข้อมูล และชั้นของการสื่อสารนี้จะให้การรับรองการสื่อสารที่แตกต่างกัน ตัวอย่างเช่น การจัดลำดับข้อความแบบ FIFO (FIFO messageordering ) ซึ่งเป็นการรับและส่งข้อความตามลำดับ และโปรโตคอลการสื่อสารแบบกลุ่ม (group communicationprotocols[5])

  16. ในปัจจุบันระบบปฏิบัติการจะให้บริการในการสื่อสารเพื่อการแลกเปลี่ยนข้อมูลระหว่างการดำเนินการ (processes) โดยใช้ TCP/IP protocol stack ซึ่งไม่ขึ้นกับเทคโนโลยีด้านเครือข่าย ซึ่งการบริการชนิดนี้ของระบบปฏิบัติการจะตอบสนองในการส่งและรับข้อความที่ถูกส่งไปเพื่อตอบสนองต่อ การดำเนินการนั้นๆ ดังนั้น การดำเนินการจึงต้องมีความไว้วางใจระบบการปฏิบัติการในการติดตามการสื่อสาร แต่การให้บริการในการสื่อสารต้องการเฉพาะการวิเคราะห์เป้าหมายเพื่อการจัดส่งข้อมูล ด้วยวิธีการนี้ processes สามารถสื่อสารซึ่งกันและกันกับการดำเนินการชนิดอื่นในระบบ หากว่าสามารถพิสูจน์ทราบตำแหน่งของเป้าหมายที่ต้องการได้ดังนั้นเซ็ตของการดำเนินการ ที่มีการแลกเปลี่ยนข้อความโดยใช้ TCP/IP protocol stack และได้ทราบตำแหน่งการสื่อสารของกันและกันแล้ว อาจพิจารณาได้ว่าเป็นระบบกระจายที่ซึ่งการดำเนินการนั้นสามารถสร้างเน็ตเวิร์คที่สมบูรณ์ได้

  17. การออกแบบและการใช้ Heartbeat ในสภาพแวดล้อมแบบ Multi-machine • การใช้ heart beat mechanism ซึ่งเป็นเทคนิคการใช้ Timer มาควบคุมระบบ ทำให้ระบบมีความน่าเชื่อถือ โดยจะตรวจสอบความล้มเหลวของ node และ มีการส่ง transport level packets อย่างต่อเนื่อง แต่ละ node ในระบบจะมี timer ในตัวอง ระบบนี้จะกำหนดให้แต่ละ node ในระบบต้องรับรู้และเข้าใจใน finite state machine ซึ่งก็คือ Election state ทำหน้าที่ค้นหา network topology, Standby state ทำหน้าที่ queries และ คอย monitors การทำงานของ node ที่เป็น masterstate, Not-active จะไม่ทำอะไรยกเว้นจะตอบสนองกับการ "sweeping" จาก Master และคำสั่งการควบคุม "Standby" จาก Console และ Master หนึ่งใน nodes ทั้งหมดจะเป็น master node และสถานะของมันจะเป็น Master

  18. ซึ่งทำหน้าที่หลักในการให้บริการในระบบ กรณีที่มีตรวจสอบว่าส่วนที่เหลือจะเป็น standby nodes และสถานะจะเป็น Standby ในกรณีที่ต้องการที่จะให้ตัวใดตัวหนึ่งทำงานหลักแทนตัวเองก็จะมีการถ่ายโอนข้อมูลให้กับตัวที่ได้เลือกไว้ แล้วเปลี่ยนสถานะตัวเองเป็น Not active แต่ถ้าตัวหลักที่ทำงานเกิดล้มลง ระบบจะใช้ bully algorithm ในการเลือกตัวหลักจากที่เหลือในระบบมาทำงานแทน [16]

  19. Bully algorithm bully algorithmเป็นวิธีในการทำ distributed computing เพื่อใช้ในการเลือก coordianator (เช่นเซิร์ฟเวอร์ เป็นต้น)แบบไดนามิกส์ โดยการใช้หลักกการเลือก ID number เมื่อเซิร์ฟเวอร์ P พบว่าที่ทำงานหลักในปัจจุบันล่มลงเนื่องจากหมดเวลาการส่งข้อความหรือ ความล้มเหลว (failure) ของเซิร์ฟเวอร์ปัจจุบันในการสร้างการติดต่อ (handshake) เมื่อเกิดเหตุการณ์ดังกล่าวขึ้นอัลกอริธึมบูลลีนี้จะดำเนินการดังต่อไปนี้ • เซิร์ฟเวอร์ P จะ broadcasts ข้อความที่เรียกว่า election message (inquiry) ไปยังเซิร์ฟเวอร์ตัวอื่นๆที่เหลือโดยใช้หลักการเลือกเซิร์ฟเวอร์ที่มี IDs. สูงกว่าตัวอื่นๆที่มีอยู่ในระบบ

  20. หากเซิร์ฟเวอร์ P พบว่าไม่มีข้อความใดส่งกลับมาจากเซิร์ฟเวอร์ที่มี IDs. สูงกว่า ตัวมันเองก็จะเป็นตัว Leader คือทำงานหลักให้ระบบแทน และจะทำการ broadcast (victory message) ไปยังเซิร์ฟเวอร์ตัวอื่นๆว่าตอนนี้มันเป็น Leader • หาก P รับข้อความว่ามีเซิร์ฟเวอร์ที่มี IDs. สูงกว่าทำงานได้อยู่ เซิร์ฟเวอร์ P จะรอเวลารวมที่แน่นอนที่เซิร์ฟเวอร์ตัวที่บอกว่าตัวเอง IDs. สูงกว่ายืนยันว่าตัวเองเป็น Leader แน่นอน • สิ่งที่ต้องจำคือหาก P ได้รับข้อความ victory message จากเซิร์ฟเวอร์ที่มี ID number ต่ำกว่ามัน มันจะทิ้ง(bully) ข้อความนั้น และเริ่มการเลือก Leader ใหม่แทนทันที

  21. Ring algorithm • เป็นอัลกอริธึมที่ใช้ในการเลือก leader ของเซอร์ฟเวอร์ที่มีการจัดการในลักษณะวงแหวน (ring) ซึ่งวิธีการนี้จะไม่ใช้ token อัลกอริธึมนี้มีสมมติฐานว่าแต่ละสมาชิกจะติดต่อกันในลักษณะเรียงตามลำดับตามวงแหวน โดยแต่ละสมาชิกจะรู้ว่าใครเป็นสมาชิกที่อยู่ถัดไป เมื่อสมาชิกใดพบว่า leader ไม่ทำงาน มันจะสร้าง ELECTION message ซึ่งประกอบด้วย ค่า priority ของผู้ส่ง และจะส่งข้อความนี้ไปยังสมาชิกที่อยู่ถัดไป หากว่าตัวนี้เกิดล้มลง ผู้ส่งจะข้ามตัวนี้ไป และจะทำการส่งต่อยังตัวถัดไป หรือตัวก่อนหน้านี้ จนกระทั่งพบสมาชิกที่กำลังทำงานอยู่ ซึ่งในแต่ละขั้นตอนนั้น ผู้ส่งจะเพิ่มค่า priority ของตัวเองลงบน list ในข้อความที่ส่งนั้น ส่งผลให้เกิดการการสร้าง candidate ในตัวเองที่จะถูกคัดเลือกให้เป็นleader ของระบบ

  22. ผลที่สุดแล้วข้อความก็จะกลับมายังผู้ส่งที่เป็นผู้ตั้งต้นความนี้ และมันจะวิเคราะห์ข้อความที่รับกลับมาซึ่งมี priority ของตัวเองอยู่ด้วยมันก็จะทราบว่าใครเป็น leader ของระบบ หากว่าตัวมันเองมีค่า priority สูงสุดมันก็จะเปลี่ยนสถานะตัวเองเป็น leader ณ จุดนี้ leader ก็จะส่งข้อความที่บอกถึงสถานะตัวเองไปยังสมาชิกในระบบให้รับทราบว่าใครเป็น leader เมื่อข้อความได้วนกลับมาอีกครั้งก็จะถูกเอาออกจากระบบและทุกๆสมาชิกก็จะกลับมาทำงานตามสถานะตัวเองอีกครั้ง

  23. ภาพที่ 2-15 ring algorithm

  24. ในกรณีที่มีสมาชิกสองตัวจากภาพคือสมาชิกที่มีค่า priority เป็น 2 และ 5 ค้นพบพร้อมกันว่า leader ซึ่งในที่นี้คือ 7 ได้ล้มลง แต่ละตัวก็จะสร้าง ELECTION message และแต่ละตัวก็จะเริ่มส่งข้อความไปยังสมาชิกถัดไปเรื่อยๆโดยไม่ส่งผลกระทบกับซึ่งกันและ และแน่นอนว่าแต่ละการส่งต่อข้อความของแต่ละสมาชิก จะต้องใส่ค่า priority ไว้ในข้อความที่จะส่งทุกครั้ง ซึ่งในที่สุดแล้ว ข้อความทั้งสองก็จะเดินทางจนครบวง และ ทั้ง 2 และ 5 ก็จะพิจารณาค่า priority list ของตัวเองเพื่อหาว่าใครสมควรเป็น leader ซึ่งในที่สุดแล้วก็จะได้ค่า priority ที่ตรงกันซึ่งเป็นค่า สูงสุดของสมาชิกในระบบที่ยังคงทำงานอยู่ [อ้างอิงจากหนังสือtanenbaum]

  25. โปรโตคอลการพิสูจน์ตัวของเซสชันสำหรับมัลติเว็บเซอร์วิสโปรโตคอลการพิสูจน์ตัวของเซสชันสำหรับมัลติเว็บเซอร์วิส • งานวิจัยนี้ กล่าวถึง E-business ที่ซึ่งประกอบด้วยสมาชิกหลายๆส่วนเช่น clients และ multi-party Web Services ที่ต้องการทำงานร่วมกันเพื่อสร้าง business flow งานวิจัยดังกล่าวนำเสนอโปรโตคอลซึ่งทำให้สมาชิกของการทำ business flow สามารถมั่นใจ ว่าพวกเขากำลังสื่อสารกับ service instances ของ web service ซึ่งเป็นส่วนหนึ่งของสมาชิกที่อยู่ใน business flow เดียวกัน ซึ่งโปรโตคอลนี้ประกอบด้วยสองส่วนหลัก ได้แก่ message authentication protocolซึ่งทำหน้าที่ authenticateการร่วม session เดียวกัน

  26. ซึ่งในกรณีนี้เมื่อมีการร่วมใช้ session secret ระหว่างสมาชิกใน business flow อีกส่วนคือโปรโตคอล sessionmanagement ซึ่งเป็นการจัดการ session ของระบบ โปรโตคอลนี้ใช้หลักการในการสร้างที่เป็นมาตรฐาน Web services technologies เช่น SOAP, XML Signature, Encryption, and SOAP-DSIG นอกจากนี้ยังแสดงให้เห็นถึงขั้นตอนของการเริ่ม session และการทำงานร่วมกันของ client session authentication และ web service สองตัว[28]

  27. ภาพที่ 2-11 การจัดการเซสชันออนไลน์ [28]

  28. Finite State Machine(FSM) เป็นหลักการในการทดสอบการทำงานของระบบจากภายนอก มีหลักการทดสอบดังต่อไปนี้ • Static elements: เป็นการทำ decomposition ระบบให้เป็น static elements โดยมี states และการเปลี่ยนผ่านสถานะ (state transitions มักเรียกว่า transitions) หลักการคือจะต้องมีจำนวนของ states จำกัด ไม่อนุญาตให้ ทำซ้ำ (duplicate) transitions จาก state ไปยัง state หนึ่งนั่นคือ จะมี transition เดียวจาก state A ไปยัง state B ดังนั้นจำนวนของการทำ state transitions จึงมีจำกัดด้วย

  29. เอาต์พุตที่สร้างจาก FSMs ที่มีการทำงานแบบ dynamic executions(web application, web service) ของFSMs นั้นโดยทั่วไปแล้วทั้งจำนวนของอินพุตและเอาต์พุตที่ต่างกันนั้นมีค่าที่จำกัดแน่นอนในกรณีที่ทั้งอินพุตและเอาต์พุตอาจมีจำนวนมากหรือมีค่าที่ไม่จำกัดนั้น เราจำเป็นต้องรวมค่าเหล่านั้นไว้ใน partitions เหมือนกับการทำ checklist และ partition based testing ซึ่ง partitions นี้จะตอบสนองกับการทำ transitions จาก state หนึ่งไปยังอีกอันหนึ่ง

  30. FSMs และส่วนสำคัญต่าง (state elements) จะถูกแทนด้วยกราฟ หลักๆของ elements รวมทั้งแทนแต่ละ state ด้วย node หนึ่งในหนึ่งกราฟ • แต่ละ transition จะแทนด้วยการ link โดยตรง(directed link)จาก state ไปยังอีกอันหนึ่ง • Input และ output ต้องสัมพันธ์เกี่ยวเนื่องกับ state transitions และถูกแทนด้วย link weights หรือคำอธิบายจากการทำ transitions

  31. เอกสารอ้างอิง • [18]Ts’o T. and Chiu A. ONC Remote Procedure Call. [Online] Available from: http://www.ietf.org/html.charters/oncrpc-charter.html[2004,Oct 20]. • [5]Newmarch J. Web services. [Online]. Available from:http://jan.netcomp.monash.edu.au/webservices/tutorial.html[2004,Oct 22].

  32. [4]UDDI, UDDI technical white paper. [Online]. Available from: http://www.uddi.org/pubs/Iru_UDDI_Technical_White_Paper.pdf[2004,Oct 22]. • [19]Chan H., Lee R., Dillon T. and Chang E. E-Commerce Fundamentals and Applications, John Wiley & Sons john Wiley & Sons Ltd Baffins Lane Chichester West Succex 2001

  33. [28]Mostafa M., Singhal M. “A Reliable Multicast Session Protocol for Collaborative Continuous Feed Applications.” ACM. (1997) : 35 – 39. • [32]. Zonghao Hou, Yongxiang Huang, Shouqi Zheng, Xiaoshe Dong and Bingkang Wang. “Design and Implementation of Heartbeat in Multi-machine Environment” IEEE (27-29 March 2003) : 583- 586.

  34. 25. Hada S. and Maruyama H. “Session Authentication Protocol for Web Services.” IEEE(Jan.2002) 26 : 158-165. • 26. Andrew S. Tanenbaum and Marten Van Steen. Distributed System Principles and Paradigms. Prentice Hall Inc. Upper Saddle River, New Jersey 07458 . c2002.

More Related