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

multi layer programmnig

shahabnejad

کاربر تازه وارد
تاریخ عضویت
17 جولای 2006
نوشته‌ها
14
لایک‌ها
0
salam
kasi mitune dar morede multi programing etelaati be man bede?
mikham dar morede layer haye mokhtalefe [COLOR="Red"[COLOR="Red"]]data access , common layer , business layer , facade layer , ... [/COLOR]age mishe be hem etelaati bedin ya age baratun emkan dare ye site refrence behem moarefi konid.
mamnun
[/
COLOR][/COLOR
]
 

Y2K

Registered User
تاریخ عضویت
20 فوریه 2006
نوشته‌ها
656
لایک‌ها
1
محل سکونت
Location
سلام
فکر کنم اینا بدردت بخوره


برنامه چند لایه چیست؟


ntier.jpg


در معماری چند لایه تمام برنامه به چندین بخش تقسیم می شود. این بخش ها می توانند فیزیکی یا منطقی باشند. هر بخش کار خاصی را انجام می دهد مثلا نمایش اینترفیس کاربر یا دسترسی به داده ها. برنامه می تواند به هر تعداد لایه داشته باشد ولی به هر حال بیشتر برنامه ها سه لایه مجزا دارند که عبارتند از :
1- Presentation Layer
2- Business Logic Layer
3- Data Access Layer

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

در بیشتر موارد داده هایی که توسط کاربر وارد می شوند نیاز به اعتبارسنجی یا پردازش اضافی دارند. این مسوولیت لایه Business Logic است.

در نهایت داده های برنامه شما نیاز به ذخیره و بازیابی از طریق یک انبار داده دارند ( مثلا سیستم مدیریت دیتابیس های رابطه ای یا RDBMS و یا XML , .. ) این وظیفه توسط لایه دسترسی به داده انجام می شود.

به طور خلاصه، فرآیند مورد نظر ما این گونه کار می کند:

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

مزیت های برنامه های چند لایه

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

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

انتخاب های لایه Presentation

دو انتخاب اصلی برای ساخت یک لایه نمایش در دات نت وجود دارد. آنها فرم های ویندوزی یا فرم های وبی ASP.NET هستند.

با استفاده از ویندوز فرم ها شما می توانید برنامه های دسکتاپ فرم محور ( form base ) معمول را بسازید. برنامه های ویندوز فرمی می توانند المان های رابط کاربری بسیار غنی به کاربر پیشنهاد کنند.آن ها کم و بیش شبیه به فرم های ویژوال بیسیک هستند.

جذاب ترین گزینه برای توسعه لایه نمایش استفاده از وب فرم های ASP.NET است. کنترل هایی مثل دیتاگرید، دیتالیست و تقویم ( Calendar ) یک رابط کاربری قدرتمند را با مقدار کمی کد فراهم می کنند.

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

انتخاب های لایه Business Logic

لایه Business logic از چندین بخش که کارهایی نظیر اعتبار سنجی کار، گردش کار یا کارهای مشابه را انجام می دهند تشکیل شده است.

کامپوننت های دات نت این لایه را شکل می دهند. شما می توانید با interop از کامپوننت های COM استفاده کنید ولی این کار کارآیی را پایین خواهد آورد.

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

کامپوننت هایی که شما توسعه می دهید به ماندن روی ماشین های مشابه نیازی ندارند. با استفاده از .NET Remoting شما می توانید آن ها را روی چندین ماشین توزیع کنید.

انتخاب های لایه Data Access

این لایه با دستکاری داده ها مثل اضافه ، حذف و به روز رسانی آن ها سر و کار دارد. داده هایی که به آن ها اشاره کردیم می توانند در RDBMS یا XML قرار داشته باشند. شما باید لایه دسترسی به داده را چنان طراحی کنید که دیگر لایه ها نیازی به دانستن وضعیت انبار داده ها نداشته باشند.

ADO.NET فناوری دسترسی به داده تحت دات نت است. اگر چه ADO.NET از طریق کلاس های DataReader اجازه دسترسی به داده های در هنگام اتصال را می دهد ولی بیشترین تمرکز روی دسترسی به داده ها در زمان متصل نبودن است. دیتاست نقش کلیدی را در این مورد بازی می کند. در بعضی موارد شما می توانید ADO را هم برای دسترسی به داده ها استفاده کنید ولی استفاده از آن باید دلیل معتبری داشته باشد. از ADO استفاده نکنید فقط به خاطر اینکه RecordSet ها را دوست دارید !

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

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

علاوه بر ADO.NET شما می توانید از امکانات سیستم مدیریت دیتابیس خود مثل توابع و یا روال های ذخیره شده ( Stored Procedures ) استفاده کنید.

ارسال داده از یک لایه به لایه دیگر

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


منبع: http://www.nofa.ir/NewsBody-ID104.aspx
http://hamed.blogfa.com
 

Y2K

Registered User
تاریخ عضویت
20 فوریه 2006
نوشته‌ها
656
لایک‌ها
1
محل سکونت
Location
این هم جالبه



معماری و طراحی
تاکنون ، معماری های متفاوتی بمنطور طراحی و پیاده سازی متناسب با رشد فن آوری در بخش نرم افزار ارائه شده است این معماری ها از یکطرف برخاسته از امکانات و ماهیت معماری سخت افزار ها در زمان خود و از طرف دیگر بسته به نوع و نگرش در تکنولوژی های ساخت نرم افزاری و انتظارات طرح شده توسط کاربران است هر معماری دارای شاخص ها و ویژگی های منحصر بفرد خود بوده و نرم افزارهائی که با اتکاء بر هر یک از معماری های فوق پیاده سازی می گردنند ، خصایص خود را از معماری بکارگرفته شده به ارث خواهند برددر زیر به شرح مختصری از هر یک از معمارها می پردازیم مسلما معماری ها و چارچوب های جدید مبتنی بر برنامه نویسی تحت وب و اینترنت نظیر J2EE , .Net قابلیت و لزوم استفاده از معماریهای چند لایه را توصیه می نمایندعلاوه بر این در این نوع معماری عدم وابستگی بین مولفه ها (Components) و نیز سرویسها ( در غالب معماری Service Oriented ) مورد تاکید قرار گرفته است .

معماریMainFrame
معماریFile Server
معماری سرویس گیرنده / سرویس دهنده
معماریTwo-Tier
معماری چندلایه Three-Tier ,N Tier


معماری MainFrame
ویژگی :
- معماری فوق در دهه های 1970-1960 مورد توجه و استفاده جدی قرار داشت
- کامپیوتر اصلی ( Host) مسئولیت انجام تمامی پردازش ها را برعهده دارد.
- کاربران با استفاده از ترمینال ها ، قادر به ایجاد ارتباط با سیستم اصلی (host) می باشند.
- ترمینال ها هوشمند نبوده و صرفا" به یک صفحه کلید و نمایشگر محدود می باشند.
- فشردن کلیدهای صفحه کلید ، تنها چیزی است که ارتباط بین کاربران(ترمینال ها ) و سیستم اصلی را معنی خواهد کرد.
- داده ها و منطق برنامه بر روی یک سیستم (Host) یکسان ذخیره می گردنند.


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


معایب :

هزینه تهیه ، اجاره و پشتیبانی این نوع سیستمها بسیار بالا است .
برنامه ( منطق ) بهمراه داده های مربوطه در یک محل مستقر و از یک محیط پردازش یکسان استفاده می کنند.
اغلب برنامه های نوشته شده بر اساس معماری فوق محیط های رابط کاربر گرافیکی را حمایت نمی نمایند.


معماری File Server
ویژگی :
چرخش180 درجه ای نسبت به معماری MainFrame.
از سرویس دهنده یا سرویس دهند گان متعدد، بصورت متمرکز استفاده می گردد.
منابع متفاوتی نظیر چاپگر و یا فضای ذخیره سازی ( هارد ) به اشتراک گذاشته می شوند.
سرویس دهنده فایل های مورد نیازو ذخیره شده توسط منابع اشتراکی را برای کاربران ارسال خواهد کرد.
کار درخواست شده توسط کاربر ( منطق و داده ) بر روی سیستم کاربر اجراء خواهد شد.
منطق برنامه برروی سیستم کاربر ( سرویس گیرنده ) اجراء خواهد کردید.
داده ها بر روی سرویس گیرنده مستقر خواهند شد.

مزایا :

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


معایب :

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


معماری Client Server
ویژگی :
در معماری فوق از سرویس دهند گان و سرویس گیرند گان با خصایص متفاوت استفاده می شود.
اصل تقسیم کار دنبال و سرویس دهنده عملیات سنگین با پردازش بالا و سرویس گیرنده عملیات سبک را انجام خواهند داد.
دو بخش متفاوت یک برنامه ، در جهت انجام عملیات با یکدیگر تشریک مساعی می نمایند.
سرویس گیرنده با ارسال درخواست و سرویس دهنده با پاسخ به درخواست جلوه ای از همیاری در پردازش عملیات را بنمایش می گذارند.
پلات فورم و سیستم های عامل سرویس دهنده و سرویس گیرنده می تواند متفاوت باشد.
عملیاتی را که یک برنامه انجام می دهد بین سرویس دهنده و سرویس گیرنده تقسیم می گردد.


مزایا :
بهره گیری مناسب از پتانسیل های سخت افزاری موجود با توجه به اصل تقسیم عملیات ها
بهینه سازی استفاده و بکارگیری منابع اشتراکی .
بهینه سازی توانائی کاربران از بعد انجام فعالیت های متفاوت


معایب :
عدم وجود امکانات لازم برای کپسوله نمودن سیاست های راهبردی نرم افزار
کاهش کارائی برنامه همزمان با افزایش تعداد کاربران همزمان
بهبود عملکرد برنامه و یا اعمال اصلاحات مورد نظر همواره یکی از چالش های جدی است .


تاکنون مدل های متفاوتی از معماری فوق پیاده سازی شده است :

1- پردازش های مبتنی بر میزبان مدل فوق بمنزله یک مدل سرویس دهنده / سرویس گیرنده تلقی نشده و مشابه مدل MainFarme است

2- پردازش های مبتنی بر سرویس دهنده در این مدل سرویس دهنده تمامی پردازش های مربوطه را انجام و سرویس گیرنده مسئولیت ایجاد بخش رابط کاربر را برعهده خواهد د اشت.

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

4- پردازش های مبتنی بر همیاری .در این مدل سرویس دهنده و سرویس گیرنده بمنظور انجام یک فعالیت با یکدیگر تشریک مساعی خواهند کرد.



معماری Client Server : Two Tier
ویژگی :
مشابه مدل Client Server در بخش قبل می باشد.
در این مدل از یک سرویس دهنده و یک سرویس گیرنده در شبکه استفاده می گردد.
مدل فوق از سه بخش که در دو لایه سرویس دهنده و سرویس گیرنده قرار خواهند گرفت، تشکیل می گردد.
بخش های رابط کاربر ، مدیریت پردازش ها و مدیریت بانک های اطلاعاتی بخش های سه گانه مدل فوق می باشند.
منطق برنامه بین دو محل فیزیکی توزیع می گردد.

مزایا :
مناسب ترین روش برای پردازش های توزیع شده در یک شبکه با حداکثر یکصد کاربر
سهولت در امر پیاده سازی
نسبت دهی مستقیم رابط کاربر با منابع تامین داده ها


معایب :

عدم وجود امکاناتی برای کپسوله نمودن سیاست های راهبردی نرم افزار
کاهش کارائی برنامه همزمان با افزایش تعداد کاربران همزمان
عدم وچود انعطاف لازم از بعد انتقال یک برنامه از سرویس دهنده ای به سرویس دهنده دیگر بدون انجام تغییرات اساسی


معماری Multi Tier, Three Tier

muti-tier-arc.gif

ویژگی :
مدل فوق در سال 1990 عرضه شده است .
در این مدل از یک Tier میانی دیگر بین سرویس گیرنده ( رابط کاربر) و سرویس دهنده بانک اطلاعاتی استفاده می شود.
لایه میانی شامل مجموعه ای از ابزارها برای دستیابی به منابع سیستم ، صرفنظر از نوع پلات فورم است
لایه میانی مسئولیت مدیریت پردازش ها را برعهده خواهد گرفت
لایه میانی مسئولیت تجزیه و یا ترکیب نتایج حاصله از منابع داده ئی نظیر بانک های اطلاعاتی را برعهده دارد.
بخش های رابط کاربر ، مدیریت پردازش ها و مدیریت بانک های اطلاعاتی بخش های سه گانه مدل فوق می باشند.
لایه میانی خود می تواند به دو و یا بیش از دو بخش با عملکردهای متمایز تقسیم گردد (Multi-Tier) لایه منطق تجاری می تواند برروی سرویس دهنده های متعدد قرار گیرد.
مدل فوق گزینه ای مناسب برای پیاده سازی نرم افزار بر روی اینترنت است .

مزایا :
افزایش کارآئی ، انعطاف پذیری ، قابلیت استفاده مجدد و توان پشتیبانی
ارتقاء کارآئی همزمان با افزایش تعداد کاربران
مخفی نمودن پیچیدگی ها ی موجود با توجه به ماهیت پردازش های توزیع شده از دید کاربران
ارائه امکانات لازم به برنامه نویسان بمنظور طراحی و پیاده سازی نرم افزار ها با یک رویکرد مشابه
ارائه امکانات لازم به برنامه نویسان بمنظور تبعیت از روش های یکسان برای دستیابی به داده ها
استفاده از الگوهای طراحی و برنامه نویسی در پیاده سازی و توسعه سریع تر


منبع:
http://www.dpi.ir/software-technology-architecture-fa.html
 
بالا