برنامج جافا

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

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

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

تم تقديم تطبيقات Java في الإصدار الأول من لغة Java، والذي تم إصداره في عام 1995. بدءًا من عام 2013، بدأت متصفحات الويب الرئيسية في التخلص التدريجي من دعم NPAPI ، وهي تقنية التطبيقات الأساسية المستخدمة للتشغيل. مع عدم إمكانية تشغيل التطبيقات تمامًا بحلول عام 2015-2017. تم إيقاف تطبيقات Java بواسطة Java 9 في عام 2017. [7] [8] [9] [10] [11]

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

تعمل تطبيقات Java بسرعات عالية جدًا [ بحاجة لمصدر ] وحتى عام 2011، كانت أسرع بعدة مرات من JavaScript . [ بحاجة لمصدر ] على عكس JavaScript، كان لدى تطبيقات Java إمكانية الوصول إلى تسريع الأجهزة ثلاثية الأبعاد ، مما يجعلها مناسبة تمامًا للتصورات غير التافهة والمكثفة الحوسبة. نظرًا لأن المتصفحات اكتسبت دعمًا للرسومات المعجلة بالأجهزة بفضل تقنية القماش (أو WebGL على وجه التحديد في حالة الرسومات ثلاثية الأبعاد)، [13] [14] بالإضافة إلى JavaScript المجمّع في الوقت المناسب ، [15] أصبح فرق السرعة أقل وضوحًا. [ بحاجة لمصدر ]

نظرًا لأن بايت كود Java متعدد المنصات (أو مستقل عن المنصة)، يمكن تنفيذ تطبيقات Java بواسطة عملاء للعديد من المنصات، بما في ذلك Microsoft Windows و FreeBSD و Unix و macOS و Linux . لا يمكن تشغيلها على الأجهزة المحمولة، التي لا تدعم تشغيل بايت كود Oracle JVM القياسي. يمكن لأجهزة Android تشغيل الكود المكتوب بلغة Java والمُجمَّع لوقت تشغيل Android .

ملخص

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

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

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

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

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

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

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

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

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

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

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

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

سيتم عرض التطبيق الصغير على صفحة الويب باستخدام appletعنصر HTML القديم، [18] أو objectالعنصر الموصى به. [19]embed يمكن استخدام العنصر [ 20] مع متصفحات عائلة Mozilla ( embedتم إيقافه في HTML 4 ولكنه مضمن في HTML 5). يحدد هذا مصدر التطبيق الصغير وموقعه. يمكن لكل من objectالعلامات embedو أيضًا تنزيل وتثبيت آلة Java الافتراضية (إذا لزم الأمر) أو على الأقل تؤدي إلى صفحة البرنامج الإضافي. تدعم العلامات appletو objectأيضًا تحميل التطبيقات الصغيرة المتسلسلة التي تبدأ في حالة معينة (بدلاً من الحالة الأولية). تحدد العلامات أيضًا الرسالة التي تظهر بدلاً من التطبيق الصغير إذا لم يتمكن المتصفح من تشغيله لأي سبب.

ومع ذلك، على الرغم من objectكونها علامة موصى بها رسميًا في عام 2010، فإن دعم العلامة objectلم يكن متسقًا بعد بين المتصفحات واستمرت Sun في التوصية appletبالعلامة الأقدم للنشر في بيئات متعددة المتصفحات، [21] حيث ظلت العلامة الوحيدة المدعومة باستمرار من قبل المتصفحات الأكثر شيوعًا. لدعم متصفحات متعددة، objectيتطلب استخدام العلامة لتضمين أداة صغيرة JavaScript (التي تتعرف على المتصفح وتعدل العلامة)، واستخدام علامات إضافية خاصة بالمتصفح أو تقديم إخراج مُكيَّف من جانب الخادم.

اعتمد مكون المتصفح Java على NPAPI ، والذي أوقفت جميع شركات متصفحات الويب تقريبًا دعمه أو لم تنفذه بسبب عمره ومشاكل الأمان. في يناير 2016، أعلنت شركة Oracle أن بيئات تشغيل Java المستندة إلى JDK 9 ستتوقف عن استخدام مكون المتصفح. [22]

المزايا

يمكن أن يحتوي تطبيق Java الصغير على أي أو كل المزايا التالية: [23]

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

العيوب

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

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

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

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

تم رفع دعوى قضائية عام 1997، [25] بعد أن أنشأت Microsoft آلة Java Virtual Machine معدلة خاصة بها ، والتي تم شحنها مع Internet Explorer. أضافت Microsoft حوالي 50 طريقة و 50 حقلاً [25] إلى الفئات داخل حزم java.awt و java.lang و java.io. تضمنت التعديلات الأخرى إزالة إمكانية RMI واستبدال واجهة Java الأصلية من JNI إلى RNI ، وهو معيار مختلف. تمت إزالة RMI لأنها تدعم بسهولة فقط اتصالات Java إلى Java وتتنافس مع تقنية Microsoft DCOM . تعمل البرامج الصغيرة التي اعتمدت على هذه التغييرات أو استخدمتها عن غير قصد فقط داخل نظام Java الخاص بـ Microsoft. رفعت Sun دعوى قضائية بسبب انتهاك العلامة التجارية ، حيث كانت نقطة Java هي أنه لا ينبغي أن تكون هناك امتدادات خاصة وأن الكود يجب أن يعمل في كل مكان. وافقت Microsoft على دفع 20 مليون دولار لشركة Sun، ووافقت Sun على منح Microsoft ترخيصًا محدودًا لاستخدام Java بدون تعديلات فقط ولفترة محدودة. [26]

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

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

حماية

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

غير موقّع

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

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

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

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

تم التوقيع

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

توقيع ذاتي

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

لا تختلف مشكلات أمان Java بشكل أساسي عن المشكلات المماثلة لأي منصة برمجة نصية من جانب العميل [33] [ بحاجة لمصدر ] . وعلى وجه الخصوص، تنطبق جميع المشكلات المتعلقة بالبرامج الصغيرة الموقعة أيضًا على مكونات Microsoft ActiveX .

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

البدائل

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

انظر أيضا

مراجع

  1. ^ "الموقع الرئيسي لعارض البروتين ثلاثي الأبعاد (Openastexviewer) بموجب ترخيص LGPL". مؤرشف من الأصل في 1 أغسطس 2009. تم الاسترجاع في 21 سبتمبر 2009 .
  2. ^ "توليد جهد الفعل في الخلايا القلبية باستخدام برنامج جافا التفاعلي. الوسائط القابلة للإثارة. الأفلام الوسائط القابلة للإثارة فيتزوغ ناغومو بيلير رويتر لو رودي نموذج النمذجة الرياضية للخلايا". Thevirtualheart.org . تم الاسترجاع في 22 مارس 2022 .
  3. ^ "الموقع الرئيسي لبرنامج Mandelbrot set applet تحت رخصة GPL". مؤرشف من الأصل في 8 مايو 2013. تم الاسترجاع في 29 يوليو 2013 .
  4. ^ "الموقع الرئيسي لبرنامج الشطرنج تحت نظام BSD". مؤرشف من الأصل في 7 سبتمبر 2009.
  5. ^ "الجيل القادم في تقنية المكونات الإضافية لـ Applet Java". مؤرشف من الأصل في 4 أبريل 2009. تم الاسترجاع في 25 سبتمبر 2009 .
  6. ^ "appletviewer — Java SE 8". Oracle . تم الاسترجاع في 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. ^ "تحديث خريطة طريق عميل Java" (PDF) . Oracle.com . تم الاسترجاع في 22 مارس 2022 .
  12. ^ "FPC JVM – Free Pascal wiki". Wiki.freepascal.org . تم الاسترجاع في 22 مارس 2022 .
  13. ^ "canvas – HTML". شبكة مطوري موزيلا . تم الاسترجاع في 15 أغسطس 2015 .
  14. ^ "WebGL – Web API Interfaces". شبكة مطوري موزيلا . تم الاسترجاع في 15 أغسطس 2015 .
  15. ^ "Design Elements – Chrome V8" . تم الاسترجاع في 15 أغسطس 2015 .
  16. ^ McGraw, Gary; Felten, Edward (1999). "What Untrusted Java Code Can't Do". Securingjava.com . تم الاسترجاع في 26 ديسمبر 2021 .
  17. ^ Srinivas, Raghavan N. (6 يوليو 2001). "Java Web Start to the Rescue". JavaWorld . تم الاسترجاع في 13 يوليو 2020 .
  18. ^ "الكائنات والصور والتطبيقات الصغيرة في مستندات HTML". W3.org . تم الاسترجاع في 22 مارس 2022 .
  19. ^ "الكائنات والصور والتطبيقات الصغيرة في مستندات HTML". W3.org . تم الاسترجاع في 22 مارس 2022 .
  20. ^ "تنزيلات جافا لجميع أنظمة التشغيل". Java.com. 14 أغسطس 2012. تم الاسترجاع في 14 يونيو 2013 .
  21. ^ "موقف الشمس من علامات التطبيقات والكائنات". مؤرشف من الأصل في 9 يونيو 2010. تم الاسترجاع في 14 يناير 2010 .
  22. ^ "Oracle deprecates the Java browser plugin, preparings for its demise". Ars Technica . 28 يناير 2016 . تم الاسترجاع في 15 أبريل 2016 .
  23. ^ نظرة عامة رسمية من Oracle على تقنية Java applet
  24. ^ "كيف أحصل على جافا للأجهزة المحمولة؟". Java.com . 30 يوليو 2014.
  25. ^ ab Zukowski, John (1 October 1997). "ماذا تعني دعوى Sun ضد Microsoft بالنسبة لمطوري Java؟". JavaWorld . تم الاسترجاع في 13 يوليو 2020 .
  26. ^ "صفحة صحيفة صن المخصصة للدعاوى القضائية ضد مايكروسوفت". مؤرشف من الأصل في 19 أغسطس 2009.
  27. ^ Kenai.com (2011) Archived 23 أغسطس 2011 at the Wayback Machine المشاكل الأكثر شيوعًا، الموجودة في كود التطبيقات الصغيرة التي تمت مراجعتها.
  28. ^ "مايكروسوفت وصن مايكروسيستمز تبرمان اتفاقية تعاون واسعة النطاق؛ تسوية الدعاوى القضائية المعلقة: اتفاقية مدتها عشر سنوات تحدد إطارًا جديدًا للتعاون الصناعي؛ تقلل التكلفة والتعقيد للعملاء". مايكروسوفت . 25 فبراير 2010. مؤرشف من الأصل في 25 فبراير 2010. تم الاسترجاع 22 مارس 2022 .
  29. ^ "ما يمكن وما لا يمكن لـ Applets فعله (دروس Java™ > النشر > Java Applets)". Docs.oracle.com . تم الاسترجاع في 22 مارس 2022 .
  30. ^ "Java Applet & Web Start – Code Signing". Oracle . تم الاسترجاع في 28 فبراير 2014 .
  31. ^ "ماذا يجب أن أفعل عندما أرى مطالبة أمنية من Java؟". Oracle . تم الاسترجاع في 28 فبراير 2014 .
  32. ^ "أمان تطبيقات Java | أمان منصة Java 2 | InformIT". Informit.com . تم الاسترجاع في 22 مارس 2022 .
  33. ^ "إن عدد مستخدمي شبكة الويب العالمية الذين يستخدمون منتج Netscape اليوم أكبر بكثير من عدد مستخدمي منتج Microsoft، على الرغم من أن الفجوة تبدو في طريقها إلى الانغلاق". Wiley.com . تم الاسترجاع في 17 مارس 2017 .
  34. ^ "تحاول شركة Mozilla القيام بـ Java كما ينبغي لها أن تكون – مع مواصفات WASI لجميع الأجهزة والحواسيب وأنظمة التشغيل". Theregister.com . تم الاسترجاع في 6 أكتوبر 2020 .
  • الإصدار الأحدث من Java Virtual Machine الخاص بـ Sun Microsystems (يتضمن مكونات إضافية للمتصفح لتشغيل تطبيقات Java في معظم متصفحات الويب).
  • معلومات حول كتابة التطبيقات من Oracle
  • تطبيقات توضيحية من Sun Microsystems ( JDK 1.4 – تتضمن كود المصدر)
تم الاسترجاع من "https://en.wikipedia.org/w/index.php?title=Java_applet&oldid=1250242079"
Original text
Rate this translation
Your feedback will be used to help improve Google Translate