внутренняя структура rfid-cepbepa
Классы МПК: | G06K5/00 Способы и устройства для контроля правильности маркировки на носителях информации; устройства для контроля колонок |
Автор(ы): | АГАРВАЛ Абхишек (US), КУМАР Ануш (US), СРИРАМ Баласубраманиан (US), АЛИ АХМЕД Факрудин (US), ГОТЕТИ Янаки (US), ВЕНКАТЕШ Рамачандран (US), РЕДДИ Вамшидхар Г.Р. (US) |
Патентообладатель(и): | МАЙКРОСОФТ КОРПОРЕЙШН (US) |
Приоритеты: |
подача заявки:
2005-08-31 публикация патента:
20.10.2010 |
Изобретение относится к средствам радиочастотной идентификации, в частности системам обмена данными с применением процесса RFID. Техническим результатом является обеспечение распознавания, конфигурирования, настраивания и передачи данных с исполнением процесса RFID, так как он относится к поставщику(ам) и ассоциативно связанным устройствам, относящимся к этому поставщику(ам). В изобретении компонент приемного устройства может принимать информацию, относящуюся к, по меньшей мере, одному или более поставщикам, компонент сервера RFID может использовать информацию в связи с предоставлением процесса RFID, который может быть применен, в общем, к множеству устройств, ассоциативно связанных с поднабором поставщиков, ядро RFID может обрабатывать событие RFID, в том числе дерево обработки событий, которое абстрагирует логическую объектную сущность, причем логическая объектная сущность состоит из логического источника, который может задавать процесс RFID. 4 н. и 12 з.п. ф-лы, 12 ил.
Формула изобретения
1. Система для обеспечения данных в процессе RFID, при этом система содержит:
компонент, который принимает информацию, относящуюся к, по меньшей мере, одному или более провайдерам; и
компонент сервера RFID, который использует информацию в связи с предоставлением процесса RFID, который может быть применен, в общем, к множеству устройств, ассоциативно связанных с поднабором провайдеров,
компонент интерфейса для провайдеров служб устройств (DSPI), который облегчает единообразный обмен данными между, по меньшей мере, одним из устройств и компонентом сервера RFID, причем компонент DSPI управляется и предоставляет, по меньшей мере, одно из следующего: регистрацию в компоненте сервера RFID; отмену регистрации в компоненте сервера RFID; загрузку драйвера и выгрузку драйвера, ядро RFID, которое обрабатывает событие RFID, в том числе дерево обработки событий, которое абстрагирует логическую объектную сущность, причем логическая объектная сущность состоит из логического источника, который может быть, по меньшей мере, одним из следующего, чтобы задавать процесс RFID: источником данных о теге; фильтром; правилом; оповещением; обработчиком событий; вариантом отслеживания и приемником.
2. Система по п.1, при этом система дополнительно содержит компонент диспетчера процессов RFID, который содержит ядро процессов RFID, которое приводит в исполнение, по меньшей мере, один из следующих процессов RFID: (1) предоставление авторизации с помощью компонента диспетчера безопасности; (2) загрузка процесса RFID с запоминающего устройства; (3) открытие подключения к устройству; (4) применение конфигурационной настройки к устройству; (5) подписка на событие с помощью компонента ядра маршрутизации событий (ERE); (6) интерпретация логического источника и ассоциативно связанного потока и (7) приведение в исполнение логического источника.
3. Система по п.1, при этом система дополнительно содержит ядро правил общего назначения, которое принимает сообщения от рабочего потока, чтобы асинхронно приводить в исполнение несколько входящих событий, для фильтрации и оповещения.
4. Система по п.1, при этом система дополнительно содержит компонент диспетчера устройств, который управляет устройством посредством, по меньшей мере, одного из следующего: (1) открытие подключения к устройству; (2) поддержание подключения к устройству, повторное установление подключения; (3) реализация события, подключение к распознанному устройству, опрос устройства; (4) сохранения объекта-устройства, который представляет устройство; и (5) обработка синхронного обращения к устройству.
5. Система по п.1, при этом система дополнительно содержит компонент ERE, который подписывает и доставляет все события абоненту, причем событием является одно из следующего: (1) событие считывания тега; (2) ошибка считывания тега; (3) ошибка записи в тег; (4) событие включения устройства; (5) событие выключения устройства и (6) событие управления.
6. Система по п.1, при этом система дополнительно содержит компонент диспетчера сервера, который управляет жизненным циклом компонента сервера RFID относительно службы операционной системы.
7. Система по п.1, при этом система дополнительно содержит компонент диспетчера безопасности, который предоставляет авторизацию для компонента сервера RFID, причем авторизация это одно из следующего: (1) авторизация разрешения, чтобы приводить в исполнение процесс RFID; (2) авторизация разрешения, чтобы добавлять объект в запоминающее устройство; (3) авторизация разрешения, чтобы модифицировать объект в запоминающем устройстве; (4) авторизация разрешения, чтобы удалять объект из запоминающего устройства; и (5) разрешение, чтобы конфигурировать объект в запоминающем устройстве.
8. Система по п.1, при этом система дополнительно содержит компонент обработчика проектирования, который реализует распознавание устройств и распознавание свойств, которое включает в себя одно из следующего: (1) прием события распознавания устройств; (2) группировка события распознавания устройств; (3) удаление устройства на основе неподлинности устройства и (4) возврат набора несконфигурированных устройств.
9. Система по п.3, в которой компонент сервера RFID обеспечивает, по меньшей мере, одно из следующего: (1) разделение логического представления устройства и физического представления устройства; (2) неперезаписываемую модель независимых провайдеров программного обеспечения, которые могут использовать дерево обработки событий, чтобы развертывать в различных окружениях с различными топологиями устройств; (3) пользователя, чтобы задавать и присваивать авторство бизнес-процесса, чтобы распознавать, потреблять и действовать в соответствии с событием RFID; (4) разделение времени проектирования, времени развертывания и времени приведения в исполнение с помощью модели привязок; и (5) ядро RFID, которое может приводить в исполнение процесс RFID как веб-службу, в которой развертывание/подготовка к использованию процесса прозрачна.
10. Машиночитаемый носитель, хранящий на себе компоненты системы по п.1.
11. Система по п.1, в которой компонент сервера RFID использует язык программирования, которым является один из следующих языков: С#, расширяемый язык разметки, язык разметки гипертекста.
12. Машинореализуемый способ для обеспечения данных в процессе RFID, при этом способ содержит этапы, на которых:
принимают информацию, относящуюся к, по меньшей мере, одному или более провайдерам; и
используют информацию в связи с предоставлением процесса RFID, который может быть применен, в общем, к множеству устройств, ассоциативно связанных с поднабором провайдеров, используют ядро RFID, которое обрабатывает событие RFID, в том числе дерево обработки событий, которое абстрагирует логическую объектную сущность,
причем логическая объектная сущность может быть, по меньшей мере, одним из следующего, чтобы задавать процесс RFID: источником данных о теге RFID; фильтром; правилом; оповещением; обработчиком событий; вариантом отслеживания и приемником.
13. Способ по п.12, при этом способ дополнительно содержит этапы, на которых:
отделяют логическое представление устройства и физическое представление устройства;
однократно записывают модель независимого программного обеспечения, чтобы быть используемой вместе с деревом обработки событий, чтобы развертывать в различных окружениях с различными топологиями устройств, задавая и присваивая авторство бизнес-процесса, чтобы распознавать, потреблять и действовать в соответствии с событием RFID;
разделяют время проектирования, время развертывания и время приведения в исполнение с помощью модели привязок и
приводят в исполнение процесс RFID как веб-службу, в которой развертывание/подготовка к использованию процесса прозрачна для конечного пользователя.
14. Способ по п.12, при этом способ дополнительно содержит этапы, на которых:
определяют событие считывания;
используют логический источник, содержащий устройство;
применяют последовательность фильтров к данным устройства;
отправляют событие в оповещение, чтобы оценить на данных устройства;
используют последовательность обработчика событий;
отправляют событие в приемник, чтобы реализовать событие; и
отправляют событие в другой процесс посредством интерфейса веб-службы.
15. Способ по п.12, при этом способ дополнительно содержит этапы, на которых:
используют событие, которое направлено в логический источник из очереди;
пропускают событие через последовательность фильтров;
отправляют событие в ядро обработчика событий;
обрабатывают событие и отправляют его в очередь;
определяют, является ли логический источник корневым логическим источником; и
отправляют событие в приемник, чтобы реализовать событие.
16. Пакет данных, который является информацией, передаваемой между компонентом приемного устройства и компонентом сервера RFID, причем пакет данных задействован в способе по п.12.
Описание изобретения к патенту
Область техники, к которой относится изобретение
Настоящее изобретение, в общем, относится к радиочастотной идентификации (RFID) и, более конкретно, к системе и/или способу, который облегчает предоставление обмена данными, управления и/или приведения в исполнение процессов RFID.
Уровень техники
Многие розничные, производственные и сбытовые организации применяют различные и инновационные способы, чтобы повышать эффективность работы. Эти организации могут отслеживать складские запасы, чтобы облегчать оптимизацию спроса и предложения в отношении потребителей. Один аспект максимизации прибыли тесно связан с надлежащим складированием запасов, так чтобы пополнение осуществлялось в связи с исчерпанием товаров и/или продуктов. Например, розничные магазины, продающие вычислительную машину и/или видеомагнитофон, должны иметь на складе вычислительную машину относительно ее продажи потребителям и видеомагнитофон относительно его продажи потребителям. Таким образом, если на вычислительную машину более высокий спрос (к примеру, продается больше единиц), чем на видеомагнитофон, розничный магазин может складировать вычислительную машину более часто, чтобы оптимизировать спрос и предложение и, в свою очередь, прибыль. Отслеживание складских запасов и ассоциативно связанных продаж может быть сложной задачей, в которой активность продукта сравнима с черным ящиком, поскольку внутренние действия неизвестны; тем не менее, отслеживание продуктов является важнейшим элементом в эффективности работы с запасами/продуктами.
Одним типом системы мониторинга, относящейся к продуктам, является портативное устройство сбора изображений (к примеру, устройство считывания штрих-кода), которое широко используется в сферах производства, обслуживания и/или поставок. Такие устройства позволяют выполнять множество действий по сбору данных на месте. Портативные устройства сбора данных часто включают в себя интегрированные устройства считывания форм данных со штрих-кодом, адаптированные, чтобы считывать формы данных со штрих-кодом, относящиеся к продуктам, упаковке продуктов и/или контейнерам на складах, в розничных магазинах, портах, для контроля, отслеживания запасов, контроля и ускорения производства, поддержания качества и/или других целей.Уникальный штрих-код может быть помещен на продукт, причем штрих-код может быть ассоциативно связан с информацией, относящейся к этому продукту. Сканер штрих-кода может быть использован, чтобы сканировать штрих-код на продукте, и из него может быть извлечена относящаяся к продукту информация. Такое определение информации, тем не менее, эстетически некорректно, поскольку эта информация может создавать помехи для продукта. Более того, разрывы, пятна грязи, надписи или другие физические повреждения/изменения штрих-кода могут делать подобные традиционные системы и/или методологии, по существу, бесполезными. Если часть штрих-кода оторвана от продукта, сканер штрих-кода может не иметь возможности корректно считать штрих-код. Аналогично, пятно грязи на продукте может сделать этот штрих-код нечитаемым.
Системы и/или способы мониторинга, использующие устройства считывания штрих-кода и всемирный код продукта (UPC), сталкивают пользователя (к примеру, розничного торговца, дистрибьютора, изготовителя и т.д.) с дополнительными сложностями. Устройства считывания штрих-кода требуют луча обзора, чтобы надлежащим образом контролировать продукты. Например, типичная система штрих-кода требует, чтобы сканер находился на расстоянии не более 4-8 дюймов от штрих-кода и/или UPC, чтобы достичь корректного считывания. Система штрих-кода требует не только луча обзора, необходимы и ручные сканирования по каждому отдельному продукту, чтобы определить продукт. Более того, один штрих-код и/или UPC должен представлять все экземпляры продукта (к примеру, бутылке кетчупа торговой марки Tomato назначен один UPC и/или штрих-код для представления продукта). Помимо этого, количество информации, ассоциативно связанной с одним штрих-кодом и/или UPC, ограничено. Таким образом, сканирование кетчупа торговой марки Tomato может предоставить идентификацию и цену продукта. Эта информация не только не важна, она не подходит для мониторинга продукта в реальном времени.
Технология автоматической идентификации и сбора данных (AIDC), а именно радиочастотная идентификация (RFID) была разработана на основе, по меньшей мере, необходимости исправлять вышеуказанные недостатки систем и/или методологий мониторинга (к примеру, устройств считывания штрих-кода, штрих-кодов и/или UPC). RFID - это методика удаленного сохранения и извлечения данных с помощью тегов RFID. Поскольку системы RFID основаны на радиочастоте и ассоциативно связанных сигналах, многочисленные выгоды и/или преимущества превосходят традиционные методики мониторинга продуктов. Технология RFID не требует луча обзора, чтобы отслеживать продукты и/или принимать сигналы от тегов RFID. Таким образом, не требуется ручное сканирование, при котором сканер должен быть как можно ближе к цели (к примеру, продукту). Тем не менее, диапазон в RFID ограничен на основе радиочастоты, размера тегов RFID и ассоциативно связанного источника питания. Помимо этого, системы RFID позволяют несколько считываний за секунды, обеспечивая быстрое сканирование и идентификацию. Другими словами, система RFID дает возможность множеству тегов быть считанными и/или определенными, когда теги находятся в диапазоне устройства считывания RFID. Возможность нескольких считываний в системе RFID дополнена возможностью предоставления информационных тегов, которые содержат уникальный идентификационный код по каждому отдельному продукту. Поэтому в отличие от системы штрих-кода каждая бутылка кетчупа, изготовленная под торговой маркой Tomato, будет иметь ассоциативно связанный идентификационный код. Например, две бутылки кетчупа, изготовленные под торговой маркой Tomato, имеют два различных идентификационных кода в системе RFID, тогда как в системах штрих-кода две бутылки кетчупа, изготовленные под торговой маркой Tomato, будут иметь одинаковый штрих-код и/или UPC. В другом примере системы и/или способы RFID могут быть реализованы в воде, например отслеживание и/или мониторинг подводного трубопровода, тогда как система отслеживания штрих-кода представляет множество сложностей в таких условиях.
Более того, системы и/или методологии RFID предоставляют данные в реальном времени, ассоциативно связанные с помеченным элементом. Потоки данных в реальном времени дают возможность розничному продавцу, дистрибьютору и/или изготовителю точно отслеживать складские запасы и/или продуты. Использование RFID может дополнительно облегчить поставку продуктов для внешнего распространения (к примеру, от розничного продавца к потребителю) и внутреннего распространения (к примеру, от дистрибьютора/изготовителя розничному продавцу). Дистрибьюторы и/или производители могут отслеживать поставки товаров, качество, количество, время доставки и т.д. Помимо этого, розничные продавцы могут отслеживать количество требуемых складских запасов, размещение этих складских запасов, качество, срок хранения и т.д. Описанные преимущества демонстрируют гибкость технологии RFID, чтобы функционировать в нескольких доменах, например внешняя поставка, внутренняя поставка, цепочки распространения, производство, розничная продажа, автоматизация и т.д.
Система RFID состоит из, по меньшей мере, тега RFID и приемо-передающего устройства RFID. Тег RFID может содержать антенну, которая обеспечивает прием и/или передачу радиочастотных запросов от приемо-передающего устройства RFID. Тегом RFID может быть небольшой объект, например клейкая этикетка, гибкая наклейка и встроенная микросхема и т.д. Типично существует четыре различных частоты, которые используют теги RFID: низкочастотные теги (125-134 КГц), высокочастотные теги (13,56 МГц), УВЧ-теги (868-956 МГц) и СВЧ-теги (2,45 ГГц).
В рамках различных частотных диапазонов теги RFID могут быть либо пассивными, либо активными. Пассивный тег RFID не включает в себя блок питания. Когда электрический ток вызывается в антенне посредством принятой радиочастоты от приемо-передающего устройства RFID, тегу предоставляется достаточное количество энергии, чтобы отреагировать. Во многих случаях ответ пассивного тега RFID краток, состоя из идентификационного номера (к примеру, глобального уникального идентификатора (GUID)). GUID - это псевдослучайное число, которое уникально и может быть реализовано стандартным универсальным уникальным идентификатором (UUID) (к примеру, 16-байтное число, написанное в шестнадцатеричном формате). Тем не менее, системы и/или способы RFID сошлись на сохранении информации, например в многоразрядном формате (к примеру , 64 бита или 96 бит), называемом электронным кодом продукта (EPC). Отсутствие блока питания в пассивном теге RFID дает возможность устройству быть небольшим и недорогим. Некоторые пассивные теги RFID, по измерениям, имеют размеры 0,4x0,4 мм, т.е. тоньше, чем лист бумаги. Тем не менее, отсутствие блока питания ограничивает практический диапазон считывания пассивного тега RFID от 10 мм до примерно 5 метров.
Активный тег RFID содержит источник питания, предоставляющий большие диапазоны считывания. Типичные активные теги RFID имеют размер примерно монеты американской валюты, и они предоставляют диапазоны считывания примерно десятки метров, поддерживая срок службы аккумуляторов до нескольких лет. Более того, на активные теги RFID можно выполнять считывание и запись. Например, теги RFID могут обеспечить дополнительный уровень безопасности, чтобы не допускать кражи посредством записи данных в активный тег RFID. Бит безопасности позволяет определять состояние безопасности на основе, по меньшей мере, приемо-передающего устройства RFID. В одной системе безопасности, например, активный тег RFID может иметь бит безопасности, установленный/записанный со значением один, что может означать, что продукт не очищен, чтобы оставить защитную область без инициирования оповещения/предупреждения. Когда соответствующие условия существуют, система и/или способ RFID позволяют записывать значение бита в тег равным нулю, что может указывать на то, что тегированный продукт очищен, чтобы оставить защитную область.
В целом, система RFID может включать в себя несколько компонентов: теги, устройства считывания тегов (к примеру, приемо-передающие устройства тегов), станции программирования тегов, устройства считывания с циркуляцией кода, сортировальное оборудование, устройства считывания штрих-кодов складских запасов на основе тегов и т.д. Более того, различные марки, модели, типы и/или приложения могут быть ассоциативно связаны с соответствующими компонентами (к примеру, тегами, устройствами считывания тегов, станциями программирования тегов, устройствами считывания с циркуляцией кода, сортировальным оборудованием, устройствами считывания штрих-кодов складских запасов на основе тегов и т.д.), что может усложнить распознавание, конфигурирование, настройку, обмен данными, обслуживание, безопасность и/или совместимость в системе RFID и с другими системами RFID. В свете вышесказанного существует необходимость предоставить единый способ, чтобы распознавать, конфигурировать, настраивать и передавать данные в устройства RFID относительно производителя и ассоциативно связанных спецификаций.
Сущность изобретения
Далее представлена упрощенная сущность изобретения, для того чтобы предоставить базовое понимание некоторых аспектов изобретения. Эта сущность не является всесторонним обзором изобретения. Она не предназначена, чтобы определить ключевые/важнейшие элементы изобретения или обрисовать область применения изобретения. Ее единственная цель - представить некоторые понятия изобретения в упрощенной форме в качестве вступления в более подробное описание, которое представлено далее.
Настоящее изобретение относится к системам и/или способам, которые облегчают реализацию компонента сервера RFID, который реализует бизнес-процесс RFID, при этом бизнес-процесс RFID - это определение бизнес-процесса, включающее в себя источник ввода событий RFID, канал обработки, который действует в соответствии с событиями, и приемник (к примеру, приемник баз данных, приемник файлов, WS-приемник и т.д., где приемник - это концептуальная конечная точка, и различные такие конечные точки могут быть реализованы и/или подключены на основе требований пользователя), который сохраняет конечный результат обработки. Следует принимать во внимание, что бизнес-процесс RFID может также называться и/или быть ссылаемым как процесс RFID. Компонент приемного устройства может принимать данные, относящиеся, по меньшей мере, к одному поставщику, чтобы передавать данные в компонент сервера RFID, который может подвергнуть обработке ядро процессов RFID, которое ассоциативно связано с поставщиком, чтобы приводить в исполнение соответствующий процесс RFID. Поставщиком (провайдером) RFID может быть транслятор протоколов и диспетчер подключений, который отвечает за взаимодействия между программной системой RFID и аппаратным устройством. Поставщик(и) могут включать в себя множество изготовителей устройств (к примеру, изготовителей устройств считывания), которые соответственно предоставляют, по меньшей мере, одну услугу ассоциативно связанному устройству RFID, которое типично использует конкретный для поставщика набор команд. Устройством RFID может быть логический псевдоним для физического устройства, при этом устройства RFID могут быть сгруппированы в совокупность. Совокупностью устройств RFID может быть логическая совокупность имен устройств и/или опорных идентификаций. Таким образом, компонент сервера RFID может принимать данные, относящиеся к множеству поставщиков, посредством компонента приемного устройства, и приводить в исполнение процесс RFID множеству устройств, вне зависимости от конкретных для поставщика наборов команд.
В соответствии с одним аспектом настоящего изобретения, компонент сервера RFID может взаимодействовать с, по меньшей мере, одним поставщиком RFID. Компонент сервера RFID дает возможность изготовителям устройств предоставлять услуги компоненту сервера RFID единым образом на основе, по меньшей мере, каждого устройства, которое поддерживает различные наборы команд. Структура поставщиков DSPI дает возможность компоненту сервера RFID взаимодействовать с различными устройствами единым образом и предоставляет изготовителю устройства тщательно подготовленный контракт, который позволяет им взаимодействовать с компонентом сервера RFID. Помимо этого, компонент диспетчера DSPI загружает и/или выгружает драйверы зарегистрированных поставщиков.
В соответствии с другим аспектом настоящего изобретения, компонент сервера RFID может включать в себя компонент диспетчера устройств, который управляет устройством, которое использует сервер RFID. Компонент диспетчера устройств может открывать подключения к устройствам, которые необходимы, чтобы инициировать процесс RFID; поддерживать подключения к устройствам открытыми, когда они необходимы для процесса RFID; когда требуемое устройство теряет соединение, пытается заново установить соединение; перемещать событие, если подключение к устройству не может быть заново установлено; подключаться к распознанному сконфигурированному устройству; опрашивать устройства, чтобы заново подключаться; сохранять объекты устройств, которые представляют открытые устройства; и обрабатывать синхронные вызовы устройствам.
Более того, компонент сервера RFID может включать в себя компонент диспетчера сервера и/или компонент диспетчера безопасности. Этот компонент диспетчера сервера может управлять жизненным циклом компонента сервера RFID и/или ассоциативно связанными компонентами в нем. Жизненный цикл компонента сервера RFID может быть определен, по меньшей мере, на основе жизненного цикла обслуживания операционной системы. Более того, компонент диспетчера сервера подвергает обработке компоненты в надлежащей последовательности. Компонент диспетчера безопасности может обеспечить авторизацию и/или проверку подлинности для компонента сервера RFID и/или его встроенных компонентов. Компонент диспетчера безопасности может санкционировать разрешения до приведения процесса в исполнение. Более того, компонент диспетчера безопасности может предоставлять авторизацию до добавления, модификации, конфигурирования и/или удаления объекта с запоминающего устройства.
Следует принимать во внимание, что обмен данными, вовлекающий компонент сервера RFID и/или любые другие компоненты (включенные в него и/или ассоциативно связанные с ним), может использовать интерфейс, ассоциативно связанный с компонентом, запрашивающим этот обмен данными. Посредством использования интерфейса, который содержит способы, конкретные для конкретного обмена данными, зависимости между компонентами могут быть четко определены.
Последующее описание и прилагаемые чертежи подробно излагают определенные иллюстративные аспекты изобретения. Эти аспекты, тем не менее, указывают только на некоторые из множества способов, которыми могут быть использованы принципы изобретения. Изобретение предназначено, чтобы включить в себя все такие аспекты и их эквиваленты. Другие преимущества и новые признаки изобретения станут явными из следующего подробного описания изобретения, если рассматривать их вместе с чертежами.
Краткое описание чертежей
Фиг.1 иллюстрирует блок-схему типичной системы, которая облегчает приведение в исполнение процесса в сервере RFID.
Фиг.2 иллюстрирует блок-схему типичной системы, которая облегчает приведение в исполнение процесса, ассоциативно связанного с устройством RFID.
Фиг.3 иллюстрирует основанную на RFID систему, которая облегчает реализацию и/или приведение в исполнение процесса в связанном сервере.
Фиг.4 иллюстрирует блок-схему типичной системы, которая облегчает управление обменом данными RFID.
Фиг.5 иллюстрирует блок-схему типичной системы, которая облегчает управление обменом данными в сервере RFID.
Фиг.6 иллюстрирует блок-схему типичной системы, которая облегчает реализацию компонента сервера RFID.
Фиг.7 иллюстрирует блок-схему типичной системы, которая использует сервер RFID, чтобы приводить в исполнение процесс RFID с множеством устройств и ассоциативно связанных поставщиков.
Фиг.8 иллюстрирует типичную блок-схему последовательности операций способа для использования сервера RFID.
Фиг.9 иллюстрирует типичную блок-схему последовательности операций способа для определения и реализации события.
Фиг.10 иллюстрирует типичную методологию, которая облегчает определение и реализацию события.
Фиг.11 иллюстрирует типичное сетевое окружение, в котором могут быть использованы новые аспекты настоящего изобретения.
Фиг.12 иллюстрирует типичное операционное окружение, которое может быть использовано в соответствии с настоящим изобретением.
Подробное описание изобретения
При использовании в данной заявке термины "компонент", "система" и т.п. означают связанную с вычислительной машиной объектную сущность: аппаратные средства, программное обеспечение (к примеру, в ходе приведения в исполнение) и/или микропрограммное обеспечение. Например, компонентом может быть процесс, запущенный на процессоре, процессор, объект, исполняемый файл, программа и/или вычислительная машина. В качестве иллюстрации, и приложение, запущенное на сервере, и сервер может быть компонентом. Один или более компонентов могут постоянно размещаться внутри процесса, и компонент может быть локализован на вычислительной машине и/или распределен между двумя и более вычислительными машинами. Настоящее изобретение описано со ссылками на чертежи, в которых одинаковые цифры ссылок используются, чтобы ссылаться на одинаковые элементы. В последующем описании, для целей пояснения, многие конкретные детали изложены, чтобы обеспечить полное понимание настоящего изобретения. Тем не менее, очевидно, что настоящее изобретение может быть применено на практике без этих конкретных деталей. В иных случаях, на модели блок-схемы показаны распространенные структуры и устройства, чтобы облегчить описание изобретения.
Обращаясь теперь к чертежам, фиг.1 иллюстрирует систему 100, которая облегчает реализацию процесса RFID посредством создания и/или приведения в исполнение бизнес-процесса RFID, при этом бизнес-процесс RFID - это определение бизнес-процесса, включающее в себя источник ввода событий RFID, канал обработки, который действует в соответствии с событиями, и приемник (к примеру, приемник баз данных, приемник файлов, WS-приемник и т.д., где приемник - это концептуальная конечная точка, и различные такие конечные точки могут быть реализованы и/или подключены на основе требований пользователя), который сохраняет конечный результат обработки. Следует принимать во внимание, что бизнес-процесс RFID может также называться и/или быть ссылаемым как процесс RFID. Компонент 102 приемного устройства может принимать данные, связанные с поставщиком(ами) 104 (к примеру, изготовителем устройства, предоставляющим услугу, совместимым с EPC-G поставщиком, поставщиком запатентованного продукта, действующим поставщиком и т.д.), при этом компонент 106 сервера RFID может использовать эти данные, чтобы формулировать ядро процессов RFID, ассоциативно связанное с поставщиком 104, чтобы предоставлять процесс RFID. Помимо этого, поставщиком RFID может быть транслятор протоколов и диспетчер подключений, который отвечает за взаимодействия между программной системой RFID и аппаратным устройством. Процессом RFID может быть, но не только, обслуживание устройства RFID, считывание тега, событие (обсуждено ниже), запись в тег, конфигурация устройства, географическое отслеживание, счетчик номеров и т.д.
Следует принимать во внимание, что процесс RFID может быть ассоциативно связан с устройствами, которые принадлежат отдельным поставщикам из числа поставщика(ов) 104. Например, поставщиком(ами) 104 может быть множество изготовителей устройств (к примеру, изготовителей устройств считывания), которые предоставляют обслуживание устройств RFID. В другом примере, процесс RFID может быть сконфигурирован, чтобы потреблять события от совокупности устройств, а также ни одного или более восходящих потоков процессов RFID. Таким образом, процесс может быть создан, чтобы осуществлять действия с событиями и постоянно насыщать их конвейерным способом. Обслуживание, предоставляемое устройствам RFID, обеспечивает функциональность, включающую в себя, но не только, считывания тегов, записи в теги, возможность отслеживания и т.д. Другими словами, возможна огромная гибкость конфигурирования ввода в процесс RFID.
Следует принимать во внимание, что множество поставщиков может быть использовано в связи с настоящим изобретением. Поставщиком(ами) 104 могут быть, но не только, совместимый с EPC-Global поставщик, поставщик запатентованного продукта, действующий поставщик, при этом каждый поставщик зарегистрирован для одного или более связанных устройств. Поставщик(и) 104 типично использует конкретный набор команд, относящихся к конкретным для поставщика устройствам. Например, EPC-Global может быть ассоциативно связан с устройствами EPC-G, при этом процесс RFID может быть создан и/или приведен в исполнение соответственно; процесс RFID может быть привязан к поставщику запатентованного продукта, зарегистрированного для устройств автоматической идентификации; и процесс RFID может быть специальным для действующего поставщика, зарегистрированного для действующих устройств.
Хотя компонент 102 приемного устройства изображен как отдельный компонент, следует принимать во внимание, что он альтернативно может быть реализован в компоненте 106 сервера RFID, чтобы принимать данные поставщика. Принятыми данными поставщика могут быть, но не только, данные, связанные с конкретным поставщиком, который имеет, по меньшей мере, одно ассоциативно связанное с ним устройство, идентификационные данные, данные об устройстве, конфигурация устройства, данные считывания тега, данные записи в тег, уникальная идентификация, описание поставщика, версия поставщика и т.д. После приема данных от поставщика(ов) 104 компонент 102 приемного устройства может предоставлять компоненту 106 сервера RFID эти данные, что дает возможность использования, по меньшей мере, одного процесса RFID для, по меньшей мере, одного поставщика из числа поставщика(ов) 104. Хотя компонент 106 сервера RFID и поставщик(и) 104 показаны, чтобы использовать двунаправленный (полнодуплексный) обмен данными, следует принимать во внимание, что это изображение не является ограничивающим в настоящем изобретении. Поставщик(и) 104 и компонент 106 сервера RFID могут использовать однонаправленный обмен данными, чтобы облегчить взаимодействие.
Например, компонент 102 приемного устройства может получать данные, относящиеся к поставщику(ам) 104, которые содержат, но не только, данные RFID от устройства, данные о конфигурации устройства, связанные с поставщиком данные и т.д. Компонент 102 приемного устройства может передавать принятые и/или полученные данные компоненту 106 сервера RFID, при этом может быть создано, по меньшей мерее, одно ядро процессов RFID, чтобы приводить в исполнение процесс RFID для конкретного поставщика в компоненте 106 сервера RFID. Помимо этого, поставщик может обеспечивать обмен данными с устройством от имени компонента 106 сервера RFID и/или процесса RFID. Следует принимать во внимание, что может быть использовано множество процессов RFID для конкретного поставщика. Более того, компонент 106 сервера RFID может использовать процессы или поставщиков 104. Например, компонент 106 сервера RFID может предоставить N процессов, которые ссылаются на устройства для первого поставщика, M процессов, которые ссылаются на устройства для второго поставщика, O процессов, которые ссылаются на устройства для третьего поставщика и т.д., при этом N, M и O - это целые числа, равные или большие единицы. Следует принимать во внимание, что пример использует трех поставщиков, однако настоящее изобретение не ограничено этим количеством поставщиков, которым могут предоставляться процессы.
Помимо предоставления процессов RFID, компонент 106 сервера RFID может использовать функцию(и), которая является вспомогательной для генерирования и/или распространения этого процесса RFID. После сбора данных от компонента 102 приемного устройства компонент 106 сервера RFID может обеспечивать управление для поставщика(ов) обслуживания устройств, обмен данными между компонентами посредством интерфейсов, управление устройствами, управление событиями с устройства и/или диспетчера устройств, фильтрацию и оповещение посредством ядра правил, управление сервером RFID, безопасность, устройство хранения данных, управление устройствами хранения данных, возможность ведения журналов и т.д. В компоненте 106 сервера RFID следует принимать во внимание, что интерфейсы обеспечивают обмен данными, чтобы использовать различную функциональность. Например, чтобы управлять устройствами в компоненте 106 сервера RFID, может быть использован компонент диспетчера устройств. Чтобы обмениваться данными с компонентом диспетчера поставщиков DSPI (не показан), раскрывается интерфейс. Этот интерфейс содержит конкретные протоколы, адаптеры, методологии и т.д. для обмена данными между компонентом диспетчера поставщиков DSPI и компонентом диспетчера устройств. Таким образом, посредством использования конкретных способов для обмена данными между компонентами четко задаются зависимости между этими компонентами.
Фиг.2 иллюстрирует систему 200, которая облегчает приведение в исполнение процесса RFID посредством отделения генерирования физических событий от устройства и потребления его и приведение в исполнение на уровне серверного приложения (к примеру, уровне логической обработки). Компонент 202 сервера RFID может включать в себя ядро 204 RFID, которое может отвечать за обработку событий RFID. Дерево 206 обработки событий (EPT) может быть абстракцией, которая сводит вместе все логические объектные сущности, такие как источник данных тега (к примеру, считыватель), фильтр, правило, оповещение, обработчик событий, вариант отслеживания и приемник. Следует принимать во внимание, что вышеперечисленное может совместно задавать бизнес-процесс с поддержкой RFID (также называемый процессом RFID и/или бизнес-процессом RFID).
EPT 206 может включать в себя, по меньшей мере, один или более узлов 208 обработки событий (EPN) 208 и 210, которые могут быть соединены между собой. Следует принимать во внимание, что каждый EPN может включать в себя следующее: совокупность источников событий (к примеру, совокупность источников для событий ввода в заданном формате события, который также может выступать в качестве блока агрегирования событий из нескольких источников); фильтр (к примеру, используемый, чтобы отбрасывать ненужные теги на основе ограничений, которые могут сдерживать то, что находится в теге, или определенной логики, известной EPN, с помощью простых действий поиска); оповещение (к примеру, заданное пользователем правило, которое может быть оценено на потоках данных и служит причиной для соответствующих оповещений быть вызванными); преобразование (к примеру, дополнительный обработчик событий, который может преобразовать данные тега в дополнительные важные для бизнеса данные, так чтобы событие ввода и внешние факторы могли быть интерпретированы, чтобы предоставлять полезный контекст приложениям более высокого порядка); и приемник событий или вывод для узла обработки.
Следует принимать во внимание и понимать, что EPN 208 и EPN 210 - это прозрачность источников, фильтров и преобразований. Совокупность источников событий и приемники данных строго классифицированы. Прозрачность позволяет обеспечивать селективность EPN и защиту, с помощью которой он может быть проанализирован и объединен. Фильтры и оповещения задаются посредством структуры декларативных правил и приводятся в исполнение в ядре или базе данных правил "в памяти". Это позволяет обеспечить быстрое изменение в управлении, а также снижает простои в процессах, вызываемые повторной компиляцией или развертыванием.
EPN 208 и 210 могут быть связаны рекурсивно в n-ичном дереве, чтобы сформировать EPT 206. Это может быть во многом аналогично модели с итератором в запросе к реляционной базе данных с дополнительным фильтром и дополнительным трансформационным этапом поверх совокупности источников данных. Более того, оповещения являются побочным эффектом вне модели реляционных запросов. Следует принимать во внимание и понимать, что архитектура и/или компонент 202 сервера RFID могут поддерживать множество API-интерфейсов, посредством которых ISV и SI могут создавать и развертывать EPT 206.
Более того, поставщик(и) 212 может поместить событие RFID в очередь 214, из которой события могут быть отосланы, и соответствующие деревья обработки событий могут быть приведены в исполнение. EPT 206 может быть приведен в исполнение как одна транзакция, если не указано иное, тем самым обеспечивая надежную не двойную доставку и обработку события RFID. Транзакция может включать в себя исключение события из очереди на отправку, обработку посредством различных EPN' и окончательное помещение обработанного события в приемник. Настраиваемые оповещения, фильтры и преобразования могут участвовать в транзакции. События пакетной обработки также могут поддерживаться. Например, события могут аккумулироваться в очереди 214 и обрабатываться с постоянными интервалами в пакете транзакций. Ядро приведения в исполнение также оснащено средствами, чтобы регистрировать все необходимые данные по отслеживанию на основе, по меньшей мере, частично вариантов отслеживания, установленных в EPT 206. Следует принимать во внимание, что приведение в исполнение EPN 208 может различаться. В одном примере, EPN 208 приводится в исполнение посредством активации ядра бизнес-правил (BRE). Фильтры, оповещения и преобразования - это компоненты, связанные посредством правил ядра правил (RE). Тем не менее, приведение в исполнение EPN может осуществляться в рамках базы данных, чтобы снижать количество полных обходов процессов благодаря схожести данных.
Более того, посредством использования настоящего изобретения может быть использовано гибкое развертывание на основе конкретных для приложения ограничений. Посредством отделения логической обработки событий от привязывания их к узлам обработки достигается гибкое развертывание. EPT 206 - это логическое описание обработки событий. Их физическая демонстрация выполняется при развертывании посредством процесса привязки. EPT 206 представляется в устоявшейся форме как четкий XML, чьи источники событий не подвергнуты обработке. Аналогично, может быть XML-представление физической топологии устройств (к примеру, списка устройств и их конфигурации, либо распознанной автоматически, либо созданной вручную). Процесс привязки может позволить администратору назначить конкретное устройство из топологии устройств конкретным источникам в EPT 206. Следует подчеркнуть и принять во внимание, что разделение физического и логического представления важно благодаря: 1) Активированию неперезаписываемой модели независимых поставщиков программного обеспечения (ISV), в которой один и тот же логический EPT может быть развернут в различных окружениях с различными топологиями устройств считывания; и 2) Обеспечению динамической оптимизации сети при развертывании на основе возможностей устройств считывания. Например, в устройство может быть помещен фильтр низких частот, если устройство имеет возможность отфильтровывать события в источнике, тем самым уменьшая пропускную способность сети.
Фиг.3 иллюстрирует систему 300, которая облегчает реализацию процесса RFID посредством использования ядра процессов RFID, чтобы предоставлять этот процесс RFID поставщику, зарегистрированному для устройства. Компонент 302 сервера RFID может быть использован, чтобы реализовать процесс RFID. Компонент 302 сервера RFID может быть, но не обязательно, во многом аналогичен компоненту 202 сервера RFID и компоненту 102 сервера RFID фиг.2 и фиг.1, соответственно. Более того, компонент 302 сервера RFID может использовать компонент приемного устройства (не показан), чтобы получать и/или принимать данные, чтобы использовать, по меньшей мере, один процесс RFID. Компонент 302 сервера RFID может предоставлять различные функциональности. Следует принимать во внимание, что обмен данными касательно данных функциональностей реализуется посредством интерфейсов. Эти интерфейсы обеспечивают обмен данными между компонентами в компоненте 302 сервера RFID, который использует функциональности, такие как (но не только) управление для поставщика(ов) обслуживания устройств, обмен данными между компонентами посредством интерфейсов, управление событиями из устройства и/или диспетчера устройств, оповещения, управление сервером RFID, безопасность, устройства хранения данных, управление устройствами хранения данных и/или возможность ведения журналов.
Компонент 302 сервера RFID может дополнительно включать в себя компонент 304 диспетчера поставщиков DSPI, который обеспечивает управление и координацию между, по меньшей мере, одним компонентом DSPI (не показан), который может быть во многом аналогичен одному из компонентов 204 DSPI, показанных на фиг.2. Компонент 304 диспетчера поставщиков DSPI реализует функциональность подписки и/или прекращения подписки. Функциональность регистрации и/или отмены регистрации для поставщика управляется компонентом 304 диспетчера поставщиков DSPI. Например, поставщик EPC может зарегистрироваться в компоненте 302 сервера RFID, чтобы процесс RFID был реализован. В частности, компонент 302 сервера RFID может получать возможность обмениваться данными, контролировать, конфигурировать и/или управлять совместимым с EPC устройством. Следует принимать во внимание, что любой поставщик и ассоциативно связанные устройства могут быть зарегистрированы и/или их регистрация может быть отменена с помощью компонента 304 диспетчера поставщиков DSPI, при этом поставщик EPC - это просто пример и не является ограничением.
Например, компонент 304 диспетчера поставщиков DSPI может реализовать интерфейс (к примеру, интерфейс IDriverManager), заданный в объектной модели, чтобы использовать функциональность регистрации и/или отмены регистрации поставщика. Более того, компонент 304 диспетчера поставщиков DSPI может загружать и/или выгружать, по меньшей мере, один зарегистрированный драйвер. Эта загрузка и/или выгрузка может быть реализована посредством раскрытия интерфейса (к примеру, интерфейса IProviderFactory). Следует принимать во внимание, что перед выгрузкой драйвера компонент 304 диспетчера поставщиков DSPI может убедиться, что нет открытого устройства, созданного этим конкретным поставщиком (к примеру, поставщиком, для которого драйвер будет выгружен). Более того, компонент, который взаимодействует и/или обменивается данными с поставщиком (к примеру, поставщик диспетчера устройств, ядро маршрутизации событий, оба обсуждены ниже), использует интерфейс, чтобы загружать и выгружать драйвер(ы) (к примеру, интерфейс IProviderFactory), который содержит соответствующие способы обмена данными. После регистрации компонент 304 диспетчера поставщиков DSPI может дополнительно подвергнуть обработке, по меньшей мере, одного поставщика при загрузке, чтобы распознать новые устройства. Например, следующий псевдокод может быть использован, чтобы подвергнуть обработке зарегистрированного поставщика и распознать устройства в конкретном поставщике:
interface IProviderFactory {
IProvider GetProvider(string Providerld);
//
Void AddRefProvider(string Providerld);
Void ReleaseProvider(string Providerld);
Void addDiscoveryEventListener(DiscoveryEventHandler discoveryEventHandler); // обработчик событий распознавания
}
Следует принимать во внимание, что вышеприведенные ссылки на переменные кода являются примерами, и эти ссылки на переменные не ограничивают настоящее изобретение (к примеру, IProviderFactory, ProviderId и т.д.).
Фиг.4 иллюстрирует систему 400, которая облегчает реализацию процесса RFID в устройстве, которое зарегистрировано для поставщика. Компонент 402 сервера RFID может обеспечивать приведение в исполнение процесса RFID. Следует принимать во внимание, что компонент 402 сервера RFID может быть во многом аналогичным компоненту 302 сервера RFID на фиг.3, при этом функциональность и/или характеристики содержатся в данном документе. Чтобы создать и/или привести в исполнение процесс RFID, компонент приемного устройства (не показан) может перехватывать, получать, принимать, доставлять и/или передавать данные, связанные с, по меньшей мере, одним поставщиком, зарегистрированным в, по меньшей мере, одном устройстве, при этом устройством может быть, но не только, устройство RFID, датчик, веб-служба и т.д. Более того, компонент 402 сервера RFID может реализовать различные функциональности, использующие, по меньшей мере, один компонент, при этом компоненты обмениваются данными посредством соответствующего интерфейса.
Компонент 402 сервера RFID может дополнительно включать в себя компонент 404 диспетчера процессов, который может включать в себя ядро 406 процессов RFID. Хотя компонент 404 диспетчера процессов изображен, чтобы содержать одно ядро 406 процессов RFID, следует принимать во внимание, что множество ядер 406 процессов RFID может содержаться компонентом 404 диспетчера процессов. Помимо этого, компонент 404 диспетчера процессов предоставляет управление таким ядрам 406 процессов RFID. Более того, компонент 404 диспетчера процессов может реализовывать класс интерфейсов (к примеру, класс IProcessManager), посредством которого процессы RFID могут быть инициированы и/или завершены (к примеру, запущены и/или остановлены).
Ядро 406 процессов RFID создается для каждого процесса RFID, запущенного компонентом 404 диспетчера процессов. После создания ядро 406 процессов RFID приводит в исполнение процесс RFID. Это приведение в исполнение может включать в себя проверку подлинности и/или идентификацию, что касается безопасности, загрузку процесса RFID с запоминающего устройства, установление обмена данными с устройством, конфигурирование устройства, подписку на событие, использование ядра маршрутизации сообщений, передачу сообщения по вхождению соответствующим в процессе и/или интерпретацию логического источника и ассоциативно связанного потока, чтобы приводить в исполнение.
Например, ядро 406 процессов RFID может создать необходимые соединения между фильтрами, оповещениями, обработчиками событий и т.д. Следует принимать во внимание, что это может быть представлено в виде структуры статических данных. Если логический источник (к примеру, LS1) имеет устройство считывания (к примеру, D1), за которым следует фильтр (к примеру, F1) и обработчик событий (к примеру, EH1), и включен в более крупный логический источник (к примеру, LS2), структура данных будет иметь ссылку от R1 на F1 и затем на F1 на EH1, а затем на LS2. Структура содержит поток событий, исходящий из каждого устройства. Логическим источником может быть основная активная объектная сущность в процессе RFID, которая может охватывать другие компоненты и/или логически их связывает. Каждый логический источник содержит набор фильтров, набор оповещений и обработчик событий. Он включает в себя набор источников для получения событий считывания тегов в логический источник. Он имеет одну точку вывода, которая задается как вывод последнего компонента. Каждый логический источник также является узлом в дереве логических источников со своими источниками в качестве детей и потребителем своего вывода в качестве родителя. Фильтр - это логическое построение, которое приводится в исполнение на потоках необработанных данных. Фильтр(ы) может отбрасывать ненужные считывания тегов на основе определенных заданных ограничений (к примеру, конвейер, случай, элемент и т.д.) и/или разрешать определенные считывания тегов. Оповещение - это более общий механизм, чтобы выражать простые правила, которые могут быть оценены на потоках данных. Оповещения выражаются в виде набора логических правил, сгруппированных в правила, и могут быть оценены на нескольких событиях, в том числе событии считывания тегов. Действия этих правил - обычно приводить в исполнение одно или более заданных пользователем оповещений. Например, если считывание тега зарегистрировано логическим источником между 18:00 и 6:00, то звучит оповещение и выдается предупреждение управляющей программе посредством сообщения. Оповещения также могут быть дополнительными построениями. Следует принимать во внимание, что может быть реализован любой подходящий язык программирования, чтобы использовать этот логический источник(и), например (но не только) C, C++, C#, HTML, HXML и т.д. Следующий псевдокод является примером на языке XML, который может быть использован, чтобы представить логический источник:
<xs:complexTypename="LogicalSource">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="l" name="logicalSourceList" type="ArrayOfLogicalSource" />
<xs:element minOccurs="0" maxOccurs="l" name="deviceCollectionList" type="ArrayOfReaderCollection" />
<xs:element minOccurs="0" maxOccurs=" 1" name="componentList" type="ArrayOfChoicel" />
</xs:sequence>
</xs:complexType>
Более того, каждое ядро 406 процессов RFID может использовать очередь (не показана). Очередь может быть ассоциативно связана с ядром 406 процессов RFID, давая возможность всем важным событиям быть отправленными ядром маршрутизации событий. Как специально подробно описано ниже, следует принимать во внимание, что очередь событий отделена от логического канала обработки (к примеру, физический уровень обмена данными между устройствами с логической обработкой).
Очередь хранит список логических источников для каждого устройства и имеет пул потоков, ассоциативно связанных с ним. Количество потоков в пуле конфигурируется на основе, по меньшей мере, требований процесса RFID. Помимо этого, отдельный поток позволяет отслеживать очередь ядра процессов. Следует принимать во внимание, что любой подходящий код может быть использован, чтобы реализовать вышеуказанное, хотя следующие примеры псевдокода приведены на XML. Следующий код может быть реализован, чтобы использовать алгоритм, в котором отдельный поток отслеживает очередь ядра процессов:
do forever {
wait on Process Engine Q;
onevent, check the device that the event is from;
foreach logical source that the device is part of
{
Wait till a thread is free in the thread pool;
Start the thread and give it the event to handle and the logical source to start from;
}
}
Помимо этого, в пуле потоков может быть использован рабочий поток, при этом каждый пул потоков может приводить в исполнение следующий алгоритм:
nextlink = logicalsource.firstlink;
while (nextlink != null) {
if the nextlink is a logical source
nextlink = logicalsource.nextlink; continue; If the link is a filter
{
execute it.
if the filter decides to pass
nextlink = nextlink.nextlink;
else nextlink = null; continue;
}
If the link is an alert, pass the event to the general purpose rules engine;
If the link is an event handler invoke the right event. This event might result in invoking the event of the next event handler in the event handler chain.
Nextlink = nextlink.nextlink;
}
Следует принимать во внимание, что ядро 406 процессов RFID, созданное для каждого процесса RFID, может быть приведено в исполнение на множестве машин, причем эти машины находятся вместе, отдельно и/или используется сочетание этих вариантов. Настоящее изобретение не ограничено, по существу, количеством машин, которые приводят в исполнение созданное ядро 406 процессов RFID, связанное с процессами RFID. Более того, обмен данными между ядром 406 процессов RFID и компонентом 402 сервера RFID - это события, принятые из центра организации очередей сообщений. Таким образом, ядро 406 процессов RFID может осуществлять доступ к центру организации очередей сообщений из любого места.
Помимо этого, взаимодействия могут быть модифицированы, чтобы распространять архитектуру, как показано и проиллюстрировано ниже. Это может быть достигнуто посредством разрешения для процессов RFID быть раскрытыми в качестве веб-службы, тем самым объединяя подход ориентированной на службе архитектуры (SOA) с подходом автоматизации проектирования электронных приборов (EDA). Это позволяет обеспечить распределенный и наращиваемый подход для процессов, в котором конечная точка может быть приемником или другим процессом.
Компонент 404 диспетчера процессов может дополнительно включать в себя ядро 408 правил. Ядром правил может быть ядро правил общего назначения для компонента 402 сервера RFID, которое обеспечивает, например, фильтрацию и оповещение. Оповещения в компоненте 402 сервера RFID могут приводиться в исполнение синхронно и/или асинхронно. Другими словами, инициирующий оповещение поток не обязательно должен ждать, пока поток будет завершен. Рабочий поток может передавать событие в ядро 408 правил и продолжать обрабатывать следующую ссылку. Ядро 408 правил может иметь пул потоков, ассоциативно связанных с ним. Более того, этот пул может быть сконфигурирован, чтобы содержать один или более дополнительных потоков.
Компонент 402 сервера RFID может дополнительно включать в себя компонент 410 диспетчера сервера. Компонент 410 диспетчера сервера предоставляет административную функциональность компоненту 402 сервера RFID. Другими словами, компонент 410 диспетчера сервера отвечает за инициализацию компонента 402 сервера RFID и различных других компонентов, которые предоставляют дополнительную функциональность. Компонент 410 диспетчера сервера может дополнительно контролировать жизненный цикл компонента 402 сервера RFID. Помимо этого, компонент 410 диспетчера сервера может предоставлять один или более наборов команд, например (но не только) системной идентификации, мониторинга протокола Интернета (IP), мониторинга протокола динамической конфигурации хоста (DHCP), мониторинга сетевого интерфейса, мониторинга характеристик устройств, мониторинга логических устройств, мониторинга точки устройства считывания (к примеру, источника физических данных, радиочастотного мониторинга антенны, мониторинга порта ввода-вывода, событий уведомления (к примеру, оповещений), мониторинга различных компонентов и т.д. Чтобы обмениваться данными, компонент 410 диспетчера сервера может использовать интерфейс (к примеру, как любой компонент в рамках компонента 402 сервера RFID). Интерфейс (к примеру, интерфейс диспетчера управления службами) дает возможность компоненту 402 сервера RFID быть запущенным и/или завершенным как, например, служба операционной системы. Следует принимать во внимание, что компонент 410 диспетчера серверов может использовать и/или поддерживать такой интерфейс, совместимый с компонентом 402 сервера RFID и любого его компонента. Например, интерфейс ILifeCycle может быть использован, чтобы управлять созданием и уничтожением. Таким образом, компонентом 410 диспетчера серверов может быть компонент самозагрузки компонента 402 сервера RFID, который создает все остальные компоненты в требуемом порядке.
Например, в ходе загрузки службы операционной системы компонент 410 диспетчера серверов может подвергать обработке все компоненты диспетчера в корректном порядке. Таким образом, если компонент диспетчера устройств требует компонент диспетчера DSPI, компонент 410 диспетчера сервера может сначала подвергнуть обработке компонент диспетчера DSPI и затем передает ссылку на компонент диспетчера DSPI компоненту диспетчера устройств. Компонент 410 диспетчера сервера может определять необходимость компонента и подвергать этот компонент обработке. Более того, компонент 410 диспетчера сервера может завершать работу компонентов в ходе завершения работы службы операционной системы. Следуя предыдущему примеру, при завершении работы службы операционной системы компонент 410 диспетчера сервера закрывает (к примеру, завершает работу) компонент диспетчера устройств, компонент диспетчера DSPI и все остальные компоненты, диспетчеры и/или запоминающие устройства.
Более того, компонент 402 сервера RFID может включать в себя компонент 412 диспетчера устройств. Компонент 412 диспетчера устройств может работать совместно с, по меньшей мере, одним зарегистрированным поставщиком, чтобы управлять каким-либо или всеми устройствами (к примеру, устройствами считывания, устройствами записи и т.д.), которые использует компонент сервера RFID. Следует принимать во внимание, что может быть зарегистрировано более одного поставщика, при этом соответствующие поставщики могут содержать устройства, предоставляющие компоненту 402 сервера RFID множество устройств, чтобы управлять. Управление этими устройствами может включать в себя, но не только, открытие подключений, портов и т.д. к устройствам, чтобы инициировать процесс RFID, поддержание подключений к устройствам, открытым для процесса RFID, когда требуемое устройство теряет подключение, попытку заново установить соединение, перемещение события выключения устройства, если подключение к устройству не может быть заново установлено, подключение к распознанному (к примеру, перезапущенному вручную, восстановленному и заново подключенному и т.д.) сконфигурированному устройству и перемещение события включения устройства, опрос устройств, чтобы заново подключиться (к примеру, когда открытое устройство теряет подключение, а распознавание не поддерживается поставщиком), сохранение объектов-устройств, которые представляют открытые устройства (к примеру, эти объекты могут быть использованы, чтобы отправить команду, взаимодействовать с устройствами напрямую), обработку асинхронных обращений к устройствам и т.п.
Может быть использован интерфейс, чтобы предоставлять обмен данными с другими компонентам компоненту 412 диспетчера устройств. Например, интерфейс IDiscoveryManager для компонента диспетчера устройств может абстрагировать обмен данными между компонентом обработчика проектирования (не показан) и компонентом 412 диспетчера устройств. Например, следующий основанный на XML код демонстрирует использование этого интерфейса:
interface IDiscoveryManager {
bool IsValidDevice (string deviceldXml);
}
Кроме того, ядро 406 процессов RFID может использовать следующий интерфейс, чтобы обмениваться данными компонентом 412 диспетчера устройств. Например, когда процесс RFID стартует, ассоциативно связанное ядро 406 процессов RFID вызывает метод по каким-либо или всем интересующим (к примеру, затронутых) устройствам. Как показано в коде ниже, может быть использован этот метод, реализующий вышеуказанное:
interface IRMPE {
void AddrefDevice (string DeviceldXml);
void ReleaseDevice (string DeviceldXml);
}
Когда процесс RFID останавливается, метод используется, чтобы освободить устройства (к примеру, такой метод проиллюстрирован со ссылкой ReleaseDevice). Следует принимать во внимание, что до тех пор, пока существует, по меньшей мере, одна ссылка на устройство, компонент 412 диспетчера устройств может поддерживать совпадающее подключение. Более того, компонент 412 диспетчера устройств может использовать интерфейс (к примеру, интерфейс IProvider), который использует поднабор интерфейса ISPI, который связан с компонентом DSPI (к примеру, такой как компонент 204 DSPI, фиг.2). Компонент 412 диспетчера устройств может создавать устройства и проверять подлинность устройства посредством проверки последовательности идентификации. Более того, следует понимать, что компонент 412 диспетчера устройств не должен активировать все методы интерфейса ISPI, соответственно, все методы не обязательно раскрываются на ISPI. Следующий код XML является примером, реализующим вышеуказанное:
Interface IProvider {
IDevice GetDevice (string deviceldXml);
bool IsValidDevice (string deviceldXml);
}
Компонент 402 сервера RFID может дополнительно предоставлять компонент 414 ядра маршрутизации событий (ERE). Компонент 414 ERE может обрабатывать события, исходящие от устройств и компонента 412 диспетчера устройств. Событиями могут быть, но не только, события считывания тегов, ошибки считывания/записи в теги, события включения/выключения устройств и т.д. Компонент в рамках компонента 402 сервера RFID, который использует событие, может подписаться на это событие(я) с помощью компонента 414 ERE. Более того, компонент 414 ERE управляет и/или обрабатывает доставку событий любому абоненту (к примеру, любому компоненту, который использует подписанное событие). Например, ядро 406 процессов RFID является абонентом для событий на основе, по меньшей мере, вышеописанной функциональности. Помимо этого, следует принимать во внимание, что компонент 414 ERE не добавляет ссылку на поставщика, но использует метод (к примеру, addDiscoveryEventListener) в интерфейсе, чтобы регистрировать себя для поставщиков.
Компонент 414 ERE может использовать интерфейс (к примеру, интерфейс IDeviceEventSubscriber), чтобы регистрировать обратный вызов для событий считывания тегов, например события состояния устройства. Обработчик обратных вызовов (не показан) может записывать события в центр организации очередей сообщений. Новое событие может быть в очереди (к примеру, CommonQ). Другой поток записывает его на устройство хранения данных (не показано) и может отправлять событие в другой центр организации очередей событий на основе, по меньшей мере, следующего: события распознавания отправляются в очередь распознавания (к примеру, DiscoveryQ); предусмотрена очередь для каждого ядра 406 процессов RFID, например, но не только, связанные с устройством события (к примеру, считывания тегов, событие управления и события состояния) отправляются в важные очереди ядра процессов RFID; и т.д. Следует понимать, что компонент 414 ERE может хранить таблицу с привязкой устройств к ядру процессов RFID. Более того, следует принимать во внимание, что более одного ядра процессов RFID может использовать устройство.
В соответствии с аспектом настоящего изобретения, очередь (к примеру, a CommonQ) может выступать в качестве буфера перед тем, как события от поставщиков отправляются в ядро 406 процессов RFID. Устройства и/или поставщики могут выступать в качестве авторов событий, тогда как ядра 406 процессов RFID могут быть потребителями этих событий. Этот подход предоставляет преимущества, например (но только): ядра процессов RFID могут запускать пользовательский код, который может перемещать исключения, при этом пользовательский код может быть перезапущен со следующим событием в качестве ввода; прослушивание событий (к примеру, каждым устройством) и обработка событий может осуществляться на разных скоростях; и т.д.
Компонент 414 ERE может использовать следующий код XML, чтобы реализовать интерфейс, чтобы обмениваться данными с компонентом 402 сервера RFID и/или другими компонентами:
interface IEventRoutingEngine {
void SubscribeToDeviceEvents(string[] devicelds, string queueName); //each
RFID process engine will call this
void SubscribeToDiscoverEvents(string discoveryQueueName); //the design
handler component calls this
}
// this subscriber gets both the tag read events directly from providers and the //device management events generated by the device manager component, interface IDeviceEventSubscriber {
ResponseEvent getEventHandler();
}
Следует понимать, что вышеприведенный пример кода является просто примером, и настоящее изобретение им не ограничено.
Фиг.5 иллюстрирует систему 500, которая облегчает реализацию компонента 503 сервера RFID, чтобы предоставлять процесс RFID поставщику, зарегистрированному для, по меньшей мере, одного устройства, такого как (но не только) устройства RFID, датчика, системы генерирования событий в реальном времени, веб-службы и т.д. Компонент 502 сервера RFID должен считаться во многом аналогичным компонентам сервера RFID, проиллюстрированным на фиг.1, фиг.2, фиг.3 и фиг.4. Ранее описанная функциональность относится к компоненту 502 сервера RFID (к примеру, реализация интерфейса, относящаяся к обмену данными, возможность функциональности компонентов, развертывание процессов RFID и т.д.).
Компонент 503 сервера RFID включает в себя компонент 504 диспетчера безопасности, который предоставляет авторизацию и/или проверку подлинности компоненту 502 сервера RFID. Чтобы включить процедуру авторизации в компонент 502 сервера RFID, компонент 504 диспетчера безопасности может предоставить используемые классы и/или методы для компонентов в рамках компонента 502 сервера RFID, чтобы облегчить контроль авторизации и/или доступности.
В качестве примера, компонент 504 диспетчера безопасности может проверять уровень разрешений пользователя перед приведением в исполнение процесса RFID. Если пользователь имеет надлежащий уровень разрешений, процесс RFID может быть приведен в исполнение. Тем не менее, если пользователь не имеет требуемого уровня разрешений, процесс RFID может запретить приведение в исполнение процесса RFID. Более того, компонент 504 диспетчера безопасности может устанавливать разрешения, касающиеся объектов в запоминающем устройстве (обсуждается ниже). В частности, компонент 504 диспетчера безопасности может санкционировать и/или не санкционировать обработку объекта в запоминающем устройстве. Обработкой может быть, но не только, добавление, модификация, удаление, конфигурирование и т.д. объекта.
Компонент 502 сервера RFID может включать в себя компонент 506 обработчика проектирования, который распознает устройство(а) и/или ассоциативно связанные с ним свойства. Интерфейс (к примеру, интерфейс IDeviceHandler) может быть раскрыт, чтобы предоставлять эти методы и/или методики посредством использования следующего кода:
public enum DiscoverOptions {ALL = 0, NONCONFIGURED DEVICES}
public interface IDeviceHandler {
string[] FindDevices (DiscoveryOptions discoveryOptions);
string GetSupportedProperties (string deviceld);
bool IsValidId(string DeviceId);
}
Вышеуказанный код основан на XML, тем не менее, следует понимать, что любой подходящий язык программирования на вычислительной машине (C, Visual Basic, Assembly, Pascal и т.д.) может быть реализован настоящим изобретением, и он не должен рассматриваться как ограничение. Вышеуказанный код XML позволяет вернуть список идентификаторов устройств, который дает возможность подключения этих устройств. Устройства могут быть отфильтрованы (к примеру, с помощью "Перечня DiscoverOptions"). Более того, код позволяет вернуть список поддерживаемых свойств по устройствам, соответствующим устройству с идентификатором устройства, при этом возвращаемое значение - это строка XML, соответствующая файлу свойств. Следует понимать, что свойства устройства конкретны для распознанного идентификатора устройства. Код определяет, представляет ли идентификатор допустимое устройство (к примеру, подключаемое устройство). Например, устройство может быть недопустимым, если устройство находится в автономном режиме, отключено, не подписано, не авторизовано и т.д.
В частности, компонент 506 обработчика проектирования может предоставить следующее: прослушивание агентов распознавания устройств (к примеру, DiscoveryQ в компоненте ERE); группировка агентов распознавания устройств; определение подлинности устройств и/или удаление ложных устройств (к примеру, использование метода, такого как IsValidDevice()); возврат несконфигурированных устройств посредством обмена данными с запоминающим устройством и/или удаление сконфигурированных устройств; и т.д. Например, компонент 506 обработчика проектирования может распознать устройство, такое как устройство RFID, при этом данное устройство RFID содержит конкретные свойства, ассоциативно связанные с ним.
Помимо распознавания устройства, компонент 506 обработчика проектирования может распознавать конкретные свойства, которые относятся к распознанному устройству.
Компонент 502 сервера RFID может дополнительно включать в себя устройство 508 хранения данных и/или устройство 510 хранения процессов. Устройство 508 хранения данных может хранить и/или сохранять события. В частности, такие события (но не только), как события считывания тегов, ошибка считывания/записи в тег, события включения/отключения устройств и т.д. Следует принимать во внимание, что устройство 508 хранения данных может быть использовано, чтобы предоставлять журнал, который может быть использован для составления отчетов и/или предоставления потока необработанных событий (к примеру, внешнему приложению для возможности подключения). Более того, устройство 508 хранения данных может быть обновлено и/или очищено периодически на основе, по меньшей мере, срока существования данных.
Устройство 510 хранения процессов может хранить и/или сохранять объект(ы) процессов RFID и/или ассоциативно связанные объекты, которые ссылаются на них. Этими ассоциативно связанными объектами могут быть, но не только, устройство и/или совокупность устройств (к примеру, устройство считывания и совокупности устройств считывания). Более того, устройство 510 хранения процессов содержит информацию по авторизации, относящуюся к этим сохраненным/хранимым объектам. Следует принимать во внимание, что любой механизм персистентности, который поддерживает интерфейс (к примеру, интерфейс IStore), может быть устройством хранения процессов. Кроме того, объекты в устройстве 510 хранения процессов могут быть считаны и/или обработаны посредством использования заданной объектной модели (к примеру, если объектная модель не заключена в какой-либо компонент на сервере и является независимым компоновочным блоком, который один или более пользователей могут использовать одновременно).
Следует принимать во внимание, что устройство 508 хранения данных и/или устройство 510 хранения процессов может быть размещено в компоненте 502 сервера RFID и/или размещено на удаленном сервере/площадке. Устройством 508 хранения данных и/или устройством 510 хранения процессов может быть, например, либо энергозависимая, либо энергонезависимая память, либо оно может включать в себя энергозависимую и энергонезависимую память. В качестве иллюстрации, но не ограничения, энергонезависимая память может включать в себя постоянное запоминающее устройство (ПЗУ), программируемое ПЗУ (ППЗУ), электрически программируемое ПЗУ (ЭППЗУ), электрически стираемое ПЗУ (ЭСПЗУ) или флэш-память. Энергозависимая память может включать в себя оперативное запоминающее устройство (ОЗУ), которое выступает в качестве внешнего кэша. В качестве иллюстрации, но не ограничения, ОЗУ доступно во многих формах, например статическое ОЗУ (СОЗУ), динамическое ОЗУ (ДОЗУ), синхронное ДОЗУ (СДОЗУ), СДОЗУ с двойной скоростью передачи данных (DDR СДОЗУ), улучшенное СДОЗУ (ESDRAM), Rambus direct RAM (RDRAM), direct Rambus dynamic RAM (DRDRAM) и Rambus dynamic RAM (RDRAM). Устройство 508 хранения данных и/или устройство 510 хранения процессов настоящей системы и способа предназначено, чтобы содержать (но не только) эти и любые другие подходящие типы памяти.
Компонент 512 диспетчера запоминающих устройств может управлять и/или обрабатывать возможности подключения к, по меньшей мере, одному из устройства 508 хранения данных и устройства 510 хранения процессов. Компонент 512 диспетчера запоминающих устройств может выступать в качестве упаковщика вокруг каждого запоминающего устройства. Более того, компонент 512 диспетчера запоминающих устройств может обеспечивать, чтобы подключения к каждому запоминающему устройству были доступны. Также следует понимать и принимать во внимание, что деятельность по сохранению между устройством 508 хранения данных и устройством 510 хранения процессов маршрутизируется через компонент 512 диспетчера запоминающих устройств.
Фиг.6 иллюстрирует систему 600, которая использует информацию (к примеру, обучение машины), чтобы облегчить реализацию компонента 602 сервера RFID. Система 600 включает в компонент 602 сервера RFID, который позволяет предоставлять процесс RFID поставщику(ам) 604. Компонент 602 сервера RFID может принимать данные, относящиеся к, по меньшей мере, одному поставщику, причем эти данные облегчают использование процесса RFID для конкретного поставщика. Помимо этого, компонент 602 сервера RFID может активировать информационный компонент 606, чтобы облегчить использование процесса RFID. После получения данных, относящихся к конкретному поставщику, информационный компонент 606 позволяет облегчить реализацию процесса RFID для этого поставщика. Следует принимать во внимание, что хотя информационный компонент 606 проиллюстрирован в рамках компонента 602 сервера RFID, информационный компонент 606 не ограничен таким образом. Другими словами, информационный компонент 606 может быть включен в компонент 602 сервера RFID, любой компонент в рамках компонента 602 сервера RFID, автономное устройство и/или любое их сочетание.
Следует понимать, что информационный компонент 606 может предусматривать рассуждение о или обозначать состояния системы, окружения и/или пользователя из набора данных наблюдения, полученных посредством событий и/или данных. Умозаключение может быть использовано, чтобы определить конкретный контекст или действие, либо может генерировать распределение вероятностей, к примеру, по состояниям. Умозаключение может быть вероятностным, т.е. вычислением распределения вероятностей по интересующим состояниям на основе анализа данных и событий. Умозаключение также может означать методики, используемые для компоновки событий более высокого уровня из набора событий и/или данных. Такое умозаключение приводит к составлению новых событий или действий из набора наблюдаемых событий и/или сохраненных данных событий, независимо от того, коррелируются ли события в тесной временной близости и исходят ли события и данные из одного или нескольких источников событий и данных. Различные схемы и/или системы (к примеру, методы опорных векторов, нейронные сети, экспертные системы, сети байесовских представлений, нечеткая логика, ядра синтеза данных и т.д.) классификации (явно и/или неявно подготовленные) могут быть использованы в связи с выполнением автоматического и/или возможного в качестве умозаключения вывода в связи с настоящим изобретением. Более того, следует принимать во внимание, что умозаключения, сделанные в связи с настоящим изобретением, могут осуществляться посредством основанного на умозаключениях ядра правил.
Фиг.7 иллюстрирует систему 700, которая облегчает использование компонента 702 сервера RFID в связи с компонентом 796 диспетчера DSPI, чтобы предоставлять единообразный обмен данными и управление для множества устройств и ассоциативно связанных поставщиков. Поставщики 704 могут включать в себя множество поставщиков, например совместимого с EPC-G поставщика 708, первого поставщика 710 запатентованного продукта и второго поставщика 712 запатентованного продукта. Следует принимать во внимание, что поставщики 704 обеспечивают обслуживание ассоциативно связанного устройства. Например, совместимый с EPC-G поставщик 708 может быть ассоциативно связан с устройством 714 EPC-Global, первый поставщик 710 запатентованного продукта может быть ассоциативно связан с первым действующим устройством 716, а второй поставщик 712 запатентованного продукта может быть ассоциативно связан со вторым действующим устройством 718. Следует принимать во внимание, что компонент 706 диспетчера DSPI взаимодействует посредством одного из существующих поставщиков 704 для ассоциативно связанного устройства (к примеру, устройства 714 EPC-Global, первого действующего устройства 716 и/или второго действующего устройства 718) посредством компонента DSPI (не показан). Компонент DSPI (не показан) предоставляет единый способ, которым поставщики 704 предоставляют обслуживание промежуточных программных продуктов, поскольку каждое устройство поддерживает особый набор команд. Другими словами, компонент DSPI (не показан) задает интерфейсы для изготовителей устройств (к примеру, и ассоциативно связанных устройств), чтобы единообразно предоставлять услуги компоненту 702 сервера RFID.
Фиг.8-10 иллюстрируют методологии в соответствии с настоящим изобретением. Для упрощения пояснения методологии изображены и описаны как последовательности действий. Следует понимать и принимать во внимание, что настоящее изобретение не ограничено проиллюстрированными действиями и/или последовательностью действий, например действия могут осуществляться в различной последовательности и/или параллельно и с другими действиями, не представленными и описанными в настоящем документе. Более того, не все проиллюстрированные действия могут быть необходимы, чтобы реализовать методологии в соответствии с настоящим изобретением. Помимо этого, специалисты в данной области техники поймут и примут во внимание, что методологии могут быть альтернативно представлены как последовательности взаимосвязанных состояний или событий посредством схемы состояний или событий.
Фиг.8 иллюстрирует методологию 800, которая облегчает реализацию компонента сервера RFID, который дает возможность процессу RFID быть приведенным в исполнение, по крайней мере, для одного поставщика. На этапе 802 запускается сервер RFID. Сервер RFID может быть реализован компонентом диспетчера сервера, который предоставляет возможность создания и/или уничтожения компонентов, ассоциативно связанных с сервером RFID. Другими словами, компонент диспетчера сервера - это компонент самозагрузки, который создает какой-либо компонент в рамках требуемой последовательности. В одном примере, сервер RFID может быть запущен и остановлен совместно с запуском и завершением работы службы операционной системы. Далее на этапе 804 поставщик регистрируется и/или его регистрация отменяется. Чтобы процесс RFID был приведен в исполнение, поставщик (тот, для которого должен быть выполнен процесс) может быть зарегистрирован в сервере RFID. Помимо регистрационных действий, загружаются и/или выгружаются драйверы на сервер. Следует принимать во внимание и понимать, что поставщик должен быть зарегистрирован, чтобы устройства, содержащиеся в таком поставщике, могли быть использованы.
Далее на этапе 806 устройства управляются на основе, по меньшей мере, этих устройств, содержащихся в зарегистрированном поставщике. Поставщики могут относиться к конкретному устройству, например (но не только) к устройствам RFID с ассоциативно связанными конфигурационными настройками. Такое управление устройствами может включать в себя, но не только, поддержание подключений, готовность устройств, распознавание, управление объектами-устройствами, управление синхронными вызовами и т.д. На этапе 808 обрабатываются события. События, исходящие от устройств (к примеру, устройств считывания RFID, устройств записи RFID, датчика и т.д.) и компонента диспетчера устройств. Такими событиями могут быть, но не только, считывания тегов, ошибки считывания/записи в теги, события включения/выключения устройств и т.д. Обработка этих событий может включать в себя, но не только, подписку на события, доставку событий абоненту, запись событий в центр организации очередей событий и т.д. На этапе 810 процесс RFID создается и приводится в исполнение ядром процессов для, по меньшей мере, одного поставщика, который относится к устройству(ам). Следует принимать во внимание, что для одного поставщика может быть множество процессов RFID и что может быть множество поставщиков, соответствующих одному компоненту сервера RFID.
Фиг.9 иллюстрирует методологию 900, которая облегчает использование процесса RFID, использующего ядро процессов RFID совместно с основанным на тегах потоком. Следует принимать во внимание, что методология 900 использует набор потоков для каждого ядра процессов RFID, при этом каждый поток выполняет во многом аналогичное задание, как было объяснено выше. На этапе 902 определяется событие считывания. Например, событие считывания может быть выбрано из очереди (к примеру, очереди ядра процессов RFID). На этапе 904 используется логический источник, содержащий устройство. Поток может проходить через логический источник, который может содержать устройство, которое создало это событие. Далее на этапе 906 поток проходит через последовательность фильтров. Переходя к этапу 908, если в ходе прохождения через последовательность фильтров фильтр блокирует событие, процесс переходит к этапу 902, тогда как если ни один из фильтров не блокирует событие, процесс переходит к этапу 910. На этапе 910 событие отправляется оповещению. Когда событие отправлено оповещению, оповещение может действовать в соответствии с событием синхронно и/или асинхронно. На этапе 912 поток проходит через последовательность обработчика событий, при этом выходное событие последнего обработчика событий является выводом логического источника. Если на этапе 914 логический источник находится в рамках логического источника, через который проходит в настоящее время поток, то процесс переходит к этапу 906. Если нет логического источника в рамках текущего логического источника, то на этапе 916 событие отправляется в приемник.
Фиг.10 иллюстрирует методологию 1000, которая облегчает использование процесса RFID, использующего ядро процессов RFID совместно с основанным на логических источниках потоком (к примеру, конвейерным потоком). Следует понимать, что в рамках методологии 1000 каждый логический источник является активной объектной сущностью, и каждый этап выполняется многократно. Начиная с этапа 1002, на нем используется адрес события из очереди, например (но не только) из очереди рабочих элементов. Далее на этапе 1004 событие проходит через последовательность фильтров. Если фильтр останавливает событие на этапе 1006, способ переходит к этапу 1002. Если фильтр не останавливает событие, процесс переходит к этапу 1008, на котором событие отправляется в ядро правил. Ядро правил может начать действовать в соответствии с событием асинхронно. На этапе 1010 событие отправляется в ядро обработчика событий, в котором в соответствии с событием можно действовать асинхронно. Далее на этапе 1014 выполняется определение того, является ли логический источник корневым логическим источником. Если он не является корневым логическим источником, процесс переходит к этапу 1002. Если логический источник является корневым логическим источником, то событие отправляется в приемник на этапе 1016. Следует принимать во внимание, что ядро обработчика событий может обрабатывать принятое событие и передавать ассоциативно связанный вывод в очередь логических источников (к примеру, очередь рабочих элементов), направленную на родительский логический источник.
Чтобы предоставить дополнительный контекст для реализации различных аспектов настоящего изобретения, фиг.11-12 и последующее обсуждение предназначены, чтобы предоставить краткое общее описание подходящего вычислительного окружения, в котором могут быть реализованы различные аспекты настоящего изобретения. Хотя изобретение описано в общем контексте машиноисполняемых инструкций программы вычислительной машины, которая запущена на локальной вычислительной машине и/или удаленной вычислительной машине, специалисты в данной области техники признают, что изобретение также может быть реализовано в сочетании с другими программными модулями. Программные модули обычно включают в себя процедуры, программы, компоненты, структуры данных и т.д., которые выполняют отдельные задачи и/или реализуют отдельные абстрактные типы данных.
Более того, специалисты в данной области техники примут во внимание, способы изобретения могут быть применены на практике с другими конфигурациями вычислительной системы, в том числе однопроцессорными или многопроцессорными вычислительными системами, мини-ЭВМ, мейнфреймами, а также персональными вычислительными машинами, "карманными" вычислительными устройствами, основанной на микропроцессорах и/или программируемой бытовой электронной аппаратурой и т.п., каждая из которых может оперативно обмениваться данными с одним или более ассоциативно связанными устройствами. Проиллюстрированные аспекты изобретения также могут быть реализованы на практике в распределенных вычислительных окружениях, в которых определенные задачи выполняются удаленными обрабатывающими устройствами, которые связаны через сеть обмена данными. Тем не менее, некоторые, если не все аспекты изобретения, могут быть применены на практике на автономных вычислительных машинах. В распределенном вычислительном окружении программные модули могут быть размещены на локальных и/и удаленных устройствах хранения данных.
Фиг.11 - это схематическая блок-схема примера вычислительного окружения 1100, с которым может взаимодействовать настоящее изобретение. Система 1100 включает в себя один или более клиентов 1110. Клиентом(ами) 1110 могут быть аппаратные средства и/или программное обеспечение (к примеру, потоки, процессы, вычислительные устройства). Система 1100 также включает в себя один или более серверов 1120. Сервером(ами) 1120 могут быть аппаратные средства и/или программное обеспечение (к примеру, потоки, процессы, вычислительные устройства). Серверы 1120 могут размещать потоки, чтобы выполнять преобразования, например посредством использования настоящего изобретения.
Один вероятный обмен данными между клиентом 1110 и сервером 1120 может быть в форме пакета данных, приспособленного, чтобы быть переданным между двумя или более процессами вычислительной машины. Система 1100 включает в себя структуру 1140 обмена данными, которая может быть использована, чтобы облегчить обмен данными между клиентом(ами) 1110 и сервером(ами) 1120. Клиент(ы) 1110 удобно подключены к одному или более запоминающих устройств 1150 данных клиента, которые могут быть использованы, чтобы сохранять информацию локально на клиенте(ах) 1110. Также сервер(ы) 1120 удобно подключены к одному или более запоминающих устройств 1130 данных сервера, которые могут быть использованы, чтобы сохранять информацию локально на серверах 1140. Что касается фиг.12, типичное окружение 1200 для реализации различных аспектов изобретения включает в себя вычислительную машину 1212. Вычислительная машина 1212 включает в себя процессор 1214, системную память 1216 и системную шину 1218. Системная шина 1218 соединяет компоненты системы, в том числе (но не только) системную память 1216 с процессором 1214. Процессором 1214 может быть любой из различных доступных процессоров. Архитектуры с двумя микропроцессорами и другие многопроцессорные архитектуры также могут быть использованы в качестве процессора 1214. Системная шина 1218 может быть любого из нескольких типов структур(ы) шин, в том числе шины памяти или контроллера памяти, периферийной шины или внешней шины и/или локальной шины, используя любую из множества доступных архитектур шин, в том числе (но не только) шину промышленного стандарта (ISA), шину микроканальной архитектуры (MCA), расширенную шину ISA (EISA), встроенный интерфейс накопителей (IDE), локальную шину Ассоциации по стандартам в области видеоэлектроники (VLB), шину соединения периферийных компонентов (PCI), шину Card Bus, универсальную последовательную шину (USB), ускоренный графический порт (AGP), шину Международной ассоциации производителей плат памяти для персональных вычислительных машин (PCMCIA), шину Firewire (IEEE 1394) и шину интерфейса малых вычислительных систем (SCSI).
Системная память 1216 включает в себя энергозависимую память 1220 и энергонезависимую память 1222. Базовая система ввода-вывода (BIOS), содержащая основные процедуры, чтобы передавать информацию между элементами в вычислительной машине 1212, например при загрузке, сохраняется в энергонезависимой памяти 1222. В качестве иллюстрации, но не ограничения, энергонезависимая память 1222 может включать в себя постоянное запоминающее устройство (ПЗУ), программируемое ПЗУ (ППЗУ), электрически программируемое ПЗУ (ЭППЗУ), электрически стираемое программируемое ПЗУ (ЭСППЗУ) или флэш-память. Энергозависимая память 1220 включает в себя оперативное запоминающее устройство (ОЗУ), которое действует как внешний кэш. В качестве иллюстрации, но не ограничения, ОЗУ доступно во многих формах, например статическое ОЗУ (СОЗУ), динамическое ОЗУ (ДОЗУ), синхронное ДОЗУ (СДОЗУ), СДОЗУ с двойной скоростью передачи данных (DDR СДОЗУ), улучшенное СДОЗУ (ESDRAM), Rambus direct RAM (RDRAM), direct Rambus dynamic RAM (DRDRAM) и Rambus dynamic RAM (RDRAM).
Вычислительная машина 1212 также включает в себя сменный/стационарный, энергозависимый/энергонезависимый носитель хранения данных вычислительной машины. Фиг.12 иллюстрирует, например, накопитель 1224 на дисках. Накопитель 1224 на дисках включает в себя (но не только) такие устройства, как накопитель на магнитных дисках, накопитель на гибких дисках, ленточный накопитель, накопитель Jaz, накопитель Zip, накопитель LS-100, карту флэш-памяти или карту Memory Stick. Помимо этого, накопитель на дисках 1224 может включать в себя носитель хранения данных независимо или в сочетании с другим носителем хранения данных, в том числе (но не только) накопитель на оптических дисках, например устройство чтения компакт-дисков (CD-ROM), накопитель на записываемых компакт-дисках (CD-R Drive), накопитель на перезаписываемых компакт-дисках (CD-RW Drive) или накопитель чтения универсальных цифровых дисков (DVD-ROM). Чтобы облегчить подключение дисковых устройств 1224 к системной шине 1218, в типичном варианте используется сменный или стационарный интерфейс, например интерфейс 1226.
Следует принимать во внимание, что фиг.12 описывает программное обеспечение, которое выступает в качестве посредника между пользователями и базовыми ресурсами вычислительной машины, описанными в подходящем операционном окружении 1200. Такое программное обеспечение включает в себя операционную систему 1228. Операционная система 1228, которая может быть сохранена на накопителе 1224 на дисках, служит для того, чтобы контролировать и распределять ресурсы вычислительной системы 1212. Системные приложения 1230 используют преимущества управления ресурсами операционной системой 1228 посредством программных модулей 1232 и программных данных 1234, сохраненных либо в системной памяти 1216, либо на накопителе 1224 на дисках. Следует принимать во внимание, что изобретение может быть реализовано с различными операционными системами или сочетаниями операционных систем.
Пользователь вводит команды или информацию в вычислительную машину 1212 посредством устройств(а) 1236 ввода. Устройства 1236 ввода включают в себя (но не только) указательное устройство, такое как мышь, шаровой манипулятор, перо, сенсорную панель, клавиатуру, микрофон, джойстик, игровую панель, спутниковую антенну, сканер, плату ТВ-тюнера, цифровую камеру, цифровую видеокамеру, веб-камеру и т.п. Эти и другие устройства ввода подключаются к процессору 1214 через системную шину 1218 посредством интерфейсного порта(ов) 1238. Интерфейсный порт(ы) 1238 включает в себя, например, последовательный порт, параллельный порт, игровой порт и универсальную последовательную шину (USB). Устройство(а) 1240 вывода использует некоторые из тех же типов портов, что и устройство(а) 1236 ввода. Таким образом, например, порт USB может быть использован, чтобы обеспечить ввод в вычислительную машину 1212 и чтобы выводить информацию из вычислительной машины 1212 на устройство 1240 вывода. Адаптер 1242 вывода предоставлен, чтобы проиллюстрировать, что существуют некоторые устройства 1240 вывода (такие как мониторы, динамики и принтеры) среди прочих устройств 1240 вывода, которые требуют специальных адаптеров. Адаптеры 1242 вывода включают в себя, в качестве иллюстрации, но не ограничения, видео- и звуковые платы, которые обеспечивают средство соединения между устройством 1240 вывода и системной шиной 1218. Следует заметить, что другие устройства и/или системы устройств предоставляют возможности как ввода, так и вывода, такие как удаленная вычислительная машина(ы) 1244.
Вычислительная машина 1212 может работать в сетевом окружении, используя логические подключения к одной или более удаленным вычислительным машинам, например удаленным вычислительным машинам 1244. Удаленной вычислительной машиной(ами) 1244 может быть персональная вычислительная машина, сервер, маршрутизатор, сетевая ПЭВМ, рабочая станция, устройство на базе микропроцессора, одноранговое устройство или другой стандартный сетевой узел и т.п., и типично включает в себя большинство или все элементы, описанные относительно вычислительной машины 1212. В целях краткости, только запоминающее устройство 1246 хранения проиллюстрировано с удаленной вычислительной машиной(ами) 1244. Удаленные вычислительные машины 1244 логически подключены к вычислительной машине 1212 посредством сетевого интерфейса 1248 и затем физически подключены через подключение 1250 связи. Сетевой интерфейс 1248 заключает в себе проводные и/или беспроводные сети обмена данными, такие как локальные сети вычислительные (ЛВС) и глобальные вычислительные сети (ГВС). Технологии ЛВС включают в себя Fiber Distributed Data Interface (FDDI), Copper Distributed Data Interface (CDDI), Ethernet, Token Ring и т.п. Технологии ГВС включают в себя, но не только, двухточечные каналы связи, сети с коммутацией каналов, такие как цифровые сети с комплексными услугами (ISDN) и их разновидности, сети с коммутацией пакетов и цифровые абонентские линии (DSL).
Подключение(я) 1250 связи означает аппаратные средства/программное обеспечение, используемое, чтобы подключить сетевой интерфейс 1248 к шине 1218. Хотя подключение 1250 связи показано в целях иллюстративной ясности внутри вычислительной машины 1212, оно также может быть внешним по отношению к вычислительной машине 1212. Аппаратные средства/программное обеспечение, необходимое для подключения к сетевому интерфейсу 1248, включает в себя (только для типичных целей) внутренние и внешние технологии, например модемы, в том числе модемы на регулярных телефонных линиях, кабельные модемы и DSL-модемы, ISDN-адаптеры и платы Ethernet.
То, что было описано выше, включает в себя примеры настоящего изобретения. Конечно, невозможно описать каждое вероятное сочетание компонентов или методологий в целях описания настоящего изобретения, но обычный специалист в данной области техники может признать, что многие дополнительные сочетания и перестановки настоящего изобретения допустимы. Следовательно, настоящее изобретение предназначено, чтобы охватывать все подобные преобразования, модификации и разновидности, которые попадают под дух и область применения прилагаемой формулы изобретения.
В частности и относительно различных функций, выполняемых вышеописанными компонентами, устройствами, каналами, системам и т.п., термины (в том числе ссылка на "средство"), используемые, чтобы описывать эти компоненты, предназначены, чтобы соответствовать (если не указано иное) любому компоненту, который выполняет указанную функцию описанного компонента (к примеру, функциональный эквивалент), даже если он не эквивалентен структурно раскрытой структуре, которая выполняет функцию в проиллюстрированных в данном документе типичных аспектах изобретения. В этом смысле, также следует принимать во внимание, что изобретение включает в себя систему, а также машиночитаемый носитель, имеющий машиноисполняемые инструкции для выполнения действий и/или событий различных способов изобретения.
Помимо этого, хотя конкретный признак изобретения, возможно, был раскрыт относительно только одной из нескольких реализаций, этот признак может быть объединен с одним или более признаков других реализаций, что может быть требуемо и предпочтительно для любого данного или конкретного приложения. Более того, в тех рамках, в которых термины "включает в себя" и "в том числе" и их варианты используются либо в подробном описании, либо в формуле изобретения, эти термины должны быть включающими способом, аналогичным термину "содержит".
Класс G06K5/00 Способы и устройства для контроля правильности маркировки на носителях информации; устройства для контроля колонок