تور لحظه آخری
امروز : دوشنبه ، 18 تیر 1403    احادیث و روایات:  پیامبر اکرم(ص):برترین ایمان آن است که معتقد باشی هر کجا هستی خداوند با توست.
سرگرمی سبک زندگی سینما و تلویزیون فرهنگ و هنر پزشکی و سلامت اجتماع و خانواده تصویری دین و اندیشه ورزش اقتصادی سیاسی حوادث علم و فناوری سایتهای دانلود گوناگون شرکت ها

تبلیغات

تبلیغات متنی

اتاق فرار

خرید ووچر پرفکت مانی

تریدینگ ویو

کاشت ابرو

لمینت دندان

ونداد کولر

لیست قیمت گوشی شیائومی

صرافی ارکی چنج

صرافی rkchange

دانلود سریال سووشون

دانلود فیلم

ناب مووی

رسانه حرف تو - مقایسه و اشتراک تجربه خرید

سرور اختصاصی ایران

تور دبی

دزدگیر منزل

تشریفات روناک

اجاره سند در شیراز

قیمت فنس

armanekasbokar

armanetejarat

صندوق تضمین

پیچ و مهره

طراحی کاتالوگ فوری

دانلود کتاب صوتی

تعمیرات مک بوک

Future Innovate Tech

آموزشگاه آرایشگری مردانه شفیع رسالت

پی جو مشاغل برتر شیراز

قیمت فرش

آموزش کیک پزی در تهران

لوله بازکنی تهران

میز جلو مبلی

هتل 5 ستاره شیراز

آراد برندینگ

رنگ استخری

سایبان ماشین

قالیشویی در تهران

مبل استیل

بهترین وکیل تهران

شرکت حسابداری

نظرسنجی انتخابات 1403

استعداد تحلیلی

کی شاپ

خرید دانه قهوه

دانلود رمان

وکیل کرج

آمپول بیوتین بپانتین

پرس برک

بهترین پکیج کنکور

خرید تیشرت مردانه

خرید نشادر

خرید یخچال خارجی

وکیل تبریز

اجاره سند

وام لوازم خانگی

نتایج انتخابات ریاست جمهوری

خرید ووچر پرفکت مانی

خرید سی پی ارزان

خرید ابزار دقیق

بهترین جراح بینی خانم

تاثیر رنگ لباس بر تعاملات انسانی

خرید ریبون

ثبت نام کلاسینو

 






آمار وبسایت

 تعداد کل بازدیدها : 1805705020




هواشناسی

نرخ طلا سکه و  ارز

قیمت خودرو

فال حافظ

تعبیر خواب

فال انبیاء

متن قرآن



اضافه به علاقمنديها ارسال اين مطلب به دوستان آرشيو تمام مطالب
archive  refresh

J2ee چیست ؟


واضح آرشیو وب فارسی:سایت ریسک: B O L O T04-06-2007, 09:37 PMقبل از اينكه نظرم رو عرض كنم چند تا نكته مقدماتي لازمه ذكر بشه تا ابهام موجود در ذهن بعضي از دوستان بر طرف بشه منطقا" مقايسه دات نت و J2EE يه چيزي است تو مايه هاي مقايسهء نوت بوك و MainFrame . ( عمدا" از اين دو لفظ براي تشبيه استفاده كردم . بعدا" مشخص ميشه چرا ) هر دو به نوعي كامپيوتر هستند ، يعني محاسبه كننده و هر دو از سخت افزارهائي تحت كنترل نرم افزار تشكيل شده اند اما هر كدام براي هدف خاصي طراحي شده اند و براي كاربرد خاصي مناسب هستند . مقايسه هاي مختلفي بين اين دو تكنولوژي روي اينترنت موجوده كه من به دو دسته تقسيمشون ميكنم . گروه اول كساني هستند كه طرفدار يكي از دو تكنولوژي هستند ( به هر دليلي ) و قصد دارند با براهين و ادله بعضا علمي و بعضا غير علمي برتري يكي رو بر ديگري اثبات كنند و گروه دوم كساني هستند كه بدون تعصب اما با نيت مشخص كردن برتريهاي هر تكنولوژي بر ديگري در حوزه اي خاص توليد شده اند مثلا" يكي ميگه ASP .NET براي توليد محتواي وب بهتره و RMI براي ايجاد ارتباط Multi Tire و ... و في الواقع بگن هر دو چيزهاي خوبي دارند اما هر كدام در يك بخش . "نظر شخصي" من اينه كه هر دو گروه اشتباه ميكنند . اول در مورد علت اين طرز فكر توضيح ميدم ، بعد در مورد بخشهاي مختلف هر دو تكنولوژي يه سري مطلب عرض ميكنم . B O L O T04-06-2007, 09:38 PMسوال : چرا فكر ميكنم ميشه به دات نت و J2EE به عنوان دو موجوديت مستقل نگاه كرد و هر دو رو بررسي كرد اما مقايسه نكرد ؟ جواب : بخاطر مؤلفه هاي ذاتي هر كدام از اين تكنولوژي ها . J2EE يك استاندارد براي تحقق يك Application Server است در حاليكه دات نت يك " نرم افزار" است كه "فقط" كلاسهاي "پايه" براي توليد نرم افزارهاي مستقل يا مرتبط شبكه اي رو در اختيار توسعه گر قرار ميده . دات نت : يعني يك بستر براي ايجاد نرم افزار . يك بار توسط مايكروسافت نوشته شده و بقيه بايد از اون استفاده كنند اما تمام دات نت چيزي بيشتر از يك "بستر اجراي كد و كتابخانه مقدماتي كلاس" نيست . تمام دات نت يك FrameWork است و يك محيط توليد نرم افزار + مستنداتي جهت ايجاد ابزارهاي متفرقه توليد نرم افزار ( e.g : compiler ) J2EE : يك استاندارد است كه مشخص ميكند براي پاسخ دادن به يك نياز نرم افزاري " سازمان مقياس" چگونه بايد با اجزاء نرم افزار رفتار كرد و براي مديريت طول عمر نرم افزار ( Application Lifecycle Management ) چكار بايد كرد . اين استاندارد توسط سان ارائه شده . خيلي ها مبتني بر اين استاندارد نرم افزارهاي خودكار سازي ايجاد كرده اند ، سان مايكروسيستمز نيز هم . استاندارد J2EE ميگه چگونه با "زبان جاوا" يك FrameWork ايجاد كنيم ، چگونه كتابخانهء كلاس براي تمام مقاصد بنويسيم ، بانك اطلاعاتي چطور باشه و ... و شركتهاي متعددي بر اساس اين استاندارد Application Server هاي مبتني بر J2EE ايجاد كرده اند كه برخي شون تمام J2EE رو پياده سازي كرده اند و برخي شون فقط بخشي از اون رو . در مورد جزئيات Application Server هاي J2EE كمي بعد توضيح ميدم . B O L O T04-06-2007, 09:38 PMسوال : پس احتمالا" كليد درك تفاوت ماهيتي دات نت و J2EE در درك صحيح از مفهوم Application Server خلاصه ميشه ، درسته ؟ جواب : بله . Application Server يك بستهء نرم افزاري است كه وظيفه اش Application Lifecycle Management است . يعني از ابتداي تولد يك نرم افزار "سازمان مقياس" تا انتهاي اتمام توليد ، بايد به تمام نيازهاي نرم افزاري پاسخ دهد . يعني اگر برنامه نويس به يك FrameWork احتياج داشت ، Application Server يك Framework به او بدهد ، اگر بانك اطلاعاتي خواست ، Application Server يك بانك اطلاعاتي كامل برايش فراهم كند ، اگر وب سرور خواست ، Application Server يك وب سرور تمام عيار به او بدهد ، اگر براي ارسال نامه هاي الكترونيكي برنامه اش به يك SMTP سرور نياز داشت ، Application Server يك سرور SMTP به او بدهد ، اگر قرار شد براي احراز هويت از Kerberos استفاده كند يك پياده سازي كربرايزد از استك TCP/IP در Application server وجود داشته باشد ، اگر خواست براي منطق محاسباتي برنامه اش يك GUI ايجاد كند ، Application Server يك IDE و GUI Builder به او بدهد ، اگر خواست داده هاي كاربري رو از كارتهاي هوشمند ( smart Card ) دريافت كند ، رابطهاي لازم و API هاي مربوطه را از Application Server بگيرد و ... به ديگر بيان Application Server يك محيط Integrated است براي طراحي و توليد و مديريت و توزيع و كاربرد يك نرم افزار "سازمان مقياس" . شايد اين سوال در ذهن عده اي ايجاد بشه كه مگه تمام اجزاء يك Application Server رو نميشه بصورت منفرد پيدا كرد ؟ وب سرور ، GUI Builder ، سرور پست الكترونيكي ، توابع احراز هويت ، بستر اجراي كد و ... ؟ جواب مثبته اما چه كسي ميتونه تضمين كنه تمام اين اجزاء داراي "سطح" ي يكنواخت و يكسان باشند ؟ ( Innovative Integrated Interface ) يا مثلا" كي ميتونه تضمين كنه يك بستر اجراي كد بتونه توابع دسترسي به بانك اطلاعاتي رو با بهينه ترين وضعيت توليد كنه ؟ يا تضمين كنه اين عناصر با هم سازگاري مناسبي داشته باشن ؟ همگي توليد شده توسط يك بستر خاص باشند كه توسط همون بستر بشه بين اونها ارتباط برقرار كرد ؟ اينجا مسئله سازگاريه . يعني اگر قرار شد يك گروه نرم افزاري براي بزرگترين سازمان بيمه غير دولتي امريكا يك راهكار جامع ERP توليد كند ( يا بخرد و خصوصي سازي كند براي محيطش ) بايد به چه بستري اعتماد كنه كه مطمئن باشه تمام درخواستهاي نرم افزاري " سازمان مقياس" ش رو ميتونه جواب بده و مشخصه هاي اون ، سازمانش رو به يك نرم افزار خاص ، سخت افزار خاص ، پروتكل خاص و ... محدود نميكنه ؟ ( اصولا" محدوديت در ادبيات آي تي ، سطح اعتماد و قابليت وثوق - Reliability - رو كاهش ميده ) اينجاست كه يك Application Server خودنمائي ميكنه . يك Application Server تضمين ميكنه كه از بستر اجراي كد گرفته تا وب سرور ، از توابع امنيتي گرفته تا بانك اطلاعاتي ، از IDE گرفته تا ابزارهاي حمايت از UP ( يا Unified Process ) و ... در بستهء نرم افزاريش وجود داره B O L O T04-06-2007, 09:39 PMسوال : خوب حالا با اين توصيفات J2EE دقيقا" چيه ؟ جواب : J2EE در واقع يوتوپيا ( آرمان شهر ) شركت سان مايكروسيستمز است براي توليد يك Application Server. نتيجه : فكر ميكنم مطالب بالا باعث شده باشه اين تصور غلط كه ميشه بين دات نت و J2EE مقايسه اي وجود داشته باشه ، از بين برده باشه . B O L O T04-06-2007, 09:40 PMابستركت : چه زماني J2EE مناسب است ؟ شركت سان غير از ارائه يوتوپياي يك Application Server كارهاي ديگري هم انجام داده . مثلا" توسعه زبان جاوا . طبيعيه كه زبان جاوا زبان استاندارد توسعه نرم افزارهاي مبتني بر J2EE باشه ، هر چند بر خلاف اظهارات ناشيانه برخي ، J2EE و خصوصا" بستر اجراي كدش ، به زبان جاوا منحصر نيست . يعني همونطور كه [مثلا"] بستر دات نت قابليت پذيرش زبانهاي مختلف رو داره ، بسترهاي مبتني بر جاوا هم ميتونن به ساير زبانهاي برنامه نويسي سرويس بده . يعني براحتي ميشه بين جاوا و ساير كتابخانه هائي كه توسط ساير زبانهاي برنامه نويسي توليد شده ارتباط برقرار كرد . ( Java Native Interface ) هر چند كه مثل دات نت منعطف نيست . سان داره تلاش ميكنه يك Application Server مبتني بر استاندارد خودش يعني J2EE توليد كنه اما هنوز تكميل نشده . ( سان فعاليت گسترده اي براي توسعه خود جاوا و بهينه سازي منطق J2EE و كلاسهاي توليد نرم افزار داره ، فعاليتهاي خفني در هم در عرصه سخت افزار داره ، نبايد انتظاري بيش از اين ازش داشت ) اما نگارشهاي عملياتي متعددي از Application Server هاي مبتني بر J2EE وجود داره كه فقط يكي از اونها تمام جزئيات رو پياده سازي كرده . B O L O T04-06-2007, 09:40 PMمعرفي Application Server اوراكل به عنوان جامعترين Application Server : در ايران اغلب اوراكل رو به عنوان يك بانك اطلاعاتي ميشناسن در حاليكه بانك اطلاعاتي اوراكل فقط بخشي از اون چيزي است كه اوراكل تحت عنوان e-Bussines Suite منتشر كرده . Application Server اوراكل تمام اون چيزهائي كه در وصف يك Application Server عرض كردم داره . بطور مختصر و ليست وار در موردش توضيحاتي عرض ميكنم تا كمي روشنتر بشه بحث : 1. يك بانك اطلاعاتي كامل : اوراكل فعلا" تنها بانك اطلاعاتي است كه نه تنها نسخه هاي متعددي براي MainFrame ها داره ، براي تمام بسترهاي نرم افزاري و سخت افزاري موجود هم نسخه هائي رو ارائه كرده . بزرگترين بانك اطلاعاتي كه اين حقير در جريانش هستم و با اوراكل كار ميكنه بانك اطلاعاتي وزارت انرژي ايالات متحده آمريكاست كه روي يك MainFrame شركت IBM اجرا شده . بانك اوراكل يك نسخهء كامل زبان پرس و جوي ساخت يافته يعني PL/SQL ، يك سوئيت كامل بنام PSP كه براي توليد صفحات وب بطور مستقيم از PL/SQL استفاده ميكنه است . اوراكل تنها بانك اطلاعاتي است كه موتور آن ( DB Engine ) هم ميتونه بصورت توزيع شده و چند بخشي ( Clustered ) اجرا بشه . حتي ميشه بخضي از انجين رو روي يك بستر كوچك وينتل( ويندوز + اينتل) و بخشي ديگر رو روي يك ماشين غول پيكر HP مجهز به HP-UX اجرا كرد . حتي ميشه حين سرويس دهي بانك ، بانك رو از يك پلت فرم به پلت فرم ديگه منتقل كرد . ( ويژگي هاي منحصر به فردش رو عرض كردم ) 2. يك بستر اجراي كد نرم افزار : Application Server شركت اوراكل بطور كامل "بخش نرم افزاري J2EE " يعني كتابخانه هاي كلاسش رو پياده سازي كرده . JDBC Connectors JSP Engine JavaBeans Engine RMI JMS JINI JMX JIRO J2EE CORBA ORB JXTA JXML JCP JNI Web Service Implementation و ... يعني هر كسي هر برنامه اي مبتني بر J2EE نوشته باشه در بستر Application Server اوراكل قابل اجرا و سرويس دهي است . اوراكل J2SE و J2ME رو هم حمايت ميكنه ( دومي براي توليد برنامه هاي موبايل براي پورتابل ديوايسها كاربرد داره ) . همچنين اوراكل بطور كامل يك نسخه از Java Smart Card API رو پياد سازي كرده . در حال حاضر جاوا تنها ابزاري است كه ميشه توسط اون تقريبا" براي تمام كارتهاي هوشمند برنامه نوشت ضمن اينكه توسط قابليت فوق الذكر قطعه كدهاي قابل ذخيره سازي در كارتهاي هوشمند هم قابل توليد است . فرض كنيد يك تابع تبديل تاريخ مينويسيد و تابع رو داخل كارت هوشمند قرار ميديد ، هر وقت نرم افزار اون تابع رو صدا زد كارت رو در كارت خوان ميگذاريد و برنامه شما تابع رو روي كارت هوشمند صدا ميزنه و جواب ميگيره بدون اينكه در مورد پياده سازي اش چيزي بدونه . 3. اوراكل يك وب سرور مخصوص به خود ، همچنين سرورهاي : POP3 SMTP FTP WebDav Cache Server Common Internet File system - CIFS LDAP compatible Directory Service و... رو بطور كامل پياده سازي كرده . تمام اين سرورهاي نرم افزاري كاملا" با هم سازگار هستند و براي كار روي يك محيط مبتني بر J2EE بهينه سازي و خصوصي سازي شدن . 4. اوراكل يك content Management System داره كه قابليت ايجاد پورتال هاي مبتني بر وب روي اينترنت يا اينترانت رو به "نرم افزار" هاي J2EE ميده . 5. اوراكل يك محيط كامل توليد برنامهء كاربردي بنام اوراكل J Developer داره كه يك IDE و GUI Builder كامل است . 6. اوراكل يك سرويس ( يعني نرم افزارهائي + سرويس دهنده هائي ) براي ايجاد ويژوال گزارش از بانك اطلاعاتي داره . گزارشها ميتونن طراحي بشن تا از داده ها استفاده كنن و خروجي بدن ، يا يك سرويس توليد گزارش به يك نرم افزار متصل بشه تا در زمان اجرا مولفه هاي گزارش به سرويس گزارش درخواست داده بشن تا گزارش رو طراحي كنه ، به داده متصل كنه و خروجي بده . بهش ميگن Reporting Service 7. ابزارهاي مدديريتي قدرتمند براي كنترل تراكنشهاي بانك اطلاعاتي خارج از محيط بانك ( منحصر به فرد ) ، كنترل وضعيت اشياء مثلا" EJB ها و سطح دسترسي آنها ، انتقال سرويسهاي از يك پلت فرم به پلت فرم ديگر بدون توقف روند سرويس دهي ، صف گذاري منطقي و مديريت شده درخواستها و ... 8. Load Balancer اوراكل كمك ميكنه سرويسها ، بانكهاي اطلاعاتي و سرورها و ساير نرم افزارهاي مبتني بر وب يا شبكه روي يك بستر توزيع شده اجرا بشن و اگر فشار ترافيك روي يك سرور زياد بود ، Load Balancer درخواستها رو به ساير سرورها كه توسط قابليت Replication Service اوراكل بصورت mirror آماده هستند هدايت ميكنه . اين Load Balancer قابليت درك جلسات كاربري ( Session ) ها يا مثلا" متغيرهاي سطح برنامه ( Application - Level Variables ) رو داره . يعني اگر شما به كتابخانهء ملي سناي امريكا ( Pwered By Sun ) لاگ اين كنيد و در حال انتقال صفحاتي از يك كتاب به دايركتوري شخصي خودتون باشيد و فشار روي سرور بانك اطلاعاتي زياد بشه ، درخواستهاي بعدي شما بصورت خودكار به سرور خلوت تري ارسال ميشن بدون اينكه State-Less بدون محيط به كانال ارتباطي شما لطمه بزنه ، يعني هويت شما و Session شما همچنان معتبر است اما روي يك سرور ديگر ( اين منحصر به فرد نيست اما فقط شركت مكرومديا در JRUN كه اون هم يك Application Server نصفه نيمه است چنين چيزي داره كه در مورد اون هم مطالبي عرض ميكنم ) B O L O T04-06-2007, 09:42 PMنتيجه اول : اگر شما يك Application Server كامل و قابل اتكاء ميخواهيد بايد بستهء نرم افزاري فوق العاده گران قيمت Oracle 11i - e bussines Suite رو تهيه كنيد كه هر انچه ذكر شد داخلش موجوده . نتيجه دوم : براي پاسخ دادن به نيازهاي "خيلي بزرگ" و " سازمان مقياس" كه هزينه هاي ميليوني و ميلياردي براش در نظر گرفته ميشه و خطا در انتخاب معماري يا عدم سازگاري اجزاء نا بخشودني است فقط بايد از يك Application Server استفاده كرد كه ضمن دارا بودن همه چيز يكجا ، سازگاري ، قابليت اتكاء و وثوق ، يك شركت بزرگ و عريض و طويل ازش حمايت كنه . اوراكل يكي از پيشنهادهاي موجوده . در بازار E- bussines دنيا اوراكل قدرتمند ترين فروشنده نرم افزاره ، فقط به عنوان مثال مراجعه كنيد به خبري از اوراكل كه يك پيشنهاد " نه ميليارد دلاري" براي خريد شركت People Soft ( توليد كنندهء ERP هاي قدرتمند ) داده . لازم به ذكره 9 ميليارد دلار ، كمي كمتر از نصف بودجهء يكسال جمهوري اسلامي ايران است !! ياد آوردي اول : يك بستر اجراي كد مثل دات نت ، با يك استاندارد براي توليد Application Server يعني J2EE قابل قياس نيست . ياد آوري دوم : داخل يك Application Server يك بستر اجراي كد هم وجود داره كه سرويسهاي خاصي رو ارائه ميكنه . شايد بشه اين بسترهاي مختلف موجود رو با هم مقايسه كرد . < اتمام مبحث Application Server ها > سوال : اگر انچه دات نت ارائه ميكنه و به همون "شكل" در بسترهاي مبتني بر J2EE هم موجوده مقايسه كنيم چه نتيجه اي ميگيريم ؟ جواب : من دو جور ميتونم به اين سوال جواب بدم . يكي مبتني بر تجربه شخصي . يكي مبتني بر صرفا" ذكر آيتمهاي قابل قياس در مقابل هم . جور دوم (!) : الف. كتابخانه كلاس : دات نت و JDK هر دو كتابخانه هاي قدرتمندي هستند كه اغلب نيازهاي پايه براي توليد نرم افزار رو حمايت ميكنند . اما براي توليد نرم افزارهاي بزرگ مقياس هيچكدام كافي نيستند . دات نت چيز ديگري ندارد اما براي جاوا راهكارهاي ديگري هم وجود دارد . كاربري دات نت راحت تر است . پيچيدگي هاي دات نت هم كمتر است . نمودار يادگيري جاوا بسيار كم شيب است . ( اگر نمودار عمودي پيشرفت باشه و نمودار افقي زمان ) در حاليكه يادگيري دات نت خيلي سريعتر است . ب. زمان اجرا : زمان اجراي دات نت تقليدي صرف از زمان اجراي جاوا ست . هيچ بحثي هم درش نيست . حتي كسانيكه مثل بنده عقلشون كم باشه و بشينن و IL رو با ByteCode مقايسه كنن درك خواهند كرد كه مايكروسافت خلاقيتي از خودش نشون نداده . JIT در هر دو محيط خوب است . سرعت اجراي "برنامه" هاي دات نت از برنامه هاي جاوا كندتر است اگر از JIT استفاده نكند . اين حقيقت رو هر كسي با چند آزمايش كوچولو ميتونه درك كنه . سيستم Code Caching و JITC دات نت كمك زيادي به افزايش سرعت برنامه ها كرده . جاوا با عمر طولاني اش به ادعاي اسكات مك نلي حدود پنجاه بار بهينه سازي شده در حاليكه دات نت هنوز جوونه . به نظر مياد در اين يك مقوله بايد منتظر آينده شد . اما في الحال وضع دات نت در اين راستا خوبه . ج. اتصالات : دات نت از ريموتينگ ، وب سرويس و كام پلاس حمايت ميكنه ( بصورت داخلي ) . جاوا بجاي ريموتينگ چيزي بنام ريموت متد اينووكيشن داره ، وب سرويس رو حمايت ميكنه ، CORBA رو حمايت ميكنه ، چيزي بنام EJB داره كه اشياء شناور در يك "مخزن سازماني" هستند كه افراد ، سرويسها و نرم افزارها بنا به ميزان دسترسي ميتونن ازش استفاده كنن . كنترلهاي دات نت هنوز چنين قابليتي ندارند و دات نت هنوز راهي براي ايجاد يك Object Repository سازماني ارائه نكرده . اشياء كام پلاس و محيط MTS ويندوز هم ( با اينكه ربطي به دات نت نداره بطور مستقيم ) مانند EJB ها منعطف نيستند . EJB ها State-Less نيستند . د. ارتباط با داده : دات نت چيزي بنام ADO .NET ارائه كرده كه راه حلي است منحصر به فرد . جاوا JDBC رو داره كه چه در connection Pooling و چه در objecy pooling به خوبي ADO .NET كار ميكنه اما ADO .NET فوق العاده امكانات زيادي داره . چون اينجا دات نت كار زياده لزومي به توضيح نيست . من با تمام وجود به ADO .NET اعتقاد دارم و تصور نميكنم معادلي داشته باشه ( يكسال و خورده اي پيش چند مقاله كامل در مورد ADO .NET در سايت ايران دولوپرز نوشتم كه اين مطلب رو اونجا هم عرض كردم . يكسال قبل ) ه. امنيت : امنيت در اين حوزه رو "من" به سه بخش تقسيم ميكنم ( تقسيم بندي كاملا شخصي و تجربي ) ه.1) حفاظت از متن كد ه.2) حفاظت از ارتباطات ه.3) حفاظت از خود بستر و حفظ مانائي در مورد اول هر دو محيط ضعيف هستند . Obfuscator ها نميتونن به مفهوم واقعي از كد حفاظت كنند و راهكارهاي Third party موجود هم بيشتر به طنز شبيه هستند . با داشتن IL يا بايت كد براحتي كد اصلي يا كدي " با قابليت هاي" كد اصلي قابل باز-توليد است . پسوردها ، اعداد خصوصي ، كلمه هاي عبور و ... براحتي قابل بازيافت هستند اگر در متن نرم افزارهاي Managed دات نت يا برنامه ها جاوا بكار رفته باشند . اينجا واقعا هيچ ايمني " نميتواند" وجود داشته باشد . در مورد دوم هر دو محيط با Open Standard ها كار ميكنند . از SSL گرفته تا Kerberos و از ارتباط با Directory Service ها گرفته تا CA . در اين مورد تفاوتي وجود نداره . در مورد سوم تا حالا مستندي كه بر قوت يا ضعف يكي دلالت كنه نخوندم ( نميگم نيست ، نخوندم ) و تجربه شخصي و عملي هم ندارم . في المجموع در حوزه امنيت دو محيط چندان متفاوت نيستند . و. انتقال : جاوا از MainFrame ها تا كارتهاي هوشمند رو حمايت ميكنه . دات قراره بزودي بسترهاي ديگه رو حمايت كنه . پس اصولا" در اين زمينه هيچ رقابتي وجود نداره . جاوا پانزده سال جلو تره . من با مونو ( كه قراره بشه دات نت روي لينوكس ) كار كردم و فعلا" ناقص و غير قابل اعتماده . مايكروسافت هم يقينا" تا انتهاي 2005 هيچ نسخه اي از دات نت مبتني بر NIX* ها توزيع نخواهد كرد . ز. توليد محتواي وب : دات نت ASP .NET رو ارائه كرده . جاوا JSP رو . سرعت پاسخگوئي دات نت در كاربردهاي معمولي بالاتره . اما با توجه به محدوديت ويندوز ( به عنوان تنها بستر دت نت ) براي حمايت از ترافيك و فشار بالا ، اگر كاربردهاي خيلي سنگين مد نظر باشه ASP .NET نميتونه حرفي داشته باشه . موتور JSP هم قابليت Clustring داره و ميشه مجموعه اي از سرورها رو با " يك موتور" راه اندازي كرد . ( ميدونم به بحث ربطي نداره اما يكبار يكي ازم پرسيد چرا مايكروسافت براي MSN و هات ميل از فري بي اس دي استفاده ميكنه ؟ و نه ويندوز ؟ جواب بنده اين بود دليل هر چيزي هست ربطي به امنيت نداره . سايت خود مايكروسافت با ترافيك بالا و دشمناني قسم خورده بدون مشكل داره روي ويندوز كار ميكنه . اما وقتي قرار باشه بخاطر ترافيك خيلي بالاي مسنجر و ايميل ، از يك ماشين با مثلا" 30 تا پردازنده استفاده بشه تجربه ويندوز چندان موفقيت آميز نيست ! در حاليكه فري بي اس دي - اچ پي يو ايكس و سولاريس همين حالا روي ماشينهائي بيشتر از پنجاه پردازنده هم خوب كار ميكنند . سان سرور بنام 15K Fire داره - ر.ك بخش سرورهاي سايت سان - به قيمت " ده ميليون دلار" ميفروشتش و 105 تا پردازنده 64 بيتي داره و همين نسخهء سولاريس معمولي روي اون هم كار ميكنه و جواب ميده و توانائيش 6500 ميپسه ! يعني 2000 ميپس قوي تر از بزرگترين مين فريمه IBM - تاريخ اين امار متعلق به يكسال پيشه كه من پروژه اي داشتم در اين مورد ) نتيجه : براي كاربردهاي عمومي وب يعني اونچيزي كه در 99 درصو اوقات مد نظره ASP .NET بهتر است مگر اينكه برنامهء خاصي براي انتقال وجود داشته باشه يا احتمال وجودش قابل تامل باشه . نتيجهء كلي : تا اون حد كه دات نت امكانات و توانائي داره ، قالبليتهاي مشابهش در بستر جاوا موجوده . در برخي موارد دات نت و در برخي ديگر جاوا برتر است الا اينكه اگر كاربرد خيلي بزرگ باشه يا برنامه خاصي براي انتقال بستر وجود داشته باشه يا احتمال وجودش قوي باشه ، در هر حال " تنها گزينهء موجود" جاوا ست ، در غير اين صورت بايد بررسي كرد . B O L O T04-06-2007, 09:44 PMسوال : اگر انچه دات نت ارائه ميكنه و به همون "شكل" در بسترهاي مبتني بر J2EE هم موجوده مقايسه كنيم چه نتيجه اي ميگيريم ؟ جواب : من دو جور ميتونم به اين سوال جواب بدم . يكي مبتني بر تجربه شخصي . يكي مبتني بر صرفا" ذكر آيتمهاي قابل قياس در مقابل هم . جور دوم (!) : الف. كتابخانه كلاس : دات نت و JDK هر دو كتابخانه هاي قدرتمندي هستند كه اغلب نيازهاي پايه براي توليد نرم افزار رو حمايت ميكنند . اما براي توليد نرم افزارهاي بزرگ مقياس هيچكدام كافي نيستند . دات نت چيز ديگري ندارد اما براي جاوا راهكارهاي ديگري هم وجود دارد . كاربري دات نت راحت تر است . پيچيدگي هاي دات نت هم كمتر است . نمودار يادگيري جاوا بسيار كم شيب است . ( اگر نمودار عمودي پيشرفت باشه و نمودار افقي زمان ) در حاليكه يادگيري دات نت خيلي سريعتر است . ب. زمان اجرا : زمان اجراي دات نت تقليدي صرف از زمان اجراي جاوا ست . هيچ بحثي هم درش نيست . حتي كسانيكه مثل بنده عقلشون كم باشه و بشينن و IL رو با ByteCode مقايسه كنن درك خواهند كرد كه مايكروسافت خلاقيتي از خودش نشون نداده . JIT در هر دو محيط خوب است . سرعت اجراي "برنامه" هاي دات نت از برنامه هاي جاوا كندتر است اگر از JIT استفاده نكند . اين حقيقت رو هر كسي با چند آزمايش كوچولو ميتونه درك كنه . سيستم Code Caching و JITC دات نت كمك زيادي به افزايش سرعت برنامه ها كرده . جاوا با عمر طولاني اش به ادعاي اسكات مك نلي حدود پنجاه بار بهينه سازي شده در حاليكه دات نت هنوز جوونه . به نظر مياد در اين يك مقوله بايد منتظر آينده شد . اما في الحال وضع دات نت در اين راستا خوبه . ج. اتصالات : دات نت از ريموتينگ ، وب سرويس و كام پلاس حمايت ميكنه ( بصورت داخلي ) . جاوا بجاي ريموتينگ چيزي بنام ريموت متد اينووكيشن داره ، وب سرويس رو حمايت ميكنه ، CORBA رو حمايت ميكنه ، چيزي بنام EJB داره كه اشياء شناور در يك "مخزن سازماني" هستند كه افراد ، سرويسها و نرم افزارها بنا به ميزان دسترسي ميتونن ازش استفاده كنن . كنترلهاي دات نت هنوز چنين قابليتي ندارند و دات نت هنوز راهي براي ايجاد يك Object Repository سازماني ارائه نكرده . اشياء كام پلاس و محيط MTS ويندوز هم ( با اينكه ربطي به دات نت نداره بطور مستقيم ) مانند EJB ها منعطف نيستند . EJB ها State-Less نيستند . د. ارتباط با داده : دات نت چيزي بنام ADO .NET ارائه كرده كه راه حلي است منحصر به فرد . جاوا JDBC رو داره كه چه در connection Pooling و چه در objecy pooling به خوبي ADO .NET كار ميكنه اما ADO .NET فوق العاده امكانات زيادي داره . چون اينجا دات نت كار زياده لزومي به توضيح نيست . من با تمام وجود به ADO .NET اعتقاد دارم و تصور نميكنم معادلي داشته باش� سایت ما را در گوگل محبوب کنید با کلیک روی دکمه ای که در سمت چپ این منو با عنوان +1 قرار داده شده شما به این سایت مهر تأیید میزنید و به دوستانتان در صفحه جستجوی گوگل دیدن این سایت را پیشنهاد میکنید که این امر خود باعث افزایش رتبه سایت در گوگل میشود




این صفحه را در گوگل محبوب کنید

[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 1393]

bt

اضافه شدن مطلب/حذف مطلب




-


گوناگون

پربازدیدترینها
طراحی وب>


صفحه اول | تمام مطالب | RSS | ارتباط با ما
1390© تمامی حقوق این سایت متعلق به سایت واضح می باشد.
این سایت در ستاد ساماندهی وزارت فرهنگ و ارشاد اسلامی ثبت شده است و پیرو قوانین جمهوری اسلامی ایران می باشد. لطفا در صورت برخورد با مطالب و صفحات خلاف قوانین در سایت آن را به ما اطلاع دهید
پایگاه خبری واضح کاری از شرکت طراحی سایت اینتن