ความแตกต่างระหว่าง API เกตเวย์และ ESB หรือไม่ [ปิด]


20

บริษัท ที่ฉันทำงานอยู่กำลังประเมินโซลูชันมิดเดิลแวร์สำหรับการวัดการวัดและความปลอดภัยของบริการบนเว็บ ขณะนี้เรากำลังใช้ Enterprise Service Bus (ESB) เพื่อจุดประสงค์นี้ แต่มีผู้บริหารที่ยอดเยี่ยมบางคนตัดสินใจว่าพวกเขาจะปรับใช้ API Management Middleware บางส่วน

ฉันค้นคว้าข้อมูลเล็กน้อยเกี่ยวกับโซลูชันการจัดการ API (หรือที่รู้จักว่าเกตเวย์ API) แต่ไม่พบความแตกต่างระหว่างสิ่งเหล่านี้กับ ESB จริง ฉันประเมินเอกสารสีขาวจาก Mule, WSO2, Oracle เป็นต้น แต่คุณสมบัติที่นำเสนอโดยผลิตภัณฑ์ทั้งสองดูเหมือนจะใกล้เคียงกัน คำถามคือสิ่งที่การจัดการ API สามารถทำสิ่งที่ ESB ไม่สามารถทำได้และในทางกลับกัน? สามารถเพิ่มมูลค่าอะไรลงในโครงสร้างพื้นฐานด้านไอทีโดยแทนที่ ESB สำหรับ API เกตเวย์


4
คำถาม "หัวข้อ API เกตเวย์และ ESB แตกต่างกันอย่างไร" สำหรับการอภิปรายวิศวกรรมซอฟต์แวร์
Francisco d'Anconia

คำตอบ:


21

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

API Gateway เป็นจุดเชื่อมต่อส่วนกลางสำหรับการจัดการตรวจสอบและรักษาความปลอดภัยในการเข้าถึงบริการทางเว็บที่เปิดเผยต่อสาธารณะ นอกจากนี้ยังช่วยให้คุณสามารถรวมบริการข้ามจุดสิ้นสุดที่แตกต่างราวกับว่าพวกเขาทั้งหมดมาจากโฮสต์เดียว ตัวอย่างเช่นสมมติว่าคุณมีจุดบริการที่แตกต่างกันสิบจุดซึ่งเป็นส่วนหนึ่งของบริการ "ชุด" เดียว แทนที่จะแจ้งให้ผู้บริโภคทราบถึงบริการของคุณเพื่อใช้ service1.yourcompany.com สำหรับบริการหนึ่งและ service2.yourcompany.com สำหรับบริการอื่นและอื่น ๆ คุณสามารถให้พวกเขาชี้ไปที่ api.yourcompany.com/service1 หรือ api.yourcompany.com แทน / service2 และเกตเวย์จะรับผิดชอบในการเปลี่ยนเส้นทางคำขอไปยังปลายทางที่เหมาะสม

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

เหตุผล API เกตเวย์ไม่ใช่การแทนที่สำหรับ ESB แต่เป็นการปรับปรุงสำหรับสถาปัตยกรรมเชิงบริการ


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

ESB เป็น API เกตเวย์ภายในมีไว้สำหรับการใช้งานภายนอกหากคุณต้องการใช้ API เกตเวย์ภายในแทน ESB ฉันคิดว่าไม่มีอะไรจะหยุดคุณ
Michael Brown

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

สิ่งหนึ่งที่ ESB ถูกออกแบบมาสำหรับปริมาณการใช้ข้อมูลสูง มันมักจะมีโปรโตคอลที่เป็นมิตรหรือไม่เป็นมิตรกับอินเทอร์เน็ต API เกตเวย์ออกแบบมาเพื่อแปลระหว่างอินเทอร์เน็ตโปรโตคอล (SOAP, JSON, XML, HL7) และวางคำขอบน ESB โดยทั่วไปคุณสามารถใช้เกตเวย์สำหรับการสื่อสารระหว่างบริการภายในของคุณซึ่งไม่จำเป็นต้องทำให้เหมาะสมที่สุด
Michael Brown
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.