MuleSoft - โครงการล่อ

แรงจูงใจที่อยู่เบื้องหลังโครงการล่อคือ -

  • เพื่อทำให้สิ่งต่างๆง่ายขึ้นสำหรับโปรแกรมเมอร์

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

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

ประวัติศาสตร์

มุมมองทางประวัติศาสตร์ของโครงการล่อมีดังนี้ -

โครงการ SourceForge

โครงการ Mule เริ่มต้นในฐานะโครงการ SourceForge ในเดือนเมษายน พ.ศ. 2546 และหลังจากนั้น 2 ปีก็มีการเผยแพร่เวอร์ชันแรกและย้ายไปที่ CodeHaus Universal Message Object (UMO) API เป็นหัวใจหลักของสถาปัตยกรรม แนวคิดเบื้องหลัง UMO API คือการรวมตรรกะในขณะที่แยกพวกมันออกจากการขนส่งพื้นฐาน

เวอร์ชัน 1.0.6

ได้รับการปล่อยตัวในเดือนเมษายน 2548 ซึ่งมีการขนส่งจำนวนมาก จุดสำคัญของเวอร์ชันอื่น ๆ ตามมาด้วยคือการดีบักและเพิ่มคุณสมบัติใหม่

เวอร์ชัน 2.0 (การยอมรับ Spring 2)

Spring 2 เป็นเฟรมเวิร์กการกำหนดค่าและการเดินสายไฟใน Mule 2 แต่ได้รับการพิสูจน์แล้วว่าเป็นการลากเส้นที่สำคัญเนื่องจากขาดการแสดงออกของการกำหนดค่า XML ที่จำเป็น ปัญหานี้ได้รับการแก้ไขเมื่อมีการนำการกำหนดค่าตาม XML Schema มาใช้ใน Spring 2

สร้างด้วย Maven

การปรับปรุงที่ใหญ่ที่สุดที่ทำให้การใช้งาน Mule ง่ายขึ้นทั้งในช่วงเวลาการพัฒนาและการปรับใช้คือการใช้ Maven จากเวอร์ชัน 1.3 เริ่มสร้างด้วย Maven

MuleSource

ในปี 2549 MuleSource ได้รวม“ เพื่อช่วยสนับสนุนและเปิดใช้งานชุมชนที่เติบโตอย่างรวดเร็วโดยใช้ Mule ในแอปพลิเคชันระดับองค์กรที่มีภารกิจสำคัญ” ได้รับการพิสูจน์แล้วว่าเป็นก้าวสำคัญของโครงการล่อ

คู่แข่งของ Mule ESB

ต่อไปนี้เป็นคู่แข่งสำคัญของ Mule ESB -

  • WSO2 ESB
  • Oracle Service Bus
  • WebSphere Message Broker
  • แพลตฟอร์ม Aurea CX
  • Fiorano ESB
  • WebSphere DataPower Gateway
  • กรอบกระบวนการธุรกิจในวันทำงาน
  • Talend Enterprise Service Bus
  • JBoss Enterprise Service Bus
  • iWay ผู้จัดการฝ่ายบริการ

แนวคิดหลักของ Mule

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

สำหรับสิ่งนี้เราจำเป็นต้องเข้าใจสถาปัตยกรรมของมันรวมถึงการสร้างบล็อค

สถาปัตยกรรม

สถาปัตยกรรมของ Mule ESB มีสามชั้น ได้แก่ เลเยอร์การขนส่งเลเยอร์การรวมและเลเยอร์แอปพลิเคชันดังแสดงในแผนภาพต่อไปนี้ -

โดยทั่วไปมีงานสามประเภทดังต่อไปนี้ที่สามารถดำเนินการเพื่อกำหนดค่าและปรับแต่งการปรับใช้ Mule -

การพัฒนาส่วนประกอบบริการ

งานนี้เกี่ยวข้องกับการพัฒนาหรือการใช้ POJO ที่มีอยู่หรือ Spring Beans อีกครั้ง POJO เป็นคลาสที่มีแอตทริบิวต์ที่สร้างเมธอด get and set ตัวเชื่อมต่อระบบคลาวด์ ในทางกลับกัน Spring Beans มีตรรกะทางธุรกิจเพื่อเสริมสร้างข้อความ

การจัดระเบียบบริการ

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

บูรณาการ

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

การก่อสร้างตึก

การกำหนดค่า Mule มีโครงสร้างพื้นฐานต่อไปนี้ -

ถั่วสปริง

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

ตัวแทน

โดยพื้นฐานแล้วเป็นบริการที่สร้างขึ้นใน Anypoint Studio ก่อน Mule Studio เอเจนต์ถูกสร้างขึ้นเมื่อคุณเริ่มเซิร์ฟเวอร์และจะถูกทำลายเมื่อคุณหยุดเซิร์ฟเวอร์

ตัวเชื่อมต่อ

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

การกำหนดค่าส่วนกลาง

ตามความหมายของชื่อ Building Block นี้ใช้เพื่อตั้งค่าคุณสมบัติส่วนกลางและการตั้งค่า

Global Endpoints

สามารถใช้ในแท็บ Global Elements ซึ่งสามารถใช้ได้กี่ครั้งในโฟลว์ -

Global Message Processor

ตามความหมายของชื่อจะสังเกตหรือปรับเปลี่ยนข้อความหรือโฟลว์ของข้อความ หม้อแปลงและตัวกรองเป็นตัวอย่างของ Global Message Processor

Transformers- งานหลักของหม้อแปลงคือการแปลงข้อมูลจากรูปแบบหนึ่งไปเป็นอีกรูปแบบหนึ่ง สามารถกำหนดได้ทั่วโลกและสามารถใช้ได้ในหลายโฟลว์

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

โมเดล

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

Services- บริการเป็นสิ่งที่ห่อหุ้มตรรกะทางธุรกิจหรือส่วนประกอบของเรา นอกจากนี้ยังกำหนดค่าเราเตอร์ปลายทางหม้อแปลงและตัวกรองเฉพาะสำหรับบริการนั้น ๆ

Endpoints- อาจถูกกำหนดให้เป็นวัตถุที่บริการจะรับข้อความขาเข้า (รับ) และขาออก (ส่ง) บริการเชื่อมต่อผ่านจุดสิ้นสุด

ไหล

ตัวประมวลผลข้อความใช้โฟลว์เพื่อกำหนดโฟลว์ข้อความระหว่างแหล่งที่มาและเป้าหมาย

โครงสร้างข้อความล่อ

ข้อความ Mule ซึ่งรวมอยู่ภายใต้ Mule Message Object เป็นข้อมูลที่ส่งผ่านแอปพลิเคชันผ่าน Muleflow ข้อความของ Structure Mule แสดงในแผนภาพต่อไปนี้ -

ดังที่เห็นในแผนภาพด้านบน Mule Message ประกอบด้วยสองส่วนหลัก -

หัวข้อ

ไม่มีอะไรนอกจากข้อมูลเมตาของข้อความซึ่งแสดงเพิ่มเติมจากคุณสมบัติสองประการต่อไปนี้ -

Inbound Properties- นี่คือคุณสมบัติที่กำหนดโดยแหล่งที่มาของข้อความโดยอัตโนมัติ ผู้ใช้ไม่สามารถจัดการหรือตั้งค่าได้ โดยธรรมชาติคุณสมบัติขาเข้าไม่เปลี่ยนรูป

Outbound Properties- คุณสมบัติเหล่านี้คือคุณสมบัติที่มีข้อมูลเมตาเช่นคุณสมบัติขาเข้าและสามารถตั้งค่าได้ในระหว่างขั้นตอน พวกเขาสามารถตั้งค่าโดยอัตโนมัติโดย Mule หรือด้วยตนเองโดยผู้ใช้ โดยธรรมชาติคุณสมบัติขาออกสามารถเปลี่ยนแปลงได้

คุณสมบัติขาออกกลายเป็นคุณสมบัติขาเข้าเมื่อข้อความผ่านจากจุดสิ้นสุดขาออกของโฟลว์หนึ่งไปยังปลายทางขาเข้าของโฟลว์อื่นผ่านการขนส่ง

คุณสมบัติขาออกยังคงคุณสมบัติขาออกเมื่อข้อความถูกส่งไปยังโฟลว์ใหม่ผ่านโฟลว์ ref แทนที่จะเป็นตัวเชื่อมต่อ

น้ำหนักบรรทุก

ข้อความทางธุรกิจจริงที่ดำเนินการโดยวัตถุข้อความเรียกว่า payload

ตัวแปร

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

Flow variables - ตัวแปรเหล่านี้ใช้กับโฟลว์ที่มีอยู่เท่านั้น

Session variables - ตัวแปรเหล่านี้ใช้กับโฟลว์ทั้งหมดภายในแอปพลิเคชันเดียวกัน

Record variables - ตัวแปรเหล่านี้ใช้กับระเบียนที่ประมวลผลเป็นส่วนหนึ่งของชุดงานเท่านั้น

ไฟล์แนบและน้ำหนักบรรทุกพิเศษ

ต่อไปนี้เป็นข้อมูลเมตาเพิ่มเติมเกี่ยวกับส่วนของข้อความซึ่งไม่จำเป็นต้องปรากฏทุกครั้งในวัตถุข้อความ