هل نجح نظام في محرك القواعد الناجح حقًا؟ [مغلق

StackOverflow https://stackoverflow.com/questions/206425

  •  03-07-2019
  •  | 
  •  

سؤال

يتم إعادة تطوير نظامنا (الالتقاط التجاري المشتق من السلع الغريبة وإدارة المخاطر) قريبًا. أحد الاقتراحات التي سمعتها هو أنه سيتم دمج محرك القواعد لتسهيل الأمر بالنسبة للمستخدمين النهائيين (تجار السلع ، المتطورة إلى حد ما) لإجراء تغييرات معينة على منطق العمل.

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

إن الاستماع إلى المواقف التي كان فيها محرك القواعد حقًا عبارة عن نعمة (خاصة في بيئة تداول) سيكون مفيدًا بالتأكيد.

هل كانت مفيدة؟

المحلول

لقد رأيت تطبيقين استخدموا محرك Blaze Rete من Fair Issac.

انتقد أحد التطبيقات الآلاف من القواعد في قاعدة معرفة واحدة ، كان لديه مشاكل في الذاكرة الرهيبة ، أصبح صندوقًا أسود يفهمه القليلون. لن أسمي هذا النجاح ، لكنه يعمل في الإنتاج.

استخدم تطبيق آخر أشجار القرار لتمثيله بناءً على مئات الأسئلة على شكل طبي للتخلص من عملاء. لقد تم ذلك بأناقة بحيث يمكن لأعمال رجال الأعمال تحديث القواعد حسب الحاجة ، دون الحاجة إلى إشراك مطور. (لا يزال يتعين نشره من قبل واحد.

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

نصائح أخرى

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

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

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

تم تصميمه بشكل صحيح ، لا يزال بإمكان محرك القواعد تمكين نظام سير العمل الذي يسمح بإجراء اختبار جيد. في هذه الحالة ، تم تخزين القواعد في قاعدة بيانات ، وكانت هناك قواعد بيانات QA و Prod. لذلك يمكن ل BA اختبار قواعدها في ضمان الجودة ، ثم الترويج لهم في الحث.

كما هو الحال مع أي شيء ، عادة ما يتعلق بالتنفيذ ، وليس التقنية الفعلية.

نعم ، لدى Microsoft محرك قاعدة أعمال (BRE) في BizTalk تم استخدامه بنجاح لسنوات. لقد سمعت أنهم جعلوا عملاء يشترون biztalk (باهظ الثمن) فقط من أجل BRE.

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

محرك القواعد هو أكثر بقليل من شيء ينفذ البيانات التعريفية. يأتون مع مزايزتين أساسيتين (أراه):

  1. يتم الحفاظ على منطق عملك من مكان واحد بدلاً من الرش عبر رمز التطبيق. من الناحية الفنية ، يجب أن يقوم التطبيق المصمم جيدًا بالفعل بالهندسة المعمارية ، بغض النظر عن حاضر محرك القواعد أم لا.
  2. يجب أن تقلق [أقل] بشأن التبعيات بين البيانات التعريفية. يجب أن يكون محرك القاعدة ذكيًا بما يكفي لتحديد أمر تشغيل القواعد بناءً على التبعيات. قد تجد أن بعض محركات القواعد تدعم ترتيبًا متسلسلًا للقواعد ضمن مجموعة قواعد أو قواعد استدعاء (مجموعات من القواعد) بترتيب معين ، ولكن هذا ليس بروح البرمجة التعريفية حقًا. تستخدم العديد من محركات القواعد Rete (خوارزمية) لتحديد وقت تحديد موعد تنفيذ البيانات التصريفية.

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

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

يعد محرك القاعدة أداة أخرى في صدرك ، عند استخدامه بشكل صحيح ، يمكن أن يكون ذا قيمة.

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

بالتأكيد ، لكن لا يمكنني التحدث عنهم علنًا ، لكن من المحتمل أنك تفاعلت مع عدة مرات هذا العام ؛)

أراه في معسكرين: مبرمجي المنطق ومستخدمي الأعمال. أدوات مختلفة تستهدف مجموعات مختلفة ، بعضهما على حد سواء. لقد عملت الحالات الناجحة لمستخدمي الأعمال فقط عندما كانت مجموعة فرعية من المنطق ، وكان لديهم أيضًا طريقة لتحديد حالات الاختبار وتشغيلها بأنفسهم (وهم مستعدون للتفكير منطقيًا). المبرمجون المنطقيون نادرون ، ولكن يمكن العثور عليه في كثير من الأحيان من خلفيات البرمجة غير الضرورية (هم أيضًا نوع من الأشخاص الذين يجدون برمجة وظيفية بديهية).

ضع في اعتبارك في نهاية اليوم حتى مع الأدوات البصرية ، إذا كنت تخبر جهاز الكمبيوتر بالقيام بشيء ما لا يزال برمجة.

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

مرارًا وتكرارًا ، عبر جميع البائعين الرئيسيين واللاعبين المفتوحين المصدر ، أرى ذلك يستخدم بشكل صحيح - لأتمتة وتحسين القرارات التشغيلية ذات الحجم الكبير مع العديد من القواعد ، والقواعد التي تتغير كثيرًا ، والقواعد التي تتفاعل بطرق أو قواعد معقدة مع محتوى مجال الأعمال العالي - تعمل أنظمة إدارة قواعد الأعمال.

حقًا.

تقتصر تجربتي على (1) ليس كثيرًا و (2) مقدمة ؛ لكن يمكنني أن أقول بأمان أن محرك القواعد يمكن أن يساعدك في التعبير عن المفاهيم الافتراضية أكثر نظافة من التعليمات البرمجية الإجرائية.

يتم استخدام محركات القواعد بشكل روتيني في أعمال التأمين. لقد عملت على أنظمة مع مئات (600) قواعد تم تنفيذها في محرك القواعد. لقد عملت بشكل جيد للغاية.

هل لديك تصنيف ائتماني؟ أ فيكو النتيجة ، ربما؟ هذا Fهواء أناساك شاركrporation ، مطورو محرك قواعد الحريق.

لفترة من الوقت عملت في مشروع الحوسبة الموزعة التي تم توزيعها والتي كانت تقوم بتطوير نظام لحساب البيانات الجوية عالية الحجم. كان لدى النظام ثلاثة أجزاء له: مدير البيانات ، والمجدول ، ومكون تنفيذ الخوارزمية. يمكن أن يكون هناك أي عدد من أي من هذه المكونات ، وكل ذلك يتم من خلال خدمات الويب ، ولكن ما سمح به هو أن يقوم الباحثون المختلفين بتنفيذ وظائف تعسفية ضد البيانات التعسفية ، كما سمح بتوصيل آليات جدولة مختلفة مع تغير المتطلبات.

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

هذا يبدو وكأنه أكثر مشاركة من محرك القواعد البسيط ، ولكن مثل هذه الهندسة المعمارية يمكن أن تنطبق على محرك القاعدة كذلك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top