ИСПОЛЬЗОВАНИЕ ФИЛЬТРАЦИИ И АКТИВНОГО ЗОНДИРОВАНИЯ ДЛЯ ОЦЕНКИ ТРАКТА ПЕРЕНОСА ДАННЫХ
USING FILTRATION AND ACTIVE PROBING TO ASSESS DATA TRANSFER CHANNEL

Настоящее изобретение в основном относится к сетям передачи данных и более конкретно к оценке трактов переноса данных в сетях передачи данных.
УРОВЕНЬ ТЕХНИКИ ИЗОБРЕТЕНИЯ
Документы, перечисленные ниже, включены в настоящее описание посредством ссылки:
Способность измерения доступной ширины полосы насквозь по тракту в сети передачи данных полезна в нескольких ситуациях, включая верификацию SLA (соглашение об уровне услуг), контроль сети и выбор сервера. Пассивный контроль доступной ширины полосы сквозного сетевого тракта в принципе возможен при условии возможности доступа ко всем сетевым узлам в тракте. Однако это обычно невозможно, и оценивание доступной сквозной ширины полосы обычно выполняется посредством активного зондирования сетевого тракта. Доступная ширина полосы может быть оценена путем введения зондового трафика в сеть, и затем анализа наблюдаемых эффектов перекрестного трафика на зондах. Указанный вид активного измерения требует доступа только к хостам (узлам) отправителя и получателя и не требует доступа к каким-либо промежуточным узлам в тракте между отправителем и получателем.
Известные подходы к активному зондированию требуют введения зондового пакетного трафика в искомый тракт со скоростью, которая является достаточной кратковременно, чтобы использовать всю доступную ширину полосы и вызвать перегрузку. Если используется только малое число зондовых пакетов, то введенная перегрузка может быть поглощена буферными очередями в узлах. Соответственно, не вызывается потери пакетов, а только увеличивается небольшая задержка на тракте некоторого количества пакетов. Требуемое измерение доступной ширины полосы определяется, основываясь на увеличении задержки. Зондовые пакеты могут посылаться парами или цепочками, при различных скоростях передачи зондовых пакетов. Скорость передачи зондовых пакетов, где начинает увеличиваться задержка на тракте, соответствует точке перегрузки и, таким образом, является показательной для доступной ширины полосы. Зондовые пакеты также могут посылаться таким образом, что временное разнесение между зондовыми пакетами в пределах заданной цепочки варьируется так, что каждая цепочка может покрывать некоторый диапазон скоростей передачи зондовых пакетов.
Известные решения, подобные вышеупомянутым, не формируют оценок доступной ширины полосы в реальном масштабе времени и/или не формируют достаточно точных оценок доступной ширины полосы. Эти решения также имеют тенденцию к требованию либо значительных ресурсов обработки данных и/или значительных ресурсов памяти.
Вот почему желательно обеспечить решение активного зондирования, которое может оценивать доступную ширину полосы тракта в сети передачи данных без вышеупомянутых трудностей известных решений.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Технический результат, достигаемый при использовании заявленного изобретения, заключается в повышении точности оценивания доступной ширины полосы в тракте переноса данных. Иллюстративные варианты осуществления настоящего изобретения обеспечивают моделирование в тракте переноса данных некоторого условия, которое обеспечивает возможность использования упомянутого подхода на основе фильтра, способного обеспечить оценку этого условия. Тем самым обеспечивается возможность точных оценок указанного условия в реальном масштабе времени с умеренными требованиями к обработке данных и ресурсам памяти.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
В дальнейшем изобретение поясняется описанием конкретных вариантов его осуществления со ссылками на чертежи, на которых:
фиг.1 иллюстрирует примерные операции, которые могут выполняться согласно настоящему изобретению,
фиг.2 схематически иллюстрирует устройство для оценивания тракта переноса данных согласно иллюстративным вариантам осуществления настоящего изобретения,
фиг.3 графически иллюстрирует кусочно-линейную модель, применяемую иллюстративными вариантами осуществления настоящего изобретения.
ПОДРОБНОЕ ОПИСАНИЕ ПРЕДПОЧТИТЕЛЬНЫХ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ
Иллюстративные варианты осуществления настоящего изобретения обеспечивают быстрое и точное оценивание зависящего от времени условия, ассоциированного с сетевым трактом с коммутацией пакетов, например для тракта между двумя хостами или сетевыми узлами в Интернете или другой IP сети. Активное зондирование используется в комбинации с фильтрацией для оценки переменных сетевой модели, относящейся к искомому условию. Затем на основе оцененных переменных получается оценка искомого условия.
Свойства сетевого тракта дискретизируются посредством передачи зондовых пакетов в специфической конфигурации по всему сетевому тракту. Их отметки времени записываются при передаче и при приеме, обеспечивая измерение некоторой величины, относящейся к переменным сетевой модели. Указанная процедура повторяется снова и снова столько, сколько нужно, чтобы отслеживать условие, представляющее интерес.
Использование фильтрации обеспечивает возможность выполнения оценки в реальном масштабе времени. Для каждого нового измерения, полученного посредством взятия выборок в системе, новая оценка переменных сетевой модели вычисляется из предыдущей оценки и нового измерения. Последнее, в свою очередь, обеспечивает получение обновленной оценки (то есть новой оценки) искомого условия для каждого нового взятия выборок для сетевого тракта. Взятие выборок (то есть измерения) может выполняться произвольно часто, что приводит к возможности реагирования в реальном масштабе времени. Таким образом, фильтр может принимать предыдущую оценку  состояния системы и новое измерение  в качестве входных данных, и затем вычислять новую оценку  состояния системы, основываясь на этих входных данных. Это позволяет фильтру вырабатывать оценки переменных состояния в реальном масштабе времени, то есть выполнять отслеживание состояния системы.
Один пример оценочного фильтра представляет собой хорошо определенный фильтр Калмана, который является и быстродействующим, и легким. Чтобы обеспечить возможность применять фильтр Калмана, и модель системы, и модель измерения необходимо выразить в линейной форме. То есть новое состояние системы линейно зависит от предыдущего состояния системы плюс шумовой член, а измеренная величина линейно зависит от переменных состояния системы плюс шумовой член.
Перед дальнейшим обсуждением подхода, основанного на применении фильтра к оценке переменных состояния системы, будут рассмотрены примеры условия, которое должно оцениваться, и подходящий метод измерения.
j
j
j
j
j
j
j
Например, в некоторых вариантах осуществления настоящего изобретения условие, которое должно оцениваться, представляет собой доступную ширину полосы сетевого тракта. Концепцию доступной ширины полосы можно понимать следующим образом. Каждая линия связи j в сетевом тракте имеет некоторую пропускную способность, C, определяемую посредством сетевых интерфейсов в узлах на каждом конце линии связи. Пропускная способность, C, просто представляет собой максимально высокую скорость передачи в битах по линии связи на уровне пакетов. Пропускная способность обычно не варьируется на короткой шкале времени. Однако нагрузка или перекрестный трафик, на заданной линии связи j, обозначенная как S(t), варьируется. Доступная ширина B(t) полосы линии связи j равна B(t)=C-S(t). Одна из линий связи j вдоль тракта имеет наименьшую доступную ширину полосы. Упомянутая "самая узкая" линия связи определяет доступную ширину полосы пропускания тракта. Доступная ширина B(t) полосы сетевого тракта является минимальной из значений доступной ширины полосы, соответственно, ассоциированных с ее составляющими линиями связи:
Таким образом, доступная ширина полосы сетевого тракта в любое время t может интерпретироваться как максимальное увеличение скорости передачи данных, от передающего конца до принимающего конца, которое может теоретически происходить в момент времени t, не вызывая перегрузки.
j
Следует отметить, что нагрузка перекрестного трафика и, таким образом, доступная ширина полосы задаются с использованием некоторого усреднения временной шкалы тау, то есть S(t) вычисляется путем усреднения по некоторому временному интервалу длинной тау вблизи времени t. Не существует универсального естественного выбора тау, скорее это зависит от специфики приложения. Из-за конечной пропускной способности линии связи и размера пакета перекрестного трафика тау не может быть выбрано произвольно малым. Однако для современных сетей передачи данных, доступная ширина полосы и нагрузка перекрестного трафика могут быть определены с использованием тау на уровне в субсекундной области.
j
i
i
В некоторых вариантах осуществления активное зондирование, используемое для взятия выборок для измерений, строится на хорошо известной практике передачи пар зондовых пакетов с временной отметкой от отправителя к получателю. Например, сетевой тракт может моделироваться как ряды интервалов связи, где каждый интервал связи содержит входную очередь FIFO ("первым пришел - первым обслужен") и линию передачи. Каждая линия передачи j имеет постоянную пропускную способность C и варьирующийся во времени перекрестный трафик. Рассмотрим некоторую последовательность пакетов, в которой i-й пакет в последовательности приходит на интервале связи в момент времени τ и приходит на следующем интервале связи в момент времени τ*. Интерес представляют времена между приходом пар пакетов. Если каждая пара пакетов определяется как содержащая (i-1)-й пакет и i-й пакет последовательности пакетов, то времена между приходом данной пары пакетов на вышеупомянутых интервалах связи определяются выражением:
Безразмерная величина, межпакетное растяжение обозначается как ε и задается выражением:
Если u - скорость передачи зондовых пакетов, выбранная для выполнения измерения, если r - скорость трафика зондовых пакетов, выходящих за интервал связи, и если b - размер зондовых пакетов, то:
Таким образом, межпакетное растяжение ε можно рассматривать как обеспечивающее индикацию соотношения между скоростью зондового трафика и доступной шириной полосы B. Если u меньше B, то ε=0, и перегрузки нет. Однако если u достигает B, то имеется перегрузка< и указанная перегрузка (или, более точно, растяжение) растет пропорционально перегрузке, u-B. Указанная ситуация была проанализирована с использованием модели потока в вышеупомянутом документе "A new end-to-end probing and analysis method for estimating bandwidth bottlenecks", by B. Melander et al. Вышеописанное поведение межпакетного растяжения демонстрируется в уравнении 1 ниже.
В модели уравнения 1, α - переменная состояния, равная 1/C, β - переменная состояния, равная (S/C)-1, и ν - шум измерения. Доступная ширина полосы относится к переменным состояния как . Таким образом, оценка доступной ширины полосы может быть легко получена, если можно оценить переменные состояния α и β.
Возвращаясь к идее подхода на основе фильтра, состояние системы оценивается из повторных измерений некоторой величины, зависящей от состояния системы, имея модели того, как состояние системы эволюционизирует от одного измерения к следующему, и от того, как измеренная величина зависит от состояния системы. Обе упомянутые зависимости включают в себя случайный шумовой член, шум процесса и шум измерения, соответственно. Тогда уравнения системы будут
где x - состояние системы, z - измерение, w - шум процесса и ν - шум измерения. Функции f и h представляют модель эволюции системы и модель измерения, соответственно. Нижний индекс относится к "дискретному времени".
Функции f и h являются линейными, и если как шум процесса, так и шум измерения являются гауссовыми и некоррелированными, то имеется оптимальный фильтр, а именно фильтр Калмана. Опыт показал, что фильтры Калмана часто работают очень хорошо, даже когда эти условия строго не удовлетворяются. То есть распределения шума не обязательно должны быть точно гауссовыми. Некоторое отклонение функций f и h от линейности также может учитываться шумовыми членами. Другое важное преимущество фильтров Калмана состоит в том, что если только размерность системы не очень велика, то они просты в смысле вычислений, при минимальных требованиях к ЦП и памяти. В данном линейном случае система может быть выражена с использованием матриц следующим образом:
Уравнения фильтра Калмана, обеспечивающие возможность вычисления новой оценки из предыдущей оценки и нового измерения, следующие:
где
k
Под фильтрацией Калмана следует понимать процесс, в котором имеется две фазы вычисления в каждой итерации. Сначала идет фаза "прогнозирования", где предыдущая оценка устанавливает один шаг дискретного времени (уравнение 5) согласно модели системы. Затем идет фаза "коррекции", где учитывается новое измерение (уравнение 4). Также вычисляется обновленная ковариационная матрица ошибок P оценки состояния.
k
Как можно видеть из уравнений 6 и 5, коэффициент K усиления фильтра Калмана увеличивается с Q и уменьшается с R. Приведенные входные данные фильтра Калмана Q и R представляют собой ковариации шума w процесса и шума ν измерения, соответственно. Указанные величины можно интуитивно понимать следующим образом. Большие вариации шума в модели системы (высокое значение Q) означают, что прогнозирование согласно модели системы, вероятно, является менее точным, и новое измерение должно взвешиваться сильнее. Большие вариации шума измерения (высокое значение R) означают, что новое измерение, вероятно, является менее точным, и прогнозирование должно взвешиваться сильнее. Заметим, что измеренная величина z=ε является скалярной, и R также является скалярной (или матрица 1×1).
Иллюстративные варианты осуществления настоящего изобретения используют фильтр Калмана, чтобы получать обновленную оценку доступной ширины полосы по сетевому тракту для каждого нового измерения. Каждое измерение включает в себя передачу последовательности пар пакетов с отметкой времени и вычисление усредненного межпакетного растяжения. В некоторых вариантах осуществления последовательность пар пакетов может объединяться в цепочку. Чтобы получить входные данные R для уравнений фильтра Калмана, также вычисляется дисперсия межпакетного растяжения. В некоторых вариантах осуществления скорость зондирования u выбирается случайно для каждого измерения, например, согласно некоторому распределению вероятностей, такому как равномерное распределение. В некоторых вариантах осуществления измерения повторяются после временного интервала, выбранного случайно для каждого нового измерения из распределения вероятностей, например одноточечного распределения, где выбирается интервал в одну секунду с вероятностью единица.
Следует отметить, что способ фильтра Калмана является очень "невзыскательным", и хорошие результаты часто получаются даже тогда, когда идеальные условия несколько нарушаются. Таким образом, если даже система показывает характеристики, которые незначительно отклоняются от этой кусочно-линейной кривой системы, то результирующая оценка ширины полосы автоматически не теряет справедливости. Конечно, все переменные в данной модели являются динамическими, то есть могут варьироваться во времени, так что они зависят от нижнего индекса (который иногда подавляется в таком представлении).
Модель уравнения 1 является нелинейной, но она является кусочно-линейной. Пример этого графически показан на фиг.3. Хотя фильтры Калмана обычно не применимы в таких случаях, упомянутую проблему обходят согласно иллюстративным вариантам осуществления настоящего изобретения, и может быть получена эффективная сходимость. Даже если используемая кусочно-линейная модель является только приближением, фильтр Калмана по-прежнему может формировать хорошие оценки, поскольку шумовые члены могут учитывать некоторые ошибки, обусловленные "неправильным моделированием". Модель уравнения 1 позволяет применять фильтр Калмана, когда состояние системы представляется вектором, содержащим два параметра части наклонной прямой линии уравнения 1.
k
Чтобы удовлетворить критерию линейности для применимости фильтрации Калмана, некоторые варианты осуществления отслеживают u относительно B, и пытаются удерживаться на части наклонной линии уравнения 1 (см. также фиг.3). Поскольку истинное значение B, доступная ширина полосы, не известно, иллюстративные варианты осуществления настоящего изобретения используют самую последнюю оценку , или некоторое подходящее пороговое значение в окрестности . Если u меньше, чем это пороговое значение, то измерение игнорируется, и оценка этого вектора состояния не обновляется. Измерение ε растяжения в дискретное время k может быть записано как:
где Η=[u 1]. Также развитие состояния системы может быть записано как:
Таким образом, математическая модель описания теории фильтра Калмана может применяться к вектору состояния уравнения 7, причем A=I и z=ε, где I - единичная матрица.
Вектор состояния уравнения 7 является двумерным, так что ковариация Q шума процесса w представляет собой матрицу 2x2. Такая Q матрица может быть использована для настройки рабочих характеристик при условии опорной сети с управляемым и известным трафиком и, таким образом, с известной доступной шириной полосы. При применении к двухмерному вектору состояния уравнения 7, уравнения Калмана становятся с точки зрения вычислений очень простыми, и в каждой итерации необходимо только несколько операций с плавающей запятой. Когда фильтр оценивает переменные состояния системы α и β, оценка  доступной ширины полосы пропускания легко вычисляется из оценок  и  как = -.
Иллюстративные операции согласно изобретению описаны ниже в пронумерованных абзацах. Перечисленные иллюстративные операции также иллюстрируются под ссылочными позициями 11-18 на фиг.1.
0
1. Приемник выполняет начальную оценку  вектора состояния и начальную оценку Pковариационной матрицы ошибок, соответствующую , как показано на этапе 11. Исходя из , вычисляется доступная ширина полосы , как показано на этапе 12.
2. Отправитель передает последовательность (или цепочку) Ν пар зондовых пакетов с интенсивностью u зондового трафика, согласно требуемому распределению вероятностей, как показано на этапе 13. (В некоторых вариантах осуществления, распределение вероятностей для u выбирается, основываясь на прошлом опыте или экспериментах.) Ν пар зондовых пакетов используется для измерения межпакетного растяжения. В некоторых вариантах осуществления передается последовательность N+l зондовых пакетов, которые используются, чтобы сформировать Ν пар зондовых пакетов. То есть второй зондовый пакет первой пары также используется в качестве первого зондового пакета второй пары и так далее. В некоторых вариантах осуществления зондовые пакеты не используются совместно среди пар зондовых пакетов, так что последовательность 2Ν зондовых пакетов используется, чтобы сформировать Ν отдельных пар зондовых пакетов. Отправитель посылает текущее значение скорости u трафика зондовых пакетов в приемник в зондовых пакетах.
3. Для принятой последовательности зондовых пакетов, приемник получает интенсивность u трафика из зондовых пакетов, как показано на этапе 14. Если u превышает некоторое пороговое значение (например, , или значение, подходящим образом выбранное в окрестности ), как показано на этапе 15, то приемник использует отметки времени зондовых пакетов, чтобы вычислить усредненное значение ε из Ν значений межпакетного растяжения, соответствующих Ν парам пакетов, как показано на этапе 16. Приемник также вычисляет ковариацию R. Если u меньше или равно пороговому значению на этапе 15, то отметки времени зондовых пакетов игнорируются, обновление не выполняется, и операция возвращается к #2 выше, как показано на этапе 18.
4. Фильтр Калмана использует усредненное значение межпакетного растяжения и ковариационную матрицу ошибок (если таковая имеется) из вышеупомянутой операции 3 для обновления оценок вектора состояния и ковариационной матрицы ошибок P, как показано на этапе 17. Из новой оценки вектора состояния , вычисляется новая оценка  доступной ширины полосы пропускания, как показано на этапе 12.
5. Операции возвращаются к #2 выше, и генерируется новая последовательность зондовых пакетов, как показано на этапе 13.
Фиг.2 схематически иллюстрирует устройство для оценивания тракта переноса данных согласно иллюстративным вариантам осуществления настоящего изобретения. В некоторых вариантах осуществления, устройство по фиг.2 способно выполнять операции, которые описаны выше и иллюстрируются на фиг.1. В некоторых вариантах осуществления узлы 21 и 23 и тракт 22 переноса данных могут составлять или формировать часть сети передачи данных с коммутацией пакетов, такой как Интернет, частная внутрикорпоративная сеть и т.д. Передающий узел 21 передает последовательность пар зондовых пакетов через тракт 22 переноса данных в принимающий узел 23. Выполнение вышеупомянутой отметки времени на передающем и принимающем узлах подробно не показано. Принимающий узел 23 включает в себя модуль 24 извлечения, который извлекает информацию отметок времени и скорости u передачи зондовых пакетов из зондовых пакетов. Модуль 25 вычисления растяжения вычисляет значение межпакетного растяжения каждой пары зондовых пакетов в принятой последовательности, и также вычисляет усредненное значение и дисперсию значений межпакетного растяжения.
0
0
0
Модуль 25 вычисления растяжения обеспечивает усредненное значение межпакетного растяжения ε в виде параметра z, вводимого в фильтр 26 Калмана, и также обеспечивает дисперсию R межпакетного растяжения в качестве входных данных в фильтр 26 Калмана. Фильтр 26 Калмана также принимает в качестве входных данных Q матрицу, а также начальные оценки вектора состояния iи ковариационную матрицу ошибок P. В некоторых вариантах осуществления, начальные оценки вектора состояния  и ковариационной матрицы ошибок Pвыводятся из прошлого опыта или экспериментов. Точность упомянутых начальных оценок не является существенным фактором в работе фильтра Калмана.
Фильтр 26 Калмана принимает единичную матрицу I в качестве своей входной матрицы A, и также принимает матрицу Η (например, Η=[u 1]) из генератора 27 матриц, который генерирует матрицу Η в ответ на скорость u передачи зондовых пакетов, например, извлеченную из зондовых пакетов модулем 24 извлечения. В ответ на эти входные данные, фильтр 26 Калмана формирует обновленный вектор состояния . Модуль 28 вычисления доступной ширины полосы пропускания использует обновленную оценку вектора состояния для обновления оценки доступной ширины полосы . Оценка доступной ширины полосы  обеспечивается как выходной результат из узла 23, и также подается в модуль 29 сравнения, который сравнивает скорость u передачи зондовых пакетов с пороговым значением, которое равно или достаточно близко к . В зависимости от результата этого сравнения, модуль 29 сравнения подает в модуль 25 вычисления растяжения индикацию 20 того, должен или нет модуль 25 вычисления растяжения выполнять свои вычисления для текущей последовательности пар зондовых пакетов. В некоторых вариантах осуществления индикация 20 подается в фильтр 26 Калмана, чтобы оповестить, должна или нет применяться фильтрация к результату модуля 25 вычисления растяжения. Это показано пунктирной линией 201.
Из предшествующего описания фиг.2, модуль 24 извлечения и модуль 25 вычисления растяжения могут рассматриваться как компоненты модуля генерации данных, который, в конечном счете, генерирует данные оценки (ε и R в примере фиг.2) для использования при оценке доступной ширины полосы. Также фильтр 26 Калмана и модуль 28 оценки доступной ширины полосы могут рассматриваться как компоненты модуля оценки, который применяет фильтрацию Калмана к данным оценки, чтобы генерировать оценку доступной ширины полосы.
-5
-3
Некоторые варианты осуществления способны настраиваться, чтобы оптимизировать характеристики отслеживания при требуемой доступной ширине полосы - усреднении временной шкалы тау. Например, если тау=10 с, то измерения доступной ширины полосы выполняются на 10 секундной временной шкале. В некоторых вариантах осуществления, тау=10 с, и 2×2 матрица Q имеет значения Q11=10, Q12=0, Q21=0, Q22=10. В вариантах осуществления с более короткими временными шкалами, значение Q22 может быть увеличено, при этом сохраняя значения Q11, Q12 и Q21 такими же.
Некоторые варианты осуществления используют масштабирование в численных вычислениях, так что применяемые величины являются безразмерными. Как упоминалось выше, во-первых, безразмерным является ε и, таким образом, β, ν и R также являются безразмерными. Чтобы сделать все другие величины безразмерными, скорость u трафика зондовых пакетов масштабируется посредством первого интервала связи от хоста/узла отправителя. Это означает, что u=1 - это максимально возможная скорость зондирования и что α, x, w и Q являются безразмерными.
В некоторых вариантах осуществления компоненты со ссылочными позициями 25-29 на фиг.2 обеспечиваются внешним образом и отдельно от принимающего узла 23, но связаны с модулем 24 извлечения, чтобы принимать оттуда информацию отметок времени и скорость передачи зондовых пакетов u. Этот тип разделения иллюстрируется пунктирной линией 200 на фиг.2. В приведенном примере разделения, все компоненты 25-29 обеспечиваются внешним образом и отдельно от принимающего узла 23, например, в одном или нескольких других узлах сети.
Настоящее изобретение может формировать обновленную оценку доступной ширины полосы для каждого нового взятия выборок системы, то есть для каждой новой цепочки пар зондовых пакетов. Цепочки могут посылаться произвольно часто (то есть временная шкала для измерения при взятии выборок может уменьшаться произвольно), так что доступная ширина полосы может отслеживаться в реальном масштабе времени.
Требования к обработке данных для выполнения вычислений вышеупомянутой фильтрации могут быть удовлетворены относительно легко. Например, в некоторых вариантах осуществления принимающий узел 23 на фиг.2 представляет собой платформу микропроцессора. Обновление оценки доступной ширины полосы пропускания с использованием уравнений фильтра Калмана упрощает вычисления всего до нескольких операций с плавающей запятой (в некоторых вариантах осуществления до 10 вместо 100). Нет необходимости сохранять архивные данные, потому что для вычисления обновленной оценки вектора состояния необходимы только предыдущая оценка вектора состояния и новое измерение.
Специалистам должно быть очевидно, что в различных вариантах осуществления изобретение может осуществляться в аппаратных средствах, программном обеспечении или комбинации аппаратных средств и программного обеспечения.
Хотя выше были подробно описаны иллюстративные варианты осуществления настоящего изобретения, это не ограничивает объем изобретения, которое может быть реализовано на практике в различных вариантах осуществления.