บริการทางเว็บคืออะไร? Archiเทคเจอร์ ประเภท ตัวอย่าง
บริการเว็บคืออะไร?
บริการเว็บ เป็นสื่อมาตรฐานในการเผยแพร่การสื่อสารระหว่างไคลเอนต์และแอปพลิเคชันเซิร์ฟเวอร์บน WWW (เวิลด์ไวด์เว็บ) บริการเว็บเป็นโมดูลซอฟต์แวร์ที่ออกแบบมาเพื่อทำงานชุดหนึ่ง
- บริการเว็บในการประมวลผลแบบคลาวด์สามารถค้นหาผ่านเครือข่ายและยังสามารถเรียกใช้ได้ตามนั้น
- เมื่อเรียกใช้ บริการเว็บจะสามารถมอบฟังก์ชันการทำงานให้กับลูกค้า ซึ่งเรียกใช้บริการเว็บนั้น
เว็บเซอร์วิสทำงานอย่างไร?

แผนภาพด้านบนแสดงมุมมองที่เรียบง่ายมากว่าบริการเว็บจะทำงานอย่างไร ลูกค้าจะเรียกใช้บริการเว็บหลายครั้งผ่านการร้องขอไปยังเซิร์ฟเวอร์ซึ่งจะโฮสต์บริการเว็บจริง
การร้องขอเหล่านี้ทำผ่านสิ่งที่เรียกว่าการเรียกขั้นตอนระยะไกล การเรียกขั้นตอนระยะไกล (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 เป็นต้น
บ่อยครั้งที่แอปพลิเคชันที่แตกต่างกันเหล่านี้ต้องการการสื่อสารบางรูปแบบระหว่างกัน เนื่องจากแอปพลิเคชันเหล่านี้สร้างขึ้นโดยใช้ภาษาการพัฒนาที่แตกต่างกัน จึงทำให้ยากที่จะรับรองการสื่อสารที่ถูกต้องระหว่างแอปพลิเคชัน
นี่คือที่มาของบริการเว็บ บริการเว็บเป็นแพลตฟอร์มทั่วไปที่อนุญาตให้มีแอปพลิเคชันหลายตัวที่สร้างขึ้นจากหลากหลาย การเขียนโปรแกรมภาษา เพื่อให้มีความสามารถในการสื่อสารระหว่างกัน
ประเภทของบริการเว็บ
บริการเว็บส่วนใหญ่มีสองประเภท
- บริการเว็บสบู่
- บริการเว็บ RESTful.
เพื่อให้บริการเว็บทำงานได้อย่างสมบูรณ์ มีองค์ประกอบบางอย่างที่จำเป็นต้องมี คอมโพเนนต์เหล่านี้จำเป็นต้องมีอยู่ ไม่ว่าจะใช้ภาษาการพัฒนาใดก็ตามในการเขียนโปรแกรมบริการเว็บ
มาดูรายละเอียดส่วนประกอบเหล่านี้กันดีกว่า
SOAP (โปรโตคอลการเข้าถึงวัตถุอย่างง่าย)
SOAP เรียกว่าโปรโตคอลการส่งข้อความที่ไม่ขึ้นอยู่กับการขนส่ง SOAP ขึ้นอยู่กับการถ่ายโอนข้อมูล XML เป็นข้อความ SOAP แต่ละข้อความมีสิ่งที่เรียกว่าเอกสาร XML เฉพาะโครงสร้างของเอกสาร XML เท่านั้นที่เป็นไปตามรูปแบบเฉพาะ แต่ไม่ใช่เนื้อหา ส่วนที่ดีที่สุดของบริการบนเว็บและ SOAP ก็คือบริการทั้งหมดส่งผ่าน HTTP ซึ่งเป็นโปรโตคอลเว็บมาตรฐาน
นี่คือสิ่งที่ข้อความ SOAP ประกอบด้วย
- เอกสาร SOAP แต่ละเอกสารจำเป็นต้องมีองค์ประกอบรูทที่เรียกว่า องค์ประกอบ. องค์ประกอบรูทเป็นองค์ประกอบแรกในเอกสาร XML
- “ซองจดหมาย” จะแบ่งออกเป็น 2 ส่วน อันแรกคือส่วนหัวและอันถัดไปคือเนื้อหา
- ส่วนหัวประกอบด้วยข้อมูลการกำหนดเส้นทางซึ่งโดยพื้นฐานแล้วเป็นข้อมูลที่บอกเอกสาร XML ไปยังไคลเอนต์ที่ต้องการส่งไป
- เนื้อความก็จะมีข้อความตามจริง
แผนภาพด้านล่างแสดงตัวอย่างง่ายๆ ของการสื่อสารผ่าน SOAP
เราจะหารือเกี่ยวกับ SOAP โดยละเอียดในเรื่องนี้ เกี่ยวกับการสอน.
WSDL (ภาษาคำอธิบายบริการเว็บ)
ไม่สามารถใช้บริการเว็บได้หากไม่พบ- ไคลเอนต์ที่เรียกใช้บริการเว็บควรรู้ว่าจริงๆ แล้วบริการเว็บนั้นอยู่ที่ใด
ประการที่สอง แอปพลิเคชันไคลเอ็นต์จำเป็นต้องทราบว่าบริการบนเว็บทำอะไรได้บ้าง เพื่อให้สามารถเรียกใช้บริการเว็บที่เหมาะสมได้ ซึ่งทำได้ด้วยความช่วยเหลือของ WSDL หรือที่เรียกว่าภาษาคำอธิบายบริการเว็บ ไฟล์ 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” ซึ่งเป็นสตริงประเภทเช่นกัน
- – นี่คือคำอธิบายการทำงานที่เว็บเซอร์วิสสามารถทำได้ ซึ่งในกรณีของเราเรียกว่าบทช่วยสอน การทำงานนี้สามารถรับข้อความได้ 2 ข้อความ ข้อความหนึ่งเป็นข้อความอินพุต และอีกข้อความหนึ่งเป็นข้อความเอาท์พุต
- – องค์ประกอบนี้มีโปรโตคอลที่ใช้ ดังนั้นในกรณีของเรา เรากำลังกำหนดให้ใช้ http (http://schemas.xmlsoap.org/soap/http) นอกจากนี้ เรายังระบุรายละเอียดอื่นๆ สำหรับเนื้อหาของการดำเนินการ เช่น เนมสเปซ และว่าจะต้องเข้ารหัสข้อความหรือไม่
เราจะหารือเกี่ยวกับ “WDSL” โดยละเอียดในเรื่องนี้ เกี่ยวกับการสอน.
สากล Descriptไอออน การค้นพบ และบูรณาการ (UDDI)
UDDI เป็นมาตรฐานสำหรับการอธิบาย เผยแพร่ และค้นหาบริการเว็บที่จัดทำโดยผู้ให้บริการรายใดรายหนึ่ง มีข้อกำหนดที่ช่วยในการโฮสต์ข้อมูลบนบริการเว็บ
ในหัวข้อก่อนหน้านี้ เราได้พูดถึง WSDL และวิธีการจัดเก็บข้อมูลเกี่ยวกับสิ่งที่เว็บเซอร์วิสทำจริง ๆ แล้ว แต่แอปพลิเคชันไคลเอนต์จะค้นหาไฟล์ WSDL เพื่อทำความเข้าใจการทำงานต่าง ๆ ที่นำเสนอโดยเว็บเซอร์วิสได้อย่างไร ดังนั้น UDDI จึงเป็นคำตอบสำหรับคำถามนี้ และให้ที่เก็บข้อมูลที่สามารถโฮสต์ไฟล์ WSDL ได้ ดังนั้น แอปพลิเคชันไคลเอนต์จะมีสิทธิ์เข้าถึง UDDI ได้อย่างสมบูรณ์ ซึ่งทำหน้าที่เป็นฐานข้อมูลที่ประกอบด้วยไฟล์ WSDL ทั้งหมด
เช่นเดียวกับสมุดโทรศัพท์ที่มีชื่อ ที่อยู่ และหมายเลขโทรศัพท์ของบุคคลใดบุคคลหนึ่ง ในลักษณะเดียวกับที่รีจิสทรี UDDI จะมีข้อมูลที่เกี่ยวข้องสำหรับบริการบนเว็บ- เพื่อให้แอปพลิเคชันไคลเอนต์ทราบว่าสามารถพบได้ที่ไหน
ข้อดีของบริการเว็บ
เราเข้าใจแล้วว่าเหตุใดบริการทางเว็บจึงเกิดขึ้นตั้งแต่แรก ซึ่งก็คือการจัดหาแพลตฟอร์มที่อนุญาตให้แอปพลิเคชันต่างๆ สามารถพูดคุยถึงกันได้
แต่ลองดูรายการข้อดีของบริการเว็บว่าทำไมการใช้บริการเว็บจึงมีความสำคัญ
- การเปิดเผยฟังก์ชันทางธุรกิจบนเครือข่าย – บริการเว็บเป็นหน่วยของรหัสที่ได้รับการจัดการซึ่งจัดเตรียมฟังก์ชันการทำงานบางอย่างให้กับแอปพลิเคชันไคลเอนต์หรือผู้ใช้ปลายทาง ฟังก์ชันนี้สามารถเรียกใช้ผ่านโปรโตคอล HTTP ซึ่งหมายความว่าสามารถเรียกใช้ผ่านอินเทอร์เน็ตได้เช่นกัน ปัจจุบันแอปพลิเคชันทั้งหมดอยู่บนอินเทอร์เน็ตซึ่งทำให้วัตถุประสงค์ของบริการเว็บมีประโยชน์มากขึ้น นั่นหมายความว่าบริการเว็บสามารถอยู่ที่ใดก็ได้บนอินเทอร์เน็ตและมีฟังก์ชันการทำงานที่จำเป็นตามต้องการ
- การทำงานร่วมกันระหว่างแอปพลิเคชัน – บริการบนเว็บช่วยให้แอพพลิเคชั่นต่างๆ สามารถพูดคุยกันและแบ่งปันข้อมูลและบริการระหว่างกันได้ แอพพลิเคชั่นทุกประเภทสามารถพูดคุยกันได้ ดังนั้นแทนที่จะเขียนโค้ดเฉพาะที่สามารถเข้าใจได้โดยแอปพลิเคชันเฉพาะเท่านั้น ตอนนี้คุณสามารถเขียนโค้ดทั่วไปที่แอปพลิเคชันทั้งหมดสามารถเข้าใจได้
- พิธีสารมาตรฐานที่ทุกคนเข้าใจ – บริการเว็บใช้โปรโตคอลอุตสาหกรรมที่ได้มาตรฐานสำหรับการสื่อสาร ทั้งหมดสี่ชั้น (Service Transport, XML Messaging, Service Description และเลเยอร์ Service Discovery) ใช้โปรโตคอลที่กำหนดไว้อย่างดีในสแต็กโปรโตคอลบริการเว็บ
- การลดต้นทุนในการสื่อสาร – บริการเว็บใช้ SOAP ผ่านโปรโตคอล HTTP ดังนั้นคุณสามารถใช้อินเทอร์เน็ตราคาประหยัดที่มีอยู่เพื่อใช้บริการเว็บได้
บริการเว็บ Archiเทคเจอร์
เฟรมเวิร์กทุกเฟรมเวิร์กต้องมีสถาปัตยกรรมบางประเภทเพื่อให้แน่ใจว่าเฟรมเวิร์กทั้งหมดทำงานตามที่ต้องการ เช่นเดียวกับในบริการเว็บ บริการเว็บ Archiเทคเจอร์ ประกอบด้วย 3 บทบาทที่แตกต่างกัน ดังนี้
- ผู้ให้บริการ – ผู้ให้บริการสร้างบริการเว็บและทำให้แอปพลิเคชันไคลเอนต์ที่ต้องการใช้งานสามารถใช้งานได้
- ผู้ร้องขอ – ผู้ร้องขอเป็นเพียงแอปพลิเคชันไคลเอนต์ที่ต้องติดต่อกับบริการเว็บ แอปพลิเคชันไคลเอ็นต์สามารถเป็น .Net Javaหรือแอปพลิเคชันที่ใช้ภาษาอื่นๆ ซึ่งมองหาฟังก์ชันการทำงานบางอย่างผ่านบริการเว็บ
- โบรกเกอร์ – นายหน้าเป็นเพียงแอปพลิเคชันที่ให้การเข้าถึง UDDI UDDI ตามที่กล่าวไว้ในหัวข้อก่อนหน้านี้ทำให้แอปพลิเคชันไคลเอ็นต์สามารถระบุตำแหน่งเว็บเซอร์วิสได้
แผนภาพด้านล่างแสดงให้เห็นว่าผู้ให้บริการ ผู้ร้องขอบริการ และทะเบียนบริการโต้ตอบกันอย่างไร
- สาธารณะ – ผู้ให้บริการแจ้งนายหน้า (ทะเบียนบริการ) เกี่ยวกับการมีอยู่ของบริการเว็บโดยใช้อินเทอร์เฟซการเผยแพร่ของนายหน้าเพื่อให้ลูกค้าสามารถเข้าถึงบริการได้
- หา – ผู้ร้องขอปรึกษานายหน้าเพื่อค้นหาบริการเว็บที่เผยแพร่
- ผูก – ด้วยข้อมูลที่ได้รับจากนายหน้า (ทะเบียนบริการ) เกี่ยวกับบริการบนเว็บ ผู้ร้องขอสามารถผูกหรือเรียกใช้บริการเว็บได้
ลักษณะบริการเว็บ
บริการเว็บมีคุณลักษณะพฤติกรรมพิเศษดังต่อไปนี้:
- เป็นแบบ XML – บริการเว็บใช้ XML เพื่อแสดงข้อมูลในเลเยอร์การแสดงและการขนส่งข้อมูล การใช้ XML จะช่วยขจัดการพึ่งพาเครือข่าย ระบบปฏิบัติการ หรือแพลตฟอร์ม เนื่องจาก XML เป็นภาษากลางที่ทุกคนเข้าใจ
- ประกบกันอย่างหลวมๆ – การเชื่อมโยงแบบหลวมๆ หมายถึง ไคลเอ็นต์และเว็บเซอร์วิสไม่ผูกพันกัน ซึ่งหมายความว่า แม้ว่าเว็บเซอร์วิสจะเปลี่ยนแปลงไปตามกาลเวลา แต่ก็ไม่ควรเปลี่ยนวิธีที่ไคลเอ็นต์เรียกใช้เว็บเซอร์วิส การใช้สถาปัตยกรรมแบบเชื่อมโยงแบบหลวมๆ มีแนวโน้มที่จะทำให้ระบบซอฟต์แวร์จัดการได้ง่ายขึ้น และช่วยให้บูรณาการระหว่างระบบต่างๆ ได้ง่ายขึ้น
- Syncฟังก์ชันการทำงานแบบ Hronous หรือ Asynchronous - Synchronicity หมายถึงการผูกมัดของไคลเอนต์กับการดำเนินการของบริการ ในการดำเนินการแบบซิงโครนัส ไคลเอนต์จะรอให้เว็บเซอร์วิสดำเนินการเสร็จสิ้น ตัวอย่างนี้อาจเป็นสถานการณ์ที่มีการดำเนินการอ่านและเขียนฐานข้อมูล หากมีการอ่านข้อมูลจากฐานข้อมูลหนึ่งแล้วเขียนลงในอีกฐานข้อมูลหนึ่งในภายหลัง การดำเนินการจะต้องดำเนินการตามลำดับ การดำเนินการแบบอะซิงโครนัสช่วยให้ไคลเอนต์เรียกใช้บริการแล้วดำเนินการฟังก์ชันอื่นๆ พร้อมกัน นี่เป็นหนึ่งในเทคนิคทั่วไปและอาจเป็นที่ต้องการมากที่สุดเพื่อให้แน่ใจว่าบริการอื่นๆ จะไม่หยุดทำงานเมื่อดำเนินการบางอย่าง
- ความสามารถในการรองรับการเรียกขั้นตอนระยะไกล (RPC) – บริการเว็บช่วยให้ไคลเอนต์สามารถเรียกใช้ขั้นตอน ฟังก์ชัน และวิธีการบนออบเจ็กต์ระยะไกลโดยใช้โปรโตคอลที่ใช้ XML ขั้นตอนระยะไกลเปิดเผยพารามิเตอร์อินพุตและเอาต์พุตที่บริการเว็บต้องรองรับ
- รองรับการแลกเปลี่ยนเอกสาร ประโยชน์หลักประการหนึ่งของ XML คือวิธีการทั่วไปในการแสดงไม่เพียงแค่ข้อมูลแต่ยังรวมถึงเอกสารที่ซับซ้อนด้วย เอกสารเหล่านี้อาจเรียบง่ายได้เพียงแสดงที่อยู่ปัจจุบัน หรืออาจซับซ้อนได้เพียงแสดงหนังสือทั้งเล่ม