บริการทางเว็บคืออะไร? Archiเทคเจอร์ ประเภท ตัวอย่าง
⚡ สรุปอย่างชาญฉลาด
เว็บเซอร์วิสเป็นสื่อกลางมาตรฐานสำหรับการสื่อสารระหว่างแอปพลิเคชันไคลเอ็นต์และเซิร์ฟเวอร์ผ่านทางเวิลด์ไวด์เว็บ เอกสารนี้จะอธิบายวิธีการทำงานของเว็บเซอร์วิส ประเภท SOAP และ RESTful ส่วนประกอบ WSDL และ UDDI บทบาททางสถาปัตยกรรม และลักษณะสำคัญต่างๆ
บริการเว็บคืออะไร?
บริการเว็บ เป็นสื่อมาตรฐานในการเผยแพร่การสื่อสารระหว่างไคลเอนต์และแอปพลิเคชันเซิร์ฟเวอร์บน WWW (เวิลด์ไวด์เว็บ) บริการเว็บเป็นโมดูลซอฟต์แวร์ที่ออกแบบมาเพื่อทำงานชุดหนึ่ง
- บริการเว็บในการประมวลผลแบบคลาวด์สามารถค้นหาผ่านเครือข่ายและยังสามารถเรียกใช้ได้ตามนั้น
- เมื่อเรียกใช้ บริการเว็บจะสามารถมอบฟังก์ชันการทำงานให้กับลูกค้า ซึ่งเรียกใช้บริการเว็บนั้น
เว็บเซอร์วิสทำงานอย่างไร?
แผนภาพด้านบนแสดงมุมมองที่เรียบง่ายมากว่าบริการเว็บจะทำงานอย่างไร ลูกค้าจะเรียกใช้บริการเว็บหลายครั้งผ่านการร้องขอไปยังเซิร์ฟเวอร์ซึ่งจะโฮสต์บริการเว็บจริง
การร้องขอเหล่านี้ทำผ่านสิ่งที่เรียกว่าการเรียกใช้ฟังก์ชันระยะไกล (Remote Procedure Calls หรือ RPC) RPC คือการเรียกใช้เมธอดต่างๆ ที่โฮสต์โดยเว็บเซอร์วิสที่เกี่ยวข้อง
ตัวอย่างเช่น, Amazon ให้บริการเว็บเซอร์วิสที่แสดงราคาสินค้าที่จำหน่ายทางออนไลน์ผ่านทาง amazon.com เลเยอร์ฟรอนต์เอนด์หรือเลเยอร์การนำเสนออาจอยู่ในรูปแบบ .Net หรือ Javaแต่ภาษาโปรแกรมทั้งสองภาษาสามารถสื่อสารกับเว็บเซอร์วิสได้
องค์ประกอบหลักของการออกแบบบริการเว็บคือข้อมูลที่ถ่ายโอนระหว่างไคลเอนต์และเซิร์ฟเวอร์ ซึ่งก็คือ XML XML (ภาษามาร์กอัปที่ขยายได้) เป็นภาษาที่เทียบเคียงได้กับ HTML และเป็นภาษาระดับกลางที่เข้าใจง่าย ซึ่งเป็นภาษาที่ภาษาโปรแกรมหลายภาษาสามารถเข้าใจได้
ดังนั้น เมื่อแอปพลิเคชันต่างๆ สื่อสารกัน พวกมันจะสื่อสารกันด้วย XML ซึ่งเป็นแพลตฟอร์มทั่วไปที่ช่วยให้แอปพลิเคชันที่พัฒนาด้วยภาษาโปรแกรมต่างๆ สามารถสื่อสารกันได้
บริการเว็บใช้สิ่งที่เรียกว่า SOAP (Simple Object Access Protocol) เพื่อส่งข้อมูล XML ระหว่างแอปพลิเคชัน ข้อมูลจะถูกส่งผ่าน HTTP ปกติ ข้อมูลที่ส่งจากบริการเว็บไปยังแอปพลิเคชันเรียกว่าข้อความ SOAP ข้อความ SOAP ไม่ใช่อะไรนอกจากเอกสาร XML เนื่องจากเอกสารถูกเขียนในรูปแบบ XML แอปพลิเคชันไคลเอนต์ที่เรียกใช้บริการเว็บจึงสามารถเขียนในภาษาการเขียนโปรแกรมใดก็ได้
ทำไมคุณถึงต้องการบริการเว็บ?
แอปพลิเคชันทางธุรกิจในยุคปัจจุบันใช้แพลตฟอร์มการเขียนโปรแกรมที่หลากหลายในการพัฒนาแอปพลิเคชันบนเว็บ แอปพลิเคชันบางอย่างอาจได้รับการพัฒนาด้วยภาษาโปรแกรมต่างๆ Javaบางส่วนใช้ .Net ในขณะที่บางส่วนใช้ Angular JS, Node.js เป็นต้น
บ่อยครั้งที่แอปพลิเคชันที่แตกต่างกันเหล่านี้จำเป็นต้องมีการสื่อสารระหว่างกัน เนื่องจากแอปพลิเคชันเหล่านี้สร้างขึ้นโดยใช้ภาษาการพัฒนาที่แตกต่างกัน จึงเป็นเรื่องยากที่จะรับประกันการสื่อสารที่ถูกต้องแม่นยำระหว่างแอปพลิเคชันเหล่านั้น
นี่คือที่มาของบริการเว็บ บริการเว็บเป็นแพลตฟอร์มทั่วไปที่อนุญาตให้มีแอปพลิเคชันหลายตัวที่สร้างขึ้นจากหลากหลาย การเขียนโปรแกรมภาษา เพื่อให้มีความสามารถในการสื่อสารระหว่างกัน
ประเภทของบริการเว็บ
โดยหลักแล้วบริการเว็บมีอยู่ 2 ประเภท:
- บริการเว็บสบู่
- บริการเว็บ RESTful.
เพื่อให้บริการเว็บทำงานได้อย่างสมบูรณ์ จำเป็นต้องมีส่วนประกอบบางอย่างครบถ้วน ส่วนประกอบเหล่านี้ต้องมีอยู่ไม่ว่าคุณจะใช้ภาษาใดในการเขียนโปรแกรมบริการเว็บก็ตาม เรามาดูส่วนประกอบเหล่านี้โดยละเอียดกัน
SOAP (โปรโตคอลการเข้าถึงวัตถุอย่างง่าย)
SOAP เป็นที่รู้จักในฐานะโปรโตคอลการรับส่งข้อความที่ไม่ขึ้นอยู่กับวิธีการขนส่ง (Transport-Independent Messaging Protocol) SOAP ใช้การส่งข้อมูล XML ในรูปแบบข้อความ SOAP โดยแต่ละข้อความจะมีสิ่งที่เรียกว่าเอกสาร XML เฉพาะโครงสร้างของเอกสาร XML เท่านั้นที่จะเป็นไปตามรูปแบบเฉพาะ แต่เนื้อหาจะไม่เป็นไปตามรูปแบบนั้น ข้อดีที่สุดของเว็บเซอร์วิสและ SOAP คือการส่งข้อมูลทั้งหมดผ่าน HTTP ซึ่งเป็นโปรโตคอลเว็บมาตรฐาน
ต่อไปนี้คือส่วนประกอบของข้อความ SOAP:
- เอกสาร SOAP แต่ละเอกสารจำเป็นต้องมีองค์ประกอบรูทที่เรียกว่า องค์ประกอบ. องค์ประกอบรูทเป็นองค์ประกอบแรกในเอกสาร XML
- “ซองจดหมาย” จะแบ่งออกเป็น 2 ส่วน อันแรกคือส่วนหัวและอันถัดไปคือเนื้อหา
- ส่วนหัวของเอกสารประกอบด้วยข้อมูลการกำหนดเส้นทาง ซึ่งโดยพื้นฐานแล้วคือข้อมูลที่บอกเอกสาร XML ว่าต้องส่งไปยังไคลเอ็นต์ใด
- เนื้อความก็จะมีข้อความตามจริง
แผนภาพด้านล่างแสดงตัวอย่างง่ายๆ ของการสื่อสารผ่าน SOAP
เราจะหารือเกี่ยวกับ SOAP โดยละเอียดในเรื่องนี้ เกี่ยวกับการสอน.
WSDL (บริการเว็บ Descript(ภาษาไอออน)
หากไม่พบเว็บเซอร์วิส ก็จะไม่สามารถใช้งานได้ ผู้ใช้งานที่เรียกใช้บริการเว็บควรทราบว่าบริการเว็บนั้นตั้งอยู่ที่ใด
ประการที่สอง แอปพลิเคชันไคลเอ็นต์จำเป็นต้องทราบว่าเว็บเซอร์วิสนั้นทำอะไร เพื่อที่จะสามารถเรียกใช้เว็บเซอร์วิสที่ถูกต้องได้ ซึ่งทำได้โดยใช้ WSDL หรือที่เรียกว่า Web Services Descriptภาษา ion ไฟล์ WSDL เป็นไฟล์ XML ที่โดยพื้นฐานแล้วจะบอกแอปพลิเคชันไคลเอ็นต์ว่าเว็บเซอร์วิสทำอะไร โดยการใช้เอกสาร WSDL แอปพลิเคชันไคลเอ็นต์จะสามารถเข้าใจได้ว่าเว็บเซอร์วิสอยู่ที่ใดและสามารถใช้งานได้อย่างไร
ตัวอย่างบริการเว็บ
ตัวอย่างบริการเว็บของไฟล์ WSDL มีดังต่อไปนี้
<definitions> <message name="TutorialRequest"> <part name="TutorialID" type="xsd:string"/> </message> <message name="TutorialResponse"> <part name="TutorialName" type="xsd:string"/> </message> <portType name="Tutorial_PortType"> <operation name="Tutorial"> <input message="tns:TutorialRequest"/> <output message="tns:TutorialResponse"/> </operation> </portType> <binding name="Tutorial_Binding" type="tns:Tutorial_PortType"> <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="Tutorial"> <soap:operation soapAction="Tutorial"/> <input> <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:examples:Tutorialservice" use="encoded"/> </input> <output> <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:examples:Tutorialservice" use="encoded"/> </output> </operation> </binding> </definitions>
ประเด็นสำคัญที่ควรทราบเกี่ยวกับตัวอย่างการประกาศ WSDL ข้างต้นของบริการเว็บมีดังนี้:
- – พารามิเตอร์ข้อความในคำจำกัดความ WSDL ใช้สำหรับกำหนดองค์ประกอบข้อมูลต่างๆ สำหรับแต่ละการดำเนินการที่ดำเนินการโดยเว็บเซอร์วิส ดังนั้นในตัวอย่างเว็บเซอร์วิสข้างต้น เรามีข้อความ 2 ข้อความที่สามารถแลกเปลี่ยนระหว่างเว็บเซอร์วิสและแอปพลิเคชันไคลเอ็นต์ได้ คือ ข้อความ “TutorialRequest” และข้อความ “TutorialResponse” ข้อความ TutorialRequest มีองค์ประกอบที่เรียกว่า “TutorialID” ซึ่งเป็นชนิดสตริง ในทำนองเดียวกัน ข้อความ TutorialResponse มีองค์ประกอบที่เรียกว่า “TutorialName” ซึ่งเป็นชนิดสตริงเช่นกัน
- – นี่คือคำอธิบายการทำงานที่สามารถทำได้โดยเว็บเซอร์วิส ซึ่งในกรณีของเราเรียกว่า Tutorial การทำงานนี้รับข้อความได้ 2 ข้อความ คือ ข้อความขาเข้า และข้อความขาออก
- – องค์ประกอบนี้ประกอบด้วยโปรโตคอลที่ใช้ ในกรณีของเรา เรากำหนดให้ใช้ HTTP (http://schemas.xmlsoap.org/soap/http) นอกจากนี้ เรายังระบุรายละเอียดอื่นๆ สำหรับส่วนเนื้อหาของการดำเนินการ เช่น เนมสเปซ และว่าจะเข้ารหัสข้อความหรือไม่
ในบทความนี้ เราจะมาพูดคุยเกี่ยวกับ “WSDL” อย่างละเอียดกัน เกี่ยวกับการสอน.
สากล Descriptไอออน การค้นพบ และบูรณาการ (UDDI)
UDDI เป็นมาตรฐานสำหรับการอธิบาย เผยแพร่ และค้นหาบริการเว็บที่จัดทำโดยผู้ให้บริการรายใดรายหนึ่ง มีข้อกำหนดที่ช่วยในการโฮสต์ข้อมูลบนบริการเว็บ
ในหัวข้อก่อนหน้านี้ เราได้พูดถึง WSDL และวิธีการจัดเก็บข้อมูลเกี่ยวกับสิ่งที่เว็บเซอร์วิสทำจริง ๆ แล้ว แต่แอปพลิเคชันไคลเอนต์จะค้นหาไฟล์ WSDL เพื่อทำความเข้าใจการทำงานต่าง ๆ ที่นำเสนอโดยเว็บเซอร์วิสได้อย่างไร ดังนั้น UDDI จึงเป็นคำตอบสำหรับคำถามนี้ และให้ที่เก็บข้อมูลที่สามารถโฮสต์ไฟล์ WSDL ได้ ดังนั้น แอปพลิเคชันไคลเอนต์จะมีสิทธิ์เข้าถึง UDDI ได้อย่างสมบูรณ์ ซึ่งทำหน้าที่เป็นฐานข้อมูลที่ประกอบด้วยไฟล์ WSDL ทั้งหมด
เช่นเดียวกับสมุดโทรศัพท์ที่มีชื่อ ที่อยู่ และหมายเลขโทรศัพท์ของบุคคลใดบุคคลหนึ่ง ระบบทะเบียน UDDI ก็จะมีข้อมูลที่เกี่ยวข้องสำหรับบริการบนเว็บในทำนองเดียวกันเพื่อให้แอปพลิเคชันไคลเอ็นต์ทราบว่าสามารถค้นหาได้ที่ใด
ข้อดีของบริการเว็บ
เราเข้าใจกันอยู่แล้วว่าทำไมเว็บเซอร์วิสถึงเกิดขึ้นมาตั้งแต่แรก ซึ่งก็คือการสร้างแพลตฟอร์มที่ช่วยให้แอปพลิเคชันต่างๆ สามารถสื่อสารกันได้ แต่ลองมาดูข้อดีของเว็บเซอร์วิสกันดีกว่าว่าทำไมการใช้บริการเว็บเซอร์วิสจึงมีความสำคัญ
- การเปิดเผยฟังก์ชันทางธุรกิจบนเครือข่าย – เว็บเซอร์วิสคือหน่วยของโค้ดที่ได้รับการจัดการซึ่งให้ฟังก์ชันการทำงานบางอย่างแก่แอปพลิเคชันไคลเอ็นต์หรือผู้ใช้ปลายทาง ฟังก์ชันการทำงานนี้สามารถเรียกใช้งานได้ผ่านโปรโตคอล HTTP ซึ่งหมายความว่าสามารถเรียกใช้งานได้ผ่านทางอินเทอร์เน็ต ปัจจุบันแอปพลิเคชันทั้งหมดอยู่บนอินเทอร์เน็ต ซึ่งทำให้จุดประสงค์ของเว็บเซอร์วิสมีประโยชน์มากขึ้น นั่นหมายความว่าเว็บเซอร์วิสสามารถอยู่ได้ทุกที่บนอินเทอร์เน็ตและให้ฟังก์ชันการทำงานที่จำเป็นตามต้องการ
- การทำงานร่วมกันระหว่างแอปพลิเคชัน – บริการเว็บช่วยให้แอปพลิเคชันต่างๆ สามารถสื่อสารและแบ่งปันข้อมูลและบริการระหว่างกันได้ แอปพลิเคชันทุกประเภทสามารถสื่อสารกันได้ ดังนั้นแทนที่จะเขียนโค้ดเฉพาะที่เข้าใจได้เฉพาะแอปพลิเคชันบางชนิด คุณสามารถเขียนโค้ดทั่วไปที่เข้าใจได้โดยแอปพลิเคชันทุกประเภทได้แล้ว
- พิธีสารมาตรฐานที่ทุกคนเข้าใจ – บริการเว็บใช้โปรโตคอลมาตรฐานอุตสาหกรรมสำหรับการสื่อสาร ทั้งสี่ชั้น (การขนส่งบริการ, การส่งข้อความ XML, บริการ) Descriptเลเยอร์ ion และ Service Discovery ใช้โปรโตคอลที่กำหนดไว้อย่างชัดเจนในสแต็กโปรโตคอลของเว็บเซอร์วิส
- การลดต้นทุนในการสื่อสาร – บริการเว็บใช้ SOAP ผ่านโปรโตคอล HTTP ดังนั้นคุณสามารถใช้อินเทอร์เน็ตราคาประหยัดที่มีอยู่เพื่อใช้บริการเว็บได้
บริการเว็บ Archiเทคเจอร์
ทุกเฟรมเวิร์กจำเป็นต้องมีสถาปัตยกรรมบางอย่างเพื่อให้แน่ใจว่าเฟรมเวิร์กทั้งหมดทำงานได้ตามที่ต้องการ ในทำนองเดียวกัน ในบริการเว็บก็เช่นกัน บริการเว็บ Archiเทคเจอร์ ประกอบด้วยบทบาทที่แตกต่างกันสามบทบาท ดังต่อไปนี้:
- ผู้ให้บริการ – ผู้ให้บริการสร้างเว็บเซอร์วิสและทำให้พร้อมใช้งานสำหรับแอปพลิเคชันไคลเอ็นต์ที่ต้องการใช้งาน
- ผู้ร้องขอ – ผู้ร้องขอเป็นเพียงแอปพลิเคชันไคลเอนต์ที่ต้องติดต่อกับบริการเว็บ แอปพลิเคชันไคลเอ็นต์สามารถเป็น .Net Javaหรือแอปพลิเคชันที่ใช้ภาษาอื่นใดที่ค้นหาฟังก์ชันการทำงานบางอย่างผ่านทางเว็บเซอร์วิส
- โบรกเกอร์ – ตัวกลาง (Broker) ก็คือแอปพลิเคชันที่ให้สิทธิ์ในการเข้าถึง UDDI นั่นเอง UDDI นั้น ตามที่ได้กล่าวไว้ในหัวข้อก่อนหน้านี้ ช่วยให้แอปพลิเคชันไคลเอ็นต์สามารถค้นหาเว็บเซอร์วิสได้
แผนภาพด้านล่างแสดงให้เห็นถึงวิธีการที่ผู้ให้บริการ ผู้ร้องขอ และระบบลงทะเบียนบริการมีปฏิสัมพันธ์กัน
- สาธารณะ – ผู้ให้บริการจะแจ้งให้โบรกเกอร์ (หน่วยงานลงทะเบียนบริการ) ทราบถึงการมีอยู่ของบริการเว็บโดยใช้ส่วนติดต่อการเผยแพร่ของโบรกเกอร์เพื่อให้ลูกค้าสามารถเข้าถึงบริการได้
- หา – ผู้ร้องขอปรึกษากับตัวกลางเพื่อค้นหาบริการเว็บที่เผยแพร่แล้ว
- ผูก – ด้วยข้อมูลที่ได้รับจากตัวกลาง (service registry) เกี่ยวกับเว็บเซอร์วิส ผู้ร้องขอจึงสามารถผูกหรือเรียกใช้เว็บเซอร์วิสได้
คุณลักษณะของบริการเว็บ
บริการเว็บมีคุณลักษณะพฤติกรรมพิเศษดังต่อไปนี้:
- เป็นแบบ XML – เว็บเซอร์วิสใช้ XML ในการแสดงข้อมูลทั้งในระดับการแสดงผลและการส่งข้อมูล การใช้ XML ช่วยขจัดข้อจำกัดด้านเครือข่าย ระบบปฏิบัติการ หรือแพลตฟอร์มใดๆ เนื่องจาก XML เป็นภาษาทั่วไปที่ทุกคนเข้าใจได้
- ประกบกันอย่างหลวมๆ – การเชื่อมโยงแบบหลวมๆ หมายถึง ไคลเอ็นต์และเว็บเซอร์วิสไม่ผูกพันกัน ซึ่งหมายความว่า แม้ว่าเว็บเซอร์วิสจะเปลี่ยนแปลงไปตามกาลเวลา แต่ก็ไม่ควรเปลี่ยนวิธีที่ไคลเอ็นต์เรียกใช้เว็บเซอร์วิส การใช้สถาปัตยกรรมแบบเชื่อมโยงแบบหลวมๆ มีแนวโน้มที่จะทำให้ระบบซอฟต์แวร์จัดการได้ง่ายขึ้น และช่วยให้บูรณาการระหว่างระบบต่างๆ ได้ง่ายขึ้น
- Syncฟังก์ชันการทำงานแบบ Hronous หรือ Asynchronous - Synchronicity หมายถึงการผูกมัดของไคลเอนต์กับการดำเนินการของบริการ ในการดำเนินการแบบซิงโครนัส ไคลเอนต์จะรอให้เว็บเซอร์วิสดำเนินการเสร็จสิ้น ตัวอย่างนี้อาจเป็นสถานการณ์ที่มีการดำเนินการอ่านและเขียนฐานข้อมูล หากมีการอ่านข้อมูลจากฐานข้อมูลหนึ่งแล้วเขียนลงในอีกฐานข้อมูลหนึ่งในภายหลัง การดำเนินการจะต้องดำเนินการตามลำดับ การดำเนินการแบบอะซิงโครนัสช่วยให้ไคลเอนต์เรียกใช้บริการแล้วดำเนินการฟังก์ชันอื่นๆ พร้อมกัน นี่เป็นหนึ่งในเทคนิคทั่วไปและอาจเป็นที่ต้องการมากที่สุดเพื่อให้แน่ใจว่าบริการอื่นๆ จะไม่หยุดทำงานเมื่อดำเนินการบางอย่าง
- ความสามารถในการรองรับการเรียกขั้นตอนระยะไกล (RPC) – บริการเว็บช่วยให้ไคลเอนต์สามารถเรียกใช้ขั้นตอน ฟังก์ชัน และวิธีการบนออบเจ็กต์ระยะไกลโดยใช้โปรโตคอลที่ใช้ XML ขั้นตอนระยะไกลเปิดเผยพารามิเตอร์อินพุตและเอาต์พุตที่บริการเว็บต้องรองรับ
- รองรับการแลกเปลี่ยนเอกสาร ประโยชน์หลักประการหนึ่งของ XML คือวิธีการทั่วไปในการแสดงไม่เพียงแค่ข้อมูลแต่ยังรวมถึงเอกสารที่ซับซ้อนด้วย เอกสารเหล่านี้อาจเรียบง่ายได้เพียงแสดงที่อยู่ปัจจุบัน หรืออาจซับซ้อนได้เพียงแสดงหนังสือทั้งเล่ม




