JMS

Java Message Service (JMS) 
        
      Java Message Service (JMS) เป็น application program interface (API) จาก Sun Microsystems ที่สนับสนุนการสื่อสารทางการที่เรียกว่า messaging ระหว่างคอมพิวเตอร์ในเครือข่าย JMS ของ Sun ให้อินเตอร์เฟซร่วมกับโปรโตคอล messaging มาตรฐานและรวมทั้งบริการ messaging เฉพาะในการสนับสนุนของโปรแกรม Java ซึ่ง Sun รณรงค์การใช้ Java Message Service สำหรับทุกคนที่พัฒนาโปรแกรมประยุกต์ Java ที่สามารถเรียกใช้จากแพล็ตฟอร์มระบบปฏิบัติการหลัก

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

      การใช้อินเตอร์เฟซ JMS ผู้เขียนโปรแกรมสามารถขอบริการ messaging ของ IBM's MQSeries, Progress Software's SonicMQ และผู้ค้าผลิตภัณฑ์ messaging ยอดนิยมอื่น นอกจากนี้ JMS สนับสนุนข่าวสารที่บรรจุอ๊อบเจค Java ที่เป็นอนุกรม และข่าวที่บรรจุเพจ Extensible Markup Language (XML)



----------------------
-----  เพิ่มเติม    -----
----------------------
     JMS เป็น standard messaging API ที่ ใช้ในการติดต่อกันแบบ Messaging ครับ ซึ่งมีการนำไปใช้ MOM (Message-oriented-middleware) System(system ที่ โครงสร้างพื้นฐานที่สนับสนุนการใช้ messaging) โดยมี product ใน market เช่น IBM MQSeries, BEA Tuxedo/Q, Microsoft MSMQ, Talarian SmartSockets, Progress SonicMQ และ Fiorano FioranoMQ. 



     messaging เหมาะสำหรับงานที่เป็น distributed ที่ต้องติดต่อระหว่างหลายๆโปรแกรมข้ามเครื่องแบบ asynchronous ที่ต้องการ reliability ว่าข้อมูลที่ส่งข้ามโปรแกรมจะต้องรับประกันว่าไม่สูญหาย ไม่ว่าเครื่องใดเครื่องหนึ่งในระหว่างทางเกิดตายไป


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


     การส่งข้อมูลตัดบัญชี แบบ synchronous จึงไม่เหมาะกับสถานการณ์แบบนี้ การใช้ asynchronous messaging queue มาช่วย จะสามารถรับประกันได้ว่า ถ้าเราส่ง message ตัดบัญชีไปที่ message queue แล้ว ไม่ว่าจุดไหนล่ม ตัว message queue จะรับผิดชอบที่จะส่ง message นั้นไปยัง เป้าหมายให้ได้ในที่สุด รายละเอียดของ messaging มีอยู่เยอะ ไม่ว่าจะเป็น delivery mode ส่งซ้ำได้หรือเปล่า หรือการส่งจะเป็นแบบ point-to-point หรือ publish-subscribe ตรงนี้คงต้องไปอ่านเพิ่มเติมเอาครับ