صفحه 1 از 2 12 آخرآخر
نمایش نتایج 1 تا 40 از 74

نام تاپیک: یک سوال سرنوشت ساز، مقایسه J2EE و دات نت!

  1. #1

    یک سوال سرنوشت ساز، مقایسه J2EE و دات نت!

    با عرض سلام و خسته نباشید خدمت همه برو بچه های سایت.
    راستش رو بخواهید من تو یک شرایطی قرار گرفتم که میخواهم یکی از دو تکنولوژی زیر رو انتخاب کنم خیلی هم تحقیق کردم ولی واقعا به نتیجه ای نرسیدم.چون خیلی ها با این سوال تعصبی برخورد میکنند. از دو تکنولوژی زیر کدام را انتخاب میکنید چرا؟
    1-j2ee
    2-dot net
    لطفا جنبه های مختلف برنامه نویسی مثل application,web base,server side,database و غیره رو بررسی کنید.
    متاسفانه به علت کمبود وقت در فرصت بعدی توضیحات بیشتری را میدهم.
    موفق باشید.

  2. #2
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    ایران - تهران
    پست
    2,342
    اگر به بخش asp.net‌ مراجعه کنید دقیقا یک تاپیک قدیمی در این مورد و مقایسه آنها از دید صاحبنظران موجود است:
    از لحاظ کارآیی و پرفورمنس ای اس پی دات نت بهتر عمل می کند و سیستم واقعا جامعی است. تنها مورد نگرانی که درباره ی آن در دنیا وجود دارد بحث کمتر تست شدن آن است نسبت به محیط دیگر ذکر شده.
    خیلی رک!
    اگر قصد مهاجرت دارید بدون شک جاوا و J2EE حرف اول را در کانادا می زنند.
    اگر قصد زندگی در ایران را دارید دات نت بدانید (در حد خوب)یکی از برگهای برنده در کاریابی است.
    ( و در ضمن علاقه ای هم به سرهم کردن کلماتی که تجربه ی عملی در مورد آنها ندارم و در ادامه با سواد جلوه دادن خود ندارم )
    موفق باشید

  3. #3
    مهمان
    دوست عزیز من هم خیلی تحقیق کردم و آخر به این نتیجه رسیدم که جفتش خوبه و باید در یه سطحه هر دو رو بلد باشی
    چرا؟چون مثلا یه برنامه میخوای بنویسی برای یک شرکت تو یه هفته هی چه قدر که جاوا بلد باشی و جاوا هم خدا باشه
    نمیتونی(اگه برنامش زیاد باشه)
    ولی با دات نت 2 دیگه سرعت و سادگی به اوج میرسه
    جفتش خوبه ولی اگر واسه کار میخوای همون طور که استاد گفتن اونوریا به جاوا خیلی اهمیت می دن
    تو با هر کدوم دوست داری کار کن
    اطمینان بهت می دم که تو هر کدوم خوب باشی کارت می گیره
    موفق باشی

  4. #4

  5. #5
    کاربر دائمی
    تاریخ عضویت
    اسفند 1381
    محل زندگی
    Iran
    پست
    801
    من فقط این رو میتونم بگم که مقایسه‌هایی که یک محصول رو به طور مطلق نسبت به دبگری برتر میدونن قابل قبول و منطقی نیستند. مثل همین مقایسه آقای ناصر قلی. توی این فقط برتریهای j2ee به عنوان مقایسه :shock: ذکر شده‌اند. در نهایت علیرغم این که من سوادم به هیچ کدوم اینها نمیرسه به نظرم هر دوشون چیزهای توپی هستند. :mrgreen:

  6. #6
    این مقایسه من نیست مقایسه IBM است. در pdf که آدرسش موجوده

  7. #7
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    ایران - تهران
    پست
    2,342
    مقاله قدیمی است
    ثانیا به صورت تحریف شده فقط یک جدول آن ارائه شده در اینجا!

    اینطوری وقت تلف نکنید

  8. #8

  9. #9
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    ایران - تهران
    پست
    2,342
    قبلا هم این مطلب را عنوان کرده بودی!
    http://www.barnamenevis.org/vi...highlight=j2ee

  10. #10

  11. #11

  12. #12
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    ایران - تهران
    پست
    2,342
    تصاویر جالبی دارد! :evil2:
    http://www.gotdotnet.com/team/compar...%20Results.doc

  13. #13
    از لحاظ کارآیی و پرفورمنس ای اس پی دات نت بهتر عمل می کند و سیستم واقعا جامعی است
    علاقه ای هم به سرهم کردن کلماتی که تجربه ی عملی در مورد آنها ندارم و در ادامه با سواد جلوه دادن خود ندارم
    اینطوری وقت تلف نکنید
    :wink:

    **************

    قبل از اینکه نظرم رو عرض کنم چند تا نکته مقدماتی لازمه ذکر بشه تا ابهام موجود در ذهن بعضی از دوستان بر طرف بشه :wink: منطقا" مقایسه دات نت و J2EE یه چیزی است تو مایه های مقایسهء نوت بوک و MainFrame . ( عمدا" از این دو لفظ برای تشبیه استفاده کردم . بعدا" مشخص میشه چرا ) هر دو به نوعی کامپیوتر هستند ، یعنی محاسبه کننده و هر دو از سخت افزارهائی تحت کنترل نرم افزار تشکیل شده اند اما هر کدام برای هدف خاصی طراحی شده اند و برای کاربرد خاصی مناسب هستند . مقایسه های مختلفی بین این دو تکنولوژی روی اینترنت موجوده که من به دو دسته تقسیمشون میکنم . گروه اول کسانی هستند که طرفدار یکی از دو تکنولوژی هستند ( به هر دلیلی ) و قصد دارند با براهین و ادله بعضا علمی و بعضا غیر علمی برتری یکی رو بر دیگری اثبات کنند و گروه دوم کسانی هستند که بدون تعصب اما با نیت مشخص کردن برتریهای هر تکنولوژی بر دیگری در حوزه ای خاص تولید شده اند مثلا" یکی میگه ASP .NET برای تولید محتوای وب بهتره و RMI برای ایجاد ارتباط Multi Tire و ... و فی الواقع بگن هر دو چیزهای خوبی دارند اما هر کدام در یک بخش . "نظر شخصی" من اینه که هر دو گروه اشتباه میکنند . اول در مورد علت این طرز فکر توضیح میدم ، بعد در مورد بخشهای مختلف هر دو تکنولوژی یه سری مطلب عرض میکنم .

    سوال : چرا فکر میکنم میشه به دات نت و J2EE به عنوان دو موجودیت مستقل نگاه کرد و هر دو رو بررسی کرد اما مقایسه نکرد ؟

    جواب : بخاطر مؤلفه های ذاتی هر کدام از این تکنولوژی ها . J2EE یک استاندارد برای تحقق یک Application Server است در حالیکه دات نت یک " نرم افزار" است که "فقط" کلاسهای "پایه" برای تولید نرم افزارهای مستقل یا مرتبط شبکه ای رو در اختیار توسعه گر قرار میده .

    دات نت : یعنی یک بستر برای ایجاد نرم افزار . یک بار توسط مایکروسافت نوشته شده و بقیه باید از اون استفاده کنند اما تمام دات نت چیزی بیشتر از یک "بستر اجرای کد و کتابخانه مقدماتی کلاس" نیست . تمام دات نت یک FrameWork است و یک محیط تولید نرم افزار + مستنداتی جهت ایجاد ابزارهای متفرقه تولید نرم افزار ( e.g : compiler )

    J2EE : یک استاندارد است که مشخص میکند برای پاسخ دادن به یک نیاز نرم افزاری " سازمان مقیاس" چگونه باید با اجزاء نرم افزار رفتار کرد و برای مدیریت طول عمر نرم افزار ( Application Lifecycle Management ) چکار باید کرد . این استاندارد توسط سان ارائه شده . خیلی ها مبتنی بر این استاندارد نرم افزارهای خودکار سازی ایجاد کرده اند ، سان مایکروسیستمز نیز هم . استاندارد J2EE میگه چگونه با "زبان جاوا" یک FrameWork ایجاد کنیم ، چگونه کتابخانهء کلاس برای تمام مقاصد بنویسیم ، بانک اطلاعاتی چطور باشه و ... و شرکتهای متعددی بر اساس این استاندارد Application Server های مبتنی بر J2EE ایجاد کرده اند که برخی شون تمام J2EE رو پیاده سازی کرده اند و برخی شون فقط بخشی از اون رو . در مورد جزئیات Application Server های J2EE کمی بعد توضیح میدم .

    سوال : پس احتمالا" کلید درک تفاوت ماهیتی دات نت و 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 ) و ... در بستهء نرم افزاریش وجود داره .

    سوال : خوب حالا با این توصیفات J2EE دقیقا" چیه ؟
    جواب : J2EE در واقع یوتوپیا ( آرمان شهر ) شرکت سان مایکروسیستمز است برای تولید یک Application Server.

    نتیجه : فکر میکنم مطالب بالا باعث شده باشه این تصور غلط که میشه بین دات نت و J2EE مقایسه ای وجود داشته باشه ، از بین برده باشه .

    ابسترکت : چه زمانی J2EE مناسب است ؟

    شرکت سان غیر از ارائه یوتوپیای یک Application Server کارهای دیگری هم انجام داده . مثلا" توسعه زبان جاوا . طبیعیه که زبان جاوا زبان استاندارد توسعه نرم افزارهای مبتنی بر J2EE باشه ، هر چند بر خلاف اظهارات ناشیانه برخی ، J2EE و خصوصا" بستر اجرای کدش ، به زبان جاوا منحصر نیست . یعنی همونطور که [مثلا"] بستر دات نت قابلیت پذیرش زبانهای مختلف رو داره ، بسترهای مبتنی بر جاوا هم میتونن به سایر زبانهای برنامه نویسی سرویس بده . یعنی براحتی میشه بین جاوا و سایر کتابخانه هائی که توسط سایر زبانهای برنامه نویسی تولید شده ارتباط برقرار کرد . ( Java Native Interface ) هر چند که مثل دات نت منعطف نیست . سان داره تلاش میکنه یک Application Server مبتنی بر استاندارد خودش یعنی J2EE تولید کنه اما هنوز تکمیل نشده . ( سان فعالیت گسترده ای برای توسعه خود جاوا و بهینه سازی منطق J2EE و کلاسهای تولید نرم افزار داره ، فعالیتهای خفنی در هم در عرصه سخت افزار داره ، نباید انتظاری بیش از این ازش داشت ) اما نگارشهای عملیاتی متعددی از Application Server های مبتنی بر J2EE وجود داره که فقط یکی از اونها تمام جزئیات رو پیاده سازی کرده .

    معرفی 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 نصفه نیمه است چنین چیزی داره که در مورد اون هم مطالبی عرض میکنم )

    نتیجه اول : اگر شما یک 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 بهتر است مگر اینکه برنامهء خاصی برای انتقال وجود داشته باشه یا احتمال وجودش قابل تامل باشه .

    نتیجهء کلی : تا اون حد که دات نت امکانات و توانائی داره ، قالبلیتهای مشابهش در بستر جاوا موجوده . در برخی موارد دات نت و در برخی دیگر جاوا برتر است الا اینکه اگر کاربرد خیلی بزرگ باشه یا برنامه خاصی برای انتقال بستر وجود داشته باشه یا احتمال وجودش قوی باشه ، در هر حال " تنها گزینهء موجود" جاوا ست ، در غیر این صورت باید بررسی کرد .

    < اتمام بحث مقایسه بسترهای دات نت و جاوا >

    سوال : من متوجه شدم دات نت دقیقا" چیه و جاش کجاست و متوجه شدم یک Application Server چیه و به چه دردی میخوره و باز هم متوجه شدم فرق اینها در "مقیاس" پروژه است ، حالا میخوام کمی درمورد Application Server های دیگه بدونم .

    جواب : اینترنت دریائی از اطلاعات است که میتونید ازش کمک بگیرید . تجربه شخصی من به استفاده از اوراکل و اوریون محدوده . در مورد JRUN هم مطالعه کردم . اوریون یک Application Server مبتنی بر J2EE است اما برای محیط لینوکس بهینه سازی شده است . در یکی از شرکتهای نفتی ایرانی هم داره ازش استفاده میشه و فوق العاده جوابگوست . اما مثل اوراکل کامل نیست ، مثلا" بانک اطلاعاتی نداره ، باید از چیزی مثل اوراکل یا مای اسکوئل استفاده کرد ، و نواقصی از این دست اما مجانی است و سورس آزاد . www.orionserver.com .
    JRUN محصول مکرومدیاست . این هم ناقصه و خیلی از قابلیتهای اوراکل رو نداره ( اوراکل خیلی خیلی گرونه ) اما برخی مزایای خاصش باعث میشه آدم به انتخابش فکر کنه . مثلا" قابلیت کلاسترینگ و لود بالانسینگ داره یا مثلا" ColdFusion رو حمایت میکنه و ... قیمتش هم ارزونه . مثلا" همین حالا سازمان ملی علوم و تحقیقات و تکنولوژی امریکا یعنی NIST داره از جی ران استفاده میکنه و زبان برنامه های وب اش ، خصوصا بخش امنیتی اش که زیاد کل کل میکنه هم کلد فیوژن است . اپلیکیشن سرورهای دیگه ای وجود دارن که چندان معروف نیستند . مثلا" Borland Application Server که این مورد هم مبتنی بر J2EE است و بخشی از سایت خود بورلند هم روی همین کار میکنه . اپلیکیشین سرور بورلند از اوریون و جی ران کاملتره هر چند هنوز هم از اوراکل عقب تره . دپارتمان نرم افزار "ارتش امریکا" هم بطور کامل از محصولات بورلند استفاده میکنه . برای توسعه نرم افزارهای ویندوزی از دلفی ، برای UP از توگدر و برای ارائه سرویس از اپلیکیشن سرور بورلند . ( وایت پیپر هاش رو میتونید تو سایت خود بورلند پیدا کنید ) و ... موارد متعدد دیگه .

    جور اول : ( تجربه شخصی )

    کار با جاوا یا در مقیاسهای بزرگ Application Server ها جاوا واقعا" سخته . ( خصوصا" اگر آدم به محیطهای قدرتمند و راحتی مثل دلفی عادت کرده باشه ) در حالیکه کار با دات نت واقعا" راحته . کاربری جاوا هم مشکل تر از دات نته . در محیط دات نت اغلب تنظیمات یا وظایف کلیک اند ران هستند در حالیکه برای آماده سازی یک محیط مبتنی بر جاوا برای ارائه واقعی سرویس تخصص و تجربه لازمه و همیشه تجربه های اولیه با شکست همراه هستند . دات نت گرون نیست هر چند اگر واقع بین باشیم مجانی هم نیست . جاوا مجانی است و سورس آزاد . اون چیزی که من بهش فکر میکنم اینه که برای کاربردهای کوچک ، معمولی ، متوسط دات نت مناسبه . برای کاربردهای واقعا" بزرگ دات نت اصولا" جوابگو نیست که بخاد مناسب باشه یا نباشه و جاوا تنها گزینه است حالا میخواد خوب باشه میخواد بد باشه . یعنی اگر قرار باشه سازمانی تیم نرم افزار تشکیل بده ، یک الگو و راه حل جامع ( Total Solution ) برای نرم افزار انتخاب کنه ، برای برنامه نویسهاش پول خرج کنه و پول بیشتری خرج کنه تا بمونن ، قرار نیست برنامه هاش خیلی خیلی بزرگ باشن ، دات نت گزینهء خوبیه . اگر سازمانی قراره تیم نرم افزار داشته باشه و برنامه های فوق العاده بزرگ بنویسه که با توجه به نوع کاربرد احتمال تغییر پلت فرم یا خرید ماشینهای بزرگتر و قوی تر و تغییر پردازنده و .... محتمل باشه ، اون محیط مال جاواست . امیدوارم در تمام متن مطلبم به عبارت " سازمان مقیاس" که برجسته تر بود دقت کرده باشید .

    من قبلا" به برادر عریضی قول داده بودم در مورد اپلیکیشن سرور ها مطلبی بنویسم و جواب این سوال رو هم مایل بودم بدم که شد یک تیر و دو نشون :wink: حالا اگر یک نفر از ملت با مرام برنامه نویس لطف کنه و با سواد و دانش خودش این نوشته رو ویرایش کنه و یه مقاله به درد بخور ازش در بیاره و به بخش مقاله های سایت اضافه کنه ممکنه بتونه خیلی مفید واقع بشه در آینده .

    در خاتمه لازمه توضیح بدم هر چند توانائی پاسخ دادن به هر سوالی در زمینه J2EE و دات نت رو دارم ( مرسی از خود راضی ! :!: ) اما تاکید میکنم نه برنامه نویس دات نت هستم نه برنامه نویس جاوا ، لینک بخاطر مخاطره های شغلی بطور مفصل و کامل در مورد هر دو مطالعه کرده ام ، تنها کار عملی و جدی ام با دات نت نوشتن یک ATL Server با ++C بوده ، البته تجربه عملیم در زمینه جاوا خیلی بیشتره اما بازم ادعائی برنامه نویسی و خبرگی در هیچکدومشون ندارم . مواردی که عرض شد صرفا" برای روشن شدن تفاوتهای ، مزایا و ضرات هر کدوم از عناوین و قدری انتقال تجربه بود و لاغیر . اصراری ندارم که دوستان مطالب من رو بپذیرند اما اگر کسی شبههء علمی یا منطقی در یکی از قسمتها داره با کمال میل میشنوم و بطور قطع و یقین اگر اشتباه نکرده باشم جواب خواهم داد .

    خوش و موفق باشید .
    Gone Inprise

  14. #14
    کاربر دائمی
    تاریخ عضویت
    اسفند 1381
    محل زندگی
    Iran
    پست
    801
    :kiss: :kiss:
    اما یک سوال. ایا خود دات نت با توجه به اینکه سرویسهایی مشابه آنچه ذکر کردید ارایه میده خود یک Application Server محسوب میشه یا اینکه من مفهوم Application Server رو به درستی متوجه نشدم؟ (بعد از 5 بار خوندن :( )

  15. #15
    با توجه به اینکه سرویسهایی مشابه آنچه ذکر کردید ارایه میده خود یک Application Server محسوب میشه
    دات نت فقط یک بستر برای اجرای کد است به همراه یک مجموعه کتابخانه ء کلاس . یقینا" به علت طولانی بودن مطلب ذهنیت خوبی نسبت به مفهوم Application Server پیدا نکردی . دقت کن :

    Applicatio 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 است نه با Application Server ها قابل قیاس . این نه مزیت است نه نقطه ضعف . دات نت اصلا" همین است . کاربردها و فوائد خاصی داره و برای مقیاسهای خاصی مناسبه . محدودیتهای خاص خودش رو داره و توانائی های خاص خودش رو . اما نه تطابق دات نت و J2EE اصلا" منطقی است نه علمی . :)

    یک نگاهی هم به قابلیتهای سوئیت اوراکل بنداز

  16. #16
    کاربر دائمی
    تاریخ عضویت
    اسفند 1381
    محل زندگی
    Iran
    پست
    801
    ممنونم.
    کم کم یه چیزایی داره دستگیرم میشه.

  17. #17
    بنیان گذار Barnamenevis آواتار مهدی کرامتی
    تاریخ عضویت
    اسفند 1381
    محل زندگی
    کرج، گلشهر
    سن
    46
    پست
    6,379
    مطلب بسیار جالبی بود!

    متشکرم++ :)

  18. #18

  19. #19
    thanks alot....U R AN Expert
    آقا خیلی با حالید واقعا جامع جواب دادی...ممنون از همه دوستان.
    حالا یک سوال دیگه ....البته ببخشید ها...
    آیا در ایران تا به حال یک پروژه درست و حسابی ( اینتر پرایز ) انجام شده؟ البته با جاوا؟
    آیا شرکتی هست که تخصصی در زمینه جاوا کار کرده باشه؟
    اگر هست لطفا معرفی کنید؟
    آیا در مورد جاوا هم مانند دلفی کامپوننت های برامه نویسی با حال مثلا برای دریافت کانالهای ماهواره و .... کامپوننت های خفن وجود دارد؟

  20. #20
    الف. بله . زیاد . راستی Enterprise رو اِنترپرایز میخونن :wink:

    ب. شرکتهای معدودی تخصصا" در زمینه جاوا کار میکنند . من زمانی تو یکیشون کار میکردم که بنا به ملاحظانی اسمش رو نمیگم . اما به عنوان مثال گروهی از فارغ التحصیلان دانشگاه شریف یک تیم نرم افزاری راه انداخته اند که صرفا" روی J2EE متمرکز است و نرم افزارهای قدرتمندی برای UP نوشته اند که دو تاش رو توی نمایشگاه اله کامپ خودم از نزدیک دیدم اما متاسفانه اسمش یادم نیست . بپرس امار بهت میدن

    آیا در مورد جاوا هم مانند دلفی کامپوننت های برامه نویسی با حال مثلا برای دریافت کانالهای ماهواره و .... کامپوننت های خفن وجود دارد؟
    ج. خیر . حداقل به اون خفانت خیر .

    موفق باشی
    UNIX is simple. It just takes a genius to understand its simplicity
    -- Dennis Ritchie

  21. #21
    اقا ما که کلی حال کردیم و به کلی از سوالاتمون که مدت ها بود تو فکرم بود جواب داده شد. حیلی خوش حالم که میبینم در جمع ما کسی با سطح مطالعاتی شما وجود داره. به شخصه میگویم از وقتی که با شما اشنا شدم سطح مطالعه خود را چند برابر کردم تا کمی حرف برای گفتن داشته باشم ولی همه اینا پیش شما و زحمات شما هیچ چیز نیست اجرتون با خدا ما که نمی تونیم به شما کمکی بکنیم.(چیزی بلد نیستیم تا بتونیم کمکی هم بکنیم)اگر دیگر دوستان با این نظر مخالفند به من حمله نکند چون شاید در کل ایران تنها به اندازه چند انگشت دست به سطح اطلاعات ایشان بتوان پیدا کرد که هم میاد و ما را حداقل با این مباحث اشنا میکند. ما که خودمونو بکشیم از به این زودی ها به جای ایشان نمی رسیم :roll:

  22. #22
    :flower: :heart: Inprise

  23. #23
    عالی بود :kiss:

  24. #24
    با تشکر فراوان از همه دوستانی که در مورد این سوال به ما حال دادند.
    من تحقیقاتی رو در زمینه انجام پرژه ها انجام دادم.فکر میکنم بزرگترین پروژه ای که در ایران با j2eeانجام شده پروژه پلیس 110 هستش. که ترکیبی از oracle and j2ee هست.
    این پروژه دارای منطق ساده ای میباشد ولی data entry بسیار زیادی دارد .مثلا 600 رکورد در ثانیه...حالا بگذریم. :shock:
    فرض کنید اینجانب میخواهم برای یک دانشگاه یک برنامه تحت وب بنویسم. و از طرفی میدونیم که سرور هایی که اوراکل رو پشتیبانی میکنند بسیار گران هستند.
    پروژه در حد اینترپرایز میباشد 8-) شما با توجه به شرایط ایران کدام را پیشنهاد میکنید.
    عدهای معتقد هستند (همانطوز که در نظرات هم دیدیم) در ایران فقط asp .
    یک مثال دیگر هم در رابطه با پروژه های انجام شده در ایران میتوان به پروژه عوارض خودرو اشاره کرد.
    این پروژه با سه تکنولوژی cgi , servlet,asp.net بطور جدا گانه نوشته شد و روی یک سخت افزار یکسان تست شد. نتایج زیر بدست آمده است.
    asp.net (windows 2003 .net server +iis 6 بسیار مناسب
    servlet +apache+linux سرعت نسبت به asp بسیار کم ولی بسیار stable
    cgi حرفشو نزن... :lol:
    آقا من واقعا قاطی کردم....حالا میخواهم همشو یاد بگیرم و خودم تست کنم.به نظر شما میشه همشو یاد گرفت؟؟؟؟؟؟؟؟ :cry:

  25. #25
    من تحقیقاتی رو در زمینه انجام پرژه ها انجام دادم.فکر میکنم بزرگترین پروژه ای که در ایران با j2eeانجام شده پروژه پلیس 110 هستش. که ترکیبی از oracle and j2ee هست.
    پروژه پلیس 110 اصلا" در قد و قوارهء این حرفها نیست که اسمش رو بشه گذاست سازمان مقیاس . پروژهء مرکز اورژانس تهران از اون بزرگتره ! یکی از بزرگترین پروژه های پیاده شده بصورت J2EE پروژه کنترل و مدیریت منابع وزارت نفت است . دیگری سیستم ارتباط بانک مرکزی ( شبکه شان هم ماهواره ای و X.25 است ) و ...

    سرور هایی که اوراکل رو پشتیبانی میکنند بسیار گران هستند.
    شما با توجه به شرایط ایران کدام را پیشنهاد میکنید.
    الف. در ایران اینجور چیزها گران نیست
    ب. کاربرد اوراکل را بدون Application Server خودش ، حداقل من یکی ، توصیه نمیکنم . دلائلش مفصله .

    حالا میخواهم همشو یاد بگیرم و خودم تست کنم.به نظر شما میشه همشو یاد گرفت؟؟؟؟؟؟؟؟
    که چی ؟ من حتی نتیجه آزمایشاتی که نوشتی رو نمیتونم قبول کنم و حدس میزنم تمامش توسط افراد نه چندان متخصص انجام شده . به عنوان مثال از کجا به Stable بودن ترکیب Servlet ولینوکس در مقابل Asp رسیده اند ؟ و Stability رو چطور میشه آزمایش کرد ؟ یا مناسب بودن ASP .NET یعنی چی و نسبت به چی سنجیده شده و .... ؟ پروژهء شما با اون وصفی که گفتی ( برنامهء کاربردی مبتنی بر وب برای یک دانشگاه ) با توجه به انچه من از مفهوم نرم افزار در دانشگاهههای ایران سراغ دارم و با توجه به اینکه تو میخواهی براشون برنامه نویسی ، چیز زیاد بزرگ و جدی نمیتونه باشه . بجای اینکه خودت رو توی یک دردسر بزرگ بندازی ، با هر تکنیکی که بلدی ، asp ، php ، dot net ، جاوا و ... برنامه را بنویس و سعی کن همون رو خوب بنویسی . اما در جواب سوالت : بله میشه همشون رو حتی خیلی خوب یاد گرفت . زمانی که میبره وابسته است به میزان توان تو . اما تصور میکنم الا در مواردی معدود ، برای هیچ فردی نه لازم و نه معقوله که چنین کاری انجام بده ، حداقل من فکر میکنم در این مسیر اغلب آدمها شکست میخورند و عده کمی موفق میشن در حالیکه اکسپرت شدن در یک حوزه نه تنها کار زیاد سختی نیست بلکه میتونه فوائد بیشتری هم برات داشته باشه . ( خیالت تخت باشه پروژه های غول پیکر در ایران فقط به مجموعه های دولتی مربوط هستند و نه جای دیگه . مفهوم غول پیکر رو میتونی در یک بانک اطلاعاتی روی Enterprise Server های IBM که داده پردازی ایران وارد میکنه و چندین کانال ارتباطی ماهواره ای و *** و هزاران کاربر در چندین شهرستان و .... درک کنی . چنین نرم افزارهائی که قیمت فوق العاده سرسام آوری دارند توسط چند شرکت مهندسی خاص منظور که دولتی هم هستند ارزیابی و به پیاده ساز واگذار میشن که فی المجموع این عده در ایران از پنجاه نفر کمتر هستند در قالب سه چهار تا شرکت . بقیهء هر آنچه نرم افزار وجود داره یا خواهد داشت نه بهشون میشه گفت غول پیکر و سازمان مقیاس و نه در حد و اندازهء این هستند که لازم باشه یک معماری فوق العاده جدی و پیچیدهء J2EE براشون در نظر گرفته بشه . اینکار فوق العاده هزینه بر و دشواره . برای اون موردی که تو گفتی اگر من باشم ، به تو که دیدم در بخش دلفی هم فعالیت میکنی ، تولید ISAPI با دلفی یا حتی نوشتن برنامه با asp را توصیه میکنم . مورد اول سریعتر است در مرحله کاربرد و مورد دوم سریعتر در مرحله تولید . اگر هم میخواهی ضمن اینکه سریع کار میکنی خروجی خوب و با کیفیتی داشته باشی و در آینده هم برنامه ات در ایران قابل توسعه باشه دات نت رو انتخاب کن . بین سی شارپ و دلفی و ... با هر کدوم راحت تری . )

    موفق باشی

  26. #26
    خیلی ممنون از راهنماییتون ما رو که تو کف گذاشتید.
    :shock: 8-)
    به این نتیجه رسیدم که برم یک کمی بیشتر تحقیق کنم ......
    احساس بیسوادی میکنم.... :D

  27. #27
    آقای Inprise
    خیلی قشنگ بود روحم تازه شد تا حالا مقاله به این خوبی و مفیدی در IT نخونده بووووووووووووووودم واقعا حال دادی دستت درد نکنه ای ول خیلی عشق کردم اینم تقدیم به تو :flower: :heart: :gift: :kiss: :lol: :wink:
    VIP=Very Important Person

  28. #28
    برای پروژه های کوچک و متوسط از دات نت و برای پروژه های بزرگ از J2EE
    این که دات نت مال پروژه های متوسط است را خود ماکروسافت توی کتابهای MCSD اش نوشته ........

  29. #29
    کاربر دائمی آواتار hmm
    تاریخ عضویت
    مهر 1382
    محل زندگی
    ایران - یزد
    پست
    1,229
    آقا عجب تاپیکی شده در حد دکترا
    من رو اوراکل تعصب ویژه ای دارم ولی متعصفانه فقط با بانک اطلاعاتی آن کار میکنم
    با این مقاله تصمیم گرفتم یادگیری application server رو شروع کنم
    اگه منابعی هم دارید معرفی کنید
    ممنون

  30. #30

    دات نت و j2ee قابل مقایسه هستند

    من مطلب مفصلی که Inprise عزیز نوشته بود را مطالعه کردم. در واقع این صدمین باری است که مقایسه ای از این نوع را مطالعه می کنم. به نظر من این مقایسه هم مانند مقایسه های دیگر متمایل به یکی از دو جناح بود! صادقانه بگویم منطق بکار رفته در مطلب ایشان منطق طرفداران جاوا است. گفتن این حرف که J2EE یک استاندارد است و دات نت یک نرم افزار یک نظر جانبدارانه است. اصلا استاندارد بودن یک چیز را چه کسی تعیین می کند که بخواهیم صحبت از استاندارد بودن آن بکنیم؟ جاوا را تاحدود زیادی شرکت سان مشخص می کند و دات نت را هم مایکروسافت. اگر هم بخواهیم بحث استاندارد بودن را مطرح کنیم باید توجه داشته باشیم که خیلی از عناصر هر دوپلاتفرم در سازمان های بین الملی استاندارد ثبت شده اند.

    من تقریبا نظر این دوست خوبم را (که البته فرد مطلع و باسوادی است ) رد می کنم. چون با همان ظرافت همیشگی منطق طرفداران جاوا میخواهد بگوید فیل را که با فنجان مقایسه نمی کنند؟ جاوا فیل است و ... این نوع مقایسه ها کمکی به مشتری نمی کند. این شکل مقایسه من را یاد نظرات طرفداران پرسپولیس و استقلال می اندازد که این یکی می گوید قرمز تو خون همه انسانهاست و آن دیگری می گوید آبی رنگ آسمونه و مافوق همه است ! ببینید دوستان عزیز ، شما قبل از اینکه بخواهید این دو پلاتفرم را مقایسه کنید باید با مدل نرم افزاری این دو آشنا باشید. در مدل جاوایی منطق این چیزی که دوست عزیزمان از آن به عنوان Application Server یاد کرد اینست که یک سرور همه کاری بتواند انجام دهد. در منطق مایکروسافت اینطور نیست. تمام عناصر و اجزایی که در یک App Server جاوایی هست در پلاتفرم دات نت هم هست منتها در دنیای مایکروسافتی این عناصر جدا جدا هستند و جداگانه به فروش می رسند. وقتی شما یک App Server اوراکل می خرید درست است که خیلی کارها برایتان انجام می دهد یعنی هم وب سرور است هم ایمیل سرور است هم دیتا بیس دارد و ... ولی در مدل مایکروسافت هرکدام از اینها یک سرور و یک محصول جداگانه است. این خیلی هنر نیست که شما یک سرور همه کاره داشته باشید. گاهی اوقات شما فقط یک کار مشخص را از سرور انتظار دارید. در عمل خیلی اوقات Feature های مختلف یک App Server بلا استفاده می ماند. به همین دلیل است که خیلی وقتها خریدن اوراکل گران تمام میشود. البته این مساله نه دلیل برای خوب بودن و نه دلیل برای بد بودن آن است . مدل نرم افزاری متفاوت است.

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

    در مجموع می خواهم بگویم دات نت و j2ee قابل مقایسه هستند و گفتن این حرف که این دوتا قابل مقایسه نیستند خودش یک حرف نادرست است. هرکدام از این دو معایب و مزایایی دارند که قابل بحث و بررسی است. در پاسخ به این پرسش که کدام یکی از این دو بهترند و کدام را باید استفاده کرد باید دید که موضوع پروژه چیست و قرار است چه کاری انجام شود در آنصورت می توان پاسخ داد که آیا دات نت یا جاوا کدامیک برای آن کار خوبند.
    من سعی می کنم در آینده نزدیک این بحث را از نظر فنی در اینجا یا در سایت خودم باز کنم.

  31. #31
    سلام بهروز ؛

    خوشحالم که نظرت رو اینجا میبینم :)

    گفتن این حرف که J2EE یک استاندارد است و دات نت یک نرم افزار یک نظر جانبدارانه است. اصلا استاندارد بودن یک چیز را چه کسی تعیین می کند که بخواهیم صحبت از استاندارد بودن آن بکنیم؟ جاوا را تاحدود زیادی شرکت سان مشخص می کند و دات نت را هم مایکروسافت. اگر هم بخواهیم بحث استاندارد بودن را مطرح کنیم باید توجه داشته باشیم که خیلی از عناصر هر دوپلاتفرم در سازمان های بین الملی استاندارد ثبت شده اند.
    در "حقیقت"نه در ذهن من و نه در عمل هیچ وقت جانبداری از جاوا وجود نداشته . وقتی گفتم J2EE یک "یوتوپیا" است برای تولید یک AppServer یعنی بر خلاف دات نت که صرفا" یک نرم افزار است ( متشکل از تعداد فایل باینری در کنار یک SDK و یک محیط توسعه ) یک "نرم افزار" نیست ! پس منطقا" دو چیز که از یک جنس نیستند با هم قابل مقایسه نیستند ! تمام منظور من از بکار بردن این ادبیات القاء این مسئله بود/هست که این دو موجود از دو جنس مختلف ، برای دو هدف مختلف طراحی شده اند .


    در مدل جاوایی منطق این چیزی که دوست عزیزمان از آن به عنوان Application Server یاد کرد اینست که یک سرور همه کاری بتواند انجام دهد. در منطق مایکروسافت اینطور نیست. تمام عناصر و اجزایی که در یک App Server جاوایی هست در پلاتفرم دات نت هم هست منتها در دنیای مایکروسافتی این عناصر جدا جدا هستند و جداگانه به فروش می رسند. وقتی شما یک App Server اوراکل می خرید درست است که خیلی کارها برایتان انجام می دهد یعنی هم وب سرور است هم ایمیل سرور است هم دیتا بیس دارد و ... ولی در مدل مایکروسافت هرکدام از اینها یک سرور و یک محصول جداگانه است. این خیلی هنر نیست که شما یک سرور همه کاره داشته باشید. گاهی اوقات شما فقط یک کار مشخص را از سرور انتظار دارید. در عمل خیلی اوقات Feature های مختلف یک App Server بلا استفاده می ماند. به همین دلیل است که خیلی وقتها خریدن اوراکل گران تمام میشود. البته این مساله نه دلیل برای خوب بودن و نه دلیل برای بد بودن آن است . مدل نرم افزاری متفاوت است
    ممنونم که عرایض من رو به بیان دیگری نوشتی :) بنده هم چیزی فراتر از این نگفتم . در واقع چیزی که J2EE داره برای رسیدن بهش تلاش میکنه یک Total Solution است در حالیکه مایکروسافت ، کاملا" پرکتیکال و کاربردگرا ، محصولاتش رو توسعه میده ، اون هم برای ردهء خاصی از کاربردها . این نکته دقیقا" مؤید همین مساله هست که J2EE و بستر دات نت موجودات "قابل قیاس"ی نیستند .

    ( و اگر دقت کنی در تمام این نوشته ها تلاش من بر این بوده که اول ذهنیت منطقی بودن مقایسه رو از بین ببرم . بعد تناظری بین اجزاء جاوا ( و نه J2EE ) و دات نت برقرار کنم و این دو موجودیت رو با هم مقایسه کنم )


    اینکه دات نت را تا سطح یک نرم افزار نزول دهیم و جاوا را به مین فریم و دات نت را به نوت بوک تشبیه کنیم ، از آن حرفهاست و به نظر من جانبدارانه است.
    اگر تلقی تو از یک حرف جانبدارانه ، " یک حرف الزاما غیر منطقی است" ، نه این یک حرف جانبدارانه نیست ، اما اگر ممکن میدونی یه حرف جانبدارانه بتونه منطق داشته باشه :

    "حقیقت" غیر قابل انکاری وجود داره بنام قابلیت پاسخگوئی و بستر اجرا که در هر دو جاوا ، روی بسترهای بزرگ و گسترده جوابگو و دات نت غیر جوابگو است . اگر به مثال مین فریم وزارت انرژی امریکا مراجعه کنی خواهی دید که وقتی کاربردها از سایز خاصی بالاتر میرن ، باید از تکنولوژی هائی استفاده کرد که Scalable یا اصطلاحا" مقیاس پذیر باشن . یک نرم افزار مبتنی بر دات نت نهایتا ممکنه بتونه روی یک کلاستر ویندوزی بزرگ کار کنه ، با محدودیتهای خاص ویندوز روی معماری های SMP ( یا Symmetric Multi Process ) اما یک نرم افزار مبتنی بر جاوا از کلاسترهای "ارزان قیمت" لینوکس ( با بی شمار سناریوی موفق قابل مطالعه ) تا مین فریمهای غول پیکر IBM قابل اجراست ! این "حقیقت" رو نمیشه انکار کرد :)

    در مجموع می خواهم بگویم دات نت و j2ee قابل مقایسه هستند و گفتن این حرف که این دوتا قابل مقایسه نیستند خودش یک حرف نادرست است. هرکدام از این دو معایب و مزایایی دارند که قابل بحث و بررسی است
    این دقیقا همون چیزیه که من باهاش کاملا" مخالفم . "جاوا" و دات نت قابل مقایسه هستند ، مسامحتا" ! J2EE که الگوی ایجاد AppServer است ، تشکیل شده از بستر و سرویس ، قابل مقایسه با دات نت به عنوان یک بستر ، نیست ! شاید اگر در آینده آنچه تو بهش اشاره کردی ( دات نتیزه شدن تمام سرویسهای مایکروسافت ) ، بشه در این باره ، یه پروندهء جدید باز کرد ، اما حداقل حالا ، مقایسه موجودی بنام Oracle Appserver با دات نت (؟) از نظر من نمیتونه محمل علمی قابل دفاعی داشته باشه .

    باید دید که موضوع پروژه چیست و قرار است چه کاری انجام شود در آنصورت می توان پاسخ داد که آیا دات نت یا جاوا کدامیک برای آن کار خوبند.
    یقینا" همینطوره

    من سعی می کنم در آینده نزدیک این بحث را از نظر فنی در اینجا یا در سایت خودم باز کنم.
    حداقل من یکی که از این اتفاق استقبال میکنم :)

    موفق باشی ... و راستی ! You are Welcome :wink:
    UNIX is simple. It just takes a genius to understand its simplicity
    -- Dennis Ritchie

  32. #32
    جناب اینپرایز ، ضمن عرض خسته نباشید؛

    چرا به بعضی از نکات مهم و تعیین کننده موجود در اوراکل اشاره نمیکنید:

    - یک بانک اطلاعاتی خام در اوراکل حدود آ بیش از یک گیگابایت حجم دارد و حتی ساخته شدن یک بانک خام بیش از ده دقیقه زمان میبرد. نگهداری آن بسیار مشکل ، تخصصی و طاقت فرسا است.
    - نصب اوراکل سرور و آن هم در حالت فشرده بیش از یک و نیم گیگا بایت فضا احتیاج دارد و بیش از یک ساعت طول میکشد.
    - نصب اوراکل کلاینت بر روی هر استیشن به بیش از ششصد مگابایت فضا احتیاج دارد.

    - سرعت بالا آمدن نرم افزار های منبتنی بر جاوا نیز بسیار کند است و صفحات ورق می خورند. هم در ویندوز و هم در لینوکس.

    تمام موارد ذکر شده را به دقت و بر روی چندین کامپیوتر سرعت بالا تست کرده ام.

    در حال حاظر تنها انگیزه در استفاده از اوراکل را استفاده از نام آن جهت تولید محصولات گران قیمت می دانم.

    مخلصانه و بدون غرض.

  33. #33
    در حال حاظر تنها انگیزه در استفاده از اوراکل را استفاده از نام آن جهت تولید محصولات گران قیمت می دانم
    این طرز فکر محصول عدم مطالعهء صحیح در مورد اوراکل است و همچنین عدم توجه به این اصل ازلی که هر چیز بجای خویش نیکوست .

    یک بانک اطلاعاتی خام در اوراکل حدود آ بیش از یک گیگابایت حجم دارد
    خیر . یک بانک خام حتی یک صدم این حجم را ندارد .

    حتی ساخته شدن یک بانک خام بیش از ده دقیقه زمان میبرد
    خیر . این اتفاق حداقل روی لپ تاپ نه چندان سریع من کمتر از سی ثانیه طول میکشه .


    نگهداری آن بسیار مشکل ، تخصصی و طاقت فرسا است
    دقیقا" همینطوره

    سرعت بالا آمدن نرم افزار های منبتنی بر جاوا نیز بسیار کند است و صفحات ورق می خورند. هم در ویندوز و هم در لینوکس
    یکی از دلائلی که اغلب برخوردهای بنده با توسعه گرانی مثل شما چندان مختوم به توافق نیست و نخواهد بود ، ذات و طبیعت محدود و تا حدی بچه گانهء بازار نرم افزار ایران است . اگر در ایران کار کردن را یاد گرفته باشید ، برنامه نوشته باشید ، پروژه مدیریت کرده باشید و سیستم طراحی کرده باشید ، اصولا" نه حالا ، نه هیچ وقت فرهنگ Application Server ها رو درک نخواهید کرد . مساله جاوا یا اوراکل یا ... نیست ، مسئله دقیقا" Application Server است . این یک مفهوم ترجمه نشده در ایران است چون نه پروژه نرم افزار غول پیکری وجود داره که برای خرج میلیونها دلار ، مطالعات علمی و عمیقی در موردش بشه ، نه متخصصین نرم افزار ما آنچنان متخصص هستند که مفاهیمی مثل یکدستی ، زمان توسعه ، زمان توسعه تا صنعتی شدن ، باز نویسی کد ، خرید اجزاء متفرقه ، اتصال به سایر سیستمها و .... را درک کنند :)

    همانطوری که قبلا" در بخشهای دیگر سایت نوشته ام ، وقتی قرار شد محور کسب و کار و چرخهء تولید یک سازمان "گسترده" ، یک سیستم الکترونیکی باشد ، تحفظات دیگری غیر از "جاوا دیر بالا میاد" و امثال این مطرح هستند . اگر به بخشهای مختلف نوشتهء من هم توجه کنی دائما" بر این حقیقت پا فشاری کردم که یک Application Server کارکردهای به خصوصی داره و یک الگوی نرم افزاری همه منظوره نیست . این بحث خیلی خیلی میتونه مفصل و شاید جالب باشه که حداقل من حالا موقعیتش رو ندارم . "شاید وقتی دیگر" :)

    اما یک چیز رو بخاطر داشته باش ، اوراکل ، قدرتمند ترین مجموعهء توسعهء ابزارهای BI است ( و برای درک فایدهء BI در کسب و کار میتونم بهت چیزی حدود 4000 صفحه کتاب معرفی کنم ، تا با مطالعه اش و مشاهده اعماق علم "مدیریت بازرگانی" به اهمیت BI در چرخهء توسعه پی ببری ) و بزرگترین شرکتهای تجاری/صنعتی دنیا امروز از محصولات BI اوراکل استفاده میکنند ( حداقل بیش از 60 درصد لیست فورچون ، فی الواقع 60 درصد اقتصاد ایالات متحده - این مطلب به خوبی قابل تعمیمه ) و تو این Challenge دیگه چیزی مثل "اوراکل یک گیگ فضا اشغال میکنه" معنا و مفهوم نداره ، چون یکی از مشتری های اوراکل یعنی وزارت انرژی ایالات متحده ، اوراکلش رو روی یک MainFrame آی بی ام نگهداری میکنه که مسئول حفاظت از اطلاعات کلیه نیروگاهها ، مخازن نفت و گاز و ... ، گذرگاههای اطلاعاتی صنعت انرژی و ... در ایالات متحده است و مثالهائی از این دست . اگر روزی به متخصصین چنین کسب و کارهائی ( با این مقیاس ) برخورد کردی ، سعی کن قدری محتاط تر از انچه خطاب به من نوشتی باهاشون صحبت کنی :wink: چون اونها احتمالا" اصلا" اسکوئل سرور مایکروسافت رو نرم افزار به حساب نمیارن :)

    و توضیح آخر : اگر میبینی بنده در مورد اوراکل یا Application Server های مبتنی بر J2EE مطلبی نوشتم اون هم خیلی جدی ، دلیل بر این نیست که بنده قصد و غرضی دارم یا تعصب خاصی وجود داره یا سالهاست که جاوا کارم یا فقط جاوا بلدم و امثال این . خیر . بنده اصولا" برنامه نویس نیستم . آنچه عرض شد و میشه و خواهد شد محصول مطالعه در کنار مشاهده و استفاده از تجربیات شخصی و غیر شخصی است و لا غیر ، با این دیدگاه که تمام دنیا ، در آنچه من فکر میکنم خلاصه نشده و یقینا" همیشه افقهای وسیع تری هست که امروز چیزی ازشون نمیدونم .

    خوش باشید :flower:
    UNIX is simple. It just takes a genius to understand its simplicity
    -- Dennis Ritchie

  34. #34
    جناب اینپرایز ، باسلام

    تصور میکنم جهت رفع شبهه نیاز است مقداری توضیح دهم.

    در هیچ جایی از متن پست شده توسط من قدرت و کارایی اوراکل انکار نشده است. معنیApplication Server را هم خوب ودقیق میدانم. ولی میخواهم کمی واقع بینانه تر به مسله نگاه کنیم.

    چرا تصور میکنید با استفاده از کامپایلر های قدرتمندی نظیر Delphi, Kylix , Visual C++‎ , C++‎ Builder , Borland J Builder و غیره نمیتوان نرم افزارهای Scalable تولید کرد؟

    چرا تصور میکنید نمیتوان برای asp.net وب فارمهای عظیم ایجاد نمود. وب فارمهایی که میتوانند بالاترین حجم درخواستها را در گستره بین المللی پاسخ دهند. از قضا بانک اطلاعاتیشان هم SQL Server است. أیا با تکنولوژیهایی نظیر DTC , MTZQ اصلا آشنایی دارید؟ آیا از قابلیتهای Microsoft TransQW در جهت مدیریت مجموعه سرورهای یکپارچه مطلعید؟

    قدرت اوراکل ثابت شده است و لی به چه قیمتی؟ خودتان خوب میدانید که استفاده از آن نیاز به دانش گسترده در چندین مبحث مختلف دارد. یک برنامه نویس باید به مقدار بسیار بسیار زیادی تلاش کند تا بتواند به طور کامل بر اوراکل مسلط شود.
    با کدام امکانات در ایران؟ کدام کتاب فوق تخصصی؟ کدام آموزشگاه فوق تخصصی؟

    برای چه باید یک برنامه نویس تمام نیروی خود را در جهت یاد گیری اوراکل صرف کند در حالیکه حقوق Senior Programmer به زبان سی شارپ با حقوق همتای اوراکلی و جاوایی خود در تمام دنیا تقریبا برابر است. در تمام دنیا برنامه نویس asp.net بالاترین حقوق را میتواند داشته باشد، پس چرا باید از امکانات و راحتی کار با زبانهای ساده تر امروزی صرفه نظر کند و تن به دنیای سختی های اوراکل دهد.


    اگر یک برنامه نویس در ایران یک سیستم تحت وب را بر مبنای اوراکل ایجاد نماید، آیا دسترسی به یک سرویس Web Hosting با پشتیبانی اوراکل برای او میسر است. و اگر هم باشد قیمت آن را میدانید؟

    منظور من از جمله زیر :

    در حال حاظر تنها انگیزه در استفاده از اوراکل را استفاده از نام آن جهت تولید محصولات گران قیمت می دانم.

    صرفا در ایران بود. بنا بر تجربه شخصی و نیز صحبت کردن با بسیاری از تولید کنندگان ایرانی که از اوراکل استفاده میکنند به مطلب فوق پی بردم و تاکنون در یافته ام که نظر خیلی های دیگر هم همین است.

    چون اونها احتمالا" اصلا" اسکوئل سرور مایکروسافت رو نرم افزار به حساب نمیارن
    جناب اینپرایز باور کنید ایگونه نیست.

    به هر ترتیب مقداری برایتان توضیح دادم اما بحث بسیار گسترده است و مجال کافی نیست. گرچه تصور میکنم این آخرین پست من برای شما باشد.

    از دلائلی که اغلب برخوردهای بنده با توسعه گرانی مثل شما چندان مختوم به توافق نیست
    تصور میکنم دلیل اصلی این مطلب را خودتان ذکر فرمودید: بنده اصولا" برنامه نویس نیستم .

    و از متن تند شما کاملا مشخص است که بسیار تعصب دارید.

    خوش باشید.

  35. #35
    دوست عزیز

    من صرفا" به برخی از شبهات فنی و شبه فنی ات جواب میدم و بعدش یه توضیح در مورد اصل مطلب و در مورد مباحث حاشیه ای چیزی نمینویسم :)

    چرا تصور میکنید با استفاده از کامپایلر های قدرتمندی نظیر Delphi, Kylix , Visual C++‎ , C++‎ Builder , Borland J Builder و غیره نمیتوان نرم افزارهای Scalable تولید کرد؟
    قبل از هر چیز : چرا تصور میکنی من اینطور فکر میکنم ؟ کدام بخش از نوشته های من ناظر بر این مطلب است ؟ اصولا" بحث استفاده از یک راه حل جامع و سازمان مقیاس چقدر با بحث فلان کامپایلر و محیط توسعه و ... متناسب است ؟ اگر دقت کنی در بخشهای مختلف نوشته های من ، مطالب با نهایت تجرید از محیط ، موضوعیت پروژه ، کشور ، قیمت و ... و صرفا" در راستای تبیین ماهیت Application Server ارائه شده در حالیکه در نوشته ها تو و برخی دیگر از دوستان به یک برنامه وب و مشکلات هاستینگ آن و سرعت اجرای دات نت در مقابل جاوا و ... اشاراتی وجود داره که حداقل من ارتباط منطقی بین این مقولات نمیبینم .

    اگر یک برنامه نویس در ایران یک سیستم تحت وب را بر مبنای اوراکل ایجاد نماید،
    یک نکته خیلی جالب در نوشته ات تاکید دائمی بر نام ایران است که باز هم تصور میکنم به بحث تبیین Application Server و شناخت ماهیت آن و تقابل تکنولوژی های مثل دات نت با AS ها و ... ندارد . در واقع این بحث قرار نیست برای ایران (؟!) یک راه حل پیدا کند یا بگوید این برای ایرن خوب است و آن خوب نیست و ... ؛ این بحث تلاش میکرد AS را بشناساند و آن را مقابل سایر تکنولوژی ها قرار دهد و نتیجه بگیرد برای کدام دسته از درخواستها کدام ابزار مناسبتر است

    از متن تند شما کاملا مشخص است که بسیار تعصب دارید
    برام جالبه بدونم دقیقا" کدوم بخش از نوشته های من "تند" است :wink: اما ، من مصر نیستم تو باور کنی که از نظر من تعصب ، فقط نشانه جهل است ، کما اینکه نظر دادن در مورد چیزی که آدم باهاش بیگانه است نشانه جهل است :) . آنچه نوشته شد و خواهد شد برای نویسنده این سطور اغلب همراه با تجربه های متعدد عملی بوده است . به عنوان یک طراح نرم افزار ( و نه برنامه نویس ) که تجربه کار های متعدد سازمان مقیاس در محیطهای داخلی و خارجی رو داره ، بهت اطمینان میدم ، در بسیاری از مباحث فنی حوزه آی تی ایران، چالش محصول ورود افراد به حوزه هائی است که در موردشون دانشی ندارند . فی المثل تو یک جلسه ای در حضور بنده حقیر دو تا از مهندسین مخابرات مملکت داشتن در مورد فوائد یا مزایای فایل سیستم رمزنگار ویندوز ( Encrypting File System – EFS ) صحبت میکردند ، و آنچنان با حرارت در موردش حرف میزدند که گویا سالها در عرصه رمزنگاری صاحب تجربه و سبک هستن و وقتی از یکیشون که دل خوشی از ویندوز نداشت پرسیدم میدونی اصلی ترین تفاوت عملکرد EFS با CryptoFS چیه ، حتی نمیدونست CryptoFS چی هست !! حالا در یک مقیاس متفاوت ، فکر میکنم وقتی یک نفر دات نت ( یک بستر اجرای کد ) را با AS اوراکل ( یک AS کامل ) مقایسه میکند ، نه دات نت را شناخته است و نه اوراکل را یا وقتی بحث توسعه فناوری های مبتنی بر BI اوراکل مطرح میشه ، قیاس ASP .NET با اوراکل (؟!) در عرصه تولید نرم افزارهای مبتنی بر وب ، نشانگر عدم وجود درک صحیح و سازماندهی شده از مفاهیم فوق الذکر است . ذیلا" سعی میکنم با توضیحات نسبتا" مفصلی ، مجددا" به تفاوت حوزهء توسعه نرم افزار و حوزهء توسعهء نرم افزارهای بزرگ ، و همچنین حریم شغلی اوراکل توضیحاتی عرض کنم .

    قبل از ورود به بحث و صرفا" برای یاد آوری :

    • 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 ) و ... در بستهء نرم افزاریش وجود داره


    فرض کنید قرار است به عنوان مشاور ارشد نرم افزار پروژه دولت الکترونیکی بریتانیا استخدام و مشغول به کار بشید و فرض کنید قراره به تنهائی یک راه حل جامع برای پیاده سازی الگوی دولت الکترونیکی پیشنهاد کنید و باز فرض کنید با دسترسی به اسناد مراحل تجزیه و تحلیل پروژه ، با نیازها و درخواستها و سرویسها آشنائی کامل دارید و در آخر فرض کنید به عنوان یک فرد با تجربه با محیطهای مختلف نرم افزار آشنا هستید . چه خواهید کرد ؟ توصیه میکنید از چه نرم افزارهائی استفاده کنند ؟ از کدام بانک اطلاعاتی بهره ببرند ؟ برای اجرای برنامه های تولید شده چه بستر سخت افزاری توصیه میکنید ؟ برای مراحل توسعه و آزمایش و عیب یابی نرم افزار چقدر وقت صرف خواهد شد ؟ هزینه نهائی مالکیت اجزائی که تهیه میشوند چقدر خواهد بود ؟ و از همه مهمتر چگونه میتوانید تضمین کنید ، این الگوی عملی نرم افزاری واقعا" همان چیزی خواهد بود که از خواسته شده است ؟ اگر یک دانش آموختهء با تجربه و با سواد حوزهء نرم افزار باشید ، با توجه به تجربیات قبلیتان ، بدانید که یک نرم افزار فوق العاده بزرگ یا Huge-Scale به چگونه بستری احتیاج دارد ، بدانید که نقش یکدستی و یکنواختی در مراحل توسعه و نگهداری محیط چقدر مهم است و بدانید ... حتما" و بلاشک ، استفاده از یک Total Solution را برای دولت الکترونیکی بریتانیا پیشنهاد خواهید کرد . جائی که بانکهای اطلاعاتی فوق العاده بزرگ و پاسخگو بتوانند روی سخت افزارهای غول پیکر اجرا شوند تا پشتوانهء سیستمهائی چون ERP و CRM دولت باشند ، سرویس هایش همیشه برای درخواستهائی با ترافیک بالا در دسترس باشند ، بتوانید مخزنی از اشیاء سازمانی پیاده ساز business logic ، برای حفظ پویائی سیاستها داشته باشید ، بتوانید Portability و Reusability و reliability را با هم داشته باشید ، بتوانید از تمام فوائد این محیط گسترده و یکدست به نحو احسن استفاده کنید . در این حوزه ، مهم است که اجزاء چقدر با هم چفت باشند ، دارای ارتباطات از پیش تعریف شده باشند ، دارای قابلیت توسعه پذیری باشند و ...

    SAP به عنوان یکی از بزرگترین توسعه گران راه حلهای BI ( که به عنوان مثال بیش از نیمی از کشورهای عضو اتحادیه اروپا از راه حلهایش برای دولت الکترونیکی استفاده میکنند ) این مسئله را با ارائهء ABAP حل کرده است . ABAP ، زبان برنامه نویسی نیست ، زبان تعریف منطق و اتصال اجزاء یک کسب و کار الکترونیکی و اعمال هوشمندی در زمینه دریافت اطلاعات است . ABAP یا Advanced Business Application Programming بر فراز ده ها هزار ماژول نرم افزاری به تحلیلگران SAP اجازه میدهد با مشاهده درخواستها و سرویسهای یک سیستم ، منطق تجاری سازمان را طوری بر این ماژولها اعمال کنند تا به عنوان مثال ERPی شرکت SAP بتواند چرخهء حیاتی فلان غول نفتی هلندی یا غول نرم افزار مانند مایکروسافت را ، بهینه کند . اینجا کسی به کامپایلر فکر نمیکنه ، اصلا" موضوعیت نداره ، اینجا به قدرت انتقال و توسعه پذیری و یکنواختی سیستم توجه میشه . باید این سیستم بتونه بانکهای اطلاعاتی غول پیکری رو حمایت کنه که روی محیطهای مختلف قابل دسترس باشند و بتوانند به ترافیکهای فوق العاده بالا جواب دهند ، باید به سرویسهائی فکر کنند که دارای بیشترین میزان Availability و Reliability باشند تا هیچ درخواستی بی جواب نماند ، باید به فکر MiddleWare های باشند تا بتواند اشیاء طراحی شده توسط تحلیلگران درون سازمان را به یک منطق تجاری تبدیل کند و با اعمال آن بر ERP ، حوزهء مدیریتی جدیدی تعریف نماید و ... اینجا باید به یک بستر گسترده و بزرگ فکر کرد و به نرم افزارهائی که بر فراز آن اجرا میشوند .

    یک Application Server در واقع باید بستر مناسبی برای اجرا و سرویس دهی یک Huge-Scale Application باشد . یک نرم افزار فوق العاده بزرگ توزیع شده حائز اهمیت و سنگین و پر ترافیک . یک Application Server باید به همه نیازها پاسخ دهد ، در یک محیط یکدست و متصل . وب سرورش باشد با Object Repository مرتبط باشد ، Cache Server اش باید به Portal مرتبط باشد ، DB اش باید با Load Balancer ارتباط داشته باشد و تمام قطعات این نرم افزار بزرگ بصورت یکنواخت قابل مدیریت باشند تا حالا بتوان از آن به عنوان یک بستر قابل اعتماد برای اجرای یک نرم افزار حساس ، مثل بانک اطلاعاتی مرکزی دولت بریتانیا استفاده کرد . در واقع اصلا" یک Application Server ساخته میشود برای همین مقصود . حالا ممکن است در یک Application Server یک موتور تولید صفحات دینامیک وب هم وجود داشته باشد ، آیا منطقی است که ما بگیم صرف کردن این پول احمقانه است چون میشه با ASP .NET خیلی راحت یک برنامه وب تولید کرد ؟! یا موقعی که بحث بانک اطلاعاتی مطرح باشد ، بگیم صرف هزینه احمقانه است چون میشه با قیمت خیلی خیلی نازل یک اسکوئل سرور مایکروسافت رو خرید ؟ مگر AS وظیفه اش تولید صفحات وب است ؟ یا یک بانک اطلاعاتی است ؟ یک AS همه چیز است ، برای یک نرم افزار Huge-Scale . پس هم خود AS مهم است هم نرم افزاری که نهایتا" قرار است بر فراز آن سرویس دهی کند .

    درآمدزا ترین حوزهء کاری اوراکل ، در رقابت با SAP ، حوزهء توسعهء محصولات BI است . یعنی نرم افزارهای فوق العاده بزرگ و قدرتمندی که توسط بسیاری از پر درآمد ترین کمپانیهای دنیا مورد استفاده قرار میگیرند و آنقدر مفید هستند که سالیانه میلیونها دلار برای شارژ آنها پرداخت شود و همانطور که قبلا" عرض شد چنین مفاهیمی برای اکثریت قریب به اتفاق توسعه گران ایرانی که نهایتا" دلفی و جاوا را به عنوان یک زبان برنامه نویسی و از اورکل هم بانک اطلاعاتی اش را به عنوان یک بانک اطلاعاتی میشناسند و نرم افزار را سیستم انبارداری یک شرکت و ERP را ده تا دونه نرم افزار به هم سنجاق شدهء همکاران سیستم ( نوشته شده با دلفی ) میدانند ، اگر غیر قابل درک نباشد ، خیلی هم ساده نخواهد بود . کمپانی های غول پیکری مثل شرکت شل با هزاران هزار نمایندگی در سراسر دنیا و لزوم اعتماد و اتکاء به کسب و کار الکترونیکی شان ، نمیتوانند سالهای سال صبر کنند تا توسعه گران شرکتشان ، از بهم متصل کردن چندین نرم افزار توسعه داده شده توسط ابزارهای مختلف یک سیستم جامع برای آنها تولید کنند که از MainFrame گرفته تا لپ تاپ و از داس گرفته تا سولاریس را حمایت کند و همیشه آمادهء تغییرات جزئی یا کلی باشد بلکه همگی یک Total Solution را انتخاب میکنند که بصورت متصل و یکدست هم به تمام نیازهای آنها پاسه دهد ، هم ساپورت خوبی داشته باشد ، هم بتواند ترافیکهای بالا را هندل کند و این مسئله بصورت عملی و تجربی قبلا" به اثبات رسیده باشد و قس علی هذا .

    دقیقا" همینجا بازار و حیطه فعالیت اوراکل است . دیدم خیلی زیاد به کلمهء ایران تاکید میکنی و گویا تصور میکنی منظور بنده از معرفی AS ها و بررسی توانائی ها و حوزهء کاری شون این بوده که طی یک حکم حکومتی از فردا صبح اعلام کنم ، همه تعطیل کنند و بروند اوراکل یاد بگیرند ... خیر . هدف ، صرفا" معرفی AS بود و ذکر قابلیتهای اوراکل به عنوان تنها AS کامل .

    در حوزهء نرم افزار ، تعصب نشانگر حماقت است . وقتی ادبیات بازاری فقط و فقط و فقط مبتنی بر منفعت است ، تعصب همانقدر مضحک است که اسعتمال عینک دودی در شب . اما یک مسئله مهم و حیاتی اینجا وجود داره و اون اینه که اگر آدم به محیط یا ابزاری علاقه داره و به هر دلیل فکر میکنه ممکنه اون محیط برتریهائی داشته باشه ، نباید تصور کنه در هر گود و میدانی ، حتما" محیط و ابزار محبوب او حرفی برای گفتن داره یا ...

    من در مورد جاوا ، اوراکل و دات نت بالای بیست تا مقاله مفصل توی این سایت نوشتم که میتونی بهشون مراجعه کنی و تصور میکنم نوشته ها اینقدر روشن و واضح بوده است که تفاوتها و تشابهات این تکنولوژی ها رو مشخص کنه .حوزهء Application Server ها حوزهء برنامه های فوق العاده بزرگ ، بانکهای اطلاعاتی فوق العاده بزرگ و نرم افزارهای توزیع شده است که همگی به وجود یک بستر یکدست و جوابگو وابسته هستند ، اوراکل نسخه سازمانی بانک اطلاعاتی اش را با گارانتی 99.999 درصد Availability میفروشد و بسته به تعداد لایسنسهای دریافت شده ، رقم فوق العاده بالائی در قراردادهایش تحت عنوان گارانتی درج میکند به این مفهوم که اگر در تمام زمان کاربری از این محصول ، DownTime از مقدار گفته شده بیشتر بود ، اوراکل خسارت خواهد پرداخت . به همین دلیل است که بزرگترین بانکهای اطلاعاتی موجود ، چه بصورت clustered چه بصورت کاربری روی سرورهای Huge ، از اوراکل استفاده میکنند و همکنون اوراکل دارای بالاترین سهم فروش در بازار بانکهای اطلاعاتی است . در حوزهء ابزارهای توسعهء نرم افزار هم اوراکل در کنار آی بی ام و بورلند ، یکی از رئوس مثلث توسعهء مستقل صنعت جاوا است . در عرصه BI هم اوراکل گستردگی بسیاری زیادی داره و بخش اعظم ثروت این غول نرم افزاری مدیون نرم افزارهای فوق العاده قدرتمندش در این حوزه است . محیطهای یکدست و پاسخگوی اوراکل کمک میکنن یک پروژه "سازمان مقیاس" برای توسعه یک نرم افزار Huge-Scale سرعت بیشتر و مراحل صنعتی سازی نرم افزار شتاب بیشتری داشته باشن .

    حالا با این تفاصیل ، وقتی معنا و مفهوم AS ، نقش اوراکل ، بازار پر رونق اوراکل ، مشتریان راضی از کمپانی های بزرگ و پر درآمد ، آمارهای حیرت انگیز از قیمت سهام و ارزش افزوده و ... در محیط علمی – اقتصادی اروپا/امریکا درک شد ، آیا به نظرت چقدر منطقیه که بشینیم و بخایم بحث کنیم که :

    اگر یک برنامه نویس در ایران یک سیستم تحت وب را بر مبنای اوراکل ایجاد نماید، آیا دسترسی به یک سرویس Web Hosting با پشتیبانی اوراکل برای او میسر است. و اگر هم باشد قیمت آن را میدانید؟
    اصولا" مطالبی از این دست نه در فضای این بحث به صورت خاص و نه در فضای مباحث مربوط به AS ها قابل طرح نیستند . اگر نگاهی به مقایسه طبقه بندی شده جاوا و دات نت در صفحه اول همین تاپیک توسط من بندازی خواهی دید که ، معتقدم دات نت به عنوان یک بستر اجرای کد ، در موارد متعددی از جاوا ، به عنوان یک بستر اجرای کد ، بهتر است ، در مواردی برعکس و اگر نوشته های من رو در سایر بخشهای مطالعه کرده باشی ، خواهی دید معتقدم دلفی قدرتمندترین محیط توسعهء Win32 است ، ضمن اینکه آنچه تابحال نرم افزار نوشته ام – به هر دلیل – اغلب با ویژوال سی بوده است و نه دلفی یا مثالهائی از این دست . همانقدر که فکر میکنم استفاده از بانک اطلاعاتی اوراکل در پروژه اورژانس تهران ابلهانه بود ، فکر میکنم اتکاء به چیزی غیر از J2EE در سیستم مدیریت مشتریات وزارت نفت ، میتوانست ابلهانه باشد . امیدوارم توضیحاتی که ارائه شد این نکته کلیدی رو منتقل کرده باشه که برای مقایسه مفاهیم مختلف ، که بعضی هاشون هم در یک شعاع چند هزار کیلومتری حتی یک عدد معادل فیزیکی ندارند و طبق نوشته قبلی ام ترجمه نشده هستند ، آدم باید به اندازه کافی سواد و از اون مهمتر تجربه داشته باشه تا هم با خلط موضوعات مختلف نتیجه گیری دشوار تر نشه ، هم آنچه گفته و شنیده میشه ، برای طرفین ملموس و قابل درک باشه و در خاتمه هم امیدوارم حداقل نصف اون مقداری که من برای بکار بردن الفاظ صحیح و چینش درست کلمات برای انتقال یک مفهوم نه چندان پیچیده ، دقت میکنم ، خوانندگان هم به دور از مسائل حاشیه ای ، به مفاهیم دقت کنند.

    خوش باشی :)
    UNIX is simple. It just takes a genius to understand its simplicity
    -- Dennis Ritchie

  36. #36
    آقای اینپرایز دقت در ترکیب و نظم انتقال اطلاعاتت رو می پسندم :flower:

  37. #37
    بنیان گذار Barnamenevis آواتار مهدی کرامتی
    تاریخ عضویت
    اسفند 1381
    محل زندگی
    کرج، گلشهر
    سن
    46
    پست
    6,379
    دوست عزیز، اینپرایز:
    عالی بود :)

    مرسی++ :موافق: :flower: :kiss:

  38. #38
    کاربر دائمی
    تاریخ عضویت
    دی 1382
    محل زندگی
    پشت كامپيوتر
    پست
    381
    نمی دونم چی بگم
    هر چی دست و پا می زنم چیزی یاد بگیرم ولی متوجه می شم چیزی یاد نگرفته ام و آرزو می کنم ای کاش دوباره متولد می شدم( چون تازه فهمیدم راه کدوم) و یک کمی وقت دارم.
    Inpriseمن نفهمیدم شبانه روز شما چند ساعت به هر حال واقعا از شما و دوستان این سایت ممنونم ، من که جرات نمی کنم چیزی تواین سایت بنویسم چون تازه اول راه ام فقط برام آرزو موفقیت کنید...
    امیدوارم هر ثانیه بر و بچ ایران سوادشون بالا و بالا تر رود :kiss:

  39. #39
    مهمان
    ببخشید برادر اینپرایز میشه در مورد زبانی که SAP استفاده می کنه توضیح بیشتری بدید؟
    ماژول هایی که گفتید رابا کدام زبان نوشته اند؟
    با تشکر

  40. #40
    در مورد زبانی که SAP استفاده می کنه توضیح بیشتری بدید؟
    ABAP زبانی است شبیه جاوا ، هر چند شیء گرائی ذاتی ( در واقع شیء محوری ، که ترجمهء صحیح Object Oriented است ) در آن وجود نداره . برای هر کدام از رده های محصولات ، SAP استودیوها و فریم ورکهای متعددی برای حمایت از ABAP توسعه داده ، مثل Net Weaver .

    ماژول هایی که گفتید رابا کدام زبان نوشته اند؟
    زیر ساخت این ماژولها با C نوشته شده است . SAP تصمیم داره برای سازگاری محصولاتش با زیر ساختهای درون سازمانی مشتریان ، نسخه های خاصی از این ماژولها رو مبتنی بر دات نت و جاوا ، توسعه بده . با توجه به رقابت شدید اوراکل و SAP و گرایش تام و تمام اوراکل به کاربرد جاوا ، به عنوان زیر ساخت ، احتمال افزایش وزن محصولات SAP روی دات نت بیشتر است ، به خصوص که SAP و مایکروسافت دوستانی خوب و همکارانی قدیمی هستند .

    موفق باشید :)
    UNIX is simple. It just takes a genius to understand its simplicity
    -- Dennis Ritchie

صفحه 1 از 2 12 آخرآخر

تاپیک های مشابه

  1. معرفی کلاس برای J2EE?
    نوشته شده توسط quack در بخش Java EE : نگارش سازمانی جاوا
    پاسخ: 10
    آخرین پست: یک شنبه 17 آذر 1392, 12:52 عصر
  2. j2ee
    نوشته شده توسط for_project در بخش Java EE : نگارش سازمانی جاوا
    پاسخ: 1
    آخرین پست: شنبه 17 اسفند 1387, 19:43 عصر

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •