- •Тема: Функциональные спецификации приложений WhatsApp, Telegram и сервера обслуживания ip-телефонии
- •Основные термины
- •- Android os 2.3.3 , либо iOs 4.3, либо ос Windows Phone 7.5, либо BlackBerry os 4.6.
- •Текущие и исключённые возможности приложения
- •Uml диаграмма прецедентов (Use Case) приложения WhatsApp
- •- Android os 2.2 , либо iOs 6.0, либо ос Windows Phone 8.1, либо MacOs 10.8, либо наличие обновлённого интерент-браузера на пк.
- •Текущие и исключённые возможности приложения
- •Uml диаграмма прецедентов (Use Case) приложения Telegram
- •Uml диаграмма классов (Class Model) приложений WhatsApp, Telegram
- •Описание кода приложений WhatsApp, Telegram
- •Диаграмма коммуникации протоколов приложения WhatsApp
- •Описание кода взаимодействия протоколов приложения WhatsApp
- •Xmpp ServerRequestRef); /ссылка ServerRequest
- •Описание протоколов приложения Telegram
- •Диаграмма коммуникации протоколов приложения Telegram
- •Описание кода взаимодействия протоколов приложения Telegram
- •IncludePayload (ref /через скрипт mtproto
- •Invite (приглашение) — приглашает пользователя принять участие в сеансе связи (служит для установления нового соединения; может содержать параметры для согласования);
- •Диаграмма коммуникации сервера обслуживания ip-телефонии
- •Описание кода сервера обслуживания ip-телефонии
- •Список использованных источников
- •Приложение
Описание кода сервера обслуживания ip-телефонии
public class Client{ /создаём класс клиент
public int invite; /установка нового соединения с пользователем
public int ack_response; /ответ адресата на установку нового соединения
client.create_session; /создание новой сессии
client.send_data; /отправление потока голосовых данных клиентом
public void GetSession(){ /получение сессии адресатом
return session;}
public int GetACK(){ /получить входящий вызов
return ack;}
public void /ввести новое значение принятия(1),
ACKResponse (int /либо отклонения(0) соединения
newACK) {
ack_response = newACK;} /присвоить значение ответу на входящий вызов
client.get_data; /получение потока голосовых данных клиентом
}
public class Server{ /создаём класс сервер
public void GetCreateSession(){ /получить запрос на создание сессии
return create_session;}
server.redirect_request; /запрос к серверу переадресации
server.redirect_response; /ответ от сервера переадресации
server.register; /регистрация контакта на сервере определения местоположения
server.locate; /определение местоположения контакта
server.location_response; /ответ от сервера местоположения контакта
server.request; /запрос к серверной части агента пользователя
server.sendinfo; /отправка информации о текущей сессии
public void GetInData(){ /получение аудио-данных от клиента
return indata;}
server.compression; /компрессия аудио-данных посредством кодека G.729
server.transport; /отправление сжатых данных адресату
public void GetTransport(){ /получение сжатых данных адресатом
return transport;)
server.decompression; /восстановление аудио-данных посредством кодека G.729
public void GetInfo(){ /получение информации о текщей сессии
return info;}
public void GetDataInfo(){ /полуение информации о потоке получаемых данных
server.synch /синхронизация протокола передачи данных в реальном времени
public void GetOutData(){ /получение несжатого потока аудио-данных
return outdata;}
server.control; /контроль и фрагментация потока аудио-данных данных
server.respond; /ответ сервера
server.get_session; /отправление сессии адресату
server.ack; /отправить входящий вызов
public void /получить ответ от клиента(адресата)
GetACKResponse(){ /на входящий вызов
return ack_response}}
Выводы
В ходе выполнения научно-исследовательской практики были получены навыки выполнения функциональных спецификаций, в частности создание различных UML диаграмм и описание программного кода (создание так называемого «псевдокода») . Из функциональных спецификаций приложений WhatsApp и Telegram можно сделать вывод, что WhatsApp имеет более сложную систему настроек и резервного копирования, однако приложение Telegram не уступает по функционалу. Если взглянуть на функциональные спецификации протоколов этих приложений, то напрашивается вывод, что приложение Telegram имеет более простую и универсальную архитектуру, благодаря уникальному протоколу MTProto, в то время как приложение WhatsApp обходится стандартными протоколами, но имеет более сложную архитектуру. Если ключевым протоколом в приложении WhatsApp можно назвать XMPP, в Telegram – MTProto, то для сервера обслуживания IP телефонии этим протоколом будет SIP. В качестве транспортного протокола сервер обслуживания IP телефонии и приложение Telegram могут использовать протокол UDP, что в дальнейшем может поспособствовать развитию взаимосвязи этих систем.
