RU2784208C1 - Distributed database system and implementation method - Google Patents

Distributed database system and implementation method Download PDF

Info

Publication number
RU2784208C1
RU2784208C1 RU2022101611A RU2022101611A RU2784208C1 RU 2784208 C1 RU2784208 C1 RU 2784208C1 RU 2022101611 A RU2022101611 A RU 2022101611A RU 2022101611 A RU2022101611 A RU 2022101611A RU 2784208 C1 RU2784208 C1 RU 2784208C1
Authority
RU
Russia
Prior art keywords
computing device
distributed database
computing devices
instance
group
Prior art date
Application number
RU2022101611A
Other languages
Russian (ru)
Inventor
Алексей Сергеевич Медведев
Original Assignee
Алексей Сергеевич Медведев
Filing date
Publication date
Application filed by Алексей Сергеевич Медведев filed Critical Алексей Сергеевич Медведев
Application granted granted Critical
Publication of RU2784208C1 publication Critical patent/RU2784208C1/en

Links

Images

Abstract

FIELD: computer technology.
SUBSTANCE: present invention relates to the field of computer technology. The effect is achieved due to the fact that the computing device (CD) sends by means of a server with a messaging system and a server with a server disk to another CD a part of an instance of a distributed database (DB) intended for editing and/or coordination, and also receives from another CD instance of a distributed (DB), record of a synchronization event, record of previous synchronization events with other CDs, order of synchronization events, value for a parameter, while the first CD contains a part of a distributed instance (DB) configured to be transferred to a plurality of CDs of the system, which are implemented by distributed networks (DB). Each of the CDs is configured to detect the receipt of a message from other CDs and, in the absence of permission to exchange messages, request permission to exchange data with the CD having a unique ID of the CD account from which the message came, and if such permission is available, to automatically extract from a link message that automatically adds a new instance to the (DB) of the second or subsequent CDs.
EFFECT: increasing the stability of a hardware failure in a distributed database (DB).
10 cl, 5 dwg

Description

Изобретение относится к области вычислительной техники и предназначено для реализации передачи данных внутри объединенной сетью группы вычислительных устройств, а также обмена данными между разными такими группами вычислительных устройств. The invention relates to the field of computer technology and is intended to implement data transfer within a networked group of computing devices, as well as data exchange between different such groups of computing devices.

Из уровня техники известен способ работы с распределенной базой данных содержащий этапы, на которых интерфейсный сервер получает запрос на обслуживание базы данных, и запрос на обслуживание базы данных делится на операцию записи и операцию чтения; сервер интерфейса отправляет операцию записи на предварительно назначенный сервер глобальной базы данных для выполнения, а сервер глобальной базы данных передает результат выполнения всем другим серверам распределенной базы данных в цепном режиме; и сервер интерфейса выбирает один сервер распределенной базы данных и отправляет операцию чтения выбранному серверу распределенной базы данных для выполнения (патент CN108241641 A 03.07.2018).In the prior art, a method for working with a distributed database is known, comprising the steps in which the front-end server receives a database service request, and the database service request is divided into a write operation and a read operation; the interface server sends the write operation to the pre-designated global database server for execution, and the global database server sends the execution result to all other distributed database servers in chain mode; and the interface server selects one distributed database server and sends a read operation to the selected distributed database server for execution (patent CN108241641 A 07/03/2018).

Из уровня техники известно также устройство для реализации распределенной базы данных, содержащее: память первого вычислительного устройства, содержащую часть экземпляра распределенной базы данных на первом вычислительном устройстве, приспособленном для включения во множество вычислительных устройств, которые реализуют посредством сети, функционально соединенной с множеством вычислительных устройств, распределенную базу данных, которая содержит первую запись, находящуюся в логической связи с первым открытым ключом, связанным с первым вычислительным устройством; и процессор первого вычислительного устройства, функционально соединенный с памятью, при этом процессор приспособлен для: приема со второго вычислительного устройства из множества вычислительных устройств первого открытого ключа, связанного со вторым вычислительным устройством, и зашифрованного с помощью первого открытого ключа, связанного с первым вычислительным устройством, и находящегося в логической связи со второй записью распределенной базы данных; расшифровки на первом вычислительном устройстве первого открытого ключа, связанного со вторым вычислительным устройством, с помощью закрытого ключа, находящегося в паре с первым открытым ключом, связанным с первым вычислительным устройством; отправки на второе вычислительное устройство второго открытого ключа, связанного с первым вычислительным устройством, находящегося в логической связи с третьей записью распределенной базы данных и зашифрованного с помощью второго открытого ключа, связанного со вторым вычислительным устройством и находящегося в логической связи с четвертой записью распределенной базы данных; определения команды передачи путем выполнения лексикографического сравнения между вторым открытым ключом, связанным с первым вычислительным устройством, и первым открытым ключом, связанным со вторым вычислительным устройством; и отправки сигнала для внесения в распределенную базу данных команды передачи, приспособленной для передачи значения из каждой исходной записи из множества исходных записей, включая первую запись и четвертую запись, в другую целевую запись из множества целевых записей, включая вторую запись и третью запись, при этом команда передачи подписана с помощью закрытого ключа и приспособлена для исполнения таким образом, чтобы скрыть идентификатор вычислительного устройства, связанного с каждой целевой записью из множества целевых записей, среди набора вычислительных устройств, содержащего первое вычислительное устройство и второе вычислительное устройство (патент RU 2746446 C2 14.04.2021). A device for implementing a distributed database is also known from the prior art, comprising: a memory of the first computing device containing a part of the distributed database instance on the first computing device adapted for inclusion in a plurality of computing devices that are implemented via a network operatively connected to a plurality of computing devices, a distributed database that contains a first entry in logical association with a first public key associated with the first computing device; and a processor of the first computing device operatively connected to the memory, wherein the processor is adapted to: receive from the second computing device of the plurality of computing devices the first public key associated with the second computing device and encrypted with the first public key associated with the first computing device, and being in a logical connection with the second record of the distributed database; decrypting, on the first computing device, the first public key associated with the second computing device with the private key paired with the first public key associated with the first computing device; sending to the second computing device a second public key associated with the first computing device, in logical connection with the third distributed database entry and encrypted with the second public key, associated with the second computing device and in logical connection with the fourth distributed database entry; determining a transmission command by performing a lexicographic comparison between the second public key associated with the first computing device and the first public key associated with the second computing device; and sending a signal to insert into the distributed database a transfer command adapted to transfer a value from each source entry of the plurality of source entries, including the first entry and the fourth entry, to another target entry of the plurality of target entries, including the second entry and the third entry, wherein the transmission command is signed with a private key and adapted to be executed in such a way as to hide the identifier of the computing device associated with each target record from the set of target records among the set of computing devices containing the first computing device and the second computing device (patent RU 2746446 C2 14.04. 2021).

Недостатком известного решения является то, что существующие системы, известные из уровня техники организованы в виде сервера, доступ к которому осуществляется через веб интерфейс (сайт), на котором хранятся все документы всех пользователей. И в соответствии с правами при взаимодействии пользователей дается доступ к файлам других пользователей. То есть в существующих системах используют обычную технологию клиент-сервер. Такой вид системы ненадежен вследствие того, что неработоспособность сервера может сделать неработоспособной всю вычислительную сеть. При это неработоспособным сервером следует считать сервер производительности которого не хватает на обслуживание всех клиентов, а также сервер, находящийся в ремонте, профилактике, под атакой (DDos атака например) и т.п.The disadvantage of the known solution is that the existing systems known from the prior art are organized as a server, which is accessed through a web interface (website), which stores all documents of all users. And in accordance with the rights, when users interact, access to files of other users is given. That is, existing systems use conventional client-server technology. This type of system is unreliable due to the fact that the inoperability of the server can make the entire computer network inoperable. At the same time, an inoperable server should be considered a server whose performance is not enough to serve all clients, as well as a server that is under repair, maintenance, under attack (for example, a DDos attack), etc.

Техническая проблема заявленной группы изобретений заключается в решении проблемы создания системы распределенной базы данных, реализующей технологию клиент-клиент.The technical problem of the claimed group of inventions is to solve the problem of creating a distributed database system that implements client-client technology.

Технический результат заключается в обеспечении возможности реализации системы распределенной базы данных и способа передачи элементов этой базы от одного участника такой системы к другому. The technical result consists in providing the possibility of implementing a distributed database system and a method for transferring elements of this database from one participant in such a system to another.

Указанный технический результат достигается в системе распределенной базы данных, содержащей множество вычислительных устройств, соединенных между собой посредством сети, а также сервер с системой обмена сообщений и сервер с серверным диском, функционально соединенные с каждым вычислительным устройством множества вычислительных устройств, каждое из которых содержит память, процессор и устройство вывода, при этом память каждого вычислительного устройства множества вычислительных устройств системы хранит инструкции, приводящие к исполнению процессором функций связанных с отправкой посредством сервера с системой обмена сообщений и сервера с серверным диском на другое вычислительное устройство входящее в множество вычислительных устройств части экземпляра распределенной базы данных, предназначенного для редактирования и/или согласования, а также приемом с другого вычислительного устройства входящего в множество вычислительных устройств экземпляра распределенной базы данных, записи события синхронизации, записи предыдущих событий синхронизации с другими вычислительными устройствами, порядка событий синхронизации, значения для параметра, при этом память первого вычислительного устройства содержит как минимум часть экземпляра распределенной базы данных, выполненного с возможностью передачи множеству вычислительных устройств системы, которые реализуют посредством сети, функционально соединенной с множеством вычислительных устройств системы, распределенную базу данных, каждое из вычислительных устройств множества вычислительных устройств системы выполнены с возможностью обнаруживать поступления сообщения от других вычислительных устройств множества вычислительных устройств системы, и, при отсутствии разрешения на обмен сообщениями запрашивать разрешение на обмен данными с вычислительным устройством, имеющим уникальный идентификатор аккаунта вычислительного устройства от которого пришло сообщение, а, при наличии такого разрешения, в автоматизированном режиме выделения из сообщения ссылки по которой осуществляется автоматическое добавление нового экземпляра в базу данных второго или последующих вычислительных устройств множества вычислительных устройств системы.The specified technical result is achieved in a distributed database system containing a plurality of computing devices interconnected via a network, as well as a server with a messaging system and a server with a server disk, functionally connected to each computing device of a plurality of computing devices, each of which contains a memory, a processor and an output device, wherein the memory of each computing device of a plurality of computing devices of the system stores instructions that lead to the execution by the processor of functions associated with sending, via a server with a messaging system and a server with a server disk, to another computing device included in the plurality of computing devices of a part of a distributed base instance data intended for editing and/or reconciliation, as well as receiving from another computing device an instance of a distributed database included in a plurality of computing devices, recording an event synchronization, a record of previous synchronization events with other computing devices, an order of synchronization events, a value for a parameter, wherein the memory of the first computing device contains at least a part of a distributed database instance configured to be transferred to a plurality of computing devices of the system, which are implemented via a network operatively connected with a plurality of computing devices of the system, a distributed database, each of the computing devices of the plurality of computing devices of the system is configured to detect the receipt of a message from other computing devices of the plurality of computing devices of the system, and, in the absence of permission to exchange messages, request permission to exchange data with the computing device, having a unique identifier of the account of the computing device from which the message was received, and, if such permission is available, in the automated mode of separation from the message communication of a link by which a new instance is automatically added to the database of the second or subsequent computing devices of a plurality of computing devices of the system.

Вычислительное устройство содержит звуковое устройство вывода и/или тактильное устройство вывода.The computing device includes an audio output device and/or a tactile output device.

Память вычислительного устройства представляет собой оперативное запоминающее устройство RAM, буфер памяти, жесткий диск, базу данных, стираемое программируемое постоянное запоминающее устройство EPROM, электрически стираемое программируемое постоянное запоминающее устройство EEPROM, постоянное запоминающее устройство ROM. The memory of the computing device is a random access memory RAM, a memory buffer, a hard disk, a database, an erasable programmable read-only memory EPROM, an electrically erasable programmable read-only memory EEPROM, a read-only memory ROM.

Значения для параметра представляют собой поля базы данных, количественно характеризующего транзакцию, поля базы данных, количественно характеризующего порядок, в котором происходят события, и/или поле для которого значение может быть сохранено в базе данных.Values for a parameter are database fields that quantify the transaction, database fields that quantify the order in which events occur, and/or a field for which a value can be stored in the database.

Дополнительно содержит второе множество вычислительных устройств, которое выполнено с возможностью взаимодействия с первым множеством вычислительных устройств посредством приема-передачи экземпляров распределенной базы данных через назначенные вычислительные устройства первого и второго множеств вычислительных устройств системы.Additionally contains a second set of computing devices, which is configured to interact with the first set of computing devices by receiving and transmitting distributed database instances through the assigned computing devices of the first and second sets of computing devices of the system.

Уникальный идентификатор аккаунта вычислительного устройства представляет собой адрес электронной почты, номер телефона аккаунта мессенджера, идентификатор аккаунта социальной сети, идентификатор экосистемы (например Сбер ID, Яндекс паспорт и т п), а также идентификатор любой системы, обеспечивающей авторизацию третьей стороне с ограниченным доступом к защищённым ресурсам пользователя без передачи ей (третьей стороне) логина и пароля (пример OAuth2 это как раз любая экосистема может предоставлять такую аутентификацию).The unique identifier of a computing device account is an email address, a phone number of a messenger account, a social network account identifier, an ecosystem identifier (for example, Sber ID, Yandex Passport, etc.), as well as an identifier of any system that provides authorization to a third party with limited access to protected user resources without passing her (third party) login and password (an example of OAuth2 is just any ecosystem can provide such authentication).

Вычислительное устройство представляет собой персональное вычислительное устройство, настольный компьютер, портативный компьютер, мобильный телефон, карманный персональный компьютер PDA. The computing device is a personal computing device, desktop computer, laptop computer, mobile phone, personal digital assistant PDA.

Указанный технический результат достигается также в способе реализации распределенной базы данных посредством системы распределённой базы данных, включающий этапы, на которых: создают группу, содержащую множество вычислительных устройств системы распределенной базы данных, для чего с первого вычислительного устройства отправляют часть экземпляра распределенной базы данных, содержащей ссылку для присоединения к группе, вычислительным устройствам, входящим в множество вычислительных устройств системы распределенной базы данных, при этом сформированная часть экземпляра распределенной базы данных сохраняют на первом вычислительном устройстве; для каждого документа, являющегося частью экземпляра распределенной базы данных на первом вычислительном устройстве задают маршрут со списком уникальных идентификаторов аккаунта вычислительных устройств группы, а также правами на редактирование и/или согласование отправляемой части экземпляра распределенной базы данных для каждого из заданных вычислительных устройств группы, при завершении работы с частью экземпляра распределенной базы данных на текущем вычислительном устройстве указанную часть экземпляра пересылают на следующее, указанное в маршруте, вычислительное устройство, а также одновременно отсылают на предшествующие вычислительные устройства, для формирования полного экземпляра распределенной базы данных и отслеживания действий по указанному документу, при этом все части экземпляра распределенной базы данных сохраняются в памяти каждого вычислительного устройства указанного в маршруте.The specified technical result is also achieved in a method for implementing a distributed database by means of a distributed database system, including the steps at which: a group is created containing a plurality of computing devices of the distributed database system, for which a part of a distributed database instance containing a link is sent from the first computing device for joining a group of computing devices included in a plurality of computing devices of the distributed database system, wherein the formed part of the distributed database instance is stored on the first computing device; for each document that is part of a distributed database instance on the first computing device, a route is specified with a list of unique identifiers of the group's computing device account, as well as the rights to edit and/or approve the sent part of the distributed database instance for each of the specified computing devices of the group, upon completion work with a part of the distributed database instance on the current computing device, the specified part of the instance is sent to the next computing device specified in the route, and also simultaneously sent to previous computing devices, to form a complete instance of the distributed database and track actions on the specified document, while all parts of the distributed database instance are stored in the memory of each computing device specified in the route.

При этом каждое из множества вычислительных устройств группы, выполнено с возможностью при наличии соответствующих прав добавить другие вычислительные устройства в группу, отправив на уникальные идентификаторы аккаунта вычислительных устройств приглашение в виде части экземпляра распределенной базы данных.In this case, each of the plurality of computing devices in the group is configured to add other computing devices to the group, if they have the appropriate rights, by sending an invitation to the unique identifiers of the computing device account as part of a distributed database instance.

При этом из множества вычислительных устройств группы назначается одно вычислительное устройство, взаимодействующее с другим вычислительным устройством второго множества вычислительных устройств другой группы, также предварительно назначенным для взаимодействия.At the same time, one computing device is assigned from the set of computing devices of the group, interacting with another computing device of the second set of computing devices of another group, also previously assigned for interaction.

Заявленная группа изобретений поясняется на графических материалах, гдеThe claimed group of inventions is illustrated on graphic materials, where

Фиг.1 - представлена структурная схема системы распределенной базы данных, на которой проиллюстрирована система распределенной базы данных согласно варианту осуществления на примере одной группы пользователей из четырех пользователей и четырех вычислительных устройств.1 is a block diagram of a distributed database system illustrating a distributed database system according to an embodiment with one user group of four users and four computing devices as an example.

Фиг.2 - структурная схема создания и отправки экземпляра распределенной базы данных на примере сервера обмена сообщениями в виде почтового сервера (электронная почта)Fig.2 - structural scheme for creating and sending an instance of a distributed database on the example of a messaging server in the form of a mail server (e-mail)

Фиг.3 - структурная схема создания группы из пяти человекFig.3 - block diagram of the creation of a group of five people

Фиг.4 - структурная схема внутреннего документооборота организацииFig.4 - block diagram of the organization's internal workflow

Фиг.5 - структурная схема отправки документа контрагентуFig.5 - block diagram of sending a document to a counterparty

Отличительной особенностью заявленной группы изобретений является хранение документов каждого пользователя системы на его же вычислительном устройстве. При передаче данных используются сервер передачи сообщений и сервер временного хранения данных с личным или корпоративным аккаунтом пользователя и принятый от другого пользователя документ также хранится на вычислительном устройстве пользователя получателя. То есть заявленная система реализует технологию клиент-клиент. A distinctive feature of the claimed group of inventions is the storage of documents of each user of the system on his own computing device. When transmitting data, a message transmission server and a temporary data storage server with a personal or corporate user account are used, and a document received from another user is also stored on the recipient's user's computing device. That is, the claimed system implements client-client technology.

Это позволяет не использовать огромные сервера с большими постоянно пополняющимися массивами данных, и тем не менее обеспечить получение документов всеми участниками документооборота. При этом в случае необходимости хранение документов пользователя возможно на его личном сервере, или сервере группы, а не на вычислительном устройстве пользователя, но обеспечено это будет после получения экземпляра базы данных на вычислительное устройство пользователя и последующее перенаправление на хранение на сервер, что является дополнительной функцией к текущей схеме работы. This makes it possible not to use huge servers with large constantly replenished data arrays, and nevertheless ensure that documents are received by all participants in the workflow. In this case, if necessary, the storage of the user's documents is possible on his personal server, or the server of the group, and not on the user's computing device, but this will be ensured after receiving a database instance on the user's computing device and subsequent redirection to storage on the server, which is an additional function to the current scheme of work.

При отправке также будет браться экземпляр распределенной базы данных с личного сервера или сервера группы, перемещаться на вычислительное устройство пользователя и далее отправляться другому пользователю, но основной смысл пересылки документов клиент-клиент сохраняется.When sending, an instance of a distributed database will also be taken from a personal server or a group server, moved to the user's computing device and then sent to another user, but the main point of sending client-client documents is preserved.

Следует также отметить что количество устройств в одной или разных группах системы распределенной базы данных может быть неограниченным, количество таких групп может быть неограниченным. It should also be noted that the number of devices in one or different groups of a distributed database system can be unlimited, the number of such groups can be unlimited.

Данная система распределенной базы данных и способа передачи ее элементов может быть удобна в частности для электронного документооборота, в том числе с использованием цифровой подписи участников документооборота. При этом, в случае использования электронной подписи, закрытый ключ хранится на вычислительном устройстве или отдельном носителе информации пользователя, а открытый ключ передается в составе элемента распределенной базы данных с помощью программного обеспечения.This distributed database system and the method of transferring its elements can be convenient, in particular, for electronic document management, including using a digital signature of document management participants. In this case, in the case of using an electronic signature, the private key is stored on the computing device or a separate storage medium of the user, and the public key is transmitted as part of a distributed database element using software.

В некоторых вариантах осуществления устройство содержит по меньшей мере часть первого экземпляра распределенной базы данных на первом вычислительном устройстве, приспособленном для включения в группу вычислительных устройств, которые реализуют посредством сети, функционально соединенной с группой вычислительных устройств, распределенную базу данных. In some embodiments, the device comprises at least a portion of a first distributed database instance on a first computing device adapted to be included in a group of computing devices that implement a distributed database via a network operably connected to the group of computing devices.

Процессор выполнен с возможностью приема экземпляра базы данных с любого устройства сети. Передача данных от одного вычислительного устройства ко второму осуществляется за счет того, что пользователь первого устройства знает уникальный идентификатор аккаунта системы передачи сообщений пользователя другого устройства. Уникальный идентификатор аккаунта системы передачи сообщений может быть, например, адрес электронной почты, номер телефона аккаунта мессенджера, идентификатор аккаунта социальной сети и т. п. Таким образом с помощью программного обеспечения по признаку известного идентификатора друг друга пользователи могут образовывать группы пользователей для обмена данными и хранения распределенной базы данных. The processor is configured to receive a database instance from any network device. The transfer of data from one computing device to the second is carried out due to the fact that the user of the first device knows the unique identifier of the account of the messaging system of the user of the other device. The unique identifier of a messaging account can be, for example, an email address, a phone number of a messenger account, an identifier of a social network account, etc. Thus, using the software, on the basis of each other's known identifier, users can form user groups for data exchange and distributed database storage.

Под текущим экземпляром распределенной базы данных для обмена подразумевается крайний экземпляр цепочки, например, одного документа, который доступен пользователю на редактирование. Все предыдущие экземпляры в таких цепочках с помощью программного обеспечения доступны на чтение, даже если пользователь текущий редактор крайнего экземпляра цепочки. Разные группы пользователей могут обмениваться текущими экземплярами распределенной базы данных с другими группами. Для этого достаточно знать уникальный идентификатор аккаунта системы передачи сообщений хотя бы одного пользователя из другой группы и отправить ему приглашение. Таким образом пользователь второй группы с помощью программного обеспечения сможет принять приглашение и узнать из полученного в приглашении сообщения идентификатор участника первой группы. В дальнейшем пользователь второй группы может отправлять экземпляры распределенной базы данных пользователю первой группы. The current instance of a distributed database for exchange is the last instance of the chain, for example, one document that is available to the user for editing. All previous instances in such chains are readable by the software, even if the user is the current editor of the last instance of the chain. Different groups of users can share current distributed database instances with other groups. To do this, it is enough to know the unique identifier of the messaging system account of at least one user from another group and send him an invitation. Thus, the user of the second group using the software will be able to accept the invitation and learn from the message received in the invitation the ID of the member of the first group. In the future, the user of the second group can send instances of the distributed database to the user of the first group.

Следует отметить что каждому устройству одной группы должны быть доступны сервер с системой обмена сообщений и сервер с серверным диском каждого пользователя этой группы. Это гарантирует получение сообщения и скачивание файла с экземпляром распределенной базы данных для каждого пользователя группы. It should be noted that each device of one group must have access to the server with the messaging system and the server with the server disk of each user of this group. This ensures that a message is received and a file with a distributed database instance is downloaded for each user in the group.

Следует отменить что с помощью программного обеспечения могут обрабатываться неудачные попытки отправки сообщений и закачивание экземпляра на серверный диск. Эти попытки повторяются с заданной периодичностью до успешного результата, что также гарантирует получение экземпляра распределенной базы данных, а значит устойчивость всей системы. It should be noted that the software can handle failed attempts to send messages and upload an instance to a server drive. These attempts are repeated at a specified interval until a successful result, which also guarantees the receipt of a distributed database instance, which means the stability of the entire system.

Устройства из разных групп могут быть в разных сетях. Но сервер с системой обмена сообщений и сервер с серверным диском пользователя-контактного лица из другой группы должны быть доступны пользователю-контактному лицу первой группы. И наоборот, сервер с системой обмена сообщений и сервер с серверным диском первого должен быть известен второму. Например, одна группа может быть в локальной сети организации, вторая в локальной сети другой организации, но контактные лица обоих лиц имеют доступ в Интернет. При этом контактные лица имеют два аккаунта системы обмена сообщений и сервера с серверным диском, один аккаунт системы обмена сообщений и один аккаунт с серверным диском для внутренней передачи экземпляра распределенной базы данных, находящийся в локальной сети текущей организации, второй аккаунт системы обмена сообщений и второй аккаунт с серверным диском в сети Интернет для отправки контактному лицу другой группы.Devices from different groups can be on different networks. But the server with the messaging system and the server with the server disk of the contact user from another group must be accessible to the contact user of the first group. Conversely, the server with the messaging system and the server with the server disk of the former must be known to the latter. For example, one group may be on the local network of an organization, the second on the local network of another organization, but the contact persons of both persons have Internet access. At the same time, contact persons have two messaging system accounts and a server with a server disk, one messaging system account and one account with a server disk for internal transfer of a distributed database instance located in the local network of the current organization, a second messaging system account and a second account with a server drive on the Internet to send to a contact in another group.

Хранение базы данных на локальном компьютере пользователя можно осуществить например с помощью компактной встраиваемой СУБД SQLite. The database can be stored on the user's local computer, for example, using a compact embedded SQLite DBMS.

SQLite — компактная встраиваемая СУБД. Исходный код библиотеки передан в общественное достояние. Слово «встраиваемый» (embedded) означает, что SQLite не использует парадигму клиент-сервер, то есть движок SQLite не является отдельно работающим процессом, с которым взаимодействует программа, а представляет собой библиотеку, с которой программа компонуется, и движок становится составной частью программы. Таким образом, в качестве протокола обмена используются вызовы функций (API) библиотеки SQLite. Такой подход уменьшает накладные расходы, время отклика и упрощает программу. SQLite хранит всю базу данных (включая определения, таблицы, индексы и данные) в единственном стандартном файле на том компьютере, на котором исполняется программа. Простота реализации достигается за счёт того, что перед началом исполнения транзакции записи весь файл, хранящий базу данных, блокируется; ACID-функции достигаются в том числе за счёт создания файла журнала. SQLite is a compact, embedded DBMS. The source code of the library has been released into the public domain. The word "embedded" means that SQLite does not use the client-server paradigm, that is, the SQLite engine is not a separate running process with which the program interacts, but is a library with which the program is linked, and the engine becomes an integral part of the program. Thus, function calls (API) of the SQLite library are used as the exchange protocol. This approach reduces overhead, response time and simplifies the program. SQLite stores the entire database (including definitions, tables, indexes, and data) in a single standard file on the machine where the program is running. Ease of implementation is achieved due to the fact that before the start of the execution of the write transaction, the entire file that stores the database is blocked; ACID functions are achieved, among other things, by creating a log file.

API (application programming interface) - это набор готовых классов, функций, процедур, структур и констант. Вся эта информация предоставляется самим приложением (или операционной системой). При этом пользователю не обязательно понимать, что это API технология обеспечивает взаимодействие модулей. Цель предоставленной информации – использование этих данных при взаимодействии с внешними программами. API различных продуктов используются программистами для создания приложений, которые будут взаимодействовать друг с другом. В общем случае данный механизм применяется с целью объединения работы различных приложений в единую систему. Это достаточно удобно для исполнителей. Ведь в таком случае к другому приложению можно обращаться как к «черному ящику». При этом не имеет значения его внутренний механизм – программист может вообще не знать, что такое API.API (application programming interface) is a set of ready-made classes, functions, procedures, structures and constants. All of this information is provided by the application itself (or the operating system). At the same time, the user does not have to understand that this API technology ensures the interaction of modules. The purpose of the information provided is to use this data when interacting with external programs. The APIs of various products are used by programmers to create applications that will interact with each other. In general, this mechanism is used to combine the work of various applications into a single system. This is quite convenient for performers. Indeed, in this case, another application can be treated as a “black box”. At the same time, its internal mechanism does not matter - a programmer may not know at all what an API is.

Создание и отправка экземпляра распределенной базы данныхCreating and Sending a Distributed Database Instance

Рассмотрим отправку одного сообщения внутри группы на примере с объединением сетью Интернет (создание, отправка, получение, отправка подтверждения). Алгоритм данной функции выглядит следующим образом:Let's consider sending a single message within a group using the Internet connection as an example (creating, sending, receiving, sending confirmation). The algorithm for this function looks like this:

1 - Имеется ли разрешение на прием данных от данного отправителя?1 - Is there permission to receive data from this sender?

2 - Создать разрешение на прием данных от данного отправителя?2 - Create permission to receive data from this sender?

3 - Входит ли пользователь данного (второго) вычислительного устройства в группу, указанную в полученном сообщении?3 - Is the user of this (second) computing device included in the group specified in the received message?

4 - Создать группу, полученную в сообщении и стать ее участником?4 - Create a group received in the message and become a member?

5 - Имеется ли цепочка согласно идентификатору цепочек в полученном элементе распределенной БД?5 - Is there a chain according to the chain identifier in the received element of the distributed database?

6 - Элемент добавляется в цепочку и становится крайним в ней.6 - The element is added to the chain and becomes the last one in it.

7 - Создается новая цепочка с первым элементом, который получен от отправителя.7 - A new chain is created with the first element received from the sender.

Зная идентификатор пользователя второго вычислительного устройства первое вычислительное устройство с помощью программного обеспечения создает новый элемент распределенной базы данных, которое формируется в виде отдельного файла SQLite на вычислительном устройстве пользователя, файл в свою очередь может, но не обязательно, содержать еще ссылки на неограниченное количество файлов на сетевом диске, и загружает в свой сетевой диск (Яндекс Диск, Google Диск и т.п.). Такой файл закачивается на сервер с серверным диском с помощью API функций сервера. Такие API-функции являются стандартными для таких серверов, что очень удобно используется в других системах для взаимодействия с такими серверами. Knowing the user ID of the second computing device, the first computing device using software creates a new element of the distributed database, which is formed as a separate SQLite file on the user's computing device, the file, in turn, may, but not necessarily, contain links to an unlimited number of files on network drive, and uploads to your network drive (Yandex Drive, Google Drive, etc.). Such a file is uploaded to the server with a server disk using the server functions API. Such API functions are standard for such servers, which is very convenient for other systems to interact with such servers.

На сетевом диске после вызова следующей API-функции формируется уникальная конфиденциальная ссылка на скачивание файла с данного сервера и возвращается первому вычислительному устройству в ответе на данный вызов API-функции. After calling the following API function, a unique confidential link to download a file from this server is generated on the network drive and returned to the first computing device in response to this API function call.

Эту ссылку, а также данные пользователя и группы в определенном формате первое вычислительное устройство передает в виде сообщения на уникальный аккаунт второго вычислительного устройства (это может быть отправка письма по электронной почте по протоколу SMTP, сообщение в мессенджер или соцсеть через API-функции сервера мессенджера или соцсети). This link, as well as user and group data in a certain format, is transmitted by the first computing device as a message to a unique account of the second computing device (this can be sending an e-mail using the SMTP protocol, a message to a messenger or social network through the API functions of the messenger server, or social network).

Второе вычислительное устройство по нажатию кнопки или по достижению определенного интервала времени на таймере (автоматический режим) проверяет на своем аккаунте с уникальным идентификатором наличие поступивших сообщений в определенном формате. The second computing device, upon pressing a button or upon reaching a certain time interval on the timer (automatic mode), checks on its account with a unique identifier for the presence of received messages in a certain format.

В случае электронной почты это выборка писем (сообщений) по теме и дате по протоколу IMAP или POP3. В случае мессенджера или соцсети - это проверка всех диалогов с другими пользователями на непрочитанные письма и выборка из них, по заранее заданным ключевым словам, через API-функции. Возможно реализовать случай со специально созданным под цели документооборота выделенным сервером обмена сообщений, в этом случае будет проверка базы данных такого сервера, по ключевым словам, или идентификаторам.In the case of e-mail, this is a selection of letters (messages) by subject and date using the IMAP or POP3 protocol. In the case of a messenger or a social network, this is a check of all dialogues with other users for unread letters and a selection of them, according to predefined keywords, through API functions. It is possible to implement a case with a dedicated messaging server specially created for the purpose of document flow, in which case the database of such a server will be checked by keywords or identifiers.

При обнаружении поступления заданного сообщения второе вычислительное устройство при отсутствии разрешения на обмен сообщениями с пользователем отправителем запрашивает разрешение пользователя второго вычислительного устройства на обмен данными с другим устройством имеющим уникальный идентификатор первого пользователя, от которого пришло сообщение. Upon detecting the receipt of a given message, the second computing device, in the absence of permission to exchange messages with the sender user, requests the permission of the user of the second computing device to exchange data with another device having a unique identifier of the first user from which the message came.

Если разрешение имеется, то второе устройство с помощью программного обеспечения и зная формат сообщения, так как экземпляр программного обеспечения, который посылает и принимает сообщения таким способом идентичен на всех вычислительных устройствах всех групп пользователей, вытаскивает из сообщения ссылку и по полученной из сообщения ссылке с помощью программного обеспечения по протоколу HTTPS скачивает файл распределенной базы данных SQLite, и в соответствии с идентификатором принадлежности к группе устройств из сообщения добавляет новый экземпляр в базу данных второго пользователя. If permission is available, then the second device, using the software and knowing the message format, since the software instance that sends and receives messages in this way is identical on all computing devices of all user groups, pulls out a link from the message and using the link received from the message using The software downloads the distributed SQLite database file over HTTPS and, according to the device group ID from the message, adds a new instance to the second user's database.

В случае отсутствия данных о группе устройств из сообщения пользователю предлагает вступить в группу. If there is no information about the device group from the message, the user is prompted to join the group.

Далее в случае обнаружения уже имеющейся цепочки данных предшествующих данному экземпляру в данной группе устройств, добавляется новый экземпляр в имеющуюся цепочку, иначе создается новая. Это реализовывается за счет указания в каждом экземпляре распределенной базы данных документа идентификатора родительской цепочки и соответственно определению по нему принадлежности к этой цепочке, либо новизны экземпляра базы данных. Further, if an existing data chain is found that precedes this instance in this group of devices, a new instance is added to the existing chain, otherwise a new one is created. This is implemented by specifying in each instance of the distributed database of the document the identifier of the parent chain and, accordingly, determining whether it belongs to this chain, or the novelty of the database instance.

Если полученный по ссылке экземпляр распределенной базы данных содержал другие ссылки на сетевой диск, то эти файлы также скачиваются по протоколу HTTPS с помощью программного обеспечения как вложения к данному экземпляру распределенной базы данных. Таким образом элемент базы данных передается от одного устройства к другому, причем принятие нового элемента распределенной базы данных может быть в автоматическом режиме благодаря программному обеспечению с реализованным таймером, по достижению интервала которого осуществляется проверка новых сообщений почты, мессенджера или соцсети, обработка сообщений и скачивание файлов выше указанным способом, а создание, редактирование и отправка экземпляра осуществляется либо пользователем вычислительного устройства посредством заполнения или редактирования форм данных и нажатия кнопок управления, либо программным обеспечением при заданных условиях. If the distributed database instance received via the link contained other links to a network drive, then these files are also downloaded via the HTTPS protocol using the software as attachments to this distributed database instance. Thus, a database element is transferred from one device to another, and the acceptance of a new element of a distributed database can be automatic thanks to software with an implemented timer, upon reaching the interval of which new mail, messenger or social network messages are checked, messages are processed and files are downloaded above, and the creation, editing and sending of an instance is carried out either by the user of the computing device by filling out or editing data forms and pressing control buttons, or by software under specified conditions.

После принятия нового элемента распределенной базы данных второе вычислительное устройство отправляет на аккаунт с уникальным идентификатором первого пользователя сообщение с подтверждением скачивания по ссылке файла с элементом распределенной базы данных. After accepting a new element of the distributed database, the second computing device sends to the account with the unique identifier of the first user a message confirming the download from the link of the file with the element of the distributed database.

Такое сообщение в определенном формате будет иметь ту же ссылку на скачивание, которую отправлял первый пользователь, но вместо скачивания по ссылке на первом вычислительном устройстве происходит идентификация ссылки в журнале отправленных и полученных сообщений.Such a message in a certain format will have the same download link that the first user sent, but instead of downloading from the link on the first computing device, the link is identified in the log of sent and received messages.

При идентификации сообщение помечается полученным другой стороной. Таким образом будет подтверждено скачивание файла другим пользователем. После получения с помощью программного обеспечения такого подтверждения первым вычислительным устройством передача экземпляра распределенной базы данных считается завершенной и первое вычислительное устройство удаляет через API-функцию файл со ссылкой с сетевого диска для освобождения ресурсов для временного хранения других передаваемых элементов распределенной базы данных. When identified, the message is marked as received by the other side. This will confirm the download of the file by another user. After the first computing device receives such confirmation with the help of the software, the transfer of the distributed database instance is considered completed and the first computing device deletes the file with the link from the network drive via the API function to free up resources for temporary storage of other transferred elements of the distributed database.

В случае отправки первым вычислительным устройством элемента распределенной базы данных нескольким вычислительным устройствам на аккаунты с уникальными идентификаторами их пользователей, удаление файла на сетевом диске вычислительным устройством отправителя происходит после получения подтверждения от всех вычислительных устройств, которым первое устройство отправило ссылку на данный экземпляр. Это отслеживается через журнал отправленных и полученных сообщений с помощью программного обеспечения. If the first computing device sends an element of a distributed database to several computing devices on accounts with unique identifiers of their users, the sender's computing device deletes the file on the network drive after receiving confirmation from all computing devices to which the first device sent a link to this instance. This is tracked through a log of sent and received messages using the software.

Каждое вычислительное устройство получатель после добавления в имеющиеся или создание новой цепочки распределенной базы данных, с помощью программного обеспечения дает пользователю вычислительного устройства доступ к экземпляру базы данных. Это происходит с учетом того, что каждый элемент распределенной базы данных содержит уникальный идентификатор аккаунта пользователя, которому он на данный момент принадлежит - редактору. Each recipient computing device, after adding to existing or creating a new chain of a distributed database, with the help of software gives the user of the computing device access to a database instance. This takes into account the fact that each element of the distributed database contains a unique identifier of the user account to which it currently belongs - the editor.

Таким образом с помощью программного обеспечения осуществляется доступ к элементу распределенной базы данных в формате чтения, в случае принадлежности элемента другому участнику, либо в формате редактирования, в случае принадлежности элемента данному участнику. Thus, using the software, an element of a distributed database is accessed in the read format, if the element belongs to another participant, or in the editing format, if the element belongs to this participant.

Пользователь, создавший элемент распределенной базы данных и еще не отправивший этот элемент другому пользователю имеет доступ на редактирование. В то же время отправить экземпляр распределенной базы данных может только текущий редактор. A user who has created a distributed database item and has not yet sent that item to another user has edit access. At the same time, only the current editor can send a distributed database instance.

При отправке вычислительное устройство текущего пользователя-отправителя копирует текущий экземпляр, меняет редактора в копии и отправляет новый экземпляр назначенному редактору. Получивший этот экземпляр распределенной базы данных пользователь является текущим редактором экземпляра и имеет доступ на редактирование. Оригинал скопированного экземпляра становится доступным отправителю на его вычислительной машине для чтения, так как не является крайним в цепочке. Копия экземпляра с новым редактором также остается у отправителя, она становится крайним элементом цепочки. Отправителю на его вычислительной машине крайний элемент доступен для чтения, так как он уже не редактор. Таким образом можно совершать обход документа по списку пользователей зная их уникальный идентификатор аккаунта сервера сообщений. Такие идентификаторы (например, электронная почта) известны всем участникам группы о каждом участнике этой группы. И каждый текущий получатель экземпляра будет являться редактором, а значит сможет отправить экземпляр распределенной базы данных дальше.On submission, the current sender's computing device copies the current instance, changes the editor on the copy, and sends the new instance to the assigned editor. The user who received this distributed database instance is the current editor of the instance and has edit access. The original of the copied instance becomes available to the sender on his computer for reading, since it is not the last one in the chain. A copy of the instance with the new editor also remains with the sender, it becomes the last element of the chain. The end element is readable by the sender on his computer, since he is no longer an editor. Thus, it is possible to bypass the document through the list of users knowing their unique identifier of the message server account. Such identifiers (for example, e-mail) are known to all members of the group about each member of this group. And each current recipient of the instance will be an editor, which means it will be able to send a distributed database instance further.

На фиг. 1 проиллюстрирована распределенная база 100 данных, реализованная на четырех вычислительных устройствах (вычислительное устройство 110, вычислительное устройство 120, вычислительное устройство 130 и вычислительное устройство 140), но следует понимать, что распределенная база 100 данных может использовать набор из любого количества вычислительных устройств, содержащий вычислительные устройства, не показанные на фиг. 1. In FIG. 1 illustrates a distributed database 100 implemented on four computing devices (computing device 110, computing device 120, computing device 130, and computing device 140), but it should be understood that distributed database 100 may use a set of any number of computing devices containing computing devices not shown in Fig. one.

Также в Сети 105 может содержатся любое количество почтовых серверов и серверных дисков. Сеть 105 может представлять собой сеть любого типа (например, локальную вычислительную сеть (LAN), глобальную вычислительную сеть (WAN), виртуальную сеть, телекоммуникационную сеть), реализованную в виде проводной сети и/или беспроводной сети и используемую для функционального соединения вычислительных устройств 110, 120, 130, 140. Как более подробно описано в настоящем документе, в некоторых вариантах осуществления, например, вычислительные устройства представляют собой персональные компьютеры, соединенные друг с другом посредством поставщика услуг Интернет (ISP) и Интернета (например, сети 105). Also, the Network 105 may contain any number of mail servers and server drives. Network 105 may be any type of network (eg, local area network (LAN), wide area network (WAN), virtual network, telecommunications network) implemented as a wired network and/or wireless network and used to functionally interconnect computing devices 110 , 120, 130, 140. As described in more detail herein, in some embodiments, for example, the computing devices are personal computers connected to each other via an Internet Service Provider (ISP) and the Internet (eg, networks 105).

В некоторых вариантах осуществления соединение может быть установлено посредством сети 105 между любыми двумя вычислительными устройствами 110, 120, 130, 140. Как показано на фиг. 1, например, соединение может быть установлено между вычислительным устройством 110 и любым из вычислительного устройства 120, вычислительного устройства 130 или вычислительного устройства 140. In some embodiments, a connection may be established via network 105 between any two computing devices 110, 120, 130, 140. As shown in FIG. 1, for example, a connection may be established between computing device 110 and any of computing device 120, computing device 130, or computing device 140.

В некоторых вариантах осуществления вычислительные устройства 110, 120, 130, 140 могут осуществлять связь друг с другом (например, отправлять данные на и/или принимать данные) и с сетью посредством промежуточных сетей и/или альтернативных сетей (не показаны на фиг. 1). In some embodiments, computing devices 110, 120, 130, 140 may communicate with each other (e.g., send data to and/or receive data) and with the network via intermediate networks and/or alternate networks (not shown in FIG. 1) .

Такие промежуточные сети и/или альтернативные сети могут принадлежать к тому же типу и/или другому типу сети в сравнении с сетью 105.Such intermediate networks and/or alternative networks may be of the same type and/or a different type of network compared to network 105.

Каждое вычислительное устройство 110, 120, 130, 140 может представлять собой устройство любого типа, приспособленное для отправки данных по сети 105, чтобы отправлять и/или принимать данные с одного или более других вычислительных устройств. Примеры вычислительных устройств показаны на фиг. 1. Each computing device 110, 120, 130, 140 may be any type of device adapted to send data over network 105 to send and/or receive data from one or more other computing devices. Examples of computing devices are shown in FIG. one.

Вычислительное устройство 110 содержит память 112, процессор 111 и устройство 113 вывода. Память 112 может представлять собой, например, оперативное запоминающее устройство (RAM), буфер памяти, жесткий диск, базу данных, стираемое программируемое постоянное запоминающее устройство (EPROM), электрически стираемое программируемое постоянное запоминающее устройство (EEPROM), постоянное запоминающее устройство (ROM) и/или т. д. В некоторых вариантах осуществления память 112 вычислительного устройства 110 содержит данные, связанные с экземпляром распределенной базы данных (например, экземпляром114 распределенной базы данных). В некоторых вариантах осуществления память 112 хранит инструкции, приводящие к исполнению процессором модулей, процессов и/или функций, связанных с отправкой на другое вычислительное устройство экземпляра и/или приемом с другого вычислительного устройства экземпляра распределенной базы данных (например, экземпляра 124 распределенной базы данных на вычислительном устройстве 120) записи события синхронизации, записи предыдущих событий синхронизации с другими вычислительными устройствами (посредством обмена как с последующим вычислительным устройством, так и с предыдущими вычислительными устройствами экземплярами распределенной базы данных), порядка событий синхронизации, посредством формирования на каждом вычислительном устройстве отдельного журнала транзакций распределенной базы данных (данный журнал хранится на каждом вычислительном устройстве и не передается), значения для параметра (например, поля базы данных, количественно характеризующего транзакцию, поля базы данных, количественно характеризующего порядок, в котором происходят события, и/или любого другого подходящего поля, для которого значение может быть сохранено в базе данных). The computing device 110 includes a memory 112, a processor 111, and an output device 113. The memory 112 may be, for example, random access memory (RAM), memory buffer, hard drive, database, erasable programmable read only memory (EPROM), electrically erasable program read only memory (EEPROM), read only memory (ROM), and /or so on. In some embodiments, memory 112 of computing device 110 contains data associated with a distributed database instance (eg, distributed database instance 114). In some embodiments, memory 112 stores instructions that cause the processor to execute modules, processes, and/or functions associated with sending and/or receiving from another computing device an instance of a distributed database (e.g., distributed database instance 124 on computing device 120) recording a synchronization event, recording previous synchronization events with other computing devices (by exchanging instances of a distributed database with both subsequent computing device and previous computing devices), the order of synchronization events, by forming a separate transaction log on each computing device distributed database (this log is stored on each computing device and is not transmitted), values for the parameter (for example, database fields that quantify the transaction, database fields that quantify o characterizing the order in which events occur and/or any other suitable field for which a value can be stored in the database).

Экземпляр 114 распределенной базы данных может, например, быть приспособлен для проведений операций с данными, включая сохранение, модификацию и/или удаление данных. В некоторых вариантах осуществления экземпляр 114 распределенной базы данных может представлять собой реляционную базу данных, объектную базу данных, постреляционную базу данных и/или базу данных любого другого подходящего типа. Например, экземпляр 114 распределенной базы данных может хранить данные, относящиеся к любой конкретной функции и/или области. Например, экземпляр 114 распределенной базы данных может хранить документы (например, пользователя вычислительного устройства 110), включая значение и/или вектор значений, относящиеся к истории владения конкретным документом. The distributed database instance 114 may, for example, be adapted to perform data operations, including storing, modifying, and/or deleting data. In some embodiments, distributed database instance 114 may be a relational database, an object database, a per-relational database, and/or any other suitable type of database. For example, distributed database instance 114 may store data related to any particular function and/or area. For example, distributed database instance 114 may store documents (eg, of a user of computing device 110), including a value and/or vector of values related to the ownership history of a particular document.

В целом, вектор может представлять собой любой набор значений для параметра, и параметр может представлять собой любые объект данных и/или поле базы данных, которые могут принимать разные значения. Таким образом, экземпляр 114 распределенной базы данных может иметь ряд параметров и/или полей, каждый из которых связан с вектором значений. Вектор значений используется для определения фактического значения для параметра и/или поля в этом экземпляре 114 базы данных.In general, a vector can be any set of values for a parameter, and a parameter can be any data object and/or database field that can take on different values. Thus, distributed database instance 114 may have a number of parameters and/or fields, each of which is associated with a vector of values. The value vector is used to determine the actual value for the parameter and/or field in this instance 114 of the database.

Процессор 111 вычислительного устройства 110 может представлять собой любое подходящее устройство обработки, приспособленное для запуска и/или исполнения экземпляра 114 распределенной базы данных. Processor 111 of computing device 110 may be any suitable processing device adapted to start and/or execute distributed database instance 114.

Например, процессор 111 может быть приспособлен для обновления экземпляра 114 распределенной базы данных в ответ на прием сигнала с вычислительного устройства 120 и/или вызова отправки сигнала на вычислительное устройство 120. For example, processor 111 may be adapted to update distributed database instance 114 in response to receiving a signal from computing device 120 and/or causing a signal to be sent to computing device 120.

В вариантах осуществления процессор 111 может быть приспособлен для исполнения модулей, функций и/или процессов для обновления экземпляра 114 распределенной базы данных в ответ на прием значения для параметра, сохраненного в другом экземпляре распределенной базы данных (например, экземпляре 124 распределенной базы данных на вычислительном устройстве 120), и/или вызова отправки значения для параметра, сохраненного в экземпляре 114 распределенной базы данных на вычислительном устройстве 110, на вычислительное устройство 120.In embodiments, processor 111 may be adapted to execute modules, functions, and/or processes to update distributed database instance 114 in response to receiving a value for a parameter stored in another distributed database instance (e.g., distributed database instance 124 on a computing device). 120) and/or causing a value for a parameter stored in the distributed database instance 114 on the computing device 110 to be sent to the computing device 120.

В некоторых вариантах осуществления процессор 111 может представлять собой процессор общего назначения, интегральную схему специального назначения (ASIC), процессор цифровой обработки сигналов (DSP) и/или т.п. Дисплей 113 может представлять собой любой подходящий дисплей, такой как, например, жидкокристаллический дисплей (LCD), дисплей на электронно-лучевой трубке (CRT) или т.п. In some embodiments, processor 111 may be a general purpose processor, an application specific integrated circuit (ASIC), a digital signal processor (DSP), and/or the like. The display 113 may be any suitable display such as, for example, a liquid crystal display (LCD), a cathode ray tube (CRT) display, or the like.

В других вариантах осуществления любое из вычислительных устройств 110, 120, 130, 140 содержит другое устройство вывода вместо дисплеев 113, 123, 133, 143 или в дополнение к ним.In other embodiments, any of the computing devices 110, 120, 130, 140 comprise another output device in place of or in addition to the displays 113, 123, 133, 143.

Например, любое из вычислительных устройств 110, 120, 130, 140 может содержать звуковое устройство вывода (например, динамик), тактильное устройство вывода и/или т.п. В еще одних вариантах осуществления любое из вычислительных устройств 110, 120, 130, 140 содержит устройство ввода вместо дисплеев 113, 123, 133, 143 или в дополнение к ним. Например, любое из вычислительных устройств 110, 120, 130, 140 может содержать клавиатуру, мышь и/или т.п. For example, any of the computing devices 110, 120, 130, 140 may include an audio output device (eg, a speaker), a tactile output device, and/or the like. In still other embodiments, any of the computing devices 110, 120, 130, 140 includes an input device instead of or in addition to the displays 113, 123, 133, 143. For example, any of the computing devices 110, 120, 130, 140 may include a keyboard, mouse, and/or the like.

Вычислительное устройство 120 имеет процессор 121, память 122 и дисплей 123, которые могут быть конструктивно и/или функционально подобны процессору 111, памяти 112 и дисплею 113 соответственно. Также экземпляр 124 распределенной базы данных может быть структурно и/или функционально подобен экземпляру 114 распределенной базы данных. Вычислительное устройство 130 имеет процессор 131, память 132 и дисплей 133, которые могут быть конструктивно и/или функционально подобны процессору 111, памяти 112 и дисплею 113 соответственно. Computing device 120 has a processor 121, memory 122, and display 123, which may be structurally and/or functionally similar to processor 111, memory 112, and display 113, respectively. Also, distributed database instance 124 may be structurally and/or functionally similar to distributed database instance 114. Computing device 130 has a processor 131, memory 132, and display 133, which may be structurally and/or functionally similar to processor 111, memory 112, and display 113, respectively.

Также экземпляр 134 распределенной базы данных может быть структурно и/или функционально подобен экземпляру 114 распределенной базы данных. Вычислительное устройство 140 имеет процессор 141, память 142 и дисплей 143, которые могут быть конструктивно и/или функционально подобны процессору 111, памяти 112 и дисплею 113 соответственно. Also, distributed database instance 134 may be structurally and/or functionally similar to distributed database instance 114. Computing device 140 has a processor 141, memory 142, and display 143, which may be structurally and/or functionally similar to processor 111, memory 112, and display 113, respectively.

Также экземпляр 144 распределенной базы данных может быть структурно и/или функционально подобен экземпляру 114 распределенной базы данных. Хотя вычислительные устройства 110, 120, 130, 140 показаны как подобные друг другу, каждое вычислительное устройство системы 100 распределенной базы данных может отличаться от других вычислительных устройств. Каждое вычислительное устройство 110, 120, 130, 140 системы 100 распределенной базы данных может представлять собой любое из, например, вычислительного элемента (например, персонального вычислительного устройства, такого как настольный компьютер, портативный компьютер и т. д.), мобильного телефона, карманного персонального компьютера (PDA) и т. д. Also, distributed database instance 144 may be structurally and/or functionally similar to distributed database instance 114. Although the computing devices 110, 120, 130, 140 are shown as similar to each other, each computing device of the distributed database system 100 may be different from other computing devices. Each computing device 110, 120, 130, 140 of the distributed database system 100 may be any of, for example, a computing element (e.g., a personal computing device such as a desktop computer, laptop computer, etc.), a mobile phone, a handheld personal computer (PDA), etc.

Например, вычислительное устройство 110 может представлять собой настольный компьютер, вычислительное устройство 120 может представлять собой смартфон, и вычислительное устройство 130 может представлять собой сервер. В некоторых вариантах осуществления одна или более частей вычислительных устройств 110, 120, 130, 140 могут включать аппаратный модуль (например, процессор цифровой обработки сигналов (DSP), и/или программный модуль (например, модуль компьютерного кода, хранящегося в памяти и/или исполняемого процессором). For example, computing device 110 may be a desktop computer, computing device 120 may be a smartphone, and computing device 130 may be a server. In some embodiments, one or more portions of computing devices 110, 120, 130, 140 may include a hardware module (e.g., a digital signal processor (DSP)), and/or a software module (e.g., a computer code module stored in memory and/or executed by the processor).

В некоторых вариантах осуществления одна или более функций, связанных с вычислительными устройствами 110, 120, 130, 140 (например, функции, связанные с процессорами 111, 121, 131, 141), могут быть включены в один или более модулей. Свойства системы 100 распределенной базы данных, включая свойства вычислительных устройств (например, вычислительных устройств 110, 120, 130, 140), количество вычислительных устройств, и сеть 105 могут быть выбраны любыми способами. In some embodiments, one or more functions associated with computing devices 110, 120, 130, 140 (eg, functions associated with processors 111, 121, 131, 141) may be included in one or more modules. Properties of distributed database system 100, including properties of computing devices (eg, computing devices 110, 120, 130, 140), number of computing devices, and network 105 may be selected in any manner.

В системе 100 распределенной базы данных одно вычислительное устройство является лидером, и оно создает группу пользователей. Например, это может быть учредитель или директор организации. Когда он создает нового участника, указывая его уникальный идентификатор аккаунта, новому участнику высылается приглашение, которое содержит данные о всей группе пользователей. При создании нового участника ему могут быть назначены права на создание новых пользователей группы. Например, это может быть начальник отдела кадров. Таким образом добавлять новых пользователей в группу может не только лидер, но и любое количество назначенных для этого пользователей. Вычислительное устройство каждого пользователя проверяет права на создание нового участника группы. И если таких прав нет, то функционал создания нового участника программного обеспечения блокируется или доступен только для чтения. Когда назначенный пользователь добавляет нового участника, информация о новом участнике в виде экземпляра распределенной базы данных посылается всем другим участникам группы. Таким образом у каждого участника группы имеется корректная информацию о всех участниках группы. In distributed database system 100, one computing device is the leader and it creates a group of users. For example, it can be the founder or director of the organization. When he creates a new member by specifying his unique account ID, an invitation is sent to the new member, which contains data about the entire user group. When a new member is created, he can be assigned the rights to create new group users. For example, it could be the head of the human resources department. Thus, not only the leader can add new users to the group, but also any number of users assigned to this. The computing device of each user checks the rights to create a new member of the group. And if there are no such rights, then the functionality of creating a new software participant is blocked or read-only. When a designated user adds a new member, the new member's information is sent as a distributed database instance to all other members of the group. Thus, each member of the group has correct information about all members of the group.

При создании нового участника группы ему могут быть назначены права на создание документов. Если таких прав в данной группе нет, то можно только пересылать документы, полученные от других пользователей, сам пользователь не может создать новый. Такое распределение прав достигается программным обеспечением.When a new group member is created, they can be assigned rights to create documents. If there are no such rights in this group, then you can only send documents received from other users, the user himself cannot create a new one. This distribution of rights is achieved by software.

Рассмотрим пример, когда создается новая группа из пяти человек (фиг.3). Это может быть небольшая организация. Учредитель или предприниматель Павлов создает организацию и пользователя Павлов, который имеет уникальный идентификатор аккаунта сервера передачи сообщений. Consider an example when a new group of five people is created (figure 3). It may be a small organization. Founder or Entrepreneur Pavlov creates an organization and user Pavlov, who has a unique messaging server account ID.

Павлов имеет все права на любые действия в этой организации. Он отмечен как создатель группы в экземпляре распределенной базы данных. Pavlov has every right to any action in this organization. It is marked as the creator of the group in the distributed database instance.

С помощью программного обеспечения ему доступно создание и редактирование новых сотрудников группы. Павлов создает Иванова, который является его сотрудником, вводит в форме создания его уникальный идентификатор сервера сообщений, например электронную почту, и не задает ему дополнительных прав в группе. Using the software, he can create and edit new team members. Pavlov creates Ivanov, who is his employee, enters in the creation form his unique message server identifier, such as email, and does not give him additional rights in the group.

Иванову отправляется приглашение от вычислительного устройства Павлова вступить в группу, оно отправляется как экземпляр распределенной базы данных со ссылкой. При принятии приглашения вычислительное устройство Иванова скачивает файл по ссылке и добавляет к себе в базу на вычислительном устройстве данные о новой группе и всех ее участниках. Ivanov is sent an invitation from Pavlov's computing device to join the group, it is sent as a distributed database instance with a link. When accepting the invitation, Ivanov's computing device downloads the file from the link and adds data about the new group and all its members to its database on the computing device.

На вычислительном устройстве Иванова будет информация про группу, пользователя Павлов и пользователя Иванов и все это только с доступом на чтение. У Павлова все то же, но с доступом на редактирование, так как у него есть права на редактирование группы и создание и редактирование пользователей в этой группе.Ivanov's computing device will have information about the group, user Pavlov and user Ivanov, and all this with read access only. Pavlov has everything the same, but with edit access, since he has the rights to edit the group and create and edit users in this group.

Павлов создает пользователя Петров, который также является его сотрудником, так же без дополнительных прав в группе. Петров принимает приглашение и у него на вычислительном устройстве появляется информация о группе и пользователях Павлов, Иванов, Петров, доступная только для чтения. Вычислительное устройство Павлова высылает вычислительному устройству Иванова экземпляр распределенной базы данных с данными о новом пользователе Петрове, так как это делается для всех участников группы. Pavlov creates the user Petrov, who is also his employee, also without additional rights in the group. Petrov accepts the invitation and read-only information about the group and users Pavlov, Ivanov, Petrov appears on his computing device. Pavlov's computing device sends to Ivanov's computing device an instance of a distributed database with data about the new user Petrov, as this is done for all members of the group.

Таким образом вычислительное устройство Иванова также имеет данные о группе и пользователях Иванов, Петров, Павлов и с помощью программного обеспечения предоставляет доступ Иванову только для чтения. Павлов же имеет доступ к группе и пользователям Павлов, Иванов, Петров на редактирование. Павлов создает пользователя Сидоров, которые также является его сотрудником. Но Сидорову он дает права в группе на создание и редактирование новых пользователей в группе. Сидоров принимает приглашение. Иванову и Петрову высылаются данные по Сидорову, в том числе его права в группе. Иванов и Петров имеют данные по группе и пользователях Иванов, Петров, Сидоров и Павлов причем только на чтение. Thus, Ivanov's computing device also has data about the group and users Ivanov, Petrov, Pavlov and, using software, provides read-only access to Ivanov. Pavlov, on the other hand, has access to the group and users Pavlov, Ivanov, Petrov for editing. Pavlov creates the user Sidorov, who is also his employee. But he gives Sidorov the rights in the group to create and edit new users in the group. Sidorov accepts the invitation. Ivanov and Petrov are sent data on Sidorov, including his rights in the group. Ivanov and Petrov have data on the group and users Ivanov, Petrov, Sidorov and Pavlov, and read-only.

Сидоров и Павлов имеют доступ к данным по группе и пользователях Иванов, Петров, Сидоров на редактирование и данных о пользователе Павлов на чтение, так как он создатель группы.Sidorov and Pavlov have access to data on the group and users Ivanov, Petrov, Sidorov for editing and data about the user Pavlov for reading, since he is the creator of the group.

Сидоров, например, начальник отдела кадров и дальше он создает пользователей системы. Он создает нового пользователя Синицыну, которая является сотрудником Иванова. Дополнительных прав ей не назначает. Синицына принимает приглашение. Иванову, Петрову и Павлову высылается экземпляр распределенной базы данных с информацией по Синицыной. Информация о группе, а также пользователях Иванов, Петров, Сидоров, Павлов, Синицына есть у всех. Sidorov, for example, is the head of the personnel department and then he creates users of the system. He creates a new user, Sinitsyna, who is Ivanov's employee. It does not assign additional rights. Sinitsyna accepts the invitation. Ivanov, Petrov and Pavlov are sent a copy of the distributed database with information on Sinitsyna. Everyone has information about the group, as well as users Ivanov, Petrov, Sidorov, Pavlov, Sinitsyn.

У Иванова, Петрова и Синицыной информация доступна только для чтения. У Сидорова и Павлова на редактирование. Сидоров не может редактировать только Павлова. Следует отметить что при поступлении информации о создании нового сотрудника, программное обеспечение проверяет есть ли права у пользователя отправителя данного сообщения на создание нового пользователя и только при наличии таких прав в группе добавляется новый пользователь на вычислительное устройство получателя. Ivanov, Petrov and Sinitsyna have read-only information. Sidorov and Pavlov for editing. Sidorov cannot edit only Pavlov. It should be noted that when information about the creation of a new employee is received, the software checks whether the user of the sender of this message has the rights to create a new user, and only if such rights exist in the group, a new user is added to the recipient's computing device.

Следует отметить что по истечении заданного в настройках времени и отсутствия подтверждения от пользователя, вычислительное устройство отправителя с помощью программного обеспечения повторяет отправку сообщения с экземпляром распределенной базы данных. Например письмо потерялось и не дошло до получателя, высылается новое письмо и так повторяется через заданные интервалы времени. Таким образом система распределенной базы данных обеспечивает надежность передачи данных между вычислительными устройствами пользователей. Отправку таких повторных сообщений может отменить сам пользователь вычислительного устройства отправителя.It should be noted that after the time specified in the settings has elapsed and there is no confirmation from the user, the sender's computing device, using software, repeats sending the message with a distributed database instance. For example, the letter was lost and did not reach the recipient, a new letter is sent and this is repeated at specified intervals. Thus, the distributed database system ensures the reliability of data transfer between users' computing devices. The sending of such repeated messages can be canceled by the user of the sender's computing device.

Внутренний документооборот организацииInternal document flow of the organization

Рассмотрим систему на примере группы из четырех пользователей, которые согласовывают документ внутри одной организации (фиг. 4).Consider the system using the example of a group of four users who coordinate a document within one organization (Fig. 4).

Каждый пользователь знает уникальный идентификатор аккаунта сервера сообщений каждого. Это достигается посредством создания группы и добавления туда новых участников как описано выше. У каждого документа задается маршрут со списком пользователей из этой группы, по которому этот документ передается при завершении работы с ним текущего пользователя путем переназначения текущего редактора и отправки вышеописанным способом. Рассмотрим список из четырех пользователей: Иванов, Петров, Сидоров, Павлов. Иванов создает документ и заполняет маршрут другими пользователями группы, а также задает может ли кто-то из пользователей заменять одного на другого в списке пользователей для обхода документа. Each user knows the unique ID of each message server account. This is achieved by creating a group and adding new members to it as described above. Each document is assigned a route with a list of users from this group, through which this document is transmitted when the current user completes work with it by reassigning the current editor and sending it in the manner described above. Consider a list of four users: Ivanov, Petrov, Sidorov, Pavlov. Ivanov creates a document and fills in the route with other users of the group, and also sets whether one of the users can replace one with another in the list of users to bypass the document.

Любой пользователь может добавить нового пользователя в список обхода, новый пользователь будет из этой же группы. Когда Иванов заканчивает работу и отправляет документ, создается второй экземпляр цепочки данного документа (блок), который передается Петрову. Any user can add a new user to the bypass list, the new user will be from the same group. When Ivanov finishes work and sends the document, a second copy of the chain of this document (block) is created, which is transferred to Petrov.

Петров становится текущим редактором документа, второй блок становится крайним в цепочке, предыдущий блок становятся доступным только для чтения у Иванова. Второй блок также доступен только для чтения у Иванова так как редактором в этом блоке указан Петров. Первый блок имеет только Иванов. Второй блок имеют Иванов и Петров. Петров может редактировать документ, так как в текущем втором блоке он отмечен как редактор, и передавать дальше по маршруту. Петров заканчивает работу и отправляет документ. Создается третий блок и передается Сидорову, а также Иванову. Третий блок, доступный для чтения, есть у Иванова и Петрова.Petrov becomes the current editor of the document, the second block becomes the last block in the chain, the previous block becomes read-only for Ivanov. The second block is also read-only by Ivanov, since Petrov is listed as the editor in this block. The first block has only Ivanov. The second block has Ivanov and Petrov. Petrov can edit the document, since he is marked as an editor in the current second block, and pass it on along the route. Petrov finishes work and sends the document. The third block is created and transferred to Sidorov, as well as to Ivanov. The third block available for reading is in Ivanov and Petrov.

Сидоров может редактировать третий блок. Сидоров, например, внес Петрова в следующую очередь обхода документа по маршруту, до Павлова, чтобы Петров внес еще изменения. Sidorov can edit the third block. Sidorov, for example, introduced Petrov to the next line of document bypass along the route, to Pavlov, so that Petrov would make more changes.

Создается 4-й блок и передается Петрову. Четвертый блок, доступный для чтения, есть у Иванова и Сидорова. Петров может редактировать 4-й блок. The 4th block is created and transferred to Petrov. The fourth block available for reading belongs to Ivanov and Sidorov. Petrov can edit the 4th block.

Петров внес изменения и отправил документ дальше. Создается 5-й блок и передается Павлову (например, он начальник и согласует конечную версию документа). 5-й блок, доступный для чтения есть у Иванова, Петрова, Сидорова. Petrov made changes and sent the document further. The 5th block is created and transferred to Pavlov (for example, he is the boss and agrees on the final version of the document). Ivanov, Petrov, Sidorov have the 5th block available for reading.

Павлов может редактировать 5-й блок. Павлов вносит в документ еще одного Пользователя - Синицыну, себя ставит по маршруту после Синицыной. Создается 6 блок и передается Синицыной, а также другим пользователям, у которых документ уже побывал, чтобы они могли отслеживать дальнейшие действия по документу. Pavlov can edit the 5th block. Pavlov introduces another User into the document - Sinitsyna, puts himself on the route after Sinitsyna. Block 6 is created and transferred to Sinitsyna, as well as to other users who have already visited the document, so that they can track further actions on the document.

Следует отметить, что все сведения о маршруте документа отправляются с текущим экземпляром базы данных, таким образом новый маршрут будет у всех пользователей. Синицына может редатировать 6 блок. Иванов, Петров, Сидоров, Павлов только для чтения. Синицына передает дальше. Note that all document route information is sent with the current database instance, so all users will have the new route. Sinitsyna can edit block 6. Ivanov, Petrov, Sidorov, Pavlov read-only. Sinitsyna passes on.

Создается 7-й блок и передается Павлову. Павлов может редактировать. Иванов, Петров, Сидоров, Синицына имеют 7-й блок с доступом только для чтения.The 7th block is created and transferred to Pavlov. Pavlov can edit. Ivanov, Petrov, Sidorov, Sinitsyna have the 7th block with read-only access.

Отправка документа контрагентуSending a document to a counterparty

Рассмотрим пример. ООО «Первое», контактное лицо которого Павлов и ООО «Второе», контактное лицо которого Пирогов (фиг.5). Let's consider an example. LLC "First", the contact person of which is Pavlov and LLC "Second", the contact person of which is Pirogov (figure 5).

ООО «Второе» уже получило и приняло приглашение от ООО «Первое» и оба ООО знают уникальные идентификаторы сервера сообщений контактных лиц друг друга. LLC Vtoroe has already received and accepted an invitation from LLC Pervoe and both LLCs know the unique identifiers of the message server of each other's contact persons.

Павлов имеет данные о группе ООО «Второе» и пользователе-контактном лице ООО «Второе» Пирогове. Пирогов имеет данные о группе ООО «Первое» и пользователе-контактном лице ООО «Первое» Павлове. Pavlov has data on the group Vtoroe LLC and the user-contact person Vtoroe LLC Pirogov. Pirogov has data on the Pervoe LLC group and the user-contact person of Pervoe LLC Pavlov.

Павлов имеет в приложении документ, например, проходящий внутренний документооборот, и отправляет его контрагенту. Создается новый блок и отправляется контактному лицу контрагента Пирогову.Pavlov has a document in the application, for example, an ongoing internal document flow, and sends it to the counterparty. A new block is created and sent to the contact person of the counterparty, Pirogov.

Статус в приложении Павлова помечается как у внешней группы, копии нового блока в таком случае своим сотрудникам Иванову, Петрову и Сидорову не отсылаются. Приложение Пирогова принимает новый блок от Иванова и создает новую цепочку, так как по идентификатору цепочки таких не было. По новой цепочке можно запускать внутренний документооборот в ООО «Второе». The status in the Pavlov application is marked as that of an external group; in this case, copies of the new block are not sent to their employees Ivanov, Petrov, and Sidorov. Pirogov's application accepts a new block from Ivanov and creates a new chain, since there were no such ones by the chain ID. Using the new chain, you can start the internal document flow in Vtoroe LLC.

Когда он закончится, можно будет вернуть документ в ООО «Первое» контактному лицу Павлову. У Павлова новый блок от Пирогова идентифицируется как новый блок в существующую цепочку. Далее можно продолжать документооборот внутри организации.When it ends, it will be possible to return the document to Pervoe LLC to the contact person Pavlov. For Pavlov, a new block from Pirogov is identified as a new block to an existing chain. Then you can continue the workflow within the organization.

Claims (18)

1. Система распределенной базы данных, содержащая множество вычислительных устройств, соединенных между собой посредством сети, а также сервер с системой обмена сообщений и сервер с серверным диском, функционально соединенные с каждым вычислительным устройством множества вычислительных устройств, каждое из которых содержит память, процессор и устройство вывода, при этом1. A distributed database system containing a plurality of computing devices interconnected via a network, as well as a server with a messaging system and a server with a server disk, functionally connected to each computing device of a plurality of computing devices, each of which contains a memory, a processor and a device conclusion, while память каждого вычислительного устройства множества вычислительных устройств системы хранит инструкции, приводящие к исполнению процессором функций, связанных с отправкой посредством сервера с системой обмена сообщений и сервера с серверным диском на другое вычислительное устройство, входящее в множество вычислительных устройств части экземпляра распределенной базы данных, предназначенного для редактирования и/или согласования, а также приемом с другого вычислительного устройства множества вычислительных устройств экземпляра распределенной базы данных, записи события синхронизации, записи предыдущих событий синхронизации с другими вычислительными устройствами, порядка событий синхронизации, значения для параметра,the memory of each computing device of a plurality of computing devices of the system stores instructions that lead to the execution by the processor of functions associated with sending, via a server with a messaging system and a server with a server disk, to another computing device included in the plurality of computing devices, parts of a distributed database instance intended for editing and/or negotiation, as well as receiving from another computing device a plurality of computing devices of a distributed database instance, a synchronization event record, a record of previous synchronization events with other computing devices, an order of synchronization events, a value for a parameter, при этом память первого вычислительного устройства содержит как минимум часть экземпляра распределенной базы данных, выполненного с возможностью передачи множеству вычислительных устройств системы, которые реализуют посредством сети, функционально соединенной с множеством вычислительных устройств системы, распределенную базу данных,wherein the memory of the first computing device contains at least a part of a distributed database instance, configured to transfer to a plurality of computing devices of the system, which implement a distributed database via a network functionally connected to a plurality of computing devices of the system, каждое из вычислительных устройств множества вычислительных устройств системы выполнены с возможностью обнаруживать поступления сообщения от других вычислительных устройств множества вычислительных устройств системы, и, при отсутствии разрешения на обмен сообщениями запрашивать разрешение на обмен данными с вычислительным устройством, имеющим уникальный идентификатор аккаунта вычислительного устройства, от которого пришло сообщение,each of the computing devices of the plurality of computing devices of the system is configured to detect the receipt of a message from other computing devices of the plurality of computing devices of the system, and, in the absence of permission to exchange messages, request permission to exchange data with a computing device that has a unique account identifier of the computing device from which it came message, а, при наличии такого разрешения, в автоматизированном режиме выделения из сообщения ссылки, по которой осуществляется автоматическое добавление нового экземпляра в базу данных второго или последующих вычислительных устройств множества вычислительных устройств системы.and, with such permission, in the automated mode of extracting a link from the message, by which a new instance is automatically added to the database of the second or subsequent computing devices of a plurality of computing devices of the system. 2. Система по п. 1, отличающаяся тем, что вычислительное устройство содержит звуковое устройство вывода и/или тактильное устройство вывода.2. The system of claim. 1, characterized in that the computing device contains an audio output device and/or a tactile output device. 3. Система по п. 1, отличающаяся тем, что память вычислительного устройства представляет собой оперативное запоминающее устройство RAM, буфер памяти, жесткий диск, базу данных, стираемое программируемое постоянное запоминающее устройство EPROM, электрически стираемое программируемое постоянное запоминающее устройство EEPROM, постоянное запоминающее устройство ROM.3. The system according to claim 1, characterized in that the memory of the computing device is a random access memory RAM, a memory buffer, a hard disk, a database, an erasable programmable read-only memory device EPROM, an electrically erasable programmable read-only memory device EEPROM, a read-only memory device ROM . 4. Система по п. 1, отличающаяся тем, что значения для параметра представляют собой поля базы данных, количественно характеризующего транзакцию, поля базы данных, количественно характеризующего порядок, в котором происходят события, и/или поле, для которого значение может быть сохранено в базе данных.4. The system of claim. 1, characterized in that the values for the parameter are database fields that quantify the transaction, a database field that quantifies the order in which events occur, and/or a field for which a value can be stored in database. 5. Система по п. 1, отличающаяся тем, что дополнительно содержит второе множество вычислительных устройств, которое выполнено с возможностью взаимодействия с первым множеством вычислительных устройств посредством приема-передачи экземпляров распределенной базы данных через назначенные вычислительные устройства первого и второго множеств вычислительных устройств системы.5. The system according to claim 1, characterized in that it further comprises a second set of computing devices, which is configured to interact with the first set of computing devices by receiving and transmitting distributed database instances through the assigned computing devices of the first and second sets of computing devices of the system. 6. Система по п. 1, отличающаяся тем, что уникальный идентификатор аккаунта вычислительного устройства представляет собой адрес электронной почты, номер телефона аккаунта мессенджера, идентификатор аккаунта социальной сети, идентификатор экосистемы.6. The system according to claim 1, characterized in that the unique identifier of the computing device account is an email address, a phone number of a messenger account, a social network account identifier, an ecosystem identifier. 7. Система по п. 1, отличающаяся тем, что вычислительное устройство представляет собой персональное вычислительное устройство, настольный компьютер, портативный компьютер, мобильный телефон, карманный персональный компьютер PDA.7. The system of claim. 1, characterized in that the computing device is a personal computing device, a desktop computer, a laptop computer, a mobile phone, a personal digital assistant PDA. 8. Способ реализации распределенной базы данных посредством системы распределённой базы данных, включающий этапы, на которых:8. A method for implementing a distributed database by means of a distributed database system, comprising the steps of: создают группу, содержащую множество вычислительных устройств системы распределенной базы данных, для чегоcreate a group containing a plurality of computing devices of a distributed database system, for which с первого вычислительного устройства отправляют часть экземпляра распределенной базы данных, содержащей ссылку для присоединения к группе, вычислительным устройствам, входящим в множество вычислительных устройств системы распределенной базы данных, при этом сформированная часть экземпляра распределенной базы данных сохраняют на первом вычислительном устройстве,from the first computing device, a part of the distributed database instance containing a link to join the group is sent to the computing devices included in the plurality of computing devices of the distributed database system, while the formed part of the distributed database instance is stored on the first computing device, для каждого документа, являющегося частью экземпляра распределенной базы данных на первом вычислительном устройстве, задают маршрут со списком уникальных идентификаторов аккаунта вычислительных устройств группы, а также правами на редактирование и/или согласование отправляемой части экземпляра распределенной базы данных для каждого из заданных вычислительных устройств группы,for each document that is part of the distributed database instance on the first computing device, a route is specified with a list of unique identifiers of the group's computing device account, as well as rights to edit and/or approve the sent part of the distributed database instance for each of the specified group computing devices, при завершении работы с частью экземпляра распределенной базы данных на текущем вычислительном устройстве указанную часть экземпляра пересылают на следующее, указанное в маршруте, вычислительное устройство, а также одновременно отсылают на предшествующие вычислительные устройства, для формирования полного экземпляра распределенной базы данных и отслеживания действий по указанному документу, при этом все части экземпляра распределенной базы данных сохраняются в памяти каждого вычислительного устройства, указанного в маршруте.upon completion of work with a part of the distributed database instance on the current computing device, the specified part of the instance is sent to the next computing device specified in the route, and is also simultaneously sent to previous computing devices, to form a complete instance of the distributed database and track actions on the specified document, while all parts of the distributed database instance are stored in the memory of each computing device specified in the route. 9. Способ по п. 8, отличающийся тем, что каждое из множества вычислительных устройств группы выполнено с возможностью добавить другие вычислительные устройства в группу, отправив на уникальные идентификаторы аккаунта вычислительных устройств приглашение в виде части экземпляра распределенной базы данных.9. The method according to claim 8, characterized in that each of the plurality of computing devices in the group is configured to add other computing devices to the group by sending an invitation to the unique identifiers of the computing device account as part of a distributed database instance. 10. Способ по п. 8, отличающийся тем, что из множества вычислительных устройств группы назначается одно вычислительное устройство, взаимодействующее с другим вычислительным устройством второго множества вычислительных устройств другой группы, также предварительно назначенным для взаимодействия.10. The method according to claim 8, characterized in that one computing device is assigned from the plurality of computing devices of the group, interacting with another computing device of the second plurality of computing devices of another group, also pre-assigned for interaction.
RU2022101611A 2022-01-25 Distributed database system and implementation method RU2784208C1 (en)

Publications (1)

Publication Number Publication Date
RU2784208C1 true RU2784208C1 (en) 2022-11-23

Family

ID=

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6446092B1 (en) * 1996-11-01 2002-09-03 Peerdirect Company Independent distributed database system
US9607071B2 (en) * 2014-03-07 2017-03-28 Adobe Systems Incorporated Managing a distributed database across a plurality of clusters
US20190179805A1 (en) * 2009-06-30 2019-06-13 Commvault Systems, Inc. Data object store and server for a cloud storage environment, including data deduplication and data management across multiple cloud storage sites
US10673623B2 (en) * 2015-09-25 2020-06-02 Mongodb, Inc. Systems and methods for hierarchical key management in encrypted distributed databases
US10713280B2 (en) * 2010-12-23 2020-07-14 Mongodb, Inc. Systems and methods for managing distributed database deployments
RU2746446C2 (en) * 2016-11-10 2021-04-14 Свирлдз, Инк. Methods and the device for distributed database containing anonymous input data

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6446092B1 (en) * 1996-11-01 2002-09-03 Peerdirect Company Independent distributed database system
US20190179805A1 (en) * 2009-06-30 2019-06-13 Commvault Systems, Inc. Data object store and server for a cloud storage environment, including data deduplication and data management across multiple cloud storage sites
US10713280B2 (en) * 2010-12-23 2020-07-14 Mongodb, Inc. Systems and methods for managing distributed database deployments
US9607071B2 (en) * 2014-03-07 2017-03-28 Adobe Systems Incorporated Managing a distributed database across a plurality of clusters
US10673623B2 (en) * 2015-09-25 2020-06-02 Mongodb, Inc. Systems and methods for hierarchical key management in encrypted distributed databases
RU2746446C2 (en) * 2016-11-10 2021-04-14 Свирлдз, Инк. Methods and the device for distributed database containing anonymous input data

Similar Documents

Publication Publication Date Title
US10860784B2 (en) Collaborative email with hierarchical signature authority
US20200145223A1 (en) System and method for blockchain-based notification
US9727632B2 (en) Contact builder
US7639672B2 (en) System and method for peer-to-peer internet communication
US7822821B2 (en) Access point object depositable on a web page and useful for initiating communication between depositing user and buddy
CA2763148C (en) Secure workflow and data management facility
TWI451346B (en) System and method for facilitating the growth of a mobile community
US8140506B2 (en) File sharing based on social network
US11824857B2 (en) Calls to web services via service proxy
CN112005236A (en) Document access over blockchain networks
CN109416785B (en) Method and system for managing access to a shared database and audit trail of the access
US11989725B2 (en) Blockchain-implemented systems and methods for secure access control
US20210243150A1 (en) Apparatuses, methods, and computer program products for data retention in a common group-based communication channel
JP7491967B2 (en) Apparatus and method for managing external permission grants and external messaging communication requests in a group-based communication system - Patents.com
KR20110131166A (en) System and method for managing digital interactions
KR20200023294A (en) Social Media Platform Enables Multiple Social Media Aliases
US11271914B2 (en) External contact connections to authenticate and contextualize entity
US20080183826A1 (en) System and Method For Transactional, Addressable Communication
EP3726446A1 (en) Method and device for sharing data across groups
US12093997B1 (en) Systems and methods for bartering services and goods using distributed ledger techniques
RU2784208C1 (en) Distributed database system and implementation method
EA044493B1 (en) DISTRIBUTED DATABASE SYSTEM AND METHOD OF ITS IMPLEMENTATION
Antoni et al. Use of Blockchain for Designing Digital Documents in Public Services
US20160072738A1 (en) System and methods for electronic communication between business entities
Rossaro Supporting the portability of profiles using the blockchain in the Mastodon social network