Клиент-сървър

В компютърните науки "клиент-сървър" е модел на софтуерна архитектура, състоящ се от две части - клиентски системи и сървърни системи, които комуникират в компютърна мрежа или на един и същ компютър. Приложението клиент-сървър е разпределена система, съставена от клиентски и сървърен софтуер. Приложението клиент-сървър осигурява по-добър начин за разпределяне на работното натоварване. клиентският процес винаги инициира връзка със сървъра, докато сървърният процес винаги чака за заявки от всеки клиент.

Когато клиентският процес и процесът на сървъра се изпълняват на един и същи компютър, това се нарича настройка на едно място.

Друг вид свързана софтуерна архитектура е известна като peer-to-peer, тъй като всеки хост или екземпляр на приложение може да действа едновременно като клиент и сървър (за разлика от централизираните сървъри на модела клиент-сървър) и тъй като всеки от тях има еквивалентни отговорности и статус. Архитектурите от типа "peer-to-peer" често се съкращават, като се използва съкращението P2P.

Връзката клиент-сървър описва връзката между клиента и начина, по който той подава заявка за услуга към сървъра, и начина, по който сървърът може да приеме тези заявки, да ги обработи и да върне заявената информация на клиента. Взаимодействието между клиента и сървъра често се описва с помощта на диаграми на последователността. Диаграмите на последователността са стандартизирани в Unified Modeling Language.

Днес широко се използват както архитектурите клиент-сървър, така и архитектурите P2P.

Основният тип софтуерна архитектура клиент-сървър използва само два типа хостове: клиенти и сървъри. Този тип архитектура понякога се нарича двустепенна. Архитектурата на две нива означава, че клиентът действа като едното ниво, а сървърният процес - като другото ниво.

Софтуерната архитектура "клиент-сървър" се превърна в един от основните модели на мрежовите компютри. Много видове приложения са написани, използвайки модела клиент-сървър. Стандартните мрежови функции, като обмен на електронна поща, достъп до уеб и до бази данни, се основават на модела клиент-сървър. Например уеб браузърът е клиентска програма на потребителския компютър, която може да получи достъп до информация на всеки уеб сървър в света.

Мрежа, базирана на един сървър.Zoom
Мрежа, базирана на един сървър.

Мрежа, базирана на принципа peer-to-peer.Zoom
Мрежа, базирана на принципа peer-to-peer.

Характеристики на клиентите

  • Винаги инициира заявки към сървърите.
  • Изчаква отговори.
  • Получава отговори.
  • Обикновено се свързва с малък брой сървъри едновременно.
  • Обикновено взаимодейства директно с крайните потребители, като използва какъвто и да е потребителски интерфейс, например графичен потребителски интерфейс.

Характеристики на сървъра

  • Винаги изчаквайте заявка от някой от клиентите.
  • Обслужва заявките на клиентите, след което отговаря на клиентите със заявените данни.
  • Даден сървър може да комуникира с други сървъри, за да обслужи клиентска заявка.
  • Ако за обработката на заявката е необходима допълнителна информация (или е въведена защита), сървърът може да поиска допълнителни данни (пароли) от клиента, преди да обработи заявката.
  • Крайните потребители обикновено не взаимодействат директно със сървъра, а използват клиент.

Предимства

  • В повечето случаи архитектурата клиент-сървър позволява влошаването на ролите и отговорностите на компютърната система да бъдат разпределени между няколко независими компютъра, които се познават помежду си само чрез мрежа, така че едно от предимствата на този модел е по-голямата лекота на поддръжката. Например, възможно е да се замени, ремонтира, надгради или дори премести сървър, докато неговите клиенти остават както незапознати, така и незасегнати от тази промяна. Тази независимост от промени се нарича още капсулиране.
  • Всички данни се съхраняват на сървърите, които обикновено имат по-добри мерки за сигурност от повечето клиенти. Сървърите могат по-добре да контролират достъпа и ресурсите, за да гарантират, че само клиентите с подходящи права могат да имат достъп до данните и да ги променят.
  • Тъй като съхранението на данни е централизирано, актуализациите на тези данни са много по-лесни за администраторите, отколкото това би било възможно при архитектура P2P. При P2P архитектурата може да се наложи актуализациите на данните да бъдат разпределени и приложени към всеки "връстник" в мрежата, което отнема време и води до грешки, тъй като може да има хиляди или дори милиони връстници.
  • Вече са налични много усъвършенствани технологии клиент-сървър, които са разработени така, че да гарантират сигурност, удобни за потребителя интерфейси и лекота на използване.
  • Той работи с множество различни клиенти с различни спецификации.

Недостатъци

  • Блокирането на трафика в мрежите е един от проблемите, свързани с модела клиент-сървър. С увеличаването на броя на едновременните клиентски заявки към даден сървър сървърът може да се претовари. Това се сравнява с P2P мрежа, чиято честотна лента всъщност се увеличава с добавянето на повече възли, тъй като общата честотна лента на P2P мрежата може да се изчисли приблизително като сума от честотните ленти на всеки възел в тази мрежа.
  • Ако сравним модела клиент-сървър с модела "връстници към връстници", при отказ на един сървър заявките на клиентите не могат да бъдат обслужени, но при P2P мрежите сървърите обикновено са разпределени между много възли. Дори ако един или повече възли не успеят да се справят, например ако даден възел не успее да изтегли файл, останалите възли все още трябва да разполагат с данните, необходими за завършване на изтеглянето.

Примери

Въпроси и отговори

В: Какво представлява софтуерната архитектура клиент-сървър?


О: Софтуерната архитектура клиент-сървър е модел, състоящ се от две части - клиентски системи и сървърни системи, които комуникират в компютърна мрежа или на един и същ компютър.

В: Как работи едно приложение клиент-сървър?


О: Приложението клиент-сървър е разпределена система, съставена от клиентски и сървърен софтуер. Клиентският процес винаги инициира връзка със сървъра, докато сървърният процес винаги чака за заявки от всеки клиент.

Въпрос: Какво се случва, когато клиентският и сървърният процес са стартирани на един и същ компютър?


О: Когато и клиентският, и сървърният процес се изпълняват на един и същи компютър, това се нарича настройка на едно място.

В: Какви предимства предоставя използването на приложение клиент-сървър?


О: Използването на клиентско сървърно приложение осигурява по-добър начин за споделяне на работните натоварвания между няколко компютъра или потребители.

Въпрос: Кой инициира връзките в приложенията Client Server?


О: Клиентският процес винаги инициира връзките в приложенията на клиентски сървър.


Въпрос: Кой чака заявките в клиентските сървърни приложения?


О: Сървърният процес винаги чака за заявки в клиентските сървърни приложения.

В: Как няколко компютъра или потребители могат да споделят работни натоварвания помежду си?


О.: Няколко компютъра или потребители могат да споделят натоварвания, като използват разпределена система, например Client Server Application.

AlegsaOnline.com - 2020 / 2023 - License CC3