تطبيق جافا

تطبيق جافا صغير تم إنشاؤه كمادة توضيحية تكميلية لمنشور علمي
تطبيق جافا صغير يستخدم تسريع الأجهزة ثلاثية الأبعاد لعرض ملفات ثلاثية الأبعاد بتنسيق .pdb تم تنزيلها من خادم [ 1 ]
استخدام تطبيق صغير للرسوم المتحركة غير التافهة لتوضيح موضوع فيزيائي حيوي (الأيونات المتحركة عشوائيا تمر عبر بوابات الجهد) [ 2 ]
استخدام تطبيق جافا صغير للحساب - تصور مكثف لمجموعة ماندلبروت [ 3 ] 
سرعة تشغيل التطبيقات المصغرة كافية لصنع ألعاب كمبيوتر غير تافهة على سبيل المثال، والتي تلعب الشطرنج . [ 4 ]
يُعد تطبيق NASA World Wind (مفتوح المصدر) تطبيقًا من الجيل الثاني [ 5 ] يستخدم بشكل كبير OpenGL وتنزيل البيانات عند الطلب لتوفير خريطة ثلاثية الأبعاد مفصلة للعالم.
الوصول إلى وحدة تحكم الخادم عبر الويب على مستوى الأجهزة بمساعدة تطبيق جافا صغير
عرض توضيحي لمعالجة الصور باستخدام تحويل فورييه ثنائي الأبعاد

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

عند طرحها، كان الغرض من استخدام تطبيقات جافا المصغرة هو تشغيلها من صفحة ويب ، ثم تنفيذها داخل آلة جافا الافتراضية (JVM) في عملية منفصلة عن متصفح الويب نفسه. ويمكن أن يظهر تطبيق جافا المصغر في إطار صفحة الويب، أو في نافذة تطبيق جديدة، أو في برنامج من شركة صن يُسمى appletviewer، [ 6 ] أو كأداة مستقلة لاختبار التطبيقات المصغرة.

تم تقديم تطبيقات جافا المصغرة في الإصدار الأول من لغة جافا، الذي صدر عام 1995. ابتداءً من عام 2013، بدأت متصفحات الويب الرئيسية بالتوقف تدريجيًا عن دعم NPAPI ، وهي التقنية الأساسية التي كانت تُستخدم لتشغيل التطبيقات المصغرة، حتى أصبحت التطبيقات المصغرة غير قابلة للتشغيل تمامًا بين عامي 2015 و 2017. تم إيقاف دعم تطبيقات جافا المصغرة في جافا 9 عام 2017، [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] وتم إيقاف دعمها تمهيدًا لإزالتها في جافا 17 عام 2021، [ 12 ] وأُزيلت نهائيًا في جافا 26 عام 2026. [ 13 ] [ 14 ]

عادة ما كانت تطبيقات جافا الصغيرة تُكتب بلغة جافا، ولكن يمكن استخدام لغات أخرى مثل Jython و JRuby و Pascal و [ 15 ] Scala و NetRexx أو Eiffel (عبر SmartEiffel ) أيضًا.

على عكس الإصدارات الأولى من جافا سكريبت، كانت تطبيقات جافا الصغيرة (Applets) تتمتع بإمكانية الوصول إلى تسريع الأجهزة ثلاثية الأبعاد ، مما جعلها مناسبة تمامًا للرسومات المرئية المعقدة التي تتطلب حسابات مكثفة. منذ ظهور هذه التطبيقات، اكتسبت جافا سكريبت دعمًا للرسومات المُسرّعة بواسطة الأجهزة عبر تقنية Canvas (أو تحديدًا WebGL ، ثم WebGPU لاحقًا في حالة الرسومات ثلاثية الأبعاد)، [ 16 ] [ 17 ] بالإضافة إلى الترجمة الفورية . [ 18 ]

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

ملخص

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

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

قد تتضمن الصفحات المبرمجة بلغة HTML معلمات يتم تمريرها إلى التطبيق المصغر. ولهذا السبب، قد يختلف مظهر التطبيق المصغر نفسه تبعًا للمعلمات التي تم تمريرها.

بما أن التطبيقات المصغّرة كانت متاحة قبل HTML5 ، وقبل أن تصبح واجهات CSS و JavaScript الحديثة و DOM معيارًا، فقد شاع استخدامها أيضًا لتأثيرات بسيطة مثل تمرير مؤشر الماوس وأزرار التنقل. هذا الأسلوب، الذي شكّل مشاكل كبيرة في إمكانية الوصول وأدى إلى إساءة استخدام موارد النظام، لم يعد مستخدمًا، بل كان يُنصح بشدة بتجنبه حتى في ذلك الوقت.

المعلومات الفنية

كانت معظم المتصفحات تُشغّل تطبيقات جافا المصغّرة في بيئة معزولة ، مما يمنعها من الوصول إلى البيانات المحلية مثل نظام الملفات . [ 19 ] يتم تنزيل رمز التطبيق المصغّر من خادم ويب ، وبعد ذلك يقوم المتصفح إما بتضمين التطبيق المصغّر في صفحة ويب أو فتح نافذة جديدة تعرض واجهة المستخدم الخاصة به .

كانت التطبيقات الأولى تعتمد على تحميل كل فئة من فئات التطبيق المصغر على حدة. ورغم صغر حجم ملفات الفئات، إلا أن عددها كان كبيراً في الغالب، مما جعل التطبيقات المصغرة تُعرف ببطء تحميلها. ولكن منذ .jarظهور الملفات، أصبح التطبيق المصغر يُقدّم عادةً كملف واحد بحجم ملف صورة تقريباً (من مئات الكيلوبايتات إلى عدة ميغابايتات).

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

تقنيات مماثلة

أوصى العديد من مطوري جافا والمدونات والمجلات باستخدام تقنية Java Web Start بدلاً من التطبيقات المصغرة. [ 20 ] سمحت Java Web Start بتشغيل كود التطبيق المصغر دون تعديل، والذي تم تشغيله بعد ذلك في نافذة منفصلة (وليس داخل المتصفح المُستدعي).

يتم أحيانًا مقارنة Java Servlet بشكل غير رسمي بأنه "يشبه" تطبيق الخادم، ولكنه يختلف في لغته ووظائفه وفي كل الخصائص الموضحة هنا حول التطبيقات.

تضمين في صفحة ويب

سيتم عرض التطبيق المصغر على صفحة الويب باستخدام appletعنصر HTML المهمل [ 21 ] أو العنصر الموصى به [ 22 ]object . يمكن استخدام العنصر [ 23 ] مع متصفحات عائلة موزيلا ( تم إهماله في HTML 4 ولكنه مُضمّن في HTML 5). يُحدد هذا العنصر مصدر التطبيق المصغر وموقعه. يمكن لكل من الوسمين <applet> و <applet> تنزيل وتثبيت آلة جافا الافتراضية (إذا لزم الأمر) أو على الأقل توجيه المستخدم إلى صفحة الملحق. يدعم الوسمان <applet> و <applet> أيضًا تحميل التطبيقات المصغرة المُسلسلة التي تبدأ في حالة مُحددة (بدلاً من الحالة الابتدائية). يُحدد الوسمان <applet> و <applet> أيضًا الرسالة التي تظهر مكان التطبيق المصغر إذا تعذر على المتصفح تشغيله لأي سبب.embedembedobjectembedappletobject

مع ذلك، ورغم كونها علامةً موصى بها رسميًا في عام ٢٠١٠، لم يكن objectدعمها متسقًا بين المتصفحات، واستمرت شركة صن في التوصية بالعلامة الأقدم للنشر في بيئات متعددة المتصفحات، [ ٢٤ ] لأنها ظلت العلامة الوحيدة التي تدعمها المتصفحات الأكثر شيوعًا باستمرار. لدعم متصفحات متعددة، يتطلب استخدام هذه العلامة لتضمين تطبيق صغير استخدام جافا سكريبت (التي تتعرف على المتصفح وتُعدّل العلامة)، أو استخدام علامات إضافية خاصة بكل متصفح، أو تقديم مخرجات مُعدّلة من جانب الخادم.objectappletobject

اعتمدت إضافة متصفح جافا على NPAPI ، التي أزالت جميع شركات تصنيع متصفحات الويب تقريبًا دعمها أو لا تدعمها، نظرًا لقدمها ومشاكلها الأمنية. في يناير 2016، أعلنت أوراكل أن بيئات تشغيل جافا المبنية على JDK 9 ستتوقف عن دعم إضافة المتصفح. [ 25 ]

المزايا

قد يتمتع تطبيق جافا صغير بأي من المزايا التالية أو جميعها: [ 26 ]

  • كان من السهل جعله يعمل على أنظمة FreeBSD وLinux وMicrosoft Windows وmacOS ، أي جعله متعدد المنصات. كانت معظم متصفحات الويب تدعم التطبيقات المصغّرة خلال العقد الأول من القرن الحادي والعشرين؛ ولكن منذ ذلك الحين، تخلّت معظم المتصفحات عن دعمها لأسباب أمنية. 
  • سيعمل التطبيق المصغر نفسه على جميع إصدارات جافا المثبتة في الوقت نفسه، بدلاً من أحدث إصدار من الملحق فقط. مع ذلك، إذا تطلب التطبيق المصغر إصدارًا أحدث من بيئة تشغيل جافا (JRE)، فسيتعين على المستخدم الانتظار أثناء التنزيل الكبير.
  • كانت معظم متصفحات الويب تخزن التطبيقات المصغرة مؤقتًا، مما يضمن سرعة تحميلها عند العودة إلى صفحة الويب. كما تحسّن أداء هذه التطبيقات مع الاستخدام: فبعد تشغيل أول تطبيق مصغر، يكون جهاز جافا الافتراضي (JVM) قيد التشغيل بالفعل، وتبدأ التطبيقات المصغرة اللاحقة بسرعة (إذ يحتاج جهاز جافا الافتراضي إلى إعادة التشغيل في كل مرة يُعاد فيها تشغيل المتصفح). أما إصدارات JRE 1.5 والإصدارات الأحدث، فكانت تعيد تشغيل جهاز جافا الافتراضي عند تنقل المتصفح بين الصفحات، كإجراء أمني، مما أدى إلى إلغاء هذا التحسن في الأداء.
  • لقد نقلت هذه التقنية العمل من الخادم إلى العميل ، مما جعل حلول الويب أكثر قابلية للتوسع مع ازدياد عدد المستخدمين/العملاء.
  • إذا كان برنامج مستقل (مثل جوجل إيرث ) يتصل بخادم ويب، فعادةً ما يحتاج هذا الخادم إلى دعم جميع الإصدارات السابقة للمستخدمين الذين لم يُحدّثوا برامجهم. في المقابل، يقوم المتصفح بتحميل (وتخزين مؤقتًا) أحدث إصدار من التطبيق المصغر، لذا لا حاجة لدعم الإصدارات القديمة.
  • يدعم التطبيق المصغر بشكل طبيعي تغيير حالة المستخدم، مثل مواقع القطع على رقعة الشطرنج.
  • يستطيع المطورون تطوير وتصحيح أخطاء التطبيقات المصغرة مباشرةً ببساطة عن طريق إنشاء روتين رئيسي (إما في فئة التطبيق المصغر أو في فئة منفصلة) واستدعاء الدالتين init() و start() عليه، مما يتيح لهم التطوير في بيئة تطوير Java SE المفضلة لديهم . كل ما عليهم فعله هو إعادة اختبار التطبيق المصغر في برنامج AppletViewer أو متصفح الويب للتأكد من مطابقته للقيود الأمنية.
  • لا يملك التطبيق المصغر غير الموثوق به أي صلاحية للوصول إلى الجهاز المحلي، ولا يمكنه الوصول إلا إلى الخادم الذي جاء منه. وهذا يجعل تشغيل التطبيقات المصغرة أكثر أمانًا من تشغيل الملفات التنفيذية الأصلية التي تحل محلها. مع ذلك، يمكن للتطبيق المصغر الموقّع أن يتمتع بصلاحية كاملة للوصول إلى الجهاز الذي يعمل عليه، إذا وافق المستخدم على ذلك.
  • كانت تطبيقات جافا الصغيرة سريعة، مع أداء مشابه للبرامج المثبتة أصلاً.

العيوب

كانت تطبيقات جافا الصغيرة تعاني من العيوب التالية مقارنة بتقنيات الويب الأخرى من جانب العميل:

  • تعتمد تطبيقات جافا المصغّرة على بيئة تشغيل جافا (JRE)، وهي حزمة برمجية معقدة وكبيرة الحجم. كما تتطلب عادةً إضافةً لمتصفح الويب. بعض المؤسسات لا تسمح بتثبيت البرامج إلا من قِبل مسؤول النظام. ونتيجةً لذلك، لا يستطيع المستخدمون عرض التطبيقات المصغّرة إلا إذا كان أحدها بالغ الأهمية لدرجة تستدعي التواصل مع مسؤول النظام لطلب تثبيت بيئة تشغيل جافا والإضافة.
  • إذا كان التطبيق يتطلب إصدارًا أحدث من JRE غير المتوفر على النظام، فسيتعين على المستخدم الذي يقوم بتشغيله لأول مرة الانتظار حتى يكتمل تنزيل JRE الكبير.
  • لا تقوم متصفحات الهواتف المحمولة على نظامي iOS أو Android بتشغيل تطبيقات Java المصغرة على الإطلاق. [ 27 ] حتى قبل إيقاف دعم التطبيقات المصغرة على جميع المنصات، تخلت متصفحات سطح المكتب تدريجيًا عن دعم تطبيقات Java المصغرة بالتزامن مع ظهور أنظمة تشغيل الهواتف المحمولة.
  • لم يكن هناك معيار موحد لجعل محتوى التطبيقات المصغرة متاحًا لقارئات الشاشة. ولذلك، أضرت هذه التطبيقات بإمكانية وصول المستخدمين ذوي الاحتياجات الخاصة إلى مواقع الويب.
  • كما هو الحال مع أي برمجة نصية من جانب العميل، جعلت القيود الأمنية من الصعب، بل من المستحيل، على بعض التطبيقات المصغرة غير الموثوقة تحقيق أهدافها المرجوة. فقط من خلال تعديل ملف java.policy في تثبيت بيئة تشغيل جافا (JRE) يمكن منح الوصول إلى نظام الملفات المحلي أو حافظة النظام، أو إلى مصادر الشبكة الأخرى غير المصدر الذي يُقدّم التطبيق المصغر للمتصفح.
  • لم يُعر معظم المستخدمين اهتمامًا كبيرًا للفرق بين التطبيقات المصغّرة الموثوقة وغير الموثوقة، لذا لم يُسهم هذا التمييز كثيرًا في تعزيز الأمان. وقد أُزيلت إمكانية تشغيل التطبيقات المصغّرة غير الموثوقة نهائيًا لمعالجة هذه المشكلة، قبل إزالة جميع التطبيقات المصغّرة.

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

1997: صن ضد مايكروسوفت

رُفعت الدعوى القضائية عام ١٩٩٧ [ ٢٨ ] بعد أن أنشأت مايكروسوفت آلة جافا افتراضية مُعدّلة خاصة بها ، والتي تم تضمينها مع متصفح إنترنت إكسبلورر. أضافت مايكروسوفت حوالي ٥٠ دالة و٥٠ حقلاً [ ٢٨ ] إلى الفئات الموجودة ضمن حزم java.awt وjava.lang و java.io. وشملت التعديلات الأخرى إزالة إمكانية RMI واستبدال واجهة جافا الأصلية من JNI إلى RNI ، وهو معيار مختلف. تمت إزالة RMI لأنها تدعم بسهولة اتصالات جافا-جافا فقط، وتنافس تقنية DCOM من مايكروسوفت . كانت التطبيقات الصغيرة التي تعتمد على هذه التغييرات، أو التي استخدمتها عن غير قصد، تعمل فقط ضمن نظام جافا الخاص بمايكروسوفت. رفعت شركة صن دعوى قضائية بتهمة انتهاك العلامة التجارية ، حيث أن جوهر جافا هو عدم وجود امتدادات احتكارية، وأن الكود يجب أن يعمل في كل مكان. وافقت مايكروسوفت على دفع ٢٠ مليون دولار لشركة صن، ووافقت صن على منح مايكروسوفت ترخيصًا محدودًا لاستخدام جافا دون تعديلات فقط، ولمدة محدودة. [ ٢٩ ]

2002: صن ضد مايكروسوفت

واصلت مايكروسوفت شحن آلة جافا الافتراضية الخاصة بها دون تعديل. على مر السنين، أصبحت هذه الآلة قديمة للغاية، ومع ذلك ظلت الخيار الافتراضي لمتصفح إنترنت إكسبلورر. كشفت دراسة لاحقة أن تطبيقات ذلك الوقت غالبًا ما تحتوي على فئات خاصة بها تحاكي Swing وغيرها من الميزات الأحدث بشكل محدود. [ 30 ] في عام 2002، رفعت شركة صن دعوى قضائية لمكافحة الاحتكار ، مدعيةً أن محاولات مايكروسوفت للاحتكار غير القانوني قد أضرت بمنصة جافا. طالبت صن مايكروسوفت بتوزيع تطبيقها الثنائي الحالي لتقنية جافا كجزء من نظام ويندوز، وتوزيعه كتحديث موصى به لأنظمة تشغيل سطح المكتب القديمة من مايكروسوفت، ووقف توزيع آلة مايكروسوفت الافتراضية (نظرًا لانتهاء مدة ترخيصها، المتفق عليها في الدعوى القضائية السابقة). [ 29 ] دفعت مايكروسوفت 700 مليون دولار لتسوية قضايا مكافحة الاحتكار المعلقة، و900 مليون دولار أخرى لتسوية قضايا براءات الاختراع، و350 مليون دولار كرسوم ترخيص لاستخدام برامج صن في المستقبل. [ 31 ]

حماية

كان هناك نوعان من التطبيقات المصغّرة (Applets) بنماذج أمان مختلفة تمامًا: تطبيقات مصغّرة موقّعة وتطبيقات مصغّرة غير موقّعة. [ 32 ] بدءًا من تحديث Java SE 7 رقم 21 (أبريل 2013)، يُنصح بتوقيع التطبيقات المصغّرة وتطبيقات Web-Start بشهادة موثوقة، وتظهر رسائل تحذيرية عند تشغيل التطبيقات المصغّرة غير الموقّعة. [ 33 ] علاوة على ذلك، بدءًا من تحديث Java 7 رقم 51، تم حظر التطبيقات المصغّرة غير الموقّعة افتراضيًا؛ ويمكن تشغيلها عن طريق إنشاء استثناء في لوحة تحكم Java. [ 34 ]

غير موقع

كانت القيود المفروضة على التطبيقات المصغرة غير الموقعة تُعتبر "صارمة": فهي لا تملك صلاحية الوصول إلى نظام الملفات المحلي، ويقتصر وصولها إلى الويب على موقع تنزيل التطبيق المصغر؛ بالإضافة إلى العديد من القيود المهمة الأخرى. على سبيل المثال، لا يمكنها الوصول إلى جميع خصائص النظام، أو استخدام مُحمِّل الفئات الخاص بها ، أو استدعاء شيفرة الآلة ، أو تنفيذ أوامر خارجية على النظام المحلي، أو إعادة تعريف الفئات التابعة للحزم الأساسية المضمنة في إصدار جافا. ورغم إمكانية تشغيلها في إطار مستقل، إلا أن هذا الإطار يحتوي على ترويسة تُشير إلى أن هذا التطبيق المصغر غير موثوق به. ولا يُؤدي الاستدعاء الأولي الناجح للطريقة المحظورة تلقائيًا إلى ثغرة أمنية، إذ يتحقق مُتحكم الوصول من كامل مسار الشيفرة المُستدعِية للتأكد من أن الاستدعاء لا يأتي من موقع غير مُصرَّح به.

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

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

يمكن للتطبيق المصغر غير الموقّع محاولة تنزيل برامج ضارة مُستضافة على الخادم الأصلي. مع ذلك، لا يمكنه سوى تخزين هذا الملف في مجلد مؤقت (لأنه بيانات عابرة)، ولا يملك وسيلة لإتمام الهجوم بتنفيذه. وقد جرت محاولات لاستخدام التطبيقات المصغرة لنشر ثغرات Phoenix وSiberia بهذه الطريقة، لكن هذه الثغرات لا تستخدم Java داخليًا، كما تم توزيعها بطرق أخرى عديدة.

التوقيع

يحتوي التطبيق المصغر الموقّع [ 35 ] على توقيع يجب على المتصفح التحقق منه عبر خادم مرجعي مستقل يعمل عن بُعد . يتطلب إنشاء هذا التوقيع أدوات متخصصة وتفاعلاً مع القائمين على صيانة الخادم المرجعي. بمجرد التحقق من التوقيع، وموافقة مستخدم الجهاز الحالي، يمكن للتطبيق المصغر الموقّع الحصول على صلاحيات إضافية، ليصبح مكافئًا لبرنامج مستقل عادي. والسبب في ذلك هو أن مؤلف التطبيق المصغر أصبح معروفًا وسيتحمل مسؤولية أي ضرر متعمد. يتيح هذا الأسلوب استخدام التطبيقات المصغرة في العديد من المهام التي لا يمكن تنفيذها باستخدام البرمجة النصية من جانب العميل. مع ذلك، يتطلب هذا الأسلوب مزيدًا من المسؤولية من المستخدم، حيث يقرر من يثق به. تشمل المخاوف ذات الصلة عدم استجابة الخادم المرجعي، والتقييم الخاطئ لهوية الموقّع عند إصدار الشهادات، وقيام ناشري التطبيقات المصغرة المعروفين بأمور لا يوافق عليها المستخدم. لذا، قد تنطوي التطبيقات المصغرة الموقّعة التي ظهرت منذ Java 1.1 على المزيد من المخاوف الأمنية.

توقيع ذاتي

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

لا تختلف مشاكل أمان جافا جوهريًا عن المشاكل المماثلة في أي منصة برمجة نصية من جانب العميل [ 36 ] . وعلى وجه الخصوص، تنطبق جميع المشكلات المتعلقة بالتطبيقات المصغرة الموقعة أيضًا على مكونات مايكروسوفت أكتيف إكس .

اعتبارًا من عام 2014، لم تعد تطبيقات جافا المصغّرة، سواءً كانت موقّعة ذاتيًا أو غير موقّعة، مقبولة من قِبل إضافات جافا الشائعة أو Java Web Start. ونتيجةً لذلك، لم يكن أمام المطورين الراغبين في نشر تطبيقات جافا المصغّرة خيارٌ سوى الحصول على شهادات موثوقة من مصادر تجارية.

البدائل

توجد تقنيات بديلة (مثل WebAssembly [ 37 ] و JavaScript ) تُغطي جميع أو معظم نطاق إمكانيات التطبيقات المصغّرة. كان بإمكان JavaScript العمل جنبًا إلى جنب مع التطبيقات المصغّرة في نفس الصفحة، والمساعدة في تشغيلها (على سبيل المثال، في إطار منفصل أو توفير حلول بديلة للمنصة)، ثم استدعاؤها لاحقًا من كود التطبيق المصغّر. مع تطور JavaScript من حيث الميزات والأداء، تراجع دعم التطبيقات المصغّرة واستخدامها، إلى أن تم إزالتها نهائيًا.

انظر أيضاً

مراجع

  1. "الموقع الرئيسي لبرنامج عرض البروتينات ثلاثي الأبعاد (Openastexviewer) بموجب ترخيص LGPL" . مؤرشف من الأصل في 1 أغسطس 2009. تم الاطلاع عليه في 21 سبتمبر 2009 .
  2. "توليد جهد الفعل في خلايا القلب باستخدام تطبيق جافا تفاعلي. وسائط قابلة للاستثارة. أفلام وسائط قابلة للاستثارة فيتزهوغ ناغومو بيلر رويتر لو رودي نموذج رياضي نمذجة الخلية" . Thevirtualheart.org . تم الاسترجاع في 22 مارس 2022 .
  3. "الموقع الرئيسي لتطبيق مجموعة ماندلبروت المرخص بموجب رخصة جنو العمومية" . مؤرشف من الأصل بتاريخ 8 مايو 2013. تم الاطلاع عليه بتاريخ 29 يوليو 2013 .
  4. "الموقع الرئيسي لتطبيق الشطرنج المرخص بموجب رخصة BSD" . مؤرشف من الأصل في 7 سبتمبر 2009.
  5. "الجيل القادم في تقنية إضافات جافا للتطبيقات الصغيرة" . مؤرشف من الأصل في 4 أبريل 2009. تم الاطلاع عليه في 25 سبتمبر 2009 .
  6. "appletviewer — Java SE 8" . أوراكل . تم الاطلاع عليه بتاريخ 5 ديسمبر 2023 .
  7. "ملاحظات إصدار Java 9" . Oracle.com .
  8. "JEP 289: إيقاف استخدام واجهة برمجة تطبيقات Applet" . Openjdk.java.net . تم الاطلاع عليه بتاريخ 22 مارس 2022 .
  9. "مدونة JPG: الانتقال إلى ويب خالٍ من الإضافات" . Blogs.oracle.com .
  10. مدونة JPG: تحديثات إضافية حول "الانتقال إلى موقع ويب خالٍ من الإضافات"" . Blogs.oracle.com .
  11. "تحديث خارطة طريق عميل جافا" (ملف PDF) . Oracle.com . تم الاطلاع عليه بتاريخ 22 مارس 2022 .
  12. "JEP 398: إيقاف استخدام واجهة برمجة تطبيقات Applet تمهيدًا لإزالتها" . openjdk.org . تم الاطلاع عليه بتاريخ 31 أكتوبر 2025 .
  13. "وداعًا وشكرًا على جميع التطبيقات المصغرة - Inside.java" . inside.java . تم الاطلاع عليه بتاريخ 15 ديسمبر 2025 .
  14. "JEP 504: إزالة واجهة برمجة تطبيقات التطبيقات المصغرة" . openjdk.org . تم الاطلاع عليه بتاريخ 31 أكتوبر 2025 .
  15. "FPC JVM – Free Pascal wiki" . Wiki.freepascal.org . تم الاطلاع عليه بتاريخ 22 مارس 2022 .
  16. "canvas – HTML" . شبكة مطوري موزيلا . تم الاطلاع عليه بتاريخ 15 أغسطس 2015 .
  17. "WebGL – واجهات برمجة تطبيقات الويب" . شبكة مطوري موزيلا . تم الاطلاع عليه بتاريخ 15 أغسطس 2015 .
  18. "عناصر التصميم - كروم الإصدار 8" . تم الاطلاع عليه بتاريخ 15 أغسطس 2015 .
  19. ماكجرو، غاري؛ فيلتن، إدوارد (1999). "ما لا يستطيع كود جافا غير الموثوق به فعله" . Securingjava.com . تم الاطلاع عليه بتاريخ 26 ديسمبر 2021 .
  20. سرينيفاس، راغافان ن. (6 يوليو 2001). "جافا ويب ستارت للإنقاذ" . جافا وورلد . تم الاسترجاع في 13 يوليو 2020 .
  21. "الكائنات والصور والتطبيقات المصغرة في مستندات HTML" . W3.org . تم الاطلاع عليه بتاريخ 22 مارس 2022 .
  22. "الكائنات والصور والتطبيقات المصغرة في مستندات HTML" . W3.org . تم الاطلاع عليه بتاريخ 22 مارس 2022 .
  23. "تنزيلات جافا لجميع أنظمة التشغيل" . Java.com. 14 أغسطس 2012. تم الاطلاع عليه في 14 يونيو 2013 .
  24. "موقف صن من علامات التطبيقات المصغرة والكائنات" . مؤرشف من الأصل في 9 يونيو 2010. تم الاطلاع عليه في 14 يناير 2010 .
  25. "أوراكل تُوقف دعم إضافة متصفح جافا، وتستعد لزوالها" . آرس تكنيكا . 28 يناير 2016. تاريخ الاطلاع: 15 أبريل 2016 .
  26. نظرة عامة رسمية من أوراكل حول تقنية تطبيقات جافا الصغيرة
  27. "كيف أحصل على جافا للأجهزة المحمولة؟" . Java.com . 30 يوليو 2014.
  28. 1 2 زوكوفسكي، جون (1 أكتوبر 1997). "ماذا تعني دعوى صن ضد مايكروسوفت لمطوري جافا؟" . جافا وورلد . تم الاسترجاع في 13 يوليو 2020 .
  29. 1 2 "صفحة صحيفة ذا صن، المخصصة للدعاوى القضائية ضد مايكروسوفت" . مؤرشفة من الأصل في 19 أغسطس 2009.
  30. Kenai.com (2011) مؤرشف في 23 أغسطس 2011 في Wayback Machine. أكثر المشاكل شيوعًا، الموجودة في كود التطبيقات المصغرة التي تمت مراجعتها.
  31. «مايكروسوفت وسن مايكروسيستمز توقعان اتفاقية تعاون واسعة النطاق؛ تسوية الدعاوى القضائية العالقة: اتفاقية مدتها عشر سنوات تضع إطارًا جديدًا للتعاون في القطاع؛ وتقلل التكلفة والتعقيد للعملاء» . مايكروسوفت . 25 فبراير 2010. مؤرشف من الأصل في 25 فبراير 2010. تم الاطلاع عليه في 22 مارس 2022 .
  32. "ما يمكن وما لا يمكن أن تفعله تطبيقات جافا الصغيرة (دروس جافا > النشر > تطبيقات جافا الصغيرة)" . Docs.oracle.com . تم الاطلاع عليه بتاريخ 22 مارس 2022 .
  33. "تطبيق جافا المصغر وبداية الويب - توقيع الكود" . أوراكل . تم الاطلاع عليه بتاريخ 28 فبراير 2014 .
  34. "ماذا أفعل عندما أرى تنبيهًا أمنيًا من جافا؟" . أوراكل . تم الاطلاع عليه بتاريخ 28 فبراير 2014 .
  35. "أمان تطبيقات جافا الصغيرة | أمان منصة جافا 2 | إنفورم آي تي" . Informit.com . تم الاطلاع عليه بتاريخ 22 مارس 2022 .
  36. «لإنصاف الحقيقة، يستخدم عدد أكبر بكثير من مستخدمي الإنترنت منتج نتسكيب مقارنةً بمستخدمي منتج مايكروسوفت اليوم، مع أن الفجوة تبدو آخذة في التضاؤل» . Wiley.com . تاريخ الاطلاع: ١٧ مارس ٢٠١٧ .
  37. «تحاول موزيلا تطبيق جافا كما ينبغي – بمواصفات WASI لجميع الأجهزة والحواسيب وأنظمة التشغيل» . Theregister.com . تاريخ الاطلاع: 6 أكتوبر 2020 .