سلام عليكم
Remote Desktop Sharing and Control
another Remote Desktop Applcation written in [Java RMI]_no socket programming
النسخه المتاحه حاليا للمطورين فقط ،، الأبلكيشن شغال لكن لا يعتمد عليه بشكل نهائي لان في تحسينات كتير محتاجها الأبلكيشن .
ربما في يوم من الأيام ينافس البرامج الأخري في المجال دا .
Features..
1 – Remote Desktop Sharing [BroadCast Only]
2 – Remote Desktop Control [Specific Client]
3 – Send Files Over the Network [Specific Client/s, BroadCast ]___@ Maximum 2GB for Sharing per Time
Accoaring to RMIIO Lib Standards
4 – Send TextMessage [Spcific Client Only]
5 – works under linux/windows till now
6 - نظرياً ( يمكن المشاركه من خارج الشبكة المحلية في حال وجود real ip )
7 – نظرياً ( يمكن مشاركة عدة clients من أنظمة تشغيل مختلفه ) ودي النقطه المحورية اللي ممكن البرنامج ينافس بيها برامج تانية في المجال دا لان معتقدش ان في برامج تانية كدا (مش متأكد ) __ مش بس ويندوز لويندوز أو لينوكس لـلينوكس ،، ممكن واحد ويندوز والتاني لينوكس في حال ان اللي بيعمل share لجهازه شغال علي ماك )
_________________________________
الأبلكيشن زي ما ذكرت فوق مكتوب بالجافا .. RMI Technology .. وهي مبنيه بالفعل علي الـ Socket Programming
وهي لعمل Distribute Systems
وهي عباره عن تقنيه قائمه علي مفهوم الـ RPC - Remote Procedure Call
وهي باختصار تعني استدعاء ميثود او داله من جهاز اخر بعيد يوجد في نفس الشبكه عن طريق أوبجيكت من الكلاس الذي تحتوي علي الميثود دي ،، ولكن الأوبجيكت دا موجود في جهاز أخر يعني باختصار الصورة الآتيه توضح المقصود ..
طيب أزاي انا هيبقي معايا أوبجيكت من الكلاس Player دي الموجوده علي جهاز تاني خالص ؟؟ دا شغل الـ RMI
ملحوظة : الـتعامل كله بيبقي من خلال مفهوم الـ IDL ...
Interface Defination Language
يعني بتكلم مع الجهاز التاني عن طريق Interfaces وليس الكلاسس مباشرة .
تقدر تقول بشكل أبسط ،، ان الـ RMI Apps بتتكتب بطريقه معينه لا تستطيع ان تحيد عنها .
_________________________________
يعني الصورة السابقه تصبح كذلك ..
_________________________________
الـ RMI تقنيه جميله جدا ولكنها للجافا فقط ،، علي عكس الـ CORBA وهي تقنيه اخري تدعم مفهوم الـ RPC ولكن يمكن من خلالها أبلكيشنز مختلفه مكتوبه بلغات مختلفه انها تكلم بعضها ( سي شارب يكلم جافا يكلم سي بلس بلس ) وهكذا
كذلك الـ web services
انصح كل من لا يعلم عنها شئ بتعلمها ،، مبرمجي الـ .Net يمكنهم البحث عن .Net Remoting
وكمان في أجزاء من الكود مستخدمه بنمط معين بشكل ملحوظ ،، الأجزاء دي مطبقه بالـ Callback Design Pattern
_________________________________
مـكتبات ..
في الأبلكيشن دا .. اعتمدت علي مكتبة RMI-IO في إرسال الملفات وهي جميله جدا ولكن عند استخدمها هتكره اليوم اللي اتعلمت فيه RMI ولكن مع الـ FAQ الخاصه بالمكتبة هتلاقي حلول لجميع المشاكل اللي هتقابلك ان شاء الله .. نصيحه لمن ينوي استخدامها قبل كتابة كود واحد لابد ان تقرأ الصفحات الآتيه لأن فيه مشاكل لازم هتقابلك فحلولها كلها موجوده بالفعل + كمان المكتبة لها Dependacies علي مكتبات تانية
الصفحه الرئيسيه http://openhms.sourceforge.net/
FAQ .. http://openhms.sourceforge.net/rmiio/faq.html
+
Lib Dependancies
http://openhms.sourceforge.net/rmiio/dependencies.html
_________________________________
مشاكل
1 - في اللينوكس عند تشغيل البرنامج وتسجيل الديسكتوب في وجود الـ Avant Window Navigator ، أو البرامج المشابهه
الجزء اللي تحت خالص من الديسكتوب دا بيبان بشكل اسود او لون مختلف عن الخلفيه
2 – عملية تسجيل الديسكتوب ثم ارسال الصورة عبر الشبكة ومن ثم عرضها في الويندو الخاصه بها ،، في كل مرة ترسم فيها الصورة الجديده المرسله ، الويندو بيتعملها focusing بالتالي لو انت فاتح الويندو وجيت تعمل أي عمليه خارج الويندو هتلاقي كل شوية الويندو بتاخد الـ focus من العمليه اللي انت بتعملها خارج الويندو بالتالي مش هتعرف تعمل حاجة [تم حل المشكلة]
3 - عملية تسجيل الديسكتوب ثم ارسالها عملية مرهقه بالنسبة للجهاز البروسيسور والرامات ،، ثانيا بالنسبة للشبكة بيبقي الضغط عليها عالي لان مفيش ألجوريزم مستخدم في العمليه دي كل ثانيه او ثانيتين او حتي نصف ثانيه بيتبعت صورة عبر الشبكة لجميع الـ clients
بالتالي هي عمليه مرهقه .. كان فيه اكتر من اقتراح لهذه العمليه وهو ارسال الـ pixels المختلفه فقط في الصورة الحاليه عن الصورة السابقه ،، ولكن من الممكن عملية حساب الـ pixels المختلفه هذه قد تاخذ وقت اطول من الثانيه ،، وأخر وهو عمل compress للصورة باحدي ألجوريزمات الضغط
ربما تحتاج النقطة دي مجهود أكثر بحيث يصبح البرنامج أكثر كفاءة ..
_________________________________
أخيراً .. الكود
دا صفحة البرنامج ... http://sourceforge.net/projects/rdsc/
ودا الكود موجود هنا لينك للـ svn repository
https://sourceforge.net/projects/rdsc/develop
واللي عاوز يشارك في الـ development بيسجل في الـ source forge وبيبعت لي عاليمين في اللينك اللي فات دا
Send a request to join this project
ودا فيديو بيوضح البرنامج والـ features اللي فيه
Part1
https://sourceforge.net/projects/rdsc/files/Project%20Utilities/RDSC_video_.zip.001/download
part2
https://sourceforge.net/projects/rdsc/files/Project%20Utilities/RDSC_video_.zip.002/download
ممكن اللي مش هيشارك في التطوير وعنده اي ملحوظات يشوف الفيديو ويقول اللي عاوزه ،، الملف جزئين بتحملهم الاتنين وتفك الضغط لهم مع بعض عشان ينتج الملف الأصلي
وشكراً.
#################################################
ختاماً احب أشكر أستاذي ومعلمي
دكتر / وليد العدروسي
علي وقته الغالي الذي لم يبخل به علي في امدادي بالأفكار والاقتراحات ، وأشكره جزيل الشكر علي ما استفدته منه في جميع المناقشات التي لابد وان استفيد بشي جديد فيها
فجزاه الله خيراً
سلام عليكم
Remote Desktop Sharing and Control
another Remote Desktop Applcation written in [Java RMI]_no socket programming
النسخه المتاحه حاليا للمطورين فقط ،، الأبلكيشن شغال لكن لا يعتمد عليه بشكل نهائي لان في تحسينات كتير محتاجها الأبلكيشن .
ربما في يوم من الأيام ينافس البرامج الأخري في المجال دا .
Features..
1 – Remote Desktop Sharing [BroadCast Only]
2 – Remote Desktop Control [Specific Client]
3 – Send Files Over the Network [Specific Client/s, BroadCast ]___@ Maximum 2GB for Sharing per Time
Accoaring to RMIIO Lib Standards
4 – Send TextMessage [Spcific Client Only]
5 – works under linux/windows till now
6 - نظرياً ( يمكن المشاركه من خارج الشبكة المحلية في حال وجود real ip )
7 – نظرياً ( يمكن مشاركة عدة clients من أنظمة تشغيل مختلفه ) ودي النقطه المحورية اللي ممكن البرنامج ينافس بيها برامج تانية في المجال دا لان معتقدش ان في برامج تانية كدا (مش متأكد ) __ مش بس ويندوز لويندوز أو لينوكس لـلينوكس ،، ممكن واحد ويندوز والتاني لينوكس في حال ان اللي بيعمل share لجهازه شغال علي ماك )
_________________________________
الأبلكيشن زي ما ذكرت فوق مكتوب بالجافا .. RMI Technology .. وهي مبنيه بالفعل علي الـ Socket Programming
وهي لعمل Distribute Systems
وهي عباره عن تقنيه قائمه علي مفهوم الـ RPC - Remote Procedure Call
وهي باختصار تعني استدعاء ميثود او داله من جهاز اخر بعيد يوجد في نفس الشبكه عن طريق أوبجيكت من الكلاس الذي تحتوي علي الميثود دي ،، ولكن الأوبجيكت دا موجود في جهاز أخر يعني باختصار الصورة الآتيه توضح المقصود ..
طيب أزاي انا هيبقي معايا أوبجيكت من الكلاس Player دي الموجوده علي جهاز تاني خالص ؟؟ دا شغل الـ RMI
ملحوظة : الـتعامل كله بيبقي من خلال مفهوم الـ IDL ...
Interface Defination Language
يعني بتكلم مع الجهاز التاني عن طريق Interfaces وليس الكلاسس مباشرة .
تقدر تقول بشكل أبسط ،، ان الـ RMI Apps بتتكتب بطريقه معينه لا تستطيع ان تحيد عنها .
_________________________________
يعني الصورة السابقه تصبح كذلك ..
_________________________________
الـ RMI تقنيه جميله جدا ولكنها للجافا فقط ،، علي عكس الـ CORBA وهي تقنيه اخري تدعم مفهوم الـ RPC ولكن يمكن من خلالها أبلكيشنز مختلفه مكتوبه بلغات مختلفه انها تكلم بعضها ( سي شارب يكلم جافا يكلم سي بلس بلس ) وهكذا
كذلك الـ web services
انصح كل من لا يعلم عنها شئ بتعلمها ،، مبرمجي الـ .Net يمكنهم البحث عن .Net Remoting
وكمان في أجزاء من الكود مستخدمه بنمط معين بشكل ملحوظ ،، الأجزاء دي مطبقه بالـ Callback Design Pattern
_________________________________
مـكتبات ..
في الأبلكيشن دا .. اعتمدت علي مكتبة RMI-IO في إرسال الملفات وهي جميله جدا ولكن عند استخدمها هتكره اليوم اللي اتعلمت فيه RMI ولكن مع الـ FAQ الخاصه بالمكتبة هتلاقي حلول لجميع المشاكل اللي هتقابلك ان شاء الله .. نصيحه لمن ينوي استخدامها قبل كتابة كود واحد لابد ان تقرأ الصفحات الآتيه لأن فيه مشاكل لازم هتقابلك فحلولها كلها موجوده بالفعل + كمان المكتبة لها Dependacies علي مكتبات تانية
الصفحه الرئيسيه http://openhms.sourceforge.net/
FAQ .. http://openhms.sourceforge.net/rmiio/faq.html
+
Lib Dependancies
http://openhms.sourceforge.net/rmiio/dependencies.html
_________________________________
مشاكل
1 - في اللينوكس عند تشغيل البرنامج وتسجيل الديسكتوب في وجود الـ Avant Window Navigator ، أو البرامج المشابهه
الجزء اللي تحت خالص من الديسكتوب دا بيبان بشكل اسود او لون مختلف عن الخلفيه
3 - عملية تسجيل الديسكتوب ثم ارسالها عملية مرهقه بالنسبة للجهاز البروسيسور والرامات ،، ثانيا بالنسبة للشبكة بيبقي الضغط عليها عالي لان مفيش ألجوريزم مستخدم في العمليه دي كل ثانيه او ثانيتين او حتي نصف ثانيه بيتبعت صورة عبر الشبكة لجميع الـ clients
بالتالي هي عمليه مرهقه .. كان فيه اكتر من اقتراح لهذه العمليه وهو ارسال الـ pixels المختلفه فقط في الصورة الحاليه عن الصورة السابقه ،، ولكن من الممكن عملية حساب الـ pixels المختلفه هذه قد تاخذ وقت اطول من الثانيه ،، وأخر وهو عمل compress للصورة باحدي ألجوريزمات الضغط
ربما تحتاج النقطة دي مجهود أكثر بحيث يصبح البرنامج أكثر كفاءة ..
_________________________________
أخيراً .. الكود
دا صفحة البرنامج ... http://sourceforge.net/projects/rdsc/
ودا الكود موجود هنا لينك للـ svn repository
https://sourceforge.net/projects/rdsc/develop
واللي عاوز يشارك في الـ development بيسجل في الـ source forge وبيبعت لي عاليمين في اللينك اللي فات دا
Send a request to join this project
ودا فيديو بيوضح البرنامج والـ features اللي فيه
Part1
https://sourceforge.net/projects/rdsc/files/Project%20Utilities/RDSC_video_.zip.001/download
part2
https://sourceforge.net/projects/rdsc/files/Project%20Utilities/RDSC_video_.zip.002/download
ممكن اللي مش هيشارك في التطوير وعنده اي ملحوظات يشوف الفيديو ويقول اللي عاوزه ،، الملف جزئين بتحملهم الاتنين وتفك الضغط لهم مع بعض عشان ينتج الملف الأصلي
وشكراً.
#################################################
ختاماً احب أشكر أستاذي ومعلمي
دكتر / وليد العدروسي
علي وقته الغالي الذي لم يبخل به علي في امدادي بالأفكار والاقتراحات ، وأشكره جزيل الشكر علي ما استفدته منه في جميع المناقشات التي لابد وان استفيد بشي جديد فيها
فجزاه الله خيراً
سلام عليكم
عدل سابقا من قبل Falcon في الأربعاء 19 مايو 2010 - 0:29 عدل 1 مرات (السبب : تم حل المشكلة رقم 2)