سؤال

لقد كنت أقرأ/أتعلم المزيد عن Spring مؤخرًا، وكيف يمكن للمرء استخدام Spring مع أدوات أخرى مفتوحة المصدر مثل Tomcat وHibernate.أقوم بتقييم ما إذا كان Spring MVC يمكن أن يكون تقنية بديلة محتملة للمشروع الذي أعمل عليه، والذي يستخدم WebLogic والكثير من تعليمات Java EE البرمجية المخصصة.الأمر هو أنني كنت أشك دائمًا في أن الحل الذي نقدمه قد تم تصميمه بشكل مبالغ فيه وهو أكثر تعقيدًا مما ينبغي.من المثير للدهشة أننا في عام 2009، ومع ذلك، فإننا نكتب دروسنا الخاصة في التعامل مع المعاملات وتجميع الخيوط.وليس الأمر وكأننا Amazon، أو eBay، أو Google، إذا كنت تعرف ما أعنيه.وبالتالي، فأنا أبحث في خيار "الأبسط هو الأفضل".

إذن هذا هو سؤالي:أرغب في سماع آراء حول كيفية اتخاذ القرار بشأن ضرورة وجود خادم تطبيقات Java EE متكامل أم لا.كيف يمكنك "قياس" الحجم/التحميل/الطلب على تطبيق Java EE؟عدد المستخدمين المتزامنين؟إجمالي المعاملات اليومية؟ما مدى "الثقل" الذي يحتاجه التطبيق قبل أن ترفع يديك في الاستسلام وتقول، "حسنًا، Tomcat لا يقطعه، نحتاج إلى JBoss/WebLogic/WebSphere"؟

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

المحلول

وأنا لا أعتقد أن قرار استخدام الخادم جافا EE كاملة أو لا ينبغي أن تقوم على عدد من المستخدمين أو المعاملات. بل ينبغي أن يستند على ما إذا كنت في حاجة إلى وظيفة.

في مشروعي الحالي أننا نسير في الواقع بعيدا عن جبوس إلى Vanilla القط لأننا أدركنا أننا لم نكن استخدام أي من وظائف جافا EE خارج السيرفلتس الأساسية على أي حال. ونحن، ومع ذلك، وذلك باستخدام الربيع. بين إدارة الربيع الأساسية الكائن، ومعالجة المعاملات وقدرات JDBC، نحن لا نرى حاجة ملحة لEJB. نحن نستخدم حاليا الدعامات 2 بدلا من MVC الربيع، ولكن سمعت أشياء عظيمة عن ذلك. على أية حال، الربيع يدمج بشكل جيد مع عدد من الأطر الويب جافا.

نصائح أخرى

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

وإذا كان التطبيق الخاص بك يتطلب قوة أمثال الدائرة وJTA، ثم يمكنك استخدام عليها بسهولة عن طريق الربيع. لا مشكلة في ذلك.

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

عودة إلى السؤال الفعلي، Walmart.com، etrade.com، قناة الطقس و عدد قليل جدا آخرون ومجرد استخدام القط. أن التسويق والمبيعات الرجال من IBM لديها كنت تعتقد مختلف، ربما، ولكن ليس هناك حد أقصى لقط.

وباستثناء EJB، وأنا لست متأكدا ما هو القط في عداد المفقودين، وأنا لست من محبي EJB.

ما لا يقدمه Tomcat بصرف النظر عن العناصر الأكثر غرابة في Java EE هو حبوب الجلسة (المعروفة أيضًا باسم EJBs).تتيح لك حبوب الجلسة عزل المعالجة بكفاءة.لذلك يمكن أن يكون لديك مربع واحد للواجهة الأمامية، وآخر لفاصوليا الجلسة (منطق الأعمال) وآخر لقاعدة البيانات.

قد ترغب في القيام بذلك لسببين على الأقل:

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

على الرغم من أنني ربما يجب أن أشير إلى أنه إذا كنت تستخدم خدمات الويب للتواصل مع تلك الطبقة الوسطى، فقد يكون ذلك أيضًا على Tomcat!

والسبب الوحيد لاستخدام مهب الخادم جافا EE الكامل إذا كنت بحاجة إلى معاملات XA الموزعة، إذا كنت لا تحتاج إلى معاملات XA ثم يمكنك استخدام الربيع + JPA + القط + فول + التحقق JSTL + EL + JSP + جافا البريد.

وأيضا يفترض الخادم جافا EE لتنفيذ الدائرة ولكن لا معنى لتشغيل الخادم الدائرة في نفس VM مثل باقي خادم التطبيق حتى إذا كنت بحاجة الدائرة يجب أن يكون الخادم الدائرة منفصل.

وأنا أختلف بشدة مع كل الاجابات هنا.

وكل شيء يمكن أن تضاف إلى القط، بما في ذلك EJB، CDI، JTA، فول التحقق من الصحة، JAX-RS، الخ.

والسؤال هو: هل تريد ذلك؟ هل تريد تجميع كل تلك التبعيات في الإصدارات الصحيحة واختبار أن كل شيء يعمل معا، عند البعض الآخر قد فعلت هذا؟

ودعونا نكون واضحين: لا أحد يستخدم قط فقط! ويضيف الجميع دائما إطار الشبكة، وعاء اللجنة الاولمبية الدولية، ومكتب إدارة السجلات، وإدارة المعاملات والخدمات على شبكة الإنترنت، الخ الخ

والخوادم خفيفة الوزن جافا EE مثل TomEE تتضمن بالفعل كل ذلك ويجعل تجربة كومة كاملة من بعد كل تلك الأشياء متكاملة أفضل بكثير.

وربما هذا يمكن أن تكون ذات فائدة:

http://onjava.com/onjava /2006/02/08/j2ee-without-application-server.html

وHTH

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