โดยพื้นฐานแล้วเป็นวิธีแนวคิดในการออกแบบระบบ - บริษัท ซอฟต์แวร์พยายามขายคุณให้มากขึ้นโดยติดสติกเกอร์ 'ESB' ไว้และผู้จัดการชอบเพราะ ESB ดูดีจาก 'ระดับที่สูงขึ้น'
ESB นั้นเป็น MOM (มิดเดิลแวร์ที่เน้นข้อความ) พร้อมด้วยโมเดลข้อมูลที่เพิ่มเข้ามาและการจัดการนิยามโครงสร้าง คุณมีข้อกำหนดข้อมูลทั่วไปสำหรับแอ็พพลิเคชันและอะแด็ปเตอร์ทั้งหมดบนบัสนั้น (อาจเป็น XML กับ XSD ที่แชร์) สิ่งใดก็ตามที่เชื่อมต่อจะต้องส่งข้อมูลที่เป็นไปตามข้อกำหนดของข้อมูลนี้ ESB รองรับการโหลดการแชร์และการกำหนดเวอร์ชันของข้อกำหนดข้อมูลทั่วไปนี้ เมื่อเชื่อมต่อส่วนประกอบใหม่กับ ESB คุณสามารถคาดหวัง 'ความเข้ากันได้' นอกกรอบได้มากกว่าเมื่อเชื่อมต่อกับ MOM แต่ละองค์ประกอบบนรถบัสนั้นได้รับการปฏิบัติตามแนวคิดเป็น 'ทรัพยากร' ดังนั้นจึงมีการแนะนำนามธรรมเพิ่มเติมเพื่อแยกผู้ส่งออกจากผู้รับ
ตัวอย่าง: สมมติว่าคุณต้องการเชื่อมต่อแอปพลิเคชัน A กับแอปพลิเคชัน B ในมิดเดิลแวร์ที่เน้นข้อความมาตรฐานลองใช้ JMS คุณพูดคุยกับเพื่อนร่วมงานของคุณที่ทำงานเกี่ยวกับแอปพลิเคชัน B ตกลงในหัวข้อประเภทข้อความและฟิลด์แล้วส่ง (รหัสหลอก): sendJms ("TRADE.MSFT", {MapMessage trader = "pete" price = 101.4 vol = 100})
หากคุณทำสิ่งเดียวกันในสถาปัตยกรรมที่มุ่งเน้นการบริการคุณต้อง
- ติดตั้งซอฟต์แวร์เพิ่มเติม
- เรียนรู้แนวคิดใหม่ ๆ มากมาย
- กำหนดคอมโพเนนต์ Java ใหม่ของคุณในคู่มือผู้ดูแลระบบของ ESB
- ใช้อินเทอร์เฟซบางอย่างที่ควบคุมโดย ESB
- sendJms (getDestination (), {MapMessage trader = "pete" price = 101.4 vol = 100}) - สังเกตว่าปลายทางถูกฉีดจาก ESB
ครั้งแรกมันอาจจะเจ็บหน่อย แต่ฉันเดาว่าคุณคงชินเหมือนกับที่คุณเคยชินกับ EJB ;-)
คุณสามารถพูดได้ว่าระบบ MOM 'ไม่ได้พิมพ์' (โครงสร้างแบบไดนามิก) ในขณะที่ ESB ถูก 'พิมพ์' (โครงสร้างคงที่) การแลกเปลี่ยนระหว่างการส่งข้อความดิบกับ ESB นั้นคล้ายกับตัวเลือกที่ไม่ได้พิมพ์ / พิมพ์อื่น ๆ :
- REST กับ SOAP
- XML ที่ไม่ผ่านการตรวจสอบเทียบกับ XML ที่ตรวจสอบด้วย XSD
- Groovy กับ Java
- ภาษาที่ตีความเทียบกับภาษาที่รวบรวม
สำหรับโปรเจ็กต์ขนาดเล็กมันเป็นการดีที่จะแฮชฟังก์ชันการทำงานอย่างรวดเร็ว (เช่น Groovy code) แต่สำหรับโปรเจ็กต์ขนาดใหญ่ควรมีดีบักเกอร์ (เช่น Java) เพื่อเตือนล่วงหน้าเมื่อสิ่งต่างๆพังและมีมาตรฐานสำหรับคนก่อนกระทำกับ โครงการ.
ดังนั้นหากโครงการของคุณมีคนจำนวนมากเกินไปที่ทำลายระบบโดยการตรวจสอบการเปลี่ยนแปลงที่ไม่ได้รับการตรวจสอบให้ย้ายไปที่โครงสร้างเพิ่มเติม (ESB แทน MOM) หากโครงการของคุณประสบปัญหาไม่สามารถทำสิ่งต่างๆให้เสร็จทันเวลาให้เลือกโซลูชันที่ง่ายกว่าและไม่พิมพ์ ถ้าเป็นทั้งสองอย่าง - รับที่ปรึกษา (ล้อเล่นนะครับ ;-)