۱۳۸۸ دی ۲, چهارشنبه

در يك برنامه 3 لايه،لايه داده (Data Layer) مي تواند يك يا چند Stored Proceture باشد كه حاوي دستورات Sql مي باشند و در زمان لازم اجرا مي شوند.وقتي كه از Stored Proceture ها استفاده مي كنيم باعت مي شود كه ديگر لازم نباشد دستورات Sql خود را توسط برنامه حاوي رابط كاربر به بانك اطلاعات بفرستيم و اين باعث مي شود كه برنامه ما در لايه هاي منطقي و نمايش اطلاعي از اين دستورات و ساختار آنها نداشته باشند.در ضمن استفاده از Stored Proceture باعث افزايش سرعت برنامه مي شوند.

لايه منطقي مي تواند يك سرويس وب (Web Service) باشد.در اين لايه قوانين تجاري و محاسبات برنامه قرار مي گيرند واين لايه كه يك لايه مياني نيز مي باشد با لايه داده و نمايش در ارتباط است و مثلا داده ها را از لايه داده دريافت كرده و به لايه نمايش ارسال مي كند.تغييراتي كه در لايه نمايش بر روي داده ها انجام مي گيرد توسط لايه منطقي به لايه داده فرستاده مي شود.

لايه نمايش هم مي تواند يك برنامه Windows Application و يا Web Application باشد كه به عنوان يك رابط كاربر قرار گرفته و كاربر نهايي با آن در تعامل مي باشد

در معماری 3 لایه برنامه به چه بخش هایی تقسیم می شود و هر یک چه وظیفه ای را بر عهده دارند و چگونه با یکدیگر ارتباط برقرار می کنند؟

در معماری 3 لایه برنامه به چه بخش هایی تقسیم می شود و هر یک چه وظیفه ای را بر عهده دارند و چگونه با یکدیگر ارتباط برقرار می کنند؟






در معماری 3 لایه برنامه دارای بخش های زیر می باشد :



1) Presentation Layer لایه نمایش

2) Business Logic Layer لایه منطق

3) Data Access Layer لایه دسترسی به داده



در لایه دسترسی به داده هرگونه عملیات خواندن درج بروز رسانی و حذف داده های پایگاه داده را بر عهده می گیرد



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

نکته مهم در لایه منطق این است که گردش کار برنامه در این لایه انجام میشود .

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



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

نکات مهم

می توان نکات مهم بحث را اینطور خلاصه کرد:


1)در معماری چند لایه، برنامه به قسمت های کوچکتری تقسیم می شود که هریک وظیفه ی خاصی را بر عهده دارند، بدین معنا که هر Task(وظیفه) در لایه ی مخصوص به خود انجام می شود،

2)اگر لایه ها به طور فیزیکی از یکدیگر مجزا شده باشند، به هر یک از آن ها یک Tier گفته می شود و هر یک از این Tier ها می توانند بر روی یک سرور مجزا قرار گیرند(Distributed Applications)، (در یک Solution، برای هر Tier، یک پروژه جدید ایجاد می گردد)

3)در صورتی که لایه ها به طور منطقی از یکدیگر مجزا شده باشند، به هر یک از آنها یک Layer گفته می شود و عموما" تمامی لایه ها در یک پروژه قرار خواهد گرفت،

4)نگهداری(Maintenance) آسانتر می گردد، بدین صورت که با بهره گیری از یک سری استاندارد ها و فریم ورک ها و نیز برتامه نویسی شیء گرا این امر محقق می گردد،

5)امکان اضافه کردن یک لایه به لایه های موجود و یا تعویض یک لایه با یک لایه ی دیگر وجود دارد،

6)کار گروهی نیز بسیار منظم تر خواهد شد،

7)با بهره گیری از قوانین برنامه نویسی شیء گرا می توان هر تغییری در عملکرد برنامه را در کمترین زمان و با پایین ترین میزان تاثیر منفی در کارکرد سایر قسمت ها، اعمال نمود،

8)با به کار گیری مکانیزم های موجود، اشکال زدایی(Debugging) پروژه بسیار راحت تر خواهد بود و در حقیقت موجب ارتقاء Manageability سیستم می گردد،

9)امنیت(Security) نیز ارتقاء می یابد،

10)...

معماری سه لایه

معماری سه لایه چیست؟


این معماری در اصل می‌توان گفت برگرفته شده از ایده معماری چند لایه (Multi tire) می‌باشد. در معماری سه لایه پروژه‌های نرم افزاری بر خلاف مدل دو لایه که باعث افزایش ترافیک و کاهش شدید انعطاف پذیری می‌شود، در سه لایه اصلی طراحی و پیاده سازی می‌شوند.این سه لایه عبارت اند از:

۱) لایه نمایش (Presentation Layer)

۲) لایه ی منطقی (Business Logic Layer)

۳) لایه ی دسترسی به داده ها (Data Access Layer)










این سه لایه هر کدام وظایف جداگانه و خاص خود را دارند.ولی این لایه ها با یکدیگر در ارتباط هستند و لایه ی منطقی، واسط لایه ی “دسترسی به داده ها” و “لایه ی نمایش” می باشد. به عبارت دیگر، لایه ی نمایش نباید به صورت مستقیم با لایه ی دسترسی به داده ها ارتباط برقرار کند.

اکنون به صورت مختصر به شرح هر لایه می پردازیم:

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



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



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



نحوه همکاری و تعامل این سه لایه:










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

• لایه Data Access داده های درخواسای را بازیابی می کند و از طریق لایه Business آنها را برای مشاهده کاربر به لایه Presentation می فرستد.(البته برای بازیابی اطلاعات می توان اطلاعات را مستقیمآ از لایه Data Access به لایه Presentation نیز فرستاد.)

• در این مرحله لایه Presentation اطلاعاتی که از لایه Business (و یا مستقیمآ از پایگاه داده) گرفته است را نشان می دهد.

• اکنون کاربر می تواند داده های نمایش داده شده را با توجه به نیاز خود پردازش کند.(کارهایی از قبیل درج، حذف، ویرایش و ...)

• لایه Business صحت و درستی داده هایی که کاربر برای پردارش اطلاعات وارد نموده است را بررسی می کند.

• اگر اطلاعات درست باشند لایه Business آنها را برای ثبت در پایگاه داده به لایه Data Access می فرستد.



چرا از معماری سه لایه استفاده می کنیم؟



مهمترین دستاورد معماری سه لایه استقلال قسمتهای مختلف پروژه با یکدیگر می باشد. به عنوان نمونه یک سیستم شلوغ با تعداد زیاد کاربر و پایگاه داده بزرگ را در نظر بگیرید.اگر اطلاعاتی که کاربران به طور همزمان وارد می کنند در پایگاه داده اعتبارسنجی شوند باعث ترافیک زیادی در سیستم می شود و کارایی پایین می آید.ولی در معماری سه لایه،اطلاعات وارد شده توسط هر کاربر در لایه Business همان برنامه ای که کاربر با آن کار می کند اعتبارسنجی می شود و در نتیجه از به وجود آمدن این مشکل بزرگ تا مقدار زیادی جلوگیری می شود.



ویژگی دیگر معماری سه لایه امکان گسترش آن می‌باشد.در این معماری برنامه نویسان می‌توانند در صورت تغییرات که می‌تواند کوچک یا بزرگ باشد در هر لایه این تغییرات را اعمال نمایند بدون اینکه نیاز به تغییر در لایه‌های دیگر باشد یا کمترین تغییرات متوجه لایه دیگر می‌شود. بعنوان مثال امروزه در سیستمهای مدرن بانکی قوانین تغییرات زیادی را دارند که اگر از معماری دو لایه استفاده شود جهت اعمال این تغییرات نیاز به تغییرات فراوانی در فایلهای اجرایی یا بانک اطلاعاتی و نصب مجدد آنها برای تمامی کاربران می‌باشد ولی در معماری سه لایه اگر به فرض فرمول محاسبه سود تغییر کند با اعمال تغییر در لایه Business و عوض کردن این لایه با ویرایش جدید، تمامی سیستمها بدون آنکه متوجه تغییر شوند و یا نیاز به نصب مجدد داشته باشند می‌تواند با سیستم جدید ارتباط برقرار کنند.همچنین پایگاه داده (DataBase) برنامه را می توان به راحتی تغییر داد .










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



۱۳۸۸ آبان ۹, شنبه

مهم ترين سوال هاي جامعه ايرانی!!

1) اجتماعی:

کی عاشق کی شده؟
کی مراسم می گیرن؟
مهریه-اش چقدر بود؟
جهیزیه اش چیا بود؟
آیا حامله است؟
چی زائیده؟


-----------------------------
2) هنری:

کی با کی نسبت داره؟
کی چقدر می گیره؟
کی قراره با کی ازدواج کنه؟
کی با کی به هم زده؟
کی کجا رقصیده؟

--------------------------------
3) اداری:

کی چقدر می گیره؟
کی قراره مدیر بشه؟
کی با مدیر نسبت داره؟
کی با مدیر به هم زده؟
کی قراره ازدواج کنه ؟

-------------------------------
۴) مراسم عروسی

کی چی پوشیده؟
کی چی خریده؟
کی چی مالیده؟
کی با چی آمده؟
کی بخاطر کی نیومده؟

-------------------------------
۵)بعد از مراسم:

کی چی پوشیده بود؟
کی چی آورده بود؟
کی چرا نیومده بود؟
کی بدون دعوت آمده بود؟
کی بود که چیز مناسبی نپوشیده بود؟!


------------------------------
۶) ترکیبی:

کی، کجا و با کی نسبت داشت که حالا داره چقدر می گیره؟
کی عاشق کی بود که حالا چرا باید بره با یه کی دیگه ازدواج کنه؟
کی از کجا آورده که تونسته چی بخره؟
کی با کی به هم زده که با کی خوب شده؟
کی با کی کجا رقصیده بودن که چرا چیز مناسبی نپوشیده بودن؟

۱۳۸۸ شهریور ۲۶, پنجشنبه

بهترین لحظات زندگی از نگاه چارلی چاپلین

بهترین لحظات زندگی از نگاه چارلی چاپلین
Best Moments in Life from Charli Chaplin
To fall in love
عاشق شدن
To laugh until it hurts your stomach.
آنقدر بخندی که دلت درد بگیره
To find mails by the thousands when you return from a vacation.
بعد از اینکه از مسافرت برگشتی ببینی هزار تا نامه داری
To go for a vacation to some pretty place.
. برای مسافرت به یک جای خوشگل بری
To listen to your favorite song in the radio.
به آهنگ مورد علاقت از رادیو گوش بدی
To go to bed and to listen while it rains outside.
به رختخواب بری و به صدای بارش بارون گوش بدی
To leave the Shower and find that the towel is warm
از حموم که اومدی بیرون ببینی حو له ات گرمه !
To clear your last exam.
آخرین امتحانت رو پاس کنی
To receive a call from someone, you don't see a lot, but you want to
. کسی که معمولا زیاد نمی بینیش ولی دلت می خواد ببینیش بهت تلفن کنه
To find money in a pant that you haven't used since last year
. توی شلواری که تو سال گذشته ازش استفاده نمی کردی پول پیدا کنی
To laugh at yourself looking at mirror, making faces.
برای خودت تو آینه شکلک در بیاری و بهش بخندی !!!
Calls at midnight that last for hours.
تلفن نیمه شب داشته باشی که ساعتها هم طول بکشه
To laugh without a reason.
بدون دلیل بخندی
To accidentally hear somebody say something good about you.
بطور تصادفی بشنوی که یک نفر داره از شما تعریف می کنه
To wake up and realize it is still possible to sleep for a couple of hours.
از خواب پاشی و ببینی که چند ساعت دیگه هم می تونی بخوابی !
To hear a song that makes you remember a special person.
آهنگی رو گوش کنی که شخص خاصی رو به یاد شما می یاره
To be part of a team.
عضو یک تیم باشی
To watch the sunset from the hill top.
از بالای تپه به غروب خورشید نگاه کنی
To make new friends.
دوستای جدید پیدا کنی
To feel butterflies! In the stomach every time that you see that person.
وقتی "اونو" میبینی دلت هری بریزه پایین !
To pass time with your best friends
. لحظات خوبی رو با دوستانت سپری کنی
To see people that you like, feeling happy.
کسانی رو که دوستشون داری رو خوشحال ببینی
See an old friend again and to feel that the things have not changed.
یه دوست قدیمی رو دوباره ببینید و ببینید که فرقی نکرده
To take an evening walk along the beach..
عصر که شد کنار ساحل قدم بزنی
To have somebody tell you that he/she loves you.
یکی رو داشته باشی که بدونید دوستت داره
To laugh .......laugh. . ..........and laugh ....... remembering stupid things done with stupid friends.
یادت بیاد که دوستای احمقت چه کارهای احمقانه ای کردند و بخندی و بخندی و
........ باز هم بخندی
These are the best moments of life....
اینها بهترین لحظه‌های زندگی هستند
Let us learn to cherish them.
قدرشون روبدونیم
"Life is not a problem to be solved, but a gift to be enjoyed"
زندگی یک مشکل نیست که باید حلش کرد بلکه یک هدیه است که باید ازش لذت برد
************ **** وقتي زندگي 100 دليل براي گريه كردن به تو نشان ميده ،
تو 1000 دليل براي خنديدن به اون نشون بده.
چارلي چاپلين