معالجة المعاملات
في علم الحاسوب ، تُعرَّف معالجة المعاملات بأنها معالجة المعلومات [ 1 ] التي تُقسَّم إلى عمليات فردية غير قابلة للتجزئة تُسمى المعاملات . يجب أن تنجح كل معاملة أو تفشل كوحدة كاملة؛ ولا يمكن أن تكون مكتملة جزئيًا.
على سبيل المثال، عند شراء كتاب من مكتبة إلكترونية، فإنك تستبدل مبلغًا من المال (على شكل رصيد ) مقابل الكتاب. إذا كان رصيدك جيدًا، تضمن سلسلة من العمليات المترابطة حصولك على الكتاب وحصول المكتبة على أموالك. مع ذلك، إذا فشلت عملية واحدة ضمن هذه السلسلة أثناء عملية التبادل، فإن العملية برمتها تفشل. لن تحصل على الكتاب ولن تحصل المكتبة على أموالك. تُسمى التقنية المسؤولة عن جعل عملية التبادل متوازنة وقابلة للتنبؤ بمعالجة المعاملات . تضمن المعاملات عدم تحديث موارد البيانات بشكل دائم إلا بعد إتمام جميع العمليات داخل وحدة المعاملة بنجاح. من خلال دمج مجموعة من العمليات المترابطة في وحدة إما أن تنجح تمامًا أو تفشل تمامًا، يمكن تبسيط عملية استعادة البيانات في حالة الخطأ وجعل التطبيق أكثر موثوقية.
تتألف أنظمة معالجة المعاملات من أجهزة وبرامج حاسوبية تستضيف تطبيقًا موجهًا نحو المعاملات، يقوم بتنفيذ المعاملات الروتينية اللازمة لإدارة الأعمال. ومن الأمثلة على ذلك الأنظمة التي تدير إدخال طلبات المبيعات، وحجوزات الطيران، وكشوف المرتبات، وسجلات الموظفين، والتصنيع، والشحن.
بما أن معظم عمليات معالجة المعاملات اليوم تفاعلية، وإن لم يكن بالضرورة كلها، فإن المصطلح غالباً ما يُعامل على أنه مرادف لمعالجة المعاملات عبر الإنترنت .
وصف
تم تصميم معالجة المعاملات للحفاظ على سلامة النظام (عادة قاعدة بيانات أو بعض أنظمة الملفات الحديثة ) في حالة معروفة ومتسقة، من خلال ضمان أن العمليات المترابطة على النظام إما أن تكتمل جميعها بنجاح أو يتم إلغاؤها جميعًا بنجاح.
على سبيل المثال، لنفترض معاملة مصرفية نموذجية تتضمن تحويل 700 دولار من حساب توفير أحد العملاء إلى حسابه الجاري. تتضمن هذه المعاملة عمليتين منفصلتين على الأقل من الناحية الحاسوبية: خصم 700 دولار من حساب التوفير، وإضافة 700 دولار إلى الحساب الجاري. إذا نجحت إحدى العمليتين وفشلت الأخرى، فلن تتطابق دفاتر البنك في نهاية اليوم. لذا، لا بد من وجود آلية تضمن نجاح العمليتين أو فشلهما معًا، بحيث لا يكون هناك أي تناقض في قاعدة بيانات البنك ككل.
تربط معالجة المعاملات عدة عمليات فردية في معاملة واحدة غير قابلة للتجزئة، وتضمن إما إتمام جميع عمليات المعاملة بنجاح تام، أو عدم إتمام أي منها. إذا أُنجزت بعض العمليات ولكن حدثت أخطاء عند محاولة تنفيذ العمليات الأخرى، يقوم نظام معالجة المعاملات بإلغاء جميع عمليات المعاملة (بما في ذلك العمليات الناجحة)، وبالتالي يمحو جميع آثار المعاملة ويعيد النظام إلى حالته المتسقة والمعروفة التي كان عليها قبل بدء معالجة المعاملة. إذا أُنجزت جميع عمليات المعاملة بنجاح، يُثبّت النظام المعاملة ، وتُصبح جميع التغييرات التي أُجريت على قاعدة البيانات دائمة؛ ولا يمكن إلغاء المعاملة بعد ذلك.
تحمي معالجة المعاملات من أخطاء الأجهزة والبرامج التي قد تؤدي إلى عدم إتمام المعاملة بشكل كامل. في حال تعطل نظام الحاسوب أثناء تنفيذ معاملة ما، يضمن نظام معالجة المعاملات إلغاء جميع العمليات في أي معاملات غير مكتملة.
تُنفَّذ المعاملات عادةً بشكل متزامن. إذا تداخلت هذه المعاملات (أي احتاجت إلى الوصول إلى نفس الجزء من قاعدة البيانات)، فقد يُؤدي ذلك إلى حدوث تعارضات. على سبيل المثال، إذا كان لدى العميل المذكور في المثال السابق 150 دولارًا في حسابه الادخاري، وحاول تحويل 100 دولار إلى شخص آخر، وفي الوقت نفسه تحويل 100 دولار إلى حسابه الجاري، فلن تنجح إلا واحدة منهما. مع ذلك، فإن إجبار المعاملات على المعالجة بالتسلسل غير فعال. لذلك، تُبرمج تطبيقات معالجة المعاملات المتزامنة لضمان أن تكون النتيجة خالية من التعارضات، تمامًا كما لو تم تنفيذ المعاملات بالتسلسل بأي ترتيب (وهي خاصية تُسمى قابلية التسلسل ). في مثالنا، هذا يعني أنه بغض النظر عن المعاملة التي نُفِّذت أولًا، إما أن تنجح عملية التحويل إلى الشخص الآخر أو عملية التحويل إلى الحساب الجاري، بينما تفشل الأخرى.
المنهجية
تتشابه المبادئ الأساسية لجميع أنظمة معالجة المعاملات. ومع ذلك، قد تختلف المصطلحات من نظام لآخر، والمصطلحات المستخدمة أدناه ليست بالضرورة عالمية.
التراجع
تضمن أنظمة معالجة المعاملات سلامة قاعدة البيانات من خلال تسجيل حالاتها الوسيطة أثناء تعديلها، ثم استخدام هذه السجلات لاستعادة قاعدة البيانات إلى حالة معروفة في حال تعذر إتمام المعاملة. على سبيل المثال، يقوم النظام بحفظ نسخ من معلومات قاعدة البيانات قبل تعديلها بواسطة معاملة ما، وذلك قبل أن تتمكن المعاملة من إجراء أي تعديلات (يُطلق على هذه النسخة أحيانًا اسم " الصورة السابقة "). إذا فشل أي جزء من المعاملة قبل إتمامها، تُستخدم هذه النسخ لاستعادة قاعدة البيانات إلى حالتها قبل بدء المعاملة.
التقدم للأمام
من الممكن أيضًا الاحتفاظ بسجل منفصل لجميع التعديلات التي تُجرى على نظام إدارة قواعد البيانات (يُسمى أحيانًا " الصور اللاحقة "). هذا السجل ليس ضروريًا للتراجع عن المعاملات الفاشلة، ولكنه مفيد لتحديث نظام إدارة قواعد البيانات في حال تعطل قاعدة البيانات، لذا توفره بعض أنظمة معالجة المعاملات. إذا تعطل نظام إدارة قواعد البيانات بالكامل، فيجب استعادته من أحدث نسخة احتياطية. لن تعكس النسخة الاحتياطية المعاملات التي تم تنفيذها منذ إنشائها. مع ذلك، بمجرد استعادة نظام إدارة قواعد البيانات، يمكن تطبيق سجل الصور اللاحقة على قاعدة البيانات ( التحديث ) لتحديث نظام إدارة قواعد البيانات. بعد ذلك، يمكن التراجع عن أي معاملات كانت قيد التنفيذ وقت العطل. والنتيجة هي قاعدة بيانات في حالة متسقة ومعروفة تتضمن نتائج جميع المعاملات التي تم تنفيذها حتى لحظة العطل.
مأزق
في بعض الحالات، قد تحاول معاملتان، أثناء معالجتهما، الوصول إلى نفس الجزء من قاعدة البيانات في الوقت نفسه، مما يمنعهما من المتابعة. على سبيل المثال، قد تصل المعاملة (أ) إلى الجزء (س) من قاعدة البيانات، بينما تصل المعاملة (ب) إلى الجزء (ص). إذا حاولت المعاملة (أ) الوصول إلى الجزء (ص) في الوقت نفسه الذي تحاول فيه المعاملة (ب) الوصول إلى الجزء (س)، يحدث تعطل ، ولا تستطيع أي من المعاملتين التقدم. صُممت أنظمة معالجة المعاملات لاكتشاف حالات التعطل هذه عند حدوثها. عادةً ما يتم إلغاء كلتا المعاملتين والتراجع عنهما، ثم إعادة تشغيلهما تلقائيًا بترتيب مختلف، حتى لا يتكرر التعطل. أو في بعض الأحيان، يتم إلغاء إحدى المعاملتين المتعطلتين فقط، والتراجع عنها، ثم إعادة تشغيلها تلقائيًا بعد فترة وجيزة.
قد تحدث حالات التعطل بين ثلاث معاملات أو أكثر. وكلما زاد عدد المعاملات، ازدادت صعوبة اكتشافها، لدرجة أن أنظمة معالجة المعاملات تجد أن هناك حدًا عمليًا لحالات التعطل التي يمكنها اكتشافها.
معاملة تعويضية
في الأنظمة التي لا تتوفر فيها آليات الالتزام والتراجع أو تكون غير مرغوب فيها، غالبًا ما يتم استخدام معاملة تعويضية للتراجع عن المعاملات الفاشلة واستعادة النظام إلى حالة سابقة.
معايير ACID
حدد جيم غراي خصائص نظام المعاملات الموثوق به في أواخر السبعينيات تحت الاختصار ACID - الذرية، والاتساق، والعزل، والمتانة. [ 1 ]
الذرية
تُعدّ التغييرات التي تُجريها المعاملة على الحالة تغييرات ذرية: إما أن تحدث جميعها أو لا يحدث أي منها. وتشمل هذه التغييرات تغييرات قاعدة البيانات والرسائل والإجراءات على المحولات.
تناسق
الاتساق : تُعدّ المعاملة تحويلاً صحيحاً للحالة. ولا تنتهك الإجراءات المتخذة كمجموعة أيًا من قيود السلامة المرتبطة بالحالة.
عزل
على الرغم من أن المعاملات تُنفذ بشكل متزامن، إلا أنه يبدو لكل معاملة T أن المعاملات الأخرى قد نُفذت إما قبل T أو بعد T، ولكن ليس كليهما.
متانة
بمجرد اكتمال المعاملة بنجاح (تأكيدها)، فإن التغييرات التي طرأت على قاعدة البيانات تبقى حتى بعد حالات الفشل وتحتفظ بتغييراتها.
التطبيقات
طُوِّرت برامج معالجة المعاملات القياسية ، مثل نظام إدارة المعلومات من IBM ، لأول مرة في ستينيات القرن الماضي، وكانت غالبًا ما ترتبط ارتباطًا وثيقًا بأنظمة إدارة قواعد البيانات . وطُبِّقت مبادئ مماثلة في الحوسبة بين العميل والخادم في ثمانينيات القرن الماضي، ولكن بنجاح متفاوت. مع ذلك، أصبح نموذج العميل والخادم الموزع أكثر صعوبة في الصيانة في السنوات الأخيرة. فمع ازدياد عدد المعاملات استجابةً للخدمات الإلكترونية المختلفة (وخاصةً الإنترنت ) ، لم تعد قاعدة البيانات الموزعة الواحدة حلاً عمليًا. إضافةً إلى ذلك، تتكون معظم الأنظمة الإلكترونية من مجموعة برامج متكاملة تعمل معًا، على عكس نموذج العميل والخادم الصارم حيث يمكن لخادم واحد معالجة المعاملات. واليوم، يتوفر عدد من أنظمة معالجة المعاملات التي تعمل على مستوى البرامج المتداخلة، والتي تتوسع لتشمل أنظمة كبيرة، بما في ذلك الحواسيب المركزية .
من بين الجهود المبذولة في هذا المجال، نظام معالجة المعاملات الموزعة X/Open (DTP) (انظر أيضًا واجهة برمجة تطبيقات معاملات جافا (JTA)). ومع ذلك، لا تزال بيئات معالجة المعاملات الاحتكارية، مثل نظام CICS من IBM ، تحظى بشعبية كبيرة، على الرغم من أن CICS قد تطور ليشمل معايير صناعية مفتوحة أيضًا.
استُخدم مصطلح "معالجة المعاملات القصوى" (XTP) لوصف أنظمة معالجة المعاملات ذات المتطلبات الصعبة للغاية، لا سيما متطلبات الإنتاجية (عدد المعاملات في الثانية). يمكن تنفيذ هذه الأنظمة عبر بنى موزعة أو عنقودية. وقد استُخدم هذا المصطلح على الأقل حتى عام 2011. [ 2 ] [ 3 ]
مراجع
- 1 2 غراي، جيم؛ رويتر، أندرياس. "معالجة المعاملات - المفاهيم والتقنيات (عرض تقديمي)" . تم الاطلاع عليه في 12 نوفمبر 2012 .
- ↑ كوين فاندركيمبن وديرك ديريدر. "الذهاب إلى أقصى الحدود في مجال الرعاية الصحية" . عرض تقديمي في مؤتمر ديفوكس 2011. تم الاطلاع عليه بتاريخ 18 مارس 2017 .
- ↑ كيفن روبوك (2011). معالجة المعاملات المكثفة . لايتنينج سورس. ISBN 978-1-74304-266-3.
للمزيد من القراءة
- جيرهارد ويكوم، جوتفريد فوسن، نظم المعلومات التفاعلية: النظرية والخوارزميات وممارسة التحكم في التزامن والاستعادة ، مورغان كوفمان، 2002، ISBN 1-55860-508-8
- جيم غراي ، أندرياس رويتر، معالجة المعاملات - المفاهيم والتقنيات، 1993، مورغان كوفمان، رقم ISBN 1-55860-190-2
- فيليب أ. بيرنشتاين، إريك نيومر، مبادئ معالجة المعاملات، 1997، مورغان كوفمان، رقم ISBN 1-55860-415-4
- أحمد ك. المغارميد (محرر)، نماذج المعاملات لتطبيقات قواعد البيانات المتقدمة، مورغان كوفمان، 1992، رقم ISBN 1-55860-214-3
روابط خارجية
- أساسيات معالجة المعاملات (1999)، مؤرشف بتاريخ 18 أكتوبر 2014 في أرشيف الإنترنت (Wayback Machine).
- إدارة معالجة المعاملات لضمان سلامة قاعدة بيانات SQL
- معالجة المعاملات
- معالجة المعاملات
- أنظمة حاسوبية مقاومة للأعطال
- أنظمة إدارة قواعد البيانات
