Клиент-сървър обозначава връзка между съвместно работещи програми в приложение, съставено от клиенти, иницииращи заявки за услуги, и сървъри, предоставящи тази функция или услуга.
ЧЗВ
Моделът клиент-сървър или архитектурата клиент-сървър е разпределена приложна рамка, разделяща задачите между сървъри и клиенти, които или се намират в една и съща система, или комуникирайте чрез компютърна мрежа или интернет. Клиентът разчита на изпращане на заявка до друга програма, за да получи достъп до услуга, предоставена от сървър. Сървърът изпълнява една или повече програми, които споделят ресурси и разпределят работата между клиентите.
Взаимоотношенията клиент-сървър комуникират по модел на съобщения заявка-отговор и трябва да се придържат към общ комуникационен протокол, който официално дефинира правилата, езика и моделите на диалог, които да се използват. Комуникацията клиент-сървър обикновено се придържа към набора от протоколи TCP/IP.
TCP протоколът поддържа връзка, докато клиентът и сървърът завършат обмена на съобщения. TCP протоколът определя най-добрия начин за разпространение на данни на приложението в пакети, които мрежите могат да доставят, прехвърля пакети към и получава пакети от мрежата и управлява контрол на потока и повторно предаване на изпуснати или деформирани пакети. IP е протокол без връзка, при който всеки пакет, пътуващ през Интернет, е независима единица данни, несвързана с други единици данни.
Клиентските заявки са организирани и приоритизирани в система за планиране, която помага на сървърите да се справят в случай на получаване на заявки от много различни клиенти за кратък период от време. Подходът клиент-сървър позволява на всеки компютър с общо предназначение да разшири своите възможности, като използва споделените ресурси на други хостове. Популярните приложения клиент-сървър включват имейл, световната мрежа и мрежов печат.
Има четири основни категории изчисления клиент-сървър:
Едностепенна архитектура: състои се от проста програма, работеща на един компютър, без да се изисква достъп до мрежата. Потребителските заявки не управляват никакви мрежови протоколи, следователно кодът е прост и мрежата е освободена от допълнителния трафик. Двустепенна архитектура: състои се от клиента, сървъра и протокола, който свързва двете нива. Кодът на графичния потребителски интерфейс се намира на клиентския хост, а логиката на домейна се намира на сървърния хост. GUI клиент-сървър е написан на езици от високо ниво като C++ и Java. Тристепенна архитектура: състои се от ниво на представяне, което е слой на потребителския интерфейс, ниво на приложение, което е слой на услугата, който извършва подробна обработка, и ниво на данни, което се състои от сървър на база данни, който съхранява информация.N-Tier архитектура: разделя приложението на логически слоеве, които разделят отговорностите и управляват зависимости, и физически нива, които работят на отделни машини, подобряват скалируемостта и добавят забавяне от допълнителната мрежова комуникация. N-Tier архитектурата може да бъде със затворен слой, в който слой може да комуникира само със следващия слой надолу, или с отворен слой, в който слой може да комуникира с всички слоеве под него.Microsoft MySQL Server е популярен пример за тристепенна архитектура, състояща се от три основни компонента: протоколен слой, релационна машина и система за съхранение. Всички клиентски машини, които се свързват директно към SQL Server, трябва да имат инсталиран клиент на SQL Server. Процесът клиент-сървър на Microsoft за изпълнение помага за управлението на по-голямата част от наборите графични инструкции в операционната система Windows.
Мрежата клиент-сървър е средата, чрез която клиентите имат достъп до ресурси и услуги от централен компютър, чрез локална мрежа (LAN) или широкообхватна -мрежа (WAN), като Интернет. Уникален сървър, наречен демон, може да бъде използван с единствената цел да изчаква клиентски заявки, в който момент се инициира мрежовата връзка, докато клиентската заявка не бъде изпълнена.
Мрежовият трафик се категоризира като клиент към сървър (трафик север-юг) или сървър към сървър (трафик изток-запад). Популярните мрежови услуги включват електронна поща, споделяне на файлове, печат и World Wide Web. Основно предимство на мрежата клиент-сървър е централното управление на приложения и данни.
Има многобройни предимства на модела на архитектурата клиент-сървър:
Един сървър, хостващ всички необходими данни на едно място, улеснява лесната защита на данните и управлението на оторизацията и удостоверяването на потребителите. Ресурси като мрежови сегменти, сървъри и компютри могат да бъдат добавени към мрежа клиент-сървър без значителни прекъсвания. Данните могат да бъдат достъпни ефективно, без да е необходимо клиентите и сървърът да са в непосредствена близост. Всички възли в системата клиент-сървър са независими, като изискват данни само от сървъра, което улеснява лесното надграждане, подмяна и преместване на възлите. Данните, които се прехвърлят чрез протоколи клиент-сървър, не зависят от платформата.
Клиентите, известни също като рикуестъри за услуги, са части от компютърен хардуер или сървърен софтуер, които изискват ресурси и услуги, предоставени от сървър. Клиентските компютри се класифицират като дебели, тънки или хибридни.
Плътен клиент: клиент, който предоставя богата функционалност, извършва по-голямата част от обработката на данни сам и разчита много малко на сървъра. Тънък клиент: сървърът с тънък клиент е лек компютър, който разчита в голяма степен на ресурсите на хост компютъра -- сървър на приложения изпълнява по-голямата част от всяка необходима обработка на данни. Хибриден клиент: притежаващ комбинация от характеристики на тънък клиент и дебел клиент, хибридният клиент разчита на сървъра да съхранява постоянни данни, но е способен на локална обработка.Сървър е устройство или компютърна програма, която осигурява функционалност за други устройства или програми. Всеки компютъризиран процес, който може да бъде използван или извикан от клиент за споделяне на ресурси и разпределяне на работа, е сървър. Някои често срещани примери за сървъри включват:
Сървър на приложения: хоства уеб приложения, които потребителите в мрежата могат да използват, без да се нуждаят от собствено копие. Компютърен сървър: споделя огромно количество компютърни ресурси с мрежови компютри, които изискват повече CPU мощност и RAM, отколкото обикновено е налична за персонален компютър. Сървър на база данни : поддържа и споделя бази данни за всяка компютърна програма, която поглъща добре организирани данни, като счетоводен софтуер и електронни таблици.Уеб сървър: хоства уеб страници и улеснява съществуването на световната мрежа.
Програмирането от страна на сървъра се отнася до програма, която работи на сървъра и се фокусира върху генерирането на динамично съдържание. Програмирането от страна на сървъра се използва за заявки и взаимодействие с базата данни, достъп до файлове на сървър, взаимодействие с други сървъри, обработка на потребителски вход и структуриране на уеб приложения. Популярните програмни езици за програмиране от страна на сървъра включват C++, Java и JSP, PHP, Python и Ruby on Rails.
Програмирането от страна на клиента се отнася до програма, която се изпълнява на клиентската машина и се фокусира върху потребителския интерфейс и други процеси, като четене и/или писане на бисквитки. Програмирането от страна на клиента се използва за изпращане на заявки към сървъра, взаимодействие с локално хранилище, взаимодействие с временно хранилище, създаване на интерактивни уеб страници и функционира като интерфейс между клиент и сървър. Популярните програмни езици за програмиране клиент-сървър включват AJAX, CSS, HTML, Javascript и VBScript.
Изобразяването от страна на сървъра се отнася до способността на приложението да преобразува HTML файлове на сървъра в напълно изобразена страница за клиента. Уеб браузърът прави заявка за информация от сървъра, който отговаря, обикновено за милисекунди, с напълно изобразен HTML дисплей. Търсачките са в състояние да индексират и обхождат съдържание, преди то да бъде доставено, което прави изобразяването от страна на сървъра много полезно за SEO.
При изобразяване клиент-сървър, вместо да получава цялото съдържание от HTML документа, съдържанието се изобразява в браузъра с помощта на JavaScript библиотеката от страна на клиента. Браузърът не прави нова заявка към сървъра, когато се зареди нова страница. Класирането в търсачката може да бъде отрицателно повлияно, тъй като съдържанието не се изобразява, докато страницата не се зареди в браузъра, но изобразяването на уебсайта обикновено е по-бързо при изобразяване от страна на клиента.
Peer-to-peer (P2P) е децентрализиран комуникационен модел, при който всички възли в мрежата имат еквивалентни възможности и могат да функционират едновременно като клиент и сървър. Възлите в изчисленията peer-to-peer колективно използват своите ресурси и комуникират помежду си директно при поискване.
Алгоритъм в комуникационния протокол peer-to-peer балансира натоварването, като прави достъпни други партньори, за да компенсира престоя на ресурса, и пренасочва заявките, когато капацитетът на натоварване и наличността на партньорите се променят. Основно предимство на peer-to-peer мрежата е възможността за разширяване на мрежата за управление на голям брой клиенти.
В изчисленията клиент-сървър, централизиран комуникационен модел, сървърът е централният възел, който комуникира с други клиентски възли. Основно предимство, което връзката клиент-сървър има пред връзката peer-to-peer, е способността да се управляват данни и приложения в един централизиран сървър.
OmniSci Render използва GPU от страна на сървъра, за да рендира незабавно интерактивни визуализации на данни с висока кардиналност. Използвайки технологията за изобразяване от страна на сървъра, OmniSci може да импортира и показва милиони редове данни през мрежата на клиента без никакви забавяния, свързани с прехвърлянето на данни с висока кардиналност. Това отличава OmniSci от други технологии, които прехвърлят резултати към клиента за изобразяване, което забавя цялостната производителност.
PREV: apache2 - Apache виртуални хостове https работи, но http отнема до ...
NEXT: [HowTo] VirtualBox - Инсталиране, USB, Споделени папки ...