Файл: Средства разработки клиентских программ (Языки С/С++/С#).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 04.04.2023

Просмотров: 311

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

ВВЕДЕНИЕ

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

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

Технология «клиент-сервер» [6] появилась относительно давно и продолжает развиваться в данное время, поэтому литература по данной тематике представлена трудами многих зарубежных и отечественных авторов. Имеется множество учебников, самоучителей по языкам программирования и созданию клиентских приложений. Также имеется множество статей, опубликованных на популярных интернет-сайтах. Вместе с этим, литературы, посвященной анализу и сравнению различных средств разработки, мало.

1. ТЕОРЕТИЧЕСКИЕ ОСНОВЫ КЛИЕНТСКИХ ПРОГРАММ

1.1 Понятие и назначение клиентских программ

Понятие «клиентская программа» возникло в связи с появлением технологии «клиент-сервер». Для того, чтобы дать определение понятию «клиентская программа», необходимо рассмотреть эту технологию [7].


Системы, в которых сервер выполняет только процедуры организации, хранения и выдачи клиентам нужной информации, называются системами «файл-сервер» или сетями с выделенным сервером; системы, в которых, наряду с хранением, на сервере выполняется и содержательная обработка информации, называют системами «клиент-сервер» [1].

Технологии «клиент-сервер» была разработана в 80-х годах прошлого века и стала основной технологией глобальной сети Интернет.

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

Протоколы — это стандарты, определяющие формы представления и способы пересылки сообщений, процедуры их интерпретации, правила совместной работы различного оборудования в сетях. Различают два типа протоколов в Интернет: базовые - протоколы физической пересылки сообщений между компьютерами (протоколы IP, TCP) и прикладные, отвечающие за передачу файлов (FTP), гипертекстовых сообщений (HTTP), электронной почты, протоколы передачи живого звука и другие.

Преимуществами клиент-серверной технологии являются [9]:

- снижение нагрузки на клиентскую часть;

- высокая скорость обработки информации;

- безопасность данных и защита от несанкционированного доступа;

- отсутствие необходимости в системах хранения данных;

- передача по сети только запросов и ответов;

- масштабируемость;

- обеспечение пользователей качественным интерфейсом.

Благодаря этим преимуществам технология «клиент-сервер» получила большое распространение.

Однако технология «клиент-сервер» имеет и ряд недостатков, среди которых – необходимость переустановки клиентских программ при изменении логики приложений, при изменении интерфейса, а также, при использовании промышленной СУБД - необходимость приобретения лицензий на рабочие места.

Можно выделить три уровня функций, решаемые вычислительной сетью архитектуры «клиент-сервер» [10]:


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

- прикладные функции, характерные для данной предметной области;

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

Выполнение этих функций в основном обеспечивается следующими программными средствами:

- компонент представления отвечает за пользовательский интерфейс;

- прикладной компонент реализует алгоритм решения конкретной задачи;

- компонент управления ресурсом обеспечивает доступ к необходимым ресурсам.

Исходя из распределения выполнения этих функций между компонентами системы, выделяют двухзвенную и трехзвенную архитектуру. В двухзвенной архитектуре три вышеперечисленных базовых компонента распределяются между двумя узлами – клиентом и сервером. Двухзвенная архитектура используется в клиент-серверных системах, где сервер отвечает на клиентские запросы напрямую и в полном объеме, при этом используя только собственные ресурсы.

Расположение компонентов на стороне клиента или сервера определяет следующие основные модели их взаимодействия в рамках двухзвенной архитектуры [10]:

- сервер терминалов — распределенное представление данных;

- файл-сервер — доступ к удаленной базе данных и файловым ресурсам;

- сервер БД — удаленное представление данных;

- сервер приложений — удаленное приложение.

Двухзвенная архитектура показана на рис. 1.1.

Рисунок 1.1 - Двухзвенная клиент-серверная архитектура

Как правило, третьим звеном в трехзвенной архитектуре становится сервер приложений, т.е. компоненты распределяются следующим образом (рис. 1.2) [12]:

Представление данных — на стороне клиента.

Прикладной компонент — на выделенном сервере приложений (как вариант, выполняющем функции промежуточного ПО).

Управление ресурсами — на сервере БД, который и представляет запрашиваемые данные.

Рисунок 1.2 - Трехзвенная клиент-серверная архитектура

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

Высокую степень гибкости и масштабируемости.


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

Высокую производительность (т.к. задачи распределены между серверами).

API – это набор классов, процедур, функций и структур, обеспечивающих взаимодействие клиентов и серверов. Часто реализуется отдельной программной библиотекой или сервисом операционной системы. Используется программистами при написании всевозможных приложений. Если программу (модуль, библиотеку) рассматривать как чёрный ящик, то API — это множество «ручек», которые доступны пользователю данного ящика и которые он может вертеть и дёргать.

Таким образом, клиентская программа [13] – это программа, с которой непосредственно взаимодействует пользователь, посылающая запросы к базе данных, находящейся на сервере, и получающая ответы от сервера. В зависимости от типа клиент может выполнять или не выполнять обработку информации. Важную роль имеет интерфейс клиентской программы (пользовательский интерфейс), который включает [28]:

- средства отображения информации;

- средства взаимодействия программа-пользователь;

- устройства и технологии ввода данных;

- диалоги, взаимодействие и транзакции между пользователем и компьютером, обратную связь с пользователем;

- поддержку принятия решений в конкретной предметной области;

- порядок использования программы и документацию на неё.

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

1.2 Основные виды клиентских программ

В зависимости от функциональных возможностей («толщины») клиентские программы принято подразделять на два вида: «тонкий» клиент и «толстый» клиент. Под толщиной понимается степень участия клиента в обработке информации. Оно определяет конфигурацию оборудования и программное обеспечение, имеющиеся у клиента. Рассмотрим возможные граничные значения [28]:

«Тонкий» клиент

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


Также термин «тонкий» клиент обозначает ряд устройств и программ, работающих в терминальном режиме. Для работы таких тонких клиентов необходим терминальный сервер. Также существуют устройства – Windows- и Linux-терминалы, имеющие устройство, отличное от устройства персонального компьютера, со своей местной специализированной операционной системой.

«Толстый» клиент

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

В последнее время все чаще используется еще один термин: «rich»-client. «Rich»-клиент своего рода компромисс между «толстым» и «тонким» клиентом. Как и «тонкий» клиент, «rich»-клиент также представляет графический интерфейс, описываемый уже средствами XML и включающий некоторую функциональность толстых клиентов (например интерфейс drag-and-drop, вкладки, множественные окна, выпадающие меню и т.п.). Прикладная логика «rich»-клиента также реализована на сервере. Данные отправляются в стандартном формате обмена, на основе того же XML (протоколы SOAP, XML-RPC) и интерпретируются клиентом.

Таким образом [13], технология «клиент-сервер» обладает значительными преимуществами по сравнению с файл-серверной технологией, главными из которых являются высокая производительность, безопасность и масштабируемость. Имеется несколько типов серверов, среди которых можно назвать веб-серверы, серверы баз данных, серверы приложений, почтовые серверы. Примерами клиентов являются браузеры, мобильные приложения, пользовательские программы для доступа к базе данных. В зависимости от сложности клиенты подразделяются на «толстые» - обладающие возможность производить обработку данных самостоятельно, и «тонкие», служащие только для доступа к данным.

Развитие современных технологий AJAX, JavaScript, JSON-RPC, WebSocket позволили сайтам передать часть нагрузки по обработке информации компьютеру пользователя. Браузер клиента связывается с главным сервером по API и получает данные, фильтрует, показывает их пользователю. Таким образом, тонким клиентом по отношению к главному серверу, хранящему все данные, становится оболочка сайта и управляющий JavaScript-код.