Им. проф. м.а. бонч-бруевича

ФЕДЕРАЛЬНОЕ АГЕНСТВО СВЯЗИ

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

САНКТ-ПЕТЕРБУРГСКИЙ

ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ

Им. проф. М.А. БОНЧ-БРУЕВИЧА

═══════════════════════════════════════════════════════════════

ФакультетОВПО ИНО

Кафедра ИУС

Отчёт по научно-исследовательской практике

Тема: Функциональные спецификации приложений WhatsApp, Telegram и сервера обслуживания IP-телефонии

Выполнил: Амелин А.С., гр. ИСМ-51з

Руководитель практики от кафедры проф. Птицына Л.К.

Оценка_____________________

Подпись руководителя______________________________

Содержание

Ø Задачи ---------------------------------------------------------------------------------------- 3

Ø Основные термины ----------------------------------------------------------------------- 4

Ø Функциональная спецификация приложений WhatsApp, Telegram

§ Приложение WhatsApp ----------------------------------------------------------------- 7

- Общие сведения ------------------------------------------------------------------------ 7

- Минимальные системные требования --------------------------------------------- 7

- Технические подробности ----------------------------------------------------------- 7

- Текущие и исключённые возможности приложения -------------------------- 8

§ Диаграмма прецедентов приложения WhatsApp --------------------------------- 9

§ Приложение Telegram ----------------------------------------------------------------- 11

- Общие сведения ----------------------------------------------------------------------- 11

- Минимальные системные требования -------------------------------------------- 11

- Технические подробности ---------------------------------------------------------- 11

- Текущие и исключённые возможности приложения -------------------------- 12

§ Диаграмма прецедентов приложения Telegram ---------------------------------- 13

§ Диаграмма классов приложений WhatsApp, Telegram ------------------------- 14

§ Описание кода приложений WhatsApp, Telegram-------------------------------- 17

Ø Функциональная спецификация протоколов приложений WhatsApp, Telegram

§ Описание протоколов приложения WhatsApp --------------------------------- 20

§ Диаграмма коммуникации протоколов приложения WhatsApp ----------- 20

§ Описание кода взаимодействия протоколов приложения WhatsApp ---- 21

§ Описание протоколов приложения Telegram ----------------------------------- 23

§ Диаграмма коммуникации протоколов приложения Telegram ------------- 24

§ Описание кода взаимодействия протоколов приложения Telegram--------24

Ø Функциональная спецификация сервера обслуживания IP-телефонии

§ Описание сервера обслуживания IP-телефонии -------------------------------- 26

§ Диаграмма коммуникации сервера обслуживания IP-телефонии ----------- 27

§ Описание кода сервера обслуживания IP-телефонии -------------------------- 28

Ø Вывод --------------------------------------------------------------------------------------- 30

Ø Список использованных источников ----------------------------------------------- 30

Ø Приложение ----------------------------------------------------------------------------- 31

Задачи

1. Определить функциональную спецификацию приложений whatsup, telegram.

2. Определить функциональную спецификацию протоколов приложений whatsup, telegram.

3. Спланировать исследование функциональных спецификаций приложений whatsup, telegram.

4. Провести исследования по плану п.3.

5. Определить функциональную спецификацию реализации сервера обслуживания ip-телефонии.

6. Спланировать исследование сервера обслуживания ip-телефонии.

7. Выполнить исследование сервера обслуживания ip-телефонии.

8. Составить и представить в распечатанном и в электронном виде отчёт по научно-исследовательской практике.

Основные термины

Термины и сокращения Значение
UML Унифицированный язык моделирования - язык графического описания для моделирования ПО, организационных структур и т.п.
Use Case Diagram Диаграмма прецедентов (вариантов использования) — диаграмма, отражающая отношения между актёрами и прецедентами
Прецедент Определённая возможность моделируемой системы (часть её функциональности, отдельный сервис), выполняемое ей действие
Пользователь (актёр, actor) Совокупность ролей пользователя (человек, внешняя сущность, класс, другая система) взаимодействующая с некоторой системой (подсистемой, классом).
Простая ассоциация (association) Показывает основную (базовую) связь между актёром и/или вариантами использования, специфицируя особенности взаимодействия.
Направленная ассоциация Простая ассоциация, показывающая, что вариант использования определяется актёром.
Включение прецендента (include) Показывает, что вариант использования включается в базовую последовательность и выполняется всегда
Расширение прецендента (extend) Показывает, что вариант использования расширяет базовую последовательность действий и вставляет собственную последовательность, но при определённых условиях.
Аккаунт, ID Идентификационный номер, код учётной записи
Чат Область (средство, ПО) обмена сообщениями в реальном времени
Профиль Учётная запись, совокупность данных и настроек окружения пользователя
Аватар Графическое представление пользователя
Обои Фоновое изображение, для оформления рабочего стола, окон и т.д.
Рингтон Мелодия звонка
Смайл Стилизованное графическое изображение человеческого лица для изображения эмоций
Галерея Ряд пользовательских картинок, фотографий
Статус Короткая ёмкая фраза, призванная сообщать что-либо о текущем состоянии пользователя в настоящее время.
Gif-изображение популярный формат, представляющий собой анимацию из меняющихся графических растровых изображений.
Кроссплат - форменность Работа ПО более чем на одной аппаратной платформе и/или ОС.
Push-уведомление Оповещение в виде «всплывающих окон» на экране устройства.
Сквозное шифрование Шифрование внутри системы, при котором сообщение шифруется локально на устройстве отправителя и может быть расшифровано исключительно на устройстве получателя.
Мессенджер Система мгновенного обмена сообщениями
Скрипт (или сценарий) отдельная подпрограмма (или программный файл) автоматизирующая некоторую задачу, которую пользователь делал бы вручную, используя интерфейс текущей программы.
API Программный интерфейс приложения - набор готовых классов, процедур, функций, структур и констант, предоставляемых приложением для использования во внешних программных продуктах.
Веб-сервер Сервер, принимающий HTTP-запросы от клиентов, обычно веб-браузеров, и выдающий им HTTP-ответы, как правило, вместе с HTML-страницей, изображением, файлом, медиа-потоком или другими данными.
Приложение (прикладная программа) программа, предназначенная для выполнения определённых задач и рассчитанная на непосредственное взаимодействие с пользователем
Браузер (веб-обозреватель) прикладное программное обеспечение для просмотра веб-страниц, веб-документов, компьютерных файлов и их каталогов, управления веб-приложениями и т.п.
Протокол набор соглашений интерфейса логического уровня, которые определяют обмен данными между различными программами. Эти соглашения задают единообразный способ передачи сообщений и обработки ошибок при взаимодействии программного обеспечения. Разные протоколы зачастую описывают лишь разные стороны одного типа связи. Сигнальный протокол используется для управления соединением. Сетево́й протоко́л — набор правил и действий, позволяющий осуществлять соединение и обмен данными между устройствами.
Псевдокод компактный (зачастую неформальный) язык описания алгоритмов, использующий ключевые слова императивных языков программирования, но опускающий несущественные подробности и специфический синтаксис. Псевдокод обычно опускает детали, несущественные для понимания алгоритма человеком. Такими несущественными деталями могут быть описания переменных, системно-зависимый код и подпрограммы.
TCP Transmission Control Protocol (протокол управления передачей) — один из основных протоколов передачи данных интернета, предназначенный для управления передачей данных.
HTTP HyperText Transfer Protocol (протокол передачи гипертекста) — протокол прикладного уровня передачи данных (изначально — в виде гипертекстовых документов в формате «HTML», в настоящий момент используется для передачи произвольных данных).
UDP User Datagram Protocol (протокол пользовательских датаграмм) — один из ключевых элементов TCP/IP, набора сетевых протоколов для Интернета. С UDP компьютерные приложения могут посылать сообщения (в данном случае называемые датаграммами) другим хостам по IP-сети без необходимости предварительного сообщения для установки специальных каналов передачи или путей данных.
VoIP Voice over IP (передачи голоса через IP) технология для организации двустороннего общения по протоколу IP. К данной технологии относится IP-телефония, а так же передача звука от IP-камер и т.п.
Архитектура совокупность важнейших решений об организации программной системы. Архитектура включает все структурные эл-ты и их интерфейсы, их сотрудничество и их соединение.
Криптография методы обеспечения конфиденциальности (невозможности прочтения информации посторонним), целостности данных (невозможности незаметного изменения информации), аутентификации (проверки подлинности авторства или иных свойств объекта)
Мультимедиа содержимое, в котором одновременно представлена информация в различных формах — звук, анимированная компьютерная графика, видеоряд и т.д., а так же возможность интерактивного взаимодействия пользователя с этим содержимым.
Бэкдор (back door, чёрный ход) дефект алгоритма, который намеренно встраивается в него разработчиком и позволяет получить несанкционированный доступ к данным или удалённому управлению операционной системой и компьютером в целом.
Канал связи система технических средств и среда распространения сигналов для односторонней передачи данных (информации) от отправителя (источника) к получателю (приёмнику).
Class Diagram диаграмма, демонстрирующая классы системы, их атрибуты, методы и взаимосвязи между ними
Sequence Diagram диаграмма, на которой для некоторого набора объектов на единой временной оси показан жизненный цикл какого-либо определённого объекта и взаимодействие актёров (действующих лиц) системы в рамках какого-либо определённого прецедента (отправка запросов и получение ответов).
Communication Diagram диаграмма на которой явно указываются отношения между объектами, а время (в отличии от диаграммы последовательности) как отдельное измерение не используется (применяются порядковые номера вызовов).
Класс элемент ПО, описывающий абстрактный тип данных и его частичную или полную реализацию.
Объект некоторая сущность в компьютерном пространстве, обладающая определённым состоянием и поведением, имеющая заданные значения свойств (атрибутов) и операций над ними (методов).
Атрибут класса переменная, связанная с классом или объектом.
PSTN (телефонная сеть общего пользования) абонентская сеть связи, для доступа к которой используются телефонные аппараты, АТС и оборудование передачи данных.
Запрос/Ответ (запрос клиента, ответ сервера) основные действия программной концепции клиент-сервер
Резервное копирование (backup) процесс создания копии данных на носителе, предназначенном для восстановления данных в случае их повреждения или разрушения.
Тайм-аут (время ожидания) — параметр, связанный с совершением события и предназначен для оценки его завершения за определенное время.

Приложение WhatsApp

Общие сведения

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

Первая версия была выпущена 24 февраля 2009 года Яном Кумом и Брайаном Эктоном. Приложением пользуется больше миллиарда человек. С октября 2014 года принадлежит Facebook Inc. У WhatsApp нет проблем с запретом в Китае, Саудовской Аравии и Иране, а также по утверждению Павла Дурова Google и Apple имеют прямой доступ к большей части истории чатов WhatsApp.

Текущая версия 2.17.223

Минимальные системные требования

- Android OS 2.3.3 , либоiOS 4.3, либо ОС Windows Phone 7.5, либо BlackBerry OS 4.6.

- Наличие и поддержка SIM-карты в устройстве.

- Поддержка сенсорного экрана (touch screen).

- 80 Мб свободной памяти на устройстве.

- Доступ к интернет трафику.

Технические подробности

WhatsApp автоматически синхронизирует список контактов с телефонной книгой телефона. Это возможно благодаря тому, что все пользователи регистрируются по своему телефонному номеру. Веб-версия WhatsApp расположена по адресу: https://web.whatsapp.com/. Работа веб-версии осуществляется совместно с телефоном и возможна, только если телефон подключен к сети Интернет.

Серверное ПО WhatsApp написано на Erlang. В январе 2012 года серверы WhatsApp использовали ОС FreeBSD, в них было установлено по 96 ГБ оперативной памяти, и каждый мог обрабатывать от 1 до 2,8 млн соединений, что на несколько порядков выше классической проблемы C10k. Сейчас в качестве СУБД используется многопользовательская распределенная система Mnesia DB, которая использует около 2 ТБ RAM и хранит порядка 18 миллиардов записей.

Биплав Сараф (Biplav Saraf) в своем блоге пишет, что основными фреймворками были React.js – фреймворк для создания интерфейсов от Facebook, Underscore.js – библиотека JavaScript, реализующая дополнительную функциональность для работы с массивами, объектами и функциями, и Velocity.js – движок для работы с анимацией.

Приложение Telegram

Общие сведения

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

Первая версия была выпущена 14 августа 2009 года Николаем и Павлом Дуровым. Приложением пользуется больше 100 миллионов человек.

Текущая версия:

Web-приложение 0.5.5, Android 3.18, Linux 1.0.29, iOS 4.1, Windows Phone 2.0, macOS 3.0

Минимальные системные требования

- Android OS 2.2 , либоiOS 6.0, либо ОС Windows Phone 8.1, либо MacOS 10.8, либо наличие обновлённого интерент-браузера на ПК.

- Наличие мобильного устройства с SIM-картой

- Доступ к интернет трафику.

Технические подробности

Первое, что должен делать клиент приложения, это создать ключ авторизации, который обычно генерируется в момент первого запуска и обычно никогда не меняется. По некоторым сведениям, в последних обновлениях этот ключ меняется через каждые 100 отправленных сообщений (https://twitter.com/durov/status/539489480676085760)

Сессия привязана к приложению клиента, а не к конкретному http/https/tcp соединению. Дополнительно, каждая сессия прикреплена к ID пользовательского ключа, которым собственно и завершается авторизация. Может быть открыто несколько соединений с сервером, сообщения могут быть отправлены в направлении любого из соединений (ответ на запрос необязательно возвращается через то же соединение, которое содержало оригинальный запрос, хотя чаще всего именно так). Когда используется протокол UDP, ответ на запрос должен быть отправлен с помощью другого IP адреса, а не с того, с которого был послан запрос.

При авторизации и аутентификации используются алгоритмы RSA-2048, DH-2048 для шифрования, при передаче сообщений протокола в сеть они шифруются AES с ключом, известным клиенту и серверу. Также применяются криптографические хеш-алгоритмы SHA-1 и MD5.

Режим «секретных» чатов (Secret Chats) реализует шифрование, при котором лишь отправитель и получатель обладают общим ключом (end-to-end шифрование). В отличие от обычного режима, сообщения в секретных чатах не расшифровываются сервером, история переписки сохраняется лишь на тех двух устройствах, на которых был создан чат.

При обмене файлами можно как отправить файлы с устройства, так и искать медиаконтент в интернете, в том случае, если используется мобильная версия для iOS или Android. Размер передаваемых файлов ограничен 1,5 Гб. Программа использует систему докачки файлов после обрыва связи. Имеется возможность организовывать мультичаты до 10000 участников. С помощью специального бота можно проверять орфографию.

Выводы

В ходе выполнения научно-исследовательской практики были получены навыки выполнения функциональных спецификаций, в частности создание различных UML диаграмм и описание программного кода (создание так называемого «псевдокода») . Из функциональных спецификаций приложений WhatsApp и Telegram можно сделать вывод, что WhatsApp имеет более сложную систему настроек и резервного копирования, однако приложение Telegram не уступает по функционалу. Если взглянуть на функциональные спецификации протоколов этих приложений, то напрашивается вывод, что приложение Telegram имеет более простую и универсальную архитектуру, благодаря уникальному протоколу MTProto, в то время как приложение WhatsApp обходится стандартными протоколами, но имеет более сложную архитектуру. Если ключевым протоколом в приложении WhatsApp можно назвать XMPP, в Telegram – MTProto, то для сервера обслуживания IP телефонии этим протоколом будет SIP. В качестве транспортного протокола сервер обслуживания IP телефонии и приложение Telegram могут использовать протокол UDP, что в дальнейшем может поспособствовать развитию взаимосвязи этих систем.

Приложение

им. проф. м.а. бонч-бруевича - student2.ru

Рисунок 1 – Диаграмма прецедентов приложения WhatsApp

им. проф. м.а. бонч-бруевича - student2.ru

Рисунок 2 – Диаграмма прецедентов приложения Telegram

им. проф. м.а. бонч-бруевича - student2.ru

Рисунок 3 – Диаграмма классов приложений WhatsApp, Telegram

им. проф. м.а. бонч-бруевича - student2.ru

Рисунок 4 – Диаграмма коммуникации протоколов приложения WhatsApp

им. проф. м.а. бонч-бруевича - student2.ru

Рисунок 5 – Диаграмма коммуникации протоколов приложения Telegram

им. проф. м.а. бонч-бруевича - student2.ru

Рисунок 6 – Диаграмма коммуникации сервера обслуживания IP-телефонии

ФЕДЕРАЛЬНОЕ АГЕНСТВО СВЯЗИ

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

САНКТ-ПЕТЕРБУРГСКИЙ

ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ

им. проф. М.А. БОНЧ-БРУЕВИЧА

═══════════════════════════════════════════════════════════════

ФакультетОВПО ИНО

Кафедра ИУС

Наши рекомендации