نمایش نتایج 1 تا 24 از 24

نام تاپیک: J2ee چیست ؟

  1. #1

    J2ee چیست ؟

    این مقاله توسط Inprise عزیز نوشته شده است که در آن مقایسه ای با دات نت شده است :

    قبل از اینکه نظرم رو عرض کنم چند تا نکته مقدماتی لازمه ذکر بشه تا ابهام موجود در ذهن بعضی از دوستان بر طرف بشه :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: حالا اگر یک نفر از ملت با مرام برنامه نویس لطف کنه و با سواد و دانش خودش این نوشته رو ویرایش کنه و یه مقاله به درد بخور ازش در بیاره و به بخش مقاله های سایت اضافه کنه ممکنه بتونه خیلی مفید واقع بشه در آینده .

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

    منبع :
    http://www.barnamenevis.org/sh...?t=5935&page=2
    آخرین ویرایش به وسیله Inprise : پنج شنبه 17 آذر 1384 در 18:53 عصر
    VIP=Very Important Person

  2. #2
    سیستم J2EE از 13 تکنولوژی ساخته شده است
    Java Server Page (JSP)
    برای تولید صفحات وب و صفحات وب پویا (همانند ASP)
    Servlets
    کلاسهایی در جاوا هستند که در خواستی را پذیرفته و پاسخی تولید می کنند

    Java Messaging Service(JMS)
    به برنامه های کاربردی اجازه می دهد که پیغامها را به یکدیگر بفرستند
    Java Database connectivity (JDBC)
    یک API را تولید می کند که به برنامه نویس اجازه می دهد تا به هر بانکی بدون دانستن نحوه پیاده سازی آن بانک اطلاعاتی دسترسی داشته باشند
    Java naming and dictionary inter face (JNDI)
    سرویس نامگذاری و سرویس های فهرست راهنما را کنترل می کند از قبیل DNS
    Java Transaction Service (JTS)
    Java Transaction API(JTA)
    JTS و JTA با همدیگر کار می کنند تا به کاربران اجازه کنترل تراکنشها را می دهند یک تراکنش مجموعه ای از دستورات است که باید بگونه ای اجرا شوند که گویی فرمان واحد است.


    Java Mail
    Java Beans Aviation Framework (JAF)

    Remote Method Invocation (RMI)
    Enterprise Java Beans (EJB)
    یک طراحی از کامپوننت ها می باشد که چگونگی برقراری ارتباط کامپوننت های (Local) و توزیع شده بر روی شبکه تعریف شود
    Extensible Markup Language (XML)

    Java Integrated Definition Language (java IDL )
    به آبجکت های جاوا اجازه می دهد که به آبجکتهای CORBA ارتباط برقرار کنند.
    VIP=Very Important Person

  3. #3
    بیا ای خسته خاطر دوست ! ای مانند من دلکنده و غمگین
    من اینجا بس دلم تنگ است
    بیا ره توشه برداریم
    قدم در راه بی فرجام بگذاریم


  4. #4
    کاربر تازه وارد
    تاریخ عضویت
    دی 1384
    پست
    72
    آقا دستتون درد نکند. خدا قوت.

  5. #5
    هست J2EE چه هست و چه نیست؟

    “Java2 Platform-Enterprise Edition” یک تکنولوژی میان افزار است که توسط شرکت سان میکروسیستم ابداع شده است و در حال حاضر به عنوان یک راه حل اساسی جهت برآورد کردن نیازها و مسائل مختلف در نظر گرفته می شود. تکنولوژی های میان افزار از Corba و IDLS تا سیستم های پیغام گرا، راه بسیاری را پیموده اند و تکامل آنها مرحله به مرحله بوده است که طرح آن فراتر از محدوده این مقاله است.
    J2EE شرکت سان یک نقطه تحول قطعی در تاریخ تکنولوژی های میان افزار و سبب پذیرش و تشخیص تشکیلات کامپیوتری شناخته می شود.
    در ادامه مطلب در مورد “J2EE” چیست و چه نیست؟ بررسی دقیق تری صورت می گیرد. به هر حال، با وجود مجموعه ای بزرگ از استانداردها و ویرایش ها از یک سو و وجود سرورهای برنامه های کاربردی گوناگون از سوی دیگـر، معمولا J2EE غیرقابل درک می نماید.
    J2EE چیست؟
    قبل از آن که تعریف کنیم J2EE چیست بهتر است درک کنیم که J2EE زبان بـرنامه نویسی بسته نرم افزاری، یک ابزار و یا یک سرویس نیست. به عبارت ساده تر J2EE لزوما یک میان افزار استاندارد است که شرکت سان میکروسیستم آن را برای توسعه و به کارگیری برنامه های کاربردی تجاری در مقیاس گسترده و با قابلیت الکترونیکی و به صورت توزیعی و چندلایه ارائه کرده است.
    برنامه های کاربردی که برای استانداردهای J2EE نوشته می شوند مزایای زیادی را در بر می گیرند که قـابلیت جابه جایی، امنیت، مقایس پذیری، توازن بار و قابلیت استفاده مجدد از آن جمله است.
    میان افزارها، راه حل های نرم افزاری سمت سروری هستند که بنیاد و اساس مورد نیاز در اتصال سیستم های نامتجانس و منابعی توزیعی در شبکه را فراهم می کنند. پیش از J2EE، راه حلهای میان افزار و محدود به محصولات و عرضه کننده ها بودند. این میان افزارهای قدیمی ویژگی های محدودی داشتند و سازگاری آنها نیز کم بود و حتی در قابلیت های عملکردی و جابه جایی در مسائل مختلف نیز محدود بودند. به عبارت دیگر، هیچ استاندارد صنعتی مشترک و قابل قبولی برای این منظور وجود نداشت و بسیرای از ویژگی ها به انتخاب عرضه کننده بود.
    J2EE با یادگیری از اشتباهات گذشته و ارائه نیازمندی های ضروری صنعت سبب رشد و کمال تکنولوژی میان افزار شد. همچنین امکان گسترش و توسعه های آتی نیز در آن لحاظ گردید.
    در توسعه این استاندارد، سان با دیگر عرضه کننده های اصلی میان افزار، سیستم عامل و سیستم های مدیریت پایگاه داده از جمله IBM و اوراکل همکاری کرد.
    در اصل J2EE مجموعه ای از اتانداردها و خط مشی هایی است که تعریف می کند چگونه برنامه های کاربردی در لایه توزیعی می توانند با استفاده از زبان جاوا ساخته شوندً؟ توسعه دهنده ها، برنامه های کاربردی خودشـان را تحت این استانداردها می سازند و عرضه کننده های زیرساختار، سازگاری با این مجموعه خط مشی ها را از طریق J2EE تضمین می کنند. از این طریق، برنامه های J2EE می توانند به صورت مدخلی برای به کارگیـری چندین سرور برنامه های کاربردی با حداقل تغییرات در سطح کم (و حتی بدون تغییر) در نظر گرفته شوند.

    اعمال J2EE

    J2EE به ارائه محیط های مختلفی می پردازد که این محیط ها در ادامه بررسی شده است:
    J2EE ترکیبی برای میان افزار توزیعی چندلایه
    J2EE کاملا بین لایه های مختلف درگیر در محیط برنامه کاربردی حد فاصل قایل می شود و مولفه های قرار گرفته در هر لایه را تعریف می کند. این لایه ها می توانند هر یک از لایه های Client، لایه طرح، لایه تجارت و یا ارائه سیستم های اطلاعاتی گسترده باشند.
    کلیه برنامه های کاربردی J2EE براساس این قالب کاری ساخته شده است.
    همچنین هر لایه در سیستم چندلایه ممکن است در چند سرور توزیع شده باشد.
    با J2EE توسعه برنامه های کاربردی توزیعی دیگر یک وظیفه پیچیده نیست. مولفه های J2EE هیچ فرضی درباره محیط سرور و منابعی که از طریق دایرکتوری های گسترده دسترسی می یابند، ندارند. این بدان معناست که توسعه دهندگان برنامه های کاربردی برای توزیع مولفه ها و منابع اشان به تلاش زیادی نیاز ندارند.
    J2EE محیطی برای برنامه های کاربردی در مقیاس گسترده
    J2EE به صورت سرورهای برنامه های کاربردی مانند BEA WEB Logic یا IBM WEB Sphere پیاده سازی شده که محیطی برای برنامه های کاربردی توزیعی در مقیاس گسترده است.
    برنامه های کاربردی می توانند براساس مدل برنامه نویسی برنامه های کاربردی J2EE ساخته شوند و حتی در یک یا چند سرور برنامه های کاربردی وب سازگار با J2EE به کار گرفته شوند.
    به عبارت دیگر می توان مناسب ترین محیط سرور برنامه کاربردی از محصولات گسترده سازگار J2EE را انتخاب کرد. حتی بدون توجه به این ویژگی های منحصر به فرد نیز، کلیه سرورهای برنامه های کاربردی J2EE یک حیطه کاری مشترک برای توسعه و به کارگیری برنامه های کاربردی گسترده فراهم می کنند.
    J2EE مدلی برای توسعه برنامه های کاربردی با قابلیت الکترونیکی
    برنامه های کاربردی J2EE به راحتی می توانند بر روی وب، پالم و دستگاه های دستی، تلفن های همراه و بسیاری دیگر از دستگاه های نمایش داده شوند. به عبارت دیگر، مولفه های برنامه های کاربردی می توانند بدون هیچ مشکلی دارای قابلیت الکترونیکی باشند. مدل برنامه نویسی J2EE تضمین می کند که منطق تجاری و سیستم های BackOffice بدون تغییر باقی بمانند و به عنوان تسهیلاتی برای نمایش به راه های گوناگون و دسترسی Clientها به کار روند.
    یکی دیگر از ویژگی های خوب محیط J2EE توازن بار اتوماتیک، مقایس پذیری و تحمل خرابی است. مولفه های به کار رفته در محیط J2EE به طور اتوماتیک این تسهیلات را به دنبال خواهند داشت که به این ترتیب دیگر نیازی به کدنویسی نخواهد بود. این ویژگی ها در ساخت مدخل های وب مورد نیاز Clientها اهمیت چشمگیری دارند.
    J2EE استاندارد سازگار در سرورهای برنامه های کاربردی وب
    J2EE را می توان اولین استاندارد صنعتی در پذیرش و تشخیص دنیای میان افزار دانست. تقریبا تمام سرورهای برنامه های کاربردی وب (BEA WEB Logic, IBM WEB Sphere, HP’S Application Server, Sun-Netscapes’s inlanet, Macromedia’s Jrunو غیره(، سرورهای تایید شده برنامه کاربردی J2EE هستند. تاکنون هیچ استاندارد دیگری تا این حد پشتیبانی و تایید نشده بود.
    همگام بافًـزوده شدن دیگر مولفه های برنامه های کاربردی به خصوصیات J2EE، می توان آنها را در سرورهای گوناگون برنامه های کاربردی در شبکه های گسترده به کار برد. از این رو، به منظور تضمین سازگاری و همبستگی بین سرورهای متفاوت برنامه های کاربردی J2EE، مجموعه تست سازگاری را ارائه کرده است.

    بینش J2EE

    بینش اولیه خلق و ایجاد J2EE را می توان به صورت زیر خلاصه نمود:
    “توسعه دهندگان باید کدهای مختلفی را بنویسند تا تجارت و منطق طرحشان را شرح دهند، در همین حین، زیرساختار میان افزار از مسائل سطحی سیستم مانند مدیریت حافظه، تخصیص منابع، عملیات چندرشته ای، دسترس پذیری و جمع آوری آشغال به طور اتوماتیک مراقبت می کند.
    آیا J2EE مشـکلات را رفع می کند؟
    حال بهتر است بررسی شود که J2EE چگونه مسائل و مشکلات اصلی ناشی از گستردگی را رفع می نماید و چگونًـًـه امکان توسسعه آتی برقرار می شودً؟
    استقلال از سیستم عامل و سخت افزار
    J2EE runtime بر روی ماشین مجازی جاوا (JVM) قرا رمی گیرد. شکل 2 نشانگر این امر است. JVM مستقل از سخت افزار و سیستم عامل است. محیط (JRE) Java runtime تقریبا برای تمام سخت افزارها و سیستم عامل های مشهود در دسترس است. بنابراین با پذیرش جاوا، J2EE تشکیلات کامپیوتـری را از سرمایه گذاری در سیستم عامل ها و سخت افـزارگران و پرهزینه خلاصی می بخشد.
    امکان نزدیک تر ساختن لایه یکپـارچه گسترده J2EE به سیستم های Backoffice مزیت ویژه دیگری است. در برخی موارد، می توان لایه J2EE را در خود محیط سرور EES جای داد و از این طریق ترافیک شبکه را کاهش و عملکرد آن را افزایش داد.

    پیوستگی با طراحی شی گرا و متدولوژی مولفه

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

    انعطاف پذیری، قابلیت جابه جایی و قابلیت عملیات متقابل

    کدهای جاوا را می توان از یک سیستم عاملی به سیستم عامل دیگر انتقال داد و مولفه های J2EE را نیز می توان از محیط یک سرور برنامه های کاربردی به محیط دیگر سرور برنامه های کاربردی انتقال داد. این بدان معناست که دیگر لزومی به قراردادن تشکیلات کامپیوتری بر روی یک محیط توسعه خاص نخواهد بود. برنامه های کاربردی را می توان در بیش از یک سرور برنامه کاربردی J2EE می توانند به خوبی با هم کار کنند. این ویژگی قابلیت عملیات متقابل بی سابقه ای را در جمع آوری مولفه های برنامه های کربردی می دهد. به عنوان مثال ممکن است که EJB را مستقیما در ارتباط متقابل با محیط های mainframelcics د رمحیط IBM قرار داد و از سرورهای BEA WEB Logic به EJB دست یافت.
    یکپارچه سازی سیستم های اطلاعاتی گسترده

    J2EE به سرعت در استانداردهای صنعت مانند JMS, JOBC و JCA به کار گرفته شده و موجب سادگی و یکپارچه سازی سیستم های اطلاعاتی گسترده مانند سیستم های قانونی، پیاده سازی های EID و پایگاه های داده شده است.
    تقریبا تمام عرضه کننده های اصلی پایگاه های داده JDBC را پشتیبانی می کنند. بنابراین برنامه های کاربردی J2EE از قابلیت ارتباط با کلیه پایگاه های داده مشهور با کمک درایورهای مورد نیاز JDBC بهره می برند. متقابلا تعدادی از adapterهای EI مبتنی بر استانداردهای معماری متصل کننده جاوا به بازار شده اند که یکپارچه سازی نامریی با سیستم های قانونی متفاوت و پیاده سازی های ERP/CRM را انجام می دهد.

    پذیرش معماری های سرویسگرا در J2EE

    با ظهور سروریس های وب و استانداردهای باز مانند SOAP، قابلیت کار متقابل در سیستم های مجزا در تشکیلات کامپیوتری امکان پذیر شد. J2EE محیط قابل گسترشی است که می توان از مولفه ها و منابع آن در سرویس های وب استفاده کرد.
    شرکت سان مجوعه بهم پیوستهای از API ها به نام بسته JAX ارائه کرده که تمامی انواع نیازمندیهای سرویس های وب مانند XML Binding, XML Parsing ترخیص و دریافت پیغام SOAP، جست وجو در XML RPC, Registry و پیغام دهی XML را پشتیبانی می کند.
    اگرچه محیط J2EE بسیار پیش از ظهور تکنولوژی های سرویس های وب پشتیبانی شده است، لیکن متناسب بودن با آخرین توسعه را نیز لحاظ کرده است. با اطمینان می توان J2EE را قادر به فًـًـًـًـراهم نمودن و ارائه پیشرفت های بیش تر تکنولوژی بدون اعمال اثرات منفی در قالب کاری مرکزی و مدل برنامه نویسی برنامه کاربردی ساخت.
    نتیجه

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

    منبع :
    http://www.ictnews.ir/news/4470.aspx
    VIP=Very Important Person

  6. #6
    کاربر دائمی آواتار amir_civil
    تاریخ عضویت
    تیر 1384
    محل زندگی
    تهران
    پست
    452
    سلام
    و خیلی ممنون از توضیحی که دادید
    ایا به زبان ساده j2ee دات نت زبان javaهست؟
    من میخام بدونم که باj2eeمیشه برنامه های گرافیکی نوشت
    ایا میشه برنامه های نوشت که نیاز مارا به یادگیری دیگر زبانهای برنامه نویسی ویندوز بر اورده کنه
    ایاj2eeمخصوص برنامه نویسی سرور و وب هست؟ ایا با اون برای ویندوز هم میتوان برنامه های کار بردی نوشت؟
    ممنون

  7. #7
    من میخام بدونم که باj2eeمیشه برنامه های گرافیکی نوشت
    برای وب با جاوا اپلت می شوذ

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

    ایاj2eeمخصوص برنامه نویسی سرور و وب هست؟ ایا با اون برای ویندوز هم میتوان برنامه های کار بردی نوشت؟
    بله .
    بله .
    VIP=Very Important Person

  8. #8
    کاربر دائمی آواتار amir_civil
    تاریخ عضویت
    تیر 1384
    محل زندگی
    تهران
    پست
    452
    نقل قول:
    من میخام بدونم که باj2eeمیشه برنامه های گرافیکی نوشت


    برای وب با جاوا اپلت می شوذ
    سلام و ممنون
    یعنی با j2ee فقط برای وب میشه برنامه گرافیکی نوشت؟
    ایا j2ee همانند بقیه زبانهای میکروسافت دستوراتی مثل هندل کردن پنجره و فورم داره؟
    ایا بااون میشه بارجیستری کار کرد؟
    ایا j2eeفیل اگزه ایجاد میکند؟
    فرق java با j2ee در چیه؟
    ایا j2ee همون java.net هست؟ اگر نیشت در مورد java.net توضیح بدیدممنون و ببخشید که سوالاتم زیاده اخه از j2eeتقریبا هیچی نمیدونم
    ممنون
    آخرین ویرایش به وسیله amir_civil : پنج شنبه 20 بهمن 1384 در 20:06 عصر

  9. #9
    کاربر دائمی آواتار persianshadow
    تاریخ عضویت
    اردیبهشت 1384
    محل زندگی
    تهران
    پست
    758
    وای شما که کلی سوال داری توصیه می کنم اول یه کتاب درباره جاوا بخون تا حجم سوالاتت پایین تر

    بیاد. اما اول از همه ما چیزی به نام جاوا دات نت نداریم !

    دوم اینکه نه عزیزم جاوا با رجیستری ویندوز نمی تونه مستقیما کار کنه .

    سوم اینکه J2ee یه مفهوم هست و کاری با تولید فایل exe نداره !

    در مجموع توصیه می کنم قدم به قدم پیش بری چونکه تا حدودی تکنولوژی های ارائه شده توسط

    سان گیج کننده هست.

  10. #10
    سلام
    با تشکر از تمامی دوستان این تاپیک خیلی به درد من خورد شخصا جواب خیلی از سوالاتم رو گرفتم ولی هنوز چند تا باقی مونده.

    سوالات من در مورد دات نت و J2EE هستش لطفا حذف نشه چون میدونم اینپرایز اینجا زیاد سر میزنه اینجا نوشتم.

    J2EE یک استاندارد برای تولید اپلیکیشن سروره . یک اپلیکیشن سرور مثلا اوراکل که همه چی داره مثل RDBMS , GUI Builder و ... ولی مایکروسافت هم فکر کنم تمام اینهارو تحت عنوان Dot Net Enterprise Servers عرضه کرده مثل ,IIS,SQL Server,Biztalk Server و ... برای GUI بیلدر هم ویژوال استودیو دات نت.ولی اون چیزی که اینجا مایکروسافت کم داره یه استاندارد برای تولید اپلیکیشن سرور برای دات نت که اصلا لازم نیست وقتی مایکروسافت تمام محصولاتش رو به صورت کامل ساپورت میکنه دیگه استاندارد میخواد چیکار درسته؟ولی سان به یک استاندارد احتیاج داشت چون که هیچ کدوم از اون موارد بالا رو برای جاوا فراهم نکرده بود ولی تازه تازه به فکر افتاده. ولی در باره سایر تکنولوژی های موجود در J2EE موارد مشابهی هم در دات نت هست مثلا برای JDBC = ADO.Net برای RMI = Dot Net Remoting و .... و در مورد قابل انتقال بودن جاوا هم که دیگه بحثی نیست جاوا از این نظر کاملا برتره.حالا طرز فکر من درسته یا غلط ؟ چرا؟
    در ضمن اگه یه مطلب کامل هم در مورد EJB مثل بالا بنویسید ممنون میشم .

  11. #11
    محصولات مختلف مایکروسافت مبتنی بر دات نت نیستند ، و یکپارچه نیستند ، و از چینش و استاندارد واحدی تبعیت نمیکنند ، و در بسیاری از موارد هم گزینهء مشابهی اصولا" وجود ندارد ، یعنی اگر مجموعه ابزارهای توسعه مایکروسافت رو کنار هم بگذاری و تلاش کنی مسامحتا" اونها رو به عنوان یک راه حل جامع توسعه فرض کنی ، باز هم نقائص متعددی وجود دارد که با مرور مطالب نوشته شده براحتی قابل مشاهده هستند ؛ لیکن من حیث مجموع ، این مقایسه یه قیاس مع الفارقه .

  12. #12
    نقل قول نوشته شده توسط Inprise
    محصولات مختلف مایکروسافت مبتنی بر دات نت نیستند ، و یکپارچه نیستند ، و از چینش و استاندارد واحدی تبعیت نمیکنند ، و در بسیاری از موارد هم گزینهء مشابهی اصولا" وجود ندارد ، یعنی اگر مجموعه ابزارهای توسعه مایکروسافت رو کنار هم بگذاری و تلاش کنی مسامحتا" اونها رو به عنوان یک راه حل جامع توسعه فرض کنی ، باز هم نقائص متعددی وجود دارد که با مرور مطالب نوشته شده براحتی قابل مشاهده هستند ؛ لیکن من حیث مجموع ، این مقایسه یه قیاس مع الفارقه .
    کاملا منطقیه به قول یه بنده خدایی حرف حساب جواب نداره
    پس اگه مایکروسافت تمام اونهارو به صورت یک پارچه و به صورت یک استاندارد واحد در کنار هم قرار بده اونوقت یه چیزی میشه اپلیکیشن سرور اوراکل دیگه؟
    ولی به حر حال باز هم دات نت قابل مقایسه نخواهد بود چون اونطور که شما گفتین J2EE یک استاندارد برای تولید اپلیکیشن سروره.ولی مایکروسافت VC رو به عنوان تنها محیط اصلی توسعه داره.میشه اینجا به VC گفت استانداردی برای تولید اپلیکیشن سرور برای دات نت و منحصرا برای ویندوز؟

    ممنون توضیحاتتون بسیار جامع و کاربردی بود فقط تنها مطلب کمی تا نسبتی گنگ همون EJB هستش. اگه فقط با یه مثال ساده کاربردی توضیح بدین کاملا متوجه میشم که کاربرد EJB چیه.

  13. #13
    کاربر تازه وارد
    تاریخ عضویت
    دی 1384
    پست
    72

    Talking enterprise java bean

    با سلام خدمت اساتید گرامی و دوست عزیز آقای Milad.a.p
    اگر اینجانب را قبول داشته باشید در مورد EJB باید بگو یم ، EJB ها چند دسته هستند. در کل همه آنها کامپوننت های هستند قابل توزیع روی شبکه. اگر مثال مایکروسافتی دوست داشته باشید یک چیزی مثل COM PLUS ولی کامل تر.
    یک مدل از آنها را Session Bean میگوییند. این کامپوننتها برای پیاده سازی business logic در نظر گرفته شده اند که در دو نوع stateless و statefull پیاده سازی میشوند.
    یک مدل دیگر از EJB ها برای ارتباط با بانک اطلاعاتی به صورت Object Relational طراحی شده اند.
    در حقیقت شما با استفاده از این کامپوننتها به بانک اطلاعاتی متصل میشوید اما این ارتباط در سمت شما به صورت object است. یعنی هر رکورد بانک اطلاعاتی در یک Object قرار دارد.
    این کامپوننتها به دو صورت BMP و CMP موجود هستند که تفاوتشان در این است که BMP ها را باید خودمان بسازیم اما CMP ها به صورت اتوماتیک توسط محیط IDE مثل NetBeans یا در محیط DeployTool ایجاد میشوند. و البته در نوع BMP ما امکانات زیادی برای ایجاد و ترکیب کدهای کنترلی و پردازشی روی عملیات دریافت و ذخیره اطلاعات داریم. من سعی کردم خیلی خلاصه مهمترین این EJB ها را توضیح بدهم . هر کدام از این EJB ها برای خودشان دنیای دارند که نیاز به مطالعه زیاد دارد و این موضوع که اصلا اینها به چه درد میخورند از همه مهم تر است . در ادامه مطلب سعی میکنم به این سوال جواب مختصری بدهم.

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

    2. سازگاری عملیاتی Interoperability
    توانای اجرای کامپوننت های نرم افزاری مختلف روی سخت افزارهای مختلف دریک زمان با قابلیت تبادل اطلاعات میان آنها روی شبکه را سازگاری عملیاتی میگویند. اولین مرحله برای رسیدن به این سازگاری پیاده سازی تطبیق پذیری است. اگر بخواهم یک چهار چوب برای پیاده سازی یک سیستم با قابلیت سازگاری عملیاتی را معرفی کنم J2EE بهترین گزینه است .در J2EE از زبان جاوا برای ایجاد کدهای تطبیق پذیر استفاده شده است. کامپوننت های EJB به راحتی وظیفه پیاده سازی Business Logic و ارتباط portable با بانکهای اطلاعاتی را انجام میدهد و RMI ارتباط میان این کامپوننت ها را روی شبکه میسر میکند. زبان XML هم به سازگاری بیشتر این سیستمها در هنگام ارتباط باهم و تبادل اطلاعات کمک میکند.

    3. توسعه پذیری Expandability
    در گذشته طراحان سیستمهای کامپیوتری مجبور بودند در زمان طراحی پیشبینی توسعه سیستم را در آینده نیز داشته باشند که این امر هزینه های زیادی را برای خرید سخت افزارها بدنبال داشت تا شاید در آینده از این توانای ایجاد شده استفاده شود. با رعایت دو اصل مطرح شده در بالا ما دارای سیستمی می شویم که قابلیت توسعه پذیری را نیز دارد. برای مثال در صورت نیاز به افزایش توان پردازش کافی است که یک کامپیوتر جدید را وارد شبکه کنیم و کامپوننت های پردازشی را روی آن نصب کنیم.

    4. مدولار بودن Modularity
    مدولار بودن به مفهوم امکان ایجاد تغییرات در نرم افزار میباشد به نحوی که این تغییرات کمترین تاثیر را در سایر بخشهای سیستم ایجاد کند. این قابلیت با استفاده از طراحی کامپوننتی و استفاده از یک زبان فرا داده MeteData برای انتقال اطلاعات میان این کامپوننت ها ایجاد می شود. EJB ها و زبان XML بهترین گزینه ها برای پیاده سازی این امر است.

    5. مقاس پذیری Scalability
    با رعایت تمام موارد بالا ما به یک سیستم با قابلیت مقیاس پذیری می رسیم. در حقیقت سیستمی که دارای قابلیت افزایش ظرفیت های کاری است. به عنوان مثال افزایش ظرفیت ذخیره سازی بانک اطلاعاتی و یا افزایش تعداد کاربران سیستم و یا غیره که هر کدام از این قابلیتها به تغییراتی در سخت افزارها و نرم افزارهای موجود نیاز دارند.

    چارچوب معماری J2EE تمام قابلیتهای نام برده شده را بعلاوه امکانات پیچیده تر و جالبتری در اختیار شما قرار میدهد.

    همان طور که دیدید EJB ها بزرگترین نقش را برای رسیدن به Scalability بازی میکنند. امیدوارم توانسته باشم تا حدی جواب سوال شما را بدهم
    موفق باشید
    آخرین ویرایش به وسیله azizi-ra : دوشنبه 15 اسفند 1384 در 08:55 صبح

  14. #14
    خیلی جالب بود.

  15. #15
    لطفا چند تا کتاب درباره j2ee معرفی کنید

  16. #16
    با سلام
    من از حرفای بالا هیچی نفهمیدم (بجز بعضی هاش)
    من می خواستم بدونم با J2ee می شه برای سایت زیر منو ساخت؟
    می شه با هاش کدی نوشت که بدنبال موس یه عکس حرکت کنه؟
    ممنون

  17. #17
    کاربر تازه وارد
    تاریخ عضویت
    دی 1384
    پست
    72
    نقل قول نوشته شده توسط هانی هاشمی
    با سلام
    من از حرفای بالا هیچی نفهمیدم (بجز بعضی هاش)
    من می خواستم بدونم با J2ee می شه برای سایت زیر منو ساخت؟
    می شه با هاش کدی نوشت که بدنبال موس یه عکس حرکت کنه؟
    ممنون
    دوست عزیز. من فکر کنم که شما باید به دنبال javascript باشید.
    هر ابزاری برای انجام کاری ساخته شده و مورد شما با استفاده از javascript و DHTML و یا flash حل میشود

  18. #18
    لطفا در مورد ادیتور هایش هم صحبت کنید

  19. #19
    کاربر تازه وارد
    تاریخ عضویت
    دی 1384
    پست
    72

    Post

    اگر منظور شما محیط IDE هست، محیط های زیادی برای این کار وجود دارد .
    JBuilder از شرکت Borland
    NetBeans از SUN
    JDeveloper از Oracle
    ٍEclipse
    و غیره
    من netbeans را توصیه میکنم . کار با آن ساده است. متن های آموزشی زیادی برای آن وجود دارد. به صورت متن باز تولید میشود. گروهای زیادی برای آن plugin تولید میکنند. ...

  20. #20
    کاربر جدید
    تاریخ عضویت
    بهمن 1385
    محل زندگی
    رشت
    پست
    7
    اگر میتونید PDF ارائه بدید

    باتشکر!!!!!!
    --------------------------------------
    if ununderstan, answer

  21. #21

    کتاب فارسی آشنایی با Java و J2EE

    نقل قول نوشته شده توسط mehdisarlak مشاهده تاپیک
    لطفا چند تا کتاب درباره j2ee معرفی کنید


    کتاب فارسی آشنایی با Java و J2EE

  22. #22
    با تشکر بسیار از نویسنده کتاب فوق به دلیل سرقت ( Copy/Paste ) مطالب سایت برنامه نویس بدون ذکر مرجع
    UNIX is simple. It just takes a genius to understand its simplicity
    -- Dennis Ritchie

  23. #23
    سلام
    مقاله Inprise در مورد مقایسه .Net و JavaEE بسیار عالی و قابل تحسین بود .
    یه نکته ای که تو مقاله هم ذکر شده بود و من هم میخام بهش اشاره کنم اینه که کار با net. راحتتره که به نظر من این در حجم Scale کوچک خوبه و آدم رو تنبل میکنه . برای پروژه های سنگین و بزرگ که الان با پیشرفت نرم افزارهای سازمانی خیلی باب شده کارو پیچیده می کنه .

    به هر حای ممنون از مقاله خوبت .

  24. #24

    نقل قول: J2ee چیست ؟

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

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

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

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

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