ПЕРЕКРЕСТНАЯ ССЫЛКА НА РОДСТВЕННЫЕ ЗАЯВКИ
[0001] Настоящая заявка испрашивает приоритет предварительной заявки на патент США № 62/343,382, озаглавленной «Система и способ для поддерживающей облачные технологии торгово-кассовой системы высокой доступности» и поданной 31 мая 2016, содержание которой полностью включено в данный документ посредством ссылки.
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
[0002] Настоящее изобретение в целом относится к системе и способу для поддерживающей облачные технологии торгово-кассовой системы высокой доступности.
УРОВЕНЬ ТЕХНИКИ
[0003] Рост систем электронной торговли (e-commerce) в различных отраслевых сегментах обусловил сложности для компаний с распределенными операциями, в частности, для дистрибьюторов и работающих по франшизе организаций с сотнями тысяч удаленных местоположений. Автономным компьютерным системам в удаленных местоположениях необходимо быть соединенными через линии связи глобальной сети, и эти линии связи представляют собой проблемы пропускной способности и надежности для осуществления связи. Кроме того, нагрузка, оказываемая на предшествующие системы (например, существующие компьютеры или торгово-кассовые устройства) современными системами электронной торговли, может часто перегружать эти предшествующие системы.
[0004] Многие торговые системы разделены на деятельность на клиентской стороне и на деятельность на серверной стороне (включающей в себя и облачную основу). Торгово-кассовое (point-of-sale, POS) средство или человек с приложением клиентской стороны для осуществления доступа к информации на серверной стороне могут осуществлять доступ к значительному количеству функциональности и данным с серверной стороны. Однако, для приложений, которые полагаются на значительные данные и функциональность на серверной стороне, потеря линии связи с сервером может фактически остановить функциональность на клиентской стороне.
[0005] Дополнительно, виртуализация компьютерных систем стала широко используемой технологией в компьютерной отрасли. Виртуальные системы обеспечивают операционные преимущества по сравнению с физическими системами, в том числе динамическое перемещение виртуальных систем по физическим инструментальным платформам.
[0006] Одна из трудностей, которую, в частности, оказалось трудно решить, заключается в ценовом расчете заказов в системах электронной торговли и обеспечении того, что они отражают ту же самую цену, рассчитанную предшествующей системой в магазине. Предшествующие решения ценового расчета, которым может быть тридцать или более лет, не являются в целом прямо совместимыми с современными решениями ценового расчета (например, решениями на облачной основе).
[0007] Даже там, где удаленные системы способны предоставлять информацию и ответы с ценовыми расчетами в централизованные системы электронной коммерции, они могут быть ограничены в количестве запросов, которые они могут поддерживать, и в скорости и пропускной способности линий связи. Централизация запросов ценового расчета от тысяч удаленных торгово-кассовых (POS) систем является очень трудоемкой задачей с точки зрения пропускной способности, особенно при пиковых нагрузках, и фактически, при пиковой нагрузке, требуемая производительность может на порядки превышать нагрузки в непиковый период. Перегрузка удаленных линий связи может привести в результате к полному отказу системы, что является недопустимым результатом в системе предприятия.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0008] Способность кэширования логики на клиенте (например, кода и/или инструкций, которые конфигурируют клиента обеспечивать функциональность программного обеспечения) позволяет поддерживающей облачные технологии торгово-кассовой (POS) системе быть как актуальной, так и иметь высокую доступность. Кэширование логики является менее рискованным способом для поддержания клиента актуальным в отличие от частых обновлений, которые необходимо «устанавливать» на уровне операционной системы (OS), и может снизить затраты на эксплуатационное сопровождение и поддержку в долгосрочной перспективе. Данный клиент, обеспечивающий POS-функциональность, может таким образом функционировать независимо от облака на протяжении длительных периодов времени, когда облако недоступно.
[0009] Согласно одному варианту осуществления графический пользовательский интерфейс, приспособленный для торговых транзакций, генерируется клиентским устройством. Информация первого заказа для первой торговой транзакции принимается клиентским устройством через графический пользовательский интерфейс. Клиентское устройство получает первую информацию ценового расчета для первой торговой транзакции от серверного устройства, расположенного удаленно от клиентского устройства. Первая информация ценового расчета генерируется серверным устройством на основе серверной информации ценового расчета, расположенной удаленно от клиентского устройства. Первая информация ценового расчета отображается клиентским устройством через графический пользовательский интерфейс. Информация второго заказа для второй торговой транзакции принимается клиентским устройством через графический пользовательский интерфейс. Вторая информация ценового расчета для второй торговой транзакции определяется клиентским устройством, при этом вторая информация ценового расчета сгенерирована на основе клиентской информации ценового расчета, расположенной локально в клиентском устройстве. Вторая информация ценового расчета отображается клиентским устройством через графический пользовательский интерфейс.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0010] Описание в данном документе ссылается на сопроводительные чертежи, на которых одинаковые ссылочные позиции обозначают одинаковые части повсюду на нескольких видах.
[0011] На Фиг.1 показана блок-схема распределенной или облачной вычислительной системы.
[0012] На Фиг.2 показана блок-схема варианта реализации внутренней конфигурации вычислительного устройства, такого как вычислительное устройство вычислительной системы, показанной на Фиг.1.
[0013] На Фиг.3 показана блок-схема варианта реализации системы обработки высокой доступности.
[0014] На Фиг.4 показана диаграмма Венна, изображающая функциональность POS-систем, OLO-систем и совместно используемой функциональности.
[0015] На Фиг.5 показана блок-схема, изображающая вариант реализации системы на облачной основе согласно одному варианту реализации.
[0016] На Фиг.6A и 6B показаны блок-схемы согласно одному варианту реализации POS-архитектуры предприятия.
[0017] На Фиг.7 показан примерный снимком экрана веб-интерфейса, который может использоваться для взаимодействия с серверной стороной системы.
[0018] На Фиг.8 показана блок-схема, изображающая систему, в которой заказ может быть реализован на POS-средстве либо на клиентской стороне или на серверной стороне, согласно одному варианту реализации.
[0019] На Фиг.9 показана блок-схема, изображающая вариант реализации системы теневой виртуализации.
[0020] На Фиг.10 показана блок-схема примерного способа отображения информации ценового расчета, согласно одному варианту осуществления.
ПОДРОБНОЕ ОПИСАНИЕ
ОПИСАНИЕ ОСНОВНЫХ СИСТЕМНЫХ КОМПОНЕНТОВ
[0021] Для более подробного описания некоторых вариантов реализации сначала будет сделан ссылка на примеры аппаратных структур и межсоединений, используемых в вариантах реализации настоящего раскрытия. На Фиг.1 показана блок-схема распределенной или облачной вычислительной системы 100. Использование фразы «облачная вычислительная система» в данном документе является заместителем любой подходящей формы распределенной вычислительной системы, и данная фраза используется всего лишь для простоты упоминания. У облачной вычислительной системы 100 может быть любое количество потребителей, включающий в себя потребителя 110. У каждого потребителя 110 могут быть клиенты (клиентские приложения), такой как клиенты 112. Каждый из клиентов 112 может быть выполнен в виде вычислительной системы, включающей в себя множество вычислительных устройств, или в виде одиночного вычислительного устройства, например, мобильного телефона, планшетного компьютера, ноутбука, портативного компьютера, настольного компьютера и т.п. Потребитель 110 и клиенты 112 являются всего лишь примерами, и облачная вычислительная система может иметь разное количество потребителей или клиентов или может иметь отличающуюся от других конфигурацию потребителей или клиентов. Например, могут существовать сотни или тысячи потребителей, и у каждого потребителя может быть любое количество клиентов.
[0022] Облачная вычислительная система 100 может включать в себя любое количество центров хранения и обработки данных, включающих в себя центр 120 хранения и обработки данных. У каждого центра 120 хранения и обработки данных могут быть серверы, такие как серверы 122. Каждый центр 120 хранения и обработки данных может представлять собой оборудование в различных географических местоположениях, в которых расположены серверы. Каждый из серверов 122 может быть выполнен в виде вычислительной системы, включающей в себя множество вычислительных устройств (например, кластер), или в виде одиночного вычислительного устройства, например, настольного компьютера, серверного компьютера, виртуальной машины и т.п. Центр 120 хранения и обработки данных и серверы 122 является всего лишь примерами, и облачная вычислительная система может иметь различное количество центров хранения и обработки данных и серверов или может иметь отличающуюся от других конфигурацию центров хранения и обработки данных и серверов. Например, могут быть десятки центров хранения и обработки данных, и у каждого центра хранения и обработки данных могут быть сотни или любое количество серверов.
[0023] Клиенты 112 и серверы 122 могут быть выполнены с возможностью соединения с сетью 130. Клиенты для конкретного потребителя могут соединяться с сетью 130 через общую линию 116 связи или различные линии связи, например, линию 118 беспроводной связи (например, предоставляемую точкой беспроводного доступа) и линию 119 проводной связи (например, предоставляемую коммутатором или маршрутизатором проводной сети). Может присутствовать любое сочетание общих или различных линий связи, а также может присутствовать любое сочетание линий проводной и беспроводной связи. Сеть 130 может быть, например, Интернетом. Сеть 130 может также быть или включать в себя местную сеть (LAN), глобальную сеть (WAN), виртуальную частную сеть (VPN), или любое другое средство передачи данных между любым из клиентов 112 и серверов 122. Сеть 130, центр 120 хранения и обработки данных и/или не изображенные блоки могут включать в себя сетевое аппаратное обеспечение, такое как маршрутизаторы, коммутаторы, выравниватели нагрузки и/или другие сетевые устройства.
[0024] Также возможны и другие варианты реализации облачной вычислительной системы 100. Например, устройства, отличающиеся от изображенных клиентов и серверов, могут быть включены в облачную вычислительную систему 100. В одном варианте реализации один или более дополнительных серверов могут функционировать в качестве средства управления облачной инфраструктурой, из которых осуществляется наблюдение, управление и/или конфигурирование серверов и/или клиентов облачной инфраструктуры. Например, некоторые или все методики, описанные в данном документе, могут функционировать на упомянутых серверах управления облачной инфраструктурой. Альтернативно, или в дополнение, некоторые или все методики, описанные в данном документе, могут функционировать на таких серверах, как серверы 122.
[0025] В различных вариантах осуществления потребитель 110 соответствует оператору ресторана, франшизодержателю, управляющему магазином или другому подходящему оператору точке продаж (point of sale) или точки обслуживания. В различных вариантах осуществления центр 120 хранения и обработки данных соответствует центральному офису ресторана, франшизодателю, региональному управляющему или другой подходящей централизованному пункту управления одним или более потребителями 110.
[0026] На Фиг.2 показана блок-схема варианта реализации внутренней конфигурации вычислительного устройства 200, такого как клиент 112 или сервер 122 вычислительной системы 100, показанной на Фиг.1, включающего в себя сервер управления инфраструктурой вычислительной системы. Как описано выше, клиенты 112 или серверы 122 могут принимать форму вычислительной системы, включающей в себя множество вычислительных блоков, или в виде одиночного вычислительного блока, например, мобильного телефона, планшетного компьютера, ноутбука, портативного компьютера, настольного компьютера, серверного компьютера и т.п.
[0027] Вычислительное устройство 200 может включать в себя некоторое количество компонентов, как изображено на Фиг.2. Процессор 202 может быть центральным блоком обработки, таким как микропроцессор, и может включать в себя один или множество процессоров, каждый из которых имеет одно или множество ядер обработки. Альтернативно, процессор 202 может включать в себя устройство другого типа, или множество устройств, выполненное с возможностью управления или обработкой информации и существующее сейчас или усовершенствованное в дальнейшем. Когда присутствует множество устройств обработки, то они могут быть взаимно соединены любым образом, в том числе соединены проводами или через сеть, в том числе и через беспроводную сеть. Таким образом, действия процессора 202 могут быть распределены по множеству машин, которые могут быть соединены напрямую или в локальной области или другой сети. Процессор 202 может быть процессором общего назначения или процессором особого назначения.
[0028] Запоминающее устройство 204 с произвольным доступом (RAM) может быть любым подходящим устройством непостоянного хранения, которое используется в качестве запоминающего устройства. RAM 204 может включать в себя исполняемые инструкции и данные для доступа процессором 202. RAM 204 обычно содержит один или более модулей DRAM, таких как DDR SDRAM. Альтернативно, RAM 204 может включать в себя устройство другого типа, или множество устройств, выполненное с возможностью хранения данных для обработки процессором 202, существующим сейчас или усовершенствованным в дальнейшем. Процессор 202 может осуществлять доступ и обрабатывать данные в RAM 204 через шину 212. Процессор 202 может использовать кэш-память 220 в качестве некоторой формы локализованной быстродействующей памяти для осуществления действий над данными и инструкциями.
[0029] Хранилище 206 может быть выполнено в виде постоянного запоминающего устройства (ROM), дискового накопителя, твердотельного накопителя, флэш-памяти, запоминающего устройства на фазовых переходах (PCM), или любом виде долговременного запоминающего устройства, разработанного для сохранения данных на протяжении некоторой продолжительности времени, и предпочтительно в случае потери электропитания. Хранилище 206 может включать в себя исполняемые инструкции 206A и прикладные файлы/данные 206B наряду с другими данными. Исполняемые инструкции 206A могут включать в себя, например, операционную систему и одну или более прикладных программ для загрузки полностью или частично в RAM 204 (с основанными на RAM исполняемыми инструкциями 204A и прикладными файлами/данными 204B) и подлежать исполнению процессором 202. Исполняемые инструкции 206A могут быть организованы в программируемые модули или алгоритмы, функциональные программы, коды, и сегменты кода, разработанные для выполнения различных функций, описанных в данном документе. Операционная система может быть, например, операционной системой Microsoft Windows®, Mac OS X® или Linux®, или может быть операционной системой для маленького устройства, такого как смартфон или планшетное устройство, или большого устройства, такого как универсальный компьютер. Прикладная программа может включать в себя, например, веб-браузер, веб-сервер и/или сервер базы данных. Прикладные файлы 206B могут, например, включать в себя пользовательские файлы, каталоги баз данных и конфигурационную информацию. В одном варианте реализации хранилище 206 включает в себя инструкции для выполнения исследовательских методик, описанных в данном документе. Хранилище 206 может содержать одно или множество устройств и может использовать один или более типов хранилищ, в частности, твердотельные или магнитные.
[0030] Вычислительное устройство 200 может также включать в себя одно или более устройств ввода-вывода, таких как блок 208 связи по сети и интерфейс 230, которые могут иметь компонент проводной связи или компонент 290 беспроводной связи и которые могут быть соединены с процессором 202 через шину 212. Блок 208 связи по сети может использовать любые разновидности стандартизированных сетевых протоколов, таких как Ethernet, TCP/IP или что-либо им подобное, для осуществления связи между устройствами. Интерфейс 230 может содержать один или более приемопередатчик(ов), которые используют Ethernet, связь по линиям электросети (PLC), WiFi, инфракрасное излучение, GPR/GSM, CDMA и т.д.
[0031] Пользовательский интерфейс 210 может включать в себя устройство отображения, позиционное устройство ввода (такое как компьютерная мышь, сенсорная панель, сенсорный экран или что-либо им подобное), клавиатуру или другие формы устройств пользовательского ввода и вывода. Пользовательский интерфейс 210 может быть соединен с процессором 202 через шину 212. Другие устройства вывода, которые предоставляют возможность пользователю программировать или иначе использовать клиента или сервера, могут быть предоставлены в дополнение или в качестве альтернативы устройству 210 отображения. Когда устройство вывода является устройством отображения или включает в себя его, то устройство отображения может быть реализовано различными способами, в том числе дисплей на жидких кристаллах (LCD) или электроннолучевая трубка (CRT), или светодиодный (LED) дисплей, такой как дисплей OLED.
[0032] Также возможны и другие варианты реализации внутренней конфигурации или архитектуры клиентов и серверов 200. Например, на серверах может отсутствовать устройство отображения 210. RAM 204 или хранилище 206 могут быть распределены по множеству машин, в частности, сетевое запоминающее устройство или запоминающее устройство на множестве машинах, выполняющих операции клиентов или серверов. Несмотря на то, что здесь изображена в качестве одной шины, шина 212 может быть состоять из множества шин, которые могут быть соединены друг с другом через различные мосты, контроллеры, и/или сопрягающие устройства (адаптеры). Вычислительные устройства 200 могут содержать любое количество сенсоров и датчиков, которые наблюдают непосредственно за вычислительным устройством 200 или окружением вокруг вычислительного устройства 200, или оно может содержать блок 260 идентификации местоположения, такой как GPS или другой тип устройства определения местоположения. Вычислительное устройство 200 может также содержать источник 270 питания, такой как батарея, с тем, чтобы блок мог функционировать самостоятельно. Они могут осуществлять связь с процессором 202 через шину 212.
[0033] На Фиг.3 показана блок-схема варианта реализации системы обработки высокой доступности. Изображенная распределенная вычислительная система 300 может быть, например, вариантом реализации центра 120 хранения и обработки данных и сети 130 с Фиг.1. В более широком смысле, система 300 включает в себя выравниватели 304 нагрузки и центры 120 хранения и обработки данных. Выравниватели 304 нагрузки соединены с телекоммуникационной сетью, графически изображенной в качестве сети 130. Выравниватели 304 нагрузки могут также включать в себя выравниватели нагрузки обратного прокси-сервера.
[0034] Первый центр 120 хранения и обработки данных включает в себя первичную базу 310 данных, а второй центр 120 хранения и обработки данных включает в себя вторичную базу 310' данных. Центры 120 хранения и обработки данных функционируют таким образом, что вторичная база 310' данных может обеспечивать точное или по существу точное зеркало первичной базы 310 данных. Разделительная линия 320 используется, чтобы графически подчеркнуть логическую границу между центрами 120 хранения и обработки данных. В зависимости от применения по назначению, базы 310, 310' данных могут быть реализованы с использованием, например, системы управления реляционными базами данных (RDBMS), объектной базы данных, базы данных XML, неструктурированные файлы или что-либо им подобное. В одном варианте реализации центры 120 хранения и обработки данных включают в себя веб-серверы (например, установки Apache), реализованные на физических аппаратных серверах (например, серверы 122 центра 120 хранения и обработки данных с Фиг.1), для обработки клиентских запросов для осуществления доступа к ресурсам компьютерной сети потребителя.
[0035] Каждый центр хранения и обработки данных может включать в себя узлы 306 приложений, при этом в зависимости от варианта реализации может использоваться большее или меньшее количество в отличие от изображенного. Узлы приложений могут быть реализованы с использованием потоков обработки, инстанцирований виртуальных машин, или других вычислительных средств центров хранения и обработки данных, которые выполняют программы от имени удаленно расположенных клиентов и обмениваются связанными данными с такими клиентами через сеть 130. Совместно с выполнением этих программам, при сохранении и извлечении данных с узлами приложений возникают случаи, когда эти роли выполняют базы 310 данных. В одном варианте реализации каждый из узлов приложений соединен с одной первичной базой данных, независимо от того, расположена ли упомянутая база данных в одном и том же центре хранения и обработки данных, что и упомянутый узел приложения. Например, первичная база данных может быть выполнена с возможностью чтения-записи, а вторичная база данных может быть выполнена с возможностью только чтения так, чтобы она зеркалировала изменения от первичной базы данных. Запросы к системе 300 могут сначала направляться к узлам приложений в центре хранения и обработки данных первичной базы данных, а затем в другой центр хранения и обработки данных. В случае обработки отказа вторичная база данных может перейти в режим чтения-записи с переключением ранее первичной базы данных на зеркалирование вторичной базы данных (который становится первичной базой данных). В данной ситуации каждый узел приложений может быть переконфигурирован для взаимодействия со вторичной базой данных (теперь первичной базой данных), как показано пунктирными линиями. В данной ситуации каждый узел приложений может быть переконфигурирован для взаимодействия со вторичной базой данных (теперь первичной базой данных), как показано пунктирными линиями.
[0036] Как упомянуто выше, каждый центр 120 хранения и обработки данных может иметь свой собственный выравниватель 304 нагрузки. Каждый выравниватель 304 нагрузки может быть выполнен с возможностью направления трафика к соответственным серверам и узлам обработки, расположенных в своих центрах хранения и обработки данных. Касаемо услуг прокси-сервера, в одном примере выравниватели 304 нагрузки выполнены с возможностью предоставления одной оказываемой через Интернет услуги удаленным клиентам через сеть 130, где данная услуга фактически предоставляется серверной фермой, состоящей из компьютеризированных серверов центров 120 хранения и обработки данных. Выравниватели 304 нагрузки могут также координировать запросы от удаленных клиентов к центрам 120 хранения и обработки данных, упрощая клиентский доступ посредством маскирования внутренней конфигурации центров хранения и обработки данных. Выравниватели 304 нагрузки могут обслуживать эти функции посредством направления клиентов в процессорные узлы при непосредственном конфигурировании или через DNS. Выравниватели 304 нагрузки могут быть приспособлены для привязанных сеансов. При привязанных сеансах запросы от клиента могут пересылаться к одному и тому же узлу 306 приложений на протяжении клиентского сеанса.
[0037] Что касается балансирования нагрузки, то компоненты 304 могут быть выполнены с возможностью направления трафика во вторичный центр 120' хранения и обработки данных в случае, когда первичный центр 120 хранения и обработки данных находится в одном из многих перечислимых состояний, предварительно определенных в качестве сбоя. Функциональность балансирования нагрузки выравнивателей 304 нагрузки может быть обеспечена в качестве отдельных компонентов или в качестве одного компонента.
[0038] Распределенная вычислительная система 300 может выделять ресурсы компьютерной сети с использованием архитектуры множественной аренды или одиночной аренды. При архитектуре множественной аренды, установки или инстанцирования приложения, базы данных и/или других серверов приложения программного обеспечения могут быть совместно использованы среди множества потребителей. Например, веб-сервер (например, одинарная установка Apache), сервер приложений (например, одинарная виртуальная машина Java) и/или один каталог сервера базы данных (например, одинарный каталог MySQL) могут обрабатывать запросы от множества потребители. В варианте реализации данной архитектуры сервер приложений и/или программное обеспечение сервера базы данных могут различать и отделять данные и другую информацию различных потребителей, использующих систему.
[0039] В архитектуре одиночной аренды отдельные веб-серверы, серверы приложений и/или серверы баз данных могут быть предоставлены для каждого потребительского экземпляр. В одном варианте реализации каждый потребитель будет осуществлять доступ к своему выделенному веб-серверу(ам), его транзакции будут обрабатываться с использованием его сервера(ов) специального применения, и его данные будут храниться в его выделенном сервере(ах) базы данных и или каталоге(ах). Физические аппаратные серверы могут быть использоваться совместно так, чтобы множество установок или инстанцирований веб-средства, приложения и/или серверов баз данных могли быть установлены на одном и том же физическом сервере. Каждой установке может быть выделена некоторая часть ресурсов физического сервера, таких как RAM, хранилище и циклы CPU.
[0040] В варианте реализации потребительский экземпляр содержит множество экземпляров веб-сервера, множество экземпляров сервера приложений и множество экземпляров сервера базы данных. Серверные экземпляры могут быть расположены на различных физических серверах и совместно использовать ресурсы различных физических серверов с некоторым количеством других серверных экземпляров, связанных с другими потребительскими экземплярами. В данной облачной вычислительной системе различные варианты реализации потребительских экземпляров могут использоваться для различных потребительских экземпляров в одно и то же время. Также могут использоваться и другие конфигурации и варианты реализации потребительских экземпляров. Например, в одном варианте реализации, функциональность веб-сервера и сервера приложений обрабатываются в качестве единого блока (множество блоков которого может присутствовать), причем каждый блок устанавливается на соответственных физических серверах.
POS-СИСТЕМА ВЫСОКОЙ ДОСТУПНОСТИ
[0041] Теперь будет раскрыт вариант реализации усовершенствованной торгово-кассовой (POS) системы высокой доступности. Система может использовать средства, которые традиционно являются частью системы оформления заказа онлайн, такой как система оформления заказа через интернет. На Фиг.4 показана диаграмма 400 Венна, изображающая торгово-кассовую функциональность 402, обычно связанную с торгово-кассовой (POS) системой, которая сосредоточена на цикле заказов, и функциональность 406 оформлении заказа онлайн (OLO), например, функциональность для ресторана или кухни, которая обеспечивает службу доставки. POS-функциональность 402 может включать в себя одно или более из оформления заказа представителя по обслуживанию потребителей (CSR) (при котором потребитель взаимодействует с CSR для размещения заказа), поток операций на кухне (включающий в себя осуществление планирования) и логистики, связанной с доставкой. Функциональность 406 OLO может включать в себя одно или более из оформления заказа через интернет, оформления заказа с мобильного устройства и центра обработки звонков (call-центр). Однако, по меньшей мере, некоторая часть функциональности может быть совместно использована (совместно использованная функциональность 404) между POS-функциональностью 402 и функциональностью 406 OLO. В одном варианте осуществления совместно используемая функциональность 404 включает в себя одно или более из персонализации возможностей оформления заказа, управления меню, специальных предложений/ценового расчета/налога, территорий доставки, платежей, и других операций в реальном времени. В системе, описанной в данном документе, обеспечивается гибкость для реализации различных функций, связанных либо с POS-функциональностью 402, либо с функциональностью 406 OLO. POS-функциональность 402 смещается все больше в потребительские устройства с размещением заказов непосредственно потребителями через оформление заказа онлайн или мобильное устройство. Кассовый аппарат на переднем прилавке становится относительно менее важным, поскольку он уже не используется так часто. Функциональность 406 OLO может охватывать оформление заказа через интернет, оформление заказа через мобильное устройство и оформление заказа через центр обработки звонков.
[0042] Используемое в данном документе POS-средство может включать в себя традиционное POS-устройство и может предоставлять конечному пользователю возможность взаимодействовать непосредственно с сервером. Главная разница между традиционным POS-средством и прямым взаимодействием конечного пользователя состоит в том, что торгово-сервисное предприятие с традиционным POS-средством будет иметь некоторое управление над ценовым расчетом и специальными предложениями, тогда как конечный пользователь, который непосредственно взаимодействует с веб-страницей, не будет. Кроме этого, авторизованный пользователь с традиционным POS-средством может вносить изменения в потребительский счет, совершать которые самостоятельно потребителю не может быть предоставлена возможность. Дополнительно, для традиционного POS-средства более важно функционировать для того, чтобы осуществлять торговые операции с потребителями, которые посещают заведение лично или контактируют с ним через другое средство (такое как телефон), чем с потребителем, в качестве конечного пользователя, который хочет разместить заказ посредством взаимодействия с веб-страницей оформления заказа еды.
[0043] Кроме того, возможности использования/ пользовательский интерфейс могут быть выполнены по-разному для традиционного POS-средства в противоположность потребителю в качестве конечного пользователя. Для POS-средства возможности использования для сотрудников оптимизируются на основе эффективности и скорости. Напротив, веб-возможности конечного пользователя оптимизируются на основе простоты использования в первый раз, внешней привлекательности и узнаваемости торговой марки. Например, большие изображения еды на домашней странице продающей еду веб-странички могут быть предпочтительны для продажи конечному пользователю новой продукции или комплектного специального предложения, но в POS-контексте такое отображение может вызвать ненужные взаимодействия с отображением и сократить ценное пространство экрана, которое может быть лучше использовано для таких вещей, как сценарий того, как взаимодействовать с потребителем. В контексте пиццы изображение пиццы, которое обновляется при добавлении потребителем в качестве конечного пользователя дополнительных ингредиентов сверху, может быть визуально привлекательным для потребителя, но привело бы к растрате пространства в POS-контексте.
[0044] Наконец, POS-средство в магазине будет, вероятно, иметь больше возможностей для оператора в магазине в отличие от человека дома. Например, оно может иметь функцию планирования для планирования заказа для приготовления и доставки, в частности, по отношению к способности планирования заказов, которые будут готовиться в последовательности, в которой они будут доставляться. Когда заказы приняты или введены, они упорядочиваются для приготовления и печения в зависимости от прогнозируемой доступности водителей-доставщиков, возвращающихся с маршрутов доставки. POS-средство разрабатывается для обработки конкретного объема одновременных заказов, которые должны быть скоординированы, в противоположность сосредоточению на одном заказе потребителя в качестве конечного пользователя.
[0045] На Фиг.5 показана блок-схема, изображающая вариант реализации системы 500 на облачной основе, которая может использоваться. Пользовательское устройство 520 (например, смартфон, настольный компьютер или планшет) 520 может взаимодействовать со средством 550 визуализации, расположенным в сети/облаке 130. Средство 550 визуализации выполнено с возможностью визуализации веб-страницы или другого подходящего отображения пользовательского интерфейса (UI), которые следует предоставить в пользовательское устройство 520. Средство 550 визуализации может взаимодействовать с услугами 580 на облачной основе для осуществления доступа к логике 590 услуг оформления заказа, такой как получение текущего меню наряду со специальными предложениями, ценовым расчетом и другими потребительскими данными, с использованием прикладных программных интерфейсов (API) 570 и платформы API (не изображена). Средство 550 визуализации и/или платформа API реализуется на сервере 122, центре 120 хранения и обработки данных или другом подходящем устройстве в различных вариантах осуществления. Облако 130, каким оно понимается в данном документе, может включать в себя любую сетевую структуру, которая обеспечивает множеству устройств возможность взаимного соединения и осуществления связи друг с другом. Другие устройства, которые могут включать в себя уже рассмотренные в качестве части Интернета Вещей (IoT) 530, которые могут не иметь выделенного пользовательского интерфейса и таким образом могут взаимодействовать непосредственно с API 570. Пользовательское устройство 520 и IoT 530 обеспечивают каналы, через которые могут приниматься заказы. Облако 130 может также иметь очередь (не изображена), которая содержит информацию о ходе выполнения работы, но это также может присутствовать на клиентской стороне. Кроме того, торгово-кассовые системы 540 могут использовать API 570 для осуществления доступа к различным услугам 580, предлагаемым в облаке. Инструмент/портал 560 администрирования может использоваться для конфигурирования и администрирования системы, а база 595 данных может содержать подходящие данные для системы электронной торговли.
[0046] В одном варианте осуществления одно или более из пользовательского устройства 520, IoT 530 и POS-средства 540 являются клиентами 112 потребителя 110, в то время как средство 550 визуализации, инструмент/портал 560 администрирования, API 570 или платформа API, услуги 580 на облачной основе и база 595 данных соответствуют серверу 122 или другому подходящему устройству центра 120 хранения и обработки данных. В одном варианте осуществления клиент 112 обеспечивает POS-функциональность 402, сервер 122 обеспечивает функциональность 406 OLO, а клиент 112 и сервер 122 обеспечивают, по меньшей мере, некоторую часть совместно используемой функциональности 404.
[0047] Согласно одному варианту реализации, API поддерживают управление версиями, что обеспечивает возможность создания будущих разновидностей с предоставлением унаследованной поддержки API-вызовов. API-вызовы могут быть разработаны для локализации, то есть поддержки множества языков, и API-вызов может возвращать переведенное содержимое на подходящем языке (например, меню, купоны, сообщения об ошибках и т.д.). Однако, обозначения валюты и форматирование не должны зависеть от языка, запрашиваемого от API. В одном варианте реализации, API выполнено без сохранения состояния или с передачей состояния представления (RESTful), без использования традиционных сеансов (на основе cookie или другой формы). Каждый API-вызов может использовать токен заголовка запроса для авторизации - когда пользователь осуществляет логический вход, API осуществления логического входа может возвратить токен авторизации, который должен быть сохранен в локальном хранилище браузера, и этот токен авторизации может использоваться для будущих API-вызовов для определения результата вызова. Эти вызовы могут осуществляться посредством SSL или принудительного SSL (HTTPS).
[0048] API может быть разработан для использования надлежащих глаголов HTTP: POST (РАЗМЕСТИТЬ), если что-то создается; PUT (ПОЛОЖИТЬ), если что-то обновляется; GET (ПОЛУЧИТЬ), если что-то извлекается, и DELETE (УДАЛИТЬ), если что-то удаляется. API может возвратить надлежащие коды состояний на основе результата ответа, например: состояние 200 для успешного результата, состояние 401 при отказе в авторизации, состояние 400 при ошибке, и состояние 404, если не найдено.
[0049] Всякий раз, когда объект изменяется (POST, PUT), результирующий ответ может включать в себя самую последнюю версию этого объекта. API может включать в себя следующий список вызовов, которые приведены только в качестве примера. Список вызовов может включать в себя другие вызовы, не предоставленные здесь.
[0050] В Таблице 1 приведен список возможных относящихся к пользователю вызовов.
необх.
Таблица 1
Примерные Пользовательские API-вызовы
[0051] В Таблице 2 приведен список возможных вызовов проверки достоверности адреса. Проверка достоверности заданного адреса пользователя может быть использована для определения возможностей магазина и местоположения. Проверка достоверности адреса может быть отдельным API, которые определяет результаты пользовательского запроса адреса.
необх.
Таблица 2
Примерные API-вызовы Проверки достоверности Адреса
[0052] В Таблице 3 приведен список возможных связанных с магазином вызовов для извлечения информации о магазинах.
необх.
Таблица 3
Примерные API-вызовы Магазина
[0053] В Таблице 4 приведен список возможных связанных с меню вызовов для извлечения информации меню. Меню могут не зависеть от магазинов. Меню может быть немного более обширным, потому что в большинстве контекстов оно может быть «скрыто» позади UX выбора магазина. Эти API-вызовы могут возвращать купоны с меню и обеспечивать библиотеку JavaScript трансляции для внешнего интерфейса.
необх.
Таблица 4
Примерные API-вызовы Меню
[0054] В Таблице 5 приведен список возможных связанных с корзиной вызовов для хранения пользовательской корзины. В корзине перечислена вся продукция, которую пользователь намеревается купить, но еще не купил. Корзины не должны использовать сеансы, а вместо этого, могут использовать ID для извлечения подробностей корзины через API.
необх.
Таблица 5
Примерные API-вызовы Корзины
[0055] В Таблице 6 приведен список возможных связанных с заказом вызовов, которые могут быть выполняться для создания заказа, на основе ID корзины. Все конечные точки заказа должны быть защищенными, учитывая, что запрос может потенциально включать в себя данные платежа. Заказ должен размещаться только пользователем, который создал заказ, и заказ может быть отмечен как «размещенный» через данную услугу.
необх.
Таблица 6
Примерные API-вызовы Заказа
[0056] В Таблице 7 приведен список возможных связанных с ценовым расчетом вызовов для информации ценового расчета. Ценовой расчет может быть централизован в большинстве случаев (то есть не оставаясь клиенту).
необх.
Таблица 7
Пример API-вызовы Ценового расчета
[0057] В Таблице 8 приведен список возможных связанных с содержимым вызовов для содержимого. Некоторой части содержимого (например, объявления, рекламные плитки) может необходимо быть динамической и обслуживаться через API, и вызовы содержимого могут иметь свободную структуру. Если необходимо предоставить содержимое, то интерфейс с передачей состояния представления может быть использован для извлечения содержимого. Конкретное содержимое может быть предоставлено для конкретной среды или устройств, и содержимое может быть связано с магазинами.
необх.
Таблица 8
Пример API-вызовы Ценового Расчета
[0058] Некоторые конечные точки, которые могут быть общественными, могут быть полезными для уменьшения размера меню и скорости отклика (например, /products/ могут использоваться из расчета единицу продукции, если такая продукция как пицца обладает сложными конфигурационными данными).
[0059] В данной архитектуре, изображенной в системе 500 на облачной основе с Фиг.5, логика 590 услуг может быть реализована с использованием JavaScript, а услуги 580 могут быть предоставлены в облачных контейнерах с использованием, например, Docker® (Docker, Inc., http://www.docker.com), и Node.js®, который является динамическим JavaScript, построенным на механизме обработки Chrome V8 JavaScript от Google. API 570 могут быть реализованы с использованием архитектуры с передачей состояния представления (RESTful). Может использоваться услуга на облачной основе высокой доступности, такая как Microsoft Azure®, Amazon Web Services® или Google Web Services®.
[0060] На Фиг.6A показана блок-схема согласно одному варианту реализации POS-архитектуры 600 предприятия. Данная архитектура разделена на две части: часть 610 в магазине и прогрессивная усовершенствованная часть 660. Часть 610 в магазине содержит систему 615 ввода заказа, которая содержит первое отделение 620 для одного или более из предоставления меню, специальных предложений, определения ценового расчета, хранения потребительской информации, управления территориями доставки и обработки платежей. Часть 610 в магазине также включает в себя второе отделение 625, которое содержит одно или более из пользовательского интерфейса, управления наличными средствами и выручки. Часть 610 в магазине также содержит систему 630 обслуживания на кухне наряду с пользовательским интерфейсом и систему 635 обслуживания на вынос наряду с пользовательским интерфейсом. Часть 610 в магазине также содержит диспетчерскую систему 640, содержащую элементы 645 для маршрутизации и управления наличными средствами, наряду с пользовательским интерфейсом. Кэшированный магазин или база 650 данных могут быть предоставлены для хранения хода выполнения работы (например, заказы, которые были начаты, но все еще не завершены и введены).
[0061] Прогрессивная усовершенствованная часть 660 содержит первый участок 665 на облачной основе, который содержит информацию о конфигурации магазина, потребителях, персонализации и OLO. В некоторых сценариях, участок 665 на облачной основе совместно использует данные с кэшированным магазином 650. Прогрессивная усовершенствованная часть 660 также содержит хост-машину 670 служебного отдела, которая обеспечивает функциональность служебного отдела для системы, сосредотачивающейся на бизнес цикле - данная функциональность включает в себя, например, одно или более из функциональности прогноза, материально-технических ресурсов, трудовых ресурсов, табельных часов и передачи отчетов. Прогрессивная усовершенствованная часть 660 также содержит географическую информацию 675, такую как карты, положения и совместное объединение, которые могут взаимодействовать с диспетчерской системой 640 и обмениваться географической (и другой) информацией с устройствами 680.
[0062] На Фиг.6B показана блок-схема, которая дополнительно уточняет часть 610 в магазине и изображает POS программное обеспечение 655 для системы 615 ввода заказа. В варианте осуществления, изображенном на Фиг.6B, POS программное обеспечение 655 включает в себя первое отделение 620, второе отделение 625 и базу 628 данных (например, базу 650 данных). В одном варианте осуществления, первое отделение 620 (меню, специальные предложения, ценовой расчет и т.д.) реализуется в качестве портативного участка, выполненного с возможностью быть портативным между различными POS-устройствами, планшетами, смартфонами или другими подходящими устройствами. Портативный участок реализуется с помощью JavaScript, в одном варианте осуществления. В некоторых вариантах осуществления второе отделение 625 реализуется в качестве собственного участка, например, одного или более приложений, сценариев, библиотек, модулей или другого подходящего формата инструкций, написанного и/или компилируемого для операционной системы и/или аппаратного обеспечения устройства, на котором установлено POS программное обеспечение 655.
[0063] Один или более участков POS-архитектуры 600 предприятия реализуются вычислительной системой 100, в различных вариантах осуществления. В одном варианте осуществления, например, одно или более клиентских устройств 112 реализуют часть 610 в магазине, а один или более серверов 122 реализуют прогрессивную усовершенствованную часть 660. В одном варианте осуществления клиент 112 реализует POS программное обеспечение 655.
[0064] В различных вариантах осуществления клиентское устройство 112 использует участок ценового расчета первого отделения 620 для определения информации ценового расчета (например, общую сумму к оплате) для торговой транзакции. В одном варианте осуществления, например, торговая транзакция соответствует информации заказа для корзины, и, на основе товаров и их количества в корзине, клиентское устройство 112 определяет общую сумму к оплате, которая отражает купоны, рекламные специальные предложения, объединенные специальные предложения (например, два или более товаров, которые обеспечивают скидку при совместной покупке).
[0065] В некоторых вариантах осуществления первое отделение 620 включает в себя отделение обработки платежа, которое взаимодействует с криптовалютной системой (например, Bitcoin, Ethereum, Litecoin и т.д.; не изображена) или другой подходящей цифровой платежной системой. В одном варианте осуществления, первое отделение 620 осуществляет связь со сторонним приложением, исполняемым на клиентском устройстве 112 для обработки платежа через криптовалютную систему. В одном варианте осуществления, первое отделение 620 включает в себя отделение ценового расчета, которое регулирует ценовой расчет или специальные предложения на основе выбранной платежной системы. Например, отделение ценового расчета определяет различные цены для заданной торговой транзакции на основе того, выбрана ли оплата наличными, оплата по кредитной карте, или оплата криптовалютой.
[0066] На Фиг.7 показан примерный снимок экрана веб-интерфейса 700, который может использоваться для взаимодействия с серверной стороной системы (например, серверной стороной 850 на Фиг.8). Он включает в себя примерную конфигурационную инструментальную панель 710, которая обеспечивает возможность ввода подорганизации 720, что обеспечивает древовидную структуру для определительных данных так, чтобы схема наследования могла использоваться для легкого управления конфигурациями, например, для тысячи магазинов. Инструментальная панель 710 также предоставляет менеджеру возможность добавлять магазин 730, управлять главным меню 740 и вводить информацию о продукции 750. В общем случае, инструментальная панель 710 может быть реализована в качестве инструмента администратора, который используется для ввода и подержания информацию о продукции для сайта электронной торговли. Может существовать значительное наложение между администрированием магазинов и онлайн воплощением, и таким образом, осуществление конфигурирования один раз может обеспечить конфигурирование как магазина, так и онлайн воплощения.
[0067] Система приносит пользу вследствие высокой или постоянной доступности, потому что время простоя системы оформления заказа может привести в результате к существенным потерям дохода. Поэтому, согласно одному варианту реализации, обновления программного обеспечения на серверной стороне (которые могут занимать длительные периоды времени на установку) могут быть выполнены на временной системе, и как только все обновления установлены, временная система может стать производственной системой посредством выполнения переключения. По такому принципу, переход к обновлению может быть в целом прозрачным для потребителей и приведет в результате к небольшому прерыванию или отсутствию прерывания в работе предоставляемых услуг.
[0068] В одном варианте осуществления, функциональность POS-средства 402, 540 основано на размещенной системе, выполняющейся на планшете или смартфоне с использованием платформы iOS или Android (например, клиент 112), и таким образом может выполняться на потребительском устройстве. В одном варианте реализации, POS-средство может иметь существенную степень живучести, даже когда сетевое соединение разорвано, что означает, что устройство и система будут способны функционировать для большей части ее функциональности, даже если некоторые базовые средства функциональности могут функционировать в несколько ухудшенном режиме.
[0069] Согласно одному варианту реализации, когда линия связи разорвана (например, линия 116 или 118 связи), многие из задач по вводу заказов могут по-прежнему осуществляться. Например, все такие данные как меню, специальные предложения, ценовой расчет и потребительская информация, используемые в течение ввода заказа, могли быть продублированы в POS-средстве или на потребительском устройстве (например, клиенте 112). Однако, дополнительно к просто данным, фактическая логика, например, функции в виде JavaScript или другого подходящего формата инструкций или кода, могут также быть продублированы и кэшированы для выполнения на клиентской стороне, даже когда линия связи разорвана. В одном варианте осуществления, например, функции, которые предоставляют одно или более из пользовательского интерфейса для выбора продукции и/или подстраивания под пользователя, управления корзиной, определение ценового расчета (например, цен на продукцию, скидки, налоги, общие суммы заказа), деталей оплаты или других участков части 610 в магазине (например, система 630 обслуживания на кухне, система 635 обслуживания на вынос), хранятся на клиенте 112.
[0070] На Фиг.8 показана блок-схема, изображающая систему 800, в которой заказ может быть введен на клиентской стороне 810 или на серверной стороне 850, согласно одному варианту осуществления. Клиентская сторона 810 реализуются на POS-средстве или клиенте 112, а серверная сторона 850 реализуется на одном или более серверах 122, в одном варианте осуществления. В первом случае присутствует нормальная связь (например, подходящее соединение связи для передачи данных доступно) на линии связи между клиентской стороной 810 и серверной стороной 850 (например, линия 116 или 118 связи). Данное определение нормальной связи может быть осуществлено обслуживающей состояние связи программой 820 (например, исполняемый процесс или поток), которая наблюдает за состоянием связи соответствующих линий связи. В данном первом случае функция 825' заказа, реализуемая на серверной стороне, используется для размещения заказов. К информации, относящейся к заказу, такой как ценовой расчет, специальные предложения или скидки и потребительская информация 830', может быть осуществлен доступ, и логика для конкретного заказа используется функцией 825' заказа. Например, потребителю может быть предложен бесплатный напиток, при выполнении любого из следующего: a) общий заказа превышает двадцать долларов; и b) потребитель является потребителем на протяжении более одного года. Данная логика, которая может быть написана на JavaScript, осуществляет доступ к информации из ценового расчета и данных специальных предложений наряду с потребительской информацией 830'. На серверной стороне 850 можно предположить, что вся связанная информация актуальна.
[0071] Во втором случае обслуживающая состояние связи программа 820 определяет, что линия связи между клиентской стороной 810 и серверной стороной 850 разорвана. Однако, это не выводит из строя все аспекты размещения заказа. В данном втором случае, используются функция 825 заказа и/или связанная логика, наряду со связанными данными о ценовом расчете, специальных предложениях, и потребительская информация 830, которые были предварительно загружены в запоминающее устройство, доступное на клиентской стороне 810 (например, кэш-память 220, запоминающее устройство 204, хранилище 206 вычислительного устройства 200, база 628 данных, база 650 данных). Это может быть осуществлено согласно функции 860 синхронизации, которая действует для синхронизации данных и логики как на клиентской стороне 810, так и на серверной стороне 850. В одном варианте осуществления, одна или обе из функции 825 заказа и информации 830 соответствуют совместно используемой функциональности 404, как описано выше по отношению к Фиг.4. В одном варианте осуществления, функция 825 заказа и информация 830 соответствуют первому отделению 620, как описано выше по отношению к Фиг.6B.
[0072] Синхронизация может быть запущена либо истечением таймера, который установлен для осуществления синхронизации с некоторым предварительно заданным интервалом (например, каждые 100 миллисекунд, каждые 3 секунды или другой подходящий интервал), после возникновения некоторого события, такого как включение питания клиентского устройства, прямого запроса на синхронизацию от клиента, выполнение некоторого действия, такого как заведение или изменение заказа и т.д. Таким образом, различные аспекты заказа, такие как правила ценового расчета, специальное предложение или скидки, логика и т.д., могут быть реализованы на клиентской стороне таким же образом, что большинство из них могло быть реализовано на серверной стороне. Использование JavaScript может обеспечить возможность исполнения одного и того же или почти одного и того же кода как на клиентской стороне 810, так и на серверной стороне 850 без необходимости поддержки различных кодов в зависимости от платформы. Дополнительное преимущество состоит в том, что, так как код является одним и тем же или почти одним и тем же на клиентской стороне и на серверной стороне, то возможности использования являются одними и теми же при выполнении необходимой функции. Задание «магазина» (конфигурация магазина), которое хранится в базе 830, 830' данных, может содержать свои атрибуты, товары, которые продает магазин, свою структуру ценового расчета и скидки, которые существуют. POS-средство и облако могут функционировать схожим образом, потому что на них выполняется одна и та же библиотека JavaScript, даже если лежащая в основе архитектура аппаратного обеспечения или операционной системы (OS) отличается.
[0073] В конечном счете, сам заказ может не обладать возможностью осуществления с устройства, с которым не функционируют линии связи. Однако, некоторая ограниченная функциональность может по-прежнему обладать возможностью осуществления, и различные другие аспекты заказа могут быть настроены так, что как только связь восстановлена, заказ может сразу продолжить свое выполнение. Например, POS-система может не быть выполнена с возможностью приема кредитных карточек, например, но она может быть выполнена с возможностью отслеживания заказа, выведения заказа на дисплей очередности или распечатывания билета очередности, и распечатывания кассового чека потребителю. Кроме того, система сможет предлагать принимать заказ по кредитной карточке без авторизации (и таким образом с более высокой скоростью). Логика может применяться так, чтобы заказ по кредитной карточке без авторизации был возможным только для повторных потребителей, которые уже осуществляли оплату по кредитной карточке.
[0074] Согласно одному варианту реализации, в случае расхождения в ценовом расчете, в POS-контексте, кода, исполняющийся на клиенте, имеет приоритет над кодом, исполняющимся на сервере. Цены могут изменяться ежедневно в большом предприятии. Как только цена рассчитана и сохранена, она не пересматривается. Однако, в веб-контексте электронной торговли, сервер будет рассчитывать главную цену в облаке. Это препятствует размещение заказов на бесплатную пиццу хакерами на основе взломанного модуля ценового расчета JavaScript.
[0075] Способность дублировать функциональность (например, синхронизировать данные и логику) между клиентской стороной 810 и серверной стороной 850 может также предоставить возможность точного воспроизведения функциональности между ними двумя на основе вычислительной мощности и других факторов доступности. Если функционирование сети связи нарушено, но телефонная сеть все еще доступна, то клиентская сторона 810 сможет вернуться к размещению результирующего заказа через телефонную сеть. Функциональность в отношении клиентской стороны 810 может увеличиться, поскольку эти устройства получают прирост производительности.
[0076] Так как некоторая логика может быть вынесена в портативную среду выполнения, такую как JavaScript, то она может исполняться независимо различными устройствами исходя из целей производительности и живучести. Связанные данные 830 могут быть представлены в качестве большого двоичного объекта (blob) данных в такой форме как Объектная Нотация JavaScript (JavaScript Object Notation (JSON)). Даже притом, что данные поддерживаются в большом двоичном объекте, преимущество его хранения по такому принципу состоит в том, что все оно расположено в одном месте. Таким образом, даже притом, что, например, информация, сопровождающая заказ пиццы, является комплексной, в любом заданном магазине есть только несколько дюжин товаров, предназначенных для продажи.
[0077] Корзина в магазине в торгово-кассовом средстве, или потребительская корзина в браузере, выполняющемся локально, может легко осуществить доступ к сложным правилам, которые управляют ценой товара, через портативную функцию и логику, обеспеченную, например, в JavaScript, чтобы определить цену для всех товаров в корзине с учетом всех сложных правил, которые могут быть вовлечены в ценовой расчет пиццы. Портативная логика может быть обеспечена где угодно, в облаке, на планшете, на котором выполняется торгово-кассовая система, может быть встроена в приложение, выполняющееся в смартфоне пользователя, так, чтобы цена на все могла быть рассчитана немедленно. Это делает приложение более живучим, потому что важные функциональные средства выполняются локально - оно не рассчитывает на соединение связи с серверной стороной 850. Пользователь может пополнять свою корзину товарами, рассчитывать их цену, продавать их и затем действовать дальше.
[0078] Система, в частности, преимущественна, когда весь каталог доступных товаров для заказа является относительно малым и может легко кэшироваться/храниться на локальных устройствах. Способность реализации каталога и кэширования локально и предоставление возможности приложению исполняться где угодно по необходимости в портативной среде может таким образом быть преимущественным. Например, в варианте использования, где пользователь хочет добавить продукцию в корзину, если функция «добавить в корзину» реализована на серверной основе, то потеря соединения связи (например, когда подходящее соединение связи для передачи данных не доступно) препятствует добавлению пользователем продукции в свою корзину. С помощью системы, описанной в данном документе, функция «добавить в корзину» может быть реализована на пользовательском устройстве, и таким образом может быть успешно выполнена, даже когда соединение связи разорвано. Локальная функция обновляет данные корзины локально, и данная информация может быть синхронизирована позже, когда соединение будет восстановлено.
[0079] Код, исполняемый на клиентской стороне 810, может быть подвергнут «минификации», которая уменьшает размер кода и обеспечивает некоторую степень безопасности посредством запутанности. Аутентификационные подпрограммы могут быть реализованы в собственном (родном) приложении на клиентской стороне 810, и этот код может быть помещен в оболочку так, чтобы код мог быть привязан к специализированному устройству, такому как смартфон пользователя или POS-устройство (например, клиент 112). В одном варианте осуществления, клиентская сторона 810 имеет программное обеспечение, которое предоставляет возможность синхронизироваться с программным обеспечением и данными на серверной стороне 850 и обеспечивает средство активации, например, проверка лицензии, чтобы гарантировать, что устройство на клиентской стороне 810 авторизовано и аутентифицировано. Другими словами, клиентская сторона 810 выполнена с возможностью приема программного обеспечения, информации и/или обновлений данных от серверной стороны 850 при условии того, что клиентская сторона 810 аутентифицирована.
[0080] Клиентская сторона 810 может также использовать сертификат шифрования, чтобы гарантировать защищенную связь между клиентской стороной 810 и серверной стороной 850 и для перемещения информации кредитной карточки или идентифицируемой персональной информации. Так как система может содержать значительный объем потребительской информации, включающей в себя хронологические потребительские данные, то поддержание данных защищенным образом может быть свойством системы. Журнальное приложение может быть предоставлено на любой или обеих из клиентской стороны 810 и серверной стороны 850 таким образом, чтобы можно было определять, кто осуществил доступ к потребительским данным. В одном варианте реализации серийный номер устройства на клиентской стороне 810 может быть связан с лицензированием программного обеспечения (например, администрироваться на серверной стороне 850), и часть системы обеспечения безопасности на серверной стороне 850 может гарантировать, что к данным, принятым от одного устройства, не может быть осуществлен доступ другим устройством - то есть, принятые данные могут быть привязаны к конкретному устройству или привязаны к организации (например, POS-организации, местоположению с франшизой, группе с франшизой и т.д.).
ТЕНЕВАЯ ВИРТУАЛИЗАЦИЯ
[0081] Другое свойство POS-системы высокой надежности обеспечивает способ «формирования теневой копии» («шедоуинг») физической или «действующей» системы, локальной или удаленной, с помощью виртуальной копии или «резервирования» этой системы в центре хранения и обработки данных или облаке для операции резервного копирования (предпочтительно операции немедленного резервного копирования) и для дублирования процессов без воздействия на состояние системы в реальном мире (например, записей завершенных и обрабатываемых заказов, потребительской информации, ценовой информации и т.д. на действующей системе). Предоставляется способ, который гарантирует эффективную синхронизацию функций и данных только в той степени, которая необходима для реализации и правильного функционирования функциональных компонентов, во избегании рисков того, что «данные в двух местах могут отличаться», и для гарантирования того, что защищенная информация не будет рассекречена посредством дублирования защищенной информации на физических системах и системах с виртуальными образами.
[0082] На Фиг.9 показана блок-схема, изображающая вариант реализации системы 900 теневой виртуализации. В работе может быть некоторое количество физических систем 910, таких как Система A 915, наряду с ее связанными приложениями и данными 920, и Система B 915', наряду с ее связанными приложениями и данными 920'. Создается главная копия каждой индивидуальной особенности (например, конфигурация, параметры инициализации или другая подходящая информация) множества удаленных систем 915, 915' (совместно, или в качестве примера 915), и каждая система 915 затем виртуализируется в рабочую виртуальную машину 965, 965' (например, копию) исходной системы в облаке 130. Сюда включены и связанные приложения и данные 920, 920', которые создаются в качестве приложений и данных 970, 970' в облаке 130.
[0083] Так как у виртуальной машины может быть произвольное количество системных CPU и других ресурсов, назначенных ей, виртуальная машина(ы) 965 является масштабируемой до размера доступного аппаратного обеспечения, или с помощью систем на облачной основе, до максимальной емкости облака.
[0084] Несмотря на то, что традиционные способы виртуализации приводят в результате к дублированию физической системы, они не предусматривают одновременное функционирование физической системы и виртуальной системы (копии) (например, системы 915 и системы 965) и эффективный механизм для синхронизации физической и виртуальной систем, что может привести в результате к тому, что эти две системы станут различными (например, с различными состояниями системы, хранящимися данными и т.д.). Таким образом, механизм 930 синхронизации может быть предоставлен таким образом, что он поддерживает физические системы 915 и их соответственные приложения и данные 920 полностью синхронизированными с их соответственной резервной виртуальной системой 965 и ее соответственными приложениями и данными 970. Механизм 930 синхронизации может содержать инструменты управления, которые отслеживают развертывание виртуальных копий, изменяют конкретные характеристики виртуальной копии, такие как IP-адреса, имя системы и защищенную информацию, таким образом, чтобы образы могли совпадать друг с другом без конфликтов. В одном варианте осуществления механизм 930 синхронизации выполняется на серверной стороне 850. В другом варианте осуществления механизм 930 синхронизации выполняется сервером 122, приспособленным для обработки синхронизации одной, двух или более физических систем 915. В некоторых вариантах осуществления механизм 930 синхронизации выполняется на клиентской стороне 810 или как на клиентской стороне 810, так и на серверной стороне 850, взаимодействующих друг с другом.
[0085] Интерфейс 997 прикладного программирования (API) может быть обеспечен так, чтобы изменения в виртуальных копиях, сделанные разработчиками 995, могли производиться через проверенные и достоверные API-функции, и эти функции могли вызываться из программ или с веб-страничек с использованием стандарта HTTPS с SSL-защитой.
[0086] Физические и виртуальные системы 915 и 965 могут осуществлять связь с внешними системами 980, которые используют конфиденциальные данные и/или требуют соответствия требованиям обеспечения защиты и секретности. Например, торгово-кассовые системы 985 могут использовать информацию кредитной карточки, которая подчиняется правилам Отрасли Платежных Карт (Payment Card Industry (PCI)). Медицинские системы 990 могут использовать анализируемые данные потребителя или пациента, подчиняющиеся требованиям Закона о Конфиденциальности в Сфере Здравоохранения (Health Industry Privacy Act, HTPAA). Система может включать в себя технологию изоляции, раскрытую в патенте США № 8,775,802 и/или 8,429,429, содержимое которых включено в данный документ посредством ссылки. В некоторых вариантах осуществления внешние системы 980 включают в себя криптовалютную систему (например, Bitcoin, Ethereum, Litecoin и т.д.; не изображена) или другую подходящую цифровую платежную систему.
[0087] В различных вариантах осуществления физическая система 915 функционирует без изменений, а исполняемая виртуальная копия 965 осуществляет теневое копирование выбранных операций физической системы 915 для той функциональности, для которой желательно формировать теневую копию. В одном варианте осуществления, например, функция ценового расчета заказа включена в желаемую теневую функциональность. В данном примере администрирование систем может вовлекать использование механизма 930 синхронизации для дублирования обновлений ценового расчета и изменений меню как для физической системы 915, так и для исполняющейся виртуальной копии 965. Содействие синхронизации посредством механизма 930 синхронизации может быть осуществлено посредством реализации временной отметку в журнале 935 завершений для каждого выполненного обновления.
[0088] Дополнительно, управление удаленными процедурами может осуществляться посредством «активаторов», которые могут быть задействованы на основе набора правил, который гарантирует, что, когда происходят события в физической системе 915, то же самое событие «активируется» на исполняющейся виртуальной копии 965. Так как некоторые процессы не завершаются без перезагрузки системы, то функциональность активаторов гарантирует, что физические 915 и виртуальные 965 системы находятся в одном и том же состоянии после применения обновления.
[0089] Чтобы гарантировать, что система 900 функционирует номинально, пробные транзакции могут периодически применяться как к физической 915, так и к исполняющейся виртуальной копиям 965, и результаты транзакций могут быть сравнены посредством модуля 940 сравнения, чтобы гарантировать, что результаты являются одинаковыми. Расхождения могут быть изучены для определения источника проблемы, и системы 915, 965 могут быть повторно синхронизированы, чтобы восстановить номинальное функционирование даже перед тем, как ошибка будет исправлена.
[0090] Когда система функционирует номинально, то запросы могут быть выполнены исполняющейся виртуальной системой 965 без вмешательства в физическую систему 915. Например, цена заказов может быть рассчитана, и они затем могут быть предоставлены полностью завершенными из исполняющейся виртуальной системы 965 в физическую систему 915.
[0091] Одно преимущество данной архитектуры состоит в том, что она может обеспечивать намного большую масштабируемость и более быстрое оборотное время для обновлений и изменений ценового расчета и устранять отказ в работе в одном месте, так как исполняющаяся виртуальная система 965 может также служить в качестве хост-машины обработки отказа для удаленных магазинов (например, на клиентской стороне 810) в случае отказа физической системы 915 (например, на серверной стороне 850) или линии связи с физической системой 915. Система администрирования или механизм 930 синхронизации могут затем использоваться для восстановления операций физической системы 915 после ее починки.
[0092] На Фиг.10 показана блок-схема примерного способа 1000 отображения информации ценового расчета, согласно одному варианту осуществления. В некоторых вариантах осуществления клиент 112 выполнен с возможностью выполнения способа 1000. В различных вариантах осуществления, например, POS-средство 540, клиентская сторона 810, устройство, исполняющее POS программное обеспечение 655, или другое подходящее устройство выполняет способ 1000.
[0093] На этапе 1002 комплект (блок) данных, который включает в себя клиентскую информацию ценового расчета, принимается клиентским устройством. Клиентская информация ценового расчета синхронизирована с серверной информацией ценового расчета на серверном устройстве. В одном варианте осуществления клиентская информация ценового расчета и серверная информация ценового расчета соответствуют информации 830 и информации 830', соответственно, в то время как клиентское устройство и серверное устройство соответствуют клиентской стороне 810 и серверной стороне 850, соответственно.
[0094] На этапе 1004 графический пользовательский интерфейс, приспособленный для торговых транзакций, генерируется клиентским устройством. В одном варианте осуществления комплект данных включает в себя информацию меню для торговых транзакций, которая приспособлена считываться в пределах портативной среды выполнения клиентского устройства, и клиентское устройство генерирует графический пользовательский интерфейс на основе информации меню. В некоторых вариантах осуществления клиентское устройство принимает обновленный комплект данных (1002) и автоматически генерирует обновленный графический пользовательский интерфейс (1004). Графический пользовательский интерфейс включает в себя одно или более из пунктов меню, корзины выбранных товаров, информации ценового расчета (например, количество, цена за единицу товара, скидки, налоги и т.д.), потребительской информации, информации купонов, рекомендуемых товаров или объединения товаров или другой подходящей информации для торговых транзакций.
[0095] На этапе 1006 информация заказа для торговой транзакции принимается клиентским устройством через графический пользовательский интерфейс. Например, принимается заказ (например, корзина) пиццы со связанной потребительской информацией, выбранными дополнительными ингредиентами сверху и сопутствующими заказу товарами.
[0096] На этапе 1008 клиентское устройство определяет, доступно ли соединение связи между клиентским устройством и серверным устройством для торговых транзакций. В некоторых вариантах осуществления этап 1008 выполняется для каждой торговой транзакции. В других вариантах осуществления этап 1008 выполняется в различные моменты времени, например, при инициализации клиентского устройства, генерировании графического пользовательского интерфейса, периодически (например, каждые 30 секунд, 5 минут и т.д.), когда происходят обнаруженные события (например, подключение к сетевому разъему), или в другие подходящие моменты времени. В ответ на определение того, что соединение связи доступно, клиентское устройство переходит к этапу 1010. В ответ на определение того, что соединение связи недоступно, клиентское устройство переходит к этапу 1012.
[0097] На этапе 1010 клиентское устройство получает информацию ценового расчета для торговой транзакции от серверного устройства. Серверное устройство расположено удаленно от клиентского устройства и генерирует информацию ценового расчета на основе серверной информации ценового расчета, расположенной удаленно от клиентского устройства. В одном варианте осуществления, например, клиентское устройство отправляет информацию заказа в серверное устройство, и серверное устройство генерирует и отправляет информацию ценового расчета обратно клиентскому устройству. Серверное устройство генерирует информацию ценового расчета на основе информации 830' и с использованием функции 825' заказа, в одном варианте осуществления.
[0098] На этапе 1012 клиентское устройство определяет информацию ценового расчета для торговой транзакции, при этом генерируется информация ценового расчета на основе клиентской информации ценового расчета, расположенной локально в клиентском устройстве. Клиентское устройство генерирует информацию ценового расчета на основе информации 830 и с использованием функции 825 заказа, в одном варианте осуществления. В некоторых вариантах осуществления комплект данных включает в себя исполняемые инструкции и информацию (например, информацию 830 и функцию 825 заказа).
[0099] В некоторых вариантах осуществления клиентская информация ценового расчета включает в себя инструкции, которые приспособлены исполняться в пределах портативной среды выполнения клиентского устройства для генерирования второй информации ценового расчета. Например, клиентское устройство исполняет инструкции в пределах клиентской информации ценового расчета для определения информации ценового расчета на этапе 1012. В одном варианте осуществления, инструкции клиентской информации ценового расчета приспособлены исполняться в пределах портативной среды выполнения серверного устройства для генерирования, серверным устройством, информации ценового расчета. Например, серверное устройство исполняет инструкции в пределах клиентской информации ценового расчета (с использованием копии, хранящейся для серверного устройства, например, серверную информацию ценового расчета) для определения информации ценового расчета на этапе 1010. В одном варианте осуществления как клиентское устройство, так и серверное устройство обеспечивают портативную среду выполнения для исполнения инструкций, как описано выше.
[0100] На этапе 1014 информация ценового расчета отображается клиентским устройством через графический пользовательский интерфейс. В различных сценариях отображаемая информация ценового расчета генерируется серверным устройством или клиентским устройством на основе того, доступно ли соединение связи. В некоторых вариантах осуществления клиентское устройство выгружает запись торговой транзакции на серверное устройство. В одном варианте осуществления, например, клиентское устройство выгружает запись (или группу записей) после того, как соединение связи становится доступным.
[0101] В некоторых сценариях клиентское устройство продолжает выполнять один или более этапов способа 1000 для последующих торговых транзакций. Например, клиентское устройство принимает информацию заказа (1006), определяет, является ли соединение связи доступным (1008), получает или определяет информацию ценового расчета (1010 или 1012), и отображает информацию ценового расчета (1014). В некоторых сценариях клиентское устройство выборочно получает информацию ценового расчета (1010) или определяет информацию ценового расчета (1012) динамически на основе доступности соединения связи. Соответственно, когда соединение связи недоступно, торговая транзакция может по-прежнему быть завершенной без связи с серверным устройством в течение торговой транзакции, и таким образом обеспечивается торгово-кассовая система высокой доступности.
[0102] В некоторых вариантах осуществления торгово-кассовая (POS) система высокой доступности включает в себя POS-устройство, серверное устройство и модуль синхронизации. POS-устройство включает в себя POS-процессор и запоминающее устройство, при этом в запоминающем устройстве хранится i) информация каталога для по меньшей мере одного из продуктов и услуг, связанных с торгово-сервисным предприятием, и ii) программируемая логика, которая использует информацию каталога POS-устройства для предоставления результата, относящегося к транзакции с торгово-сервисным предприятием. Программируемая логика POS-устройства включает в себя инструкции, приспособленные исполняться в POS-процессоре. Серверное устройство включает в себя серверный процессор и запоминающее устройство, при этом в запоминающем устройстве хранится i) информация каталога по меньшей мере для одного из продуктов и услуг, связанных с торгово-сервисным предприятием, и ii) программируемая логика, которая использует информацию каталога серверного устройства для предоставления результата, относящегося к транзакции с торгово-сервисным предприятием. Программируемая логика серверного устройства включает в себя инструкции, приспособленные исполняться на серверном процессоре. Модуль синхронизации синхронизирует информацию каталога POS-устройства с информацией каталога серверного устройства и синхронизирует программируемую логику POS-устройства с программируемой логикой серверного устройства. В одном варианте осуществления POS-устройство, серверное устройство и модуль синхронизации соответствуют клиентской стороне 810, серверной стороне 850 и функции 860 синхронизации, соответственно.
[0103] В одном варианте осуществления реализуемый на клиентском устройстве способ отображения информации ценового расчета включает в себя: генерирование, посредством клиентского устройства, графического пользовательского интерфейса, приспособленный для торговых транзакций; прием, посредством клиентского устройства, информации первого заказа для первой торговой транзакции через графический пользовательский интерфейс; получение, посредством клиентского устройства и от серверного устройства, расположенного удаленно от клиентского устройства, первой информации ценового расчета для первой торговой транзакции, причем первая информация ценового расчета сгенерирована серверным устройством на основе серверной информации ценового расчета, расположенной удаленно от клиентского устройства; отображение, посредством клиентского устройства, первой информации ценового расчета через графический пользовательский интерфейс; прием, посредством клиентского устройства, информации второго заказа для второй торговой транзакции через графический пользовательский интерфейс; определение, посредством клиентского устройства, второй информации ценового расчета для второй торговой транзакции, при этом вторая информация ценового расчета сгенерирована на основе клиентской информации ценового расчета, расположенной локально в клиентском устройстве; и отображение, посредством клиентского устройства, второй информации ценового расчета через графический пользовательский интерфейс.
[0104] В других вариантах осуществления способ включает в себя любое подходящее сочетание одной или более из следующих особенностей.
[0105] Способ дополнительно включает в себя прием, посредством клиентского устройства, комплекта данных, который включает в себя клиентскую информацию ценового расчета, при этом клиентская информация ценового расчета синхронизирована с серверной информацией ценового расчета.
[0106] Клиентская информация ценового расчета включает в себя инструкции, которые приспособлены исполняться в пределах портативной среды выполнения клиентского устройства для генерирования второй информации ценового расчета.
[0107] Инструкции клиентской информации ценового расчета приспособлены исполняться в пределах портативной среды выполнения серверного устройства для генерирования, серверным устройством, первой информации ценового расчета.
[0108] Портативная среда выполнения клиентского устройства и портативная среда выполнения серверного устройства являются средами выполнения JavaScript.
[0109] Комплект данных дополнительно включает в себя информацию меню для торговых транзакций, которая приспособлена считываться в пределах портативной среды выполнения клиентского устройства. Способ дополнительно включает в себя генерирование графического пользовательского интерфейса на основе информации меню.
[0110] Информация меню приспособлена считываться в пределах портативной среды выполнения серверного устройства.
[0111] Способ дополнительно включает в себя выполнение второй торговой транзакции без связи с серверным устройством в течение второй торговой транзакции.
[0112] Способ дополнительно включает в себя определение, доступно ли соединение связи между клиентским устройством и серверным устройством для второй торговой транзакции; при этом клиентское устройство определяет вторую информацию ценового расчета, когда определено, что линия связи недоступна для второй торговой транзакции.
[0113] Способ дополнительно включает в себя выгрузку записи второй торговой транзакции на серверное устройство.
[0114] В другом варианте осуществления клиентское устройство для отображения информации ценового расчета включает в себя долговременное машиночитаемое запоминающее устройство и аппаратный процессор. Аппаратный процессор генерирует графический пользовательский интерфейс, приспособленный для торговых транзакций; принимает информацию первого заказа для первой торговой транзакции через графический пользовательский интерфейс; получает, от серверного устройства, расположенного удаленно от клиентского устройства, первую информацию ценового расчета для первой торговой транзакции, причем первая информация ценового расчета сгенерирована серверным устройством на основе серверной информации ценового расчета, расположенной удаленно от клиентского устройства; отображает первую информацию ценового расчета через графический пользовательский интерфейс; принимает информацию второго заказа для второй торговой транзакции через графический пользовательский интерфейс; определяет вторую информацию ценового расчета для второй торговой транзакции, при этом вторая информация ценового расчета генерируется на основе клиентской информации ценового расчета, расположенной локально в клиентском устройстве; и отображает вторую информацию ценового расчета через графический пользовательский интерфейс.
[0115] В других вариантах осуществления клиентское устройство включает в себя любое подходящее сочетание одной или более из следующих особенностей.
[0116] Клиентское устройство принимает комплект данных, который включает в себя клиентскую информацию ценового расчета, при этом клиентская информация ценового расчета синхронизирована с серверной информацией ценового расчета.
[0117] Клиентская информация ценового расчета включает в себя инструкции, которые приспособлены исполняться в пределах портативной среды выполнения клиентского устройства для генерирования второй информации ценового расчета.
[0118] Инструкции клиентской информации ценового расчета приспособлены исполняться в пределах портативной среды выполнения серверного устройства для генерирования, серверным устройством, первой информации ценового расчета.
[0119] Портативная среда выполнения клиентского устройства и портативная среда выполнения серверного устройства являются средами выполнения JavaScript.
[0120] Комплект данных дополнительно включает в себя информацию меню для торговых транзакций, которая приспособлена считываться в пределах портативной среды выполнения клиентского устройства, при этом аппаратный процессор генерирует графический пользовательский интерфейс на основе информации меню.
[0121] Информация меню приспособлена считываться в пределах портативной среды выполнения серверного устройства.
[0122] Клиентское устройство выполняет вторую торговую транзакцию без связи с серверным устройством в течение второй торговой транзакции.
[0123] Аппаратный процессор определяет, доступно ли соединение связи между клиентским устройством и серверным устройством для второй торговой транзакции; при этом аппаратный процессор определяет вторую информацию ценового расчета, когда определено, что линия связи недоступна для второй торговой транзакции.
[0124] Аппаратный процессор выгружает запись второй торговой транзакции на серверное устройство.
РАЗНОВИДНОСТИ
[0125] Все или часть аспектов настоящего изобретения, описанного в данном документе, могут быть реализованы с использованием компьютера/процессора общего назначения с компьютерной программой, которая, при ее исполнении, выполняет любую из соответственных методик, алгоритмов и/или инструкций, описанных в данном документе. Кроме того, или альтернативно, например, может быть использован специализированный компьютер/процессор, который может содержать специализированное аппаратное обеспечение для выполнения любой из методик, алгоритмов или инструкций, описанных в данном документе.
[0126] Варианты реализации вычислительных устройств, описанных в данном документе (и алгоритмов, способов, инструкций и т.д., сохраненных на них и/или исполняемых ими) могут быть воплощены в аппаратном обеспечении, программном обеспечении или любом их сочетании. Аппаратное обеспечение может включать в себя, например, компьютеры, ядра интеллектуальной собственности (IP), специализированные интегральные схемы (ASIC), программируемые логические матрицы, оптические процессоры, контроллеры с программируемой логикой, микрокод, микроконтроллеры, серверы, микропроцессоры, цифровые сигнальные процессоры или любую другую подходящую схему. В формуле изобретения термин «процессор» должен пониматься как охватывающий любое из вышеприведенного аппаратного обеспечения либо отдельно или в сочетании.
[0127] Например, одно или более вычислительных устройств могут включать в себя ASIC или программируемую логическую матрицу, такую как программируемая вентильная матрица (FPGA), сконфигурированная в качестве процессора специального назначения для выполнения одной или более из упомянутых операций или операций, описанных или заявляемых в данном документе. Примерная FPGA может включать в себя совокупность логических блоков и блоков запоминающего устройства с произвольным доступом (RAM), которые могут быть индивидуально сконфигурированы и/или конфигурационно взаимно соединены для предписания FPGA выполнять конкретные функции. Некоторые FPGA могут содержать также другие блоки особого назначения или общего назначения. Примерная FPGA может быть запрограммирована на основе проектирования на языке описания аппаратного обеспечения (HDL), такого как VHSIC Hardware Description Language или Verilog.
[0128] Варианты осуществления в данном документе могут быть описаны с точки зрения функционально-блочных компонентов и различных операций обработки. Такие функциональные блоки могут быть реализованы посредством любого количества компонентов аппаратного обеспечения и/или программного обеспечения, которые выполняют заданные функции. Например, описанные варианты осуществления могут использовать различные компоненты интегральных схем, например, запоминающие элементы, обрабатывающие элементы, логические элементы, таблицы поиска и т.п., которые могут выполнять разнообразные функции под управлением одного или более микропроцессоров или других устройств управления. Схожим образом, там, где элементы описанных вариантов осуществления реализуются с использованием программированием программного обеспечения или элементов программного обеспечения, настоящее изобретение может быть реализовано с использованием любого языка программирования или языка сценариев, такого как C, C++, Java, ассемблер или чего-либо им подобного, с реализацией различных алгоритмов с любым сочетанием структур данных, объектов, процессов, подпрограмм или других программных элементов. Функциональные аспекты могут быть реализованы в алгоритмах, которые исполняются на одном или более процессорах. Кроме того, варианты осуществления настоящего изобретения могут использовать любое количество традиционных методик для конфигурирования электроники, обработки и/или управления сигналами, обработки данных и т.п. Слова «механизм» и «элемент» используются в широком смысле и не ограничены механическими или физическими вариантами осуществления, но могут включать в себя подпрограммы программного обеспечения совместно с процессорами и т.д.
[0129] Варианты реализации или части вариантов реализации приведенного выше раскрытия могут принимать форму компьютерного программного продукта, доступного, например, с используемого компьютером или машиночитаемого носителя. Используемый компьютером или машиночитаемый носитель может быть любым устройством, которое может, например, вещественно содержать, хранить, передавать или переносить программу или структуру данных для использования любым процессором или совестно с любым процессором. Носитель может быть, например, электронным, магнитным, оптическим, электромагнитным или полупроводниковым устройством. Также доступны и другие подходящие носители. Такой используемый компьютером или машиночитаемый носитель может упоминаться в качестве долговременного запоминающего устройства или носителя и может включать в себя RAM или другое энергозависимое запоминающее устройство или устройства хранения, которые могут изменяться в течение долгого времени. Запоминающее устройство описанного в данном документе устройства, пока на указано иное, не должно физически содержаться устройством, но является тем, к чему может осуществляться доступ удаленно устройством, и не должно быть смежным с другим запоминающим устройством, которое может физически содержаться в устройстве.
[0130] Слово «примерный» используется в данном документе для обозначения служащий в качестве примера, экземпляра или иллюстрация. Любой аспект или конструкция, описанные в данном документе в качестве «примерных», не должны в обязательном порядке рассматриваться в качестве предпочтительных или преимущественных по отношению к другим аспектам или конструкциям. Скорее использование слова «примерный» подразумевает представление замыслов конкретным образом. Используемый в данной заявке термин «или» подразумевает значение инклюзивного «или», а не исключающего «или». То есть, пока не указано иное или ясно из контекста, «X включает в себя A или B» подразумевает значение, состоящее в любой из естественных инклюзивных перестановок. Другими словами, если X включает в себя A; X включает в себя B; или X включает в себя и A и B, то «X включает в себя A или B» соответствует любому из перечисленных примеров. Кроме того, признаки, используемые в данной заявке и прилагаемой формуле изобретения в единственном числе, должны в целом трактоваться как «один или более», пока не указано иное или не ясно из контекста, что они относятся именно к единственному числу. Кроме того, использование термина «вариант реализации» или «один вариант реализации» повсюду не подразумевает обозначение одного и того же варианта осуществления или варианта реализации, пока это не описано непосредственно.
[0131] Упомянутые конкретные варианты реализации, изображенные и описанные в данном документе, являются иллюстративными примерами настоящего изобретения и не предназначены ограничивать объем настоящего изобретения каким-либо образом. Ради краткости, традиционная электроника, системы управления, разработка программного обеспечения и другие функциональные аспекты систем (и компонентов отдельных операционных компонентов систем) могут не описываться подробно. Кроме того, соединительные линии или соединители, изображенные в различных представленных фигурах, предназначены для представления примерных функциональных взаимосвязей и/или физических или логических связей между различными элементами. В конкретном устройстве может присутствовать много альтернативных или дополнительных функциональных взаимосвязей, физических соединений или логических соединений. Кроме того, никакой из элементов или компонентов не является существенным для практического использования изобретения, пока такой элемент в частности не описан в качестве «существенного» или «важного».
[0132] Использование терминов «включающий», «содержащий» или «имеющий» и их разновидностей в данном документе предназначено охватывать элементы, перечисленные после него, и их эквиваленты, а также дополнительные элементы. Пока не указано или ограничено иным образом, термины «закрепленный», «соединенный», «поддерживаемый» и «связанный» и их разновидности используются в широком смысле и охватывают и прямые и косвенные крепления, соединения, держатели и связи. Дополнительно, «соединенный» и «связанный» не ограничены физическими или механическими соединениями или связями.
[0133] Использование терминов в единственном числе в контексте описания настоящего изобретения (особенно в контексте последующей формулы) должно рассматриваться как охватывающее как единственное, так и множественное число. Кроме того, упоминание диапазонов значений в данном документе всего лишь предназначено служить кратким способом обращения по отдельности к каждому отдельному значению, находящемуся в пределах этого диапазона, пока иное не указано в данном документе, и каждое отдельное значение включено в данное описание, как будто оно было индивидуально упомянуто в данном документе. Наконец, этапы всех способов, описанных в данном документе, являются выполняемыми в любом подходящем порядке, пока иначе не указано в данном документе или иным образом ясно не противоречит контексту. Использование любого и всех примеров, или примерного языка (например, «такой как»), приведенное в данном документе, предназначено всего лишь для лучшего раскрытия настоящего изобретения и не накладывает ограничений на объем настоящего изобретения, пока иным образом это не заявлено в формуле изобретения.
[0134] Все ссылочные документы, включающие в себя публикации, заявки на патент и патенты, упомянутые в данном документе, тем самым заключены посредством ссылки в той же самой степени, как если бы каждый ссылочный документ индивидуально и в частности был указан в качестве включенного посредством ссылки и был бы изложен полностью в данном документе.
[0135] Вышеописанные варианты осуществления были описаны для обеспечения возможности легкого понимания настоящего изобретения и не ограничивают настоящее изобретение. Наоборот, подразумевается, что настоящее изобретение охватывает различные модификации и эквивалентные варианты выполнения, включаемые в объем прилагаемой формулы изобретения, объем которой должен получить самую широкую интерпретацию, чтобы охватывать все такие модификации и эквивалентные структуры, насколько это позволяет законодательство.
Изобретение относится к способу и клиентскому устройству для проведения транзакций. Технический результат заключается в повышении точности определения актуальных данных конфигурации клиентского информации при проведении транзакций. Способ, содержащий этапы, на которых: генерируют графический пользовательский интерфейс; принимают информацию первого заказа для первой торговой транзакции через графический пользовательский интерфейс; получают первую общую сумму к оплате для первой торговой транзакции, при этом первая общая сумма к оплате для первой торговой транзакции сгенерирована посредством исполнения серверным устройством копии исполняемого кода; отображают первую общую сумму к оплате через графический пользовательский интерфейс; принимают информацию второго заказа для второй торговой транзакции; определяют вторую общую сумму к оплате для второй торговой транзакции, при этом: копии исполняемого кода приспособлены исполняться в пределах портативной среды выполнения клиентского устройства и портативной среды выполнения серверного устройства; отображают вторую общую сумму к оплате через графический пользовательский интерфейс. 2 н. и 13 з.п. ф-лы, 11 ил., 8 табл.
1. Реализуемый на клиентском устройстве способ проведения транзакций, содержащий этапы, на которых:
генерируют посредством клиентского устройства графический пользовательский интерфейс, приспособленный для обеспечения торгово-кассовой (POS) функциональности для торговых транзакций системы торговых транзакций с использованием портативной среды выполнения клиентского устройства, причем в системе торговых транзакций имеется клиентская сторона, включающая в себя клиентское устройство, и серверная сторона, включающая в себя серверное устройство, расположенное удаленно по отношению к клиентскому устройству;
принимают посредством клиентского устройства информацию первого заказа для первой торговой транзакции через графический пользовательский интерфейс;
получают посредством клиентского устройства от серверного устройства первую общую сумму к оплате для первой торговой транзакции, при этом первая общая сумма к оплате для первой торговой транзакции сгенерирована посредством исполнения серверным устройством копии исполняемого кода, которая конфигурирует серверное устройство определять общие суммы к оплате для торговых транзакций, причем соответственные копии исполняемого кода расположены i) удаленно по отношению к клиентскому устройству и доступным для серверного устройства образом и ii) локально в клиентском устройстве;
отображают посредством клиентского устройства первую общую сумму к оплате через графический пользовательский интерфейс;
принимают посредством клиентского устройства информацию второго заказа для второй торговой транзакции через графический пользовательский интерфейс;
определяют посредством клиентского устройства вторую общую сумму к оплате для второй торговой транзакции, включая исполнение копии исполняемого кода, расположенной локально в клиентском устройстве, для конфигурирования клиентского устройства определять общие суммы к оплате для торговых транзакций и генерировать вторую общую сумму к оплате для второй торговой транзакции, при этом:
копии исполняемого кода приспособлены исполняться в пределах i) портативной среды выполнения клиентского устройства для конфигурирования клиентского устройства генерировать вторую общую сумму к оплате для второй торговой транзакции и ii) портативной среды выполнения серверного устройства для конфигурирования серверного устройства генерировать первую общую сумму к оплате для первой торговой транзакции,
серверное устройство исполняет копию исполняемого кода, расположенную удаленно по отношению к клиентскому устройству, в пределах портативной среды выполнения серверного устройства с использованием информации первого заказа для генерирования первой общей суммы к оплате для первой торговой транзакции, и
клиентское устройство исполняет копию исполняемого кода, расположенную локально в клиентском устройстве, в пределах портативной среды выполнения клиентского устройства с использованием информации второго заказа для генерирования второй общей суммы к оплате для второй торговой транзакции; и
отображают посредством клиентского устройства вторую общую сумму к оплате через графический пользовательский интерфейс,
при этом способ дополнительно содержит этап, на котором принимают посредством клиентского устройства блок данных, который включает в себя копию исполняемого кода, причем упомянутые копии исполняемого кода синхронизируются, чтобы быть одним и тем же исполняемым кодом,
при этом блок данных дополнительно включает в себя информацию меню для POS-функциональности, каковая информация приспособлена считываться в пределах портативной среды выполнения клиентского устройства, при этом при упомянутом генерировании графического пользовательского интерфейса графический пользовательский интерфейс генерируют для обеспечения POS-функциональности с использованием портативной среды выполнения клиентского устройства и информации меню.
2. Способ по п.1, в котором портативная среда выполнения клиентского устройства и портативная среда выполнения серверного устройства являются средами выполнения JavaScript.
3. Способ по п.1, в котором информация меню приспособлена считываться в пределах портативной среды выполнения серверного устройства, и серверное устройство выполнено с возможностью генерировать графический пользовательский интерфейс, который обеспечивает функциональность заказа онлайн (OLO) с использованием портативной среды выполнения серверного устройства и информации меню.
4. Способ по п.1, дополнительно содержащий этап, на котором выполняют вторую торговую транзакцию без связи с серверным устройством в течение второй торговой транзакции.
5. Способ по п.4, дополнительно содержащий этап, на котором определяют, доступно ли соединение связи между клиентским устройством и серверным устройством для второй торговой транзакции; при этом клиентское устройство определяет вторую общую сумму к оплате, когда определено, что линия связи недоступна для второй торговой транзакции.
6. Способ по п.5, дополнительно содержащий этап, на котором выгружают запись второй торговой транзакции на серверное устройство.
7. Способ по п.1, в котором упомянутое получение первой общей суммы к оплате содержит этап, на котором исполняют посредством серверного устройства копию исполняемого кода, расположенную удаленно по отношению к клиентскому устройству, в пределах портативной среды выполнения серверного устройства.
8. Способ по п.7, в котором исполнение копии исполняемого кода, расположенной локально в клиентском устройстве, в пределах портативной среды выполнения клиентского устройства является независимым от исполнения копии исполняемого кода, расположенной удаленно по отношению к клиентскому устройству, в пределах портативной среды выполнения серверного устройства.
9. Способ по п.7, в котором
серверное устройство дополнительно включает в себя информацию каталога для по меньшей мере одного из продуктов и услуг, связанных с торгово-сервисным предприятием;
блок данных на клиентском устройстве синхронизируется с серверным устройством, чтобы дополнительно включать в себя информацию каталога;
серверное устройство выполнено с возможностью использовать информацию каталога серверного устройства для генерирования первой общей суммы к оплате; и
клиентское устройство выполнено с возможностью использовать информацию каталога из блока данных для генерирования второй общей суммы к оплате.
10. Клиентское устройство для проведения транзакций, содержащее:
долговременное машиночитаемое запоминающее устройство;
аппаратный процессор, который:
генерирует графический пользовательский интерфейс, приспособленный для обеспечения торгово-кассовой (POS) функциональности для торговых транзакций системы торговых транзакций с использованием портативной среды выполнения клиентского устройства, причем в системе торговых транзакций имеется клиентская сторона, включающая в себя клиентское устройство, и серверная сторона, включающая в себя серверное устройство, расположенное удаленно по отношению к клиентскому устройству;
принимает информацию первого заказа для первой торговой транзакции через графический пользовательский интерфейс;
получает от серверного устройства первую общую сумму к оплате для первой торговой транзакции, при этом первая общая сумма к оплате для первой торговой транзакции сгенерирована посредством исполнения серверным устройством копии исполняемого кода, которая конфигурирует серверное устройство определять общие суммы к оплате для торговых транзакций, причем соответственные копии исполняемого кода расположены i) удаленно по отношению к клиентскому устройству и доступным для серверного устройства образом и ii) локально в клиентском устройстве;
отображает первую общую сумму к оплате через графический пользовательский интерфейс;
принимает информацию второго заказа для второй торговой транзакции через графический пользовательский интерфейс;
определяет вторую общую сумму к оплате для второй торговой транзакции, включая исполнение копии исполняемого кода, расположенной локально в клиентском устройстве, для конфигурирования клиентского устройства определять общие суммы к оплате для торговых транзакций и генерировать вторую общую сумму к оплате для второй торговой транзакции, при этом:
копии исполняемого кода приспособлены исполняться в пределах i) портативной среды выполнения клиентского устройства для конфигурирования клиентского устройства генерировать вторую общую сумму к оплате для второй торговой транзакции и ii) портативной среды выполнения серверного устройства для конфигурирования серверного устройства генерировать первую общую сумму к оплате для первой торговой транзакции,
серверное устройство исполняет копию исполняемого кода, расположенную удаленно по отношению к клиентскому устройству, в пределах портативной среды выполнения серверного устройства с использованием информации первого заказа для генерирования первой общей суммы к оплате для первой торговой транзакции, и
клиентское устройство исполняет копию исполняемого кода, расположенную локально в клиентском устройстве, в пределах портативной среды выполнения клиентского устройства с использованием информации второго заказа для генерирования второй общей суммы к оплате для второй торговой транзакции; и
отображает вторую общую сумму к оплате через графический пользовательский интерфейс,
при этом клиентское устройство принимает блок данных, который включает в себя копию исполняемого кода, причем упомянутые копии исполняемого кода синхронизируются, чтобы быть одним и тем же исполняемым кодом,
при этом блок данных дополнительно включает в себя информацию меню для POS-функциональности, каковая информация приспособлена считываться в пределах портативной среды выполнения клиентского устройства, при этом аппаратный процессор генерирует графический пользовательский интерфейс для обеспечения POS-функциональности с использованием портативной среды выполнения клиентского устройства и информации меню.
11. Клиентское устройство по п.10, при этом портативная среда выполнения клиентского устройства и портативная среда выполнения серверного устройства являются средами выполнения JavaScript.
12. Клиентское устройство по п.11, при этом информация меню приспособлена считываться в пределах портативной среды выполнения серверного устройства, и серверное устройство выполнено с возможностью генерировать графический пользовательский интерфейс, который обеспечивает функциональность заказа онлайн (OLO) с использованием портативной среды выполнения серверного устройства и информации меню.
13. Клиентское устройство по п.10, при этом клиентское устройство выполняет вторую торговую транзакцию без связи с серверным устройством в течение второй торговой транзакции.
14. Клиентское устройство по п.13, в котором аппаратный процессор определяет, доступно ли соединение связи между клиентским устройством и серверным устройством для второй торговой транзакции; при этом аппаратный процессор определяет вторую общую сумму к оплате, когда определено, что линия связи недоступна для второй торговой транзакции.
15. Клиентское устройство по п.14, в котором аппаратный процессор выгружает запись второй торговой транзакции на серверное устройство.
Пломбировальные щипцы | 1923 |
|
SU2006A1 |
Способ приготовления лака | 1924 |
|
SU2011A1 |
Способ защиты переносных электрических установок от опасностей, связанных с заземлением одной из фаз | 1924 |
|
SU2014A1 |
Токарный резец | 1924 |
|
SU2016A1 |
Способ приготовления лака | 1924 |
|
SU2011A1 |
RU 2013155469 A, 20.06.2015. |
Авторы
Даты
2020-12-31—Публикация
2017-05-31—Подача