اولين فنجان

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)