СИСТЕМЫ И СПОСОБЫ ПАРАЛЛЕЛЬНОЙ И МАСШТАБИРУЕМОЙ ОБРАБОТКИ ТЕЛЕМЕТРИЧЕСКИХ ДАННЫХ ОТ ПОДКЛЮЧАЕМЫХ РАЗДАТОЧНЫХ МАШИН
SYSTEMS AND METHODS FOR PARALLEL AND SCALABLE PROCESSING OF TELEMETRIC DATA FROM CONNECTED DISTRIBUTING MACHINES

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
[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. Уровень упаковки определяет формат, в котором должны упаковываться данные перед передачей по сети транспортным уровнем. Двумя наиболее распространенными форматами упаковки являются Simple Object Access Protocol (SOAP) и REpresentational State Transfer (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 может представлять собой сенсорный экран, такой как сенсорный жидкокристаллический (ЖК) экран или сенсорный светодиодный (LED) экран. Пользователь может инициировать раздачу напитка, например, выбрав посредством взаимодействия с пользовательским интерфейсом 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-п). Ингредиенты 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 веб-службы, которое форматируется в соответствии с Simple Object Access Protocol (SOAP), REpresentational State Transfer (REST) или каким-либо другим форматом упаковки. Сообщение-запрос 310 веб-службы может включать в себя конверт 312, содержащий необязательный заголовок 314 и тело 316. Заголовок 314 в случае его использования может включать в себя один или более блоков информации, которая определяет то, каким образом сообщение должно обрабатываться одним или более принимающими субъектами. Тело 316 может включать в себя телеметрические данные как один или более аргументов и запрашивать выполнение операции (или выполнение подпрограммы) в ВС-поставщике 304 с одним или более аргументов. Телеметрические данные и запрос на выполнение операции могут выражаться в теле 316 в синтаксисе XML или JSON. Запрос на выполнение операции также может выражаться вне тела 316 в любом числе форм, в том числе как универсальный идентификатор ресурса (УИР).
[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 упаковывает результат операции в сообщение-ответ 318. веб-службы, ВС-поставщик 304 может передавать сообщение-ответ 318 веб-службы по компьютерной сети 308. В одном варианте осуществления, ВС-поставщик 304 передает сообщение-ответ 318 веб-службы по компьютерной сети 308, используя HTTP или HTTPS.
[0046] Следует отметить, что передавать сообщения-запросы веб-службы администрирующему контроллеру 302 может множество раздатчиков и контроллеров раздатчиков, отличных от контроллера 220 раздатчика. Эти сообщения-запросы веб-службы могут обрабатываться аналогично сообщению-запросу 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, выполненного с возможностью перехвата сообщения-запроса 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] После того как ВС-шлюз 402 вставляет цифровую подпись и/или шифрует телеметрические данные в теле 316, ВС-шлюз 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 перед сравнением телеметрических данных в теле 316 с зашифрованной цифровой подписью.
[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. Каждый отдельный поток из потоков 808 может назначаться каждой очереди 806. Каждый поток 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] В другом варианте осуществления, признаки изобретения реализуются главным образом в аппаратных средствах, используя, например, аппаратные компоненты, такие как специализированные интегральные схемы (СИС) и вентильные матрицы. Реализация машины в аппаратном виде с возможностью выполнения функций, описываемых в настоящем документе, также будет понятна специалистам в релевантной области(-ях) техники.
6. Заключение
[0107] Варианты осуществления были описаны выше с помощью функциональных составляющих блоков, иллюстрирующих реализацию оговоренных функций и их взаимосвязей. Для удобства описания границы этих функциональных составляющих блоков были произвольно определены в настоящем документе. Могут быть определены альтернативные границы, если оговоренные функции и их взаимосвязи осуществляются соответствующим образом.
[0108] Вышеприведенное описание конкретных вариантов осуществления раскрывает общую сущность изобретения в полноте, достаточной для того, чтобы другие смогли, путем применения знаний в рамках компетентности в данной области техники, легко модифицировать и/или адаптировать для различных видов применения такие конкретные аспекты, без излишнего экспериментирования, без отхода от общей концепции настоящего изобретения. Следовательно, исходя из идеи и указаний, представленных в настоящем документе, предполагается, что такие адаптации и модификации находятся в рамках сущности и объема эквивалентов описанных вариантов осуществления. Следует понимать, что приведенная в настоящем документе фразеология или терминология используется с целью описания, а не ограничения, так что специалист в данной области должен интерпретировать терминологию или фразеологию настоящего описания в свете представленных идей и методологических принципов.