Файл: Реализовать приложениесервер в среде MicrosoftVisualStudioна языкеVisualC#.odt

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

Категория: Не указан

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

Добавлен: 09.12.2023

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

Скачиваний: 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.