المساعدة - البحث - قائمة الأعضاء - التقويم
نسخة كاملة: الجافا ويب ستارت – Java Web Start
برمجة - شبكات - كمبيوتر - منتديات الفريق العربي للبرمجة > منتديات لغات البرمجة العام > منتدى مبرمجي لغة جافا JAVA
Feras Nasser
بسم الله الرحمن الرحيم


إن من أصعب الأمور التي يواجها أي مبرمج ليس تطوير البرنامج، بل إدارة البرنامج وصيانته.

[/size]

ما هو الــ JWS - Java Web Start؟

طورت شركة Sun Microsystems إطار عمل جديد يسمح للبرامج المطورة في بيئة جافا بالانطلاق بضغطة زر من أي موقع إنترنت.



بكل بساطة لديك برنامج ذات واجهة UI سواء كانتSWING أو AWT وتود نشره على الإنترنت ،كل ما عليك القيام هو تفعيل الخاصية فقط والجافا ويب ستارت يتولى الباقي!!!



كيف يعمل Java Web Start؟

الفكرة من التقنية هي حل مشكلة الــ Installation (تثبيت البرنامج) على جهاز المستخدم، بالإضافة إلى تنبيه المستخدم بوجود إصدار جديد من برنامجك وإنزاله، والتأكد من وجود المكتبات اللازمة لعمل برنامجك على جهاز المستخدم (ففي حال عدم توفرها يقوم الــ JWS بإنزالها على الجهاز). كما يضمن وجود الإصدار المطلوب من Java Run-time.



والسر وراء هذه التقنية هو وجود ما يسمى بالـــ Java Network Launching Protocol أو JNPL، وهو عبارة عن ملف XML يحتوي على معلومات التشغيل لبرنامجك وأسماء المكتبات اللازمة لعمل البرنامج بشكل صحيح. ويمرر هذا الملف لــ بيئة جافا التشغيلية JRE ويقوم بدوره بإنزال الملفات المطلوبة وتحديد طريقة التشغيل وتشغيل البرنامج في الأخير.



طريقة نشر البرنامج؟
فهناك طريقتين لاستخدام التقنية، الأولى القيام بكاتبة ملف JNLP بنفسك، أو الاستعانة بــ IDE مثل NetBeans أو Eclipse وهو يقوم بإعداد الملف بشكل تلقائي (تتوفر هذه الخاصية في IDE بعد إنزال الــ Plug-in المطلوب للــ JWS).



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



أمثلة لبرنامج بالــ Java Web Start :ـ (قم بالضغط على Launch)

http://java.sun.com/products/javawebstart/demos.html





ماذا يحدث بعد تثبيت البرنامج أول مره؟

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

كما يمكنك تحديد من إعدادات الــ JNLP إذا أرت من البرنامج عمل اختصار على سطح المكتب أول العمل من خلال الرابط فقط.



ما هو فرق الــ Applet عنها؟

الفرق الجوهري بينهم هو أن JWS على خلاف Applet لا يعمل من داخل المتصفح إنما يعمل كبرنامج جافا على الجهاز.



ما هي التقنيات المشابه لها؟

الفلاش منافس لهذه الأنواع من التقنيات (بوجه نظري)، وكلاهما يندرج تحت مسمى Internet Rich Applications.



ما الفائدة من استخدامي لها؟

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



هذا رابط لكيفية إعداد NetBeans للحصول على هذه الخاصية: http://www.netbeans.org/kb/articles/matisse-jaws.html



[size="3"]


وهذا مقطع فيديو لمن لا يرغب في القراءة (اتنح وشوف كيف تسويها): http://testwww.netbeans.org/kb/articles/matisse-jaws-flash.html
حسام الملحم
نختبر الموضوع قريبا..... ترقبوا!

حسام
Feras Nasser
إقتباس(حسام الملحم أبومازن @ Dec 25 2007, 04:59 AM) *
نختبر الموضوع قريبا..... ترقبوا!

حسام



بإنتظار إبداعاتك،،،،،،،،،،،،،،،،،،،، وبالتوفيق إن شالله
man_J
مرحبا اخي فراس ،شكرا على هذا المقاله الرائعه ولكن عندي سؤال هل من الممكن ان اعمل برنامج غي GUI BY SWING واضع على SERVER يقوم ال CLIENT بطلب البرنامج بواسطة ال المتصفح بدون تنزيله على جهاز ال CLIENT .................

وشكراااااااا......
Feras Nasser
إقتباس(man_J @ Dec 30 2007, 12:15 PM) *
مرحبا اخي فراس ،شكرا على هذا المقاله الرائعه ولكن عندي سؤال هل من الممكن ان اعمل برنامج غي GUI BY SWING واضع على SERVER يقوم ال CLIENT بطلب البرنامج بواسطة ال المتصفح بدون تنزيله على جهاز ال CLIENT .................

وشكراااااااا......



السلام عليكم أخي العزيز،


سؤلك مو واضح بالنسبة لي، هل تقصد الإستغناء عن GUI أو SWING ؟
السؤال الثاني ماذا تقصد بدون تنزيله على جهاز العميل؟

لأن JWS في الأساس تنزل البرنامج على الكاش ميموري بالجهاز، عشان الــ JRE (أو Java Run-time) يستطيع تنفيذ البرنامج.
ولكن تستطيع أن تتحكم ما إذا كان العميل باستطاعته تشغيل البرنامج دون الحاجة للإتصال بالإنترنت، ويمكنك جعل البرنامج لا يعمل إلا بتوفير إتصال للإنترنت، أو بمعنى أخر جعل البرنامج إما Offline أو Online.

أمل أخي الكريم توضيح المقصود وانا حاضر


فراس
man_J
اخي فراس ، الذي اقصده انه بفرض انه يوجد شبكه محليه وضعت البرنامج على ال Server والبرنامج مصنوع بالبيئة J2SE ....
يعني هل من الممكن ان يقوم ال User بطلب البرنامج عن طريق المتصفح by JWS يعني انزل البرنامج server و user يستطيع تصفحه عن طريق intranet................

man_J
Feras Nasser
إقتباس(man_J @ Dec 30 2007, 02:20 PM) *
اخي فراس ، الذي اقصده انه بفرض انه يوجد شبكه محليه وضعت البرنامج على ال Server والبرنامج مصنوع بالبيئة J2SE ....
يعني هل من الممكن ان يقوم ال User بطلب البرنامج عن طريق المتصفح by JWS يعني انزل البرنامج server و user يستطيع تصفحه عن طريق intranet................

man_J



إقتباس
هل من الممكن ان يقوم ال User بطلب البرنامج عن طريق المتصفح

نعم ممكن، كل ما تحتاجة هو ملف JNLP وثم يتم وضعه كرابط على الصفحة، مثال لشكل الرابط:
كود
http://localhost/xxxxx.jnlp

ومجرد ما يضغط على الرابط تفتح صفحة البداية للــ JWS (بشرط توفر الإصدار المناسب من JRE في جهاز الــعميل)، والــ JWS يتولى باقي إجراءات التثبيت على جهاز العميل (سواء كان على شبكة داخلية أو شبكة خارجية) المهم وصول العميل لملف الــ JNLP.
yadoo86
thankx Feras Nasser

فقط لزياده معلومات : تقوم شركة صن الأن بتطوير لغة جديدة base on JDK تحتى أسم JavaFX , ومن أهم المزياها :
The application that has been wrote in JavaFX can work as Desktop Application or Applte Applicaiton or even Mobile Application !!!

for more information

And this is a big picture:


Very nice regular_smile.gif
Feras Nasser
السلام عليكم،

جدا مشكور أخي الكريم على المعلومة، قمت بتجربت الــ FX منذ فترة، طريقة برمجتها مختلفة عن الجافا التقليدية(لأنها Script)

هذا رابط لوثيقة مقدمة JavaFX http://java.sun.com/developer/technicalArt...avafxscript.pdf


مثال لكود

كود
class HelloWorldModel {
attribute saying: String;
}
var model = HelloWorldModel {
saying: "Hello World"
};
var win = Frame {
title: bind "{model.saying} JavaFX"
width: 200
content: TextField {
value: bind model.saying
}
visible: true
};



وتقدر تعمل برنامج Web Application على شكل برنامج desktop بشكل سريع جداً، ولكن بصراحة ما حبيت الــ Fx كثير، لبعض الأسباب:

- شخصيا لتطوير البرامج السرعة وإختبار الأفكار التي أود تطويرها أستخدم BeanShell وهي لغة Scripting ما تحتاج Compile فقط JRE وتقدر تطوير أي شي. وهو Open Source، لمعرفة المزيد، http://www.beanshell.org/

- من خلال القراءات في النت وجدت أن الكثير لم يحبون Fx وأن لا جديد لــ Sun بذلك، لم تخترع شي خارق كعادتها، وعلى فكرة الي طورها أحد الموظفيها (Chris Oliver).

بصراحة ما كملت تجارب بعدها على أمل أن يتم تطويره أكثر. هذه وجهة نظري الشخصية، قد يختلف البعض معي، بس الهدف مناقشة هذه التقنيات مع الجميع.
Feras Nasser
يـــــــــــــــــــــــــــــا حسام وين الحركات ودي أشوف برامجك على JWS
هذه "نسخة - خفيفة" من محتويات الرئيسية للإستعراض الكامل مع المزيد من الصور والخيارات الرجاء إضغط هنا.
Invision Power Board © 2001-2009 Invision Power Services, Inc.