การสื่อสารด้วยข้อความเป็นวิธีหนึ่งของการสื่อสารระหว่างกระบวนการ (IPC) ซึ่งประมวลผลการแลกเปลี่ยนข้อมูลโดยการส่งและรับข้อความ ในรูปแบบการสื่อสารนี้ กระบวนการส่งจะสร้างข้อความที่มีข้อมูลที่จะแบ่งปันและส่งไปยังกระบวนการรับ กระบวนการรับจะดึงข้อความและแยกข้อมูลที่จำเป็น
แนวทางนี้ทำให้เกิดความชัดเจนในการสื่อสารกระบวนการ ช่วยให้กระบวนการแลกเปลี่ยนข้อมูลโดยไม่ต้องแชร์พื้นที่หน่วยความจำโดยตรง การสื่อสารด้วยข้อความรองรับรูปแบบการสื่อสารทั้งแบบซิงโครนัส (บล็อก) และอะซิงโครนัส (ไม่บล็อก) ทำให้เหมาะสำหรับสถาปัตยกรรมระบบต่างๆ
วิธีการสื่อสารด้วยข้อความทำงานอย่างไร
กระบวนการสื่อสารตามข้อความ กระบวนการผู้ส่ง คิวข้อความ กระบวนการรับ 1. ส่ง 2. รับคิวการตอบกลับ 3. การตอบกลับ 4. อ่านขั้นตอน:1. ผู้ส่งสร้างและส่งข้อความไปยังคิว 2. ผู้รับอ่านข้อความจากคิว 3. ผู้รับประมวลผลและส่งการตอบกลับ (ทางเลือก)
กระบวนการสื่อสารเป็นไปตามขั้นตอนเหล่านี้:
-
กระบวนการส่งจะสร้างข้อความและระบุกระบวนการของผู้รับ
-
ข้อความถูกวางในคิวข้อความที่เกี่ยวข้องกับกระบวนการของผู้รับ
-
กระบวนการผู้รับอ่านข้อความจากคิว
-
กระบวนการผู้รับประมวลผลข้อความและเลือกที่จะส่งการตอบกลับ
-
ข้อความตอบกลับจะเป็นไปตามกลไกการจัดคิวเดียวกันกลับไปยังผู้ส่ง
ประเภทของการส่งผ่านข้อความ
ข้อดี
-
ความเรียบง่ายและความยืดหยุ่น ให้นามธรรมที่ชัดเจนสำหรับการแลกเปลี่ยนข้อมูล พร้อมรองรับการสื่อสารทั้งแบบซิงโครนัสและอะซิงโครนัส
-
กระบวนการแบบโมดูลาร์ยังคงเป็นอิสระโดยไม่ต้องพึ่งพาหน่วยความจำร่วมกัน ช่วยให้ออกแบบและบำรุงรักษาระบบได้ง่ายขึ้น
-
ความเป็นอิสระของแพลตฟอร์มทำงานได้กับระบบปฏิบัติการและขอบเขตเครือข่ายที่แตกต่างกัน
-
การสนับสนุนการซิงโครไนซ์ สามารถใช้การซิงโครไนซ์แบบดั้งเดิม เช่น เซมาฟอร์และอุปสรรค
-
ข้อความความปลอดภัยสามารถเข้ารหัสและควบคุมการเข้าถึงเพื่อเพิ่มความปลอดภัย
-
การจัดการข้อผิดพลาด กลไกในตัวสำหรับการตรวจจับและกู้คืนจากข้อผิดพลาดในการส่ง
ข้อเสีย
-
การสร้างข้อความโอเวอร์เฮดด้านประสิทธิภาพ การส่ง และการเข้าคิวเพิ่มค่าใช้จ่ายในการคำนวณและหน่วยความจำเมื่อเปรียบเทียบกับหน่วยความจำที่ใช้ร่วมกัน
-
ความซับซ้อนในการนำไปใช้ ซับซ้อนมากขึ้นในการออกแบบและนำไปใช้มากกว่าแนวทางหน่วยความจำที่ใช้ร่วมกัน
-
ขีดจำกัดความสามารถในการปรับขนาดอาจไม่เหมาะสำหรับสถานการณ์การสื่อสารที่มีปริมาณมากหรือมีเวลาแฝงต่ำ
-
ข้อจำกัดขนาดข้อความ ขีดจำกัดขนาดข้อความที่ระบบกำหนดอาจต้องมีการแยกส่วนสำหรับข้อมูลขนาดใหญ่
-
ข้อความความน่าเชื่อถือในการจัดส่งอาจสูญหายหรือเสียหายได้ โดยต้องมีกลไกการจัดการข้อผิดพลาดเพิ่มเติม
กรณีการใช้งานทั่วไป
-
การสื่อสารระบบแบบกระจายระหว่างกระบวนการบนเครื่องที่แตกต่างกัน
-
สถาปัตยกรรมไมโครเซอร์วิส การสื่อสารแบบบริการต่อบริการผ่านคิวข้อความ
-
ระบบผู้ผลิต-ผู้บริโภค แยกผู้ผลิตข้อมูลจากผู้บริโภค
-
ระบบที่ขับเคลื่อนด้วยเหตุการณ์ เหตุการณ์การออกอากาศและการแจ้งเตือนระหว่างส่วนประกอบ
บทสรุป
การสื่อสารด้วยข้อความเป็นกลไก IPC พื้นฐานที่ให้การแยกกระบวนการ ความยืดหยุ่น และความเป็นอิสระของแพลตฟอร์ม แม้ว่าจะมีค่าใช้จ่ายด้านประสิทธิภาพบางส่วนเมื่อเทียบกับหน่วยความจำที่ใช้ร่วมกัน แต่ก็มีโมดูลาร์ที่ดีกว่าและจำเป็นสำหรับระบบแบบกระจายและสถาปัตยกรรมแบบ Loosely-Couple