RU2748177C1 - Method and system for generating notifications about ticket offers - Google Patents
Method and system for generating notifications about ticket offers Download PDFInfo
- Publication number
- RU2748177C1 RU2748177C1 RU2020108799A RU2020108799A RU2748177C1 RU 2748177 C1 RU2748177 C1 RU 2748177C1 RU 2020108799 A RU2020108799 A RU 2020108799A RU 2020108799 A RU2020108799 A RU 2020108799A RU 2748177 C1 RU2748177 C1 RU 2748177C1
- Authority
- RU
- Russia
- Prior art keywords
- ticket
- data
- user
- parameters
- gateway
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/02—Reservations, e.g. for tickets, services or events
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Tourism & Hospitality (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Human Resources & Organizations (AREA)
- Data Mining & Analysis (AREA)
- Development Economics (AREA)
- Computational Linguistics (AREA)
- Economics (AREA)
- Entrepreneurship & Innovation (AREA)
- Databases & Information Systems (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Information Transfer Between Computers (AREA)
Abstract
Description
ОБЛАСТЬ ТЕХНИКИFIELD OF TECHNOLOGY
[001] Данное техническое решение, в общем, относится к области вычислительной техники, а в частности, к способам и системам формирования уведомлений о появлении предложений билетов.[001] This technical solution, in General, relates to the field of computing, and in particular, to methods and systems for generating notifications about the appearance of ticket offers.
УРОВЕНЬ ТЕХНИКИLEVEL OF TECHNOLOGY
[002] В настоящее время обычно покупка билетов например, на железнодорожный транспорт или самолет, часто вызывает стресс у пользователей. Как только билеты поступают в продажу, билеты немедленно выкупаются различными посредниками или другими пользователями и пропадают. Любой конкретный человек, который хочет приобрести билет в праздники или другие даты, когда часто пользователи передвигаются на общественном транспорте, часто имеет небольшой шанс получить желаемые билеты. Если задача усложняется и, например, необходимо купить более двух билетов в определенном месте, на конкретную дату, в определенном классе обслуживания, у пользователя часто возникают трудности с заказом.[002] Nowadays, it is common to buy tickets for, for example, rail or airplane tickets, often causing stress for users. As soon as tickets go on sale, tickets are immediately redeemed by various intermediaries or other users and disappear. Any particular person who wants to purchase a ticket on holidays or other dates when users often travel by public transport often have a small chance of getting the tickets they want. If the task becomes more complicated and, for example, it is necessary to buy more than two tickets at a certain place, for a specific date, in a certain class of service, the user often has difficulties with the order.
[003] Из уровня техники известна заявка на патент JP2005018369A «Seat reservation system for train, seat reservation server, program, and seat reservation method for train» (заявитель: Nec Corp, дата публикации: 20.01.2005). Настоящее изобретение относится к системе бронирования мест в поезде, серверу бронирования мест, программе и способу бронирования мест в поезде. В частности, пользователь может указывать различные запросы на назначенное место, а система подыскивает для него самое комфортное место по запросу. В данном решении терминал 3 окна станции и терминал 4 туристического агентства запрашивают ввод условий и приоритета места, включая обозначение поезда, классификацию местоположения в транспортном средстве, классификацию положения транспортного средства и контактные данные пользователя для передачи их на сервер резервирования места и средство инструкции резервирования для отображения полученной информации о свободном месте. Сервер бронирования места использует полученные данные и условия и разрабатывает условия до тех пор, пока место не будет найдено. В данном решении существует средство для первоначальной установки условия распределения и отмены прогнозирования скорости резервирования, если оно превышает предварительно определенное значение.[003] Prior art patent application JP2005018369A "Seat reservation system for train, seat reservation server, program, and seat reservation method for train" (Applicant: Nec Corp, publication date: 20.01.2005). The present invention relates to a system for booking seats on a train, a server for booking seats, a program and a method for booking seats on a train. In particular, the user can indicate various requests for a designated place, and the system searches for the most comfortable place for him upon request. In this solution, the station window terminal 3 and the travel agency terminal 4 request input of seat conditions and priority, including train designation, vehicle location classification, vehicle position classification, and user contact information for transmission to the seat reservation server and reservation instruction means for display the received information about the free space. The seat reservation server uses the received data and conditions and develops conditions until a seat is found. In this solution, there is a means for initially setting the distribution condition and canceling the prediction of the reservation rate if it exceeds a predetermined value.
[004] Недостатком данного технического решения является то, что для системы нужна база данных с доступными всеми местами для продажи. В заявляемом же решении система может работать с любым провайдером данных о доступных местах, причем как с теми, которые позволяют получить сразу все доступные места по всем направлениям и по всем датам, так и с теми, которые отдают наличие мест на конкретный рейс в конкретную дату.[004] The disadvantage of this technical solution is that the system needs a database with all available places for sale. In the claimed solution, the system can work with any provider of data on available seats, both with those that allow you to get all available seats at once in all directions and for all dates, and with those that give the availability of seats for a specific flight on a specific date. ...
[005] Дополнительным недостатком решения является то, что система не позволяет пользоваться этой системой с любого устройства клиента (браузер, мобильное устройство и т.д.), а только с физического терминала.[005] An additional disadvantage of the solution is that the system does not allow using this system from any client device (browser, mobile device, etc.), but only from a physical terminal.
[006] В заявляемом решении система позволяет получить уведомления на появление мест и таким образом купить их в любой системе, которая нравится пользователю. В системе заявки JP2005018369A клиент привязан к той системе, через которую он ищет себе необходимые места.[006] In the claimed solution, the system allows you to receive notifications for the appearance of places and thus buy them in any system that the user likes. In the JP2005018369A application system, the client is tied to the system through which he searches for the necessary places for himself.
СУЩНОСТЬ ИЗОБРЕТЕНИЯSUMMARY OF THE INVENTION
[007] Технической проблемой или технической задачей, решаемой в данном техническом решении, является осуществление способа и системы формирования уведомлений о появлении предложений билетов.[007] The technical problem or the technical problem solved in this technical solution is the implementation of the method and system for generating notifications about the appearance of ticket offers.
[008] Техническим результатом, достигаемым при решении вышеуказанной технической проблемы, является повышение вероятности получения пользователем предложения билета.[008] The technical result achieved by solving the above technical problem is to increase the likelihood of the user receiving a ticket offer.
[009] Дополнительным техническим результатом является повышение надежности формирования уведомлений о появлении предложений билетов.[009] An additional technical result is to improve the reliability of generating notifications about the appearance of ticket offers.
[0010] Указанный технический результат достигается за счет осуществления способа формирования уведомлений о появлении предложений билетов, который выполняется по меньшей мере одним вычислительным устройством и в котором получают на сервере от по меньшей мере одного пользователя его данные и параметры требуемого для него по меньшей мере одного предложения билета; формируют в хранилище данных сервера по меньшей мере одну структуру данных, поля которой соответствуют параметрам требуемого по меньшей мере одного предложения билета для пользователя, полученного на предыдущем шаге; выгружают из хранилища данных все сформированные ранее структуры данных с заранее заданной периодичностью; направляют запрос в по меньшей мере один шлюз бронирования билетов на поиск предложений на основании структур данных, полученных на предыдущем шаге; получают ответ от по меньшей мере одного шлюза бронирования билетов, причем если в ответе от шлюза содержатся предложения билетов, которые удовлетворяют значениям полей по меньшей мере одной структуры данных, направляют уведомление о появлении предложения билета пользователю по его контактным данным из этой структуры данных.[0010] The specified technical result is achieved by implementing a method for generating notifications about the appearance of ticket offers, which is performed by at least one computing device and in which his data and parameters of at least one offer required for him are received on the server from at least one user ticket; form in the data storage of the server at least one data structure, the fields of which correspond to the parameters of the required at least one ticket offer for the user obtained in the previous step; all previously formed data structures are unloaded from the data storage at a predetermined frequency; sending a request to at least one ticket booking gateway to search for offers based on the data structures obtained in the previous step; receive a response from at least one ticket booking gateway, and if the response from the gateway contains ticket offers that satisfy the values of the fields of at least one data structure, send a notification about the appearance of the ticket offer to the user using his contact information from this data structure.
[0011] В некоторых вариантах реализации технического решения данные пользователя включают адрес электронной почты и/или номер телефона, и/или имя, и/или никнейм.[0011] In some embodiments of the technical solution, user data includes an email address and / or telephone number and / or name and / or nickname.
[0012] В некоторых вариантах реализации технического решения параметры предложения билеты включают дату отправления или диапазон дат, и/или класс обслуживания, и/или количество необходимых мест.[0012] In some embodiments of the technical solution, the parameters of the ticket offer include a departure date or date range and / or class of service and / or number of seats required.
[0013] В некоторых вариантах реализации технического решения получают данные пользователя и параметры требуемого для него предложения билета из веб-сайта или мобильного устройства связи.[0013] In some embodiments of the technical solution, the user's data and parameters of the required ticket offer are obtained from a website or a mobile communication device.
[0014] В некоторых вариантах реализации технического решения хранилище данных сервера является персистентным и/или не персистентным.[0014] In some implementations of the technical solution, the server data store is persistent and / or non-persistent.
[0015] В некоторых вариантах реализации технического решения не персистентное хранилище располагается в оперативной памяти вычислительного устройства.[0015] In some embodiments of the technical solution, the non-persistent store is located in the RAM of the computing device.
[0016] В некоторых вариантах реализации технического решения в качестве не персистентного хранилища используется memcache, а персистентного хранилища MariaDB.[0016] In some embodiments of the technical solution, memcache is used as the persistent storage of MariaDB, rather than the persistent storage.
[0017] В некоторых вариантах реализации технического решения структура данных, поля которой соответствуют параметрам требуемого предложения билета для пользователя, представляет собой строку таблицы базы данных.[0017] In some embodiments of the technical solution, the data structure, the fields of which correspond to the parameters of the required ticket offer for the user, is a row of a database table.
[0018] В некоторых вариантах реализации технического решения структура данных, поля которой соответствуют параметрам требуемого предложения билета для пользователя, дополнительно включает статус, следующую дату проверки, приоритет.[0018] In some embodiments of the technical solution, the data structure, the fields of which correspond to the parameters of the required ticket offer for the user, further includes a status, next check date, priority.
[0019] В некоторых вариантах реализации технического решения сформированные в хранилище данных сервера структуры данных объединяют в группы.[0019] In some embodiments of the technical solution, the data structures generated in the data store of the server are combined into groups.
[0020] В некоторых вариантах реализации технического решения объединяют структуры данных в группы, если совпадают поля с пунктом отправления и прибытия, и/или даты отправления, и/или класс обслуживания и количество пассажиров.[0020] In some embodiments of the technical solution, the data structures are combined into groups if the fields coincide with the point of departure and arrival, and / or the date of departure, and / or the class of service and the number of passengers.
[0021] В некоторых вариантах реализации технического решения запрос в шлюз бронирования билетов на поиск предложений является HTTP-запросом (или HTTPS) в API шлюза.[0021] In some implementations of the technical solution, the request to the ticket booking gateway to search for offers is an HTTP request (or HTTPS) to the gateway API.
[0022] В некоторых вариантах реализации технического решения ответ от шлюза бронирования билетов приходит в формате XML или JSON.[0022] In some implementations of the technical solution, the response from the ticket booking gateway comes in XML or JSON format.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙBRIEF DESCRIPTION OF DRAWINGS
[0023] Признаки и преимущества настоящего технического решения станут очевидными из приведенного ниже подробного описания и прилагаемых чертежей, на которых:[0023] The features and advantages of the present technical solution will become apparent from the following detailed description and the accompanying drawings, in which:
[0024] На Фиг. 1 показан пример реализации способа формирования уведомлений о появлении предложений билетов, показанный в виде блок-схемы.[0024] FIG. 1 shows an example of the implementation of the method for generating notifications about the appearance of ticket offers, shown in the form of a block diagram.
[0025] На Фиг. 2 показан вариант реализации формирования пользователем запроса на получение билета, направление его на сервер, а также сохранение в персистентном и неперсистентном хранилище данных.[0025] FIG. 2 shows an implementation option for a user to form a request for a ticket, send it to the server, and store it in a persistent and non-persistent data store.
[0026] На Фиг. 3 показан вариант реализации формирования в хранилище данных сервера структуры данных, поля которой соответствуют параметрам требуемого предложения билета для пользователя.[0026] FIG. 3 shows an embodiment of generating a data structure in the server data store, the fields of which correspond to the parameters of the required ticket offer for the user.
[0027] На Фиг. 4 показан вариант реализации системы формирования уведомлений о появлении предложений билетов.[0027] FIG. 4 shows an embodiment of a system for generating notifications about the appearance of ticket offers.
[0028] На Фиг. 5 показан вариант реализации направления запроса в шлюз бронирования билетов на поиск предложений на основании выгруженных из хранилища структур данных и сгруппированных.[0028] FIG. 5 shows an embodiment of sending a request to a ticket booking gateway to search for offers based on data structures unloaded from the storage and grouped.
ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯDETAILED DESCRIPTION OF THE INVENTION
[0029] Ниже будут подробно рассмотрены термины и их определения, используемые в описании технического решения.[0029] Below will be discussed in detail the terms and their definitions used in the description of the technical solution.
[0030] В данном изобретении под системой подразумевается компьютерная система, ЭВМ (электронно-вычислительная машина), ЧПУ (числовое программное управление), ПЛК (программируемый логический контроллер), компьютеризированные системы управления и любые другие устройства, способные выполнять заданную, четко определенную последовательность операций (действий, инструкций), централизованные и распределенные базы данных, смарт-контракты.[0030] In this invention, a system means a computer system, a computer (electronic computer), CNC (numerical control), PLC (programmable logic controller), computerized control systems and any other devices capable of performing a given, well-defined sequence of operations. (actions, instructions), centralized and distributed databases, smart contracts.
[0031] Под устройством обработки команд подразумевается электронный блок либо интегральная схема (микропроцессор), исполняющая машинные инструкции (программы), смарт-контракт, виртуальная машина Ethereum (EVM) или подобное. Устройство обработки команд считывает и выполняет машинные инструкции (программы) с одного или более устройства хранения данных. В роли устройства хранения данных могут выступать, но, не ограничиваясь, жесткие диски (HDD), флеш-память, ПЗУ (постоянное запоминающее устройство), твердотельные накопители (SSD), оптические приводы.[0031] An instruction processing device means an electronic unit or an integrated circuit (microprocessor) executing machine instructions (programs), a smart contract, an Ethereum virtual machine (EVM), or the like. A command processor reads and executes machine instructions (programs) from one or more storage devices. The role of data storage devices can be, but are not limited to, hard disks (HDD), flash memory, ROM (read only memory), solid state drives (SSD), optical drives.
[0032] Программа - последовательность инструкций, предназначенных для исполнения устройством управления вычислительной машины или устройством обработки команд.[0032] A program is a sequence of instructions for execution by a computer control device or command processing device.
[0033] Ниже будет подробно раскрыт способ 100 формирования уведомлений о появлении предложений билетов, показанный в виде блок-схемы на Фиг. 1 и приведенный ниже посредством последовательности вычислительных шагов.[0033] A method 100 for generating notifications of the appearance of ticket offers, shown in block diagram form in FIG. 1 and below through a series of computational steps.
[0034] Шаг 110: получают на сервере от по меньшей мере одного пользователя его данные и параметры требуемого для него по меньшей мере одного предложения билета.[0034] Step 110: receive on the server from at least one user his data and parameters of the required for him at least one offer of a ticket.
[0035] Функционал данного технического решения позволяет пользователю 200 подписаться на получение уведомлений о появлении билетов в продаже, как показано на Фиг. 2. Для этого пользователь оставляет свои контактные данные (например, адрес электронной почты или номер телефона, или никнейм или ID в мессенджере и т.д., не ограничиваясь) и подписывается на нужный ему транспорт (например, ЖД или авиа) или целое направление, а также выбирает конкретную дату или диапазон дат, класс обслуживания, кол-во необходимых мест и другие необходимые требования к местам для осуществления поездки. Пользователь оставляет свои данные на веб-сайте или в мобильном приложении пользователя, а также выбирает параметры уведомления (на какой поезд, дату и т.д. хочет получить билет). После того, как он нажимает на кнопку «подписаться» (данный вариант реализации является примерным, что очевидно), на сервер 220 уходят параметры сформированного им запроса 210 на уведомления о появляющихся предложений билетов (например, в примерном варианте реализации это может быть AJAX - запрос из веб-браузера). В некоторых вариантах реализации это может быть любое устройство связи, выполненное с возможностью передавать данные на сервер 220. Например, это может быть мобильное приложение, установленное на телефон пользователя. Также это могут быть терминалы для поездки на автобусе, которые установлены на вокзалах. Сервер 220 принимает запросы 210 с параметрами уведомления на своей стороне. На базе этих параметров запроса 210 создается запись в персистентном хранилище 230 (например, в базе данных), представляющая из себя строку таблицы БД (например, в БД MySQL) а также запись в не персистентном хранилище 240 (например в базе данных, находящейся в оперативной памяти, без записи на диск), т.к. выборка из него будет быстрее, чем из хранилища персистентного 230, после чего обработка закончена. Неперсистентное хранилище 240 располагается в оперативной памяти вычислительного устройства, поэтому, если сервер 220 выключить и включить, все данные потеряются. Однако доступ к данным в оперативной памяти быстрее, чем в случае с обычной персистентной базой данных, например, MySQL. Два хранилища данных используют в конкретном варианте реализации, чтобы если неперсистентное хранилище 240 обнулится (т.е. данные потеряются), была возможность загрузить данные из персистентного хранилища 330. В качестве неперсистентного хранилища 240 в конкретном варианте реализации используется memcache, а персистентного хранилища 230 - MariaDB. После появления мест, которые отслеживаются по приведенному ниже алгоритму, пользователь 200 уведомляется о возможности купить билеты через оставленные ранее контактные данные по любому каналу передачи данных, как показано на Фиг. 2.[0035] The functionality of this technical solution allows the
[0036] Пользователю посредством графического интерфейса пользователя предоставляется возможность оформить заявку на уведомление о появлении предложений билета на выбранный им ранее транспорт в продаже. Для этого пользователь посредством графического интерфейса выбирает параметры заявки из выпадающего списка или вводит самостоятельно. Параметрами заявки могут быть, не ограничиваясь, интересующий вид транспорта, дата отправления или диапазон дат направления, пункт отправления, пункт прибытия, количество билетов или количество пассажиров, класс обслуживания (может быть представлен как "эконом/эконом+/бизнес" или для ЖД транспорта по России как "сидячий/плацкарт/общий/купе, люкс/спальный вагон"), номер рейса опционально, контактные данные для уведомления: смс/e-mail или другие виды.[0036] The user through the graphical user interface is given the opportunity to issue an application for notification of the appearance of ticket offers for the previously selected transport on sale. To do this, the user, through the graphical interface, selects the parameters of the application from the drop-down list or enters himself. The parameters of the application can be, but are not limited to, the mode of transport of interest, date of departure or date range of direction, point of departure, point of arrival, number of tickets or number of passengers, class of service (can be presented as "economy / economy + / business" or for railway transport in Russia as "seated / reserved seat / shared / compartment, luxury / sleeping car"), flight number is optional, contact information for notification: SMS / e-mail or other types.
[0037] После этого пользователь посредством интерфейса подтверждает свое согласие с предоставленными параметрами заявки и эти параметры посредством канала связи сети Интернет отправляются на сервер по протоколу передачи данных HTTP или HTTPS. Не ограничиваясь протоколом HTTP могут использоваться и другие протоколы из стека протоколов TCP/IP.[0037] After that, the user through the interface confirms his agreement with the provided application parameters and these parameters are sent to the server via the Internet communication channel via the HTTP or HTTPS data transfer protocol. Other protocols from the TCP / IP protocol stack may be used without being limited to HTTP.
[0038] Шаг 120: формируют в хранилище данных сервера по меньшей мере одну структуру данных, поля которой соответствуют параметрам требуемого по меньшей мере одного предложения билета для пользователя, полученного на предыдущем шаге.[0038] Step 120: at least one data structure is generated in the server data store, the fields of which correspond to the parameters of the required at least one ticket offer for the user obtained in the previous step.
[0039] После получения параметров заявки на сервере 220 в хранилище данных создается структура 310, поля которой соответствуют параметрам заявки, как показано на Фиг. 3. После чего в эту структуру 310 (объект класса в программировании) автоматически заносятся параметры заявки 210. Также в этой структуре 310 существует дополнительное поля, которые никак не соотносятся с параметрами уведомления, полученными от пользователя, а заполняются на стороне сервера 220. Эти дополнительные поля структуры 310 могут включать статус заявки (создана, проверена, выполнена, отменена), следующая дата проверки, приоритет. В некоторых вариантах реализации приоритет может зависеть от стратегии поиска предложений билетов. Например, поезда скоро отправятся или это начало продаж, поэтому лучше их обрабатывать первыми.[0039] After receiving the parameters of the application on the
[0040] Поле "статус заявки" проставляется изначально в значение "создана" - это означает, что заявка пока только создана и с ней ничего не происходило. Статус "проверена" означает, что по заявке была осуществлена по меньшей мере одна попытка ее "проверки" (об этом подробнее ниже). "Выполнена" означает, что сработало уведомление для пользователя и больше с этой заявкой не надо ничего делать. "Отменена" - по каким-то причинам эту заявку отменили, например, по запросу самого пользователя или если не смогли найти предложения билеты по запросу (например, поезд уже ушел).[0040] The field "application status" is initially set to the value "created" - this means that the application has just been created and nothing has happened to it. The status "verified" means that at least one attempt was made to "verify" the application (more on this below). "Completed" means that a notification has been triggered for the user and nothing else needs to be done with this request. "Canceled" - for some reason this application was canceled, for example, at the request of the user himself or if they could not find offers for tickets upon request (for example, the train had already left).
[0041] Поле "следующая дата проверки" означает в какую дату и время будет "проверка" заявки, как подробнее раскрыто ниже. Для заполнения этой даты выбирается самая ближайшая дата из такого количества дат, сколько используется стратегий выбора даты следующего опроса. Стратегии - это алгоритмы, которые на базе входных параметров выдают на выходе дату и время предложения билета. Ниже в качестве примера реализации приведены стратегии поиска предложений билетов для ЖД транспорта.[0041] The "next check date" field means what date and time the application will be "checked", as detailed below. To fill this date, the closest date is selected from as many dates as the next poll date selection strategies are used. Strategies are algorithms that, based on input parameters, output the date and time of the ticket offer. Below, as an example of implementation, there are strategies for searching for ticket offers for railway transport.
[0042] В первом примере реализации получают набор из количества часов до отправления (этот набор может отличаться для разных направлений, систем бронирования билетов, вида транспорта, но в конкретном примере реализации для ЖД транспорта этот набор такой: "за 24 часа до отправления", "за 6 часов", "за 4", "за 2", "за 0 часов"). Используя этот набор, составляют набор дат со временем, путем вычитания из даты и времени отправления поезда количество часов из набора с добавленными, например, пятью минутами (это время на оформление билета на сайте). Фактически это должно быть среднее время, за которое пользователь успевает оформить билет на сайте или в мобильном приложении. Данное время выбирается эмпирическим путем. Этот набор дат далее фильтруется посредством удаления всех дат, которые уже наступили. Фильтрация может быть реализована следующим образом. Например в данный момент время 19:00, а поезд отправляется завтра в 18:00. Если взять время «за 24 часа до отправления», то получится дата «сегодня в 18:00». Но она уже наступила, потому что сейчас 19:00. Поэтому эту дату удаляют из выборки и рассматривают предложения дальше. Например, берут за «6 часов» и т.д. В итоге останутся только те даты, которые еще не наступили. Из оставшихся дат выбирается ближайшая к текущей дате и времени. Например остался набор дат такой: «сегодня в 21:00», «сегодня в 23:00». А сейчас 19:00. Ближайшей значит датой является «сегодня в 21:00».[0042] In the first embodiment, a set is obtained from the number of hours before departure (this set may differ for different directions, ticket booking systems, type of transport, but in a specific implementation example for railway transport, this set is as follows: "24 hours before departure", "in 6 hours", "in 4", "in 2", "in 0 hours"). Using this set, a set of dates with time is compiled by subtracting from the date and time of departure of the train the number of hours from the set with added, for example, five minutes (this is the time for issuing a ticket on the site). In fact, this should be the average time it takes for a user to issue a ticket on the website or in a mobile application. This time is chosen empirically. This set of dates is further filtered by removing all dates that have already occurred. Filtering can be implemented as follows. For example, at the moment the time is 19:00, and the train leaves tomorrow at 18:00. If you take the time "24 hours before departure", you get the date "today at 18:00". But it has already arrived, because it is now 19:00. Therefore, this date is removed from the sample and proposals are considered further. For example, take for "6 hours", etc. As a result, only those dates will remain that have not yet arrived. From the remaining dates, the closest to the current date and time is selected. For example, the set of dates remained as follows: "today at 21:00", "today at 23:00". And now it is 19:00. The closest date means "today at 21:00".
[0043] Во втором варианте реализации используют сценарий, аналогичный первому, но использует не дату отправления, а дату прибытия поезда. Например, поезд должен прибыть на станцию 21.03.2020 в 15:00. Выбирают следующий набор дат: «за 24 часа», «за 6», и т.д. Затем вычитают и получают даты: «20.03.2020 в 15:00», «21.03.2020 в 9:00», «21.03.2020 в 11:00» и т.д. Далее оставляют только актуальные, предположим, что все. Так как сегодня, например, 18.03, то берут ближайшую дату, т.е. «20.03.2020 в 15:00».[0043] In the second embodiment, a scenario similar to the first is used, but uses not the departure date, but the arrival date of the train. For example, the train must arrive at the station on 03/21/2020 at 15:00. The following set of dates is selected: "24 hours in advance", "6 hours before", etc. Then they subtract and get the dates: "03/20/2020 at 15:00", "03/21/2020 at 9:00", "03/21/2020 at 11:00", etc. Further, only the actual ones are left, suppose that everything. Since today, for example, is 18.03, then the nearest date is taken, i.e. "03/20/2020 at 15:00".
[0044] В еще одном варианте реализации формируют набор дат (дата + время) путем вычитания из даты и времени отправления следующих отрезков: "40 дней" "35 дней" "25 дней" "20 дней" "15 дней" "10 дней" "7 дней" "5 дней" "3 дня". Далее из полученного набора дат со временем, остаются только те, которые еще не наступили и потом из них берется ближайшая дату со временем[0044] In another embodiment, a set of dates (date + time) is generated by subtracting the following segments from the departure date and time: "40 days" "35 days" "25 days" "20 days" "15 days" "10 days" "7 days" "5 days" "3 days". Further, from the obtained set of dates with time, only those that have not yet come are left and then the nearest date with time is taken from them
[0045] В еще одном варианте реализации возвращают набор дат со временем, исходя из даты и времени открытия продаж на конкретное направление. Таким образом, берется дата и время открытия продаж на конкретное направление. Далее путем добавления к этой дате со временем 5, 10, 15, 25, 45, 105 и 145 минут мы получим набор из 7 дат со временем, из них оставляем только те, что еще не наступили и из них берем ближайшую дату со временем.[0045] In yet another implementation, a set of dates with time is returned based on the date and time of opening sales for a particular direction. Thus, the date and time of opening sales for a specific direction are taken. Further, by adding to this date with time 5, 10, 15, 25, 45, 105 and 145 minutes, we get a set of 7 dates with time, of which we leave only those that have not yet come and from them we take the closest date with time.
[0046] Поле "приоритет" задает приоритет для заявки, т.е. насколько эта заявка приоритетнее, чем другая. По умолчанию ставим "нормальный" приоритет.[0046] The Priority field specifies the priority for the bid, i. E. how much more priority this application is than another. By default, we set the "normal" priority.
[0047] После заполнения структуры 310, сохраняют ее в двух хранилищах, в персистентном 230 и не персистентном 240, так как последнее гораздо быстрее. Персистентное хранилище 230 используется только для наполнения неперсистентного 240 в ситуации, когда последнее было сброшено в результате очистки оперативной памяти, например, в ситуации перезагрузки сервера 220 или в нештатных ситуациях.[0047] After filling the
[0048] Далее подробно раскрывается процесс проверки заявки системой в шлюзе бронирования.[0048] The following describes in detail the process of checking the application by the system in the booking gateway.
[0049] Шаг 130: выгружают из хранилища данных все сформированные ранее структуры данных с заранее заданной периодичностью.[0049] Step 130: all previously generated data structures are unloaded from the data store at a predetermined frequency.
[0050] На сервере 220 работает процесс-демон 500 (т.е. компьютерная программа в системах класса UNIX, запускаемая самой системой и работающая в фоновом режиме без прямого взаимодействия с пользователем), как показано на Фиг. 5, который, например, каждую минуту или несколько секунд, не ограничиваясь, выгружает из неперсистетного хранилища 240 (потому что оно гораздо быстрее чем персистентное) все сохраненные ранее структуры 310, у которых содержимое поля "следующая дата проверки" меньше текущей даты и времени, т.е. наступило время проверки. В некоторых вариантах процесс-демон 500 может быть отключен в неработающие часы шлюза бронирования 530, если это заранее известно. Например известно, что шлюзы 530 не работают с 3 до 4 ночи и там нет смысла их опрашивать. Эти структуры формируются в группы (510, 520 и т.д.), как показано на Фиг. 5. Чтобы структуры были в одной группе, у них должны совпадать поля с пунктом отправления и прибытия (частичное совпадение), а также должны пересекаться даты отправления, класс обслуживания и количество пассажиров. В других вариантах реализации возможны варианты группировок, которые позволят снизить кол-во запросов к шлюзам 530 и обработать похожие заявки разом.[0050]
[0051] Шаг 140: направляют запрос в по меньшей мере один шлюз бронирования билетов на поиск предложений на основании структур данных, полученных на предыдущем шаге.[0051] Step 140: a request is sent to at least one ticket reservation gateway to search for offers based on the data structures obtained in the previous step.
[0052] После этого по каждой группе сервером 220 делается запрос в шлюз бронирования 530 билетов. Для этого на базе значения поля "пункт отправления", значения поля "пункт прибытия", "дата отправления", кол-во пассажиров, класс обслуживания и опционально номер рейса формируется запрос в API шлюза 530, который представляет собой HTTP запрос (или HTTPS) в API шлюза бронирования 530 билетов.[0052] Thereafter, for each group, a request is made by the
[0053] Шлюз бронирования 530 билетов представляет из себя стороннюю систему, которая предоставляет посредством API информацию о текущих предложениях билетов на направление и дату. Сделанная ранее группировка структур 310 позволяет уменьшить количество запросов к шлюзу 530 и сделать один запрос на каждую группу, вместо отдельного запроса на каждую структуру. Например, один пользователь заказал уведомления на направление «Москва-Санкт-Петербург» на завтра - класс обслуживания любой, 1 пассажир, а второй пользователь также «Москва-Санкт-Петербург» на завтра, но на конкретный поезд 056А - класс обслуживания любой. В группе соответственно будут обе эти заявки, так как у них пересекаются даты и направление, а также класс обслуживания.[0053] The booking gateway 530 tickets is a third-party system that provides information via an API about current ticket offers for direction and date. The grouping of
[0054] Шаг 150: получают ответ от по меньшей мере одного шлюза бронирования билетов.[0054] Step 150: receive a response from at least one ticket reservation gateway.
[0055] Если в ответе от шлюза 530 содержатся предложения билетов, которые удовлетворяют значениям полей по меньшей мере одной структуры данных 310, направляют уведомление о появлении предложения билета пользователю по его контактным данным из этой структуры данных.[0055] If the response from the gateway 530 contains ticket offers that match the field values of at least one
[0056] Так как группировка была сделана по фактически совпадающим параметрам запроса, поэтому ответ от шлюза бронирования билетов одновременно подходит каждой структуре данных в рамках группы (например, в формате XML или JSON).[0056] Since the grouping was made by actually matching request parameters, therefore, the response from the ticket booking gateway simultaneously matches each data structure within the group (for example, in XML or JSON format).
[0057] Далее процесс-демон сопоставляет ответ от шлюза со всеми структурами в рамках группы. Поля заявки из структуры (например, направление, кол-во пассажиров, рейс и т.д.) сравнивают с ответом, есть там такой билет или нет. Если в ответе от шлюза содержатся предложения билетов, которые удовлетворяют значениям полей конкретной структуры из группы (т.е. совпадает дата отправления, дата прибытия, пункт отправления и прибытия, класс обслуживания и опционально рейс), то структуре проставляется статус "Выполнена", после чего она сохраняется обратно в два хранилища. Далее берутся контактные данные клиента из этой же структуры и идет оповещение клиента по соответствующим каналам связи. Тем структурам, для которых не подошло ни одно предложение из ответа от шлюза, проставляется статус "проверена", а значение поля "следующая дата проверки" заполняется заново по описанному ранее алгоритму. После чего эти структуры сохраняются также обратно в два хранилища.[0057] Next, the daemon process matches the response from the gateway to all structures within the group. The fields of the application from the structure (for example, direction, number of passengers, flight, etc.) are compared with the answer whether there is such a ticket there or not. If the response from the gateway contains ticket offers that satisfy the values of the fields of a specific structure from the group (that is, the departure date, arrival date, point of departure and arrival, class of service and optionally a flight are the same), then the structure is given the status "Completed", after whereupon it is saved back to two storages. Next, the client's contact information is taken from the same structure and the client is notified via the appropriate communication channels. Those structures for which none of the offers from the response from the gateway came up are assigned the "verified" status, and the value of the "next verification date" field is filled in anew according to the previously described algorithm. After that, these structures are also saved back to two storages.
[0058] Ссылаясь на Фиг. 4, данное техническое решение может быть реализовано в виде вычислительной системы 400 осуществления формирования уведомлений о появлении предложений билетов, которая содержит один или более из следующих компонентов:[0058] Referring to FIG. 4, this technical solution can be implemented as a
- компонент 401 обработки, содержащий по меньшей мере один процессор 402,- a
- память 403,-
- компонент 405 мультимедиа,-
- компонент 406 аудио,-
- интерфейс 407 ввода / вывода (I/О),-
- сенсорный компонент 408,-
- компонент 409 передачи данных.a
[0059] Компонент 401 обработки в основном управляет всеми операциями системы 400, например, осуществляет обработку данных о пользователе или его запросе на поиск билетов, а также управляет дисплеем, телефонным звонком, передачей данных, работой камеры и операцией записи мобильного устройства связи. Компонент 401 обработки может включать в себя один или более процессоров 402, реализующих инструкции для завершения всех или части шагов из указанных выше способов. Кроме того, компонент 401 обработки может включать в себя один или более модулей для удобного процесса взаимодействия между другими модулями 401 обработки и другими модулями. Например, компонент 401 обработки может включать в себя мультимедийный модуль для удобного облегченного взаимодействия между компонентом 405 мультимедиа и компонентом 401 обработки.[0059] The
[0060] Память 403 выполнена с возможностью хранения различных типов данных для поддержки работы системы 400, например, базу данных с профилями пользователей. Примеры таких данных включают в себя инструкции из любого приложения или способа, контактные данные, данные адресной книги, сообщения, изображения, видео, и т.д., и все они работают на системе 400. Память 403 может быть реализована в виде любого типа энергозависимого запоминающего устройства, энергонезависимого запоминающего устройства или их комбинации, например, статического оперативного запоминающего устройства (СОЗУ), Электрически-Стираемого Программируемого постоянного запоминающего устройства (ЭСППЗУ), Стираемого Программируемого постоянного запоминающего устройства (СППЗУ), Программируемого постоянного запоминающего устройства (ППЗУ), постоянного запоминающего устройства (ПЗУ), магнитной памяти, флэш-памяти, магнитного диска или оптического диска и другого, не ограничиваясь.[0060]
[0061] Компонент 405 мультимедиа включает в себя экран, обеспечивающий выходной интерфейс между системой 400, которая может быть установлена на мобильном устройстве связи пользователя и пользователем. В некоторых вариантах реализации, экран может быть жидкокристаллическим дисплеем (ЖКД) или сенсорной панелью (СП). Если экран включает в себя сенсорную панель, экран может быть реализован в виде сенсорного экрана для приема входного сигнала от пользователя. Сенсорная панель включает один или более сенсорных датчиков в смысле жестов, прикосновения и скольжения по сенсорной панели. Сенсорный датчик может не только чувствовать границу прикосновения субъекта или жест перелистывания, но и определять длительность времени и давления, связанных с режимом работы на прикосновение и скольжение. В некоторых вариантах осуществления компонент 405 мультимедиа включает одну фронтальную камеру и/или одну заднюю камеру. Когда система 400 находится в режиме работы, например, режиме съемки или режиме видео, фронтальная камера и/или задняя камера могут получать данные мультимедиа извне. Каждая фронтальная камера и задняя камера может быть одной фиксированной оптической системой объектива или может иметь фокусное расстояние или оптический зум.[0061] The
[0062] Компонент 406 аудио выполнен с возможностью выходного и/или входного аудио сигнала. Например, компонент 406 аудио включает один микрофон (MIC), который выполнен с возможностью получать внешний аудио сигнал, когда система 400 находится в режиме работы, например, режиме вызова, режима записи и режима распознавания речи. Полученный аудио сигнал может быть далее сохранен в памяти 403 или направлен по компоненту 409 передачи данных. В некоторых вариантах осуществления компонент 406 аудио также включает в себя один динамик выполненный с возможностью вывода аудио сигнала.[0062] The
[0063] Интерфейс 407 ввода / вывода (I/О) обеспечивает интерфейс между компонентом 401 обработки и любым периферийным интерфейсным модулем. Вышеуказанным периферийным интерфейсным модулем может быть клавиатура, руль, кнопка, и т.д. Эти кнопки могут включать, но не ограничиваясь, кнопку запуска, кнопку регулировки громкости, начальную кнопку и кнопку блокировки.[0063] An input / output (I / O)
[0064] Сенсорный компонент 408 содержит один или более сенсоров и выполнен с возможностью обеспечения различных аспектов оценки состояния системы 400. Например, сенсорный компонент 408 может обнаружить состояния вкл/выкл системы 400, относительное расположение компонентов, например, дисплея и кнопочной панели, одного компонента системы 400, наличие или отсутствие контакта между субъектом и системой 400, а также ориентацию или ускорение/замедление и изменение температуры системы 400. Сенсорный компонент 408 содержит бесконтактный датчик, выполненный с возможностью обнаружения присутствия объекта, находящегося поблизости, когда нет физического контакта. Сенсорный компонент 408 содержит оптический датчик (например, КМОП или ПЗС-датчик изображения) выполненный с возможностью использования в визуализации приложения. В некоторых вариантах сенсорный компонент 408 содержит датчик ускорения, датчик гироскопа, магнитный датчик, датчик давления или датчик температуры.[0064] The
[0065] Компонент 409 передачи данных выполнен с возможностью облегчения проводной или беспроводной связи между системой 400 и другими устройствами. Система 400 может получить доступ к беспроводной сети на основе стандарта связи, таких как WiFi, 2G, 3G, 5G, или их комбинации. В одном примерном варианте компонент 409 передачи данных получает широковещательный сигнал или трансляцию, связанную с ними информацию из внешней широковещательной системы управления через широковещательный канал. В одном варианте осуществления компонент 409 передачи данных содержит модуль коммуникации ближнего поля (NFC), чтобы облегчить ближнюю связь. Например, модуль NFC может быть основан на технологии радиочастотной идентификации (RFID), технологии ассоциации передачи данных в инфракрасном диапазоне (IrDA), сверхширокополосных (UWB) технологии, Bluetooth (ВТ) технологии и других технологиях.[0065] The
[0066] В примерном варианте осуществления система 400 может быть реализована посредством одной или более Специализированных Интегральных Схем (СИС), Цифрового Сигнального Процессора (ЦСП), Устройств Цифровой Обработки Сигнала (УЦОС), Программируемым Логическим Устройством (ПЛУ), логической микросхемой, программируемой в условиях эксплуатации (ППВМ), контроллера, микроконтроллера, микропроцессора или других электронных компонентов, и может быть сконфигурирован для реализации способа 500 формирования уведомлений о появлении предложений билетов.[0066] In an exemplary embodiment,
[0067] В примерном варианте осуществления энергонезависимый машиночитаемый носитель содержит память 403, которая включает инструкции, где инструкции выполняются процессором 401 системы 400 для реализации описанных выше способов осуществления умного поиска авиабилетов. Например, энергонезависимым машиночитаемым носителем может быть ПЗУ, оперативное запоминающее устройство (ОЗУ), компакт-диск, магнитная лента, дискеты, оптические устройства хранения данных и тому подобное.[0067] In an exemplary embodiment, the non-volatile computer-readable medium comprises
[0068] Вычислительная система 400 может включать в себя интерфейс дисплея, который передает графику, текст и другие данные из коммуникационной инфраструктуры (или из буфера кадра, не показан) для отображения на компоненте 405 мультимедиа. Вычислительная система 400 дополнительно включает в себя устройства ввода или периферийные устройства. Периферийные устройства могут включать в себя одно или несколько устройств для взаимодействия с мобильным устройством связи пользователя, такие как клавиатура, микрофон, носимое устройство, камера, один или более звуковых динамиков и другие датчики. Периферийные устройства могут быть внешними или внутренними по отношению к мобильному устройству связи пользователя. Сенсорный экран может отображать, как правило, графику и текст, а также предоставляет пользовательский интерфейс (например, но не ограничиваясь ими, графический пользовательский интерфейс (GUI)), через который субъект может взаимодействовать с мобильным устройством связи пользователя, например, получать доступ и взаимодействовать с приложениями, запущенными на устройстве.[0068]
[0069] Элементы заявляемого технического решения находятся в функциональной взаимосвязи, а их совместное использование приводит к созданию нового и уникального технического решения. Таким образом, все блоки функционально связаны.[0069] The elements of the proposed technical solution are in a functional relationship, and their joint use leads to the creation of a new and unique technical solution. Thus, all blocks are functionally linked.
[0070] Все блоки, используемые в системе, могут быть реализованы с помощью электронных компонент, используемых для создания цифровых интегральных схем, что очевидно для специалиста в данном уровне техники. Не ограничиваюсь, могут использоваться микросхемы, логика работы которых определяется при изготовлении, или программируемые логические интегральные схемы (ПЛИС), логика работы которых задается посредством программирования. Для программирования используются программаторы и отладочные среды, позволяющие задать желаемую структуру цифрового устройства в виде принципиальной электрической схемы или программы на специальных языках описания аппаратуры: Verilog, VHDL, AHDL и др. Альтернативой ПЛИС могут быть программируемые логические контроллеры (ПЛК), базовые матричные кристаллы (БМК), требующие заводского производственного процесса для программирования; ASIC - специализированные заказные большие интегральные схемы (БИС), которые при мелкосерийном и единичном производстве существенно дороже.[0070] All blocks used in the system can be implemented with electronic components used to create digital integrated circuits, which is obvious to a person skilled in the art. Not limited to, microcircuits can be used, the logic of which is determined during manufacture, or programmable logic integrated circuits (FPGA), the logic of which is set through programming. For programming, programmers and debugging environments are used that allow you to set the desired structure of a digital device in the form of a circuit diagram or a program in special hardware description languages: Verilog, VHDL, AHDL, etc. An alternative to FPGAs can be programmable logic controllers (PLCs), basic matrix crystals ( BMK) requiring a factory production process for programming; ASICs are specialized custom large integrated circuits (LSIs), which are significantly more expensive for small-scale and single-piece production.
[0071] Обычно, сама микросхема ПЛИС состоит из следующих компонент:[0071] Typically, the FPGA itself consists of the following components:
- конфигурируемых логических блоков, реализующих требуемую логическую функцию;- configurable logic blocks that implement the required logic function;
- программируемых электронных связей между конфигурируемыми логическими блоками;- programmable electronic links between configurable logic blocks;
- программируемых блоков ввода/вывода, обеспечивающих связь внешнего вывода микросхемы с внутренней логикой.- programmable input / output blocks providing communication of the external output of the microcircuit with the internal logic.
[0072] Также блоки могут быть реализованы с помощью постоянных запоминающих устройств.[0072] Blocks can also be implemented using read-only memory devices.
[0073] Таким образом, реализация всех используемых блоков достигается стандартными средствами, базирующимися на классических принципах реализации основ вычислительной техники.[0073] Thus, the implementation of all the blocks used is achieved by standard means based on the classical principles of the implementation of the foundations of computing.
[0074] Как будет понятно специалисту в данной области техники, аспекты настоящего технического решения могут быть выполнены в виде системы, способа или компьютерного программного продукта. Соответственно, различные аспекты настоящего технического решения могут быть реализованы исключительно как аппаратное обеспечение, как программное обеспечение (включая прикладное программное обеспечение и так далее) или как вариант осуществления, сочетающий в себе программные и аппаратные аспекты, которые в общем случае могут упоминаться как «модуль», «система» или «архитектура». Кроме того, аспекты настоящего технического решения могут принимать форму компьютерного программного продукта, реализованного на одном или нескольких машиночитаемых носителях, имеющих машиночитаемый программный код, который на них реализован.[0074] As will be understood by a person skilled in the art, aspects of the present technical solution may be implemented as a system, method, or computer program product. Accordingly, various aspects of the present technical solution may be implemented solely as hardware, as software (including application software, and so on), or as an embodiment combining software and hardware aspects, which may generally be referred to as a "module" , "System" or "architecture". In addition, aspects of the present technical solution may take the form of a computer program product implemented on one or more computer-readable media having computer-readable program code that is implemented thereon.
[0075] Также может быть использована любая комбинация одного или нескольких машиночитаемых носителей. Машиночитаемый носитель хранилища может представлять собой, без ограничений, электронную, магнитную, оптическую, электромагнитную, инфракрасную или полупроводниковую систему, аппарат, устройство или любую подходящую их комбинацию. Конкретнее, примеры (неисчерпывающий список) машиночитаемого носителя хранилища включают в себя: электрическое соединение с помощью одного или нескольких проводов, портативную компьютерную дискету; жесткий диск, оперативную память (ОЗУ), постоянную память (ПЗУ), стираемую программируемую постоянную память (EPROM или Flash-память), оптоволоконное соединение, постоянную память на компакт-диске (CD-ROM), оптическое устройство хранения, магнитное устройство хранения или любую комбинацию вышеперечисленного. В контексте настоящего описания, машиночитаемый носитель хранилища может представлять собой любой гибкий носитель данных, который может содержать или хранить программу для использования самой системой, устройством, аппаратом или в соединении с ними.[0075] Any combination of one or more computer readable media can also be used. The computer-readable storage medium can be, without limitation, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, device, or any suitable combination thereof. More specifically, examples (non-exhaustive list) of computer-readable storage media include: electrical connection using one or more wires, portable computer diskette; hard disk, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or Flash memory), fiber optic connection, compact disk read-only memory (CD-ROM), optical storage device, magnetic storage device, or any combination of the above. As used herein, a computer-readable storage medium can be any flexible storage medium that can contain or store a program for use by the system itself, device, apparatus, or in connection therewith.
[0076] Программный код, встроенный в машиночитаемый носитель, может быть передан с помощью любого носителя, включая, без ограничений, беспроводную, проводную, оптоволоконную, инфракрасную и любую другую подходящую сеть или комбинацию вышеперечисленного.[0076] Program code embedded in a computer-readable medium can be transmitted using any medium, including, without limitation, wireless, wired, fiber optic, infrared, and any other suitable network or combination of the above.
[0077] Компьютерный программный код для выполнения операций для шагов настоящего технического решения может быть написан на любом языке программирования или комбинаций языков программирования, включая объектно-ориентированный язык программирования, например Python, R, Java, Smalltalk, С++ и так далее, и обычные процедурные языки программирования, например язык программирования «С» или аналогичные языки программирования. Программный код может выполняться на компьютере пользователя полностью, частично, или же как отдельный пакет программного обеспечения, частично на компьютере пользователя и частично на удаленном компьютере, или же полностью на удаленном компьютере. В последнем случае, удаленный компьютер может быть соединен с компьютером пользователя через сеть любого типа, включая локальную сеть (LAN), глобальную сеть (WAN) или соединение с внешним компьютером (например, через Интернет с помощью Интернет-провайдеров).[0077] Computer program code for performing operations for the steps of this technical solution may be written in any programming language or combinations of programming languages, including an object-oriented programming language such as Python, R, Java, Smalltalk, C ++, and so on, and conventional procedural programming languages such as "C" programming language or similar programming languages. The program code can be executed on the user's computer in whole, in part, or as a separate software package, partially on the user's computer and partially on the remote computer, or completely on the remote computer. In the latter case, the remote computer can be connected to the user's computer through any type of network, including a local area network (LAN), a wide area network (WAN), or a connection to an external computer (for example, via the Internet using Internet service providers).
[0078] Аспекты настоящего технического решения были описаны подробно со ссылкой на блок-схемы, принципиальные схемы и/или диаграммы способов, устройств (систем) и компьютерных программных продуктов в соответствии с вариантами осуществления настоящего технического решения. Следует иметь в виду, что каждый блок из блок-схемы и/или диаграмм, а также комбинации блоков из блок-схемы и/или диаграмм, могут быть реализованы компьютерными программными инструкциями. Эти компьютерные программные инструкции могут быть предоставлены процессору компьютера общего назначения, компьютера специального назначения или другому устройству обработки данных для создания процедуры, таким образом, чтобы инструкции, выполняемые процессором компьютера или другим программируемым устройством обработки данных, создавали средства для реализации функций/действий, указанных в блоке или блоках блок-схемы и/или диаграммы.[0078] Aspects of the present technical solution have been described in detail with reference to block diagrams, schematic diagrams, and / or diagrams of methods, devices (systems), and computer program products in accordance with embodiments of the present technical solution. It will be appreciated that each block from the block diagram and / or diagrams, as well as combinations of blocks from the block diagram and / or diagrams, may be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other data processing device to create a procedure, such that instructions executed by a computer processor or other programmable data processing device create means to implement the functions / actions specified in block or blocks of flowchart and / or diagram.
[0079] Эти компьютерные программные инструкции также могут храниться на машиночитаемом носителе, который может управлять компьютером, отличным от программируемого устройства обработки данных или отличным от устройств, которые функционируют конкретным образом, таким образом, что инструкции, хранящиеся на машиночитаемом носителе, создают устройство, включающее инструкции, которые осуществляют функции/действия, указанные в блоке блок-схемы и/или диаграммы.[0079] These computer program instructions may also be stored on a computer-readable medium that can control a computer other than a programmable data processing device or devices that function in a particular way, such that the instructions stored on the computer-readable medium create a device including instructions that perform the functions / actions specified in the block diagram and / or diagram.
Claims (19)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2020108799A RU2748177C1 (en) | 2020-02-28 | 2020-02-28 | Method and system for generating notifications about ticket offers |
PCT/RU2020/000107 WO2021173028A1 (en) | 2020-02-28 | 2020-02-28 | Method and system for generating ticket offer alerts |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2020108799A RU2748177C1 (en) | 2020-02-28 | 2020-02-28 | Method and system for generating notifications about ticket offers |
Publications (1)
Publication Number | Publication Date |
---|---|
RU2748177C1 true RU2748177C1 (en) | 2021-05-20 |
Family
ID=75919744
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2020108799A RU2748177C1 (en) | 2020-02-28 | 2020-02-28 | Method and system for generating notifications about ticket offers |
Country Status (2)
Country | Link |
---|---|
RU (1) | RU2748177C1 (en) |
WO (1) | WO2021173028A1 (en) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2324221C2 (en) * | 2002-08-21 | 2008-05-10 | Боокит Ой | Order receiving method and system |
US8930449B1 (en) * | 2000-02-22 | 2015-01-06 | Harvey Lunenfeld | Metasearch engine for ordering at least one travel related item returned in combined search and database results using at least one query on multiple unique hosts and at least one database |
US9218413B2 (en) * | 2011-06-13 | 2015-12-22 | Opus Deli, Inc. | Venue-related multi-media management, streaming, online ticketing, and electronic commerce techniques implemented via computer networks and mobile devices |
RU2600864C1 (en) * | 2014-04-03 | 2016-10-27 | Павел Михайлович Малышев | Automated method for searching transportation services and automated system to implement such method |
US20170061487A1 (en) * | 2008-10-31 | 2017-03-02 | Stubhb, Inc. | System and methods for upcoming event notification and mobile purchasing |
US9807092B1 (en) * | 2013-07-05 | 2017-10-31 | Dcs7, Llc | Systems and methods for classification of internet devices as hostile or benign |
-
2020
- 2020-02-28 RU RU2020108799A patent/RU2748177C1/en active
- 2020-02-28 WO PCT/RU2020/000107 patent/WO2021173028A1/en active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8930449B1 (en) * | 2000-02-22 | 2015-01-06 | Harvey Lunenfeld | Metasearch engine for ordering at least one travel related item returned in combined search and database results using at least one query on multiple unique hosts and at least one database |
RU2324221C2 (en) * | 2002-08-21 | 2008-05-10 | Боокит Ой | Order receiving method and system |
US20170061487A1 (en) * | 2008-10-31 | 2017-03-02 | Stubhb, Inc. | System and methods for upcoming event notification and mobile purchasing |
US9218413B2 (en) * | 2011-06-13 | 2015-12-22 | Opus Deli, Inc. | Venue-related multi-media management, streaming, online ticketing, and electronic commerce techniques implemented via computer networks and mobile devices |
US9807092B1 (en) * | 2013-07-05 | 2017-10-31 | Dcs7, Llc | Systems and methods for classification of internet devices as hostile or benign |
RU2600864C1 (en) * | 2014-04-03 | 2016-10-27 | Павел Михайлович Малышев | Automated method for searching transportation services and automated system to implement such method |
Also Published As
Publication number | Publication date |
---|---|
WO2021173028A1 (en) | 2021-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10852903B2 (en) | Optimizing transportation networks through dynamic user interfaces | |
US11295221B2 (en) | Learning user preferences in a conversational system | |
JP7250853B2 (en) | A virtual assistant configured to recommend actions to facilitate existing conversations | |
US20180253806A1 (en) | System and process for managing preparation and packaging of food and/or beverage products for a precise delivery time | |
CN110073384B (en) | Systems, methods, and media for providing a digital assistant | |
CN109155748B (en) | Internet cloud hosted natural language interactive messaging system server collaboration | |
US10349223B1 (en) | Initiating transportation requests | |
EP3622459B1 (en) | Method and apparatus for generating workflow | |
US20140142948A1 (en) | Systems and methods for in-vehicle context formation | |
US20130132102A1 (en) | Smart parking space allocation system and method | |
AU2014280986A1 (en) | Realtor-client connection solutions | |
US11706077B2 (en) | Contextual generation of ephemeral networks | |
US20220383260A1 (en) | Method and system for virtual assistant decision mapping and prioritization | |
RU2748177C1 (en) | Method and system for generating notifications about ticket offers | |
EP3846111A1 (en) | Cross-application data sharing | |
US20220294905A1 (en) | Systems and methods for generating customized customer service menu | |
CN110727882B (en) | Information presentation method, electronic device and computer readable medium | |
WO2021073517A1 (en) | Order information processing method and device, and electronic device | |
CN113791843A (en) | Execution method, device, equipment and storage medium | |
US11055670B1 (en) | Systems and methods for generating a travel smartlist | |
US10931679B2 (en) | Service actions for digital assistants | |
US20240143353A1 (en) | Systems and methods for improved graphical user interfaces based on contextual information | |
US20210390613A1 (en) | System and process for managing preparation and packaging of food and/or beverage products for a precise delivery time | |
US20170091840A1 (en) | On demand delivery | |
US20210374650A1 (en) | Ride assignment system |