الأربعاء، 30 ديسمبر 2009

محرك التراسل (Messaging Engine) ضمن خادم BizTalk 2009

بعد ان تم اعطاء مقدمة لخادم BizTalk 2009 في مقالة سابقة والتي تم تعريف هذا الخادم والقاء الضوء على اهم ميزاته, في هذه المقالة سيتم المضي قدما تجاه فهم هذا الخادم اكثر واكثر تمهيدا للدخول بشكل عملي لهذا الخادم ان شاء الله.
في هذه المقالة سيتم تسليط الضوء على محرك التراسل Messaging Engine والذي هو احد الميزات الاساسية لهذا الخادم وسيتم لاحقا التحدث عن عدة مواضيع فرعية والتي هي: ربط الانظمة, تعريف اجراءات العمل, الادارة والمراقبة, واخيرا الدخول الموحد.

محرك التراسل ضمن خادم BizTalk 2009 يتيح المستخدمين انشاء اجرءات العمل والتي تربط العديد من التطبيقات وذلك بتوفير امرين اساسيين:

1- طريقة لتحديد وبناء المنطق العام الذي يقود اجراءات العمل.

2- الية للاتصال والتواصل بين هذه الانظمة والتي يعتمد عليه اجراء العمل.

الشكل التالي يوضح المكونات الاساسية لهذا المحرك والذي يعالج النقطتين المشار اليهما.

كما يظهر بالشكل بالاعلى فإن الرسالة يتم استقبالها عن طريق المحول المستقبل Receive Adapter. كل محول يوفر الية اتصال مختلفة عن المحول الاخر, مثلا يمكن لمحول ان يتلقى البيانات من web service بينما يقوم محول اخر بقراءة البيانات من ملف معين او اي طريقة اخرى. بعد استقبال الرسالة يتم الانتقال الى خط الانابيب المستقبل Receive Pipeline. خط الانابيب يمكن ان يحتوي على العديد من المكونات والتي تقوم بعمل امور مثل تحويل الرسالة من الصيغة الاصلية الى XML, او ممكن ان يقوم بالتحقق من التوقيع الرقمي لهذه الرسالة, والعديد من الامور الاخرى. بعد ذلك يتم توصيل هذه الرسالة الى قاعدة بيانات تسمى صندوق الرسائل او MessageBox والذي يتم بناءه من خلال خادم SQL server.

الان المنطق الذي يقود اجراء العمل المعين يتم بناءه من خلال واحدة او اكثر من الاوركسترا او Orchestrations, حيث يتكون كل واحد منهم من مجموعة من الاكواد القابلة للتنفيذ, ونرجو الانتباه هنا ان الاوركسترا لا يتم انشاءها فقط بواسطة كتابة الكود ضمن لغة مثل VB.NET او غيرها من اللغات, بل يمكن لمحلل الانظمة مثلا او المطور استخدام اداة رسومية يتم من خلالها تركيب وتنظيم مجموعة من الاشكال لتشكل Conditions او Loops او اي امور اخرى. كذلك يمكن ل الاوركسترا استخدام ما يسمى بمحرك قواعد الاعمال او Business Rule Engine, والذي يوفر الية اسهل لتمثيل ووصف القواعد المعقدة في اجراءات العمل.

كل اوركسترا تقوم بإنشاء اشتراكات او Subscriptions للدلالة على انواع الرسائل التي ستقوم الاوركسترا بإستقبالها. عندما تصل رسالة معينة لصندوق الرسائل يتم تحويل هذه الرسالة تلقائيا الى الاوركسترا المستهدفة والتي بالمحصلة ستقوم بتنفيذ النشاط الملائم الذي يتطلبه اجراء العمل المحدد. الان بعد ان تتم المعالجة وكنتيجة لهذا العمل سينتج لدينا رسالة اخرى بواسطة الاوركسترا حيث يتم تخزينها ايضا في صندوق الرسائل. هذه الرسالة الناتجة سيتم تحويلها الى خط الانابيب المرسل او Send Pipeline, والذي ربما سيقوم بتحويلها من صيغة XML المعمول بها داخليا الى اي صيغة اخرى يتطلبها النظام الهدف, او ربما يتم اضافة توقيع رقمي, الخ. بعد ذلك سيتم تحويل هذه الرسالة الى المحول المرسل او Send Adapter, والذي يستخدم الية مناسبة للإتصال مع التطبيق المطلوب توجيه الرسالة اليه.

الحل الكامل الذي تم بناءه ضمن خادم BizTalk يمكن ان يحتوي على عدة اجزاء: الاوركسترا, خطوط الانابيب, مخطط التراسل, ... الخ. هذه الاجزاء يمكنها ان تعمل وكأنها وحدة واحدة, ويمكن ان نطلق عليها BizTalk Application او تطبيق BizTalk. وهذا يساعد تبسيط شكل هذا الحل لتسهيل ادارته وتثبيته.

انواع مختلفة من المستخديمن يمكنهم تنفيذ وظائف مختلفة بإستخدام خادم BizTalk. على سبيل المثال, محلل النظم يمكنه تعريف القواعد والسلوك الذي يمثل اجراء العمل المطلوب. محلل النظم كذلك يمكنه تحديد مسار اجراء العمل او تدفقه, ويمكنه كذلك تعريف ما هي المعلومات التي سيتم ارسالها لكل تطبيق من التطبيقات المتكاملة, بالاضافة الى امكانية عمل الخرائط الخاصة بين مصادر البيانات المختلفة. بعدما يقوم محلل النظم بتعريف هذا الاجراء, يأتي دور المطور Developer والذي يمكنه انشاء تطبيق BizTalk والذي يبني هيكل الاجراء المطلوب. وظيفة المطور تتضمن امورا مثل تعريف مخطط XML, و تحديد تفاصيل الخرائط التي تربط وثائق XML مع بعض, وانشاء الاوركسترا الضرورية لبناء اجراء العمل. اخيرا يأتي دور مدير النظام Administrator والذي يلعب دورا هاما ايضا بإعداد الاتصال بين الاجزاء المختلفة, وتثبيت تطبيقات BizTalk ضمن البيئات المختلفة والقابلة للتوسع, بالاضافة لتنفيذ العديد من المهام الاخرى. جميع المسميات الوظيفية المذكورة: محلل النظم, المطور, ومدير النظام, جميعهم مطلوبين لإنشاء وصيانة حلول خادم ال BizTalk بالشكل المطلوب.

كاتب المقالة: م. سامر نزال

ليست هناك تعليقات: