اولين Ù?نجان

December 26, 2007 01:07 PM

همانگونه كه در مطالب قبلي نوشتم، قصد دارم كه يك Web Application را شروع كنم Ùˆ روي جزئيات طراحي Ùˆ پياده سازي اش متمركز شوم. بعنوان اولين پروژه، بهتر آن ديدم كه firstcup خود جاوا را براي اين كار انتخاب كنم كه خود sun آن را بعنوان اولين گام در نظر گرÙ?ته. در مطالب آتي طراحي Ùˆ پياده سازي كليه ماژول ها را آنطور كه در مستندات firstcup ارائه شده در اينجا خواهم آورد. درخاتمه بحث هم به اميد خدا كل مطالب را يك جا بصورت يك Ù?ايل براي دانلود در اين وبلاگ خواهم گذاشت. پس علاقمندان جاوا با من همراه شويد. ضرر نمي كنيد.

نرم اÙ?زارهای مورد نیاز
براي پياده سازي Ùˆ اجراي اين Application به نرم اÙ?زارهاي زير نياز خواهيد داشت.
• Java EE 5 SDK
• NetBeans IDE 5.5
دوستان خارج از ايران مي توانند آنها را از سايت sun دانلود نمايند. اما در مورد دوستان داخل ايران لينك هاي دانلود اين نرم اÙ?زارها را مي توانيد اينجا بيابيد البته متاسÙ?انه لينك ارائه شده در اين آدرس هم توسط بعضي ISP ها Ù?يلتر شده. درصورت Ù?يلتر بودن ISP هاي ديگر را امتحان كنيد.
نكته: استÙ?اده از هر IDE دیگری نیز Ú©Ù‡ با Java EE 5 سازگار باشد امکان پذیر است. اما شرح مراحل کاری Ú©Ù‡ در اینجا ارائه شده با توجه به امكانات NetBeans 5.5 است.

شرح كاركرد Application
نحوه كاركرد Application بدين صورت است كه وقتي شما آن را توسط Browser اجرا مي كنيد، در صÙ?حه اي تاريخ ميلادي تولد شما درياÙ?ت مي شود. سپس Application تاريخ تولد شما را با تاريخ تولد Duke كه يك تاريخ مشخص ( 23 ماه مي 1995 ØŒ تاريخي كه اولين نسخه دمو زبان جاوا عرضه عمومي شد) است مقايسه مي نمايد. درنهايت Application وضعيت سن شما را نسبت به Duke به عنوان پاسخ برمي گرداند. اينكه آيا شما بزرگتر، كوچكتر يا هم سن Duke هستيد.

معماری
این App شامل سه کامپوننت اصلی است:
• DukesAgeService : یک Web Service است و با JAX-WS پیاده می شود و سن Duke را محاسبه می نماید.
• DukesBirthdayBean : یک Enterprise bean است Ú©Ù‡ تÙ?اوت سن وارد شده توسط کاربر را از سن Duke محاسبه Ù…ÛŒ کند.
• firstcup : یک WebApp Ú©Ù‡ با JSF ساخته Ù…ÛŒ شود. firstcup از DukeAgeService برای نمایش سن Duke استÙ?اده Ù…ÛŒ کند. همچنین تاریخ وارد شده توسط کاربر را Ù…ÛŒ خواند. با استÙ?اده از DukesBirthdayBean تعیین Ù…ÛŒ کند Ú©Ù‡ سن کدام بیشتر است. سپس تÙ?اضل دو سن را برای کاربر نمایش Ù…ÛŒ دهد.

این WebApp شامل Ù?ایل های زیر است:
• Ù?ایل greeting.jsp یک صÙ?حه jsp است Ú©Ù‡ کاربر Ù…ÛŒ توان درآن تاریخ تولد خود را وارد کند.
• Ù?ایل response.jsp یک صÙ?حه jsp است Ú©Ù‡ پاسخ را به کاربر نشان مي دهد Ùˆ اعلام مي كند Ú©Ù‡ آیا سن او از Duke بیشتر است یا کمتر يا هم سن هستند.
• Ù?ایل DukesBDay.java Ú©Ù‡ یک managed Bean است Ùˆ مشخصه ها را تعریÙ? Ù…ÛŒ کند، سن جاری Duke را از Web Service Ù…ÛŒ گیرد. همچنین تÙ?اضل دو سن را از enterprise Bean دریاÙ?ت میکند.
• Ù?ایل faces-config.xml برای configure نمودن بخش های مرتبط با JSF به کار Ù…ÛŒ رود.
• Ù?ایل web.xml Ú©Ù‡ Deployment Descriptor برنامه است Ùˆ تنظیمات App برای نصب در آن ثبت Ù…ÛŒ گردد.

Tier ها در این مثال
این مثال دارای
یک کامپوننت Web Tierيعني firstcup
دو کامپوننت Business Tier يعني DukeAgeService و DukesBirthdayBean
است.
Browser کاربر client Tier است. ضمنا این مثال EIS Tier ندارد.

Tier هاي اين Application را به همراه كليه Ù?ايل ها Ùˆ كلاس هاي اصلي Application در شكل زير ملاحظه مي كنيد.

firstcupArchitecture_small.JPG
تصوير بزرگتر

در مطلب بعد پروژه را با پياده سازي وب سرويس DukesAge ادامه خواهم داد.

mahyar_ev | 01:07 PM | Comment(s)(0)

MVC

June 23, 2007 10:42 AM

MVC يك Design Pattern است.

Design Pattern چيست و چرا از Design Pattern در جاوا است�?اده مي كنيم؟
Design Pattern ها الگو ها و روش هاي اثبات شده اي هستند كه هنگام طراحي معماري Application بايد مورد توجه قرار گيرند. Design Patternها نشانگر تجربه و دانش طراحاني هستند كه از آن ها با مو�?قيت است�?اده كرده اند. است�?اده از اين Design Pattern ها به شما امكان است�?اده از تجربيات ايشان را در جهت مقاصدتان مي دهد. ضمنا است�?اده از آنها ، زبان و قالب مشتركي را بين طراحان نرم ا�?زار �?راهم مي سازد.
Design Pattern هاي مختل�?ي وجود دارد كه يكي از مهمترين آنها MVC است.

MVC چيست؟
كاربران ممكن است از طريق Browser با �?رمت HTML يا Wireless Device با �?رمت WML يا Web Service با �?رمت XML و غيره به سرور، درخواست ب�?رستند. معماري MVC براي پاسخگويي به اين نياز ، يعني �?راهم آوردن امكان سرويس دهي به انواع كاربران با interface هاي گوناگون ، پديد آمده است.
MVC يكي از معماري هاي مهم در JavaEE است و به Model-View-Controller architecture اشاره دارد. اين معماري عمليات نمايش و مديريت داده ها را به سه قسمت تقسيم مي نمايد.
Model :وظي�?ه ارتباط با منابع اطلاعاتي (Database ها و غيره) را به عهده دارد. همچنين Business Logic در اين قسمت پياده سازي مي شود.
View : خروجي را با �?رمت مناسب توليد مي كند.
Controller : بعنوان واسط و هماهنگ كننده Model و View عمل مي كند.

mvc3.JPG

نحوه ارتباط بين اين اجزا را از هنگام دريا�?ت يك request تا صدور response در شكل زير ملاحظه مي نماييد.

MVC.JPG

در سيستم هاي web based از JSP در View، از Servlet در Controller و از Enterprise JavaBeans يا EJB در Model است�?اده مي شود.

mahyar_ev | 10:42 AM | Comment(s)(0)