تمهيد
ظهرت الحاجة إلى التواصل بين المهام( 0800855©5) مع ظهور أنظمة التشغيل الحديئة. حيبت ظهرمفهوم التواصل بين المهام
176 («متهعة 001100 © 85ع00167-2100. أحد وسائل التواصل دين المهام هو 171 5001008 وهي التقنية الي سنتكلم
ستياً يشرح بض المقاهيم الأساسية, ومن ثم منتتفل إلى طريقة تحقيقها لاحقاً باخام وجول 0#.
أنواع التطبيقات
- تطبيقات شخصية (]0681010) . و هي التطبيقات التي تعمل على نفس الحاسب.
البرامج الوسيطة ع:111001078
للاتصال و التخاطب لأجزاء النظام التي تعمل على هذه الآلات,كما أنه يخفي تفاصيل لمعا «علاتا .. ...00
الاتصال عبر الشبكة عن التطبيق الموزع. لمعيب سجاه
ظهرت الحاجة للبرامج الوسيطة بشكل رئسي في عام 1980 كمل لمفكظةريز اانه
بالإضافة إلى ذلك فإن البرنامج الوسيط هو مميار للتخاطب بين التطبيقات وله فسا ] | فسا | | مب
خصائص معينة. وهي في الحقيقة متطلبات غير وظيفية مثل الأمن ودعم الوبب ودعم
المتافلات والثبات وغيرها من الخصائص الضرورية في أي برنامج وسبط.
كما ذكرنا سانقاً. ظهرت الحاجة للتواصل بين المهام مع ظهور أنظمة التشغيل . في البداية كان التواصل بين المهام المحلية
بين مهمئين نعملان على حاسبين موصولين عن طريق الشبكة. وهكذا كانت 51 :50018 أول برنامج وسبط
ملاحظات متفرقة
علدةٌ يكون كل تطبيق يتلف من ]1 85ع800©. وكل 5هع2000 تتألف من 15 71:88
- المهمة (2000885) :هو برنامج فيد التنفيذ
- النسب (111:880) : هو عبارة عن مسلك برمجي مستقل في المكدس . ويشترك في ال 11880 مع غيره من ال
1100 ص5 انكل
مفهوح ال 11601/58:168© هو مفهوم برمجي مستخدم في هننسة البرمجيات. أي أن 011601 و 581116 هما تطبيفان.
الذي يطلب هو الزدون (11601© ) والذي يتلقى الطلبات ويقم الخدمة يسمى مُختّم (560160).
لتحقيق الإتصال بين هذين البرنامجين ( ©011601/5876) سوف تستخدم بنبة برمجية معزوفة ومتوفزة في معظم لغات
البرمجة_وهي المكتبة 5001681
في الحقيقة يوجد عد تعاريف لل 5001081 وستذكر أهمها
1- 5001086 : هي عبارة عن بنية برمجية ميثية فوق (1010/1, وهي تسميم لمفهوم ال 5188800 (يمكن إعتبارها
:ة508 على الشبكة لتقريب المعنى ) وتتعامل 8001:81 بشكل أساسي مع بروتوكولات طبقة النل (وتحديداً , 767
70 ) سنتكلم عن 70 فقط بالإضافة إلى أنها موجودة بشكل معباري في جميع الأنظمة تقريداً
2- تعريف آخر ل 500081 هو عبارة عن
1 هو عنوان التطبيق المرسل أو المستقل
7 هو عنوان الحاسب المنطقي وهو عنوان فريد عنروتمن.
* أولاً يتم تشغيل المخدم. المخدم ينتظر طلب إتصال من الزبون. وعند قيام الزبون بطلب الإتصال بالمخدم. يستغل
المخدم طلب الزبون حيت تثم الموافقة. ثم يتم أرسال وإستبال المعطيات يبن الطرفين وفق بروتوكول معين (يضعه
* الإتصال بين المخدم والزبون يتم عن طريق البروتوكول 17010,1101 كما يمكن استخدام بروتوكول الانترنت الشهير
2 المكثية 508081 عايزة للمنصات( 018150110 0:088) , إي أنها تحمل على جميع نظم التشغيل و تستعمل في معظم
لغات البرمجة. والتحامل معها يكون في مستوى منخفض قريب من نظام التشغيل,
3 060160 60060100 وذ 10 أي يقيم رابطة ويتحفق من سائمة وصول الطرود. لذلك هو بطيء نوعاً ما
ويستخدم في تطبيقات تفل الملفات :58:18 1711. وهو لايدعم الإرسال إلى عدة مستخدمين (عه ع 0تاكة 1101118
+ فوع001تا0006© ا 1009 : أي لا بقيم رابطة ولا يتحفق من سلثمة وصول الطرود. لذلك هو أسرع من 76
ويستخدم غالبا في نط الفيديو الحي والمباشر ( يع0056:0210© 1/1080) كما أنه غير مونوق
ستقوم في هذا المثال البسيط بيناء تطبيق مخدم/زبون بسبط يُسمى 56088 15600, حيت يفوم باستلام رسالة الزبون ومن نم
عكين محارفها قبل إرسلها له. سنيداً بتطبيق المخدم. ثم ننتفل للزبون
مف مدعا
عمفتك عاتم
المكامثل امك
(6) 51014 يهم - د 5150116
بعلا /ز () 11050 .«ط
الاح ل
)عن اعكمم
تطبيق الزبون في الكود التالي
) +اعتك_مء_12002 عمل تلم
()لعتتعمية فخصا عثاماء عتتظم
( نط0 3) كا مع طمع 6ك خا00 نعه) كعك ى) اباط مدعنا معطا ت01اظ
)عدم وكام كل
وه ممتافف:106) على
تتعمية
شرح لآلية عمل البرنامجين
في البداية بقوم المخدّم بفئح إتصال على 0014 معين ثم ينتظر طلب الزبون وذلك عن طريق التعطيمة:
88001400 عند ذلك يقوم الزبون بإرسال سلسلة نصية معيئة ثم يقوم المخدم بقراءتها وطباعنها على الشاشة؛ ومن ثم بقوم
ببكسها وإرسالها إلى الزبون. (في هذه الحالة بكون الزبون في وضع إنتظار لرسالة المخدم والتي تحوي الملسلة الممكوسة»
وذلك عن طريق التابع 88011060 عند الزبون). ثم بقوم الزبون بقراءتها وطباعتها على الشاشة. ثم يحرر كا البرنامجين
جميع الموارد (مثل المجاري المفنوحة 517807 و 5001:81)
نلاحظ أن هذا التطبيق هوتطبيق بسبط يتل المخدم طلب واحد من زبون واحد ويخدمه ففطء ولكن ماذا إذا أراد المخدم أن يقدم
خدمائه لأكثر من زبون بنقين الوقت. ماذا نفعل؟
في الحقيقة إن برنامج الزبون في هذه الحالة لابتغير. ولكن برنامج المخدم هو الذي بتغير تغيراً حذرياً
ما هي أنواع التطبيقات التي يمكن إنشاؤها عن طريق ع50066
1- تطبيق 5888 26870 : وهو برنامج موجود على حاسبين مختلفين وكل تطبيق منهم هو بمتابة مخدم وزبون في آن
واحد
تطبيق 66166 اهفل
- بمكن أن برسل الزبون إلى المخدم ملفات أو رسائل نصية. ويستفلها المخدم ثم بخزنها في الحاسب لديه. ثم يقوم الزيون
مخدمات الويب. لذلك في بعض التطبيقات التي تحتاج لإن بتصل الزبون مع المخدم لفترة معينة نقوم بإنشاء
جلسة (100ي8ة5) بين الزبون والمخدم تثتهي هذه الجلسة برغبة الزبون عند الضغط على زر 0156000801 مثا
- لكن إذا إتصل أكثر من زنون مع المخدم في نفن الوفت ماذا يفعل المخدم حينها؟
* يوجد تلائة أوضاع (1008 يمكن للمخدم أن يحمل بها لكي بتحامل مع عدد كبير من طلبات الزبائن في نفس الوقت
1- 11006 (2101 597016010112 : وتسمى وضع النزامن أو تسمى 11008 131001008 وبعني أن المخدم يفوم
بإتشاء تسب (1:880) خاص لكل زبون يتصل به. أي أن المخدم يستطيع أن يقدم خدمائه لكل الزبائن المتصلين به في
الزمن الحقيفي ( 11018 0868
لمعا
سهلة نوعاما (مفارنة بوضع عدم النزامن) ٠
جميع الطلبات يتم معالجتها بالزمن الحقيقي. لا يوجد تيز ©
« .مساوئ هذه الطريقة
مكلفة جداً من حيث إستهلاك موارد المخدم. حيث أن كل 7118880 بستهللك وفت وزمن من المعالج
وبأخذ ذاكرة إيضاً وكما نعلم الموارد محدودة.
» إفلاع النبسب يأخد وقت طويل نسبياً.
٠ يمكن لهذا المخدم أن يتحرض لهجمة. لذلك بض المواقع تطلب إدخال حروف وأرقام من صورة»
وذلك للتاكد أن من من بقوم بسملية التسجيل هو إنسان وليس بزنامج يفوم بالهجوم على المخدم!
يمكن إستخدام هذه الطريقة في بعض الحالات التي نضمن فيها عدد محدد للزبائن المتصلين. كما بجب أن نضمن عدم نحعرض
المخدم لهجمة معيئة.
2 حوض النياسب 17001 1117680 : نقوم بحجز مجموعة من التباسب التي تعمل بشكل دائم
إلا تموت أبداً). لتخديم عدد معين من الزبائن والبقية ننتظر لزمن معين (ُغنرض أن بكون مضول)
تخصص هذه الطريفة (100 1117880) جزء من موازد الحاسب لبتم إعادة استخدامها
- حجم هذا الحوض فد يكون ثانت أو متغير إلى حد مين
تقوم مخدمات الويب (560068 18/805) ومخدمات فواعد المعطيات (56:0716:8 13856 0810 باستخدام حوض من
وضعية التزامن
3- ع1100 («0ا 530600١128 للد : وضع اللا تزامن ويسمى 11606 110010661610 لتوضيح المعتى ستشرح
المثال التلي
لنفرض أنه لدينا تطبيق 50088 يتنصت على 10:2 محددة ليستقل المعطبات منهاء ولنمبز بين وضعي
النزامن وعدم التزامن
1- في وضع التزامن أو 1/008 ع3160160 : لا يستطيع المخدم أن يقوم بأي شيء حتى ينتهي من عملية إستقبال المعطبات»
وعد إتصال زبون أخر لا يستطيع المخدم أن بقل الإتصال منه لإنه محجوز من قبل أول زدونل 031001080
2- في وضع عدم التزامن 11008 ع 13106610 10008: في هذه الحالة يستطيع المخدم عند إستقبل المعطيات أو التنصت على
1 معينة أن يقوح بمعالجة طلبات أكثر من زبون في تفن الوقت. والخلاصة
. في وضحية عدم التزامن يستطيع المخدم معالجة عدة طلبات من عدة زبائن في نفس الوقت من دون إستخدام 78880
بشكل صريح وذلك عن طريق توابع خاصنة موجودة في شبكة 5001081 تبداً ب 36810 وننتهي ب 1500
مثال
العملية تشبه تماماً عملية الإرسال على المسرى الغير المتزامن حيث نحتاج إلى إشارات (18600 -- 138810 و
إن هذه الطريقة من أفضل الطرق من حيت الإداء وتوفير الموارد. ولكنها الأصعب من حيت البرمجة
نستطيع تخديم أكثر من زنون على 1118880 واحدة بنفسن الوفت.
بق إن التوابع الخاصة بوضع اللاتزامن تستعمل 7118880108 في مستوى نظام التشعيل
أي الطرق نختار ؟
في الحقيقة إن الموضوع تسبي (حسب واقم العمل الذي يعمل به التطبيق) مثلاً : إذا قام كل زبون بإرسال رسالة أو ملف ممين
إلى المخدم. ثم قلم بإعلاق الإتصال عندئدٍ تكون طريقة 2001 71:8880 ممتازة جداً. ولكن إذا كان كل زبون يقيم جلسة مع
المخدم ولا تلم متى سينهي الإتصال, في هذه الحالة لا تعلم ما هو مار التأخبر للزبائن في رثل الإنتظار لذلك تكون هذء
الطريقة ((100 1118880 غير فعالة في هذه الحالة.
حالة دراسية مخدم ملفات يستخدم حوض نياسب(1001 11:17620)
سنقوم ببناء نظام زبون/مخدم يسمح للزدون نطلب ملف من المخدم وي حال وجوده لدبه يغوم لإرساله للزدون وفي حال عدم
كلا المخدمين بستممائن حوض نباسب له حجم تابث وفي حال ثم استخدام كامل النباسب في هذا الحوض بتمدد هذا الحوض
بمقدار محدد وبشكل ديناميكي ليقوم بتخديم الزمائن
(110ممعة ممعتمم عثعمةه علطم
تعنص مصاع
رععلة تناع
بععلة مسا
ز عت ا56) انوع 00م بهمدز 3 ]5
(() 011 150) ) علا
بد وزيز
عندما يعمل تطبيق المخدم يقوم بإنشاء حوض تيااسب_بحجم ميدتي 10 نباسب وهي فيمة المنحول 51811060008016005. في
حال وصل للمخدم 11 طب من الزدائن المتصلين في ثفن الوفت فإن أول 10 زبائن يثم تخديمهم بواسطة النياسب العشرة
والزنون رقم 11 يتم إنشاء تبسب خاص له ليثم تخديمة وذلك من احتباطي عند التياسب الإضافي والذي بمثله المتحول
قتمناء 0110010
يمكن الاطلاع على الكود الرمجي التطبيق من خلال الرابط الثالي
خطوات إنشاء تطبيق مخدم في 6#
ستوضج كيفية تحقيق إتصال بين تطبيقين أحدهما مخدم والأخر زبون باستخدام بروتوكول 767.
تمك عا وفعلا
1- :100118608 وهو صف يستخدم فقط في تطبيق المخدم (بكاشئ 58110835001681 في حاف . ويقوم بلتنصت على
قوم بالتنصت على هذه ال 00:81 ومن ثم يبدا باستقبال الطلبات.
2- ]00ل500: في الحقيقة نحن نتشئ 1861818068 على 5001081. والغرض من 70013516067 يستخدم تابع بسمى
3 تف6ن161:001:5 : رهي معو لكن على الشكية, نفس الفكرة هنا 00و116100:1:50 تخلف ال 5081:66
110000015000 ثم يتم الكثابة أوالقراءة ولكن بمستوى أعلى من المستوى السابق. أي أننا نكتب أو قرأ
كل ما بخص ال 500:81 موجود في :
اه قضاء الأسماء ع1 (0ع1فلر5
قضاء الأسماء 50621:81 .52516011761
طريقة التغليف
)11502-66015664 ماكر 50
(مضاعدكرة )عكمل اكباعمك هم لزنه 6 0501ه0 1
خطوات إنشاء تطبيق 01166
تستخدم هنا صنف اسمه 700011601 وهو بمثتل طلب زبون بقوم بالإتصال مع المخدم. وبحصل من هذا الإتصال
الإرسال والإستقبال ضمن بروتوكول محدد يثم الإنفاق عليه من قبل المرسل والمستقل (نحن فمنا ببناء هذا البوتوكول)
متععوعة . ومد عع 11ف0 .517566 وصذقيا
د مع مقط عم عقنءة عم «مدعةعتلومة فلخبط و