Однос клиент-опслужувач

Од Википедија — слободната енциклопедија
Прејди на прегледникот Прејди на пребарувањето

Клиент сервер комуникацијата се одвива како соработка на програмска опрема што обезбедува некој сервис, наречена сервер, и побарувач на сервисот, наречен клиент. Ова е најчест вид на комуникација кај еден дистрибуиран компјутерски систем. Најчесто клиентите комуницираат со серверите преку компјутерска мрежа, но некогаш можат и да припаѓаат и на ист систем. Вообичаено е тие да се инсталирани на различна машинска опрема. Затоа многу често машината на која се наоѓа серверот се нарекува сервер, а таа на која функционира клиентот се нарекува клиент. Сервер машината може да извршува една или повеќе серверски програми кои ги делат своите ресурси со клиентите. Клиентот не дели ништо од сопствените ресурси, но побарува содржини или сервиси кои се наоѓаат на серверот. Од тие потреби, клиентот иницира комуникација со серверот.

Опис[уреди | уреди извор]

Клиент-сервер карактеристиките ја опишуваат врската на кооперативните програми во апликацијата. Серверските компоненти овозможуваат функции или сервиси до еден или повеќе клиенти, што иницира барање за сервисот. Функциите како што се размената на меил, пристапот до веб и базите на податоци, се изградени на клиент-сервер моделот. На пример, веб пребарувачот е клиентска програма која работи на компјутерот на корисникот и која може да пристапи до информација зачувана на веб серверот на Интернет. Корисниците кои пристапуваат до банкарските сервиси од нивниот компјутер користат веб пребарувач како клиент за да испратат барање до веб серверот на банката. Овој програм може да го препрати барањето до сопствениот податочен клинтски програм кој праќа барање до податочен сервер на друга банка за да ги повика бараните информации. Балансот ќе биде вратен до податочниот клиент на банката, а резултатите од клиентскиот веб пребарувач ќе се испишат на екранот на корисникот. Секоја инстанца од клиентскиот софтвер може да испрати податочно барање до еден или повеќе поврзани сервери. Серверите можат да го прифатат барањето, да го процесираат, и да ја вратат бараната информација до клиентот. Иако овој концепт може да биде применет од различни причини на многу различни видови на апликации сепак архитектурата воглавном останува непроменета.

Повеќето базични типови на клиент-сервер архитектурата користат само два типа на хостови: клиенти и сервери. Оваа архитектура исто е позната и под името two-tier, и им дозволува на направите да делат фајлови и ресурси. Two-tier архитектурата подразбира дека клиентот функционира како едно ниво и апликација во комбинација со серверот кој функционира на друго ниво. Интернетот кој е во постојан пораст користи athree-tier архитектура.. Во оваа архитектура серверската страна се состои од апликациски сервер (на пр. веб сервер) и податочен сервер (како што е SQL серверот), така што трите нивоа се-клиент, апликациски сервер и податочна база. Специфичните типови на клиенти ги вклучуваат веб преварувачите, e-mail и online chat клиентите. Специфичните типови на сервери ги вклучуваат веб серверите, ftp серверите, апликациските сервери, серверите на податочните бази, name серверите, меил и терминалните сервери. Повеќето веб сервиси се исто одреден тип на сервери. [1]


Предности[уреди | уреди извор]

- Во повеќето случаи, клиент-сервер архитектурата овозможува улогите и одговорностите на компјутерскиот систем да бидат дистрибуирани на неколку независни компјутери кои меѓусебно мрежно комуницираат. - Ова е голема предност за оваа архитектура затоа што овозможува лесно оддржување. На пример, возможно е да се замени, поправи, догради или дури да се смени локацијата на серверот додека неговите клиенти не се воопшто погодени од промената. - Сите податоци се чуваат на серверот што овозможува нивна поголема сигурносна контрола. Серверите можат подобро да го контролираат пристапот и ресурсите за да гарантираат дека само оние клиенти кои имаат соодветна дозвола можат да пристапат до податоците и да ги променат. - Чувањето на податоците е централизирано што ги прави лесни за администрирање. - Клиент-сервер технологиите се дизајнирани да обезбедат сигурност, лесен кориснички интерфејс и лесно користење.


Недостатоци[уреди | уреди извор]

- Како што симултано расте бројот на клиентските барања до серверите, така се зголемува и опасноста од нивно преоптоварување. - Клиент-сервер парадигмата има недостаток на робусност. Кога во овој систем одреден критичен сервер ќе падне, клиентските барања нема да можат да бидат извршени, за разлика од Р2Р мрежите каде што ресурсите се дистрибуирани низ повеќе јазли, така што дури и ако еден од нив го напушти на пр. фајлот кој што се симнува (download) некој од останатите јазли сеуште ќе ги има потребните податоци за да се комплетира симнувањето на фајлот.


Преглед на протоколот[уреди | уреди извор]

Серверите “слушаат“ за конекција на TCP/IP порта или на локален сокет. Кога клиентот се поврзува, најпрво се извршува автентицирање, кое ако е успешно сесијата може да започне. Клиентот испраќа наредба и серверот одговара со податоци или со соодветна порака на командата која била зададена. Кога клиентот е готов, праќа специјална команда со која му кажува на серверот дека сесијата може да биде затворена.

Базичната единица за комуникација е пакетот во апликацискиот-слој. Командите се состојат од еден пакет, а одговорите можат да содржат и по неколку пакети.


Формат на пакетот[уреди | уреди извор]

Има два типа на пакети: компресирани и некомпресирани. Одлуката кој од нив ќе биде користен во текот на сесијата се прави во handshake фазата заедно со автентифицирањето, и зависи од сетинзите и можностите на клиентот и серверот. Независно од тоа дали пакетите се компресирани или не, тие се поделени во две категории: - команди испратени од клиентот и - одговори испратени од серверот. Серверските пакети се поделени во четири категории: - data packets (податочни пакети) - end-of-data stream пакети - success report (OK) пакети и - error message пакети (порака дека има грешка)


Пример за конкретна употреба на клиент-сервер моделот[уреди | уреди извор]

Да претпоставиме дека се кликнува на линк кој треба да не однесе до одредена статија на Ezinearticles страната. 1. Најпрво се кликнува на линкот кој би требало да не однесе до саканата страна 2. Клиентот (веб пребарувачот на корисникот) ја чита содржината на линкот, и ја знае адресата на серверот кој ја содржи страната која корисникот сака да ја посети. 3. Во овој случај, серверската адреса е локацијата на сајтот, а страната која серверот треба да ја врати е страната со статијата која корисникот сака да ја прочита. 4. Пребарувачот испраќа http барање до EzineArticles серверот. 5. Серверот проверува дали бараната страна постои и ја враќа содржината на статијата до веб пребарувачот на корисникот со http ressponse порака.

Заклучок[уреди | уреди извор]

Клиент-сервер моделот генерално беше развиен за да дозволи повеќе корисници да имаат пристап до податочните апликации. Нуди зголемена размерливост, и поддржува модуларни апликации што ја олеснува работата при креирање на софтвер. Клиент-сервер е само еден пристап за менаџирање на мрежните апликации. Примарната алтернатива, peer-to-peer мрежното работење, каде што сите направи имаат еднаква способност за разлика од сцецилизираните клиент и сервер улоги. Споредено со клиент-сервер архитектурата, peer-to-peer мрежното работење нуди некои предности како што се поголема флексибилност за справување со големиот број на клиенти. Клиент-сервер архитектурата генерално нуди предност за сигурно чување на податоците. [2]


Наводи[уреди | уреди извор]

  1. “Distributed Application Architecture”, Sun Microsystem
  2. “ Optimizing the Client/Server Communication for Mobile Applications”, Version 1.0; February 28, 2003

Надворешни врски[уреди | уреди извор]

http://www.codewalkers.com/c/a/Server-Administration/Client-Server-Communication/