Что такое клиентская часть приложения
4.2.3. Принципы работы ОС
Поскольку в настоящее время наибольшее распространение получили сетевые ОС и, более того, эти ОС являются развитием локальных, то при изложении принципов работы ограничимся лишь принципами работы сетевой ОС.
В сетевой ОС компьютера выделяют следующие компоненты :
- локальная ОС – обеспечивает управление локальными ресурсами;
- клиентская часть – предоставляет средства доступа к удаленным ресурсам;
- серверная часть – содержит средства передачи собственных ресурсов в общее пользование;
- коммуникационная подсистема.
Взаимодействие компонентов сетевой ОС поясняет рис.4.2.
Рис. 4.2. Взаимодействие компонентов сетевой ОС.
На нем компьютер А является клиентом (обращается к ресурсам другой машины), а компьютер Б – сервером (предоставляет свои ресурсы другим пользователям сети). Компонент клиентской части – редиректор – перехватывает и анализирует поступающие от приложений запросы. Запрос, выданный к ресурсу своего компьютера, переадресовывается подсистеме локальной ОС. Запрос к удаленному ресурсу пересылается клиентской части. Клиентская часть преобразует запрос из локального формата в сетевой и передает его коммуникационной подсистеме для доставки к серверу. Серверная часть ОС компьютера Б принимает запрос, преобразует его и передает через своего кредитора для выполнения своей локальной ОС. После получения результата сервер через коммуникационную подсистему направляет ответ клиенту. Клиентская часть преобразует результат в соответствующий формат и адресует его приложению.
Если выполнение серверных функций является основным назначением компьютера, то он называется выделенным сервером .
В зависимости от того, какой ресурс сервера преимущественно используется, различают варианты:
- файл-сервер — предназначается для хранения большого количества файлов, коллективно используемых в офисе (их наличие на каждом локальном компьютере нецелесообразно);
- сервер печати — принтер, подключенный к этому серверу, доступен другим компьютерам сети;
- сервер приложений — определяет возможность использования приложений в сети более чем одним пользователем. Возможно выполнение приложения на том компьютере, с которого оно запущено, или на сервере приложений. Если задача выполняется на сервере приложений, то компьютер клиента является терминалом, на котором лишь отображается результат;
- сервер удаленного доступа – обеспечивает доступ к файлам и данным, печать документов и обмен электронной почтой с другими пользователями сети. Пользователь компьютера, связанного с сетью чер сервер удаленного доступа, имеет возможность, модифицировать файлы в сети, печатать документы;
- сервер связи – организовывает соединение между разнородными сегментами сети;
- сервер баз данных обрабатывает запросы на обслуживание клиентов, нуждающихся в информации из баз данных;
- сервер безопасности данных – обеспечивает защиту информации от несанкционированного доступа. При этом устанавливаются различные права и регистрируются любые виды доступа к информации или ресурсам компьютера;
- сервер резервирования данных – обеспечивает резервирование информации на разнообразные носители (магнитные и оптические диски, стримеры).
Выделенный сервер не принято использовать для выполнения задач, не связанных с его основным назначением, поскольку это уменьшает производительность всей системы. Поэтому, например, на серверной части ОС NetWare не предусмотрена возможность выполнения прикладных программ, а на рабочих станциях отсутствуют серверные компоненты. Другим примером является ОС Windows NT. В отличие от NetWare оба варианта данной сетевой ОС – Windows NT Server (для выделенного сервера) и Windows NT Workstation (для рабочей станции) – поддерживают функции и клиента и сервера. Например, под управлением Windows NT Server могут запускаться обычные программы локального пользователя, а рабочие станции, на которых установлена ОС Windows NT Workstation, могут выполнять функции невыделенного сервера.
Что такое клиентская часть приложения
В настоящее время сеть Интернет прочно вошла в жизнь почти каждого человека, стала неотъемлемой средой поддержки бизнес-процессов. С каждым годом технологии развиваются, и возникает необходимость в web-приложениях, которые имеют быстрый отклик на действия в пользовательском интерфейсе и отлично работают на всех устройствах (как на стационарных, так и мобильных). Одновременно с увеличением скорости разработки инфраструктурных веб-приложений поднимается вопрос о выборе программных продуктов для воплощения в жизнь эффективной, современной и отказоустойчивой системы. Поэтому обрели популярность Single Page Application, особенностью реализации которых является модульная структура. В статье рассматривается разработка архитектуры клиентской части одностраничного приложения, его особенности и реализация с помощью современной JavaScript-библиотеки React, приведен сравнительный анализ использования и производительности библиотек для разработки клиентской части приложения React и AngularJS. React позволяет разработчикам моделировать состояние интерфейсов и декларативно описывать их. React – это всего лишь JavaScript, у библиотеки очень маленький API для изучения, всего несколько функций и способы их использования, что позволяет быстро изучить эту библиотеку.
одностраничное приложение
JavaScript
архитектура
модульность
1. Натальченко И.А. Анализ механизмов передачи крупных массивов данных через сеть интернет с помощью технологии веб-сервиса // Инженерный вестник Дона. 2008. № 4 [Электронный ресурс]. URL: ivdon.ru/ru/magazine/archive/n4y2008/98 (дата обращения: 17.01.2020).
2. Прощаева А.А., Синелобова С.В. Обзор программного обеспечения для построения распределенных веб систем // Инженерный вестник Дона. 2017. № 4. [Электронный ресурс]. URL: ivdon.ru/uploads/article/pdf/IVD_130_proshchaeva_sinelobova.pdf. (дата обращения: 17.01.2020).
3. Разработка одностраничных клиентский приложений для CRM-систем. 1 часть. [Электронный ресурс]. URL: habr.com/company/qbs/blog/243545 (дата обращения: 17.01.2020).
4. Бондаренко С.О. Современные интерактивные веб-приложения – построение пользовательского интерфейса с React // Вестник науки и образования. 2018. № 5 (41). С. 46-48.
5. Карышев А.А., Афанасьев В.Р. Разработка web-сервиса для авто-матизированной генерации документов на основе docx-шаблонов // Известия ТулГУ. Технические науки. 2017. № 5. С. 47–54.
6. Клочков Д.В. Общие компоненты при кроссплатформенной разработке для web-и мобильных приложений с использованием react и react-native // Молодой ученый. 2018. № 36. С. 1–5.
7. Скороходов И.C., Тихомирова А.Н. Исследование и сравнение современных реализаций Flux-архитектур разработки веб-приложений // Наука, техника и образование. 2016. № 6 (24). С. 290–297.
8. ReactJS vs Angular5 vs Vue.js?-?What to choose in 2018? [Электронный ресурс]. URL: medium.com/@TechMagic/reactjs-vs-angular5-vs-vue-js-what-to-choose-in-2018-b91e028fa91d (дата обращения: 17.01.2020).
9. Results for js web frameworks benchmark – round 6. [Электронный ресурс]. URL: stefankrause.net/js-frameworks-benchmark6/webdriver-ts-results/table.html (дата обращения: 17.01.2020).
В настоящее время сеть Интернет прочно вошла в жизнь почти каждого человека, стала неотъемлемой средой поддержки бизнес-процессов [1]. С каждым годом технологии развиваются, и возникает необходимость в web-приложениях, которые имеют быстрый отклик на действия в пользовательском интерфейсе и отлично работают на всех устройствах (как на стационарных, так и мобильных). Одновременно с увеличением количества таких систем в корпоративной инфраструктуре поднимается вопрос о выборе программных продуктов для воплощения в жизнь эффективной, современной и отказоустойчивой системы [2]. Поэтому обрели популярность Single Page Application (далее SPA).
SPA-приложения – web-приложения, которые используют HTML-документ как оболочку для всех веб-страниц и организовывают обмен информацией с пользователем через динамически подгружаемые HTML, CSS, JavaScript.
Целью работы является проанализировать существующие фреймворки для создания веб-приложений, определить их особенности, плюсы и недостатки по различным характеристикам, выбрать подходящий фреймворк для реализации клиентской части приложения.
Материалы и методы исследования
Главным SPA-архитектуры является представление (View) – именно с этим взаимодействует пользователь системы. Зачастую представления основаны вокруг шаблонов (Template) – заготовок, которые преобразуются в HTML. Чтобы хранить информацию, необходима модель (Model). Моделью является набор данных и функций, необходимых для работы с событиями и данными. Вся информация модели полностью сохраняется в памяти (Storage). Для сохранения целостности информации представление отслеживает любые изменения данных в модели. Аналогично модель откликается на оповещение представления и предоставляет непрерывное взаимодействие WEB-сервиса с сервером, исполняя запросы на передачу информации (в том числе с использованием REST) (рис. 1) [3; 4].
Рис. 1. Архитектура SPA-приложения
Разница между модульным и немодульным приложением
КЛИЕНТСКАЯ ЧАСТЬ
Приложение клиента (третье звено) несколько отличается от ранее рассмотренного (раздел III) приложения клиента в двухзвенной архитектуре «клиент—сервер». Основное отличие состоит в том, что компоненты доступа к данным перенесены на сервер приложений (второе звено). Вместо них установлены компоненты обращения к серверу приложений. Для согласования работы приложения клиента и сервера приложения используются специальные протоколы и, как следствие, соответствующие компоненты.
В технологии DCOM для доступа к серверу приложений используется компонент ТSocket Connection. Если приложение клиента обращается к нескольким базам данных, размещенных на разных серверах, то допускается использование нескольких компонентов ТSocket Connection. Для получения набора данных от сервера приложений используется компонент ТClient DataSet. Количество компонентов TClientDataSet соответствует количеству таблиц в базе данных и хранит соответствующий набор данных. Набор данных через передаточный компонент TDataSource передается в один из визуальных компонентов, например DBGrid. Для получения набора данных от сервера приложений у компонента TClientDataSet необходимо заполнить три свойства — RemoteServer, Provide г Name и Active.
Для нормальной работы компонента связи ТSocket Connection необходимо заполнить как минимум два свойства — Host и ServerName.
Другие компоненты размещаются на листе DataModule по усмотрению программиста. На рис. 15.1 представлен один из вариантов доступа к серверу приложений из приложения клиента.
В зависимости от выбранной технологии доступа к данным в качестве компонента связи с сервером приложений могут использоваться:
ТSocket Connection — для установления связи с помощью сокетов;
Рис. 15.1. Лист DataModule приложения клиента
TDCOM Connection — для установления связи по технологии COM/DCOM;
TCORBAConnection — для установления связи по технологии CORBA-
TWEBConnection
для установления связи по протоколу
Компонент TClient Data Set
Компонент размещен на вкладке DataAccess. Выполняет две основные функции:
- • принимает пакет с набором данных от сервера приложений, распаковывает его и предоставляет пользователю;
- • по окончании работы пользователя с набором данных упаковывает его в пакет и отсылает на сервер приложении для фиксации сделанных изменений в локальной копии базы данных.
property RemoteServer: ТCustom Remote Server; — содержит ссылку на компонент связи с сервером приложений (в примере рис. 15.1 компонент 7Socket Connection)’, property ProviderName: string; — содержит ссылку на согласующий компонент, который размещен на сервере приложений (как правило, TDataSetProvider)’, property Active: Boolean; — если свойство содержит значение True, то в компонент TClientDataSet загружается набор данных;
property Data: Ole Variant; — содержит упакованные в пакет данные для передачи по сети. Свойство Readonly, property DataSize: Integer; — размер пакета в байтах. Свойство Readonly,
property ChangeCount: Integer; — содержит сведения о количестве выполненных изменений в данных. Свойство Readonly,
property CommandText: string; — содержит запрос, который будет выполнен методом Execute; property FileName: string; — ссылка на имя файла, в котором хранятся данные;
property IndexDefs: TIndexDefs; — содержит массивы индексов, принадлежащих текущему набору данных. Свойство Readonly,
property IndexFieldCount: Integer; — содержит список имен полей, принадлежащих текущему индексу. Свойство Readonly,
property IndexName: string; — содержит имя текущего индекса. Свойство Readonly,
property Packet Records: Integer; — количество записей в пакете, полученном пользователем. Свойство Readonly, property HasAppServer: Boolean; — если свойство содержит значение True, то связь с сервером установлена, если — False, то связь разорвана;
property Readonly: Boolean; — если свойство содержит значение True, то набор данных доступен только для чтения записей, если — False, то разрешается вносить изменения в записи набора данных;
property RecNo: Integer; — содержит порядковый номер текущей записи в наборе данных. Свойство Readonly, property RecordCount: Integer; — количество записей в наборе данных. Свойство Readonly,
property RecordSize: Integer; — длина записи в наборе данных.
Свойство Readonly.
function ApplyUpgates(MaxError: Integer); Integer, — выполняет обновление записей в наборе данных. В качестве параметра функции передается максимально возможное количество ошибок. Функция возвращает фактическое количество ошибок;
procedure Cancel; — выполняет откат неподтвержденных изменений в текущей записи;
procedure Cancel Updates’, — выполняет откат неподтвержденных изменений записей в пакете; function Create BlobStream(Field: TField; Mode: TBlob Stream Mode): TStream; — создает поток для передачи значений Blob-полей. Параметр Field определяет имя Blob-тюля. Параметр Mode определяет режим работы потока и может содержать одну из констант: bmRead — чтение значения В/оЬ-поля’, bmWrite — запись Blob-поля; bmReadWrite — редактирование Blob-поля; procedure Create DataSet’, — создает пустой набор данных; procedure Empty DataSet’, — очищает буфер от набора данных; procedure Execute’, — выполняет 501-запрос, указанный в свойстве CommandText’,
function GetNextPacket: Integer, — запрашивает у сервера следующий пакет данных. Размер пакета определяется свойством Packet Records. Функция возвращает количество записей, помещенных в пакет;
procedure GotoCurrent( DataSet: ТClient DataSet); — синхронизирует курсор текущего набора данных с курсором набора DataSet’,
procedure Load From File( const FileName: string); — загружает набор данных из указанного файла; function Locate(cons Key Fields: string; const Key Values: Variant; Options: TOptions)’. Boolean; — организует поиск записи в наборе данных. Работа метода Locate аналогична работе одноименного метода, рассмотренного в книге 1; function Lookupicons Key Fields: string; const Key Values: Variant; const ResultFields: string): Variant; — организует поиск записи в наборе данных. Работа метода Lookup аналогична работе одноименного метода, рассмотренного в книге 1;
procedure Post, — фиксирует изменения в текущей записи набора данных;
procedure RefreachRecord’, — обновляет текущую запись, заново считывая ее у провайдера;
procedure Revert Record’, — восстанавливает текущую запись по протоколу ее изменений;
procedure SaveToFile(const FileName: string); — сохраняет набор данных в указанном файле;
procedure SaveToStream(Stream: TStream); — сохраняет данные в потоке.
Компонент TSocketConnection Cjs,
Компонент размещен на вкладке DataSnap и предназначен для обеспечения связи между приложением клиента и сервером приложений по протоколу TCP/IP с использованием функций низкого уровня API (сокетов). Такой тип связи обеспечивает максимальное быстродействие.
Основные свойства и методы компонента:
property Host: string’, — содержит ссылку на сетевое имя персонального компьютера, на котором размещен сервер приложений. Заполнение этого свойства приводит к автоматической очистке свойства Address’,
property ServerName: string; — содержит ссылку на модуль реализации сервера приложений;
property Address’, string; — содержит IP-адрес персонального компьютера, на котором размещен сервер приложений. Заполнение этого свойства приводит к автоматической очистке свойства Host;
property Port: Integer, — определяет порт для связи с удаленным сервером приложений (размещенным на другом персональном компьютере);
procedure DoConnect; override; — устанавливает сокетное соединение с сервером приложений, установленным на другом персональном компьютере;
procedure CreateTransporf. ITransport; virtual; — организует доступ к транспортному интерфейсу ITransport.
Компонент TDCOMConnection
Компонент размещен на вкладке DataSnap. Предназначен для обеспечения связи между приложением клиента и сервером приложений по протоколу DCOM и обеспечивает автоматическую регистрацию на сервере клиентских наборов данных. Об-
ращение к серверу выполняется с использованием компонента ТDataSet Pro vider.
property ComputerName: string] — содержит ссылку на сетевое имя персонального компьютера, на котором размешен сервер приложений. Если это свойство пусто, то сервер приложений размещен на персональном компьютере клиента и зарегистрирован в реестре WIND О WS- клиента.
Компонент TCORBAConnection
Компонент размещен на вкладке DataSnap и предназначен для обеспечения связи между приложением клиента и сервером приложений в рамках технологии CORBA.
Основные свойства и методы компонента TCORBAConnection: property HostName: string] — содержит ссылку на сетевое имя или IP-адрес персонального компьютера, на котором размешен сервер приложений. Если это свойство пусто, то связь будет установлена с сервером, интерфейс которого указан первым в хранилище интерфейсов; property AppServer. Variant] — обеспечивает прямой доступ клиентским наборам данных к методам динамически вызываемого интерфейса DII (Dinamic Invocation Interface); property ServerName] string] — содержит ссылку на модуль реализации сервера приложений;
property ObjectName] string] — содержит ссылку на имя объекта, интерфейс которого ссылается на свойство Repository ID] property Repositoryld] TRepositorydD] — содержит идентификатор интерфейса CORBA — фабрики сервера приложений. Если на персональном компьютере установлено несколько серверов приложений, то для получения списка этих серверов предназначен компонент TSimple Object Broker, который размещен на вкладке DataSnap.
Компонент TSimple ObjectBroker
Компонент размещен на вкладке DataSnap.
Основные свойства и методы компонента: property Load Balanced] Boolean] — если свойство содержит значение True, то в свойство загружается список имен зарегистрированных серверов;
property Servers’. TServerCollection; — содержит список имен зарегистрированных серверов.
Контрольные вопросы
- 1. Чем отличается приложение клиента в трехзвенном и двухзвенном вариантах архитектуры «клиент—сервер»?
- 2. Какие типы листов (форм) используются при создании трехзвенного варианта приложения клиента?
- 3. Расскажите о назначении и основных свойствах компонента ТС Не Ы-DaiaSet.
- 4. Расскажите о назначении и основных свойствах компонента ТБоске^ СоппесНоп.
- 5. Каковы назначение и основные свойства компонента ГОСОМ-
6. Каковы назначение и основные свойства компонента ГСО/?6Л-
7. Расскажите о назначении и основных свойствах компонента Г5/тр/е-ОЬ]еЫВгокег.
Что такое серверная и клиентская часть?
Доброго времени суток! Недавно столкнулась с тем, что независимо от того, под какие устройства ты хочешь программировать (допустим мобильная разработка), ты должен знать какой-нибудь серверный язык для создания серверной и клиентской части.
1) Объясните, пожалуйста, что представляет собой серверная и клиентская части
2) Как эти части создать и как с ними работать?
3) Обязательно ли создавать сервер. и клиент. части?
- Вопрос задан более трёх лет назад
- 38444 просмотра
Комментировать
Решения вопроса 1
Сергей @begemot_sun
Программист в душе.
Любая система в веб состоит из 2х частей.
1 часть (клиентская) — это фактически та программа, которой вы пользуетесь у себя на компьютере. Например браузер.
Сам по себе браузер ничего не умеет. Он умеет только отображать информацию полученную откуда либо.
Соотвественно вводится 2 часть системы — серверная.
Она как-то взаимодействует с клиентом (браузером, телефоном и т.п) таким образом, чтобы пользователь клиента мог получить какую либо полезную информацию.
Т.о. клиент отправляет запрос серверу. Сервер его обрабатывает и отдает ответ. Клиент этот ответ отображает.
Для клиентской части вам надо (в первом приближении): HTML\CSS, JavaScript или создать программу (для андройда, для компьютера и т.п.)
Для серверной части вам надо (в первом приближении): PHP, веб-сервер (apache, nginx), база данных (MySQL, Postgresql, MongoDB и т.п) или другая программа способная взаимодействовать с клиентом каким либо образом.
Можно не создавать клиент-серверную архитектуру. Можно сделать обычную программу, и работать с ней.