نوعان من النماذج
النموذج المعماري يصف موضع أجزاء النظام وعلاقاتها، أما النموذج الأساسي فيصف رسميًا القيود المشتركة التي ستواجه أي معمارية.
| البعد | Architectural Model | Fundamental Model |
|---|---|---|
| السؤال | أين توضع الأجزاء؟ وكيف ترتبط؟ | ما الخصائص والحدود المشتركة لكل المعماريات؟ |
| أمثلة | Client-Server وPeer-to-Peer. | Interaction وFailure وSecurity. |
| التركيز | بنية المكوّنات، المسؤوليات، والمواقع. | الأداء والزمن، الأعطال، والتهديدات. |
ماذا تصف المعمارية؟
معمارية النظام هي بنيته من حيث مكوّنات محددة بصورة مستقلة والعلاقات بينها. والهدف أن تلبي البنية المطالب الحالية والمستقبلية المحتملة.
Reliable · موثوقة
تبقى الخدمة صحيحة ومتاحة وفق المطلوب.
Manageable · قابلة للإدارة
يمكن تشغيلها ومراقبتها وضبطها.
Adaptable · قابلة للتكيف
تستجيب لتغير المتطلبات والبيئة.
Cost-effective · مجدية اقتصاديًا
تحقق الغرض بتكلفة مناسبة.
تُبنى النماذج حول مفهومي Process وObject. وهي تبسّط وتجرد وظائف المكوّنات، ثم تصنف العمليات إلى Server وClient وPeer. ويؤثر تقسيم المسؤوليات بين التطبيقات والخوادم والعمليات الأخرى، ووضعها على حواسيب الشبكة، تأثيرًا كبيرًا في الأداء والاعتمادية والأمن.
| القضية | النموذج | وظيفته |
|---|---|---|
| التأخير وصعوبة الحدود الزمنية | Interaction Model | يدرس الأداء والزمن. |
| انحراف العمليات والقنوات عن السلوك الصحيح | Failure Model | يحدد أنواع الفشل بدقة. |
| الهجمات على العمليات والقنوات | Security Model | يحلل التهديدات ويبني أساس مقاومتها. |
معمارية العميل والخادم
- هي المعمارية الأكثر شيوعًا للأنظمة الموزعة بحسب المحاضرة.
- يتفاعل العميل مع خادم يعمل على حاسوب مضيف منفصل للوصول إلى الموارد المشتركة التي يديرها.
- قد يكون الخادم نفسه عميلًا لخادم آخر.
- محرك البحث خادم لمتصفحات المستخدمين، لكنه يشغّل Web Crawlers تعمل عملاء لخوادم ويب أخرى.
الشكل 1 · التفاعل العام
الشكل 2 · محرك بحث بثلاث طبقات
- تستقبل واجهة المستخدم تعبير الكلمات المفتاحية Keyword expression.
- يرسله Query generator في صورة Database queries إلى قاعدة بيانات صفحات الويب.
- تعيد القاعدة عناوين الصفحات مع Meta-information إلى Ranking algorithm.
- ترسل خوارزمية الترتيب Ranked list of page titles إلى HTML generator.
- يعيد مولد HTML صفحة تحتوي القائمة إلى واجهة المستخدم.
الشكل 3 · تطبيق ويب ثلاثي الطبقات
التتابع هو: Request operation → Request data → Return data → Return result. والخادم نفسه يستخدم معمارية Client-Server. وتذكر الشريحة الطبقات الثلاث بصيغة HTTP وJ2EE وقاعدة البيانات، وأن هذا النمط شائع جدًا في تطبيقات الويب.
النظير للنظير والنظائر الفائقة
في Peer-to-Peer تؤدي العمليات أدوارًا متشابهة وتتعاون بوصفها نظراء في نشاط أو حساب موزع، بلا تمييز ثابت بين العملاء والخوادم أو الحواسيب التي تعمل عليها. المثال الوارد هو BitTorrent.
الشكل 4 · شبكة P2P
الشكل 5 · Super Peers: يتصل كل تجمع من Regular peers بنظير فائق، بينما تتصل النظائر الفائقة ببعضها في Superpeer network. إنها معمارية هجينة: تنظيم محلي حول عقد أقوى مع بقاء العمود الفقري موزعًا.
| البعد | Client-Server | Peer-to-Peer | Super Peers |
|---|---|---|---|
| الأدوار | عميل يطلب وخادم يقدم. | أدوار متشابهة لكل النظراء. | نظراء عاديون وفائقون. |
| المركزية | خدمة مركزية منطقيًا. | لا مركز ثابت. | مركزية جزئية داخل المجموعات. |
| مثال المحاضرة | محرك بحث وتطبيق ويب. | BitTorrent. | مجموعات حول Superpeers مترابطة. |
تنويعات نموذج العميل والخادم
خدمة تقدمها عدة خوادم · الشكل 6
تعمل عمليات خادم على مضيفين منفصلين وتتفاعل لتقديم خدمة واحدة للعملاء. يمكنها تقسيم مجموعة الكائنات وتوزيعها، أو حفظ نسخ متماثلة على مضيفين عدة. المثال عنقود لمحرك بحث. ويظهر الشكل عميلين يتعاملان مع حد منطقي باسم Service يضم ثلاثة خوادم تتواصل فيما بينها.
| الأسلوب | ما يحدث؟ | النتيجة |
|---|---|---|
| Partition | كل خادم يدير جزءًا من الكائنات. | توزيع السعة والعمل، مع ضرورة توجيه الطلب إلى الجزء الصحيح. |
| Replication | خوادم عدة تحفظ نسخًا. | أداء واعتمادية أعلى، مع تحدي اتساق النسخ. |
Proxy Servers and Caches · الشكل 7
Cache مخزن لكائنات استُخدمت حديثًا. يُضاف إليه الكائن الجديد وقد يستبدل كائنًا موجودًا عند الحاجة. حين يطلب العميل كائنًا:
- تفحص خدمة التخزين المؤقت Cache.
- إن وجدت نسخة حديثة Up-to-date تعيدها مباشرة.
- إن غابت النسخة أو كانت قديمة تجلب نسخة حديثة من المصدر.
- تخزن النسخة، مع استبدال عنصر عند الحاجة، ثم تقدمها.
الشكل 7 · الوكيل المشترك
Mobile Code · الشكل 8
شيفرة يمكن إرسالها من حاسوب إلى آخر وتشغيلها في الوجهة، وقد تهدد الموارد المحلية للحاسوب المستقبل. في مثال Web Applet: يؤدي طلب العميل أولًا إلى تنزيل Applet code من خادم الويب، ثم يتفاعل العميل مع الـApplet محليًا.
Mobile Agent
برنامج عامل يحمل الشيفرة والبيانات وينتقل من حاسوب إلى آخر لتنفيذ مهمة، غالبًا نيابة عن عملية أخرى. من مهامه جمع المعلومات وتثبيت البرمجيات وصيانتها على حواسيب المؤسسة. وقد يهدد موارد الأجهزة التي يزورها؛ وفي المقابل قد يفشل هو إذا رُفض وصوله إلى المعلومات التي يحتاجها.
| المفهوم | ما الذي ينتقل؟ | المثال/المهمة |
|---|---|---|
| Mobile Code | الشيفرة لتعمل عند الوجهة. | Applet يُنزّل ثم يشغّل لدى العميل. |
| Mobile Agent | برنامج عامل: شيفرة + بيانات/حالة. | جمع معلومات أو تثبيت وصيانة برمجيات. |
النماذج الأساسية ونموذج التفاعل
كل المعماريات عمليات تتصل برسائل عبر الشبكات. قد تتعاون خوادم عدة في خدمة مثل Domain Name Service، أو تتعاون عمليات نظيرة في هدف مثل المؤتمر الصوتي. العاملان الأهم هما أن أداء الاتصال غالبًا قيد، وأن مفهومًا عالميًا واحدًا للوقت مستحيل.
| الخاصية | التعريف الدقيق | الأثر |
|---|---|---|
| Latency | التأخير بين بدء إرسال الرسالة من عملية وبداية استقبالها لدى أخرى. | زمن بدء الوصول، لا كمية البيانات. |
| Bandwidth | إجمالي المعلومات التي يمكن نقلها عبر الشبكة في زمن معين. | القنوات التي تستخدم الشبكة نفسها تتشارك العرض المتاح. |
| Jitter | الاختلاف في الزمن المستغرق لتسليم سلسلة من الرسائل. | مهم للوسائط؛ تشغيل عينات صوت بفواصل مختلفة يشوه الصوت بشدة. |
ساعة كل حاسوب
- لكل حاسوب ساعة داخلية تقرأ منها عملياته الوقت الحالي.
- يمكن لعمليتين على حاسوبين مختلفين ربط Timestamps بأحداثهما.
- حتى لو قرأتا ساعتيهما في اللحظة نفسها، قد تحصلان على وقتين مختلفين.
- الساعات تنحرف عن الوقت المثالي، ومعدلات انحرافها مختلفة.
- Clock Drift Rate هو المقدار النسبي الذي تختلف به ساعة الحاسوب عن ساعة مرجعية مثالية.
- حتى لو بدأت الساعات بالقيمة نفسها، ستتباعد لاحقًا ما لم تُطبق تصحيحات.
الساعات تبدأ معًا ثم تتباعد
| الافتراض | Synchronous | Asynchronous |
|---|---|---|
| الوقت عمومًا | افتراض قوي. | لا افتراضات زمنية. |
| خطوة العملية | حد أدنى وأقصى معروفان. | قد تستغرق زمنًا اعتباطيًا؛ لا حد للسرعة. |
| الرسالة | تصل خلال زمن محدود معلوم. | قد تصل بعد زمن اعتباطي؛ لا حد للتأخير. |
| انحراف الساعة | له حد معلوم عن الزمن الحقيقي. | معدل الانحراف اعتباطي بلا حد. |
نموذج الفشل
تفشل عملية أو قناة حين تنحرف عما يعد سلوكًا صحيحًا أو مرغوبًا.
| النوع | التعريف | أمثلة الشرائح |
|---|---|---|
| Omission | عدم تنفيذ فعل كان يجب تنفيذه. | Crash لعملية أو إسقاط رسالة. |
| Arbitrary | أسوأ دلالة؛ قد يقع أي نوع خطأ. | قيمة أو رد خاطئ، رسالة فاسدة، أو تسليم رسالة أكثر من مرة. |
| Timing | مخالفة حد زمني مفروض. | تجاوز حد التنفيذ أو التسليم أو انحراف الساعة في نظام متزامن. |
فشل الإغفال ومسار الرسالة · الشكل 9
أهم إغفال للعملية هو Crash: تتوقف العملية ولن تنفذ خطوات أخرى من برنامجها. أما قناة الاتصال فتُغفل حين لا تنقل الرسالة من Outgoing message buffer لدى p إلى Incoming message buffer لدى q؛ ويسمى ذلك Dropping messages.
من send m إلى receive
إخفاء الفشل Masking
يمكن بناء خدمة موثوقة من مكوّنات تفشل: خوادم متعددة تحتفظ بنسخ فتواصل الخدمة عندما ينهار أحدها. وقد تخفي الخدمة الفشل أو تحوله إلى نوع أكثر قبولًا. المثال الدقيق: تكشف Checksum الرسالة الفاسدة فتُرفض، وبذلك يتحول فشل اعتباطي في المحتوى إلى فشل إغفال.
نموذج الأمن
يتحقق الأمن بتأمين العمليات والقنوات التي تستخدمها، وبحماية الكائنات التي تغلفها من الوصول غير المخول.
| المصطلح | التعريف |
|---|---|
| Access rights | تحدد من يُسمح له بتنفيذ عمليات على الكائن، ومن يقرأ حالته أو يكتبها. |
| Principal | السلطة/الهوية المرتبطة بكل Invocation وكل Result؛ قد تكون مستخدمًا أو عملية. الاستدعاء من Principal المستخدم والنتيجة من Principal الخادم. |
مسؤوليات الخادم · الشكل 10
- يتحقق من هوية Principal المستخدم خلف كل استدعاء.
- يتحقق من كفاية Access rights للعملية المطلوبة على الكائن المحدد.
- يرفض الطلب الذي لا يملك صاحبه الحقوق.
يظهر الشكل Client مرتبطًا بـPrincipal (user)، وInvocation تعبر Network إلى Server المرتبط بـPrincipal (server)، وفي الخادم Object وAccess rights، ثم تعود Result.
العدو · الشكل 11
يفترض النموذج عدوًا يستطيع إرسال أي رسالة إلى أي عملية، وقراءة أو نسخ أي رسالة بين عمليتين. في الرسم يرسل p الرسالة m إلى q؛ يأخذ العدو Copy of m، ويمكنه إدخال رسالة m′ في القناة.
التنصت وحقن الرسائل
| الموضع | التهديد | مثال/علاج |
|---|---|---|
| العمليات | الجهل بالمصدر الحقيقي للرسالة، وهي مشكلة للعميل والخادم. | انتحال Spoofing خادم بريد. |
| قناة الاتصال | تهديد خصوصية الرسالة وسلامتها. | قناة آمنة Secure Channel. |
- Cryptography and shared secrets: علم إبقاء الرسائل آمنة مع أسرار مشتركة.
- Encryption: تشويش/تحويل الرسالة لإخفاء محتواها.
- Authentication: يوفر استخدام الأسرار المشتركة والتشفير أساس التحقق من أصالة الرسائل.
سيناريوهات محلولة وطريقة التحليل
لا تعرض الشرائح مسائل رقمية، لكنها تقدم قرارات وتصنيفات يمكن حلها بخطوات ثابتة.
اختيار Client-Server أم P2P
- إن وجدت جهة طبيعية تدير المورد، فابدأ بخيار الخادم.
- إن كانت العمليات تؤدي وظائف متشابهة وتتعاون مباشرة، فافحص P2P.
- اختبر اختناق الخادم الواحد في قدرة المضيف وعرض الحزمة.
- استخدم Super Peers إن احتجت تنظيمًا دون مركز كامل.
- قيّم النتيجة وفق الأداء والاعتمادية والأمن.
Cache Hit أم Cache Miss؟
- افحص وجود الكائن وحداثة نسخته.
- موجود وحديث: Hit، أعده مباشرة.
- غائب أو قديم: Miss، اجلب نسخة حديثة من الخادم.
- خزن النسخة وقد تستبدل عنصرًا قديمًا.
- إن اشترك عملاء كثر في المحتوى، ضع Cache في Proxy كما في الشكل 7.
تمييز Latency وBandwidth وJitter
- تأخر بداية الوصول = Latency.
- قلة كمية البيانات الممكنة في وحدة الزمن = Bandwidth.
- عدم ثبات فواصل وصول سلسلة الرسائل = Jitter، وهو مؤثر مباشر في الصوت.
تصنيف فشل
- لم يُنفذ الفعل أو لم تصل الرسالة: Omission.
- توقفت العملية نهائيًا: Crash، وهو Omission للعملية.
- قيمة خاطئة أو تلف أو تكرار: Arbitrary.
- تجاوز حد معلوم في نظام متزامن: Timing.
- Checksum تكشف تلفًا وتسقط الرسالة: Masking يحول Arbitrary إلى Omission.
هل انتهاء المهلة يثبت الفشل؟
في النظام المتزامن يمكن مقارنة الزمن بحد معلوم وتصنيف تجاوزه Timing failure. في غير المتزامن لا حد للتنفيذ أو التوصيل، فلا يمكن الجزم من البطء وحده.
استدعاء آمن
- اربط Invocation بـPrincipal.
- تحقق من الهوية Authentication.
- تحقق من Access rights للعملية والكائن المحددين.
- نفذ وأعد Result إن كانت الحقوق كافية، وإلا ارفض.
- احم القناة بالتشفير والقناة الآمنة لمقاومة القراءة والتعديل والانتحال.
تتبع تطبيق ويب ثلاثي الطبقات
UI ترسل Request operation؛ Application server يصبح عميلًا لقاعدة البيانات ويرسل Request data؛ تعود Return data؛ يعالجها خادم التطبيق ويرسل Return result. توجد فترة انتظار في الواجهة وفي خادم التطبيق.
خريطة الشرائح الكاملة
افتح الشريحة المطلوبة للوصول إلى جردها الكامل.