RU2748177C1 - Method and system for generating notifications about ticket offers - Google Patents

Method and system for generating notifications about ticket offers Download PDF

Info

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
Application number
RU2020108799A
Other languages
Russian (ru)
Inventor
Дмитрий Павлович Храпов
Роман Михайлович Грунтович
Владимир Павлович Калугин
Original Assignee
Общество С Ограниченной Ответственностью "Глобус Медиа"
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Общество С Ограниченной Ответственностью "Глобус Медиа" filed Critical Общество С Ограниченной Ответственностью "Глобус Медиа"
Priority to RU2020108799A priority Critical patent/RU2748177C1/en
Priority to PCT/RU2020/000107 priority patent/WO2021173028A1/en
Application granted granted Critical
Publication of RU2748177C1 publication Critical patent/RU2748177C1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Administration; Management
    • G06Q10/02Reservations, 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

FIELD: computer technology.
SUBSTANCE: invention relates to a method for generating notifications about the appearance of ticket offers. The method for generating notifications about the appearance of ticket offers is performed by at least one computing device and contains the following steps: the server receives from at least one user his or her data and the parameters of at least one ticket offer that he or she requires; at least one data structure is formed in the server data store, the fields of which correspond to the parameters of the required at least one ticket offer for the user received in the previous step; all previously formed data structures are unloaded from the data storage at a predetermined frequency; a request is sent to at least one ticket booking gateway to search for offers based on the data structures obtained in the previous step; a response is received 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, a notification about the appearance of a ticket offer is sent to the user using his contact information from this data structure.
EFFECT: provision of automatic notification of the user about the appearance of ticket offers.
13 cl, 5 dwg

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 user 200 to subscribe to receive notifications when tickets are on sale, as shown in FIG. 2. To do this, the user leaves his contact information (for example, an email address or phone number, or a nickname or ID in the messenger, etc., not limited to) and subscribes to the transport he needs (for example, railway or air) or a whole direction , and also selects a specific date or range of dates, class of service, number of seats required and other necessary requirements for seats for the trip. The user leaves his data on the user's website or mobile application, and also selects the notification parameters (for which train, date, etc. he wants to receive a ticket). After he clicks on the "subscribe" button (this implementation is exemplary, which is obvious), the parameters of the request 210 he has generated for notifications of emerging ticket offers are sent to the server 220 (for example, in an exemplary implementation this may be an AJAX request from a web browser). In some implementations, this can be any communication device capable of transmitting data to the server 220. For example, it can be a mobile application installed on the user's phone. It can also be terminals for travel by bus, which are installed at train stations. Server 220 receives requests 210 with notification parameters on its side. Based on these query parameters 210, a record is created in persistent storage 230 (for example, in a database), which is a row of a database table (for example, in a MySQL database) as well as an entry in a non-persistent storage 240 (for example, in a database located in the operational memory, without writing to disk), because fetching from it will be faster than from persistent store 230, after which processing is finished. Non-persistent storage 240 resides in the RAM of the computing device, so if server 220 is turned off and on, all data is lost. However, accessing data in RAM is faster than in the case of a regular persistent database such as MySQL. Two data stores are used in a particular implementation so that if the non-persistent store 240 is zeroed (i.e., the data is lost), it is possible to load data from the persistent store 330. The non-persistent store 240 in a particular implementation uses memcache, and the persistent store 230 is MariaDB. After the appearance of places that are tracked according to the algorithm below, the user 200 is notified of the opportunity to buy tickets through the contact information left earlier on any data transmission channel, as shown in FIG. 2.

[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 server 220, a structure 310 is created in the data store, the fields of which correspond to the parameters of the application, as shown in FIG. 3. After that, the parameters of the request 210 are automatically entered into this structure 310 (a class object in programming). Also in this structure 310 there are additional fields that do not correspond in any way with the notification parameters received from the user, but are filled on the server side 220. These additional the fields of structure 310 may include the status of the application (created, verified, completed, canceled), next verification date, priority. In some implementations, the priority may depend on the strategy for searching for ticket offers. For example, trains will leave soon or this is the beginning of sales, so it is better to process them first.

[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 structure 310, store it in two stores, persistent 230 and non-persistent 240, since the latter is much faster. Persistent store 230 is only used to populate non-persistent 240 in a situation where the latter was reset as a result of clearing RAM, for example, in a server 220 reboot situation or in abnormal situations.

[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] Server 220 runs a daemon process 500 (ie, a computer program on UNIX-class systems that is launched by the system itself and runs in the background without direct user interaction) as shown in FIG. 5, which, for example, every minute or several seconds, but not limited to, unloads from non-persistent storage 240 (because it is much faster than persistent) all previously saved structures 310, which have the content of the "next check date" field less than the current date and time, those. it's time to check. In some embodiments, the daemon process 500 may be disabled during non-running hours of the booking gateway 530 if known in advance. For example, it is known that gateways 530 do not work from 3 to 4 am and there is no point in interrogating them. These structures are formed into groups (510, 520, etc.) as shown in FIG. 5. In order for the structures to be in the same group, they must have the same fields with the point of departure and arrival (overlap), as well as the dates of departure, class of service and the number of passengers must intersect. In other implementations, grouping options are possible that will reduce the number of requests to gateways 530 and process similar requests at once.

[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 server 220 to the ticket reservation gateway 530. To do this, based on the value of the field "point of departure", the value of the field "point of arrival", "date of departure", number of passengers, class of service and optionally the flight number, a request is generated in the API gateway 530, which is an HTTP request (or HTTPS) 530 tickets in the booking gateway API.

[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 structures 310 previously made can reduce the number of requests to the gateway 530 and make one request per group, instead of a separate request for each structure. For example, one user ordered notifications for the Moscow-St. Petersburg direction for tomorrow - any class of service, 1 passenger, and the second user also ordered Moscow-St. Petersburg for tomorrow, but for a specific train 056A - any class of service. In the group, respectively, there will be both of these requests, since their dates and directions, as well as the class of service, intersect.

[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 data structure 310, notify the user of the ticket offer appearance by his contact information from this data structure.

[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 computing system 400 for generating notifications about the appearance of ticket offers, which contains one or more of the following components:

- компонент 401 обработки, содержащий по меньшей мере один процессор 402,- a processing component 401 comprising at least one processor 402,

- память 403,- memory 403,

- компонент 405 мультимедиа,- component 405 multimedia,

- компонент 406 аудио,- component 406 audio,

- интерфейс 407 ввода / вывода (I/О),- interface 407 input / output (I / O),

- сенсорный компонент 408,- sensory component 408,

- компонент 409 передачи данных.a data transfer component 409.

[0059] Компонент 401 обработки в основном управляет всеми операциями системы 400, например, осуществляет обработку данных о пользователе или его запросе на поиск билетов, а также управляет дисплеем, телефонным звонком, передачей данных, работой камеры и операцией записи мобильного устройства связи. Компонент 401 обработки может включать в себя один или более процессоров 402, реализующих инструкции для завершения всех или части шагов из указанных выше способов. Кроме того, компонент 401 обработки может включать в себя один или более модулей для удобного процесса взаимодействия между другими модулями 401 обработки и другими модулями. Например, компонент 401 обработки может включать в себя мультимедийный модуль для удобного облегченного взаимодействия между компонентом 405 мультимедиа и компонентом 401 обработки.[0059] The processing component 401 generally controls all of the operations of the system 400, such as processing data about the user or their ticket search request, and also controls the display, phone call, data communication, camera operation, and recording operation of the mobile communication device. The processing component 401 may include one or more processors 402 that implement instructions to complete all or part of the steps from the above methods. In addition, the processing component 401 may include one or more modules for convenient communication between other processing modules 401 and other modules. For example, the processing component 401 may include a media module for convenient, lightweight interaction between the media component 405 and the processing component 401.

[0060] Память 403 выполнена с возможностью хранения различных типов данных для поддержки работы системы 400, например, базу данных с профилями пользователей. Примеры таких данных включают в себя инструкции из любого приложения или способа, контактные данные, данные адресной книги, сообщения, изображения, видео, и т.д., и все они работают на системе 400. Память 403 может быть реализована в виде любого типа энергозависимого запоминающего устройства, энергонезависимого запоминающего устройства или их комбинации, например, статического оперативного запоминающего устройства (СОЗУ), Электрически-Стираемого Программируемого постоянного запоминающего устройства (ЭСППЗУ), Стираемого Программируемого постоянного запоминающего устройства (СППЗУ), Программируемого постоянного запоминающего устройства (ППЗУ), постоянного запоминающего устройства (ПЗУ), магнитной памяти, флэш-памяти, магнитного диска или оптического диска и другого, не ограничиваясь.[0060] Memory 403 is configured to store various types of data to support the operation of system 400, such as a user profile database. Examples of such data include instructions from any application or method, contact information, address book data, messages, images, videos, etc., all of which operate on system 400. Memory 403 can be implemented as any type of volatile storage device, nonvolatile memory, or a combination thereof, such as static random access memory (SRAM), Electrically Erasable Programmable Read Only Memory (EEPROM), Erasable Programmable Read Only Memory (EPROM), Programmable Read Only Memory (EPROM), Read Only Memory device (ROM), magnetic memory, flash memory, magnetic disk or optical disk and others, but not limited to.

[0061] Компонент 405 мультимедиа включает в себя экран, обеспечивающий выходной интерфейс между системой 400, которая может быть установлена на мобильном устройстве связи пользователя и пользователем. В некоторых вариантах реализации, экран может быть жидкокристаллическим дисплеем (ЖКД) или сенсорной панелью (СП). Если экран включает в себя сенсорную панель, экран может быть реализован в виде сенсорного экрана для приема входного сигнала от пользователя. Сенсорная панель включает один или более сенсорных датчиков в смысле жестов, прикосновения и скольжения по сенсорной панели. Сенсорный датчик может не только чувствовать границу прикосновения субъекта или жест перелистывания, но и определять длительность времени и давления, связанных с режимом работы на прикосновение и скольжение. В некоторых вариантах осуществления компонент 405 мультимедиа включает одну фронтальную камеру и/или одну заднюю камеру. Когда система 400 находится в режиме работы, например, режиме съемки или режиме видео, фронтальная камера и/или задняя камера могут получать данные мультимедиа извне. Каждая фронтальная камера и задняя камера может быть одной фиксированной оптической системой объектива или может иметь фокусное расстояние или оптический зум.[0061] The multimedia component 405 includes a screen providing an output interface between a system 400 that may be installed on a user's mobile communications device and a user. In some implementations, the screen may be a liquid crystal display (LCD) or a touch panel (TP). If the screen includes a touch panel, the screen may be implemented as a touch screen for receiving input from a user. The touchpad includes one or more touch sensors in terms of gestures, touching, and sliding across the touchpad. The touch sensor can not only sense the subject's touch boundary or swipe gesture, but also detect the length of time and pressure associated with touch and slide behavior. In some embodiments, the media component 405 includes one front camera and / or one rear camera. When the system 400 is in a mode of operation, such as shooting mode or video mode, the front camera and / or the rear camera can receive media data from the outside. Each front camera and rear camera can be one fixed lens optical system or can have focal length or optical zoom.

[0062] Компонент 406 аудио выполнен с возможностью выходного и/или входного аудио сигнала. Например, компонент 406 аудио включает один микрофон (MIC), который выполнен с возможностью получать внешний аудио сигнал, когда система 400 находится в режиме работы, например, режиме вызова, режима записи и режима распознавания речи. Полученный аудио сигнал может быть далее сохранен в памяти 403 или направлен по компоненту 409 передачи данных. В некоторых вариантах осуществления компонент 406 аудио также включает в себя один динамик выполненный с возможностью вывода аудио сигнала.[0062] The audio component 406 is configured to output and / or input an audio signal. For example, the audio component 406 includes a single microphone (MIC) that is configured to receive an external audio signal when the system 400 is in a mode of operation, such as a call mode, a recording mode, and a speech recognition mode. The resulting audio signal can be further stored in memory 403 or routed to data transfer component 409. In some embodiments, the audio component 406 also includes one speaker configured to output an audio signal.

[0063] Интерфейс 407 ввода / вывода (I/О) обеспечивает интерфейс между компонентом 401 обработки и любым периферийным интерфейсным модулем. Вышеуказанным периферийным интерфейсным модулем может быть клавиатура, руль, кнопка, и т.д. Эти кнопки могут включать, но не ограничиваясь, кнопку запуска, кнопку регулировки громкости, начальную кнопку и кнопку блокировки.[0063] An input / output (I / O) interface 407 provides an interface between the processing component 401 and any peripheral interface module. The above peripheral interface module can be keyboard, steering wheel, button, etc. These buttons may include, but are not limited to, a start button, a volume button, a start button, and a lock button.

[0064] Сенсорный компонент 408 содержит один или более сенсоров и выполнен с возможностью обеспечения различных аспектов оценки состояния системы 400. Например, сенсорный компонент 408 может обнаружить состояния вкл/выкл системы 400, относительное расположение компонентов, например, дисплея и кнопочной панели, одного компонента системы 400, наличие или отсутствие контакта между субъектом и системой 400, а также ориентацию или ускорение/замедление и изменение температуры системы 400. Сенсорный компонент 408 содержит бесконтактный датчик, выполненный с возможностью обнаружения присутствия объекта, находящегося поблизости, когда нет физического контакта. Сенсорный компонент 408 содержит оптический датчик (например, КМОП или ПЗС-датчик изображения) выполненный с возможностью использования в визуализации приложения. В некоторых вариантах сенсорный компонент 408 содержит датчик ускорения, датчик гироскопа, магнитный датчик, датчик давления или датчик температуры.[0064] The sensor component 408 comprises one or more sensors and is configured to provide various aspects of assessing the state of the system 400. For example, the sensor component 408 can detect on / off states of the system 400, the relative position of components, such as a display and a keypad, of a single component. system 400, presence or absence of contact between a subject and system 400, and orientation or acceleration / deceleration and temperature change of system 400. Sensor component 408 comprises a proximity sensor configured to detect the presence of an object in the vicinity when there is no physical contact. Touch component 408 includes an optical sensor (eg, CMOS or CCD image sensor) configured for use in rendering an application. In some embodiments, sensor component 408 includes an acceleration sensor, gyroscope sensor, magnetic sensor, pressure sensor, or temperature sensor.

[0065] Компонент 409 передачи данных выполнен с возможностью облегчения проводной или беспроводной связи между системой 400 и другими устройствами. Система 400 может получить доступ к беспроводной сети на основе стандарта связи, таких как WiFi, 2G, 3G, 5G, или их комбинации. В одном примерном варианте компонент 409 передачи данных получает широковещательный сигнал или трансляцию, связанную с ними информацию из внешней широковещательной системы управления через широковещательный канал. В одном варианте осуществления компонент 409 передачи данных содержит модуль коммуникации ближнего поля (NFC), чтобы облегчить ближнюю связь. Например, модуль NFC может быть основан на технологии радиочастотной идентификации (RFID), технологии ассоциации передачи данных в инфракрасном диапазоне (IrDA), сверхширокополосных (UWB) технологии, Bluetooth (ВТ) технологии и других технологиях.[0065] The communication component 409 is configured to facilitate wired or wireless communication between the system 400 and other devices. System 400 can access a wireless network based on a communication standard such as WiFi, 2G, 3G, 5G, or a combination of these. In one exemplary embodiment, communication component 409 receives a broadcast signal or broadcast associated information from an external broadcast control system via a broadcast channel. In one embodiment, communication component 409 comprises a Near Field Communication (NFC) module to facilitate near field communication. For example, the NFC module may be based on radio frequency identification (RFID) technology, infrared data association (IrDA) technology, ultra-wideband (UWB) technology, Bluetooth (BT) technology, and other technologies.

[0066] В примерном варианте осуществления система 400 может быть реализована посредством одной или более Специализированных Интегральных Схем (СИС), Цифрового Сигнального Процессора (ЦСП), Устройств Цифровой Обработки Сигнала (УЦОС), Программируемым Логическим Устройством (ПЛУ), логической микросхемой, программируемой в условиях эксплуатации (ППВМ), контроллера, микроконтроллера, микропроцессора или других электронных компонентов, и может быть сконфигурирован для реализации способа 500 формирования уведомлений о появлении предложений билетов.[0066] In an exemplary embodiment, system 400 may be implemented by one or more Application-Specific Integrated Circuits (ASICs), Digital Signal Processors (DSPs), Digital Signal Processing Units (DSPs), Programmable Logic Devices (PLCs), a logic chip programmed into operating conditions (FPGA), controller, microcontroller, microprocessor, or other electronic components, and can be configured to implement the method 500 for generating notifications about the appearance of ticket offers.

[0067] В примерном варианте осуществления энергонезависимый машиночитаемый носитель содержит память 403, которая включает инструкции, где инструкции выполняются процессором 401 системы 400 для реализации описанных выше способов осуществления умного поиска авиабилетов. Например, энергонезависимым машиночитаемым носителем может быть ПЗУ, оперативное запоминающее устройство (ОЗУ), компакт-диск, магнитная лента, дискеты, оптические устройства хранения данных и тому подобное.[0067] In an exemplary embodiment, the non-volatile computer-readable medium comprises memory 403 that includes instructions where instructions are executed by processor 401 of system 400 to implement the above-described smart flight search methods. For example, non-volatile computer-readable media can be ROM, random access memory (RAM), compact disc, magnetic tape, floppy disks, optical storage devices, and the like.

[0068] Вычислительная система 400 может включать в себя интерфейс дисплея, который передает графику, текст и другие данные из коммуникационной инфраструктуры (или из буфера кадра, не показан) для отображения на компоненте 405 мультимедиа. Вычислительная система 400 дополнительно включает в себя устройства ввода или периферийные устройства. Периферийные устройства могут включать в себя одно или несколько устройств для взаимодействия с мобильным устройством связи пользователя, такие как клавиатура, микрофон, носимое устройство, камера, один или более звуковых динамиков и другие датчики. Периферийные устройства могут быть внешними или внутренними по отношению к мобильному устройству связи пользователя. Сенсорный экран может отображать, как правило, графику и текст, а также предоставляет пользовательский интерфейс (например, но не ограничиваясь ими, графический пользовательский интерфейс (GUI)), через который субъект может взаимодействовать с мобильным устройством связи пользователя, например, получать доступ и взаимодействовать с приложениями, запущенными на устройстве.[0068] Computing system 400 may include a display interface that transmits graphics, text, and other data from a communications infrastructure (or from a framebuffer, not shown) for display on a media component 405. Computing system 400 further includes input devices or peripherals. Peripheral devices may include one or more devices for interacting with a user's mobile communications device, such as a keyboard, microphone, wearable device, camera, one or more audio speakers, and other sensors. Peripheral devices can be external or internal to the user's mobile communications device. A touchscreen can display, typically graphics and text, and also provides a user interface (such as, but not limited to, a graphical user interface (GUI)) through which a subject can interact with a user's mobile communication device, such as access and interact with applications running on the device.

[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)

1. Способ формирования уведомлений о появлении предложений билетов, выполняемый по меньшей мере одним вычислительным устройством и включающий следующие шаги:1. A method of generating notifications about the appearance of ticket offers, performed by at least one computing device, and includes the following steps: - получают на сервере от по меньшей мере одного пользователя его данные и параметры требуемого для него по меньшей мере одного предложения билета;- receive on the server from at least one user his data and parameters of the required for him at least one ticket offer; - формируют в хранилище данных сервера по меньшей мере одну структуру данных, поля которой соответствуют параметрам требуемого по меньшей мере одного предложения билета для пользователя, полученного на предыдущем шаге, причем в данную структуру автоматически заносятся параметры заявки;- at least one data structure is formed in the server data storage, the fields of which correspond to the parameters of the required at least one ticket offer for the user obtained in the previous step, and the application parameters are automatically entered into this structure; - выгружают из хранилища данных все сформированные ранее структуры данных с заранее заданной периодичностью посредством процесса-демона, у которых содержимое поля «следующая дата проверки» меньше текущей даты и времени;- all previously formed data structures are unloaded from the data storage with a predetermined frequency by means of a daemon process, in which the content of the "next check date" field is less than the current date and time; - направляют запрос по меньшей мере в один программный интерфейс приложения шлюза бронирования билетов на поиск предложений на основании структур данных, полученных на предыдущем шаге;- sending a request to at least one program interface of the ticket booking gateway application 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 a ticket offer to the user using his contact information from this data structure. 2. Способ по п. 1, характеризующийся тем, что данные пользователя включают адрес электронной почты, и/или номер телефона, и/или имя, и/или никнейм.2. The method according to claim 1, characterized in that the user data includes an e-mail address and / or telephone number and / or name and / or nickname. 3. Способ по п. 1, характеризующийся тем, что параметры предложения билета включают дату отправления или диапазон дат, и/или класс обслуживания, и/или количество необходимых мест.3. A method according to claim 1, characterized in that the parameters of the ticket offer include the departure date or date range and / or class of service and / or the number of seats required. 4. Способ по п. 1, характеризующийся тем, что получают данные пользователя и параметры требуемого для него предложения билета из веб-сайта или мобильного устройства связи.4. The method according to claim 1, characterized in that the user's data and parameters of the ticket offer required for him are obtained from a website or a mobile communication device. 5. Способ по п. 1, характеризующийся тем, что хранилище данных сервера является персистентным и/или неперсистентным.5. The method according to claim 1, characterized in that the server data store is persistent and / or non-persistent. 6. Способ по п. 5, характеризующийся тем, что неперсистентное хранилище располагается в оперативной памяти вычислительного устройства.6. The method according to claim 5, characterized in that the non-persistent storage is located in the RAM of the computing device. 7. Способ по п. 5, характеризующийся тем, что в качестве неперсистентного хранилища используется memcache, а персистентного хранилища MariaDB.7. The method according to claim 5, characterized in that memcache is used as a non-persistent storage, and MariaDB is used as a persistent storage. 8. Способ по п. 5, характеризующийся тем, что структура данных, поля которой соответствуют параметрам требуемого предложения билета для пользователя, представляет собой строку таблицы базы данных.8. The method according to claim 5, characterized in that the data structure, the fields of which correspond to the parameters of the required ticket offer for the user, is a row in the database table. 9. Способ по п. 1, характеризующийся тем, что структура данных, поля которой соответствуют параметрам требуемого предложения билета для пользователя, дополнительно включает статус, следующую дату проверки, приоритет.9. The method according to claim 1, characterized in that the data structure, the fields of which correspond to the parameters of the required ticket offer for the user, additionally includes a status, the next check date, and a priority. 10. Способ по п. 1, характеризующийся тем, что сформированные в хранилище данных сервера структуры данных объединяют в группы.10. The method according to claim 1, characterized in that the data structures generated in the server data store are combined into groups. 11. Способ по п. 10, характеризующийся тем, что объединяют структуры данных в группы, если совпадают поля с пунктом отправления и прибытия, и/или даты отправления, и/или класс обслуживания и количество пассажиров.11. The method according to claim 10, characterized in that 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. 12. Способ по п. 1, характеризующийся тем, что запрос в шлюз бронирования билетов на поиск предложений является HTTP-запросом и/или HTTPS-запросом в API шлюза.12. The method according to claim 1, characterized in that the request to the ticket booking gateway to search for offers is an HTTP request and / or HTTPS request to the gateway API. 13. Способ по п. 1, характеризующийся тем, что ответ от шлюза бронирования билетов приходит в формате XML или JSON.13. The method according to claim 1, characterized in that the response from the ticket booking gateway comes in XML or JSON format.
RU2020108799A 2020-02-28 2020-02-28 Method and system for generating notifications about ticket offers RU2748177C1 (en)

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)

* Cited by examiner, † Cited by third party
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

Patent Citations (6)

* Cited by examiner, † Cited by third party
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