ความแตกต่างระหว่าง REST และ SOAP ความแตกต่างระหว่างการแนะนำ

Anonim

บทนำ

บทความนี้กล่าวถึงสองโปรโตคอลการเข้าถึงบริการเว็บ SOAP ("Simple Object Access Protocol") และ REST ("State State Representation Transfer")

บริการเว็บ

บริการเว็บถูกกำหนดเพื่อดึงข้อมูลอ่านหรือถ่ายโอนข้อมูลจากแหล่งที่กำหนดเพื่อนำเสนอผลการค้นหาที่ระบุ - ผลที่ได้

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

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

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

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

วิธีการจัดการข้อมูลในบริการเว็บจะพิจารณาโดยใช้ SOAP หรือ REST

SOA และ BPMN

แอ็พพลิเคชันที่สร้างขึ้นจากกระบวนการที่ปฏิบัติการอยู่บนพื้นฐาน Service Oriented Architecture ("SOA") เป็นวิธีการในการใช้บริการที่ถ่ายโอนสร้างตรวจสอบหรือคำนวณข้อมูล

SOA กำลังเป็นที่นิยมมากขึ้นในการปรับปรุงคุณภาพและเวลาในการพัฒนาและปรับปรุงประสิทธิภาพของแอพพลิเคชันและความยืดหยุ่น

สัญกรณ์การสร้างแบบจำลองกระบวนการทางธุรกิจ ("BPMN") เป็นการจำลองกระบวนการบริการหรือกระบวนการทางธุรกิจซึ่งสามารถทำได้โดยบุคคลที่ไม่ใช่ฝ่ายเทคนิค i. อี นักวิเคราะห์ธุรกิจ การใช้ BPMN รูปแบบธุรกิจ (สำหรับบริการ) จะแปลได้ง่ายโดยนักพัฒนาซอฟต์แวร์ที่ใช้โมเดลเป็นกระบวนการปฏิบัติการและกระบวนการเหล่านี้อาจหรือไม่จำเป็นต้องมีปฏิสัมพันธ์ของมนุษย์

SOAP (Simple Object Access Protocol)

SOAP คือวิธีการถ่ายโอนข้อมูลผ่านทางอินเทอร์เน็ต

เดิมพัฒนาขึ้นโดย Microsoft เนื่องจากการถือกำเนิดขึ้นของอินเทอร์เน็ต SOAP เปลี่ยนเทคโนโลยี DCOM และ CORBA เก่าและใช้เวลานานกว่า REST มาก

SOAP ถือว่าหนักกว่า REST iอี มีสัมภาระมากกว่าที่จำเป็นในการถ่ายโอนข้อมูลซึ่งหมายความว่าจำเป็นต้องใช้แบนด์วิธมากกว่าคำขอหนึ่งข้อความและแหล่งข้อมูลและเป้าหมายต้องทำงานมากขึ้นเมื่อบรรจุและรับข้อมูล

SOAP ใช้ XML สำหรับบริการส่งข้อความผ่านทางอินเทอร์เน็ตเท่านั้นและการร้องขอข้อความ XML อาจมีความซับซ้อนมากและหากพัฒนาด้วยตนเองต้องใช้ความรอบคอบเนื่องจาก SOAP ไม่ยืดหยุ่นและมีข้อผิดพลาด

เป็นไปได้ว่าจะใช้ข้อความ SOAP โดยอัตโนมัติโดยใช้ NET (เป็นตัวอย่าง) ซึ่งนักพัฒนาซอฟต์แวร์ไม่จำเป็นต้องทำงานกับ XML เนื่องจากสร้างขึ้นโดยอัตโนมัติในพื้นหลัง

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

ดังนั้นภาษาที่ใช้ในการเขียนโปรแกรมจึงเป็นตัวกำหนดปัจจัยที่จะทำให้ SOAP ใช้งานได้ยาก

สัมภาระชิ้นเดียวที่มาพร้อมกับข้อความ SOAP คือ Web Services Description Language ("WSDL") เพื่ออธิบายว่าบริการเว็บทำงานได้อย่างไร เมื่อโปรแกรมประยุกต์อ้างอิงบริการเว็บจะอ่านและเข้าใจว่าจะทำอย่างไรกับบริการเว็บ

SOAP ไม่จำเป็นต้องใช้ HTTP (HyperText Transfer Protocol) โดยเฉพาะ; มันสามารถใช้ผ่าน SMTP และโปรโตคอลการขนส่งอื่น ๆ

เนื่องจากมาตรฐาน SOAP มีความเข้มงวดกว่า REST แม้ว่าทั้งสองจะขึ้นอยู่กับกฎที่กำหนด

REST

REST เป็นญาติแบบใหม่และเงามากขึ้นของ SOAP และกลายเป็นทางเลือกสำหรับเว็บแอปพลิเคชันบนมือถือและเว็บส่วนใหญ่

กว่าหนึ่งทศวรรษหลังจากการเปิดตัว REST เป็นวิธีที่เบาและสามารถปรับขนาดได้มากขึ้นในการโต้ตอบกับบริการเว็บ

ไม่เหมือน SOAP REST ไม่ใช้ XML เฉพาะ; ข้อความล้วน , CSV และ RSS สามารถใช้งานได้เช่นเดียวกับ JSON สำหรับการโทร AJAX; ตราบเท่าทั้งแหล่งที่มาและเป้าหมายสามารถเข้าใจรูปแบบที่ใช้

REST น้อยซับซ้อนและถือว่าเป็นเส้นโค้งการเรียนรู้ที่มีขนาดเล็กกว่าเมื่อเทียบกับ SOAP ภาษาการเขียนโปรแกรมที่ทันสมัยที่สุดมีไลบรารีและเฟรมเพื่ออำนวยความสะดวกใน REST (RESTful) services เช่น C #, Python, Java และ Perl

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

ข้อดีและข้อเสียของทั้งสองข้อมีข้อดีและข้อเสียดังนั้นเมื่อพิจารณาว่าโปรโตคอลการเข้าถึงใดควรใช้ให้พิจารณาภาษาโปรแกรมที่ใช้ในองค์กรสภาพแวดล้อมของแอ็พพลิเคชันและข้อกำหนดของแอพพลิเคชัน