سؤال

اعتدت مؤخرا تطبيق جافا ويب ستارت.أطلقت عليه من متصفح الويب باستخدام جزءا لا يتجزأ من jnlp الرابط في الصفحة كنت المشاهدة.تطبيق تم تحميلها ، أطلقت عملت على ما يرام.كان الوصول إلى نظام الملفات وتذكرت بلدي الأفضليات بين إعادة تشغيله.

ما أريد أن أعرفه هو لماذا جافا ويب ستارت التطبيقات لا أكثر شعبية شكل تسليم التطبيقات المعقدة على شبكة الإنترنت ؟ لماذا المطورين غالبا ما تنفق قدرا كبيرا من الوقت والطاقة تكرار سطح المكتب وظيفة في html/جافا سكريبت عندما الطاقة من تطبيق سطح المكتب يمكن تسليمها أكثر سهولة باستخدام جافا Java Web Start ؟

وأنا أعلم أنه في بعض بيئات الشركات ، ه.ز المصرفية ، فهي نسبيا الطرق شعبية من تقديم التجارية المعقدة طلبات العملاء, ولكن لماذا لا المنتشرة عبر الويب ككل ؟

(أجل مناقشة دعنا نفترض العالم حيث:تحميل مصادر "موثوق بها" & تطبيقات "وقعت" (أيلا مخاوف أمنية), تحميل سرعات سريع (وقت تحميل سريع) و المطورين يعرفون جافا (في الأرقام التي تعلم html/js/php)).

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

المحلول

أعتقد أن السبب ليس أمان أو وقت بدء التشغيل للتطبيق. دعونا نفهم ما وراء المشهد قبل أن نكتشف السبب الجذري.

تحتوي لوحة التحكم Java على إعدادات تسمح للمستخدمين باستخدام إعدادات وكيل المتصفح الافتراضي أو لتجاوزها. بمعنى آخر، تكون فرق البنية التحتية قادرة على تخصيص صور تثبيت Windows أو OS للحصول على JVM مثبتة مسبقا مع إعدادات وكيل Enterprise. لذلك أعتقد أن هذه ليست مشكلة على الإطلاق.

تبدأ Java Web فعليا في تخزين جميع التطبيقات مع إعدادات قابلة للتخصيص في لوحة تحكم Java. بمجرد التخزين المؤقت التطبيق، يتم تطبيق التطبيق "مثبت" تماما مثل التطبيقات الأخرى. على الرغم من أن الإعدام المرة الأولى قد يكون بطيئا، إلا أن المرة الثانية ستكون سريعة بسبب تقنية تخصيص الذاكرة الذكية JVM. لذلك قد يكون وقت البدء مشكلة ولكن الكثير من مواقع الويب (حتى داخل المؤسسة الداخلية) ترحز الآن إلى البوابة. تحتوي بوابة الويب عادة على الكثير من المكتبات غير المستخدمة لأغراض التطوير نظرا لحقيقة أن البوابة نفسها لا تتوقع أن تكون أنواع الملاذات التي يتم بناؤها ونشرها على صفحة محددة. لذلك، يمكن تنزيل صفحة بوابة واحدة أن تستهلك ما يصل إلى MBS وإكمال الصفحة في أكثر من 5 ثوان؛ هذه صفحة واحدة فقط وتساعد التخزين المؤقت على 30٪ ولكن لا تزال هناك الكثير من مكونات HTML / JavaScript / CSS المطلوبة للتحميل في كل مرة. مع هذا، أنا متأكد من أن Java Web Start هي ميزة هنا.

لا يقوم Java Web Start بالتنزيل مرة أخرى إذا تم تخزينها مؤقتا طالما لم يتم ترقية نسخ الخادم. لذلك، إذا تم الانتهاء من ذلك، مثل برنامج إدارة المشروع مثل MS Project، باستخدام SmartClient (يشبه JWS)، فإن تبادل المعلومات بين العميل والخادم سيكون بيانات بحتة دون عرض تقديمي مثل تحديث الصفحة الكاملة للمتصفح. حتى بمساعدة Ajax، فإنه لا يلغي تنزيل الصفحة الكاملة بالكامل. علاوة على ذلك، فإن الكثير من الشركات تعتبر أجاكس غير ناضجة وغير مضمونة لا تزال. لهذا السبب AJAX هو موضوع ساخن في دوائر المطورين ولكن ليس ضمن برنامج المؤسسة حتى الآن. مع مراعاة ذلك في الاعتبار، تتأكد تطبيقات JWS بالتأكيد مزيدا من المزايا مثل كيفية نشر تطبيقات JWS وتنفذها في صناديق الرمل وتوقيعها ووجهيا أكثر تفاعلية.

تشمل المزايا الأخرى تطور أسرع (أسهل تصحيح الأخطاء في التعليمات البرمجية والأداء)، واجهة المستخدم المستجيبة (لا تتطلب خوادم المذنب لتوفير وظيفة الدفع)، وتنفيذ أسرع (بالتأكيد لأن أجهزة الكمبيوتر العميلة تجعل واجهة المستخدم الرسومية دون ترجمة مثل HTML / JavaScript / CSS، ومعالجة البيانات أقل).

بعد كل هذه، لم أطرق السؤال بعد، لماذا jws غير مشهورة جدا؟

رأيي هو أنه هو نفس تعليق Brian Knoblauch، إنه بلا مستوى من الوعي.

ينجذب الناس أيضا من قبل ضجيج تقنيات الويب، ودفع AJAX، GWT، وجميع هذه الكلمات الطنانة تجعلها تحيزا تجاه متعة استخدام تقنيات مختلفة أو لحل التحديات التقنية بدلا من ما يعمل حقا للعملاء.

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

مثال آخر لماذا JWS هي فكرة مذهلة هي BlackBerry MDS. تطبيقات BlackBerry هي في الواقع تطبيقات Java مترجمة من جافا سكريبت. باستخدام BB's MDS Studio، يمكنك استخدام أداة واجهة المستخدم الرسومية لبناء تطبيق BB واجهة المستخدم الرسومية، ترميز غوي المنطق في JavaScript. ثم يتم ترجمتها ثم التطبيقات ونشرها على خادم BES. ثم خادم BES سيقوم بتوزيع هذه التطبيقات على BB. على كل BB، يقوم بتشغيل تطبيق Java رقيق مع تقدم واجهة المستخدم الرسومية وقدرة الشبكات فقط. كلما يتطلب التطبيق بيانات، فإنه يتصل مع BES من خلال خدمات الويب لاستهلاك الخدمات من خوادم أخرى. أليس هذا مجرد نسخة JWS BB؟ لقد كان ناجحا للغاية.

أخيرا، أعتقد أن JWS ليس شائعا بسبب كيفية الإعلان عن الشمس. BB لا تعلن أبدا مدى جودة تطبيقات BB Java الخاصة بهم، يعتقدون أن العملاء لن يهتمون بما هو عليه. تعلن BB عن فوائد استخدام MDS لتطوير التطبيقات: سريعة، توفير التكلفة، عائد الأعمال.

فقط بلدي، طويل قليلا، 2 سنتات ... :)

نصائح أخرى

من المحتمل أن يكون هناك حاجز رئيسي ل Java Webstart أنك لا تزال بحاجة إلى تثبيت JVM قبل أن تتمكن من محاولة تنزيل التطبيق وبدء تشغيله. كل شخص لديه متصفح. ليس كل شخص لديه JVM.

يحرر:لقد حصلت منذ ذلك الحين على بعض تجربة WebStart العملية ويمكنها الآن إضافة هاتين النقطتين:

  • ال سيناريو مجموعة أدوات النشر ووضع JVM المعياري في مكان ما حول Java 1.6u10 جعل متطلبات JVM أقل إشكالية نظرا لأنه يمكنه تلقائيا تنزيل JVM و API Core وابدأ تشغيل البرنامج في تحميل الباقي.
  • بداية الويب هي عربات التي تجرها الدواب بجدية. حتى بين إصدارات Java 1.6، كان هناك واحد يقوم بتنزيل التطبيق بالكامل في كل مرة، وآخر يقوم بتنزيله ثم فشل مع رسالة خطأ غامضة. الكل في الكل، لا أستطيع أن أوصي حقا الاعتماد على هذا النظام الهش.

أعتقد أنه يعزى في الغالب إلى عدم الوعي. أنه يعمل بشكل جيد جدا. سلس تماما. يقوم التطبيق بالتنزيل فقط إذا كانت هذه هي المرة الأولى التي يكون فيها ترقية، أو إذا كان المستخدم النهائي قام بمسح ذاكرة التخزين المؤقت. طريقة رائعة لنشر تطبيقات سطح المكتب المنفأة بالكامل لن يكون لدى المستخدم للقلق بشأن الترقية يدويا!

المشكلة مع Webstart هو أن عليك أن 'ابدأ' شيء مما ليس في كل ذلك بسرعة حتى مع وجود اتصال سريع مع webapp يمكنك إدخال URL التطبيق هناك.

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

في البيئات التي تسيطر عليها مثل شركة جيدة وسهلة الحل في كثير من الحالات.

لقد عملت في تطبيق منتشر JWS منذ بضع سنوات عبر قاعدة مستخدمين بضعة آلاف وترقياتها التلقائية هي في الواقع ألم ضخم.

على كل تحديث لسبب ما عشرات المستخدمين "عالقون في الوسط". كل ما تحصل عليه هو استثناء "فئة غير موجودة" (إذا كنت محظوظا)، أو غير معلوماتي "غير قادر على إطلاق" من JWS قبل أن يصل إلى التعليمات البرمجية الخاصة بك. يبدو أن التحديث هو نصف تنزيل. أو، وبعبارة أخرى، لا يقوم بتنزيل وتطبيق التحديث بشكل جذري ولديه تخزين مؤقت ضعيف بحيث يؤدي ذلك إلى إصلاح التطبيق من نفس عنوان URL نفسه.

لا توجد طريقة لحلها بخلاف مسح ذاكرة التخزين المؤقت JWS أو توفير عنوان URL مختلف (مثل إلحاق ?dummyparam=jwssucks في نهايةالمطاف). حتى أنا كمطور ضربه في بعض الأحيان ولا يرى طريقة حولها.

عندما يعمل، يعمل. ولكن في كثير من الأحيان لا، ثم هو ألم ضخم بالنسبة لك ولمساعدة المساعدة الخاصة بك. لن أوصي به للاستخدام المؤسسي أو المهمة.

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

أنا أعتبر أن هذا شخصيا كبيرا للغاية أننا نبحث بنشاط عن تقنية أخرى تنص على ذلك.

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

ميزة مهمة لبدء الويب هي أنه يعمل بشكل جيد مع OpenJDK تحت Linux. يستخدم عملاء بعض المطورين السعيدين Windows فقط ولكن عملائي لا يفعلون ذلك.

HTML و JavaScript، المذكورة في السؤال الأولي، هي أساليب أخف تعمل بشكل جيد مع مهام أصغر مثل الأزرار المتحركة أو حتى الجداول التفاعلية. يبدو Java Niche حول المهام الأكثر تعقيدا بكثير.

يبدأ تشغيل Java Web بلطف خليفة تطبيقات Java، وحرق التطبيقات في جميع أنحاء الألفية الجديدة. ولكن، ما زلت أعتقد أن تطبيقات Java أفضل من GWT أو جافا سكريبت الجحيم.

Java Web Start مقابل Embedded Java Applet

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