معماری شبکه client / server

تاریخ:۱۳۹۳/۰۶/۰۱

 

 

معماری شبکه client / server

 

 

 

 

شبکه client / server

 

 

 

سرور یک برنامه کامپیوتریProcess) )است که دارای اطلاعات است و برای دیگر برنامه های کامپیوتری سرویس و خدمات فراهم می کند.

کلاینت یک برنامه کامپیوتری Process) )است که نیاز به اطلاعات دارد و از سرویس ارایه شده توسط سرور استفاده می کند.

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

سرور به دیگر کامپیو تر های شبکه سرویس می دهد.در واقع به تقاضای کامپیو ترهای دیگر پاسخ مناسب می دهد که این پاسخ

می تواند اطلاعات مورد تقاضای آن ها ویا اجرای دستورالعمل باشد.

 

 

 

 

 

برای تحویل درخواست   ( Request) یا پاسخ  (Response) نیاز به آدرس دیگری به نام شماره پورت است

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

 
 
 
 
 
 
 
 

 ويژگی ها :

 

-  در معماری فوق از سرويس دهند گان و سرويس گيرند گان  با خصايص متفاوت استفاده می شود.

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

- دو بخش متفاوت يک برنامه ، در جهت انجام  عمليات با يکديگر تشريک مساعی می نمايند.

- سرويس گيرنده با ارسال درخواست و سرويس دهنده با پاسخ به درخواست جلوه ای از همياری در پردازش عمليات را بنمايش می گذارند.

- پلات فورم و سيستم های عامل سرويس دهنده و سرويس گيرنده می تواند متفاوت باشد.

- عملياتی را که يک برنامه انجام می دهد بين سرويس دهنده و سرويس گيرنده تقسيم می گردد.

 

مزايا  :

- بهره گيری مناسب از پتانسيل های سخت افزاری موجود با توجه به اصل تقسيم عمليات ها

- بهينه سازی استفاده و بکارگيری منابع اشتراکی  .

-بهينه سازی توانائی کاربران از بعد  انجام فعاليت های متفاوت

 

   معايب   :

- عدم وجود امکانات لازم  برای کپسوله نمودن سياست های راهبردی نرم افزار

- کاهش کارائی برنامه همزمان با افزايش تعداد کاربران همزمان

- بهبود عملکرد برنامه و يا اعمال اصلاحات مورد نظر همواره يکی از چالش های جدی است .

 

 

اتصالات کلاینت به سرور:

 

- اتصال به سرور از طریق   LAN

 

در اینگونه اتصالات کامپیوترها بوسیله کابل هایی به سرور متتصل میشوند.

 

- خط تلفن:

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

 

- یک شبکه WAN:

 در این مورد اتصالات مبتنی برTCP/IP است و در اینترنت انجام میشود.

یک شبکه  بی سیم:

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

 

 

انواع پردازش

 

۱ - پردازش های مبتنی بر ميزبان .

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

 

۲ - پردازش های مبتنی بر سرويس دهنده .

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

 

۳ - پردازش های مبتنی بر سرويس گيرنده .

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

 

٤ - پردازش های مبتنی بر همياری .

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

 

 

شماره پورت    port number
 

شماره پورت یک عدد 16بیتی است برای تعیین این که یک بسته اطلاعاتی در شبکه به چه برنامه ای در هاست مقصد تعلق دارد.

برای انتقال صفحات وب،پورت شماره 80 (HTTP)

برای انتقال فایل،پورت شماره 21 (FTP)

برای انتقال ایمیل پورت شماره 25 (SMTP)

 

 

دسته بندی port number

 

شماره پورت های کمتر از 255 برای برنامه های کاربردی عمومی مثل مرورگر وب و ایمیل

شماره پورت های 255 تا 1023 برای کمپانی ها با برنامه های کاربردی خاص آن کمپانی مثل پورت 660 برای mac os server admin


شماره پورت های بیش از 1023 برای استفاده عموم مانند پورت 1080 socks

 

 

 socket addressآدرس سوکت 

 

به ترتیب آدرس ip با شماره پورت  یک آدرس سوکت گفته میشود.جهت اینکه یک process به  process دیگر داده بفرستد

باید بتواند آن process مقصد را پیدا کند یعنی:

میزبان مشخص شود : بوسیله آدرس ip

process مورد نظر از پروتکل خاصی استفاده کند روی میزبان مشخص شود :بوسیله شماره port
 

 

بررسی معماری Client/Server در مدلهای تک لايه، دو لايه، سه لايه و چند لايه

 

مدل One-Tire


 

در اين نوع نرم افزارها سه لايه گفته شده بصورت متراكم و فشرده در كنار يكديگر قرار می گيرند. در مدل فوق لايه Presentation دارای

آگاهی خاص و جزئی از ساختار بانك اطلاعاتی است. لايه Application اغلب بصورت موجی با لايه های Presentation و Service مرتبط

خواهد بود. تمام سه لايه گفته شده بهمراه بانك اطلاعاتی، اغلب بر روی يكدستگاه كامپيوتر قرار گرفته و اجرا خواهند شد. نرم افزارهائی با

اين خصوصيت بسادگی طراحی شده و بكمك ابزارهای برنامه نويسی امروزی بسرعت نوشته خواهند شد.

در صورتيكه بخواهيم يك نرم افزار One-tire با چندين كاربر را طراحی نمائيم، می توان نرم افزار را بر روی چندين كامپيوتر اجرا و

با به اشتراك گذاشتن بانك اطلاعاتی زمينه استفاده از داده های موجود در بانك را برای ساير كاربران نيز فراهم نمود. بانك اطلاعاتی را می توان

بر روی يكدستگاه كامپيوتر معمولی در يك شبكه نظير به نظير (Peer to Peer ) و يا بر روی يك سرويس دهنده فايل  (File Server )نصب نمود.

در اين حالت هر يك از كامپيوترهائی كه برنامه بر روی آنها اجرا می گردد می بايست دارای يك نسخه از Database Engine بوده تا قادر به استفاده

از داده های موجود در بانك اطلاعاتی باشند. در اين مدل صرفا داده ها به اشتراك گذاشته شده و منطق بانك اطلاعاتی به اشتراك گذاشته نشده است.

اين نوع از نرم افزارها ( چند كاربره One Tire ) تا زمانيكه تعداد كاربران كم باشد موفق عمل می نمايند ولی با افزايش تعداد كاربران، با مشكل مواجه می شوند.

علت عمده بروز مشكل پايبند بودن اين نوع از نرم افزارها به انجام عمليات مربوط به بانك های اطلاعاتی بر روی هر يك از سرويس گيرندگان است.

مثلا اگر برنامه ای از اين نوع نياز داشته باشد كه ليست تمامی كاربرانی را كه نام آنها Reza است، را نمايش دهد، می بايست تمامی اطلاعات

( ركوردهای داده و ايندكس های مربوطه ) بمنظور پاسخگوئی به درخواست واصل شده، بر روی شبكه فرستاده شود. در برخی حالا ت خاص و

با توجه به پيچيدگی درخواست های صادر شده برای اطلاعاتی خاص، ممكن است تمامی بانك اطلاعاتی برای سرويس گيرنده ارسال گردد.

 

 

 

 

مدل 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 می باشند.

 

 

 

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

مدل 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 ) پيچيده تر از مدل های قبلی بوده و هنوز
 
ابزارهای برنامه نويسی خاصی در اين زمينه وجود ندارد و برنامه نويسان مجبور به نوشتن حجم بالائی
 
از كدها خواهند بود.

 

 

 

 

 

ويژگی  :

 

-  مدل فوق در سال 1990 عرضه شده است .

- در اين مدل از يک Tier ميانی ديگر بين سرويس گيرنده ( رابط کاربر) و سرويس دهنده بانک اطلاعاتی استفاده می شود.

- لايه ميانی شامل مجموعه ای از ابزارها برای دستيابی به منابع سيستم ، صرفنظر از نوع پلات فورم  است .

- لايه ميانی مسئوليت مديريت پردازش ها را برعهده خواهد گرفت .

- لايه ميانی مسئوليت تجزيه و يا ترکيب نتايج حاصله از منابع داده ئی نظير بانک های اطلاعاتی را برعهده دارد.

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

- لايه ميانی خود می تواند به دو و يا بيش از دو بخش با عملکردهای متمايز تقسيم گردد (Multi-Tier)

- مدل فوق گزينه ای مناسب برای پياده سازی نرم افزار بر روی اينترنت است .

 

   مزايا  :

- افزايش کارآئی ، انعطاف پذيری ، قابليت استفاده مجدد و توان پشتيبانی

- ارتقاء کارآئی همزمان با افزايش تعداد کاربران

- مخفی نمودن پيچيدگی ها ی موجود با توجه به ماهيت پردازش های توزيع شده از ديد کاربران

- ارائه امکانات لازم به برنامه نويسان بمنظور طراحی و پياده سازی نرم افزار ها با يک رويکرد مشابه

- ارائه  امکانات لازم به برنامه نويسان بمنظور تبعيت از روش های يکسان برای دستيابی به داده ها

 

 

 

مدل N Tire

 

اين مدل امروزه بسرعت رايج و مطرح شده است. در حقيقت مدل Three Tire در حالت خاص به سمت N-Tire ميل خواهد كرد.

در اين حالت يك Application Server می تواند درخواست خود را از چندين سرويس ديگر داشته باشد.

هر يك از سرويس های صدا زده شده نيز خود می توانند سرويس های ديگری را جهت پاسخگوئی به

درخواست واصل شده، فعال نمايند.

 
 
 
 
 
 
 
 
 
 

معماری توزیع شده client/server

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

 

توزیع شدگی:

 

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

 

 

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

 

 

web based client server

 

 با رشد اينترنت(هم چنین اینترانت و اکسترانت)، به مرور توسعه نرم افزارها به صورت Web Based Application مورد توجه قرار گرفت