Системы и способы обработки перехвата управления при отказе в распределенной среде с маршрутизацией

Иллюстрации

Показать все

Изобретение относится к системе и способу, предназначенным для обработки перехвата управления при отказе в распределенной среде с маршрутизацией. Техническим результатом является повышение надежности системы за счет согласования привязок между двумя или более поставщиками. Система содержит вычислительные устройства, каждое из которых включает в себя процессор и запоминающее устройство в электронной связи с процессором. Первая привязка имеет идентификатор первой привязки. В запоминающем устройстве хранятся команды для осуществления способа согласования привязок. В сети объявляют первую привязку. Устанавливают второго поставщика, также обеспечивающего в сети первую привязку со вторым идентификатором привязки. Вычислительное устройство путем оценивания функции (F) конфликта затем определяет, должно ли оно обеспечивать первую привязку. На основании результата функции конфликта либо останавливается добавление первой привязки со вторым идентификатором привязки, либо отменяется первая привязка с первым идентификатором привязки. 2 н. и 17 з.п. ф-лы, 13 ил.

Реферат

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ

Настоящее изобретение в целом относится к компьютерам и связанной с применением компьютеров технологии. Более конкретно, настоящее изобретение относится к системе и способам, предназначенным для обработки перехвата управления при отказе в распределенной среде с маршрутизацией.

ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ

Технологии применения компьютеров и связи продолжают расширяться в быстром темпе. Действительно, технологии применения компьютеров и связи включаются во многие аспекты дня жизни человека. Например, многие устройства, используемые сегодня потребителями, имеют малый компьютер во внутренней части устройства. Эти малые компьютеры являются изменяющимися по размерам и степеням сложности. Эти малые компьютеры включают в себя все от одного микроконтроллера до полнофункциональной укомплектованной компьютерной системы. Например, эти малые компьютеры могут быть однокристальным компьютером, таким как микроконтроллер, одноплатным компьютером, таким как контроллер, типовым настольным компьютером, таким как совместимый с компьютерами фирмы IBM персональный компьютер (PC) и т.д.

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

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

Эти типы малых компьютеров, которые являются частью устройства, прибора, инструментального средства и т.д., часто называют встроенными системами. Термин "встроенная система" обычно относится к аппаратным средствам и программному обеспечению компьютера, которые являются частью более крупной системы. Встроенные системы могут не иметь обычных устройств ввода и вывода, таких как клавиатура мышь и/или монитор. Обычно в основе каждой встроенной системы находится один или несколько процессоров.

Система освещения может включать в состав встроенную систему. Встроенная система может использоваться, чтобы осуществлять текущий контроль (мониторинг) и управлять действиями системы освещения. Например, встроенная система может обеспечивать элементы управления для уменьшения яркости светильников в рамках системы освещения. В качестве альтернативы встроенная система может обеспечивать элементы управления для повышения яркости светильников. Встроенная система может обеспечивать элементы управления для инициации конкретной схемы освещения среди отдельных светильников в рамках системы освещения. Встроенные системы могут быть соединены с отдельными выключателями в рамках системы освещения. Эти встроенные системы могут выдавать команды выключателям на включение или выключение питания отдельных светильников или полной системы освещения. Подобным образом встроенные системы могут быть связаны с отдельными светильниками в рамках системы освещения. Яркость или состояние электропитания каждого отдельного светильника могут регулироваться посредством встроенной системы.

Система безопасности также может включать в состав встроенную систему. Встроенная система может использоваться для управления отдельными датчиками защиты, которые составляют систему безопасности. Например, встроенная система может обеспечивать элементы управления, чтобы включать питание каждого из датчиков защиты автоматически. Встроенные системы могут быть связаны с каждым из отдельных датчиков защиты. Например, встроенная система может быть соединена с датчиком движения. Встроенная система может включать питание отдельного датчика движения автоматически и предусматривать элементы управления для активации датчика движения, если движение обнаружено. Активация датчика движения может включать в себя обеспечение команд для включения питания светодиода (СИД, LED), расположенного внутри датчика движения, вывода аварийного сигнала из портов вывода в составе датчика движения и т.п. Встроенные системы также могут быть связаны с датчиками, контролирующими дверь. Встроенная система может подавать команды на контролирующий дверь датчик, чтобы активировать, когда дверь открывается или закрывается. Подобным образом встроенные системы могут быть связаны с датчиками, контролирующими окно. Встроенная система может обеспечивать команды, чтобы активировать контролирующий окно датчик, когда окно открывается или закрывается.

Некоторые встроенные системы также могут использоваться для управления изделиями беспроводной связи, такими как телефоны сотовой связи. Встроенная система может обеспечивать команды, чтобы включать питание светодиодного дисплея телефона сотовой связи. Встроенная система также может активировать аудиодинамики в телефоне сотовой связи, чтобы обеспечивать пользователю звуковое уведомление, относящееся к телефону сотовой связи.

Бытовые приборы также могут включать в состав встроенную систему. Бытовые приборы могут включать в себя приборы, обычно используемые на обыкновенной кухне, например печь, холодильник, микроволновую печь и т.д. Бытовые приборы также могут включать в себя приборы, которые имеют отношение к обеспечению здоровья и благосостояния пользователя. Например, массажное кресло может включать в состав встроенную систему. Встроенная система может обеспечивать команды для автоматического откидывания спинки кресла в соответствии с предпочтениями пользователя. Встроенная система также может обеспечивать команды для инициации колебательных компонентов в кресле, которые обеспечивают вибрации в кресле с качающейся спинкой в соответствии с предпочтениями пользователя.

Дополнительные изделия, обычно используемые в домах, также могут включать в состав встроенные системы. Например, встроенная система может использоваться в туалете для управления уровнем воды, используемой для пополнения контейнерного бачка. Встроенные системы могут использоваться в ванне струйного типа для управления оттоком воздуха.

Как изложено, встроенные системы могут использоваться для осуществления текущего контроля или управления многими различными системами, ресурсами, изделиями и т.д. С развитием сети Интернет и глобальной гипертекстовой системы (Всемирной паутины, www), встроенные системы являются все в большей степени связанными с Интернет, так что они могут дистанционно контролироваться и/или управляться. Другие встроенные системы могут соединяться с вычислительными сетями, включая локальные сети, глобальные сети, и т.д.

Некоторые встроенные системы могут предоставлять данные и/или услуги на другие вычислительные устройства с использованием вычислительной сети. В качестве альтернативы могут быть типовые компьютеры или вычислительные устройства, которые предоставляют данные и/или услуги на другие вычислительные устройства с использованием компьютерной сети. В сети может быть множество поставщиков. Иногда поставщики могут претерпевать отказ, что в свою очередь означает, что данные и/или услуги, обеспечиваемые поставщиком, также могут отказать. Преимущества могут быть реализованы, если обеспечены системы и способы для обработки перехвата управления при отказе в компьютерных сетях.

РАСКРЫТИЕ СУЩНОСТИ ИЗОБРЕТЕНИЯ

Раскрыто вычислительное устройство, выполненное с возможностью осуществления способа для согласования привязок. Вычислительное устройство включает в себя процессор и запоминающее устройство в электронной связи с процессором. Первая привязка имеет первый идентификатор (ID) привязки. В запоминающем устройстве хранятся команды для осуществления способа согласования привязок. Первая привязка объявляется в сети. Выявляется второй поставщик, который также обеспечивает в сети первую привязку со вторым идентификатором привязки. Вычислительное устройство затем определяет, должно ли оно обеспечивать первую привязку путем оценивания функции (F) конфликта. На основании результата функции конфликта либо останавливается добавление первой привязки со вторым ID привязки, либо отменяется первая привязка с первым ID привязки.

Первая привязка может включать в себя объект и интерфейс. К услуге можно осуществлять доступ посредством использования объекта и интерфейса.

В некоторых вариантах осуществления функция конфликта использует первый ID привязки и второй ID привязки в качестве входных данных и обеспечивает булев результат. Кроме того, функция (F) конфликта может удовлетворять условию, что F(A,B) не является такой же, как F(B,A), так что (F) удовлетворяет условию, что если F(A,B)=Истина (True), то F(B,A)=Ложь (False). В некоторых вариантах осуществления функция (F) конфликта представляет собой функцию «меньше чем».

Команды могут реализовывать второй способ. Из сети принимается попытка удаления. Попытка удаления является попыткой удаления второй привязки в сети. Определяется, имеет ли вычислительное устройство возможность обеспечения второй привязки. Попытке удаления позволяют продолжаться, если вычислительное устройство не является способным обеспечивать вторую привязку. Попытка удаления останавливается и вторая привязка добавляется к сети, если вычислительное устройство способно обеспечивать вторую привязку, но в настоящий момент времени не обеспечивает вторую привязку. В некоторых вариантах осуществления вычислительное устройство выполнено с возможностью осуществления способа трехстадийного взятия обязательств.

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

Также раскрывается способ согласования привязок между двумя или большим числом поставщиков. Первая привязка имеет первый ID привязки. Первая привязка объявляется в сети первым поставщиком. Выявляется второй поставщик, который также обеспечивает первую привязку со вторым ID привязки в сети. Первый поставщик затем путем оценивания функции (F) конфликта определяет, следует ли обеспечивать первую привязку. На основании результата функции конфликта либо останавливается добавление первой привязки со вторым ID привязки, либо отменяется первая привязка с первым ID привязки.

Также раскрывается машиночитаемый носитель, содержащий исполняемые команды для осуществления способа согласования привязок между двумя или несколькими поставщиками. Первая привязка имеет первый ID привязки. Первая привязка объявляется в сети первым поставщиком. Выявляется второй поставщик, который также обеспечивает первую привязку со вторым ID привязки в сети. Первый поставщик затем путем оценивания функции (F) конфликта определяет, должен ли он обеспечивать первую привязку. На основании результата функции конфликта либо останавливается добавление первой привязки со вторым ID привязки, либо отменяется первая привязка с первым ID привязки.

ПЕРЕЧЕНЬ ЧЕРТЕЖЕЙ

Примерные варианты осуществления изобретения станут более полно очевидными из нижеследующего описания и прилагаемой формулы изобретения при рассмотрении вместе с сопроводительными чертежами. При понимании, что эти чертежи изображают только примерные варианты осуществления и, следовательно, не должны рассматриваться ограничивающими объем изобретения, примерные варианты осуществления изобретения будут описаны с дополнительной конкретностью и подробностью путем использования сопроводительных чертежей, на которых:

Фиг.1 - блок-схема сети, иллюстрирующая два промежуточных узла доступа в вычислительной сети.

Фиг.2 - блок-схема сети, иллюстрирующая несколько промежуточных узлов доступа в вычислительной сети.

Фиг.3 - блок-схема поставщика с наличием двух привязок.

Фиг.4 - временная диаграмма, иллюстрирующая процесс трехстадийного взятия обязательств.

Фиг.5 - блок-схема последовательности операций, иллюстрирующая способ распространения сигнала или сообщения посредством промежуточного узла доступа.

Фиг.6 - блок-схема сети, которая включает в себя один или несколько промежуточных узлов доступа и два поставщика.

Фиг.7 - схема последовательности операций, иллюстрирующая один вариант осуществления способа определения того, какой поставщик будет обеспечивать привязку.

Фиг.8 - вариант осуществления способа предоставления возможности передачи управления от одного поставщика на другой.

Фиг.9 - схема последовательности операций варианта осуществления способа установления запросчиком (запрашивающей стороной) канала передачи услуги с поставщиком.

Фиг.10 - блок-схема аппаратных компонентов, которые могут использоваться в варианте осуществления вычислительного устройства или встроенного устройства.

Фиг.11 - блок-схема, иллюстрирующая систему освещения, которая может использовать системы и способы, раскрытые в документе.

Фиг.12 - блок-схема, иллюстрирующая систему безопасности, которая может использовать системы и способы, раскрытые в документе.

Фиг.13 - блок-схема, иллюстрирующая домашнюю систему, которая может использовать системы и способы, раскрытые в документе.

ЛУЧШИЙ ВАРИАНТ ОСУЩЕСТВЛЕНИЯ ИЗОБРЕТЕНИЯ

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

Термин "примерный" используется в документе исключительно, чтобы означать "использующийся в качестве примера, экземпляра или иллюстрации". Любой описанный в документе вариант осуществления в качестве "примерного" не должен обязательно рассматриваться в качестве предпочтительного или преимущественного над другими вариантами осуществления. Тогда как различные аспекты вариантов осуществления представлены на чертежах, чертежи не обязательно вычерчены в масштабе, если конкретно не указано.

Многие возможности вариантов осуществления, раскрытых в документе, могут быть реализованы в виде программного обеспечения, электронных аппаратных средств или их комбинации. Чтобы ясно проиллюстрировать эту взаимозаменяемость аппаратных средств и программного обеспечения, различные компоненты будут описаны в целом, в терминах их функциональности. То, осуществлена ли такая функциональность в виде аппаратных средств или программного обеспечения, зависит от конкретного применения и конструктивных ограничений, наложенных на систему в целом. Специалисты в данной области техники могут реализовывать описанную функциональность различными способами для каждого конкретного применения, но такие решения по реализации не должны интерпретироваться вызывающими выход за рамки объема настоящего изобретения.

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

В распределенных сетях зачастую имеются отказы в базовых сетях, которые соединяют систему вместе. Обычные сети решают эту проблему путем идентификации обходных маршрутов и переключения на эти маршруты, когда встречается отказ. В дополнение к отказу сетевых компонентов, также могут претерпевать отказ головные поставщики информации. В обычных сетях эта проблема решается посредством наличия многих "избыточных" поставщиков и использования перехвата управления, чтобы переключать запросы между ними. Эти два решения обычно работают в сетях различного масштаба, отказы канала связи происходят в среде WAN и перехват управления при отказе происходит в LAN, с помощью мониторинга выделенной частью аппаратных средств различных систем и переключения.

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

Это дает возможность высокой готовности услуг (поставщиков) в распределенной системе. Также не является требованием, чтобы все потенциальные поставщики являлись сильно связанными, как имеет место во многих системах сегодня.

Система включает в себя набор узлов, которые соединены произвольным образом. Этот набор соединений может содержать петли, но имеется, по меньшей мере, один маршрут от каждого узла на другой узел. С этой сетью соединены запросчики и поставщики. Они могут существовать на отдельных узлах, которые соединены с единственным узлом в сети, или они могут исполняться непосредственно на сетевом узле.

Поставщики добавляют информацию привязки в сеть. Каждой привязке назначается уникальный идентификатор, и она может также включать в себя идентификатор объекта и идентификатор интерфейса. Допускаются частичные дубликаты (подразумевая идентификатор объекта и идентификатор интерфейса), но уникальный идентификатор привязки не может в точности повторяться другой привязкой.

Эта информация распространяется через сеть с использованием распределенного трехстадийного взятия обязательств (описаного ниже). Это дает любому узлу в сети возможность неограниченно "останавливать" распространение. Такая же процедура используется, когда нарушен канал связи, и сеть нуждается в определении нового маршрута, а также при удалении привязки из системы.

На Фиг.1 показана блок-схема сети, иллюстрирующая два промежуточных узла доступа в сети 100. Поставщик 102 находится в электронной связи с сетью 100. Вариант осуществления сети 100 по Фиг.1 включает в себя два запросчика 104 в электронной связи с сетью 100. Промежуточные узлы 106 доступа также находятся в сети 100. Может иметься большее количество узлов в сети 100.

Промежуточным узлом 106 доступа является сетевой узел, который поставляет функциональные возможности и услуги в сеть 100. Промежуточный узел 106 доступа может использоваться различными способами. Например, промежуточный узел 106 доступа может присутствовать в сети, чтобы поставлять услуги на компьютеры, приложения и/или объекты в сети 100. Промежуточный узел 106 доступа может также использоваться, чтобы обеспечивать преобразователь протоколов. Промежуточный узел 106 доступа может быть встроенным, или узел 106 может быть достаточно велик, чтобы обрабатывать трафик предприятия.

Одна возможность, которую может включать в себя промежуточный узел 106 доступа, относится к уточнению объекта. Уточнение объекта относится к ситуации, в которой промежуточный узел 106 доступа помещает себя вместо объекта и обеспечивает различные реализации тех же интерфейсов. Это позволяет, среди прочего, решать проблемы в реализации интерфейса без изменения фактического конечного поставщика интерфейса.

Дополнительная возможность промежуточного узла 106 доступа состоит в пополнении объекта. Пополнение объекта происходит, когда промежуточный узел 106 доступа добавляет к объекту новые интерфейсы, которые конечный поставщик не поддерживает.

В текущем конструктивном решении промежуточный узел 106 доступа не проводит различия между клиентами и устройствами, так что любая добавленная услуга является доступной любому (авторизованному) подсоединенному субъекту или узлу.

Как показано на Фиг.1, сеть 100 может наследовать многие возможности web-услуг. Доступ к web-услугам осуществляют, используя web-протоколы, обычно протоколы HTTP (протокол передачи гипертекстовых файлов) и SOAP (протокол доступа к объектам). Архитектура основывается на одноранговой парадигме организации сети.

Множество промежуточных узлов 106 доступа во взаимодействии друг с другом образуют сеть 110 промежуточных узлов доступа. Для запросчиков 104 и/или поставщиков 102 один или несколько промежуточных узлов 106 доступа в составе сети 110 промежуточных узлов доступа предстают в виде единого промежуточного узла 106 доступа. Размер или число включенных в сеть 110 промежуточных узлов доступа являются прозрачными для поставщиков 102 и/или запросчиков 104.

Поставщиком 102 является узел в сети 100, являющийся источником услуги 108. Запросчиком 104 является узел в сети 100, являющийся пользователем услуги 108. Запросчик 104 является программным субъектом, реализованным на узле, который может непосредственно находить услугу 108 для управления или взаимодействия с ней.

Услуга 108 может быть услугой любого вида, которая может обеспечиваться посредством вычислительного устройства. Некоторые возможные примеры услуг 108 включают в себя обеспечение данных температуры исходя из местоположения, обеспечение данных наблюдения, обеспечение информации о погоде, обеспечение аудиопотока, обеспечение потокового видео и т.д. Многие различные виды услуг и/или данных могут поставляться по вычислительной сети 100 от поставщика 102.

К услуге 108 осуществляют доступ через одну или несколько привязок 112. Привязка 112 включает в себя идентификатор 114 объекта и идентификатор 116 интерфейса. Обычно объект 114 и интерфейс 116 имеются в парах. Поставщик 102 может обеспечивать множество привязок 112. Является возможным, что множество поставщиков 102 могут поставлять одинаковые услугу 108, привязку 112, объект 114 или интерфейс 116. Каждая привязка 112 может быть представлена с помощью уникального идентификатора 118 привязки. Идентификатор 118 привязки должен быть уникальным для сети 110 промежуточных узлов доступа.

Поставщиком 102 может быть встроенный поставщик. Встроенным поставщиком является поставщик 102, реализуемый во встроенном устройстве. Встроенным устройством является вид вычислительного устройства, которое не включает в себя все те компоненты, связанные с типичным настольным компьютером. Например, некоторые встроенные устройства не включают в себя мониторы, другие не включают в себя клавиатуру или мышь, и некоторые встроенные устройства не включают в себя ни монитор, ни клавиатуру/мышь. Многие встроенные устройства являются устройствами на основе микроконтроллеров, то есть центральным процессором для встроенного устройства является микроконтроллер.

Термин "сеть", как используется в документе, относится к системе, в которой ряд узлов являются взаимосоединенными посредством канала связи. Узел является физическим вычислительным устройством, которое взаимодействует с другими узлами. Конкретное поведение узла определяется согласно приложениям или программному обеспечению, которое оно исполняет. Приложения, исполняющиеся на узлах сети, взаимодействуют друг с другом через программные модули, которые реализуют протоколы, формализованные правила того, как данные посылаются по сети. Некоторые протоколы рассматривают вопросы хронирования, установления последовательности и проверки ошибок передачи данных. Другие в большей степени рассматривают то, как данные отформатированы, и команды и ответы, которыми узлы обмениваются. Набор протоколов, которые работают вместе, называется стеком протоколов, причем каждый протокол действует в качестве уровня в стеке, который основывается на вершине другого уровня. Верхний уровень стека протоколов используется приложением, средние уровни рассматривают вопросы передачи групп (пакетов и кадров) данных между узлами, и нижний уровень занимается непосредственно сетевыми аппаратными средствами, которые передают данные.

Физические сети состоят из узлов, которые соединяются посредством физической среды некоторого вида (например, электрического провода, оптического волокна, эфира). Это физическое соединение иногда может называться каналом связи. Физическая сеть, ограниченная двумя узлами, может называться двухточечным соединением, тогда как физическая сеть, которая может поддерживать более двух узлов, может называться множественным доступом. Каждый узел в сети множественного доступа имеет физический адрес, который используется, чтобы отличать его от других узлов в сети.

Логические сети могут накладываться на физические сети, чтобы задать уникальную группу узлов. Каждый узел в логической сети имеет логический адрес, который отображен в соответствии с протоколом на физический адрес узла. Подсеть, или фрагмент сети, является физически или логически независимой частью сети, различаемой согласно номеру подсети.

Большинство протоколов рассматривают логические сети, поскольку большинство вопросов физических сетей уже имеют много строго определенных реализаций, и не требуется определение новых физических уровней. Логические сети также имеют преимущество являться изолированными от физической сети и, следовательно, являются в целом более полезными. Например, протокол TCP/IP определен поверх протокола (IP) логической сети. IP может быть реализован во многих физических сетях (Ethernet, последовательная, беспроводная и т.д.). Это делает TCP/IP более общим решением, чем оно было определено только в терминах некоторой конкретной физической сети.

В сети 100 может использоваться любое количество промежуточных узлов 106 доступа. На Фиг.2 иллюстрируется сеть 200, которая включает в себя ряд промежуточных узлов 206 доступа, как показано. Два запросчика 204 находятся в электронной связи с промежуточными узлами 206 доступа. Кроме того, запросчик/поставщик 205 находится в электронной связи с промежуточными узлами 206 доступа. В показанном на Фиг. 2 варианте осуществления сети 200 два запросчика 204 запрашивают услуги 208, обеспечиваемые поставщиком 202. Данные из услуг 208 посылаются через сеть 210 промежуточных узлов доступа.

Сеть 210 промежуточных узлов доступа по Фиг.2 действует сходно с сетью 110 промежуточных узлов доступа по Фиг.1. В типовом режиме работы запросчики 104, 204 и поставщики 102, 202, включая запросчик/поставщик 205, не будут проводить различие между сетью 110 промежуточных узлов доступа по Фиг.1 и сетью 210 промежуточных узлов доступа по Фиг.2. На Фиг.2 также иллюстрируется, что узел может использоваться и как запросчик, и как поставщик, как показано посредством проиллюстрированного запросчика/поставщика 205. Этот запросчик/поставщик 205 предоставляет услугу 228 и привязку 232. На Фиг. 2 также иллюстрируется, что услуга/привязка может быть предоставлена промежуточным узлом 206 доступа.

Промежуточные узлы 106, 206 доступа могут соединяться произвольным образом, который включает в себя петли. На Фиг. 1 и 2 были проиллюстрированы запросчики 104, 204, 205 и поставщики 102, 202, 205, 206e. Запросчики и поставщики могут быть отдельными узлами или могут одновременно существовать на промежуточном узле доступа.

На Фиг.3 показана блок-схема поставщика 402 с наличием двух привязок 412a, 412b. Когда поставщик 402 соединяется с сетью 110 промежуточных узлов доступа, он объявляет свои привязки 412a, 412b путем рассылки объявления 430a о первой привязке и объявления 430b о второй привязке. Объявление 430a первой привязки извещает любого принимающего этот сигнал, что первая привязка 412a является доступной, и о ее конкретном ID 418a привязки. Объявление 430b второй привязки извещает любого принимающего этот сигнал, что вторая привязка 412b является доступной, и о ее конкретном ID 418b привязки. С наличием этой информации запросчики могут запрашивать привязки 412a, 412b от поставщика 402. Также является возможным, что первый промежуточный узел 106, 206 доступа назначает и отслеживает ID 418 привязки. Это является возможным, поскольку поставщику 402 требуется только объект 114 и интерфейс 116, тогда как промежуточный узел доступа требует уникальный ID 418 привязки.

На Фиг.4 показана временная диаграмма 500, иллюстрирующая процесс трехстадийного взятия обязательств. Показана ось 501 времени. Промежуточный узел А 502 доступа имеет привязку для добавления в сеть 100. В некоторой точке после соединения с сетью 100 во время t1 промежуточный узел А 502 доступа объявляет 530 привязку. Это объявление 530 достигает другого промежуточного узла доступа, промежуточного узла B 504 доступа. Промежуточный узел B 504 доступа может затем квитировать 505 привязку во время t2. В этой точке промежуточный узел А 502 доступа еще не является потенциальным поставщиком для промежуточного узла B 504 доступа. Чтобы закрепить промежуточный узел А 502 доступа на обеспечение другого промежуточного узла B 504 доступа услугой или привязкой, промежуточный узел А 502 доступа нуждается в подтверждении 532 связывания с промежуточным узлом В 504 доступа, показанным в момент времени t3. В этой точке после подтверждения 532 процесс трехстадийного взятия обязательств завершается и промежуточный узел А 502 доступа обязуется предоставлять услугу на промежуточный узел В 504 доступа. Будучи подтвержденным, промежуточный узел В 504 доступа может объявлять привязку на любые соединенные запросчики 104. Обратите внимание, что это заключительное объявление не нуждается в использовании процесса трехфазной фиксации.

На Фиг.5 показана схема последовательности операций, иллюстрирующая способ 600 для распространения сигнала или сообщения посредством промежуточного узла 106 доступа. Сообщения или сигналы, такие как объявление 430a, могут обрабатываться в соответствии с показанным способом 600. Принимают 602 сообщение или сигнал. Затем определяют 604, является ли сообщение/сигнал дубликатом, путем проверки уникального ID 418 привязки из сигнала или сообщения. Если сигнал является дубликатом, то узел немедленно квитирует 606 прием сигнала.

Если сигнал/сообщение не является дубликатом, то сигнал/сообщение распространяется 608 на все промежуточные узлы 106 доступа, которые соединены с данным узлом, кроме узла, который послал сигнал на данный узел. Затем узел ожидает 610 квитанций от подсоединенных узлов, которым послан этот сигнал. При приеме квитанций и/или при достижении лимита времени ожидания посылается 612 подтверждение на все подсоединенные промежуточные узлы 106 доступа. Обратите внимание, что это подтверждение инициируется только первоначальным отправителем сигнала. Однако оно пересылается на все промежуточные узлы 106 доступа.

Способ 600, как в общих чертах представлено на Фиг.5, имеет следствием оптимальное поведение для промежуточных узлов 106, которые могут содержать петли. Поставщики, являющиеся непосредственно соединенными (сосуществующими) на промежуточном узле, могут использовать те же самые логические средства при очень низких издержках.

Может иметься проблема, когда множество поставщиков соединяются с сетью и являются обеспечивающими одинаковую привязку. В настоящих вариантах осуществления полагается, что желательно иметь только одного из поставщиков, который фактически обеспечивает привязку, тогда как дополнительные поставщики с той же привязкой поддерживаются сетью в резерве и будут способны обеспечивать привязку в будущем, если такая потребность возникнет. Трехстадийное взятие обязательств используется, чтобы согласовывать, какой из поставщиков будет фактически обеспечивать привязку. Полагается, что каждый поставщик имеет равное право и возможность обеспечения привязки, и поэтому является приемлемым любое средство определения, какой поставщик должен фактически ее обеспечивать.

На Фиг.6 показана блок-схема 700 сети 710, которая включает в себя один или несколько промежуточных узлов доступа и два поставщика 702a, 702b. Поставщик А 702a включает в себя первую привязку 712a с наличием идентификатора А 718a привязки. Поставщик В 702b включает в себя первую привязку 712b с наличием идентификатора B 718b привязки. Таким образом, оба поставщика могут обеспечивать одну и ту же привязку, первую привязку, хотя они имеют различные идентификаторы 718a, 718b привязок. Сеть 710 и поставщики 702a, 702b должны согласовывать и определять, какой поставщик 702 будет обеспечивать привязку, и какие будут поддерживаться в резерве для обеспечения привязки в более позднее время в случае необходимости. Эта ситуация обычно происходит, когда два или более поставщиков 702 соединяются с сетью 710 приблизительно в одно время, так что каждый из поставщиков не становится осведомленным о другом поставщике, пока не будут объявлены их привязки.

На Фиг.7 показана схема последовательности операций, иллюстрирующая один вариант осуществления способа 800 определения, какой поставщик 702 будет обеспечивать привязку 712 в ситуации, как проиллюстрировано на Фиг. 6. Блок-схема 800 последовательности операций будет поясняться по отношению к поставщику А 702a для пояснения. Однако следует понимать, что этому же способу в настоящем варианте осуществления следует также поставщик В 702b. Поставщик А 702a соединяется 802 с сетью 710. Затем поставщик А 702a объявляет 804 свою первую привязку 712a с ее уникальным идентификатором 718a привязки. Приблизительно в то же время поставщик В 702b соединяется с сетью 710 и сообщает свою первую привязку 712b с ее уникальным идентификатором 718b привязки. Оба поставщика начали процесс распределенного трехстадийного взятия обязательств.

В течение процесса распределенного трехстадийного взятия обязательств поставщик А 702a становится осведомленным 806 о поставщике В 702b и конкретно становится осведомленным, что поставщик В 702b осуществляет попытку предоставить такую же первую привязку 712. Поставщик А 702a может стать осведомленным об этом, в качестве примера, при приеме им объявления от поставщика В 702b. Поставщик А 702a затем определяет 808, будет ли он обеспечивать первую привязку 712a. Это осуществляется путем оценивания функции (F) конфликта, которая принимает в качестве входных данных: (1) идентификатор 718a привязки поставщика А 702a и (2) идентификатор 718b привязки поставщика В 702b. Если результатом 810 есть истина, то поставщик А 702a останавливает 812 добавление поставщика В 702b, не посылая ожидаемой квитанции поставщику В 702b. Если результатом есть ложь, то поставщик А 702a отменяет 814 свое собственное добавление. Поставщик А 702a может отменять свое собственное добавление посредством множества способов, включая, но без ограничения указанным, посылку сообщения отмены или просто не выполняя подтверждение каких-либо привязок и, таким образом, не выполняя завершение трехфазного взятия обязательств с любыми другими узлами.

Как только этот способ 800 выполнен поставщиками 702a, 702b, будет активной только единственная привязка. Дополнительный поставщик (поставщ