Apache Camel - ภาพรวม
Camel เป็นกล่องดำที่รับข้อความจากปลายทางบางส่วนและส่งไปยังอีกเครื่องหนึ่ง ภายในกล่องดำข้อความอาจถูกประมวลผลหรือเพียงแค่เปลี่ยนเส้นทาง
แล้วทำไมต้องมีกรอบสำหรับสิ่งนี้? ในสถานการณ์จริงตามที่เห็นในกรณีศึกษาเบื้องต้นอาจมีผู้ส่งหลายรายและผู้รับหลายรายแต่ละรายปฏิบัติตามโปรโตคอลของตนเองเช่น ftp, http และ jms ระบบอาจต้องใช้กฎที่ซับซ้อนมากมายเช่นข้อความจากผู้ส่ง A ควรส่งไปยัง B & C เท่านั้นในสถานการณ์คุณอาจต้องแปลข้อความเป็นรูปแบบอื่นที่ผู้รับคาดหวัง การแปลนี้อาจอยู่ภายใต้เงื่อนไขบางประการตามเนื้อหาของข้อความ โดยพื้นฐานแล้วคุณอาจต้องแปลระหว่างโปรโตคอลส่วนประกอบกาวเข้าด้วยกันกำหนดกฎการกำหนดเส้นทางและจัดเตรียมการกรองตามเนื้อหาของข้อความ แสดงในรูปต่อไปนี้ -
เพื่อให้เป็นไปตามข้อกำหนดข้างต้นและออกแบบสถาปัตยกรรมซอฟต์แวร์ที่เหมาะสมสำหรับสถานการณ์เช่นนี้ Enterprise Integration Patterns ( EIP ) ได้รับการบันทึกโดย Gregor Hohpe และ Bobby Woolf ในปี 2003 Apache Camel จัดเตรียมรูปแบบเหล่านี้ให้ใช้งานและจุดประสงค์ของบทช่วยสอนนี้คือการสอน วิธีใช้ Camel ในสถานการณ์เช่นเดียวกับที่อธิบายไว้ในบทนำ
Apache Camel เป็นเฟรมเวิร์กโอเพ่นซอร์ส เป็นมิดเดิลแวร์ที่เน้นข้อความที่ให้เครื่องมือกำหนดเส้นทางและสื่อกลางตามกฎ คุณสามารถกำหนดกฎต่างๆเช่นหากเป็นคำสั่งซื้อ "นม" จะเปลี่ยนเส้นทางไปยังผู้ขายนมและหากเป็นคำสั่งซื้อ "น้ำมัน" จะเปลี่ยนเส้นทางไปยังผู้ขายน้ำมันเป็นต้น เมื่อใช้ Camel คุณจะสามารถใช้กฎเหล่านี้และกำหนดเส้นทางในโค้ด Java ที่คุ้นเคย หมายความว่าคุณสามารถใช้ Java IDE ที่คุณคุ้นเคยเพื่อกำหนดกฎเหล่านี้ในสภาพแวดล้อม type-safe เราไม่จำเป็นต้องใช้ไฟล์คอนฟิกูเรชัน XML ซึ่งโดยทั่วไปแล้วจะมีขนาดใหญ่ แม้ว่า Camel จะรองรับการกำหนดค่า XML ผ่าน Spring framework หากคุณต้องการใช้ XML ในการกำหนดค่ากฎ คุณสามารถใช้ไฟล์ Blueprint XML Configuration และแม้แต่ Scala DSL ได้หากคุณเป็นคนรัก Scala นอกจากนี้ยังหมายความว่าคุณสามารถใช้ Java, Scala IDE ที่คุณชื่นชอบหรือแม้แต่โปรแกรมแก้ไข XML แบบธรรมดาเพื่อกำหนดค่ากฎ
อินพุตของเอ็นจิ้นนี้อาจเป็นไฟล์ข้อความที่คั่นด้วยจุลภาค POJO (Plain Old Java Object) XML เป็นรูปแบบอื่น ๆ ที่ Camel รองรับ ในทำนองเดียวกันเอาต์พุตของเครื่องยนต์สามารถเปลี่ยนเส้นทางไปยังไฟล์ไปยังคิวข้อความหรือแม้แต่หน้าจอมอนิเตอร์ของคุณเพื่อให้คุณดูคำสั่งซื้อที่ส่งไปยังผู้ขายที่เกี่ยวข้อง สิ่งเหล่านี้เรียกว่า endpoints และ Camel รองรับรูปแบบMessage Endpoint EIP จุดสิ้นสุดของอูฐจะกล่าวถึงในตอนท้ายของบทจุดสิ้นสุด
โดยทั่วไปแล้ว Camel จะใช้กับApache ServiceMix , Apache ActiveMQและApache CXFเพื่อใช้สถาปัตยกรรมที่มุ่งเน้นการบริการ