JavaRush /مدونة جافا /Random-AR /الجزء 2. دعونا نتحدث قليلا عن هندسة البرمجيات

الجزء 2. دعونا نتحدث قليلا عن هندسة البرمجيات

نشرت في المجموعة
هذه المادة جزء من سلسلة " مقدمة لتطوير المشاريع ". الجزء الأول عن الشبكة هنا . الجزء 2. دعونا نتحدث قليلا عن هندسة البرمجيات - 1هندسة البرمجيات هي البنية التي يتم على أساسها إنشاء التطبيق وتتفاعل وحدات ومكونات البرنامج بأكمله. لقد حاول المبرمجون إنشاء بنية جيدة لفترة طويلة جدًا، لذلك ليس من المستغرب أن نعرف الآن الكثير من الأنماط المعمارية. من الضروري فهمها: عند كتابة تطبيق ويب، تصبح مشكلة الهندسة المعمارية حادة، لأن المكونات والوحدات النمطية فيه أكثر من التطبيق العادي. يعد النمط المعماري طريقة مدروسة بالفعل لحل بعض مشكلات تصميم البرامج. ربما تكون قد صادفت بالفعل أنماط تصميم مثل Factory Method، وAbstract Factory، وBuilder، وPrototype، وSingleton، وربما غيرها. يتم استخدامها لكتابة التعليمات البرمجية وإنشاء الفصول الدراسية والتخطيط لكيفية تفاعلها. تُستخدم الأنماط المعمارية على مستوى أعلى من التجريد - عند التخطيط لتفاعل مستخدم التطبيق مع الخادم والبيانات والمكونات الأخرى للمشروع. دعونا نلقي نظرة سريعة على بعض القوالب وكيفية استخدامها.

بنية خادم العميل

من الاسم يبدو أن كل شيء في هذا الموضوع بسيط وواضح. ولكن دعونا نوضح بعض النقاط حتى عندما تبدأ بدراسة الربيع الشرطي، فإنك تفهم بالضبط ما نتحدث عنه. لنفترض أنك كتبت محادثة، وبدأت أنت وصديقك في استخدامها. هناك خيار بسيط ممكن هنا - حيث تقومون بإرسال رسالة إلى بعضكم البعض مباشرة عبر الإنترنت باستخدام عناوين IP التي تعرفونها: الجزء 2. دعونا نتحدث قليلا عن هندسة البرمجيات - 2في البداية، قد يبدو أن كل شيء على ما يرام، حتى يظهر صديق آخر لك مع السؤال: "لماذا لا تفعل ذلك؟" "ألا تضيفني إلى الدردشة الخاصة بك؟" وعندما تقرر إضافة صديق مشترك إلى الدردشة، فإنك تواجه مشكلة معمارية: يحتاج كل مستخدم للدردشة إلى تحديث المعلومات حول عدد المستخدمين، وإضافة عنوان IP الخاص بالمستخدم الجديد. وعند إرسال الرسالة يجب تسليمها لجميع المشاركين. هذه هي المشاكل الأكثر وضوحا التي سوف تنشأ. سيتم إخفاء الكثير من المشاكل في الكود نفسه. لتجنبها، تحتاج إلى استخدام خادم يقوم بتخزين كافة المعلومات حول المستخدمين ومعرفة عناوينهم. سوف تحتاج الرسالة فقط إلى إرسالها إلى الخادم. وهو بدوره سيرسل الرسالة إلى جميع المستلمين. عندما تقرر إضافة جانب الخادم إلى الدردشة الخاصة بك، ستبدأ في إنشاء بنية خادم العميل.

مكونات بنية خادم العميل

دعونا معرفة ما هي. إن بنية خادم العميل هي نمط تصميم، وهو الأساس لإنشاء تطبيقات الويب. تتكون هذه البنية من ثلاثة مكونات: الجزء 2. دعونا نتحدث قليلا عن هندسة البرمجيات - 3
  1. العميل - يتضح من الاسم أن هذا هو مستخدم الخدمة (تطبيق الويب) الذي يتصل بالخادم للحصول على بعض المعلومات.

  2. الخادم هو المكان الذي يوجد به تطبيق الويب الخاص بك أو جزء الخادم الخاص به. يمتلك المعلومات الضرورية عن المستخدمين أو يمكنه طلبها. وأيضًا، عندما يتصل العميل، يقوم الخادم بإرجاع المعلومات المطلوبة إليه.

  3. الشبكة بسيطة: فهي تضمن تبادل المعلومات بين العميل والخادم.

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

  • جانب الخادم - تطبيق ويب تتم استضافته على الخادم ويتلقى الرسائل من المستخدمين ويعالجها ثم يرسلها إلى المستلمين.

الجزء 2. دعونا نتحدث قليلا عن هندسة البرمجيات - 4عندما نريد الاطلاع على معلومات مفيدة (أو غير مفيدة جدًا) على الإنترنت، نفتح المتصفح، وندخل استعلامًا في شريط البحث، ونتلقى استجابةً لذلك معلومات من محرك البحث. في هذه السلسلة، المتصفح هو عميلنا. يرسل طلبًا يحتوي على معلومات حول ما نبحث عنه إلى الخادم. يقوم الخادم بمعالجة الطلب، والعثور على النتائج الأكثر صلة، وتجميعها في تنسيق مفهوم للمتصفح (العميل) وإرسالها مرة أخرى. في مثل هذه الخدمات المعقدة مثل محركات البحث يمكن أن يكون هناك العديد من الخوادم. على سبيل المثال، خادم الترخيص، خادم البحث عن المعلومات، خادم توليد الاستجابة. لكن العميل لا يعرف شيئًا عن هذا: بالنسبة له، الخادم شيء موحد. يعرف العميل فقط عن نقطة الإدخال، أي عنوان الخادم الذي يحتاج إلى إرسال الطلب إليه. لنتذكر التطبيق الذي استعرضناه في الجزء السابق – لرصد متوسط ​​درجة حرارة الهواء في جميع البلدان في الوقت الفعلي. ستبدو هندسته المعمارية كما يلي: الجزء 2. دعونا نتحدث قليلا عن هندسة البرمجيات - 5يوجد تطبيقنا على الخادم. لنفترض أنه يرسل كل خمس ثوانٍ طلبات إلى خوادم مراكز الأرصاد الجوية الهيدرولوجية المحلية، ويتلقى معلومات منهم حول درجة الحرارة في بلد معين، ويخزن هذه المعلومات. عندما يتصل بنا أحد العملاء ليطلب "رؤية درجة حرارة الهواء الحالية في العالم"، فإننا نعيد أحدث المعلومات المخزنة، مرتبة حسب البلد. وبالتالي، فإن تطبيقنا هو خادم (عندما يعالج طلبات المستخدم) وعميل (عندما يتلقى معلومات من خوادم أخرى).
هام: مفهوم الخادم لا يتعلق بجهاز كمبيوتر معين، بل يتعلق بالعلاقة بين المشتركين في الشبكة .
نادرًا ما يتم استخدام بنية خادم العميل البسيطة، وذلك للتطبيقات البسيطة جدًا فقط. بالنسبة للمشاريع الكبيرة والمعقدة حقًا، يتم استخدام أنواع مختلفة من التصميمات المعمارية، والتي ستصبح أكثر دراية بها في المستقبل. في الوقت الحالي، دعونا نلقي نظرة على نموذج مشابه جدًا لنموذج خادم العميل.

العمارة ثلاثية الطبقات

هذا هو النمط المعماري الذي يقدم لاعبًا ثالثًا: مستودع البيانات . عند استخدام هذا النمط، عادةً ما تسمى المستويات الثلاثة بالطبقات: الجزء 2. دعونا نتحدث قليلا عن هندسة البرمجيات - 6
  1. طبقة العميل هي واجهة المستخدم. يمكن أن يكون هذا متصفح ويب يتم إرسال صفحات HTML إليه، أو تطبيق واجهة المستخدم الرسومية المكتوب باستخدام JavaFX. الشيء الرئيسي هو أنه بمساعدته يمكن للمستخدم إرسال الطلبات إلى الخادم ومعالجة استجاباته.

  2. الطبقة المنطقية هي الخادم الذي تتم معالجة الطلبات/الاستجابات عليه. غالبًا ما يطلق عليها أيضًا طبقة الخادم. تتم هنا أيضًا جميع العمليات المنطقية: الحسابات الرياضية وعمليات البيانات والمكالمات إلى الخدمات الأخرى أو تخزين البيانات.

  3. طبقة البيانات هي خادم قاعدة البيانات: خادمنا يصل إليها. تقوم هذه الطبقة بتخزين جميع المعلومات الضرورية التي يستخدمها التطبيق أثناء التشغيل.

وبالتالي، يتحمل الخادم الخاص بنا كافة الالتزامات المتعلقة بالوصول إلى البيانات، دون السماح للمستخدم بالوصول إليها مباشرة.

فوائد العمارة ثلاثية المستويات

باستخدام مثل هذه البنية، نحصل على العديد من المزايا، بما في ذلك:
  1. القدرة على بناء الحماية ضد حقن SQL هي هجوم على الخادم الذي يتم فيه إرسال كود SQL، وعندما يتم تنفيذ هذا الرمز، يمكن للمهاجم التأثير على قاعدة بياناتنا.

  2. تحديد البيانات التي نريد تنظيم وصول المستخدم إليها.

  3. إمكانية تعديل البيانات قبل إرسالها للعميل.

  4. قابلية التوسع - القدرة على توسيع تطبيقنا ليشمل عدة خوادم تستخدم نفس قاعدة البيانات.

  5. متطلبات أقل لجودة اتصال المستخدم. عند إنشاء استجابة على الخادم، غالبًا ما نأخذ الكثير من المعلومات المختلفة من قاعدة البيانات، وننسقها، ونترك فقط ما يحتاجه المستخدم. بهذه الطريقة نقوم بتقليل كمية المعلومات التي نرسلها كرد على العميل.

كم مرة يجب عليك استخدام الأنماط المعمارية؟

إذا كنت على دراية بنمط تصميم طريقة المصنع ، على سبيل المثال ، فربما تساءلت متى تستخدمه. في بعض الأحيان يكون من الصعب تحديد ما يجب فعله: إنشاء كائن باستخدام عامل التشغيل الجديد أو باستخدام طريقة المصنع. ولكن مع مرور الوقت، يأتي الفهم. مع الأنماط المعمارية، الأمور مختلفة قليلا. تم تصميم أطر عمل المؤسسة ليستخدمها المبرمج لإنشاء مشروع يعتمد على بعض الأنماط المقبولة عمومًا. لذلك، قبل تعلم إطار الربيع، تحتاج بالتأكيد إلى فهم ما هي بنية خادم العميل والهندسة المعمارية ثلاثية الطبقات وهندسة MVC. لا تقلق: سنتحدث عن بنية MVC لاحقًا. الجزء 1. ما تحتاج إلى معرفته قبل تعلم Spring وJavaEE الجزء 3. بروتوكولات HTTP/HTTPS الجزء 4. أساسيات Maven الجزء 5. Servlets. كتابة تطبيق ويب بسيط الجزء 6. حاويات Servlet الجزء 7. تقديم نمط MVC (Model-View-Controller) الجزء 8. كتابة تطبيق صغير للتمهيد الربيعي
تعليقات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION