Клиент-сървър е широко разпространена софтуерна архитектура. При този модел приложението логически се разделя на клиент и сървър, като клиентът отправя заявки към сървъра, а сървърът ги изпълнява и връща резултат. Този модел често се използва при по-прости разпределени и мрежови приложения.
Клиентът и сървърът се разглеждат като два отделни слоя на приложението. В клиента се разполагат потребителският интерфейс и бизнес логиката на системата. Този слой е отговорен за представяне на информацията и взаимодействие с потребителя, както и за извършване на необходимата обработка според логиката на приложението. Във втория слой (сървъра) се съхраняват данните. Той отговаря за тяхното управление и да са физически разделени (на различни машини), макар че най-често случаят е точно такъв.
Предимства на модела клиент-сървър
Основното предимство на клиент-сървър архитектурата е разделянето на функционалността между двата слоя. Така се избягва прекомерното нато- варване на сървъра при обслужване на множество заявки, тъй като основната част от обработката не се извършва от него, а от клиентите. Разделянето на клиент и сървър позволява много потребители (клиенти) да бъдат обслужвани от сървъра едновременно, а това е необходимо във всички по-сериозни информационни Интернет онлайн WEB системи.
Клиент-сървър моделът има и друго предимство. Понеже логиката е при клиента, той не трябва непрекъснато да комуникира със сървъра при извършването на обработката, а това намалява мрежовия трафик. В някои случаи това може да се окаже недостатък, защото натоварването на клиента с изпълнението на бизнес логика не винаги е добра практика.
Недостатъци на двуслойните приложения
При тази архитектура поддръжката на приложенията се усложнява значи-телно. При промяна в логиката на приложението се налага преинсталация на клиентската част, а при голям брой потребители това би означавало да се прави преинсталация на приложението на голям брой компютри, което може да доведе до значителни трудности и големи разходи.
Всъщност по-големият проблем при тази архитектура е друг. Един сървър не е в състояние да обслужва едновременно прекалено много потребители, а това води до лоша скалируемост. За този проблем решение може да бъде кластеризацията на сървъра, но при големи системи обикновено се ползва архитектура с повече слоеве.
Примери за двуслойни приложения
Типичен пример за двуслойни приложения са повечето системи за управление на склад. При тях складовите наличности се съхраняват на сървъра в база от данни, а обслужващият персонал към склада осъществява достъп до данните чрез специален клиентски софтуер. Възможно е в един склад да работят конкурентно няколко клиента към базата данни. Работата с актуални данни е много важна и затова при такива приложения обикновено се ползва свързан модел.
Като друг пример за клиент-сървър система може да се разгледат MS SQL Server и MS Query Analyzer. MS Query Analyzer представлява клиентската част, през която се отправят заявки за извличане или промяна на информация в базата от данни. Тези заявки се изпълняват от сървъра на базата – MS SQL Server.
Резултатът от заявката се представя на потребителя от MS Query Analyzer.
Трислойни приложения
В едно приложение могат да се обособят три типа функционалност:
- представяне на информация на потребителя и взаимодействие с него
- обработка, която реализира логиката на приложението
- управление на данните
При двуслойните приложения тези три типа функционалност се поставят в два слоя, от което произтичат различни проблеми. Затова алтернатива на двуслойната архитектура е трислойната, при която трите типа функционалност са разделени съответно в три логически слоя – презентационнен слой (front-end), бизнес слой (бизнес логика) и съхранение на данните (back-end).
Презентационният слой (front-end) е потребителският интерфейс на приложението. Той е отговорен за взаимодействието с потребителя. В него не се реализира обработка на данни (бизнес логика). Единствената логика, което се използва, е презентационната – подготовка на данни за визуализация, валидация на данни, взаимодействие с потребителя в системата или Интернет уеб сайта и т.н. Презентационният слой не комуникира директно с базата данни. Вместо това той използва услугите на бизнес слоя.
В бизнес слоят (business tier) се обособява бизнес логиката на системата – в него се реализират работните процеси и се извършва цялата обработка на данните на приложението. Бизнес слоят се грижи за правилната работа с много потребители едновременно. Той комуникира с базата данни за да съхранява и обработва данните в нея. Слоят за съхранение на данни (back-end) е отговорен за достъпа и съхранението на данните, като той извършва операциите с базата от данни. Най-често това е самият RDBMS сървър, например MS SQL Server. Слоят за данни не имплементира бизнес логика (работни процеси от системата), но може да имплементира логика, свързана с обработката на данните в самата база данни. Достъпът до слоя за данни става единствено от бизнес слоя.
март 20, 2010 в 4:38 pm
[...] и задачи и да рботите лесно с тях. Всички софтуерни уеб приложения които помагат на клиентите да организират по – лесно [...]
март 22, 2010 в 3:16 pm
[...] Двуслойни приложения (клиент-сървър) в WEB 2 [...]