Развитие информационных технологий в настоящее время идет все быстрее и быстрее. Разработано множество стереотипов и стандартов, а также протоколов, форматов по хранению и передаче информации между компьютерами. В настоящее время существует большое количество программного обеспечения для обмена данными между компьютерами. Особую роль среди них занимают программы обмена сообщениями. Многие из этих программ уже настолько развиты, что имеют возможность обмена не только информационными сообщениями, а также файлами, передачи голоса и видео.
Однако основной особенностью такого программного обеспечения является обязательное подключение к серверу, что делает невозможным использование данных программ, например, в локальной вычислительной сети или просто между двумя компьютерами, без организации соответствующего сервера.
Используя современные средства визуальной разработки программного обеспечения, имеется возможность быстрого создания собственных программ по обмену сообщениями в локальной вычислительной сети. В данном курсовом проекте рассматривается создание клиент-серверного приложения «Чат сообщений» с помощью интегрируемой среды разработки программного обеспечения Mircosoft Visual C++ 2010 Express.
В первом разделе курсового проекта будут рассмотрены вопросы анализа исходных данных, а именно анализ предметной области и выбор специального и общесистемного программного обеспечения необходимого для разработки данного приложения.
Во втором разделе курсового проекта будут рассмотрены вопросы программного проектирования клиент-серверного приложения.
В третьем разделе курсового проекта будет описана программная реализация клиент-серверного приложения «Чат сообщений».
Предметная область курсового проекта – прием и передача информации через удаленный сервер.
Чат сообщений, позволяющий организовать общение между неограниченным количеством пользователей (минимальное число поддерживаемых клиентов - 6).
Требуется разработать клиент-серверное приложение, которое включает в себя разработку следующих функциональных частей:
Разработка серверного приложения. Задача сервера – предоставлять доступ и коммуникацию между клиентами. Сервер должен представлять собой приложение с GUI (Graphical User Interface), который имеет возможность принимать информацию от одного клиента и рассылать ее остальным.
Разработка клиентского приложения. Задача клиента – обмениваться личными и общими сообщениями с другими клиентами через удаленный сервер. Клиент должен представлять собой приложение с GUI (Graphical User Interface) и может подключаться к серверу.
При написании данного курсового проекта планируется использовать следующее стороннее программное обеспечение и инструментарий:
- Microsoft Visual C++ – это среда разработки приложения, включающая интегрированную среду разработки программного обеспечения и ряд других инструментальных средств. Данные продукты позволяют разрабатывать приложения с графическим интерфейсом;
- Клиентское приложение будет реализовано с помощью графического интерфейса включающее в себя формы для ввода и кнопки для отправки данных на сервер;
Серверное приложение также будет реализовано с помощью графического интерфейса включающего в себя формы для обработки данных.
Разработка клиент-серверного приложения «Чат сообщений» включает в себя следующие функции клиента:
- Осуществление общения с пользователем;
- Подготовка исходных данных к вычислительному процессу;
- Распределение работы между независимыми вычислительными серверами;
- Анализ результатов вычислений;
- Формирование конечного результата и предоставление его пользователю.
К функциям сервера разрабатываемого клиент-серверного приложения «Чат сообщений» можно отнести:
- Прием данных от клиента;
- Выполнение требуемой вычислительной процедуры;
- Отправка результатов клиенту.
Макетом пользовательского интерфейса можно назвать статическое представление концепции интерфейса пользователя. Существует 2 вида макетов интерфейса:
- Грубый макет. Макет низкой точности, полученный в результате проектирования интерфейсов. Грубые макеты призваны отражать порядок, структуру и расположение элементов на экране. Таким аспектам дизайна, как сетка, цвет, шрифты и т.д. при создании грубых макетов интерфейса внимание не уделяется. Грубые макеты интерфейса заказчик получает в виде динамичного прототипа приложения, который можно использовать для тестирования эргономичности или начала разработки приложения;
- Законченный макет. Макет высокой степени четкости – результат разработки дизайна интерфейса с проработанным цветом, шрифтами, иконками, фоном, сеткой. Заказчик получит такой макет в виде графических файлов в формате Photoshop, или в виде HTML- или XAML-кода.
Разработанное клиент-серверное приложения «Чат сообщений» предназначено для обмена информацией между клиентами (пользователями). Эта информация может иметь статус приватности и быть общей для всех. Разработка данного приложения делится на 2 части – это клиентская часть программного обеспечения, с помощью которого любой пользователь может попробовать себя в роли собеседника для другого пользователя и серверная часть программного обеспечения, с помощью которого разработчик чата (администратор) может задавать необходимые параметры для соединения и приема/передачи информации между клиентами. А также отслеживать всех активных участников чата сообщений (их IP-адреса).
Обе части реализованы с помощью графического интерфейса GUI (Graphical User Interface), и имеют интуитивно понятную структуру, навигацию приложения.
Для реализации функционально части клиента и сервера были рассмотрены различного рода вопросы (глава 2) о том, что же и какими функциями должны обладать сервер и клиент. И пришли к выводу что, например серверу необходимо получать произвольный адрес и порт, авторизовать клиента, отправлять общие и приватные сообщения, отображать список клиентов по IP. А клиентам необходимо подавать соответствующие запросы серверу.
В данной работе необходимо было разработать клиент-серверное приложение «Чат сообщений», которое предоставляет возможность доступа и коммуникации между клиентами, а также обмен личными и общими сообщениями с другими клиентами через удаленный сервер. Для разработки клиент-серверного приложения использовалась интегрированная среда разработки программного обеспечения Microsoft Visual C++ 2010 Express. Главным преимуществом данной среды является быстрота разработки программного обеспечения. Благодаря наличию визуальных средств проектирования приложения, таких, как формы и набор визуальных и не визуальных компонентов, обладающих богатым функционалом.
В ходе проектирования приложения было принято решение о реализации клиент-серверного приложения в виде двух программ – клиентской и серверной части. Был разработан примерный алгоритм работы каждой из частей.
Первым этапом являлся анализ данных, а именно анализ предметной области и выбор специального, общесистемного программного обеспечения.
Вторым этапом являлось программное проектирование приложения, а именно рассмотрение функций клиента и сервера, проектирование макета пользовательского интерфейса, рассмотрение протоколов взаимодействия между клиентом и сервером и описание алгоритмов работы клиента и сервера.
Заключительным этапом явилась непосредственная реализация серверной и клиентской части в среде разработки программного обеспечения Microsoft Visual C++ 2010 Express. Полученный программный продукт работоспособен, имеет необходимую функциональность – возможность передачи информации между двумя компьютерами, подключенными к локальной вычислительной сети. Отправка и прием текстовых сообщений реализованы как на стороне сервера, так и на стороне клиента.
1. Пауэлл Т.А. Полное руководство по С++. – Мн.: ООО «Попурри», 2001. – 912 с.
2. Дубаков М.А. Создание транспортных протоколов TCP. – Мн.: Новое знание, 2004. – 287 с.
3. Браун М., Ханикатт Д. Разновидности сокетов и их использование. Спб.: Издательство «БХВ – Петербург» – 2002. – 1048с.
4. Титтел Эд, Бурмейстер Мэри. Работа в Visual C++. М.: Издательский дом «Диалектика – Вильямс» – 2007. - 368с.
5. Божко А. Microsoft Visual C++. Базовый курс. – Москва: издательство «ДЕСС КОМ», 2001. – 448 с.
6. Дубаков М.А. Программирование клиент-серверных приложений. – СПб.: БХВ-Петербург, 2002. – 544 с.
7. Молли Э. Хольцшлаг. Работа файловых объектов. Системные вызовы М.: Издательский дом «Вильямс» – 2004. – 736с
8. Коржинский С.Н. Программирование на языке C/C++. – М.: Издательский торговый дом «Кнорус», 2000. – 320с.
9. Гончаров А. Протоколы и их взаимодействие. – СПб.: Питер, 2002. – 240с.
10. Шафран Э. Создание клиент-серверных приложений на языке C++: самоучитель. – СПб.: Питер, 2001. – 320 с.