ورود کاربران VIP سرزمین دانلود، مرجع دانلود و آموزش رایگان نرم افزار

منوی سایت



پردازش های مبتنی بر Client Server

Rating: 5 - 24 votes

پردازش های مبتنی بر Client Server


در اواسط دهه 80 میلادی و زمانیکه اولین بار تولیدکنندگان تجهیزات شبکه، محصولات خود را به بازار عرضه کردند، واژه Client/Server وارد عرصه کامپیوتر گردید. در آن زمان واژه فوق صرفا در رابطه با تجهیزات سخت افزاری ( کامپیوتر ) استفاده می شد و کامپیوتری که از آن بعنوان مرکز ثقل ارائه خدمات در یک شبکه یاد می شد، را با نام Server و کامپیوتری که از این امکانات استفاده می کرد را بعنوان Client می شناختند ( سایه نرم افزار بر این واژه حضور سنگینی نداشت ).

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

اغلب برنامه های کاربردی دارای سه لایه اصلی می باشند :

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

لایه Application یا Business Logic: لایه فوق مسئول اعمال و پیاده سازی سیاست های مورد نظر در یک نرم افزار است، در حقیقت با عملکرد لایه فوق است که می توان تفاوت بین یک نرم افزار از نرم افزار دیگر را مشاهده و بعنوان مثال تفاوت بین یک نرم افزار ثبت سفارش و یا انبارداری را حس کرد.

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

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

مدل One-Tire:
در این نوع نرم افزارها سه لایه گفته شده بصورت متراکم و فشرده در کنار یکدیگر قرار می گیرند. در مدل فوق لایه Presentation دارای آگاهی خاص و جزئی از ساختار بانک اطلاعاتی است. لایه Application اغلب بصورت موجی با لایه های Presentation و Service مرتبط خواهد بود. تمام سه لایه گفته شده بهمراه بانک اطلاعاتی، اغلب بر روی یکدستگاه کامپیوتر قرار گرفته و اجرا خواهند شد. نرم افزارهائی با این خصوصیت بسادگی طراحی شده و بکمک ابزارهای برنامه نویسی امروزی بسرعت نوشته خواهند شد.

در صورتیکه بخواهیم یک نرم افزار One-tire با چندین کاربر را طراحی نمائیم، می توان نرم افزار را بر روی چندین کامپیوتر اجرا و با به اشتراک گذاشتن بانک اطلاعاتی زمینه استفاده از داده های موجود در بانک را برای سایر کاربران نیز فراهم نمود. بانک اطلاعاتی را می توان بر روی یکدستگاه کامپیوتر معمولی در یک شبکه نظیر به نظیر ( Peer to Peer ) و یا بر روی یک سرویس دهنده فایل ( File Server ) نصب نمود. در این حالت هر یک از کامپیوترهائی که برنامه بر روی آنها اجرا می گردد می بایست دارای یک نسخه از Database Engine بوده تا قادر به استفاده از داده های موجود در بانک اطلاعاتی باشند. در این مدل صرفا داده ها به اشتراک گذاشته شده و منطق بانک اطلاعاتی به اشتراک گذاشته نشده است. این نوع از نرم افزارها ( چند کاربره One Tire ) تا زمانیکه تعداد کاربران کم باشد موفق عمل می نمایند ولی با افزایش تعداد کاربران، با مشکل مواجه می شوند.

علت عمده بروز مشکل پایبند بودن این نوع از نرم افزارها به انجام عملیات مربوط به بانک های اطلاعاتی بر روی هر یک از سرویس گیرندگان است. مثلا اگر برنامه ای از این نوع نیاز داشته باشد که لیست تمامی کاربرانی را که نام آنها Reza است، را نمایش دهد، می بایست تمامی اطلاعات ( رکوردهای داده و ایندکس های مربوطه ) بمنظور پاسخگوئی به درخواست واصل شده، بر روی شبکه فرستاده شود. در برخی حالا ت خاص و با توجه به پیچیدگی درخواست های صادر شده برای اطلاعاتی خاص، ممکن است تمامی بانک اطلاعاتی برای سرویس گیرنده ارسال گردد.

اگر از یک سطح فنی به مسئله فوق نگاه کنیم، مدیریت Database Engine های مستقل بر روی سرویس گیرندگان بمنظور ممانعت از بروز تعارض ( Conflict ) بین دو سرویس گیرنده جهت تلاش برای دستیابی و یا بهنگام سازی برخی رکوردها مشکل است ( مسئله Record Locking ).

مدل Two Tire:
بمنظور حل مشکل مطرح شده در مدل One-tire از بعد کارائی و مسائل فنی مربوطه، مدل فوق معرفی گردید. نرم افزارهائی که با اتکا بر مدل فوق طراحی و پیاده سازی می گردنند در اغلب موارد دارای عملکردی مشابه مدل One Tire بوده با این تفاوت مهم که Database Engine بر روی سرویس گیرنده ها اجرا نخواهد شد.

در مدل فوق بانک اطلاعاتی بر روی سرویس دهنده اجرا می گردد. از روش های متعددی برای ارتباط بین لایه Application(Logic) و Database Service استفاده می گردد. SQL ( زبان ساختیافته پرس و جو ) از متداولترین روش های موجود در این زمینه است. دستورات SQL به سرویس دهنده بانک اطلاعاتی ارسال شده و در آنجا عملیات مربوطه بصورت محلی انجام و نتیجه ( اطلاعات مربوط به درخواست ارسال شده ) برای سرویس گیرنده ها ارسال خواهد شد. در مدل فوق صرفا سرویس دهنده بانک اطلاعاتی از برنامه مجزا شده و لایه های Presentation و Busines Logic همچنان در هم تنیده هستند. دو لایه فوق همچنان دارای آگاهی اساسی ( محرمانه ) از بانک اطلاعاتی خواهند بود.

نوشتن برنامه هائی از این قبیل تا اندازه ای پیچیده تر از مدل قبل است. امروزه ابزارهای برنامه نویسی نیز مجهز به پتانسیل هائی شده اند که طراحی و نوشتن این نوع از برنامه ها را سرعت می بخشد. اغلب ابزارهای برنامه نویسی دارای امکاناتی جهت استفاده از DataBase Engines بوده که می توان از آنها در طراحی برنامه های One-Tire استفاده کرد ( نظیر Jet Engine که توسط اکسس و ویژوال بیسیک استفاده می گردد) اما نرم افزارهای Two Tire نیازمند محصولات مجزای بانک اطلاعاتی نظیر Oracle , IBM DB2 , Sybase و SQL Sever می باشند.

مدل Three Tire:
این مدل همانگونه که احتمالا حدس زده اید تمامی سه لایه گفته شده را در بخش های مستقل قرار می دهد. در مدل فوق Business Logic یک سرویس است و می تواند بر روی کامپیوتر اختصاصی خود فعال و اجرا گردد. زمانیکه Business بصورت یک سرویس دهنده در نظر گرفته می شود با نام Application Server نامیده می شود. یک Application Server اغلب ممکن است بر روی همان کامپیوتری که DataBase Engine قرار دارد، نصب گردد. شاید یکی از دلایل مهم جهت انجام این کار افزایش کارآئی سیستم باشد.

یکی از مزایای مهم و کلیدی، داشتن یک Application Server این است که بتوان آن را در محلی قرار داد که به بهترین نوع ممکن خدمات خود را ارائه نماید. در این مدل مسئله حائز اهمیت در این است که تمامی Application Serverها بتوانند و می بایست سرویس بانک اطلاعاتی خود را از یک کامپیوتر مرکزی دریافت دارند. ( ممکن است در برخی حالات تعدادی از کاربران نرم افزار از یک Application Server که بر روی یک کامپیوتر مجزا قرار گرفته است استفاده نمایند و یک کاربر از راه دور ممکن است Application Server را بر روی یکدستگاه کامپیوتر اختصاصی اجرا نماید.) بهرحال محل Application Server و Database Server ارتباطی با کاربر نداشته و تمامی آنها با یک روش یکسان از نرم افزار و توانائی آن استفاده می نمایند.

در مدل فوق لایه Presentation دارای آگاهی خصوصی از بانک اطلاعاتی نبوده و لایه فوق از طریق لایه Application Server و بکمک یک استراتژی خاص با بانک اطلاعاتی مرتبط خواهد بود. مرورگرها در حالت خاص دارای هیچگونه شناختی از ساختار بانک اطلاعاتی در سایت Amazon.com نمی باشند ولی با این حال قادر به ارتباط با بانک اطلاعاتی و خرید یک کتاب هستند. در مدل فوق با نگرش وب، سرویس گیرنده از طریق یک پروتکل خاص با یک Application Server مرتبط می گردد. برنامه هائی از این نوع ( مدل Three Tire ) پیچیده تر از مدل های قبلی بوده و هنوز ابزارهای برنامه نویسی خاصی در این زمینه وجود ندارد و برنامه نویسان مجبور به نوشتن حجم بالائی از کدها خواهند بود.

مدل N Tire:
این مدل امروزه بسرعت رایج و مطرح شده است. در حقیقت مدل Three Tire در حالت خاص به سمت N-Tire میل خواهد کرد. در این حالت یک Application Server می تواند درخواست خود را از چندین سرویس دیگر داشته باشد. هر یک از سرویس های صدا زده شده نیز خود می توانند سرویس های دیگری را جهت پاسخگوئی به درخواست واصل شده، فعال نمایند. واژه MiddleWare اغلب جهت تشریح ارتباط یک برنامه یا Business Logic بر روی یک Application Server استفاده می گردد.

چه میزان از Bussines Logic می بایست بر روی Application Server قرار گیرد؟
بدون شک یکی از بخش های مهم هر نرم افزار که دائما می تواند دستخوش تغییرات گردد، مجموعه قوانینی است که با اعمال آنها سیاست عملکردی یک نرم افزار تعیین می گردد. مثلا در یک سیستم بازرگانی می توان قانونی را داشته باشیم که برای خریدهای بالای یکصد هزار تومان مجوز مدیر مربوطه فرض است. در این حالت می توان قانون فوق را بصورت یک روتین ( سرویس ) و بصورت جامع طراحی و در لایه Application قرار داد، سرویس فوق می تواند توسط سایر سرویس های موجود در این لایه و یا سایر لایه ها مورد استفاده قرار گیرد. بدیهی است در صورتیکه این سیاست به نوعی تغییر نماید و قرار شود از این پس خریدهای بالای یکصد و پنجاه هزار تومان مکلف به تایید مدیریت مربوطه باشند، بسادگی با اعمال تغییر در روتین فوق و تزریق سیاست جدید، زمینه استفاده اتوماتیک از آن برای سایر سرویس های استفاده کننده فراهم می گردد.

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

در برخی از موارد می توان این سیاست ها را در قالب مجموعه ای از سرویس ها در لایه Presentation قرار داد. بررسی صحت داده های ورودی یک نمونه مناسب در این زمینه است. در این مورد اغلب قوانین جهت بررسی اعتبار و صحت داده های ورودی بر روی لایه Presentation قرار خواهد گرفت. بدیهی است در چنین حالتی بجای ارسال اطلاعات بررسی نشده به لایه Application و بکارگیری یک روتین جهت بررسی صحت داده ها، می توان این عملیات را در لایه Presentation قرار داد تا بدینوسیله از یکطرف ترافیک محیط انتقال داده ها افزایش نیابد و از طرف دیگر کاربران رودرو با لایه Presentation بازخوردهای سریعی را از سیستم داشته باشند. بهرحال در چنین حالاتی بخشی از منطق عملکرد یک نرم افزار را در لایه Presentation قرار داده ایم. در صورتیکه حجم Logic اضافه شده در لایه Presentation کم و ناچیز باشد، در اینصورت لایه فوق بصورت انحصاری مسئولیت های پیش فرض خود را دنبال خواهد کرد. در چنین وضعیتی سرویس گیرنده را Thin Client می گویند. در حالتیکه بر روی سرویس گیرنده، Logic بالائی قرار گرفته باشد، به آن Fat Client می گویند.بهترین نمونه از یک Thin Client، مرورگرهای وب بوده که قادر به ارتباط با انواع نرم افزهائی است که بر روی وب سایت قرار دارند.

جمع بندی:
واژه Client Server دارای معانی بمراتب بیشتری نسبت به جداسازی یک کامپیوتر سرویس گیرنده و سرویس دهنده از یکدیگر است واژه فوق بسرعت در دنیای نرم افزار نیز مطرح و دارای جایگاه ویژه ای در این زمینه شده است. از دیدگاه فوق یک روتین ( سرویس ) می تواند ارائه دهنده خدمات خاصی به سایر سرویس ها باشد. در چنین وضعیتی سرویس ارائه دهنده خدمات را Server و سرویس استفاده کننده از یک خدمات را Client می گویند. با تعمیم سیاست های طراحی نرم افزار از مدل های One Tire به Two-Tire و Three Tire و نهایتا N-Tire و تاکید بر نگرش ساختیافته و اصولی به عملکرد هر یک از لایه ها، مفهوم روتین های سرویس دهنده ( Server ) و روتین های سرویس گیرنده (Client) جایگاه ممتازی را پیدا نمودند.

یک سرویس می تواند در عین خدمات دهی به سایر سرویس های متقاضی، خود نیز از خدمات سایر سرویس ها استفاده نماید. بنابراین یک سرویس دهنده در چنین حالتی بصورت اختصاصی صرفا رسالت سرویس دهی و یا سرویس گیری را انجام نخواهد داد. اگر از دیگاه هر لایه به عملکرد سرویس ها نظری داشته باشیم، قطعا تمامی آنها مسئولیت ارائه یک سرویس خاص را در لایه مربوطه برعهده خواهند داشته و قدرمطلق تمامی آنها ارائه خدمات است. مهمترین مزیت نگرش فوق حرکت بi سمت تولید سرویس هائی خواهد بود که اولا امکان استفاده از آنان در چندین نرم افزار فراهم شده و ثانیا زمینه تحقق اصل بسیار مهم استفاده مجدد از کدهای نوشته شده (Reusable Code) نیز فراهم می گردد. امروزه با توجه به نیاز روزافزون به طراحی و پیاده سازی نرم افزارهای متکی بر وب، مدل های Three Tire و N-Tire بشدت مورد توجه طراحان و پیاده کنندگان نرم افزارهای متکی بر بستر وب قرار گرفته است.


( بدون کامنت - اولین کامنت را شما بنویسید )



 



سوالات و نظرات کاربران در مورد این مطلب

هنوز نظری در مورد این مطلب ارسال نشده است. شما اولین نفر باشید!

نکات مهم :

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

* نام 
آدرس ايميل (برای دریافت پاسخ از طریق ایمیل)
* شماره موبایل (برای دریافت پاسخ از طریق SMS)
توجه: ایمیل و موبایل شما فقط برای دریافت پاسخ سایت بوده و نمایش داده نمیشود.
* متن

* کد امنیتی
کد امنیتی


(اگر کد امنیتی واضح نیست، روی آن کلیک کنید تا عوض شود)
 


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

سرزمین دانلود را دنبال کنید !

عضویت در خبرنامه سرزمین دانلود

با وارد کردن ایمیل خود و سپس تایید آن، جدیدترین مطالب و نرم افزار ها برای شما ارسال می شود:



------------------------------------------