СИСТЕМА АВТОМАТИЧЕСКОЙ КОНФИГУРАЦИИ И ОПТИМИЗАЦИИ БЕСПРОВОДНОЙ СТЫКОВКИ
AUTOMATIC CONFIGURATION AND OPTIMISATION OF WIRELESS DOCK

ПЕРЕКРЕСТНАЯ ССЫЛКА НА РОДСТВЕННЫЕ ЗАЯВКИ
[001] По данной заявке испрашивается приоритет предварительной заявки США № 61/607,114 под названием «Connection Negotiation for Wireless Docking», поданной в USPTO 6 марта 2012.
ОБЛАСТЬ ТЕХНИКИ
[002] Настоящее изобретение относится, в целом, к беспроводной передаче данных между разными компьютерными устройствами и, в частности, к стыковочной системе и способу автоматического конфигурирования оптимальной сетевой топологии и настроек драйвера устройства для сети.
ОПИСАНИЕ УРОВНЯ ТЕХНИКИ
[003] В беспроводной стыковке применяются беспроводные технологии для подключения обычно портативных устройств, например, мобильных телефонов, портативных компьютеров, к обычно стационарным окружениям стыковки. Такие портативные устройства обычно именуются стыкуемым устройством или беспроводным стыкуемым устройством (WD). При беспроводной стыковке, стыкуемое устройство устанавливает беспроводное соединение с окружением стыковки, которое может представлять собой одну или более стыковочных станций (WDS) или хостов стыковки (WDH) для получения доступа к периферийным устройствам в окружении стыковки, например, большому экрану, клавиатуре, мыши и портам ввода/вывода, обеспеченным окружением стыковки. В типичном применении, пользователю мобильного телефона предоставляется возможность использовать больший экран, чем тот, который предусмотрен на мобильном телефоне, при взаимодействии с приложением (например, клиентом электронной почты, веб-браузером), выполняющемся на мобильном телефоне. Использование большего экрана повышает ощущение и производительность конечного пользователя при взаимодействии с приложениями, выполняющимися на стыкуемом устройстве.
[004] Современные и перспективные стандарты беспроводной стыковки, находящиеся в разработке, предусматривают, что окружение стыковки можно реализовать распределенным образом, составляя его из нескольких устройств и линий связи.
[005] Из вышеупомянутых ограничений и соображений, ясно, что процесс установления оптимальных соединений в стыковочной системе, именуемый здесь согласованием соединения, предусматривает, по меньшей мере, объединение протоколов связи, настроек микросхем, назначений каналов и топологий маршрутизации таким образом, чтобы уравновешивать потребности и возможности для всех сторон, участвующих в процессе стыковки. Кроме того, оценивание различных возможных решений по их достоинствам, само по себе может быть трудной задачей. В идеале, существует несколько метрик, подлежащих оптимизации. Это пропускная способность и задержка сетевой топологии с конкретной ссылкой на пропускную способность обновлений экрана, отправляемых со стыкуемого устройства на периферийную функцию экрана и обратно.
[006] Ввиду вышеупомянутых недостатков и вопросов, должно быть понятно, что стыкуемое устройство, намеревающееся стыковаться с окружением беспроводной стыковки, представляется непосредственной задачей, как осуществлять процесс согласования соединения, который объединяет протоколы связи, настройки микросхем, назначения каналов и топологии маршрутизации таким образом, чтобы уравновешивать потребности и возможности для всех сторон, участвующих в процессе стыковки. Как рассмотрено выше, задача не является тривиальной, поскольку выбор определенных настроек в одной части системы оказывает влияние на производительность в другой части системы. Даже найти единственную комбинацию настроек, которая создает полностью связный граф связей, может быть сложно в некоторых установках.
[006a] В WO 2009/141761 A1 описан способ, содержащий выбор типа слота доступа к среде (MAS) для диспетчеризации одновременных передач в беспроводной сети, назначение резервирований выбранному MAS и применение выбранного MAS к узлам-источникам и узлам-приемникам беспроводной сети.
[007] Таким образом, все, что требуется, это системы, способы и компьютерные программные продукты для обеспечения стратегии планирования соединения, которая реализует процесс согласования соединения для соединения беспроводных стыкуемых устройств с окружением беспроводной стыковки.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[008] Эта сущность изобретения предназначена для ознакомления с выбором принципов. Эти принципы дополнительно описаны ниже в подробном описании. Эта сущность изобретения не предназначена ни идентифицировать ключевые признаки или существенные признаки заявленного предмета изобретения, ни помогать в определении объема заявленного предмета изобретения.
[009] Изобретение, в различных вариантах осуществления, исправляет недостатки уровня техники за счет обеспечения систем и способов, которые предварительно планируют соединения полезной нагрузки стыкуемых устройств со стационарным окружением стыковки в процессе стыковки в соответствии с процессом согласования соединения, который уравновешивает потребности и возможности для всех сторон, участвующих в процессе стыковки.
[0010] В соответствии с одним раскрытым аспектом, раскрыта система связи, включающая в себя систему согласования соединения для установления одного или более каналов связи между одной или более парами концевых точек, расположенных в устройствах системы связи, причем система связи содержит: два или более устройств, по меньшей мере, одну среду связи, расположенную между двумя или более устройствами, множество системных элементов, которые можно использовать для реализации части одного или более каналов связи, подлежащих установлению, множество интерфейсных элементов данных, представляющих либо точки соединения между системными элементами, либо точки соединения между системным элементом и концевой точкой одного или более каналов связи, подлежащих установлению, причем система согласования соединения содержит, по меньшей мере, один процессор, выполненный с возможностью: принимать, в качестве первого входного сигнала процессора, одну или более пар концевых точек одного или более каналов связи, подлежащих установлению, причем упомянутые концевые точки расположены в устройствах системы связи, где каждая концевая точка представлена одним из множества интерфейсных элементов данных, принимать, в качестве второго входного сигнала процессора, описание возможностей и ограничений, по меньшей мере, двух устройств и, в необязательном порядке, среды связи, причем возможности и ограничения заданы набором B блочных элементов данных, причем блочный элемент данных в наборе B блочных элементов данных состоит из данных, которые представляют единичный системный элемент, который сконфигурирован с возможностью осуществления определенной задачи связи, или единичный системный элемент, который не может быть сконфигурирован, или единичный системный элемент, который всегда сконфигурирован одинаково независимо от одного или более каналов связи, поддерживаемых им, находить поднабор Tx набора B блочных элементов данных, который удовлетворяет, по меньшей мере, первым критериям, на основании первого и второго входных сигналов, и выводить поднабор Tx в качестве плана соединения, представляющего один или более каналов связи, подлежащих установлению в системе связи, выполнять план соединения путем, по меньшей мере, конфигурирования одного или более системных элементов, указанных поднабором Tx, для установления одного или более каналов связи в системе связи.
[0011] В соответствии со вторым аспектом настоящего изобретения, раскрыт способ установления одного или более каналов связи между одной или более парами концевых точек, расположенных в устройствах системы связи, содержащей: два или более устройств, по меньшей мере, одну среду связи, расположенную между двумя или более устройствами, множество системных элементов, которые можно использовать для реализации части одного или более каналов связи, подлежащих установлению, множество интерфейсных элементов данных, представляющих точки соединения между системными элементами, и точки соединения между системным элементом и концевой точкой канала связи, подлежащего установлению, причем способ содержит этапы, на которых: принимают, в качестве первого входного сигнала, одну или более пар концевых точек одного или более каналов связи, подлежащих установлению, причем упомянутые концевые точки расположены в устройствах системы связи, где каждая концевая точка представлена одним из множества интерфейсных элементов данных, принимают, в качестве второго входного сигнала, описание возможностей и ограничений, по меньшей мере, двух устройств и, в необязательном порядке, среды связи, причем возможности и ограничения заданы набором B блочных элементов данных, причем блочный элемент данных в наборе B блочных элементов данных состоит из данных, которые представляют единичный системный элемент, который сконфигурирован с возможностью осуществления определенной задачи связи, или единичный системный элемент, который не может быть сконфигурирован, или единичный системный элемент, который всегда сконфигурирован одинаково независимо от одного или более каналов связи, поддерживаемых им, находят поднабор Tx набора B блочных элементов данных, который удовлетворяет, по меньшей мере, первым критериям, на основании первого и второго входных сигналов, и выводят поднабор Tx в качестве плана соединения, представляющего один или более каналов связи, подлежащих установлению в системе связи, и выполняют план соединения путем конфигурирования одного или более системных элементов, указанных поднабором Tx, для установления одного или более каналов связи в системе связи.
[0012] В соответствии с третьим аспектом настоящего изобретения, раскрыто стыкуемое устройство в системе связи, где базируется система согласования соединения, для установления одного или более каналов связи между одной или более парами концевых точек, расположенных в устройствах системы связи, причем система связи содержит: два или более устройств, по меньшей мере, одну среду связи, расположенную между двумя или более устройствами, множество системных элементов, которые можно использовать для реализации части одного или более каналов связи, подлежащих установлению, множество интерфейсных элементов данных, представляющих либо (a) точки соединения между системными элементами, либо (b) точки соединения между системным элементом и концевой точкой одного или более каналов связи, причем система согласования соединения, базирующаяся на упомянутом стыкуемом устройстве, содержит, по меньшей мере, один процессор, выполненный с возможностью: a) принимать, в качестве первого входного сигнала процессора, одну или более пар концевых точек одного или более каналов связи, подлежащих установлению, причем упомянутые концевые точки расположены в устройствах системы связи, где каждая концевая точка представлена одним из множества интерфейсных элементов данных, принимать, в качестве второго входного сигнала процессора, описание возможностей и ограничений, по меньшей мере, двух устройств и, в необязательном порядке, среды связи, причем возможности и ограничения заданы набором B блочных элементов данных, причем блочный элемент данных в наборе B блочных элементов данных состоит из данных, которые представляют единичный системный элемент, который сконфигурирован с возможностью осуществления определенной задачи связи, или единичный системный элемент, который не может быть сконфигурирован, или единичный системный элемент, который всегда сконфигурирован одинаково независимо от одного или более каналов связи, поддерживаемых им, находить поднабор Tx набора B блочных элементов данных, который удовлетворяет, по меньшей мере, первым критериям, на основании первого и второго входных сигналов, и выводить поднабор Tx в качестве плана соединения, представляющего один или более каналов связи, подлежащих установлению в системе связи, инициировать выполнение плана соединения, причем выполнение содержит конфигурирование одного или более системных элементов, указанных поднабором Tx, для установления одного или более каналов связи в системе связи.
[0013] В соответствии с четвертым аспектом настоящего изобретения, раскрыт хост стыковки в системе связи, где базируется система согласования соединения для установления одного или более каналов связи между одной или более парами концевых точек, расположенных в устройствах системы связи, причем система связи содержит: два или более устройств, по меньшей мере, одну среду связи, расположенную между двумя или более устройствами, множество системных элементов, которые можно использовать для реализации части одного или более каналов связи, подлежащих установлению, множество интерфейсных элементов данных, представляющих (a) точки соединения между системными элементами, и (b) точки соединения между системным элементом и концевой точкой одного или более каналов связи, причем система согласования соединения, базирующаяся на упомянутом хосте стыковки, содержит, по меньшей мере, один процессор, выполненный с возможностью: принимать, в качестве первого входного сигнала процессора, одну или более пар концевых точек одного или более каналов связи, подлежащих установлению, причем упомянутые концевые точки расположены в устройствах системы связи, где каждая концевая точка представлена одним из множества интерфейсных элементов данных, принимать, в качестве второго входного сигнала процессора, описание возможностей и ограничений, по меньшей мере, двух устройств и, в необязательном порядке, среды связи, причем возможности и ограничения заданы набором B блочных элементов данных, причем блочный элемент данных в наборе B блочных элементов данных состоит из данных, которые представляют (a) единичный системный элемент, который сконфигурирован с возможностью осуществления определенной задачи связи, или (b) единичный системный элемент, который не может быть сконфигурирован, или (c) единичный системный элемент, который всегда сконфигурирован одинаково независимо от одного или более каналов связи, поддерживаемых им, находить поднабор Tx набора B блочных элементов данных, который удовлетворяет, по меньшей мере, первым критериям, на основании первого и второго входных сигналов, и выводить поднабор Tx в качестве плана соединения, представляющего один или более каналов связи, подлежащих установлению в системе связи, инициировать выполнение плана соединения, причем выполнение содержит конфигурирование одного или более системных элементов, указанных поднабором Tx, для установления одного или более каналов связи в системе связи.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0014] Эти и другие задачи, признаки и преимущества изобретения явствуют из рассмотрения нижеследующего подробного описания изобретения, рассматриваемого совместно с чертежами, в которых:
[0015] Фиг. 1 - примерное окружение стыковки, в котором можно реализовать настоящее изобретение, согласно одному варианту осуществления.
[0016] Фиг. 2 - иллюстрация примерного канала связи, созданного модулем планирования соединения изобретения, соединяющего модуль прикладного программного обеспечения беспроводного стыкуемого устройства «A» с аппаратным модулем экрана хоста беспроводной стыковки, согласно одному варианту осуществления.
[0017] Фиг. 3a-3e - иллюстрации примерных представлений интерфейсных элементов данных и блочных элементов данных, используемых модулем планирования соединения изобретения, согласно одному варианту осуществления.
[0018] Фиг. 4 - иллюстрация примерного результата согласования для согласования соединения, производимого между стыкуемым устройством и хостом беспроводной стыковки, согласно одному варианту осуществления.
[0019] Фиг. 5a и 5b иллюстрируют модуль планирования соединения, подключенный к процессору и памяти, размещенным на типичном стыкуемом устройстве (5a) и хосте (5b) стыковки, согласно одному варианту осуществления.
[0020] Фиг. 6 иллюстрирует входные сигналы и выходной сигнал модуля планирования соединения изобретения, согласно одному варианту осуществления.
[0021] Фиг. 7 изображает примерное схематическое представление машины в форме компьютерной системы, в которой набор инструкций, при выполнении, может предписывать машине осуществлять любую одну или более из методологий, рассмотренных здесь. В некоторых вариантах осуществления, машина действует как самостоятельное устройство. В некоторых вариантах осуществления, машина могут быть соединена (с использованием сети) с другими машинами. В сетевом развертывании, машина может действовать в роли серверной или клиентской пользовательской машины в серверно-клиентском пользовательском сетевом окружении, или как равноправная машина в одноранговом (или распределенном) сетевом окружении.
ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
[0022] Неограничительные варианты осуществления настоящего изобретения теперь будут подробно раскрыты, в порядке примера, со ссылкой на чертежи. При описании этих вариантов осуществления, для наглядности будет использоваться конкретная терминология. Однако изобретение не подлежит ограничению конкретными выбранными терминами, и следует понимать, что каждый конкретный термин включает в себя все технические эквиваленты, которые действуют аналогичным образом для достижения аналогичной цели.
[0023] Настоящее описание иллюстрирует принципы настоящего раскрытия. Таким образом, специалисты в данной области техники могут предложить различные компоновки, которые, хотя в явном виде здесь не описаны и не показаны, реализуют принципы раскрытия и включены в его сущность и объем.
[0024] Предмет настоящего изобретения описан здесь конкретно в соответствии с установленными требованиями. Однако само описание не призвано ограничивать объем этого патента. Напротив, авторы изобретения предусмотрели, что заявленный предмет изобретения также можно реализовать по-разному, включая разные этапы или комбинации этапов, аналогичных описанным в этом документе, совместно с другими настоящими или будущими технологиями. Кроме того, хотя термины "этап" и/или "блок" можно использовать здесь для обозначения различных модулей применяемых способов, термины не следует интерпретировать как предписывающие конкретный порядок различных раскрытых здесь этапов, за исключением случая, когда порядок отдельных этапов описан в явном виде.
[0025] Все приведенные здесь примеры и условные выражения предназначены для педагогических целей, чтобы помочь читателю помочь понять принципы раскрытия и принципы, заложенные автором изобретения для развития техники, и подлежат рассмотрению как лишенные ограничения такими конкретно приведенными примерами и условиями.
[0026] Кроме того, все утверждения изложенных здесь принципов, аспектов и вариантов осуществления раскрытия, а также их конкретных примеров, призваны охватывать их структурные и функциональные эквиваленты. Дополнительно, предполагается, что такие эквиваленты включают в себя как известные в настоящее время эквиваленты, так и эквиваленты, которые еще предстоит разработать, т.е. любые разработанные элементы, которые осуществляют одну и ту же функцию, независимо от конструкции.
[0027] Варианты осуществления настоящего изобретения могут содержать компьютер специального назначения или общего назначения, включающий в себя различные другие аппаратные и/или программные модули компьютера и модули, более подробно рассмотренные ниже.
[0028] Изобретение можно реализовать по-разному, в том числе, как процесс, устройство, систему, состав вещества, компьютерно-читаемый носитель, например, компьютерно-читаемый носитель данных или компьютерную сеть, в которой программные инструкции передаются по оптическим линиям или линиям связи. В этом описании изобретения, эти реализации или любая другая форма, которую может принимать изобретение, могут именоваться методами. Компонент, например, процессор или память, описанный как выполненный с возможностью осуществления задачи, включает в себя либо общий компонент, который временно сконфигурирован с возможностью осуществления задачи в данное время, или конкретный компонент, который изготовлен для осуществления задачи. В целом, порядок этапов раскрытых процессов можно изменять в объеме изобретения.
[0029] Упомянутый здесь термин «модуль планирования соединения» представляет один или более связанных модулей, содержащих исполнимый код, выполняемый, по меньшей мере, на одном процессоре, подключенном к памяти. Модуль планирования соединения сконфигурирован с возможностью решения задачи согласования соединения путем установления плана соединения. В частности, модуль планирования соединения предварительно планирует соединения «полезной нагрузки» одного или более стыкуемых устройств с одним или более стационарными окружениями стыковки в процессе стыковки, где соединение полезной нагрузки используется для взаимодействия с периферийной функцией в окружении стыковки. Модуль планирования соединения вычисляет набор каналов связи, оптимальный, или близкий к оптимальному, и одновременно пригодный к реализации, уравновешивая потребности и возможности для всех сторон, участвующих в процессе стыковки.
[0030] Упомянутый здесь термин «согласование соединения» относится к системе, в которой соединения подлежат установлению между стыкуемым устройством и одним или более хостами стыковки. Стыкуемое устройство и хосты стыковки совместно именуются устройствами, которые могут встречаться друг с другом в первый раз.
ПРИМЕРНАЯ СРЕДА ВЫПОЛНЕНИЯ ПРИЛОЖЕНИЙ
[0031] На фиг. 1 показано несколько портативных устройств (например, мобильные телефоны, портативные компьютеры и т.д., которые в целом именуются здесь беспроводными стыкуемыми устройствами, а именно, беспроводное стыкуемое устройство «A» 120, беспроводное стыкуемое устройство «B» 122, беспроводное стыкуемое устройство «C» 123, беспроводное стыкуемое устройство «D» 124. Задачей изобретения является нахождение оптимальной или почти оптимальной конфигурации соединений полезной нагрузки между одним или более из беспроводных стыкуемых устройств и одним или более хостов беспроводной стыковки, например, хостом 121 беспроводной стыковки.
[0032] В процессе согласования соединения, стороны в беспроводной стыковочной системе осуществляют связь между собой и согласовывают оптимальную или почти оптимальную конфигурацию соединений полезной нагрузки для поддержки взаимодействий между прикладным программным обеспечением и стыкуемым устройством и оборудованием периферийной функции. В более общем случае, соединения полезной нагрузки являются примерами каналов связи. Канал связи это обобщение соединения полезной нагрузки в том смысле, что он включает в себя соединения за пределами объема беспроводной стыковки, например, соединения между двумя прикладными программами, реализованными программными средствами. Канал связи может описывать соединение между приложением и периферией.
[0033] На фиг. 2 показан канал 500 связи созданный в результате процесса согласования соединения, управляемого и выполняемого модулем 550 планирования соединения, показанным на фиг. 5. Канал 500 связи состоит из первой и второй соответствующих концевых точек 502, 504. Первая концевая точка 502 связана с программой 422 прикладного программного обеспечения беспроводного стыкуемого устройства «A» 120, и вторая концевая точка 504 связана с оборудованием 423 экрана, связанным с хостом 121 беспроводной стыковки. Канал связи проходит через пять системных элементов, включающих в себя драйвер 411 устройства, сетевой интерфейс 413, беспроводную сеть 415, сетевой интерфейс 414 и драйвер 412 устройства.
[0034] Канал 500 связи обеспечивает двунаправленный поток данных между программой 422 прикладного программного обеспечения и оборудованием 423 экрана. Данные, подлежащие передаче между этими двумя устройствами, также могут преобразовываться, например, посредством сжатия (видеосигнала) без потерь или с потерями одним или более системными элементами в канале связи, например, драйвером 411 устройства, связанным со стыкуемым устройством A 120. Канал 500 связи устанавливается в результате вычислений, осуществляемых модулем 550 планирования соединения (не показан, см. Фиг. 5), и, таким образом, соответствует плану соединения, созданному модулем 550 планирования соединения.
[0035] Беспроводная стыковка предусматривает, что сети наподобие 415 чаще всего представляет собой сети на основе Wifi direct, установленные, в частности, на основании выходного сигнала модуля 550 планирования соединения, для оптимизации связи. Аналогично, изобретение также предусматривает, что системные элементы, например, драйвер 412 устройства, сетевой интерфейс 414, сетевой интерфейс 413, в частности, могут быть выполнены с возможностью установления каналов, запланированных модулем 550 планирования соединения. В некоторых вариантах осуществления, помимо установления каналов, одна или более новых сетей WIFI direct может создаваться в результате вычислений модулем 550 планирования соединения.
[0036] Согласно изобретению, каждая концевая точка пары концевых точек канала связи обычно располагается в отдельном устройстве. Например, со ссылкой на фиг. 2, пара концевых точек связи располагается на краях модуля 422 прикладного программного обеспечения в беспроводном стыкуемом устройстве «A» 120 и аппаратном модуле 423 экрана на хосте 121 беспроводной стыковки. Эти концевые точки нужно соединять каналами связи, например, каналом 500 связи, где каждый канал связи обычно включает в себя, по меньшей мере, одно сетевое соединение, например сеть 415, как показано на фиг. 4.
[0037] Типичное сетевое соединение может представлять собой, например, беспроводное соединение через сеть WiFi на определенном канале или проводное соединение. Каналы связи обычно включают в себя драйверы устройства, например, драйверы 411, 412 устройства. Драйвер устройства иногда можно конкретно выбирать, чтобы он был оптимальным, при использовании с конкретным беспроводным сетевым соединением. Например, драйвер устройства, который реализует протокол доступа к устройству более высокого уровня поверх транспортного протокола более низкого уровня. Также, каналы связи, в необязательном порядке, используют одно устройство для ретрансляции между концевыми точками, расположенными на двух других устройствах.
[0038] Модуль 550 планирования соединения вычисляет набор каналов связи, который является, как оптимальным или близким к оптимальному, так и пригодным к реализации, с учетом возможностей и ограничений устройств в системе связи. Возможности и ограничения каждого устройства в системе связи можно кодировать с использованием схемы кодирования, которая будет более подробно описана ниже. В предпочтительном варианте осуществления, схема кодирования отличается тем, что возможности и ограничения каждого отдельного устройства можно кодировать независимо, в качестве комплекта информации, зависящей от устройства. Кодирование может осуществляться на стадии проектирования устройства или в заводских условиях, при создании устройства или посредством специализированного кода, содержащегося в устройстве. В необязательном порядке, свойства и/или ограничения использования беспроводной среды между устройствами также можно кодировать как комплект информации с использованием схемы кодирования.
[0039] Модуль 550 планирования соединения предоставляет различные возможности, включающие в себя, но без ограничения, объединение комплектов информации, зависящих от устройства, всех устройств в системе, информации о концевых точках системных элементов подлежащих сопряжению, в необязательном порядке, информации о беспроводной среде, и дополнительной необязательной информации для вычисления каналов связи.
[0040] Обычно модуль 550 планирования соединения выполняется на процессоре одного из устройств в системе. В некоторых вариантах осуществления предполагается использование распределенной реализации модуля 550 планирования соединения.
[0041] Построение комплектов информации, зависящей от устройства, в качестве одного входного сигнала модуля 550 планирования соединения заранее предполагает, что связь между контролирующими модулями в устройствах уже установлена. Модуль 550 планирования соединения планирует соединения «полезной нагрузки» для поддержки взаимодействий с периферийными функциями и не устанавливает первоначальные соединения между устройствами согласно протоколам обнаружения и квитирования установления связи.
[0042] В различных вариантах осуществления, модуль 550 планирования соединения может располагаться в любом из устройств в системе связи при условии, что модуль 550 планирования соединения не обязан располагаться в конкретном устройстве.
[0043] В процессе согласования соединения, в предпочтительном варианте осуществления, беспроводное стыкуемое устройство принимает на себя роль базирования и выполнения модуля 550 планирования соединения для определения плана маршрутов связи между стыкуемым устройством и хостом стыковки. В других вариантах осуществления, хост стыковки может принимать на себя роль базирования и выполнения модуля 550 планирования соединения. Эти различные варианты осуществления показаны в порядке примера на фиг. 5. Например, фиг. 5a иллюстрирует беспроводное стыкуемое устройство, принимающее на себя роль выполнения модуля 550 планирования соединения, и фиг. 5b - хост беспроводной стыковки, принимающий на себя роль базирования модуля 550 планирования соединения.
[0044] В одном варианте осуществления, все устройства, реализующие стандарт беспроводной стыковки, может включать в себя возможность выполнять модуль 550 планирования соединения и совместно решать для каждого нового сеанса, какое конкретное устройство в системе связи будет выполнять модуль 550 планирования соединения.
[0045] Информация о каналах связи, вычисленных модулем 550 планирования соединения, передается из устройства, где базируется модуль 550 планирования соединения, на каждое устройство, участвующее в согласовании соединения. Информация используется каждым устройством для реализации своего вклада в вычисленные каналы связи, и для установления любых необходимых сетевых соединений между устройствами.
[0046] Как указано выше, модуль 550 планирования соединения вычисляет представления оптимизированного или почти оптимизированного набора каналов связи между парами концевых точек, расположенных в различных устройствах системы связи, например, беспроводном стыкуемом устройстве «A» 120 и хосте 121 беспроводной стыковки, как показано на фиг. 2 и 4. Модуль 550 планирования соединения вычисляет оптимизированный или почти оптимизированный набор каналов связи между парами концевых точек, оперируя блочными и интерфейсными элементами данных, описанными ниже.
ИНТЕРФЕЙСНЫЕ ЭЛЕМЕНТЫ ДАННЫХ
[0047] Интерфейсный элемент данных, иногда именуемый здесь «интерфейсом», является представлением или моделью фактической единичной интерфейсной точки вдоль канала связи, например, канала 500 связи. В некоторых вариантах осуществления, интерфейсный элемент данных может играть более чем одну репрезентативную роль. В одной роли, интерфейсный элемент данных может представлять или моделировать фактическую единичную интерфейсную точку вдоль канала связи. В другой роли, интерфейсный элемент данных можно использовать для кодирования возможностей или ограничений устройства для устройств в системе связи способами, которые не соответствуют непосредственно единичной интерфейсной точке вдоль канала связи.
[0048] В других вариантах осуществления, интерфейсные элементы данных можно использовать для исполнения единственной исключительной задачи представления или моделирования единичной интерфейсной точки. В этих вариантах осуществления, создается дополнительный тип элемента данных для кодирования возможностей или ограничений устройства.
[0049] В одном варианте осуществления, интерфейсные элементы данных можно кодировать в виде строк ASCII. Например, фиг. 4 иллюстрирует четыре интерфейса 461, 463, расположенные в стыкуемом устройстве 420 и 462, 464, расположенные на хосте 421 стыковки, и связанные с ними интерфейсные элементы данных, которые представляют их, кодированные как строки ASCII, показанные внутри овальных форм 451, 452, 453 и 454. Изображенная строка ASCII кодирует свойства интерфейсного элемента данных. Свойства могут включать в себя, например, какого рода точку вдоль какого рода каналов связи представляет интерфейс. В предпочтительном варианте осуществления, кодируются только те свойства, которые соответствуют цели планирования соединения. Строки ASCII, которые кодируют свойства интерфейса (элемента данных), таким образом, можно рассматривать как элементы модели, которая кодирует возможности и ограничения системного элемента, таким образом, чтобы модуль 550 планирования соединения мог оперировать моделью для генерации реализуемых оптимальных или близких к оптимальным каналам связи, образованным с участием системных элементов.
[0050] Согласно полезному аспекту изобретения, схема кодирования обладает некоторой гибкостью. Это выражается в том, что различные варианты осуществления могут выбирать разные схемы кодирования, без необходимости вносить изменения в модуль 550 планирования соединения.
[0051] В одном варианте осуществления, набор интерфейсных элементов данных является набором всех строк ASCII. Говорят, что два интерфейсных элемента данных из набора равны, если они представлены одной и той же строкой ASCII, где отношение равенства определяется равенством строк. В других вариантах осуществления, более сложные тесты на равенство можно использовать для определения, подобны ли два интерфейсных элемента данных, по меньшей мере, по существу. Подобие по существу определяется здесь как случай, когда два интерфейсных элемента, представляют одну и ту же точку вдоль возможного канала связи. Схема кодирования, используемая для интерфейсных элементов данных в конкретном варианте осуществления обычно не обладает тем свойством, что каждая возможная строка ASCII представляет действительное или значимое кодирование интерфейса.
[0052] Концевые точки каналов связи всегда представлены интерфейсными элементами данных. Таким образом, набор каналов связи, вычисляемых модулем 550 планирования соединения, задается как набор пар интерфейсных элементов данных, которые представляют концевые точки, подлежащие соединению. Опять же со ссылкой на фиг. 2, края канала 500 связи содержат концевые точки 502, 504, которые являются интерфейсами, которые можно представить интерфейсными элементами данных. Со ссылкой на фиг. 4, интерфейсные элементы 451 данных и 452 представляют концевые точки канала связи, обозначенные интерфейсами 461 и 462, соответственно, или, альтернативно, краями элементов 422 и 423.
БЛОЧНЫЕ ЭЛЕМЕНТЫ ДАННЫХ
[0053] Второй тип элемента данных, иногда именуемый здесь «блочным» элементом данных, используется для представления или моделирования элемента системы связи, например, драйвера 411 устройства, показанного на фиг. 2, или сетевого интерфейса 414, показанного на фиг. 2. Название «блочный» происходит из формы, обычно используемой в схемах системы и схемах стека протоколов для представления устройств или модулей или других системных элементов. В целом, системный элемент является объектом реального мира, который участвует в реализации фактического канала связи. Изобретение также предусматривает «спектр беспроводной сети» в качестве объекта реального мира.
[0054] Возвращаясь к фиг. 2, элементы 411, 412, 413, 414, и 415 системы связи моделируются блочными элементами данных. Однако определенные объекты, показанные на фиг. 2, например, устройство 420 и оборудование 423 экрана, которые в концевых точках каналов связи, не представляются и не моделируются блочными элементами данных, и поэтому не именуются здесь как системные элементы. В предпочтительном варианте осуществления, входной сигнал о концевых точках желаемого(ых) канала(ов) связи, который поступает на планировщик соединения, подается как набор интерфейсных элементов данных (например, 451 и 452 на фиг. 4). В альтернативном варианте осуществления, входной сигнал может альтернативно задаваться как блочные элементы данных, которые представляют элементы 422 и 423 на фиг. 4, причем каждый из этих блочных элементов данных имеет интерфейс, 451 для первого и 452 для второго, связанный с ними.
[0055] Следует понимать, что не всегда существует взаимно-однозначное соответствие между элементом системы связи в системе связи и блочным элементом данных системы согласования, который моделирует системный элемент системы связи. В «простом» случае, системный элемент не имеет взаимно-однозначного соответствия с одним и только одним блочным элементом данных. Однако в «непростом» случае, единичный системный элемент представлен многими блочными элементами данных. В этом случае, каждый блочный элемент данных представляет не просто системный элемент, но системный элемент, к которому была применена определенная конкретная конфигурация, причем эта конфигурация гарантирует, что системный элемент осуществляет определенную функцию в реализации части канала связи. Все многочисленные блочные элементы данных в этом случае представляют один и тот же системный элемент, но каждый блок отличается в отношении представляемых им настроек конфигурации. Например, в «непростом» случае единичный блок представляет «сконфигурированный системный элемент», т.е. системный элемент с некоторыми данными конфигурации, которые были применены нему. Заметим, что сложный системный элемент наподобие сетевого интерфейса может быть способен выполнять одновременно несколько наборов данных конфигурации, например, первый набор данных конфигурации для установления сетевого соединения с первым устройством, и одновременно второй набор данных конфигурации для установления сетевого соединения со вторым устройством. Каждую из этих двух разных конфигураций (наборов данных) системного элемента можно представить двумя разными блочными элементами данных.
[0056] Термин «блочный элемент данных» может охватывать представления системных элементов, например, устройств, (программных) модулей и, в ряде случаев, сетевое облако 415. Метаданные обычно связаны с блочным элементом данных для описания типа блока. Например, метаданные могут описывать, что блок представляет сетевой интерфейс с настройками для создания определенных соединений или драйвер устройства с определенными настройками или сетевое «облако» с определенными свойствами.
[0057] Различные комбинации блочных элементов данных и интерфейсных элементов данных совместно представляют (реализуемые, нереализуемые и частичные) каналы связи, генерируемые и анализируемые модулем 550 планирования соединения для идентификации реализуемых каналов связи.
[0058] Блочный элемент данных, когда он поступает на модуль 550 планирования соединения, минимально содержит набор связанных интерфейсных элементов данных, иногда именуемых здесь «интерфейсами блока». Блочный элемент данных можно, таким образом, минимально представлять набором записей, причем каждая отдельная запись описывает 1) конкретный интерфейсный элемент данных, связанный с блоком, например, запись может описывать интерфейсный элемент данных как содержащий строку ASCII, которая кодирует интерфейсный элемент данных, и 2) отношение между блочным элементом данных и этим конкретным интерфейсным элементом данных, например, посредством записи, содержащей целое число, которое кодирует тип отношения. В целях иллюстрации изобретения, удобно также указывать блочные элементы данных с использованием номеров, например, говорить «блочный элемент данных номер 7».
[0059] На фиг. 3a-3e показаны, в порядке примера, широко применимые интерфейсные элементы данных и блочные элементы данных, как описано выше.
[0060] Обратимся сначала к фиг. 3a, где показаны два канала 21, 22 связи, которые могут создаваться на основании выходного сигнала модуля 550 планирования соединения путем соединения различных частей системы связи, например, 422, 411, 413, 414, 412, 423, как показано на фиг. 2, в процессе согласования соединения.
[0061] На фиг. 3b показан набор интерфейсных элементов 1-6 данных, где каждый интерфейс представляет или моделирует уникальную точку на одном из двух каналов 21, 22 связи, показанных на фиг. 3a. Интерфейсы 1-4 моделируются как пары, где каждая интерфейсная пара (1,4) и (2,3) представляет первую и вторую концевую точку канала связи, где оставшаяся часть канала подлежит планированию модулем 550 планирования соединения. Например, входная пара (1,4) представляет соответствующие концевые точки канала 22 связи. Две пары концевых точек (1,4) и (2,3) поступают в качестве входного сигнала на модуль 550 планирования соединения в качестве первого входного сигнала, т.е. входного сигнала «A», как показано на фиг. 6.
[0062] Модуль 550 планирования соединения сконфигурирован с возможностью определения, можно ли установить (реализовать) один или более каналов связи с использованием обеспеченных входных пар (1,4) и (2,3) в качестве начальной точки. Для этого, модуль 550 планирования соединения должен вычислять, как системные элементы, например, элементы 411, 412, 413, 414 и 415 можно использовать и конфигурировать для реализации каналов 21, 22 связи.
[0063] Фиг. 3b дополнительно иллюстрирует интерфейсные элементы 5 и 6 данных, причем интерфейс, помимо представления концевой точки на канале связи, также может представлять промежуточную точку вдоль канала связи.
[0064] На фиг. 3c показано более абстрактное изображение фиг. 3a и 3b, путем замены отношений между интерфейсами, ранее захваченными каналами 21, 22 связи, блочными элементами 7-11 данных. Как рассмотрено выше, блочный элемент данных представляет или моделирует, элемент системы связи реального мира, который сконфигурирован с возможностью реализации соединения между двумя или более интерфейсами (т.е. двумя или более точками вдоль канала связи). Каждый блочный элемент данных изображен здесь со своим соответствующим набором соответствующих интерфейсов, изображенных овалами с номерами в них. Согласно вышеприведенному рассмотрению, блочный элемент данных минимально содержит набор соответствующих интерфейсных элементов данных, иногда именуемых здесь «интерфейсами блока».
[0065] На фиг. 3d показано альтернативное описание блочных элементов данных, проиллюстрированных на фиг. 3c. Фиг. 3d предоставляет дополнительную информацию о блоках, не показанных на фиг. 3c. Дополнительная информация содержит описание типа отношения, который блок имеет со своими так называемыми интерфейсами блока. В частности, с использованием стрелок, фиг. 3d дополнительно описывает, имеет ли блок отношение типа 1 или типа 2 с интерфейсом в своем «наборе интерфейсов». Например, стрелка, указывающая от интерфейса, например, от овальных интерфейсов 1-4 к прямоугольным блокам 7-10, описывает отношение типа 2 между интерфейсами и блоками. В порядке дополнительного примера, интерфейс 1 имеет отношение типа 2 с блоком 7. Стрелка, указывающая к интерфейсу, например, стрелка, указывающая к интерфейсу 5 от блоков 7 и 8, соответственно, и к интерфейсу 6 от блоков 9 и 10, соответственно, описывает отношение типа 1 между интерфейсом и блоком.
[0066] Обычно отношение типа 1 между блоком и интерфейсом задает случай, когда пара интерфейс блока/блок является пользователем или «запрашивателем» услуги связи, предоставляемой через интерфейс. Отношение типа 2 между блоком и интерфейсом задает случай, когда блок является поставщиком или реализатором услуг связи, предоставляемых через интерфейс. Согласно фиг. 3d, блок 11 имеет отношение типа 2 с двумя интерфейсами 5 и 6, тогда как блоки 7 и 9 имеют отношения типа 1 с интерфейсами 5 и 6. Блок 11 может представлять услугу, которая обеспечивает маршрутизацию IP-пакетов между двумя интерфейсами 5 и 6 - блок 11 предоставляет эту услугу. Блоки 7 и 9 могут быть программными модулями, которым нужно осуществлять связь друг с другом через маршрутизируемые IP-пакеты. Таким образом, блоки 7 и 9 являются пользователями услуги, предоставляемой блоком 11.
[0067] Как рассмотрено выше, отношение между «интерфейсом блока» и «блоком» может быть, по меньшей мере, двух типов, т.е. отношением типа 1 и отношением типа 2. В предпочтительном варианте осуществления, используются только отношения типа 1 и типа 2. Другие варианты осуществления могут задавать больше типов или подтипов отношений, отличных от отношений типа 1 и типа 2.
[0068] В других случаях, касающихся использования интерфейсов, интерфейс, совместно используемый двумя блоками, может моделировать отношение типа клиент-сервер между двумя блоками, которые действуют на одном и том же протокольном уровне в системе. Это отношение клиент-сервер можно моделировать как интерфейс, где одна сторона отношения имеет отношение типа 1 с интерфейсом, и другая сторона имеет отношение типа 2 с интерфейсом. Пример такого отношение клиент-сервер дополнительно объяснен ниже со ссылкой на фиг. 4.
[0069] В других вариантах осуществления, дополнительные отношения между блоком и интерфейсом, например, отношения типа 3 и типа 4, можно использовать для обозначения отношений клиент-сервер. В других вариантах осуществления, парные отношения клиент-сервер можно моделировать, вводя другие типы элементов данных, отличных от интерфейсных элементов данных.
[0070] В некоторых вариантах осуществления отношения типа 2 можно использовать между блоком и конкретно выбранными интерфейсами для кодирования аппаратных или программных ограничений. В других вариантах осуществления, дополнительные типы отношений, например, отношение типа 5 можно использовать для моделирования отношений между блоком и конкретно выбранными интерфейсами для кодирования аппаратных или программных ограничений, вместо того, чтобы использовать отношение типа 2.
[0071] В предпочтительном варианте осуществления, блочный элемент данных также имеет некоторые метаданные помимо соответствующих интерфейсов и связанных с ними типов отношений. Например, метаданные, которые описывают в доступной для человека форме блок или системный элемент, который он моделирует. Другие метаданные, связанные с блоком, можно использовать для поддержки вычисления метрик производительности или для другой поддержки реализации выходного сигнала модуля 550 планирования соединения в качестве реальных соединений.
[0072] Фиг. 3e альтернативно иллюстрирует изображение набора блоков, показанного на фиг. 3d. На фиг. 3e, каждый интерфейс изображен только один раз с целью имитации вида и ощущений схем стека протоколов.
ВХОДНЫЕ/ВЫХОДНЫЕ СИГНАЛЫ МОДУЛЯ ПЛАНИРОВАНИЯ СОЕДИНЕНИЯ
[0073] Согласно фиг. 6, модуль 550 планирования соединения показан имеющим два входных сигнала для выполнения процесса планирования соединения для идентификации набора блочных элементов данных, которые используются для указания, как реализовать один или более реализуемых каналов связи между одним или более стыкуемых устройств и одним или более хостов стыковки, как показано, например, на фиг. 1 и 2.
[0074] В предпочтительном варианте осуществления, модуль 550 планирования соединения вычисляет выходной сигнал Tx состоящий из блочных элементов данных. Выходной сигнал устанавливает один или более реализуемых каналов связи, которые являются, как оптимальными или близкими к оптимальным, так и пригодными к реализации с учетом возможностей и ограничений устройств в рассматриваемой системе связи. Установление одного или более реализуемых каналов связи содержит активацию и конфигурирование системных элементов, представленных блоками Tx.
[0075] В описанном варианте осуществления показано, что модуль 550 планирования соединения принимает два входных сигнала, первый входной сигнал, обозначенный «A», и второй входной сигнал, обозначенный «B». Первый входной сигнал «A» представляет набор интерфейсных элементов M данных, которые обеспечены в виде пар, где каждая пара идентифицирует соответствующие первую и вторую концевые точки нескольких запланированных каналов связи, подлежащих реализации модулем 550 планирования соединения. Например, в случае беспроводной стыковки, каналы связи, подлежащие реализации модулем 550 планирования соединения, идентифицируются в процессе стыковки как каналы, соединяющие прикладное программное обеспечение в стыкуемом устройстве со всеми периферийными функциями, присутствующими в окружении беспроводной стыковки, с которыми стыкуемое устройство желает стыковаться.
[0076] Как рассмотрено выше, модуль 550 планирования соединения планирует каналы связи на основании известных начальной и конечной точек запланированных каналов связи. Следовательно, пары интерфейсных элементов данных M представляют эти начальную и конечную точки.
[0077] Второй входной сигнал, поступающий на модуль 550 планирования соединения, обозначенный «B», представляет возможности и ограничения устройств в системе связи помимо возможностей и ограничений любых беспроводных и/или проводных сред связи (например, сетей wifi) в системе связи. Второй входной сигнал «B» поступает на модуль 550 планирования соединения как набор B блочных элементов данных, определенный выше.
[0078] Опять же, согласно фиг. 6, выходной сигнал модуля 550 планирования соединения, обозначенный «C», представляет собой набор Tx блочных элементов данных, где Tx это поднабор входного набора блочных элементов данных из набора «B», представляющий возможности и ограничения устройств в системе связи. Этот набор Tx представляет «план соединения», из которого предстоит создать набор достойных кандидатов в каналы связи между всеми парами концевых точек, описанными первым входным сигналом «A». Этот план соединения можно использовать для реализации соединений реального мира между различными концевыми точками в системе связи.
[0079] Теперь рассмотрим, как выходной сигнал Tx модуля 550 планирования соединения может использоваться системой согласования для создания соединений, необходимых для реализации запланированных каналов связи, выбранных модулем 550 планирования соединения. Как описано выше, выходной набор Tx блочных элементов данных получается из входного набора «B» и состоит из поднабора набора B блочных элементов данных. Напомним, что единичный блочный элемент данных представляет системный элемент в системе связи, в необязательном порядке, сопряженный с данными конфигурации. Данные конфигурации, в частности, указывают, как системный элемент (например, аппаратный или программный элемент системы связи), представленный блочным элементом данных, должен соединять конкретные интерфейсы. Другими словами, блочные элементы данных включают в себя данные конфигурации, содержащие конкретную информацию, указывающую устройствам в системе связи, как устанавливать соединение с другими системными элементами в системе связи.
ИСПОЛЬЗОВАНИЕМ МЕТАДАННЫХ ДЛЯ СОЗДАНИЯ КАНАЛЬНЫХ СОЕДИНЕНИЙ
[0080] В предпочтительном варианте осуществления, помимо данных конфигурации, каждый блок имеет соответствующие метаданные для поддержки создания запланированных соединений. Эти метаданные описывают действия, которые система должна предпринимать для активации фактического системного элемента в системе связи, представленного блоком.
[0081] На фиг. 4, в порядке примера, показан выходной сигнал Tx 400 модуля 550 планирования соединения состоящий из нескольких блочных элементов 401-405 данных, из которых системе предстоит создать фактический канал связи. Пять блочных элементов 401-405 данных показано на фиг. 4 совместно со связанными с ними интерфейсными элементами 451-456 данных, с помощью стрелок, указывающих отношения типа 1 и 2 между интерфейсными элементами данных и блочными элементами данных, согласно схемам, изображенным на фиг. 3d и 3e. Эти пять блочных элементов 401-405 данных Tx совместно образуют план создания единичного канала связи, описывающего поток данных, от первой концевой точки 502 из набора «M» входного сигнала «A», связанной с прикладным программным обеспечением 422 стыкуемого устройства для стыкуемого устройства 420, до второй концевой точки 504, из набора «M» входного сигнала «A», связанной с периферийным устройством, оборудованием экрана «Smain» 423 хоста 421 стыковки. Этот единичный канал связи также показан на фиг. 2 как канал 500 связи.
[0082] Пять блочных элементов 401-405 данных Tx представляют различные системные элементы в системе связи. Каждый блочный элемент 401-405 данных Tx будет более подробно описан ниже.
[0083] Блок 401 представляет драйвер 411 устройства в стыкуемом устройстве 420, который может отправлять содержание экрана (например, обновления содержания экрана) по IP-соединению. Блок 401 имеет три соответствующих интерфейсных элемента 451, 453 и 457 данных. Первый интерфейсный элемент 451 данных представляет интерфейс 461 операционной системы, из которого следует получать обновления содержания экрана, созданные прикладным программным обеспечением, выполняющимся в стыкуемом устройстве, и предназначенные для экрана «Smain» 423 (главного экрана). Второй интерфейсный элемент 453 данных представляет интерфейс 463 с подсистемой стыкуемого устройства, которая реализует IP-соединения. Третий интерфейсный элемент 457 данных, соединяющий блок 401 с блочным элементом 402 данных, представляет отношение клиент-сервер между системным элементом 411 в стыкуемом устройстве и системным элементом 412, расположенным на хосте «b» стыковки.
[0084] Блок 401 дополнительно содержит метаданные в форме компьютерно-читаемых инструкций, выполняемых программным обеспечением беспроводной стыковки в стыкуемом устройстве, для создания драйвера 411 устройства. Метаданные используется для конфигурирования этого драйвера устройства для подключения к интерфейсу 461 для получения обновления экрана для «Smain» 423. Метаданные дополнительно конфигурируют драйвер 411 для соединения по IP-сети с драйвером 412 устройства, расположенным на хосте 421 стыковки, причем этот драйвер устройства идентифицирует себя как связанный с «Smain» 423.
Инструкции метаданных можно выражать, например, в виде строки ASCII с использованием языка XML, чтобы инструкцию можно было отправлять на программное обеспечение стыкуемого устройства по сетевому соединению, в случае, когда модуль 550 планирования соединения не располагается в самом стыкуемом устройстве.
[0085] Блочный элемент 402 данных представляет драйвер 412 устройства на хосте 421 стыковки, который принимает обновления содержания экрана по IP-соединению и затем применяет их к реальному устройству экрана.
[0086] Метаданные для блока 402 содержат компьютерно-читаемые инструкции, выполняемые программным обеспечением беспроводной стыковки на хосте 421 стыковки для создания драйвера 412 устройства вышеописанного типа, чтобы конфигурировать его для подключения к интерфейсу 462 для реального экрана «Smain» 423, обеспечиваемого операционной системой на хосте стыковки, и дополнительно конфигурировать его для приема запроса соединения по IP-сети от драйвера 411 устройства, расположенного в стыкуемом устройстве 420, когда драйвер 411 устройства запрашивает соединение с драйвером устройства, связанным с «Smain» 423.
[0087] Вышеописанные инструкции метаданных необходимы, но не достаточны для установления нужного канала связи. Два драйвера 411, 412 устройства, описанные выше в отношении блочных элементов 401, 402 данных, предусматривают наличие быстрого беспроводного сетевого соединения между стыкуемым устройством 420 и хостом 421 стыковки, по которому можно установить IP-соединения. Однако, при беспроводной стыковке, такого быстрого беспроводного соединения обычно сначала не существует. Вместо этого, быстрое беспроводное соединение (обычно соединение WiFi direct) также должно быть запланировано модулем 550 планирования соединения. Остальные блочные элементы 403, 404 и 405 данных в Tx, показанные фиг. 4, представляют системные элементы, участвующие в создании быстрого сетевого соединения между стыкуемым устройством 420 и хостом 421 стыковки, которое запланировано модулем 550 планирования соединения.
[0088] Блочный элемент данных 403 представляет оборудование 413 сетевого интерфейса WiFi в стыкуемом устройстве 420, выполненное с возможностью работать в режиме 802.11n по каналу 5 ГГц, и дополнительно выполненное с возможностью подключения к сети 415 WiFi direct, размещенной интерфейсным оборудованием 414 на хосте 421 стыковки.
[0089] Метаданные для блока 403 содержат компьютерно-читаемые инструкции, выполняемые программным обеспечением беспроводной стыковки в стыкуемом устройстве, для активации идентифицированного оборудования 413 сети WiFi и для его конфигурирования для работы в описанном режиме, и дополнительно для его конфигурирования для подключения к хосту 421 стыковки через сеть 415 WiFi direct.
[0090] Блочный элемент 404 данных представляет противоположную сторону оборудования 414 WiFi на хосте 421 стыковки, выполненную с возможностью создания сети 415 WiFi direct и приема соединения от стыкуемого устройства. Блочный элемент 404 данных содержит компьютерно-читаемые инструкции, подлежащие выполнению хостом 421 стыковки для соответствующего конфигурирования 414.
[0091] Блочный элемент 405 данных представляет спектр WiFi в полосе 5 ГГц, которая пригодна для передачи радиопакетов между двумя интерфейсами WiFi. Присутствие этого блока во входном сигнале модуля 550 планирования соединения указывает, что стыкуемое устройство 420 и хост 421 стыковки находятся в диапазоне 5 ГГц WiFi друг друга. Этот блок не имеет никаких метаданных с компьютерно-читаемыми инструкциями, поскольку спектр уже существует, и его не требуется создавать, активировать или конфигурировать для поддержки сети 415.
[0092] Следует понимать, что способ создания каналов связи модулем 550 планирования соединения не опирается на каждый канал связи, отдельно представленный в Tx. Напротив, выполнение всех инструкций в метаданных блока предписывает, при необходимости, создавать все множественные каналы связи, в то время как процесс выполнения осуществляется поблочно.
[0093] В некоторых вариантах осуществления, некоторые или все инструкции для задания системных элементов не содержатся в метаданных, но, вместо этого, выводятся, полностью или частично, из имен интерфейсов посредством некоторого автоматизированного процесса.
[0094] В некоторых вариантах осуществления, также может быть преимущественным включать метаданные в каждый блок, благодаря чему, система сможет устанавливать определенный порядок выполнения инструкций, содержащихся в метаданных разных блоков. Например, целочисленное значение элемента метаданных «порядок создания экземпляра» может кодироваться каждым блоком, и программное обеспечение в устройствах можно устанавливать таким образом, чтобы инструкции блоков с самым низким порядком создания экземпляра выполнялись в первую очередь.
[0095] Опять же, согласно фиг. 4, примерный порядок создания экземпляра может быть следующим: блок 404, затем блок 403, затем блок 402, затем блок 401. Этот порядок создания экземпляра гарантирует, что системные элементы, которые должны инициировать соединения с системными элементами противоположной стороны, обычно будут находить свою противоположную сторону готовой и желающей принять соединение. Хотя такой примерный порядок или оптимизация создания экземпляра могут быть полезны, это не является безусловным требованием, если системные элементы сконфигурированы с возможностью переустанавливать соединения в случае их разрыва.
ДЕТАЛИ ПЛАНИРОВАНИЯ СОЕДИНЕНИЯ
[0096] Как рассмотрено выше, модуль 550 планирования соединения создает выходной сигнал, обозначенный C на фиг. 6, содержащий набор Tx, в качестве «плана соединения» из своих соответствующих входных сигналов, включающих в себя первый входной сигнал, обозначенный A на фиг. 6, представляющий набор M пар концевых точек, и второй входной сигнал, обозначенный B на фиг. 6, представляющий набор B блочных элементов данных. Выходной сигнал Tx модуля 550 планирования соединения всегда является поднабором входного сигнала B, где B это набор всех доступных блоков, которые совместно описывают все возможности и ограничения системы. План соединения Tx должен удовлетворять некоторым ограничениям, подлежащим реализации, и, таким образом, представляет поднабор B. Блочные элементы данных, которые образуют Tx, будучи «активированы» согласно компьютерно-читаемым инструкциям в своих метаданных, должны фактически создавать все промежуточные сегменты в наборе каналов связи между концевыми точками канала связи, заданными входным сигналом A, т.е. набором M пар концевых точек. Помимо подчинения некоторым другим ограничениям, совместная активация всех блоков в Tx также должна допускать задание здесь в виде двух блоков в Tx, которые могут не представлять конфигурации для определенного системного элемента, которые являются взаимоисключающими.
[0097] Планирование соединения можно рассматривать в одном аспекте как процесс поиска, где разные кандидаты в поднаборы набора блочных элементов данных, который является входным сигналом B, обследуются для отыскания поднабора блочных элементов данных B, именуемых здесь реализуемым планом соединения Tx, который наилучшим образом удовлетворяет ряду критериев. Чтобы модуль 550 планирования соединения тестировал эти критерии для определения, реализуем ли план соединения Tx, критерии должны быть вычислимыми применительно к репрезентативным блокам, связанным с ними интерфейсным элементам данных и метаданным.
[0098] В предпочтительном варианте осуществления, четыре критерия используются модулем 550 планирования соединения для идентификации реализуемого плана Tx соединения, состоящего из конкретного поднабора блоков, из входного набора B. Другие варианты осуществления могут использовать больше или меньше или другие критерии.
ПЕРВЫЕ КРИТЕРИИ
[0099] Для идентификации реализуемого плана соединения Tx, первые критерии, подлежащие удовлетворению, содержат идентификацию интерфейсных элементов данных, которые либо содержатся во входном сигнале «A» (наборе пар концевых точек «M») или иным образом имеют отношение типа 1, по меньшей мере, с одним блочным элементом данных в рассматриваемом выходном наборе «Tx», и, дополнительно, определение, что каждый из идентифицированных интерфейсных элементов данных имеет отношение типа 2, по меньшей мере, с одним блочным элементом данных «Tx».
ВТОРЫЕ КРИТЕРИИ
[00100] Вторые критерии, подлежащие удовлетворению, содержат первую идентификацию, имеет ли какой-либо конкретный блочный элемент данных в «Tx» отношение типа 2 с конкретным интерфейсным элементом данных и после удовлетворения первой идентификации, определение, является ли идентифицированный блочный элемент данных только блочным элементом данных в «Tx», который имеет отношение типа 2 с этим конкретным интерфейсным элементом данных.
ТРЕТЬИ КРИТЕРИИ
[00101] Удовлетворение третьим критериям содержит определение, что невозможно удалить один или более блоков из «Tx» получая в результате «Tx», который удовлетворяет первым критериям.
[00102] В некоторых вариантах осуществления третий критерий можно опустить. Третьи критерии препятствуют ситуации, когда планировщик соединения выводит Tx с избыточными блоками, т.е. блоки, включение которых не требуется для реализации каналов связи согласно первому входному сигналу. Примером избыточного блока является блок, который представляет избыточную конфигурацию сетевого интерфейса, например, конфигурацию, которая позволяет интерфейсу отправлять пакеты в место, где их не надо будет отправлять для установления канала связи.
ЧЕТВЕРТЫЕ КРИТЕРИИ
[00103] Четвертые критерии относятся к выбору наиболее оптимального плана соединения, того, который имеет наибольшую метрику производительности. Четвертые критерии можно реализовать одним из двух способов.
[00104] Один способ осуществления четвертых критериев содержит определение, что, из всех поднаборов «T1, T2, …, Tn» B, удовлетворяющих критериям с первого по третий, «Tx» является тот, который имеет наибольшую метрику производительности, где метрика производительности набора вычисляется частично из информации метаданных, кодированных блоками в этом наборе.
[00105] Другой способ осуществления четвертых критериев содержит определение, что, из этих альтернативных поднаборов «T1, T2, …, Tn» B, удовлетворяющих критериям с первого по третий, которые до сих пор рассмотрены планировщиком соединения, «Tx» является тот, который имеет наибольшую метрику производительности, где метрика производительности набора вычисляется частично из информации метаданных, кодированных блоками в этом наборе.
[00106] Четвертый критерий гарантирует нахождение оптимального Tx, того, который наилучшим образом оптимизирует производительность реализованного плана соединения согласно метрике производительности, которая использовалась. В предпочтительном варианте осуществления, метрика производительности согласно любому способу реализации, рассмотренному выше, вычисляется с использованием метаданных, присоединенных к блокам в Tx. Более детально метрики производительности рассмотрены в разделе 22 предварительной заявки № 61/607,114, включенной в настоящее описание посредством ссылки в полном объеме.
[00107] В соответствии с первой реализацией четвертых критериев, гарантируется нахождение оптимального Tx. В соответствии со второй реализацией четвертых критериев, можно найти Tx, близкий к оптимальному, обычно за меньшее время, чем при использовании первой версии.
Size_of_B
[00108] Следует отметить, что для входного набора B, количество возможных поднаборов Tx, которые может понадобиться проверить планировщику соединения, растет экспоненциально как 2. Специалистам в данной области техники очевидно, что вычисление для нахождения Tx, удовлетворяющего четырем вышеописанным критериям, с использованием первой версии четвертых критериев, относится к классу NP-полных задач. Как хорошо известно практическим специалистам по NP-полным задачам, когда размер задачи становится настолько большим, что гарантированно наилучшего решения относительно Tx не удается найти в течение приемлемого времени вычисления, можно ослабить определенные критерии для идентификации реализуемых неидеальных решений. Например, вторая версия четвертых критериев является ослабленной версией первой, что позволяет планировщику соединения прекращать поиск в течение приемлемой продолжительности времени.
АЛГОРИТМИЧЕСКАЯ РЕАЛИЗАЦИЯ ПРОТОТИПА
[00109] При реализации прототипа, модуль 550 планирования соединения сначала генерирует все наборы T1, T2, …, Tn, которые удовлетворяют критериям с первого по третий, и затем применяет первую версию или реализацию четвертого критерия для выбора реализуемого и оптимального плана соединения Tx.
[00110] Для генерации всех наборов T1, T2, …, Tn использовали рекурсивный алгоритм (с обратным слежением), который посещает (потенциально) все поднаборы B, начиная с пустого набора, и рекурсивно добавляет в него определенные блоки. Например, только блок X рекурсивно добавляется в существующий набор блоков E, если блок X имеет отношение типа 2 с интерфейсом I, которого «не хватает» в E, и если E+X по-прежнему удовлетворяет критерию 2 после осуществления рекурсивного этапа в этой итерации. Интерфейс I определяется как тот, которого «не хватает» в E, если в Y уже нет блока, имеющего отношение типа 2 с интерфейсом I, в то время как I находится в M, или в E присутствует блок, имеющий отношение типа 1 с интерфейсом I. Если результирующий набор E+X удовлетворяет критерию 1 (в том смысле, что там больше нет «недостающих» интерфейсов), он прибавляется к набору T1, T2, …, Tn, и дальнейшая рекурсия не производится для E+X - это исключение дальнейшей рекурсии означает, что критерий 3 автоматически удовлетворяется каждым набором в T1, T2, …, Tn.
[00111] Очевидно, что вышеописанная реализация прототипа является только одной алгоритмической реализацией, которую можно выбрать из многих общеизвестных реализаций алгоритма для решения или аппроксимации решения NP-полной задачи в отношении изобретения.
Входные сигналы планировщика соединения и их отношение к четырем критериям
[00112] Возвращаясь к фиг. 4, проиллюстрировано два блочных элемента 401 и 403 данных системы согласования, которые, соответственно, представляют два соответствующих и соседних системных элемента 411 и 413 в системе связи. Оба блочных элемента 401, 403 данных имеют отношение с интерфейсным элементом 453 данных, который представляет соединение 463 реального мира между двумя элементами 411 и 413 системы связи. Как описано выше, при кодировании блоков на стадии подготовительного кодирования до использования, поскольку подготовка для блоков поступает в качестве одного входного сигнала B на модуль планирования соединения, если конкретный блок, например, блок 403, представляет системный элемент, который реализует услуги, доступные по соединению 463, затем отношение между блоком 403 и блоком 453 задается как отношение типа 2. Если другой блок, например, блок 401, представляет системный элемент, который использует услуги, доступные по соединению 463, затем отношение между блоком 401 и блоком 453 задается как отношение типа 1.
[00113] Применение первых критериев, которым должен удовлетворять поднабор Tx набора B блочных элементов данных на основании первого и второго входных сигналов, к модулю планирования соединения для объявления поднабора Tx реализуемым, требует, чтобы при наличии блока, который представляет системный элемент, который использует услугу, должен присутствовать соответствующий блок, который представляет системный элемент, который обеспечивает эту услугу. Блок 401, который является элементом Tx, использует услугу. Таким образом, чтобы удовлетворять первым критериям, блок 403 должен присутствовать в Tx для предоставления или реализации услуги блоку 401, для подачи необходимого отношения типа 2 для интерфейса 453. Таким образом, блок 403 обеспечивает, или реализует, системную функцию, описанную интерфейсом.
[00114] Кроме того, первый критерий также гарантирует, что все интерфейсы, присутствующие во входном наборе M, который является одним из входных сигналов модуля планирования соединения, должны обеспечиваться блоками в Tx. Правильная работа модуля планирования соединения требует использования руководства для кодирования возможностей и ограничений в блоки, которые образуют входной набор B. Другими словами, всякий раз, когда системный элемент, представленный блоком из набора B, нуждается в предоставлении дополнительных услуг через интерфейсы других системных элементов в B, чтобы функционировать, эти дополнительные услуги нужно кодировать как интерфейсы типа 1 блока. Блоки, предоставляющие такие услуги, должны кодировать их как интерфейсы типа 2.
[00115] Для тех интерфейсов, которые представляют отношения клиент-сервер между блоками, представляющие несоседние системные элементы в системе связи, первый критерий может гарантировать, что в плане соединения существует сервер для каждого клиента, который удовлетворяет первому критерию и выводится. Чтобы гарантировать это, требуется использовать руководство для кодирования возможностей и ограничений в блоки. Это руководство состоит в том, что, при наличии отношения клиент-сервер между системными элементами, представленными двумя блоками, интерфейсный элемент данных, представляющий это отношение, нужно помещать между ними при кодировании блоков во входном сигнале B, с отношением типа 1 между интерфейсом и одним из блоков и отношением типа 2 между интерфейсом и другим блоком.
[00116] Второй критерий гарантирует, что каналы связи, выводимые модулем 550 планирования соединения, являются строго определенными. Эти вторые критерии гарантируют, что единичный блок реализует или обеспечит один-единственный конкретный интерфейс, и будет существовать один-единственный сервер, к которому будет подключаться клиент. Если второй критерий исключен, то может потребоваться осуществлять этап последующей обработки на Tx, выходном сигнале модуля 550 планирования соединения, для устранения некоторых неопределенностей, в особенности, неопределенностей в информации конфигурации, которая предписывает системному элементу устанавливать соединение с конкретной противоположной стороной.
[00117] Реализация второго критерия имеет также преимущество в том, что он может усиливаться автором(ми) блочных элементов данных для кодирования не просто возможностей, но и ограничений системы. Напомним, что блок может представлять системный элемент, к которому были применены определенные данные конфигурации. При наличии двух взаимоисключающих путей для конфигурирования системного элемента, предпочтительный подход состоит в том, чтобы представлять системный элемент путем создания двух блочных элементов данных, вместо одного, для представления взаимоисключающих конфигураций системного элемента, благодаря чему, оба блочных элемента данных имеют отношение типа 2 с единичным данным интерфейсом. Затем авторы блочных элементов данных могут поместить эти два блочных элемента данных, имеющие разные конфигурации, во входной сигнал B, предполагая, что модуль планирования соединения применит вторые критерии, эффективно препятствующие модулю 550 планирования соединения включать оба блочных элемента данных в один и тот же выходной план соединения Tx, поскольку включение обоих блочных элементов данных Tx не будет удовлетворять второму критерию.
[00118] Интерфейс типа 2, используемый для кодирования ограничения, не обязан быть интерфейсом, который возникает во входном наборе M, или интерфейсом отношения типа 1 в любом другом блоке. Пример этого приведен в разделе 20 предварительной заявки № 61/607,114, включенной в настоящее описание посредством ссылки в полном объеме.
[00119] Заметим, что вторые критерии представляют собой не только доступный способ облегчения кодирования ограничений системы в отношении блоков. Изобретение также предусматривает альтернативное средство. Например, можно ввести третий тип интерфейса, например, тип 3 интерфейса, совместно с модифицированными вторыми критериями, который смотрит на уникальность интерфейсов типа 3, вместо интерфейсов типа 2, таким образом, что для каждого интерфейса, один-единственный блок в Tx может иметь отношение типа 3 с интерфейсом.
[00120] В одном варианте осуществления, модуль 550 планирования соединения может исключать вторые критерии и альтернативно вычислять набор каналов связи с максимально возможными избыточными ответвлениями. Здесь, любое результирующее решение выходного сигнала Tx, содержащего избыточные ответвления в форме двух альтернативных вариантов выбора для установления соединения будут разрешаться с использованием алгоритма, который делает выбор вдоль одного предпочтительного ответвления, при первоначальной реализации каналов, но переключается на другое ответвление, всякий раз, когда вдоль первого ответвления возникает нарушение связи. В этой реализации, модуль 550 планирования соединения исключает второй критерий и заменяет его другим критерием для обеспечения кодирования ограничений системы.
[00121] В предпочтительном варианте осуществления, интерфейсы представлены в виде строк ASCII, и вышеупомянутые критерии 1-4 используют тестирование на равенство между строками ASCII, совместно с тестированием для отношений типа 1 и 2, чтобы сделать их определения. Очевидно, что использование ослабленных тестов на равенство между именами интерфейсов, например, тест на «совпадение» вместо теста на равенство. Например, один тест на совпадение, который можно использовать в тесте строки ASCII на совпадение, который игнорирует верхний/нижний регистр букв. В некоторых вариантах осуществления, отношения типа интерфейса, например, отношения типа 1 или типа 2, должны кодироваться внутри имени интерфейса, с соответственно модифицированными правилами и критериями совпадения.
[00122] Очевидно, что система кодирования изобретения с использованием блоков и интерфейсов предоставляет своим пользователям значительную расширяемую свободу. Изобретение не требует обеспечения точного описания, как нужно кодировать возможности и ограничения устройств в блоки. Эта неточность составляет силу в том, что позволяет системе иметь дело с новыми типами инновационных архитектур системы благодаря применению расширяемой схемы кодирования, в которую можно добавлять новые кодирования, как раскрыто, например, в разделе 26 предварительной заявки, № 61/607,114, включенной в настоящее описание посредством ссылки в полном объеме. Конкретные схемы кодирования, которые пригодны для кодирования блочных элементов данных и соответствующие интерфейсные элементы данных для общеизвестных типов системных элементов раскрыты в разделах 17-19 предварительной заявки, № 61/607,114, включенной в настоящее описание посредством ссылки в полном объеме.
[00123] Изобретение имеет дополнительное преимущество в том, что традиционные принципы архитектуры системы, например, «драйвер устройства» и «сетевой интерфейс», границами которых являются очевидные интерфейсы операционной системы и/или границы уровня стека протоколов, аккуратно отображаются в системные элементы и блоки. Отправления из регулярных границ архитектуры системы внутрь единичного устройства также можно гибко кодировать, не влияя на кодирование блоков, представляющих возможности и ограничения другого устройства.
[00124] Перегрузку традиционных интерфейсов, например, использование интерфейса доставки IP-пакетов, который также обеспечивает некоторую дополнительную производительность в реальном времени, гарантирует специализированным драйверам устройства, предусмотренным, например, в привязках WiGig для поддержки функциональных возможностей типа HDMI и USB, также можно кодировать. Это проиллюстрировано в разделе 18 предварительной заявки № 61/607,114.
[00125] Один новый признак изобретения относится к способу представления возможностей беспроводной среды между устройствами с использованием блоков. Более подробное рассмотрение приведено в разделе 18 предварительной заявки № 61/607,114.
[00126] Фиг. 7 изображает примерное схематическое представление машины в форме компьютерной системы 700, в которой набор инструкций, при выполнении, может предписывать машине осуществлять любую одну или более из рассмотренных выше методологий. В некоторых вариантах осуществления, машина действует как самостоятельное устройство. В некоторых вариантах осуществления, машина могут быть соединена (с использованием сети) с другими машинами. В сетевом развертывании, машина может действовать в емкости серверной или клиентской пользовательской машины в серверно-клиентском пользовательском сетевом окружении, или как равноправная машина в одноранговом (или распределенном) сетевом окружении.
[00127] Машина может содержать компьютер-сервер, компьютер-клиент пользователя, персональный компьютер (ПК), планшетный ПК, портативный компьютер, настольный компьютер, систему управления, сетевой маршрутизатор, коммутатор или мост, карманный персональный компьютер (КПК), смартфон, карманный ПК, сотовый телефон и проигрыватель MP3 или любую машину, способную выполнять набор инструкций (последовательно или иначе), которые указывают, какие действия должна совершать эта машина. Следует понимать, что устройство настоящего раскрытия включает в себя, в широком смысле, любое электронное устройство, которое обеспечивает передачу голоса, видео или данных. Дополнительно, хотя проиллюстрирована единичная машина, термин "машина" также может подразумевать совокупность машин, которые по отдельности или совместно выполняют набор (или множественные наборы) инструкций для осуществления любой одной или более из рассмотренных здесь методологий.
[00128] Компьютерная система 700 может включать в себя процессор 702 (например, центральный процессор (ЦП)), графический процессор (ГП или оба), основную память 704 и статическую память 706, которые сообщаются друг с другом через шину 708. Компьютерная система 700 может дополнительно включать в себя блок 710 отображения видео (например, жидкокристаллический дисплей (ЖКД)), плоскопанельный, твердотельный дисплей или электронно-лучевая трубка (ЭЛТ). Компьютерная система 700 может включать в себя устройство 712 ввода (например, клавиатуру), устройство 714 управления курсором (например, мышь), устройство 716 дисковода, устройство 718 генерации сигнала (например, громкоговоритель или пульт дистанционного управления) и устройство 720 сетевого интерфейса.
[00129] Устройство 716 дисковода может включать в себя компьютерно-читаемый носитель 722, на котором хранится один или более наборов инструкций (например, программное обеспечение 724) реализующих любую одну или более из описанных здесь методологий или функций, включающих в себя проиллюстрированные выше способы. Инструкции 724 также могут располагаться, полностью или, по меньшей мере, частично, в основной памяти 704, статической памяти 706 и/или в процессоре 702 в ходе их выполнения компьютерной системой 700. Основная память 704 и процессор 702 также могут составлять компьютерно-читаемые носители. Набор инструкций (например, программное обеспечение 724) также может располагаться, полностью или, по меньшей мере, частично, в основной памяти 704, статической памяти 706 и/или в процессоре 702 в ходе его выполнения компьютерной системой 700. Основная память 704 и процессор 702 также могут составлять компьютерно-читаемые носители.
[00130] Реализации специализированного оборудования, включающие в себя, но без ограничения, специализированные интегральные схемы, программируемые логические матрицы и другие аппаратные устройства аналогично можно построить для реализации описанных здесь способов. Приложения, которые могут включать в себя устройство и системы различных вариантов осуществления, в широком смысле, включают в себя различные электронные и компьютерные системы. Некоторые варианты осуществления реализуют функции в двух или более конкретных соединенных между собой аппаратных модулей или устройств с соответствующими сигналами управления и данных, передаваемых между модулями и через них, или в виде участков специализированной интегральной схемы. Таким образом, примерная система применима к программным, программно-аппаратным и аппаратным реализациям.
[00131] В соответствии с различными вариантами осуществления настоящего раскрытия, описанные здесь способы предназначены для работы в качестве программ, реализованных программными средствами, выполняющихся на компьютерном процессоре. Кроме того, программные реализации могут включать в себя, но без ограничения, распределенную обработку или распределенную обработку компонентов/объектов, параллельную обработку, или обработку виртуальная машина также можно построить для реализации описанных здесь способов.
[00132] Настоящее раскрытие предусматривает компьютерно-читаемый носитель, содержащий инструкции 724, или который принимает и выполняет инструкции 724 из распространяющегося сигнала, что позволяет устройству, подключенному к сетевому окружению 726, отправлять или принимать голос, видео или данные, и передавать по сети 726 с использованием инструкций 724. Инструкции 724 дополнительно можно передавать или принимать по сети 726 через устройство 720 сетевого интерфейса.
[00133] Хотя компьютерно-читаемый носитель 722 показан в примерном варианте осуществления как единичный носитель, термин "компьютерно-читаемый носитель" следует рассматривать как включающий в себя единичный носитель или множественные носители (например, централизованную или распределенную базу данных, и/или соответствующие кэши и серверы), где хранится один или более наборов инструкций. Термин "компьютерно-читаемый носитель" также может подразумевать носитель, который способен сохранять, кодировать или переносить набор инструкций, которые выполняются машиной и предписывают машине осуществлять любую одну или более из методологий настоящего раскрытия.
[00134] Термин "компьютерно-читаемый носитель" следует, соответственно, рассматривать как включающий в себя, но без ограничения: твердотельные блоки памяти, например, карту памяти или другую упаковку, которая заключает в себя один или более блоков постоянной (энергонезависимой) памяти, блоков оперативной памяти или других перезаписываемых (энергозависимых) блоков памяти; магнитооптический или оптический носитель, например, диск или ленту; и/или вложение цифрового файла в электронную почту или другой автономный архив информации или набор архивов считается распределенным носителем, эквивалентным материальному носителю данных. Соответственно, раскрытие считается включающим в себя любой один или более из компьютерно-читаемого носителя или распределенного носителя, перечисленных здесь и включающих в себя известные в технике эквиваленты и перспективные носители, на которых хранятся программные реализации.
[00135] Хотя настоящее описание изобретения описывает компоненты и функции, реализованные в вариантах осуществления со ссылкой на конкретные стандарты и протоколы, раскрытие не ограничивается такими стандартами и протоколами. Каждый из стандартов передачи в интернете и другой сети с коммутацией пакетов (например, TCP/IP, UDP/IP, HTML, HTTP) представляют примеры уровня техники. Такие стандарты периодически заменяются более быстрыми или более эффективными эквивалентами, имеющими, по существу, такие же функции. Соответственно, замена стандартов и протоколов, имеющих одни и те же функции, считаются эквивалентами.
[00136] Иллюстрации описанных здесь вариантов осуществления призваны обеспечивать общее понимание структуры различных вариантов осуществления, и они не призваны служить полным описанием всех элементов и признаков устройства и систем, где могут использоваться описанные здесь конструкции. Специалисты в данной области техники, ознакомившись с вышеприведенным описанием, могут предложить многие другие варианты осуществления. Другие варианты осуществления можно использовать и выводить из них, таким образом, что структурные и логические замены и изменения можно делать, не выходя за рамки объема этого раскрытия. Фигуры также являются всего лишь репрезентативными и могут не быть выполнены в масштабе. Определенные их пропорции могут быть преувеличены, тогда как другие могут быть минимизированы. Соответственно, описание изобретения и чертежи следует рассматривать в примерном, а не в ограничительном смысле.
[00137] Такие варианты осуществления предмета изобретения могут относиться здесь, по отдельности и/или совместно, к термину "изобретение" лишь для удобства и без намерения произвольно ограничивать объем данной заявки каким-либо единственным изобретением или принципом изобретения, если фактически раскрыт более чем один. Таким образом, хотя конкретные варианты осуществления проиллюстрированы и описаны здесь, очевидно, что любая конфигурация, вычисленная для достижения той же цели, может быть заменена для конкретных показанных вариантов осуществления. Это раскрытие призвано охватывать любые или все адаптации или вариации различных вариантов осуществления. Специалисты в данной области техники, ознакомившись с вышеприведенным описанием, могут предложить комбинации вышеописанных вариантов осуществления, и других вариантов осуществления конкретно здесь не описанных.
[00138] Специалисты в данной области техники могут понять и осуществить при практической реализации заявленного изобретения другие разновидности раскрытых вариантов осуществления, изучив чертежи, раскрытие и зависимые пункты формулы изобретения. В формуле изобретения, слово «содержащий» не исключает наличия других элементов или этапов, и употребление их наименований в единственном числе не исключает наличия их множества. Единичный процессор или другое устройство может выполнять функции нескольких элементов, упомянутых в формуле изобретения. Лишь тот факт, что определенные меры упомянуты во взаимно различных зависимых пунктах, не говорит о том, что нельзя выгодно использовать комбинацию этих мер.