Source page: http://xfront.com/ส่วนที่เหลือ-Web-Services.html
โรเจอร์แอลคอสเตลโล
(Roger L. Costello)
ครั้งแรกที่ผมจะให้แนะนำสั้น ๆ กับส่วนที่เหลือแล้วอธิบายถึงวิธีการสร้างบริการเว็บในรูปแบบส่วนที่เหลือ
ส่วนที่เหลือคืออะไร?
ที่เหลือก็เป็นคำประกาศเกียรติคุณจากรอยฟีลดิงในปริญญาเอกของเขา วิทยานิพนธ์ [1] เพื่ออธิบาย รูปแบบสถาปัตยกรรม ของระบบเครือข่าย ส่วนที่เหลือเป็นตัวย่อยืนรัฐ ดำเนินการ การถ่ายโอน
เพราะเหตุใดจึงเรียกว่าการถ่ายโอน ดำเนินการ รัฐ?
เว็บประกอบด้วยทรัพยากร ทรัพยากรที่เป็นรายการที่น่าสนใจใด ๆ ยกตัวอย่างเช่นโบอิ้งเครื่องบินคอร์ปอาจกำหนดทรัพยากรที่ 747 ลูกค้าสามารถเข้าถึงทรัพยากรที่มี URL นี้:
ตัวแทน ของทรัพยากรจะถูกส่งกลับ (เช่น Boeing747.html) การเป็นตัวแทนวางโปรแกรมไคลเอนต์ใน รัฐ ผลของลูกค้าภายในเชื่อมโยงหลายมิติใน Boeing747.html ให้เป็นทรัพยากรอื่นที่มีการเข้าถึง การเป็นตัวแทนใหม่วางโปรแกรมไคลเอนต์ลงในรัฐอื่น ๆ ดังนั้นการเปลี่ยนแปลงโปรแกรมไคลเอนต์ (การโอน s) รัฐกับแต่ละตัวแทนทรัพยากร -> ดำเนินการ การโอนรัฐ! นี่คือคำอธิบายรอยฟีลดิงของความหมายของการถ่ายโอนรัฐ ดำเนินการ:“การถ่ายโอนรัฐ ดำเนินการ มีจุดมุ่งหมายที่จะทำให้เกิดภาพของวิธีการที่โปรแกรมประยุกต์บนเว็บที่ออกแบบอย่างดีทำงาน: เครือข่ายของหน้าเว็บ (เสมือนรัฐเครื่อง) ที่ผู้ใช้ดำเนินผ่านโปรแกรมประยุกต์โดยการเลือกการเชื่อมโยง (เปลี่ยนสถานะ) ส่งผลให้ หน้าถัดไป (เป็นตัวแทนของรัฐต่อไปของแอพลิเคชัน) ถูกโอนไปยังผู้ใช้และการแสดงผลสำหรับการใช้งานของพวกเขา.”
แรงจูงใจสำหรับส่วนที่เหลือ
แรงจูงใจสำหรับส่วนที่เหลือคือการจับภาพลักษณะของเว็บซึ่งทำให้เว็บที่ประสบความสำเร็จ ต่อจากนั้นลักษณะเหล่านี้จะถูกนำมาใช้เพื่อเป็นแนวทางในการวิวัฒนาการของเว็บ
ที่เหลือ – รูปแบบสถาปัตยกรรม, ไม่มาตรฐาน
ส่วนที่เหลือไม่ได้เป็นมาตรฐาน คุณจะไม่เห็นของ W3C วางออกสเปคส่วนที่เหลือ คุณจะไม่เห็น IBM หรือ Microsoft หรือดวงอาทิตย์ขายเครื่องมือนักพัฒนาส่วนที่เหลือของ ทำไม? เพราะส่วนที่เหลือเป็นเพียงรูปแบบสถาปัตยกรรม คุณไม่สามารถขวดขึ้นสไตล์ที่ คุณสามารถเข้าใจมันและการออกแบบบริการเว็บของคุณในรูปแบบที่ (. คล้ายกับรูปแบบสถาปัตยกรรมไคลเอ็นต์เซิร์ฟเวอร์ไม่มีมาตรฐานลูกค้าเซิร์ฟเวอร์เป็น.) ในขณะที่ส่วนที่เหลือไม่ได้เป็นมาตรฐานก็ไม่ได้มาตรฐานใช้งาน:
- HTTP
- URL
- XML/HTML/GIF/JPEG/ฯลฯ (ทรัพยากรการรับรอง)
- ข้อความ/XML, text/html ภาพ/GIF, image/jpeg ฯลฯ (ชนิด mime)
คลาสสิกระบบ ส่วนที่เหลือ
เว็บเป็นระบบส่วนที่เหลือ! จำนวนของผู้ที่ใช้บริการเว็บที่คุณได้รับใช้เหล่านี้หลายปี – บริการหนังสือสั่งซื้อบริการค้นหาออนไลน์บริการพจนานุกรม ฯลฯ – มีส่วนที่เหลือที่ใช้บริการเว็บ อนิจจาคุณได้ใช้ ส่วนที่เหลือ อาคารเซอร์วิส ส่วนที่เหลือ และคุณไม่ได้รู้ว่ามัน ส่วนที่เหลือเป็นเรื่องที่เกี่ยวข้องกับ“ภาพใหญ่” ของเว็บ มันไม่ได้จัดการกับรายละเอียดการปฏิบัติ (เช่นการใช้ Servlets Java หรือ CGI ที่จะใช้บริการเว็บ) ดังนั้นขอให้ดูตัวอย่างของการสร้างบริการเว็บจากส่วนที่เหลือเป็น“ภาพใหญ่” มุมมอง
อะไหล่ Depot บริการเว็บ
อะไหล่ Depot, Inc (บริษัท สมมติ) ได้นำไปใช้บริการเว็บบางอย่างที่จะช่วยให้ลูกค้าสามารถ:
- รับรายชื่อของชิ้นส่วน
- ได้รับข้อมูลรายละเอียดเกี่ยวกับส่วนใดส่วนหนึ่ง
- ส่งใบสั่งซื้อ (PO)
ลองพิจารณาวิธีการของแต่ละบริการเหล่านี้จะดำเนินการในรูปแบบสงบ
ได้รับรายชื่อบางส่วน
บริการเว็บทำให้มี URL ไปยังทรัพยากรรายการชิ้นส่วน ตัวอย่างเช่นลูกค้าจะใช้ URL นี้ที่จะได้รับรายชื่อส่วน:
โปรดทราบว่า“วิธีการ” บริการเว็บสร้างรายการชิ้นส่วนสมบูรณ์โปร่งใสให้กับลูกค้า ทั้งหมดลูกค้ารู้ว่าถ้าเขา/เธอส่ง URL ดังกล่าวข้างต้นแล้วเอกสารที่มีรายชื่อของชิ้นส่วนจะถูกส่งกลับ เนื่องจากการดำเนินการมีความโปร่งใสให้กับลูกค้า, อะไหล่ Depot เป็นอิสระในการปรับเปลี่ยนการดำเนินงานพื้นฐานของทรัพยากรนี้ไม่มีผลกระทบต่อลูกค้า นี่คือ การแต่งงานกัน หลวม
นี่คือเอกสารที่ลูกค้าจะได้รับ:
[สมมติว่าผ่านการเจรจาบริการเนื้อหาระบุว่าลูกค้าต้องการเป็นตัวแทนเป็น XML (สำหรับการประมวลผล เครื่อง-ถึง-เครื่อง).] โปรดทราบว่ารายการชิ้นส่วนมีการเชื่อมโยงที่จะได้รับข้อมูลรายละเอียดเกี่ยวกับแต่ละส่วน นี้เป็นคุณลักษณะที่สำคัญของส่วนที่เหลือ ถ่ายโอนลูกค้าจากรัฐหนึ่งไปยังอีกโดยการตรวจสอบและเลือกจากบรรดา URL ที่ทางเลือกในเอกสารการตอบสนอง
ได้รับรายละเอียดข้อมูลส่วนหนึ่ง
บริการเว็บทำให้มี URL ไปยังทรัพยากรแต่ละส่วน ตัวอย่างเช่นนี่เป็นวิธีที่ลูกค้าร้องขอส่วน 00345:
นี่คือเอกสารที่ลูกค้าจะได้รับ:
อีกครั้งสังเกตว่าข้อมูลนี้จะเชื่อมโยงไปยังข้อมูลอื่น ๆ – สเปคสำหรับส่วนนี้อาจจะพบได้โดยการเชื่อมโยงหลายมิติภายในเอกสารการตอบสนองแต่ละช่วยให้ลูกค้าสามารถเจาะลงไปที่ได้รับข้อมูลรายละเอียดเพิ่มเติม
ส่งป ณ
บริการเว็บทำให้มี URL ที่จะส่งป ณ ได้ ลูกค้าสร้างเอกสารเช่น PO ซึ่งสอดคล้องกับสคีป ณ ที่อะไหล่ Depot ได้รับการออกแบบ (และเผยแพร่ในเอกสาร WSDL ก) ลูกค้าส่ง PO.xml เป็นน้ำหนักบรรทุกของ POST ของ HTTP
บริการ PO ตอบสนองต่อการ POST HTTP ที่มี URL ที่จะ PO ส่ง ดังนั้นลูกค้าสามารถดึงป ณ เวลาใด ๆ หลังจากนั้น (เพื่อปรับปรุง / แก้ไขได้) โพได้กลายเป็นชิ้นส่วนของข้อมูลที่ใช้ร่วมกันระหว่างลูกค้าและเซิร์ฟเวอร์ ข้อมูลที่ใช้ร่วมกัน (PO) จะได้รับที่อยู่ (URL) โดยเซิร์ฟเวอร์และมีการเปิดเผยว่าเป็นบริการเว็บ
URL ที่ตรรกะเมื่อเทียบกับ URL ที่ทางกายภาพ
ทรัพยากรที่เป็นนิติบุคคลแนวคิด เป็นตัวแทนคือการประกาศที่เป็นรูปธรรมของทรัพยากร URL นี้:
เป็น URL ตรรกะไม่ใช่ URL ที่ทางกายภาพ ดังนั้นจึงมีไม่จำเป็นต้องเป็นเช่นหน้า HTML แบบคงที่สำหรับแต่ละส่วน ในความเป็นจริงถ้ามีเป็นล้านชิ้นส่วนแล้วล้านหน้าเว็บ HTML แบบคงที่จะไม่ได้รับการออกแบบที่น่าสนใจมาก [รายละเอียดการดำเนินงาน: อะไหล่ Depot สามารถใช้บริการที่ได้รับข้อมูลรายละเอียดเกี่ยวกับส่วนใดส่วนหนึ่งโดยการใช้ Java Servlet ซึ่งแยกวิเคราะห์สตริงหลังจากชื่อโฮสต์ใช้หมายเลขชิ้นส่วนในการค้นหาฐานข้อมูลส่วนกำหนดผลการค้นหาเป็น XML และ แล้วกลับ XML เป็นน้ำหนักบรรทุกของการตอบสนองของ HTTP ที่.] เป็นเรื่องของ URL ที่สไตล์ไม่ควรเปิดเผยเทคนิคการใช้งานที่ใช้ คุณจะต้องเป็นอิสระที่จะเปลี่ยนการดำเนินงานของคุณโดยไม่ส่งผลกระทบต่อลูกค้าหรือมี URL ที่ทำให้เข้าใจผิด
ลักษณะ ส่วนที่เหลือ บริการเว็บ
นี่คือลักษณะของส่วนที่เหลือเป็น:
- ไคลเอนต์เซิร์ฟเวอร์: ดึงตามรูปแบบการปฏิสัมพันธ์: ส่วนประกอบบริโภคดึงการแสดง
- ไร้สัญชาติ: การร้องขอจากลูกค้าไปยังเซิร์ฟเวอร์แต่ละคนจะต้องมีข้อมูลทั้งหมดที่จำเป็นต้องเข้าใจการร้องขอและไม่สามารถใช้ประโยชน์จากบริบทที่เก็บไว้บนเซิร์ฟเวอร์
- แคช: ในการปรับปรุงการตอบสนองประสิทธิภาพของเครือข่ายจะต้องมีความสามารถในการระบุว่าเป็นแคชหรือไม่แคช
- อินเตอร์เฟซ Uniform: ทรัพยากรทั้งหมดที่มีการเข้าถึงด้วยอินเตอร์เฟซทั่วไป (เช่น HTTP GET, POST, PUT ลบ)
- ทรัพยากรที่มีชื่อ – ระบบประกอบด้วยทรัพยากรซึ่งได้รับการตั้งชื่อโดยใช้ URL ที่
- การแสดงทรัพยากรที่เชื่อมต่อกัน – การแสดงของทรัพยากรที่มีการเชื่อมต่อกันโดยใช้ URL ที่จึงทำให้ลูกค้าที่จะมีความคืบหน้าจากรัฐหนึ่งไปยังอีก
- ส่วนประกอบชั้น – ตัวกลางเช่นเซิร์ฟเวอร์พร็อกซีเซิร์ฟเวอร์แคชเกตเวย์ ฯลฯ สามารถแทรกระหว่างลูกค้าและทรัพยากรเพื่อสนับสนุนการรักษาความปลอดภัยอื่น ๆ
หลักการของ ส่วนที่เหลือ บริการออกแบบเว็บ
1. กุญแจสำคัญในการสร้างบริการเว็บในเครือข่าย ส่วนที่เหลือ (เช่นเว็บ) คือการระบุทั้งหมดของหน่วยงานความคิดที่คุณต้องการที่จะเปิดเผยกับการให้บริการ ดังกล่าวข้างต้นที่เราเห็นตัวอย่างบางส่วนของทรัพยากร: รายการส่วนข้อมูลส่วนรายละเอียดการสั่งซื้อ 2. สร้าง URL ไปยังแต่ละทรัพยากร ทรัพยากรที่ควรจะเป็นคำนามคำกริยาไม่ ยกตัวอย่างเช่นไม่ใช้นี้
หมายเหตุ: คำกริยา getPart แต่ให้ใช้คำนาม:
3. แบ่งหมวดหมู่ของทรัพยากรของคุณตามไปไม่ว่าลูกค้าก็สามารถได้รับการเป็นตัวแทนของทรัพยากรหรือไม่ว่าลูกค้าสามารถปรับเปลี่ยน (เพิ่ม) ทรัพยากร สำหรับอดีตให้ทรัพยากรเหล่านั้นสามารถเข้าถึงได้โดยใช้ HTTP GET สำหรับในภายหลังให้ทรัพยากรเหล่านั้นสามารถเข้าถึงได้โดยใช้ HTTP POST, PUT และ/หรือลบ 4. ทรัพยากรทั้งหมดที่สามารถเข้าถึงได้ผ่านทาง HTTP GET ควรจะเป็นผลข้างเคียงฟรี นั่นคือทรัพยากรก็ควรจะกลับมาเป็นตัวแทนของทรัพยากร อัญเชิญทรัพยากรไม่ควรส่งผลให้เกิดการปรับเปลี่ยนทรัพยากร 5. ไม่มีชาย/หญิงเป็นเกาะ ในทำนองเดียวกันการแสดงที่ไม่ควรจะเป็นเกาะ ในคำอื่น ๆ วางเชื่อมโยงหลายมิติภายในการแสดงทรัพยากรเพื่อให้ลูกค้าที่จะเจาะลงสำหรับข้อมูลเพิ่มเติมและ/หรือเพื่อให้ได้ข้อมูลที่เกี่ยวข้อง6. การออกแบบที่จะเปิดเผยข้อมูลที่ค่อยๆ ไม่เปิดเผยทุกอย่างในเอกสารการตอบสนองเดียว ให้เชื่อมโยงหลายมิติที่จะได้รับรายละเอียดเพิ่มเติม 7. ระบุรูปแบบของข้อมูลการตอบสนองการใช้คีมาที่ (DTD, W3C แบบแผน RelaxNG หรือ Schematron) สำหรับการให้บริการผู้ที่ต้องการโพสต์หรือนำไปมันยังให้สคีมาเพื่อระบุรูปแบบของการตอบสนอง 8. อธิบายว่าบริการของคุณจะถูกเรียกโดยใช้เอกสาร WSDL หรือเพียงเอกสาร HTML
สรุป
บทความนี้จะอธิบายส่วนที่เหลือเป็นรูปแบบสถาปัตยกรรม ในความเป็นจริงมันเป็นรูปแบบสถาปัตยกรรมของเว็บ ส่วนที่เหลือจะอธิบายสิ่งที่ทำให้เว็บทำงานได้ดี ยึดมั่นในหลักการที่เหลือจะให้บริการของคุณทำงานได้ดีในบริบทของเว็บ ในบทความในอนาคตผมจะเขียนเกี่ยวกับวิวัฒนาการของเว็บโดยใช้หลักการที่เหลือ