Автор работы: Пользователь скрыл имя, 20 Августа 2013 в 23:24, дипломная работа
Актуальность моей работы заключается в создании инструмента для разработки приложений, связанных между собой по сети и работающих как единая система.
Сейчас распространена клиент-серверная сетевая архитектура, в которой задания или сетевая нагрузка распределены между поставщиками услуг (сервисов), называемыми серверами, и заказчиками услуг, называемыми клиентами. Нередко клиенты и серверы взаимодействуют через компьютерную сеть и могут быть как различными физическими устройствами, так и программным обеспечением.
Введение 3
Глава 1. Оптимизация приложений 6
1.1 Механизмы оптимизации 6
1.2 Архитектурный принцип построения сетей 9
1.3 Пропускная способность сети 11
1.4 Поток данных 12
1.5 Гибридные сети 20
1.6 Брэндмауэр Windows 22
1.7 Отличие С# от Java 24
1.8 JSON. Передача объектов 36
Глава 2. Программная часть 38
2.1 Среда разработки 38
2.2 Язык программирования 39
2.3 Диаграммы классов 40
2.4 Диаграммы взаимодействия 43
2.5 Алгоритм работы 45
2.6 Интерфейс приложения 47
Заключение 49
Список использованной литературы 50
Минобрнауки россии
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
“ВОРОНЕЖСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ”
Факультет компьютерных наук
Кафедра цифровых технологий
Программа
по оптимизации передачи данных через
сервер
ВКР Дипломная работа
230201
Информационные системы и
Допущено к защите в ГАК
Зав. кафедрой _______ д.ф. – м.н., профессор __.__.2013
Студент _______ 5 курс, д/о
Руководитель _______ <ученая степень, звание>
Оглавление
Введение 3
Глава 1. Оптимизация приложений 6
1.1 Механизмы оптимизации 6
1.2 Архитектурный принцип построения сетей 9
1.3 Пропускная способность сети 11
1.4 Поток данных 12
1.5 Гибридные сети 20
1.6 Брэндмауэр Windows 22
1.7 Отличие С# от Java 24
1.8 JSON. Передача объектов 36
Глава 2. Программная часть 38
2.1 Среда разработки 38
2.2 Язык программирования 39
2.3 Диаграммы классов 40
2.4 Диаграммы взаимодействия 43
2.5 Алгоритм работы 45
2.6 Интерфейс приложения 47
Заключение 49
Список использованной литературы 50
Приложение 1. Реализация класса NetClient 51
Приложение 2. Реализация Form1.cs 55
Приложение 3. Настройки клиента Settings.cs 59
Актуальность моей работы заключается в создании инструмента для разработки приложений, связанных между собой по сети и работающих как единая система.
Сейчас распространена клиент-серверная сетевая архитектура, в которой задания или сетевая нагрузка распределены между поставщиками услуг (сервисов), называемыми серверами, и заказчиками услуг, называемыми клиентами. Нередко клиенты и серверы взаимодействуют через компьютерную сеть и могут быть как различными физическими устройствами, так и программным обеспечением.
Преимуществами
такой сетевой архитектуры
- Отсутствие дублирования кода программы-сервера программами-клиентами.
- Так как все вычисления выполняются на сервере, то требования к компьютерам, на которых установлен клиент, снижаются.
- Все данные хранятся на сервере, который, как правило, защищён гораздо лучше большинства клиентов. На сервере проще обеспечить контроль полномочий, чтобы разрешать доступ к данным только клиентам с соответствующими правами доступа.
- Позволяет объединить различные клиенты. Использовать ресурсы одного сервера часто могут клиенты с разными аппаратными платформами, операционными системами и т. п.
- Позволяет разгрузить сети за счёт того, что между сервером и клиентом передаются небольшие порции данных.
Но так же у данной сетевой архитектуры имеются и недостатки:
- Неработоспособность сервера может сделать неработоспособной всю вычислительную сеть. Неработоспособным сервером следует считать сервер, производительности которого не хватает на обслуживание всех клиентов, а также сервер, находящийся на ремонте, профилактике и т. п.
- Поддержка работы данной системы требует отдельного специалиста — системного администратора.
- Высокая стоимость оборудования.
Как можно увидеть у этой системы множество плюсов, но отрицательные стороны так же имеются и они достаточно серьезные.
Цель моей дипломной работы заключается в написании программного класса – клиента для разгрузки сервера и реализации отказоустойчивости в работе приложения. При использовании данного класса в написании приложения, исключается возможность неработоспособности вычислительной сети в условиях неработоспособного сервера. Это реализовано за счет того, что клиенты при подключении к сети получают от сервера всю необходимую информацию о друг-друге (Ip – адрес, порт и т.д.) и для дальнейшего функционирования сервер не требуется. При использовании данного класса – клиента происходит разгрузка сервера, т.к. соединение клиентов осуществляется напрямую, минуя сервер. Тем самым снижается стоимость сервера, вся нагрузка распределяется между клиентами (ПК находящимися в сети).
Данный класс – клиент возможно использовать не только с клиент – серверной архитектурой. Но и в сети с выделенным сервером, в которой сетевые устройства централизованы и управляются одним или несколькими серверами. Индивидуальные рабочие станции или клиенты (такие, как ПК) должны обращаться к ресурсам сети через сервер(ы). В принципе не существует ограничений для использования класса – клиента с любой сетевой архитектурой.
Для написания клиента мною был выбран язык программирования – C#.
Данный язык является объектно-ориентированным и сочетает в себе возможности Java и С++. Так же вся платформа .NET основана на единой объектно-ориентированной модели. Что это значит? Дело в том, что все сервисы, интерфейсы и объекты, которые платформа предоставляет разработчику, объединены в единую иерархию классов.
Другими словами, все, что может вам потребоваться при создании приложений под платформу .NET будет всегда у вас под рукой. Причем, все это сгруппировано очень удобно и интуитивно понятно.
Объектом исследования являются различные клиент – серверные архитектуры, выявление положительных и отрицательных сторон каждой архитектуры.
Предмет исследования – возможность разгрузки сервера в данной архитектуре, автономность работы клиента в случае отказа сервера и его обособленность от передаваемых данных между клиентами.
Современные
тенденции в развитии бизнеса, такие
как консолидация и централизация
ИТ не остались незамеченными предприятиями
SMB (конечно, не совсем малых, а той
самой средней прослойки, которая
стремится стать покрупнее) . Преимущества
сосредоточения информационных ресурсов
в консолидированных ЦОД и
внедрения корпоративных
Еще совсем
недавно информационные процессы замыкались
в рамках так называемой «физической
локации». Бизнес-приложения в региональных
офисах (по сути, тождественных SMB в
плане ИТ-оснащения) или у небольших
компаний-партнеров внедрялись и
эксплуатировались
Существует
три варианта решения этой проблемы.
Вариант первый — «подтянуть»
сами приложения. По сути дела необходимо
переделать приложения так, чтобы они
устойчиво работали при небольшой
скорости. Для этого необходимо внести
изменения на уровне архитектуры
приложений, пересмотреть некоторые
принципы их работы. Этот путь производители
ПО конечно пройдут, и корпоративные
приложения будут устойчиво работать
поверх сетей любой
Вариант второй — расширить канальную инфраструктуру предприятия, модернизировать сеть для обеспечения ее работы на более высоких скоростях. Он потребует пересмотра отношений с операторами связи, повлечет за собой переход на более высокоскоростные тарифы и новые классы услуг, а также (почти на 100%) чреват необходимостью замены оборудования. Небольшие фирмы могут и вовсе отказаться от перехода на централизованную инфраструктуру из-за опасений «утонуть» в расходах на услуги связи и каналы передачи данных.
Третий
вариант — внедрить решение по
оптимизации функционирования сетевых
приложений, которое позволит организовать
эффективную и комфортную работу
бизнес-пользователей и в
В моем варианте оптимизация происходит путем изменения архитектуры сетевого приложения.
Сервер – компьютер сети, предоставляющий свои программные и аппаратные ресурсы пользователям сети для хранения данных, выполнения программ и других услуг (например, доступ к общей базе данных, совместное использование устройств ввода/вывода, организацию взаимодействия пользователей и др.).
Клиент – компонент архитектуры "клиент – сервер", пользующийся услугами сервера. Часто в качестве клиента выступают программы, имеющие доступ к информационным ресурсам или устройствам сервера. Для подключения к серверу пользователь рабочей станции должен получить собственное регистрационное имя и пароль.
Термины
"клиент" и "сервер" используются
для обозначения как
К преимуществам сетей с архитектурой "клиент – сервер" относятся централизованное управление ресурсами сети, безопасность и скорость доступа. Мероприятия по реализации этих свойств называются администрированием сети.
Локальные сети охватывают предприятия, группу учреждений или район и используют единый высокоскоростной канал передачи данных.
Протокол TCP1 (Transmission Control Protocol) – транспортного уровня, он управляет тем, как происходит передача информации (данные "нарезаются" на пакеты и маркируются).
IP (Internet Protocol)2 – протокол сетевого уровня, добавляет к пакету IP-адреса получателя и отравителя и отвечает на вопрос, как проложить маршрут для доставки информации.
Каждый компьютер, включенный в сеть – хост, имеет свой уникальный IP-адрес. Этот адрес выражается четырьмя байтами, например: 234.049.123.101, и регистрируется в Информационном центре сети– InterNIC или в Network Solutions Inc (NSI). Организация IP-адреса такова, что каждый компьютер, через который проходит TCP-пакет, может определить, кому из ближайших "соседей" его нужно переслать.
Рис. 1 схема клиент – серверной архитектуры
Сегодня все чаще и чаще возникают повышенные требование к пропускной способности каналов между клиентами сети и серверами. Это происходит по разным причинам:
повышение производительности клиентских компьютеров;
увеличение числа пользователей в сети;
появление приложений, работающих с мультимедийной информацией, которая хранится в файлах очень больших размеров;
увеличение числа сервисов, работающих в реальном масштабе времени.
Следовательно,
имеется потребность в
Fast Ethernet3 — спецификация IEЕЕ 802.3 u официально принятая 26 октября 1995 года определяет стандарт протокола канального уровня для сетей работающих при использовании как медного, так и волоконно-оптического кабеля со скоростью 100Мб/с. Новая спецификация является наследницей стандарта Ethernet IEЕЕ 802.3, используя такой же формат кадра, механизм доступа к среде CSMA/CD и топологию звезда. Эволюция коснулась нескольких элементов конфигурации средств физического уровня, что позволило увеличить пропускную способность, включая типы применяемого кабеля, длину сегментов и количество концентраторов.
Информация о работе Программа по оптимизации передачи данных через сервер