حالة الخدمة

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

كمثال على الخدمة، دعنا نفكر في الآلة الحاسبة. تأخذ خدمة الآلة الحاسبة الأساسية رقمين وترجع مجموعهما. إجراء هذا الحساب لا يتضمن أي متغيرات عضو أو أي معلومات أخرى.

الآن فكر في الآلة الحاسبة نفسها، ولكن مع أسلوب إضافي لتخزين وإرجاع المجموع الأخير الذي تم حسابه. هذه الخدمة هي الآن ذات حالة. "ذات حالة" يُعني أنها تحتوي على بعض الحالات التي تكتب إليها عندما تحسب مجموعاً جديداً ويقرأ منها عندما تطلب منها إرجاع آخر مجموع محسوب.

في Azure Service Fabric، تُسمى الخدمة الأولى خدمة "عديمة الحالة". وتُسمى الخدمة الثانية خدمة "ذات حالة".

تخزين حالة الخدمة

يمكن إضفاء الطابع الخارجي على الحالة أو وضعها في موقع مشترك مع التعليمة البرمجية التي تتلاعب بالحالة. عادةً ما يتم إضفاء الطابع الخارجي على الحالة باستخدام قاعدة بيانات خارجية أو مخزن بيانات آخر يعمل على أجهزة مختلفة عبر الشبكة أو خارج العملية على الجهاز نفسه. في مثال الآلة الحاسبة، يمكن أن يكون مخزن البيانات قاعدة بيانات SQL أو مثيل لـ Azure Table Store. يجري كل طلب لحساب المجموع تحديثاً على هذه البيانات، ويطلب من الخدمة إرجاع نتيجة القيمة إلى القيمة الحالية التي يتم جلبها من المخزن.

يمكن أيضاً أن تكون الحالة مشتركة في الموقع مع التعليمات البرمجية التي تتلاعب بالحالة. عادةً ما يتم إنشاء الخدمات "ذات الحالة" في Service Fabric باستخدام هذا النموذج. يوفر Service Fabric البنية الأساسية لضمان توفر هذه الحالة واتساقها ومتانتها بدرجةٍ كبيرة، وأن الخدمات التي تم بناؤها بهذه الطريقة يمكن أن تتوسع بسهولة.

الخطوات التالية

لمزيد من المعلومات عن مفاهيم Service Fabric، راجع المقالات التالية: