Разработка клиент-серверного приложения для голосовых звонков на основе протокола SIP
Описание общей структурной схемы программной утилиты "Session Initiaiton Protocol" как протокол передачи данных прикладного уровня. Разработка программного обеспечения с открытым кодом SIP софтфона и сервера – приложений для совершения Интернет-звонков.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 11.09.2020 |
Размер файла | 568,9 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
2
Размещено на http://www.allbest.ru/
1
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ
«ВЫСШАЯ ШКОЛА ЭКОНОМИКИ»
Факультет информатики, математики и компьютерных наук
Программа подготовки бакалавров по направлению
09.03.04 Программная Инженерия
ВЫПУСКНАЯ КВАЛИФИКАЦИОННАЯ РАБОТА
Разработка клиент-серверного приложения для голосовых звонков на основе протокола SIP
Мигачев Владислав Витальевич
Рецензент:
Инженер-разработчик, EPAM Systems
Гречихин Иван Сергеевич
Научный руководитель:
Старший преподаватель
Бычков Илья Сергеевич
Нижний Новгород, 2020
Аннотация
В данной работе рассматривается разработка SIP софтфона и сервера - приложений для совершения Интернет-звонков. Предполагаемые утилиты основаны на протоколе SIP, что расшифровывается как “Session Initiaiton Protocol” - протокол передачи данных прикладного уровня. Протокол SIP позволяет использовать множество дополнительных специализированных опций. Например, “DoNotDisturb” позволяет изолироваться от всех входящих звонков, а “Presence” позволяет отображать текущий статус пользователя (“На месте”, “Нет на месте” или “Занят”). Результат работы представляет собой программное обеспечение с открытым кодом, которое может быть использовано для совершения звонков, в том числе и конференц-звонков (в которых участвует несколько пользователей). Данное приложение может использоваться как более комфортная альтернатива офисному телефону.
Ключевые слова:Session Initiation Protocol, телефония, клиент-сервер, софтфон.
приложение утилита сервер интернет звонок
Abstract
In this work, SIP softphone and server, tools for performing calls over Internet are developed. These tools are based on SIP protocol, which stands for “Session Initiation Protocol” - a high-level protocol of messaging which is on application layer of OSI model. SIP protocol allows to use a lot of additional features. For example, “Do Not Disturb” feature could be used to deny all incoming calls if user is busy. Also, “Presence” feature can suggest current status of any user such as “Available”, “Away”, “Busy” or “Out Of Office”. This paper presents the open-source software which could be used not only in case of performing simple calls but to perform conference calls too. This application could be used as more comfortable alternative of performing calls via computer or mobile phone.
Key words: Session Initiation Protocol, telephony, client-server model, softphone.
Содержание
Аннотация
Abstract
Определения и обозначения
1. Введение
2. Обзор существующих решений
2.1. 3CX, RingCentral
2.2. MicroSIP
2.3. Общие недостатки существующих продуктов
3. Постановка задачи
4. Особенности предложенного решения
4.1 Общая информация
4.2 Реализация статуса присутствия пользователя (Presence)
4.3 Дальнейшая расширяемость
5. Выбор инструментов и технологий
6. Архитектура приложения
6.1 Логгер
6.2 Библиотека
6.3 Сервер
6.4 Клиент
6.5 Дополнительный функционал
7. Результаты
8. Заключение
9. Дальнейшее развитие
10. Список литературы
Определения и обозначения
Софтфон (softwaretelephone) - приложение для персонального компьютера, позволяющее осуществлять голосовые или видеозвонки через Интернет.
Сервер - приложение, обрабатывающее запросы клиента (в данной работе, в роли клиента выступает софтфон).
Библиотека (в программировании) - набор классов и методов для решения определенных задач.
BSON (BinaryJSON) - надмножество JSON, формат хранения данных в MongoDB.
JSON (JavaScriptObjectNotation) - формат обмена данными, основанный на JavaScript, удобный для написания и чтения человеком.
Паттерн -- шаблон проектирования, описывающий типичный способ решения часто встречающейся проблемы при проектировании программ.
1. Введение
На сегодняшний день Интернет уже давно стал неотъемлемой частью ежедневной рутины. Одно из основных предназначений “Всемирной паутины” - коммуникация между людьми. Для формального общения давно используется электронная почта. Для более неформального общения сейчас широко распространены мессенджеры. Помимо передачи текста, сегодня они позволяют совершать голосовые и видеозвонки через Интернет. Приложение Skype также позволяет отображать для пользователей свой статус (“На месте”, “Занят”, “Оффлайн”).
Практически каждый офисный работник имеет на рабочем месте свой офисный телефон. Помимо возможности совершать звонки, данные телефоны обладают расширенным списком возможностей по сравнению с обычными сотовыми телефонами. Например, офисные телефоны могут совершать трансфер звонка, участвовать в конференциях. Также такие телефоны могут отображать статус пользователя по аналогии с приложением Skype. Например, некоторые компании могут отслеживать активность служащих на работе, собирая и анализируя информацию об их статусах.
Реализация описанного функционала в приложении для компьютера может помочь небольшим компаниям получить возможность использовать богатый функционал офисного телефона, не прибегая к его покупке. Также, работа над таким приложением должна повысить интерес людей к совершению звонков через Интернет вместо использования для этого обычных звонков с мобильных телефонов.
2. Обзор существующих решений
На данный момент, перечисленный функционал реализован в большом количестве приложений:
2.1. 3CX, RingCentral
Системы 3CX и RingCentral обладают схожей функциональностью, поэтому будут рассмотрены вместе. Каждая система состоит из следующих компонент:
· SIP сервер, который можно развернуть как на Windows, так и на Linux. Также есть возможность платно развернуть сервер в облаке компании.
· Веб-софтфон, позволяющий совершать звонки из браузера (в случае ПК), а также приложения для iOS и Android, позволяющие пользоваться софтфоном с мобильного телефона. Помимо обычных звонков, данные софтфоны умеют совершать видеозвонки, а также участвовать в конференциях.
·
Рисунок 1: Решение 3cx
2.2. MicroSIP
MicroSIP представляет собой софтфон с открытым исходным кодом. Он обладает большим количеством преимуществ, таких как небольшой вес и крайне малое потребление оперативной памяти (>5MB), имеет поддержку широкого спектра доступных опций, таких как видеозвонки и статус присутствия. Однако, данное решение не является полноценной SIP системой, поскольку требует для использования стороннего сервера.
Рисунок 2: Решение MicroSIP
2.3 Общие недостатки существующих продуктов
Существующие приложения содержат ряд недостатков:
· Насколько известно, не существует полностью бесплатных решений, предоставляющих пользователю полноценную готовую к работе систему, состоящую из клиента (софтфона) и сервера. Маленькие компании или частные лица, желающие получить возможность использовать функциональность офисного телефона, просто не могут себе этого позволить.
· Существующие решения могут быть сложны для развертывания и настройки для пользователей без опыта работы с подобными решениями.
· Существующие решения не являются решениями с открытым исходным кодом. Это небезопасно для конечного пользователя, поскольку подобные решения используются в первую очередь для обмена информацией, в том числе чувствительной. Если исходный код приложения закрыт, оно может содержать в себе уязвимости, что потенциально несет угрозу хищения личных данных, и у рядового пользователя нет возможности это проверить.
3. Постановка задачи
Цель работы: разработать SIP софтфон и сервер на языке программирования Rust. Данные утилиты должны быть бесплатными, легко конфигурируемыми, их исходный код должен быть открыт.
Задачи:
1. Разработать библиотеку для работы с протоколом SIP.
Задачи библиотеки:
1. Собирать SIP сообщение (как “request”, так и ”response”).
2. Анализировать приходящее SIP сообщение и формировать на его основе структуру, из которой можно удобно извлекать данные.
2. Разработать SIP сервер.
1. Сервер должен работать в эмуляторе терминала.
2. Для удобной и простой конфигурации сервер должен быть оснащен веб-интерфейсом.
3. Разработать софтфон.
1. Софтфон должен обладать графическим интерфейсом для удобного использования.
2. Должны быть реализованы следующие возможности:
1. “DoNotDisturb”. При активации, пользователь не должен получать входящих звонков.
2. “Presence”. Пользователь должен иметь возможность менять свой статус. Доступные значения:
1. На месте
2. Нет на месте
3. Занят
4. Offline
5. OOO (Out of office)
4. Особенности предложенного решения
В данной главе будет рассматриваться теория, содержащая в себе требования к продукту на основе протокола SIP, а также алгоритмы, необходимые для реализации программы в соответствии со стандартом. Большая часть рассматриваемого теоретического материала находится в технических документах, называющихся RFC (RequestForComments).
4.1 Общая информация
Общая информация о протоколе SIP находится в RFC 2543 (1999) и в RFC 3261 (2002). Стандарт, описанный в RFC 2543, на данный момент считается устаревшим, поскольку имеет уязвимости и не считается безопасным (AlanB. Johnston, 2003). Однако, актуальный стандарт имеет практически полную обратную совместимость с RFC 2543, поскольку многие реализации по-прежнему основаны на предыдущей версии стандарта. Насколько известно, существующие продукты поддерживают актуальную версию стандарта, поэтому и приложение, разработанное в ходе этой работы, должно на нем основываться.
4.2 Реализация статуса присутствия пользователя (Presence)
Для реализации статуса присутствия необходима поддержка протокола SIMPLE (Session Initiation Protocol for Instant Messaging and Presence Leveraging Extensions). SIMPLE является расширением стандарта SIP и предназначается для реализации систем мгновенной передачи сообщений (InstantMessaging) и уведомления о присутствии (Presence), и для его поддержки необходимо добавить к существующим методам SIP запросов еще два:
· SUBSCRIBE - для подписки на определенное событие на сервере,
· NOTIFY - используется сервером для оповещения клиента всякий раз, когда данное событие происходит.
Эти методы определены в RFC 3265.
После добавления поддержки протокола SIMPLE можно переходить к реализации статуса присутствия пользователя. Существующие продукты могут иметь свой способ решения этой задачи, однако в данной работе описанный функционал будет реализован в соответствии со стандартом, описанном в RFC 3856. Согласно этому техническому документу, подписчик (конечный пользователь, софтфон) должен послать SIPSUBSCRIBE запрос на сервер. При получении такого сообщения, сервер подписывает пользователя на обновления, и если кто-либо меняет свой статус присутствия, сервер оповещает подписчиков об этом при помощи SIP NOTIFY сообщения.
4.3 Дальнейшая расширяемость
Также есть огромное количество других расширений функциональности. В этом абзаце будет подробнее рассмотрена возможность блокировки всех входящих звонков (“DoNotDisturb”). Обзор данной функциональности важен для реализации дальнейшей безболезненной расширяемости функционала решения. Как и в случае со статусом пользователя, рассмотренном ранее, в каждом продукте может быть своя реализация данного функционала. Однако, существует способ реализации данной и многих других опций одним унифицированным способом: существует стандарт CSTA, в техническом документе ISO/IECTR22767:2005(2005) он описан как “verypowerfulandflexiblesetofapplicationservicestoobserveandcontrolvoiceandnon-voicemediacallsaswellascontrolandobservenon-callrelatedfeatures”. Данная аббревиатура расшифровывается как ComputerSupportedTelecommunicationsapplications. Данный стандарт поддерживает огромное количество функциональностей: опираясь на стандарт ECMA-323(2011), список описанного функционала включает в себя “CallForward”, “CallTransfer”, “ConsultationCall”, “DoNotDisturb” и многие другие. Реализация поддержки CSTA стандарта позволит легко расширить функциональность данного решения в дальнейшем, поскольку новые опции будут добавляться единообразно в соответствии с имеющимся стандартом.
5. Выбор инструментов и технологий
Для работы над проектом используется только бесплатный инструментарий, не накладывающий ограничений на разработчика:
1. ОС: Ubuntu 19.10.
2. Редактор кода: Visual Studio Code.
3. Язык программирования: Rust
? Используемые библиотеки: mongodb, bson, orbtk, xmltree
4. База данных: MongoDB
5. Система контроля версий: git.
? Репозитории:
? библиотека - https://github.com/Rolledm/sip-library-rust
? сервер - https://github.com/Rolledm/sip-server-rust
? клиент - https://github.com/Rolledm/sip-client-rust
6. Архитектура приложения
6.1 Логгер
Перед тем, как начать работу непосредственно над проектом, нужно написать логгер. Данная утилита поможет удобно отображать информацию по работе приложения. Было заведено перечисление, отображающее уровень важности сообщения: Debug, Info, Warning, Error, Fatal. Сам логгер реализует паттерн синглтон (singleton), что гарантирует наличие единственного экземпляра класса предоставляет к нему глобальную точку доступа. При инициализации необходимо задать максимальный уровень важности сообщения. Во время работы утилита пишет в лог-файл сообщения, содержащие в себе уровень серьезности, время и непосредственно саму строку информации.
6.2 Библиотека
Реализация библиотеки для работы с протоколом SIP на языке программирования Rust является ключевой задачей работы, поскольку все дальнейшие компоненты (сервер, клиент, Presence сервер) зависят от этой библиотеки. Ее задачи:
1. На основании имеющихся данных формировать готовое к отправке (находящееся в строковом представлении) SIP сообщение.
2. Из полученного в строковом виде SIP сообщения формировать структуру, с помощью которой можно удобно получать данные заголовков сообщения.
Ключевой элемент библиотеки - структура Message, содержащая в себе тип сообщения (запрос или ответ, поскольку разные по типу сообщения имеют разную структуру стартовой строки сообщения), а также разный набор необходимых заполненных заголовков. Поскольку заголовков у SIP сообщения много, следует избегать инициализации всех полей через конструктор. Вместо этого инициализация полей происходит с помощью шаблона проектирования строитель (builder), позволяющего создавать сложные объекты пошагово. Конструктор же в себе содержит только тип сообщения. Для типа сообщения реализован в перечислении MessageType. Язык Rust позволяет элементам перечислений хранить в себе переменные, что позволяет удобно предоставлять данные: MessageType состоит из двух элементов: Request для запросов (SIPINVITE, например) и Response (200 OK). Элемент Request хранит в себе переменную типа RequestType (также реализованое перечисление). Элементы RequestType не содержат в себе переменных, они нужны лишь для индикации типа запроса (REGISTER, INVITE …).
Для, того, чтобы собрать из данных структуры сообщение, реализован метод to_string, возвращающий готовую к отправке строку. За обработку полученного сообщения написан отвечает метод from. В нем сообщение построчно анализируется, и на основе данных, указанных в заголовках сообщения, формируется удобная для дальнейшего использования структура:
Рисунок 3: Структура Message
6.3 Сервер
Следующий этап - написание SIP сервера. Основным его компонентом является база данных MongoDB - NoSQL БД, хранящая данные в виде объектов в формате BSON, комфортных для восприятия пользователем. Каждый объект содержит информацию о конкретном пользователе: его общую информацию, список доступных опций. Также была создана таблица для хранения статуса пользователя, подробнее это будет описано в главе 6.5.
Рисунок 4: Представление пользователей в базе данных SIP сервера
Для удобного использования и администрирования сервера крайне важно реализовать веб-интерфейс. Для этого в отдельном потоке запущен TcpListener, ожидающий HTTP запроса. По запросу он выдает веб страницу с настройками. Страница сверстана с помощью HTML и CSS, для создания форм, по заполнению которых отправляется HTTP POST запрос на сервер, использованы готовые формы из библиотеки EHTML. Данная библиотека расширяет возможности языка HTML, позволяя отправлять формы в JSON формате без использования языка JavaScript.
Для обработки приходящих от клиентов SIP запросов также в отдельном потоке запущен TcpListener. Анализ и генерация ответов на запросы (как SIP, так и HTTP) происходят в главном потоке, для связи с ним используются каналы.
Главный поток ожидает сообщения от канала. При его появлении вызывается метод on_message_received, где происходит обработка сообщения:
· В случае HTTP запроса, производится анализ данного запроса в методе on_HTTP_message_received:
? В случае GET / запроса сервер выдает HTML страницу с настройками.
? В случае POST запроса (приходящего в результате заполнения формы на странице в браузере) сервер анализирует приходящий JSON контент и на его основании применяет пришедший запрос на изменение конфигурации.
· В случае SIP запроса, его обработка производится в методе on_SIP_message_received: сначала оно разбирается в удобную для анализа структуру с помощью библиотеки, разработка которой описана в главе 6.2. Далее вызывается метод, специфичный для каждого конкретного запроса. Например, для SIPREGISTER запроса вызывается on_SIP_REGISTER_received.
6.4 Клиент
Далее необходимо реализовать клиент (софтфон). Ключевой компонент софтфона - удобный графический интерфейс. Для его реализации используется фреймворк orbtk. При работе с ним разработка интерфейса мало отличается от верстки HTML страницы. Также данный фреймворк поддерживает стилизацию с помощью css, что позволяет легко сделать для приложения несколько тем, что позволяет пользователю самостоятельно вносить азнообразие во внешний вид приложения. Также важно добавить возможность конфигурации приложения с помощью файла в формате .xml. Это позволит пользователю быстро и легко сменить настройки при необходимости (например, при переезде на другой сервер со сменой домена. Для работы с .xml файлами в приложении используется библиотека xmlparser.
Рисунок 5: Пример конфигурационного файла
При разработке софтфона используется паттерн MVC:
· Данные приложения (например, его текущее состояние) хранятся в структуре MainViewState. Также эта структура хранит в себе последнее совершенное действие (по умолчанию -- None). Доступные действия описаны в перечислении Action.
· За отображение отвечает метод template: в нем описано размещение всех элементов. Если доступно взаимодействие с элементом (например, кнопка для входа в систему), дня него также описывается, какое действие для него доступно. Например, для входа в систему используется действие Action::Login.
· Обработка приходящих событий происходит в методе update: в зависимости от запрашиваемого действия вызываются соответствующие им методы. Например, в случае пришедшего Action::Login вызывается метод login, в котором происходит отправка запроса на регистрацию на SIP сервер.
Окно поделено на три зоны:
· В левой верхней части находится поле логина. Здесь есть поля для ввода номера (экстеншена) и пароля, а также кнопка, при нажатии на которую производится регистрация на сервер.
· В правой верхней части - рабочая телефонная секция. Здесь находится текстовое поле, оповещающее пользователя об изменениях в его статусе, например, что он успешно вошел в систему или о том, что для него есть входящий звонок. Также здесь находится поле для ввода номера, на который пользователь собирается звонить, и кнопки действий:
? Кнопка для совершения звонка. В случае, если поле ввода не пустое, а входящих звонков нет, совершается попытка звонка. Если есть входящий звонок, данная кнопка используется для его принятия.
? Кнопка отмены звонка. В случае, если звонок установлен, нажатие на данную кнопку его завершает. Если есть входящий звонок, данная кнопка позволяет его сбросить.
· Нижняя часть отведена под дополнительный функционал. Здесь располагается кнопка активации/деактивации “DoNotDisturb”, кнопка для изменения своего статуса присутствия (“Presence”), а также отображается присутствие отслеживаемых пользователей.
Рисунок 6: Скриншот софтфона
6.5 Дополнительный функционал
Дальнейшие шаги - добавление дополнительного функционала. Сначала реализуется Presence сервер для хранения и выдачи статуса пользователя. Для хранения, как и в основном сервере, будет использоваться MongoDB. Для данного сервера заводится отдельная коллекция, объекты которой состоят из номера (экстеншена) пользователя и его состояния. Здесь, как и в случае с SIP сервером, создается TcpListener, бесконечно ожидающий запросов состояния. Далее добавляется поддержка Presence на сервере, а также кнопки для изменения статуса в клиенте.
После этого внедряется поддержка CSTA стандарта в соответствии с ECMA-323. Также добавляется в соответствии с этим стандартом функциональность “DonotDisturb”.
Рисунок 7: Представление пользователей в базе данных Presence сервера
7. Результаты
Результат работы - полноценная SIP система, состоящая из сервера - программы для обслуживания софтфонов, софтфона - приложения для совершения Интернет звонков, а также Presence сервера - программы для хранения и предоставления статуса присутствия пользователей.
Ключевой компонент данной системы - библиотека для работы с SIP протоколом, написанная на языке программирования Rust. Данная работа является серьезным вкладом в сообщество Rust разработчиков, поскольку на данный момент подобных библиотек на crates.io нет.
8. Заключение
В данной работе была поднята проблема бесплатного и открытого программного обеспечения в сфере телефонии. Для решения проблемы был реализован прототип системы, состоящей из SIP сервера и софтфона. Уже на данный момент помимо совершения обычных звонков система поддерживает также статус присутствия (Presence) в соответствии со стандартом, описанном в RFC 3856. Также в данной системе была реализована функциональность “Не беспокоить” (“DoNotDisturb”) в соответствии со стандартом CSTA. Соответствие данному стандарту позволяет в дальнейшем добавлять новый функционал в едином стиле, что положительно скажется на чистоте кода и скорости разработки.
Реализованный прототип может быть использован как альтернатива классическому офисному телефону. Также пользователи могут перевести свои звонки с сотовых телефонов на данную экосистему, что позволит им использовать расширенный функционал, исторически присущий только офисным телефонам.
9. Дальнейшее развитие
Дальнейшее развитие может происходить в двух направлениях:
1. Расширение функциональности имеющегося клиентского приложения: добавление поддержки «Call transfer», «Call forward» и других опций в соответствии со стандартом CSTA.
2. Разработка софтфона для других платформ: Android, iOS.
10. Список литературы
1.Johnston, A. B. (2003). SIP: Understanding the Session Initiation Protocol, Second Edition (2nd ed.). New York, United States: Penguin Random House.
2.Rosenberg, J. et al (2002) SIP: Session Initiation Protocol, RFC 3261 [Online]. Available at: https://tools.ietf.org/html/rfc3261
3.Rosenberg, J. (2004) A Presence Event Package for the Session Initiation Protocol (SIP), RFC 3586 [Online]. Available at: https://tools.ietf.org/html/rfc3856
4.Roach A. B. (2002) Session Initiation Protocol (SIP)-Specific Event Notification, RFC 3265 [Online]. Available at: https://tools.ietf.org/html/rfc3265
5.European Telecommunications Standards Institute. (2004). Using CSTA for SIP Phone User Agents (uaCSTA). [Online]. Avaialable at: https://www.etsi.org/deliver/etsi_tr/102300_102399/102348/01.01.01_60/tr_102348v010101p.pdf
6.European Telecommunications Standards Institute. (2011) XML Schema Definitions for Computer Supported Telecommunications Applications (CSTA) Phase III. [Online]. Available at: https://www.ecma-international.org/publications/files/ECMA-ST/ECMA-323.pdf
7.Guseynchick. (2020) Расширенный HTML [Online]. Available at:https://habr.com/ru/post/499106/
8.ShvetsA. Паттерны проектирования [Online]. Available at: https://refactoring.guru/ru/design-patterns
9.https://www.3cx.ru/
10.https://www.microsip.org/
Размещено на Allbest.ru
...Подобные документы
Требования, предъявленные к полноценному локальному чату. Протокол передачи данных TCP. Описание программы сервера. Этапы разработки программного продукта. Функция приема сообщений от сервера. Принятие и отправка сообщений всем пользователям чата.
курсовая работа [447,0 K], добавлен 21.01.2016Разработка веб-приложений на основе Servlet API. Основные способы передачи данных от пользователя. Краткая справка по необходимым программным компонентам. Составление программы интернет-чата на основе протокола HTTP. Диаграмма классов веб-приложения.
лабораторная работа [1,1 M], добавлен 01.05.2014Общая характеристика и функциональное назначение проектируемого программного обеспечения, требования к нему. Разработка и описание интерфейса клиентской и серверной части. Описание алгоритма и программной реализации приложения. Схема базы данных.
курсовая работа [35,4 K], добавлен 12.05.2013Разработка клиент-серверного приложения, позволяющего взаимодействовать друг с другом с использованием доступа к базам данных. Проектирование связи сервера с базой данных с помощью технологии ODBC. Разработка интерфейса программы, ее тестирование.
курсовая работа [352,0 K], добавлен 24.08.2016Разработка программного комплекса для автоматизации получения и передачи сообщений между центром обработки звонков и клиентами. Пути сокращения среднего времени, затрачиваемого на телефонное соединение, повышение производительности работы менеджеров.
дипломная работа [6,1 M], добавлен 13.10.2013Анализ предметной области, формулировка общих и специальных требований к информационной системе с адаптивным интерфейсом. Разработка структур данных, программного обеспечения, модуля бизнес-логики, клиентского приложения; администрирование сервера.
дипломная работа [2,5 M], добавлен 20.07.2014Характеристика разновидностей программной реализации чатов. Разработка программы клиент-серверного чата с возможность общения в локальной сети нескольких человек одновременно. Протокол взаимодействия клиента и сервера. Порядок работы с программой.
курсовая работа [530,7 K], добавлен 25.04.2015Разработка системы, базирующейся на протоколе LIMone, для обмена мгновенными сообщениями и пересылки файлов в процессе деловой переписки. Реализация системы в виде клиент-серверного приложения. Расчет экономических показателей программного продукта.
дипломная работа [4,7 M], добавлен 22.08.2016Изучение истории достижений корпорации Oracle. Разработка клиент-серверного приложения на языке Delphi XE, реализующего возможность управления персоналом на предприятии. Основные структуры данных. Создание инструкции работы с приложением "Отдел кадров".
дипломная работа [974,7 K], добавлен 08.06.2013Выделение основных сущностей проектируемой системы, описание их взаимосвязи. Построение базы данных и приложений: разработка таблиц и связей между ними, локальных представлений данных, форм, запросов, меню. Инструкция для работы пользователя с программой.
курсовая работа [380,9 K], добавлен 06.04.2015Разработка программного продукта "Программа учета и тарификации телефонных звонков", предназначенного для получения подробных отчетов о звонках и их стоимости. Эксплуатационное назначение. Требования к надежности и разработка текстовой документации.
курсовая работа [1,2 M], добавлен 10.12.2012Разработка клиент-серверного приложения на основе TCP\IP соединения. Организация работы удаленного генератора псевдослучайных последовательностей. Описание основных функциональных модулей. Интерфейс пользователя, сетевое взаимодействие и алгоритм.
курсовая работа [223,6 K], добавлен 18.10.2013Разработка программы FTP-клиент, которая может подключаться к серверу в активном и пассивном режимах, используя имя пользователя и пароль; скачивать, загружать и удалять файлы с сервера. Протоколы прикладного и транспортного уровней. Описание интерфейса.
курсовая работа [149,2 K], добавлен 07.07.2013Разработка прикладного программного обеспечения деятельности регистратуры ведомственной поликлиники. Выбор редакции SQL Server 2005. Выбор учетной записи для служб SQL Server и режима аутентификации сервера. Кодовая страница и порядок сортировки.
курсовая работа [3,3 M], добавлен 30.07.2010Проектирование программного модуля: сбор исходных материалов; описание входных и выходных данных; выбор программного обеспечения. Описание типов данных и реализация интерфейса программы. Тестирование программного модуля и разработка справочной системы.
курсовая работа [81,7 K], добавлен 18.08.2014Концепция Web 2.0. Язык разметки HTML5. Инструментальные средства для создания веб-приложений. Язык объектного анализа и проектирования UML. Осуществление наполнения и тестирования разработанного интернет-магазина. Форматирование содержимого Web-страниц.
дипломная работа [3,9 M], добавлен 05.06.2016Общие характеристики операционной системы Android. Разработка приложения на основе создания менеджера файлов. Получение с помощью приложения доступа к файлам, хранящимся в "облачном хранилище" в сети Интернет. Расчет стоимости программного обеспечения.
дипломная работа [2,7 M], добавлен 03.04.2015Описание приложения в виде пользовательского сценария. Проектирование обмена сообщениями между модулями. Разработка общей структуры приложения. Обзор структуры файлов. Разработка получения данных со страницы. Характеристика результата работы программы.
дипломная работа [1,5 M], добавлен 22.03.2018Запросы клиента по области возможных запросов к серверу. Программа для прогнозирования поведения надежности программного обеспечения на основе метода Монте-Карло. Влияние количества программ-клиентов на поведение программной системы клиент-сервера.
контрольная работа [705,3 K], добавлен 03.12.2010Сетевое программное обеспечение: общее понятие, содержание, функции. Этапы развития теории компьютерных сетей. Проектирование в среде программирования Borland Builder C++ клиент серверного приложения с использованием сокетов, листинг данной программы.
курсовая работа [191,5 K], добавлен 07.01.2015