Файл: Реализовать приложениесервер в среде MicrosoftVisualStudioна языкеVisualC#.odt
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 09.12.2023
Просмотров: 109
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Введение.
Из множества различных современных проблем в области безопасности был выбрана именно данная тема, т. к. с каждым днём число приложений и систем растёт и системы обновления ПО тому не исключение. Помимо роста числа растёт и сложность, комплексность систем. Были рассмотрены публикации по этой теме и сделан вывод, что на современном этапе информационных технологий, когда такие системы доступны большому числу организаций, решающую роль играет не обширный список функций, а простота, возможность пользования рядовому пользователю. Такие системы актуальны и пользуются спросом и именно такую систему требуется разработать и проверить её работоспособность.
Целью дипломной работы является разработка системы обновления ПО с учётом требования информационной безопасности.
Задачами Дипломной работы являются:
-
изучить основные функции и процедуры работы с файлами -
изучить технологии сетевых протоколов передачи данных -
изучить методы шифрования потоковой передачи данных -
реализовать приложение-сервер в среде MicrosoftVisualStudioна языкеVisualC# -
реализовать приложение-клиент в среде MicrosoftVisualStudioна языкеVisualC# -
реализовать библиотеку для контроля версий -
создать библиотеку для автоматического обновления версий
Конечный продукт должен обладать следующим функционалом:
-
клиент и сервер должны состоять из исполняемого файла и файла-перечня установленных приложений, позволяющего быстро находить компоненты приложения и оперативно выполнить обновление
-
предусмотреть функцию ответа на запрос о последней версии приложения -
предусмотреть функцию передачи необходимого приложения клиенту.
В современных условиях в связи со стремительным развитием информационных технологий широко применяется автоматизация различных процессов посредством создания автоматизированных информационных систем. Автоматизированная информационная система (АИС) — это компьютерная система, предназначенная для хранения, поиска и обработки информации. Предназначена для своевременного обеспечения персонала надлежащей информацией, то есть для удовлетворения конкретных информационных потребностей в рамках определённой предметной области, при этом результатом функционирования информационных систем является информационная продукция — документы, информационные массивы, базы данных и информационные услуги. Одним из современных распространенных типов АИС являются клиент-серверные системы [5], в которых база данных и СУБД находятся на сервере, а на рабочих станциях находятся только клиентские приложения.
На сегодняшний день существуют десятки СУБД, написанных для различных платформ, а также множество языков программирования и интегрированных сред разработки для создания клиентских приложений. Выбор конкретной СУБД, языковых и инструментальных средств разработки приложений зависит от ряда условий.
Технология «клиент-сервер» [6] появилась относительно давно и продолжает развиваться в данное время, поэтому литература по данной тематике представлена трудами многих зарубежных и отечественных авторов. Имеется множество учебников, самоучителей по языкам программирования и созданию клиентских приложений. Также имеется множество статей, опубликованных на популярных интернет-сайтах. Вместе с этим, литературы, посвященной анализу и сравнению различных средств разработки, мало.
На сегодняшний день существует множество различных средств вычислительной техники (в том числе и ЭВМ), позволяющих существенно повысить эффективность деятельности инженеров при решении различных задач. Знание основных методов и приемов программирования нужны не только будущему программисту, но и любому специалисту, использующему компьютер в своей профессиональной деятельности - это способствует развитию строгого алгоритмического мышления, пониманию основных принципов устройства и работы компьютера, умению грамотно сформулировать задачу для разработчиков прикладного программного обеспечения [5].
В данной курсовой работе создавалась программа для вычислений над матрицами.
В качестве среды программирования выбрана MS Visual Studio 2010 и язык программирования C# («си шарп»), изучаемый на занятиях по дисциплине Основы алгоритмизации и программирования. К достоинствам языка С# следует отнести то, что данный язык имеет 300 000 библиотек разных функций, которые работают с максимальным быстродействием. Алгоритмы и программы, которые представляют интерес для изучения и исследования, исчисляются десятками и сотнями. Одни из них решают конкретные задачи на основе известных методов, другие образуют системную основу для огромного большинства прикладных программ. К последней группе алгоритмов можно отнести методы обработки информации, представленной в виде одномерных и двухмерных массивов (матриц). Работа с матрицами - это одна из стандартных функций, возникающих в процессе решения задач самого различного характера.
На сегодняшний день математическое программирование - важная составляющая всего программирования. Большие и сложные вычисления благодаря простым программам становятся простыми.
1. ТЕОРЕТИЧЕСКИЕ ОСНОВЫ КЛИЕНТСКИХ ПРОГРАММ
1.1 Понятие и назначение клиентских программ
Понятие «клиентская программа» возникло в связи с появлением технологии «клиент-сервер». Для того, чтобы дать определение понятию «клиентская программа», необходимо рассмотреть эту технологию [7].
Системы, в которых сервер выполняет только процедуры организации, хранения и выдачи клиентам нужной информации, называются системами «файл-сервер» или сетями с выделенным сервером; системы, в которых, наряду с хранением, на сервере выполняется и содержательная обработка информации, называют системами «клиент-сервер» [1].
Технологии «клиент-сервер» была разработана в 80-х годах прошлого века и стала основной технологией глобальной сети Интернет.
Технология клиент-сервер предусматривает наличие двух самостоятельных взаимодействующих процессов – сервера и клиента, связь между которыми осуществляется по сети. Серверами называются процессы, отвечающие за поддержку базы данных и файловой системы, а клиентами - процессы, которые посылают запрос и ожидают ответ от сервера. Клиент и сервер какого-либо ресурса могут находиться как на одном компьютере, так и на различных компьютерах, связанных сетью. Взаимодействие между клиентом и сервером осуществляется следующим образом: сервер выделяет ресурсы межпроцессорного взаимодействия, и ожидает запросы на открытие соединения. Формат запросов клиента и ответов сервера определяется протоколом.
Протоколы — это стандарты, определяющие формы представления и способы пересылки сообщений, процедуры их интерпретации, правила совместной работы различного оборудования в сетях. Различают два типа протоколов в Интернет: базовые - протоколы физической пересылки сообщений между компьютерами (протоколы IP, TCP) и прикладные, отвечающие за передачу файлов (FTP), гипертекстовых сообщений (HTTP), электронной почты, протоколы передачи живого звука и другие.
Преимуществами клиент-серверной технологии являются [9]:
- снижение нагрузки на клиентскую часть;
- высокая скорость обработки информации;
- безопасность данных и защита от несанкционированного доступа;
- отсутствие необходимости в системах хранения данных;
- передача по сети только запросов и ответов;
- масштабируемость;
- обеспечение пользователей качественным интерфейсом.
Благодаря этим преимуществам технология «клиент-сервер» получила большое распространение.
Однако технология «клиент-сервер» имеет и ряд недостатков, среди которых – необходимость переустановки клиентских программ при изменении логики приложений, при изменении интерфейса, а также, при использовании промышленной СУБД - необходимость приобретения лицензий на рабочие места.
Можно выделить три уровня функций, решаемые вычислительной сетью архитектуры «клиент-сервер» [10]:
- функции ввода и отображения данных (обеспечивают взаимодействие с пользователем);
- прикладные функции, характерные для данной предметной области;
- функции управления ресурсами (файловой системой, базой данных и т.д.).
Выполнение этих функций в основном обеспечивается следующими программными средствами:
- компонент представления отвечает за пользовательский интерфейс;
- прикладной компонент реализует алгоритм решения конкретной задачи;
- компонент управления ресурсом обеспечивает доступ к необходимым ресурсам.
Исходя из распределения выполнения этих функций между компонентами системы, выделяют двухзвенную и трехзвенную архитектуру. В двухзвенной архитектуре три вышеперечисленных базовых компонента распределяются между двумя узлами – клиентом и сервером. Двухзвенная архитектура используется в клиент-серверных системах, где сервер отвечает на клиентские запросы напрямую и в полном объеме, при этом используя только собственные ресурсы.
Расположение компонентов на стороне клиента или сервера определяет следующие основные модели их взаимодействия в рамках двухзвенной архитектуры [10]:
- сервер терминалов — распределенное представление данных;
- файл-сервер — доступ к удаленной базе данных и файловым ресурсам;
- сервер БД — удаленное представление данных;
- сервер приложений — удаленное приложение.
Двухзвенная архитектура показана на рис. 1.1.