СПОСОБ И СИСТЕМА ОБЕСПЕЧЕНИЯ УСЛУГ ГРУППОВОГО ИНТЕРАКТИВНОГО ОБЩЕНИЯ (ЧАТА)
METHOD AND SYSTEM FOR PROVISION OF GROUP INTERACTIVE COMMUNICATION SERVICES (CHAT)

Область изобретения
Настоящее изобретение относится к технологии мгновенного обмена сообщениями, в частности к способам и системам обеспечения услуг группового интерактивного общения (чата) в системе мгновенного обмена сообщениями.
Предпосылки изобретения
Перспективный способ связи с помощью компьютерных сетей постепенно изменяет жизнь людей. Основанный на этой связи мгновенный обмен сообщениями все больше привлекает внимание и ценится благодаря таким своим качествам, как удобство, скорость и дешевизна. В настоящее время отмечены две заслуживающие внимания тенденции в области мгновенного обмена сообщениями. Первой является связь "одного со многими" или "многих со многими", унаследованная от прежнего режима связи "одного с одним", второй - интерактивное голосовое общение (аудиочат) в комплексе с интерактивным текстовым общением (чат). В результате стала актуальной проблема разработки технологии мгновенного обмена сообщениями для организации чата с участием более двух людей посредством текстового и голосового обмена, т.е. группового чата, объединяющего две эти тенденции путем использования как текстового, так и аудиочата. Например, компании или организации с помощью группового чата для своих сотрудников могут экономить время и место, необходимые для совещаний или ежедневного общения.
В уровне техники существуют два общих технических решения для обеспечения услуг группового чата. Одно решение использует традиционную технологию одноранговых (Р2Р) соединений, другое - процесс пересылки через сервер.
Далее раскрывается способ обеспечения группового чата с применением Р2Р-технологии. На фиг.1 показана структурная схема обеспечения группового чата с применением Р2Р-технологии. В схеме на фиг.1 предполагается, что в чат-группу входят четыре узла-участника: А, В, С и D, между каждыми двумя узлами из четырех установлены Р2Р-соединения, т.е. между А и В, В и С, С и D, D и А соответственно. Когда говорит пользователь узла А, необходимо передавать содержание его речи отдельно на каждый из узлов В, С и D по Р2Р-соединениям, т.е. обеспечивать связь по трем Р2Р-соединениям.
Очевидно, что ограничения вышеуказанного способа состоят в том, что необходимо поддерживать Р2Р-соединения между одним узлом и остальными узлами группы, поскольку каждый пользователь узла выступает в групповом чате поочередно как говорящий и слушающий, а нарушение Р2Р-соединения влияет на качество общения в целом. На практике одновременно с ростом числа узлов, входящих в группу, растет и число Р2Р-соединений, необходимых для организации группового чата. Таким образом, некоторые узлы с недостаточным сетевым ресурсом могут испытывать затруднения из-за недостаточной полосы пропускания, из-за этого снижается уровень обеспечения группового чата.
Ниже раскрывается способ обеспечения группового чата с применением процесса пересылки через сервер. На фиг.2 показана структурная схема обеспечения группового чата с использованием процесса пересылки через сервер. Согласно схеме, представленной на фиг.2, предполагается, что в группу входит четыре узла: А, В, С и D. Вместо использования прямых соединений друг с другом каждый из четырех узлов подключен к центральному серверу, обеспечивающему услуги мгновенного обмена сообщениями. Когда говорит пользователь узла А, узел А передает данные и список узлов группы на центральный сервер, а этот сервер пересылает данные на узлы, входящие в этот список, т.е. на узлы В, С и D, и возвращает результат пересылки на узел А.
Преимуществом раскрытого способа является то, что каждый узел чат-группы использует меньше ресурсов и требует меньших затрат, поскольку каждому узлу в чат-группе необходимо поддерживать только одно соединение с центральным сервером и не требуется устанавливать связь с другими узлами. Однако очевидным недостатком метода является пересылка сервером не только текстовых, но и аудиоданных, что приводит к большой его загрузке. Более того, центральный сервер в общем случае пересылает аудиоданные от нескольких групп чата, так что ресурсы, необходимые центральному серверу, значительно увеличиваются, что предъявляет высокие требования к его аппаратному обеспечению. В частности, при достижении определенного порога потребления ресурсов центральным сервером эффективность работы группового чата значительно снижается.
Сущность изобретения
Главной целью настоящего изобретения является разработка способа и системы обеспечения услуг группового чата, снижающих требования к полосе пропускания сети и к аппаратному обеспечению компьютеров для группового чата.
Заявленная цель достигнута за счет раскрытого ниже технического решения.
Способ обеспечения услуг группового чата содержит следующие действия:
создание чат-группы, включающей в себя первичный узел и один или несколько вторичных узлов, причем первичный узел устанавливает Р2Р-соединение с каждым из вторичных узлов;
прием аудиоданных, передаваемых вторичными узлами через Р2Р-соединения, микширование принятых аудиоданных с аудиоданными первичного узла для формирования смешанных аудиоданных и передача первичным узлом смешанных аудиоданных вторичным узлам по Р2Р-соединениям; и
прием вторичными узлами смешанных аудиоданных.
Другой способ обеспечения услуг группового чата содержит следующие действия:
создают чат-группу, при этом узлы чат-группы осуществляют групповой аудиочат и групповой текстовый чат;
при этом осуществление группового аудиочата содержит следующие действия: назначают один из узлов группы на роль первичного, а остальные узлы группы на роли вторичных, при этом первичный узел устанавливает Р2Р-соединение с каждым из вторичных узлов; принимают аудиоданные, отправленные вторичными узлами через Р2Р-соединения, микшируют принятые аудиоданные с аудиоданными первичного узла для формирования смешанных аудиоданных, первичный узел передает смешанные аудиоданные на вторичные узлы по Р2Р-соединениям; вторичные узлы принимают смешанные аудиоданные;
при этом осуществление группового текстового чата содержит следующие действия: инициатор чат-группы передает список узлов группы на центральный сервер, обеспечивающий услуги мгновенной передачи сообщений; узел чат-группы передает текстовые данные на центральный сервер; центральный сервер пересылает текстовые данные, переданные узлом, остальным узлам из списка группы.
Система для обеспечения услуг группового чата содержит первичный узел и один или несколько вторичных узлов, при этом:
первичный узел соответственно подключен к каждому из вторичных узлов посредством Р2Р-канала и способен принимать аудиоданные, переданные вторичными узлами, микшировать принятые аудиоданные с аудиоданными первичного узла для формирования смешанных аудиоданных и передавать смешанные аудиоданные на вторичные узлы.
Другая система для обеспечения услуг группового чата содержит первичный узел, один или несколько вторичных узлов и центральный сервер, при этом:
первичный узел соединен с каждым из вторичных узлов посредством Р2Р-канала и способен принимать аудиоданные, переданные вторичными узлами, микшировать принятые аудиоданные с аудиоданными первичного узла для формирования смешанных аудиоданных и передавать смешанные аудиоданные на вторичные узлы;
центральный сервер подключен к первичному и вторичным узлам и способен принимать текстовые данные, переданные с первичного и вторичных узлов, и пересылать текстовые данные на другие узлы.
Из раскрытого выше технического решения можно видеть, что в соответствии с решением настоящего изобретения узел чат-группы действует в качестве основного устройства (хоста), и этот хост устанавливает Р2Р-соединения со всеми другими узлами, микширует аудиоданные, переданные другими узлами по Р2Р-соединениям, с аудиоданными самого хоста для формирования смешанных аудиоданных и передает смешанные аудиоданные на другие узлы по Р2Р-соединениям. По сравнению с уровнем техники настоящее изобретение имеет следующие преимущества. Во-первых, благодаря установлению Р2Р-соединений только между хостом и каждым из остальных узлов вместо соединений "каждого с каждым" количество Р2Р-соединений сокращается и соответственно уменьшаются требования к полосе пропускания сети для осуществления группового чата. Во-вторых, хост формирует смешанные аудиоданные из принятых аудиоданных и аудиоданных самого хоста и передает смешанные аудиоданные на остальные узлы. Объем пересылаемых аудиоданных значительно сокращается, и поскольку хост пересылает аудиоданные только в пределах группы, использование ресурсов и загрузка хоста снижаются, а трафик данных в сети значительно уменьшается. В результате, организуя текстовый чат и аудиочат различными способами, можно обеспечить корректную работу текстового чата в режиме реального времени, устранив в то же время недостатки традиционного аудиочата. Следовательно, ресурсы используются более эффективно. Из приведенного описания видно, что настоящее изобретение позволяет снизить требования к полосе пропускания сети и использованию ресурсов группового чата, увеличивая тем количество успешных реализаций групповых чатов.
Краткое описание фигур.
На фиг.1 приведена известная из уровня техники структурная схема для обеспечения услуг группового чата с использованием Р2Р-технологии.
На фиг.2 приведена известная из уровня техники структурная схема для обеспечения услуг группового чата с использованием процесса пересылки через сервер.
На фиг.3 приведена усовершенствованная структурная схема обеспечения услуг группового чата согласно реализации заявленного изобретения.
На фиг.4 приведена блок-схема алгоритма обеспечения услуг группового чата согласно реализации настоящего изобретения.
Подробное раскрытие изобретения
Для более ясного понимания предмета, технического решения и достоинств настоящего изобретения его подробное раскрытие приводится ниже со ссылкой на конкретные варианты реализации и соответствующие рисунки.
На фиг.3 приведена усовершенствованная структурная схема обеспечения услуг группового чата согласно реализации настоящего изобретения. Как показано на фиг.3, объекты объединены в группу, включающую центральный сервер Е, хост А и узлы В, С и D, при этом хост А и узлы В, С и D соединены с сервером Е. Хост А соединен с узлом В, С и D напрямую посредством соответствующих Р2Р-каналов.
Особенность представленной системы состоит в том, что текстовый и аудиочаты поддерживают различными способами. При проведении текстового чата узел передает текстовые данные на центральный сервер, когда пользователь узла говорит, а сервер пересылает эти данные на другие узлы в чат-группе. При проведении аудиочата хост А принимает аудиоданные, передаваемые с узлов В, С и D по Р2Р-каналам в режиме реального времени, микширует принятые аудиоданные с аудиоданными хоста А для формирования смешанных аудиоданных, а затем передает смешанные аудиоданные на узлы В, С и D по Р2Р-каналам.
В качестве хоста А предпочтительно использовать компьютерный терминал, а в качестве узлов В, С и D могут использоваться компьютерные терминалы, мобильные телефоны или карманные компьютеры (КПК).
На основании раскрытой выше структуры при реализации настоящего изобретения предложен способ организации группового чата, в котором текстовые и аудиоданные группового чата передаются различными способами.
Согласно реализации настоящего изобретения текстовые данные обрабатывают на центральном сервере, используя процесс пересылки, раскрытый в разделе "Предпосылки изобретения". Поскольку объем текстовых данных относительно мал, а узлы группы передают пакеты данных на центральный сервер только, когда пользователи узлов вводят текст, и, кроме того, на центральном сервере уже имеется совершенный механизм обработки текстовых данных, то стабильность и точность приема и передачи текстовых данных при работающем групповом чате в значительной степени обеспечена.
В реализации настоящего изобретения аудиоданные обрабатываются способом, отличным от известного из уровня техники. Инициатор чат-группы выбирает один из ее узлов на роль хоста, а хост устанавливает Р2Р-соединения со всеми остальными узлами. После установки связи хост принимает аудиоданные по Р2Р-соединениям от всех остальных узлов, микширует свои аудиоданные с аудиоданными узлов, затем рассылает смешанные аудиоданные на остальные узлы по Р2Р-соединениям.
На фиг.4 приведена блок-схема алгоритма обеспечения услуг группового чата согласно реализации настоящего изобретения. В настоящем изобретении А - это инициатор чат-группы, В, С и D - узлы, входящие в группу, а Е - центральный сервер. Все узлы группы зарегистрированы на центральном сервере и остаются на связи. Как показано на фиг.4, процесс реализации, в основном, состоит из следующих шагов.
На шаге 401 инициатор А чат-группы формирует список узлов группы и передает этот список на центральный сервер Е. В данный список входят узлы А, В, С и D, причем инициатор А назначает себя на роль основного устройства (хоста) чат-группы.
На шаге 402 хост А инициирует запросы соединения для установления Р2Р-соединений с узлами В, С и D соответственно, т.е. Р2Р-соединений между А и В, А и С, А и D; при этом в каждый из запросов соединения включается приглашение к участию в групповом чате.
На шаге 403, если один из узлов группы распознает вводимые данные как текстовые, этот узел группы считают передающим узлом, и этот передающий узел отправляет текстовые данные на центральный сервер Е.
На шаге 404 центральный сервер Е принимает текстовые данные от передающего узла и пересылает их на все остальные узлы, указанные в списке, кроме передающего.
На шаге 405 все остальные узлы, кроме передающего, принимают текстовые данные передающего узла.
На шаге 406 после установления Р2Р-соединений хост А принимает аудиоданные, переданные по Р2Р-соединениям, в режиме реального времени, т.е. принимает в режиме реального времени аудиоданные, соответственно, от узлов В, С и D.
Аудиочат отличается от текстового чата тем, что аудиоданные формируются независимо от того, говорят или нет пользователи узлов группы, и тем, что аудиоданные могут передаваться на хост со всех узлов группы, кроме самого хоста. Если пользователи узлов не говорят, передаваемые аудиоданные будут аудиокадрами с записью молчания. Аудиоданные, генерируемые хостом, если пользователь хоста не говорит, также будут аудиокадрами с записью молчания.
На шаге 407 хост А формирует и сохраняет для каждого узла группы смешанные аудиоданные, микшируя аудиоданные всех остальных узлов группы, кроме одного из них. В данной реализации хост А формирует и сохраняет три набора смешанных аудиоданных. Подробнее: хост А формирует и сохраняет смешанные аудиоданные 1 для узла В путем микширования аудиоданных, переданных с узлов С и D, с аудиоданными хоста А; формирует и сохраняет смешанные аудиоданные 2 для узла С путем микширования аудиоданных, переданных с узлов В и D, с аудиоданными хоста А; формирует и сохраняет смешанные аудиоданные 3 для узла D путем микширования аудиоданных, переданных с узлов В и С, с аудиоданными хоста А.
Хост А может сохранять смешанные аудиоданные в любой доступной памяти. Предпочтительно, хост А сохраняет смешанные аудиоданные в своем буфере.
На шаге 408 хост А передает сформированные смешанные аудиоданные на узлы группы по Р2Р-соединениям в режиме реального времени. В данной реализации хост А передает смешанные аудиоданные 1, смешанные аудиоданные 2 и смешанные аудиоданные 3 на узлы В, С и D, соответственно.
На шаге 409 узлы В, С и D принимают смешанные аудиоданные от хоста А по Р2Р-соединениям и воспроизводят их.
На шаге 410, когда групповой чат завершается, хост А разъединяет Р2Р-соединения с узлами В, С и D и в то же время передает сообщение об окончании чата на центральный сервер Е.
На шаге 411 центральный сервер Е удаляет сохраненный ранее список узлов чат-группы.
Таким образом, групповой чат между узлами группы А, В, С и D завершается.
Следует заметить, что на шагах с 403 по 405 выполняется процедура обработки текстовых данных группового чата, на шагах с 406 по 409 выполняется процедура обработки аудиоданных группового чата, и обе эти процедуры могут выполняться параллельно.
На шаге 401 инициатор чат-группы действует в качестве хоста и инициирует Р2Р-соединения с остальными узлами группы. В других реализациях настоящего изобретения инициатор чат-группы может назначить на роль хоста другой узел группы, поскольку эта реализация предъявляет высокие требования к аппаратному обеспечению компьютера и полосе пропускания сети хоста. Если инициатор не может удовлетворить эти требования, необходимо назначить на роль хоста другой узел группы, аппаратное обеспечение и сетевое окружение которого удовлетворяют требованиям успешного проведения группового чата.
Когда инициатор назначает на роль хоста другой узел, шаг 401 делится на два подшага:
на шаге 4011 инициатор чат-группы формирует список узлов группы и сохраняет этот список на центральном сервере Е. Одновременно инициатор чат-группы через центральный сервер Е передает на назначаемый узел запрос назначения, содержащий список узлов группы;
на этапе 4012, если назначаемый узел, принимающий запрос, принимает это назначение от инициатора, то он возвращает инициатору подтверждение назначения и устанавливает Р2Р-соединения с остальными узлами группы, входящими в полученный список узлов.
Как видно из шагов 407 и 408, хост в данной реализации формирует и передает смешанные аудиоданные, руководствуясь следующими принципами: хост микширует аудиоданные всех остальных узлов, кроме одного узла, и передает смешанные аудиоданные на этот узел, таким образом, хост формирует и передает смешанные аудиоданные для каждого из остальных узлов группы. Следовательно, каждый узел группы может принимать аудиосигналы всех остальных узлов. В других вариантах реализации настоящего изобретения для упрощения процесса аудиомикширования хост микширует аудиоданные всех узлов группы, формирует смешанные аудиоданные для всех остальных узлов группы и передает эти смешанные аудиоданные на все остальные узлы. В этом случае пользователь каждого узла может слышать свой собственный голос, при этом характеристики аудиосвязи группового чата ухудшаются, но реализация упрощается.
На шаге 407 хост формирует и сохраняет смешанные аудиоданные после микширования нескольких потоков аудиоданных. В других вариантах реализации настоящего изобретения после микширования нескольких потоков аудиоданных хост сжимает и кодирует смешанные аудиоданные и на шаге 408 передает эти сжатые смешанные аудиоданные; затем на шаге 409 узел, принявший смешанные аудиоданные, распаковывает сжатые смешанные аудиоданные, тем самым объем аудиоданных в групповом чате существенно уменьшается.
На шагах 407 и 408 хост передает сформированные смешанные аудиоданные на другие узлы группы в режиме реального времени. В других вариантах реализации настоящего изобретения хост может передавать смешанные аудиоданные с интервалами, т.е. предварительно задается интервал, и хост передает на остальные узлы группы смешанные аудиоданные, сформированные в течение некоторого промежутка времени.
Для передачи смешанных аудиоданных с интервалами хост предварительно выделяет область памяти для каждого из узлов группы, кроме самого хоста, и сохраняет смешанные аудиоданные в области памяти, выделенной заранее при формировании смешанных аудиоданных. Например, если установлен интервал, равный 5 секундам, хост сохраняет смешанные аудиоданные, сформированные для каждого из узлов группы, в области памяти, выделенной предварительно для этих узлов. Кроме того, каждые 5 секунд хост выбирает смешанные аудиоданные, сформированные за 5-секундный интервал, из соответствующей области памяти и передает смешанные аудиоданные на другие узлы группы.
В раскрытой выше реализации в начале группового чата инициатор формирует список узлов группы, и групповой чат проводится между узлами группы, включенными в этот список. В других реализациях настоящего изобретения хост может добавлять или удалять узлы чат-группы во время проведения группового чата. Хост устанавливает Р2Р-соединение с добавляемым пользователем и посылает на центральный сервер запрос добавления пользователя в список узлов группы, в результате чего пользователь добавляется к чат-группе. Аналогично, хост разъединяет Р2Р-соединение с удаляемым узлом и посылает на центральный сервер запрос удаления узла из списка узлов чат-группы, в результате чего узел исключается из чат-группы. Кроме того, если узел группы, отличный от хоста, покидает чат-группу по своей инициативе, он может разъединить Р2Р-соединение с хостом, а хост передаст на центральный сервер запрос на удаление узла из списка группы.
Из приведенных выше технических решений можно видеть, что способ, предлагаемый настоящим изобретением, совершенствует первый и второй способы, известные из уровня техники, что можно пояснить следующим образом.
В соответствии с первым известным способом соединения Р2Р устанавливаются между каждыми двумя узлами чат-группы. Если число узлов в группе равно N, требуемое количество соединений Р2Р составит .
В данной реализации настоящего изобретения необходимо установить соединения Р2Р только между хостом и каждым из остальных узлов, и при числе узлов в группе, равном N, требуемое количество соединений Р2Р составит всего лишь (N-1). По сравнению с первым способом прототипа при реализации настоящего изобретения предъявляются высокие требования только к аппаратному обеспечению основного компьютера (хоста) и его сетевого окружения без каких-либо особых требований к аппаратному обеспечению компьютера и сетевого окружения остальных узлов группы. Из сравнения видно, что в реализации настоящего изобретения при росте числа N количество необходимых Р2Р-соединений значительно меньше, и преимущество настоящего изобретения становится более очевидным, а значит, настоящее изобретение особенно подходит для приложений, в которых имеется множество узлов в чат-группах. Кроме того, благодаря установлению Р2Р-соединений между хостом и каждым из остальных узлов группы, хост может без труда добавлять или удалять узлы группы, а остальные узлы могут также без труда покидать чат-группу, что облегчает управление узлами чат-группы.
В соответствии со вторым способом, известным из уровня техники, сервер осуществляет контроль над пересылкой аудиоданных всех узлов чат-группы, и когда количество чат-групп, чьи аудиоданные пересылаются сервером, возрастает, загрузка сервера и трафик данных в сети значительно увеличиваются. В реализации настоящего изобретения один узел чат-группы работает в режиме хоста, микширующего принятые аудиоданные узлов своей собственной группы, и передает смешанные аудиоданные на остальные узлы. Например, длина магнитной ленты для записи сольного пения в течение 3 минут будет той же, что и для записи хора в течение тех же 3 минут, аналогично, при приеме узлами группы смешанных аудиоданных они получат тот же объем данных, независимо от того, сколько пользователей на узлах общаются в чат-группе. Поскольку объем данных находится под контролем, влияние на качество аудиосигнала задержек в сети и перегрузок может быть значительно уменьшено. Из приведенного сравнения можно видеть, что реализация настоящего изобретения может уменьшить загрузку центрального сервера при значительном снижении трафика в сети.
Другим заметным преимуществом настоящего изобретения является то, что текстовые данные и аудиоданные группового чата обрабатываются раздельно, т.е. текстовые данные обрабатываются способом, известным из уровня техники, в то время как аудиоданные обрабатываются усовершенствованным способом в соответствии с настоящим изобретением. Следовательно, может быть обеспечена надежная работа текстового чата в режиме реального времени и одновременно преодолен недостаток традиционного аудиочата, а именно высокие требования к полосе пропускания сети и аппаратному обеспечению компьютера. В то же время трафик данных в сети уменьшается, так что ресурсы могут использоваться более эффективно.
Способы и системы, раскрытые в настоящем изобретении, могут соответствующим образом изменяться при конкретной реализации для удовлетворения более развернутых требований в специфических случаях. В связи с этим очевидно, что конкретные варианты реализации, соответствующие настоящему изобретению, являются иллюстративными и не могут ограничивать объем патентной защиты настоящего изобретения.