RU2790036C2 - Hardware and software complex for searching for fellow travellers - Google Patents

Hardware and software complex for searching for fellow travellers Download PDF

Info

Publication number
RU2790036C2
RU2790036C2 RU2020133210A RU2020133210A RU2790036C2 RU 2790036 C2 RU2790036 C2 RU 2790036C2 RU 2020133210 A RU2020133210 A RU 2020133210A RU 2020133210 A RU2020133210 A RU 2020133210A RU 2790036 C2 RU2790036 C2 RU 2790036C2
Authority
RU
Russia
Prior art keywords
module
server
request
chat
session
Prior art date
Application number
RU2020133210A
Other languages
Russian (ru)
Other versions
RU2020133210A (en
RU2020133210A3 (en
Inventor
Динар Наилевич Халиков
Original Assignee
Общество с ограниченной ответственностью «Панжа Консалт»
Filing date
Publication date
Application filed by Общество с ограниченной ответственностью «Панжа Консалт» filed Critical Общество с ограниченной ответственностью «Панжа Консалт»
Priority to RU2020133210A priority Critical patent/RU2790036C2/en
Priority to PCT/RU2021/000413 priority patent/WO2022075882A1/en
Publication of RU2020133210A publication Critical patent/RU2020133210A/en
Publication of RU2020133210A3 publication Critical patent/RU2020133210A3/ru
Application granted granted Critical
Publication of RU2790036C2 publication Critical patent/RU2790036C2/en

Links

Images

Abstract

FIELD: information technologies.
SUBSTANCE: invention relates to the field of information processing systems; it can be used in the implementation of a service for booking transport tickets, in particular in air travels. A hardware and software complex for searching for fellow travelers contains a server and client parts connected by communication channels. The client part is an application module located on at least one user device, and the server part consists of a web server, API server and chat server connected to each other.
EFFECT: increase in the functionality and informativity of the service for searching for fellow travelers.
1 cl, 4 dwg

Description

Область техникиTechnical field

Предложенное изобретение относится к области систем обработки информации и может найти свое применение при реализации сервиса бронирования билетов на транспорт, в частности при авиаперелетах.The proposed invention relates to the field of information processing systems and can be used in the implementation of the ticket booking service for transport, in particular for air travel.

Уровень техникиState of the art

Из уровня техники широко известен сервис бронирования билетов на транспорт, предоставляющий пользователю возможность посредством посещения web-сайта определенной компании (aeroflot.ru, rzd.ru и т.п.) по заданным критериям (дата, стоимость билета, номер свободного места в салоне) осуществить выбор и покупку билета для совершения поездки или перелета. Для обеспечения большего удобства компании-перевозчики разрабатывают мобильные приложения, посредством которых пользователь может осуществить указанные выше процедуры.From the prior art, a service for booking tickets for transport is widely known, which provides the user with the opportunity by visiting the website of a certain company (aeroflot.ru, rzd.ru, etc.) according to specified criteria (date, ticket price, number of free seats in the cabin) select and purchase a ticket for a trip or flight. To ensure greater convenience, carrier companies are developing mobile applications through which the user can carry out the above procedures.

Однако общим недостатком указанных систем является низкая функциональность и информативность вследствие ограниченных возможностей по выбору критериев поиска, обработки результатов запроса и предоставления дополнительной информации и функций.However, a common disadvantage of these systems is low functionality and informativeness due to limited possibilities for choosing search criteria, processing query results and providing additional information and functions.

Из уровня техники известна также система для «облегчения» планирования перелетов для нескольких пассажиров (СА 2988977 А1, 15.12.2016), на базе аппаратного-программного комплекса, включающего клиентскую и серверную части. На основе запроса система устанавливает атрибуты и планировщик выполняет поиск подходящего маршрута с предоставлением его пользователю. К атрибутам в известном решении могут относиться, в частности, город отправления, город назначения и отель для первого пассажира; город отправления, город назначения, отель и бронирование автомобиля для второго пассажира; и город отправления, город назначения, дату полета, отель и город назначения обратного рейса для третьего пассажира.A system is also known from the prior art for "facilitating" flight planning for several passengers (CA 2988977 A1, 12/15/2016), based on a hardware-software complex, including client and server parts. Based on the request, the system sets the attributes and the scheduler searches for a suitable route and provides it to the user. The attributes in the known solution may include, in particular, the city of departure, the city of destination and the hotel for the first passenger; departure city, destination city, hotel and car booking for the second passenger; and city of departure, city of destination, flight date, hotel and destination city of the return flight for the third passenger.

Система учитывает предпочтения пассажиров, которые входят атрибуты рейса, но не предоставляет пользователю информацию относительно пассажиров, которые являются потенциальными покупателями билетов того же рейса. Система не предоставляет пользователям возможность общения между собой и не дает возможности создания персонифицированного профиля, который может быть доступен иным пассажирам. Известная система направлена на улучшение логистики, т.е. в большей степени ориентирована не на пользователя, а на снижение издержек при предоставлении услуг. Таким образом, известному решению также присуща низкая функциональность и информативность.The system takes into account the preferences of passengers, which include flight attributes, but does not provide the user with information regarding passengers who are potential buyers of tickets for the same flight. The system does not provide users with the ability to communicate with each other and does not provide the ability to create a personalized profile that may be available to other passengers. The known system is aimed at improving logistics, i.e. is more focused not on the user, but on reducing costs in the provision of services. Thus, the known solution is also characterized by low functionality and information content.

В качестве аналога предложенного изобретения можно указать известное решение, представляющее собой устройство автоматизированного подбора попутчиков при покупке билетов на транспорт (RU 2706468 С2, 19.11.2019). Известное устройство, по существу являющееся системой, выполнено на базе аппаратно-программного комплекса и содержит интерфейс взаимодействия покупателя с системой бронирования и процессинговый центр. Система способна принимать запрос, связанный с поездкой, причем запрос, связанный с поездкой, связан с множеством пассажиров. На основе запроса система устанавливает множество атрибутов, проводит поиск и на основе результата поиска предоставляет маршрут для каждого из множества пассажиров. Кроме того, учитывая заданные предпочтения пользователя, система производит определение в салоне для пассажира места, наиболее соответствующее его предпочтениям. Такое определение осуществляется на основе предпочтений, указанных другими пользователями.As an analogue of the proposed invention, you can specify a well-known solution, which is a device for the automated selection of fellow travelers when buying tickets for transport (RU 2706468 C2, 11/19/2019). The known device, which is essentially a system, is made on the basis of a hardware-software complex and contains an interface for the interaction of the buyer with the reservation system and a processing center. The system is capable of receiving a travel request, wherein the travel request is associated with a plurality of passengers. Based on the request, the system sets a plurality of attributes, performs a search, and based on the search result, provides a route for each of the plurality of passengers. In addition, taking into account the given preferences of the user, the system determines the seat in the cabin for the passenger that best suits his preferences. This determination is made on the basis of preferences specified by other users.

Однако известная система также не предоставляет пользователям возможностей общения между собой и создания персонифицированного профиля, который может быть доступен иным пассажирам. Кроме того, выбор места осуществляется в автоматическом режиме и пользователь не имеет возможности отправлять или получать какую-либо дополнительную информацию от других пользователей, являющихся потенциальными покупателями билетов на данный рейс. Вместе с тем, имея указанную информацию, пассажир мог бы отказаться от бронирования билетов, выбрать более подходящее место для совместной поездки или же иметь возможность заранее запланировать свои действия по завершении поездки.However, the known system also does not provide users with the ability to communicate with each other and create a personalized profile that can be accessed by other passengers. In addition, seat selection is carried out automatically and the user does not have the ability to send or receive any additional information from other users who are potential buyers of tickets for this flight. However, with this information, the passenger could refuse to book tickets, choose a more suitable place for a joint trip, or be able to plan in advance their actions after the trip.

Предложенное изобретение направлено на преодоление известных недостатков уровня техники и позволяет обеспечить достижение технических результатов, заключающихся в повышении функциональности и информативности сервиса для поиска попутчиков.The proposed invention is aimed at overcoming the known shortcomings of the prior art and makes it possible to achieve technical results, which consist in increasing the functionality and information content of the service for finding fellow travelers.

Раскрытие изобретенияDisclosure of invention

Для достижения указанных технических результатов предложен аппаратно-программный комплекс для поиска попутчиков, содержащий соединенные между собой каналами связи серверную и клиентскую части, причем клиентская часть представляет собой модуль приложения, расположенный на, по меньшей мере, одном устройстве пользователя, а серверная часть состоит из соединенных между собой web-сервера, API-сервера и чат-сервера, при этом web-сервер содержит менеджер модулей, множество интерфейсных модулей, первый модуль авторизации и чат-модуль; API-сервер содержит маршрутизатор, второй модуль авторизации, модули обработки авторизованных и не авторизованных запросов, модуль обработки маршрута, модуль поиска перелетов и SMS модуль, а также соответствующие модулю обработки маршрута и модулю обработки не авторизованных запросов базы данных; чат-сервер содержит модуль терминатора потоковых запросов, сессионный модуль, модуль обработки запросов, модуль базы данных и PUSH модуль; модуль приложения содержит модуль загрузки, модуль авторизации/регистрации, модуль перелетов, модуль чата, модуль внутренней регистрации данных, модуль регистрации API, модуль избранного, модуль персональных настроек, содержащий блок загрузки медиа, при этом менеджер модулей загружает необходимый модуль интерфейса посредством https-запроса, первый модуль авторизации управляет сессией пользователя, которая обеспечивается путем использования ключевой пары хеш строк-ключ сессии и ключ обновления, ключ сессии используют для получения доступа к элементам сервиса, требующих авторизации, а ключ обновления используют при обновлении ключа сессии, чат-модуль отправляет и принимает запросы от сервера по протоколу WSS, который поддерживает инициацию передачи данных не только с запроса клиента, но и с сервера в режиме реального времени, после успешной авторизации чат-модуль устанавливает соединение с чат-сервером, при этом по данному каналу происходит отправка сообщений в чат и прием сообщений со стороны сервера, а также периодический обмен служебными сообщениями для определения активности сессии клиента, а чат-сервер подключает по протоколу WSS для взаимодействия в режиме реального времени с клиентами, подключенными к системе, а также передает сообщения между клиентами, маршрутизатор предназначен для парсинга адреса запроса и перенаправляет его в соответствующий результату парсинга модуль обработки запросов API-сервера, и представляет из себя процедуру, которая выполняет функцию, предназначенную для HTTP маршрута, второй модуль авторизации проверят валидность сессионного ключа и, в зависимости от результата проверки, возвращает ошибки доступа или передачи данных в модуль обработки авторизованных запросов, который в свою очередь предоставляет данные пользователю от модуля поиска перелетов, SMS модуля и базы данных, причем модуль поиска перелетов и SMS модуль представляют из себя абстракцию над API сервисов поиска перелетов и SMS рассылки соответственно, модуль обработки маршрута включает в себя бизнес логику API сервера и осуществляет взаимодействие с базой данных, модуль терминатора потоковых запросов определяет тип запроса, данные запроса и сессионные данные, сопровождающие запрос по протоколу WSS, сессионный модуль определяет валидность сессионного ключа и возвращает соответствующий результат терминатору потоковых запросов, причем в случае валидности сессионного ключа данные и тип запроса передаются в модуль обработки запросов чат-сервера, который вызывает соответствующий обработчик, модуль PUSH представляет из себя абстракцию над API сервисом отправки PUSH уведомлений и использует чат-сервер для оповещения участников беседы для обмена сообщениями, модуль базы данных обеспечивает работу с базой данных чат-сервера, модуль загрузки отображает экрана загрузки и предназначен для инициализации сессии, причем в случае авторизованного запроса модуль загрузки загружает данные пользователя, в случае не авторизованного доступа перенаправляет на модуль авторизации/регистрации, который предназначен для перехвата запроса и добавления служебных данных, осуществления регистрации, авторизации и подтверждения номера телефона, модуль перелетов содержит блок поиска перелетов и компонент календаря перелетов, модуль чата взаимодействует с чат-сервером посредством протокола WSS, модуль избранного формирует доступа к списку друзей, при этом в оперативной памяти устройства пользователя в течение работы модуля приложения находится менеджер состояний на базе Redux, и используется при работе приложения, при этом программный модуль, управляющий загрузкой блоков кода, при помощи https-запроса загружает необходимый модуль интерфейса.To achieve these technical results, a hardware-software complex for searching for fellow travelers is proposed, containing server and client parts connected by communication channels, moreover, the client part is an application module located on at least one user device, and the server part consists of connected between a web server, an API server, and a chat server, wherein the web server includes a module manager, a plurality of interface modules, a first authorization module, and a chat module; The API server contains a router, a second authorization module, modules for processing authorized and unauthorized requests, a route processing module, a flight search module and an SMS module, as well as databases corresponding to the route processing module and the module for processing unauthorized requests; the chat server contains a stream request terminator module, a session module, a request processing module, a database module, and a PUSH module; the application module contains a loading module, an authorization/registration module, a flights module, a chat module, an internal data logging module, an API registration module, a favorites module, a personal settings module containing a media loading block, while the module manager loads the required interface module via an https request , the first authorization module manages the user's session, which is provided by using a hash string-session key and update key pair, the session key is used to access service elements that require authorization, and the update key is used when updating the session key, the chat module sends and receives requests from the server using the WSS protocol, which supports the initiation of data transfer not only from the client request, but also from the server in real time; after successful authorization, the chat module establishes a connection with the chat server, while messages are sent via this channel to chat and receive messages from server side, as well as periodic exchange of service messages to determine the activity of the client session, and the chat server connects via the WSS protocol for real-time interaction with clients connected to the system, and also transmits messages between clients, the router is designed to parse the request address and redirects it to the API server request processing module corresponding to the parsing result, and is a procedure that performs a function intended for the HTTP route, the second authorization module checks the validity of the session key and, depending on the result of the check, returns access or data transfer errors to a module for processing authorized requests, which in turn provides data to the user from the flight search module, the SMS module and the database, and the flight search module and the SMS module are an abstraction over the API of the flight search services and SMS mailing, respectively, the route processing module includes the business logic of the server API and interacts with the database, the stream request terminator module determines the type of request, request data and session data accompanying the request via the WSS protocol, the session module determines the validity of the session key and returns the corresponding result to the stream request terminator, and in if the session key is valid, the data and request type are passed to the chat server request processing module, which calls the appropriate handler, the PUSH module is an abstraction over the API service for sending PUSH notifications and uses the chat server to notify the participants in the conversation for messaging, the database module provides work with the chat server database, the loading module displays the loading screen and is designed to initialize the session, and in the case of an authorized request, the loading module loads user data, in case of unauthorized access, redirects to the authorization module/re registration, which is designed to intercept a request and add service data, register, authorize and confirm a phone number, the flights module contains a flight search block and a flight calendar component, the chat module interacts with the chat server via the WSS protocol, the favorites module generates access to the list of friends , while in the RAM of the user's device during the operation of the application module there is a state manager based on Redux, and is used when the application is running, while the software module that controls the loading of code blocks loads the necessary interface module using an https request.

В дальнейшем разделе описания представлены сведения, показывающие предпочтительный вариант осуществления предложенного изобретения. Для специалиста будет понятно, что принцип, положенный в основу изобретения, может быть использован не только в сервисе, относящемся к авиа перелетам, но успешно может найти свое применение также и в иных информационных системах, в которых описанным в данной заявке образом возможно осуществление взаимодействия между пользователями.In the following section of the description provides information showing the preferred embodiment of the proposed invention. For a specialist it will be clear that the principle underlying the invention can be used not only in the service related to air travel, but can also be successfully applied in other information systems in which, in the manner described in this application, it is possible to interact between users.

Осуществление изобретенияImplementation of the invention

В данном разделе показано, каким образом может быть осуществлено изобретение с достижением указанных выше технических результатов, а также иных результатов, которые будут явным образом следовать для специалиста из представленных сведений, однако явным образом не отмечены выше как технические.This section shows how the invention can be carried out with the achievement of the above technical results, as well as other results that will clearly follow for a specialist from the information presented, but are not explicitly noted above as technical.

Предложенный аппаратно-программный комплекс для поиска попутчиков, представляет собой комплекс средств, предназначенных для гармоничного и слаженного взаимодействия так называемых фронтэнд (англ. Frontend) и бэкэнд (англ. Backend) частей. Фронтэнд относится к интерфейсу пользователя со стороны клиента, в то время как бэкэнд является программно-аппаратной частью самого сервиса. Таким образом, в предложенном изобретении приложение физически разделено на две основные части: аппаратная часть, обрабатывающая все запросы и возвращающая результат и клиентская часть, отображающая данные в удобной для пользователя форме.The proposed hardware-software complex for searching for fellow travelers is a set of tools designed for the harmonious and harmonious interaction of the so-called frontend (English Frontend) and backend (English Backend) parts. The frontend refers to the user interface on the client side, while the backend is the firmware of the service itself. Thus, in the proposed invention, the application is physically divided into two main parts: the hardware part, which processes all requests and returns the result, and the client part, which displays the data in a user-friendly form.

На фиг. 1 представлена обобщенная структурная схема комплекса.In FIG. 1 shows a generalized block diagram of the complex.

Для удобства и расширения функциональности фронтэнд часть представлена в виде двух возможных интерфейсов - обеспечиваемых мобильным приложением либо посредством доступа к сервису через web-интерфейс. В качестве ОС для мобильных приложений в предпочтительном варианте рассматриваются Android и iOS. Web сервер (не показано) предоставляет web интерфейс для клиентов, работающих с системой через браузер, например, посредством стационарного ПК. На фиг. 1 также представлены входящие в состав комплекса API-сервер и чат-сервер.For convenience and expansion of functionality, the front-end part is presented in the form of two possible interfaces - provided by a mobile application or by accessing the service through a web interface. As OS for mobile applications, Android and iOS are considered in the preferred embodiment. A web server (not shown) provides a web interface for clients accessing the system via a browser, such as a desktop PC. In FIG. 1 also shows the API server and chat server included in the complex.

Следует отметить, что разработанный комплекс в аппаратной части имеет минимальные требования к оборудованию.It should be noted that the developed complex in the hardware part has minimal hardware requirements.

Так, минимальными системными требованиями, при которых возможна работа сервиса, являются:So, the minimum system requirements under which the service is possible are:

Процессор: Intel Xeon Е5-2420 или лучше.Processor: Intel Xeon E5-2420 or better.

Оперативная память: 64 Гб DDR4 или больше.RAM: 64GB DDR4 or more.

Жесткий диск с аппаратной поддержкой технологии RAID 6 или более надежной и объемом не мене 5 Тб.A hard drive with hardware support for RAID 6 technology or more reliable and with a capacity of at least 5 TB.

Ниже представлены возможные действия пользователя при работе с приложением.Below are the possible user actions when working with the application.

Перед началом использования сервиса пользователю необходимо пройти процедуру регистрации в системе.Before using the service, the user must complete the registration procedure in the system.

Предпочтителен следующий порядок действий пользователя и работы мобильного приложения.The following order of actions for the user and the operation of the mobile application is preferable.

При запуске приложения модуль загрузки отображает экран загрузки и инициализирует сессию. Далее в случае авторизованного запроса (т.е. если пользователь уже ранее был зарегистрирован) модуль загрузки загружает данные пользователя.When the application is launched, the loading module displays the loading screen and initializes the session. Further, in case of an authorized request (ie, if the user has already been registered), the upload module loads the user's data.

В случае не авторизованного доступа модуль загрузки перенаправляет пользователя на модуль авторизации/регистрации.In case of unauthorized access, the download module redirects the user to the authorization/registration module.

Модуль авторизации/регистрации состоит из перехватчика запросов, который перехватывает запрос и добавляет служебные данные. Также он содержит компонент авторизации, компонент регистрации и компонент подтверждения номера телефона.The authorization/registration module consists of a request interceptor that intercepts the request and adds overhead. It also contains an authorization component, a registration component, and a phone number verification component.

Для регистрации в системе пользователю необходимо:To register in the system, the user must:

- указать адрес электронной почты;- specify the e-mail address;

- указать имя;- specify the name;

- указать пароль для дальнейшего входа в систему, и подтвердить его повторным вводом;- specify a password for further entry into the system, and confirm it by re-entering it;

- указать номер сотового телефона, к которому в дальнейшем будет привязана его учетная запись, после чего на данный номер придет SMS с кодом;- indicate the cell phone number to which his account will be linked in the future, after which an SMS with a code will be sent to this number;

- подтвердить номер телефона вводом кода из SMS сообщения.- confirm the phone number by entering the code from the SMS message.

После прохождения процедуры регистрации пользователь получает доступ к своей учетной записи в приложении и может зайти в приложение с любого устройства, используя адрес электронной почты в качестве логина и пароль.After completing the registration procedure, the user gets access to his account in the application and can enter the application from any device using the email address as a login and password.

Посредством интерфейса приложения пользователь может искать авиарейсы по пункту отправления и прибытия, а также дате вылета, за что отвечает модуль перелетов, в который включены блок поиска перелетов, и компонент календаря перелетов.Using the application interface, the user can search for flights by point of departure and arrival, as well as the date of departure, for which the flights module, which includes the flight search block, and the flight calendar component, is responsible.

Используя приложение, пользователь может подписаться на конкретный рейс, тем самым став видимым для других пользователей, также подписанных на данный рейс, т.е. такие пользователи становятся попутчиками.Using the application, the user can subscribe to a specific flight, thereby becoming visible to other users who are also subscribed to this flight, i.e. such users become fellow travelers.

Найдя интересного ему пассажира (попутчика) в системе, летящего с ним одним рейсом, пользователь может отправить ему сообщения, например, с целью знакомства. Данная функция обеспечивается модулем чата, взаимодействующим с чат-сервером бэкэнда посредством протокола WSS (WSS-тоннель). Интересующий пассажир может быть найден, например, посредством просмотра его профиля с информацией о нем и фотографий, прикрепленных к профилю.Having found an interesting passenger (fellow traveler) in the system, flying with him on the same flight, the user can send him messages, for example, for the purpose of acquaintance. This function is provided by the chat module interacting with the backend chat server via the WSS protocol (WSS tunnel). The passenger of interest can be found, for example, by viewing his profile with information about him and the photos attached to the profile.

Редактирование профиля и загрузка фотографий обеспечивается модулем персональных настроек, в составе которого содержится блок загрузки медиа. Например, пользователь может прикрепить к профилю фотографию, сделанную непосредственно своим мобильным устройством. Также в своем профиле пользователь может указать и отредактировать информацию «О себе» с целью упрощения общения с другими пользователями. Такая информация может включать, но не ограничиваясь этим: фотографии, указание тендерной принадлежности, выбор фотографии для аватарки профиля, интересы и прочее.Editing a profile and uploading photos is provided by the personal settings module, which contains a media upload block. For example, a user can attach a photo taken directly with their mobile device to their profile. Also, in his profile, the user can specify and edit information "About himself" in order to simplify communication with other users. Such information may include, but is not limited to: photographs, indication of gender, selection of a photo for a profile picture, interests, and so on.

Также пользователь может отправить приглашение в друзья другому пользователю. После принятия приглашения, каждый из пользователей может видеть в своем списке избранного (френдлист) тех пользователей, которые приняли такое приглашение.The user can also send a friend invitation to another user. After accepting the invitation, each of the users can see in his list of favorites (friendlist) those users who accepted such an invitation.

Пользователь имеет возможность просмотра истории рейсов, на которые подписан он или же другой пользователь, а также имеет доступ к истории сообщений чата.The user has the ability to view the history of flights to which he or another user is subscribed, and also has access to the history of chat messages.

Пользователь имеет возможность направить обращение в техническую поддержку при возникновении различных ошибок в работе сервиса.The user has the opportunity to send an appeal to technical support in case of various errors in the operation of the service.

В мобильном приложении также предусмотрены модуль внутренней регистрации данных и модуль регистрации API.The mobile application also provides an internal data logging module and an API logging module.

Также при работе приложения в оперативной памяти устройства пользователя находится менеджер состояний на базе Redux.Also, when the application is running in the RAM of the user's device, there is a state manager based on Redux.

Следует отметить, что использованный в рамках данной заявки термин «информативность» относится не только к предоставлению пользователю дополнительной, не представленной ранее в подобных системах информации, как это показано выше, но и характеризует информацию как меру упорядоченности материальной системы. В предложенном изобретении удельная информативность источника увеличивается за счет структурирования информации и предоставления ее в таком виде пользователю.It should be noted that the term "informativeness" used in this application refers not only to providing the user with additional information not previously presented in such systems, as shown above, but also characterizes information as a measure of the orderliness of the material system. In the proposed invention, the specific informativeness of the source is increased by structuring the information and presenting it in this form to the user.

Предложенное изобретение в обобщенном виде представлено следующими компонентами:The proposed invention in a generalized form is represented by the following components:

API-сервер (Бэкэнд-сервер), web-сервер, мобильные клиенты (Android, iOS), чат-сервер.API server (Backend server), web server, mobile clients (Android, iOS), chat server.

Бэкэнд сервер реализует доступ к API-интерфейсу для обработки данных, выполнения запросов пользователей и прочие функции, предусмотренные для работы комплекса, не входящие в предмет данного изобретения.The backend server implements access to the API for processing data, executing user requests and other functions provided for the operation of the complex, which are not included in the subject of this invention.

Web-сервер предоставляет web интерфейс для клиентов, работающих с системой через браузер.The web server provides a web interface for clients working with the system through a browser.

Чат-сервер предоставляет подключение по протоколу WSS для взаимодействия в режиме реального времени с клиентами, подключенными к системе, а также отвечает за отправку сообщений между клиентами.The chat server provides a WSS connection for real-time interaction with clients connected to the system, and is also responsible for sending messages between clients.

Мобильные клиенты предоставляют доступ клиентам к системе посредством мобильных телефонов как на базе операционной системы Android, так и на базе IOS и также позволяют отправлять и получать сообщения между клиентами системы.Mobile clients allow clients to access the system via both Android and IOS mobile phones and also allow sending and receiving messages between system clients.

Далее представлены сведения о работе каждого из указанных выше компонентов аппаратно-программного комплекса.Further, information about the operation of each of the above components of the hardware-software complex is presented.

Работа с web-сервером осуществляется следующим образом.Working with the web server is carried out as follows.

На фиг. 2 представлена примерная структурная схема.In FIG. 2 is an exemplary block diagram.

При работе с web-сервером, как уже было отмечено выше, пользователь осуществляет вход в систему посредством пары логин/пароль. После чего программный модуль, управляющий загрузкой блоков кода (первых модулей), при помощи https-запроса загружает необходимый модуль интерфейса. Таким образом, требуемый функционал загружается на устройство пользователя не целиком, а по мере возникновения необходимости. Такое решение позволяет уменьшить объем трафика, потребляемого устройством пользователя, а также снизить нагрузку на сеть и вычислительные мощности комплекса вследствие снижения объема обработки и передачи данных.When working with a web server, as noted above, the user logs into the system using a login/password pair. After that, the program module that controls the loading of code blocks (the first modules) loads the necessary interface module using an https request. Thus, the required functionality is not loaded on the user's device in its entirety, but as the need arises. This solution allows reducing the amount of traffic consumed by the user's device, as well as reducing the load on the network and computing power of the complex due to a decrease in the amount of processing and data transmission.

Модуль авторизации web-сервера (первый модуль авторизации в терминологии признаков формулы) выполняет функции управления сессией пользователя. Сессия пользователя обеспечивается путем использование ключевой пары хеш строк-ключ сессии и ключ обновления. Ключ сессии используется для получения доступа к элементам сервиса, требующих авторизации. Ключ обновления используется при обновлении ключа сессии. При совершении https-запроса на сервер, если срок действия ключа сессии истекает, происходит проверка ключа обновления. В случае, если срок действия ключа обновления еще не истек, модуль авторизации обновляет ключ сессии, в результате чего с сервера приходит новая пара ключей (сессии и обновления). Если срок действия ключа обновления истек, пользователь попадает на страницу авторизации с приглашением ввести логин и пароль. Ключ сессии и ключ обновления хранятся в памяти браузера клиента.The web server authorization module (the first authorization module in the terminology of formula features) performs the functions of managing the user session. The user session is secured by using a hash string-session key and refresh key key pair. The session key is used to gain access to elements of the service that require authorization. The refresh key is used when updating the session key. When making an https request to the server, if the session key expires, the refresh key is checked. If the renewal key has not yet expired, the authorization module renews the session key, resulting in a new pair of keys (session and updates) coming from the server. If the update key has expired, the user is taken to an authorization page with an invitation to enter a login and password. The session key and refresh key are stored in the memory of the client's browser.

Чат модуль web-сервера реализует функционал отправки и приема сообщений из чата. Функция активируется после успешной установки сессии. Модуль чата отправляет и принимает запросы от сервера по протоколу WSS (URI-схема протокола WebSocket, WebSocket над HTTPS), который поддерживает инициацию передачи данных не только с запроса клиента, но и с сервера в режиме реального времени. Также отличительной особенностью протокола WSS является наличие шифрованного соединения, что обеспечивает повышение безопасности использования чата. Кроме того, в случае наличия HTTP прокси между клиентом и сервером, соединение через WSS является более надежным вследствие того, что HTTP прокси не будет обрезать заголовки WebSocket (что может оборвать передачу), поскольку трафик через него будет проходить в зашифрованном виде.The chat module of the web server implements the functionality of sending and receiving messages from the chat. The function is activated after a successful session setup. The chat module sends and receives requests from the server using the WSS protocol (URI scheme of the WebSocket protocol, WebSocket over HTTPS), which supports initiating data transfer not only from a client request, but also from the server in real time. Also, a distinctive feature of the WSS protocol is the presence of an encrypted connection, which increases the security of using the chat. Also, if there is an HTTP proxy between the client and the server, the WSS connection is more reliable due to the fact that the HTTP proxy will not truncate the WebSocket headers (which can break the transmission) because the traffic through it will be encrypted.

После успешной авторизации чат модуль устанавливает соединение с чат-сервером, которое держится в течении всего сеанса использования приложения. По данному каналу происходит отправка сообщений в чат, прием их со стороны сервера, периодический обмен служебными сообщениями для определения активности сессии клиента. Каждое сообщение от клиента так же сопровождает сессионный ключ. Отмеченные действия могут быть обеспечены посредством модулей, WSS коннектор, Чат сервис с функцией отсылки на чат сервер бэкэнда.After successful authorization, the chat module establishes a connection with the chat server, which is maintained throughout the entire session of using the application. This channel sends messages to the chat, receives them from the server, periodically exchanges service messages to determine the activity of the client session. Each message from the client also accompanies the session key. Marked actions can be provided through modules, WSS connector, Chat service with the function of sending to the backend chat server.

Архитектура web версии приложения построена согласно паттерну MVC (Model-View-Controller). Блоки кода, объединенные обслуживанием функционала, объединены в сервисы, представляющие интерфейсы для работы другим блокам и модулям приложения. Так, запросы к серверу осуществляются при помощи HTTP сервиса, которые проходят через перехватчик запросов, дополняющий запрос ключом сессии. Запросы осуществляются по протоколу HTTPS к серверу оттуда ответ возвращается на HTTP сервис который, обработав запрос, перенаправляет его в блок кода отвечающий за хранение состояния приложения и данных (модель). Данные из модели отражаются в интерфейсе пользователя.The architecture of the web version of the application is built according to the MVC (Model-View-Controller) pattern. Blocks of code, united by the maintenance of functionality, are combined into services that represent interfaces for other blocks and application modules to work with. So, requests to the server are made using an HTTP service that passes through a request interceptor that completes the request with a session key. Requests are made via the HTTPS protocol to the server from there, the response is returned to the HTTP service, which, having processed the request, redirects it to the code block responsible for storing the application state and data (model). The data from the model is reflected in the user interface.

Работа с API-сервером осуществляется следующим образом.Working with the API-server is carried out as follows.

На фиг. 3 представлена примерная структурная схема функционирования API-сервера.In FIG. 3 shows an exemplary block diagram of the functioning of the API server.

При получении запроса он направляется на программный модуль, занимающийся парсингом адреса запроса (маршрутизатор). Далее, в зависимости от адреса, данный запрос перенаправляется в соответствующий обработчик запроса. В системе обеспечено два вида маршрутов - маршруты, требующие авторизованного доступа и маршруты, не требующие авторизованного доступа. Авторизация осуществляется модулем авторизации (вторым модулем авторизации в терминологии признаков формулы) путем проверки валидности сессионного ключа (не показан). В случае его наличия и успешного прохождения валидации, система передает запрос обработчику. В случае ошибки или отсутствия ключа - возвращается ошибка доступа.When a request is received, it is sent to the program module that parses the request address (router). Further, depending on the address, this request is redirected to the appropriate request handler. The system provides two types of routes - routes that require authorized access and routes that do not require authorized access. Authorization is carried out by the authorization module (the second authorization module in the terminology of formula features) by checking the validity of the session key (not shown). If it is available and validation is successful, the system passes the request to the handler. In case of an error or lack of a key, an access error is returned.

Обработчик маршрутов включает в себя бизнес логику сервера и осуществляет взаимодействие с базой данных.The route handler includes the business logic of the server and interacts with the database.

Модуль поиска перелетов и SMS модуль представляет из себя абстракцию над API сервисов поиска перелетов и SMS рассылки соответственно. Такое решение используется для обеспечения меньшей связности системы и сторонних сервисов.The flight search module and the SMS module is an abstraction over the API of the flight search and SMS mailing services, respectively. This solution is used to ensure less connectivity between the system and third-party services.

В случае авторизованного запроса, данные передаются на модуль обработки авторизованных запросов, предоставляющий данные от модуля (прокси) поиска перелетов посредством notion.io, а также из базы данных и SMS модуля. Сформированный ответ по обратной цепочке передается на фронтэнд пользователю.In the case of an authorized request, the data is transmitted to the authorized request processing module, which provides data from the flight search module (proxy) via notion.io, as well as from the database and SMS module. The generated response is passed back to the frontend user through the reverse chain.

Работа чат-сервера обеспечивается следующим образом.The operation of the chat server is provided as follows.

На фиг. 4 представлена примерная структурная схема функционирования чат сервера.In FIG. 4 shows an exemplary block diagram of the functioning of the chat server.

Чат сервер взаимодействует посредством Тоннеля WSS с Терминатором потоковых запросов, далее на сессионный модуль и модуль обработки запросов.The chat server interacts via the WSS Tunnel with the stream request terminator, then to the session module and the request processing module.

Терминатор потоковых запросов представляет собой программный модуль, определяющий тип запроса, данные запроса и сессионные данные, сопровождающие запрос.A stream request terminator is a software module that defines the request type, request data, and session data that accompanies the request.

Сессионный модуль определяет валидность сессионного ключа и возвращает соответствующий результат терминатору потоковых запросов. В случае валидности сессионного ключа данные и тип запроса передаются в модуль обработки запросов, который вызывает соответствующий обработчик.The session module determines the validity of the session key and returns the corresponding result to the stream request terminator. If the session key is valid, the data and request type are passed to the request processing module, which calls the appropriate handler.

Модуль PUSH уведомлений представляет из себя абстракцию над API сервисов отправки Push уведомлений. Такое решение используется для обеспечения меньшей связности системы и сторонних сервисов.The PUSH notifications module is an abstraction over the API of push notification sending services. This solution is used to ensure less connectivity between the system and third-party services.

Модуль базы данных, как это очевидно для специалиста, обеспечивает работу с базой данных.The database module, as is obvious to a specialist, provides work with the database.

Таким образом, предложенное изобретение может быть осуществлено известными из уровня техники средствами, а в результате реализации аппаратно-программного комплекса для поиска попутчиков, обеспечивается повышение функциональности и информативности сервиса для поиска попутчиков.Thus, the proposed invention can be implemented by means known from the prior art, and as a result of the implementation of a hardware-software complex for searching for fellow travelers, an increase in the functionality and information content of the service for searching for fellow travelers is provided.

Claims (1)

Аппаратно-программный комплекс для поиска попутчиков, содержащий соединенные между собой каналами связи серверную и клиентскую части, причем клиентская часть представляет собой модуль приложения, расположенный на, по меньшей мере, одном устройстве пользователя, а серверная часть состоит из соединенных между собой web-сервера, API-сервера и чат-сервера, при этом web-сервер содержит менеджер модулей, множество интерфейсных модулей, первый модуль авторизации и чат-модуль; API-сервер содержит маршрутизатор, второй модуль авторизации, модули обработки авторизованных и не авторизованных запросов, модуль обработки маршрута, модуль поиска перелетов и SMS модуль, а также соответствующие модулю обработки маршрута и модулю обработки не авторизованных запросов базы данных; чат-сервер содержит модуль терминатора потоковых запросов, сессионный модуль, модуль обработки запросов, модуль базы данных и PUSH модуль; модуль приложения содержит модуль загрузки, модуль авторизации/регистрации, модуль перелетов, модуль чата, модуль внутренней регистрации данных, модуль регистрации API, модуль избранного, модуль персональных настроек, содержащий блок загрузки медиа, при этом менеджер модулей загружает необходимый модуль интерфейса посредством https-запроса, первый модуль авторизации управляет сессией пользователя, которая обеспечивается путем использования ключевой пары хеш строк-ключ сессии и ключ обновления, ключ сессии используют для получения доступа к элементам сервиса, требующим авторизации, а ключ обновления используют при обновлении ключа сессии, чат-модуль отправляет и принимает запросы от сервера по протоколу WSS, который поддерживает инициацию передачи данных не только с запроса клиента, но и с сервера в режиме реального времени, после успешной авторизации чат-модуль устанавливает соединение с чат-сервером, при этом по данному каналу происходит отправка сообщений в чат и прием сообщений со стороны сервера, а также периодический обмен служебными сообщениями для определения активности сессии клиента, а чат-сервер подключает по протоколу WSS для взаимодействия в режиме реального времени с клиентами, подключенными к системе, а также передает сообщения между клиентами, маршрутизатор предназначен для парсинга адреса запроса и перенаправляет его в соответствующий результату парсинга модуль обработки запросов API-сервера, и представляет из себя процедуру, которая выполняет функцию, предназначенную для HTTP маршрута, второй модуль авторизации проверят валидность сессионного ключа и, в зависимости от результата проверки, возвращает ошибки доступа или передачи данных в модуль обработки авторизованных запросов, который в свою очередь предоставляет данные пользователю от модуля поиска перелетов, SMS модуля и базы данных, причем модуль поиска перелетов и SMS модуль представляют из себя абстракцию над API сервисов поиска перелетов и SMS рассылки соответственно, модуль обработки маршрута включает в себя бизнес логику API сервера и осуществляет взаимодействие с базой данных, модуль терминатора потоковых запросов определяет тип запроса, данные запроса и сессионные данные, сопровождающие запрос по протоколу WSS, сессионный модуль определяет валидность сессионного ключа и возвращает соответствующий результат терминатору потоковых запросов, причем в случае валидности сессионного ключа данные и тип запроса передаются в модуль обработки запросов чат-сервера, который вызывает соответствующий обработчик, модуль PUSH представляет из себя абстракцию над API сервисом отправки PUSH уведомлений и использует чат-сервер для оповещения участников беседы для обмена сообщениями, модуль базы данных обеспечивает работу с базой данных чат-сервера, модуль загрузки отображает экран загрузки и предназначен для инициализации сессии, причем в случае авторизованного запроса модуль загрузки загружает данные пользователя, в случае не авторизованного доступа перенаправляет на модуль авторизации/регистрации, который предназначен для перехвата запроса и добавления служебных данных, осуществления регистрации, авторизации и подтверждения номера телефона, модуль перелетов содержит блок поиска перелетов и компонент календаря перелетов, модуль чата взаимодействует с чат-сервером посредством протокола WSS, модуль избранного формирует доступ к списку друзей, при этом в оперативной памяти устройства пользователя в течение работы модуля приложения находится менеджер состояний на базе Redux, и используется при работе приложения, при этом программный модуль, управляющий загрузкой блоков кода, при помощи https-запроса загружает необходимый модуль интерфейса.A hardware-software complex for searching for fellow travelers, comprising server and client parts connected by communication channels, wherein the client part is an application module located on at least one user device, and the server part consists of interconnected web servers, an API server and a chat server, the web server comprising a module manager, a plurality of interface modules, a first authorization module, and a chat module; The API server contains a router, a second authorization module, modules for processing authorized and unauthorized requests, a route processing module, a flight search module and an SMS module, as well as databases corresponding to the route processing module and the module for processing unauthorized requests; the chat server contains a stream request terminator module, a session module, a request processing module, a database module, and a PUSH module; the application module contains a loading module, an authorization/registration module, a flights module, a chat module, an internal data logging module, an API registration module, a favorites module, a personal settings module containing a media loading block, while the module manager loads the required interface module via an https request , the first authorization module manages the user's session, which is provided by using a hash string-session key and update key pair, the session key is used to access service elements that require authorization, and the update key is used when updating the session key, the chat module sends and receives requests from the server using the WSS protocol, which supports the initiation of data transfer not only from the client request, but also from the server in real time; after successful authorization, the chat module establishes a connection with the chat server, while messages are sent via this channel to chat and receive messages from server side, as well as periodic exchange of service messages to determine the activity of the client session, and the chat server connects via the WSS protocol for real-time interaction with clients connected to the system, and also transmits messages between clients, the router is designed to parse the request address and redirects it to the API server request processing module corresponding to the parsing result, and is a procedure that performs a function intended for the HTTP route, the second authorization module checks the validity of the session key and, depending on the result of the check, returns access or data transfer errors to a module for processing authorized requests, which in turn provides data to the user from the flight search module, the SMS module and the database, and the flight search module and the SMS module are an abstraction over the API of the flight search services and SMS mailing, respectively, the route processing module includes the business logic of the server API and interacts with the database, the stream request terminator module determines the type of request, request data and session data accompanying the request via the WSS protocol, the session module determines the validity of the session key and returns the corresponding result to the stream request terminator, and in if the session key is valid, the data and request type are passed to the chat server request processing module, which calls the appropriate handler, the PUSH module is an abstraction over the API service for sending PUSH notifications and uses the chat server to notify the participants in the conversation for messaging, the database module provides work with the chat server database, the loading module displays the loading screen and is designed to initialize the session, and in the case of an authorized request, the loading module loads the user data, in case of unauthorized access, it redirects to the authorization module isration, which is designed to intercept the request and add service data, register, authorize and confirm the phone number, the flights module contains a flight search block and a flight calendar component, the chat module interacts with the chat server via the WSS protocol, the favorites module generates access to the list of friends , while in the RAM of the user's device during the operation of the application module there is a state manager based on Redux, and is used when the application is running, while the software module that controls the loading of code blocks loads the necessary interface module using an https request.
RU2020133210A 2020-10-08 2020-10-08 Hardware and software complex for searching for fellow travellers RU2790036C2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
RU2020133210A RU2790036C2 (en) 2020-10-08 Hardware and software complex for searching for fellow travellers
PCT/RU2021/000413 WO2022075882A1 (en) 2020-10-08 2021-10-07 Hardware and software complex for searching for fellow travellers

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2020133210A RU2790036C2 (en) 2020-10-08 Hardware and software complex for searching for fellow travellers

Publications (3)

Publication Number Publication Date
RU2020133210A RU2020133210A (en) 2022-04-08
RU2020133210A3 RU2020133210A3 (en) 2022-04-08
RU2790036C2 true RU2790036C2 (en) 2023-02-14

Family

ID=

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014072931A1 (en) * 2012-11-08 2014-05-15 Seatid Ltd. Device, system, and method of sharing social network information
US20150011185A1 (en) * 2013-07-02 2015-01-08 Fortis Riders Corporation Mobile application using facilitating dedicated communication between specific users
CA2988977A1 (en) * 2015-06-11 2016-12-15 Amgine Technologies (Us), Inc. Multi-passenger travel booking platform
RU2706468C2 (en) * 2019-05-23 2019-11-19 Андрей Веналиевич Амелин Method of automated selection of fellow passengers when buying tickets for transport and device for its implementation
US20200258135A1 (en) * 2019-02-07 2020-08-13 Flyority, Llc Travel mobile application

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014072931A1 (en) * 2012-11-08 2014-05-15 Seatid Ltd. Device, system, and method of sharing social network information
US20150011185A1 (en) * 2013-07-02 2015-01-08 Fortis Riders Corporation Mobile application using facilitating dedicated communication between specific users
CA2988977A1 (en) * 2015-06-11 2016-12-15 Amgine Technologies (Us), Inc. Multi-passenger travel booking platform
US20200258135A1 (en) * 2019-02-07 2020-08-13 Flyority, Llc Travel mobile application
RU2706468C2 (en) * 2019-05-23 2019-11-19 Андрей Веналиевич Амелин Method of automated selection of fellow passengers when buying tickets for transport and device for its implementation

Similar Documents

Publication Publication Date Title
US7428750B1 (en) Managing multiple user identities in authentication environments
US8639785B2 (en) Unsolicited cookie enabled contextual data communications platform
US10264095B2 (en) Control for inviting an unauthenticated user to gain access to display of content that is otherwise accessible with an authentication mechanism
EP2915310B1 (en) Method of processing requests for digital services
US10425422B1 (en) Message content modification devices and methods
KR101062809B1 (en) How to advertise your business enterprise through instant messaging
US7904601B2 (en) Internet service login using preexisting services
US7788183B2 (en) Apparatus, system, and method for facilitating electronic communication based on a personal contact
US20080270019A1 (en) Systems and methods for enhancing private transportation
JP2019517086A (en) Technology for the Messaging Agent Platform
US11188626B2 (en) Multi-user login session
US20120227086A1 (en) Cross social network data aggregation
US7188252B1 (en) User editable consent
CN103858457A (en) Multi-hop single sign-on (sso) for identity provider (idp) roaming/proxy
US20190171798A1 (en) Method and system for identifying pre-identified or pre-selected groups of individuals for transportation
US20180205676A1 (en) Creating Groups in a Messaging System
US20100250702A1 (en) Digital content processing system and method
KR20020028297A (en) System for integrated ID management
RU2790036C2 (en) Hardware and software complex for searching for fellow travellers
CN110178153A (en) Reduced user authentication input requirements
US8738513B2 (en) Apparatus and method for managing account information
WO2022075882A1 (en) Hardware and software complex for searching for fellow travellers
US20140114871A1 (en) Re-engineering user login / registration process for job applications
KR20100036623A (en) System and method for relaying tour goods and program recording medium
Nguyen et al. IBM MobileFirst in Action for mGovernment and Citizen Mobile Services