هذه المقالة يتيمة. ساعد بإضافة وصلة إليها في مقالة متعلقة بها

جاكرتا للمراسلة

من ويكيبيديا، الموسوعة الحرة
اذهب إلى التنقل اذهب إلى البحث
واجهة برمجة تطبيقات جاكرتا للمراسلة
شعار جافا.jpg
معلومات عامة
التصنيف
الرخصة
التطوير
المطور
الإصدار الأخير
المستودع
متفرقات
موقع الويب
projects.eclipse.org… (الإنجليزية) عدل القيمة على Wikidata

إن واجهة برمجة تطبيقات «جاكرتا للمراسلة (كانت تُسمى سابقًا» خدمة رسائل جافا«أو»JMS API«) هي واجهة برمجة تطبيقات» (API) جافا للبرامج الوسيطة الموجهة إلى الرسائل. توفّر الواجهة نماذج مراسلة عامة قادرة على التعامل مع المشكلات بين المنتِج والمستهلك، ويمكن استخدامها في تسهيل إرسال واستلام الرسائل بين أنظمة البرمجيات.[3] إن واجهة جاكرتا للمراسلة هي جزء من Jakarta EE، وكانت تُعرّف في الأصل بأنها خاصية تم تطويرها في شركة «صن مايكروسيستمز» (Sun Microsystems)، قبل أن تتولى «عملية مجتمع جافا» مهمة توجيهها.[4]

فكرة عامة عن المراسلة[عدل]

إن المراسلة هي شكل من أشكال التواصل المُوزّع المرتبط بشكل غير مُحكَم (loosely coupled)، ويُعرّف مصطلح «التواصل» في هذا السياق بأنه تبادل الرسائل بين مكونات البرامج. تحاول التقنيات الموجهة للرسائل تخفيف قيود التواصل «المرتبط بإحكام» (Tightly coupled) (مثل منافذ شبكة TCP، أو CORBA أو RMI)، وذلك عن طريق تقديم عنصر وسيط. تسمح هذه الطريقة لمكونات البرامج بالتواصل مع بعضها بشكل غير مباشر، وتتضمن المزايا الناتجة عن ذلك عدم احتياج مُرسلين الرسائل لامتلاك معلومات دقيقة عن مَن يتلقون الرسائل.

تتضمن مزايا المراسلة القدرة على دمج منصات متباينة، وتقليل قيود النظام، وزيادة وتوسيع حجمه، والاستجابة للتغيير بسرعة أكبر.[5]

تاريخ النسخة[عدل]

  • JMS 1.0 [6]
  • JMS 1.0.1 في (5 أكتوبر 1998) [6]
  • JMS 1.0.1a في (30 أكتوبر 1998) [7][8]
  • JMS 1.0.2 في (17 ديسمبر 1999) [9]
  • JMS 1.0.2a في (23 ديسمبر 1999) [10]
  • JMS 1.0.2b في (27 أغسطس 2001) [11]
  • JMS 1.1 في (12 أبريل 2002) [12]
  • JMS 2.0 في (21 مايو 2013) [13][14]
  • JMS 2.0a في (16 مارس 2015) [15][16]

إن النسخة JMS 2.0 هي النسخة الحالية التي توفرها «عملية مجتمع جافا» تحت عنوان JSR 343.[17]

النسخة JMS 3.0 في مرحلة التطوير المبكر كجزء من Jakarta EE.[18]

العناصر[عدل]

فيما يلي عناصر JMS:[19]

مُزوّد JMS تطبيق لواجهة JMS في «برنامج وسيط موجه للرسائل» (MOM)، ويُطبّق المزود إما كتطبيق لـ JSM  جافا أو كمُحوّل لـ MOM بدون جافا. عميل JMS تطبيق أو عملية ينتج و/أو يستقبل الرسائل. مُنتِج/ناشر JMS عميل JMS الذي يُنشئ الرسائل ويرسلها. مستهلك/مشترك JMS عميل JMS الذي يتلقى الرسائل رسالة JMS الكائن الذي يحتوي على البيانات المُنقولة بين عملاء JMS. طابور JMS نقطة تجمُع تحتوي على الرسائل التي أُرسلت وبانتظار القراءة (بواسطة مستهلك واحد)، وكما يوحي اسم «طابور»، فإن الرسائل تُوصّل وفقًا لترتيب إرسالها، ويضمن طابور JMS أن كل رسالة يتم معالجتها مرة واحدة فقط. موضوع JMS آلية توزيع لنشر الرسائل التي يتم توصيلها لعدّة مشتركين.

النماذج[عدل]

إن واجهة برمجة تطبيقات JMS (أو JMS API) تدعم نموذجين مختلفين:

  • نموذج المرور من نقطة إلى نقطة
  • نموذج النشر والمشاركة

نموذج المرور من نقطة إلى نقطة[عدل]

في ظل نظام المراسلة من نقطة إلى نقطة، يتم توجيه الرسائل إلى المستهلكين الفرديين الذين لديهم طوابير من الرسائل الواردة. إن هذا النوع من المراسلة قائم على مفهم «طوابير الرسائل»، والمرسلين والمستلمين، حيث كل رسالة تُوجّه إلى طابور محدد، ويستخلص العملاء المستلمين لها الرسائل من الطوابير الموضوعة للاحتفاظ برسائلهم. يستطيع أي عدد من المنتجين إرسال رسائل إلى الطابور، ولكن يضمن النظام توصيل كل رسالة لمستهلك واحد فقط. تحتفظ الطوابير بجميع الرسائل المرسلة إليها حتى يتم استهلاك جميع الرسائل أو تنتهي صلاحيتها. إذا لم يُسجّل أي مستهلكين لاستهلاك الرسائل، يحتفظ بهم الطابور حتى يسجّل مستهلك لاستهلاكهم.

نموذج النشر والاشتراك[عدل]

إن نموذج «النشر والاشتراك» يدعم نشر الرسائل حول «موضوع» مراسلة معين. يستطيع «المشتركون» تسجيل اهتمامهم بتلقي الرسائل «المنشورة» حول موضوع مراسلة معين. لا يعرف الناشر ولا المشترك بعضهما في هذا النموذج، الأمر أشبه بلوحة إعلانات تحافظ على هوية المعلنين فيها، حيث:  

  • سيتلقى عدد من المستهلكين الرسائل أو قد لا يتلقاها أي مستهلكين على الإطلاق.
  • يوجد اعتمادية مرتبطة بالتوقيت بين الناشرين والمشتركين. يجب على الناشر إنشاء موضوع رسالة يشترك فيه العملاء، ويجب على المشترك أن يظل نشطًا باستمرار لتلقي الرسائل، ما لم يكن سجّل في اشتراك دائم. في تلك الحالة، الرسائل المنشورة أثناء عدم اتصال المشترك سيتم إعادة توزيعها عندما يتصل بالشبكة.

تُوفّر JMS طريقة لفصل التطبيق عن طبقة النقل الخاصة بتزويد البيانات. ويمكن استخدام نفس فئات جافا في التواصل مع مزودين JMS المختلفين عن طريق استخدام معلومات «واجهة تسمية ودليل جافا» (JNDI) في المُزوّد المرغوب. تستخدم الفئات في البداية «مصنع ارتباط» للاتصال بالطابور أو الموضوع، ثم تستخدم أمر تأهيل وإرسال الرسائل أو نشرها. أما من ناحية المستلمين، فيستلم العميل الرسالة أو يشترك في خاصية تلقي الرسائل.

مخطط «واجهة تجربة المستخدم» (URI)[عدل]

يُعرّف RFC 6167 واجهة تطبيقات JMS بأنها: مخطط URI لخدمة رسائل جافا.

تطبيقات المزود[عدل]

إذا أرد شخص ما استخدام JMS، يجب أن يكون لديه مزوّد JMS يستطيع إدارة الجلسات والطوابير والمواضيع. وأصبح من الضروري تضمين مزود JMS في جمع خوادم تطبيق Java EE بدايةً من نسخة Java EE رقم 1.4. يمكن تطبيق هذا باستخدام إدارة تدفق الرسائل الواردة في «معمارية موصّل Java EE»، والتي أصبحت متاحة لأول مرة في هذه النسخة. تضم القائمة التالية بعض من مزوّدي JMS ذوي الشعبية:

انظر أيضًا[عدل]

مراجع[عدل]

  1. أ ب "Release 3.0.0"، 23 سبتمبر 2020، اطلع عليه بتاريخ 9 أكتوبر 2020. {{استشهاد ويب}}: تحقق من التاريخ في: |access-date= و|date= (مساعدة)
  2. أ ب "Release 3.0.0"، 23 سبتمبر 2020، اطلع عليه بتاريخ 21 يونيو 2021. {{استشهاد ويب}}: تحقق من التاريخ في: |access-date= و|date= (مساعدة)
  3. ^ Curry, Edward. 2004. "Message-Oriented Middleware". In Middleware for Communications, ed. Qusay H Mahmoud, 1-28. Chichester, England: John Wiley and Sons. doi:10.1002/0470862084.ch1. ISBN 978-0-470-86206-3
  4. ^ "JSR 914: Java Message Service (JMS) API"، The Java Community Process Program، مؤرشف من الأصل في 25 فبراير 2021، اطلع عليه بتاريخ 31 يوليو 2018.
  5. ^ Richards et al., pages 3–5.
  6. أ ب قالب:"Java Message Service" (PDF). Sun Microsystems. October 5, 1998. Archived (PDF) from the original on 1999-02-24
  7. ^ "Java Message Service Documentation"، Sun Microsystems، 30 أكتوبر 1998، مؤرشف من الأصل في 24 فبراير 1999، اطلع عليه بتاريخ 31 يوليو 2018.
  8. ^ "Java Message Service Source - Version 1.0.1a"، Sun Microsystems، 29 أكتوبر 1998، مؤرشف من الأصل (ZIP) في 16 أغسطس 2000، اطلع عليه بتاريخ 31 يوليو 2018.
  9. ^ "Java Message Service" (PDF)، Sun Microsystems، تاريخ النشر: 17 ديسمبر 1999، 9 نوفمبر 1999، مؤرشف من الأصل (PDF) في 23 أغسطس 2000، اطلع عليه بتاريخ 31 يوليو 2018.
  10. ^ "Java Message Service Documentation"، Sun Microsystems، 23 ديسمبر 1999، مؤرشف من الأصل في 29 فبراير 2000، اطلع عليه بتاريخ 31 يوليو 2018.
  11. ^ "Java Message Service" (PDF)، Sun Microsystems، 27 أغسطس 2001، مؤرشف من الأصل (PDF) في 14 أغسطس 2020، اطلع عليه بتاريخ 31 يوليو 2018.
  12. ^ "Java Message Service" (PDF)، Sun Microsystems، 12 أبريل 2002، مؤرشف من الأصل (PDF) في 14 أغسطس 2020، اطلع عليه بتاريخ 31 يوليو 2018.
  13. ^ "Java Message Service" (PDF)، Oracle، 20 مارس 2013، اطلع عليه بتاريخ 31 يوليو 2018.
  14. ^ "JMS 2.0 Final Release"، Java Message Service Specification، 9 يونيو 2017، مؤرشف من الأصل في 10 ديسمبر 2020، اطلع عليه بتاريخ 31 يوليو 2018.
  15. ^ "Java Message Service" (PDF)، Oracle، 10 مارس 2015، اطلع عليه بتاريخ 31 يوليو 2018.
  16. ^ "JMS 2.0 errata release (Rev a)"، Java Message Service Specification، 5 يوليو 2017، مؤرشف من الأصل في 10 ديسمبر 2020، اطلع عليه بتاريخ 31 يوليو 2018.
  17. ^ "JSR 343: Java Message Service 2.0"، The Java Community Process Program، مؤرشف من الأصل في 25 فبراير 2021، اطلع عليه بتاريخ 31 يوليو 2018.
  18. ^ Monson-Haefel, Richard (6 ديسمبر 2018)، "JMS 3.0: Get Involved!"، Tomitribe، مؤرشف من الأصل في 18 يناير 2021، اطلع عليه بتاريخ 17 يوليو 2020.
  19. ^ Java Message Service (JMS) نسخة محفوظة 2020-03-16 على موقع واي باك مشين.
  20. ^ "Apache Qpid™: Open Source AMQP Messaging"، مؤرشف من الأصل في 10 مارس 2021.
  21. ^ Wallis, Graham، "Choosing a messaging system: WebSphere MQ vs. the WebSphere Application Server Service Integration Bus"، IBM developerWorks، مؤرشف من الأصل في 21 مارس 2017.

روابط خارجية[عدل]