Программа по оптимизации передачи данных через сервер

Автор работы: Пользователь скрыл имя, 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

Файлы: 1 файл

Диплом.docx

— 1.24 Мб (Скачать файл)

Минобрнауки россии

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ

ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО  ОБРАЗОВАНИЯ

“ВОРОНЕЖСКИЙ  ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ”

Факультет компьютерных наук

Кафедра цифровых технологий

Программа 
по оптимизации передачи данных через сервер

ВКР Дипломная работа

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 будет всегда у вас под рукой. Причем, все это сгруппировано  очень удобно и интуитивно понятно.

Объектом  исследования являются различные клиент – серверные архитектуры, выявление положительных и отрицательных сторон каждой архитектуры.

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

 

Глава 1. Оптимизация приложений

1.1 Механизмы оптимизации

Современные тенденции в развитии бизнеса, такие  как консолидация и централизация  ИТ не остались незамеченными предприятиями SMB (конечно, не совсем малых, а той  самой средней прослойки, которая  стремится стать покрупнее) . Преимущества сосредоточения информационных ресурсов в консолидированных ЦОД и  внедрения корпоративных приложений очевидны: такой инфраструктурой  легко управлять, проще обеспечить сохранность данных, дешевле обходится  эксплуатация. Именно поэтому большинство  компаний стремится использовать такую  схему построения своей ИС. Между  тем, централизованная инфраструктура подразумевает существенное повышение  требований по обеспечению надежности ее элементов, информационной безопасности, а также — производительности распределенных сетей (WAN).

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

Существует  три варианта решения этой проблемы. Вариант первый — «подтянуть»  сами приложения. По сути дела необходимо переделать приложения так, чтобы они  устойчиво работали при небольшой  скорости. Для этого необходимо внести изменения на уровне архитектуры  приложений, пересмотреть некоторые  принципы их работы. Этот путь производители  ПО конечно пройдут, и корпоративные  приложения будут устойчиво работать поверх сетей любой производительности. Но ожидание может оказаться долгим—  по мнению экспертов, не меньше  5 лет.

Вариант второй — расширить канальную  инфраструктуру предприятия, модернизировать  сеть для обеспечения ее работы на более высоких скоростях. Он потребует  пересмотра отношений с операторами  связи, повлечет за собой переход  на более высокоскоростные тарифы и  новые классы услуг, а также (почти  на 100%) чреват необходимостью замены оборудования. Небольшие фирмы могут и вовсе  отказаться от перехода на централизованную инфраструктуру из-за опасений «утонуть»  в расходах на услуги связи и каналы передачи данных.

 

Третий  вариант — внедрить решение по оптимизации функционирования сетевых  приложений, которое позволит организовать эффективную и комфортную работу бизнес-пользователей и в низкоскоростных (в том числе и в распределенных) сетях. Как ни парадоксально, скорости останутся теми же самыми, но интерактивность  корпоративных приложений существенно  повысится, в некоторых случаях  — в несколько раз. Вы скажете, что это фокус? Да, это эффектный, хорошо продуманный фокус. Но для  такого «фокуса» не надо коренным образом  пересматривать свои отношения с  оператором связи и покупать новое  оборудование. И что интересно: данный вариант решения проблемы гораздо  дешевле, чем второй, и быстрее  в реализации, чем первый.

В моем варианте оптимизация  происходит путем изменения  архитектуры сетевого приложения.

 

1.2 Архитектурный принцип построения сетей

Сервер  – компьютер сети, предоставляющий  свои программные и аппаратные ресурсы  пользователям сети для хранения данных, выполнения программ и других услуг (например, доступ к общей базе данных, совместное использование устройств  ввода/вывода, организацию взаимодействия пользователей и др.).

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

Термины "клиент" и "сервер" используются для обозначения как программных, так и аппаратных средств.

К преимуществам  сетей с архитектурой "клиент – сервер" относятся централизованное управление ресурсами сети, безопасность и скорость доступа. Мероприятия  по реализации этих свойств называются администрированием сети.

Локальные сети охватывают предприятия, группу учреждений или район и используют единый высокоскоростной канал передачи данных.

Протокол TCP1 (Transmission Control Protocol) – транспортного уровня, он управляет тем, как происходит передача информации (данные "нарезаются" на пакеты и маркируются).

IP (Internet Protocol)2 – протокол сетевого уровня, добавляет к пакету IP-адреса получателя и отравителя и отвечает на вопрос, как проложить маршрут для доставки информации.

 

 

 

Каждый  компьютер, включенный в сеть – хост, имеет свой уникальный IP-адрес. Этот адрес выражается четырьмя байтами, например: 234.049.123.101, и регистрируется в Информационном центре сети– InterNIC или в Network Solutions Inc (NSI). Организация IP-адреса такова, что каждый компьютер, через  который проходит TCP-пакет, может  определить, кому из ближайших "соседей" его нужно переслать.


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

             Рис. 1 схема клиент – серверной архитектуры

 

 

 

 

 

 

 

 

 

 

 

1.3 Пропускная способность сети

Сегодня все чаще и чаще возникают повышенные требование к пропускной способности  каналов между клиентами сети и серверами. Это происходит по разным причинам:

повышение производительности клиентских компьютеров;

увеличение  числа пользователей в сети;

появление приложений, работающих с мультимедийной информацией, которая хранится в  файлах очень больших размеров;

увеличение  числа сервисов, работающих в реальном масштабе времени.

Следовательно, имеется потребность в экономичном  решении, предоставляющем нужную пропускную способность во всех перечисленных  случаях. В большинстве случаев используется технология Fast Ethernet 100 Mbit/s.

Fast Ethernet3 — спецификация IEЕЕ 802.3 u официально принятая 26 октября 1995 года определяет стандарт протокола канального уровня для сетей работающих при использовании как медного, так и волоконно-оптического кабеля со скоростью 100Мб/с. Новая спецификация является наследницей стандарта Ethernet IEЕЕ 802.3, используя такой же формат кадра, механизм доступа к среде CSMA/CD и топологию звезда. Эволюция коснулась нескольких элементов конфигурации средств физического уровня, что позволило увеличить пропускную способность, включая типы применяемого кабеля, длину сегментов и количество концентраторов.

Информация о работе Программа по оптимизации передачи данных через сервер