سؤال

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

فيما يلي ملخص المتطلبات (يرجى عذر النقص المحتمل للتفاصيل ، هذا مجرد مثال على تشجيع نفسي):

كنت أرغب في الحصول على تطبيق Eclipse RCP لمراقبة بعض الخوادم. ستكون هذه الخوادم في البداية برامج يعرفها التطبيق (بمعنى أنها تعرف بالضبط عن خصوصياتها وعموميتها). ومع ذلك ، في المستقبل ، يجب أن يكون التطبيق قادرًا على السماح للمستخدمين بتحديد برامج تعسفية ذات خصائص مختلفة للتطبيق لمراقبة أيضًا (لذلك ليس فقط الخوادم المعروفة ، ولكن أيضًا بعض الخوادم الأخرى التي لم تعرف عنها من قبل). سيتطلب التطبيق أيضًا ملف تكوين XML يحتوي على جميع تفاصيل الخوادم التي تحتاج إلى مراقبة (مثل المضيف ، المنفذ ، اسم المستخدم وكلمة المرور). سيتم تشفير ملف تكوين XML هذا وفك تشفيره باستخدام JaxB.

بناءً على المتطلبات المذكورة أعلاه ، توصلت إلى التفاصيل التالية:

ستبدو XML شيئًا كهذا:

<configuration>
    <components>
        <serverA>
          <host></host>
          <port></port>
          <username></username>
          <password></password>
        </serverA>
        <serverB>
          <host></host>
          <port></port>
          <username></username>
          <password></password>
        </serverB>
        <!--- this will be the place for other components specified by user -->
    </components>
</configuration>

أين و "الخوادم" التي يعرفها التطبيق.

في الكود المصدر ، هناك التسلسل الهرمي التالي للفئات:

المكون <--- خادم <--- servera ، serverb

ينحدر Servera و ServerB من الخادم والخريطة إلى العنصر على التوالي.

يوجد إدخال نقطة التكوين في الفئة التي تسمى التكوين التي تحتوي على قائمة من Servera وقائمة ServerB. الآن ، نظرًا لأن التطبيق يجب أن يكون قادرًا على مراقبة البرامج الأخرى التي لم يعرفها ، يجب أن يكون ملف تكوين XML قابلاً للتوسعة أيضًا ، وبالتالي فإن فئة التكوين تحتوي أيضًا على قائمة بالكائنات التي تقوم بتعيين أي مكون آخر محدده المستخدم في ملف الضبط.

configuration.java

public class Configuration
{
   @XmlElement
    private List<ServerA> serveras;

   @XmlElement
    private List<ServerB> serverbs;

   @XmlAnyElement
    private List<Object> otherServers;
}

الآن ، هل هذا شيء ستفعله يا رفاق أيضًا للتعامل مع المشاكل؟ أظن ، لا أعرف ، أنا في حيرة من أمري بشأن متطلبات أن يكون التطبيق قادرًا على مراقبة البرامج الأخرى المحددة من قبل المستخدم. أعلم أنني قمت بإعداده في المقام الأول ، لكنني أذهلت ذلك في الاعتبار قوله "هذا يبدو وكأنه شيء يمكن أن يستخدم نقاط تمديد Eclipse RCP" ، ولكن بعد أن قفزت الآن إلى ملف التكوين ، لست واضحًا حول كيف ينبغي يرتبط ملف التكوين بالمكون الإضافي؟ xml؟

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

هل كانت مفيدة؟

المحلول

هناك عدة طرق للتعامل مع هذه القضية. ولكن اسمحوا لي أن أعطي لقطة لها.

لديك مجموعة من الخوادم المختلفة ، مع خصائص مراقبة مختلفة. ولكن لتطبيق Eclipse الخاص بك ، يجب أن تبدو جميعها متشابهة.

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

أحد الاحتمالات هو أن لديك واجهة تمثل بروتوكول اتصال الخادم وبعد ذلك ، يمكنك تحديد نقطة تمديد في المكون الإضافي الرئيسي الذي يسمح بالتطبيقات المساهمة للبروتوكول. لذلك يمكنك عندئذٍ إنشاء مجموعة من مثيلات بعض الواجهة (دعنا نسميها imonitoringprotocol). ستحتوي هذه الواجهة على الطرق التي تحتاجها لعرض الحالة على واجهة المستخدم.

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

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

يتيح لك ذلك إضافة بروتوكولات جديدة في المستقبل ، للخوادم غير المعروفة بعد.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top