Интерфейс поставщиков служб устройств

Изобретение относится к радиочастотной идентификации (RFID) и, более конкретно, к системе и/или способу, которые обеспечивают предоставление единообразного обмена данными и управления RFID. Техническим результатом является предоставление единого способа, чтобы распознавать, настраивать и передавать данные в устройства RFID относительно производителя и ассоциированных спецификаций. Настоящее изобретение предоставляет систему и/или способ, которые обеспечивают взаимодействие с компонентом устройств, чтобы предоставлять единообразный обмен данными, обнаружение и управление. Компонент интерфейса поставщиков служб устройств (DSPI) может обеспечить единообразный способ, чтобы обмениваться данными и/или управлять устройством радиочастотной идентификации (RFID). Компонент DSPI может включать в себя компонент-приемник, который принимает одного или более из данных серверов RFID и данных устройств RFID. Компонент DSPI может задавать интерфейс, который обеспечивает обмен одним или более из данных серверов RFID и данных устройств RFID между устройством RFID и сервером RFID единообразным способом. Может быть задан интерфейс для реализации управления обнаружением, конфигурированием, обменом данными и соединениями. 3 н. и 11 з.п. ф-лы, 14 ил., 4 табл.

 

Перекрестная ссылка на родственные заявки

По данной заявке испрашивается приоритет Предварительной патентной заявки США серийный номер 60/606281, поданной 1 сентября 2004 года и озаглавленной "SYSTEM AND METHODS THAT FACILITATE RFID SERVER PROGRAMMING MODEL AND API'S", и Предварительной патентной заявки США серийный номер 60/606577, поданной 2 сентября 2004 года и озаглавленной "FACILITATE RFID SERVER PROGRAMMING MODEL AND API'S". Эта заявка также связана с находящимися одновременно на рассмотрении Патентными заявками США с серийными номерами _______, _______ поданными _______, _______ и _______ соответственно. Эти заявки полностью включены в данный документ посредством ссылки.

Область техники, к которой относится изобретение

Настоящее изобретение, в общем, относится к радиочастотной идентификации (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,4×0,4 мм, т.е. тоньше, чем лист бумаги. Тем не менее, отсутствие блока питания ограничивает практический диапазон считывания пассивной метки RFID от 10 мм до примерно 5 метров.

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

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

Сущность изобретения

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

Настоящее изобретение относится к системам и/или способам, которые обеспечивают взаимодействие с устройством радиочастотной идентификации (RFID) и/или другими системами генерирования событий в реальном времени (к примеру, датчиком, Web-службой и т.д.). Компонент интерфейса поставщиков служб устройств (DSPI) может предоставлять уровень абстрагирования, чтобы обмениваться данными и управлять устройством(ами) единообразным способом вне зависимости от типа и/или торговой марки устройства. В частности, компонент DSPI задает, по меньшей мере, один интерфейс для изготовителя устройства (к примеру, изготовителя устройства считывания), чтобы единообразно предоставлять услуги серверу RFID. Таким образом, компонент DSPI - это уровень между сервером и, по меньшей мере, одним устройством. Более того, компонент DSPI может задавать интерфейс для реализации управления обнаружением, конфигурированием, обменом данными и соединениями.

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

В соответствии с другим аспектом настоящего изобретения компонент DSPI может включать в себя компонент ответа на запросы, который задает обмен сообщениями на уровне устройств. Следует принимать во внимание, что обмен сообщениями может быть асинхронным. Более того, обмен сообщениями может быть парой "запрос/ответ", уведомлением, командой и/или свойством. Обмен сообщениями используется компонентом ответа на запросы, при этом обмен сообщениями соответствует синтаксису языка разметки между сервером RFID и, по меньшей мере, одним устройством RFID. Языком разметки может быть, но не в ограничительном смысле, расширяемый язык разметки (XML), язык гипертекстовой разметки (HTML), стандартный обобщенный язык разметки (SGML) и расширяемый язык гипертекстовой разметки (XHTML).

Более того, компонент DSPI может включать в себя компонент интерфейса устройств, который задает уровень сообщений и/или транспортный уровень. Компонент интерфейса устройств обеспечивает управление обменом сообщениями и соединениями между сервером RFID и, по меньшей мере, одним устройством RFID. Компонент интерфейса устройств может использовать синтаксис языка разметки, чтобы отправлять и/или принимать сообщения (к примеру, уведомление, ответ, запрос и т.д.).

В еще одном аспекте настоящего изобретения компонент DSPI может включать в себя компонент интерфейса обнаружения устройств, который обнаруживает устройства RFID. Таким образом, компонент интерфейса обнаружения устройств может задавать интерфейс, который может информировать и/или сообщать о новом устройстве(ах) RFID. В целях эффективности компонент интерфейса обнаружения устройств может создавать экземпляр одного компонента на каждого поставщика. Более того, компонент DSPI может включать в себя компонент контейнера SPI (интерфейса поставщиков служб), который обеспечивает загрузку поставщика DSPI в сервер RFID. Компонент контейнера SPI сохраняет совместимость версий между сервером RFID и SPI. Более того, компонент контейнера SPI может регистрировать, по меньшей мере, один драйвер в сервере RFID.

Последующее описание и прилагаемые чертежи подробно излагают определенные иллюстративные аспекты изобретения. Эти аспекты, тем не менее, указывают только на некоторые из множества способов, которыми могут быть использованы принципы изобретения. Изобретение предназначено, чтобы включить в себя все такие аспекты и их эквиваленты. Другие преимущества и новые признаки изобретения станут явными из следующего подробного описания изобретения, если рассматривать их вместе с чертежами.

Перечень фигур чертежей

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Подробное описание изобретения

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

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

Основанные на искусственном интеллекте системы (к примеру, явно и/или неявно обучаемые классификаторы) могут быть использованы в связи с выполнением умозаключений, и/или вероятностных определений, и/или основанных на статистике определений, как описано в данном документе. При использовании в данном документе термин "умозаключение" обычно означает процесс рассуждения или обозначения состояний системы, окружения и/или пользователя из набора данных наблюдения, полученных посредством событий и/или данных. Умозаключение может быть использовано, чтобы определить конкретный контекст или действие, либо может генерировать распределение вероятностей, к примеру, по состояниям. Умозаключение может быть вероятностным, т.е. вычислением распределения вероятностей по интересующим состояниям на основе анализа данных и событий. Умозаключение также может означать методики, используемые для компоновки событий более высокого уровня из набора событий и/или данных. Такое умозаключение приводит к составлению новых событий или действий из набора наблюдаемых событий и/или сохраненных данных событий, независимо от того, коррелированы ли события в тесной временной близости и исходят ли события и данные из одного или нескольких источников событий и данных. Различные схемы и/или системы (к примеру, методы опорных векторов, нейронные сети, экспертные системы, сети байесовских представлений, нечеткая логика, ядра синтеза данных и т.д.) классификации могут быть использованы в связи с выполнением автоматического и/или возможного в качестве умозаключения вывода в связи с настоящим изобретением.

Теперь обращаясь к чертежам, фиг.1 иллюстрирует систему 100, которая обеспечивает взаимодействие с компонентом устройств, чтобы предоставлять единообразный обмен данными и/или управление. Система 100 может использовать компонент 102 интерфейса устройств, чтобы предоставлять уровень абстрагирования, который обменивается данными и управляет компонентом 104 устройств единообразным способом. Компонент 102 интерфейса устройств может выступать в качестве "посредника" между сервером 106 и, по меньшем мере, одним компонентом 104 устройств. Сервером может быть, например, сервер RFID, в котором, по меньшей мере, одна услуга (к примеру, публикация, подписка, запрос, опрос, управление, мониторинг, обновление и т.д.) и/или запрограммированный вычислительный процесс (к примеру, связанный с производством и/или поставками и т.д.) может быть предоставлен компоненту 104 устройств. Более того, компонент 102 интерфейса устройств может включать в себя компонент-приемник 108, который принимает данные от одного или более серверов, преобразование протоколов, которое относится к устройству, данные сервера RFID, данные устройства RFID и т.д. Следует принимать во внимание, что компонент 102 интерфейса устройств обеспечивает единообразный обмен данными с устройством и предоставление функциональных возможностей устройства независимо от изготовителя и стандарта протокола. Помимо этого, компонент-приемник 108 может быть внешним и/или внутренним относительно компонента 102 интерфейса устройств. Следует дополнительно принимать во внимание, что устройством может быть, но не в ограничительном смысле, устройство считывания RFID, устройство записи RFID, приемо-передающее устройство RFID, устройство RFID, устройство, датчик реального времени, датчик, устройство с расширением в виде Web-службы и система генерирования событий в реальном времени и т.д.

Изготовители устройств (к примеру, независимый поставщик оборудования (IHV), который специализируется в изготовлении аппаратных средств конкретного типа аппаратного устройства и ассоциированного программного драйвера) могут использовать компонент 102 интерфейса устройств, чтобы предоставлять обслуживание промежуточных программных продуктов на основе, по меньшей мере, частично множества устройств и ассоциированных наборов команд. Другими словами, одно устройство от изготовителя может использовать один набор команд, тогда как другое устройство может использовать, по существу, другой набор команд. Чтобы снизить остроту проблем, связанных с различными изготовителями и наборами команд, компонент 102 интерфейса устройств может задавать интерфейс для изготовителя устройства, который предоставляет обслуживание серверу 106 единообразным способом. Поэтому сервер 106 может использовать компонент 102 интерфейса устройств, чтобы взаимодействовать с компонентом 104 устройств с помощью единообразной методики, которая предоставляет гибкость для устройств. Более того, компонент 102 интерфейса устройств может предоставлять интерфейс и/или интерфейсы, чтобы делегировать управление обнаружением, конфигурированием, обменом данными и соединениями компонента 104 устройств. Следует принимать во внимание, что компонент 102 интерфейса устройств может взаимодействовать с множеством компонентов 104 устройств, при этом поставщики ассоциированы с каждым компонентом 104 устройств.

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

В одном примере компонент 102 интерфейса устройств может быть использован, чтобы предоставлять единообразную методику взаимодействия между множеством компонентов 104 устройств и сервером 106. Компонентами 104 устройств могут быть, например, наследуемые системы, устройства автоматической идентификации, совместимые с EPC-Global устройства и т.д. Помимо этого, следует принимать во внимание, что каждый компонент 104 устройств может иметь ассоциированного поставщика (к примеру, совместимого с EPC-G поставщика, частного поставщика (поставщика, являющегося предметом собственности), наследуемого поставщика и т.д.). Таким образом, компонент 102 интерфейса устройств может предоставлять единообразное взаимодействие между несколькими поставщиками, использующими различные наборы команд для компонентов 104 устройств и сервера 106.

Компонент 102 интерфейса устройств может обеспечивать нормализацию между несколькими стандартами, представляющими множество компонентов 104 устройств, Web-службу и/или системы генерирования событий в реальном времени (не показаны). Таким образом, компонентами 104 устройств могут быть устройство RFID и/или сенсорное устройство. Более того, использование компонента 102 интерфейса устройств дает возможность новшествам в области аппаратных средств переходить на более высокий уровень. Компонент 102 интерфейса устройств может быть реализован поставщиком (не показан), которым может быть, например, независимый от процессора платформенный компоновочный блок. Поставщик может реализовать интерфейс и/или интерфейсы, заданные компонентом 102 интерфейса устройств. Посредством задания интерфейса для поставщика компонент 102 интерфейса устройств взаимодействует с компонентом 104 устройств посредством использования специфических для конкретного устройства команд. Таким образом, компонент 102 интерфейса устройств минимизирует специфические для конкретного устройства частности от сервера 106 RFID.

Фиг.2 иллюстрирует систему 200, которая дает общее представление новизны настоящего изобретения. Например, изготовителю устройств RFID необходим единообразный способ предоставления своих услуг уровню хоста, исполняющемуся на платформе операционной системы, поскольку каждое устройство поддерживает различный набор команд, протокол(ы) и/или поведение. Интерфейс поставщиков служб устройств (DSPI) - это уровень абстрагирования для платформы услуг RFID с целью единообразного обмена данными и управления устройствами RFID. Этот уровень предусматривает нормализацию между несколькими протоколами обмена данными, поддержку наследуемых устройств считывания и других устройств автоматической идентификации единообразным способом, а также предоставление возможности переноса ключевых новшеств в области аппаратных средств на более высокие уровни.

DSPI задает абстрактные классы (для реализации управления обнаружением, конфигурированием, обменом данными, устройствами и соединениями), которые изготовители устройств могут реализовывать, чтобы предоставлять услуги платформе услуг RFID в операционной системе единообразным способом. Поставщики могут функционировать в рамках хоста 202 услуг RFID в качестве управляемой объектной сущности и могут обмениваться данными с самим устройством 204 и/или устройствами 204 посредством, например, управляемого интерфейса прикладного программирования (API-интерфейса), неуправляемого кода, реализации модели компонентных объектов (COM) или посредством API-интерфейсов Win 32 на основе поддерживаемого механизма передачи, называемого машиной 206 узла.

В частности, прикладной домен 208 экземпляров процессов может содержать экземпляр 210 процесса, при этом прикладной домен 208 экземпляров процессов может взаимодействовать с, по меньшей мере, одним прикладным доменом 212 поставщиков устройств. Прикладной домен 212 поставщиков устройств может содержать реализацию 214 DSPI для устройства, при этом может быть множество устройств 216, ассоциированных с ней. Следует принимать во внимание, что может быть от 1 до N устройств, где N - это целое число, как показано на чертеже.

Поставщики служб устройств подпадают под, по меньшей мере, одну из следующих категорий: 1) чистая реализация управляемого кода, использующая один из стандартных протоколов (HTTP, TCP, SERIAL (к примеру, Samsys)); 2) реализация протокола управляемого кода, но вызывающая неуправляемый код (к примеру, USB-устройство считывания, посредник, подключаемый к процессу обработчика различных протоколов); 3) упаковщик управляемого кода для охраняемого протокола, реализованного в качестве драйвера устройства Windows (к примеру, чистых драйверов принтеров, таких как SATO).

Фиг.3 иллюстрирует систему 300, которая обеспечивает взаимодействие с устройством с целью обеспечения единообразных методик обмена данными и/или управления. Сервер 306 RFID может обмениваться данными с устройством 304 RFID посредством использования компонента 302 интерфейса поставщиков служб устройств (DSPI). Следует принимать во внимание, что сервер 306 RFID может обмениваться данными с датчиком (не показан), а также с любым устройством 304 RFID. Поставщик устройств RFID (не показан) может использовать компонент 302 DSPI, который может задавать, по меньшей мере, один компонент DSPI, который обеспечивает взаимодействие с сервером 306 RFID. Интерфейсы, заданные компонентом 302 DSPI, могут быть реализованы IHV-изготовителями для преобразования протоколов, чтобы предоставить функциональные возможности устройств компоненту 302 DSPI. Следует принимать во внимание, что компонент 302 DSPI предоставляет единообразное взаимодействие с сервером RFID и множеством устройств 304 RFID. Следует принимать во внимание, что устройством 304 RFID может быть, но не в ограничительном смысле, устройство считывания RFID, устройство записи RFID, приемо-передающее устройство RFID и т.д.

Компонент 302 DSPI может дополнительно включать в себя компонент 308 ответа на запросы, который обеспечивает обработку сообщений с помощью устройства 304 RFID. Компонент 308 ответа на запросы задает обмен сообщениями между сервером 306 RFID и устройством(ами) 304 RFID. Обмен сообщениями может соответствовать, например, парам сообщений (к примеру, когда первое сообщение может инициировать второе сообщение с помощью специфических для конкретного изготовителя команд), запрос, ответ, уведомление, сообщение, свойство, запрос, подтверждение, флаг и т.д. Следует принимать во внимание, что компонент 308 ответа на запросы задает, по меньшей мере, один обмен сообщениями, который является асинхронным и/или синхронным. Таким образом, обмен сообщениями от компонента 308 ответа на запросы, который является асинхронным, не инициирует немедленный ответ из запроса.

Например, наследуемое устройство и/или поставщик, являющийся предметом собственности, может реализовать компонент 302 DSPI, чтобы использовать единообразные технологии обмена данными. Следует принимать во внимание, что поставщиком, который реализует компонент DSPI, может быть, например, независимый от процессора платформенный компоновочный блок. Компонент 302 DSPI задает интерфейс, из которого компоновочный блок может реализовывать относительно устройства 304 RFID. Другими словами, компонент 302 DSPI использует единообразный набор команд, который могут использовать множество устройств и/или множество поставщиков, чтобы предоставлять услуги IHV-изготовителей серверу 306 RFID.

Более того, компонент 302 DSPI может включать в себя компонент 310 интерфейса устройств. Компонент 310 интерфейса устройств задает уровень сообщений и/или транспортный уровень. Уровень сообщений и/или транспортный уровень может быть реализован посредством языка разметки, например, но не в ограничительном смысле, расширяемым языком разметки (XML), языком гипертекстовой разметки (HTML), стандартным обобщенным языком разметки (SGML) и расширяемым языком гипертекстовой разметки (XHTML). Следует принимать во внимание, что транспортный уровень может быть независимым от уровня сообщений. Помимо этого, компонент 310 интерфейса сообщений делегирует управление сообщениями и соединениями. Чтобы постоянно поддерживать обмен данными и/или взаимодействие с сервером 306 RFID, компонент 310 интерфейса устройств может задать уровень сообщений и транспортный уровень. Совместно с компонентом 308 ответа на запросы компонент 310 интерфейса устройств управляет обменом сообщениями с устройством 304 RFID и сервером 306 RFID с помощью пар сообщений (к примеру, заданных компонентом 308 ответа на запросы) и уровнем сообщений/транспортным уровнем (к примеру, заданным компонентом 310 интерфейса устройств). Более того, управление соединением каждого устройства осуществляется (к примеру, осуществляется контроль, установление, определение, разрыв, мониторинг и т.д.) компонентом 310 интерфейса устройств посредством уровня сообщений/транспортного уровня.

Чтобы обеспечить распознавание устройства 304 RFID, компонент 302 DSPI может включать в себя компонент 312 интерфейса обнаружения устройств. Другими словами, компонент 312 интерфейса обнаружения устройств задает механизм(ы) обнаружения устройств. К этим механизмам распознавания может относиться, но не в ограничительном смысле, запуск обнаружения, остановка обнаружения, данные запросов соединений (к примеру, идентификатор устройства, имя поставщика и т.п.) и т.д. Следует принимать во внимание, что компонент 312 интерфейса обнаружения устройств эффективно создает экземпляр одного компонента DSPI на каждого поставщика, при этом в отношении устройств, ассоциированных с этим поставщиком, выполняется обработка (к примеру, контроль, управление, мониторинг и т.д.). Более того, следует принимать во внимание, что поставщик может реализовывать компонент 312 интерфейса обнаружения устройств.

Компонент 302 DSPI может дополнительно включать в себя компонент 314 контейнера SPI, который загружает поставщиков (не показаны) в сервер 306 RFID. Посредством загрузки поставщика в сервер 306 RFID конфигурирование и регистрация поставщика обрабатывается компонентом 314 контейнера SPI. Компонент 314 контейнера SPI предоставляет информацию о версии и идентификационную информацию, относящуюся к поставщикам. Помимо этого, компонент 314 контейнера SPI - это шлюз верхнего уровня для реализации поставщика. Поставщиками SPI могут быть, например, независимые от процессора платформенные компоновочные блоки. Следует принимать во внимание, что поставщик может использовать драйверы попеременно.

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

Фиг.4 иллюстрирует систему 400, которая обеспечивает взаимодействие с устройством, чтобы предоставлять единообразные методики обмена данными и/или управления. Компонент 308 ответа на запросы может включать в себя компонент 402 формирования пар, который обеспечивает пары обмена сообщениями, чтобы давать возможность обмениваться данными устройству (не показано) и серверу (не показан). Например, обмен сообщениями может быть задан как пары "запрос-ответ", которые являются асинхронными. Более того, обмен сообщениями приводится в соответствие (к примеру, посредством формирования пар) с помощью идентификации. Идентификацией может быть, например, идентификация сообщения, которая уникальна для конкретной соответствующей пары. Следует принимать во внимание, что компонент 402 формирования пар может поддерживать специфические для конкретного изготовителя команды (к примеру, пары обмена сообщениями, пары "запрос-ответ" и т.д.). Помимо этого, команда/процедура (к примеру, описываемая далее "SendMessage()") может быть использована, чтобы отправлять запросы на устройство.

Компонент 402 формирования пар может использовать устройство 404 хранения данных, в котором могут быть сохранены пары обмена сообщениями. Следует принимать во внимание, что устройство 404 хранения данных может быть базой данных в памяти в рамках DSPI (не показан) и/или удаленного сервера. Устройство 404 хранения данных может быть использовано, чтобы хранить пары "запрос-ответ", которые поддерживаются компонентом DSPI (не показан). Более того, устройством хранения данных может быть, например, либо энергозависимая, либо энергонезависимая память, либо оно может включать в себя как энергозависимую, так и энергонезависимую память. В качестве иллюстрации, но не ограничения, энергонезависимая память может включать в себя постоянное запоминающее устройство (ПЗУ, ROM), программируемое ПЗУ (ППЗУ, PROM), электрически программируемое ПЗУ (ЭППЗУ, EPROM), электрически стираемое программируемое ПЗУ (ЭСППЗУ, EEPROM) или флэш-память. Энергозависимая память может включать в себя оперативное запоминающее устройство (ОЗУ, RAM), которое выступает в качестве внешнего кэша. В качестве иллюстрации, но не ограничения, ОЗУ доступно во многих формах, например статическое ОЗУ (SRAM), динамическое ОЗУ (DRAM), синхронное DRAM (SDRAM), SDRAM с двойной скоростью передачи данных (DDR SDRAM), усовершенствованное SDRAM (ESDRAM), Rambus direct RAM (RDRAM), direct Rambus dynamic RAM (DRDRAM) и Rambus dynamic RAM (RDRAM). Подразумевается, что устройство 404 хранения данных, соответствующее настоящим системам и способам, содержит, но не в ограничительном смысле, эти и любые другие подходящие типы памяти.

Компонент 402 формирования пар поддерживает множество пар обмена сообщениями. Например, в следующей таблице (таблица 1) показан пример (и описание) подходящей пары "запрос-ответ", которая может быть использована, чтобы обмениваться данными между устройством и сервером.

Таблица 1
Команда Ответ Описание
WriteId (string id, string passCode) Код состояния и/или ошибка Записывает идентификатор в метку.
Id - идентификатор метки, чтобы записывать в качестве шестнадцатеричной закодированной строки.
passCode - необязательный пароль как шестнадцатеричная закодированная строка.
Если id - пустое значение (null), она эквивалентна команде writePassCode.
GetTagData (string id) Пользовательские данные как специфическая для конкретного поставщика строка Считывает данные конкретной метки (пользователя), заданного идентификатором метки.
Все пользовательские данные, содержащиеся в метке, возвращаются без какого-либо многослойного доступа.
WriteTagData(string id, string data) Код состояния и/или ошибка Записывает пользовательские данные в конкретную метку, заданную идентификатором метки.
Кодировка строки данных задается поставщиком.
GetTagIds() Перечень строк Считывает все метки и данные, доступные в момент вызова, и возвращает как коллекцию.
Этот вызов является вызовом в реальном времени, который возвращает все метки, доступные для устройства в данный момент времени от одной или более антенн.
GetTagList() Перечень меток Перечень считанных записей "идентификатор/источник" в перечне меток.
ClearTagList() Код состояния и/или ошибка Очищает перечень меток.
GetTagMetaData(string id) Сведения о теге Считывает подробные сведения о конкретной метке (тип, номер изготовителя, блоки и т.д.), заданной идентификатором метки.
LockTag(string id, string lockCode) Код состояния и/или ошибка Блокирует конкретную метку. lockCode необходим, если он был задан ранее.
Kill (string id, string killCode) Код состояния и/или ошибка Уничтожает метку.
killCode необходим, если он был задан ранее.
AddReadFilter (string bitMask, bool incExc) Код состояния и/или ошибка Добавляет простой фильтр побитового маскирования в устройство.
RemoveReadFilter( string bitMask, bool incExc) Код состояния и/или ошибка Удаляет заданный фильтр из устройства.
ClearReadFilters() Код состояния и/или ошибка Очищает все фильтры в устройстве.
Reboot() Код состояния и/или ошибка Перезапускает устройство.
Все подключения к устройству теряются и не устанавливаются заново.
WriteId (string id, string passCode) Код состояния и/или ошибка Записывает идентификатор в метку.
Id - идентификатор метки, чтобы записывать в качестве шестнадцатеричной закодированной строки.
passCode - дополнительный пароль как шестнадцатеричная закодированная строка.
Если id - пустое значение, она эквивалентна команде writePassCode.

Более того, компонент 402 формирования пар может предоставлять ответ и/или уведомление (к примеру, принятое посредством "CmdResponseEvent" и "NotificationEvent" соответственно). Например, событие уведомления "ReadTagEvent" может быть использовано в режиме событий и отправлено устройством, чтобы сообщить о событии считывания/распознавания метки.

Компонент 308 ответа на запросы может дополнительно включать в себя компонент 406 свойств, который может предоставлять пары свойств, заданные компонентом DSPI (не показан). Пары свойств могут, например, иметь во многом аналогичное поведение с парами обмена сообщениями. В частности, свойства могут быть "получены" или "заданы," что не инициирует исключительных ситуаций. Следует принимать во внимание, что свойства могут быть обработаны посредством стандартного механизма (к примеру, запросов, отправленных описанным ниже методом SendMessage()). Следует принимать во внимание, что стандартные свойства могут быть заданы компонентом DSPI (не показан), тогда как конкретный поставщик может задавать другие свойства. Поставщик может поддерживать свойство, называемое REQUEST-TIMEOUT (к примеру, в миллисекундах), для запроса на в отношении исчисления лимита времени ожидания. Следует принимать во внимание, что компонент 406 свойств может использовать устройство 404 хранения данных, чтобы сохранять свойства.

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

Таблица 2
Команда Ответ Описание
GetProperty(string propertyGroupName, string propertyName) Объект свойства. NULL, если нет такого свойства. Получает заданное свойство.
SetProperty(Property property) Код состояния и/или ошибка Задает свойство.
ApplyPropertyProfile(Property[] propertyProfile) Код состояния и/или ошибка Множество свойств могут быть применены одновременно с помощью этого метода. Приведем сценарий, при котором эта функциональность будет полезна: набор свойств должен быть задан для оптимальных рабочих характеристик устройства. Все они могут быть заданы как профиль в конфигурации устройства. Они могут быть немедленно применены сервером.
GetProperty(string propertyGroupName, string propertyName) Объект свойства. NULL, если нет такого свойства. Получает указанное свойство.
SetProperty(Property property) Код состояния и/или ошибка Задает свойство.

Более того, компонент 406 свойств поддерживает множество стандартных свойств. Например, в следующей таблице (таблица 3) показано стандартное свойство, а именно считано или записано свойство, а также описание.

Таблица 3
Свойство Чтение/запись Обязательно Описание
REQUEST_TIMEOUT Ч/З Да Период времени ожидания (TIMEOUT) для сообщений запроса (в миллисекундах). Поставщик отправляет ответ на запрос на TIMEOUT после того, как этот период истечет.

Компонент 308 ответа на запросы может использовать программный код, чтобы использовать обмен сообщениями между устройством и сервером. Программным кодом может быть язык разметки, например, но не в ограничительном смысле, расширяемый язык разметки (XML), язык гипертекстовой разметки (HTML), стандартный обобщенный язык разметки (SGML) и расширяемый язык гипертекстовой разметки (XHTML). Например, язык разметки может быть использован, чтобы предоставить синтаксис для запроса, ответа и уведомлений. Следует принимать во внимание, что запрос, уведомление и т.д. могут быть представлены как запрограммированные объекты в компоненте DSPI (не показан), чтобы предоставлять строгий контроль типов.

Фиг.5 иллюстрирует систему 500, которая обеспечивает взаимодействие с устройством, чтобы предоставлять единообразные методики обмена данными и/или управления. Компонент 310 интерфейса устройств может включать в себя компонент 502 обмена данными, который обеспечивает задание уровня сообщений и транспортного уровня. Более того, компонент 310 интерфейса устройств дополнительно содержит методики для управления сообщениями и соединениями. Следует принимать во внимание, что компонент 502 обмена данными может содержать, по меньшей мере, один канал отправки и, по меньшей мере, один канал приема, чтобы реализовать уровень сообщений и транспортный уровень.

Например, компонент 502 обмена данными может включать в себя канал 504 отправки. Канал отправки может использовать "SendMessage()", чтобы отправлять информацию. Помимо этого, компонент 502 обмена данными может иметь первый канал 506 приема и второй канал 508 приема. Первый канал 506 приема может использовать "CmdResponseEvent" для ответов (к примеру, для запроса), тогда как второй канал 508 приема может использовать "NotificationEvent" для уведомлений. Событие ответа может быть для синхронных команд запроса-ответа, тогда как уведомления могут быть для асинхронных, при этом уведомлениями могут быть событие перечня меток, событие управления считывающим устройством и т.д. Следует принимать во внимание, что компонент 310 интерфейса устройств может использовать "ProviderException". "ProviderException" - это исключительная ситуация верхнего уровня для всех связанных с поставщиком исключительных ситуаций. Любая внутренняя исключительная ситуация может быть передана в качестве аргумента внутри этой исключительной ситуации. Например, следующий код может задавать класс ProviderException:

public class ProviderException : ApplicationException {

public ProviderException(string message) :base(message) {

}

public ProviderException(string message, Exception e):base(message, e) {

}

}

Компонент 502 обмена данными может отправлять сообщения устройству. Следующий код является примером реализации "SendMessage()", чтобы отправить сообщение:

void SendMessage (ICommand command);

Компонент 502 обмена данными также может инициировать исключительные ситуации, например, но не в ограничительном смысле, ConnectionDownException, SendFailedException, System.ArgumentException (к примеру, когда параметр сообщения недопустим) и т.д. Более того, компонент 502 обмена данными может использовать следующий код:

event ResponseEventHandler CmdResponseEvent;

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

event ResponseEventHandler NotificationEvent;

Вышеприведенное событие генерируется, когда событие уведомления принято устройством. Более того, вышеприведенный код может быть предоставлен устройством, когда принято асинхронное событие. Следует принимать во внимание, что компонент 310 интерфейса устройств может использовать другой код и/или события.

Нижеприведенный код может быть реализован компонентом 310 интерфейса устройств, чтобы открыть уровень сообщений для обмена данными. Следует принимать во внимание, что стандартные запросы на сообщения ML (SML) отправляются с помощью следующего кода:

public abstract class DeviceInterface

{

public abstract DeviceInformation DeviceInformation {get;}

public abstract event ResponseEventHandler CmdResponseEvent;

public abstract event NotificationEventHandler NotificationEvent;

public abstract void SendMessage(Command command);

public abstract bool SetupConnection();

public abstract void Close();

public abstract bool IsConnectionAlive();

public abstract HashTable GetSources();

}

public delegate void ResponseEvent(object source, ResponseEventArgs args);

public delegate void NotificationEvent(object source, NotificationEventArgs args);

public class ResponseEventArgs:EventArgs

{

private Command command;

public ResponseEventArgs(Command command) {...}

}

public class NotificationEventArgs:EventArgs

{

private Notification notification;

public NotificationEventArgs(string id, Notification.Notification notification) {...}

}

public class RfidProviderException : ApplicationException {...}

public class ConnectionDownException : RfidProviderException {...}

public class SendFailedException : RfidProviderException {...}

// управление соединениями

public class ConnectionFailedException : RfidProviderException {...}

"DeviceInformation DeviceInformation {get;}" предоставляет информацию об устройстве, относящуюся к этому экземпляру устройства. Он содержит всю информацию об этом устройстве. Информация об устройстве предоставляется во время распознавания в событии распознавания и от компонента 310 интерфейса устройств. Например, класс информации устройства может быть задан следующим образом:

public class DeviceInformation

{

private string deviceId;

private ConnectionInformation connectionInfo;

private object providerData;

}

"void SendMessage (ICommand command);" - это команда, используемая, чтобы отправлять все сообщения на уровне устройств. Следующие исключительные ситуации могут быть инициированы: ConnectionDownException (к примеру, либо устройство не подсоединено, либо соединение разорвано); SendFailedException (к примеру, соединение с устройством имеется, однако произошел сбой при отправке сообщения устройству); System.ArgumentException (к примеру, когда параметр сообщения недопустим); и т.д. Функция "event ResponseEventHandler CmdResponseEvent;" - это событие, которое генерируется каждый раз, когда приходит ответ на запрос, "event NotificationEventHandler NotificationEvent;" - это событие, которое генерируется каждый раз, когда асинхронное событие уведомления принимается от устройства.

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

public delegate void ResponseEvent(object source, ResponseEventArgs args);

public class ResponseEventArgs:EventArgs {

public readonly string id; // идентичен идентификатору сообщения

public readonly string data; // строка xml

public ResponseEventArgs(string id, string data) {...}

}

public class ReaderTimeoutException :Exception{

public readonly string messageId;

public ReaderTimeoutException(string messageId) {...}

}

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

public class ProviderException : ApplicationException {...}

public class ConnectionDownException : ProviderException {...}

public class SendFailedException : ProviderException {...}

public class ConnectionFailedException : ProviderException{...}

void SendMessage(string message);

Компонент 310 интерфейса устройств также может управлять соединением, поддерживаемым с устройством. Следует принимать во внимание, что управление этим соединением может осуществляться для множества устройств, ассоциированных с поставщиком. Соединение с устройством поддерживается с помощью различных функций (описано ниже). Следует принимать во внимание, что поставщик поддерживает соединение с устройством до тех пор, пока это соединение не будет закрыто с помощью функции "Close()". Управление соединением может быть осуществлено с помощью следующего кода:

bool SetupConnection();

void Close();

bool IsConnectionAlive();

HashTable GetSources();

"bool SetupConnection();" устанавливает соединение с устройством (к примеру, абстрагированному данным экземпляром DeviceInterface). Этот метод может использовать следующую исключительную ситуацию: ConnectionFailedException (к примеру, произошел сбой при соединении с устройством), "void Close();" может удалять состояния, связанные с устройством, из драйвера и/или закрывать соединение, "bool IsConnectionAlive();" возвращает значение "истина", если соединение с устройством (к примеру, абстрагированным этим классом DeviceInterface) имеется. "HashTable GetSources();" возвращает все источники (к примеру, антенну) в устройстве как имя по отношению к состоянию (к примеру, истинно, если источник подсоединен и активен).

Фиг.6 иллюстрирует систему 600, которая обеспечивает взаимодействие с устройством, чтобы предоставлять единообразные методики обмена данными и/или управления. Компонент 312 интерфейса обнаружения устройств может включать в себя компонент информирования 602, который информирует компонент DSPI (не показан) о том, что обнаружено новое устройство. Компонент 602 информирования очень эффективен в том плане, что создается экземпляр одного компонента на каждого поставщика, чтобы устройства могли быть обработаны. Следует принимать во внимание, что, поскольку сервер может не иметь контроля над ресурсами, поставщик реализует компонент 312 интерфейса обнаружения устройств. Тем не менее, поставщик может реализовать данный компонент 312 интерфейса обнаружения устройств и не только. Например, число потоков может зависеть от числа устройств конкретного типа. Более того, если потоки обнаружения сталкиваются с ошибкой в ходе приведения в исполнение, поставщик может обрабатывать эти ошибки, чтобы давать возможность потокам выполняться. Более того, компонент 312 интерфейса обнаружения устройств может задавать механизм обнаружения устройств посредством использования интерфейса, например, но не в ограничительном смысле, интерфейса DeviceListener.

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

public abstract class DeviceListenerInterface

{

public abstract event DiscoveryEventHandler DiscoveryEvent;

public abstract void StartDiscovery();

public abstract void StopDiscovery();

}

public delegate void DiscoveryEventHandler(object source, DiscoveryEventArgs args);

public class DiscoveryEventArgs:EventArgs {

private DeviceInformation deviceInfo;

Начало и остановка обнаружения может инициировать исключительную ситуацию: "public class DiscoveryException : ApplicationException {...}". В частности, "DiscoveryEventHandler" - это обработчик обратного вызова для всех событий обнаружения (к примеру, поставщик отправляет событие обнаружения устройства в узел с помощью этого события); "StartDiscovery" - это функция, чтобы запускать обнаружение устройства; а "StopDiscovery" - это функция, чтобы останавливать обнаружение новых устройств. Помимо этого, вышеприведенный код использует объект информации об устройствах, который включает в себя информацию, связанную с обнаруженным устройством RFID.

Компонент 312 интерфейса обнаружения устройств дополнительно включает в себя компонент 604 соединения, который обеспечивает соединение с устройством. Например, компонент 604 соединения может использовать строку XML, такую как "deviceIdXml", которая заключает в себе информацию и/или данные, необходимые, чтобы подсоединиться к устройству. Компонентом 604 соединения может быть использована схема, которая включает в себя следующее: уникальный идентификатор устройства, имя поставщика, имя механизма транспортировки, стандартные механизмы транспортировки и т.д. Например, следующая схема может быть использована компонентом 604 соединения:

<xsd:element name="deviceInformation" type="DeviceInformation" />

<xsd:complexType name="DeviceInformation">

<xsd:sequence>

<xsd:element name="id" type="xsd:string" />

<xsd:element name="provider" type="xsd:string" />

<xsd:element name="transport" type="xsd:string" />

<xsd:element name="providerSpecific" type="xsd:anyType" />

</xsd:sequence>

</xsd:complexType>

<xsd:simpleType name="Transport">

<xsd:restriction base="xsd:string">

<xsd:enumeration value="TCPIP"/>

<xsd:enumeration value="SERIAL"/>

<xsd:enumeration value="HTTP"/>

<xsd:enumeration value="WIRELESS"/>

</xsd:restriction>

</simpleType>

Класс информации устройства предоставляет информацию об устройстве RFID. Этот класс предоставляется поставщиком во время обнаружения в событии обнаружения и от компонента 310 интерфейса устройств на фиг.3.

Более того, класс информации соединения может быть использован для соединения с устройством RFID. Для устройств, которые поддерживают обнаружение, этот объект может быть получен из объекта DeviceInformation из DiscoveryEvent. Для устройств, которые не поддерживают обнаружение, этот объект может быть заполнен вручную перед вызовом на объекте GetDevice() ServiceProviderInterface. Класс информации соединения может быть задан следующим образом:

public class ConnectionInformation

{

private string providerId;

private Transport transport;

private ITransportSettings transportSettings;

}

public enum Transport

{

TcpIP,

Serial,

Http,

Wireless

}

Фиг.7 иллюстрирует систему 700, которая обеспечивает взаимодействие с устройством, чтобы предоставлять единообразные методики обмена данными и/или управления. Поставщиками SPI могут быть, например, компоновочные блоки, которые предоставляют множество преимуществ (к примеру, компоновочные блоки .NET). Следует принимать во внимание, что компонент 314 контейнера SPI сохраняет состояние драйвера на минимуме. Другими словами, количество обнаруженных и/или подсоединенных устройств не важно для компонента 314 SPI.

Компонент 314 контейнера SPI может включать в себя компонент 702 поставщиков служб, который реализует интерфейс поставщиков служб. Интерфейс поставщиков служб является входной точкой для компонента DSPI (не показан). Средство реализации DSPI требует интерфейса, чтобы использовать входную точку. Следует принимать во внимание, что методы в интерфейсе могут использовать ProviderException. Например, может быть использован следующий код:

public abstract class ServiceProviderInterface : DeviceListenerInterface

{

public abstract Provider Information ProviderInformation {get;};

public abstract DataEncoding UserDataEncoding {get;}

public abstract void Init(string hostId, string initXml);

public abstract void ShutDown();

public abstract DeviceInterface GetDevice(ConnectionInformation deviceConnectionInfo);

public abstract bool IsValidDevice(DeviceInformation deviceInfo);

public abstract string[] GetPropertyGroupNames();

public abstract Hashtable GetPropertyMetadata(string propertyGroupName, string propertyName);

public abstract PropertyProfile GetIdealReaderPropertyProfile();

public abstract PropertyProfile GetIdealWriterPropertyProfile();

}

Следует принимать во внимание, класс драйвера поддерживает созданный выше интерфейс. Более того, заданная ниже "ProviderException" может быть вызвана. "ProviderInformation ProviderInformation {get;};" предоставляет информацию о поставщике DSPI, которая может быть использована в информационных целях узлом(ами) DSPI. Класс информации поставщика может быть использован, чтобы предоставлять эту информацию. Например, следующее может быть использовано, чтобы задать класс информации поставщика:

public class ProviderInformation

{

private string id;

private string description;

private string version;

}

"Encoding UserDataEncoding {get;};" обеспечивает кодирование, ожидаемое поставщиком для пользовательских данных (к примеру, ASCII, Hex и т.д.). Функция "void Init(string hosted, string initXml);" - это конструктор поставщика. Хост инициализирует поставщика DSPI с помощью этого метода, "hostId" может быть использован в информационных целях поставщиком, тогда как "initXml" - это специфичный для конкретного поставщика XML (к примеру, чья схема конкретна для поставщика), который может быть использован поставщиком, чтобы инициализировать себя. Функция "void Shutdown()" может быть использована, когда устройства все еще подсоединены, при этом сервер отвечает за закрытие таких соединений. Функция останавливает поток обнаружения, очищает условия состояний и/или возвращает систему в исходное состояние. Таким образом, она является деструктором поставщика и завершает работу поставщика. "DeviceListenerInterface GetDeviceListener()" возвращает ссылку на объект, который поддерживает, как указано в коде, интерфейс DeviceInterface Listener (к примеру, компонент 310 интерфейса устройств), который используется для обнаружения. Более того, "DeviceInterface GetDevice(ConnectionInformation deviceConnectionInfo" реализует интерфейс ServiceProviderInterface, чтобы выступать в качестве производителя для интерфейса DeviceInterface. Интерфейс DeviceInterface абстрагирует устройство RFID, с которым хост может обмениваться данными. Следует также принимать во внимание, что код "bool IsValidDevice(DeviceInformation deviceInfo);" обеспечивает возврат значения "истина", если информация об устройстве представляет допустимое устройство, поддерживаемое данным устройством, и доступное для соединения либо уже подсоединенное. "string[] GetPropertyGroupNames();" возвращает имена групп свойств, поддерживаемых данным поставщиком. Глобальная группа свойств с именем "String.Empty" не возвращается этим методом. Функция "Hashtable GetpropertyMetadata(string propertyGroupName, string propertyName);" возвращает метаданные о свойствах как имя группы и карту метаданных свойств. Возвращаемое значение может быть задано следующей таблицей:

Имя свойства - NULL Имя свойства - NON NULL
Имя группы свойств - NULL Метаданные для всех глобальных свойств как пустая строка по отношению к метаданным свойств. Метаданные для именованного глобального свойства как пустая строка по отношению к метаданным свойств. Если не глобальное свойство, возвращает NULL.
Имя группы свойств - NON NULL Метаданные для всех свойств в данной группе как имя группы по отношению к метаданным свойств. Метаданные для именованного свойства в именованной группе как имя группы по отношению к метаданным свойств. Если это не свойство, принадлежащее данной группе, возвращает NULL.

Функция "PropertyProfile GetIdealReaderPropertyProfile();" возвращает оптимальный профиль свойств для устройства RFID, которое находится в роли устройства считывания (к примеру, которое находится в режиме уведомлений о метках) для данного поставщика. Она содержит набор свойств, которые, когда применяются, приводят к оптимальной работе устройства считывания. "PropertyProfile GetIdealWriterPropertyProfile();" возвращает оптимальное свойство для устройства RFID, которое находится в роли устройства записи (к примеру, режим синхронных команд) для данного поставщика. Она содержит набор свойств, которые, когда применяются, приводят к оптимальной работе устройства записи.

Компонент 314 контейнера SPI может включать в себя компонент 704 драйверов с целью обеспечения регистрации, по меньшей мере, одного драйвера в сервере. Компонент 704 драйверов обеспечивает регистрацию драйверов в сервере, чтобы разрешить проверенные и подлинные драйвера. Например, при регистрации драйверов могут использоваться цифровые подписи, которые обеспечивают защищенные и/или подлинные драйверы, которые гарантируют совместимость и функциональность. Например, интерфейс IDriverManager может быть реализован с помощью следующего кода:

interface IDriverManager {

string LoadDriver(string assemblyPath, string className);

void UnloadDriver (string identifier);

void StopReadersOfDriver(string identifier);

string ListLoadedDrivers();

}

Интерфейс IDriverManager может поддерживаться, например, ускорителем RFID. Более того, следует принимать во внимание, что клиент может использовать платформу .NET, чтобы удаленно подсоединяться к драйверам и управлять ими. Как говорилось выше, платформа .NET предоставляет множество преимуществ, связанных с использованием драйверов и универсальностью. Код "string LoadDriver (AssemblyQualifiedNamespace);" может быть реализован компонентом 704 драйверов. Путь может быть путем к компоновочному блоку, размещенному на локальной машине, при этом могут быть инициированы следующие исключительные ситуации: компоновочный блок не найден; версия драйвера в компоновочном блоке не поддерживается сервером; а также идентификатор компоновочного блока не уникален (к примеру, из загруженных драйверов), при этом идентификатор определяет драйвер после загрузки. Следует принимать во внимание, что "providerInstanceId" возвращается при корректной загрузке драйвера. Помимо этого, компонент 704 драйверов может использовать функцию "void UnloadDriver (string providerInstanceId);", которая обеспечивает удаление драйвера из конфигурации сервера. Драйвер, соответствующий ненайденному идентификатору, является исключительной ситуацией, которая может быть инициирована в связи с этой функцией.

Компонент 704 драйверов может реализовать код "string ListLoadedDrivers();", который обеспечивает управление драйверами. Следует принимать во внимание, что компонент 704 драйверов может обеспечивать управление, при этом строка, возвращенная из функции "string ListLoadedDrivers();", может быть строкой XML со следующим форматом:

<xsd:element name="drivers" type="Drivers" />

<xsd:complexType name="Drivers">

<xsd:sequence>

<xsd:element name="driver" type="Driver" maxOccurs="unbounded" />

</xsd:sequence>

</xsd:complexType>

<xsd:complexType name="Driver">

<xsd:sequence>

<xsd:element name="name" type="xsd:string" />

<xsd:element name="assembly" type="xsd:string" />

<xsd:element name="version" type="xsd:string" />

</xsd:sequence>

</xsd:complexType>

Вышеприведенный код позволяет создать составной тип со ссылочным именем "Drivers". Более того, код содержит имя драйвера (к примеру, providerInstanceId), имя компоновочного блока драйвера и версию драйвера.

Фиг.8 иллюстрирует систему 800, которая обеспечивает использование компонента 802 интерфейса поставщиков служб устройств (DSPI), чтобы обеспечивать единообразный обмен данными и управление для множества устройств и ассоциированных поставщиков. Поставщики 804 могут включать в себя множество поставщиков, например совместимого с EPC-G поставщика 808, первого поставщика 810, являющегося предметом собственности, и второго поставщика 812, являющегося предметом собственности. Следует принимать во внимание, что поставщики 804 обеспечивают обслуживание ассоциированного устройства. Например, совместимый с EPC-G поставщик 808 может быть ассоциирован с устройством 814 EPC-Global, первый поставщик 810, являющийся предметом собственности, может быть ассоциирован с первым наследуемым устройством 816, а второй поставщик 812, являющийся предметом собственности, может быть ассоциирован со вторым наследуемым устройством 818. Следует принимать во внимание, что компонент 802 DSPI взаимодействует посредством одного из существующих поставщиков 804 для ассоциированного устройства (к примеру, устройства 814 EPC-Global, первого наследуемого устройства 816 и/или второго наследуемого устройства 818). Компонент 802 DSPI предоставляет единый способ, которым поставщики 804 предоставляют обслуживание промежуточных программных продуктов, поскольку каждое устройство поддерживает особый набор команд. Другими словами, компонент 802 DSPI задает интерфейсы для изготовителей устройств (к примеру, и ассоциированных устройств), чтобы единообразно предоставлять услуги серверу 806 RFID.

Следует принимать во внимание, что компонент 802 DSPI может поддерживать на уровне сообщений команды, специфические конкретно для, по меньшей мере, одного из поставщиков 804. Специфические для конкретного поставщика команды могут быть отправлены с помощью следующего командного объекта:

public class VendorDefined : Command

{

private string vendor;

private string command;

private ParameterCollection parameters;

private VendorDefinedResponse response;

}

public class VendorDefinedResponse : Response

{

private string reply;

private vendorData data;

}

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

public struct VendorDefinedEvent: IEvent

{

private string id;

private string vendor;

private string name;

private Data data;

}

Объект содержит идентификатор события, идентификатор изготовителя, специфическое для конкретного поставщика имя события и все специфические для конкретного поставщика данные по событию.

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

public struct Tag

{

private string tagId;

private string tagData;

private string tagType;

private DateTime time;

private string source;

...

}

Метка хранит идентификатор метки, необязательно данные метки, необязательно тип метки, необязательно время и необязательно источник. Источник хранится как простая специфическая для конкретного поставщика строка (к примеру, Antenna1). Следует принимать во внимание, что именами источников могут быть, но не в ограничительном смысле, Antenna1, Antenna2 и т.д.

В соответствии с еще одним аспектом настоящего изобретения фильтр побитового маскирования может быть применен к идентификаторам обнаруженных меток. Могут быть реализованы шаблоны фильтров, такие как, например, использование нулей, единиц и x-ов, при этом x представляет "оставить без внимания". Фильтр применяется к идентификатору метки только совпадающей длины. В одном примере фильтры применяются только к уведомлениям. Синхронные команды не применяют эти фильтры. BitMaskReadFilter может быть использован с помощью следующего:

public class BitMaskReadFilter

{

private string bitMask;

private bool inclusive;

}

В соответствии с еще одним аспектом настоящего изобретения, по меньшей мере, один из поставщиков 804 может предоставить, по меньшей мере, набор команд меток, которые поддерживают код-пропуск. Если пользователь задает код-пропуск с помощью команды "WriteID", он может применяться ко всем данным защищенным операциям. Если пользователь не имеет кода-пропуска, все они становятся обычными командами. Коды-пропуска специфичны для метки.

Фиг.9 иллюстрирует систему 900, которая обеспечивает использование компонента 902 интерфейса поставщиков служб устройств (DSPI) с целью обеспечения единообразного обмена данными и/или управления устройством. Компонент 902 DSPI обеспечивает обмен данными между сервером 906 RFID и устройством 904 RFID посредством предоставления единообразных методик для обмена данными и управления. Например, поставщик (не показан), ассоциированный с, по меньшей мере, одним устройством 904 RFID, может реализовывать компонент 902 DSPI. Поставщиком может быть независимый от процессора платформенный компоновочный блок, который реализует интерфейс(ы), заданный компонентом 902 DSPI.

Компонент 902 DSPI может использовать компонент 908 предыстории, который предоставляет журнал регистрации действий на основе, по меньшей мере, частично компонента 902 DSPI, сервера 906 RFID и/или устройства 904 RFID. Компонент предыстории может отслеживать и/или регистрировать информацию, такую как, например, списки поставщиков, устройства, ассоциированные с поставщиками, предыстория соединений, данные о соединениях, данные о сигналах, данные аутентификации и т.д. Более того, следует принимать во внимание, что журнал регистрации действий, созданный компонентом 908 предыстории, может быть потоком данных в реальном времени и/или сохраненными данными. Компонент 908 предыстории может использовать устройство 914 хранения данных, чтобы сохранять регистрируемые действия журнала и/или данные предыстории. Это устройство 914 хранения данных подробнее описано ниже.

Компонент 902 DSPI может взаимодействовать с компонентом 910 безопасности, чтобы обеспечивать дополнительную безопасность для системы 900. Компонент 910 безопасности может разрешать аутентификацию (к примеру, имя для логического входа в систему и/или пароль), проверку подлинности (к примеру, проверку подлинности этого имени для логического входа в систему и пароля), защищенное соединение (к примеру, на основе, по меньшей мере, частично проверки подлинности), уровни безопасности (к примеру, на основе имени пользователя и/или пароля), шифрование и т.д. Например, компонент 910 безопасности может обеспечивать защищенное соединение, при этом можно обмениваться информацией, которая дает возможность поставщикам взаимодействовать и/или использовать интерфейсы, заданные компонентом 902 DSPI. Более того, аутентификация и/или проверка подлинности системы 900 позволяет повысить доверие пользователей касательно предоставленных драйверов.

В соответствии с одним аспектом настоящего изобретения компонент 902 DSPI может использовать компонент 912 обучения, чтобы обеспечить установление обмена данными между сервером 906 RFID и устройством 904 RFID. Компонент 912 обучения может использовать методики обучения машины (к примеру, искусственного интеллекта), чтобы определять, например, действия/поведение поставщиков, действия/поведение устройств, тенденции безопасности и т.д. Компонент 912 обучения может анализировать информацию, ассоциированную с компонентом 908 предыстории, такую как, например, архивные данные и/или журналы действий, чтобы определять, может ли поставщик реализовать интерфейс, заданный компонентом 902 DSPI. Более того, при определении того, должно ли конкретное устройство быть подсоединено и/или обслужено, компонент 912 обучения может анализировать характеристики и/или шаблоны поведения, определенные, по меньшей мере, частично на основе методик искусственного интеллекта.

Следует принимать во внимание, что компонент 908 предыстории, компонент 910 безопасности и/или компонент 912 обучения может использовать устройство 914 хранения данных, чтобы сохранять данные. Устройство 914 хранения данных может быть размещено внутри компонента 902 DSPI и/или удаленного сервера. Более того, устройством 914 хранения данных может быть, например, либо энергозависимая, либо энергонезависимая память, либо оно может включать в себя энергозависимую и энергонезависимую память. В качестве иллюстрации, но не ограничения, энергонезависимая память может включать в себя постоянное запоминающее устройство (ПЗУ), программируемое ПЗУ (PROM), электрически программируемое ПЗУ (EPROM), электрически программируемое стираемое ПЗУ (EEPROM) или флэш-память. Энергозависимая память может включать в себя оперативное запоминающее устройство (ОЗУ), которое выступает в качестве внешнего кэша. В качестве иллюстрации, но не ограничения, ОЗУ доступно во многих формах, например статическое ОЗУ (SRAM), динамическое ОЗУ (DRAM), синхронное DRAM (SDRAM), SDRAM с двойной скоростью передачи данных (DDR SDRAM), усовершенствованное SDRAM (ESDRAM), Rambus direct RAM (RDRAM), direct Rambus dynamic RAM (DRDRAM) и Rambus dynamic RAM (RDRAM). Подразумевается, что устройство 914 хранения данных, соответствующее настоящим системам и способам, содержит, но не в ограничительном смысле, эти и любые другие подходящие типы памяти.

Фиг.10-12 иллюстрируют методики в соответствии с настоящим изобретением. Для упрощения пояснения методики изображены и описаны как последовательности действий. Следует понимать и принимать во внимание, что настоящее изобретение не ограничено проиллюстрированными действиями и/или последовательностью действий, например действия могут осуществляться в другой последовательности и/или параллельно и с другими действиями, не представленными и не описанными в настоящем документе. Более того, не все проиллюстрированные действия могут быть необходимы, чтобы реализовать методики в соответствии с настоящим изобретением. Помимо этого, специалисты в данной области техники поймут и примут во внимание, что методики могут быть альтернативно представлены как последовательности взаимосвязанных состояний или событий посредством схемы состояний или событий.

Фиг.10 иллюстрирует методику 1000, которая обеспечивает обмен данными с устройством посредством использования единообразного подхода к взаимодействию. На этапе 1002 поставщики могут быть загружены на сервер. В частности, контейнер SPI может загружать поставщика(ов) на сервер RFID. После загрузки поставщиков на сервер версия SPI может быть проверена на предмет совместимости с этим сервером. Более того, драйвер(ы) может быть зарегистрирован в сервере RFID, чтобы предоставлять совместимый драйвер(ы) (к примеру, цифровая проверка).

На этапе 1004 устройство обнаруживают и конфигурируют. При обнаружении действуют так, чтобы создавался экземпляр одного компонента на каждого поставщика, и устройства могли быть использованы. Более того, поставщик обрабатывает поток обнаружения в ходе процесса обнаружения. После обнаружения устройства строка может предоставлять информацию, необходимую, чтобы подсоединять и/или конфигурировать устройство. Например, строка может быть в формате языка разметки (к примеру, расширяемого языка разметки (XML), языка гипертекстовой разметки (HTML), стандартного обобщенного языка разметки (SGML) и расширяемого языка гипертекстовой разметки (XHTML) и т.д.), имеющего такую информацию, как, например, но не в ограничительном смысле, уникальный идентификатор устройства, имя поставщика, имя механизма транспортировки и т.д.

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

Фиг.11 иллюстрирует методику 1100, которая обеспечивает обмен данными с устройством. На этапе 1102 поставщик загружают на сервер RFID. После аутентификации поставщик загружают, при этом множество услуг может быть предоставлено единообразно посредством использования, по меньшей мере, одного интерфейса. На этапе 1104 задают уровень сообщений и/или транспортный уровень. Управление обменом сообщениями и/или соединениями предоставляется на уровне сообщений и/или транспортном уровне. Например, канал отправки может использовать "SendMessage()", чтобы осуществлять обмен сообщениями. Помимо этого, первый канал приема для ответов может реализовать "CmdResponseEvent," тогда как второй канал приема для уведомлений может использовать "NotificationEvent". Управление соединениями может быть обеспечено с помощью строки XML. Следует принимать во внимание, что поставщик может поддерживать соединение с устройством до тех пор, пока это соединение не закрыто с помощью функции "Close()".

На этапе 1106 устройство(а) может быть обнаружено и сконфигурировано посредством использования уровня сообщений и/или транспортного уровня. Обнаружение и конфигурирование устройства выполняется с помощью пар обмена сообщениями. Осуществляют обмен парами обмена сообщениями между сервером и устройством. Следует принимать во внимание, что пары обмена сообщениями являются асинхронными и могут быть сопоставлены с помощью идентификации сообщений. Как говорилось выше, "SendMessage()" может быть использована, чтобы отправлять запросы устройству, тогда как ответы и уведомления принимаются с помощью "CmdResponseEvent" и "NotificationEvent" соответственно. Более того, пары обмена сообщениями могут использовать свойства, чтобы конфигурировать устройство(а). Следует принимать во внимание, что стандартные свойства также могут быть заданы и реализованы посредством процесса конфигурирования и/или обнаружения.

Далее на этапе 1108 задают и используют интерфейс, чтобы обеспечивать единообразное обслуживание посредством сервера RFID обнаруженным и сконфигурированным устройствам. Пары обмена сообщениями могут предоставить единообразные методики, чтобы обмениваться данными с наследуемыми и/или новыми распознанными устройствами. Следует принимать во внимание, что множество интерфейсов может быть задано для управления обнаружением, конфигурированием, обменом данными и соединениями. В общем, способ 1100 может предоставлять уровень абстрагирования, чтобы обмениваться данными и управлять устройствами единообразно.

Фиг.12 иллюстрирует методику 1200, которая обеспечивает единообразный подход к обмену данными и/или управлению устройством. На этапе 1202 загружают поставщики RFID на сервер RFID, чтобы предоставлять услуги. Следует принимать во внимание, что новые поставщики обнаруживаются и загружаются соответственно после аутентификации и проверки подлинности. На этапе 1204 задают уровень сообщений и транспортный уровень, предоставляющие возможности обмена данными от компонента интерфейса поставщика служб устройств (DSPI) и устройства RFID. На этапе 1206 выполняют определение того, обнаружено ли новое устройство. Если новое устройство обнаружено, процесс переходит к этапу 1208, на котором устройство подсоединяют, аутентифицируют и конфигурируют надлежащим образом. Если новое устройство не обнаружено, процесс переходит к этапу 1210, на котором может быть задан и использован интерфейс, чтобы предоставлять единообразное обслуживание обнаруженным (к примеру, выявленным, проверенным и/или аутентифицированным) устройствам RFID.

Следует принимать во внимание, что процесс 1200 обеспечивает постоянный опрос и/или периодическое определение того, представлены ли новый поставщик и/или новые ассоциированные устройства в сервере RFID. Другими словами, при предоставлении единообразного обслуживания обнаруженным устройствам процесс может переходить к этапу 1202 после обнаружения нового поставщика, при этом поставщик может быть загружен, а ассоциированные устройства обнаружены, подсоединены и аутентифицированы. Более того, следует принимать во внимание, что новое устройство может быть определено на ранее используемом поставщике. Таким образом, процесс позволяет обнаруживать и конфигурировать это новое устройство надлежащим образом. По существу непрерывный опрос и/или периодическая проверка может использовать определение новых устройств и/или поставщиков.

Чтобы предоставить дополнительный контекст для реализации различных аспектов настоящего изобретения, фиг.13-14 и последующее обсуждение предназначены, чтобы предоставить краткое общее описание подходящей вычислительной среды, в которой могут быть реализованы различные аспекты настоящего изобретения. Хотя изобретение описано в общем контексте машиноисполняемых инструкций программы вычислительной машины (компьютера), которая запущена на локальной вычислительной машине и/или удаленной вычислительной машине, специалисты в данной области техники признают, что изобретение также может быть реализовано в сочетании с другими программными модулями. Программные модули обычно включают в себя процедуры, программы, компоненты, структуры данных и т.д., которые выполняют отдельные задачи и/или реализуют отдельные абстрактные типы данных.

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

Фиг.13 - это блок-схема примера вычислительной среды 1300, с которой может взаимодействовать настоящее изобретение. Система 1300 включает в себя один или более клиентов 1310. Клиентом(ами) 1310 могут быть аппаратные средства и/или программное обеспечение (к примеру, потоки, процессы, вычислительные устройства). Система 1300 также включает в себя один или более серверов 1320. Сервером(ами) 1320 могут быть аппаратные средства и/или программное обеспечение (к примеру, потоки, процессы, вычислительные устройства). Серверы 1320 могут вмещать потоки, чтобы выполнять преобразования, например, посредством использования настоящего изобретения.

Один вероятный обмен данными между клиентом 1310 и сервером 1320 может быть в форме пакета данных, приспособленного для передачи между двумя или более процессами вычислительной машины. Система 1300 включает в себя структуру 1340 обмена данными, которая может быть использована, чтобы обеспечить обмен данными между клиентом(ами) 1310 и сервером(ами) 1320. Клиент(ы) 1310 в рабочем состоянии подсоединены к одному или более хранилищам 1350 данных клиента, которые могут быть использованы, чтобы сохранять информацию локально на клиенте(ах) 1310. Также, сервер(ы) 1320 в рабочем состоянии подсоединены к одному или более хранилищам 1330 данных сервера, которые могут быть использованы, чтобы сохранять информацию локально на серверах 1340.

Что касается фиг.14, иллюстративная среда 1400 для реализации различных аспектов изобретения включает в себя вычислительную машину 1412. Вычислительная машина 1412 включает в себя процессор 1414, системную память 1416 и системную шину 1418. Системная шина 1418 соединяет компоненты системы, в том числе, но не в ограничительном смысле, системную память 1416, с процессором 1414. Процессором 1414 может быть любой из различных доступных процессоров. Архитектуры с двумя микропроцессорами и другие многопроцессорные архитектуры также могут быть использованы в качестве процессора 1414.

Системная шина 1418 может быть любого из нескольких типов структур(ы) шин, в том числе шины памяти или контроллера памяти, периферийной шины или внешней шины и/или локальной шины, используя любую из множества архитектур шин, в том числе, но не в ограничительном смысле, 11-битную шину, шину промышленного стандарта (ISA), шину микроканальной архитектуры (MCA), расширенную шину ISA (EISA), встроенный интерфейс накопителей (IDE), локальную шину Ассоциации по стандартам в области видеоэлектроники (VLB), шину соединения периферийных компонентов (PCI), универсальную последовательную шину (USB), ускоренный графический порт (AGP), шину Международной ассоциации производителей плат памяти для персональных вычислительных машин (PCMCIA) и шину интерфейса малых вычислительных систем (SCSI).

Системная память 1416 включает в себя энергозависимую память 1420 и энергонезависимую память 1422. Базовая система ввода-вывода (BIOS), содержащая основные процедуры, чтобы передавать информацию между элементами в вычислительной машине 1412, например при загрузке, хранится в энергонезависимой памяти 1422. В качестве иллюстрации, но не ограничения, энергонезависимая память 1422 может включать в себя постоянное запоминающее устройство (ПЗУ), программируемое ПЗУ (PROM), электрически программируемое ПЗУ (EPROM), электрически стираемое программируемое ПЗУ (EEPROM) или флэш-память. Энергозависимая память 1420 включает в себя оперативное запоминающее устройство (ОЗУ), которое действует как внешний кэш. В качестве иллюстрации, но не ограничения, ОЗУ доступно во многих формах, например статическое ОЗУ (SRAM), динамическое ОЗУ (DRAM), синхронное DRAM (SDRAM), SDRAM с двойной скоростью передачи данных (DDR SDRAM), усовершенствованное SDRAM (ESDRAM), Rambus direct RAM (RDRAM), direct Rambus dynamic RAM (DRDRAM) и Rambus dynamic RAM (RDRAM).

Вычислительная машина 1412 также включает в себя сменный/стационарный, энергозависимый/энергонезависимый носитель данных вычислительной машины. Фиг.14 иллюстрирует, например, накопитель 1424 на дисках. Накопитель 1424 на дисках включает в себя, но не в ограничительном смысле, такие устройства, как накопитель на магнитных дисках, накопитель на гибких дисках, ленточный накопитель, накопитель Jaz, накопитель Zip, накопитель LS-100, карту флэш-памяти или карту Memory Stick. Помимо этого, накопитель 1424 на дисках может включать в себя носитель данных независимо или в сочетании с другим носителем данных, в том числе, но не в ограничительном смысле, накопитель на оптических дисках, например устройство чтения компакт-дисков (CD-ROM), накопитель на записываемых компакт-дисках (CD-R Drive), накопитель на перезаписываемых компакт-дисках (CD-RW Drive) или накопитель чтения универсальных цифровых дисков (DVD-ROM). Чтобы обеспечить подключение дисковых устройств 1424 к системной шине 1418, в типичном варианте используется интерфейс сменной или стационарной памяти, например интерфейс 1426.

Следует принимать во внимание, что фиг.14 описывает программное обеспечение, которое выступает в качестве посредника между пользователями и базовыми ресурсами вычислительной машины, описанными в подходящей операционной среде 1400. Такое программное обеспечение включает в себя операционную систему 1428. Операционная система 1428, которая может быть сохранена на накопителе 1424 на дисках, служит для того, чтобы контролировать и распределять ресурсы вычислительной системы 1412. Системные приложения 1430 используют преимущества управления ресурсами операционной системой 1428 посредством программных модулей 1432 и программных данных 1434, сохраненных либо в системной памяти 1416, либо на накопителе 1424 на дисках. Следует принимать во внимание, что изобретение может быть реализовано с различными операционными системами или сочетаниями операционных систем.

Пользователь вводит команды или информацию в вычислительную машину 1412 посредством устройств(а) 1436 ввода. Устройства 1436 ввода включают в себя, но не в ограничительном смысле, координатно-указательное устройство, такое как мышь, шаровой манипулятор, перо, сенсорную панель, клавиатуру, микрофон, джойстик, игровую панель, спутниковую антенну, сканер, плату ТВ-тюнера, цифровую камеру, цифровую видеокамеру, Web-камеру и т.п. Эти и другие устройства ввода подключаются к процессору 1414 через системную шину 1418 посредством интерфейсного порта(ов) 1438. Интерфейсный порт(ы) 1438 включает в себя, например, последовательный порт, параллельный порт, игровой порт и универсальную последовательную шину (USB). Устройство(а) 1440 вывода использует некоторые из тех же типов портов, что и устройство(а) 1436 ввода. Таким образом, например, порт USB может быть использован для обеспечения ввода в вычислительную машину 1412 и для обеспечения вывода информации из вычислительной машины 1412 на устройство 1440 вывода. Адаптер 1442 вывода предоставлен, чтобы проиллюстрировать, что существуют некоторые устройства 1440 вывода (такие, как мониторы, динамики и принтеры) среди прочих устройств 1440 вывода, которые требуют специальных адаптеров. Адаптеры 1442 вывода включают в себя, в качестве иллюстрации, но не ограничения, видео- и звуковые платы, которые обеспечивают средство соединения между устройством 1440 вывода и системной шиной 1418. Следует заметить, что другие устройства и/или системы устройств предоставляют возможности как ввода, так и вывода, такие как удаленная вычислительная машина(ы) 1444.

Вычислительная машина 1412 может работать в сетевой среде, используя логические соединения с одной или более удаленными вычислительными машинами, например удаленными вычислительными машинами 1444. Удаленной вычислительной машиной(ами) 1444 может быть персональная вычислительная машина, сервер, маршрутизатор, сетевая ПЭВМ, рабочая станция, устройство на базе микропроцессора, одноранговое устройство или другой стандартный сетевой узел и т.п. и в типичном случае включает в себя большинство или все из элементов, описанных относительно вычислительной машины 1412. В целях краткости, только запоминающее устройство 1446 проиллюстрировано с удаленной вычислительной машиной(ами) 1444. Удаленные вычислительные машины 1444 логически подсоединены к вычислительной машине 1412 посредством сетевого интерфейса 1448 и затем физически подсоединены через коммуникационное соединение 1450 связи. Сетевой интерфейс 1448 заключает в себе проводные и/или беспроводные сети обмена данными, такие как локальные сети (LAN) и глобальные сети (WAN). Технологии LAN включают в себя распределенный интерфейс передачи данных по волоконно-оптическим каналам (FDDI), распределенный проводной интерфейс передачи данных (CDDI), Ethernet, Token Ring и т.п. Технологии WAN включают в себя, но не в ограничительном смысле, двухточечные каналы связи, сети с коммутацией каналов, такие как цифровые сети с комплексными услугами (ISDN) и их разновидности, сети с коммутацией пакетов и цифровые абонентские линии (DSL).

Коммуникационное соединение(я) 1450 означает аппаратные средства/программное обеспечение, используемые, чтобы подключить сетевой интерфейс 1448 к шине 1418. Хотя коммуникационное соединение 1450 показано в целях иллюстративной ясности внутри вычислительной машины 1412, оно также может быть внешним по отношению к вычислительной машине 1412. Аппаратные средства/программное обеспечение, необходимые для подключения к сетевому интерфейсу 1448, включают в себя, исключительно в иллюстративных целях, внутренние и внешние технологии, например модемы, в том числе модемы на регулярных телефонных линиях, кабельные модемы и DSL-модемы, ISDN-адаптеры и платы Ethernet.

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

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

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

1. Сервер для взаимодействия с одним или более устройствами радиочастотной идентификации (RFID), содержащий
один или более поставщиков, загруженных на сервер, причем каждый их этих одного или более поставщиков представляет собой машиноисполняемый объект, ассоциированный с по меньшей мере одним из упомянутых одного или более устройств RFID;
компонент интерфейса поставщиков служб устройств (DSPI), который задает интерфейс, который должен быть реализован каждым из упомянутых одного или более поставщиков для обеспечения обмена данными с ассоциированным по меньшей мере одним устройством RFID и преобразования протоколов для предоставления функциональных возможностей упомянутого устройства RFID серверу единообразным образом, независимо от изготовителя устройства и стандарта протокола; и компонент для анализа при установлении обмена данными между устройством RFID и сервером предварительно сохраненной информации о предыстории действий по меньшей мере некоторых из поставщиков и/или устройств RFID, чтобы определить, может ли ассоциированный поставщик реализовать упомянутый интерфейс.

2. Сервер по п.1, в котором по меньшей мере некоторые из поставщиков являются независимыми от процессора платформенными компоновочными блоками.

3. Сервер по п.1, в котором интерфейс содержит компонент ответа на запросы, который задает обмен сообщениями, который является объектом команды и ответа, причем команда и ответ являются асинхронными и сопоставляются с помощью идентификатора сообщения.

4. Сервер по п.3, в котором обмен сообщениями является парой запрос-ответ, которая является по меньшей мере одним из команды, свойства и уведомления.

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

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

7. Сервер по п.1, в котором интерфейс содержит компонент контейнера интерфейса поставщиков служб (SPI), который обеспечивает одно из совместимой версии SPI, цифровой аутентификации драйвера и регистрации драйвера.

8. Сервер по п.1, в котором интерфейс использует компонент безопасности, который обеспечивает одно из защищенного соединения, аутентификации поставщика и проверки подлинности устройства RFID.

9. Реализуемый сервером способ обеспечения взаимодействия с одним или более устройствами радиочастотной идентификации (RFID), содержащий этапы, на которых
загружают один или более поставщиков на сервер, причем каждый из этих одного или более поставщиков представляет собой машиноисполняемый объект, ассоциированный с по меньшей мере одним из упомянутых одного или более устройств RFID;
задают интерфейс, который должен быть реализован каждым из упомянутых одного или более поставщиков для обеспечения обмена данными с ассоциированным по меньшей мере одним устройством RFID и преобразования протоколов для предоставления функциональных возможностей устройства RFID серверу единообразным образом, независимо от изготовителя устройства и стандарта протокола; и
при установлении обмена данными между устройством RFID и сервером выполняют анализ предварительно сохраненной информации о предыстории действий по меньшей мере некоторых из поставщиков и/или устройств RFID, чтобы определить, может ли ассоциированный поставщик реализовать упомянутый интерфейс.

10. Способ по п.9, дополнительно содержащий этапы, на которых задают уровень сообщений и транспортный уровень и обнаруживают и конфигурируют устройство RFID.

11. Способ по п.10, дополнительно содержащий пару обмена сообщениями, которая является асинхронной.

12. Способ по п.11, в котором пара обмена сообщениями представляет собой одно из следующего: запрос и ответ, запрос и реакция, запрос и уведомление и запрос и свойство.

13. Способ по п.9, дополнительно содержащий этап, на котором расширяют интерфейс до, по меньшей мере, стороннего производителя устройств, Web-службы и сенсорного устройства реального времени.

14. Считываемый компьютером носитель, на котором сохранены исполняемые компьютером команды для осуществления способа по п.9.



 

Похожие патенты:

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

Изобретение относится к средствам для электронного обмена данными (ЭОД). .

Изобретение относится к области рекламы в прикладных программах. .

Изобретение относится к генерации аналитического инструмента для использования при оценивании состояния объекта. .

Изобретение относится к системе и способу проведения финансовой транзакции бесконтактного (ближнего) действия. .

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

Изобретение относится к устройству (1) обмена данными, в частности тахографу (DTCO), для защищенного от манипулирования обмена данными между картой (3) и устройством (1) обмена данными.

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

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

Изобретение относится к области защиты банкнот, ценных бумаг и документов с нанесенными метками подлинности, содержащими нанокристаллы алмазов с активными NV-центрами.

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

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

Изобретение относится к системе и способу для генерации структуры рукописного документа и сохранения структуры рукописного документа в последовательном двоичном формате.

Изобретение относится к области интегральной микроэлектроники и может быть использовано при реализации фотоприемных устройств различных спектральных диапазонов.

Изобретение относится к области ввода/вывода информации. .

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