Концепции постройки клиент-серверной системы 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Концепции постройки клиент-серверной системы



Слабый клиент – производительный сервер

При такой модели весь процесс обработки информации перенесен на мощности сервера, а у пользователя права доступа очень строго ограничены. Сервер начинает отправлять ответ, который вообще не требует дополнительной работы по обработке. Клиент взаимодействует с пользователем: создает и отправляет запрос, принимает входящие итоги и выводит данные на экран пользователя.

Сильный клиент

Концепция, при которой часть обработки данных предоставляет клиенту. В такой ситуации сервер является простым хранилищем информации, а вся деятельность по обработке и предоставлению данных переносится на ПК пользователя.

Продукт или система, которая говорит о том, что часть обрабатывающей информации предоставляется пользователю.

При такой ситуации сервер выступает особым хранилищем информации, а вся деятельность по обработке и предоставлению данных может переноситься на ПК пользователя.

 

ВИДЫ КЛИЕНТ-СЕРВЕРНЫХ АРХИТЕКТУР:

  1. Двухуровневая (двухзвенная):

· Клиент, который может предоставлять пользовательский графический интерфейс.

· Веб-сервер, который ответственен за получение входящих запросов и отправку ответа пользователю, применяя при этом собственные ресурсы системы;

База данных фактически не является частью веб-сервера, но большинство приложений просто не могут выполнять все возложенные на них функции без нее, так как именно в базе данных хранится вся динамическая информация приложения (учетные, пользовательские данные и пр).

Особенности работы заключаются в том, что на сервер приходит определенный запрос, потом его обрабатывают и дают напрямую, без дополнительного применения группы внешних ресурсов.

  1. Трехуровневая (трехзвенная):

Сетевое приложение разделено на две и более частей, каждая из которых может выполняться на отдельном компьютере. Выделенные части приложения взаимодействуют друг с другом, обмениваясь сообщениями в заранее согласованном формате.

Третьим звеном в трехзвенной архитектуре становится сервер приложений, т.е. компоненты распределяются следующим образом:

  • Представление данных — на стороне клиента. Этот уровень не должен иметь прямых связей с базой данных быть нагруженным основной бизнес-логикой и хранить состояние приложения. На этот уровень обычно выносится только простейшая бизнес-логика: интерфейс авторизации, несложные операции с данными (сортировка, группировка, подсчёт значений), уже загруженными на терминал.
  • Прикладной компонент — на выделенном сервере приложений (как вариант, выполняющем функции промежуточного ПО). На этом уровне сосредоточена большая часть бизнес-логики.
  • Управление ресурсами — на сервере БД, который и представляет запрашиваемые данные. Сервер БД обеспечивает хранение и предоставление данных.

Особенность работы состоит в том, что сразу несколько серверов могут обрабатывать клиентские запросы. Процесс распределения операций может существенным образом снизить нагрузку на используемый сервер.

Сравнение:

Двухзвенная архитектура проще, так как все запросы обслуживаются одним сервером, но именно из-за этого она менее надежна и предъявляет повышенные требования к производительности сервера.

Трехзвенная архитектура сложнее, но, благодаря тому, что функции распределены между серверами второго и третьего уровня, эта архитектура предоставляет:

  • Высокую степень гибкости и масштабируемости.
  • Высокую безопасность (т.к. защиту можно определить для каждого сервиса или уровня).
  • Высокую производительность (т.к. задачи распределены между серверами).
  1. Многоуровневая система

Трехуровневая архитектура может трансформироваться до многоуровневой, возможностью установки группы дополнительных серверов, каждый из которых будет представлять собственные сервисы и пользоваться услугами прочих серверов разного уровня.

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

 

ИТОГИ

Нюансы взаимодействия системы клиент-сервер позволяют пользователям разделять определенный функционал и вычислительную нагрузку между подключенными клиентскими веб-продуктами и серверными приложениями при разнообразных процессах тестирования (от тестирования БД до замеров общей производительности системы).

Понимание программистами и тестировщиками внутренней архитектуры приложения позволяют им более качественно не только создавать продукт, но и тестировать его, выполняя полноценные проверки от кроссбраузерного соответствия до регрессионных тестов.

https://habr.com/ru/post/495698/

https://www.youtube.com/watch?v=wLHuviTWnuY

 

Front - end Back - end

 

Фронтендом называют клиентскую сторону пользовательского интерфейса по отношению к программно-аппаратной части сервиса, простыми словами все, что браузер может читать, выводить на экран и/или запускать. То есть это HTML, CSS и JavaScript.

Откройте страницу любого веб-сайта, и вы увидите перед собой его интерфейс. А потом щёлкните правой кнопкой мыши и нажмите «Посмотреть код страницы». Этот код и будет примером фронтенда. Он описывает всё, что вы видите, начиная от вёрстки и всей палитры цветов, заканчивая шрифтами, графическими элементами и т. п.

Код клиентской части написан с использованием HTML, CSS и JavaScript; выполняется внутри веб-браузера и имеет ограниченный доступ, или вообще никакого к операционной системе (включая ограниченный доступ к файловой системе).

HTML (от английского HyperText Markup Language) — это язык гипертекстовой разметки страницы. Он используется для того, чтобы дать браузеру понять, как нужно отображать загруженный сайт.

CSS (Cascading Style Sheets, каскадные таблицы стилей) — язык описания внешнего вида HTML-документа. Это одна из базовых технологий в современном интернете. Практически ни один сайт не обходится без CSS, поэтому HTML и CSS действуют в единой связке.

JavaScript — это язык скриптов, на котором держится весь frontend веб-разработки. Он позволяет перехватывать события и выполнять различные действия. Например, пользователь кликнул по какой-нибудь кнопке — сработало событие click. И, связав с ним, мы можем выполнить нужную нам функцию — открыть модальное окно или изменить цвет элемента.

Бэкенд — это программно-аппаратная часть сервиса. Это набор средств, с помощью которых происходит реализация логики веб-сайта. Это то, что скрыто от наших глаз, т. е. происходит вне компьютера и браузера.

Как только вы введёте запрос на странице поисковика и нажмёте клавишу «Ввод», frontend закончится и начнётся backend. Ваш запрос отправится на сервер Яндекса или Google, т. е. по месту расположения алгоритмов поиска. Именно там и происходит вся «магия». Но вот, на мониторе появляются данные, которые вы запрашивали, — это происходит возвращение во frontend.

Для разработки серверной части вы можете использовать любой универсальный язык программирования: Ruby, PHP, Python, Java, JavaScript / Node, bash. Это также означает, что вы можете использовать системы управления базами данных, такие как MySQL, PostgreSQL, MongoDB, Cassandra, Redis, Memcached.

Бизнес-логика

 

В контексте клиент-серверной архитектуры мы употребляем термин Бизнес-логика. Мы говорим, что для снижения нагрузки на клиенте основная часть бизнес-логики переносится на сервер. В IT термин «бизнес-логика» широко употребляется и имеете ни много значений. Давайте разберемся с основными понятиями.

Бизнес-логика — в разработке информационных систем — совокупность правил, принципов, зависимостей поведения объектов предметной области (области человеческой деятельности, которую система поддерживает).

Является синонимом термина «логика предметной области» (англ. domain logic).

Ещё определения:

  • реализация правил и ограничений автоматизируемых операций;
  • реализация предметной области в информационной системе;
  • система взаимосвязей и взаимозависимостей бизнес-данных, поддерживаемая при реализации бизнес-правил;
  • взаимодействие между компонентами системы, приводящее к результату, значимому для пользователя;
  • модель работы системы

Примечание: слово «бизнес» в данном случае не относится к прибыли и денежным знакам, а лишь определяет, что система предназначена для кого-то. Для лучшего понимания можно заменить «бизнес-логика» на логика работы.

В разработке программного обеспечения «бизнес-логикой» также называются программные модули, её реализующие, и уровень системы, на котором эти модули находятся (англ. business logic layer, domain logic layer).

Примеры:

  • формулы расчёта ежемесячных выплат по ссудам (в финансовой индустрии);
  • автоматизированная отправка сообщений электронной почты руководителю проекта по окончании выполнения частей задания всеми подчиненными (в системах управления проектами);
  • отказ от отеля при отмене рейса авиакомпанией (в туристическом бизнесе) и т.д.

В фазе бизнес-моделирования и разработки требований бизнес-логика может описываться в виде:

  • текста;
  • концептуальных аналитических моделей предметной области (онтологии);
  • бизнес-правил;
  • разнообразных алгоритмов;
  • диаграмм деятельности;
  • графов и диаграмм перехода состояний;
  • моделей бизнес-процессов.

В фазе анализа и проектирования системы бизнес-логика воплощается в различных диаграммах языка UML или ему подобных. В фазе программирования бизнес-логика воплощается в коде классов и их методов, в случае использования объектно-ориентированных языков программирования, или процедур и функций, в случае применения процедурных языков.

В многоуровневых (многослойных) информационных системах этот уровень взаимодействует с нижележащим уровнем инфраструктурных сервисов (англ. infrastructure layer), например, интерфейсом доступа к базе данных или файловой системе (англ. data-access layer, DAL) и вышележащим уровнем сервисов приложения (англ. application services layer), который уже, в свою очередь, взаимодействует с уровнем пользовательского интерфейса (англ. user interface layer) или внешними системами.

https://ru.qaz.wiki/wiki/Business_logic

https://habr.com/ru/post/219445/

Браузеры

 

“Ok, Google – что такое браузер?”, - и чтобы получить ответ на этот вопрос перед нами открывается браузер. Мы используем браузер постоянно для поиска информации, просмотра сайтов, скачивания файлов любого формата, для загрузки аудио и видеофайлов и т.д., но знаем ли мы действительно, что это? А браузер – это и есть HTTP-клиент, который обменивается с сервером информацией по HTTP-протоколу. Его работа заключается в том, чтобы загрузить веб-страницу и представить её в понятном для человека виде.

Самые популярные браузеры на сегодняшний день — это Google Chrome, Opera, Firefox, Safari, Яндекс. Chrome и Firefox относятся к браузерам с открытым исходным кодом.

Независимо от вида браузера, механизм работы у всех одинаковый. Упрощенно работа браузера выглядит следующим образом:

  1. Пользователь открывает свой браузер и вводит адрес нужного сайта.
  2. Браузер ищет сервер. Браузер ищет сервер по IP-адресу, который уникален для каждого сайта. Сначала он далеко не идет, а ищет его в кэше роутера, операционной системе или же в истории подключений, которая хранит информацию об IP-адреса сервера, если его уже посещали ранее. Если браузер там его не находит, он смотрит в DNS (Domain Name System).
  3. Браузер пытается установить соединение с сервером. Теперь, когда браузер нашел нужный IP-адрес, он устанавливает с ним соединение с помощью специального протокола TCP/IP, который отвечает за передачу данных в интернете. Для установки соединения используется процесс “рукопожатие” (с англ. handshaking), который проходит в три этапа: серверу отправляется специальный запрос с номером последовательности и флагом SYN; потом он отправляет ответный запрос с подтверждением получения SYN — ACK; после этого сервер посылает подтверждение приема — ACK и соединение считается установленным.
  4. Браузер отправляет HTTP запрос на сервер. Таким образом он запрашивает информацию для того, чтобы отобразить страницу. Эта коммуникация осуществляется с помощью GET-запроса и POST-запроса.
  5. Сервер обрабатывает запрос и отправляет ответ браузеру. Запрос обрабатывается следующими веб-серверами: Apache, nginx, lighttpd. После этого сервер отправляет браузеру ответ с данными о файлах cookie, способах кэширования ну и, конечно же, контентом для отображения страницы.
  6. Браузер обрабатывает ответ и отображает запрашиваемый контент. Это называется рендерингом. Пока он происходит, браузер и сервер обмениваются данными. По завершении, пользователь видит загруженную страницу.

Помимо главной функции — открытие страниц сайтов, браузер выполняет и другие задачи. Мы кратко рассмотрели их ниже.

  • Позволяет скачивать файлы любого типа.
  • Позволяет использовать почту.
  • Сохраняет пароли для сайтов.
  • Сохраняет историю посещенных страниц.
  • Добавляет закладки.
  • Поддерживают разные дополнения (плагины и расширения)

 

https://habr.com/ru/company/edison/blog/432870/

https://ip-calculator.ru/blog/ask/brauzer-obshhie-printsipy-raboty-programmy-po-otobrazheniyu-sajtov/

 

Веб-приложения

 

Иногда возникает путаница, в чем разница между веб-приложением и клиент-серверным приложением?

Веб-приложение – это клиент-серверное приложение, в котором клиентом выступает браузер, а сервером – веб-сервер (в широком смысле). Другими словами, клиент-серверное приложение можно рассматривать как суперкласс, в котором веб-приложение является дочерним классом.

Основная часть веб-приложения, как правило, находится на стороне веб-сервера, который обрабатывает полученные запросы в соответствии с бизнес-логикой продукта и формирует ответ, отправляемый пользователю. На этом этапе в работу включается браузер, именно он преобразовывает полученный ответ от сервера в графический интерфейс, понятный рядовому пользователю.

Веб-приложения обычно используют комбинацию клиентского сценария (выполняется на компьютере-клиенте, например, HTML, Javascript) и серверного сценария (выполняется на веб-сервере до передачи страницы пользователю, например, ASP, PHP). Клиентский скрипт имеет дело с представлением информации, в то время как серверный скрипт имеет дело со всеми сложными вещами, такими как хранение и получение информации.

Сценарий (скрипт)— это код, средствами которого можно манипулировать веб-страницами.

Чтобы клиентский сценарий действовал, программа просмотра должна поддерживать язык, на котором он написан. Работа же серверных сценариев не зависит от программы просмотра.

Клиентский сценарий размещается в виде кода в HTML-документе. Когда браузер встретит в НТМL-коде сценарий, она вызовет интерпретатор для его анализа и выполнения.

Итак, первой и одной из ключевых особенностей веб-приложений является их архитектура.

Веб-приложение представлено следующими составляющими («сторонами»):

1. Клиент

Как правило, клиент – это браузер, но встречаются и исключения (в тех случаях, когда один веб-сервер (ВС1) выполняет запрос к другому (ВС2), роль клиента играет веб-сервер ВС1). В классической ситуации (когда роль клиента выполняет браузер) для того, чтобы пользователь увидел графический интерфейс приложения в окне браузера, последний должен обработать полученный ответ веб-сервера, в котором будет содержаться информация, реализованная с применением HTML, CSS, JS (самые используемые технологии). Именно эти технологии «дают понять» браузеру, как именно необходимо «отрисовать» все, что он получил в ответе.

2. Сервер

Веб-сервер – это сервер, принимающий HTTP-запросы от клиентов и выдающий им HTTP-ответы. Дабы избежать возможной путаницы, отметим, что веб-сервером называют как программное обеспечение, выполняющее функции веб-сервера, так и непосредственно компьютер, на котором это программное обеспечение работает. Наиболее распространенными видами ПО веб-серверов являются Apache, IIS и NGINX. На веб-сервере функционирует тестируемое приложение, которое может быть реализовано с применением самых разнообразных языков программирования: PHP, Python, Ruby, Java, Perl и пр.

3. База данных

В классической теории речь идет о двух «сторонах» веб-приложения, однако, если внимательно посмотреть на весь процесс работы приложений, мы можем отметить, что в алгоритме работы веба незримо, но довольно активно принимает участие еще одна «сторона» – база данных. Фактически, она не является частью веб-сервера, но большинство приложений просто не могут выполнять все возложенные на них функции без нее, так как именно в базе данных хранится вся динамическая информация приложения (учетные, пользовательские данные и пр).



Поделиться:


Последнее изменение этой страницы: 2021-11-27; просмотров: 215; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.144.33.41 (0.036 с.)