You are on page 1of 42

‫هندسة برمجيات‬ ‫بحث عن األنظمة الموزعة‬

‫األنظمة الموزعة‬
‫اعداد‬
‫م‪/‬امين الملحاني‬
‫هندسة برمجيات‪ -‬جامعة صنعاء‬

‫الفصل االول‬

‫للتواصل ‪ENG.AAHA13@GMAIL.COM /00966554241989 :‬‬


‫المقدمة‬
‫لمحة تاريخية‪:‬‬
‫تاريخيا بدأ الحديث عن االنظمة الموزعة في النصف الثاني من الثمانينات للحصول‬
‫على حاسب بقدرة اكبر من المعطيات‪ ,‬وذلك للحصول على مركز حساب ‪computing‬‬
‫‪ center‬لخدمة عدد كبير من المؤسسات‪.‬‬
‫اي كان لدينا حاسب واحد بقدرات كبيرة ويتم النفاذ الية عن طريق طرفيات في اماكن‬
‫بعيدة‪.‬‬
‫مع الوقت زادت الرغبة لوجود نظام حاسوبي الى للمستخدم فظهر ‪mini computer‬‬
‫وهو كمبيوتر بحجم الطاولة تقريبا‪ ,‬وهو اول مرحلة دخل فيها مفهوم ‪time‬‬
‫‪. sharing‬في هذه المرحلة كان الحاسب نفسة يقوم بجميع االعمال ‪.‬‬
‫في مرحلة الحقة ظهرت فكرة حواسيب متخصصة لنوع معين من التطبيقات بحيث يتم‬
‫التركيز على جانب واحد من االعمال حسب المجال الذي يعمل فيه (مثال قدرة حسابيه‬
‫عالية) وبالتالي اتجهنا الى مفهوم التخصص‪.‬‬
‫اعتبارا من اللحظة التي اتجهنا فيها الى التخصص ظهرت الحاجه لتقسيم العمل الى عدة‬
‫اجزاء(العمل لم يعد موجود على حاسب وحيد وانما على عدة حواسيب)‪.‬‬
‫اذا المبدأ االول لظهور األنظمة الموزعة هو التخصص‪:‬‬ ‫‪‬‬
‫النظر الى المنظومة الحاسوبية ككل على انها تتكون من عدة‬
‫اجزاء كل منها متخصص بعمل ما وكل منها لديه عدد من الموارد مسؤول عنها‬
‫ويتم التشارك فيها‪.‬‬
‫تعريف‬
‫معظم األنظمة الحالية تعتبر انظمه موزعه واألنظمة الموزعة هي عباره عن‬
‫انظمه تعمل على العديد من األجهزة مرتبطة مع بعض بشبكه‪.‬‬

‫دوافع توزيع األنظمة ومزاياها‬


‫الموثوقية‪Reliability‬‬ ‫‪‬‬
‫كان مفهوم الموثوقية متخصصا بعالم التصنيع فعندما نقول تجهيزات ذات وثوقيه‬
‫عالية يعني انها ال تتعطل‪ ,‬ومن ثم انتقل هذا المصطلح الى البرمجيات وظهر لنا‬
‫سؤال طالما حيرنا وهو متى نعتبر النظام موثوقا؟‬
‫يختلف مفهوم الموثوقية حسب نسبة الخطأ المقبولة ‪,‬‬
‫لذا كان الوصول الى الموثوقية امرا صعبا بالطرق التقليدية ولرفع الموثوقية‬
‫نسبة ‪ %20‬يجب رفع الكلفة ‪ %50‬من هنا ظهرت فكرة رفع الموثوقية من خالل‬
‫األنظمة الموزعة فبدال من رفع وثوقيه كل جهاز يتم استخدام اجهزة عده وفي‬
‫حالة تعطل واحد يعمل االخر‪.‬‬

‫التشارك بالمصادر ‪Sharing of resources‬‬ ‫‪‬‬


‫كان هناك ضرورة كبيرة للتشارك بالمصادر ألنها كانت مكلفة فظهرت فكرة‬
‫توزيعها ‪.‬‬
‫تجميع القدرة الحاسوبية ‪Aggregate computing power‬‬ ‫‪‬‬
‫الحصول على قدره هائلة واالستفادة منها واستغاللها وذلك عن طريق توزيع‬
‫العمل على اجهزه ‪.‬‬

‫االنفتاح وقابلية التوسع ‪Openness / Scalability‬‬ ‫‪‬‬


‫تعتبر األنظمة الحاسوبية انظمه قابلة للتوسع ومفتوحه حيث يمكننا في لحظه‬
‫تطويرها والتكامل معها‬

‫تحديات ومساوئ األنظمة الموزعة‬


‫االمن ‪Security‬‬ ‫‪‬‬
‫تعتبر مشكلة األمنية من المشاكل الهامه جدا في األنظمة الموزعة وهنا تجدر‬
‫المالحظة الى ان االمن هو الفرع االهم حاليا في الحواسيب فكلما ازداد انتشار‬
‫الحوسبة في مجاالت الحياة العامة زاد الخطر والخوف من اختراق المنظومات‬
‫الحاسوبية‪.‬‬
‫ومن المشاكل األمنية هجمات حجب الخدمة )‪DOS (Denial Of Service‬‬
‫وهي عباره عن ارسال عدد كبير من الطلبات الى المخدم بحيث يتوقف عن‬
‫العمل ويصبح عاجز عن استقبال طلبات جديده‪.‬‬

‫التوزيع الفيزيائي للموارد مقابل الطلب ‪Physical Distribution of‬‬ ‫‪‬‬


‫‪resources vs. demand‬‬

‫محدودية القدرة الحسابية لكل عقدة ‪Computing power per node is‬‬ ‫‪‬‬
‫‪limited‬‬
‫وهذه المشكلة تظهر عندما نريد استخدام األنظمة الموزعة كبديل عن األنظمة‬
‫المتوازية‬
‫كمثال على ذلك بعض انظمة المحاكاة تحتاج الى نصف مليون جهاز لحل عمليه‬
‫وحيده‬

‫‪ .‬انظمة التشغيل الموزعة‪Distributed Operating Systems‬‬

‫هناك العديد من المتطلبات التي يجب توافرها كي نحكم على النظام بانه نظام‬
‫تشغيل موزع‬
‫وهي كما يلي‬

‫‪ Transparency‬وتعني اعطاء المستخدم انطباع بانه ال يعمل على نظام‬ ‫‪‬‬


‫تشغيل موزع‬
‫اخفاء اماكن وجود الموارد‬ ‫‪‬‬
‫توفير تقنيات لحماية الموارد وتعني قدرة النظام على حماية الموارد من‬ ‫‪‬‬
‫المخاطر المختلفة على سبيل‬
‫الدخول غير المخول السيطرة عليها من قبل مستخدم ما‬
‫القدرة على تامين االتصاالت ومنع سرقة المعلومات‬ ‫‪‬‬

‫تعريف انظمة التشغيل الموزعة ‪Distributed OS‬‬


‫هي عبارة عن انظمة تشغيل تظهر للمستخدم وكانه يعمل على نظام مركزي اال‬
‫انه في الحقيقة يعمل على عدة وحدات معالجه مركزيه تعمل على مستوى‬
‫التوزيع‬
‫الفرق بين األنظمة الموزعة والمتعددة المعالجات هو ان االرتباط بين االنظمة‬
‫متعددة المعالجات شديد بينما يعتبر االرتباط بين األنظمة الموزعة بسيطا ‪.‬‬
‫الفصل الثاني‬
‫بنيان األنظمة الموزعة‬

‫هناك العديد من المعماريات المعروفة عن األنظمة الموزعة وسوف نستعرضها كما‬


‫يلي‬

‫‪ Clint/server model‬تتم في هذة االنظمة نمذجة التطبيق كمجموع من‬ ‫‪‬‬


‫الخدمات التي يقدمها ال ‪ ,server‬وكمجموعة من العمالء الذين يستخدمون‬
‫هذة الخدمات المتاحة التي يعرفها العميل مسبقا‪ ,‬وليس من الظروري ان يهتم‬
‫بالعمالء االخرين ولن يحتاج لمعرفتهم ‪ ,‬الن كل من العمالء والخدمات هي‬
‫اجرائيات مستقل‪.‬‬

‫‪DISTRIBUTED OBJECT MODEL‬‬ ‫‪‬‬


‫في هذا النموذج ال فرق بين كل االجهزه المرتبطه فكلها يمكنها تنفيذ مهام‬
‫مطلوبة وكلها يمكنها طلب خدمات من االجهزه االخرى ‪.‬‬

‫معمارية الزبون ‪ /‬المزود‬


‫اصبح التعبير ‪ ClientServer‬في السنوات األخيرة من أكثر التعبيرات رواج‪‰‰‬ا‬
‫في عالم الحاسوب‪ .‬وكثيرا ما نجد الباعة وهم يصفون النظم التي يس‪‰‰‬وقونها بأنه‪‰‰‬ا‬
‫تعمل وفقا لنموذج ‪ ClientServer‬أو نجد أنصاف المتعلمين وهم يرطنون به‪‰‰‬ذا‬
‫المصطلح في سياقات تبتعد بذا القدر أو ذلك عن معناه الحقيقي ‪.‬‬

‫ويستخدم تعبير ‪ ClientServer‬لوص‪‰‬ف معماري‪‰‬ات العدي‪‰‬د من األن‪‰‬واع البرمجي‪‰‬ة‪،‬‬


‫مثل نظم تشغيل وبرمجي‪‰‬ات الش‪‰‬بكات وقواع‪‰‬د البيان‪‰‬ات وب‪‰‬رامج تطبيقي‪‰‬ة أخ‪‰‬ري‪.‬‬
‫ونظرا لوج‪‰‬ود مع‪‰‬ان عدي‪‰‬دة لك‪‰‬ل من كلم‪‰‬تي ‪ Client‬و ‪ ،Server‬كم‪‰‬ا ه‪‰‬و ح‪‰‬ال‬
‫معظم الكلمات ال‪‰‰‬تي نج‪‰‰‬دها في الق‪‰‰‬واميس‪ ،‬ف‪‰‰‬إن اختي‪‰‰‬ار الترجمة المناس‪‰‰‬بة له‪‰‰‬اتين‬
‫الكلمتين يجب أن تأخذ باالعتب‪‰‬ار خصوص‪‰‬ية الص‪‰‬ورة المجازي‪‰‬ة ال‪‰‬تي ينب‪‰‬ع منه‪‰‬ا‬
‫مص‪‰‰‬طلح ‪ . ClientServer‬وطبق‪‰‰‬ا له‪‰‰‬ذه الص‪‰‰‬ورة يمكن ترجمة كلمة ‪Client‬‬
‫بمعني الزبون الذي يطلب الحصول علي بضاعة أو خدمة معينة ‪ .‬وترجمة كلم‪‰‰‬ة‬
‫‪ Server‬بمع‪‰‰‬ني الن‪‰‰‬ادل أو الم‪‰‰‬زود ال‪‰‰‬ذي يس‪‰‰‬تطيع تزوي‪‰‰‬د الزب‪‰‰‬ون بالبض‪‰‰‬اعة أو‬
‫‪.‬‬ ‫الخدمة التي يطلبها منه‬

‫ماهي معمارية الزبون‪/‬المزود؟‬

‫تق‪‰‰‬وم معمارية الزب‪‰‰‬ون‪/‬الم‪‰‰‬زود بص‪‰‰‬ورتها المج‪‰‰‬ردة علي بن‪‰‰‬اء ال‪‰‰‬برامج ض‪‰‰‬من‬


‫وحدتين‪ ،‬تدعي االولي وحدة الزبون ‪ ،Client‬وتتلخص مهمتها الرئيسة في إدارة‬
‫التفاعل م‪‰‰‬ع المس‪‰‰‬تخدم وتلقي طلبات‪‰‰‬ه وص‪‰‰‬ياغتها علي ش‪‰‰‬كل رس‪‰‰‬ائل ‪Messages‬‬
‫قياسية وتدعي الثانية وحدة المزود ‪ ، Server‬وتتلخص مهمتها الرئيس‪‰‬ة في تلقي‬
‫رسائل وحدة الزبون وتفسيرها والقيام بأعمال المعالج‪‰‰‬ة وإرس‪‰‰‬ال نت‪‰‰‬ائج المعالج‪‰‰‬ة‬
‫إلي الزب‪‰‬ون ال‪‰‬ذي طلبه‪‰‬ا ‪ .‬ويمكن لبرن‪‰‬امجي الزب‪‰‬ون والم‪‰‬زود أن ينف‪‰‬ذا بواس‪‰‬طة‬
‫الحاس‪‰‰‬وب ذات‪‰‰‬ه ‪ ،‬ولكن غالب‪‰‰‬ا م‪‰‰‬ا ينف‪‰‰‬ذان بواس‪‰‰‬طة حاس‪‰‰‬وبين مختلفين يالئم‪‰‰‬ان‬
‫االحتياج‪‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‬ات الخاص‪‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‬ة بك‪‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‬ل منهما ‪.‬‬

‫وتحت‪‰‰‬وي معظم نظم التش‪‰‰‬غيل الش‪‰‰‬بكات المحلي‪‰‰‬ة ذات م‪‰‰‬زودات الملف‪‰‰‬ات مثل (‬
‫‪) Novell NetWare‬علي بعض األش‪‰‰‬كال من معمارية الزب‪‰‰‬ون‪/‬الم‪‰‰‬زود في‬
‫توفير كل من خدمات نق‪‰‬ل الملف‪‰‬ات والطباع‪‰‬ة لمس‪‰‬تخدمي الش‪‰‬بكة‪ ،‬ففي مث‪‰‬ل ه‪‰‬ذه‬
‫الش‪‰‰‬بكات يق‪‰‰‬وم ك‪‰‰‬ل من الحواس‪‰‰‬يب المتص‪‰‰‬لة بالش‪‰‰‬بكة بتش‪‰‰‬غيل برن‪‰‰‬امج موجه‬
‫‪ Redirector‬ويق‪‰‰‬وم ه‪‰‰‬ذا البرن‪‰‰‬امج بتلقي طلب‪‰‰‬ات خدم‪‰‰‬ة الملف‪‰‰‬ات الص‪‰‰‬ادرة عن‬
‫مستخدم ذلك الحاسوب أو عن أحد البرامج التطبيقي‪‰‬ة ال‪‰‬تي يش‪‰‬غلها ( جه‪‰‬ة الزب‪‰‬ون )‬
‫‪ ،‬وإحالة الطلب إلي نظام ملفات الشبكة ‪ ( NFS‬جه‪‰‬ة الم‪‰‰‬زود ) ‪ .‬وعن‪‰‬دها يق‪‰‰‬وم‬
‫م‪‰‰‬زود الملف‪‰‰‬ات بتنفي‪‰‰‬ذ الخدم‪‰‰‬ة المطلوب‪‰‰‬ة وإف‪‰‰‬ادة الزب‪‰‰‬ون ط‪‰‰‬الب الخدم‪‰‰‬ة بالنتيج‪‰‰‬ة‬
‫( يستخدم تعب‪‰‬ير م‪‰‬زود الملف‪‰‬ات ‪ File Server‬إلش‪‰‬ارة إلي برن‪‰‬امج به‪‰‬ذا االس‪‰‬م‬
‫وك‪‰‰‰‰‰‰‬ذلك إلي الحاس‪‰‰‰‰‰‰‬وب ال‪‰‰‰‰‰‰‬ذي يق‪‰‰‰‰‰‰‬وم بتش‪‰‰‰‰‰‰‬غيل ه‪‰‰‰‰‰‰‬ذا البرن‪‰‰‰‰‰‰‬امج )‪.‬‬

‫البرنامج الزبون ‪:‬‬

‫تمث‪‰‬ل ب‪‰‬رامج الزب‪‰‬ون الواجه‪‰‬ة األمامية ‪ Fron-end‬ال‪‰‬تي يتعام‪‰‬ل المس‪‰‬تخدم م‪‰‬ع‬


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

‫البرنامج المزود ‪:‬‬

‫يتخصص البرنامج الم‪‰‬زود بتق‪‰‬ديم ص‪‰‬نف معين من الخ‪‰‬دمات مث‪‰‬ل خ‪‰‬دمات إدارة‬
‫الملفات أو خدمات الطباعة أو االتصاالت أو إدارة البريد االلكتروني ‪ e-mail‬أو‬
‫خ‪‰‰‬دمات اس‪‰‰‰‬تعالم قواع‪‰‰‰‬د البيان‪‰‰‰‬ات ‪ query‬بلغة ‪ SQL‬وإج‪‰‰‰‬راء المع‪‰‰‰‬امالت‬
‫‪ transaction‬معه‪‰‬ا‪ ،‬أو غيره‪‰‬ا من الخ‪‰‬دمات ‪ .‬ويمث‪‰‬ل البرن‪‰‬امج الم‪‰‬زود نهاي‪‰‬ةة‬
‫‪ back-end‬التطبيق‪ .‬وهو يقف علي أهبة االستعداد لتقديم الخدمات ال‪‰‬تي يختص‬
‫بها عند تلقيه "رسالة" بهذا الص‪‰‰‬دد من أح‪‰‬د الزب‪‰‰‬ائن ‪ .‬وعن‪‰‰‬دها يق‪‰‬وم بتفس‪‰‬ير تل‪‰‬ك‬
‫الرسالة وتنفيذ العمليات التي تتطلبها وإرسال النتائج إلي زبون طالب الخدمة‪ ،‬إن‬
‫‪.‬‬ ‫وج‪‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‬دت‬

‫ويتألف برنامج المزود من محرك ‪ Engine‬لتنفيذ المهام التي يختص به‪‰‰‬ا‪ ،‬وه‪‰‰‬و‬
‫يوفر واجه‪‰‰‬ة لبرمجة التطبيق‪‰‰‬ات ‪Application Programming Interface‬‬
‫‪ API‬واضحة ومحددة ‪ .‬وتعين واجهة برمجة التطبيقات مجموعة الخدمات ال‪‰‬تي‬
‫يمكن للمزود أن يوفرها‪ ،‬وصيغ الرسائل ال‪‰‰‬تي تلتمس ه‪‰‰‬ذه الخ‪‰‰‬دمات‪ .‬وال يحت‪‰‰‬اج‬
‫المبرمجون الذي يطورون برامج من فئ‪‰‬ة الزب‪‰‬ون‪ ،‬عملي‪‰‬ا‪ ،‬لمعرف‪‰‬ة تفاص‪‰‬يل آلي‪‰‬ة‬
‫عمل برنامج المزود الذي سيخدم برنامجهم الزبون ‪ .‬كل ما يحتاجونه بهذا الصدد‬
‫ه‪‰‰‬و معرف‪‰‰‬ة واجه‪‰‰‬ة البرمجة ‪ API‬الخاص‪‰‰‬ة بالبرن‪‰‰‬امج الم‪‰‰‬زود المع‪‰‰‬ني ‪.‬وتتمث‪‰‰‬ل‬
‫الوظيفة األساسية لـ ‪ API‬في إخف‪‰‬اء التعقي‪‰‬دات الداخلي‪‰‰‬ة للبرن‪‰‬امج الم‪‰‬زود وراء‬
‫س‪‰‰‰‰‰‰‰‰‰‰‰‰‰‬تار أني‪‰‰‰‰‰‰‰‰‰‰‰‰‰‬ق وواض‪‰‰‰‰‰‰‰‰‰‰‰‰‰‬ح يس‪‰‰‰‰‰‰‰‰‰‰‰‰‰‬هل التعام‪‰‰‰‰‰‰‰‰‰‰‰‰‰‬ل معه‪.‬‬
‫ويتيح الفصل بين وحدتي الزبون والمزود إمكانية تشغيل ك‪‰‰‬ل منهم‪‰‰‬ا علي منص‪‰‰‬ة‬
‫مفصلة‪ .‬حيث أن لك‪‰‬ل منهم‪‰‬ا متطلب‪‰‬ات تش‪‰‬غيل مختلف‪‰‬ة ‪ .‬ب‪‰‬ل أن باإلمك‪‰‬ان تش‪‰‬غيل‬
‫برمجيات الزبون والمزود تحت نظم تشغيل مختلفة وباس‪‰‰‬تخدام فئ‪‰‰‬ات مختلف‪‰‰‬ة من‬
‫العتاد مثل استخدام نظم ‪ PC‬عاملة تحت ‪ DOS‬و ‪ Windows‬لتش‪‰‬غيل ب‪‰‬رامج‬
‫الزبون‪ ،‬واستخدام نظام ميني فريم يعمل تحت النظام ‪ Unux‬كمنص‪‰‬ة للم‪‰‬زود‪ ،‬او‬
‫اس‪‰‰‰‬تخدام أي‪‰‰‰‬ة تش‪‰‰‰‬كيالت أخ‪‰‰‰‬ري غ‪‰‰‰‬ير متجانس‪‰‰‰‬ة من العت‪‰‰‰‬اد أو نظم التش‪‰‰‰‬غيل‪.‬‬

‫حوار الزبون والمزود ‪:‬‬


‫يمتاز الحوار الذي يدور بين الزبون والمزود بالتنظيم والفاعلي‪‰‰‬ة‪ ،‬مم‪‰‰‬ا يخف‪‰‰‬ف من‬
‫اكتظاظ كابالت الشبكة بتدفق البيانات بدون طائل كما في حالة التطبيقات العامل‪‰‰‬ة‬
‫في بيئة شبكية تقليدية ‪ .‬فلو تأملنا مثال طريقة تنفيذ استعالم في نظ‪‰‰‬ام إدارة قواع‪‰‰‬د‬
‫البيانات وفق معمارية الزبون‪/‬المزود‪ ، ‰‬نج‪‰‬د أن العملي‪‰‬ة تب‪‰‬دأ بتلقي الزب‪‰‬ون جمل‪‰‬ة‬
‫االستعالم من المستخدم مكتوبة بلغة ‪ ( SQL‬تقوم واجهات استخدام بعض برامج‬
‫الزبون بكتابة جمل االستعالم به‪‰‰‬ذه اللغ‪‰‰‬ة بن‪‰‰‬اء علي طلب المس‪‰‰‬تخدم بالنياب‪‰‰‬ة عن‪‰‰‬ه‬
‫لتوصيلها إلي المزود)‪ ،‬وعندها يقوم برنامج الزبون بتحويل االس‪‰‬تعالم إلي رسالة‬
‫قياسية وإرسالها إلي البرنامج المزود عبر الشبكة‪ .‬يحلل البرنامج المزود الرس‪‰‰‬الة‬
‫القادمة وينفذ تعليم‪‰‬ات ‪ SQL‬ال‪‰‬تي تحتويه‪‰‬ا‪ ،‬في بيئت‪‰‬ه الخاص‪‰‬ة ‪ .‬وأخ‪‰‬يرا يرس‪‰‬ل‬
‫البيانات التي يتمخض عنه‪‰‰‬ا البحث فق‪‰‰‬ط إلي الزب‪‰‰‬ون الط‪‰‰‬الب‪ ،‬ب‪‰‰‬دون الحاج‪‰‰‬ة إلي‬
‫إرس‪‰‰‬ال كام‪‰‰‬ل المل‪‰‰‬ف إلي محط‪‰‰‬ة العم‪‰‰‬ل لتنفي‪‰‰‬ذ االس‪‰‰‬تعالم المطل‪‰‰‬وب في فض‪‰‰‬ائها‬
‫‪.‬‬ ‫الخ‪‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‬اص‬
‫) من االمثل‪‰‰‬ة الش‪‰‰‬ائعة ال‪‰‰‬تي نراه‪‰‰‬ا دائم‪‰‰‬ا في مج‪‰‰‬ال برمجي‪‰‰‬ات الزب‪‰‰‬ون‪/‬الم‪‰‰‬زود‪: ‰‬‬
‫المتص‪‰‰‰‰‰‬فحات والم‪‰‰‰‰‰‬زودات في المواق‪‰‰‰‰‰‬ع ال‪‰‰‰‰‰‬تي نزوره‪‰‰‰‰‰‬ا بالمتص‪‰‰‰‰‰‬فح (‪.‬‬

‫الزبون‪/‬المزود‪ .. ‰‬لماذا؟‬

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

‫وتل‪‰‰‬بي نظم الزب‪‰‰‬ون‪/‬الم‪‰‰‬زود معظم ه‪‰‰‬ذه االحتياج‪‰‰‬ات والتوجه‪‰‰‬ات للمؤسس‪‰‰‬ات‬


‫الحديثة ‪ .‬وهو سر رواجه‪‰‰‬ا في الس‪‰‰‬نوات األخ‪‰‰‬يرة علي ال‪‰‰‬رغم من ك‪‰‰‬ل التعقي‪‰‰‬دات‬
‫‪.‬‬ ‫والتك‪‰‰‰‰‰‰‰‬اليف ال‪‰‰‰‰‰‰‰‬تي تراف‪‰‰‰‰‰‰‰‬ق بن‪‰‰‰‰‰‰‰‬اء مث‪‰‰‰‰‰‰‰‬ل ه‪‰‰‰‰‰‰‰‬ذه النظم‬

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

‫مخطط يبين برمجة معمارية المزود والزبون‬


‫شكل يوضح حوار الزبون ‪ /‬المزود‬

‫طبقات التطبيق ‪application layer‬‬


‫عند تصميم نظام الزبون ‪ /‬المزود يتم تقسيم النظام تطبيقيا الى ثالث طبقات‬
‫توضح كما يلي‬

‫تقسم التطبيقات الى ثالث طبقات ‪:‬‬


‫‪-1‬طبقة العرض‬
‫وفيها يتم عرض البيانات وتوفر واجهة للمستخدم النهائي‬
‫‪-2‬طبقة المعالجة‬
‫وفيها يتم القيام بعمليات المعالجة واجراء العمليات الحسابية‬
‫‪-3‬طبقة ادارة قواعد البيانات‬
‫وفيها يتم ادارة قاعدة البيانات و تقديم البيانات المطلوبة من قبل‬
‫الزبون‬

‫طبقات التطبيق ‪..‬لماذا؟‬


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

‫وعلى اساس طبقات التطبيق تنوعت معماريات العميل الزبون الى نوعين هما‬
‫‪Two-tier C/S architecture‬‬ ‫‪‬‬
‫‪Three-tier C/S architecture‬‬ ‫‪‬‬

‫في ‪ Two-tier architecture‬يتم توزيع الطبقات بنسبة‪ 2:1‬وهذا يعني انه‬


‫على المزود او الزبون ان ياخذ طبقتين ويأخذ االخر الطبقة االخرى وقد انبثق‬
‫عنها معماريتين حسب‬
‫عدد الطبقات التي على الزبون هما‬
‫‪THIN CLINT architecture ‬‬
‫‪FAT CLINT architecture ‬‬

‫المخطط التالي يوضح كال من المعماريتين‬


‫دلكل واحدة من المعماريات استخداماتها حسب مج‪‰‬االت التطبيق‪‰‬ات فمثال‬
‫تكون المعمارية االولى اجدى عند تطوير األنظمة من انظمه قديم‪‰‰‬ة او في‬
‫حالة عدم الحاجة لخدمة احد الطبقات بينما النوع الثاني يس‪‰‰‬تخدم عن‪‰‰‬دما‬
‫تكون انظمتنا تتطلب عمل اكبر على جميع الطبقات‪.‬‬
‫من عيوب المعمارية االولى ه‪‰‰‬و اجه‪‰‰‬اد الم‪‰‰‬زود والش‪‰‰‬بكة بينم‪‰‰‬ا تخلص‪‰‰‬ت‬
‫المعمارية الثانية من هذه المشكلة لكن فقد ظهرت بها مش‪‰‰‬كلة جدي‪‰‰‬د تتعل‪‰‰‬ق‬
‫بعمليات االدارة والصيانة فأي تغيير على المزود يتطلب تغي‪‰‰‬يرا على ك‪‰‰‬ل‬
‫زبون‪.‬‬

‫‪Three-tier C/S architecture‬‬


‫جاءت هذه المعمارية بحلول لكل مشاكل معمارية ‪Two-tier C/S‬‬
‫‪architecture‬‬
‫واحد امثلة هذه المعمارية هي شبكة االنترنت والشكل التالي يوضح هذه‬
‫المعمارية‬
‫طريقة االتصال ‪:‬‬
‫)‪Remote Procedure Call (RPC‬‬

‫ظهرت طريقة االتصال )‪ Remote Procedure Call (RPC‬في الثمانينات‬


‫لكنها مرت بمراحل تغيير عديده وهي الطريق المتبعة للتواصل بين المزود‬
‫والزبون وسوف سنتعرف عليها في هذه السطور‬

‫تقوم (‪)Remote Procedure Call‬على مبدأ توزيع العمل على عدة مزودات‬
‫واستخدام التفرعات البرمجية لتنفيذ هذه العمليات ‪.‬‬
‫نموذج التنفيذ يعتمد على واجهة للزبون عن بعد ‪( STUP‬تسمى بالنسبة‬
‫للزبون‪)PROCXY‬‬
‫خصائص ‪PRC‬‬

‫‪Uniform call structure‬‬ ‫‪‬‬


‫وهذه تعني ان طريقة االستدعاء ال زالت بنفس الطريقة المستخدمة في‬
‫العمل على حاسب وحيد‬
‫‪Type checking:‬‬ ‫‪‬‬
‫توفر ميزة فحص اخطاء انواع المتغيرات كتلك الموجودة بلغات البرمجة‬
‫‪Full parameter functionality‬‬ ‫‪‬‬
‫نستطيع عن طريقها تمرير المتغيرات سواء كان التمرير بالعنوان أو‬
‫القيمة‬
‫‪Distributed binding‬‬ ‫‪‬‬
‫يمكننا التنفيذ على اكثر من مزود‬

‫‪Recovery of orphan computations:‬‬ ‫‪‬‬


‫في حالة تجاهل اي مهمة فانه من الممكن استعادتها‬
‫الية االستدعاء في ‪PRC‬‬
‫(نموذج الكائن الموزع) ‪DISTRIBUTED OBJECT MODEL‬‬
‫ليس هناك فرق بين معمارية الكائن الموزع وبين الخادم والعميل حيث ان‪:‬‬
‫كل كينونة قابلة للتوزيع (‪ )distributable‬هو كائن (‪ )object‬ي‪‰‰‬زود‬ ‫‪-‬‬
‫خدمات لكائنات اخرى ويستقبل خدمات من كائنات اخرى‪.‬‬
‫التواص‪‰‰‰‰‬ل بيت الكائن‪‰‰‰‰‬ات تتم عن طري‪‰‰‰‰‬ق وس‪‰‰‰‰‬يط (‪middleware‬‬ ‫‪-‬‬
‫‪ )system‬ي‪‰‰‰‰‬دعى بوس‪‰‰‰‰‬يط طلب الكائان‪‰‰‰‰‬ات (‪object request‬‬
‫‪)broker‬‬
‫معمارية الكائن الموزع اكثر تعقيدا في التصميم من معمارية (‪)c/s‬‬ ‫‪-‬‬

‫تعتبر أنظمة الكائن الموزع من أكثر األنظمة الموزعة مرونة حيث ت‪‰‰‬تركز فك‪‰‰‬رة‬
‫المعماري‪‰‰‬ة األساس‪‰‰‬ية إن مجموع‪‰‰‬ة الكائن‪‰‰‬ات ال‪‰‰‬تي تق‪‰‰‬دم ع‪‰‰‬دة خ‪‰‰‬دمات عن طري‪‰‰‬ق‬
‫واجهاتها تقوم كائنات أخرى باستدعاء هذه الخ‪‰‰‬دمات وذل‪‰‰‬ك دون اي فص‪‰‰‬ل بين (‬
‫‪)c \ s‬‬
‫يعت‪‰‰‬بر اس‪‰‰‬تخدام معماري‪‰‰‬ة الك‪‰‰‬ائن الم‪‰‰‬وزع أفض‪‰‰‬ل من الخ‪‰‰‬ادم‪ -‬العمي‪‰‰‬ل م‪‰‰‬ع أن‪‰‰‬واع‬
‫التطبيقات التي تسمح بتجديد والتطوير الن ال(‪ )c/s‬يهتم كث‪‰‰‬يرا بتحدي‪‰‰‬د الخ‪‰‰‬دمات‬
‫التي يقدمها إدارة قواعد البيانات بينما أنظمة الكائن‪‰‰‬ات الموزع‪‰‰‬ة غ‪‰‰‬ير ذال‪‰‰‬ك حيث‬
‫تسمح بإضافة قواعد بيانات جديدة دون حدوث أي خلل للنظام حيث يعتبرها كائن‬
‫موزع جديد يحوي عدة كائنات‪.‬‬

‫طريقة االتصال‬

‫يتم االتص‪‰‰‬ال بين ه‪‰‰‬ذه الكائن‪‰‰‬ات عن طري‪‰‰‬ق برن‪‰‰‬امج وس‪‰‰‬يط يق‪‰‰‬وم بالتنس‪‰‰‬يق بين‬
‫الكائنات يسمى ‪Object Request Broker‬‬

‫‪Object Request Broker‬‬


‫وهو عبارة عن برنامج وسيط من اجل ايجاد حلول للتعقيدات التي تواجه األنظمة‬
‫الموزعة وااللتزام بمعايير تمكننا من حل مشكلة التنوع في الكائنات الموزعة‬
‫وانشاء واجهات بين الكائنات بغض النظر عن نوع الكائنان وبيئات عملها الشكل‬
‫التالي يوضح الهيكل االساسي ل‪orb‬‬
‫يوض‪‰‰‬ع ه‪‰‰‬ذا الوس‪‰‰‬يط على معي‪‰‰‬ار يس‪‰‰‬مى معي‪‰‰‬ار ‪Common Object Request‬‬
‫‪Broker Architecture‬‬
‫يوضح الشكل التالي المعمارية الشائعة لالنظمة الوسيطة‪CORBA‬‬
‫وهي كلم‪‰‰‰‰‰‬ة اختص‪‰‰‰‰‰‬ار لـ‪Common Object Request Broker‬‬
‫‪ Architecture‬وهي عبارة‪ ‬إنكليزية‪ ‬تع‪‰‬ني باللغ‪‰‬ة العربي‪‰‬ة أس‪‰‬لوب البن‪‰‬اء الوس‪‰‬يطي‬
‫لطلب األغراض العامة‪.‬‬
‫يعتبر أسلوب البناء الوسيطي لطلب األغراض العامة ‪ CORBA‬معي‪‰‰‬ار قياس‪‰‰‬ي‬
‫مع ّرف من قبل مجموعة إدارة األغراض (‪Object Management Group :‬‬
‫‪ ‰.)OMG‬يخ ّول هذا المعيار المكون‪‰‰‬ات البرمجية‪)Software components :‬‬
‫المكتوبة‪ ‬بلغات حاسوبية‪ ‬مختلفة‪ ،‬والتي تعمل على أجهزة متعددة‪ ،‬يخولها بالعم‪‰‰‬ل‬
‫معا‪.‬‬
‫تعتبر كوربا ‪ CORBA‬تقنية في البرمجيات مستخدمة في تنظيم وتوحي‪‰‰‬د ط‪‰‰‬رق‬
‫استدعاءات المناهج (الطرائق) ‪ method-call‬بين أغراض التطبيقات التي تق‪‰‰‬ع‬
‫في المج‪‰‬ال العن‪‰‰‬واني نفس‪‰‬ه للتط‪‰‰‬بيق أو تق‪‰‬ع في مج‪‰‰‬ال عن‪‰‬واني بعي‪‰‬د (أي عن‪‰‰‬وان‬
‫المضيف نفسه‪ ،‬أو عنوان مضيف بعيد على شبكة ما)‪ .‬لقد تم اصدار النسخة ‪1.0‬‬
‫في شهر تشرين األول أكتوبر من عام ‪ 1991‬ميالدي‪.‬‬
‫تس‪‰‰‬تخدم كوربا ‪ CORBA‬لغ‪‰‰‬ة تعري‪‰‰‬ف الواجه‪‰‰‬ات ‪Interface Definition‬‬
‫‪ Language IDL‬لتحديد الواجه‪‰‰‬ات ال‪‰‰‬تي س‪‰‰‬وف تق‪‰‰‬دمها األغ‪‰‰‬راض البرمجي‪‰‰‬ة‬
‫للعالم الخارجي ‪ .outside world‬عندئذ كوربا تؤمن االنتق‪‰‰‬ال ‪ mapping‬من‬
‫‪ IDL‬لغ‪‰‰‰‰‰‬ة تعري‪‰‰‰‰‰‬ف الواجه‪‰‰‰‰‰‬ات إلى أي لغ‪‰‰‰‰‰‬ة برمج‪‰‰‰‰‰‬ة خاص‪‰‰‰‰‰‬ة بالتنفيذ‬
‫‪ implementation‬مثل لغة ‪ ++C‬أو لغة جافا‪ .‬هناك ارتباط قياسي ‪standard‬‬
‫‪ mapping‬لعدد من لغات البرمجة منها لغة آدا ‪ Ada‬ولغة ‪ C‬ولغة ‪ ++C‬ولغة‬
‫‪ Lisp‬ولغة ‪ Smalltalk‬ولغة جافا ولغة كوبول ‪ COBOL‬ولغة ‪ PL/L‬ولغة‬
‫ب‪‰‰‰‬ايثون ‪ .Python‬كم‪‰‰‰‬ا وهن‪‰‰‰‬اك ارتباط‪‰‰‰‬ات غ‪‰‰‰‬ير قياس‪‰‰‰‬ية ‪non-standard‬‬
‫‪ mapping‬للغ‪‰‰‬ات أخ‪‰‰‬رى مث‪‰‰‬ل لغ‪‰‰‬ة ب‪‰‰‬يرل‪ Perl‬ولغ‪‰‰‬ة فيج‪‰‰‬وال بيسك ‪Visual‬‬
‫‪ Basic‬ولغة ‪Ruby‬روبي ولغة ‪ Erlang‬ولغة ‪ Tcl‬منجزة من خالل الوس‪‰‰‬ائط‬
‫لطلب األغراض العامة ‪ ORBs Object Request Brokers‬ومكتوب‪‰‰‬ة من‬
‫أجل تلك اللغات‪.‬‬
‫ان مواصفات كوربا تقتضي وجود ‪ ORB‬لكي يتمكن من خالله التطبيق بالتعامل‬
‫مع أغراض برمجية أخرى‪ .‬في الواق‪‰‬ع‪ ،‬يق‪‰‬وم التط‪‰‰‬بيق بإعط‪‰‰‬اء قيم‪‰‬ة ابتدائي‪‰‰‬ة للـ‬
‫‪ ORB‬ويقوم بالنفاذ إلى وصيلة الغرض ‪ Object Adapter‬الذي يحافظ على‬
‫بعض األمور متل عداد المرجع وسياسات إنشاء األغراض وسياسات ف‪‰‰‬ترة حي‪‰‰‬اة‬
‫األغراض‪ ..‬الخ‪.‬‬
‫يس‪‰‬تخدم الـ ‪ Object Adapter‬لتس‪‰‰‬جيل الـ ‪ instances‬من الص‪‰‬فوف مول‪‰‰‬دة‬
‫النص ال‪‰‰‬برمجي ‪ .generated code classes‬تعت‪‰‰‬بر الص‪‰‰‬فوف مول‪‰‰‬دة النص‬
‫البرمجي ‪ Generated Code Classes‬على أنها نتيجة ترجمة الكود الخاص بـ‬
‫‪ IDL‬المستخدم الذي يقوم بتحويل تعاريف الواجهات عالية المستوى إلى أس‪‰‰‬اس‬
‫ص‪‰‰‬فوف خاص‪‰‰‬ة باللغ‪‰‰‬ة وخاص‪‰‰‬ة بنظ‪‰‰‬ام التش‪‰‰‬غيل لكي يتم اس‪‰‰‬تخدامها في تط‪‰‰‬بيق‬
‫المستخدم‪ .‬وتعد هذه الخط‪‰‬وة ض‪‰‬رورية للتأكي‪‰‰‬د على دالالت ألف‪‰‬اظ الكورب‪‰‰‬ا‪ ،‬كم‪‰‰‬ا‬
‫وتع‪‰‰‬د ض‪‰‰‬رورية لتق‪‰‰‬ديم عملي‪‰‰‬ة ص‪‰‰‬حيحة للمس‪‰‰‬تخدم للمواجه‪‰‰‬ة م‪‰‰‬ع البني‪‰‰‬ة التحتي‪‰‰‬ة‬
‫لكوربا‪ .‬هناك لغات مقابالت ‪ IDL‬تعت‪‰‰‬بر أك‪‰‰‬تر ص‪‰‰‬عوبة من غيره‪‰‰‬ا‪ .‬على س‪‰‰‬بيل‬
‫المثال طبيعة لغة البرمج‪‰‬ة جاف‪‰‬ا تقتض‪‰‬ي أن الـ ‪ IDL-Java Mapping‬س‪‰‬لس‬
‫ويستفيد من كوربا بشكل بس‪‰‰‬يط في تطبيق‪‰‰‬ات الجاف‪‰‰‬ا‪ .‬بينما ‪ C++ Mapping‬ال‬
‫تعت‪‰‰‬بر س‪‰‰‬هلة ولكنه‪‰‰‬ا مناس‪‰‰‬بة لجمي‪‰‰‬ع هيئ‪‰‰‬ات الكورب‪‰‰‬ا مث‪‰‰‬ل معالج‪‰‰‬ة االس‪‰‰‬تثناءات‬
‫‪ .Exception Handling‬كم‪‰‰‬ا وأن ‪ C-mapping‬تعت‪‰‰‬بر أش‪‰‰‬د غراب‪‰‰‬ة (ألنه‪‰‰‬ا‬
‫ليست لغة برمجة غرضية التوج‪‰‰‬ه) ولكنه‪‰‰‬ا منطقي‪‰‰‬ة وتع‪‰‰‬الج ‪RPC semantics‬‬
‫بشكل جيد‪( .‬لقد استبدلت ‪ Red Hat Linux‬و ‪ GNOME UI system‬الـ‬
‫‪ IPC‬المبني على كوربا بآخر هو ‪ ‰ )DBus‬إن تحقيق التقابل بين لغات البرمج‪‰‰‬ة‬
‫يتطلب من المبرمج أن يكتب ‪ IDL code‬يمثل واجهة إلى األغراض البرمجي‪‰‰‬ة‬
‫الخاصة به‪ .‬وعادةً هناك مترجم خاص م‪‰‰‬ع كورب‪‰‰‬ا هو ‪ IDL compiler‬يح‪‰‰‬ول‬
‫‪ IDL code‬ال‪‰‰‬ذي كتب‪‰‰‬ه الم‪‰‰‬برمج إلى نص برن‪‰‰‬امج مول‪‰‰‬د حس‪‰‰‬ب لغ‪‰‰‬ة البرمج‪‰‰‬ة‬
‫المحددة‪ .‬ومن ثم يقوم مترجم تقليدي بترجمة نص البرنامج المولد إلنش‪‰‰‬اء ملف‪‰‰‬ات‬
‫أغراض القابلة للربط لهذا التطبيق‪.‬‬
‫بعض مواص‪‰‰‬فات كورب‪‰‰‬ا هي‪ :‬أنم‪‰‰‬اط المعطي‪‰‰‬ات‪ ،‬االس‪‰‰‬تثناءات ‪،Exceptions‬‬
‫بروتوكوالت الشبكة‪ ،‬ال‪‰‰‬زمن المح‪‰‰‬دد للتواصل ‪.communication timeouts‬‬
‫على سبيل المثال‪ :‬يتواجد في جه‪‰‰‬ة المخ‪‰‰‬دم ‪ Server‬ع‪‰‰‬ادةً ‪Portable Object‬‬
‫)‪ Adapter (POA‬يق‪‰‰‰‬وم بتوجي‪‰‰‰‬ه الطلب‪‰‰‰‬ات ام‪‰‰‰‬ا إلى الخ‪‰‰‰‬ادم المحلي ‪local‬‬
‫‪ servants‬أو يقوم بتوجيهها إلى مخدمات أخرى ‪ servers‬وذلك لتحقيق موازنة‬
‫الحمل‪.‬‬
‫بعض األمور التي ال تهتم بها كوربا ولكنها موجودة في جميع األنظم‪‰‰‬ة الموزع‪‰‰‬ة‬
‫األخ‪‰‰‰‬رى هي‪ :‬م‪‰‰‰‬دة حي‪‰‰‰‬اة الغ‪‰‰‰‬رض‪ ،‬التكراري‪‰‰‰‬ة وتج‪‰‰‰‬اوز األعط‪‰‰‰‬ال‪name ،‬‬
‫‪ ،semantics‬إدارة ال‪‰‰‬ذاكرة‪ ،‬الموازن‪‰‰‬ة الديناميكي‪‰‰‬ة للحم‪‰‰‬ل‪ ،‬وفص‪‰‰‬ل النم‪‰‰‬اذج عن‬
‫بعض‪‰‰‬ها (اظه‪‰‰‬ار‪ ،‬معطي‪‰‰‬ات‪ ،‬تحكم)‪ .‬إض‪‰‰‬افة لك‪‰‰‬ون كورب‪‰‰‬ا تق‪‰‰‬دم للمس‪‰‰‬تخدم تقني‪‰‰‬ة‬
‫استدعاء االجرائي‪‰‰‬ات عن بع‪‰‰‬د بغض النظ‪‰‰‬ر عن البيئ‪‰‰‬ة‪ ،‬فهي أيض‪‰‬ا ً تع‪‰‬رّف بعض‬
‫الخ‪‰‰‬دمات الهام‪‰‰‬ة مث‪‰‰‬ل المن‪‰‰‬اقالت ‪ transactions‬واألم‪‰‰‬ان واألح‪‰‰‬داث وال‪‰‰‬وقت‬
‫وغيرها من نماذج الواجهات حسب المجال المحدد‪.‬‬

‫)‪ CORBA Component Model (CCM‬نموذج الكوربا‬


‫إن )‪ CORBA Component Model (CCM‬هو إضافة لمجموع‪‰‰‬ة تعريف‪‰‰‬ات‬
‫يوص‪‰‰‬ف اط‪‰‰‬ار عمل‬ ‫ّ‬ ‫كورب‪‰‰‬ا‪ .‬أول ظه‪‰‰‬ور ل‪‰‰‬ه ك‪‰‰‬ان في ‪ CORBA 3‬كم‪‰‰‬ا وأن‪‰‰‬ه‬
‫‪ framework‬للتطبيقات قياسي لـ ‪ .CORBA Component‬ب‪‰‰‬الرغم من أن‪‰‰‬ه ال‬
‫يعتمد على )‪ Enterprise Java Beans (EJB‬التي هي مستقلة عن لغة البرمجة‪،‬‬
‫اال وأنه أكثر عمومية من ‪ EJB‬ألنه يقدم أربع أنواع من الـ‪ components‬بدالً من‬
‫‪ 2‬التي تعرّفها ‪ .EJB‬كما وأنه يعرّف تج ّرد من األشياء ‪ entities‬التي يمكن أن تقدم‬
‫وتقبل خدمات من خالل واجهات اسمية معرفة جيداً تدعى ‪ .ports‬لدى ‪ CCM‬حا ٍو‬
‫نش‪‰‬ر المكون‪‰‰‬ات البرمجي‪‰‰‬ة في‪‰‰‬ه‪ .‬ان ه‪‰‰‬ذا‬ ‫للمكونات ‪ component container‬لكي تُ َ‬
‫الح‪‰‰‬اوي يق‪ّ ‰‰‬دم مجموع‪‰‰‬ة من الخ‪‰‰‬دمات للمكون‪‰‰‬ات‪ .‬بعض ه‪‰‰‬ذه الخ‪‰‰‬دمات هي التنبي‪‰‰‬ه‬
‫والتوثيق ‪ authentication‬واالس‪‰‰‬تمرارية وإدارة المن‪‰‰‬اقالت‪ .‬وه‪‰‰‬ذه الخ‪‰‰‬دمات هي‬
‫أكثر الخدمات التي تطلبها النظم الموزعة‪ ،‬ومن خالل نقل التحقيق لهذه الخ‪‰‬دمات من‬
‫‪‰‬او المكون‪‰‰‬ات ينخفض تعقي‪‰‰‬د المكون‪‰‰‬ات ‪components‬‬ ‫المكون‪‰‰‬ات البرمجي‪‰‰‬ة إلى ح‪ِ ‰‬‬
‫بش‪‰‰‰‬كل كب‪‰‰‰‬ير‪ -5-2 .‬بروتوك‪‰‰‰‬ول ‪ InterORB‬الع‪‰‰‰‬ام (‪General InterORB‬‬
‫‪ Protocol(GIOP‬يعتبر ‪ GIOP‬بروتوكول مجرد تتخاطب من خالل‪‰‬ه الـ ‪ORB‬‬
‫م‪‰‰‬ع بعض‪‰‰‬ها البعض‪ .‬المع‪‰‰‬ايير القياس‪‰‰‬ية المرتبط‪‰‰‬ة به‪‰‰‬ذا ال‪‰‰‬بروتوكول‪ ‰‬متبن‪‰‰‬اة من قب‪‰‰‬ل‬
‫مجموعة ‪ .OMG‬إن بنية ‪ GIOP‬تقدم بعض البروتوكوالت متل‪:‬‬
‫‪ Internet InterORB Protocol (IIOP) ‬وه‪‰‰‬و تحقي‪‰‰‬ق لـ ‪GIOP‬‬
‫يستخدم في اإلنترنت ويقدم تقابل بين رسائل ‪ GIOP‬و ‪.TCP/IP layer‬‬
‫‪ SSL InterORB Protocol (SSLIOP) ‬وهو ‪ IIOP‬ف‪‰‰‬وق ‪SSL‬‬
‫ويقدم ترميز ‪ encryption‬وتوثيق ‪.Authentication‬‬
‫‪ HyperText InterORB Protocol (HTIOP) ‬وهو ‪ IIOP‬فوق‬
‫‪ HTTP‬ويقدم بروكسي شفاف جانبي‪.‬‬

‫المساوئ والمشكالت‬
‫‪ -‬شفافية الموقع‪ ،‬حيث أن األغراض البرمجية الموجودة في المجال العنواني ذاته والتي‬
‫يمكن الوصول إليها من خالل استدعاء بسيط تُعا َمل ذات معاملة األغراض البرمجية‬
‫البعيدة‪ ،‬مما يؤدي إلى تعقيد االستدعاءات وخاصة إذا كان معظم األغراض البرمجية‬
‫المطلوبة موجودة محليا ً‪.‬‬
‫‪ -‬النقص في التصميم‪ ،‬لم يكن هناك تنظيم للعروض المختلفة المقدمة ولم يتم تنسيق‬
‫المشاكل لمعالجتها ومع ذلك تم اصدار المعايير القياسية مما أدى لتعقيد المواصفات‬
‫وصعوبة تنفيذها وفي بعض األحيان كانت غامضة‪ .‬كما وأدى ظهور بعض الخالفات‬
‫في اللجنة المصممة إلى ظهور طبعات منقّحة من معايير كوربا كانت مستحيلة التنفيذ‬
‫دون وجود اضافات خاصة لها‪.‬‬
‫‪ -‬مشكالت في التنفيذ والتحقيق‪ ،‬غالبا ً كانت النسخ المحققة قليلة أو غير كاملة أو غير‬
‫كافية‪ .‬على الرغم من أن النسخ المحققة جيداً من كوربا كان صعب الحصول عليها سابقا ً‬
‫إال أن ‪ SUN Java SDK‬يأتي معها كوربا ضمنياً‪ .‬كما وأن هناك بعض النسخ المحققة‬
‫من كوربا قد تكون معقدة أو بطيئة أو غير متوافقة أو عير كاملة‪.‬‬
‫‪ -‬الجدار الناري ‪ ،Firewalls‬كوربا وبالتحديد ‪ IIOP‬تستخدم اتصال ‪ TCP/IP‬خام‬
‫لنقل المعطيات‪ ،‬فإذا كان الزبون ‪ client‬موجود خلف بيئة ‪ firewall‬أو ‪transparent‬‬
‫‪ proxy server‬قوية تسمح فقط بتمرير ‪ HTTP connections‬عبر الميناء ‪،80‬‬
‫عندئذ التواصل سيكون مستحيل إال إذا أعطى مخدم البروكسي المطلوب السماحية لـ‬
‫‪ HTTP CONNECT method‬أو ‪.SOCKS connections‬‬
‫لقد كان من الصعب اجبار التحقيق على استخدام ‪ port‬قياسي واحد فقد كان يتم اختيار‬
‫عدد من الـ ‪ ports‬بشكل عشوائي‪ ،‬ولآلن الـ ‪ ORBs‬لديهم هذه العلة‪ .‬بسبب هذه‬
‫الصعوبات ازداد عدد المستخدمين الذين لجئوا الستخدام خدمات الويب ‪web services‬‬
‫بدال من استخدام كوربا ‪ CORBA‬حيث تتواصل باستخدام ‪ XML/SOAP‬على المنفذ‬
‫‪ 80‬الذي يُت َرك مفتوح عادةً‪ .‬بعض النسخ الحديثة المحققة من كوربا تدعم ‪ SSL‬ويمكن‬
‫إعدادها بسهولة لتعمل على رقم ميناء ‪ port‬واحد فقط‪.‬‬
‫ومن أشهر الـ ‪ ORBS‬المفتوحة المصدر مثل ‪ TAO‬و ‪ JacORB‬تدعم ‪GIOP‬‬
‫باتجاهين مما يعطي كوربا ميزة القدرة على اتصاالت استعمال االستدعاء الرجعي‬
‫‪ callback communication‬بدال من صفة ‪ polling approach‬الموجودة في‬
‫خدمات الويب‪.‬‬
‫كما أنه أصبح هناك عدد من الـ ‪ CORBA-friendly firewalls‬الصديقة لكوربا‬
‫متوفرة في السوق‪.‬‬
‫‪ -‬ال وجود للضغط ‪ ،compression‬إن كوربا ترتب معطياتها على شكل معطيات‬
‫ثنائية (صفر وواحد) ولكنها ال تستخدم أي ضغط‪ .‬وحاليا ً شركات ‪IONA/Remedy‬‬
‫‪ IT/Telefonica‬يعملون على إنشاء إضافة لمعيار كوربا القياسي يسمح بتحقيق‬
‫الضغط وتسمى هذه اإلضافة بـ ‪ ZIOP‬وسوف يقدم به طلب رسمي لمجموعة ‪OMG‬‬
‫في اجتماعها القادم‪.‬‬
‫‪ -‬تجاهل التعامل مع الـ ‪.threads‬‬
‫‪ -‬ال يوجد تقابل للغات برمجة متل ‪ #C‬حيث أن كوربا تجاهلت‪.Net.‬‬
‫وغيرها العديد من المشكالت التي أدت إلى تراجع أهمية كوربا مع الزمن‪ ،‬وأيضا ً من‬
‫أسباب اندثار كوربا هو ظهور منافسة لها من قبل عدد من التقنيات مثل ‪DCOM‬‬
‫التابعة لشركة مايكروسوفت و ‪ EJB‬وخدمات الويب ‪.Web Services‬‬

‫‪OpenCCM (Open CORBA Component Model‬‬

‫يعت‪‰‰‰‬بر ‪ OpenCCM‬أول تحقي‪‰‰‰‬ق ع‪‰‰‰‬ام ومفت‪‰‰‰‬وح المص‪‰‰‰‬در لمواص‪‰‰‰‬فات ‪CORBA‬‬


‫‪ Component Model‬المع ّرفة حسب مجموعة ‪Object Management Group‬‬
‫)‪ .(OMG‬يس‪‰‰‬مح ‪ OpenCCM‬بتص‪‰‰‬ميم وتحقي‪‰‰‬ق وترجم‪‰‰‬ة وت‪‰‰‬رزيم وتجمي‪‰‰‬ع ونش‪‰‰‬ر‬
‫وتنص‪‰‰‬يب واع‪‰‰‬داد وتنفي‪‰‰‬ذ وإدارة وإنش‪‰‰‬اء تطبيق‪‰‰‬ات موزع‪‰‰‬ة تعتم‪‰‰‬د على مكون‪‰‰‬ات كوربا‬
‫‪ .CORBA Component‬يعت‪‰‬بر ‪ OpenCCM‬مش‪‰‬روع مج‪‰‰‬اني ومفت‪‰‬وح المص‪‰‰‬در‬
‫معرّف تحت رخصة جنو ‪ LGPL‬ومستضاف من قبل ‪.Object Web Constium‬‬

‫يعتمد ‪ OpenCCM‬على الجافا مما يسمح له بالعمل على عدة منصات كما ويعمل على‬
‫منتجات كوربا التالية‪:‬‬
‫)‪Borland Enterprise Server (BES‬‬ ‫‪‬‬
JacORB 

ORBacus 

The Community OpenORB 

:‫ تقريبا على كل أنظمة التشغيل مثل‬OpenCCM ‫كما ويعمل‬


Linux 

Linux Familiar 

MacOS X 

Solaris 

Windows NT/2000/XP 

Windows NT/2000/XP with CYGWIN 

Windows CE for Personal Data Assistants (PDA) 

.‫ المعروفة‬CCM ‫ قيد التطوير حيث أنه ال يتمتع بجميع ميزات‬OpenCCM ‫وال زال‬

‫معماريات حديثة في االنظمة الموزعة‬


‫معمارية الند ب الند‬ ‫‪‬‬
‫وتقوم فكرة نظام الند للند‪ Peer-to-Peer ‬على مبدأ تجميع مجموعة من‬
‫الحواسيب المتصلة فيما بينها بواسطة شبكة‬
‫‪ Network ‬بحيث يعمل كل حاسب من هذه الحواسيب كمزود للحواسيب‬
‫البقية وتزويدهم بالبيانات التي يحتاجونها‪ ،‬وفي نفس الوقت يعمل هذا‬
‫الحاسب كزبون عند طلب بيانات من الحواسيب البقية‪ ‬‬

‫معمارية التوجيه بالخدمه‪ Service Oriented Architecture‬‬ ‫‪‬‬


‫اغلب األنظمة الحديثة تتبع ما يسمى ‪ SOA‬أو ‪Service oriented‬‬
‫‪ architechture‬وهي معمارية تصميم تطبيقات تتلخص في اعتماد‬
‫أجزاء البرنامج كخدمات بدال من أن تكون في شكل دوال ‪ ،‬أي أن النظام‬
‫المتكامل يتكون من خدمات انترنت ‪ web services‬تقوم بحساب وأداء‬
‫األعمال المطلوبة منها ومن ثم تسليم النظام النتائج‪ ،‬مثال‪ ،‬تخيل معي نظام‬
‫حسابات في مؤسسة لها أفرع كثيرة‪ ،‬برنامج كل قسم حسابات في كل‬
‫فرع يقوم بإعداد تقرير الحسابات النهائي في الفرع‪ ،‬ومن ثم يسلمه إلى‬
‫الرئاسة التي طلبته عبر نداء دالة ال‪ web service‬الخاصة بالفرع‪،‬‬
‫لتقوم حسابات الرئاسة بإعداد التقرير النهائي لحسابات لكن يبقى األهم هو‬
‫ضمان سرية البيانات المنقولة عبر ال‪ ، web service‬وضمان أن من‬
‫سيستخدم ال‪ web service‬مصرح له باالستخدام‪.‬‬
‫تعتبر معمارية ‪ SOA‬مجموعة من مبادئ التصميم المرن‪‰‬ه ال‪‰‬تي تس‪‰‬تخدم‬
‫في مرحل‪‰‰‰‬ة تط‪‰‰‰‰‬وير البرمجي‪‰‰‰‬ات‬
‫وتكامله‪‰‰‬ا ‪,‬البرمجي‪‰‰‬ات ال‪‰‰‬تي تعتم‪‰‰‬د‬
‫على ه‪‰‰‬ذه المعماري‪‰‰‬ة تقس‪‰‰‬م وظيفي‪‰‰‬ا‬
‫بحيث تكون كل وظيفة قابل‪‰‰‬ة للنق‪‰‰‬ل‬
‫وممكن اس‪‰‰‬تخدامها من قب‪‰‰‬ل انظم‪‰‰‬ة‬
‫اخرى يبين الشكل‬
‫ال‪‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‬ذي في اليمين‪Layer‬‬
‫‪interaction in service-‬‬
‫‪oriented Architecture‬‬

‫متطلبات معمارية خدمات الويب‬

‫لكي تتمكن من استخدام خدمات الويب بكفاءة‪ ،‬يجب أن تلبي معماريتها‬


‫المتطلبات التالية‬
‫‪ *     ‬التشغيل المتبادل بين الأنظمة المختلفة ولغات البرمجة التي توفر األساس‬
‫للتكامل بين التطبيقات على منصات عمل مختلفة من خالل بروتوكول االتصال‪.‬‬

‫‪ *     ‬الرغبة في إنشاء اتحاد للموارد‬

‫بنية خدمة الويب تتطلب ثالث عمليات أساسية هي‪: ‬‬


‫نشر الخدمة‬ ‫‪‬‬
‫إيجاد الخدمة‬ ‫‪‬‬
‫طلب الخدمة‬ ‫‪‬‬

‫وتعمل وف‪‰‰‬ق بروتوك‪‰‬والت قياس‪‰‬ية تتع‪‰‬اون فيم‪‰‰‬ا بينه‪‰‬ا للوص‪‰‰‬ول إلى خدم‪‰‰‬ة ‪web‬‬
‫متكاملة‬
‫اوالً‪:‬نشر الخدمة‬
‫يقوم مقدم خدمة الوب بنشر الخدمة على شبكة اإلنترنت لدى موزع خدمات الوب‬
‫(قد يكون الم‪‰‰‬وزع يق‪‰‰‬دم خ‪‰‰‬دمات وب مط‪‰‰‬ورة من قب‪‰‰‬ل ع‪‰‰‬دد من الش‪‰‰‬ركات ) ‪ ,‬إن‬
‫عملي‪‰‰‰‬ة النش‪‰‰‰‬ر تج‪‰‰‰‬ري بمس‪‰‰‰‬اعدة تقني‪‰‰‰‬ة ( ‪web services description‬‬
‫‪ WSDL ‰ )language‬يحدث فيها توصيف لخدم‪‰‰‬ة ال‪‰‰‬وب المقدم‪‰‰‬ة ‪ ,‬كآلي‪‰‰‬ة طلب‬
‫هذه الخدمة ‪ ,‬ونوع متح‪‰‰‬والت ال‪‰‰‬دخل ال‪‰‬تي تتطلبه‪‰‬ا ‪ ,‬والخ‪‰‬رج ال‪‰‬ذي ينتج عنه‪‰‰‬ا ‪,‬‬
‫الخ ‪ .‬أي إنها تعبر االتفاق الذي يحكم آلية التعامل مع خدمة ال‪‰‰‬وب ‪ ,‬تج‪‰‰‬ري كتاب‪‰‰‬ة‬
‫‪ WSDL‬باستخدام لغة ‪XML‬‬
‫ثانيا ً‪: ‬إيجاد الخدمة‬
‫عندما يحتاج أحد المستخدمين إلى خدمة معينة ‪ ,‬يق‪‰‰‬وم بعملي‪‰‰‬ة بحث عن الخ‪‰‰‬دمات‬
‫المتوفرة لدى م‪‰‰‬وزعي الخدم‪‰‰‬ة ‪ ,‬تج‪‰‰‬ري ه‪‰‰‬ذه العملي‪‰‰‬ة باس‪‰‰‬تعمال تقني‪‰‰‬ة‪UDDI : ‬‬
‫)‪ (Universal description, Discovery and integration‬ال‪‰‰‬تي تعم‪‰‰‬ل‬
‫دليالً يجري فيه تسجيل خدمات الوب ‪ ,‬والحق‪‰‬ا ً يج‪‰‰‬ري في‪‰‰‬ه البحث عنه‪‰‰‬ا ‪ .‬يح‪‰‰‬وي‬
‫كل تسجيل عمل ‪ UDDI‬المكونات الثالث التالية‪: ‬‬
‫‪ ‬الصفحات البيضاء‪Address,Contact,Know indentifiers : ‬‬
‫‪ ‬الصفحات الصفراء‪ : ‬تصنيف صناعي مستند على قياس ‪taxonomies‬‬
‫‪ ‬الصفحات الخضراء‪ : ‬معلومات تقنية حول خدمات معروضة لالستخدام‬
‫ثالثا ً‪ : ‬طلب الخدمة‬
‫هو عبارة عن وسيلة لطلب خدمة معينة فبعد إيجاد الخدمة المطلوبة يق‪‰‰‬وم طالبه‪‰‰‬ا‬
‫بطلبها من مقدم الخدمة إن عملية تبادل المعلوم‪‰‰‬ات تج‪‰‰‬ري بواس‪‰‰‬طة ال‪‰‰‬بروتوكول‬
‫)‪ SOAP (Simple object access protocol‬وهو معيار يعتمد على لغ‪‰‰‬ة‬
‫‪ XML‬ويحقق للبرامج تبادل المعطيات بفضل بروتوك‪‰‰‬ول ‪ HTTP‬وه‪‰‰‬ذا يجعل‪‰‰‬ه‬
‫يتميز بما يلي‪: ‬‬
‫‪ ‬مصمم ليعمل على شبكة اإلنترنت‬
‫‪ ‬مستقل عن نظام التشغيل‬
‫‪ ‬مستقل عن لغات البرمجة المستخدمة لتطوير التطبيقات‬
‫يقوم كالً من ‪ UUDDI , WSDL , SOAP‬بالتعاون فيما بينهم للحصول على‬
‫عمل متكامل وقياسي (‪ ) Web services stander‬وفقا ً لمل يلي‪: ‬‬
‫‪ ‬تحديد لغة التخاطب ‪ WSDL‬بين التطبيقات التي تريد التواص‪‰‰‬ل م‪‰‰‬ع بعض‪‰‰‬ها‬
‫وينشأ ما يدعى بيئة الخدمة ‪ services interfaces‬ولغة التخ‪‰‰‬اطب القياس‪‰‰‬ية‬
‫هي لغة ‪ , XML‬إن عملية النشر للخدمات تجري بمس‪‰‰‬اعدة تقني‪‰‰‬ة ‪WSDL .‬‬
‫)‪(Web services Description language‬‬
‫‪ ‬الخط‪‰‰‰‬وة التالي‪‰‰‰‬ة هي اس‪‰‰‰‬تخدام ‪UDDI (Universal description ,‬‬
‫) ‪ Discovery , and integration‬لتسجيل توصيف الخدمة المقدمة من‬
‫قب‪‰‰‬ل م‪‰‰‬زود خ‪‰‰‬دمات التطبيق‪‰‰‬ات وذل‪‰‰‬ك باس‪‰‰‬تخدام ‪Register , look – up‬‬
‫‪protocol‬‬
‫‪ ‬أما اآلن فيتم تفعيل التخاطب بين التطبيق‪‰‰‬ات وذل‪‰‰‬ك بتمكين التط‪‰‰‬بيق الزب‪‰‰‬ون (‬
‫‪ ) Requester Application‬من استخدام (‪ ) Object‬المعروضة من قبل‬
‫التط‪‰‰‬بيق الم‪‰‰‬زود للخدم‪‰‰‬ة (‪ ) Provider Application‬وذل‪‰‰‬ك باس‪‰‰‬تخدام‬
‫) ‪ SOAP (Simple Object Access Protocol‬ويب‪‰‬دا التخ‪‰‬اطب عن‬
‫طريق تمرير (‪ ) object‬فيما بينهما‪.‬‬
‫الفصل الثالث‬

‫الحوسبة السحابية‬

‫الحوسبة السحابية‪Cloud Computing:‬‬


‫هي تكنولوجيا تعتمد على نقل‪ ‬المعالجة ومساحة التخزين الخاصة‪ ‬بالحاسوب‪ ‬إلى‬
‫ما يسمى السحابة وهي جهاز‪ ‬خادم‪ ‬يتم الوصول اليه عن طريق‪ ‬االنترنت‪ .‬بهذا‬
‫تتحول برامج‪ ‬تكنولوجيا المعلومات‪ ‬من‪ ‬منتجات‪ ‬إلى‪ ‬خدمات‪ .‬من أهم فوائد هذه‬
‫التكنولوجيا هي إبعاد مشاكل صيانة وتطوير برامج تقنية المعلومات عن‬
‫الشركات المستخدمة لها وبالتالي يتركز مجهود الجهات المستفيدة على استخدام‬
‫هذه الخدمات فقط‪.‬‬
‫تعتمد البنية التحتية للحوسبة السحابية على‪ ‬مراكز البيانات‪ ‬المتطورة ولتي تقدم‬
‫مساحات تخزين كبيرة للمستخدمين كما أنها توفر بعض البرامج كخدمات‬
‫للمستخدمين‪ .‬وهي تعتمد في ذلك على اإلمكانيات التي وفرتها تقنيات‪ ‬ويب ‪.2.0‬‬
‫مع تطور التقنيات المتاحة من خالل شبكة الويب بظهور الويب ‪ 2,0‬والويب ‪3,0‬‬
‫والزيادة المطردة في سرعات االنترنت المتاحة للمستخدمين اتجهت العديد من‬
‫المؤسسات إلي إتاحة تطبيقاتها لالستخدام من خالل شبكة االنترنت باستخدام‬
‫الحوسبة السحابية‪ ،‬حيث أتاحت هذه التقنية لمستخدميها مميزات أفضل مثل‬
‫توفير النفقات أو إتاحة خدمات لقطاع اكبر من المستفيدين‪ .‬ولم تكن المكتبات في‬
‫منأى عن االستفادة من تلك التقنيات فاتجهت بعض المكتبات إلي االشتراك في‬
‫مشاريع الحوسبة التي أتيحت من خالل بعض المؤسسات التي تخصص خدماتها‬
‫للمكتبات مثل مشروع ‪. Dura Cloud‬‬

‫تاريخ‬

‫السحابة هو تعبير كان يستخدم في البداية لإلشارة إلى اإلنترنت وذلك في‬
‫مخططات الشبكات‪ .‬وجاءت فكرة البرامج كخدمات في الستينيات من القرن‬
‫العشرين حيث ان‪ ‬جون مكارثي‪ ‬قد عبر عن الفكرة بقول "قد تنظم الحوسبة لكي‬
‫تصبح خدمة عامة في يوم من األيام"‪ .‬الحوسبة السحابية (‪cloud‬‬
‫‪ )computing‬هي أحد اساليب الحوسبة‪ ،‬يتم فيها تقديم الموارد الحاسوبية‬
‫كخدمات‪ ،‬ويتاح للمستخدمين الوصول إليها عبر شبكة اإلنترنت (”السحابة“)‪،‬‬
‫دون الحاجة إلى امتالك المعرفة‪ ،‬الخبرة‪ ،‬أو حتى التحكم بالبنى التحتية التي‬
‫تدعم هذه الخدمات‪ .‬يمكن النظر إلى الحوسبة السحابية على أنها مفهوم عام‬
‫يشمل البرمجيات كخدمة (‪ ،)Software as a Service‬الويب ‪ ،2.0‬وغيرها‬
‫من التوجهات الحديثة في عالم التقنية التي تشترك في فكرة االعتماد على شبكة‬
‫اإلنترنت لتلبية االحتياجات الحوسبية للمستخدمين‪.‬‬

‫نشرت مجلة ‪ Technology Review‬مؤخرا مقاال يتحدث عن أدوات الحوسبة‬


‫السحابية مفتوحة المصدر‪ .‬سنستعرض في هذه البحث الحاجة إلى مثل هذه‬
‫األدوات‪ ،‬ومالذي بإمكانها تقديمه‪.‬الحاجة إلى أدوات حوسبة سحابية مفتوحة‬
‫المصدر‬

‫منصات الحوسبة السحابية التجارية مثل‪Amazon EC2، Microsoft ‬‬


‫‪ ،Azure Services Platform‬و‪ Google App Engine‬تعطي العديد من‬
‫الشركات مرونة الوصول إلى الموارد الحاسوبية الالزمة‪ ،‬وتساهم في تقليل‬
‫تكاليف البنية التحتية للشركات الناشئة‪ ،‬لكن االعتماد عليها ال يخلو من الشوائب‪.‬‬
‫فكثير من المستخدمين يثيرون مواضيع مثل الخصوصية‪ ،‬األمن‪ ،‬والموثوقية‬
‫عندما يدور الحديث عن “السحابة“‪ .‬لذلك‪ ،‬هناك اهتمام متزايد بأدوات الحوسبة‬
‫السحابية مفتوحة المصدر‪ ،‬التي تمكن الشركات من بناء وتخصيص “ ُسحُبهم”‬
‫الحوسبية لتعمل بجانب الحلول التجارية األقوى‪.‬‬

‫فوائد الحوسبة السحابية‬


‫* تُمكن المستخدم من الدخول على ملفاته وتطبيقاته من خالل هذه السحابة دون‬
‫الحاجة لتوفر التطبيق في جهاز المستخدم ‪ ,‬بالتالي تقل المخاطر األمنية وموارد‬
‫العتاد المطلوبة وغيرها ‪ .‬ومنها االستفادة من الخوادم الضخمة جداً في إجراء‬
‫عمليات معقدة قد تتطلب أجهزة بمواصفات عاليه ‪.‬‬
‫* توفر الكثير من المال الالزم لشراء البرمجيات التي يحتاجها المستخدم فكل ما‬
‫يحتاجه هو جهاز حاسب متصل بخط انترنت سريع وأن يكون متصل بأحد‬
‫المواقع التي تقدم البرمجيات التي يحتاجها ‪.‬‬

‫* سهولة الوصول إلي التطبيقات المتاحة من خالل تلك التقنية من خالل أي‬
‫حاسب متصل بشبكة االنترنت ‪.‬‬

‫* توفير عدد العاملين في علي صيانة النظام والبرمجيات ‪.‬‬

‫الشركات المقدمة للخدمة‬


‫من أمثلة الشركات المقدمة للخدمة‪ : ‬جوجل‪ ،‬مايكروسوفت‪ ,‬صن‪ ،‬أمازون‪.‬‬
‫الحوسبة السحابية في تطور مستمر‪ ،‬فمعظم الشركات تحاول جاهدة لتقديم خدمة‬
‫افضل‬

‫عيوب الحوسبة السحابية‬


‫*تعد مشكلة توافر االنترنت هي أحد المشاكل الرئيسية خصوصا ً في‬
‫الدول النامية حيث تتطلب الخدمة توفر االتصال بشبكة اإلنترنت بشكل‬
‫دائم أثناء استخدام تلك الخدمة ‪.‬‬

‫* تعد مشكلة حماية حقوق الملكية الفكرية أحد المشاكل التي تثير‬
‫مخاوف مستخدمي تلك الخدمات‪ ،‬فال يوجد ضمانات بعدم انتهاك حقوق‬
‫الملكية الفكرية للمستخدمين‬

‫* أيضا مشكلة أمن وخصوصية المعلومات‪ ،‬فبعض المستخدمين‬


‫يتخوفون من احتمالية اطالع أفراد آخرين على معلوماتهم ‪.‬‬

‫لم تعد هناك شركة بفروعها اال ومتص‪‰‬لة ب‪‰‰‬األنترنت لتص‪‰‰‬بح ش‪‰‬بكة االن‪‰‰‬ترنت هي‬
‫الوسيط ال‪‰‰‬ذي يربطه‪‰‰‬ا جميع‪‰‰‬ا م‪‰‰‬ع نفس‪‰‰‬ها وم‪‰‰‬ع االخ‪‰‰‬رين ‪،‬ومن هن‪‰‰‬ا ج‪‰‰‬اءت فك‪‰‰‬رة‬
‫اس‪‰‰‬تغالل ه‪‰‰‬ذا الوس‪‰‰‬يط لتوف‪‰‰‬ير خ‪‰‰‬دمات مختلف‪‰‰‬ة للش‪‰‰‬ركات بفروعه‪‰‰‬ا المختلف‪‰‰‬ة‬
‫والموزعة على مستوى العالم وبالتالي مساعدة الشركات على توفير مب‪‰‰‬الغ مالي‪‰‰‬ه‬
‫ض‪‰‰‬خمه ك‪‰‰‬ان س‪‰‰‬يتم ص‪‰‰‬رفها لتوف‪‰‰‬ير تل‪‰‰‬ك الخ‪‰‰‬دمات داخلي‪‰‰‬ا بالش‪‰‰‬ركه‪  ‬فمثال ك‪‰‰‬انت‬
‫الشركة ستصرف هذه المب‪‰‰‬الغ على ش‪‰‰‬راء مع‪‰‰‬دات وبرمجي‪‰‰‬ات وتوف‪‰‰‬ير ط‪‰‰‬اقم من‬
‫المهندسين والمحترفين لص‪‰‬يانتها و ادارته‪‰‬ا ب‪‰‬ل و ح‪‰‬تى دف‪‰‬ع فوات‪‰‬ير التش‪‰‬غيل من‬
‫كهرباء و الخ‪ .  ‬مما كان يزيد التكلفة اإلجمالية المتالك تقنيه ما ‪total cost of‬‬
‫‪. *ownership TCO‬‬
‫اذن الحوس‪‰‰‬بة الس‪‰‰‬حابية هي توف‪‰‰‬ير خ‪‰‰‬دمات مختلف‪‰‰‬ة و متع‪‰‰‬ددة للش‪‰‰‬ركات ع‪‰‰‬بر‬
‫االنترنت و يكون الدفع حسب الطلب وحسب الخدمة المقدمة من م‪‰‰‬وفر الخ‪‰‰‬دمات‬
‫هذه و الذي نسميه موفر الخدم‪‰‰‬ة الس‪‰‰‬حابية ‪  Cloud Service Provider‬مم‪‰‰‬ا‬
‫يعج‪‰‰‰‬ل في ‪  **ROI return on investments‬ويس‪‰‰‰‬اهم بش‪‰‰‰‬كل كب‪‰‰‰‬ير‬
‫كح‪‰‰‬ل‪ ‬من‪ ‬حل‪‰‰‬ول‪ ‬معالج‪‰‰‬ة‪ ‬االزم‪‰‰‬ه االقتص‪‰‰‬ادية العالمي‪‰‰‬ة‪ .‬تت‪‰‰‬وفر ال ‪  cloud‬في ‪3‬‬
‫اشكال هي ‪.Private,Public,Hybrid‬‬

‫ال ‪ Cloud‬نفسها ما هي اال مجموعة‪Hardware , Networks , Storage  ‬‬


‫‪ Units , Services , Software‬يمكن توفيرها للعمالء من شركات مختلف‪‰‰‬ة‬
‫التخصص عبر‪ ‬االنترنت‪  ‬و كل ه‪‰‰‬ذا باإلض‪‰‰‬افة لم‪‰‰‬ا ت‪‰‰‬وفره الغيم‪‰‰‬ة من ق‪‰‰‬درة على‬
‫التوسع ‪ Scability‬حسب رغبة العمي‪‰‰‬ل في اي وقت و مرون‪‰‰‬ة ‪ Flexibility‬في‬
‫االداء‪.‬‬
‫نوعية الخدمات التي يوفرها مقدّم الخدمة السحابية‬
‫وجد ‪ 3‬انواع رئيسيه من الخدمات يمكن توفيرها من قبل موفر الخدمة السحابية‬
‫للعمالء ( ‪   )cloud services delivery models‬او ‪: XaaS‬‬
‫‪Infrastructure as a Service IaaS .1‬‬
‫‪Platform as a Service PaaS .2‬‬
‫‪Software as a Service SaaS .3‬‬

‫االن دعونا نتعرف بشكل بسيط على كل نوع ‪:‬‬


‫‪ IaaS‬هي توفير تقنيات ش‪‰‰‬بكيه وعت‪‰‰‬اد و مراك‪‰‰‬ز بيان‪‰‰‬ات للعمالء و يتض‪‰‰‬من ه‪‰‰‬ذا‬
‫استخدام تقنيه ال ‪  Virtualization‬وتوفير نظم تشغيل يمكن الدخول اليه‪‰‰‬ا ع‪‰‰‬بر‬
‫االنترنت و يعتبر ‪ AMAZON EC2‬من موقع ام‪‰‰‬ازون نم‪‰‰‬وذج له‪‰‰‬ذا الن‪‰‰‬وع و‬
‫الذي يوفر حتى نظم تشغيل افتراض‪‰‰‬يه و خ‪‰‰‬دمات اخ‪‰‰‬رى عدي‪‰‰‬ده و ك‪‰‰‬ذلك نم‪‰‰‬وذج‬
‫اخر هو شركات ايج‪‰‰‬ار الروت‪‰‰‬رات والسويتش‪‰‰‬ات لدراس‪‰‰‬ي ال ‪ CCIE‬مم‪‰‰‬ا يخل‪‰‰‬ق‬
‫مصطلح الحوسبة عند الطلب او ‪.  On Demand Computing‬‬
‫‪ PaaS‬وهي توف‪‰‰‬ير ك‪‰‰‬ل م‪‰‰‬ا يحتاج‪‰‰‬ه المط‪‰‰‬وريين لبن‪‰‰‬اء تطبيق‪‰‰‬ات و برمجي‪‰‰‬ات و‬
‫خاص‪‰‰‬ة ‪  Web Based Applications‬من خالل توف‪‰‰‬ير أدوات تطويري‪‰‰‬ه في‬
‫بيئة قياسيه ‪. standard‬‬
‫‪ SaaS‬و في ه‪‰‰‰‰‬ذا الن‪‰‰‰‰‬وع نس‪‰‰‰‰‬مي م‪‰‰‰‰‬وفر الخدم‪‰‰‰‰‬ة الس‪‰‰‰‰‬حابية ب ‪ ASP‬او‬
‫‪ Application Service Provider‬ويتم فيها توفير برمجيات أدارة عالق‪‰‰‬ات‬
‫العمالء ‪ CRM‬على س‪‰‰‰‬بيل المث‪‰‰‰‬ال و يمكن اعتب‪‰‰‰‬ار موق‪‰‰‰‬ع ‪salesforce.com‬‬
‫نموذج لهذا النوع و مثال عليه‪  ‬و في الحقيقة يوجد نماذج اخرى عديده تعرفونه‪‰‰‬ا‬
‫جيدا مثل ‪  facebook , ebay , skype‬فمثال الفيس بوك يوفر شبكه اجتماعيه‬
‫للموظفين في شركه بدال من استخدام برنامج خاص على الشبكة الداخلية ليتب‪‰‰‬ادلو‬
‫اآلراء في امور العمل او تبادل ملف‪‰‬ات العم‪‰‬ل الهام‪‰‬ه عموم‪‰‬ا في ه‪‰‬ذا الن‪‰‬وع نج‪‰‬د‬
‫حض‪‰‰‬ور ه‪‰‰‬ام لتقني‪‰‰‬ات الت‪‰‰‬أمين و اهتم‪‰‰‬ام من ال ‪ ASP‬بتوفيره‪‰‰‬ا ب‪‰‰‬داخل خ‪‰‰‬دماتهم‬
‫لحماية بيانات العمالء عبر ال ‪  VPN‬وغيرها‬
‫تم اس‪‰‰‬تحداث ان‪‰‰‬واع اخ‪‰‰‬رى للحوس‪‰‰‬بة الس‪‰‰‬حابية و منه‪‰‰‬ا على س‪‰‰‬بيل المث‪‰‰‬ال وليس‬
‫الحصر ‪:‬‬

‫‪Communication as a service CaaS‬‬

‫وفيها يطلب العمي‪‰‰‬ل من م‪‰‰‬وفري الخدم‪‰‰‬ة بتعهي‪‰‰‬د ‪ Outsourcing‬حل‪‰‰‬ول خ‪‰‰‬دمات‬


‫اتص‪‰‰‬االت ‪ ,‬فمثال توف‪‰‰‬ير خ‪‰‰‬دمات ‪ VOIP  ,real time presence‬و خ‪‰‰‬دمات‬
‫المؤتمرات الفيديوي‪‰‰‬ه و على م‪‰‰‬وفري الخدم‪‰‰‬ة الس‪‰‰‬حابية من ه‪‰‰‬ذا الن‪‰‰‬وع‪   ‬بض‪‰‰‬مان‬
‫توفير جودة خدمه تطابق مع ال ‪ QoS‬الم‪‰‰‬ذكورة في أتفاقي‪‰‰‬ة مس‪‰‰‬توى الخدم‪‰‰‬ه بين‬
‫الموفر و العميل ‪ service level agreements   SLA‬وضمان ادارتها بشكل‬
‫مستقل عن قسم ال ‪ IT‬لدى العميل ‪  .‬يمكن اعتبار‪  ‬نموذج على هذا الن‪‰‰‬وع حل‪‰‰‬ول‬
‫‪ WEBEX‬من شركة سيسكو ‪.‬‬
‫‪Monitoring as a Service MaaS‬‬
‫توفير خدمات مراقبه وحماية البيانات تتماشى مع يريده العميل والعميل بدوره قد‬
‫يحتاج هذه الخدمات بناء على متطلبات حكومية لنوعية الشركات التي يمثلها هذا‬
‫العميل و يقوم موفر الخدمة هنا بتوفير باقات مختلفة للشركات منها توفير‬
‫االكتشاف المبكر لنقاط الضعف ‪  Vulnerabilities‬لدى العميل ونظم تشغيله ‪ .‬‬
‫اخيرا مجرد وجود صفحه للشركة (العميل) لدى موقع الفيس بوك هو تطبيق‬
‫ونموذج للحوسبة السحابية في أبسط صورها وساعدت‪  ‬الحوسبة السحابية على‬
‫التعجيل في الوصول لحل لألزمة االقتصادية العالمية من خالل توفير مبالغ ماليه‬
‫ضخمه كبيره على الشركات و في نفس الوقت توفير فرص عمل و دخل أكبر‬
‫لشركات ال ‪ IT‬الموفرة للخدمات السابقة الذكر ‪،‬وخالل الفترة القادمة سيظهر‪ ‬‬
‫جيل جديد من مواقع االنترنت نسميه الجيل الثالث او ‪ WEB 3.0‬وستكون‬
‫مواقع تفاعليه وخدميه اكثر تطورا وسترتبط بالحوسبة السحابية‪  ‬بشكل كبير مما‬
‫قد يغير من مفهومنا لشبكة االنترنت ‪.‬‬

‫‪ ‬‬

You might also like