Разработка программы 'Сетевой чат'

  • Вид работы:
    Дипломная (ВКР)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    694,75 Кб
  • Опубликовано:
    2012-07-10
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Разработка программы 'Сетевой чат'

Введение


Сегодня на дворе 21 век - век информационных технологий, которые стремительно развиваются каждую секунду нашей жизни. Технологический, а также информационный прогресс, особенно за последние годы, сделал огромный шаг вперед. Современное человечество быстро превращается в информационное общество, а в особенности это происходит в быстроразвивающихся странах, которые делают большой упор именно на развитие техники и информационных технологий.

У многих людей есть компьютеры, будь то настольные персональные компьютеры, ноутбуки или карманные ПК, а также доступ во всемирную сеть Интернет с огромных количеством развлекательных и интересных ресурсов, либо в локальную сеть, которая наполнена различными развлекательными сервисами. Соответствено, люди знакомятся и становиться возможным общение на расстоянии, чтобы облегчить эту задачу, в наше время существует очень много решений, данный диплом был посвящен разработке средства общения между людьми в реальном времени на расстоянии.

Обоснование выбора языка программирования

Для решения поставленной задачи была выбрана интегральная среда разработки (ИСР) Microsoft Visual Studio.NET поскольку:

в ней доступны широкие возможности языка C#

используется широким кругом программистов-профессионалов, разрабатывающих в ОС Windows

она имеет все необходимые средства и инструменты для разработки приложений любой сложности

удобна в использовании, гибка в настройке

создает очень эффективный код

в ней имеется возможность использования готовых библиотек классов

позволяет импортировать исходный код и проекты для ИСР других ОС

Так как ИСР выбрана Microsoft Visual Studio.NET, соответственно языком программирования выбран C#, поскольку:

«родной» язык для создания приложений в среде .NET

подлинная объектная ориентированность (всякая языковая сущность претендует на то, чтобы быть объектом)

компонентно-ориентированное программирование

безопасный (по сравнению с языками C и C++) код

унифицированная система типизации

поддержка событийно-ориентированного программирования

объединение лучших идей современных языков программирования: Java, C++, Visual Basic и др.

При разработке данного проекты было принято решение создать кроссплатформенный клиент для чата, который был реализован в Microsoft Visual Studio.NET, после чего был импортирован в MonoDevelop и реализован клиент для ОС Ubuntu. Для компиляции клиента под ОС Ubuntu выбрана ИСР MonoDevelop, поскольку она полностью соответствует возможностям Microsoft Visual Studio.NET.

интегральный система microsoft компьютер

Описание инструмента разработки программы


Интегрированная среда разработки (Integrated Development Environment, IDE) Microsoft Visual Studio .NET является последней по времени выпуска версией популярной и широко используемой среды разработки профессионального программного обеспечения (ПО) производства компании Microsoft.

Объединяя в своем составе все положительные стороны предыдущих версий, данная обеспечивает возможность использования всех преимуществ современной технологии Microsoft .NET. В числе основных достоинств MS VS .NET, подостоинству оцененных сообществом профессиональных программистов, можно отметить следующие моменты:

• Повышение производительности труда разработчиков - Среда разработки Visual Studio .NET продолжает традиции корпорации icrosoft в области предоставления эффективных инструментальных средств для разработчиков сложного ПО. Обеспечивая среду разработки для всех языков программирования, дополненную набором окон с интуитивно понятными инструментальными средствами, контекстной справкой и автоматизированными механизмами выполнения разнообразных задач разработки, Visual Studio .NET позволяет в сжатые сроки проводить профессиональную разработку программ различного назначения;

• Поддержка нескольких языков программирования - В большинстве профессиональных групп разработчиков, как правило, используется несколько языков программирования - для поддержки такой практики в Visual Studio .NET впервые была обеспечена возможность использования сразу нескольких языков в рамках одной и той же среды. Благодаря применению общего конструктора для компонентов, для форматов XML и HTML, а также наличию единого отладчика, Visual Studio .NET предоставляет разработчикам эффективные средства, независимые от языка программирования. Разработчикам ПО при использовании Visual Studio .NET уже не придется ограничиваться одним языком программирования, адаптируя свою рабочую среду к особенностям этого языка. Более того, Visual Studio .NET позволяет программистам многократно использовать уже имеющиеся у них наработки, а также навыки разработчиков, создающих свои программы на разных языках программирования;

• Единая модель программирования для всех приложений - При создании приложений ранее разработчикам приходилось использовать различные приемы программирования, которые существенным образом зависели от типа приложения - технологии разработки клиентского программного обеспечения, общедоступных веб-приложений, программного обеспечения для мобильных устройств и бизнес-логики промежуточного уровня значительно различались между собой. Среда разработки Visual Studio .NET решает данную проблему, предоставляя в распоряжение разработчиков единую модель создания приложений всех категорий. Эта интегрированная модель обладает привычным и одновременно интуитивно понятным интерфейсом, позволяя разработчикам использовать свои навыки и знания для эффективного создания широкого спектра приложений,

• Всесторонняя поддержка жизненного цикла разработки - Среда Visual Studio .NET обеспечивает поддержку всего жизненного цикла разработки: начиная с планирования и проектирования через разработку и тестирование и вплоть до развертывания и последующего управления. Обеспечивая возможность легкого расширения среды разработки посредством включения продуктов независимых разработчиков, Visual Studio .NET предоставляет всестороннюю адаптируемую среду для создания всех приложений, жизненно необходимых для успешной работы современных компаний.

Описание разработанного приложения

Программа «Сетевой чат» является сетевой программой, поэтому она состоит из двух частей: программы-сервера и программы-клиента.

Программа-клиент представляет собой приложение, которое позволяет пользователю отправлять другим собеседникам сообщения и файлы, а также проматривать сообщения, отправленные другими собеседниками, данное приложение посредством разработанного протокола обменивается данными с программой сервером.

Программа сервер выполняет роль связующего модуля между клиентами, посредством разработанного протокола реализует беседу в реальном времени, следит за состоянием программ-клиентов. Данное приложение устанавливается на главные компьютер локальной сети, если общение просходит в ее рамках, либо на доступные ресурс в интернете. База данных пользователей хранится на машине, где установлена программа-сервер.

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

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

Для соединения клиент-сервер использует TCP протокол, так как необходимо надежное соединение, в таком случае можно быть уверенным, что сообщение будет доставлено.

Программа-клиент использует шифрование паролей пользователей, программа-сервер хранит защфрованные пароли в БД MySQL, что повышает уровень защиты. Базы данных хранятся на серверной машине или на другом сервере, зависит от организации администатором сервера.

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

Описание использованных технологий. Язык программирования C#


Для разработки приложений был использован язык программирования C#, (произносится си-шарп, иногда переводят си-диез) - объектно-ориентированный язык программирования. Разработан в 1998-2001 годах группой инженеров под руководством Андерса Хейлсберга в компании Microsoft как основной язык разработки приложений для платформы Microsoft .NET Framework и впоследствии был стандартизирован как ECMA-334 и ISO/IEC 23270. Компилятор C# входит в стандартную установку .NET Framework.# относится к семье языков с C-подобным синтаксисом, из них его синтаксис наиболее близок к C++ и Java. Язык имеет статическую типизацию, поддерживает полиморфизм, перегрузку операторов (в том числе операторов явного и неявного приведения типа), делегаты, атрибуты, события, свойства, обобщённые типы и методы, итераторы, анонимные функции с поддержкой замыканий, LINQ, исключения, комментарии в формате XML.

Переняв многое от своих предшественников - языков C++, Java, Delphi, Модула и Smalltalk - С#, опираясь на практику их использования, исключает некоторые модели, зарекомендовавшие себя как проблематичные при разработке программных систем, например, C# не поддерживает множественное наследование классов (в отличие от C++).

MySQL и язык запросов SQL


MySQL («май-эс-кью-эль») - свободная система управления базами данных (СУБД). MySQL является собственностью компании Oracle Corporation, получившей её вместе с поглощённой Sun Microsystems, осуществляющей разработку и поддержку приложения. Распространяется под GNU General Public License или под собственной коммерческой лицензией. Помимо этого разработчики создают функциональность по заказу лицензионных пользователей, именно благодаря такому заказу почти в самых ранних версиях появился механизм репликации.

MySQL является решением для малых и средних приложений. Входит в состав серверов WAMP, LAMP и в портативные сборки серверов Денвер, XAMPP. Обычно MySQL используется в качестве сервера, к которому обращаются локальные или удалённые клиенты, однако в дистрибутив входит библиотека внутреннего сервера, позволяющая включать MySQL в автономные программы.

Гибкость СУБД MySQL обеспечивается поддержкой большого количества типов таблиц: пользователи могут выбрать как таблицы типа MyISAM, поддерживающие полнотекстовый поиск, так и таблицы InnoDB, поддерживающие транзакции на уровне отдельных записей. Более того, СУБД MySQL поставляется со специальным типом таблиц EXAMPLE, демонстрирующим принципы создания новых типов таблиц. Благодаря открытой архитектуре и GPL-лицензированию, в СУБД MySQL постоянно появляются новые типы таблиц.это язык, ориентированный специально на реляционные базы данных (РБД). Он выполняет большую работу, которую вы должны были бы делать, если бы использовали универсальный язык программирования, например C. Чтобы сформировать РБД на C, вам необходимо было бы начать с нуля. Вы должны были бы определить объект, называемый таблицей, которая могла бы увеличиваться, чтобы иметь любое число строк, а затем создавать постепенно процедуры для вставки и извлечения значений.

Команды в SQL могут работать со всеми группами таблиц как с единым объектом и могут обрабатывать любое количество информации, извлечённой или полученной из них в виде единого модуля.

Описание алгоритма MD5(RFC1321)


Алгоритм MD5 является алгоритмом вычисления "хэш-функции» (message digest) для различных целей - шифрование паролей, проверка целостности файлов, и т.д. На вход подается поток данных произвольной длины, а на выходе получаем хэш длиной 128 бит. Сила этого алгоритма заключается в том, что практически очень сложно, почти невозможно, найти две строки, дающие одинаковый хэш. Однако, при определенных условиях, возможно получение исходного текста. Но этот метод основан на определенном выборе начальных значений, поэтому не представляет практической ценности. Также MD5 алгоритм используется в приложениях криптографии и электронно-цифровых подписей для генерации ключа шифрования.

При разработке данного алгоритма принималось во внимание скорость работы на современных 32-разрядных системах, а также требование минимизации используемой памяти. По сравнению с MD4, MD5 более медленный (примерно на 15 процентов), чем MD4, но в то же время и более устойчивым, в силу особенностей построения.

Введем следующие обозначения: под "словом" будет подразумеваться количество информации в 32 бита, а под "байтом" - 8 бит. Последовательность бит будем рассматривать как последовательность байт, старший байт идет первым, младший - последним. Аналогично представляется последовательность байт, как последовательность слов, только младший байт идет первым.

На вход алгоритма подается входной поток данных длиной N.

N может быть произвольным целым неотрицательным числом. Это число может быть как кратным, так и нет, 8. Процесс вычисления MD5 суммы состоит из нескольких шагов. Рассмотрим их подробнее.

Шаг 1: выравнивание потока.

Процесс выравнивания заключается в дописывании в конец потока 1, а затем некоторого числа нулей. Нули добававляются до тех пор, пока длина всего потока не станет равной 512*N+448, т.е. равной 448 по модулю 512. Такое выравнивание происходит в любом случае, даже если длина потока уже удовлетворяет данному условию.

Шаг 2: добавление длины.

Затем в конец дописывается двоичное представление длины первоначального потока-всего 64 бита. Если же длина больше чем2^64, то берутся младшие 64 бита. Это добавление представляет собой два «слова», младшее идет первым, за ним старшее.

После этого суммарная длина потока станет кратной 16 32- битным словам.

Дальнейшее вычисления основываются на представлении этого расширенного потока как массива слов длины N: A[0, ... N-1].

Шаг 3: инициализация MD буфера.

При вычислениях будет использоваться буфер из 4 слов - A, B, C, D, в котором хранятся результаты промежуточных вычислений. Начальные значения, находящиеся в этом буфере, следующие:

A = 0x67452301

B = 0xEFCDAB89

C = 0x98BADCFE

D = 0x10325476

Шаг 4: обработка потока блоками по 16 слов.

Для дальнейших вычислений нам необходимо ввести следующие функции, зависящие от 3 параметров-»слов». Результатом работы этих функций будет также «слово».

F(x, y, z) = (x & y) | (~x & z) G(x, y, z) = (x & z) | (y & ~z) H(x, y, z) = x ^ y ^ z I(x, y, z) = y ^ (x | ~z)

(4.1)


Здесь «&» обозначает побитовая операция «AND», «|» побитовая операция «XOR», «^» операция побитового «XOR», «~» операция побитового «NOT»

Таблица 4.1 - Таблица истинности функций F(x, y, z), G(x, y, z), H(x, y, z), I(x, y, z)

x

y

z

F

G

H

I

0

0

0

0

0

0

1

0

0

1

1

0

1

0

0

1

0

0

1

1

0

0

1

1

1

0

0

1

1

0

0

0

0

1

1

1

0

1

0

1

0

1

1

1

0

1

1

0

0

1

1

1

1

1

1

0


На этом этапе нам также понадобится таблица констант T[1...64], заполненная с помощью следующей формулы:

T[i] = [4294967296 * abs(sin(i))] ,

(4.2)


где [] есть операция взятия целой части.

Определим также операцию циклического сдвига слова X на Y:

X<<<Y

(4.3)


Дальнейшее описание алгоритма, его основная часть, будет написано на псевдокоде.

// разбиваем поток на блоки по 16 слов:

for i = 0 to N/16 - 1 do

{

// i-й блок заносится в Xj = 0 to 15 do[j] = M[i * 16 + j]

// Сохраняем значения A, B, C, D

AA = A= B= C= D

// раунд 1

// [abcd k s i] обозначает операцию

// a = b + ((a + F(b, c, d) + X[k] + T[i]) <<< s)

// выполняется 16 операций:

[ABCD 0 7 1] [DABC 1 12 2] [CDAB 2 17 3] [BCDA 3 22 4]

[ABCD 4 7 5] [DABC 5 12 6] [CDAB 6 17 7] [BCDA 7 22 8]

[ABCD 8 7 9] [DABC 9 12 10] [CDAB 10 17 11] [BCDA 11 22 12]

[ABCD 12 7 13] [DABC 13 12 14] [CDAB 14 17 15] [BCDA 15 22 16]

// раунд 2

// [abcd k s i] обозначает операцию

// a = b + ((a + G( b, c, d) + X[k] + T[i]) <<< s)

// выполняется 16 операций:

[ABCD 1 5 17] [DABC 6 9 18] [CDAB 11 14 19] [BCDA 0 20 20]

[ABCD 5 5 21] [DABC 10 9 22] [CDAB 15 14 23] [BCDA 4 20 24]

[ABCD 9 5 25] [DABC 14 9 26] [CDAB 3 14 27] [BCDA 8 20 28]

[ABCD 13 5 29] [DABC 2 9 30] [CDAB 7 14 31] [BCDA 12 20 32]

// раунд 3

// [abcd k s i] обозначает операцию

// a = b + ((a + H(b, c, d) + X[k] + T[i]) <<< s)

// выполняется 16 операций:

[ABCD 5 4 33] [DABC 8 11 34] [CDAB 11 16 35] [BCDA 14 23 36]

[ABCD 1 4 37] [DABC 4 11 38] [CDAB 7 16 39] [BCDA 10 23 40]

[ABCD 13 4 41] [DABC 0 11 42] [CDAB 3 16 43] [BCDA 6 23 44]

[ABCD 9 4 45] [DABC 12 11 46] [CDAB 15 16 47] [BCDA 2 23 48]

// раунд 4

// [abcd k s i] обозначает операцию

// a = b + ((a + I(b, c, d) + X[k] + T[i]) <<< s)

// выполняется 16 операций:

[ABCD 0 6 49] [DABC 7 10 50] [CDAB 14 15 51] [BCDA 5 21 52]

[ABCD 12 6 53] [DABC 3 10 54] [CDAB 10 15 55] [BCDA 1 21 56]

[ABCD 8 6 57] [DABC 15 10 58] [CDAB 6 15 59] [BCDA 13 21 60]

[ABCD 4 6 61] [DABC 11 10 62] [CDAB 2 15 63] [BCDA 9 21 64]+= AA += BB

C += CC

D += DD

}

Шаг 5: вывод MD5.

Окончательный результат, находящийся в буфере A-D, и есть почти готовый хэш. Выводя «слова» из этого буфера в обратном порядке, мы получим готовый хэш. Т.е. md5hash=DCBA.

Теперь о свойствах алгоритма в целом.

Для начала краткое описание отличий от MD4.

Различия между MD4 и MD5

Следующий список представляет собой различия между MD4 и MD5:

. MD5 имеет на один раунд больше - 4 против 3 у MD4.

. Что бы уменьшить влияние входного текста была введена уникальная константа для каждого раунда-T[i].

. Во втором раунде заменили функцию g с (XY v XZ v YZ) на (XZ v Y not(Z)), для того, чтобы сделать g менее симметричной.

. На каждом шаге используется значение, полученное на предыдущем шаге. Это дает более быстрое изменение результата при изменении входных данных.

. Для этих же целей количество сдвигов различается от раунда к раунду, и выбрано так, что бы еще более увеличить этот эффект.

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

Скорость работы и производительность

Для того, что бы показать разницу в скорости MD4 и MD5, был проведен следующий эксперимент. Результаты занесены в таблицу.

Суть эксперимента заключается в том, что бы замерить время, затраченное на построение 10000 хэшей от сообщения размером 10000 байт.

Вычисления проводились на Intel Pentium III 750 МГц. В качестве двух реализаций были выбраны реализация из пакета

OpenSSL и основанная на RFC1321.

Таблица 4.2 - Сравнение алгоритмов MD4 и MD5


MD4

MD5

RFC

2.574 сек

37940 кБ/сек

2.614 сек

37359 кБ/сек

OpenSSL

0.891 сек

109603 кБ/сек

1.152 сек

84771 кБ/сек


Результаты исследования показывают, что:

• В реализации RFC MD5 медленнее MD4 на 1.55%..4.92%

• В реализации MD5 медленнее MD4 на 29.29%..39.82%

Но, тем не менее, в настоящее время MD5 используется гораздо шире, чем MD4. Это связано в первую очередь с повышенной надежностью первого.

Надежность

В 1996 году появилась статья, которая позволила некоторым авторам считать данный алгоритм взломанным. Основная идея такая: если бы была возможность задать произвольные начальные значения буфера MD5 (0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476), то тогда можно было бы подобрать два сообщения, которые не различаются, кроме, быть может, в нескольких разрядах, таких, что для них может быть построен один и тот же дайджест. Математически это выражается так: MD5(IV, M1) = MD5(IV, M2),

где IV = Initial Values = начальные значения, M1 и M2 два разных сообщения.

Автор данного сообщения, Hans Dobbertin, нашел, что если в качестве начальных значений буфера использовать A = 0x12AC2375, B = 0x3B341042, C = 0x5F62B97C, D = 0x4BA763ED, и задать содержимое блока данных для преобразования следующим образом:

X0 = 0xAA1DDABE, X1 = 0xD97ABFF5, X2 = 0xBBF0E1C1,

X3 = 0x32774244, X4 = 0x1006363E, X5 = 0x7218209D,= 0xE01C136D, X7 = 0x9DA64D0E, X8 = 0x98A1FB19,= 0x1FAE44B0, X10 = 0x236BB992, X11 = 0x6B7A779B,= 0x1326ED65, X13 = 0xD93E0972, X14 = 0xD458C868,15 = 0x6B72746A.

Тогда второе сообщение строится из первого по такой формуле:

(4.4)


Тогда

MD5(IV, X) = MD5(IV, X') = BF90E670752AF92B9CE4E3E1B12CF8DE

(4.5)


Стойкость к нахождению коллизий

Нахождению коллизий препятствует быстрый обвал выходной функции. К примеру, рассмотрим два хэша от двух сообщений, различающихся в одном бите:

MD5(abc) = 900150983CD24FB0D6963F7D28E17F72

(4.6)

MD5(acc) = 1673448EE7064C989D02579C534F6B66

(4.7)


Отсюда хорошо видно, что выходные значения отличаются значительно. Полный перебор же - занятие бессмысленное, так как при имеющихся скоростях порядка 100 Мб/сек, полный перебор занял бы около 1062 лет, и при этом потребовал бы 2230 Гб места.

Так что MD5 по праву считается надежным алгоритмом.

Описание разработанных компонентов программы. Описание базы данных


При реализации данного проекта было решено использовать базу данных MySQL, поскольку:

предполагается дельнейшее развитие проекта

наиболее распространенная и простая в использовании БД

возможно использование уже существующего сервера

используется язык SQL(достаточно прост и удобен)

Описание структуры базы данных.

В проекте используется только одна база с одной таблицей, в которой хранятся имя пользователя и хеш его пароля.

Таблица 4.3 - Представление таблицы данных users:

login

pass


Создание базы данных DatabaseKAChat, таблицы users:

str = "CREATE DATABASE DatabaseKAChat ON PRIMARY " +

"(NAME = DatabaseKAChat_Data, " +

"FILENAME = 'Database.mdf', " +

"SIZE = 3MB, MAXSIZE = 10MB, FILEGROWTH = 10%) " +

"LOG ON (NAME = DatabaseKAChat_Log, " +

"FILENAME = 'DatabaseLog.ldf', " +

"SIZE = 1MB, " +

"MAXSIZE = 5MB, " +

"FILEGROWTH = 10%)";.Open();.ExecuteNonQuery();= "CREATE TABLE users" +

"(login NVARCHAR(25), pass NVARCHAR(100))";= new SqlConnection(connectionString);= new SqlCommand(str1, myConn);.Open();

myCommand.ExecuteNonQuery();

Поскольку в данном проекте проводится всего несколько операций работы с БД, не целесообразно выделять отдельный класс для этого, код вставляется последовательно в проект.

 

Описание протокола передачи данных


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

Клиента и сервер обмениваются данными в виде сообщений, каждое из которых представляет собой текстовую строку, оканчивающуюся символом перевода строки.

Таблица 4.4 - Команды клиента

Команда

Описание

guest

Подключиться к серверу как гость guest <guestXXXX>\n

autorization

Авторизоваться на сервере autorization <login> <pass>\n

register

Зарегистрировать на сервере register <login> <pass>\n

sendall

Отослать всем sendall <text>\n

send

Отправить в приватную комнату send <target> <text>\n

filerequest

Передача файла filerequest <target> <filename> <filesize>\n

accept

Подтвердить прием файла accept <transferuser>\n

deny

Отказать в передаче файла deny <transferuser>\n

disconnect

Отключиться от сервера


Таблица 4.5 - Команды сервера:

list

Отправить список собеседников list <user1> <user2> … <usern>\n

broadcast

Вывод информации/сообщения в общую комнату broadcast <sender> <text>\n

disconnect

Отключение сервера

message

Приватное сообщение собеседнику <sender> message <text>\n

backmessage

Приватное сообщение отправителю <sender> backmessage <text>\n

filerequest

Ответ на запрос передачи файла

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

Пример работы по протоколу(К - клиент, С - сервер):

К: guest guest4356 - запрос на подключение

C: list <user1> <user2> … < guest4356> - подключение прошло удачно, сервер рассылает всем новый список собеседников

С: broadcast « --- guest4356 вошел в чат --- «

К: sendall «Привет всем!!!»

С: usern «broadcast» «Привет всем»

К: ««                    - клиент отключился

С: broadcast « --- guest4356 покинул чат --- «

С: list <user1> <user2> … <userm> - сервер рассылает всем новый список собеседников

С: ««                    - сервер остановлен

Программа-сервер


Программа выполняет следующие функции:

Авторизация/регистрация пользователей

Передача сообщений от одного пользователя в общую комнату

Перелача сообщений от пользователя в приватную комнату

Передача запроса на передачу файла от одного пользователя к другому

Контролирует подключение/отключение клиентов

Логирование работы сервера и общения, подключения/отключения пользователей

При реализации интерфейса программы были использован класс WindowsForms. Так же для упрощения разработки были использованы уже готовые реализованные классы.

Описание разработанных классов

Класс «Client»

class Client

{

//события приема данных от клиента

public event DataReceivedEventHandler DataReceived;

//событие при отключении клиентаevent DisconnectedEventHandler Disconnected;Thread foneListener;         //слущающий потокSocket socket;            //сокет для подключенияstring name;          //имя пользователяbool disconnected;       //флаг подключения клиентаClient(Socket socket); //конструктор клиента void connectUser();         //подключение пользователя

//функция, которая слушает сокет

private void ListeningFunction();

//обработка команд от подключенных клиентов

private void Parse(string str); string Receive();       //Прием сообщения

//Авторизация подключившегося клиента

private string Auth(string str);

//отправить сообщение клиенту

public void Send(string str);

//отключение клиентаvoid Disconnect(string str);

}

В классе «Client» реализуется подключение клиента к серверу, при подключении нового клиента, на сервере создается новый обьект Client. У нового объекта есть свой сокет, через который он общается с подключившимся клиентом, и есть слушающая функция, чтобы обрабатывать данные, которые приходят от подключенного клиента.

Класс «Server».class Server

{Thread bgListener; //поток, слушающий клиентовSocket listenerSocket; //сокет для клиентовList<Client> clients; //список подключенных клиентовint serverPort; //порт для подключения bool running; //флаг запущен сервер или нет

public Server(int port);    //конструктор сервераvoid Start();   //запуск сервераvoid Stop();                   //останов сервера

//запуск потока, слушающего клиентов

private void StartToListen();

//добавить нового клиентаvoid CreateNewClient(Socket socket);

// проверка корректности ника при подключении

private bool NickIsIncorrect(string str);

//обработка команд, приходящих от сервера

// executing received command

// args[0] - sender name

// args[1] - command

// args[2] - target name

// args[3] - parameter. Usually, message textvoid CommandRun(string[] args); void SendList(); //рассылка списка собеседников

//оброаботка отключившегося клиентаvoid ClientDisconnected(string disconnectedUser);

//рассылка информационного сообщения/сообщения в общую комнату

private void BroadcastMessage(string sender, string str);

//отослать сообщение в приватную комнатуvoid SendTo(string sender, string target, string str);

//отослать сообщение в приватную комнату отправителю

private void SendBack(string sender, string target, string str);

//обработка передачи файлаvoid SendRequestResult(string sender, string target, string str);

//функция логирования работы сервераvoid AddToLog(string str);

}

Класс «Server» основной в программе, в нем хранится коллекция объектов подключенных клиентов(Client), в данном классе реализуется обмен данными между подключенными клиентами, обработка подключения/отключения клиентов.

Класс «MainForm»partial class MainForm : Form

{Server brain;       //указатель на обьект Server MainForm(Server serv);    //конструктор главной формы

//запуск сервера

//останов сервераvoid stopButton_Click(object sender, EventArgs e);

//завершение работы сервераvoid MainForm_FormClosing(object sender, FormClosingEventArgs e);

//спрятать/развернуть окно сервера с трей(панель радом с //часами)

private void MainForm_Resize(object sender, EventArgs e);

//обработка разворачивания окна из треяvoid notifyIcon1_MouseClick(object sender, MouseEventArgs e)

//закрыть главное окно, корректно завершить работу сервера

private void exitButton_Click(object sender, EventArgs e);

//показать лог работы сервераvoid logButton_Click(object sender, EventArgs e);

}

Класс «MainForm» реализует взаимодействие пользователя с интерфейсом программы.

После того как пользователь запустил программу-сервер и сам сервер, создается объект класса Server, у которого есть слушающая функция, которая слушает сокет и ждет новых клиентов, когда подключается новый клиент, создается объект класса Client, который помещается в коллекцию. Данную коллекцию подключенных клиентов и обрабатывает сервер. Объекты Client из коллекции осуществляют взаимодействие через сокет непосредственно с с подключенными к серверу клиентами, они принимают команды, передают их объекту Server, который в свою очередь обрабатывает полученную команду и производит ответные действия. Объект класса MainForm созданный при запуске программы-сервера, реализуется взаимодействие интерфейса программы с объектом класса Server/

Программа-клиент


Класс «Client»class Client

{Thread bgListener;        //слушающий потокTcpClient socket;                 //сокет клиентаbool connected;          //флаг подключенияstring name;                //имя пользователя

//события, срабатывающее при поступлении данныхevent DataReceivedEventHandler DataReceived;Client();                       //конструктор клиента

//подключение и аторизация на сервереbool Connect(string ServerIP, string login, string pass);

//регистрация на сервереbool Register(string ServerIP, string login, string pass);

//функция, принимающая данные от сервера

private void ListeningFunction();

public void Send(string str);     //отправка сообщений серверу

public void Disconnect();                  //отключение от сервера

public bool Connected();                   //проверка статуса подключения

}

Класс «Client» реализует взаимодействие и обмен данными с сервером.

Класс «Controller»class Controller

{Client chat;                            //указатель на обьект Client MainForm mainForm;         //указатель на главную форму

private FileTrasferer transferer; //обьект для передачи файлаstring filename;                 //имя передаваемого файлаstring transferUser;   //кому передавать файлlong fileSize;                  //размер файлаStream stream;           //поток чтени/записи файлаfileTransfering transferStatus;       //статус передачиstring serverIP;               //IP сервера для подключения

//конструктор управляющего обьектаController(MainForm form, Client client);

//подключение к серверу, вызов метода Connect обьекта Client

public bool Connect(string ServerIP, string login, string pass);

//регистрация на сервере, вызов метода Register обьекта Client

public bool Register(string ServerIP, string login, string pass);

//выполнение необходимой команды

public void ExecuteCommand(string str);

//обработка полученной команды

private void Parse(string str);

//отмена передачи файлаvoid CancelTransferRequest();

//информирование пользователя о ходе передачиvoid ShowTransferProgress(int n, long totalSize);

//завершение передачи файлаvoid FinishTransferFile(bool success);

//отмена передачи файлаvoid AbortTransfer();

//отослать сообщение в общую комнату

public void SendAll(string str);

//отослать сообщение в приватную комнатуvoid SendPrivate(string target, string str);

//передача файлаvoid SendFileRequest(string target);

//вернуть статус подключения

public bool ChatConnected();

//отключиться от сервера

public void ChatDisconnect();

//вернуть имя пользователя

public string GetNameClient();

//вернуть IP сервера, к которому подключен клиент, необходимо //для информирования пользователя

public string GetServerIP();

}

Класс «Controller» является главным в программе, он отслеживает состояние клиента, обмен клиентом данными с сервером и реализует взаимодействие с интерфейсом программы. Так же с помощью данного класса производится вывод информации в общую и приватные комнаты.

Класс «MainForm»partial class MainForm : Form

{Controller brain;           //управляющий обьектList<PrivateRoom> tabs; //коллекция приватных комнат FileTransferForm transferForm;      //форма для //информирования пользователя о ходе передачи файла

private Icon icon1;         //иконки треяIcon icon2; MainForm();                 //конструктор главной формы

//подключение к серверу, создание обектов Controller и Client

private void подключениеToolStripMenuItem_Click(object sender, EventArgs e);string getMd5Hash(string input); //вычисление хеша пароля

//установить указатель на управляющийобьектvoid setController(Controller controller);

//вызов метода Connect обьекта Controllervoid Login(string serverIP, string login, string pass);

//вызов метода Register обьекта Controllervoid Register(string serverIP,string login, string pass);

//добавление сообщения в главную комнатуvoid UpdateMainWindow(string str, bool alarm);

//обновление списка собеседниковvoid UpdateUserlist(string userlist);

//обработка начжатия клавиши отправки сообщенияvoid sendButton_Click(object sender, EventArgs e);

//обработка отключения от сервераvoid OnDisconnect(string reason);

//корректное завершение программы при закрытии гдавной //формы

private void MainForm_FormClosing(object sender, FormClosingEventArgs e);

//отключение от сервераvoid отключениеToolStripMenuItem_Click(object sender, EventArgs e);

//отправка сообщения по нажатию клавиши «Enter»

private void sendTextBox_KeyDown(object sender, KeyEventArgs e);

//выбор собеседника для создания приватной комнаты

private void listBox1_MouseDoubleClick(object sender, MouseEventArgs e);

//создание приватной комнаты и интерфейса общения в приватной комнате

public void CreateTab(string str);

//выход из приватной комнаты

private void CloseTab(string str);

//добавление сообщения в приватную комнату

public void UpdatePrivateRoom(string name, string sender, string param, bool backmessage);

//показать созданную приватную комнатуvoid mainTabControl_SelectedIndexChanged(object sender, EventArgs e);

//доступность элементов управления взависимости от состояния //подключения

public void ChangeStateButton(bool b);void AbortTransfer();  //отмена передачи файлаvoid SetOpportunitySending(bool opportunity);

//обработка свертывания в трейvoid MainForm_SizeChanged(object sender, EventArgs e);

//информирование пользователя о сообщении, когда главное //окно свернуто в трей

public void startAlarm();void stopAlarm();

//разворачивание из треяvoid notifyIcon1_MouseClick(object sender, MouseEventArgs e);void MainForm_Activated(object sender, EventArgs e);

//вызов О Программеvoid оПрограммеToolStripMenuItem_Click(object sender, EventArgs e);

//создание приватной комнатыvoid button1_Click(object sender, EventArgs e);

}

Класс «MainForm» реализует взаимодействие между пользователем и программой.

Когда пользователь подключается к серверу, если подключение прошло удачно, создается объект класса Controller, в котором создается объект класса Client. В данном объекте есть функция, которая слушает команды от сервера, которые передает на обработку объекту Controller. При запуске программы создается объект класса MainForm, который осуществляет взаимодействие между интерфейсом и управляющим объектом класса Controller/

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


Рекомендуемые системные требования:

Операционная система          Windows ME/2K/XP/Seven/Ubuntu

Видео                                              SVGA (800x600, 65536 цветов)

Процессор                             x86-совместимый 600 MHz

Оперативная память                       128 MB

Место на жестком диске                 не менее 10 MB

Устройства ввода                           Клавиатура, Мышь

Внимание! Для корректной работы программы необходимо, чтобы в вашей системе были установлено средства .NET Framework 3.5 или более поздняя версия. Если данный компонент не установлен у Вас в системе, то его можно найти на официальном сайте Microsoft (#"562441.files/image002.gif">

Рисунок 5.1 - Главное окно программы-сервера

Для того, чтобы клиенты могли подключиться к серверу, необходимо запустить его следующим образом, кликнуть на кнопку «Старт», сервер запустится. Чтобы отобразить лог файла необходимо кликнуть на кнопку «Лог», появиться окно с записями о работе сервера (Рисунок 5.2).

Рисунок 5.2 - Окно вывода лога работы сервера

Останов сервера производится кнопкой «Стоп».

Программа создана так, чтобы можно было запустить только один экземпляр программы-сервера. При попытке запустить второй экземпляр, будет выдано сообщение о невозможности данного действия (Рисунок 5.3).

Рисунок 5.3 - Ошибка при запуске второго экземпляра программы

Программа-клиент


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

Рисунок 5.4 - Главное окно программы-клиента

После запуска программы необходимо подключиться к серверу, для этого выбираем меню Файл, далее подключение, либо сочетание клавиш Ctrl+Shift+C, появиться окно (Рисунок 5.5).

Рисунок 5.5 - Форма подключения к серверу

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

Если у пользователя еще нет зарегистрированной учетной записи на сервере, то можно воспользоваться регистрацией, для этого в окне подключения нужно выбрать «Регистрация», появиться окно (Рисунок 5.6).

Рисунок 5.6 - Окно для регистрации на сервере

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

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

После успешного подключения к серверу можно увидеть окно (Рисунок 5.7).

Рисунок 5.7 - Окно программы после подключения к серверу

Теперь пользователь может начать общение в общей комнате.

У пользователя есть возможность общаться с другим собеседником напрямую, в приватной комнате, для этого необходимо выбрать собеседника в списке собеседников и нажать кнопку «Приватная комната», также это можно сделать двойным щелчком по имени собеседника, появится окно (Рисунок 5.8).

Рисунок 5.8 - Приватная комната

В приватной комнате общаются только два пользователя, никто не сможет увидеть их переписку, кроме них.

Также здесь можно отправлять друг другу файл и выходить из приватной комнату, для этого элементы управления расположены справа от окна переписки.

Во время передачи файла программа будет выводить информацию о ходе передачи (Рисунок 5.9).

Рисунок 5.9 - Процесс передачи файла

Для того чтобы отключиться от сервера необходимо нажать Файл и далее Отключение, либо Ctrl+Shift+D. При закрытии главного окна отключение происходит автоматически.

Пользователь имеет возможность ознакомиться со справкой по программе, для .того достаточно нажать Помощь, далее Справка, или просто F1. Окно справки изображено на рисунке 5.10.

Рисунок 5.10 - Справка.

Расчет экономических показателей программного продукта. Расчет себестоимости и цены программного продукта


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

Под себестоимостью понимаются затраты, необходимые для производства продукта. Для её расчета необходимо оценить затраты времени на разработку программного продукта. Поскольку процесс написания программ является творческим, вести нормативы для оценки затрат очень сложно, то применяется метод экспертных оценок, суть которого состоит в оценке затрат несколькими экспертами. В данном случае в качестве экспертов выступают разработчик программного продукта и руководитель проекта.

Процесс разработки программного продукта состоит из нескольких этапов:

1.       проектирование;

2.       написание программы;

.        тестирование и отладка.

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

Второй этап представляет собой реализацию разработанной программы на языке программирования.

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

На основе экспертных оценок затрат времени определяется средняя величина для каждого из вышеуказанных этапов по формуле (6.1):

,(6.1)



где  - средняя оценка;

 - оценка руководителя проекта;

 - оценка разработчика проекта.

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

.        наименее возможная величина затрат ();

.        наиболее вероятная величина затрат ();

.        наиболее возможная величина затрат ().

Результаты расчета средней оценки времени на разработку программного продукта приведены в таблице 6.1.

Таблица 6.1 - Оценка затрат времени на разработку программного продукта

Этапы разработки программного продукта

Величина затрат


Наименее возможная , дниНаиболее вероятная , дниНаиболее возможная , дни












Проектирование

10

12

11

14

16

15

20

24

22

Написание программы

6

10

8

10

12

11

12

14

13

Тестирование и отладка

10

12

11

14

16

15

20

22

21

Итого

26

34

30

38

44

41

52

60

56


На основании таких оценок рассчитываются математическое ожидание и отклонение, по каждому этапу разработки комплекса программных продуктов.

Формула (6.2) для расчета математического ожидания:

,(6.2)



где  - математическое ожидание для  - го этапа;

, ,  - средние значения затрат.

Стандартное отклонение для каждого этапа разработки программного продукта определяется по формуле (6.3):

,(6.3)



где  - стандартное отклонение для  - го этапа.

Общая оценка затрат на разработку программного продукта рассчитывается по формуле (6.4):

,(6.4)



где  - общая оценка затрат;

 - математическое ожидание затрат для  - го этапа;

 - количество этапов разработки программного продукта.

Стандартное отклонение в целом по программному продукту вычисляется по формуле (6.5):

,(6.5)



где  - стандартное отклонение общей оценки затрат;

 - стандартное отклонение оценки затрат для  - го этапа.

На основе расчетов математического ожидания и стандартного отклонения вычисляется коэффициент вариации. Данный коэффициент показывает, насколько согласованы эксперты. Ниже приведены формулы (6.6) для расчета коэффициента вариации для  - го этапа и формула (6.7) для вычисления общего коэффициента вариации:

,(6.6)



где  - коэффициент вариации для  - го этапа;

 - стандартное отклонение оценки затрат  - го этапа;

 - математическое ожидание затрат для  - го этапа.

,(6.7)



где - коэффициент вариации по всем этапам;

 - стандартное отклонение оценки затрат по всем этапам;

 - математическое ожидание затрат по всем этапам.

Результаты расчета , , , а также , , приведены в таблице (6.2).

Таблица 6.2 - Затраты времени на разработку программного продукта, ,

Этапы разработки программного продукта          Средняя величина затрат времени по этапам           Математич. ожидание , дниСтандарт. отклонение

, дниКоэфф. вариации

, дни



 


Наименее возможная , дниНаиболее вероятная , дниНаиболее возможная , дни






Проектирование

11

15

22

15,50

1,83

0,04

Написание программы

8

11

13

10,83

0,83

0,08

Тестирование и отладка

11

15

21

15,33

1,67

0,11

Итого

30

41

56

41,66

4,33

0,10


Так как коэффициент вариации по программному продукту равен 0,10 и не превосходит 0,33, то мнения экспертов согласованы.

Расчет себестоимости программного продукта по формуле (6.8):

,(6.8)



где С - себестоимость комплекса программных продуктов;

 - среднемесячная заработная плата программиста с учетом районного коэффициента;

 - количество рабочих дней в месяце;

 - трудозатраты на проектирование;

 - трудозатраты на написание программы;

 - трудозатраты на тестирование и отладку;

 - коэффициент, учитывающий страховые взносы (согласно 24 главе НК РФ он составляет 34% от заработной платы);

 - коэффициент, учитывающий накладные расходы;

 - стоимость одного часа машинного времени;

 - стоимость одного часа работы в интернете, согласно тарифному плану «Безлимитный - 512» компании «МТС»;

 - количество дней работы на компьютере;

 - количество дней работы в интернете.

Значения данных для подсчета себестоимости программного продукта представлены в таблице 6.3.

Таблица 6.3. Значения данных для подсчета себестоимости.

Показатель

Значение

, руб20000


, дни22


, дни15,50


, дни10,83


, дни15,33


, %34


, %8


, руб0,65


, дни44


, дни14



Рассчитаем стоимость одного часа машинного времени. Для этого рассчитаем затраты на эксплуатацию персонального компьютера за год по формуле (6.9):

,(6.9)



где  - себестоимость одного часа машинного времени;

 - затраты на электроэнергию за год работы;

 - затраты на амортизационные отчисления;

 - затраты на комплектующие материалы;

 - прочие затраты;

 - общее время работы компьютера за год.

Приведем формулы для расчета вышеперечисленных видов затрат. Общее время работы компьютера за год примем 1987 часов. Затраты на комплектующие материалы за год примем 2500 рублей. Затраты на электроэнергию зависят от тарифа на электроэнергию и потребляемой мощности персонального компьютера, а также от времени работы персонального компьютера. Формула (6.10) для расчета затрат на электроэнергию:

,(6.10)



где  - затраты на электроэнергию за год работы;

 - общее время работы компьютера за год;

 - тариф электроэнергии за 1кВт;

 - потребляемая мощность ПК по паспортным данным.

Примем потребляемую мощность персонального компьютера и тариф электроэнергии соответственно:

 = 0,065 кВт./час.

 = 1,76 руб./кВт.

По формуле (1.10) находим затраты на электроэнергию в год:

 руб.

Амортизационные отчисления в год рассчитываются по формуле (6.11):

,(6.11)



где  - затраты на амортизационные отчисления;

- стоимость персонального компьютера (18000 руб.);

 - процент отчисления на амортизацию.

Процент отчисления на амортизацию рассчитываются согласно методике, отраженной в статье 259.1 НК РФ. Согласно постановлению правительства РФ от 01 января 2002 под №1 «О классификации основных средств, включаемых в амортизационные группы», срок использования основных средств составляет от 2 до 3 лет. В рамках дипломного проекта установим срок полезного использования 2 года.

Определим процент отчисления на амортизацию:


Произведем расчет амортизационных средств по формуле (1.11):

руб./год.

Прочие расходы составляют 5% от суммы затрат. Они рассчитываются по формуле (1.12):

.(6.12)



По формуле (6.12) находим:

руб./год.

Зная все данные, подсчитаем стоимость одного часа машинного времени по формуле (6.9):

руб.

Рассчитаем себестоимость программного обеспечения по формуле (6.8):

руб

Цена программного продукта рассчитывается по формуле (6.13):

,(6.13)



где  - цена программного продукта;

 - себестоимость программного продукта;

 - рентабельность программного продукта.

Рентабельность программного продукта примем:

=20% = 0,2

По формуле (1.13) находим:

руб.

Цена программного продукта с учетом НДС рассчитывается по формуле (6.14):

,(6.14)



где  - цена программного продукта с НДС;

 - цена программного продукта;

 - составляет 18% от цены программного продукта согласно статье 164 из 21 главы НК РФ.

По формуле (1.14) вычисляется цена программного продукта с учетом НДС:

руб.

Итого, стоимость данного программного продукта на рынке будет составлять 80803,5 руб.

Сравнение по экономическим показателям


В данный момент на рынке ПО очень большое количество программ для обмена сообщениями между пользователями, развитие которых не стоит на месте. Можно перечислить некоторые: ICQ, IRC, Skype, Jabber и др.

Если сравнивать продукт, который разработан в данном дипломном проекте(далее KAChat), то можно выявить, что он в чем-то уступает, а в чем-то превосходит гигантов рынка.

Например, ICQ и Skype требует активного подключения к интернету, для того чтобы пользователь мог авторизоваться, KAChat может работать в локальной сети без использования Интернета, но так же сервер может находиться на внешнем ресурсе, что позволит клиентам общаться из разных локальных сетей. При использовании ICQ клиенту не приходится задумываться о размещении серверной части, т.к. она находится на внешних ресурсах, это не всегда удобно, при сбое на данных ресурсах клиент остается без связи, у KAChat сервер может быть размещен где угодно, и клиент сам решает, как его обслуживать, что обеспечивает его связью.

У ICQ, Skype, IRC очень много разнообразных клиентов, в том числе и кроссплатформенных, что неоспоримо является плюсом данных проектов, у KAChat тоже есть такое достижение, причем для использования этого продукта на *nix системах, достаточно установить малое сторонне(бесплатное) ПО и у Вас будет клиент идентичный клиенту KAChat для Windows. Все перечисленные проекты не стоят на месте, развиваются, и это требует немалых средств при развития и в жесткой конкуренции, ко многим добавляют совсем ненужные функции и возможности, KAChat содержит только необходимые функции и обладает малыми, но емкими возможностями, что позволяет существенно снизить затраты на разработку, сопровождение и обслуживание. После сравнения KAChat с гигантами рынка, можно сделать вывод, что данный проект будет выгоден как для малых предприятий так и для больших, причем расходы будут минимальными, что существенно повышает вероятность выбора этого продукта для использования.

Безопасность жизнедеятельности


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

Характеристика вредных факторов при работе с ПК


На организм человека - пользователя ПК - может комплексно воздействовать ряд опасных и вредных факторов; наиболее значительными являются:

а)  Возможность появления напряжения на металлических частях ПК, которое может привести к электротравме.

б)      Несоответствие норм параметров микроклимата нормативным требованиям, повышенная температура из-за постоянного нагрева деталей ПК, пониженная влажность.

в)      Нарушение норм по аэроиронному составу воздуха, особенно в помещениях с разной системой приточно-вытяжной вентиляции и с кондиционерами, при этом концентрация полезных для организма отрицательно заряженных легких ионов кислорода воздуха (аэроионов) может быть в 15-20 раз ниже нормы, а концентрация вредных положительных ионов значительно превышать норму;

         электромагнитное излучение в низкочастотном, высокочастотном и сверхвысокочастотном диапазоне;

         рентгеновское излечение от ЭЛТ;

         ультрафиолетовое излучение;

         инфракрасное излучение;

         электростатическое поле.

д)  Пониженный или повышенный уровень освещенности в помещениях, не соответствующие санитарным нормам визуальные параметры дисплея.

е)       Повышенный уровень шума от работающих частей ПК. Работающий компьютер создает акустические шумы, включая ультразвук.

ж)      Повышенный уровень содержания в воздухе патогенной микрофлоры и химических веществ (окись углерода, озона, аммиак, окислы серы, азота, соли тяжелых металлов и органических соединений).

з)       Психофизиологическая напряженность труда:

-    монотонность работы;

-        повышенное умственное напряжение из-за большого объема перерабатываемой и усваиваемой информации;

         повышенное нервно-эмоциональное напряжение;

         длительные статические нагрузки.

Организация рабочего места с ПК. Требования к помещениям с ПК

Помещения для эксплуатации ПК должны иметь естественное и искусственное освещение. Эксплуатация ПК в помещениях без естественного освещения допускается только при соответствующем обосновании и наличии положительного санитарно-эпидемиологического заключения, выданного в установленном порядке.

Естественное и искусственное освещение должно соответствовать требованиям действующей нормативной документации.

Окна в помещениях, где эксплуатируется вычислительная техника, преимущественно должны быть ориентированы на север и северо-восток, и обеспечивать коэффициент естественной освещенности (КЕО) не ниже 1,2 в зонах с устойчивым снежным покровом и не ниже 1,5 на остальной территории (указанные значения КЕО нормируются для зданий, расположенных в III световом климатическом поясе).

Оконные проемы должны быть оборудованы регулируемыми устройствами типа: жалюзи, занавесей, внешних козырьков и др.

Площадь на одно рабочее место пользователей ПЭВМ с ВДТ на базе электронно-лучевой трубки (ЭЛТ) должна составлять не менее 6 м, и с ВДТ на базе плоских дискретных экранов (жидкокристаллические, плазменные) - 4,5 м.

При использовании ПВЭМ с ВДТ на базе ЭЛТ (без вспомогательных устройств - принтер, сканер и др.), отвечающих требованиям международных стандартов безопасности компьютеров, с продолжительностью работы менее 4-х часов в день допускается минимальная площадь 4,5 м2 на одно рабочее место пользователя (взрослого и учащегося высшего профессионального образования).

Не допускается размещение мест пользователей ПЭВМ во всех образовательных и культурно-развлекательных учреждениях для детей и подростков в цокольных и подвальных помещениях.

Для внутренней отделки интерьера помещений, где расположены ПЭВМ, должны использоваться диффузно отражающие материалы с коэффициентом отражения для потолка - 0,7 - 0,8; для стен - 0,5 - 0,6; для пола - 0,3 - 0,5.

Полимерные материалы используемые для внутренней отделки интерьера помещений с ПЭВМ должны иметь наличие положительного санитарно-эпидемиологического заключения.

Помещения, где размещаются рабочие места с ПЭВМ, должны быть оборудованы защитным заземлением (занулением) в соответствии с техническими требованиями по эксплуатации.

Не следует размещать рабочие места с ПЭВМ вблизи силовых кабелей и вводов, высоковольтных трансформаторов, технологического оборудования, создающего помехи в работе ПЭВМ.

 

Требования к размещению и оборудованию рабочего места с ПК


При размещении рабочих мест с ПЭВМ расстояние между рабочими столами с видеомониторами (в направлении тыла поверхности одного видеомонитора и экрана другого видеомонитора) должно быть не менее 2,0 м, а расстояние между боковыми поверхностями видеомониторов - не менее 1,2 м.

В помещениях с источниками вредных производственных факторов рабочие места должны размещаться в изолированных кабинах с организованным воздухообменом. При выполнении творческой работы, требующей значительного умственного напряжения или высокой концентрации внимания, рабочие места рекомендуется изолировать друг от друга перегородками высотой 1,5 - 2,0 м.

Экран видеомонитора должен находиться от глаз пользователя на расстоянии 600 - 700 мм, но не ближе 500 мм с учетом размеров алфавитно-цифровых знаков и символов.

Конструкция рабочего стола должна обеспечивать оптимальное размещение на рабочей поверхности используемого оборудования с учетом его количества и конструктивных особенностей, характера выполняемой работы. При этом допускается использование рабочих столов различных конструкций, отвечающих современным требованиям эргономики. Поверхность рабочего стола должна иметь коэффициент отражения 0,5 - 0,7.

Высота рабочей поверхности стола для взрослых пользователей должна регулироваться в пределах 680 - 800 мм; при отсутствии такой возможности высота рабочей поверхности стола должна составлять 725 мм.

Модульными размерами рабочей поверхности стола для ПЭВМ, на основании которых должны рассчитываться конструктивные размеры, следует считать: ширину 800, 1000, 1200 и 1400 мм, глубину 800 и 1000 мм при нерегулируемой его высоте, равной 725 мм.

Рабочий стол должен иметь пространство для ног высотой не менее 600 мм, шириной - не менее 500 мм, глубиной на уровне колен - не менее 450 мм и на уровне вытянутых ног - не менее 650 мм.

Конструкция рабочего стула (кресла) должна обеспечивать поддержание рациональной рабочей позы при работе на ПЭВМ, позволять изменять позу с целью снижения статического напряжения мышц шейно-плечевой области и спины для предупреждения развития утомления. Тип рабочего стула (кресла) следует выбирать с учетом роста пользователя, характера и продолжительности работы с ПЭВМ.

Рабочий стул (кресло) должен быть подъемно-поворотным, регулируемым по высоте и углам наклона сиденья и спинки, а также расстоянию спинки от переднего края сиденья, при этом регулировка каждого параметра должна быть независимой, легко осуществляемой и иметь надежную фиксацию.

Конструкция рабочего стула должна обеспечивать:

-      ширину и глубину поверхности сиденья не менее 400 мм;

-        поверхность сиденья с закругленным передним краем;

         регулировку высоты поверхности сиденья в пределах 400 - 550 мм и углам наклона вперед до 15 градусов и назад до 5 градусов;

         высоту опорной поверхности спинки 300 +/- 20 мм, ширину - не менее 380 мм и радиус кривизны горизонтальной плоскости - 400 мм;

         угол наклона спинки в вертикальной плоскости в пределах +/- 30 градусов;

         регулировку расстояния спинки от переднего края сиденья в пределах 260 - 400 мм;

         стационарные или съемные подлокотники длиной не менее 250 мм и шириной - 50 - 70 мм;

         регулировку подлокотников по высоте над сиденьем в пределах 230 +/- 30 мм и внутреннего расстояния между подлокотниками в пределах 350 - 500 мм.

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

Рабочее место пользователя ПЭВМ следует оборудовать подставкой для ног, имеющей ширину не менее 300 мм, глубину не менее 400 мм, регулировку по высоте в пределах до 150 мм и по углу наклона опорной поверхности подставки до 20 град. Поверхность подставки должна быть рифленой и иметь по переднему краю бортик высотой 10 мм.

Клавиатуру следует располагать на поверхности стола на расстоянии 100 - 300 мм от края, обращенного к пользователю, или на специальной, регулируемой по высоте рабочей поверхности, отделенной от основной столешницы.

Требования к санитарно-гигиеническим параметрам рабочего места с ПК

В зависимости от категории трудовой деятельности и уровня нагрузки за рабочую смену при работе с ПЭВМ устанавливается суммарное время регламентированных перерывов, нормативные данные приведены в таблице 7.1.

Таблица 7.1 - Суммарное время регламентированных перерывов в зависимости от продолжительности работы, вида и категории трудовой деятельности с ПЭВМ

Категория работы с ПЭВМ

Уровень нагрузки за рабочую смену при видах работ с ПЭВМ

Суммарное время регламентированных перерывов, мин.


группа А, количество знаков

группа Б, количество знаков

группа В, ч

при 8-часовой смене

при 12-часо вой смене

I

до 20 000

до 15 000

до 2

50

80

II

до 40 000

до 30 000

до 4

70

110

III

до 60 000

до 40 000

до 6

90

140


В помещениях, где работа на ВДТ и ПЭВМ является основной, должны обеспечиваться оптимальные параметры микроклимата, приведенные в таблице 7.2.

Таблица 7.2 - Оптимальные нормы микроклимата для помещений с ВДТ и ПЭВМ

Период года

Категория работ

Температура воздуха С º, не более

Относительная влажность воздуха, %

Скорость движения воздуха, м/с

Холодный

Легкая - 1а

22-24

40-60

0,1


Легкая - 1б

21-23

40-60

0,1

Теплый

Легкая - 1а

23-25

40-60

0,1


Легкая - 1б

22-24

40-60

0,2

Примечания: к категории 1а относятся работы, производимые сидя и не требующие физического напряжения, при которых расход энергии составляет до 120ккал/ч; к категории 1б относятся работы, производимые сидя, стоя или связанные с ходьбой и сопровождающиеся некоторым физическим напряжением, при которых расход энергии составляет от 120 до 150 ккал/ч.

Уровни электромагнитных излучений, считающихся безопасными для здоровья, приведены в таблице 7.3.

Таблица 7.3 - Временные допустимые уровни ЭМП, создаваемых ПЭВМ на рабочих местах

Наименование параметров

ВДУ

Напряженность электрического поля

в диапазоне частот 5 Гц - 2 кГц

25 В/м


в диапазоне частот 2 кГц - 400 кГц

2,5 В/м

Плотность магнитного потока

в диапазоне частот 5 Гц - 2 кГц

250 нТл


в диапазоне частот 2 кГц - 400 кГц

25 нТл

Напряженность электростатического поля

15 кВ/м


Конструкция ПЭВМ должна обеспечивать мощность экспозиционной дозы рентгеновского излучения в любой точке на расстоянии 0,05 м. от экрана и корпуса при любых положениях регулировочных устройств не должна превышать 0,1 мбэр/час (100 мкР/час). Визуальные параметры ВДТ, контролируемые на рабочих местах, приведены в таблице 7.4.

Таблица 7.4 - Визуальные параметры ВДТ

Параметры

Допустимые значения

Яркость белого поля

Не менее 35 кд/кв. м

Неравномерность яркости рабочего поля

Не более +/- 20%

Контрастность (для монохромного режима)

Не менее 3:1

Временная нестабильность изображения (мелькания)

Не должна фиксироваться

Пространственная нестабильность изображения (дрожание)

Не более 2 x 1E(-4L), где L - проектное расстояние наблюдения, мм

В результате работы ПЭВМ генерируется весьма широкий спектр звуков (включая ультразвук), причем каждый компьютер отличается в этом смысле своей индивидуальностью. Корпус компьютера при этом является резонатором и привносит в общую картину шума низкочастотные составляющие. Нормативные параметры звука приведены в таблице 7.5.

Таблица 7.5 - Допустимые значения уровней звукового давления в октавных полосах частот и уровня звука, создаваемого ПЭВМ

Уровни звукового давления в октавных полосах со среднегеометрическими частотами

Уровни звука в дБА

31,5 Гц

63 Гц

125 Гц

250 Гц

500 Гц

1000 Гц

2000 Гц

4000 Гц

8000 Гц


86 дБ

71 дБ

61 дБ

54 дБ

49 дБ

45 дБ

42 дБ

40 дБ

38 дБ

50


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

Искусственное освещение в помещениях с ВДТ и ПЭВМ должно осуществляться системой общего равномерного освещения. В производственных и административно-общественных помещениях, в случае преимущественной работы с документами, допускается применение системы комбинированного освещения.

Освещенность на поверхности стола в зоне размещения рабочего документа должна быть 300 - 500 лк. Освещение не должно создавать бликов на поверхности экрана. Освещенность поверхности экрана не должна быть более 300 лк.

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

Также следует ограничивать отраженную блесткость на рабочих поверхностях (экран, стол, клавиатура и др.) за счет правильного выбора типов светильников и расположения рабочих мест по отношению к источникам естественного и искусственного освещения, при этом яркость бликов на экране ПЭВМ не должна превышать 40 кд/м и яркость потолка не должна превышать 200 кд/м.

Показатель ослепленности для источников общего искусственного освещения в производственных помещениях должен быть не более 20. Показатель дискомфорта в административно-общественных помещениях - не более 40, в дошкольных и учебных помещениях - не более 15.

Яркость светильников общего освещения в зоне углов излучения от 50 до 90 градусов с вертикалью в продольной и поперечной плоскостях должна составлять не более 200 кд/м, защитный угол светильников должен быть не менее 40 градусов. Светильники местного освещения должны иметь не просвечивающий отражатель с защитным углом не менее 40 градусов.

Следует ограничивать неравномерность распределения яркости в поле зрения пользователя ПЭВМ, при этом соотношение яркости между рабочими поверхностями не должно превышать 3:1 - 5:1, а между рабочими поверхностями и поверхностями стен и оборудования - 10:1.

В качестве источников света при искусственном освещении должны применяться преимущественно люминесцентные лампы типа ЛБ. При устройстве отраженного освещения в производственных и административно-общественных помещениях допускается, применение метало галогенных ламп мощностью до 250Вт. Допускается применение ламп накаливания в светильниках местного освещения.

Коэффициент запаса (Кз) для осветительных установок общего освещения должен приниматься равным 1,4. Коэффициент пульсации не должен превышать 5%.

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

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

Причины и профилактика статического и зрительного утомления


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

Профилактика зрительного утомления


Для профилактики зрительного утомления во время работы предлагаем Вам использовать следующие рекомендации. Перед началом работы установите регуляторы яркости и контрастности изображения в наименьшее положение, при котором Вы еще можете комфортно считывать информацию. В дальнейшем (по мере наступления зрительного утомления) увеличивайте яркость (контрастность) для достижения оптимальных условий зрительного восприятия. Не смотрите подолгу пристально на экран. Глаза должны постоянно перемещаться по экрану, а не фиксироваться на какой-либо его части. Старайтесь периодически (через каждые 3-5 мин) переводить взгляд (на 3-5 с) с экрана монитора на самый дальний предмет в комнате или (что существенно лучше) на отдаленный объект за окном. При чтении с экрана старайтесь после каждой строки моргнуть, а после каждого большого абзаца - поднять глаза и посмотреть на 2-3 с вдаль. При вводе информации старайтесь не читать только что написанные слова (буквы). Во всех случаях, даже в момент интенсивной мыслительной работы, введите привычку регулярно (через 3-5 с) моргать (мягко, без усилий и только веками). Регулярно (через каждые 2 часа работы) выполняйте комплексы расслабляющих упражнений, которые приведены в ПРИЛОЖЕНИИ Б.

 

Профилактика общего утомления


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

Для профилактики указанных расстройств необходимо выполнять комплексы и упражнения, приведенные в ПРИЛОЖЕНИИ Б.

Пожарная безопасность


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

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

При отделке офисов необходимо использовать только те отделочные материалы, которые прошли испытание в пожарной лаборатории на горючесть и распространение огня, т.е. имеют сертификаты по пожарной безопасности. Для отделки лучше всего использовать материалы трудногорючие и негорючие, а также уменьшать количество сгораемых отделочных материалов (уменьшать пожарную нагрузку помещений). Нужно помнить, что материалы, изготовленные на основе синтетических пластмассовых составов, при горении выделяют ядовитые и опасные для здоровья вещества. Запрещается отделывать сгораемыми материалами пути эвакуации (коридоры, лестничные клетки).

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

В каждой организации распорядительным документом должен быть установлен соответствующий пожарной опасности противопожарный режим, в том числе:

-      определены и оборудованы места для курения;

-        определен порядок обесточивания электрооборудования в случае пожара и по окончании рабочего дня;

регламентированы:

-      порядок проведения временных огневых и других пожароопасных работ;

-        порядок осмотра и закрытия помещений после окончания работы;

         действия работников при обнаружении пожара;

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

Компьютеры и их обеспечение должны иметь отдельное электроснабжение, не совмещенное с общим электропитанием здания, в котором расположены офисные помещения.

Бытовые электроприборы в помещениях, в которых по окончании рабочего времени отсутствует дежурный персонал, должны быть обесточены, за исключением дежурного освещения, установок пожаротушения и противопожарного водоснабжения, пожарной и охранно-пожарной сигнализации. Другие электроустановки и электротехнические изделия могут оставаться под напряжением, если это обусловлено их функциональным назначением и (или) предусмотрено требованиями инструкции по эксплуатации.

При эксплуатации действующих электроустановок запрещается:

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

-        пользоваться поврежденными розетками, рубильниками, другими электроустановочными изделиями;

         обертывать электролампы и светильники бумагой, тканью и другими горючими материалами, а также эксплуатировать светильники со снятыми колпаками (рассеивателями), предусмотренными конструкцией светильника;

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

         применять нестандартные (самодельные) электронагревательные приборы, использовать некалиброванные плавкие вставки или другие самодельные аппараты защиты от перегрузки и короткого замыкания;

Противопожарную защиту обеспечивают следующие меры:

-      максимально возможное применение негорючих и трудно горючих веществ и материалов вместо пожароопасных;

-        ограничение количества горючих веществ и их надлежащее размещение;

         изоляция горючей среды;

         предотвращение распространения пожара за пределы очага;

         применение средств пожаротушения;

         применение конструкций объектов с регламентированным пределом огнестойкости и горючести;

         эвакуация людей;

         применение средств пожарной сигнализации и средств извещения о пожаре;

         организация пожарной охраны объекта.

При пожаре необходимо:

-      Сообщить в пожарную охрану.

-        Оповестить всех окружающих коллег о пожаре.

         Если горение только началось, попробовать, используя пожарные краны, огнетушители, подручные средства, потушить огонь.

         Если потушить пожар не удаётся, покинуть опасную зону.

         По прибытии пожарных объяснить, что и где горит.

Сообщение продублировать руководителю или дежурному смены и приступить к тушению пожара огнетушителями, подручными средствами, протянуть рукавную линию от внутреннего пожарного крана. Слушать распоряжения дежурного по смене, организованно покинуть здание. При невозможности покинуть здание (задымление, высокая температура) плотно закрыть дверь помещения, уплотнить тканью щели, вентиляционные отверстия, открыть окно и ждать пожарных. Следует помнить, что при задымлении над полом воздух более чист. Это может пригодиться при эвакуации и ожидании помощи.

Знание санитарно-гигиенических параметров и их соблюдение в пределах норм, правильный режим труда и отдыха, выполнение требований эргономики, пожарной безопасности, электробезопасности - позволяет снизить или совсем исключить влияние вредных и опасных факторов на работников, и соответственно повысить эффективность труда.

Заключение

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

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

В заключении хочется вкратце перечислить список технологий, использованных при реализации данного проекта, дополненный списком научной документации:

Программирование приложений с использованием .NET Framework

MySQL

Создание собственного протокола передачи данных

Использование многопоточности

ООП

Работа со справочным материалом - MSDN, RSDN и др.

Во время реализации данного проекта был приобретен огромный опыт.


Библиография

.Интернет-Университет Информационных Технологий [Электронный ресурс]. - Режим доступа: http://www.intuit.ru. - Загл. с экрана. - яз. рус.

.Wikipedia, the free encyclopedia [Электронный ресурс] : Cвободная общедоступная многоязычная универсальная энциклопедия. - Режим доступа: http://en.wikipedia.org/wiki/Main_Page. - Загл. с экрана. - яз. англ.

.C# и платформы .NET. Библиотека программиста - СПБ.: Питер, 2005 - 796 с.: ил.

.Visual C# .NET в науке и технике. - М.: Жарков Пресс, 2002. - 638 с.

Приложения

Профилактика зрительного утомления

Упражнения для глаз

Выполняется сидя. Перемещайте взгляд из угла в угол дисплея. Движение глаз должны быть частыми и совершаться без усилий.

Выполняется сидя. Найдите дальний объект за окном, сосредоточьтесь на нем и рассматривайте его в деталях.

Выполняется сидя. Крепко зажмурить глаза на 3-5 с. Затем открыть глаза на 3-5 с. Повторить 6-8 раз.

Выполняется сидя. Быстро моргать в течение 1-2 мин.

Выполняется стоя. Смотреть вдаль прямо перед собой 2-3 с, поставить палец руки по средней линии лица на расстоянии 25-30 см от глаз, перевести взгляд на конец пальца и смотреть на него 3-5 с, опустить руку. Повторить 10-12 раз.

Выполняется сидя. Закрыть веки, затем массировать круговым движением пальца: верхнее веко - от носа, к наружному краю глаза, нижнее веко - от наружного края к носу, затем наоборот. Продолжительность 1 мин.

Выполняется стоя. Голова неподвижна. Отвести полусогнутую правую руку в сторону. Медленно передвигать палец справа налево и следить глазами за пальцем, затем то же - слева направо. Повторить 10-12 раз.

Выполняется сидя. Тремя пальцами каждой руки легко нажать на верхнее веко соответствующего глаза, спустя 1-2 с снять пальцы с век. Повторить 3--4 раза.

Выполняется сидя. Смотреть вдаль прямо перед собой 2-3 с затем перевести взгляд на кончик носа на 3-5 с. Упражнение повторить 6-8 раз.

Выполняется стоя. Голова неподвижна. Поднять полусогнутую правую руку вверх, медленно передвигать палец сверху вниз и следить за ним глазами, затем то же при движении пальца снизу вверх. Повторить 10-12 раз.

Выполняется сидя. Голова неподвижна. Вытянуть полусогнутую руку вперед и вправо, производить рукой на расстоянии 40-50 см от глаз медленные круговые движения по часовой стрелке и следить при этом глазами за концом пальца, то же при движении левой рукой против часовой стрелки. Повторить 3-5 раз.

Выполняется стоя. Голова неподвижна. Поднять глаза вверх, опустить их книзу, повернуть глаза в правую сторону, повернуть глаза в левую сторону. Повторить б-8 раз.

Выполняется сидя. Голова неподвижна. Поднять глаза кверху, сделать ими круговые движения по часовой стрелке, сделать круговые движения против часовой стрелки. Повторите 3-5 раз.

Выполняется сидя. Глаза закрыты. Голова неподвижна. Поднять глаза, опустить глаза, повернуть глаза вправо, повернуть глаза влево. Повторить 6-8 раз. Вы можете также выбрать любое упражнение, входящее в предложенные ниже разгрузочные комплексы.

Разгрузочный комплекс 1

Задание 1. Положите кончики пальцев на виски. 10 раз быстро и легко мигните с максимальной скоростью (не зажмуривайтесь, Вы не должны чувствовать движения под кончиками пальцев). После интенсивного и легкого мигания закройте глаза и сделайте 2-3 глубоких вдоха. Повторите 3 раза.

Задание 2. Посмотрите на кончик носа (на счет 1-4), затем вдаль (на самый отдаленный предмет) (на счет 5-8). Повторите 5 раз.

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

Разгрузочный комплекс 2

Задание 1. Глубоко вздохните, зажмурив глаза как можно сильнее. Задержите дыхание на 2-3 с и старайтесь не расслабляться. Быстро выдохните, широко открыв глаза, и не стесняйтесь выдохнуть громко. Повторите 5 раз.

Задание 2. Закройте глаза, расслабьте брови. Медленно чувствуя напряжение глазных мышц, переведите глазные яблоки в крайнее левое положение, затем медленно с напряжением переведите глаза вправо (не следует щуриться, напряжение глазных мышц не должно быть чрезмерным). Повторите 10 раз.

Задание 3. Сядьте удобно и подушечками указательных пальцев надавите в течение 5 сек трехкратно с перерывом в 1-2 сек на следующие четыре точки на обоих глазах: точка 1 расположена на расстоянии 0,3 см от внутреннего угла глаза, точка 2 расположена на нижнем крае глазницы на уровне зрачка, точка 3 расположена на расстоянии 0,5 см от наружного края глаза, точка 4 расположена на расстоянии 0,5 см от наружного конца брови в углублении.

Разгрузочный комплекс 3

Задание 1. Массируйте закрытые веки с помощью круговых движений пальца (верхнее веко - от носа к наружному краю глаза, нижнее веко - от наружного края к носу), затем наоборот.

Задание 2. Поднимите глаза вверх, затем опустите их книзу. Поверните глаза в правую, затем в левую сторону. Проделайте круговые движения глаз по и против часовой стрелки. Повторите 5 раз.

Задание 3. Посмотрите на кончик пальца, удерживаемого по средней линии лица на расстоянии 30 см от глаз (на счет 1-4), затем максимально вдаль (на счет 5-8). Повторите 10 раз.

Профилактика общего утомления

1. Делайте обязательные перерывы в работе по возможности через каждые 30-60 мин. После 2-х часов работы (или после 1 часа интенсивной деятельности) перерыв является строго обязательным. Не следует использовать для разгрузки компьютерные игры, поскольку они не снимают утомление и не дают полноценного отдыха. Длительность таких перерывов составляет 10-15 минут. Во время этих перерывов не поленитесь выполнить полностью любой из разгрузочных комплексов, описанных в предыдущих и последующих разделах. Соблюдение перерывов во время работы лежит на основе всех профилактических мер. Это элементарное правило оказывается очень важным для здоровья и работоспособности, хотя зачастую с большей легкостью меняют компьютер, чем находят время и желание сделать перерыв и выполнить несколько простых упражнений.

. Следите за своей позой во время работы. Позвоночник называют линией жизни. Нарушения кривизны позвоночника затрудняют работу всего организма, создают излишнее напряжение функциональных систем и приводят к быстрому развитию общего утомления. Правильная поза подразумевает, что спина несколько прогнута вперед, при этом избегайте сползания вперед по сиденью стула или опускание (прогибание) средней части спины по спинке стула. Старайтесь сидеть вертикально прямо, задняя поверхность бедер должна соприкасаться с сиденьем, колени расположены на уровне или ниже бедер.

. Не закрепощайте тело, старайтесь, чтобы все движения были легкими и непринужденными, держите Ваши руки и плечи максимально свободно.

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

. Держите Ваши руки и плечи максимально свободно.

. Не оставляйте руки на столе во время паузы в работе.

. При печатании давление на клавиши должно быть минимальным.

. Располагайте мышь так, чтобы Ваша кисть не была изогнута в запястье. На протяжении дня старайтесь управлять мышью то правой, то левой рукой. При перемещении мыши старайтесь удерживать кисть и предплечье в одной плоскости. Не держите мышь подолгу на одном месте (даже если это необходимо), передвигайте ее на другой участок поверхности стола каждый час. Не вцепляйтесь в мышь во время работы: держите ее легко, расслабленной кистью.

Регулярно (через каждые 2 часа работы) выполняйте комплексы расслабляющих упражнений.

Предлагаем несколько коротких и простых способов снятия легкого утомления:

Согните руки за спиной, а ладони сложите пальцами вверх. Шею держите вертикально. Походите в таком положении 30-40 секунд, после чего опустите руки и расслабьте мышцы. Глубоко вдохните, задержите дыхание на 10-15 секунд и резко выдохните. Подышите так 1-2 мин.

Усложнив немного предыдущее задание, Вы добьетесь лучших результатов. На вдохе (во время задержки дыхания) сожмите руки в кулаки и напрягите мышцы рук, спины и живота, а во время резкого выдоха расслабьте все мышцы и встряхните руками. Повторите несколько раз. Вы можете также выбрать любое упражнение, входящее в предложенные ниже разгрузочные комплексы. Для снятия общего утомления выраженной степени предлагаем специальные разгрузочные комплексы, которые выполняются в течение 10-15 минут. Перед тем, как приступить к выполнению заданий, примите удобное положение и сконцентрируйте внимание на собственном состоянии.

Разгрузочный комплекс 1

Задание 1. Выполните легкое поглаживание головы обеими ладонями так, словно приглаживаете волосы сзади: двигайтесь по затылку от макушки к плечам.

Задание 2. Сделайте вдох. Задержите дыхание и сожмите руки в кулаки. Напрягите мышцы рук, живота, спины. Выдохните и полностью расслабьте все мышцы.

Задание 3. Сидя, корпус прямой, руки опущены. Делая глубокий вдох, поднимите руки вверх и потянитесь 4 раза. Вместе с полным выдохом опустите руки вниз, расслабьте мышцы, округлите спину.

Разгрузочный комплекс 2

Задание 1. Подушечками пальцев обеих рук погладьте свое лицо, медленно двигаясь от середины лба по щекам к подбородку.

Задание 2. Сделайте вдох, медленно считая до 4-х. Сделайте выдох, медленно считая до 4-х. Задержите дыхание. Сделайте снова вдох и продолжайте выполнять упражнение.

Задание 3. Сидя удобно, опустите руки вниз. Выполните несколько круговых движений плечами, вращая их сначала назад, а затем вперед. Дышите произвольно.

Разгрузочный комплекс 3

Задание 1. Положите руки на голову так, чтобы кончики слегка согнутых и растопыренных пальцев находились в области макушки. Сделайте круговые растирания волосистой части головы.

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

Задание 3. Сядьте удобно, положите одну ногу на другую, руки поставьте на пояс. Выполните 4 круговых вращения ступни внутрь, а затем повторите упражнение, вращая ступню наружу. Покачайте расслабленной ногой. Поменяйте ноги местами, выполните те же упражнения с другой ногой. Дышите произвольно.

Комплекс упражнений для снятия явлений длительной статической нагрузки позвоночника

Упражнение 1. Исходное положение - основная стойка (положение стоя, ноги - на ширине плеч, руки - на поясе). На счет "раз" - поворот туловища вправо с одновременным разведением рук в стороны. На счет "два" и "три" - пружинящие движения разведенных рук в направлении назад с одновременным сведением лопаток. На счет "четыре" - возвращение в исходное положение. То же самое - с поворотом туловища влево. Упражнение выполняется 5-6 раз.

Упражнение 2. Исходное положение - основная стойка. На счет "раз" правая рука поднимается вверх до упора, левая - вниз до упора. На счет "два" и "три" - рывки руками с одновременным прогибанием спины. На счет "четыре" - возвращение в исходную позу. На счет "пять" - смена положения рук (правая - вниз, левая - вверх), на счет "шесть" и "семь" - рывки руками с одновременным прогибанием спины, на счет "восемь" - возвращение в исходное положение. Упражнение выполняется 6-7 раз.

Упражнения для кистей рук

Упражнение 1. Растереть наружные и внутренние поверхности ладоней до ощущения тепла.

Упражнение 2. Пружинистыми нажатиями большим пальцем левой руки отгибать назад каждый палец правой руки. По четыре нажатия на каждый палец. Поменять руки.

Упражнение 3. Соединить пальцы обеих рук между собой, ладони обращены друг к другу тыльными сторонами и слегка расставлены. Вдавливать пальцы рук друг в друга на счет 1-5. Расслабить кисти рук, потрясти ими на счет 6-9.

Упражнение 4. Кисти постепенно сжимать в кулаки, все крепче и крепче на счет 1-6. Встряхнуть кистями, расслабиться на счет 7-9.

Упражнение 5. Руки выпрямлены в стороны, кисти слегка сжаты в кулаки. Выкинуть пальцы, сильно напрягая их удерживать напряжение на счет 1-6. Опустить кисти, расслабиться на счет 7-9.

Похожие работы на - Разработка программы 'Сетевой чат'

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!