الأحد، 27 ديسمبر 2009

مقدمة حول خادم BizTalk 2009

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

حقيقة اصبحت التطبيقات في هذا الزمن مترابطة مع بعضها البعض في جميع المؤسسات, ولم تعد عبارة عن تطبيقات معزولة كل منها يقوم بالعمل منفردا. كذلك فإن ترابط الانظمة لا يتمثل فقط بتبادل سيل من البيانات فحسب, بل تتجه المؤسسات الان تجاه عالم service-oriented حيث اصبح الهدف الاساسي هو انشاء اجراءات عمل فعالة تقوم بتوحيد الانظمة المتباينة في كتلة واحدة مترابطة يسهل الوصول لكل اجزائها.

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

التحدي: تحسين اجراءات العمل

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

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

1- ربط البرامج المتنوعة بإستخدام توجهات مختلفة: حيث تعتبر خدمات الويب Web Service من افضل الخيارات لبعض عمليات الربط, بينما يمكن ان يكون خيار مشاركة الملفات هو الاخيار الافضل للبعض الاخر, بالاضافة لأن بعض عمليات الربط والتكامل تحتاج ربما لإستخدام message queuing او اي مبدء اخر من مبادئ الربط والتكامل. اخيرا تعتبر عمليات الترابط مع التطبيقات المستقلة احدى الاعمال الهامة التي يجب ان تتعامل معها اي منصة لربط وأتمتة اجراءات العمل.

2- تنفيذ الاجراءات الالية: الفكرة هنا تكمن بتوفير الية مركزية لتنفيذ جميع اجراءات العمل المنتشرة ضمن العديد من الانظمة المتكاملة.

3- تمكين التكامل مع الانظمة الاخرى المتواجدة في مؤسسات خارجية بأسهل ما يمكن: ولتحقيق هذا الهدف يجب توفر ودعم معايير صناعية ثابته بين جميع المؤسسات المراد ربطها وربط اجراءاتها, على سبيل المثال EDI او معيار تبادل المعلومات الالكترونية او Electronic Data Interchange حيث يوفر هذا المعيار الخدمات التي تساعد على الاتصال والترابط مع الشركاء وغيرهم من الجهات المعنية.

4- توفير مراقبة حية لإجراءات العمل: بالاضافة الى توفير مكان مركزي لإستضافة جميع اجراءات العمل والتحكم بها, فإن النظام المنشود يجب ان يوفر مكان مركزي لمراقبة حالة الاجراءات, حيث توفر هذه الميزة للعالمين في مجال المعلومات امكانية تتبع ما يحصل بالتفصيل.

5- معالجة بعض الاحداث التي تصدر من بعض المعدات الفيزيائية: كمثال على المعدات الفيزيائية نذكر مثلا RFID - والذي تحدث عنه في هذه المقالة – والذي هو Radio Frequency Identification, حيث يمكن ان نحتاج للاتصال مع انظمة من هذا النوع في العديد من التطبيقات التي تدعم عملية الترابط والتواصل وتنفيذ اجراءات العمل بالشكل المطلوب.

حقيقة الهدف الاساسي من BizTalk 2009 هو مساعدة المؤسسات على تحسين اجراءات الاعمال خاصتهم وذلك بتوفير حلول لجميع المشاكل التي تواجههم بما يتعلق بعمليات الترابط بين الانظمة وايجاد لغة مشتركة لتسيير الاجراءات بينها.

القسم القادم سيتم توضيح فكرة عمل هذا الخادم بشكل اوضح.

التصدي للتحديات: ما الذي يدعمة خادم BizTalk 2009

من المفيد الان ان يتم تقسيم مشكلة خلق وانشاء أتمتة لإجراءات العمل الى ثلاث مجالات عامة والتي هي:

1- تكامل التطبيقات داخل المؤسسة الواحدة: ويمكن تسمية هذا المبدء ب EAI او تكامل تطبيقات المؤسسة او Enterprise Application Integration. وكما نعلم فإن معظم المؤسسات تتجهه الان الى مبدء Service-Oriented والتي يمكن اختصارها ب SOA.

2- ربط التطبيقات ضمن العديد من المؤسسات المختلفة: والتي يمكن تسميتها ب B2B او Business-To-Business او ربط الاعمال التجارية مع الاعمال التجارية.

3- دعم كامل للتوجهات الخاصة بأتمتة اجراءات العمل والتي تم تعريفها بواسطة ادارة اجراءات العمل او Business Process Management.

استيعاب خادم BizTalk 2009 يتطلب فهم كيفة معالجة والتصدي لكل فئة من الفئات الثلاثة المذكورة بالاعلى, والتي سأقوم بالخوض بتفاصيل كل مجال منها.

تكامل التطبيقات في عالم ال Service-Oriented

لا احد يختلف ان عملية دعم أتمتة اجراءات العمل هو لب واساس عملية تكامل الانظمة, والصورة بالاسفل توضح التقنيات الاساسية ضمن BizTalk 2009 التي توفر هذا الهدف حيث يتمركز هذا الخادم حول: Messaging او التراسل, و Orchestration او الاوركسترا (يمكن تخيل وظيفة هذه الميزة من اسمها "الاوركسترا" حيث انها الموجه والمتحكم بجميع التطبيقات والاجراءات كم هو الحال مع قائد الفرقة الموسيقية تماما).


وظيفة التراسل Messaging تحتوي على العديد من الاجزاء, وواحد من هذه الاجزاء هو "مجموعة من المحولات" او Adapters. المحول Adapter يقوم ببناء تقنية اتصال معينة مثل خدمات الويب Web Service او يمكن ان يوفر امكانية التبادل والتفاعل مع نظام معين من انظمة LOB مثل SAP مثلا. الان عند استخدام اي محول Adapter من المحولات المتوفرة, فإن كل مراسلة يتم تمريرها ضمن Pipeline او خط انابيب "دخلنا بالمواسير كمان شوي بنقلب صرف صحي". وللسماح بترجمة المراسلات من صيغة لصيغة اخرى مختلفة بين الانظمة فإن وظيفة التراسل Messaging توفر الية ل Data Mapping او خرائط البيانات. اخيرا يمكن للمطورين استخدام العديد من الادوات الرسومية لإنشاء خطوط الانابيب Pipeline و تعريف الخرائط Maps والتحكم بالامور الاخرى المتعلقة بالتراسل Messaging.

بينما يمكن لوظيفة التراسل Messaging ان تحل بعض المشاكل, فإن البعض الاخر من المشاكل يتطلب انشاء منطق للتحكم بإجراء العمل المطلوب. عملية التزامن او Orchestrations تقوم ببناء هذا المنطق المطلوب. وكما نرى بالصورة بالاعلى فإن المطور يمكنه استخدام ادوات ذات واجهات رسومية تدعى BizTalk Orchestration Designer او مصمم الاوركسترا ان صح التعبير لإنشاء وتعديل التعريفات الخاصة بالاجراء المطلوب.

الشكل التالي بالاسفل يوضح مثال بسيط حول كيف يمكن ان نستخدم BizTalk 2009 في لحل مشكلة تكامل التطبيقات. في هذا السيناريو يوجد لدينا نظام للمخزون والحالة المطروحة هي نقص بالمخزون المتوفر ويتطلب الامر طلب شراء كميات جديدة. هذا الطلب يتم ارساله الى الاوركسترا Orchestration المتوفرة في خادم ال BizTalk والموضحه في الخطوة الاولى بالصورة Step 1, بعد هذه الخطوة يتم ارسال رسالة الى نظام الحسابات الخاص بالمؤسسة وذلك لطلب عرض شراء Step 2. نظام الحسابات الخاص بالمؤسسة – والذي يمكن ان يكون ضمن خادم Unix مثلا- سيقوم بإرسال طلب الشراء المطلوب لخدمة التزامن ضمن ال BizTalk ومن ثم ستقوم خدمة التزامن بإكمال الطلب ومن ثم سيتم اخيرا طلب المواد الناقصة من المخزون.



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

تكامل Business-to-Business

ربط الانظمة ضمن المؤسسة الواحدة هو امر هام, لكن عملية ربط الانظمة ضمن العديد من المؤسسات يمكن ان يحقق قيمة كبيرة في عالم الاعمال وأتمتتها. الشكل التالي يوضح مثالا بسيطا لهذا النوع من B2B, حيث نرى بالشكل ان العميل بالاعلى يملك خاصية الاوركسترا Orchestration المتوفرة في خادم BizTalk 2009 والتي اتفقنا انها تقوم بالتحكم بإجراءات العمل. اجراء العمل هذا يتيح للعميل شراء المواد من مزودين مختلفين. المزود A ايضا يستخدم BizTalk ويتيح دخولا غير مباشر الى انظمته المحاسبية. هذا النظام المحاسبي يستخدم بالطبع المحول المناسب Adapter ليستطيع التفاهم مع BizTalk ولنفترض انه يستخدم WEB SERVICE مثلا لا حصرا. كذلك المزود 2 يستخدم نظاما للحسابات مختلف عن نظام المزود 1, حيث يتم الترابط مع نظام المشتريات من العميل الاساسي عبر خدمات التزامن.



تبادل البيانات الالكترونية او ما يسمى ب EDI تعتبر جزء اساسي من B2B هذه الايام. حقيقة ال BizTalk سابقا كان يدعم EDI بشكل واسع عن طريق المنتجات من طرف ثالث او ما يسمى third-party . لكن ابتداءا من BizTalk 2009 قامت ميكرسوفت بتضمين دعم واسع ل EDI ضمن نفس الخادم. كذلك ال BizTalk 2009 توفر مسرعات او accelerators للمساعدة على بناء بعض المعياير المشهورة مثل RosettaNet الخاص بتعاملات الشركات بين بعضها او SWIFT الخاص بتعاملات البنوك او HL7 الخاص بتعاملات الحقل الطبي. كل مسرع يتضمن تعريفات للتراسل معرفة مسبقا لهذا المعيار بالاضافة لتوفير العديد من الادلة والامثلة ضمن نفس المسرع.

إدارة اجراءات العمل BPM

الهدف الاساسي لخادم BizTalk 2009 هو تكامل التطبيقات ضمن اجراء عمل معين, ومع ذلك فإن BPM تدعم امورا هامة غير عمليات التكامل, والتي هي BRE او محرك قواعد الاعمال او Business Rule Engine وكذلك BAM او مراقب نشاطات الاعمال او Business Activity Monitoring.



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

الان نفترض ان الاجراء قد تم بناءه نلاحظ ان الاشخاص الذين يعملون على هذا الاجراء يحتاجون لمعرفة بعض الامور وبعض المعلومات الاحصائية مثل كم عدد طلبات الشراء التي تم معالجتها خلال ال 5 دقائق الاخيرة؟ او كم عدد العملاء الذين تم خدمتهم خلال الساعة الاخيرة؟ ومن هنا فإن اتاحة مثل هذا المعلومات الاحصائية ضمن الوقت الحقيقي يمكن ان يعطينا قيمة عظيمة للاعمال. خدمة BAM في BizTalk تم خلقها هنا لتوفير اجابات للأسئلة السالفة الذكر. وكما نرى بالشكل بالاعلى فإنه من الممكن الوصول لمعلومات خدمة BAM عبر ادوات معيارية معروفة مثل MS Excel او Office PerformancePoint server او ادوات اخرى. كذلك خادم BizTalk يتيح لنا امكانية استخراج بيانات BAM من التطبيقات التي تم بنائها بواسطة WCF او WWF.

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

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

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

badwi يقول...

مبروك التصميم الجديد للمدونة و أحييك على مواضيعك الرائعة الدسمة المليئة بالفائدة :)

و أحب أن أضيف نقطة لما ذكرت بالنسبة للخادم فأفضل وصف له هو في تعدد منصات العمل و نظم التشغيل وقواعد البيانات المختلفة و امكانية التواصل فيما بينها بوصفه طبقة وسيطة بينهم تعمل بعمل مترجم يفهم كل هذه اللغات

مثلا لدينا سيرفر بنظام تشغيل (لينوكس) و قاعدة بيانات (اوراكل) و سيرفر أخر بنظام تشغيل (ويندوز) و قاعدة بيانات (MS SQL) و أخر مثل (صن) و قاعدة بيانات (DB2)

و هنا تكمن قوة خادم (بيزتوك) بامكانية التوافق بين هذه الخوادم و قواعد البيانات المختلفة عن طريق طابور الرسائل المتبادله عبره

بالتوفيق

المهندس سامر نزال يقول...

بارك الله فيك اخي محمد دائما مداخلاتك تضفى فائدة ذات طابع خاص, اشكرك على تفاعلك.

والنقطة التي اثرتها هي فعلا من اهم ميزات هذا الخادم, واسألالله ان يقدرني على كتابة المزيد عن هذه التقنية وعن تطبيقاتها العملية.

تحياتي

إسماعيل يقول...

شكرا على هذا الشرح الوفير

لدي سؤال حول تطبيق soa

هماهي الطرق الأخرى غير WS

المهندس سامر نزال يقول...

اخي اسماعيل يوجد عدة تقنيات يمكن من خلالها بناء SOA ويمكن تلخيصها بالتالي:

SOAP, RPC
REST
DCOM
CORBA
Web Services
WCF

طبعا اللي انت ذكرتها اللي هي WS واحده من الخيارات التي بالباعلى وكل خيار يحتاج لشرح موسع وربما يحتاج مختصين اكثر بهذا المجال ليقدمو صورة مبسطة لهذه التقنية الرائعة.

اسماعيل يقول...

شكرا جزيلا سأنطلق من المعلومات القيمة التي قدمتها لي وأحاول البحث أعمق