سؤال

WorkflowRuntime workflowRuntime = new WorkflowRuntime();

 ExternalDataExchangeService dataExchangeService;
 dataExchangeService = new ExternalDataExchangeService();
 workflowRuntime.AddService(dataExchangeService);

 PaymentProcessingService paymentProcessing;
 paymentProcessing = new PaymentProcessingService();
 dataExchangeService.AddService(paymentProcessing);

باستخدام الكود أعلاه ، يمكن للتطبيق الخاص بنا استخدام PaymentProcessing.RaisexxxeSevent إلى التفاعل مع مثيل سير العمل. سؤالي هو: ما هو مبدأ تنفيذ مثل هذه الآلية. أعتقد أن هذا نوع من نمط الحدث مدفوع, ، ولكن كيف يمكنني تنفيذ هذه الآلية ولماذا؟ يرجى توجيه الاتجاه لي أو أي مراجع موضع تقدير.

بالمناسبة ، هل هناك آلية في JBPM؟ هل تتضمن JBPM سير العمل التسلسلي وسير عمل آلة الولاية مثل Window Workflow Foundation؟

شكرًا !

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

المحلول

يحدد WF مجموعة من خدمات سير العمل الأساسية التي تتعامل مع جدولة مؤشرات الترابط ، واستمرار سير العمل ، والمعاملات ، وتتبع سير العمل. كان من الممكن أن يكون مصممو WF قد دمجوا تنفيذ هذه الخدمات في محرك وقت التشغيل نفسه ، لكنهم اختاروا بحكمة أن يقوموا بتنفيذها خارجية ، ووضع تطبيقاتهم في الخدمات القابلة للتوصيل. هذا يضعك في السيطرة. يمكنك تحديد الخدمات التي يجب استخدامها (بعضها اختياري) وأي تطبيق يجب استخدامه لكل خدمة.

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

لتوفير خدمتك المحلية لمثيل سير العمل الخاص بك. هناك عدة طرق للقيام بذلك. أبسط هو استخدام callexternalmethodactivity وتكوينه.

كما يجب أن يكون للخدمة واجهة ومزينة بـ [externaldataexchange].

إذا كنت تبحث في كتابة تطبيقك الخاص للخدمة الأساسية ، فإليك رابط يصف كيفية توفيرك خدمة سير العمل الأساسية الخاصة.

http://msdn.microsoft.com/en-us/library/ms734705(v=vs.90).aspx

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