EA044493B1 - DISTRIBUTED DATABASE SYSTEM AND METHOD OF ITS IMPLEMENTATION - Google Patents

DISTRIBUTED DATABASE SYSTEM AND METHOD OF ITS IMPLEMENTATION Download PDF

Info

Publication number
EA044493B1
EA044493B1 EA202390034 EA044493B1 EA 044493 B1 EA044493 B1 EA 044493B1 EA 202390034 EA202390034 EA 202390034 EA 044493 B1 EA044493 B1 EA 044493B1
Authority
EA
Eurasian Patent Office
Prior art keywords
computing devices
computing device
distributed database
document
block
Prior art date
Application number
EA202390034
Other languages
Russian (ru)
Inventor
Алексей Сергеевич Медведев
Original Assignee
Алексей Сергеевич Медведев
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Алексей Сергеевич Медведев filed Critical Алексей Сергеевич Медведев
Publication of EA044493B1 publication Critical patent/EA044493B1/en

Links

Description

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

Из уровня техники известен способ работы с распределенной базой данных содержащий этапы, на которых интерфейсный сервер получает запрос на обслуживание базы данных, и запрос на обслуживание базы данных делится на операцию записи и операцию чтения; сервер интерфейса отправляет операцию записи на предварительно назначенный сервер глобальной базы данных для выполнения, а сервер глобальной базы данных передает результат выполнения всем другим серверам распределенной базы данных в цепном режиме; и сервер интерфейса выбирает один сервер распределенной базы данных и отправляет операцию чтения выбранному серверу распределенной базы данных для выполнения (патент CN 108241641 А 03.07.2018).A method of working with a distributed database is known from the prior art, comprising the stages in which the front-end server receives a request to service the database, and the request to service the database 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 transmits the execution result to all other distributed database servers in a chain mode; and the interface server selects one distributed database server and sends the read operation to the selected distributed database server for execution (CN patent 108241641 A 07/03/2018).

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

Недостатком известного решения является то, что существующие системы, известные из уровня техники организованы в виде сервера, доступ к которому осуществляется через веб интерфейс (сайт), на котором хранятся все документы всех пользователей. И в соответствии с правами при взаимодействии пользователей дается доступ к файлам других пользователей. То есть в существующих системах используют обычную технологию клиент-сервер. Такой вид системы ненадежен вследствие того, что неработоспособность сервера может сделать неработоспособной всю вычислительную сеть. При это неработоспособным сервером следует считать сервер производительности которого не хватает на обслуживание всех клиентов, а также сервер, находящийся в ремонте, профилактике, под атакой (DDos атака например) и т.п.The disadvantage of the known solution is that existing systems known from the prior art are organized in the form of a server, accessed through a web interface (website), on which all documents of all users are stored. And in accordance with the rights when users interact, access to the 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 server failure can render the entire computer network inoperable. In this case, an inoperative 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 (DDOS attack, for example), etc.

Техническая проблема изобретения заключается в решении проблемы создания системы распределенной базы данных, реализующей технологию клиент-клиент.The technical problem of the invention 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.

Указанный технический результат достигается в системе распределенной базы данных, содержащей множество вычислительных устройств, соединенных между собой посредством сети, а также сервер с системой обмена сообщений и сервер с серверным диском, функционально соединенные с каждым вычислительным устройством множества вычислительных устройств, каждое из которых содержит память, процессор и устройство вывода, при этом память каждого вычислительного устройства множества вычислительных устройств системы хранит инструкции, приводящие к исполнению процессором функций связанных с отправкой посредством сервера с системой обмена сообщений и сервера с серверным диском на другое вычислительное устройство входящее в множество вычислительных устройств части экземпляра распределенной базы данных, предназначенного для редактирования и/или согласования, а также приемом с другого вычислительного устройства входящего в множество вычислительных уст- 1 044493 ройств экземпляра распределенной базы данных, записи события синхронизации, записи предыдущих событий синхронизации с другими вычислительными устройствами, порядка событий синхронизации, значения для параметра, при этом память первого вычислительного устройства содержит как минимум часть экземпляра распределенной базы данных, выполненного с возможностью передачи множеству вычислительных устройств системы, которые реализуют посредством сети, функционально соединенной с множеством вычислительных устройств системы, распределенную базу данных, каждое из вычислительных устройств множества вычислительных устройств системы выполнены с возможностью обнаруживать поступления сообщения от других вычислительных устройств множества вычислительных устройств системы, и, при отсутствии разрешения на обмен сообщениями запрашивать разрешение на обмен данными с вычислительным устройством, имеющим уникальный идентификатор аккаунта вычислительного устройства от которого пришло сообщение, а, при наличии такого разрешения, в автоматизированном режиме выделения из сообщения ссылки, по которой осуществляется автоматическое добавление нового экземпляра в базу данных второго или последующих вычислительных устройств множества вычислительных устройств системы.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 memory, a processor and an output device, wherein the memory of each computing device of the plurality of computing devices of the system stores instructions leading to the execution by the processor of functions associated with sending, through a server with a messaging system and a server with a server disk, to another computing device included in the plurality of computing devices, part of an instance of a distributed database data intended for editing and/or coordination, as well as receiving from another computing device included in a plurality of computing devices an instance of a distributed database, recording a synchronization event, recording previous synchronization events with other computing devices, the order of synchronization events, values for parameter, wherein the memory of the first computing device contains at least part of an instance of a distributed database configured to transfer to a plurality of computing devices of the system, which implement, through a network operatively connected to a plurality of computing devices of the system, a distributed database, each of the computing devices of the plurality of computing devices the systems are configured to detect the arrival of messages from other computing devices of multiple 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 the message came, and, if such permission is available , in an automated mode, selecting a link from a message through 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 a computing device includes a RAM, a memory buffer, a hard disk, a database, an EPROM, an EEPROM, and a ROM.

Значения для параметра представляют собой поля базы данных, количественно характеризующего транзакцию, поля базы данных, количественно характеризующего порядок, в котором происходят события, и/или поле для которого значение может быть сохранено в базе данных.The values for a parameter are a database field that quantifies 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 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 designated 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 the identifier of any system that provides authorization to a third party with limited access to the user’s protected resources without transferring the login and password to the user (a third party) (for example, OAuth2; any ecosystem can provide such authentication).

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

Указанный технический результат достигается также в способе реализации распределенной базы данных посредством системы распределённой базы данных, включающий этапы, на которых: создают группу, содержащую множество вычислительных устройств системы распределенной базы данных, для чего с первого вычислительного устройства отправляют часть экземпляра распределенной базы данных, содержащей ссылку для присоединения к группе, вычислительным устройствам, входящим в множество вычислительных устройств системы распределенной базы данных, при этом сформированная часть экземпляра распределенной базы данных сохраняют на первом вычислительном устройстве; для каждого документа, являющегося частью экземпляра распределенной базы данных на первом вычислительном устройстве задают маршрут со списком уникальных идентификаторов аккаунта вычислительных устройств группы, а также правами на редактирование и/или согласование отправляемой части экземпляра распределенной базы данных для каждого из заданных вычислительных устройств группы, при завершении работы с частью экземпляра распределенной базы данных на текущем вычислительном устройстве указанную часть экземпляра пересылают на следующее, указанное в маршруте, вычислительное устройство, а также одновременно отсылают на предшествующие вычислительные устройства, для формирования полного экземпляра распределенной базы данных и отслеживания действий по указанному документу, при этом все части экземпляра распределенной базы данных сохраняются в памяти каждого вычислительного устройства указанного в маршруте.The specified technical result is also achieved in a method for implementing a distributed database by means of a distributed database system, which includes the steps of: creating a group containing a plurality of computing devices of a distributed database system, for which part of an instance of a distributed database 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 generated portion 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 account identifiers of the group’s computing devices, as well as 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 working with part of a 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.

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

При этом из множества вычислительных устройств группы назначается одно вычислительное устройство, взаимодействующее с другим вычислительным устройством второго множества вычислительных устройств другой группы, также предварительно назначенным для взаимодействия.In this case, from the plurality of computing devices of the group, one computing device is assigned to interact with another computing device of the second set of computing devices of another group, also pre-assigned for interaction.

Заявленное изобретение поясняется на графических материалах, где фиг. 1 - структурная схема системы распределенной базы данных, на которой проиллюстрированаThe claimed invention is illustrated in graphic materials, where Fig. 1 is a block diagram of a distributed database system, which illustrates

- 2 044493 система распределенной базы данных согласно варианту осуществления на примере одной группы пользователей из четырех пользователей и четырех вычислительных устройств;- 2 044493 distributed database system according to an embodiment using the example of one user group of four users and four computing devices;

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

фиг. 3 - структурная схема создания группы из пяти человек;fig. 3 - block diagram of creating a group of five people;

фиг. 4 - структурная схема внутреннего документооборота организации;fig. 4 - block diagram of the organization’s internal document flow;

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

Отличительной особенностью изобретения является хранение документов каждого пользователя системы на его же вычислительном устройстве. При передаче данных используются сервер передачи сообщений и сервер временного хранения данных с личным или корпоративным аккаунтом пользователя и принятый от другого пользователя документ также хранится на вычислительном устройстве пользователя получателя. То есть заявленная система реализует технологию клиент-клиент.A distinctive feature of the invention is the storage of documents of each user of the system on his own computing device. When transferring 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 declared system implements client-client technology.

Это позволяет не использовать огромные сервера с большими постоянно пополняющимися массивами данных, и тем не менее обеспечить получение документов всеми участниками документооборота. При этом в случае необходимости хранение документов пользователя возможно на его личном сервере, или сервере группы, а не на вычислительном устройстве пользователя, но обеспечено это будет после получения экземпляра базы данных на вычислительное устройство пользователя и последующее перенаправление на хранение на сервер, что является дополнительной функцией к текущей схеме работы.This allows you to avoid using huge servers with large, constantly expanding data sets, and yet ensure that all participants in the document flow receive documents. Moreover, if necessary, storing the user’s documents is possible on his personal server, or a group server, 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 for storage to the server, which is an additional function to the current work scheme.

При отправке также будет браться экземпляр распределенной базы данных с личного сервера или сервера группы, перемещаться на вычислительное устройство пользователя и далее отправляться другому пользователю, но основной смысл пересылки документов клиент-клиент сохраняется.Sending will also take an instance of a distributed database from a personal or team server, move it to a user's computing device, and then send it to another user, but the basic point of client-to-client document transfer remains the same.

Следует также отметить, что количество устройств в одной или разных группах системы распределенной базы данных может быть неограниченным, количество таких групп может быть неограниченным.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 the use of digital signatures of document flow participants. In this case, in the case of using an electronic signature, the private key is stored on a computing device or a separate storage medium of the user’s information, and the public key is transferred as part of a distributed database element using software.

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

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

Под текущим экземпляром распределенной базы данных для обмена подразумевается крайний экземпляр цепочки, например, одного документа, который доступен пользователю на редактирование. Все предыдущие экземпляры в таких цепочках с помощью программного обеспечения доступны на чтение, даже если пользователь текущий редактор крайнего экземпляра цепочки. Разные группы пользователей могут обмениваться текущими экземплярами распределенной базы данных с другими группами. Для этого достаточно знать уникальный идентификатор аккаунта системы передачи сообщений хотя бы одного пользователя из другой группы и отправить ему приглашение. Таким образом, пользователь второй группы с помощью программного обеспечения сможет принять приглашение и узнать из полученного в приглашении сообщения идентификатор участника первой группы. В дальнейшем пользователь второй группы может отправлять экземпляры распределенной базы данных пользователю первой группы.The current instance of a distributed database for exchange means the extreme 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 software, even if the user is the current editor of the extreme 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 find out the identifier of the member of the first group from the message received in the invitation. Subsequently, 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 a server with a messaging system and a server with a server disk for each user of this group. This ensures that the message is received and the distributed database instance file 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 the server disk. These attempts are repeated at specified intervals until a successful result, which also guarantees the receipt of an instance of the distributed database, and hence 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, a server with a messaging system and

- 3 044493 сервер с серверным диском первого должен быть известен второму. Например, одна группа может быть в локальной сети организации, вторая в локальной сети другой организации, но контактные лица обоих лиц имеют доступ в Интернет. При этом контактные лица имеют два аккаунта системы обмена сообщений и сервера с серверным диском, один аккаунт системы обмена сообщений и один аккаунт с серверным диском для внутренней передачи экземпляра распределенной базы данных, находящийся в локальной сети текущей организации, второй аккаунт системы обмена сообщений и второй аккаунт с серверным диском в сети Интернет для отправки контактному лицу другой группы.- 3 044493 the server with the server disk of the first must be known to the second. 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 individuals have access to the Internet. In this case, 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 disk on the Internet to send to a contact person in another group.

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

SQLite - компактная встраиваемая СУБД. Исходный код библиотеки передан в общественное достояние. Слово встраиваемый (embedded) означает, что SQLite не использует парадигму клиент-сервер, то есть движок SQLite не является отдельно работающим процессом, с которым взаимодействует программа, а представляет собой библиотеку, с которой программа компонуется, и движок становится составной частью программы. Таким образом, в качестве протокола обмена используются вызовы функций (API) библиотеки SQLite. Такой подход уменьшает накладные расходы, время отклика и упрощает программу. SQLite хранит всю базу данных (включая определения, таблицы, индексы и данные) в единственном стандартном файле на том компьютере, на котором исполняется программа. Простота реализации достигается за счёт того, что перед началом исполнения транзакции записи весь файл, хранящий базу данных, блокируется; ACID-функции достигаются в том числе за счёт создания файла журнала.SQLite is a compact embedded DBMS. The library source code 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 computer on which the program is executed. Simplicity of implementation is achieved due to the fact that before the start of a write transaction, the entire file storing the database is locked; 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 this information is provided by the application (or operating system) itself. At the same time, the user does not need 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. After all, in this case, another application can be treated as a black box. In this case, its internal mechanism does not matter - the programmer may not even know what an API is.

Создание и отправка экземпляра распределенной базы данных.Create and submit a distributed database instance.

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

1. Имеется ли разрешение на прием данных от данного отправителя?1. Do you have 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 a message and become a member of it?

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 identifier 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 can, but not necessarily, contain links to an unlimited number of files on a network drive, and uploads it to your network drive (Yandex Drive, Google Drive, etc.). Such a file is uploaded to the server with the server disk using the server API functions. Such API functions are standard for such servers, which is very convenient for other systems to interact with such servers.

На сетевом диске после вызова следующей API-функции формируется уникальная конфиденциальная ссылка на скачивание файла с данного сервера и возвращается первому вычислительному устройству в ответе на данный вызов API-функции.On the network drive, after calling the next API function, a unique confidential link to download a file from this server is generated 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 sent by the first computing device in the form of a message to the unique account of the second computing device (this can be sending an email using the SMTP protocol, a message in a messenger or social network via the API functions of the messenger server, or social network).

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

В случае электронной почты это выборка писем (сообщений) по теме и дате по протоколу IMAP или РОР3. В случае мессенджера или соцсети - это проверка всех диалогов с другими пользователями на непрочитанные письма и выборка из них, по заранее заданным ключевым словам, через API-функции.In the case of email, this is a selection of letters (messages) by subject and date using the IMAP or POP3 protocol. In the case of a messenger or social network, this is checking all dialogues with other users for unread letters and selecting from them, using predefined keywords, through API functions.

- 4 044493- 4 044493

Возможно реализовать случай со специально созданным под цели документооборота выделенным сервером обмена сообщений, в этом случае будет проверка базы данных такого сервера, по ключевым словам, или идентификаторам.It is possible to implement the case with a dedicated messaging server specially created for document flow purposes; in this case, the database of such a server will be checked using keywords or identifiers.

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

Если разрешение имеется, то второе устройство с помощью программного обеспечения и, зная формат сообщения, так как экземпляр программного обеспечения, который посылает и принимает сообщения таким способом, идентичен на всех вычислительных устройствах всех групп пользователей, вытаскивает из сообщения ссылку и по полученной из сообщения ссылке с помощью программного обеспечения по протоколу HTTPS скачивает файл распределенной базы данных SQLite, и в соответствии с идентификатором принадлежности к группе устройств из сообщения добавляет новый экземпляр в базу данных второго пользователя.If permission is available, then the second device, using the software and knowing the format of the message, since the instance of the software 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 via the HTTPS protocol, downloads the distributed SQLite database file, and in accordance with the device group membership identifier from the message, adds a new instance to the second user’s database.

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

Далее в случае обнаружения уже имеющейся цепочки данных предшествующих данному экземпляру в данной группе устройств, добавляется новый экземпляр в имеющуюся цепочку, иначе создается новая. Это реализовывается за счет указания в каждом экземпляре распределенной базы данных документа идентификатора родительской цепочки и соответственно определению по нему принадлежности к этой цепочке, либо новизны экземпляра базы данных.Next, if an existing chain of data preceding this instance is detected in a given group of devices, a new instance is added to the existing chain, otherwise a new one is created. This is implemented by indicating in each instance of a distributed document database the identifier of the parent chain and, accordingly, determining by it its membership in 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 distributed database element can be automatic thanks to software with an implemented timer, upon reaching the interval of which new mail, instant messenger or social network messages are checked, messages are processed and downloaded files in the above manner, 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 a message to the account with the unique identifier of the first user confirming the download of the file with the element of the distributed database via a link.

Такое сообщение в определенном формате будет иметь ту же ссылку на скачивание, которую отправлял первый пользователь, но вместо скачивания по ссылке на первом вычислительном устройстве происходит идентификация ссылки в журнале отправленных и полученных сообщений.Such a message in a certain format will have the same download link that the first user sent, but instead of downloading from a 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 party. This will confirm that another user has downloaded the file. After the first computing device receives such confirmation using the software, the transfer of the distributed database instance is considered complete 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 distributed database elements.

В случае отправки первым вычислительным устройством элемента распределенной базы данных нескольким вычислительным устройствам на аккаунты с уникальными идентификаторами их пользователей, удаление файла на сетевом диске вычислительным устройством отправителя происходит после получения подтверждения от всех вычислительных устройств, которым первое устройство отправило ссылку на данный экземпляр. Это отслеживается через журнал отправленных и полученных сообщений с помощью программного обеспечения.If the first computing device sends an element of a distributed database to several computing devices for accounts with unique identifiers of their users, the sender's computing device deletes the file on a 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 messages sent and received using the software.

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

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

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

При отправке вычислительное устройство текущего пользователя-отправителя копирует текущий экземпляр, меняет редактора в копии и отправляет новый экземпляр назначенному редактору. Получив- 5 044493 ший этот экземпляр распределенной базы данных пользователь является текущим редактором экземпляра и имеет доступ на редактирование. Оригинал скопированного экземпляра становится доступным отправителю на его вычислительной машине для чтения, так как не является крайним в цепочке. Копия экземпляра с новым редактором также остается у отправителя, она становится крайним элементом цепочки. Отправителю на его вычислительной машине крайний элемент доступен для чтения, так как он уже не редактор. Таким образом, можно совершать обход документа по списку пользователей, зная их уникальный идентификатор аккаунта сервера сообщений. Такие идентификаторы (например, электронная почта) известны всем участникам группы о каждом участнике этой группы. И каждый текущий получатель экземпляра будет являться редактором, а значит, сможет отправить экземпляр распределенной базы данных дальше.When sending, the current sending user's computing device copies the current instance, changes the editor on the copy, and sends the new instance to the designated editor. The user who received this instance of the distributed database is the current editor of the instance and has editing access. The original of the copied copy becomes available to the sender on his computer for reading, since it is not the last one in the chain. A copy of the copy with the new editor also remains with the sender; it becomes the last element of the chain. The sender can read the last element on his computer, since he is no longer an editor. Thus, you can crawl a document using a list of users, knowing their unique message server account identifier. Such identifiers (e.g., email) are known to all group members about each member of that group. And each current recipient of the instance will be an editor, which means he will be able to send an instance of the distributed database 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 the distributed database 100 may use a set of any number of computing devices containing computing devices not shown in FIG. 1.

Также в сети 105 может содержаться любое количество почтовых серверов и серверных дисков. Сеть 105 может представлять собой сеть любого типа (например, локальную вычислительную сеть (LAN), глобальную вычислительную сеть (WAN), виртуальную сеть, телекоммуникационную сеть), реализованную в виде проводной сети и/или беспроводной сети и используемую для функционального соединения вычислительных устройств 110, 120, 130, 140. Как более подробно описано в настоящем документе, в некоторых вариантах осуществления, например, вычислительные устройства представляют собой персональные компьютеры, соединенные друг с другом посредством поставщика услуг Интернет (ISP) и Интернета (например, сети 105).Also, network 105 may contain any number of mail servers and server drives. Network 105 may be any type of network (e.g., 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 through an Internet service provider (ISP) and the Internet (eg, network 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 the network 105 to send and/or receive data from one or more other computing devices. Examples of computing devices are shown in FIG. 1.

Вычислительное устройство 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, 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), and /or etc. 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 causing the processor to execute modules, processes, and/or functions associated with sending to and/or receiving from another computing device an instance of a distributed database (e.g., distributed database instance 124 on computing device 120) recording synchronization events, recording previous synchronization events with other computing devices (by exchanging distributed database instances with both the subsequent computing device and previous computing devices), the order of synchronization events, by generating a separate transaction log on each computing device distributed database (this log is stored on each computing device and is not transmitted), a value for a parameter (for example, a database field quantifying a transaction, a database field quantifying the order in which events occur, and/or any other suitable field , for which the value can be stored in the database).

Экземпляр 114 распределенной базы данных может, например, быть приспособлен для проведений операций с данными, включая сохранение, модификацию и/или удаление данных. В некоторых вариантах осуществления экземпляр 114 распределенной базы данных может представлять собой реляционную базу данных, объектную базу данных, постреляционную базу данных и/или базу данных любого другого подходящего типа. Например, экземпляр 114 распределенной базы данных может хранить данные, относящиеся к любой конкретной функции и/или области. Например, экземпляр 114 распределенной базы данных может хранить документы (например, пользователя вычислительного устройства 110), включаяThe distributed database instance 114 may, for example, be configured 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 post-relational database, and/or any other suitable type of database. For example, distributed database instance 114 may store data related to any specific function and/or area. For example, distributed database instance 114 may store documents (e.g., of a user of computing device 110), including

- 6 044493 значение и/или вектор значений, относящиеся к истории владения конкретным документом.- 6 044493 value and/or vector of values related to the ownership history of a specific 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 database instance 114.

Процессор 111 вычислительного устройства 110 может представлять собой любое подходящее устройство обработки, приспособленное для запуска и/или исполнения экземпляра 114 распределенной базы данных.The processor 111 of the computing device 110 may be any suitable processing device adapted to run and/or execute the 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 the 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 the value for a parameter stored in the distributed database instance 114 on computing device 110 to be sent to 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 includes another output device instead 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 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, the distributed database instance 124 may be structurally and/or functionally similar to the 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, the distributed database instance 134 may be structurally and/or functionally similar to the 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, the distributed database instance 144 may be structurally and/or functionally similar to the 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, a 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 the 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 the distributed database system 100, including properties of the computing devices (eg, computing devices 110, 120, 130, 140), number of computing devices, and network 105 can be selected in any manner.

В системе 100 распределенной базы данных одно вычислительное устройство является лидером, и оно создает группу пользователей. Например, это может быть учредитель или директор организации. Когда он создает нового участника, указывая его уникальный идентификатор аккаунта, новому участнику высылается приглашение, которое содержит данные о всей группе пользователей. При создании новоIn distributed database system 100, one computing device is the leader and creates a group of users. For example, this could be the founder or director of the organization. When he creates a new member using his unique account ID, the new member is sent an invitation that contains information about the entire user group. When creating a new

- 7 044493 го участника ему могут быть назначены права на создание новых пользователей группы. Например, это может быть начальник отдела кадров. Таким образом добавлять новых пользователей в группу может не только лидер, но и любое количество назначенных для этого пользователей. Вычислительное устройство каждого пользователя проверяет права на создание нового участника группы. И если таких прав нет, то функционал создания нового участника программного обеспечения блокируется или доступен только для чтения. Когда назначенный пользователь добавляет нового участника, информация о новом участнике в виде экземпляра распределенной базы данных посылается всем другим участникам группы. Таким образом у каждого участника группы имеется корректная информацию обо всех участниках группы.- 7 044493 th participant can be assigned the rights to create new group users. For example, this could be the head of the HR department. Thus, not only the leader, but also any number of users assigned for this can add new users to the group. Each user's computing device checks the rights to create a new group member. And if there are no such rights, then the functionality for creating a new software participant is blocked or read-only. When a designated user adds a new member, information about the new member in the form of a distributed database instance is sent to all other members of the group. This way, each group member has correct information about all group members.

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

Рассмотрим пример, когда создается новая группа из пяти человек (фиг. 3). Это может быть небольшая организация. Учредитель или предприниматель Павлов создает организацию и пользователя Павлов, который имеет уникальный идентификатор аккаунта сервера передачи сообщений.Let's consider an example when a new group of five people is created (Fig. 3). This may be a small organization. The founder or entrepreneur Pavlov creates an organization and a Pavlov user, which has a unique message server account identifier.

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

С помощью программного обеспечения ему доступно создание и редактирование новых сотрудников группы. Павлов создает Иванова, который является его сотрудником, вводит в форме создания его уникальный идентификатор сервера сообщений, например электронную почту, и не задает ему дополнительных прав в группе.Using the software, he can create and edit new group employees. Pavlov creates Ivanov, who is his employee, enters his unique message server identifier, such as email, in the creation form, 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 an instance of a distributed database with a link. When accepting the invitation, Ivanov’s computing device downloads the file via the link and adds data about the new group and all its participants to its database on the computing device.

На вычислительном устройстве Иванова будет информация про группу, пользователя Павлов и пользователя Иванов, и все это только с доступом на чтение. У Павлова все то же, но с доступом на редактирование, так как у него есть права на редактирование группы и создание и редактирование пользователей в этой группе.On Ivanov’s computing device there will be information about the group, user Pavlov and user Ivanov, and all this only with read access. Pavlov has everything the same, but with editing access, since he has rights to edit a 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 a copy of the 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 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 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 HR department and then he creates users of the system. He creates a new user Sinitsyna, who is an employee of Ivanov. Does not assign additional rights to her. Sinitsyna accepts the invitation. Ivanov, Petrov and Pavlov are sent a copy of the distributed database with information on Sinitsina. Everyone has information about the group, as well as users Ivanov, Petrov, Sidorov, Pavlov, Sinitsina.

У Иванова, Петрова и Синицыной информация доступна только для чтения. У Сидорова и Павлова на редактирование. Сидоров не может редактировать только Павлова. Следует отметить, что при поступлении информации о создании нового сотрудника, программное обеспечение проверяет, есть ли права у пользователя отправителя данного сообщения на создание нового пользователя и только при наличии таких прав в группе добавляется новый пользователь на вычислительное устройство получателя.For Ivanov, Petrov and Sinitsina, the information is read-only. Sidorov and Pavlov for editing. Sidorov cannot edit only Pavlova. It should be noted that when information about creating a new employee is received, the software checks whether the user of the sender of this message has rights to create a new user, and only if such rights are available 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 and the absence of confirmation from the user, the sender's computing device, using software, repeats sending the message with an instance of the distributed database. For example, a letter is lost and does not reach the recipient, a new letter is sent and this is repeated at specified intervals. Thus, the distributed database system ensures reliable data transfer between users' computing devices. The sending of such repeated messages can be canceled by the user of the sender's computing device.

--

Claims (9)

Внутренний документооборот организации.Internal document flow of the organization. Рассмотрим систему на примере группы из четырех пользователей, которые согласовывают документ внутри одной организации (фиг. 4).Let's consider the system using the example of a group of four users who approve a document within one organization (Fig. 4). Каждый пользователь знает уникальный идентификатор аккаунта сервера сообщений каждого. Это достигается посредством создания группы и добавления туда новых участников как описано выше. У каждого документа задается маршрут со списком пользователей из этой группы, по которому этот документ передается при завершении работы с ним текущего пользователя путем переназначения текущего редактора и отправки вышеописанным способом. Рассмотрим список из четырех пользователей: Иванов, Петров, Сидоров, Павлов. Иванов создает документ и заполняет маршрут другими пользователями группы, а также задает, может ли кто-то из пользователей заменять одного на другого в списке пользователей для обхода документа.Each user knows the unique identifier of each message server account. This is achieved by creating a group and adding new members as described above. For each document, a route is set with a list of users from this group, along which this document is transferred when the current user finishes working 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 the route with other users of the group, and also sets whether any 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 his 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 for Ivanov, since Petrov is listed as the editor in this block. Only Ivanov has the first block. The second block is occupied by Ivanov and Petrov. Petrov can edit the document, since he is marked as an editor in the current second block, and transmit it further along the route. Petrov finishes his work and sends the document. A third block is created and transferred to Sidorov, as well as Ivanov. The third block, available for reading, is from Ivanov and Petrov. Сидоров может редактировать третий блок. Сидоров, например, внес Петрова в следующую очередь обхода документа по маршруту, до Павлова, чтобы Петров внес еще изменения.Sidorov can edit the third block. Sidorov, for example, included Petrov in the next stage of document bypass along the route, to Pavlov, so that Petrov could make more changes. Создается 4-й блок и передается Петрову. Четвертый блок, доступный для чтения, есть у Иванова и Сидорова. Петров может редактировать 4-й блок.The 4th block is created and transferred to Petrov. The fourth block, available for reading, is from 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). The 5th block, available for reading, is available from Ivanov, Petrov, Sidorov. Павлов может редактировать 5-й блок. Павлов вносит в документ еще одного пользователя - Синицыну, себя ставит по маршруту после Синицыной. Создается 6 блок и передается Синицыной, а также другим пользователям, у которых документ уже побывал, чтобы они могли отслеживать дальнейшие действия по документу.Pavlov can edit the 5th block. Pavlov adds another user to the document - Sinitsina, and places himself on the route after Sinitsina. Block 6 is created and transmitted 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 блок. Иванов, Петров, Сидоров, Павлов только для чтения. Синицына передает дальше.It should be noted that all document route information is sent with the current database instance, so the new route will be available to all users. Sinitsyna can edit block 6. Ivanov, Petrov, Sidorov, Pavlov are 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 look at an example. LLC First, whose contact person is Pavlov and LLC Second, whose contact person is Pirogov (Fig. 5). ООО Второе уже получило и приняло приглашение от ООО Первое и оба ООО знают уникальные идентификаторы сервера сообщений контактных лиц друг друга.LLC Second has already received and accepted an invitation from LLC First and both LLCs know the unique message server identifiers of each other's contact persons. Павлов имеет данные о группе ООО Второе и пользователе-контактном лице ООО Второе Пирогове. Пирогов имеет данные о группе ООО Первое и пользователе-контактном лице ООО Первое Павлове.Pavlov has information about the LLC Second group and the user-contact person LLC Second Pirogov. Pirogov has information about the LLC Pervoe group and the user-contact person LLC Pervoe Pavlov. Павлов имеет в приложении документ, например, проходящий внутренний документооборот, и отправляет его контрагенту. Создается новый блок и отправляется контактному лицу контрагента Пирогову.Pavlov has a document attached, for example, an internal document flow, and sends it to the counterparty. A new block is created and sent to the counterparty’s contact person Pirogov. Статус в приложении Павлова помечается как у внешней группы, копии нового блока в таком случае своим сотрудникам Иванову, Петрову и Сидорову не отсылаются. Приложение Пирогова принимает новый блок от Иванова и создает новую цепочку, так как по идентификатору цепочки таких не было. По новой цепочке можно запускать внутренний документооборот в ООО Второе.The status in Pavlov’s application is marked as that of an external group; in this case, copies of the new block are not sent to his 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 based on the chain identifier. Using the new chain, you can launch internal document flow in Second LLC. Когда он закончится, можно будет вернуть документ в ООО Первое контактному лицу Павлову. У Павлова новый блок от Пирогова идентифицируется как новый блок в существующую цепочку. Далее можно продолжать документооборот внутри организации.When it ends, you can return the document to LLC First contact person Pavlov. Pavlov identifies the new block from Pirogov as a new block to the existing chain. Then you can continue document flow within the organization. ФОРМУЛА ИЗОБРЕТЕНИЯCLAIM 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 output, - 9 044493 при этом память каждого вычислительного устройства множества вычислительных устройств системы хранит инструкции, приводящие к исполнению процессором функций, связанных с отправкой посредством сервера с системой обмена сообщений и сервера с серверным диском на другое вычислительное устройство, входящее в множество вычислительных устройств части экземпляра распределенной базы данных, предназначенного для редактирования и/или согласования, а также приемом с другого вычислительного устройства множества вычислительных устройств экземпляра распределенной базы данных, записи события синхронизации, записи предыдущих событий синхронизации с другими вычислительными устройствами, порядка событий синхронизации, значения для параметра, при этом память первого вычислительного устройства содержит как минимум часть экземпляра распределенной базы данных, выполненного с возможностью передачи множеству вычислительных устройств системы, которые реализуют посредством сети, функционально соединенной с множеством вычислительных устройств системы, распределенную базу данных, каждое из вычислительных устройств множества вычислительных устройств системы выполнены с возможностью обнаруживать поступления сообщения от других вычислительных устройств множества вычислительных устройств системы, и, при отсутствии разрешения на обмен сообщениями запрашивать разрешение на обмен данными с вычислительным устройством, имеющим уникальный идентификатор аккаунта вычислительного устройства, от которого пришло сообщение, а, при наличии такого разрешения, в автоматизированном режиме выделения из сообщения ссылки, по которой осуществляется автоматическое добавление нового экземпляра в базу данных второго или последующих вычислительных устройств множества вычислительных устройств системы.- 9 044493 wherein the memory of each computing device of the plurality of computing devices of the system stores instructions leading to the execution by the processor of functions associated with sending, through 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 database instance data intended for editing and/or coordination, as well as receiving from another computing device of a plurality of computing devices an instance of a distributed database, a synchronization event record, a record of previous synchronization events with other computing devices, the order of synchronization events, a value for a parameter, wherein the memory of the first the computing device contains at least part of an instance of a distributed database, configured to transmit to a plurality of computing devices of the system, which implement, through a network operatively connected to the 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 receipts messages from other computing devices of multiple 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 the message came, and, if such permission is available, in an automated allocation mode from a link message that automatically adds a new instance to the database of the second or subsequent computing devices of the plurality of computing devices of the system. 2. Система по п.1, отличающаяся тем, что вычислительное устройство содержит звуковое устройство вывода и/или тактильное устройство вывода.2. The system of claim 1, wherein the computing device comprises an audio output device and/or a tactile output device. 3. Система по п.1, отличающаяся тем, что память вычислительного устройства представляет собой оперативное запоминающее устройство RAM, буфер памяти, жесткий диск, базу данных, стираемое программируемое постоянное запоминающее устройство EPROM, электрически стираемое программируемое постоянное запоминающее устройство EEPROM, постоянное запоминающее устройство ROM.3. The system of claim 1, wherein the computing device memory is a RAM, a memory buffer, a hard disk, a database, an EPROM, an EEPROM, a ROM . 4. Система по п.1, отличающаяся тем, что значения для параметра представляют собой поля базы данных, количественно характеризующего транзакцию, поля базы данных, количественно характеризующего порядок, в котором происходят события, и/или поле, для которого значение может быть сохранено в базе данных.4. The system according to claim 1, characterized in that the values for the parameter are a database field that quantifies the transaction, a database field that quantifies the order in which events occur, and/or a field for which the value can be stored in database. 5. Система по п.1, отличающаяся тем, что дополнительно содержит второе множество вычислительных устройств, которое выполнено с возможностью взаимодействия с первым множеством вычислительных устройств посредством приема-передачи экземпляров распределенной базы данных через назначенные вычислительные устройства первого и второго множеств вычислительных устройств системы.5. The system according to claim 1, characterized in that it 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 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 telephone number of a messenger account, a social network account identifier, an ecosystem identifier. 7. Система по п.1, отличающаяся тем, что вычислительное устройство представляет собой персональное вычислительное устройство, настольный компьютер, портативный компьютер, мобильный телефон, карманный персональный компьютер PDA.7. The system according to claim 1, characterized in that the computing device is a personal computing device, a desktop computer, a laptop computer, a mobile phone, a PDA. 8. Способ реализации распределенной базы данных посредством системы распределённой базы данных, включающий этапы, на которых:8. A method for implementing a distributed database using a distributed database system, including the steps of: создают группу, содержащую множество вычислительных устройств системы распределенной базы данных, для чего с первого вычислительного устройства отправляют часть экземпляра распределенной базы данных, содержащей ссылку для присоединения к группе, вычислительным устройствам, входящим в множество вычислительных устройств системы распределенной базы данных, при этом сформированную часть экземпляра распределенной базы данных сохраняют на первом вычислительном устройстве, для каждого документа, являющегося частью экземпляра распределенной базы данных на первом вычислительном устройстве, задают маршрут со списком уникальных идентификаторов аккаунта вычислительных устройств группы, а также правами на редактирование и/или согласование отправляемой части экземпляра распределенной базы данных для каждого из заданных вычислительных устройств группы, при завершении работы с частью экземпляра распределенной базы данных на текущем вычислительном устройстве указанную часть экземпляра пересылают на следующее, указанное в маршруте, вычислительное устройство, а также одновременно отсылают на предшествующие вычислительные устройства, для формирования полного экземпляра распределенной базы данных и отслеживания действий по указанному документу, при этом все части экземпляра распределенной базы данных сохраняются в памяти каждого вычислительного устройства, указанного в маршруте.creating a group containing a plurality of computing devices of a distributed database system, for which, from the first computing device, a part of an instance of a distributed database containing a link to join the group is sent to the computing devices included in the plurality of computing devices of a distributed database system, and the formed part of the instance distributed database 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 account identifiers of the group’s computing devices, as well as 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 of work with 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 data and tracking actions on a specified document, with all parts of the distributed database instance 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 account identifiers of the computing devices as part of the instance --
EA202390034 2022-01-25 2023-01-11 DISTRIBUTED DATABASE SYSTEM AND METHOD OF ITS IMPLEMENTATION EA044493B1 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2022101611 2022-01-25

Publications (1)

Publication Number Publication Date
EA044493B1 true EA044493B1 (en) 2023-08-30

Family

ID=

Similar Documents

Publication Publication Date Title
US10860784B2 (en) Collaborative email with hierarchical signature authority
US10708060B2 (en) System and method for blockchain-based notification
US10356205B2 (en) Viral engine for network deployment
US9727632B2 (en) Contact builder
CN112005236A (en) Document access over blockchain networks
US7639672B2 (en) System and method for peer-to-peer internet communication
US8180661B2 (en) System and method for managing property
TWI451346B (en) System and method for facilitating the growth of a mobile community
US20080133445A1 (en) File sharing based on social network
US20070271234A1 (en) Information Exchange Among Members of a Group of Communication Device Users
US20020138582A1 (en) Methods and apparatus providing electronic messages that are linked and aggregated
US20070106698A1 (en) Server based automatically updating address book
US11405393B2 (en) Calls to web services via service proxy
US20210042745A1 (en) Blockchain-implemented systems and methods for secure access control
CN111670437A (en) Method for sharing electronic content or comments to specific user
EP3726446A1 (en) Method and device for sharing data across groups
US9686212B2 (en) Systems, methods and interfaces for using a messaging program across a multiple applications and communications environment
RU2784208C1 (en) Distributed database system and implementation method
EA044493B1 (en) DISTRIBUTED DATABASE SYSTEM AND METHOD OF ITS IMPLEMENTATION
US20160072738A1 (en) System and methods for electronic communication between business entities
Lokhande et al. BlockChain Based Chat Application
JP4681812B2 (en) Method and apparatus for storing and managing contacts in a distributed collaboration system
KR20140072362A (en) Method and system for providing closed type group messaging services
CA2875987C (en) Systems, methods and interfaces for using a messaging program across a multiple applications and communications environment
US10708301B2 (en) Method of, and apparatus for, secure online electronic communication