حدث (حوسبة)
في مجال الحوسبة ، يُعرَّف الحدث بأنه أي واقعة أو تغيير في حالة النظام، مصمم لرصده، مثل إدخال المستخدم، أو مقاطعة الأجهزة، أو إشعار النظام، أو تغيير في البيانات أو الظروف. وعندما يرتبط الحدث بمعالج أحداث، فإنه يُفعِّل استجابة. قد يعمل المعالج بشكل متزامن، حيث يتم حظر سلسلة التنفيذ حتى يُكمل معالج الأحداث معالجته، أو بشكل غير متزامن، حيث يمكن معالجة الحدث لاحقًا. وحتى عندما يبدو أن المعالجة المتزامنة تُعيق التنفيذ، فإن الآلية الأساسية في العديد من الأنظمة لا تزال غير متزامنة، وتُدار بواسطة حلقة الأحداث . [ 1 ] [ 2 ]
يمكن تنفيذ الأحداث عبر آليات متنوعة مثل ردود الاتصال ، وكائنات الرسائل، والإشارات، والمقاطعات، وتختلف الأحداث نفسها عن آليات التنفيذ المستخدمة. تحدد نماذج انتشار الأحداث، مثل الفقاعات ، والتقاط الأحداث، والنشر/الاشتراك، كيفية توزيع الأحداث ومعالجتها داخل النظام. تشمل الجوانب الرئيسية الأخرى حلقات الأحداث، وترتيب الأحداث في قوائم الانتظار وتحديد أولوياتها، وتحديد مصادر الأحداث، وأنماط معالجة الأحداث المعقدة. تساهم هذه الآليات في مرونة وقابلية توسع الأنظمة القائمة على الأحداث . [ 1 ] [ 2 ]
الأحداث مقابل الرسائل
في الأنظمة الموزعة ، تمثل الأحداث تغييرًا في الواقع أو الحالة (مثل: تم تقديم الطلب )، وعادةً ما تُبث بشكل غير متزامن إلى عدة مستهلكين، مما يعزز الترابط المنخفض وقابلية التوسع. وبينما لا تتطلب الأحداث عادةً استجابة فورية، غالبًا ما تُنفذ آليات التأكيد على مستوى البنية التحتية (مثل: إزاحات الالتزام في Kafka، وحالات تسليم SNS) بدلاً من أن تكون جزءًا لا يتجزأ من نمط الحدث نفسه. [ 3 ] [ 4 ]
في المقابل، تؤدي الرسائل دورًا أوسع، يشمل الأوامر (مثل ProcessPayment )، والأحداث (مثل PaymentProcessed )، والمستندات (مثل DataPayload ). يمكن لكل من الأحداث والرسائل دعم ضمانات تسليم متنوعة، بما في ذلك التسليم مرة واحدة على الأقل، والتسليم مرة واحدة على الأكثر، والتسليم مرة واحدة بالضبط، وذلك اعتمادًا على بنية التقنية المستخدمة والتنفيذ. مع ذلك، غالبًا ما يتحقق التسليم مرة واحدة بالضبط من خلال آليات التكرارية بدلًا من دلالات التسليم مرة واحدة بالضبط الحقيقية على مستوى البنية التحتية. [ 3 ] [ 4 ]
تشمل أنماط تسليم الأحداث والرسائل النشر/الاشتراك (من طرف إلى عدة أطراف) والاتصال المباشر (من طرف إلى طرف). ورغم أن نمط الطلب/الرد ممكن تقنيًا، إلا أنه يرتبط عادةً بأنماط المراسلة أكثر من ارتباطه بأنظمة الأحداث البحتة. تتفوق الأحداث في نشر الحالة والإشعارات المنفصلة، بينما تُعد الرسائل أنسب لتنفيذ الأوامر، وتنسيق سير العمل، والتنسيق الصريح. [ 3 ] [ 4 ]
تجمع البنى الحديثة عادةً بين كلا النهجين، مستفيدةً من الأحداث لتوزيع إشعارات تغيير الحالة والرسائل لتنفيذ الأوامر المستهدفة وسير العمل المنظم بناءً على متطلبات التوقيت والترتيب والتسليم المحددة. [ 3 ] [ 4 ]
استراتيجيات تطور الأحداث
في الأنظمة الموزعة ، يطرح تطور الأحداث تحديات، مثل إدارة مخططات الأحداث غير المتناسقة عبر الخدمات وضمان التوافق أثناء التحديثات التدريجية للنظام. تضمن استراتيجيات تطور الأحداث في بنى الأنظمة الموجهة بالأحداث (EDA) قدرة الأنظمة على التعامل مع تغييرات الأحداث دون انقطاع. تشمل هذه الاستراتيجيات ترقيم إصدارات الأحداث، مثل الترقيم الدلالي أو تطور المخطط، للحفاظ على التوافق مع الإصدارات السابقة واللاحقة . يمكن للمحولات ترجمة الأحداث بين التنسيقات القديمة والجديدة، مما يضمن معالجة متسقة عبر المكونات. تُمكّن هذه التقنيات الأنظمة من التطور مع الحفاظ على التوافق والموثوقية في البيئات الموزعة المعقدة. [ 1 ]
إشارة الحدث
في علوم الحاسوب ، الحدث (يسمى أيضًا إشارة الحدث ) هو نوع من آليات التزامن التي تستخدم للإشارة إلى العمليات المنتظرة عندما يصبح شرط معين صحيحًا.
الحدث هو نوع بيانات مجرد ذو حالة منطقية (Boolean) والعمليات التالية:
- يؤدي تنفيذ الأمر wait إلى تعليق العملية الجارية حتى يتم ضبط حالة الحدث على "صحيح". إذا كانت الحالة مضبوطة بالفعل على "صحيح" قبل استدعاء wait، فلن يكون للأمر wait أي تأثير.
- set - يقوم بتعيين حالة الحدث إلى صحيح، ويحرر جميع العمليات المنتظرة.
- clear - يضبط حالة الحدث على خطأ.
قد توفر تطبيقات الأحداث المختلفة مجموعات فرعية متباينة من هذه العمليات الممكنة؛ فعلى سبيل المثال، يوفر تطبيق مايكروسوفت ويندوز العمليات التالية: الانتظار (WaitForObject والدوال ذات الصلة)، والتعيين (SetEvent)، والمسح ( ResetEvent). ويمكن تحديد خيار أثناء إنشاء كائن الحدث لتغيير سلوك SetEvent بحيث يتم تحرير مؤشر ترابط واحد فقط، وتُعاد الحالة تلقائيًا إلى خطأ بعد تحرير هذا المؤشر.
تُعرف الأحداث التي لا تتضمن وظيفة إعادة الضبط ، أي تلك التي لا يمكن إكمالها إلا مرة واحدة ، باسم "المستقبلات". [ 5 ] أما المراقبون، فهم أكثر عمومية، إذ يجمعون بين إشارات الإكمال والقفل المتبادل ، ولا يسمحون للمنتج والمستهلك بالتنفيذ في وقت واحد داخل المراقب، مما يجعله قسمًا حرجًا مع حدث.
انظر أيضاً
- الاستدعاء (برمجة الحاسوب)
- مشغل قاعدة البيانات
- أحداث DOM
- البرمجة القائمة على الأحداث
- معالجة الاستثناءات
- معالج المقاطعة
- المقاطعات
- نمط المراقب (مثلاً، مستمع الأحداث)
- نمط المفاعل مقابل نمط المبادر
- الإشارات والفتحات - بنية اللغة في إطار عمل Qt
- التزامن الافتراضي
مراجع
- 1 2 3 ستوبفورد، بن (مايو 2018). تصميم الأنظمة القائمة على الأحداث . دار نشر أورايلي ميديا. رقم ISBN 9781492038245.
- 1 2 فاولر، مارتن (5 نوفمبر 2002). أنماط هندسة تطبيقات المؤسسات . أديسون-ويسلي بروفيشنال. ISBN 978-0321127426.
- 1 2 3 4 كليمان، مارتن (2017). تصميم التطبيقات كثيفة البيانات: الأفكار الرئيسية وراء الأنظمة الموثوقة والقابلة للتوسع والصيانة . دار نشر أورايلي ميديا. ISBN 978-1449373320.
- 1 2 3 4 بناء الخدمات المصغرة القائمة على الأحداث: الاستفادة من بيانات المؤسسة على نطاق واسع . ISBN 978-1492057895.
- ↑ في 500 سطر أو أقل، يقول "برنامج زحف الويب باستخدام الروتينات الفرعية غير المتزامنة" بقلم أ. جيسي جيريو ديفيس وغيدو فان روسوم: "يستخدم التنفيذ asyncio.Event بدلاً من Future الموضح هنا. والفرق هو أنه يمكن إعادة ضبط Event، بينما لا يمكن لـ Future الانتقال من حالة محلولة إلى حالة معلقة."
روابط خارجية
- معالجات أحداث المقالات ووظائف الاستدعاء
- تصميم عالي المستوى لمعالج أحداث المزرعة الفرعية
- صيغة الأحداث في لغة XML
- الأحداث والإشعارات الموزعة
- ترتيب الأحداث
Java DOM Interface Eventتوثيق جافا دوكjava.awt.eventحزمة جافا، توثيق واجهة برمجة التطبيقات (API) من جافا دوكjavax.swing.eventحزمة جافا، توثيق واجهة برمجة التطبيقات (API) من جافا دوك- اكتب معالج أحداث
- فهم الأحداث (السجلات والمقاييس)
- كائنات الأحداث ، شبكة مطوري مايكروسوفت
- آليات مزامنة الخيوط في بايثون ( مؤرشفة بتاريخ 1 نوفمبر 2020 على موقع Wayback Machine)
- برمجة الحاسوب
- الأحداث (الحوسبة)
- البرامج الفرعية
