Загрузчик. Диплом_Сайтиев_Release. Реализовать приложениесервер в среде MicrosoftVisualStudioна языкеVisualC#
![]()
|
1. ТЕОРЕТИЧЕСКИЕ ОСНОВЫ КЛИЕНТСКИХ ПРОГРАММ1.1 Понятие и назначение клиентских программПонятие «клиентская программа» возникло в связи с появлением технологии «клиент-сервер». Для того, чтобы дать определение понятию «клиентская программа», необходимо рассмотреть эту технологию [7]. Системы, в которых сервер выполняет только процедуры организации, хранения и выдачи клиентам нужной информации, называются системами «файл-сервер» или сетями с выделенным сервером; системы, в которых, наряду с хранением, на сервере выполняется и содержательная обработка информации, называют системами «клиент-сервер» [1]. Технологии «клиент-сервер» была разработана в 80-х годах прошлого века и стала основной технологией глобальной сети Интернет. Технология клиент-сервер предусматривает наличие двух самостоятельных взаимодействующих процессов – сервера и клиента, связь между которыми осуществляется по сети. Серверами называются процессы, отвечающие за поддержку базы данных и файловой системы, а клиентами - процессы, которые посылают запрос и ожидают ответ от сервера. Клиент и сервер какого-либо ресурса могут находиться как на одном компьютере, так и на различных компьютерах, связанных сетью. Взаимодействие между клиентом и сервером осуществляется следующим образом: сервер выделяет ресурсы межпроцессорного взаимодействия, и ожидает запросы на открытие соединения. Формат запросов клиента и ответов сервера определяется протоколом. Протоколы — это стандарты, определяющие формы представления и способы пересылки сообщений, процедуры их интерпретации, правила совместной работы различного оборудования в сетях. Различают два типа протоколов в Интернет: базовые - протоколы физической пересылки сообщений между компьютерами (протоколы IP, TCP) и прикладные, отвечающие за передачу файлов (FTP), гипертекстовых сообщений (HTTP), электронной почты, протоколы передачи живого звука и другие. Преимуществами клиент-серверной технологии являются [9]: - снижение нагрузки на клиентскую часть; - высокая скорость обработки информации; - безопасность данных и защита от несанкционированного доступа; - отсутствие необходимости в системах хранения данных; - передача по сети только запросов и ответов; - масштабируемость; - обеспечение пользователей качественным интерфейсом. Благодаря этим преимуществам технология «клиент-сервер» получила большое распространение. Однако технология «клиент-сервер» имеет и ряд недостатков, среди которых – необходимость переустановки клиентских программ при изменении логики приложений, при изменении интерфейса, а также, при использовании промышленной СУБД - необходимость приобретения лицензий на рабочие места. Можно выделить три уровня функций, решаемые вычислительной сетью архитектуры «клиент-сервер» [10]: - функции ввода и отображения данных (обеспечивают взаимодействие с пользователем); - прикладные функции, характерные для данной предметной области; - функции управления ресурсами (файловой системой, базой данных и т.д.). Выполнение этих функций в основном обеспечивается следующими программными средствами: - компонент представления отвечает за пользовательский интерфейс; - прикладной компонент реализует алгоритм решения конкретной задачи; - компонент управления ресурсом обеспечивает доступ к необходимым ресурсам. Исходя из распределения выполнения этих функций между компонентами системы, выделяют двухзвенную и трехзвенную архитектуру. В двухзвенной архитектуре три вышеперечисленных базовых компонента распределяются между двумя узлами – клиентом и сервером. Двухзвенная архитектура используется в клиент-серверных системах, где сервер отвечает на клиентские запросы напрямую и в полном объеме, при этом используя только собственные ресурсы. Расположение компонентов на стороне клиента или сервера определяет следующие основные модели их взаимодействия в рамках двухзвенной архитектуры [10]: - сервер терминалов — распределенное представление данных; - файл-сервер — доступ к удаленной базе данных и файловым ресурсам; - сервер БД — удаленное представление данных; - сервер приложений — удаленное приложение. Двухзвенная архитектура показана на рис. 1.1. ![]() Рисунок 1.1 - Двухзвенная клиент-серверная архитектура Как правило, третьим звеном в трехзвенной архитектуре становится сервер приложений, т.е. компоненты распределяются следующим образом (рис. 1.2) Представление данных — на стороне клиента. Прикладной компонент — на выделенном сервере приложений (как вариант, выполняющем функции промежуточного ПО). Управление ресурсами — на сервере БД, который и представляет запрашиваемые данные. ![]() Рисунок 1.2 - Трехзвенная клиент-серверная архитектура Двухзвенная архитектура проще, так как все запросы обслуживаются одним сервером, но именно из-за этого она менее надежна и предъявляет повышенные требования к производительности сервера. Трехзвенная архитектура сложнее, но благодаря тому, что функции распределены между серверами второго и третьего уровня, эта архитектура представляет [12]: Высокую степень гибкости и масштабируемости. Высокую безопасность (т.к. защиту можно определить для каждого сервиса или уровня). Высокую производительность (т.к. задачи распределены между серверами). API – это набор классов, процедур, функций и структур, обеспечивающих взаимодействие клиентов и серверов. Часто реализуется отдельной программной библиотекой или сервисом операционной системы. Используется программистами при написании всевозможных приложений. Если программу (модуль, библиотеку) рассматривать как чёрный ящик, то API — это множество «ручек», которые доступны пользователю данного ящика и которые он может вертеть и дёргать. Таким образом, клиентская программа [13] – это программа, с которой непосредственно взаимодействует пользователь, посылающая запросы к базе данных, находящейся на сервере, и получающая ответы от сервера. В зависимости от типа клиент может выполнять или не выполнять обработку информации. Важную роль имеет интерфейс клиентской программы (пользовательский интерфейс), который включает [28]: - средства отображения информации; - средства взаимодействия программа-пользователь; - устройства и технологии ввода данных; - диалоги, взаимодействие и транзакции между пользователем и компьютером, обратную связь с пользователем; - поддержку принятия решений в конкретной предметной области; - порядок использования программы и документацию на неё. Другими словами, интерфейс пользователя –это совокупность экранных форм, которые видит пользователь, а также все программные компоненты, которые способны оказывать влияние на взаимодействие пользователя с программным обеспечением. |