ЗАЩИЩЕННЫЕ ШЛЮЗЫ ДЛЯ ПОДКЛЮЧАЕМЫХ МАШИН ДЛЯ ВЫДАЧИ
SECURE GATEWAYS FOR CONNECTED MACHINES FOR DISPENSING

ОБЛАСТЬ ТЕХНИЧЕСКОГО ПРИМЕНЕНИЯ
[0001] Описанные варианты осуществления, как правило, относятся к подключаемым машинам, в том числе к подключаемым машинам для выдачи.
ПРЕДПОСЫЛКИ СОЗДАНИЯ ИЗОБРЕТЕНИЯ
[0002] Диспенсеры для напитков используют для выдачи напитков потребителям в различных местах, таких как рестораны, кафе, театры и другие места развлечений и/или предприятия общественного питания. Традиционные диспенсеры для напитков обеспечивают ограниченное количество типов выданных напитков (например, от шести до десяти) и не имеют дополнительных функций. Более современные диспенсеры для напитков могут обеспечивать по существу большее количество типов и комбинаций напитков в значительной степени вследствие того, что эти диспенсеры уже не ограничены механически возможностью обеспечения одного или двух типов напитков на каждую раздаточную головку. Например, в более новых диспенсерах для напитков можно применять одну дозирующую головку для обеспечения до 1000 различных типов и комбинаций напитков.
[0003] Комбинация относится к смеси предложенных типов напитков, которые могут быть автоматически смешаны и выданы из одной раздаточной головки, и представляет собой отдельную дополнительную функцию, предложенную в более современных диспенсерах для напитков. Выдаваемая комбинация может представлять собой, например, частную комбинацию предложенных типов напитков, выбранных потребителем в диспенсере для напитков, или одну из некоторого количества предварительно заданных комбинаций, доступных для выбора потребителями в диспенсере для напитков.
[0004] С повышением сложности с точки зрения количества доступных вариантов выбора напитков и других инновационных функций, может возникнуть потребность в обеспечении возможности для владельцев и/или операторов заведений подключать усовершенствованные диспенсеры для напитков к системе администрирования посредством компьютерной сети для обеспечения передачи телеметрических данных усовершенствованными диспенсерами для напитков в систему администрирования. Телеметрические данные могут включать в себя, например, собранные в усовершенствованных диспенсерах для напитков данные, относящиеся к потреблению (например, данные о количестве напитка каждого типа и каждой комбинации, употребленного в усовершенствованных диспенсерах для напитков) и состоянию (например, текущее количество ингредиентов и/или расходных материалов в усовершенствованных диспенсерах для напитков). В системе администрирования можно применять телеметрические данные для улучшения, например, функционирования, технического обслуживания и/или общей логистики, связанных с работой усовершенствованных диспенсеров для напитков.
[0005] Кроме того, по тем же причинам может возникнуть потребность в подключении к системе администрирования посредством компьютерной сети других типов машин-диспенсеров, таких как диспенсеры, выдающие консервированные/бутилированные напитки, закуски и/или другие элементы. Эти машины-диспенсеры часто называют торговыми автоматами.
КРАТКОЕ ОПИСАНИЕ ГРАФИЧЕСКИХ МАТЕРИАЛОВ/ФИГУР
[0006] Сопроводительные чертежи, которые включены в настоящее описание и составляют его часть, иллюстрируют настоящее описание и вместе с описанием дополнительно предназначены для объяснения принципов описания и обеспечения возможности для специалиста в рассматриваемой области техники изготавливать и применять описание.
[0007] На ФИГ. 1 представлен вид спереди в перспективе диспенсера для напитков согласно варианту осуществления настоящего описания.
[0008] На ФИГ. 2 представлена блок-схема диспенсера для напитков согласно варианту осуществления настоящего описания.
[0009] На ФИГ. 3 представлена система для передачи телеметрических данных по компьютерной сети согласно варианту осуществления настоящего описания.
[0010] На ФИГ. 4 представлена система для защищенной передачи телеметрических данных по компьютерной сети согласно варианту осуществления настоящего описания.
[0011] На ФИГ. 5 представлена блок-схема способа сбора и защищенной передачи сообщения-запроса веб-службы, содержащего телеметрические данные, на контроллер администрирования по компьютерной сети согласно варианту осуществления настоящего описания.
[0012] На ФИГ. 6 представлена блок-схема способа генерации и передачи сообщения такта состояния на контроллер администрирования по компьютерной сети согласно варианту осуществления настоящего описания.
[0013] На ФИГ. 7 представлена блок-схема способа защищенных приема и обработки сообщения веб-службы, содержащего телеметрические данные, от контроллера диспенсера согласно варианту осуществления настоящего описания.
[0014] На ФИГ. 8 представлен контроллер администрирования для параллельной и масштабируемой обработки сообщений, содержащих телеметрические данные, согласно варианту осуществления настоящего описания.
[0015] На ФИГ. 9 представлена блок-схема способа приема и обработки сообщений веб-службы от машин-диспенсеров согласно варианту осуществления настоящего описания.
[0016] На ФИГ. 10 представлена блок-схема примера компьютерной системы, которую можно применять для реализации аспектов настоящего описания.
[0017] Далее настоящее описание будет описано со ссылкой на прилагаемые чертежи. Чертеж, на котором элемент представлен впервые, как правило, обозначен крайней (-ими) левой (-ыми) цифрой (-ами) в соответствующей ссылочной позиции.
ПОДРОБНОЕ ОПИСАНИЕ
[0018] Далее настоящее описание будет подробно описано со ссылкой на варианты его осуществления, проиллюстрированные на прилагаемых чертежах. Ссылки на «один вариант осуществления», «вариант осуществления», «пример осуществления» и т.д. обозначают, что описанный вариант осуществления может включать в себя конкретный признак, структуру или характеристику, однако каждый вариант осуществления не обязательно включает в себя конкретный признак, структуру или характеристику. Более того, такие выражения необязательно относятся к одному и тому же варианту осуществления. Дополнительно, когда конкретный признак, структура или характеристика описаны в связи с вариантом осуществления, считается, что специалисту в данной области будет понятно, что это влияет на такой признак, структуру или характеристику в связи с другими вариантами осуществления, независимо от того, описаны они явно или нет.
1. Общее описание
[0020] Веб-службы имеют многоуровневую архитектуру и, как правило, включают в себя, от самого нижнего до самого верхнего, по меньшей мере сетевой уровень, транспортный уровень и уровень упаковки. Сетевой уровень определяет самые основные коммуникационные требования веб-службы, например, в отношении того, как должны быть адресованы, переданы и маршрутизированы данные по компьютерной сети. Транспортный уровень отвечает за обеспечение связи приложения с приложением выше сетевого уровня и включает в себя, например, такие технологии, как HTTP. Уровень упаковки указывает данные форматирования, подлежащие упаковке перед передачей по сети на транспортном уровне. Простой протокол доступа к объектам (SOAP) и стиль архитектуры программного обеспечения для распределенных систем информации (REST) представляют собой два самых распространенных формата упаковки. SOAP определяет конверт на основе XML для создания вышеописанных сообщений запроса и ответа. В REST в качестве конверта можно применять широкий спектр форматов, выполненных с возможностью считывания машиной, для создания сообщений запроса и ответа, включающих XML и JSON.
[0021] Уровни архитектуры веб-службы, как правило, не затрагивают проблемы безопасности, такие как целостность сообщений, аутентификация, авторизация и конфиденциальность. Следовательно, предоставление веб-службы, обеспечивающей доступ машины-диспенсера к системе администрирования по компьютерной сети, может предполагать неприемлемое обеспечение доступа к системе администрирования и сообщениям веб-службы для других неавторизованных пользователей и устройств компьютерной сети.
[0022] Настоящее описание относится к системам и способам защищенной передачи телеметрических данных машины-диспенсера в систему администрирования посредством предоставленной веб-службы по компьютерной сети. Для обеспечения безопасности предоставленной веб-службы в системах и способах настоящего описания предложены защищенные шлюзы на машине-диспенсере и в системе администрирования, которые выполнены с возможностью обеспечения одного или более из целостности сообщения, аутентификации, авторизации и конфиденциальности. Защищенные шлюзы реализуют отдельно от приложений, создающих сообщения запроса и ответа на машине-диспенсере и в системе администрирования соответственно. Поскольку защищенные шлюзы реализуют отдельно от приложений, создающих сообщения запроса и ответа, приложения, создающие сообщения запроса и ответа, могут быть выполнены с возможностью создания и изменения без учета защищенности сообщений, которые можно обрабатывать без изменения кодов защищенными шлюзами.
[0023] Настоящее описание дополнительно относится к системам и способам параллельной и масштабируемой обработки сообщений веб-службы, содержащих телеметрические данные, системой администрирования. Система администрирования может принимать большое количество сообщений веб-службы, содержащих телеметрические данные, от множества машин-диспенсеров за короткий промежуток времени. Для приема и обработки этих сообщений веб-службы в системах и способах настоящего описания обеспечено устройство обслуживания очереди сообщений для обслуживания очереди сообщений веб-службы (или по меньшей мере телеметрических данных в сообщениях веб-службы) во множестве очередей и другого подпроцесса или процесса («подпроцесс») для каждой из множества очередей. Каждый подпроцесс может извлекать сообщения веб-службы из назначенной ему очереди в том порядке, в котором их хранят в назначенной очереди, и обрабатывать телеметрические данные из сообщений веб-службы. Указанные подпроцессы можно выполнять в одном или более ядрах центральных процессоров (ЦП) в системе администрирования. Такая конфигурация обеспечивает горизонтальное масштабирование с точки зрения пропускной способности обработки сообщений веб-службы. Например, для повышения пропускной способности обработки сообщений веб-службы можно увеличивать количество ядер ЦП и/или количество очередей (и, соответственно, количество подпроцессов, назначенных очередям).
[0024] Системы и способы параллельной и масштабируемой обработки сообщений веб-службы, содержащих телеметрические данные, в системе администрирования могут дополнительно обеспечивать обработку сообщений веб-службы в том порядке, в котором они сгенерированы на соответствующих им машинах-диспенсерах. Это может быть целесообразно, например, для обеспечения непринятия решений, касающихся технического обслуживания и функционирования машин-диспенсеров, на основании устаревших телеметрических данных.
[0025] Для обеспечения такой функциональной возможности упорядоченной обработки сообщений веб-службы устройство обслуживания очереди сообщений может помещать сообщение веб-службы, содержащее телеметрические данные, в одну из множества очередей в зависимости от машины-диспенсера, от которой было принято сообщение веб-службы. Например, устройство обслуживания очереди сообщений может применять идентификатор машины-диспенсера, включенный в сообщение веб-службы, для сопоставления сообщения веб-службы с конкретной одной из множества очередей таким образом, чтобы сообщения веб-службы от машины-диспенсера попадали в одну очередь. Кроме того, после определения устройством обслуживания очереди сообщений конкретной одной из множества очередей, в которую следует включить сообщение веб-службы, устройство обслуживания очереди сообщений может вставлять сообщение веб-службы в конкретную позицию в очереди на основании момента генерации сообщения веб-службы на машине-диспенсере. Например, устройство обслуживания очереди сообщений может применять порядковый номер сообщения веб-службы или временную отметку, включенные в сообщение веб-службы, для вставки сообщения веб-службы в конкретную позицию в очереди таким образом, чтобы сохранять сообщения веб-службы в очереди в том порядке, в котором сообщения веб-службы были сгенерированы.
[0026] Перед дополнительным описанием этих и других признаков настоящего описания в следующем разделе представлена иллюстративная рабочая среда, в которой могут быть реализованы варианты осуществления настоящего описания.
2. Иллюстративная рабочая среда
[0027] На ФИГ. 1 представлен диспенсер 100, в котором могут быть реализованы варианты осуществления настоящего описания. Диспенсер 100 может включать в себя основание 102, соединенное с корпусом 108. Основание 102 может служить опорой для корпуса 108 в вертикальном положении. Основание 102 может включать в себя поддон 104 с местом 106 выдачи, размещенным в пределах зоны, занятой поддоном 104. Пользователь (например, потребитель) может помещать свою чашку в место 106 выдачи для получения желаемого напитка.
[0028] Корпус 108 может включать в себя пользовательский интерфейс 110 для приема команд от пользователя. Пользовательский интерфейс 110 может включать в себя экран 112 дисплея, выполненный с возможностью отображения информации для пользователя и/или приема команд от пользователя. Экран 112 дисплея может представлять собой сенсорный экран, такой как сенсорный экран жидкокристаллического (ЖК) дисплея или сенсорный светодиодный экран. Пользователь может инициировать выдачу напитка, например, выбрав его или ее желаемый напиток посредством взаимодействия с пользовательским интерфейсом 110 для выдачи через диспенсер 100.
[0029] На ФИГ. 2 представлена блок-схема 200 компонентов диспенсера, такого как диспенсер 100, показанный на ФИГ. 1, согласно вариантам осуществления настоящего описания. Блок-схема 200 может включать в себя раздаточный манифольд 210, такой как один из вертикальных раздаточных манифольдов, описанных в заявке на патент США №15/016,466, поданной 5 февраля 2016 г., которая полностью включена в настоящий документ посредством ссылки.
[0030] Блок-схема 200 может включать в себя один или более источников 230 основной жидкости. Источники 230 основной жидкости могут представлять собой, без ограничений, источник водопроводной воды (например, водопровод) и источник газированной воды (например, резервуар с газированной водой или карбонизатор). Источники 230 основной жидкости могут быть соединены с раздаточным манифольдом 210 посредством трубок 234 подачи основной жидкости. Клапаны/насосы 235, сообщающиеся с трубками 234 подачи основной жидкости, могут быть выполнены с возможностью регулирования расхода основной жидкости, проходящей через трубки 234 подачи основной жидкости и в раздаточный манифольд 210.
[0031] Блок-схема 200 может включать в себя один или более источников 240 ингредиентов. Источники 240 ингредиентов могут включать в себя множество ингредиентов 242 (от 242-1 до 242-n). Ингредиенты 242 могут включать в себя жидкие ингредиенты, такие как, без ограничений, подсластители (например, сахара или искусственные подсластители), сиропы или ароматизаторы (например, концентраты или ароматизаторы колы, концентраты или ароматизаторы для содовой воды известной торговой марки (например, Mountain Dew или Sierra Mist), ароматизатор со вкусом апельсина, ароматизатор со вкусом лайма, ароматизатор со вкусом вишни, ароматизатор со вкусом чая и т.п.) или другие жидкие добавки (например, витамины, кислоты (например, лимонную кислоту), соли или красители). Ингредиенты 242 можно упаковывать в контейнер, такой как, без ограничений, картридж или пакет. Каждый ингредиент 242 можно доставлять в диспенсер 210 по трубкам 244 подачи ингредиентов. Клапаны/насосы 245, сообщающиеся с трубками 244 подачи ингредиентов, могут быть выполнены с возможностью регулирования расхода ингредиентов, проходящих через трубки 244 ингредиентов и в раздаточный манифольд 210.
[0032] Контроллер 220 диспенсера может быть выполнен с возможностью регулирования и приема команд от пользовательского интерфейса, такого как пользовательский интерфейс 110, показанный на ФИГ. 1. Контроллер 220 диспенсера может быть выполнен с возможностью управления функционированием диспенсера, представленного на блок-схеме 200, на основании, например, команд, принятых от пользовательского интерфейса. Например, контроллер 220 диспенсера может управлять выдачей типа или комбинации напитка, оба из которых могут представлять собой смесь основной жидкости и одного или более ингредиентов 242 из раздаточного манифольда 210. Контроллер 220 диспенсера может регулировать расход основной жидкости из источников 230 основной жидкости, управляя клапаном/насосами 235. Контроллер 220 диспенсера может также регулировать расход ингредиентов 242 из источников 240 ингредиентов, управляя клапанами/насосами 245. Управляя клапанами/насосами 245, контроллер 220 диспенсера может регулировать давление ингредиента 242 внутри трубок 244 ингредиентов.
[0033] В некоторых вариантах осуществления контроллер 220 диспенсера может включать в себя датчики 227 и/или может быть выполнен с возможностью их считывания. Датчики 227 могут включать в себя датчики давления для отслеживания давления основной жидкости в трубке 234 подачи основной жидкости и/или для отслеживания давления ингредиента в трубке 244 подачи ингредиентов. Датчики 227 могут также включать в себя датчики расхода (например, расходомеры) для измерения расхода основных жидкостей и ингредиентов в трубках 234 и 244 подачи соответственно и/или для измерения степени равномерности расхода в раздаточном манифольде 210. В некоторых вариантах осуществления датчики 227 могут включать в себя датчики уровня для измерения количества каждого ингредиента 242, оставшегося в источнике 240 ингредиента.
[0034] Датчики 227 могут также включать в себя, без ограничений, датчики, выполненные с возможностью отслеживания (1) уровней диоксида углерода в резервуаре (например, один, два или более регуляторов диоксида углерода); (2) гидростатического давления карбонизации для карбонизатора, выполненного с возможностью карбонизации воды; (3) температуры воздуха в помещении (например, в подсобном помещении), в котором хранят основные жидкости и/или ингредиенты 242 (т.е. отслеживание обеспечения хранения одной или более основных жидкостей и/или одного или более ингредиентов 242 при предварительно заданном уровне температуры и/или в пределах предварительно заданного температурного диапазона); (4) параметров системы фильтрации воды (например, давления воды, дифференциального давления на фильтрах), связанных с основными жидкостями; (5) рН воды или газированной воды, связанной с основными жидкостями; (6) даты истечения срока действия контейнера с ингредиентом (например, посредством считывания штрихового кода, связанного с контейнером с ингредиентами), в котором содержат один из ингредиентов 242. Датчики 227 могут быть выполнены с возможностью передачи сигналов посредством проводной или беспроводной сети на контроллер 220 диспенсера. Контроллер 220 диспенсера может быть выполнен с возможностью управления работой диспенсера, представленного на блок-схеме 200, на основании данных (например, значений давления и расхода), собранных датчиками 227.
[0035] В некоторых вариантах осуществления контроллер 220 диспенсера может дополнительно включать в себя встроенный компьютер 224. В некоторых вариантах осуществления встроенный компьютер 224 может собирать телеметрические данные диспенсера, включающие в себя: (1) количество типов и комбинаций напитков, выданных раздаточным манифольдом 210, (2) количество ингредиентов 242, оставшихся в источниках 240 ингредиентов, (3) коды идентификации пользователя, собранные в пользовательском интерфейсе машины-диспенсера, и (4) другие данные от вышеупомянутых датчиков 227 (например, данные о расходе, температуру окружающей среды в помещении, в котором хранят основные жидкости и/или ингредиенты 242, уровни углекислого газа в резервуарах, гидростатическое давление карбонизации, параметры системы фильтрации воды и т.д.). В некоторых вариантах осуществления встроенный компьютер 224 может хранить телеметрические данные диспенсера и отправлять телеметрические данные диспенсера на контроллер системы администрирования по компьютерной сети, такой как Интернет. Контроллер администрирования может быть выполнен с возможностью обеспечения и/или управления оператором диспенсера, представленного на блок-схеме 200, или каким-либо другим субъектом, связанным с работой диспенсера, представленного на блок-схеме 200.
[0036] В некоторых вариантах осуществления можно периодически отправлять на контроллер администрирования все сохраненные телеметрические данные (например, информацию, относящуюся к количеству типов и комбинаций напитков, выданных через раздаточный манифольд 210) или их часть. В некоторых вариантах осуществления все сохраненные телеметрические данные (например, другие данные от вышеупомянутых датчиков 227) или их часть можно отправлять на контроллер администрирования в зависимости от уровней предупреждений или пороговых уровней, связанных с сохраненными телеметрическими данными. Например, сохраненные телеметрические данные, относящиеся к температуре окружающей среды в помещении, в котором хранят основные жидкости и/или ингредиенты 242, можно отправлять на контроллер администрирования, когда температура окружающей среды в помещении превысит определенный предварительно заданный порог, который находится за пределами или почти за пределами допустимого диапазона температур. В другом примере сохраненные телеметрические данные, относящиеся к уровням углекислого газа в резервуаре, можно отправлять на контроллер администрирования, когда уровни углекислого газа в резервуаре превысят определенный предварительно заданный порог, указывающий на то, что уровни углекислого газа в резервуаре являются низкими или что углекислый газ отсутствует.
[0037] В некоторых вариантах осуществления контроллер администрирования может применять телеметрические данные для обеспечения распределения ингредиентов в диспенсере, представленном на блок-схеме 200, и/или технического обслуживании диспенсера, представленного на блок-схеме 200. В некоторых вариантах осуществления контроллер администрирования может применять телеметрические данные для отслеживания предпочтений пользователей и данных о потреблении (например, типов и количества напитков, выданных манифольдом 210), которые можно анализировать для прогнозирования потребительских тенденций и/или для поддержки будущих бизнес-решений, когда они относятся к диспенсеру, представленному на блок-схеме 200. В других вариантах осуществления контроллер администрирования может применять телеметрические данные для улучшения выполнения задачи технического обслуживания машины-диспенсера, повышения удовлетворенности потребителей и/или прогнозирования отказа деталей в машине-диспенсере, и/или планирования профилактического технического обслуживания машины-диспенсера.
3. Защищенные шлюзы
[0039] На ФИГ. 3 представлена система 300 для передачи телеметрических данных по компьютерной сети с применением предоставленной веб-службы согласно варианту осуществления настоящего описания. Система 300 содержит контроллер 302 администрирования и контроллер 220 диспенсера, который был описан выше в отношении ФИГ. 2. Контроллер 220 диспенсера обеспечен в качестве примера, а не ограничения. В системе 300 можно применять другие контроллеры диспенсера (например, контроллеры диспенсера, реализованные в различных машинах-диспенсерах) без отступления от объема и сущности настоящего описания, что будет очевидно для специалиста в данной области техники.
[0040] В процессе эксплуатации поставщик 304 веб-службы (поставщик ВС) контроллера 302 администрирования предоставляет веб-службу, которая позволяет клиенту 306 веб-службы (клиенту ВС) контроллера 220 диспенсера обеспечивать контроллер 302 администрирования телеметрическими данными по компьютерной сети 308, такой как Интернет. Телеметрические данные могут включать в себя данные, собранные с датчиков 227, как описано выше в отношении ФИГ. 2, и другие данные, собранные с других датчиков и/или периферийных устройств машины-диспенсера, в которой применяют контроллер 220 диспенсера.
[0041] Клиент 306 ВС может упаковывать телеметрические данные в сообщение-запрос 310 веб-службы, которое форматируют в соответствии с простым протоколом доступа к объектам (SOAP), стилем архитектуры программного обеспечения для распределенных систем информации (REST) или другим форматом упаковки. Сообщение-запрос 310 веб-службы может включать в себя конверт 312, содержащий необязательный заголовок 314 и тело 316. Заголовок 314 в случае применения может включать в себя один или более блоков информации, которые определяют, как должно быть обработано сообщение одним или более принимающими объектами. Тело 316 может включать в себя телеметрические данные в качестве одного или более аргументов и запрос на выполнение операции (или выполнение подпрограммы) поставщиком 304 ВС с одним или более аргументов. Телеметрические данные и запрос на выполнение операции можно записывать в теле 316 в синтаксисе XML или JSON. Запрос на выполнение операции также можно записывать за пределами тела 316 в одной из некоторого количества форм, в том числе в виде унифицированного идентификатора ресурса (URI).
[0042] После упаковки клиентом 306 ВС телеметрических данных и запроса на выполнение операции в сообщении-запросе 310 веб-службы клиент 306 ВС может передавать сообщение-запрос 310 веб-службы посредством компьютерной сети 308. В одном варианте осуществления клиент 306 ВС передает сообщение-запрос 310 веб-службы по компьютерной сети 308 с применением протокола HTTP или защищенного HTTP (HTTPS).
[0043] Поставщик 304 ВС принимает сообщение-запрос 310 веб-службы от клиента 306 ВС по компьютерной сети 308 и распаковывает сообщение-запрос 310 веб-службы для извлечения одного или более аргументов, которые содержат телеметрические данные и запрос на выполнение операции с одним или более аргументов. Затем поставщик 304 ВС выполняет операцию с одним или более аргументами, которые содержат телеметрические данные, и необязательно упаковывает результат операции в сообщение-ответ 318 веб-службы. Операция может включать в себя, например, разбор телеметрических данных и заполнение базы данных различными значениями телеметрических данных. Данные из базы данных можно применять для обеспечения распределения ингредиентов на машине-диспенсере и/или при техническом обслуживании машины-диспенсера. В некоторых вариантах осуществления можно применять данные из базы данных для отслеживания предпочтений пользователей и данных о потреблении (например, типов и количеств напитков, выданных машиной-диспенсером), которые можно анализировать для прогнозирования потребительских тенденций и/или для обоснования будущих бизнес-решений, относящихся к машине-диспенсеру. В других вариантах осуществления можно применять данные из базы данных для улучшения выполнения задачи технического обслуживания машины-диспенсера, повышения удовлетворенности потребителей, и/или прогнозирования отказа деталей в машине-диспенсере, и/или планирования профилактического технического обслуживания машины-диспенсера.
[0044] Аналогично сообщению-запросу 310 веб-службы поставщик 304 ВС может форматировать сообщение-ответ 318 веб-службы в соответствии с SOAP, REST или каким-либо другим форматом упаковки. Сообщение-ответ 318 веб-службы может включать в себя конверт 320, содержащий необязательный заголовок 322 и тело 324. Заголовок 322 в случае применения может включать в себя один или более блоков информации, которые определяют, как должно быть обработано сообщение одним или более принимающими объектами. Тело 324 может включать в себя результат операции. Результат операции можно записывать в теле 324 в синтаксисе XML или JSON.
[0045] После упаковки поставщиком 304 ВС результата операции в сообщении-ответе 3188 веб-службы поставщик 304 ВС может передавать сообщение-ответ 318 веб-службы по компьютерной сети 308. В одном варианте осуществления поставщик 304 ВС передает сообщение-ответ 318 веб-службы по компьютерной сети 308 с применением протокола HTTP или HTTPS.
[0046] Следует отметить, что множество диспенсеров и контроллеров диспенсеров, отличных от контроллера 220 диспенсера, могут передавать сообщения-запросы веб-службы на контроллер 302 администрирования. Эти сообщения-запросы веб-службы можно обрабатывать аналогично сообщению-запросу 310 веб-службы, как описано выше, но можно включать в них другие данные (например, отличные от телеметрических данных) и/или запросы на выполнение различных операций или подпрограмм.
[0047] Одна из проблем, связанных с веб-службой, предоставленной поставщиком 304 ВС и веб-службами в целом, заключается в том, что уровневая архитектура веб-служб, в частности, не затрагивает проблемы безопасности, такие как целостность сообщений, аутентификация, авторизация и конфиденциальность. Следовательно, предоставление веб-службы, которая обеспечивает доступ для контроллера 220 диспенсера и других контроллеров диспенсера к контроллеру 302 администрирования по компьютерной сети 308, может предполагать неприемлемое предоставление доступа для других неавторизованных пользователей и устройств компьютерной сети 308 к контроллеру 302 администрирования, а также сообщениям запроса и ответа веб-службы 310 и 318.
[0048] Для защиты предоставленной веб-службы можно обеспечивать защищенные шлюзы в контроллере 220 диспенсера и контроллере 302 администрирования, которые выполнены с возможностью обеспечения одного или более из целостности сообщения, аутентификации, авторизации и конфиденциальности. Защищенные шлюзы можно реализовывать отдельно от приложений, создающих сообщения запроса и ответа в контроллере 220 диспенсера и контроллере 302 администрирования соответственно; т.е. отдельно от клиента 306 ВС и поставщика 304 ВС. Поскольку защищенные шлюзы реализуют отдельно от клиента 306 ВС и поставщика 304 ВС, эти приложения могут быть выполнены с возможностью создания и изменения без учета защищенности сообщений, которые можно обрабатывать без изменения кодов защищенными шлюзами.
[0049] На ФИГ. 4 представлена такая система 400 согласно варианту осуществления настоящего описания. В частности, система 400 имеет такую же базовую конфигурацию и работает так же, как вышеописанная система 300, показанная на ФИГ. 3. Однако как контроллер 220 диспенсера, так и контроллер 302 администрирования в системе 400, показанной на ФИГ. 4, дополнительно включают в себя защищенный шлюз. В частности, контроллер 220 диспенсера дополнительно включает в себя шлюз 402 веб-службы диспенсера (шлюз ВС диспенсера), а контроллер 302 администрирования дополнительно включает в себя шлюз 404 веб-службы администрирования (шлюз ВС администрирования).
[0050] В процессе эксплуатации шлюз 402 ВС диспенсера выполнен с возможностью перехвата сообщения-запроса 310 веб-службы, генерируемого клиентом 306 ВС диспенсера перед передачей сообщения-запроса 310 веб-службы по компьютерной сети 308 на контроллер 302 администрирования. В одном варианте осуществления шлюз 402 ВС реализуют как НТТР-прокси-сервер, выполненный с возможностью перехвата сообщения с HTTP-запросом, содержащего сообщение-запрос 310 веб-службы в теле сообщения с HTTP-запросом.
[0051] После перехвата шлюзом 402 ВС диспенсера сообщения-запроса 310 веб-службы, шлюз 402 ВС диспенсера может шифровать все телеметрические данные (или другие данные) или по меньшей мере их часть в теле 316 сообщения-запроса 310 веб-службы для генерации цифровой подписи. Шлюз 402 ВС диспенсера может вставлять цифровую подпись в заголовок 314 сообщения-запроса 316 веб-службы. Контроллер 302 администрирования может применять цифровую подпись для аутентификации телеметрических данных (или по меньшей мере части телеметрических данных и/или других данных, которые были подписаны); т.е. подтверждения поступления телеметрических данных от контроллера 220 диспенсера.
[0052] В одном варианте осуществления шлюз 402 ВС диспенсера может шифровать все телеметрические данные (или другие данные) или по меньшей мере их часть в теле 316 сообщения-запроса 316 веб-службы, применяя закрытый ключ, относящийся к контроллеру 220 диспенсера. Закрытый ключ, относящийся к контроллеру 220 диспенсера, является частью пары асимметричных ключей, которая включает в себя закрытый ключ и открытый ключ. Открытый ключ может быть выполнен с возможностью общего использования или неразглашения контроллером 302 администрирования, тогда как закрытый ключ выполнен с возможностью нераспространения и неразглашения контроллером 220 диспенсера. Контроллер 302 администрирования может применять открытый ключ, относящийся к контроллеру 220 диспенсера, для проверки (например, путем дешифрования) цифровой подписи. Если проверка прошла успешно, контроллер 302 администрирования может быть уверен в том, что для шифрования примененных для генерации цифровой подписи телеметрических данных был применен закрытый ключ, относящийся к контроллеру 220 диспенсера, поскольку данные, зашифрованные с помощью закрытого ключа, можно дешифровать только с помощью открытого ключа.
[0053] В другом варианте осуществления вместо шифрования непосредственно телеметрических данных шлюз 402 ВС диспенсера может шифровать сообщение, преобразованное в краткую информацию, которую получают в результате применения односторонней хэш-функции телеметрических данных с применением закрытого ключа, относящегося к контроллеру 220 диспенсера. Одностороннюю хэш-функцию можно применять для обеспечения целостности телеметрических данных и/или сокращения времени обработки, требуемого для генерации цифровой подписи.
[0054] После перехвата шлюзом 402 ВС диспенсера сообщения-запроса 306 веб-службы шлюз 402 ВС диспенсера может шифровать все телеметрические данные (или другие данные) или по меньшей мере их часть в теле 316 сообщения-запроса 310 веб-службы для обеспечения конфиденциальности телеметрических данных при их прохождении по компьютерной сети 308. После шифрования телеметрических данных шлюз 402 ВС диспенсера может повторно вставлять зашифрованные телеметрические данные в тело 316 сообщения-запроса 316 веб-службы.
[0055] В одном варианте осуществления шлюз 402 ВС диспенсера может шифровать все телеметрические данные (или другие данные) или по меньшей мере их часть в теле 316 сообщения-запроса 316 веб-службы, применяя открытый ключ, относящийся к контроллеру 302 администрирования. Как и открытый ключ, относящийся к контроллеру 220 диспенсера, открытый ключ, относящийся к контроллеру 302 администрирования, является частью пары асимметричных ключей, которая включает в себя открытый ключ и закрытый ключ. Открытый ключ выполнен с возможностью общего использования и свободного распространения, тогда как закрытый ключ выполнен с возможностью нераспространения и неразглашения контроллером 302 администрирования.
[0056] В другом варианте осуществления шлюз 402 ВС диспенсера может шифровать все телеметрические данные (или другие данные) или по меньшей мере их часть в теле 316 сообщения-запроса 316 веб-службы с помощью симметричного ключа. Шлюз 402 ВС диспенсера может шифровать симметричный ключ с помощью открытого ключа, относящегося к контроллеру 302 администрирования, и вставлять симметричный ключ в заголовок 314 или тело 316 сообщения-запроса 310 веб-службы.
[0057] После вставки цифровой подписи и/или зашифрованных телеметрических данных в тело 316 шлюзом 402 ВС диспенсера, шлюз 402 ВС диспенсера может передавать сообщение-запрос 310 веб-службы по компьютерной сети 308 с применением, например, HTTP или HTTPS. Шлюз 404 ВС администрирования выполнен с возможностью приема сообщения-запроса 310 веб-службы по компьютерной сети 308 и выполнения одного или более из дешифрования телеметрических данных, аутентификации телеметрических данных и определения, авторизован ли контроллер 220 диспенсера для выполнения запрошенной операции (или запрошенной подпрограммы) в сообщении-запросе 310 веб-службы.
[0058] Если телеметрические данные (или другие данные) в теле 316 сообщения-запроса 310 веб-службы были зашифрованы открытым ключом, относящимся к контроллеру 302 администрирования, шлюз 404 ВС администрирования может дешифровать зашифрованные телеметрические данные с помощью закрытого ключа, относящегося к контроллеру 302 администрирования. Если телеметрические данные (или другие данные) в теле 316 сообщения-запроса 310 веб-службы были зашифрованы симметричным ключом, как описано выше, шлюз 404 ВС администрирования может получать зашифрованную копию симметричного ключа из заголовка 314 или тела 316 сообщения-запроса 310 веб-службы, дешифровать симметричный ключ с помощью закрытого ключа, относящегося к контроллеру 302 администрирования, а затем применять дешифрованный симметричный ключ для дешифрования зашифрованных телеметрических данных. После дешифрования шлюз 404 ВС администрирования может заменять зашифрованные телеметрические данные в сообщении-запросе 310 веб-службы дешифрованными телеметрическими данными.
[0059] При необходимости проведения аутентификация шлюз 404 ВС администрирования может извлекать цифровую подпись из заголовка 314 сообщения-запроса 310 веб-службы и дешифровать цифровую подпись с помощью открытого ключа, относящегося к контроллеру 220 диспенсера. Затем телеметрические данные (или другие данные), которые были подписаны для создания цифровой подписи, можно сравнивать с телеметрическими данными в теле 316 сообщения-запроса 310 веб-службы для аутентификации поступления телеметрических данных от контроллера 220 диспенсера. В случае если шлюз 402 ВС диспенсера создал цифровую подпись из односторонней хэш-функции телеметрических данных (или других данных) в теле 316 сообщения-запроса 310 веб-службы, шлюз 404 ВС администрирования может выполнять ту же одностороннюю хэш-функцию телеметрических данных в теле 316 перед сравнением телеметрических данных в теле 316c дешифрованной цифровой подписью.
[0060] При необходимости выполнения авторизации шлюз 404 ВС администрирования может определять, авторизован ли контроллер 220 диспенсера для применения подпрограммы веб-службы, запрошенной в сообщении-запросе 310 веб-службы. В одном варианте осуществления шлюз 404 ВС администрирования может проверять список контроллеров диспенсера и/или диспенсеров, которые авторизованы для выполнения операции, запрошенной в сообщении-запросе 310 веб-службы. При включении контроллера 220 диспенсера или диспенсера, в котором реализован контроллер 220 диспенсера, в список, шлюз 404 ВС администрирования может передавать сообщение-запрос 310 веб-службы поставщику 304 ВС администрирования для обработки. С другой стороны, при отсутствии контроллера 220 диспенсера или диспенсера, в котором реализован контроллер 220 диспенсера, в списке, шлюз 404 ВС администрирования может отбрасывать сообщение-запрос 310 веб-службы, не допуская обработки сообщения-запроса 310 веб-службы поставщиком 304 ВС администрирования.
[0061] В другом варианте осуществления при необходимости выполнения авторизации шлюз 404 ВС администрирования может определять, опубликована ли веб-служба, на основании списка опубликованных веб-служб, выполненного с возможностью публикации. Если это не так, можно отклонять и сбрасывать вызов неопубликованной машиной-диспенсером веб-службы. Этот механизм защищает от применения любой неопубликованной веб-службы и может быть применен для выведения веб-службы из эксплуатации в любое время по любой причине.
[0062] После приема сообщения-запроса 310 веб-службы от шлюза 404 ВС администрирования (с любыми зашифрованными в теле 316 телеметрическими данными, замененными на дешифрованные телеметрические данные) контроллер 302 администрирования может обрабатывать сообщение-запрос 310 веб-службы, как это описано выше в отношении ФИГ. 3. Следует отметить, что шлюз 404 ВС администрирования и шлюз 402 ВС диспенсера могут выполнять функциональную возможность другого шлюза, как описано выше, для защиты сообщения-ответа 318 веб-службы аналогично сообщению-запросу 310 веб-службы.
[0063] В одном варианте осуществления не все сообщения-запросы веб-службы, отправленные контроллером 220 диспенсера, нужно подписывать и/или шифровать шлюзом 402 ВС диспенсера. Такие сообщения, которые не подписаны и/или не зашифрованы шлюзом 402 ВС диспенсера, можно считать отправленными «за пределами полосы», тогда как сообщения, которые подписаны и/или зашифрованы, можно считать отправленными «в пределах полосы».
[0064] Например, сообщения «такта состояния» могут быть сгенерированы клиентом 306 ВС диспенсера или шлюзом 402 ВС диспенсера и отправлены на контроллер 302 администрирования по компьютерной сети 308 за пределами полосы шлюзом 402 ВС диспенсера. Эти сообщения такта состояния можно передавать периодически или циклически, чтобы сигнализировать контроллеру 302 администрирования о существовании и доступности контроллера 220 диспенсера (или диспенсера, в котором реализован контроллер 220 диспенсера).
[0065] На ФИГ. 5 показана блок-схема 500 способа сбора телеметрических данных и защищенной передачи сообщения-запроса веб-службы, содержащего телеметрические данные от машины-диспенсера, на контроллер администрирования по компьютерной сети согласно варианту осуществления настоящего описания. Способ согласно блок-схеме 500 может быть реализован клиентом 306 ВС диспенсера и шлюзом 402 ВС диспенсера, как описано выше и показано на ФИГ. 4. Однако следует отметить, что способ может быть реализован другими клиентами ВС диспенсера и шлюзами ВС диспенсера. Этапы блок-схемы 500, выполненные каждым из этих приложений, помечены на ФИГ. 5. Следует дополнительно отметить, что некоторые из этапов блок-схемы 500 не обязательно должны быть выполнены в порядке, показанном на ФИГ. 5.
[0066] Способ согласно блок-схеме 500 начинается на этапе 502. На этапе 502 в машине-диспенсере собирают телеметрические данные. Телеметрические данные могут включать в себя, например, собранные на машине-диспенсере данные, относящиеся к потреблению (например, количество каждого элемента, потребленного на машине-диспенсере) и состоянию (например, текущее количество ингредиентов, расходных материалов и/или продуктов в машине-диспенсере). Телеметрические данные также могут включать в себя конкретные типы данных, упомянутые выше в отношении ФИГ. 2.
[0067] После сбора телеметрических данных на этапе 502 способ согласно блок-схеме 500 переходит к этапу 504. На этапе 504 сообщение-запрос веб-службы отправляют на контроллер администрирования, такой как контроллер 302 администрирования, показанный на ФИГ. 4, с телеметрическими данными и запросом на выполнение операции (или выполнение подпрограммы) с применением телеметрических данных в качестве аргумента. Сообщение-запрос веб-службы можно упаковывать в соответствии с SOAP, REST или каким-либо другим форматом упаковки. Сообщение-запрос веб-службы может включать в себя конверт, содержащий необязательный заголовок и тело. В случае применения заголовок может включать в себя один или более блоков информации, которые определяют, как должно быть обработано сообщение одним или более принимающими объектами. Телеметрические данные и запрос на выполнение операции можно записывать в теле в синтаксисе XML или JSON. Запрос на выполнение операции можно также записывать за пределами тела.
[0068] После выполнения этапа 504 способ согласно блок-схеме 500 переходит к этапу 506. На этапе 506 перехватывают сообщение-запрос веб-службы перед отправкой на контроллер администрирования по компьютерной сети, такой как Интернет. Для перехвата сообщения-запроса веб-службы можно применять прокси-сервер HTTP.
[0069] После выполнения этапа 506 способ согласно блок-схеме 500 переходит к этапу 508. На этапе 508 телеметрические данные в перехваченном сообщении-запросе веб-службы необязательно подписывают путем шифрования телеметрических данных или шифрования односторонней хэш-функции телеметрических данных. Можно подписывать телеметрические данные или одностороннюю хэш-функцию телеметрических данных с помощью закрытого ключа, относящегося к машине-диспенсеру. Можно вставлять полученную цифровую подпись в заголовок сообщения-запроса веб-службы.
[0070] После выполнения этапа 508 способ согласно блок-схеме 500 переходит к этапу 510. На этапе 510 можно необязательно шифровать телеметрические данные в теле сообщения-запроса веб-службы. Можно шифровать телеметрические данные с помощью открытого ключа, относящегося к контроллеру администрирования, или симметричного ключа. Если для шифрования телеметрических данных применяют симметричный ключ, можно шифровать симметричный ключ с помощью открытого ключа, относящегося к контроллеру администрирования, и вставлять в заголовок или тело сообщения-запроса веб-службы, чтобы контроллер администрирования мог расшифровать зашифрованные телеметрические данные.
[0071] После выполнения этапа 510 способ согласно блок-схеме 500 переходит к этапу 512. На этапе 512 перехватывают сообщение-запрос веб-службы, переданное на контроллер администрирования по компьютерной сети. Можно передавать сообщение-запрос веб-службы по компьютерной сети с применением HTTP или HTTPS.
[0072] На ФИГ. 6 показана блок-схема 600 способа генерации и передачи сообщения такта состояния от контроллера диспенсера на контроллер администрирования по компьютерной сети согласно варианту осуществления настоящего описания. Способ согласно блок-схеме 600 может быть реализован клиентом 306 ВС диспенсера или шлюзом 402 ВС диспенсера, как описано выше и показано на ФИГ. 4. Однако следует отметить, что способ может быть также реализован другими клиентами ВС диспенсера или шлюзами ВС диспенсера.
[0073] Способ согласно блок-схеме 600 начинается на этапе 602. На этапе 602 происходит генерация сообщения такта состояния. Сообщение такта состояния может включать в себя идентификаторы, такие как идентификаторы аппаратного обеспечения, контроллера диспенсера и/или машины-диспенсера, в которой реализован контроллер диспенсера.
[0074] После выполнения этапа 602 способ согласно блок-схеме 600 переходит к этапу 604. На этапе 604 сообщение такта состояния отправляют «за пределами полосы» по компьютерной сети, такой как Интернет, на контроллер администрирования. Сообщения, которые отправляют «за пределами полосы», не подписывают и/или не шифруют на уровне приложения перед отправкой. Сообщения такта состояния можно генерировать и передавать периодически или циклически, чтобы сигнализировать контроллеру администрирования о существовании и доступности контроллера диспенсера (или машины-диспенсера, в которой реализован контроллер диспенсера).
[0075] На ФИГ. 7 представлена блок-схема 700 способа защищенных приема и обработки сообщения-запроса веб-службы, содержащего телеметрические данные от контроллера диспенсера, на контроллере администрирования согласно варианту осуществления настоящего описания. Способ согласно блок-схеме 700 можно реализовывать с помощью шлюза 404 ВС администрирования и поставщика 304 ВС администрирования, как описано выше и показано на ФИГ. 4. Однако следует отметить, что этот способ также может быть реализован другими шлюзами ВС администрирования и поставщиками ВС администрирования. Этапы блок-схемы 700, выполненные каждым из этих приложений, помечены на ФИГ. 7. Следует дополнительно отметить, что некоторые из этапов блок-схемы 700 не обязательно должны быть выполнены в порядке, показанном на ФИГ. 7.
[0076] Способ согласно блок-схеме 700 начинается на этапе 702. На этапе 702 принимают сообщение-запрос веб-службы от машины-диспенсера по компьютерной сети, такой как Интернет.
[0077] После выполнения этапа 702 способ согласно блок-схеме 700 переходит к этапу 704. На этапе 704, указанное сообщение проверяют для определения, является ли это сообщение сообщением такта состояния. Если сообщение является сообщением такта состояния, способ согласно блок-схеме 700 переходит к этапу 714, и происходит обработка сообщения такта состояния. Если сообщение не является сообщением такта состояния, способ согласно блок-схеме 700 переходит к этапу 706.
[0078] На этапе 706 дешифруют телеметрические данные, зашифрованные в теле сообщения-запроса веб-службы. Телеметрические данные можно дешифровать с помощью закрытого ключа, относящегося к контроллеру администрирования, или с помощью симметричного ключа, включенного в заголовок или тело сообщения-запроса веб-службы.
[0079] После выполнения этапа 706 способ согласно блок-схеме 700 переходит к этапу 708. На этапе 708 проверяют аутентичность телеметрических данных. В частности, цифровую подпись в заголовке сообщения-запроса веб-службы извлекают и дешифруют с помощью открытого ключа, относящегося к контроллеру диспенсера. Затем можно сопоставлять телеметрические данные, которые были подписаны для создания цифровой подписи, с телеметрическими данными в теле сообщения-запроса веб-службы для аутентификации поступления телеметрических данных от контроллера диспенсера. В случае если цифровая подпись была создана из односторонней хэш-функции телеметрических данных в теле сообщения-запроса веб-службы, можно выполнять ту же одностороннюю хэш-функцию телеметрических данных в теле перед сравнением телеметрических данных в теле с дешифрованной цифровой подписью. Если на основании сравнения телеметрические данные определены как не аутентичные (т.е. определено несоответствие), способ согласно блок-схеме 700 переходит к этапу 710, на котором отклоняют сообщение-запрос веб-службы. С другой стороны, если на основании сравнения телеметрические данные определены как аутентичные (т.е. определено соответствие), способ согласно блок-схеме 700 переходит к этапу 712.
[0080] На этапе 712 определяют, авторизован ли контроллер диспенсера для применения веб-службы для выполнения операции (или подпрограммы) в сообщении-запросе веб-службы. В одном варианте осуществления проверяют список контроллеров диспенсера и/или диспенсеров, авторизованных для применения подпрограммы веб-службы, запрошенной в сообщении-запросе веб-службы. Если контроллер диспенсера или диспенсер, в котором реализован контроллер диспенсера, отсутствует в списке, способ согласно блок-схеме 700 переходит к этапу 710, на котором отклоняют сообщение-запрос веб-службы. С другой стороны, если контроллер диспенсера или диспенсер, в котором реализован контроллер диспенсера, присутствует в списке, способ согласно блок-схеме 700 переходит к этапу 714, на котором обрабатывают сообщение-запрос веб-службы (например, как описано выше в отношении ФИГ. 3).
4. Параллельная и масштабируемая обработка телеметрических данных
[0081] Учитывая, что к системе администрирования можно подключать несколько тысяч, или даже несколько сотен тысяч, или более машин-диспенсеров и/или машин других типов, как описано выше, и что все эти машины могут одновременно передавать телеметрические данные в систему администрирования, дополнительно существует необходимость выполнении системы администрирования с возможностью приема и быстрой обработки большого количества сообщений веб-службы. Кроме того, дополнительно существует необходимость в обеспечении такой пропускной способности системы администрирования, которую можно оперативно масштабировать при подключении или отключении машин от системы администрирования.
[0082] На ФИГ. 8 показан контроллер 800 администрирования для параллельной и масштабируемой обработки сообщений, содержащих телеметрические данные, согласно варианту осуществления настоящего описания. Контроллер 800 администрирования имеет такую же базовую конфигурацию и работает так же, как и вышеописанный контроллер 302 администрирования, показанный на ФИГ. 4. Однако контроллер 800 администрирования дополнительно включает в себя устройство 802 обслуживания очереди сообщений. Следует отметить, что шлюз 404 ВС администрирования является необязательным компонентом в контроллере 800 администрирования.
[0083] В процессе эксплуатации сообщения веб-службы, содержащие телеметрические данные от машин-диспенсеров, сначала принимают и обрабатывают шлюзом 404 ВС администрирования, как описано выше. После обработки шлюзом 404 ВС администрирования сообщения веб-службы передают на устройство 802 обслуживания очереди сообщений.
[0084] Устройство 802 обслуживания очереди сообщений включает в себя устройство 804 сопоставления и множество очередей 806. Устройство 804 сопоставления выполнено с возможностью сопоставления или помещения каждого сообщения веб-службы в соответствующую одну из очередей 806. Очереди 806 представляют собой структуры данных, применяемые для хранения сообщений веб-службы в запоминающем устройстве.
[0085] Для обработки сообщений веб-службы, хранящихся в очередях 806, поставщик 304 ВС администрирования включает в себя множество подпроцессов или процессов («подпроцесс») 808. Каждой очереди 806 может быть назначен один другой из подпроцессов 808. Каждый подпроцесс 808 может извлекать сообщения веб-службы из назначенной ему очереди 806 в том порядке, в котором сообщения веб-службы хранятся в назначенной очереди 806, и обрабатывать телеметрические данные из сообщений веб-службы.
[0086] Обработка телеметрических данных с помощью подпроцессов 808 может включать в себя, например, разбор телеметрических данных и заполнение базы данных различными значениями телеметрических данных. Впоследствии можно применять данные из базы данных для обеспечения распределения материалов (например, ингредиентов) на машине-диспенсере и/или при техническом обслуживании машины-диспенсера. В некоторых вариантах осуществления можно применять данные из базы данных для отслеживания предпочтений пользователей и данных о потреблении (например, типов и количеств напитков, выданных машиной-диспенсером), которые можно анализировать для прогнозирования потребительских тенденций и/или для обоснования будущих бизнес-решений, относящихся к машине-диспенсеру. В других вариантах осуществления можно применять данные из базы данных для улучшения выполнения задачи технического обслуживания машины-диспенсера, повышения удовлетворенности потребителей, и/или прогнозирования отказа деталей в машине-диспенсере, и/или планирования профилактического технического обслуживания машины-диспенсера.
[0087] Подпроцессы 808 можно выполнять в ядрах 810 центрального процессора (ЦП) или виртуальных ядрах в контроллере 810 администрирования. Ядра 810 можно реализовывать в или на одном или более серверах. В зависимости от количества ядер 810 по меньшей мере некоторые из подпроцессов 808 можно выполнять параллельно для повышения пропускной способности, с которой обрабатывают сообщения веб-службы. Для дополнительного повышения пропускной способности обработки сообщений можно увеличивать количество ядер 810 и/или можно увеличивать количество очередей 806 (и, соответственно, количество подпроцессов 808, назначенных очередям 806). Такое увеличение можно обеспечивать в ответ на увеличение количества машин-диспенсеров, передающих сообщения веб-службы на контроллер 800 администрирования.
[0088] Устройство 804 сопоставления может быть дополнительно выполнено с возможностью обеспечения обработки сообщений веб-службы в том порядке, в котором они сгенерированы на соответствующих им машинах-диспенсерах. Это может быть целесообразно, например, для обеспечения непринятия решений, касающихся технического обслуживания и функционирования машин-диспенсеров, на основании устаревших телеметрических данных или телеметрических данных, упорядоченных в нехронологическом порядке.
[0089] Для обеспечения такой функциональной возможности упорядоченной обработки сообщений устройство 804 сопоставления может помещать сообщение веб-службы, содержащее телеметрические данные, в одну из очередей 806 в зависимости от машины-диспенсера, от которой было принято сообщение. Например, устройство 804 сопоставления может применять идентификатор машины-диспенсера, включенный в сообщение веб-службы, для сопоставления сообщения веб-службы с конкретной одной из очередей 806 таким образом, чтобы сообщения от машины-диспенсера попадали в одну и ту же очередь и, таким образом, были обработаны с помощью одного и того же подпроцесса 808.
[0090] Количество очередей 806 и количество подпроцессов 808, как правило, намного меньше количества машин-диспенсеров, отправляющих сообщения веб-службы на контроллер 800 администрирования. В этой ситуации устройство 804 сопоставления может применять хэш-функцию для сопоставления сообщения веб-службы с конкретной одной из очередей 806. В частности, устройство 804 сопоставления может применять хэш-функцию для хэширования идентификатора машины-диспенсера, включенного в сообщение веб-службы, и применять полученное хэш-значение для назначения сообщения веб-службы для конкретной одной из очередей 806.
[0091] Когда устройство 804 сопоставления определило конкретную одну из очередей 806, в которую будет помещено сообщение веб-службы, устройство 804 сопоставления может вставлять сообщение веб-службы в конкретную позицию очереди на основании момента генерации сообщения на машине-диспенсере. Например, устройство 804 сопоставления может применять порядковый номер сообщения веб-службы или временную отметку, включенные в сообщение веб-службы, для вставки сообщения в конкретную позицию в очереди таким образом, чтобы сохранять сообщения веб-службы в очереди в том порядке, в котором сообщения были сгенерированы.
[0092] На ФИГ. 9 представлена блок-схема 900 способа приема и обработки сообщений веб-службы от машин-диспенсеров согласно варианту осуществления настоящего описания. Способ согласно блок-схеме 900 можно реализовывать с помощью контроллера 800 администрирования, как описано выше и показано на ФИГ. 8. Однако следует отметить, что этот способ можно также реализовывать с помощью других контроллеров администрирования. Следует дополнительно отметить, что некоторые из этапов блок-схемы 900 являются необязательными и не должны происходить в порядке, показанном на ФИГ. 9.
[0093] Способ согласно блок-схеме 900 начинается на этапе 902. На этапе 902 принимают сообщение веб-службы от машины-диспенсера по компьютерной сети, такой как Интернет.
[0094] После выполнения этапа 902 способ согласно блок-схеме 900 переходит к этапу 904. На этапе 904 выполняют хэш-функцию идентификатора машины-диспенсера из сообщения веб-службы.
[0095] После выполнения этапа 904 способ согласно блок-схеме 900 переходит к этапу 906. На этапе 906 одну из множества очередей идентифицируют на основании полученного хэш-значения хэш-функции идентификатора машины-диспенсера. Поскольку для одного и того же идентификатора машины-диспенсера каждый раз создают одно и то же хэш-значение, сообщения веб-службы, принятые от машины-диспенсера, будут помещены в одну и ту же очередь.
[0096] После выполнения этапа 906 способ согласно блок-схеме 900 переходит к этапу 908. На этапе 908 сообщение веб-службы помещают в идентифицированную очередь в позицию, определенную на основании момента генерации сообщения веб-службы на машине-диспенсере. Например, для вставки сообщения в конкретную позицию в очереди можно применять порядковый номер сообщения или временную отметку таким образом, чтобы сохранять сообщения веб-службы в очереди в том порядке, в котором сообщения были сгенерированы на машине-диспенсере.
[0097] После выполнения этапа 908 способ согласно блок-схеме 900 переходит к этапу 910. На этапе 910 сообщение веб-службы обрабатывают с применением одного из множества подпроцессов, назначенных для очереди, в которой хранят сообщение веб-службы.
5. Пример реализации компьютерной системы
[0098] Для специалистов в данной(-ых) области(-ях) техники будет очевидно, что различные элементы и признаки настоящего описания, как описано в настоящем документе, можно реализовывать в аппаратном обеспечении с применением аналоговых и/или цифровых схем, в программном обеспечении, путем выполнения инструкций одним или более процессорами общего назначения или специализированными процессорами, или в виде комбинации аппаратного обеспечения и программного обеспечения.
[0099] Для полноты настоящего описания ниже приведено описание компьютерной системы. Варианты осуществления настоящего описания можно реализовывать в аппаратном обеспечении или в виде комбинации программного обеспечения и аппаратного обеспечения. Таким образом, варианты осуществления описания можно реализовывать в среде компьютерной системы или другой системы обработки. Пример такой компьютерной системы 1000 показан на ФИГ. 10. Блоки, изображенные на ФИГ. 3, 4 и 8, можно реализовывать в одной или более компьютерных систем 1000. Кроме того, каждый из этапов способов, изображенных на ФИГ. 5-7 и 9, можно реализовывать в одной или более компьютерных системах 1000.
[0100] Компьютерная система 1000 включает в себя один или более процессоров, таких как процессор 1004. Процессор 1004 может представлять собой процессор специального назначения или общего назначения. Процессор 1004 подключают к инфраструктуре 1002 связи (например, шине или сети). Различные программные реализации описаны в отношении этого примера компьютерной системы. После ознакомления с данным описанием для специалиста в данной(-ых) области(-ях) техники будет очевидно, как можно реализовывать описание с применением других компьютерных систем и/или компьютерных архитектур.
[0101] Компьютерная система 1000 также включает в себя основное запоминающее устройство 1006 (для хранения, например, компьютерных программ или других инструкций, которые реализуют по меньшей мере частично блоки, изображенные на ФИГ. 3, 4 и 8, и/или этапы по ФИГ. 5-7 и 9), предпочтительно оперативное запоминающее устройство (ОЗУ), а также может включать в себя вспомогательное запоминающее устройство 1008. Вспомогательное запоминающее устройство 1008 может включать в себя, например, накопитель 1010 на жестких дисках и/или сменное устройство 1012 хранения, представляющее собой накопитель на гибких магнитных дисках, накопитель на магнитной ленте, накопитель на оптических дисках или т.п.Сменное устройство 1012 хранения считывает данные со сменного носителя 816 и/или записывает их на него одним из хорошо известных способов. Сменный носитель 1016 представляет собой гибкий диск, магнитную ленту, оптический диск или т.п., которые можно считывать и на которые можно осуществлять запись с помощью сменного устройства 1012 хранения. Как будет понятно специалистам в данной(-ых) области(-ях), сменный носитель 1016 включает в себя накопитель компьютера, выполненный с возможностью использования, с хранящимся в нем компьютерным программным обеспечением и/или данными.
[0102] В альтернативных реализациях вспомогательное запоминающее устройство 1008 может включать в себя другие аналогичные средства для обеспечения загрузки компьютерных программ или других инструкций (например, компьютерных программ или других инструкций, которые реализуют по меньшей мере частично блоки, изображенные на ФИГ. 3, 4 и 8, и/или этапы по ФИГ. 5-7 и 9) в компьютерную систему 1000. Такие средства могут включать в себя, например, сменный носитель 1018 и интерфейс 1014. Примеры таких средств могут включать в себя программный картридж и интерфейс картриджа (который, например, применяют в игровых видеоустройствах), интегральную микросхему сменного запоминающего устройства (например, ЭППЗУ или ППЗУ) и соответствующее гнездо, флэш-накопитель и USB-порт, а также другие сменные носители 1018 и интерфейсы 1014, которые позволяют переносить программное обеспечение и данные со сменного носителя 1018 в компьютерную систему 1000.
[0103] Компьютерная система 1000 также может включать в себя интерфейс 1020 связи. Интерфейс 1020 связи позволяет переносить программное обеспечение (например, программное обеспечение, применяемое для реализации блоков, изображенных на ФИГ. 3, 4 и 8, и/или этапов по ФИГ. 5-7 и 9) и данные между компьютерной системой 1000 и внешними устройствами. Примеры интерфейса 1020 связи могут включать в себя модем, сетевой интерфейс (например, карту Ethernet), порт связи, слот и карту PCMCIA и т.д. Программное обеспечение и данные, переданные посредством интерфейса 1020 связи, представлены в форме сигналов, которые могут быть электронными, электромагнитными, оптическими или другими сигналами, выполненные с возможностью принятия интерфейсом 1020 связи. Можно обеспечивать интерфейс 820 связи этими сигналами посредством канала 1022 связи. Канал 1022 связи передает сигналы и может быть реализован с помощью провода или кабеля, волоконно-оптического кабеля, телефонной линии, канала сотовой связи, РЧ-канала или других каналов связи.
[0104] В контексте настоящего документа термины «носитель компьютерной программы» и «носитель, выполненный с возможностью считывания компьютером» применяют, как правило, для обозначения материальных носителей данных, таких как сменные носители 1016 и 1018 или жесткий диск, установленный в накопитель 1010 на жестких дисках. Эти компьютерные программные продукты представляют собой средства для обеспечения программного обеспечения (например, программного обеспечения, применяемого для реализации блоков, изображенных на ФИГ. 3, 4 и 8, и/или этапов по ФИГ. 5-7 и 9) в компьютерную систему 1000.
[0105] Компьютерные программы (также называемые управляющими программным кодами) хранят в основном запоминающем устройстве 1006 и/или вспомогательном запоминающем устройстве 1008. Компьютерные программы также можно принимать посредством интерфейса 1020 связи. При выполнении такие компьютерные программы позволяют компьютерной системе 1000 реализовывать настоящее описание согласно обсуждениям в настоящем документе. В частности, компьютерные программы при выполнении позволяют процессору 1004 реализовывать способы настоящего описания, например, любой из описанных в настоящем документе способов. Таким образом, такие компьютерные программы представляют собой контроллеры компьютерной системы 1000. Если описание реализовано с применением программного обеспечения, можно хранить программное обеспечение в компьютерном программном продукте и загружать его в компьютерную систему 1000 с помощью сменного устройства 1012 хранения, интерфейса 1014 или интерфейса 1020 связи.
[0106] В другом варианте осуществления признаки описания реализуют главным образом в аппаратном обеспечении, например, с помощью аппаратных компонентов, таких как специализированные интегральные схемы (ASIC) и матрицы логических элементов. Реализация автомата состояний аппаратного обеспечения с возможностью выполнения описанных в настоящем документе функций также будет очевидной для специалистов в данной области техники.
6. Заключение
[0107] Варианты осуществления были описаны выше с помощью функциональных составляющих блоков, иллюстрирующих реализацию оговоренных функций и их взаимосвязей. Для удобства описания границы этих функциональных составляющих блоков были произвольно определены в настоящем документе. Можно определять альтернативные границы при соответствующем осуществлении оговоренных функций и их взаимосвязей.
[0108] Вышеприведенное описание конкретных вариантов осуществления столь полно раскрывает общий характер описания, что сторонние лица могут легко изменять и/или адаптировать для различных вариантов применения такие конкретные варианты осуществления без излишнего экспериментирования и без отступления от общей концепции настоящего описания, применяя знания в рамках данной области техники. Следовательно, исходя из идеи и указаний, представленных в настоящем документе, предполагается, что такие адаптации и модификации находятся в рамках сущности и объема эквивалентов описанных вариантов осуществления. Следует понимать, что приведенную в настоящем документе фразеологию или терминологию используют с целью описания, а не ограничения, так, что специалист в данной области должен интерпретировать терминологию или фразеологию настоящего описания в свете представленных идей и методологических принципов.