ОДНОРАНГОВАЯ ГЛОБАЛЬНАЯ СИСТЕМА СВЯЗИ
PEER-TO-PEER GLOBAL COMMUNICATION NETWORK

Область техники
Настоящее изобретение, в общем, относится к осуществлению связи через глобальную вычислительную сеть и, более конкретно, к обмену данными.
Уровень техники
Многоузловые системы мобильной радиосвязи хорошо известны. Они, прежде всего, используются, чтобы обеспечивать экстренную связь с полицейскими, пожарными и другими экстренными службами. Эти системы типично используют арендуемые линии связи, чтобы связывать узлы радиоретрансляторов с центральным сервером управления вызовами. Периодические затраты на арендуемые линии связи так же, как и капитальные инвестиции, требуемые для узлов радиоретрансляторов и специализированного сервера управления соединениями, приводят в результате к относительно высоким системным затратам. Соответственно, эти системы типично эксклюзивно принадлежат и управляются государственными органами.
Профессиональные и коммерческие организации, такие как сети розничных магазинов, школьные системы и строительные компании, также могут извлекать выгоду из использования многоузловых систем наземной мобильной радиосвязи, но из-за периодических расходов и требуемых капитальных инвестиций, как правило, не разворачивают такие системы. На самом деле, компаниям, которые работают в больших географических областях или в разных регионах, могут требоваться сотни или даже тысячи узлов радиоретрансляторов, чтобы реализовать подходящую многоузловую систему наземной мобильной радиосвязи. Более того, такая система потребует множество центральных серверов вызовов, которые сами по себе необходимо соединять по арендуемым линиям, таким образом, создавая значительные дополнительные операционные расходы.
Сущность изобретения
Настоящее изобретение относится к способу поддержки передачи данных по глобальной вычислительной сети. Способ может включать в себя прием первого сообщения от первого узла связи, первое сообщение передается через логический порт в узле связи, и сохранение логического порта открытым в течение, по меньшей мере, минимального периода. Второе сообщение может быть принято от второго узла связи, второе сообщение запрашивает идентификатор, ассоциированный с первым узлом связи. Дополнительно, третье сообщение может быть передано первому узлу связи через логический порт. Третье сообщение может идентифицировать второй узел связи в качестве кандидата для установления одноранговой линии связи, по которой содержимое обмена данными может быть передано первому удаленному устройству.
Способ также может включать в себя прием первого сообщения от первого узла связи, первое сообщение запрашивает, по меньшей мере, один адрес, ассоциированный, по меньшей мере, со вторым узлом связи, который ассоциирован с группой вызова, из которой первое удаленное устройство запросило прием содержимого обмена данными. Второе сообщение может быть принято от первого узла связи. Второе сообщение может включать в себя, по меньшей мере, один адрес и может запрашивать соединение, по меньшей мере, со вторым удаленным устройством, ассоциированным с группой вызова. По меньшей мере, третье сообщение может быть передано, по меньшей мере, второму узлу связи, запрашивая резервирование распространения для содержимого обмена данными, сформированного, по меньшей мере, вторым удаленным устройством.
Способ дополнительно может включать в себя передачу первого сообщения из первого узла связи, первое сообщение передается через логический порт в узле связи. Второе сообщение может быть принято в первом узле связи через логический порт, второе сообщение поддерживает логический порт открытым в течение, по меньшей мере, минимального периода. Способ также может включать в себя прием через логический порт третьего сообщения от посредника. Третье сообщение может включать в себя идентификатор, ассоциированный со вторым узлом связи, с которым первое удаленное устройство стало связанным. Кроме того, четвертое сообщение может быть передано второму узлу связи, четвертое сообщение запрашивает регистрацию первого узла связи с помощью второго узла связи и устанавливает одноранговую линию связи, по которой содержимое обмена данными передается первому удаленному устройству.
Способ также может включать в себя, во втором узле связи, прием от первого удаленного устройства первого сообщения, запрашивающего установление связи со вторым узлом связи, первое удаленное устройство имеет первый узел связи в качестве своего домашнего узла связи. Кроме того, второе сообщение может быть передано первому узлу связи, второе сообщение указывает, что первое удаленное устройство запрашивает прием содержимого обмена данными, передаваемого участниками, по меньшей мере, одной группы вызова.
Краткое описание чертежей
Предпочтительные варианты осуществления настоящего изобретения будут описаны ниже более подробно со ссылками к сопровождающим чертежам, на которых:
Фиг.1 изображает систему связи, которая полезна для понимания настоящего изобретения;
Фиг.2 изображает блок-схему передачи сигналов, которая полезна для понимания настоящего изобретения; и
Фиг.3 изображает блок-схему передачи сигналов, которая полезна для понимания настоящего изобретения.
Подробное описание
В то время как спецификация завершается формулой, определяющей признаки изобретения, которые рассматриваются как новые, предполагается, что изобретение будет лучше понято из рассмотрения описания вместе с чертежами. Как требуется, в материалах настоящей заявки раскрыты подробные варианты осуществления настоящего изобретения; однако, должно быть понятно, что раскрытые варианты осуществления являются только примерными относительно изобретения, которое может быть осуществлено в различных формах. Следовательно, специфичные структурные и функциональные подробности, раскрытые в материалах настоящей заявки, не должны быть интерпретированы в качестве ограничивающих, а просто в качестве основы для формулы изобретения и в качестве типичной основы для изучающих специалистов в данной области техники, чтобы по-разному использовать настоящее изобретение в практически любой уместным образом детализированной конструкции. Более того, термины и фразы, используемые в материалах настоящей заявки, не предназначены, чтобы быть ограничивающими, а скорее, чтобы предоставлять понятное описание изобретения.
Фиг.1 изображает систему 100 связи, которая полезна для понимания настоящего изобретения. Система 100 связи может включать в себя сеть 102 связи, которая может содержать глобальную вычислительную сеть (WAN), такую как Интернет, всемирную паутину, сеть диспетчерской связи, сеть межсистемной связи (например, сеть сотовой связи), коммутируемую телефонную сеть общего пользования (PSTN) и т.п. Сеть связи также может содержать одну или более локальных вычислительных сетей (LAN), одну или более городских вычислительных сетей (MAN) и/или любые другие сети или системы, по которым могут распространяться сигналы связи. В этом отношении сеть 102 связи может включать в себя проводные и/или беспроводные линии связи.
Система 100 связи может включать в себя множество удаленных устройств 104, 106, 108, которые связываются через сеть 102 связи. Удаленные устройства 104-108 могут быть, например, мобильными станциями (например, мобильными телефонами, мобильными радиостанциями, мобильными компьютерами, персональными цифровыми помощниками или т.п.), компьютерами, беспроводными игровыми устройствами, терминалами доступа, абонентскими станциями, пользовательским оборудованием или любыми другими устройствами, соответствующим образом сконфигурированными, чтобы связываться через сеть беспроводной связи. По существу, удаленные устройства 104-108 могут содержать один или более процессоров/контроллеров, приемопередающие устройства и/или другие подходящие компоненты.
В одной конфигурации, удаленные устройства 104-108 могут масштабировать и суммировать аудиоинформацию, принятую от множества аудиоисточников (например, аудио, принятое от множества других удаленных устройств во время группового вызова или конференц-связи). В конфигурации, в которой удаленные устройства 104-108 принимают множество видеосигналов, например, во время группового вызова или вызова конференц-связи, удаленные устройства 104-108 могут представлять видеосигналы независимо, например, представляя каждый видеосигнал в разной части дисплея или переключаясь между видеосигналами.
Удаленные устройства 104-108 могут осуществлять доступ к сети 102 связи через узлы 110, 112, 114, 116 связи. Каждый узел 110-116 связи может включать в себя один или более соответствующих приемопередатчиков 118, 120, 122, 124, чтобы поддерживать связь с удаленными устройствами 104-108. Приемопередатчики 118-124 могут модулировать и демодулировать сигналы, чтобы преобразовывать сигналы из одной формы в другую, и могут передавать и/или принимать такие сигналы по одной или нескольким различным беспроводным линиям связи. На чертеже приемопередатчики 118-124 могут быть сконфигурированы, чтобы передавать данные по беспроводной IEEE 802-связи, например, 802.11 и 802.16 (WiMAX), WPA или WPA2. В другом примере, приемопередатчики 118-124 могут передавать данные через GSM, TDMA, CDMA, WCDMA, OFDM или прямое беспроводное соединение. Более того, в одной конфигурации один или более приемопередатчиков 118-124 могут связываться с удаленными устройствами 104-108 с помощью персональной радиослужбы, например, в соответствии с руководствами, установленными Федеральной комиссией связи (FCC) США для общей службы подвижной радиосвязи (GMRS) и/или службы семейной радиосвязи (FRS), хотя изобретение не ограничено в этом отношении.
Каждый из узлов 110-116 связи также может включать в себя один или более соответствующих сетевых адаптеров 126, 128, 130, 132. Сетевые адаптеры 126-132 могут содержать, например, модемы связи, проводные и/или беспроводные приемопередатчики и/или любые другие устройства, которые подходящим образом могут передавать данные по сети 102 связи. Через сетевые адаптеры 126-132 узлы 110-116 связи могут связываться с сервером 182 и друг с другом по сети 102 связи.
Каждый из узлов 110-116 связи дополнительно может включать в себя стюарда 134, 136, 138, 140 обмена данными (далее в данном документе "стюард"), агента 142, 144, 146, 148 обмена данными (далее в данном документе "агент"), дубликатор 150, 152, 154, 156 пакетов, логический переключатель 158, 160, 162, 164, транслятор 166, 168, 170, 172 сетевых адресов (NAT) и логические порты 174, 176, 178, 180.
Стюарды 134-140 могут поддерживать обмен данными для удаленных устройств 104-108, чьи домашние узлы связи являются узлами связи, с которыми стюарды 134-140 ассоциированы, несмотря на то, где удаленные устройства 104-108 установили присутствие сети. Например, если узел 110 связи является домашним узлом связи для удаленного устройства 104, стюард 134 может поддерживать обработку вызовов для удаленного устройства 104, даже пока удаленное устройство 104 находится в роуминге за пределами зоны обслуживания узла 110 связи.
Каждый из стюардов 134-140 может хранить информацию о наличии сети для своих соответствующих удаленных устройств 104-108. Например, когда удаленное устройство 104 передается по обслуживанию, или иначе устанавливает наличие сети, в узел 112 связи, информация о таком событии может быть передана стюарду 134. Информация может быть передана удаленным устройством 104, узлом 112 связи или любым другим подходящим компонентом системы 100 связи. Соответственно, когда узел 110 связи принимает содержимое обмена данными, адресованное удаленному узлу 104, стюард 134 может пересылать такое содержимое узлу 112 связи, который может передавать содержимое удаленному устройству 104 через приемопередатчик 120.
Агенты 142-148 могут посредничать при установлении вызова между удаленными устройствами 104-108 и домашними стюардами 134-140, с которыми удаленные устройства 104-108 ассоциированы. В противоположность стюардам 134-140 службы, предоставленные агентами 142-148, могут быть зависимыми от местоположения. Т.е. агент 142 может посредничать при установлении вызова для любых удаленных устройств 104-108, которые стали связанными с узлом 110 связи (например, установили наличие сети в узле 110 связи), агент 144 может посредничать в установлении вызова для любых удаленных устройств 104-108, которые стали связанными с узлом 112 связи, и агент 146 может посредничать при установлении вызова для любых удаленных устройств 104-108, которые стали связанными с узлом 114 связи, и т.д. Например, если удаленное устройство 104 стало связанным с узлом 112 связи, и домашним узлом удаленного устройства является узел 110 связи, агент 144 может посредничать при установлении вызова между удаленным устройством 104 и его домашним стюардом 134. Агенты 142-148 могут посредничать при установлении вызова между удаленными устройствами 104-108 и стюардами 134-140 посредством передачи информации об установлении вызова стюардам 134-140. Информация об установлении вызова может включать в себя, например, идентификаторы, принятые от удаленных устройств 104-108, которые идентифицируют одну или более групп вызова, с которыми удаленные устройства 104-108 хотят связаться. В информации установления вызова группа вызова может быть представлена одним идентификатором группы или списком из одного или более получателей вызова.
Дубликаторам 150-156 пакетов может быть поставлена задача дублирования пакетов содержимого обмена данными (далее в данном документе "пакетов"), которые имеют множество предназначенных получателей, и передачи таких пакетов получателям. Например, предположим, что удаленное устройство 104 передает пакет, содержащий содержимое обмена данными, и идентифицирует удаленные устройства 106, 108 как предназначенных получателей пакета. Удаленное устройство 104 может передавать такой пакет своему домашнему стюарду 134 (через приемопередатчик 120 и агента 144). Стюард 134 затем может пересылать пакет и идентификаторы получателей дубликатору 150 пакетов. Дубликатор 150 пакетов может дублировать пакет, когда может быть необходимо, чтобы передавать пакет каждому из удаленных устройств 106, 108, идентифицированных посредством идентификаторов получателей.
Идентификатором получателя может быть телефонный номер, IP-адрес, унифицированный указатель ресурса (URL) или любой другой идентификатор, подходящий для идентификации предназначенного получателя (например, удаленного устройства 108) пакета. В конфигурации, в которой IP-адрес или URL домашнего стюарда получателя (например, домашнего стюарда 138) известен стюарду 134, стюард 134 также может передавать дубликатору 150 пакетов адрес домашнего стюарда получателя, который может быть IP-адресом, URL или любым другим подходящим идентификатором.
Узлы 110-116 связи также могут включать в себя логические переключатели 158-164. Логические переключатели 158-164 могут направлять данные в/от соответствующих ресурсов в соответствующих узлах 110-116 связи. Например, логический переключатель 160 может направлять данные, принятые приемопередатчиком 120, агенту 144. Подобным образом, логический переключатель 160 может направить сетевому адаптеру 128 данные, которые должны быть переданы узлом 112 связи по сети 102 связи. Более того, логический переключатель 160 может направлять данные, которые передаются между различными компонентами 120, 128, 136, 142, 152 узла 112 связи.
NAT 166-172 могут осуществлять трансляцию сетевого адреса и предотвращать неавторизованный доступ к или из соответствующих узлов 110-116 связи. В некоторых конфигурациях NAT могут быть осуществлены как компоненты соответствующих брандмауэров (например, брандмауэры с включенным NAT), или соответствующие брандмауэры могут использоваться вместо NAT 166-172. Соответственно, повсюду в этой спецификации любая ссылка на NAT должна пониматься как обозначающая NAT, брандмауэр или брандмауэр с включенным NAT. NAT 166-172 (или соответствующие брандмауэры) могут выборочно открывать или закрывать логические порты 174-180 на своих соответствующих узлах 110-116 связи. Например, NAT 166 может выборочно открывать логический порт 174, когда узел 110 связи передает сообщение через логический порт 174, NAT 166 может поддерживать логический порт 174 открытым в течение периода времени, чтобы принимать подтверждение приема или ответ на сообщение, которое было отправлено. Если дополнительные сообщения не передаются через логический порт 174 до истечения периода времени, NAT 166 может закрывать логический порт 174.
Сервер 182 также может быть предусмотрен в качестве узла в системе 100 связи. Сервер 182 может содержать сетевой адаптер 184, через который сервер 182 связывается с узлами 110-116 связи. Сетевой адаптер 184 может содержать модем связи, проводной и/или беспроводной приемопередатчик и/или любое другое устройство(а), которое может подходящим образом передавать данные по сети 102 связи.
Сервер 182 также может включать в себя посредника 186. Посредник 186 может быть сконфигурирован, чтобы обеспечивать связь между узлами 110-116 связи. Например, если узлы 110, 112 связи защищены своими соответствующими NAT 166, 168, и NAT 166, 168 предотвращают прямую связь между узлами 110, 112 связи, посредник 186 может предоставить точку стыковки, через которую узлы 110, 112 связи могут связываться. Такой процесс описан более подробно со ссылкой на фиг.2.
Дополнительно, посредник 186 может принимать запрос от системы, которая пытается установить сеанс связи с одним или более удаленными устройствами 104-108 или группой удаленных устройств, но не может непосредственно получать доступ к удаленным устройствам из-за отсутствия знания о текущих адресах и/или местоположении удаленных устройств 104-108. Когда посредник 186 принимает такой запрос, посредник 186 может выполнить доступ к одной или более таблицам данных (или файлам данных) 188, чтобы находить уместную информацию преобразования и предоставлять такую информацию преобразования системе, ассоциированной с запросом. Такой процесс описан более подробно со ссылкой на фиг.3. Таблицы 188 данных (или файлы данных) могут быть сохранены на подходящем накопителе данных, доступном посредством сервера 182, например, электронном носителе хранения, магнитном носителе хранения, оптическом носителе хранения, магнитно-оптическом носителе хранения и/или любом другом носителе хранения, подходящем для хранения цифровой информации.
Стюарды 134-140, агенты 142-148, дубликаторы 150-156 пакетов, логические переключатели 158-164, NAT 166-172, логические порты 174-180 и посредник 186 могут быть реализованы в аппаратных средствах, программном обеспечении или комбинации аппаратных средств и программного обеспечения. Например, каждый из компонентов 134-180, 186 может представлять модуль, сегмент, или часть кода, который содержит одну или более исполняемых инструкций для осуществления указанной логической функции(ий). Дополнительно, компоненты 134-180, 186 могут быть реализованы централизованным образом в одной системе обработки или распределенным образом, где различные элементы распределены по нескольким взаимосвязанным системам обработки. Любой вид системы обработки или другого устройства, приспособленного для выполнения способов, описанных в данном документе, подходит. Примеры такой системы обработки могут включать в себя, но не только, персональный компьютер, мобильную станцию, сервер, сетевое устройство и т.п.
Программное обеспечение для осуществления способов, описанных в данном документе, может быть внедрено на устройстве хранения программы, считываемом машиной, материально осуществляя программу инструкций, исполняемую машиной, чтобы выполнять способы и процессы, описанные в данном документе. Программное обеспечение также может быть внедрено в прикладном продукте, который содержит все признаки, разрешающие осуществление способов, описанных в данном документе, и который, когда загружен в системе обработки, способен выполнять эти способы.
Более того, должно быть отмечено, что компоненты, изображенные на фиг.1, иллюстрируют архитектуру, функциональность и работу возможных реализаций системы 100 связи согласно различным вариантам осуществления настоящего изобретения. Тем не менее, в соответствии с учениями, содержащимися в данном документе, различные модификации в системе и описанных компонентах могут стать очевидными специалисту в области техники. Любые системы/компоненты, получающиеся в результате таких модификаций, находятся в предназначенных рамках настоящего изобретения.
Фиг.2 изображает блок-схему 200 передачи сигналов связи, а фиг.3 изображает блок-схему 300 передачи сигналов связи, каждая из которых полезна для понимания настоящего изобретения. Блок-схемы 200, 300 передачи сигналов изображают передачу данных между удаленными устройствами, стюардами, агентами и посредником. Приемопередатчики 118-124, сетевые адаптеры 126-132, 184, дубликаторы 150-156 пакетов, NAT 166-172, логические порты 174-180, сеть 102 связи и/или другие компоненты системы могут поддерживать передачу таких сигналов, но не показаны в блок-схеме передачи сигналов в целях ясности.
Обращаясь к фиг.2, блок-схема 200 передачи сигналов предоставляет способ установления связи между удаленным устройством 104 и узлом 112 связи, который не является домашним узлом удаленного устройства. Блок-схема 200 передачи сигналов может начинаться с системы в состоянии, в котором первый узел 110 связи и второй узел 112 связи защищены своими соответствующими NAT, и такие NAT обычно сохраняют закрытыми порты, через которые стюард 134 (первого узла 110) связи и агент 144 (второго узла 112 связи) будут иначе принимать сообщения от других узлов связи. Также предположим, что порты посредника 186 открыты для стюардов 134, 136 и агентов 142, 144 соответствующих узлов 110, 112 связи.
Начиная с этапа 202, стюард 134 узла 110 связи может передавать сообщение "поддержания активности" посреднику 186. Сообщение поддержания активности может быть передано в ответ на событие, такое как активация узла 110 связи или пользовательский ввод, или узел 110 связи может быть сконфигурирован, чтобы периодически передавать сообщение поддержания активности.
Сообщение поддержания активности может содержать пакет, который передается посреднику 186, который, когда отправлен, приводит в результате к открытию логического порта на узле 110 связи. Логический порт может быть логическим портом, через который стюард 134 также может связываться с агентом 144. NAT узла связи может быть сконфигурирован, чтобы сохранять логический порт открытым в течение минимального периода времени после того, как сообщение поддержания активности было отправлено. Минимальный период времени может быть достаточно длительным, чтобы гарантировать, что логический порт все еще открыт, когда ответ на сообщение поддержания активности принимается от посредника на этапе 204. Период времени может длиться микросекунды, миллисекунды, секунды, минуты, часы или любой другой требуемый период времени.
Ответ на сообщение поддержания активности может быть принят узлом 110 связи через тот же логический порт, который был открыт для отправки сообщения поддержания активности, и логический переключатель узла связи может направлять ответ стюарду 134. NAT узла связи также может быть сконфигурирован, чтобы сохранять логический порт открытым в течение минимального периода времени после того, как ответ на сообщение поддержания активности был принят. В одной конфигурации следующее сообщение поддержания активности может быть отправлено, пока логический порт остается открытым, и процесс может повторять поддерживание логического порта открытым, пока это требуется. Например, процесс может повторяться в течение предварительно определенного периода времени, пока узел 110 связи остается активным, пока удаленное устройство 104 остается активным, пока приложение продолжает обрабатываться на узле 110 связи или т.п.
На этапе 206 удаленное устройство 104 может передавать сообщение присоединения к узлу агенту 144, например, в ответ на перемещение удаленного устройства 104 в зону обслуживания, обслуживаемую узлом 112 связи. Сообщение 206 присоединения к узлу может идентифицировать удаленное устройство 104 так же, как и предоставлять любую информацию, требуемую для аутентификации удаленного устройства 104 в узле 112 связи. В одной конфигурации сообщение 206 установления связи с узлом также может идентифицировать домашнего стюарда 134 удаленного устройства 104. Например, сообщение 206 присоединения к узлу может предоставлять идентификатор, IP-адрес или URL, ассоциированный со стюардом 134.
Необязательно, сообщение установления связи с узлом также может предоставлять идентификатор, IP-адрес или URL, ассоциированный с посредником 186, идентификатор, IP-адрес или URL, ассоциированный с удаленным устройством 104, и/или идентификатор типа услуги. Идентификатор типа услуги может указывать тип передаваемого содержимого обмена данными и ограничения, ассоциированные с этим типом содержимого, кодеки, доступные для обработки содержимого обмена данными, ширину полосы пропускания системы и требования и ограничения по пропускной способности и/или идентификатор принадлежности группе. Сообщение о присоединении к узлу также может идентифицировать последнего агента, с которым удаленное устройство 104 было соединено. Кроме того, список из одного или более идентификаторов агентов может быть включен в сообщение присоединения к узлу так же, как и оцененные характеристики беспроводных восходящей и нисходящей линий связи и оцененную пропускную способность данных между такими агентами и удаленным устройством 104.
На этапе 208 агент 144 может отвечать на сообщение присоединения к узлу с помощью подтверждения присоединения, которое указывает, что удаленное устройство теперь присоединилось к узлу 112 связи.
В конфигурации, в которой сообщение о присоединении к узлу не идентифицирует домашнего стюарда 134 удаленного устройства 104, на этапе 210 агент 144 может передавать сообщение посреднику 186, запрашивая идентификатор (например, IP-адрес или URL) домашнего стюарда 134 удаленного устройства. Сообщение также может включать в себя идентификатор, ассоциированный с агентом 144. На этапе 212 посредник 186 может отвечать на сообщение подтверждением приема, которое включает в себя идентификатор стюарда 134.
В конфигурации, в которой сообщение о присоединении к узлу идентифицирует домашнего стюарда 134 удаленного устройства 104, сообщение, передаваемое на этапе 210, может указывать, что удаленное устройство 104 присоединилось (например, установило наличие сети в) к узлу 112 связи так же, как и идентификатор для агента 144. Такое сообщение также может идентифицировать стюарда 134 для посредника 186, или посредник 186 может получать доступ к идентификатору для стюарда 134 из таблицы данных или файла данных посредством идентификации домашнего стюарда, который ассоциирован с удаленным устройством 104. На этапе 212 посредник 186 может подтверждать запрос, принятый на этапе 210. Необязательно, подтверждение может указывать агенту 144 логический порт, который был ранее открыт на узле 110 связи на этапах 202 и 204.
Независимо от информации, которая передается между агентом 144 и посредником 186 на этапах 210 и 212, такие сообщения могут открывать логический порт на узле 112 связи и сохранять логический порт открытым в течение периода способом, похожим на ранее описанный для сообщения и ответа, передаваемых между стюардом 134 и посредником 186 на этапах 202 и 204. Альтернативно, сообщение подтверждения активности может быть передано от агента 144 посреднику 186, и ответ на сообщение подтверждения активности может быть передан от посредника 186 агенту 144.
На этапе 214 посредник 186 может передавать стюарду 134 сообщение, которое идентифицирует агента 144 как ассоциированного с узлом 112 связи, где удаленное устройство 104 установило присутствие и, таким образом, кандидата для установления линии связи, по которой содержимое обмена данными может быть передано к и от удаленного устройства 104. Сообщение может включать в себя идентификатор (например, IP-адрес или URL), который ассоциирован с агентом 144. Сообщение также может идентифицировать логический порт в узле 112 связи, который был ранее открыт, например, как описано на этапах 210 и 212. Сообщение может быть передано через логический порт, ранее открытый на узле 110 связи, например, как описано на этапах 202 и 204.
Сообщение также может включать в себя список агентов, первоначально сообщенный посреднику 186 в сообщении присоединения к узлу, так же, как и оцененные характеристики беспроводной восходящей и нисходящей линий связи и оцененную пропускную способность по данным между агентами и удаленным устройством 104. На основе этой информации стюард 134 может выбирать оптимальные типы услуг связи, предоставляемых удаленному устройству 104, которые, на основе информации о характеристиках/пропускной способности данных, могут быть подходящим образом переданы удаленному устройству 104. В конфигурации, в которой определенные допустимые типы услуг требуют, чтобы более чем один логический порт был открыт на узле 110 связи и/или узле 112 связи, знание таких типов услуг может быть использовано, чтобы открывать соответствующие логические порты.
На этапе 216 агент 144 может передавать сообщение стюарду 134, запрашивая регистрацию узла 112 связи с помощью узла 110 связи. Например, сообщение может запрашивать регистрацию агента 144 с помощью стюарда 134. Это сообщение также может быть передано через логический порт, ранее открытый на узле 110 связи. Запрос регистрации агента может включать в себя код операции, который идентифицирует агента 144 и удаленное устройство 104 и указывает, что агент 144 хотел бы установить соединение по требованию удаленного устройства 104.
На этапе 218 стюард 134 может передавать сообщение агенту 144, чтобы подтверждать регистрацию узла 112 связи с помощью узла 110 связи. Сообщение также может идентифицировать агенту 144 логический порт, который открыт на узле 110 связи, через который агент 144 может связываться со стюардом 134. Сообщение может быть передано от стюарда 134 агенту 144 через логический порт, ранее открытый на узле 112 связи. Дополнительно, стюард 134 и агент 144 могут отправлять сообщения подтверждения активности друг другу, чтобы сохранять открытыми логические порты на узлах 110, 112 связи, через которые стюард 134 и агент 144 связываются и, таким образом, предоставляют одноранговую линию связи между узлами 110, 112 связи.
Когда используется в данном документе, "одноранговая линия связи" является линией связи между равными узлами сети связи, которая не полагается на центральный сервер управления вызовами для передачи пакетов между равными узлами. Так как центральный сервер управления вызовами и арендованные линии связи не требуются, можно избегать затрат, ассоциированных с развертыванием и поддержкой таких систем. Более того, с меньшей зависимостью от централизованной инфраструктуры сетевая архитектура, которая реализует одноранговое сетевое взаимодействие, может быть очень масштабируемой.
По одноранговой линии связи агент 144 может посредничать при установке вызова между удаленным устройством 104 и стюардом 134, например, как описано ранее. Содержимое обмена данными также может быть передано в и из удаленного устройства 104 по одноранговой линии связи. Например, стюард 134 может маршрутизировать агенту 144 содержимое обмена данными, передаваемое удаленному устройству 104. Стюард 134 также может маршрутизировать соответствующему узлу 110, 112 связи содержимое обмена данными, сформированное удаленным устройством 104, которое стюард 134 может принимать через агента 144.
На этапе 220 агент 144 может передавать сообщение уведомления о регистрации удаленному устройству 104, указывающее, что агент 144 и стюард 134 зарегистрированы друг у друга. Переходя к этапу 222, удаленное устройство 104 может отвечать агенту 144 подтверждением приема такого уведомления. В этой точке сети наличие удаленного устройства 104 будет присоединено к узлу 112 связи и, таким образом, может отправлять и принимать содержимое обмена данными через узел 112 связи, узел 110 связи и одноранговую линию связи, установленную между узлами 110, 112 связи так же, как и другие одноранговые линии связи, установленные в сети связи.
Обращаясь теперь к фиг.3, блок-схема 300 передачи сигналов представляет способ поддержки одноранговых групповых вызовов среди множества удаленных устройств. Блок-схема 300 передачи сигналов может начинаться с системы в состоянии, в котором удаленное устройство 104, домашний узел связи которого является узлом 110 связи, установило наличие сети в узле 112 связи. Также можно предположить, что сообщения поддержания активности, которые описаны на фиг.2, были переданы между посредником 186 и соответствующими стюардами 134-138, чтобы сохранять открытым логический порт на каждом из стюардов 134-138, через которые посредник может передавать сообщения.
Начиная с этапа 302, удаленное устройство 104 может передавать сообщение агенту 144 узла 112 связи. Сообщение может указывать, что удаленное устройство 104 запрашивает прием содержимого обмена данными, передаваемого участниками одной или более отдельных групп вызова, например, "группы X". На этапе 304 агент 144 может направлять сообщение домашнему стюарду 134 удаленного устройства, например, по одноранговой линии связи, описанной ранее.
На этапе 306 стюард 134 может отправлять сообщение посреднику 186, запрашивая адреса домашних стюардов участников группы X. Например, в конфигурации, в которой стюард 134 получил доступ к списку участников, которые принадлежат группе X, стюард 134 может передавать посреднику 186 идентификаторы, которые ассоциированы с участниками группы. Идентификаторы могут быть идентификаторами, которые ассоциированы с удаленными устройствами, например, идентификаторами пользователей или удаленных устройств. В другой конфигурации стюард 134 может сообщать идентификатор, представляющий группу, и посредник 186 может идентифицировать участников группы, обращаясь к данным из хранилища данных, которое сопоставляет участников группы с идентификатором группы. Несмотря на то, как участники группы идентифицируются для посредника 186, посредник 186 может выполнять доступ к данным, которые сопоставляют идентификаторы, ассоциированные с удаленными устройствами 104-108, с их домашними стюардами 134-138. На этапе 308 посредник 186 может передавать данные сопоставления стюарду 134. Например, если участники группы включают в себя удаленные устройства 106, 108, данные сопоставления могут ассоциировать удаленное устройство 106 со стюардом 136, а удаленное устройство 108 - со стюардом 138.
На этапе 310 стюард 134 может передавать сообщение посреднику 186, запрашивая соединение с удаленными устройствами 106, 108. Такое сообщение может указывать домашнего стюарда 136 удаленного устройства 106. Похожим образом, на этапе 312 стюард 134 может передавать посреднику 186 сообщение, запрашивающее соединение с удаленным устройством 108, и такое сообщение может указывать домашнего стюарда 138 удаленного устройства 108.
В одной конфигурации вместо стюарда 134, отправляющего множество сообщений, запрашивающих соединения с удаленными устройствами 106, 108, запросы, передаваемые на этапах 310 и 312, могут быть переданы в одном сообщении. Более того, такие запросы могут быть переданы в сообщении, отправляемом посреднику на этапе 306. В такой конфигурации стюарду 134 может не требоваться запрашивать адреса домашних стюардов участников группы. Вместо этого сообщение, отправленное на этапе 306, может указывать запрос на соединение с каждым участником группы, и посредник 186 может выполнять доступ к хранилищу данных, чтобы идентифицировать домашних стюардов участников группы.
Переходя к этапу 314, посредник 186 может передавать сообщение стюарду 136, чтобы запрашивать резервирование распространения для содержимого обмена данными, сформированного удаленным устройством 106. Резервирование распространения может быть передано через открытый логический порт в узле 112 связи, такой как порт, сохраняемый открытым сообщениями поддержания активности, ранее описанными. Резервирование распространения может идентифицировать удаленное устройство 106 так же, как и удаленное устройство 104 и/или стюарда 134. Похожим образом, на этапе 316 посредник 186 может передавать сообщение стюарду 138, чтобы запрашивать резервирование распространения для содержимого обмена данными, сформированного удаленным устройством 108. Такое резервирование распространения может идентифицировать удаленное устройство 108 так же, как и удаленное устройство 104 и/или стюарда 134. Такое резервирование распространения также может быть передано через открытый логический порт в узле 114 связи.
Стюарды 136, 138 могут обрабатывать соответствующие резервирования распространения так, что, когда соответствующие удаленные устройства 106, 108 формируют содержимое обмена данными для группы X, такое содержимое может быть автоматически передано домашнему стюарду 134 удаленного устройства 104, который может затем пересылать содержимое обмена данными удаленному устройству 104 через агента 144. В дополнение к стюардам 136, 138, дубликаторы пакетов, агенты и другие компоненты могут использоваться, чтобы обрабатывать содержимое обмена данными в соответствии с назначенной им функциональностью.
Блок-схема передачи сигналов и блок-схемы на чертежах иллюстрируют архитектуру, функциональность и работу возможных реализаций систем, способов и компьютерных программных продуктов согласно различным вариантам осуществления настоящего изобретения. В этом отношении, каждый блок в блок-схеме передачи сигналов или блок-схемах представляет модуль, сегмент или часть кода, который содержит одну или более исполняемых инструкций для осуществления указанной логической функции(ий). Следует отметить, что в некоторых альтернативных реализациях функции, отмеченные в блоке, могут выполняться в другой последовательности, отличающейся от отмеченной на чертежах. Например, два этапа, показанные друг за другом, могут фактически исполняться практически одновременно, или этапы могут иногда исполняться в обратном порядке, в зависимости от включенной функциональности.
Когда используется в данном документе, термин "содержимое обмена данными" ссылается на содержимое, которое может быть передано во время сеанса вызова. Такое содержимое может включать в себя аудиосодержимое, видеосодержимое, мультимедийное содержимое, текст или любую другую информацию, которая может быть передана во время сеанса вызова. Дополнительно, сеанс вызова может быть сеансом диспетчерского вызова (т.е. полудуплексным) или сеансом взаимного вызова (т.е. полнодуплексным).
Термины "компьютерная программа", "программное обеспечение", "приложение", их варианты и/или комбинации в настоящем контексте означают любое выражение на любом языке, коде или нотации набора инструкций, предназначенных, чтобы инструктировать систему, имеющую возможность обработки данных, выполнять конкретную функцию либо непосредственно, либо после любого или обоих из следующих пунктов: a) преобразование на другой язык, код или систему обозначений; b) воспроизведение в другой форме материала. Например, приложение может включать в себя, но не только, подпрограмму, функцию, процедуру, способ объекта, реализацию объекта, исполняемое приложение, апплет, сервлет, мидлет, исходный код, объектный код, совместно используемую библиотеку/динамически загружаемую библиотеку и/или другую последовательность инструкций, предназначенных для выполнения в системе обработки.
Термины "a" и "an", когда используются в данном документе, определены как один или более, чем один. Термин "множество", когда используется в данном документе, определен как два или более чем два. Термин "другой", когда используется в данном документе, определен как, по меньшей мере, второй или больше. Термины "включающий в себя" и/или "имеющий", когда используются в данном документе, определены как содержащий (т.е. открытый язык).
Это изобретение может быть осуществлено в других формах без отступления от сущности или его существенных атрибутов. Соответственно, ссылка должна быть сделана скорее на последующую формулу, чем предшествующее описание, в качестве указывающей объем изобретения.