อาคารบริการเว็บทาง ส่วนที่เหลือ

Source page: http://xfront.com/ส่วนที่เหลือ-Web-Services.html

โรเจอร์แอลคอสเตลโล

(Roger L. Costello)

ครั้งแรกที่ผมจะให้แนะนำสั้น ๆ กับส่วนที่เหลือแล้วอธิบายถึงวิธีการสร้างบริการเว็บในรูปแบบส่วนที่เหลือ

ส่วนที่เหลือคืออะไร?

ที่เหลือก็เป็นคำประกาศเกียรติคุณจากรอยฟีลดิงในปริญญาเอกของเขา วิทยานิพนธ์ [1] เพื่ออธิบาย  รูปแบบสถาปัตยกรรม  ของระบบเครือข่าย ส่วนที่เหลือเป็นตัวย่อยืนรัฐ ดำเนินการ การถ่ายโอน

เพราะเหตุใดจึงเรียกว่าการถ่ายโอน ดำเนินการ รัฐ?

เว็บประกอบด้วยทรัพยากร ทรัพยากรที่เป็นรายการที่น่าสนใจใด ๆ ยกตัวอย่างเช่นโบอิ้งเครื่องบินคอร์ปอาจกำหนดทรัพยากรที่ 747 ลูกค้าสามารถเข้าถึงทรัพยากรที่มี URL นี้:

http://www.boeing.com/aircraft/747

ตัวแทน  ของทรัพยากรจะถูกส่งกลับ (เช่น 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 นี้ที่จะได้รับรายชื่อส่วน:

http://www.parts-depot.com/parts

โปรดทราบว่า“วิธีการ” บริการเว็บสร้างรายการชิ้นส่วนสมบูรณ์โปร่งใสให้กับลูกค้า ทั้งหมดลูกค้ารู้ว่าถ้าเขา/เธอส่ง URL ดังกล่าวข้างต้นแล้วเอกสารที่มีรายชื่อของชิ้นส่วนจะถูกส่งกลับ เนื่องจากการดำเนินการมีความโปร่งใสให้กับลูกค้า, อะไหล่ Depot เป็นอิสระในการปรับเปลี่ยนการดำเนินงานพื้นฐานของทรัพยากรนี้ไม่มีผลกระทบต่อลูกค้า นี่คือ การแต่งงานกัน หลวม

นี่คือเอกสารที่ลูกค้าจะได้รับ:

<?? xml version = "1.0"?>
<p: อะไหล่ xmlns: p = "http://www.parts-depot.com" 
         xmlns: XLink = "http://www.w3.org/1999/xlink">
      <ส่วน id = "00345" XLink: href = "http://www.parts-depot.com/parts/00345" />
      <ส่วน id = "00346" XLink: href = "http://www.parts-depot.com/parts/00346" />
      <ส่วน id = "00347" XLink: href = "http://www.parts-depot.com/parts/00347" />
      <ส่วน id = "00348" XLink: href = "http://www.parts-depot.com/parts/00348" />
</ p: อะไหล่>

[สมมติว่าผ่านการเจรจาบริการเนื้อหาระบุว่าลูกค้าต้องการเป็นตัวแทนเป็น XML (สำหรับการประมวลผล เครื่อง-ถึง-เครื่อง).] โปรดทราบว่ารายการชิ้นส่วนมีการเชื่อมโยงที่จะได้รับข้อมูลรายละเอียดเกี่ยวกับแต่ละส่วน นี้เป็นคุณลักษณะที่สำคัญของส่วนที่เหลือ ถ่ายโอนลูกค้าจากรัฐหนึ่งไปยังอีกโดยการตรวจสอบและเลือกจากบรรดา URL ที่ทางเลือกในเอกสารการตอบสนอง

ได้รับรายละเอียดข้อมูลส่วนหนึ่ง

บริการเว็บทำให้มี URL ไปยังทรัพยากรแต่ละส่วน ตัวอย่างเช่นนี่เป็นวิธีที่ลูกค้าร้องขอส่วน 00345:

http://www.parts-depot.com/parts/00345

นี่คือเอกสารที่ลูกค้าจะได้รับ:

<?? xml version = "1.0"?>
<p: ส่วน xmlns: p = "http://www.parts-depot.com"   
        xmlns: XLink = "http://www.w3.org/1999/xlink">
      <Part-ID> 00,345 </ Part-ID>
      <ชื่อ> Widget-A </ ชื่อ>
      <รายละเอียด> ส่วนนี้จะใช้ในการประกอบ FRAP ก </ รายละเอียด>
      <ข้อมูลจำเพาะ XLink: href = "http://www.parts-depot.com/parts/00345/specification" />
      <UnitCost สกุลเงิน = "เหรียญสหรัฐ"> 0.10 </ UnitCost>
      <จำนวน> 10 </ จำนวน>
</ p: Part>

อีกครั้งสังเกตว่าข้อมูลนี้จะเชื่อมโยงไปยังข้อมูลอื่น ๆ – สเปคสำหรับส่วนนี้อาจจะพบได้โดยการเชื่อมโยงหลายมิติภายในเอกสารการตอบสนองแต่ละช่วยให้ลูกค้าสามารถเจาะลงไปที่ได้รับข้อมูลรายละเอียดเพิ่มเติม

ส่งป ณ

บริการเว็บทำให้มี URL ที่จะส่งป ณ ได้ ลูกค้าสร้างเอกสารเช่น PO ซึ่งสอดคล้องกับสคีป ณ ที่อะไหล่ Depot ได้รับการออกแบบ (และเผยแพร่ในเอกสาร WSDL ก) ลูกค้าส่ง PO.xml เป็นน้ำหนักบรรทุกของ POST ของ HTTP

บริการ PO ตอบสนองต่อการ POST HTTP ที่มี URL ที่จะ PO ส่ง ดังนั้นลูกค้าสามารถดึงป ณ เวลาใด ๆ หลังจากนั้น (เพื่อปรับปรุง / แก้ไขได้) โพได้กลายเป็นชิ้นส่วนของข้อมูลที่ใช้ร่วมกันระหว่างลูกค้าและเซิร์ฟเวอร์ ข้อมูลที่ใช้ร่วมกัน (PO) จะได้รับที่อยู่ (URL) โดยเซิร์ฟเวอร์และมีการเปิดเผยว่าเป็นบริการเว็บ

URL ที่ตรรกะเมื่อเทียบกับ URL ที่ทางกายภาพ

ทรัพยากรที่เป็นนิติบุคคลแนวคิด เป็นตัวแทนคือการประกาศที่เป็นรูปธรรมของทรัพยากร URL นี้:

http://www.parts-depot.com/parts/00345

เป็น URL ตรรกะไม่ใช่ URL ที่ทางกายภาพ ดังนั้นจึงมีไม่จำเป็นต้องเป็นเช่นหน้า HTML แบบคงที่สำหรับแต่ละส่วน ในความเป็นจริงถ้ามีเป็นล้านชิ้นส่วนแล้วล้านหน้าเว็บ HTML แบบคงที่จะไม่ได้รับการออกแบบที่น่าสนใจมาก [รายละเอียดการดำเนินงาน: อะไหล่ Depot สามารถใช้บริการที่ได้รับข้อมูลรายละเอียดเกี่ยวกับส่วนใดส่วนหนึ่งโดยการใช้ Java Servlet ซึ่งแยกวิเคราะห์สตริงหลังจากชื่อโฮสต์ใช้หมายเลขชิ้นส่วนในการค้นหาฐานข้อมูลส่วนกำหนดผลการค้นหาเป็น XML และ แล้วกลับ XML เป็นน้ำหนักบรรทุกของการตอบสนองของ HTTP ที่.] เป็นเรื่องของ URL ที่สไตล์ไม่ควรเปิดเผยเทคนิคการใช้งานที่ใช้ คุณจะต้องเป็นอิสระที่จะเปลี่ยนการดำเนินงานของคุณโดยไม่ส่งผลกระทบต่อลูกค้าหรือมี URL ที่ทำให้เข้าใจผิด

ลักษณะ ส่วนที่เหลือ บริการเว็บ

นี่คือลักษณะของส่วนที่เหลือเป็น:

  • ไคลเอนต์เซิร์ฟเวอร์: ดึงตามรูปแบบการปฏิสัมพันธ์: ส่วนประกอบบริโภคดึงการแสดง
  • ไร้สัญชาติ: การร้องขอจากลูกค้าไปยังเซิร์ฟเวอร์แต่ละคนจะต้องมีข้อมูลทั้งหมดที่จำเป็นต้องเข้าใจการร้องขอและไม่สามารถใช้ประโยชน์จากบริบทที่เก็บไว้บนเซิร์ฟเวอร์
  • แคช: ในการปรับปรุงการตอบสนองประสิทธิภาพของเครือข่ายจะต้องมีความสามารถในการระบุว่าเป็นแคชหรือไม่แคช
  • อินเตอร์เฟซ Uniform: ทรัพยากรทั้งหมดที่มีการเข้าถึงด้วยอินเตอร์เฟซทั่วไป (เช่น HTTP GET, POST, PUT ลบ)
  • ทรัพยากรที่มีชื่อ – ระบบประกอบด้วยทรัพยากรซึ่งได้รับการตั้งชื่อโดยใช้ URL ที่
  • การแสดงทรัพยากรที่เชื่อมต่อกัน – การแสดงของทรัพยากรที่มีการเชื่อมต่อกันโดยใช้ URL ที่จึงทำให้ลูกค้าที่จะมีความคืบหน้าจากรัฐหนึ่งไปยังอีก
  • ส่วนประกอบชั้น – ตัวกลางเช่นเซิร์ฟเวอร์พร็อกซีเซิร์ฟเวอร์แคชเกตเวย์ ฯลฯ สามารถแทรกระหว่างลูกค้าและทรัพยากรเพื่อสนับสนุนการรักษาความปลอดภัยอื่น ๆ

หลักการของ ส่วนที่เหลือ บริการออกแบบเว็บ

1. กุญแจสำคัญในการสร้างบริการเว็บในเครือข่าย ส่วนที่เหลือ (เช่นเว็บ) คือการระบุทั้งหมดของหน่วยงานความคิดที่คุณต้องการที่จะเปิดเผยกับการให้บริการ ดังกล่าวข้างต้นที่เราเห็นตัวอย่างบางส่วนของทรัพยากร: รายการส่วนข้อมูลส่วนรายละเอียดการสั่งซื้อ 2. สร้าง URL ไปยังแต่ละทรัพยากร ทรัพยากรที่ควรจะเป็นคำนามคำกริยาไม่ ยกตัวอย่างเช่นไม่ใช้นี้

http://www.parts-depot.com/parts/getPart?id=00345

หมายเหตุ: คำกริยา getPart แต่ให้ใช้คำนาม:

http://www.parts-depot.com/parts/00345

3. แบ่งหมวดหมู่ของทรัพยากรของคุณตามไปไม่ว่าลูกค้าก็สามารถได้รับการเป็นตัวแทนของทรัพยากรหรือไม่ว่าลูกค้าสามารถปรับเปลี่ยน (เพิ่ม) ทรัพยากร สำหรับอดีตให้ทรัพยากรเหล่านั้นสามารถเข้าถึงได้โดยใช้ HTTP GET สำหรับในภายหลังให้ทรัพยากรเหล่านั้นสามารถเข้าถึงได้โดยใช้ HTTP POST, PUT และ/หรือลบ 4. ทรัพยากรทั้งหมดที่สามารถเข้าถึงได้ผ่านทาง HTTP GET ควรจะเป็นผลข้างเคียงฟรี นั่นคือทรัพยากรก็ควรจะกลับมาเป็นตัวแทนของทรัพยากร อัญเชิญทรัพยากรไม่ควรส่งผลให้เกิดการปรับเปลี่ยนทรัพยากร 5. ไม่มีชาย/หญิงเป็นเกาะ ในทำนองเดียวกันการแสดงที่ไม่ควรจะเป็นเกาะ ในคำอื่น ๆ วางเชื่อมโยงหลายมิติภายในการแสดงทรัพยากรเพื่อให้ลูกค้าที่จะเจาะลงสำหรับข้อมูลเพิ่มเติมและ/หรือเพื่อให้ได้ข้อมูลที่เกี่ยวข้อง6. การออกแบบที่จะเปิดเผยข้อมูลที่ค่อยๆ ไม่เปิดเผยทุกอย่างในเอกสารการตอบสนองเดียว ให้เชื่อมโยงหลายมิติที่จะได้รับรายละเอียดเพิ่มเติม 7. ระบุรูปแบบของข้อมูลการตอบสนองการใช้คีมาที่ (DTD, W3C แบบแผน RelaxNG หรือ Schematron) สำหรับการให้บริการผู้ที่ต้องการโพสต์หรือนำไปมันยังให้สคีมาเพื่อระบุรูปแบบของการตอบสนอง 8. อธิบายว่าบริการของคุณจะถูกเรียกโดยใช้เอกสาร WSDL หรือเพียงเอกสาร HTML

สรุป

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