UA80540C2 - Method, system, device, and information carrier for validating remote database updates; method for validating records in a remote database and data transmission over a communication system - Google Patents

Method, system, device, and information carrier for validating remote database updates; method for validating records in a remote database and data transmission over a communication system Download PDF

Info

Publication number
UA80540C2
UA80540C2 UA20040504106A UA20040504106A UA80540C2 UA 80540 C2 UA80540 C2 UA 80540C2 UA 20040504106 A UA20040504106 A UA 20040504106A UA 20040504106 A UA20040504106 A UA 20040504106A UA 80540 C2 UA80540 C2 UA 80540C2
Authority
UA
Ukraine
Prior art keywords
record
database
update
exception
remote database
Prior art date
Application number
UA20040504106A
Other languages
Russian (ru)
Ukrainian (uk)
Inventor
Арістотель Ніколас Белоу
Бредлі Томас МакМіллен
Original Assignee
Верісайн, Інк
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Верісайн, Інк filed Critical Верісайн, Інк
Priority claimed from PCT/US2002/035081 external-priority patent/WO2003038653A1/en
Publication of UA80540C2 publication Critical patent/UA80540C2/en

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Embodiments of the present invention provide a method and system for validating remote database updates over a network. A local database (200) record and a remote database record may be compared and exceptions may be generated. Each exception may describe a discrepancy between the remote and local database (200) records. An exception identifier may be associated with each exception, where the exception identifier may be associated with an identifier of the record. An event identifier may be associated with each event in the updated, where the event identifier may be associated with an identifier of the record. The events and exceptions that correspond to the record may be compared to determine whether the update is valid.

Description

Опис винаходуDescription of the invention

Вимога на пріоритет/перехресне посилання на пов'язані заявки. 2 Дана не попередня заявка заявляє пріоритет попередньої заявки (на патент США з реєстраційним номером 60/330.842 від 1 листопада 2001 року), повністю включеної у даний опис за допомогою посилання, і попередньої заявки (на патент США з реєстраційним номером 60/365.169 від 19 березня 2002 року), повністю включеної у даний опис за допомогою посилання.Claim of priority/cross-reference to related applications. 2 This non-prior application claims priority to the prior application (for US Patent Registration No. 60/330,842 dated November 1, 2001), fully incorporated herein by reference, and the prior application (for US Patent Registration Number 60/365,169 dated 19 March 2002), fully incorporated herein by reference.

Даний винахід відноситься до комп'ютерних баз даних, більш конкретно, до способу і системи для надійної 70 перевірки достовірності оновлень віддаленої бази даних.The present invention relates to computer databases, more specifically, to a method and system for reliable 70 verification of remote database updates.

Зі збільшенням розміру баз даних і внаслідок їх сильно розподіленої структури стає все в більшій мірі проблематичним забезпечення однакових версій даних у пов'язаних базах даних. Якщо відбуваються істотні зміни в одній базі даних, то може бути потрібне оновлення інших баз даних для включення вказаних змін у найкоротші терміни. Здійснення таких оновлень може спричинити часте переміщення великих об'ємів даних 79 оновлення у декілька баз даних. Потенційно, такий процес може бути надзвичайно складним.As databases grow in size and due to their highly distributed structure, it becomes increasingly problematic to ensure identical versions of data across linked databases. If significant changes occur in one database, it may be necessary to update other databases to incorporate these changes as soon as possible. Performing such updates may cause large amounts of 79 update data to be moved frequently to multiple databases. Potentially, such a process can be extremely complex.

Вказана проблема додатково поєднується з ненадійним зв'язком у системах. У цьому випадку дані можуть бути втрачені при транспортуванні. При цьому потрібна повторна передача даних, і інші бази даних знову оновлюються. Таке повторення істотно знижує ефективність системи і зменшує ділянку, в якій бази даних містять найновіші дані.This problem is additionally combined with unreliable communication in systems. In this case, data may be lost in transit. This requires a retransmission of the data, and other databases are updated again. Such repetition significantly reduces the efficiency of the system and reduces the area in which the databases contain the most recent data.

Фіг.1 - структурна схема системи, відповідно до варіанту здійснення даного винаходу.Fig. 1 is a structural diagram of the system according to an embodiment of the present invention.

Фіг.2 - структурна схема системи концентратора, відповідно до варіанту здійснення даного винаходу.Fig. 2 is a structural diagram of the concentrator system according to an embodiment of the present invention.

Фіг.3 ілюструє можливу передачу оновлень бази даних з локальної бази даних у віддалену базу даних, відповідно до варіанту здійснення даного винаходу.Figure 3 illustrates a possible transfer of database updates from a local database to a remote database, according to an embodiment of the present invention.

Фіг.4 ілюструє файл відправки, відповідно до варіанту здійснення даного винаходу. сFig. 4 illustrates a sending file according to an embodiment of the present invention. with

Фіг.5 ілюструє файл ініціалізації відправки, відповідно до варіанту здійснення даного винаходу. Ге)Fig. 5 illustrates the initialization file of the shipment, according to an embodiment of the present invention. Gee)

Фіг - часова діаграма, що ілюструє формування файлу відправки та файлу ініціалізації відправки, відповідно до варіанту здійснення даного винаходу.Fig is a timing diagram illustrating the formation of a shipment file and a shipment initialization file, according to an embodiment of the present invention.

Фіг.7 - блок-схема варіанту здійснення даного винаходу, в якому можуть бути сформовані файли оновлення локальної бази даних. оFig. 7 is a block diagram of an embodiment of this invention in which local database update files can be created. at

Фіг.8 - блок-схема варіанту здійснення даного винаходу, в якому віддалена база даних може одержувати «Її файли оновлення з локальної бази даних.Fig. 8 is a block diagram of an embodiment of this invention in which a remote database can receive its update files from a local database.

Фіг.9 - блок-схема іншого варіанту здійснення даного винаходу, в якому віддалена база даних може о одержувати файли оновлення з локальної бази даних і перевіряти їх достовірність. Га»)Figure 9 is a block diagram of another embodiment of the present invention, in which a remote database can receive update files from a local database and verify their authenticity. Ha")

Фіг1ОА - блок-схема варіанту здійснення даного винаходу, в якому може бути перевірена достовірність 3о файлів оновлення. соFig. 1OA is a block diagram of an embodiment of the present invention in which the authenticity of 30 update files can be checked. co

Фіг1оВ - блок-схема іншого варіанту здійснення даного винаходу, в якому може бути перевірена достовірність файлів оновлення.Fig. 10B is a block diagram of another embodiment of the present invention in which the authenticity of update files can be checked.

Фіг.11 - ілюстрація перевірки достовірності файлу оновлення, відповідно до варіанту здійснення даного « винаходу. З 50 Варіанти здійснення даного винаходу забезпечують спосіб і системі для перевірки достовірності оновлень с віддаленої бази даних, що здійснюються через мережу зв'язку. Може бути здійснене порівняння записуFig. 11 is an illustration of checking the authenticity of the update file, according to an embodiment of this invention. C 50 Embodiments of the present invention provide a method and system for verifying the authenticity of updates from a remote database carried out over a communication network. A record comparison can be made

Із» локальної бази даних і запису віддаленої бази даних, і можуть бути сформовані виключення. Кожне виключення може описувати "розходження між записами віддаленої і локальної баз даних. З кожним виключенням може бути зіставлений ідентифікатор виключення, причому ідентифікатор виключення може відповідати ідентифікатору запису. З кожною подією в оновленні може бути зіставлений ідентифікатор події, причому ідентифікатор подіїFrom" the local database and the remote database record, and exceptions may be generated. Each exception can describe a "difference between remote and local database records. Each exception can be associated with an exception ID, where the exception ID can correspond to a record ID. Each update event can be associated with an event ID, where the event ID

Со може відповідати ідентифікатору запису. Для визначення, чи є оновлення достовірним, може бути здійснене ав | порівняння подій і виключень, які відповідають запису.So can match a record ID. To determine whether the update is valid, av | comparing events and exceptions that match the record.

Фіг.1 - структурна схема, що ілюструє систему, відповідно до варіанту здійснення даного винаходу. В і-й основному система 100 може містити велику резидентну базу даних, через мережу зв'язку одержувати запити на «їз» 20 пошук і забезпечувати відповіді по пошуку. Наприклад, система 100 може являти собою симетричний багатопроцесорний (ЗМР) комп'ютер, наприклад, такий як ІВМ К5З/б60009М80 або 580, що виробляється с компанією ІВМ (АгтопкК, штат Нью-Йорк), Зип Епіегргізетм10000, що виробляється Зип Місгозувіетв (Запіа Сіага, штат Каліфорнія) і т.д. Система 100 також може являти собою багатопроцесорний персональний комп'ютер, наприклад, такий як СотрадРгої! іапі мМІ 530 (ЩО має два процесори Іпіє! РепіїштФ І, 866МГцЦ), що виробляється компанією Неміейк-Раскага (Раю Айо, штат Каліфорнія). Система 100 може також міститиFigure 1 is a block diagram illustrating a system according to an embodiment of the present invention. Basically, the system 100 can contain a large resident database, receive requests for "travel" 20 search through the communication network and provide search answers. For example, system 100 may be a symmetric multiprocessor (MMP) computer, such as an IBM K5Z/b60009M80 or 580 manufactured by IBM (Agtopk, New York), a Zip Epiegrgizetm10000 manufactured by Zip Misgozuvietv (Zapia Ciaga, California) etc. System 100 may also be a multiprocessor personal computer, for example, such as SotradRgoi! iapi mmI 530 (WHICH has two processors Ipie! RepiishtF I, 866MHz), manufactured by the company Nemiek-Raskaga (Raiu Io, California). System 100 may also include

ГФ) багатопроцесорну операційну систему, наприклад, таку як ІВМ АЇХФО 41 5и!п Зоїагіз'м 8 Орегаййпд Епмігоптепі,GF) a multiprocessor operating system, for example, such as IVM AIKHFO 41 5y!p Zoiagiz'm 8 Oregayypd Epmigoptepi,

Ге Кей Нас і ІМмОхе 6.2, і т.д. Система 100 може одержувати через мережу 124 зв'язку періодичні оновлення, які можуть паралельно включатися у базу даних. Варіанти здійснення даного винаходу можуть досягати дуже во високої продуктивності оновлення і пошуку по базі даних за допомогою включення кожного оновлення у базу даних без використання блокування бази даних або засобів керування доступом.Ge Kei Nas and IMmOhe 6.2, etc. The system 100 can receive through the communication network 124 periodic updates, which can be included in the database in parallel. Embodiments of the present invention can achieve very high database update and search performance by incorporating each update into the database without using database locking or access controls.

У варіанті здійснення система 100 може містити, щонайменше, один процесор 102-1, приєднаний до шини 101. Процесор 102-1 може містити внутрішній кеш (наприклад, кеш 11, не зображений). Між процесором 102-1 і шиною 101 може бути резидентно розміщений кеш 103-1 вторинної пам'яті (наприклад, кеш 12, кеші І 2/1 З і т.д.).In an embodiment, system 100 may include at least one processor 102-1 attached to bus 101. Processor 102-1 may include an internal cache (eg, cache 11, not shown). Between the processor 102-1 and the bus 101, a secondary memory cache 103-1 can be resident (for example, cache 12, cache I 2/1 Z, etc.).

У переважному варіанті здійснення система 100 може містити декілька процесорів 102-1...102-Р, приєднаних до б5 шини 101. Між декількома процесорами 102-1...102-Р і шиною 101 також може бути резидентно розміщено декілька кешів 103-1...103-Р вторинної пам'яті (наприклад, архітектура крізного перегляду) або, у вигляді іншого варіанту, до шини 101 може бути приєднаний, щонайменше, один кеш 103-1 вторинної пам'яті (наприклад, архітектура з передісторією). Система 100 може містити пам'ять 104, наприклад, таку як оперативний запам'ятовуючий пристрій (ОЗП), і т.д., приєднану до шини 101 для зберігання інформації та інструкцій, які повинні виконуватися декількома процесорами 102-1...102-Р.In a preferred embodiment, the system 100 may contain several processors 102-1...102-P connected to b5 of the bus 101. Between several processors 102-1...102-P and the bus 101, several caches 103- 1...103-P of secondary memory (for example, a look-through architecture) or, as another variant, at least one cache 103-1 of secondary memory (for example, an architecture with a history) can be connected to the bus 101 . System 100 may include memory 104, such as a random access memory (RAM), etc., connected to bus 101 for storing information and instructions to be executed by multiple processors 102-1...102 -R.

Пам'ять 104 може зберігати велику базу даних, наприклад, для перетворення імен доменів Інтернет в адреси в Інтернет, для перетворення імен або номерів телефонів у мережні адреси, для забезпечення і оновлення даних профілю абонента, для забезпечення і оновлення даних присутності користувача і т.д. Переважно, розмір 7/0 бази даних і кількість перетворень за секунду можуть бути дуже великими. Наприклад, пам'ять 104 може містити, щонайменше, 64Гбайт ОЗП і може містити базу даних імен доменів у 5О0ОМ (тобто, 500х1097) записів, базу даних абонентів у 5О0М записів, базу даних мобільності номерів телефонів у 450М записів і т.д.Memory 104 can store a large database, for example, to convert Internet domain names to Internet addresses, to convert names or phone numbers to network addresses, to provide and update subscriber profile data, to provide and update user presence data, etc. d. In particular, the size of the 7/0 database and the number of conversions per second can be very large. For example, memory 104 may contain at least 64GB of RAM and may contain a domain name database of 500M (ie, 500x1097) records, a subscriber database of 500M records, a mobile phone number database of 450M records, etc.

У можливій архітектурі 64-бітової системи, наприклад, такої як система, що містить, щонайменше, один 64-бітовий процесор 102-1 зі зворотним порядком байтів, приєднаний, щонайменше, до 64-бітової шини 101, і 75 64-бітову пам'ять 104, 8-байтове значення покажчика може бути записане в адресу (комірки) пам'яті на межі 8-байтів (тобто, адреса пам'яті, що ділиться на вісім, або, наприклад, КМ) з використанням одиночної безперервної операції. В основному, наявність кешу 103-1 вторинної пам'яті може просто затримувати запис 8-байтового покажчика у пам'ять 104. Наприклад, в одному варіанті здійснення, кешем 103-1 вторинної пам'яті може бути кеш крізного перегляду, що діє у режимі крізного запису так, щоб одиночна команда збереження 8-байтів могла переміщувати вісім байтів даних з процесора 102-1 у пам'ять 104 без переривання і всього лише за два такти системних годин. В іншому варіанті здійснення кешем 103-1 вторинної пам'яті може бути кеш крізного перегляду, що діє у режимі зворотного запису так, щоб 8-байтовий покажчик міг бути спочатку записаний у кеш 103-1 вторинної пам'яті, який потім, у більш пізній час, може записати 8-байтовий покажчик у пам'ять 104, наприклад, при запису у пам'ять 104 рядка кешу, в якому зберігається 8-байтавий покажчик (тобто, Га наприклад, коли "скидається у пам'ять" визначений рядок кешу, або повністю кеш вторинної пам'яті).In a possible 64-bit system architecture, for example, such as a system containing at least one 64-bit reverse byte-order processor 102-1 connected to at least a 64-bit bus 101, and 75 64-bit memory 104, an 8-byte pointer value can be written to a memory address (cell) on an 8-byte boundary (ie, a memory address divisible by eight, or, for example, a CM) using a single continuous operation. Basically, the presence of secondary memory cache 103-1 may simply delay the writing of an 8-byte pointer to memory 104. For example, in one embodiment, secondary memory cache 103-1 may be a look-through cache operating in write-through mode so that a single 8-byte save command can move eight bytes of data from processor 102-1 to memory 104 without interruption and in just two system clock cycles. In another embodiment, secondary memory cache 103-1 may be a look-through cache operating in write-back mode so that an 8-byte pointer may first be written to secondary memory cache 103-1, which then, in more late time, can write an 8-byte pointer to memory 104, for example, when writing to memory 104 a cache line in which the 8-byte pointer is stored (ie, Ha for example, when a specified line is "dumped into memory" cache, or completely secondary memory cache).

Зрештою, з точки зору процесора 102-1, як тільки дані фіксуються вихідними контактами процесора 102-1, і9) всі вісім байтів даних записуються у пам'ять 104 в одній постійній, безперервній передачі, яка може бути затримана діями кешу 103-1 вторинної пам'яті, якщо він є у наявності. З точки зору процесорів 102-2... 102-Р, як тільки дані фіксуються вихідними контактами процесора 102-1, всі вісім байтів даних записуються у пам'ять ав! 104 в одній постійній, безперервній передачі, яка вказана протоколом узгодженості кешу по кешах 103-1...103-Р вторинної пам'яті, які можуть затримувати запис у пам'ять 104, якщо є у наявності. МUltimately, from the perspective of processor 102-1, once data is latched by the output pins of processor 102-1, i9) all eight bytes of data are written to memory 104 in one continuous, continuous transfer, which may be delayed by the actions of secondary cache 103-1 memory, if available. From the point of view of processors 102-2... 102-P, as soon as the data is latched by the output pins of processor 102-1, all eight bytes of data are written into memory av! 104 in one constant, continuous transfer, which is indicated by the cache consistency protocol on caches 103-1...103-P of secondary memory, which can delay writing to memory 104, if available. M

Однак, якщо 8-байтове значення покажчика записується у невирівняну комірку пам'яті 104, наприклад, адреса ю пам'яті, яка перетинає межу 8-байтів, то всі вісім байтів даних не можуть бути передані з процесора 102-1 з використанням одиночної команди збереження 8-байтів. Замість цього процесор 102-1 може видати дві різні і о окремі команди збереження. Наприклад, якщо адреса пам'яті починається за чотири байти до межі 8-байтів с (наприклад, 8М-4), то перша команда збереження передає у пам'ять 104 чотири старших байти (наприклад, 8-4), у той час як друга команда збереження передає у пам'ять 104 чотири молодших байти (наприклад, 8М).However, if an 8-byte pointer value is written to an unaligned memory location 104, such as a memory address that crosses an 8-byte boundary, then all eight bytes of data cannot be transferred from processor 102-1 using a single instruction 8-byte storage. Instead, processor 102-1 may issue two different and separate save commands. For example, if a memory address begins four bytes before the 8-byte s boundary (e.g., 8M-4), then the first save instruction transfers the four high-order bytes to memory 104 (e.g., 8-4), while the second save command transfers the four least significant bytes (for example, 8M) to memory 104.

Істотно, що між цими двома окремими командами збереження процесор 102-1 може одержати переривання, або « процесор 102-1 може звільнити керування шиною 101 для іншого компонента системи (наприклад, процесора 70 102-Р і т.д-). Отже, значення покажчика, що резидентно знаходиться у пам'яті 104, буде недійсним, доки 8 с процесор 102-1 не зможе завершити другу команду збереження. Якщо інший компонент починає одиночне й безперервне зчитування пам'яті у дану комірку пам'яті, то недійсне значення буде повернене, як припустимо и"? дійсне.Importantly, between these two separate save commands, processor 102-1 may receive an interrupt, or processor 102-1 may release control of bus 101 to another system component (eg, processor 70 102-P, etc.). Therefore, the value of the pointer resident in memory 104 will be invalid until 8 seconds before processor 102-1 can complete the second save command. If another component initiates a single, continuous memory read into the given memory location, then an invalid value will be returned, assuming it is valid.

Аналогічно, нове 4-байтове значення покажчика може бути записане в адресу пам'яті, що ділиться на чотири (наприклад, 4М), з використанням одиночної безперервної операції. Потрібно зазначити, що у можливому (ее) варіанті, описаному вище, 4-байтове значення покажчика може бути записане у комірку пам'яті 8М-4 з використанням одиночної команди збереження. Безумовно, якщо 4-байтове значення покажчика записується у о комірку, що перетинає межу 4 байтів, наприклад, 4М-2, то всі чотири байти даних не можуть бути передані з ос процесора 102-1 з використанням одиночної команди збереження, і значення покажчика, резидентно розміщене у пам'яті 104, може бути недійсним протягом деякого періоду часу. е Система 100 також може містити постійний запам'ятовуючий пристрій (ПЗП) 106, або інші статичні о запам'ятовуючі пристрої, приєднані до шини 101 для зберігання статичної інформації та інструкцій для процесора 102-1. Для зберігання інформації та команд до шини 101 може бути приєднаний запам'ятовуючий пристрій 108, такий як магнітний або оптичний диск. Система 100 також може містити пристрій 110 відображення (наприклад, монітор на рідких кристалах СО (РДК)) і пристрій 112 введення даних (наприклад, клавіатуру, мишу, кульовий покажчик і т.д.), приєднані до шини 101. Система 100 може містити декілька мережнихSimilarly, a new 4-byte pointer value can be written to a memory address divisible by four (eg, 4M) using a single continuous operation. It should be noted that in the possible (ee) variant described above, a 4-byte pointer value can be written to memory location 8M-4 using a single save command. Of course, if a 4-byte pointer value is written to a cell that crosses the 4-byte boundary, such as 4M-2, then all four bytes of data cannot be transferred from processor axis 102-1 using a single save instruction, and the pointer value, resident in memory 104, may be invalid for some period of time. The system 100 may also include a non-volatile memory device (VRAM) 106, or other static memory devices connected to the bus 101 for storing static information and instructions for the processor 102-1. A storage device 108, such as a magnetic or optical disk, may be attached to the bus 101 to store information and commands. System 100 may also include a display device 110 (e.g., liquid crystal display (LCD)) and input device 112 (e.g., keyboard, mouse, ballpointer, etc.) connected to bus 101. System 100 may include several network

Ф, інтерфейсів 114-1...114-О, які можуть передавати і приймати електричні, електромагнітні або оптичні сигнали, ко що несуть потоки цифрових даних, які являють собою різні види інформації. У варіанті здійснення мережний інтерфейс 114-1 може бути приєднаний до шини 101 і до локальної мережі зв'язку ГАМ (ЛМ) 122, у той же час бо мережний інтерфейс 114-О може бути приєднаний до шини 101 і глобальної мережі зв'язку УМАМ (ГМ) 124.F, interfaces 114-1...114-O, which can transmit and receive electrical, electromagnetic or optical signals, which carry digital data streams, which represent various types of information. In an embodiment, the network interface 114-1 can be connected to the bus 101 and to the local area network of communication of GAM (LM) 122, while the network interface 114-O can be connected to the bus 101 and the global communication network of UMAM (GM) 124.

Декілька мережних інтерфейсів 114-1...114-0 можуть підтримувати різні мережні протоколи, включаючи, наприклад, Сідабії Е(Пегпеї (наприклад, ІЕЕЄ Стандарт 802.3-2002, виданий у 2002), Рірег Спаппеї! (наприклад,Several network interfaces 114-1...114-0 may support different network protocols, including, for example, Sidabia E(Pegpay (e.g. IEEE Standard 802.3-2002 issued in 2002), Rireg Spappei! (e.g.

АМЗ5І Стандарт Х.3230-1994, виданий у 1994) і т.д. До ЛМ 122 і ГМ 124 може бути приєднано декілька мережних комп'ютерів 120-1...120-М. В одному варіанті здійснення ЛМ 122 ії ГМ 124 можуть бути фізично окремими 65 мережами зв'язку, у той же час в іншому варіанті здійснення ЛМ 122 і ГМ 124 можуть бути з'єднані через мережний шлюз або маршрутизатор (для зручності не зображені). Як інший варіант, ЛМ 122 і ГМ 124 можуть бути однією і тією ж мережею.AMZ5I Standard Kh.3230-1994, issued in 1994), etc. Several network computers 120-1...120-M can be connected to LM 122 and GM 124. In one embodiment, LM 122 and GM 124 may be physically separate 65 communication networks, while in another embodiment, LM 122 and GM 124 may be connected through a network gateway or router (not shown for convenience). Alternatively, LM 122 and GM 124 may be the same network.

Як зазначено вище, система 100 може забезпечувати послуги розрізнення ОМ5 (служба імен доменів). У варіанті здійснення для розрізнення (процесу визначення адрес) ОМЗ послуги розрізнення ОМ в основномуAs mentioned above, the system 100 may provide OM5 (domain name service) resolution services. In the variant implementation, for distinguishing (the process of determining addresses) OMZ, distinguishing services of OM mainly

Можуть бути розділені між транспортуванням по мережі і функціями пошуку даних. Наприклад, система 100 може бути механізмом пошуку (ЦЕ) для сервера, оптимізованим для пошуку даних по великих наборах даних, у той же час множина мережних комп'ютерів 120-1...120-М може бути множиною механізмів протоколу (РЕ) клієнта, оптимізованих для обробки мережі зв'язку і транспортування. | ШЕ може бути потужним багатопроцесорним сервером, який зберігає у пам'яті 104 весь набір записів ОМ5, щоб сприяти високошвидкісному 7/0 високопродуктивному пошуку і оновленню. В іншому варіанті здійснення послуги розрізнення ОМ можуть забезпечуватися множиною потужних багатопроцесорних серверів, або множиною І ШОЕ, кожний з яких зберігає у пам'яті підмножину всього набору записів ОМ, щоб сприяти високошвидкісному високопродуктивному пошуку і оновленню.Can be split between network transport and data retrieval functions. For example, system 100 may be a search engine (SE) for a server optimized for searching data across large data sets, while a plurality of network computers 120-1...120-M may be a plurality of client protocol engines (PE) , optimized for communication and transportation network processing. | The SHE can be a powerful multiprocessor server that stores the entire OM5 record set in memory 104 to facilitate high-speed 7/0 high-performance searching and updating. In another embodiment, OM resolution services may be provided by a plurality of powerful multiprocessor servers, or a plurality of IESs, each of which stores a subset of the entire OM record set in memory to facilitate high-speed, high-performance retrieval and updating.

Навпаки, множина РЕ може бути звичайними вузькоспеціалізораними пристроями, які базуються на РС, що /5 Виконують ефективну багатозадачну операційну систему (наприклад, Кеа Наї МОХ 6.2), які мінімізують транспортне навантаження обробки мережі зв'язку на | ШЕ для максимізації доступних ресурсів для розрізненняIn contrast, the plurality of REs may be conventional highly specialized devices based on PCs that /5 Run an efficient multitasking operating system (eg, Kea Nai MOX 6.2) that minimize the transport processing load of the communication network by | SHE to maximize available resources for discrimination

ОМ. Пристрої РЕ можуть обробляти нюанси протоколу ОМ5 провідної лінії зв'язку, реагувати на недійсні запитиOHM. PE devices can process the nuances of the OM5 protocol of the main communication line, respond to invalid requests

РМЗ і мультиплексувати дійсні запити ОМЗ в (ШОЕ через ЛМ 122. В іншому варіанті здійснення, що містить множину ШЕ, які зберігають підмножини записів ОМ5, РЕ можуть визначати, який пристрій | ОЕ повинен 2о одержати кожний дійсним запит ОМ5, і мультиплексувати дійсні запити ОМ у відповідні І ШЕ. Кількість РЕ для одного (ШОЕ може визначатися, наприклад, кількістю запитів ОМ, яка повинна оброблятися за секунду, і робочими характеристиками конкретної системи. Для визначення співвідношень відповідності і режимів також можуть використовуватися інші показники.RMZ and multiplex valid OMZ requests to (SOE via LM 122. In another embodiment containing a plurality of OEs that store subsets of OM5 records, REs can determine which device | OE should 2o receive each valid OM5 request and multiplex valid OM requests in the corresponding IES. The number of PEs for one (ESE can be determined, for example, by the number of OM requests that must be processed per second, and the operating characteristics of a specific system. Other indicators can also be used to determine compliance ratios and modes.

У загальному випадку, можуть підтримуватися інші варіанти здійснення великого об'єму, що базуються на сч об Запитах, які включають, наприклад, розрізнення номерів телефонів, обробку сигналізації 557, визначення для встановлення відповідності номера телефону з абонентом, визначення місцеположення і присутності абонента і і) т.д.In general, other high-volume implementations based on Queries may be supported, including, for example, telephone number resolution, 557 signaling processing, determination to match a telephone number to a subscriber, determination of subscriber location and presence, and ) etc.

У варіанті здійснення центральний сервер 140-1 оперативної обробки транзакцій (ОЇ ТР) може бути приєднаний до ГМ 124 і одержувати з різних джерел додатки, зміни і видалення (тобто, трафік оновлення) для о зо бази даних 142-1. ОЇ ТР сервер 140-1 може передавати оновлення через ГМ 124 у систему 100, яка містить локальну копію бази даних 142-1. ОЇ ТР сервер 140-1 може бути оптимізований для обробки трафіку оновлення у - різних форматах і протоколах, включаючи, наприклад, Протокол Передачі Гіпертекстових файлів (НТТР), юIn an embodiment, the central server 140-1 of operational transaction processing (OIT TR) can be connected to the GM 124 and receive from various sources applications, changes and deletions (ie, update traffic) for the database 142-1. ОИ TR server 140-1 can transmit updates through GM 124 to system 100, which contains a local copy of database 142-1. ОИ TR server 140-1 can be optimized to process update traffic in - various formats and protocols, including, for example, Hypertext File Transfer Protocol (HTTP),

Протокол Реєстратора Запису (ККР), Нарощуваний Протокол |Ініціалізації (ЕРР), Систему КеруванняRecording Recorder Protocol (RCP), Extended Initialization Protocol (ERP), Management System

Службами/Механізований Загальний Інтерфейс (МО) 800, та інші оперативні протоколи ініціалізації. Сукупність оServices/Mechanized Common Interface (MO) 800, and other operational initialization protocols. The totality of

ІОЕ тільки для читання може бути розгорнена в архітектурі типу концентратора і спиці (лінії, що йде від со центра до периферії) для забезпечення можливості високошвидкісного пошуку, що супроводжується об'ємними додатковими оновленнями з ОЇ ТР сервера 140-1.A read-only IOE can be deployed in a hub-and-spoke architecture (a line running from the co-center to the periphery) to provide high-speed search capabilities accompanied by voluminous incremental updates from the 140-1 server's OI TR.

В альтернативному варіанті здійснення дані можуть бути розподілені по декількох ОЇТР серверах 140-1...140-5, кожний з яких може бути приєднаний до ГМ 124. ОЇ ТР сервера 140-1...140-5 можуть одержувати з « різних джерел додатки, зміни і видалення (тобто, трафік оновлення) для баз даних, що відповідають їм, з с 142-1...142-5 (не зображені для зручності). ОЇ ТР сервера 140-1...140-5 можуть передавати оновлення через ГМ 124 у систему 100, яка може містити копії баз даних 142-1...142-5, інші дані, що динамічно створюються, і ;» т.д. Наприклад, у варіанті здійснення для геолокації, ОЇ ТР сервера 140-1...140-5 можуть одержувати трафік оновлення з груп віддалених датчиків. В іншому альтернативному варіанті здійснення множина мережних комп'ютерів 120-1...120-М також може одержувати через ГМ 124 або ЛМ 122 додатки, зміни і видалення (тобто,In an alternative embodiment, the data can be distributed over several OITR servers 140-1...140-5, each of which can be connected to the GM 124. OI TR servers 140-1...140-5 can receive from different sources additions, changes, and deletions (ie, update traffic) for the databases corresponding to them, from p 142-1...142-5 (not shown for convenience). The TR servers 140-1...140-5 can transmit updates through the GM 124 to the system 100, which can contain copies of the databases 142-1...142-5, other dynamically created data, and etc. For example, in an embodiment for geolocation, the TR servers 140-1...140-5 can receive update traffic from groups of remote sensors. In another alternative embodiment, a plurality of network computers 120-1...120-M can also receive through GM 124 or LM 122 applications, changes and deletions (ie,

Го! трафік оновлення) з різних джерел. У цьому варіанті здійснення множина мережних комп'ютерів 120-1...120-М може передавати у систему 100 оновлення, а також запити. о У варіанті здійснення система 100 може містити віддалену базу даних (наприклад, віддалена база даних с 210). З ОЇ ТР сервера 140-1 через ГМ 124, наприклад, може бути одержана нова інформація, або трафік 5р оновлення. У варіанті здійснення нова інформація може містити зміни, щонайменше, одного елемента, який існує ве у віддаленій базі даних. Система 100 на основі нової інформації, одержаної через мережу зв'язку, може о створити новий елемент віддаленої бази даних, і без обмеження доступу до віддаленої бази даних для пошуку, записати у віддалену базу даних покажчик на новий елемент з використанням одиночної безперервної операції, наприклад, такої як інструкція збереження. У варіанті здійснення, процесор 102-1 може містити розмір слова, щонайменше, у п-байтів, пам'ять 104 може мати розрядність, щонайменше, у п-байтів, та інструкція збереження може записувати п-байтів у віддалену адресу пам'яті, розміщену на межі п-байтів. В іншому варіанті здійснення (Ф) система 100 може фізично видалити з пам'яті 104 існуючий елемент, що відповідає новому елементу, після ка запису покажчика у віддаленій базі даних.Go! update traffic) from various sources. In this embodiment, a plurality of network computers 120-1...120-M may transmit updates as well as requests to the system 100. o In an embodiment, system 100 may include a remote database (for example, remote database c 210). For example, new information or 5-year update traffic can be received from the TR server 140-1 through GM 124. In an embodiment, the new information may contain changes to at least one element that already exists in the remote database. The system 100, based on new information received via the communication network, can o create a new element of the remote database, and without restricting access to the remote database for searching, write a pointer to the new element in the remote database using a single continuous operation, e.g. , such as a save instruction. In an embodiment, the processor 102-1 may have a word size of at least n bytes, the memory 104 may have a bit size of at least n bytes, and the save instruction may write n bytes to a remote memory address, placed on the n-byte boundary. In another embodiment (F), the system 100 may physically delete from the memory 104 the existing element corresponding to the new element after writing a pointer to the remote database.

У варіанті здійснення розрізнення ЮОМ5 кожний РЕ (наприклад, кожний з декількох мережних комп'ютерів во 120-1...120-М) може комбінувати, або мультиплексувати, декілька повідомлень запитів ОМ5, одержаних через глобальну мережу зв'язку (наприклад, ГМ 124), в одиночний СуперПакет Запиту і передавати СуперПакет Запиту через локальну мережу зв'язку (наприклад, ЛМ 122) в ШЕ (наприклад, систему 100). | ОЕ може комбінувати, або мультиплексувати, декілька відповідей на повідомлення-запити ЮОМ5 в одиночний СуперПакет Відповіді і передавати СуперПакет Відповіді через локальну мережу зв'язку у відповідний РЕ. В основному, максимальний 65 розмір СуперПакета Відповіді або Запиту може бути обмежений максимальним блоком передачі (МТ) фізичного мережного рівня (наприклад, Сідабії Е(Пегпе). Наприклад, стандартні розміри повідомлення запиту і відповіді ОМ5, що не перевищують 100 байтів і 200 байтів, відповідно, дозволяють мультиплексувати більше 30 запитів в одиночний СуперПакет Запиту, а також мультиплексувати більше 15 відповідей в одиночнийIn an embodiment of UOM5 discrimination, each RE (for example, each of several network computers in 120-1...120-M) can combine, or multiplex, several OM5 request messages received through a global communication network (for example, GM 124), into a single Request SuperPacket and transmit the Request SuperPacket through a local communication network (for example, LM 122) to the SHE (for example, system 100). | The UE can combine, or multiplex, several responses to UOM5 request messages into a single SuperPacket of Responses and transmit the SuperPacket of Responses through the local communication network to the corresponding PE. Basically, the maximum 65 size of a Reply or Request SuperPacket can be limited by the maximum transmission unit (MT) of the physical network layer (for example, Sidabia E(Pegpe). For example, the standard sizes of the OM5 request and response message, which do not exceed 100 bytes and 200 bytes, respectively, allow multiplexing more than 30 requests into a single Request SuperPacket, as well as multiplexing more than 15 responses into a single

СуперПакет Відповіді. Однак, в одиночний СуперПакет Запиту може бути включена менша кількість запитів (наприклад, 20 запитів), щоб при формуванні відповіді уникнути переповнення МТИ (наприклад, у 10 відповідей).SuperPacket of Answers. However, a smaller number of requests (for example, 20 requests) can be included in a single SuperPacket of a Request in order to avoid overflowing the MTI (for example, 10 responses) when forming a response.

Для МТ більшого розміру кількість мультиплексованих запитів і відповідей, відповідно, може бути збільшена.For larger MTs, the number of multiplexed requests and responses can be increased, respectively.

Кожний багатозадачний РЕ може мати вхідний потік і вихідний потік для керування запитами і відповідями р, відповідно. Наприклад, вхідний потік може демаршалінгувати (розпаковувати) компоненти запиту ОМ5 з вхідних; пакетів запитів ЮОМ5, одержаних Через глобальну мережу зв'язку, і мультиплексувати декілька 7/о Мілісекунд запитів в одиночний СуперПакет Запиту. Потім вхідний потік може передавати СуперПакет Запиту через локальну мережу зв'язку в | ШЕ. Навпаки, вихідний потік може одержувати СуперПакет Відповіді з І ОЕ, демультиплексувати відповіді, що містяться в ньому, і маршалінгувати (упаковувати у стандартний формат) різні поля у дійсну відповідь ОМ, яка потім може бути передана через глобальну мережу зв'язку. В основному, як зазначено вище, можуть підтримуватися інші варіанти здійснення великого об'єму, що базуються на запитах.Each multitasking PE can have an input stream and an output stream to handle p requests and responses, respectively. For example, the input stream can demarshal (unpack) the components of the OM5 request from the input; packets of UOM5 requests received through the global communication network, and multiplex several 7/o Millisecond requests into a single Request SuperPacket. The incoming stream can then transmit the Request SuperPacket over the LAN to | SHE. In contrast, the source stream can receive a SuperPacket of Responses from the IO, demultiplex the responses contained therein, and marshal (package into a standard format) the various fields into a valid OM response, which can then be transmitted over a global communications network. Basically, as mentioned above, other high-volume implementation options based on requests can be supported.

У варіанті здійснення СуперПакет Запиту може також містити інформацію про стан, яка відповідає кожному запиту ОМ5, наприклад, таку як вихідна адреса, вид протоколу і т.д. | ОЕ може включати у СуперПакет Відповіді інформацію про стан і відповідні відповіді ОМ. Потім кожний РЕ може формувати і повертати повідомлення дійсних відповідей ОМ5 з використанням інформації, переданої з (ШЕ. Отже, кожний РЕ може, переважно, функціонувати як пристрій, що не змінює свого стану у процесі виконання, тобто, дійсні відповіді ОМ5 можуть бути сформовані з інформації, що міститься у СуперПакеті Відповіді. В основному, (ШЕ може повертатиIn an embodiment, the Request SuperPacket may also contain status information corresponding to each OM5 request, such as source address, protocol type, etc. | The OE can include information about the status and corresponding answers of the OM in the SuperPacket of Answers. Each RE can then form and return valid OM5 response messages using the information transmitted from (SHE. Therefore, each RE can preferably function as a device that does not change its state during execution, i.e., valid OM5 responses can be formed from information contained in the Answer SuperPacket. Basically, (SHE can return

СуперПакет Відповіді в РЕ, з якого виходив вхідний СуперПакет, однак, очевидні інші можливі варіанти.SuperPacket Responses in the RE from which the incoming SuperPacket originated, however, other possible options are obvious.

В альтернативному варіанті здійснення кожний РЕ може підтримувати інформацію про стан, яка відповідає кожному запиту ОМ, і включати у СуперПакет Запиту посилання, або дескриптор, на інформацію про стан. І ОЄЕ може включати у СуперПакет Відповіді посилання на інформацію про стан і відповідні відповіді ОМ. Потім сч кожний РЕ може формувати і повертати повідомлення дійсних відповідей ОМ5 з використанням посилань на інформацію про стан, переданих з ШОЕ, а також підтримуваної ним інформації про стан. У цьому варіанті і) здійснення | ШЕ може повертати СуперПакет Відповіді в РЕ, з якого виходив вхідний СуперПакет.In an alternative embodiment, each RE may maintain state information corresponding to each OM request and include a reference, or descriptor, to the state information in the Request SuperPacket. And the OEE may include in the Answers SuperPacket a link to information about the status and corresponding answers of the OM. Each RE can then form and return valid OM5 response messages using the state information links transmitted from the ESR as well as state information supported by it. In this version i) implementation | The SHE can return the Reply SuperPacket to the RE from which the incoming SuperPacket originated.

На Фіг.2 представлена структурна схема архітектури тину концентратора і спиць (зіркоподібної топології) відповідно до варіанту здійснення даного винаходу. В основному, система може містити локальну базу даних 200 о зо (яка може знаходитися у центральному ОГТР концентраторі 140) і одну або більшу кількість віддалених баз даних 210 (які можуть знаходитися у пристроях І ШЕ 100), з'єднаних з локальною базою даних 200 за допомогою « будь-якого механізму з'єднання, наприклад, Інтернету або ЛМ 122. Бази даних можуть передавати і одержувати ю дані оновлення.Figure 2 shows a structural diagram of the architecture of the hub and spokes (star-shaped topology) according to an embodiment of the present invention. Basically, the system may include a local database 200 (which may be located in the central OGTR hub 140) and one or more remote databases 210 (which may be located in the IES devices 100) connected to the local database 200 using any connection mechanism, for example, the Internet or LM 122. Databases can transmit and receive update data.

Відповідно до Фіг.3, у варіантах здійснення даного винаходу локальна база даних 200 передає у віддалену о базу даних 210 Р файлів 300-1...300-Е відправки та файл ініціалізації 310 відправки для оновлення віддаленої со бази даних 210. Файли оновлення можуть передаватися індивідуально або у пакетах, наприклад, множина файлів 300 відправки, один файл 300 відправки і один файл ініціалізації 310 відправки, множина файлів 300 відправки і один файл ініціалізації 310 відправки, одиночний файл 300 відправки, або одиночний файл ініціалізації 310 відправки. «According to Fig. 3, in embodiments of the present invention, the local database 200 transmits to the remote database 210 P files 300-1...300-E of the shipment and the initialization file 310 of the shipment to update the remote database 210. The update files can be transmitted individually or in batches, such as multiple 300 send files, one 300 send file and one 310 send initialization file, multiple 300 send files and one 310 send initialization file, a single 300 send file, or a single 310 send initialization file. "

У варіанті здійснення даного винаходу процесор 104 може одержувати з локальної бази даних 200 файл 300 пт») с відправки і/або файл ініціалізації 310 відправки, що містить дані оновлення. Система 150 може одержувати файлIn an embodiment of the present invention, the processor 104 can receive from the local database 200 the file 300 pt") of the shipment and/or the initialization file 310 of the shipment containing update data. The system 150 can receive the file

З00 відправки та файл ініціалізації 310 відправки у віддаленій базі даних 210 через інтерфейс 118 зв'язку. ;» Потім процесор 104 може порівняти дані оновлення у файлі З00 відправки або в файлі ініціалізації 310 відправки з відповідними даними у віддаленій базі даних 210. Якщо у віддаленій базі даних 210 дані інші, то процесор 104 може застосувати файл 300 відправки або файл ініціалізації 310 відправки до віддаленої базиZ00 sending and initialization file 310 sending in the remote database 210 through the communication interface 118. ;" The processor 104 can then compare the update data in the dispatch file 300 or the dispatch initialization file 310 with the corresponding data in the remote database 210. If the data in the remote database 210 is different, then the processor 104 can apply the dispatch file 300 or the dispatch initialization file 310 to the remote base

Го! даних 210. Відповідно, згодом віддалена база даних 210 може бути оновлена даними, що відповідають даним оновлення у локальній базі даних 200. о Фіг.А4 ілюструє файл 300 відправки, відповідно до варіанту здійснення даного винаходу. Поля файлу 300 с можуть включати в себе, наприклад, ідентифікатор 400 файлу, час 402 формування файлу, кількість 404 транзакцій М у файлі, повний розмір 406 файлу, контрольну суму 408 або будь-який подібний індикатор контролю ве помилок і транзакції 410-1...410-М (що містять ідентифікатори транзакцій). Вказані поля файлу відправки є о можливими варіантами, призначеними для ілюстрації, але не для обмеження контексту варіантів здійснення даного винаходу. У файл 300 відправки може бути включене будь-яке поле, яке може бути корисним.Go! data 210. Accordingly, the remote database 210 can subsequently be updated with data corresponding to the update data in the local database 200. o Fig.A4 illustrates the file 300 of the shipment, according to an embodiment of the present invention. The fields of the file 300 s may include, for example, the identifier 400 of the file, the time 402 of the formation of the file, the number 404 of transactions M in the file, the full size 406 of the file, the checksum 408, or any similar indicator of control of errors and transactions 410-1. ..410-M (containing transaction identifiers). The indicated fields of the sending file are possible variants intended to illustrate, but not to limit the context of the embodiments of the present invention. Any field that may be useful may be included in the send file 300 .

Файл 300 відправки містить зміни у локальній базі даних 200 між двома моментами часу. Ці зміни можуть ов Включати в себе, наприклад, додавання нових ідентифікаторів (тобто, ідентифікаторів записів даних), видалення існуючих ідентифікаторів, зміни одного або більшої кількості записів даних, що відповідають ідентифікатору,The sending file 300 contains the changes in the local database 200 between the two points in time. These changes may include, for example, adding new identifiers (ie, data record identifiers), deleting existing identifiers, changing one or more data records corresponding to the identifier,

Ф) перейменування ідентифікатора, холосту команду і т.д. Одна або більша кількість вказаних змін може ка здійснюватися послідовно і може називатися транзакціями. Файл 300 відправки може містити унікальні ідентифікатори даних транзакцій. Транзакції можуть бути записані у файлі З00О відправки у тому порядку, в бо якому вони здійснені у локальній базі даних 200. Додатково, для транзакцій, що містять більше однієї зміни, зміни можуть бути записані всередині транзакції у тому порядку, в якому вони здійснені у локальній базі даних 200.F) renaming the identifier, empty command, etc. One or more of these changes can be made sequentially and can be called transactions. The shipment file 300 may contain unique identifiers of the transaction data. Transactions may be recorded in the dispatch file in the order in which they are committed in the local database 200. Additionally, for transactions containing more than one change, the changes may be committed within the transaction in the order in which they are committed in the local database 200 database 200.

В основному, ідентифікатори транзакцій можуть призначатися транзакціям у випадковому порядку. Тобто, ідентифікатори транзакцій не обов'язково монотонно зростають у часі. Наприклад, дві послідовні транзакції б5 Можуть мати ідентифікатори транзакцій 10004 і наступний за ним 10002. Відповідно, черговість здійснення транзакції може бути визначена її розміщенням у поточному файлі 300-Е або її розміщенням у попередньому файлі 300-(Е-1). В основному, для повного завершення оновлення віддаленої бази даних із застосуванням одноп файлу відправки, транзакції не можуть охоплювати сусідні файли 300. Це запобігає перериванню оновлення через мережну затримку, яка може привести до помилкових даних у віддаленій базі даних 210.Basically, transaction identifiers can be randomly assigned to transactions. That is, transaction identifiers do not necessarily grow monotonically over time. For example, two consecutive transactions b5 may have transaction identifiers 10004 and the next one 10002. Accordingly, the order of execution of a transaction can be determined by its placement in the current file 300-E or its placement in the previous file 300-(E-1). Basically, for a remote database update to be fully completed using a single push file, transactions cannot span adjacent files 300. This prevents the update from being interrupted due to network latency, which could result in erroneous data in the remote database 210.

Фіг.5 ілюструє файл ініціалізації 310 відправки, відповідно до варіанту здійснення даного винаходу. Поля файлу ініціалізації 310 відправки можуть включати в себе, наприклад, ідентифікатор 500 файлу, час 502 формування файлу, кількість 504 транзакцій М у файлі, повний розмір 506 файлу, контрольну суму 508 або будь-який подібний індикатор контролю помилок і копію 516 (даних) повної локальної бази даних. Файл ініціалізації 310 відправки може додатково містити поле 510, що є ідентифікатором 400 файлу останнього файлу 70 300 відправки, сформованого до формування файлу 310, і поле 512, що є ідентифікатором останньої транзакції, фіксованої у локальній базі даних 200 до формуванні файлу ініціалізації 310 відправки. Дані у локальній і віддаленій базах даних 200, 210 можуть бути розподілені по таблицях, що резидентно зберігаються у базах даних 200, 210. Бази даних 200, 210 можуть підтримувати довільну кількість таблиць. Отже, коли база даних має таблиці, файл ініціалізації 310 відправки може містити для кожної таблиці поле, яке вказує кількість записів, зроблених у таблиці. Наприклад, база даних імен доменів може містити таблицю доменів і таблицю серверів доменних імен. Отже, файл ініціалізації відправки може містити поле, яке вказує кількість записів у таблиці доменів і поле, яке вказує кількість записів у таблиці серверів доменних імен. Поле може визначати, наприклад, ім'я таблиці, ключ, що використовується для індексування записів у таблиці, і кількість записів у таблиці. Додатково, файл ініціалізації 310 відправки може містити поле, яке вказує версію файлу ініціалізаціїFig.5 illustrates the initialization file 310 of the shipment, according to an embodiment of the present invention. Fields of the send initialization file 310 may include, for example, a file identifier 500 , a file creation time 502 , a number 504 of M transactions in the file, a full file size 506 , a checksum 508 or any similar error control indicator, and a copy 516 (data) full local database. The initialization file 310 of the shipment may additionally contain field 510, which is the identifier 400 of the file of the last file 70 300 of the shipment, formed before the formation of the file 310, and field 512, which is the identifier of the last transaction fixed in the local database 200 before the formation of the initialization file 310 of the shipment. Data in the local and remote databases 200, 210 can be distributed across tables resident in the databases 200, 210. The databases 200, 210 can support any number of tables. Thus, when the database has tables, the initialization file 310 of the shipment may contain, for each table, a field that indicates the number of entries made to the table. For example, a domain name database might contain a table of domains and a table of domain name servers. Therefore, the send initialization file may contain a field that indicates the number of entries in the domain table and a field that indicates the number of entries in the domain name server table. The field can specify, for example, the name of the table, the key used to index the records in the table, and the number of records in the table. Additionally, the initialization file 310 of the shipment may include a field that indicates the version of the initialization file

З10 відправки, звичайно 1.0. Вказані поля файлу ініціалізації відправки є можливими варіантами, призначеними для ілюстрації, але не обмеження, контексту варіантів здійснення даного винаходу. В файл ініціалізації 310 відправки може бути включене будь-яке поле, яке може бути корисним.From 10 shipments, of course 1.0. The indicated fields of the send initialization file are possible variants intended to illustrate, but not limit, the context of the embodiments of the present invention. Any field that may be useful may be included in the initialization file 310 of the shipment.

Як зазначено вище, файл ініціалізації 310 відправки може містити, наприклад, копію повної локальної бази даних 200, уніфіковану за зчитуванням даних. Файл ініціалізації 310 відправки може стати уніфікованим з сч ов локальною базою даних 200 у момент часу ї між ів і Є, де із є часом початку формування файлу ініціалізації 310 відправки, а її є часом завершення формування. По суті, єдиною операцією, яка може з'явитися в файлі і) ініціалізації 310 відправки, є операція "додавання" Тобто, при формуванні файлу ініціалізації 310 відправки в нього можуть бути записані копії повної локальної бази даних 200 у момент часу Її. Отже, для запису локальної бази даних 200 в файл ініціалізації 310 відправки може бути виконана операція "додавання". Ідентифікатори о зо Можуть бути записані в файл ініціалізації 310 відправки у випадковому порядку. В іншому варіанті, за наявності зовнішніх ідентифікаторів, записи даних, на які є посилання, можуть бути записані до запису даних, « що має посилання. юAs indicated above, the initialization file 310 of the shipment may contain, for example, a copy of the complete local database 200, unified by reading the data. The initialization file 310 of the shipment can become unified with the local database 200 at a time between iv and E, where iz is the start time of the formation of the initialization file 310 of the shipment, and it is the time of completion of the formation. In fact, the only operation that can appear in the file i) initialization 310 of sending is the "adding" operation. That is, when creating the file of initialization 310 of sending, copies of the complete local database 200 at the moment of its time can be written into it. Therefore, an "add" operation can be performed to write the local database 200 to the initialization file 310 of the shipment. IDs about zo Can be written to the initialization file 310 of the shipment in a random order. Alternatively, in the presence of external identifiers, the referenced data records may be written to the referenced data record. yu

Додавання полів 510 і 512 може забезпечувати файл ініціалізації 310 відправки деякою інформацією про файли 300 відправки, які можуть бути сформовані і передані у віддалену базу даних 210 під час формування о файлу ініціалізації 310 відправки. Однак, формування файлу 300 відправки і формування файлу ініціалізації 310 со відправки можуть бути не пов'язані один з одним відносно відсутності залежності між ними при формуванні. Така структура і процес можуть запобігти менш ефективному підходу, при якому формування і застосуванні файлу відправки може бути припинене до завершення формування файлу ініціалізації відправки. При продовженні формування і застосування файлів 300 відправки під час формування файлу ініціалізації 310 відправки, як у « варіанті здійснення даного винаходу, може здійснюватися суворий контроль помилок файлів З00 відправки, а з с також накладення обмежень на віддалену базу даних 210, наприклад, можуть бути зроблені обмеження відносно однозначності або обмеження на зовнішні ідентифікатори. Накладення обмежень може захищати цілісність ;» даних у віддаленій базі даних 210 за допомогою відхилення транзакцій, що порушують реляційні моделі віддаленої бази даних 210. Наприклад, обмеження відносно однозначності може перешкоджати повторному збереженню у базі даних 210 одного і того ж ключа.The addition of fields 510 and 512 can provide the initialization file 310 of the shipment with some information about the files 300 of the shipment that can be generated and transferred to the remote database 210 during the generation of the initialization file 310 of the shipment. However, the formation of the file 300 of the shipment and the formation of the initialization file 310 of the shipment may not be related to each other due to the lack of dependence between them during formation. Such a structure and process can prevent a less efficient approach in which the generation and application of the dispatch file may be terminated before the completion of the formation of the dispatch initialization file. When continuing the formation and application of the shipment files 300 during the formation of the shipment initialization file 310, as in the embodiment of the present invention, a strict error control of the shipment files З00 can be carried out, and also restrictions on the remote database 210, for example, can be made restrictions on uniqueness or restrictions on external identifiers. The imposition of restrictions can protect the integrity;" data in the remote database 210 by rejecting transactions that violate the relational model of the remote database 210. For example, a constraint on uniqueness may prevent the same key from being stored repeatedly in the database 210.

Го! На Фіг.б6 представлена часова діаграма, що ілюструє формування файлу відправки та файлу ініціалізації відправки, відповідно до варіанту здійснення даного винаходу. Згідно з Фіг.б, файли 300 відправки (з 81-1 по о 8-21) формуються з регулярними інтервалами часу. В альтернативному варіанті здійснення файли 300 відправки с можуть формуватися з нерегулярними інтервалами часу. У загальному випадку, формування файлу відправки 5о не займає інтервал часу повністю. Наприклад, якщо файли формуються у 5-хвилинні інтервали часу, то для ве завершення формування файлу не потрібно повністю 5 хвилин. Додатково, якщо у локальній базі даних 200 о проводяться зміни під час формування файлу З00 відправки, то дані зміни будуть зібрані у наступному файлі 300 відправки. Наприклад, якщо формування файлу відправки 1-4 починається о 12:05:00 і завершується о 12:05:02, то будь-які зміни у локальній базі даних 200, здійснені між 12:05:00 і 12:05:02, збираються у файл відправки дв 8-5 (наприклад, З00-5), який охоплює інтервал часу з 12:05:00 до 12:10:00.Go! Fig. b6 presents a timing diagram illustrating the formation of a sending file and a sending initialization file, according to an embodiment of the present invention. According to Fig. b, files 300 of sending (from 81-1 to 8-21) are formed at regular time intervals. In an alternative embodiment, the files 300 send with may be generated at irregular time intervals. In the general case, the formation of the sending file 5o does not occupy the time interval completely. For example, if the files are generated in 5-minute time intervals, then it does not take all of 5 minutes to complete the file generation. In addition, if changes are made in the local database 200 o during the formation of the file Z00 of the shipment, then these changes will be collected in the next file 300 of the shipment. For example, if the generation of shipment file 1-4 starts at 12:05:00 and ends at 12:05:02, then any changes to local database 200 made between 12:05:00 and 12:05:02 are collected in the file sending dv 8-5 (for example, З00-5), which covers the time interval from 12:05:00 to 12:10:00.

Фігб ілюструє файли 300-5 і 300-19 відправки. У вказаних файлах, серед інших полів, зображеніFig. 1 illustrates the 300-5 and 300-19 shipment files. In the specified files, among other fields, are depicted

Ф) ідентифікатор 601 файлу (51-5, 8і-19), час 603 формування файлу, та ідентифікатори 605 транзакцій (наприклад, ка 10002). Потрібно зазначити, що ідентифікатори транзакцій можуть бути не впорядкованими монотонно. Як згадано вище, ідентифікатори транзакцій можуть мати довільні значення. Однак, безпосередньо відповідні бо транзакції записані у файл 300 відправки у порядку, в якому вони здійснені у локальній базі даних 200.F) identifier 601 of the file (51-5, 8i-19), time 603 of file formation, and identifiers 605 of transactions (for example, ka 10002). It should be noted that transaction identifiers may not be monotonically ordered. As mentioned above, transaction identifiers can have arbitrary values. However, directly relevant transactions are recorded in the file 300 of the shipment in the order in which they are carried out in the local database 200.

Оскільки формування файлу ініціалізації 310 відправки і формуванню файлу 300 відправки можуть бути не пов'язані, то файл ініціалізації 310 відправки може формуватися у будь-який момент часу. Наприклад, файл ініціалізації 310 відправки може формуватися до, протягом або після формування файлу 300 відправки. Фіг.б ілюструє файл ініціалізації 310 відправки, що формується у проміжок часу між формуванням четвертого і п'ятого 65 файлів відправки (наприклад, 1-4 і 8-5).Since the formation of the initialization file 310 of the shipment and the formation of the file 300 of the shipment may not be related, the initialization file 310 of the shipment may be formed at any time. For example, the initialization file 310 of the shipment may be formed before, during, or after the formation of the file 300 of the shipment. Fig. b illustrates the initialization file 310 of the shipment, which is formed in the time interval between the formation of the fourth and fifth 65 files of the shipment (for example, 1-4 and 8-5).

У варіанті здійснення файл ініціалізації 310 відправки може, серед інших полів, містити ідентифікатор 610 файлу (іві-І), ідентифікатор 615 файлу для останнього файлу відправки, сформованого перед формуванням файлу ініціалізації відправки, та ідентифікатор 620 транзакції для останньої транзакції, завершеної перед формуванням файлу ініціалізації відправки. У даному можливому варіанті останнім сформованим файлом відправки є файл відправки 5/-4, а останньою завершеною транзакцією є транзакція 10001. Формування файлу ініціалізації 310 відправки починається 611 о 12:07:29. Коли починається формування файлу ініціалізації 310 відправки, перша половина транзакцій у файлі 300-5 відправки (1-5), транзакції 10002, 10005 і 10001 були вже завершені у локальній базі даних 200. Відповідно, файл ініціалізації 310 відправки може мати інформацію про ці транзакції і може зібрати ці транзакції в файлі ініціалізації 310 відправки. Однак, файл ініціалізації 310 7/0 Відправки не може мати інформації про подальші транзакції 10003 ї 10004, які здійснюються після початку формування файлу ініціалізації відправки.In an embodiment, the send initialization file 310 may include, among other fields, a file identifier (iv-I) 610 , a file identifier 615 for the last send file generated before the send initialization file was generated, and a transaction identifier 620 for the last transaction completed before the file was generated sending initialization. In this possible embodiment, the last generated shipment file is shipment file 5/-4, and the last completed transaction is transaction 10001. The generation of the initialization file 310 of shipment begins 611 at 12:07:29. When the generation of the shipment initialization file 310 begins, the first half of the transactions in the shipment file 300-5 (1-5), transactions 10002, 10005, and 10001 have already been completed in the local database 200. Accordingly, the shipment initialization file 310 may have information about these transactions and may collect these transactions in the send initialization file 310 . However, the initialization file 310 7/0 of the Dispatch cannot have information about subsequent transactions 10003 and 10004 that are carried out after the initialization file of the shipment begins.

При формуванні файлу ініціалізації 310 відправки файли відправки, починаючи з файлу 300-5 відправки, можуть продовжувати формуватися з регулярними інтервалами часу. Дані файли можуть передаватися віддаленій базі даних 210 і застосовуватися.When forming the initialization file 310 of the shipment, the files of the shipment, starting with the file 300-5 of the shipment, may continue to be formed at regular time intervals. These files can be transferred to the remote database 210 and applied.

Формування файлу ініціалізації 310 відправки може бути завершене о 1:15:29, у проміжку часу між формуванням 18-го і 19-го файлів З00 відправки (51-18 і 81-19), ії не може впливати на формування 19-го файлу 300-19 відправки.The formation of the initialization file 310 of the shipment can be completed at 1:15:29, in the time interval between the formation of the 18th and 19th files Z00 of the shipment (51-18 and 81-19), it cannot affect the formation of the 19th file 300-19 dispatches.

Після одержання і завантаження у віддаленій базі даних 210 файлу ініціалізації 310 відправки віддалена база даних 210 може не враховувати файли відправки сформовані до формування файлу ініціалізації 310 2о Відправки. Це можливо, наприклад, внаслідок того, що файл ініціалізації 310 відправки містить всі зміни у локальній базі даних 200, які були записані у попередні файли 300 відправки. У цьому можливому варіанті віддаленій базі даних 210 може не бути потрібно враховувати файли відправки з першого по четвертий (з 51-1 по 8-4). Зміни, записані у даних файлах відправки, з 5-1 по 51-4, також можуть бути записані в файлі ініціалізації 310 відправки. Вказані попередні файли відправки (з 51-1 по 51-4)д можуть бути видалені або, в сч ов іншому варіанті, заархівовані.After receiving and loading in the remote database 210 the initialization file 310 of the shipment, the remote database 210 may not take into account the shipment files formed before the formation of the initialization file 310 2o Shipments. This is possible, for example, due to the fact that the initialization file 310 of the shipment contains all changes in the local database 200 that were written to the previous files 300 of the shipment. In this possible embodiment, the remote database 210 may not need to consider the first through fourth shipment files (51-1 through 8-4). The changes recorded in these shipment files 5-1 to 51-4 may also be recorded in the shipment initialization file 310. The specified previous sending files (from 51-1 to 51-4) can be deleted or, in another version, archived.

Аналогічно, віддалена база даних 210 може не враховувати транзакції, завершені до формування файлу і) ініціалізації 310 відправки, які були включені у файл 300 відправки, сформований згодом. Дані транзакції можуть бути включені в файл ініціалізації 310 відправки при його формуванні. Наприклад, тому віддаленій базі даних 210 може не бути потрібно враховувати перші три транзакції 10002, 10005, 10001 з файлу відправки в1/-5. о зо Дані транзакції, записані у файл відправки з51-5, можуть також бути записані в файл |ініціалізацій 310 відправки. Дані завершені транзакції можуть бути видалені, або в іншому варіанті, заархівовані. -Similarly, the remote database 210 may not consider transactions completed prior to the formation of the file i) the initialization 310 of the shipment, which were included in the file 300 of the shipment formed subsequently. Transaction data may be included in the initialization file 310 of the shipment when it is generated. For example, therefore, the remote database 210 may not need to consider the first three transactions 10002, 10005, 10001 from the send file v1/-5. Transaction data recorded in the sending file z51-5 can also be written in the initialization file 310 of sending. These completed transactions may be deleted, or alternatively, archived. -

На Фіг.7 представлена блок-схема варіанту здійснення даного винаходу, в якому можуть бути сформовані ю файли оновлення локальної бази даних. Система може формувати (705) декілька періодичних оновлень, що базуються на додаткових змінах у локальній базі даних. Кожне оновлення може містити одну або більшу кількість о транзакцій. Потім система може передати (710) періодичні оновлення у віддалену базу даних. При формуванні со періодичних оновлень, система може почати формувати (715) оновлення ініціалізації у момент часу запуску.Figure 7 shows a block diagram of an embodiment of the present invention, in which local database update files can be created. The system may generate (705) several periodic updates based on additional changes in the local database. Each update can contain one or more transactions. The system may then transmit (710) periodic updates to the remote database. When generating periodic updates, the system may start generating (715) initialization updates at startup time.

Оновлення ініціалізації може містити версію повної локальної бази даних. Система може визначити (720) останнє періодичне оновлення, сформоване до моменту часу запуску, і останню транзакцію, завершену до моменту часу запуску. Потім система може передати (725) оновлення ініціалізації у віддалену базу даних. Оновлення « ініціалізації може містити ідентифікатор оновлення, що відповідає останньому сформованому періодичному з с оновленню, та ідентифікатор транзакції, що відповідає останній завершеній транзакції.The initialization update may contain a version of the full local database. The system may determine (720) the last periodic update generated prior to the trigger time and the last transaction completed prior to the trigger time. The system may then transmit (725) the initialization update to the remote database. An initialization update may contain an update ID corresponding to the last generated periodic update and a transaction ID corresponding to the last completed transaction.

Наприклад, ОЇ ТР 140 може формувати (705) файли 300 відправки з деяким регулярним або нерегулярним ;» інтервалом часу. Потім ОЇ ТР 140 може передати (710) файли 300 відправки у віддалену базу даних 210. При формуванні файлів З00 відправки, ОЇ ТР 140 може почати формування (715) файлу ініціалізації 310 відправки уFor example, the OI TR 140 can form (705) files 300 of sending with some regular or irregular;" time interval. The OI TR 140 can then transfer (710) the shipment files 300 to the remote database 210. When generating the shipment files Z00, the OI TR 140 can begin generating (715) the initialization file 310 of the shipment in

Момент часу запуску 611. Файл ініціалізації 310 відправка може містити копію повної локальної бази даних 200.Start time point 611. The initialization file 310 sent may contain a copy of the complete local database 200.

Го! Потім ОГТР 140 може визначити (720) останній файл З00 відправки, сформований до часу запуску 611 для формування файлу ініціалізації 310 відправки, і останню транзакцію, завершену до часу запуску 611 для о формування файлу ініціалізації 310 відправки. Потій ОЇ ТР 140 може передати (725) файл ініціалізації 310 с відправки у віддалену базу даних 210. Файл ініціалізації 310 відправки може містити ідентифікатор 615 файлу Відправки, що відповідає останньому сформованому файлу 300 відправки, і ідентифікатор транзакції 620, що ве відповідає останній завершеній транзакції. о На Фіг.8 представлена блок-схема варіанту здійснення даного винаходу, в якому віддалена база даних може одержувати файли оновлень з локальної бази даних. Система може одержати (805) декілька періодичних оновлень. Кожне оновлення може містити одну або більшу кількість транзакцій. Періодичні оновлення можуть бути одержані окремо або у пакетах. У деякий момент часу система може одержати (810) оновлення ініціалізації.Go! The OGTR 140 can then determine (720) the last send file Z00 generated before the start time 611 to generate the send initialization file 310 and the last transaction completed before the start time 611 to generate the send initialization file 310 . Then the OI TR 140 can transfer (725) the initialization file 310 of the shipment to the remote database 210. The initialization file 310 of the shipment can contain the identifier 615 of the file of Shipment corresponding to the last generated file 300 of the shipment, and the identifier of the transaction 620, which corresponds to the last completed transaction . Figure 8 shows a block diagram of an embodiment of the present invention in which a remote database can receive update files from a local database. The system may receive (805) several periodic updates. Each update can contain one or more transactions. Periodic updates can be received individually or in packages. At some point in time, the system may receive (810) an initialization update.

Оновлення ініціалізації може містити версію повної локальної бази даних. Система може зчитати (815) зThe initialization update may contain a version of the full local database. The system can read (815) from

Ф) оновлення ініціалізації ідентифікатор останнього періодичного оновлення і ідентифікатор останньої транзакції. ка Потім система може визначити (820) останнє періодичне оновлення, що відповідає ідентифікатору оновлення, і останню транзакцію, що відповідає ідентифікатору транзакції. Періодичне оновлення і транзакція можуть бути, бо Відповідно, останнім сформованим оновленням і останньою завершеною транзакцією до формування оновлення ініціалізації. Система може застосувати (825) до віддаленої бази даних незавершені транзакції, що залишилися у відповідному періодичному оновленні. Потім системі може застосувати (830) до віддаленої бази даних періодичні оновлення, що залишилися, сформовані після останнього періодичного оновлення. Застосування оновлення ініціалізації, переважно, заповнює будь-які раніше втрачені періодичні оновлення. 65 Наприклад, ШЕ 100 може одержати (805) файли 300 відправки з деяким регулярним або нерегулярним інтервалом часу. Файли 300 відправки можуть бути одержані окремо або у пакетах. У деякий момент часу І ОЕF) initialization update identifier of the last periodic update and identifier of the last transaction. The system can then determine (820) the last periodic update corresponding to the update ID and the last transaction corresponding to the transaction ID. A periodic update and a transaction can be, respectively, the last generated update and the last completed transaction before the initialization update is generated. The system may apply (825) to the remote database the pending transactions remaining in the corresponding periodic update. The system may then apply (830) to the remote database the remaining periodic updates generated since the last periodic update. Applying an initialization update will preferably fill in any previously missed periodic updates. 65 For example, the SHE 100 may receive (805) files 300 sent at some regular or irregular time interval. 300 shipment files can be received individually or in packages. At some point in time AND OE

100 може одержати (810) файл ініціалізації 310 відправки. (ШОЕ 100 може зчитати (815) з файлу ініціалізації 310 відправки ідентифікатор 615 файлу відправки і ідентифікатор 620 транзакції. Потім | СЕ 100 може визначити (820) файл 300 відправки, що відповідає ідентифікатору 615 файлу відправки, і транзакцію 605, що відповідає ідентифікатору 620 транзакції. Файл відправки і транзакція можуть бути, відповідно, останнім сформованим файлом відправки і останньою завершеною транзакцією до формування файлу ініціалізації 310 відправки. ШОЕ 100 може застосувати (825) до віддаленої бази даних 210 незавершені транзакції 605, що залишилися, у відповідному файлі З00 відправки. Потім | СЕ 100 може застосувати (830) до віддаленої бази даних 210 файли100 may receive (810) the initialization file 310 of the shipment. (The ESR 100 can read (815) from the initialization file 310 the sending file identifier 615 and the identifier 620 of the transaction. The | CE 100 can then determine (820) the sending file 300 corresponding to the identifier 615 of the sending file and the transaction 605 corresponding to the identifier 620 transaction The send file and the transaction may be, respectively, the last generated send file and the last completed transaction prior to the generation of the send initialization file 310. The SOE 100 may apply (825) to the remote database 210 the remaining incomplete transactions 605 in the corresponding send file Z00 Then, the CE 100 can apply (830) the files to the remote database 210

З00 відправки, що залишилися, які йдуть за останнім файлом відправки зві-4. 70 В альтернативному варіанті здійснення, наприклад, (ШЕ 100 може відкинути або заархівувати файли 300 відправки, які не були застосовані до віддаленої бази даних 210, і/або мають час формування 603 до часу формування 611 файлу ініціалізації відправки. Відкинуті або заархівовані файли 300 відправки можуть включати в себе файл відправки 51-4, що відповідає ідентифікатору 61 І файлу відправки.Z00 remaining shipments that follow the last shipment file zvi-4. 70 In an alternative embodiment, for example, (SHE 100 may discard or archive send files 300 that have not been applied to the remote database 210 and/or have a generation time 603 prior to the generation time 611 of the send initialization file. Discarded or archived send files 300 may include the shipment file 51-4 corresponding to the identifier 61 and the shipment file.

Зрозуміло що після застосування файлу ініціалізації 310 відправки будь-які більш пізні файли 300 відправки, які могли бути вже застосовані до віддаленої бази даних 210, можуть не зберегтися, оскільки віддалена база даних 210 може стати уніфікованою за зчитуванням з файлом ініціалізації 310 відправки.It is understood that after the application of the initialization file 310 of the shipment, any later files 300 of the shipment that may have already been applied to the remote database 210 may not be preserved, because the remote database 210 may become read-unified with the initialization file 310 of the shipment.

Відповідно, ці більш пізні файли 300 відправки можуть бути застосовані повторно.Accordingly, these later shipment files 300 can be reused.

У варіанті здійснення даного винаходу файли З00 відправки та файл ініціалізації 310 відправки можуть передаватися з локальної бази даних 200 у віддалену базу даних 210 без повідомлення (про успішне одержання го даних, тобто, без сигналу АСК/МАСК для вказування того, що файли були успішно одержані. Це, переважно, скорочує додаткову службову сигналізацію, яку може створювати сигнал АСК/МАСК.In an embodiment of the present invention, the send files 300 and the initialization file 310 of the send can be transferred from the local database 200 to the remote database 210 without a message (about the successful receipt of the data, that is, without an ASK/MASK signal to indicate that the files were successfully received This mainly reduces the additional service signaling that the ASK/MASK signal can create.

В альтернативному варіанті здійснення з віддаленої бази даних 210 може передаватися сигнал АСК/МАСК для вказування того, що файли успішно одержані. У цьому варіанті здійснення сигнал АСК/МАСК може передаватися у системах з ненадійним зв'язком. сIn an alternative embodiment, an ASK/MASK signal may be transmitted from the remote database 210 to indicate that the files have been successfully received. In this embodiment, the ASK/MASK signal can be transmitted in systems with unreliable communication. with

На Фіг.9 представлена блок-схема іншого варіанту здійснення даного винаходу, в якому система може перевіряти достовірність файлів оновлення, переданих з локальної бази диких і одержаних у віддаленій базі (8) даних. Тут, система може передати (905) множину періодичних оновлень. Кожне оновлення може містити одну або більшу кількість транзакцій. Періодичні оновлення можуть бути передані окремо або у пакетах. У деякий момент часу система може передати (910) оновлення ініціалізації і застосувати оновлення ініціалізації до о зо віддаленої бази даних. Оновлення ініціалізації може містити версію повної локальної бази даних. Спочатку система, за допомогою порівняння баз даних, може ідентифікувати (915) розходження між локальною і « віддаленою базами даних. Система може визначити (920), чи є розходження дійсними або помилковими. Потім ю система може застосувати (925) до віддаленої бази даних періодичні оновлення, відповідно до варіанту здійснення даного винаходу. Даний варіант здійснення, переважно, може забезпечувати відсутність помилок у о віддаленій базі даних, що є результатом одержання оновлень з локальної бази даних. соFigure 9 shows a block diagram of another variant of the implementation of this invention, in which the system can check the authenticity of the update files transferred from the local wild database and received in the remote database (8). Here, the system may transmit (905) a plurality of periodic updates. Each update can contain one or more transactions. Periodic updates can be delivered individually or in batches. At some point in time, the system may transmit (910) an initialization update and apply the initialization update to the remote database. The initialization update may contain a version of the full local database. Initially, the system, using database comparison, can identify (915) differences between the local and remote databases. The system may determine (920) whether the variances are valid or false. The system may then apply (925) periodic updates to the remote database, in accordance with an embodiment of the present invention. This version of the implementation, preferably, can ensure the absence of errors in the remote database, which is the result of receiving updates from the local database. co

Наприклад, ОЇ ТР 140 може передати (905) у віддалену базу даних 210 файли 300 відправки з деяким регулярним або нерегулярним інтервалом часу. Файли 300 відправки можуть бути передані окремо або у пакетах. У деякий момент часу ОЇ ТР 140 може передати (910) файл ініціалізації 310 відправки в ГЕ 100, і ГОє 100 може застосувати файл ініціалізації 310 відправки до віддаленої бази даних 210. ОЇ ТР 140 може порівняти « локальну базу даних 200 з віддаленою базою даних 210 та ідентифікувати (915) розходження між ними. Потім пт») с ОГТР 140 може визначити (920), чи є розходження дійсними або помилковими. Потім ОЇТР 143 може поінформувати ШЕ 100 для застосування (925) до віддаленої бази даних 210 файлів 300 відправки, відповідно з до варіанту здійснення даного винаходу. Потім (ШОЕ 100 може застосувати файли 300 відправки до віддаленої бази даних 210.For example, ОИ ТР 140 may transfer (905) to the remote database 210 the files 300 of the shipment with some regular or irregular time interval. 300 shipment files can be sent individually or in batches. At some point in time, the UE TR 140 may transmit (910) the initialization file 310 of the send to the GE 100, and the UE 100 may apply the initialization file 310 of the send to the remote database 210. The UE TR 140 may compare the "local database 200 with the remote database 210 and identify (915) differences between them. Then pt") with OGTR 140 can determine (920) whether the variances are valid or false. The OITR 143 may then inform the SHE 100 to apply (925) to the remote database 210 of the shipment files 300, in accordance with an embodiment of the present invention. The ESR 100 can then apply the send files 300 to the remote database 210.

В альтернативному варіанті здійснення система може застосовувати файли відправки та файл ініціалізаціїIn an alternative embodiment, the system may use the send files and the initialization file

Го! відправки до ідентифікації і перевірки достовірності розходжень. У вигляді іншого варіанту система може застосовувати файли відправки та файл ініціалізації відправки після ідентифікації і перевірки достовірності о розходжень. с Зрозуміло, що процес перевірки достовірності може бути виконаний на будь-яких даних, переданих з джерела в адресат через мережу зв'язку для застосування переданих даних до адресата. ве На Фіг10А представлена блок-схема варіанту здійснення перевірки достовірності файлу відправки та файлу о ініціалізації відправки, відповідно до даного винаходу. Після передачі у віддалену базу даних декількох періодичних оновлень та оновлення ініціалізації система може перевірити достовірність цих оновлень. Кожне оновлення може містити одну або більшу кількість транзакцій, виконаних у локальній базі даних. Кожна 5Б транзакція може містити одну або більшу кількість подій. Подія є дією або можливим здійсненням у базі даних, наприклад, додавання, зміни, видалення і т.д., відносно даних у базі даних.Go! sent for identification and verification of the authenticity of discrepancies. As another option, the system can use the shipment files and the shipment initialization file after identifying and verifying the authenticity of discrepancies. c It is clear that the authentication process can be performed on any data transmitted from the source to the addressee through the communication network to apply the transmitted data to the addressee. ve On Fig. 10A is a block diagram of an implementation option for verifying the authenticity of the shipment file and the shipment initialization file, according to the present invention. After sending several periodic updates and initialization updates to the remote database, the system can verify the validity of these updates. Each update can contain one or more transactions committed in the local database. Each 5B transaction can contain one or more events. An event is an action or possible execution in a database, such as adding, changing, deleting, etc., with respect to data in the database.

Ф) Спочатку система може порівняти (1000) запис у віддаленій базі даних з відповідним записом у локальній ка базі даних. Система може сформувати (1005) виключення, що описує розходження між записами віддаленої і локальної баз даних, причому виключення може бути сформоване для кожного розходження. Розходженням бо може бути будь-яка відмінність, щонайменше, в одному значенні даних між двома версіями одного запису.F) First, the system can compare (1000) records in the remote database with the corresponding record in the local database. The system may generate (1005) an exception describing the discrepancy between the records of the remote and local databases, and the exception may be generated for each discrepancy. A difference can be any difference, at least in one data value, between two versions of the same record.

Наприклад, у локальній базі даних може бути запис даних (12345, хуг.сот, 123.234.345). Відповідний запис даних у віддаленій базі даних, яка передбачається ідентичною, може відповідати (12345, арс.сот, 123.234.345).For example, there may be a data entry in the local database (12345, khug.sot, 123.234.345). The corresponding data record in the remote database, which is supposed to be identical, can match (12345, ars.sot, 123.234.345).

Відповідно, у другому значенні даних запису є розходження. Отже, варіант здійснення даного винаходу може сформувати виключення, яке описує вказане розходження. Виключення може описувати розходження, просто 65 Вказуючи на те, що є розходження; визначаючи місцеположення розходження; описуючи відмінність між двома значеннями даних при розходженні і т.д. Запис даних у локальній базі даних відповідає запису даних у віддаленій базі даних (і навпаки), якщо два записи обов'язково містять ідентичні дані.Accordingly, there is a discrepancy in the second value of the record data. Therefore, an embodiment of the present invention may form an exception that describes the specified difference. An exception can describe a difference, simply 65 Indicating that there is a difference; determining the location of the divergence; describing the difference between two data values when diverging, etc. A record of data in the local database corresponds to a record of data in the remote database (and vice versa) if the two records necessarily contain identical data.

Зрозуміло, що розходження може відноситися до відмінності в одному або більшій кількості значень даних у записі або до запису загалом.It is understood that a discrepancy may refer to a difference in one or more data values in a record or to a record in general.

Система може зіставити, (1010) кожному виключенню ідентифікатор виключення, причому ідентифікатор виключення може відповідати ідентифікатору запису. Наприклад, запис даних (12345, хул.сот, 123.234.345) може мати ідентифікатор 410. Відповідно, ідентифікатором виключення може бути також 410. Кожне виключення може бути класифіковане як таке, що належить будь-якому з декількох видів виключень (або розходжень). Може бути сформований список виключень для включення у нього видів виключень та ідентифікатора виключення для 7/0 згрупованих там виключень. Список виключень і різні види виключень детально описані нижче. Система також може зіставити (1015) кожній події в оновленні ідентифікатор події, причому ідентифікатор події може відповідати ідентифікатору запису. Наприклад, запис даних (12345, хул.сот, 123.234.345) може мати ідентифікатор 410. Відповідно, ідентифікатором події може бути також а10. Кожна подія в оновленні може бути виявлена з передісторії подій. Передісторією подій може бути лістинг і т.д. подій, виконаних на записах локальної бази даних за деякий період часу. Передісторія подій детально описана нижче.The system may assign, (1010) to each exception an exception identifier, and the exception identifier may correspond to a record identifier. For example, a data record (12345, hul.sot, 123.234.345) might have an identifier of 410. Accordingly, an exception identifier might also be 410. Each exception can be classified as belonging to any of several types of exceptions (or discrepancies) . An exception list may be generated to include the exception types and exception ID for the 7/0 exceptions grouped there. The list of exclusions and the different types of exclusions are detailed below. The system may also assign (1015) to each event in the update an event ID, where the event ID may correspond to a record ID. For example, the data record (12345, hul.sot, 123.234.345) can have the identifier 410. Accordingly, the event identifier can also be a10. Each event in the update can be discovered from the event history. The background of events can be a listing, etc. events performed on local database records over a period of time. The background of the events is detailed below.

Потім система може визначити (1020), чи є оновлення запису достовірним. На Фіг.10В8 представлена блок-схема варіанту здійснення визначення перевірки достовірності. Дане визначення може бути здійснене наступним чином. Може бути здійснене порівняння (1022) кожної події з кожним виключенням. Якщо кожне виключення підтверджене (1024) подією, то оновлення може бути визначене (1026), як достовірне, і дане оновлення може бути застосоване до віддаленої бази даних. Інакше, якщо кожне виключення не підтверджене (1024) подією, то оновлення може бути визначене (1028), як недостовірне, і виключення можуть реєструватися як помилки. Виключення може бути підтвердженим, коли ідентифікатору виключення відповідає ідентифікатор події, і відповідні подія відповідає достовірній послідовності подій, що відповідають виду виключення. Достовірні послідовності детально описані нижче. Якщо виключення підтверджене, то система може видалити с ідентифікатор виключення зі списку виключень. Підтверджене виключення може вказувати, що розходження є достовірним, наприклад, віддалена база даних ще не одержала оновлення, але при одержанні оновлення дійсно о буде. відповідати локальній базі даних.The system can then determine (1020) whether the record update is valid. Fig. 10B8 shows a block diagram of a variant of the implementation of the determination of the authenticity check. This definition can be made as follows. A comparison (1022) of each event with each exception may be made. If each exception is confirmed (1024) by an event, then the update can be determined (1026) as valid and the given update can be applied to the remote database. Otherwise, if each exception is not acknowledged (1024) by an event, then the update may be determined (1028) to be invalid and the exceptions may be logged as errors. An exception may be confirmed when the exception identifier matches the event identifier and the corresponding event corresponds to a valid sequence of events corresponding to the exception type. Valid sequences are detailed below. If the exclusion is confirmed, the system can remove the exclusion ID from the list of exclusions. A confirmed exception may indicate that the discrepancy is valid, for example, the remote database has not yet received an update, but it will when an update is received. match the local database.

При перевірці достовірності система може ідентифікувати приховані помилки або збої у періодичному оновленні та оновленні ініціалізації Система може забезпечувати можливість структурної і семантичної «з коректності даних оновлення, можливість успішного застосування даних оновлення, яке не спричиняє формування виключень або іншої небажаної зупинки, можливість очного виявлення помилок при порівнянні в локальної і віддаленої баз даних між собою, і неможливість випадкового видалення значимих даних. Система ю може забезпечувати можливість успішного застосування до віддаленої бази даних періодичного оновлення та оновлення ініціалізації. -During validation, the system can identify hidden errors or failures in periodic updates and initialization updates. The system can provide the possibility of structural and semantic "correctness of update data, the possibility of successful application of update data that does not cause the formation of exceptions or other unwanted stops, the possibility of visual detection of errors at comparison of local and remote databases with each other, and the impossibility of accidental deletion of significant data. The system can provide the ability to successfully apply periodic updates and initialization updates to a remote database. -

Переважно, при перевірці достовірності може бути виявлено багато помилок, що виникають при спробі Ге) застосування оновлення до віддаленої бази даних. Наприклад, при спробі застосування можуть виявлятися помилки централізації даних, попередження про те, що об'єкт вже існує у віддаленій базі даних, або попередження про те, що є порушення зовнішнього ідентифікатора. Отже, після виконання процесу перевірки достовірності відповідно до варіанту здійснення даного винаходу, система може зробити спробу застосування « вказаних оновлень до віддаленої бази даних. Спроба може бути неуспішною, що може вказувати на наявністьв с оновленнях додаткових помилок, які роблять оновлення недостовірним. Відповідно, додаткові спроби й застосування вказаних оновлень до віддаленої бази даних не можуть бути здійснені. «» В альтернативному варіанті здійснення до виконання перевірки достовірності може бути зроблена спроба застосувати, щонайменше, одне з оновлень. Якщо спроба є неуспішною, то перевірка достовірності може бути опущена і оновлення відкинуто. З іншого боку, якщо спроба є успішною, то може бути виконана перевірка о достовірності, і достовірне оновлення зберігається, а для недостовірного оновлення реєструються розходження.Preferably, validation can detect many errors that occur when attempting to apply an update to a remote database. For example, when you try to apply, you may encounter data centralization errors, warnings that the object already exists in the remote database, or warnings that there is an external identifier violation. Therefore, after performing a validation process in accordance with an embodiment of the present invention, the system may attempt to apply "specified updates to the remote database." The attempt may fail, which may indicate the presence of additional bugs in the update that make the update unreliable. Accordingly, additional attempts and application of the specified updates to the remote database cannot be made. "" In an alternative implementation, an attempt may be made to apply at least one of the updates before performing the validation. If the attempt is unsuccessful, the validation may be skipped and the update rejected. Alternatively, if the attempt is successful, then a validation check can be performed and the valid update is saved, and discrepancies are logged for the invalid update.

У можливому варіанті здійснення ОЇ ТР 140 може здійснювати перевірку достовірності файлів З00 відправки - та файлів ініціалізації 310 відправки для забезпечення успішного застосування до віддаленої бази даних 210 с файлів 300 відправки та файлів ініціалізації 310 відправки.In a possible variant of the implementation of the OI TR 140 can verify the authenticity of the sending files З00 and the sending initialization files 310 to ensure the successful application of the sending files 300 and the sending initialization files 310 to the remote database 210.

В альтернативних варіантах здійснення перевірку достовірності можуть виконувати мережні комп'ютери 121, ть І ОЕ 100 або будь-яка комбінація існуючих систем. о Відповідно до Фіг.10А, ОЇ ТР 140 може порівняти локальну базу даних 200 і віддалену базу даних 210 для визначення будь-яких виключень (або розходжень) між ними. Виключення можуть включати три види: у віддаленій базі даних 210 можуть існувати дані, які відсутні у локальній базі даних 200; у локальній базі даних 200 можуть існувати дані, які відсутні у віддаленій базі даних 210; або відповідні дані можуть існувати і у локальній базі даних 200, і у віддаленій базі даних 210, але дані можуть відрізнятися. Безумовно, (Ф, відповідні дані можуть існувати і у локальній базі даних 200, і у віддаленій базі даних 210, і дані можуть ко бути ідентичними, у цьому випадку дані можуть вважатися достовірними, отже, від ОЇ ТР 140 не потрібно ніякої додаткової обробки. во Зрозуміло, що розходження може відноситися до однієї або більшої кількості значень даних у записі або до запису загалом.In alternative embodiments, authentication can be performed by network computers 121, t and OE 100, or any combination of existing systems. o In accordance with Fig. 10A, OI TR 140 can compare the local database 200 and the remote database 210 to determine any exceptions (or discrepancies) between them. Exceptions may include three types: the remote database 210 may contain data that is not present in the local database 200; the local database 200 may contain data that is not present in the remote database 210; or corresponding data may exist in both the local database 200 and the remote database 210, but the data may be different. Of course, the relevant data may exist both in the local database 200 and in the remote database 210, and the data may be identical, in which case the data may be considered valid, therefore, no additional processing is required from the ОИ ТР 140. It is understood that a discrepancy may refer to one or more data values in a record or to a record as a whole.

Відповідно, ОЇ ТР 140 може порівняти (1000) відповідні записи у лої сальній базі даних 200 і віддаленій базі даних 210. ОЇ ТР 140 може сформувати (1005) виключення, яке описує розходження між записом у віддаленій базі даних 210 і записом у локальній базі даних 200, причому виключення може бути сформоване для 65 Кожного розходження. ОСІ ТР 140 може зіставити (1010) кожному виключенню ідентифікатор виключення, причому ідентифікатор виключення може відповідати ідентифікатору запису. Може бути сформований список виключень для включення видів виключень та ідентифікатора виключення для виключення, що належить до даного виду виключення. У варіанті здійснення виключення може бути визначене, як виключення (або розходження) "Списку 1", якщо виключення належить до першого виду виключень, виключення "Списку 2", якщо виключення належить до другого виду виключень, або виключення "Списку 3", якщо виключення не лежить до третього виду виключень. Фіг.11 ілюструє можливий список 1140 виключень.Accordingly, the OI TR 140 may compare (1000) the corresponding entries in the local database 200 and the remote database 210. The OI TR 140 may generate (1005) an exception that describes the discrepancy between the entry in the remote database 210 and the entry in the local database 200, and an exception can be formed for 65 of each difference. OSI TR 140 may assign (1010) to each exception an exception identifier, and the exception identifier may correspond to a record identifier. An exception list may be generated to include the exception types and the exception identifier for the exception belonging to the exception type. In an embodiment, an exception may be defined as a "List 1" exception (or difference) if the exception belongs to the first type of exceptions, a "List 2" exception if the exception belongs to the second type of exceptions, or a "List 3" exception if the exception does not belong to the third type of exceptions. Fig. 11 illustrates a possible list of 1140 exceptions.

Зрозуміло, що наявність ідентифікатора виключення у списку виключень не означає, що файл 300 відправки або файл ініціалізації 310 відправки не придатний, оскільки, наприклад, всі три види виключень можуть виникати обгрунтовано через затримку у часі між змінами у локальній базі даних 200 і оновленнями, що /о застосовуються до віддаленої бази даних 310. Така затримка, наприклад, може бути викликана перевантаженням мережі зв'язку. По суті, перевірка достовірності може забезпечувати механізм для виключення обгрунтованих виключень з помилкових даних.It is understood that the presence of an exception ID in the exception list does not mean that the send file 300 or the send initialization file 310 is not valid, since, for example, all three types of exceptions can reasonably occur due to a time delay between changes in the local database 200 and updates that /o are applied to the remote database 310. Such a delay, for example, can be caused by an overload of the communication network. In essence, validation can provide a mechanism to exclude valid exceptions from erroneous data.

Для файлу ініціалізації 310 відправки, ОЇ ТР 140 може порівняти локальну базу даних 200 і віддалену базу даних 210 за допомогою виконання двонаправленого перегляду всіх таблиць в обох базах даних 200, 210. То /5 ЗО, всі дані у локальній базі даних 200 можуть порівнюватися відносно всіх даних у віддаленій базі даних 210. Потім всі дані у віддаленій базі даних 210 можуть порівнюватися відносно всіх даних у локальній базі даних 200. Це, переважно, забезпечує всебічне порівняння баз даних 200,210 для виявлення всіх розходжень.For the initialization file 310 of the shipment, the OI TR 140 can compare the local database 200 and the remote database 210 by performing a bidirectional lookup of all tables in both databases 200, 210. Thus, all data in the local database 200 can be compared against of all the data in the remote database 210. Then, all the data in the remote database 210 can be compared against all the data in the local database 200. This preferably provides a comprehensive comparison of the databases 200, 210 to identify any discrepancies.

Для файлу 300 відправки ОЇ ТР 140 може порівняти тільки ті записи даних у локальній базі даних 200 і віддаленій базі даних 210, які записані у файлі З00 відправки. Це, переважно, забезпечує швидкодіючий запит 2о для виявлення заданих розходжень.For the sending file 300, the TR 140 can compare only those data records in the local database 200 and the remote database 210, which are recorded in the sending file Z00. This primarily provides a fast-acting query 2o to detect specified discrepancies.

В іншому варіанті може бути здійснена випадкова вибірка даних в файлі ініціалізації 310 відправки і/або файлі 300 відправки. Потім ОЇ ТР 140 може порівняти дані, вибрані випадковим чином, у локальній базі даних 200 і віддаленій базі даних 210.In another variant, a random sample of data can be made in the initialization file 310 of the shipment and/or the file 300 of the shipment. The OI TR 140 can then compare the randomly selected data in the local database 200 and the remote database 210.

Список 1140 виключень може відповідати відсутнім подіям, наприклад, додавання (ада), зміни (тод) і сч ов видалення (деї) для локальної бази даних 200, які не узгоджуються з віддаленою базою даних 210. Отже, для ідентифікації таких подій-кандидатів, ОЇ ТР 140 може дослідити останні транзакції, фіксовані у локальній базі (8) даних 200. В основному, у таблиці реєстрації, яка зберігається у локальній базі даних 200, може бути сформований елемент для кожної фіксованої транзакції. Елемент може містити ідентифікатор запису, що був змінений, транзакцію (або подію), що змінила запис (наприклад, ада, тод і/або деї), порядковий номер о зо реєстрації, що вказує черговість транзакції і т.д.The exception list 1140 may correspond to missing events, such as additions (adds), changes (tods), and deletions (deys) for the local database 200 that are inconsistent with the remote database 210. Therefore, to identify such candidate events, ОИ ТР 140 may examine the latest transactions fixed in the local database (8) of the data 200. Basically, in the registration table stored in the local database 200, an element may be formed for each fixed transaction. The element can contain the identifier of the record that was changed, the transaction (or event) that changed the record (for example, ada, tod and/or dei), a registration sequence number indicating the sequence of the transaction, etc.

Можлива таблиця 1100 реєстрації зображена на Фіг.11. У цьому можливому варіанті файл 300 відправки - містить транзакції 1108-1114, зображені у таблиці реєстрації 1100. Перший елемент 1101 вказує, що у першій ю транзакції 1108 дані (сервера доменних імен) п! і п2 були додані до даних (домен), що відповідають ідентифікатору 41. Отже, ідентифікатором є а1, подією є додавання "ада", а порядковим номером реєстрації є о 11526. Аналогічно, другий елемент 1102 вказує, що у другій транзакції 1109 дані п8 і пО були додані до даних, со що відповідають ідентифікатору а2. Третій елемент 1103 вказує, що у третій транзакції 1110 дані, що відповідають ідентифікатору 43, були видалені. Четвертий елемент 1104 вказує, що у четвертій транзакції 1111, дані, що відповідають ідентифікатору 41, були змінені для додавання даних по. Для п'ятої транзакції 1112 п'ятий елемент 1105 вказує, що дані пб і п7 були додані до даних, що відповідають ідентифікатору аз. Для « шостої транзакції 1113 шостий елемент 1106 вказує, що дані, які відповідають ідентифікатору 44, були змінені пт») с для видалення даних п3. Кк ий елемент 1107 в й транзакції 1114 вказує, що дані, які відповідають ц ідентифікатору д5, були видалені. и"? Відповідно, згідно з Фіг1ОА, ОЇ ТР 140 може зіставити (1015) кожній події в оновленні ідентифікатор події, причому ідентифікатор події може відповідати ідентифікатору запису. Кожна подія в оновленні може бути 5 знайдена з передісторії подій. Передісторія подій, індексована і впорядкована за ідентифікатором події, може (ее) бути сформована з таблиці 1100 реєстрації. Можлива передісторія 1120 подій зображена на Фіг.11. Тут, перший і четвертий елементи 1101, 1104 у таблиці 1100 реєстрації вказують зміни для даних, що відповідають о ідентифікатору а1. Отже, передісторія 1120 подій містить ідентифікатор 491 1121 і дві події 1126, додавання ос "ада" ії подальшу зміну "той", виконані на даних, що відповідають ідентифікатору 41. Другий елемент 1102 вказує зміни для даних, що відповідають ідентифікатору 42. Отже, передісторія 1120 подій містить ть ідентифікатор 42 1122 і подію 1127 додавання "ада". Передісторія 1120 подій містить ідентифікатор 43 1123 і о діві події 1128, видалення "де!" з подальшою зміною "той", що вказуються третім і п'ятим елементами 1103, 1105, які містять зміни для даних, що відповідають ідентифікатору 43. Шостий елемент 1106 вказує зміни для даних, що відповідають ідентифікатору 44. Відповідно, передісторія 1120 подій містить ідентифікатор 44 1124 і подію 1129 зміни "той". ВИЙ елемент 1107 вказує зміни для даних, що відповідають ідентифікатору 5, і передісторія 1120 подій містить ідентифікатор 45 1125 і подію 1130 видалення "ае!". Ідентифікатори 1121-1125A possible registration table 1100 is shown in Fig.11. In this possible variant, the sending file 300 contains transactions 1108-1114, depicted in the registration table 1100. The first element 1101 indicates that in the first transaction 1108, the (domain name server) data n! and n2 have been added to the data (domain) corresponding to identifier 41. Therefore, the identifier is a1, the event is the addition of "ada", and the registration sequence number is o 11526. Similarly, the second element 1102 indicates that in the second transaction 1109, the data n8 and pO were added to the data corresponding to the identifier a2. The third element 1103 indicates that in the third transaction 1110 the data corresponding to the identifier 43 has been deleted. The fourth element 1104 indicates that in the fourth transaction 1111, the data corresponding to the identifier 41 has been changed to add data by. For the fifth transaction 1112, the fifth element 1105 indicates that the data pb and p7 have been added to the data corresponding to the identifier az. For the "sixth transaction 1113, the sixth element 1106 indicates that the data corresponding to the identifier 44 has been changed pt") with to delete the data p3. The second element 1107 in the second transaction 1114 indicates that the data corresponding to the identifier d5 has been deleted. Accordingly, according to FIG. 1OA, the OI TR 140 may assign (1015) to each event in the update an event ID, and the event ID may correspond to a record ID. Each event in the update may be found from the event history. The event history is indexed and ordered. according to the event ID, can (ee) be generated from the registration table 1100. A possible history of events 1120 is shown in Fig. 11. Here, the first and fourth elements 1101, 1104 in the registration table 1100 indicate changes for the data corresponding to the identifier a1. Therefore , the event history 1120 contains the identifier 491 1121 and two events 1126, the addition of the axis "ada" and the subsequent change "toy" performed on the data corresponding to the identifier 41. The second element 1102 indicates the changes for the data corresponding to the identifier 42. Therefore, the history Event 1120 contains id 42 1122 and event 1127 adding "hell". History 1120 event contains id 43 1123 and event 1128 removing "de!" from subsequent change "that" indicated by the third and fifth elements 1103, 1105, which contain changes for the data corresponding to the identifier 43. The sixth element 1106 indicates the changes for the data corresponding to the identifier 44. Accordingly, the background history 1120 of events contains the identifier 44 1124 and event 1129 change "that". The OTHER element 1107 indicates the changes for the data corresponding to the identifier 5, and the history 1120 of the events contains the identifier 45 1125 and the event 1130 of the deletion of "ah!". IDs 1121-1125

ІФ) впорядковані з а1 по 45. іме) Відповідно до Фіг.10А, ОЇ ТР 140 може визначити (1020), чи є оновлення достовірним. Дане визначення може бути виконане, наприклад, відповідно до варіанту здійснення за Фіг.10В. Спочатку ОЇ ТР 140 може порівняти 60 (1022) ідентифікатори 1121-1125 подій з ідентифікаторами 1140 виключень для визначення, які ідентифікатори мають відповідність. Наприклад, відповідно до Фіг.11, ідентифікатор 1121 події й1 у хронології 1120 подій відповідає ідентифікатору виключення а1 у "Списку 2" списку 1140 виключень Після виявлення відповідних події і виключення, ОЇ ТР 140 може визначити (1024), чи підтверджене виключення подією. Підтвердження може бути виконане наступним чином. Для кожного ідентифікатора 1121-1125 події у хронології 1120 подій, ОЇ ТР 140 може 65 визначити, чи є достовірною кожна послідовність подій 1126-1130 у хронології 1120 подій. Це може бути здійснено, наприклад, шляхом дослідження списку 1140 виключень для того, щоб визначити, до якого виду виключень належить кожний ідентифікатор виключення, визначення, якою повинна бути достовірна послідовність подій для цього виду виключень, і потім по луку у передісторії 1120 подій відповідного ідентифікатора події і послідовності подій для ідентифікатора події. Достовірні послідовності для кожного виду виключень детально описані нижче. Якщо послідовність подій 1126-1130 у хронології 1120 подій відповідає достовірній послідовності, то відповідний ідентифікатор події 1121-4125 має достовірну послідовність. По суті, виключення, що відповідає ідентифікатору виключення, може бути підтверджене. І, відповідна транзакція 1108-1114, що містить вказаний ідентифікатор події, є обгрунтованою, а не помилковою. У цьому випадку ОЇ ТР 140 може видалити ідентифікатор виключення зі списку 1140 виключень. 70 Для виду виключень "Списку 1" достовірною послідовністю подій може бути (тод) (аеї). Дана послідовність може містити послідовність з нульової або більшої кількості подій зміни "той", за якими йде подія видалення "де", за якою йде довільна подія. Вид виключень "Списку 1" може відповідати даним, які можуть існувати у віддаленій базі даних 210, але бути відсутнім у локальній базі даних 200. У цьому випадку дані, можливо, були нещодавно видалені з лекальної бази даних 200 і транзакція ще не була записана у файл 300 відправки. Отже, файл 300 відправки ще не міг бути застосований до віддаленої бази даних 210. Значить, ці дані можуть ще залишатися у віддаленій базі даних 210. Це може вважатися обгрунтованим розходженням, оскільки передбачається, що у деякий момент часу файл 300 відправки буде сформований і застосований до віддаленої бази даних 210. Отже, якщо для ідентифікатора виключення у Списку 1 зі списку 1140 виключень у хронології 1120 подій виявлена будь-яка така послідовність 1126-1130, то відповідна транзакція може вважатися достовірною.IF) are ordered from a1 to 45. ime) According to Fig. 10A, the EI TR 140 can determine (1020) whether the update is valid. This definition can be performed, for example, in accordance with the embodiment of Fig. 10B. Initially, the TR 140 can compare the 60 (1022) event identifiers 1121-1125 with the exception identifiers 1140 to determine which identifiers have a match. For example, according to Fig. 11, the identifier 1121 of the event y1 in the chronology of events 1120 corresponds to the identifier of the exception a1 in "List 2" of the list 1140 of exceptions. After detecting the corresponding event and exception, the OI TR 140 can determine (1024) whether the exception is confirmed by the event. Confirmation can be done as follows. For each event identifier 1121-1125 in the event timeline 1120 , the OI TR 140 can determine whether each sequence of events 1126-1130 in the event timeline 1120 is valid. This can be done, for example, by examining the exception list 1140 to determine which exception type each exception ID belongs to, determining what a valid sequence of events should be for that exception type, and then looping through the event history 1120 of the corresponding exception ID events and event sequences for the event identifier. Valid sequences for each type of exception are detailed below. If the sequence of events 1126-1130 in the timeline of events 1120 corresponds to a valid sequence, then the corresponding event ID 1121-4125 has a valid sequence. Basically, the exception matching the exception ID can be asserted. And, the corresponding transaction 1108-1114 containing the specified event identifier is valid and not in error. In this case, the TR 140 can remove the exclusion identifier from the list of exclusions 1140. 70 For the "List 1" type of exceptions, a valid sequence of events can be (tod) (aeyi). A given sequence may contain a sequence of zero or more change events "that" followed by a deletion event "where" followed by an arbitrary event. The List 1 exception type may correspond to data that may exist in the remote database 210 but not be present in the local database 200. In this case, the data may have been recently deleted from the local database 200 and the transaction has not yet been recorded in file 300 shipments. Therefore, the dispatch file 300 could not yet be applied to the remote database 210. Therefore, this data may still reside in the remote database 210. This may be considered a reasonable distinction, since it is assumed that at some point in time the dispatch file 300 will be generated and applied to the remote database 210. Therefore, if any such sequence 1126-1130 is found for the exception ID in List 1 of the exception list 1140 in the event timeline 1120, then the corresponding transaction may be considered valid.

Наприклад, відповідно до Фіг.11, ідентифікатор а5 1125 і відповідні йому дані були видалені з локальної бази даних 200, як ілюструє В й елемент 1114 таблиці 1100 реєстрації і вказує хронологія 1120 подій. Під час перевірки достовірності 45 був видалений з локальної бази даних 200, але не видалений з віддаленої бази даних 210. Отже, список 1140 виключень містить ідентифікатор 45 у Списку 1. Згідно з хронологією 1120 подій, подією Га 1130, що відповідає ідентифікатору 45 1125, є видалення "де". ОГТР 140 може порівняти достовірну послідовність виду виключень "Списку 1", тобто (тод)(ае!), з подією 45 1130 у хронології 1120 подій. і9)For example, according to Fig. 11, the identifier a5 1125 and its corresponding data have been deleted from the local database 200, as illustrated by element 1114 of the registration table 1100 and indicated by the chronology 1120 of events. During validation, 45 was deleted from local database 200, but not from remote database 210. Therefore, exclusion list 1140 contains ID 45 in List 1. According to event history 1120, event Ha 1130 corresponding to ID 45 1125, is the deletion of "where". OGTR 140 may compare a valid sequence of List 1 exceptions, ie (tod)(ae!), with event 45 1130 in event timeline 1120. i9)

Оскільки достовірна послідовність "Списку 1" і подія 1130 відповідають, то транзакція 1114 видалення, що відповідає ідентифікатору 45, може вважатися обгрунтованою і не є помилкою. Відповідно, ідентифікатор а5 може бути видалений зі списку 1140 виключень. ав!Since the valid sequence of "List 1" and the event 1130 match, then the transaction 1114 deletion corresponding to the identifier 45 can be considered valid and not an error. Accordingly, the identifier a5 can be removed from the list of 1140 exceptions. aw!

Достовірною послідовністю подій для виду виключень "Списку 2" може бути (ад4а). Дана послідовність може містити подію додавання "ада", за якою йде довільна подія. Вид виключень "Списку 2" може відповідати даним, в які існують у локальній базі даних 200, але не існують у віддаленій базі даних 210. У цьому випадку дані ю могли бути нещодавно додані у локальну базу даних 200, і транзакція ще не була записана у файл З00 відправки. Отже, файл 300 відправки міг бути ще не застосований до віддаленої бази даних 210. Отже, дані - можуть не існувати у віддаленій базі даних 210. Це також може вважатися обгрунтованим розходженням, с оскільки, очікується, що у деякий момент часу файл З00 відправки буде сформований і застосований до віддаленої бази даних 210. Відповідно, якщо для ідентифікатора виключення у Списку 2 зі списку 1140 виключень виявлена будь-яка така послідовність 1126-1130 у хронології 1120 подій, то відповідна транзакція « може вважатися достовірною.A valid sequence of events for the "List 2" exception type can be (ad4a). A given sequence may contain an add event "ada" followed by an arbitrary event. The "List 2" exception type may correspond to data that exists in the local database 200 but does not exist in the remote database 210. In this case, the data may have been recently added to the local database 200 and the transaction has not yet been written to file З00 of sending. Therefore, the shipment file 300 may not yet have been applied to the remote database 210. Therefore, the data may not exist in the remote database 210. This may also be considered a reasonable variance, since it is expected that at some point in time, the shipment file 300 will be generated and applied to the remote database 210. Accordingly, if any such sequence 1126-1130 in the event timeline 1120 is found for the exception ID in List 2 of the exception list 1140, then the corresponding transaction "can be considered valid.

Відповідно до Фіг.11, ідентифікатори 41 ї а2 1121, 1123 можуть бути зіставлені з даними, які, наприклад, 8 с спочатку були додані у локальну базу даних 200. Оскільки послідовності подій 1126, 1127 для них починаються з ц події додавання "ада", то ідентифікатори а1 і 42 1121, 1123 відповідають достовірним послідовностям для виду и"? виключень "Списку 2". Відповідно, транзакції 1108, 1109, що містять вказані ідентифікатори, можуть вважатися достовірними, і ідентифікатори 41 і а2 можуть бути видалені зі списку 1140 виключень. Потрібно зазначити, що ідентифікатор а3 1123 також у своїй послідовності 1128 містить подію додавання "ада". Однак, подія додавання (ее) "ада" не є першою у послідовності 1128. Відповідно, послідовність 1128 не відноситься до виду "Списку 2".According to Fig. 11, identifiers 41 and a2 1121, 1123 can be mapped to data that, for example, was initially added to the local database 200. Since the sequence of events 1126, 1127 for them begins with the event of adding "ada" , then the identifiers a1 and 42 1121, 1123 correspond to valid sequences for the type and" of "List 2" exceptions. Accordingly, transactions 1108, 1109 containing the specified identifiers can be considered valid, and identifiers 41 and a2 can be removed from the list 1140 exceptions. It should be noted that the identifier a3 1123 also contains the addition event "ada" in its sequence 1128. However, the addition event (ee) "ada" is not the first in the sequence 1128. Accordingly, the sequence 1128 does not belong to the type "List 2" .

Додатково, оскільки 43 не позначений у Списку 2 списку 1140 виключень, то ОЇ ТР 140 не може здійснити його о перевірку по достовірній послідовності для Списку 2. ос Достовірними послідовностями подій для виду виключень "Списку З" можуть бути (аеї), (ада) або (тод). Дані послідовності можуть містити подію видалення "деї", за якою йде подія додавання "аада", за якою йде довільна ть подія, або подія зміни "той", за якою йде довільна подія. Вид виключень "Списку 3" може відповідати даним, о які існують в обох базах даних 200, 210, але відмінні. У цьому випадку дані могли бути нещодавно змінені у локальній базі даних 200, і транзакція ще не була записана у файл 300 відправки. Отже, файл 300 відправки ще не міг бути застосований до віддаленої бази даних 210. Отже, дані, що відповідають ідентифікатору, можуть бути ще не змінені у віддаленій базі даних 210. Знову, це може вважатися обгрунтованим розходженням, оскільки очісується, що у деякий момент часу файл 300 відправки буде сформований і застосований до іФ) віддаленої бази даних 210. Відповідно, якщо для ідентифікатора виключення у Списку З зі списку 1140 ко виключень виявлена будь-яка така послідовність 1126-1130 у хронології 1120 подій, то відповідна транзакція може вважатися достовірною. во Наприклад, відповідно до Фіг.11, ідентифікатори 43 ії 44 1123, 1124 можуть бути зіставлені з даними, які були змінені у локальній базі даних 200. У випадку ідентифікатора аз 1123, ідентифікатор 43 1123 і його дані спочатку були видалені, а потім додані зворотно з новими даними, так що послідовність подій 1118 може містити видалення "деї", за яким йде додавання "ада". У випадку ідентифікатора а4 1124, дані 44 були змінені для видалення даних, так що послідовність подій 1129 може містити зміну "той". Оскільки вказані послідовності 65 подій 1128, 1129 відповідають достовірним послідовностям для виду виключень "Списку 3", то відповідні їм транзакції 1110, 1112, 1113 можуть вважатися достовірними, і ідентифікатори 43 і д4 можуть бути видалені зі списку 1140 виключень.In addition, since 43 is not marked in List 2 of the list of 1140 exceptions, the ОИ ТР 140 cannot verify it according to the reliable sequence for List 2. or (then). Sequence data may contain a deletion event "dei" followed by an addition event "aada" followed by an arbitrary th event, or a change event "toy" followed by an arbitrary event. The type of exceptions "List 3" may correspond to data that exist in both databases 200, 210, but are different. In this case, the data may have recently changed in the local database 200 and the transaction has not yet been written to the send file 300 . Therefore, the shipment file 300 could not yet be applied to the remote database 210. Therefore, the data corresponding to the identifier may not yet have been modified in the remote database 210. Again, this may be considered a reasonable variance because it is expected that at some point time, the sending file 300 will be generated and applied to the IF) remote database 210. Accordingly, if any such sequence 1126-1130 is found in the event timeline 1120 for an exception ID in List C from the list of exceptions 1140, then the corresponding transaction can be considered valid . For example, according to Fig. 11, the identifiers 43 and 44 1123, 1124 can be mapped to data that has been changed in the local database 200. In the case of the identifier az 1123, the identifier 43 1123 and its data were first deleted and then added reversed with new data, so that the sequence of events 1118 may contain the deletion of "deya" followed by the addition of "ada". In the case of identifier a4 1124, the data 44 has been modified to delete the data, so that the sequence of events 1129 may contain the change "that". Since the specified sequences of 65 events 1128, 1129 correspond to the valid sequences for the type of exceptions "List 3", the transactions 1110, 1112, 1113 corresponding to them can be considered valid, and the identifiers 43 and d4 can be removed from the list 1140 of exceptions.

Відповідно до Фіг.10В, якщо всі виключення, позначені у списку 1140 виключень своїми ідентифікаторами, були підтверджені (1024) подіями, наприклад, якщо список 1140 виключень є пустим, то ОЇ ТР 140 може визначити (1026) файл 300 відправки або файл ініціалізації 310 відправки, як достовірний, і поінформувати І ОЄЕ 100 для застосування файлу 300 відправки або файлу ініціалізації 310 відправки до віддаленої бази даних 210.According to Fig. 10B, if all the exceptions marked in the list of exceptions 1140 with their identifiers have been confirmed (1024) by events, for example, if the list of exceptions 1140 is empty, then the OI TR 140 can determine (1026) the file 300 of sending or the file of initialization 310 of the shipment as valid and to inform the IOEE 100 to apply the shipment file 300 or the shipment initialization file 310 to the remote database 210.

Потім ГОЕ 100 може застосувати файл 300 відправки або файл ініціалізації 310 відправки до віддаленої бази даних 210.The GOE 100 may then apply the send file 300 or the send initialization file 310 to the remote database 210 .

Ї навпаки, якщо всі виключення не були підтверджені (1024) подіями, наприклад, якщо список 1140 виключень 7/0 Не є пустим, то виключення, що залишилися можуть вказувати на помилки у файлі 300 відправки або файлі ініціалізації 310 відправки. Відповідно, ОЇ ТР 140 може визначити (1028) файл 300 відправки або файл ініціалізації 310 відправки, як недостовірний, і зареєструвати помилки у файлі помилок.Conversely, if all exceptions have not been confirmed by (1024) events, for example, if the 1140 7/0 exception list is not empty, then the remaining exceptions may indicate errors in the 300 dispatch file or the 310 dispatch initialization file. Accordingly, the OI TR 140 may determine (1028) the sending file 300 or the sending initialization file 310 as invalid and log errors in the error file.

В альтернативному варіанті здійснення, якщо, наприклад, файл 300 відправки або файл ініціалізації 310 відправки був визначений як недостовірний, то після заздалегідь визначеного періоду часу ОЇ ТР 140 може 7/5 повторити процес перевірки достовірності відносно недостовірного файлу 300 відправки або файлу ініціалізації 310 відправки для підтвердження того, що розходження дійсно є помадками. Вказана заздалегідь визначена затримка забезпечує мережі більший час для передачі якого-небудь повільного файлу 300, 310 відправки, і більший час на те, щоб бази даних 200, 210 стали уніфікованими за зчитуванням.In an alternative embodiment, if, for example, the send file 300 or the send initialization file 310 was determined to be untrusted, then after a predetermined period of time, the TR 140 may 7/5 repeat the validation process against the untrusted send file 300 or send initialization file 310 for confirmation that differences are indeed fudges. This predetermined delay provides the network with more time to transmit any slow file 300, 310 sending, and more time for the databases 200, 210 to become read-unified.

У варіанті здійснення даного винаходу дані у віддаленій базі даних 210 можуть "відставати" від даних у локальній базі даних 200 на значний інтервал часу. Відповідно, для порівняння баз даних 200, 210 їі для виявлення помилок, бази даних 200, 210 можуть бути зроблені уніфікованими за зчитуванням у той момент часу, коли вони стануть точними копіями одна одної. В основному, віддалена база даних 210 може бути приведена, з повторенням всіх завершених транзакцій, до лекальної бази даних 200, причому дані у віддаленій базі даних 210 можуть бути зроблені по суті ідентичними даним у локальній базі даних 200. сIn an embodiment of the present invention, the data in the remote database 210 may "lag" the data in the local database 200 by a significant time interval. Accordingly, to compare the databases 200, 210 and to detect errors, the databases 200, 210 can be made read-unified at the time when they become exact copies of each other. Basically, the remote database 210 can be brought, with the repetition of all completed transactions, to the local database 200, and the data in the remote database 210 can be made essentially identical to the data in the local database 200. c

Відповідно, для прискорення перевірки достовірності, будь-який сформований у поточний час файл ініціалізації 310 відправки і наступні файли 300 відправки можуть бути застосовані до віддаленої бази даних і) 210 до початку перевірки достовірності. По суті, кількість розходжень може бути істотно зменшена. Така пакетна обробка файлів 300, 310 відправки може бути визначена як утворення блоків. Перший і останній з цих файлів 300, 310 відправки у блоці може бути названий нижнім і верхнім "водяним знаком" відповідно. Перший о зо блок, що називається початковим блоком, може містити файл ініціалізації 310 відправки. Всі наступні блоки, що називаються кінцевими блоками, можуть містити тільки файли 300 відправки. -Accordingly, to speed up the validation, any currently generated initialization file 310 of the shipment and subsequent files 300 of the shipment may be applied to the remote database i) 210 before the validation begins. In fact, the number of discrepancies can be significantly reduced. Such batch processing of the sending files 300, 310 can be defined as the formation of blocks. The first and last of these sending files 300, 310 in the block may be referred to as the lower and upper "watermarks" respectively. The first block, called the start block, may contain the initialization file 310 of the shipment. All subsequent blocks, called end blocks, can only contain 300 send files. -

Утворення блоків може забезпечувати перевірку достовірності групи замість перевірки достовірності окремо. юBlock formation can provide group validation instead of individual validation. yu

Відповідно, при виявленні у блоці помилки, недостовірним може бути позначений весь блок, а не тільки файлAccordingly, when an error is detected in a block, the entire block can be marked as invalid, not just the file

З00 відправки або файл ініціалізації 310 відправки, де виникла помилка. оC00 shipment or initialization file 310 shipment where the error occurred. at

Механізми і способи, що відповідають варіантам здійснення даного винаходу, можуть бути реалізовані з со використанням універсального мікропроцесора, запрограмованого згідно з варіантами здійснення винаходу.Mechanisms and methods corresponding to variants of implementation of this invention can be implemented using a universal microprocessor programmed according to variants of implementation of the invention.

Отже, варіанти здійснення даного винаходу також включають носій інформації, що зчитується комп'ютером, який може містити інструкції, що можуть використовуватися для програмування процесора для виконання способу, який відповідає варіантам здійснення даного винаходу. Вказаний носій може включати в себе будь-який вид « диска, включаючи гнучкий диск, оптичний диск, компакт-диски СО-КОМ і т.д. з с Вище детально описано і проілюстровано декілька варіантів здійснення даного винаходу. Однак, має бути . очевидно, що без відхилення від суті об'єму даного винаходу можуть бути здійснені зміни і модифікації ит винаходу, що охоплюються наведеним вище описом і доданою формулою винаходу.Therefore, embodiments of the present invention also include a computer-readable medium that may contain instructions that can be used to program a processor to perform a method that corresponds to embodiments of the present invention. This media can include any type of disk, including floppy disk, optical disk, SO-COM compact disks, etc. with c Several embodiments of the present invention are described and illustrated in detail above. However, it should be. it is obvious that without deviating from the essence of the scope of this invention, changes and modifications of the invention can be made, which are covered by the above description and the appended claims.

Claims (28)

Формула винаходу (ее) («в 1. Спосіб перевірки достовірності оновлення для запису у віддаленій базі даних, що здійснюється Через с мережу, причому оновлення містить щонайменше одну подію, який включає в себе: порівняння запису у віддаленій базі даних з відповідним записом у локальній базі даних, - формування виключення, що описує розходження між записом віддаленої бази даних і записом локальної о бази даних, для кожного розходження, зіставлення з кожним виключенням ідентифікатора виключення, причому кожний ідентифікатор виключення відповідає ідентифікатору запису, зіставлення з кожною подією в оновленні ідентифікатора події, причому кожний ідентифікатор події відповідає ідентифікатору запису, (Ф; визначення, чи є оновлення достовірним, за допомогою порівняння подій і виключень, що відповідають ГІ запису.The formula of the invention (ee) (in 1. A method of verifying the validity of an update for a record in a remote database carried out through a network, and the update contains at least one event, which includes: comparing the record in the remote database with the corresponding record in the local to the database, - generating an exception describing the discrepancy between the remote database record and the local database record, for each discrepancy, mapping to each exception an exception identifier, with each exception identifier corresponding to a record identifier, mapping to each event in the event identifier update, where each event ID corresponds to a record ID, (F; determining whether an update is valid by comparing the events and exceptions corresponding to the record's GI. 2. Спосіб за п. 1, в якому оновлення для запису є достовірним, якщо кожне виключення, що відповідає бо Запису, підтверджене подією, що відповідає запису.2. The method of claim 1, wherein an update to a record is valid if each exception corresponding to the Record is confirmed by an event corresponding to the record. 3. Спосіб за п. 2, в якому види виключень включають в себе: перший вид виключень, в якому запис існує у віддаленій базі даних і відсутній у локальній базі даних, другий вид виключень, в якому запис існує у локальній базі даних і відсутній у віддаленій базі даних, і третій вид виключень, в якому запис існує і у локальній базі даних, і у віддаленій базі даних, але 65 значення поля запису у локальній базі даних відрізняється від значення ідентичного поля запису у віддаленій базі даних.3. The method according to claim 2, in which the types of exceptions include: the first type of exceptions, in which the record exists in the remote database and is not present in the local database, the second type of exceptions, in which the record exists in the local database and is not present in the remote database, and a third type of exception in which a record exists in both the local database and the remote database, but the value of a record field in the local database differs from the value of an identical field in the remote database. 4. Спосіб за п. 3, в якому подія підтверджує виключення, якщо: подія являє собою видалення запису з локальної бази даних, і виключення належить до першого виду виключень, подія являє собою додавання запису у локальну базу даних, і виключення належить до другого виду виключень, подія являє собою зміну запису у локальній базі даних, і виключення належить до третього виду виключень, або подія являє собою видалення запису з локальної бази даних з подальшим додаванням запису у локальну 70 базу даних, виключення належить до третього виду виключень.4. The method according to claim 3, in which the event confirms the exception, if: the event represents the deletion of a record from the local database, and the exception belongs to the first type of exceptions, the event represents the addition of a record to the local database, and the exception belongs to the second type of exceptions , the event represents a change of a record in the local database, and the exception belongs to the third type of exceptions, or the event represents the deletion of a record from the local database followed by the addition of a record to the local 70 database, the exception belongs to the third type of exceptions. 5. Спосіб за п. 1, що додатково включає: повторення способу перевірки достовірності оновлення через заданий час після того, як оновлення було визначене недостовірним, при визначенні оновлення недостовірним.5. The method according to claim 1, which additionally includes: repeating the method of checking the validity of the update after a given time after the update was determined to be invalid, when the update is determined to be invalid. 6. Спосіб за п. 1, в якому порівняння включає: порівняння повної локальної бази даних з повною віддаленою базою даних.6. The method according to claim 1, in which the comparison includes: comparing the complete local database with the complete remote database. 7. Спосіб перевірки достовірності віддаленої бази даних, що включає: передачу у віддалену базу даних множини періодичних оновлень, що базуються на додаткових змінах у локальній базі даних, кожне з множини періодичних оновлень містить щонайменше одну транзакцію, передачу у віддалену базу даних ініціалізуючого оновлення, що містить версію локальної бази даних у вигляді локальної бази даних на момент часу запуску, при цьому ініціалізуюче оновлення застосовується до віддаленої бази даних, ідентифікацію розходжень між локальною базою даних і віддаленою базою даних, визначення, чи є розходження достовірними, с поінформування віддаленої бази даних для застосування періодичних оновлень, час запуску яких більш о пізній, ніж час запуску ініціалізуючого оновлення.7. A method of verifying the reliability of a remote database, including: transmitting to the remote database a plurality of periodic updates based on additional changes in the local database, each of the plurality of periodic updates containing at least one transaction, transmitting to the remote database an initialization update that contains the version of the local database as the local database at startup time, with the initialization update applied to the remote database, identifying discrepancies between the local database and the remote database, determining whether the discrepancies are valid, and informing the remote database to apply periodic updates, the start time of which is later than the start time of the initializing update. 8. Спосіб за п. 1, що додатково включає: повторення способу перевірки достовірності оновлення через заданий час після того, як оновлення було визначене недостовірним, при визначенні оновлення недостовірним. о зо 8. The method according to claim 1, which additionally includes: repeating the method of checking the validity of the update after a given time after the update was determined to be invalid, when the update is determined to be invalid. about zo 9. Спосіб за п. 7, в якому розходження включають в себе: перший вид розходжень, в якому запис існує у віддаленій базі даних і відсутній у локальній базі даних, « другий вид розходжень, в якому запис існує у локальній базі даних і відсутній у віддаленій базі даних, і ю третій вид розходжень, в якому запис існує і у локальній базі даних, і у віддаленій базі даних, але значення поля запису у локальній базі даних відрізняється від значення ідентичного поля запису у віддаленій о базі даних. со9. The method according to claim 7, in which the discrepancies include: the first type of discrepancies in which the record exists in the remote database and is absent in the local database, the second type of discrepancies in which the record exists in the local database and is absent in the remote database, and the third type of discrepancy, in which a record exists both in the local database and in the remote database, but the value of the field of the record in the local database differs from the value of the identical field of the record in the remote database. co 10. Система для перевірки достовірності оновлення для запису у віддаленій базі даних, що здійснюється через мережу зв'язку, в якій оновлення містить щонайменше одну подію, система включає: щонайменше один процесор, приєднаний до мережі зв'язку, і пам'ять, з'єднану з процесором, пам'ять містить базу даних і команди, адаптовані для виконання « процесором, для реалізації перевірки достовірності оновлення запису у віддаленій базі даних, яке здійснюється з с через мережу зв'язку, причому команди забезпечують виконання процессором порівняння запису у віддаленій базі даних з відповідним записом у локальній базі даних, ;» формування виключення, що описує розходження між записом віддаленої бази даних і записом локальної бази даних, для кожного розходження, зіставлення з кожним виключенням ідентифікатора виключення, причому кожний ідентифікатор виключення Го! відповідає ідентифікатору запису, зіставлення з кожною подією в оновленні ідентифікатора події, причому кожний ідентифікатор події о відповідає ідентифікатору запису, і с визначення, чи є оновлення достовірним, за допомогою порівняння подій і виключень, що відповідають Запису. пи 10. A system for verifying the validity of an update for a record in a remote database carried out via a communication network, in which the update contains at least one event, the system includes: at least one processor connected to the communication network, and a memory, with connected to the processor, the memory contains a database and commands adapted for execution by the processor to implement validation of an update of a record in a remote database, which is carried out from c over a communication network, and the commands ensure that the processor executes a comparison of the record in the remote database with a corresponding entry in the local database, ;" generating an exception describing the difference between the remote database record and the local database record, for each difference, mapping to each exception an exception identifier, and each exception identifier Go! matches the record ID, matching each event in the update to the event ID, where each event ID o corresponds to the record ID, and c determining whether the update is valid by comparing the events and exceptions corresponding to the Record. pi 11. Система за п. 10, в якій оновлення для запису є достовірним, якщо кожне виключення, що відповідає о запису, підтверджене подією, що відповідає запису.11. The system of claim 10, wherein an update for a record is valid if each exception corresponding to the record is confirmed by an event corresponding to the record. 12. Система за п. 11, в якій види виключень включають в себе: перший вид виключень, в якому запис існує у віддаленій базі даних і відсутній у локальній базі даних, 5Б другий вид виключень, в якому запис існує у локальній базі даних і відсутній у віддаленій базі даних, третій вид виключень, в якому запис існує і у локальній базі даних, і у віддаленій базі даних, але (Ф) значення поля запису у локальній базі даних відрізняється від значення ідентичного поля запису у віддаленій ка базі даних.12. The system according to claim 11, in which the types of exceptions include: the first type of exceptions, in which the record exists in the remote database and is not present in the local database, 5B the second type of exceptions, in which the record exists in the local database and is not present in remote database, the third type of exception, in which a record exists in both the local database and the remote database, but (F) the value of the field of the record in the local database differs from the value of the identical field of the record in the remote database. 13. Система за п. 12, в якій подія підтверджує виключення, якщо: 60 подією є видалення запису з локальної бази даних, і виключення належить до першого виду виключень, подією є додавання запису у локальну базу даних, і виключення належить до другого виду виключень, подією є зміна запису у локальній базі даних, і виключення належить до третього виду виключень, або подією є видалення запису з локальної бази даних з подальшим додаванням запису у локальну базу даних, і виключення належить до третього виду виключень. 65 13. The system according to claim 12, in which the event confirms the exception, if: 60 the event is the deletion of a record from the local database, and the exception belongs to the first type of exceptions, the event is the addition of a record to the local database, and the exception belongs to the second type of exceptions, the event is a change to a record in the local database, and the exception belongs to the third type of exceptions, or the event is the deletion of a record from the local database followed by the addition of a record to the local database, and the exception belongs to the third type of exceptions. 65 14. Система за п. 10, в якій, при визначенні оновлення недостовірним, процесор повторює виконання команд для перевірки достовірності оновлення через заданий час після того, як оновлення було визначене недостовірним.14. The system according to claim 10, in which, upon determination of the update as invalid, the processor repeats execution of commands to verify the validity of the update after a specified time after the update was determined to be invalid. 15. Система за п. 11, в якій процесор порівнює повну локальну базу з повною віддаленою базою даних.15. The system of claim 11, wherein the processor compares the complete local database with the complete remote database. 16. Система за п. 10, що додатково містить: щонайменше один віддалений процесор, приєднаний до мережі зв'язку, і віддалену пам'ять, з'єднану з віддаленим процесором, у віддаленій пам'яті зберігаються віддалена база даних і команди, адаптовані для виконання віддаленим процесором, для: створення нового елемента на основі нової інформації, одержаної через мережу з бази даних, і запису покажчика на новий елемент у віддалену базу даних з використанням одиночної безперервної 70 операції, без обмеження доступу до віддаленої бази даних для здійснення пошуку.16. The system according to claim 10, further comprising: at least one remote processor connected to a communication network, and a remote memory connected to the remote processor, the remote memory stores a remote database and commands adapted for execution by a remote processor, to: create a new item based on new information received over the network from the database, and write a pointer to the new item in the remote database using a single continuous 70 operation, without restricting access to the remote database for searching. 17. Система за п. 16, в якій команди додатково адаптовані для фізичного видалення існуючого елемента після запису покажчика у базу даних.17. The system of claim 16, wherein the commands are further adapted to physically delete the existing element after writing the pointer to the database. 18. Система за п. 16, в якій одиночною безперервною операцією є команда збереження.18. The system of claim 16, wherein the single continuous operation is a save command. 19. Система за п. 18, в якій віддалений процесор має розмір слова щонайменше у п-байтів, віддалена /5 пам'ять має розрядність щонайменше у п-байтів та команда збереження записує п-байтів в адресу віддаленої пам'яті, розміщену на межі п-байтів.19. The system according to claim 18, in which the remote processor has a word size of at least n-bytes, the remote /5 memory has a bit size of at least n-bytes, and the save command writes n-bytes to the remote memory address located on the boundary n bytes. 20. Машинозчитуваний носій інформації, який містить програмні команди, адаптовані для виконання процесором, для перевірки достовірності оновлення для запису у віддаленій базі даних, що здійснюється Через мережу зв'язку, причому оновлення містить щонайменше одну подію, при цьому команди забезпечують 2о виконання процесором: порівняння запису у віддаленій базі даних з відповідним записом у локальній базі даних, формування виключення, що описує розходження між записом віддаленої бази даних і записом локальної бази даних, для кожного розходження, зіставлення з кожним виключенням ідентифікатора виключення, причому кожний ідентифікатор виключення сч відповідає ідентифікатору запису, зіставлення з кожною подією в оновленні ідентифікатора події, причому кожний ідентифікатор події (8) відповідає ідентифікатору запису, і визначення, чи є оновлення достовірним, за допомогою порівняння подій і виключень, що відповідають запису. о зо 20. A machine-readable medium containing program instructions adapted for execution by a processor to verify the validity of an update to a record in a remote database carried out over a communication network, the update comprising at least one event, the instructions being executed by the processor: comparing the record in the remote database with the corresponding record in the local database, generating an exception describing the difference between the remote database record and the local database record, for each difference, mapping each exception to an exception identifier, where each exception identifier corresponds to a record identifier , matching each event in the update with an event ID, each event ID (8) corresponding to a record ID, and determining whether the update is valid by comparing the events and exceptions corresponding to the record. about zo 21. Машинозчитуваний носій інформації за п. 20, в якому, при визначенні оновлення недостовірним, команди забезпечують повторення перевірки достовірності оновлення через заданий час після того, як оновлення було « визначене недостовірним. ю21. The machine-readable medium of claim 20, in which, upon determination of the update as invalid, the commands ensure that the validation of the update is repeated after a specified time after the update has been determined to be invalid. yu 22. Машинозчитуваний носій інформації за п. 20, в якому оновлення для запису є достовірним, якщо кожне виключення, що відповідає запису, підтверджене подією, що відповідає запису. о22. The machine-readable medium of claim 20, wherein an update for a record is valid if each exception corresponding to the record is confirmed by an event corresponding to the record. at 23. Машинозчитуваний носій інформації за п. 20, в якому види виключень включають в себе: со перший вид виключень, в якому запис існує у віддаленій базі даних і відсутній у локальній базі даних, другий вид виключень, в якому запис існує у локальній базі даних і відсутній у віддаленій базі даних, і третій вид виключень, в якому запис існує і у локальній базі даних, і у віддаленій базі даних, але значення поля запису у локальній базі даних відрізняється від значення ідентичного поля запису у віддаленій « базі даних. в с 24. Спосіб перевірки достовірності передачі даних через мережу, що включає: ідентифікацію розходжень23. The machine-readable medium of claim 20, in which the types of exceptions include: c the first type of exceptions, in which the record exists in the remote database and is not present in the local database, the second type of exceptions, in which the record exists in the local database, and absent in the remote database, and the third type of exception, in which a record exists in both the local database and the remote database, but the value of the record's field in the local database differs from the value of the identical field of the record in the remote database. in p. 24. The method of checking the reliability of data transmission through the network, which includes: identification of discrepancies . даних між джерелом і адресатом, ідентифікацію змін даних у джерелі, які були включені у передачу, і ит порівняння розходжень зі змінами для визначення, чи є передача достовірною.. data between source and destination, identifying changes to source data that were included in the transmission, and comparing discrepancies with the changes to determine whether the transmission is valid. 25. Спосіб за п. 24, в якому джерелом і адресатом є сервери доменних імен.25. The method according to claim 24, in which the source and destination are domain name servers. 26. Спосіб за п. 24, в якому розходження включають в себе: ім'я домену, яке існує у джерелі і відсутнє в о адресаті, ім'я домену, яке існує в адресаті і відсутнє у джерелі, і о відповідні імена доменів, які відрізняються у джерелі та в адресаті. с 26. The method of claim 24, wherein the differences include: a domain name that exists in the source and is absent in the destination, a domain name that exists in the destination and is absent in the source, and corresponding domain names that differ in source and destination. with 27. Спосіб за п. 24, в якому зміни містять щонайменше одне з додавання імені домену у сервер доменних імен, видалення імені домену з сервера доменних імен і зміни імені домену у сервері доменних імен. ве 27. The method of claim 24, wherein the changes include at least one of adding the domain name to the domain name server, removing the domain name from the domain name server, and changing the domain name in the domain name server. ve 28. Пристрій для перевірки достовірності оновлення для запису у віддаленій базі даних, що містить: о засіб ідентифікації розходжень даних між джерелом і адресатом, засіб ідентифікації змін даних у джерелі, які були включені у передачу, і засіб порівняння розходжень зі змінами для визначення, чи є передача достовірною. (Ф) ко бо б528. Apparatus for validating an update to a record in a remote database, comprising: o means for identifying data discrepancies between a source and a destination, means for identifying data changes at the source that have been included in the transmission, and means for comparing the discrepancies with the changes to determine whether transmission is reliable. (F) ko bo b5
UA20040504106A 2002-03-19 2002-01-11 Method, system, device, and information carrier for validating remote database updates; method for validating records in a remote database and data transmission over a communication system UA80540C2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US36516902P 2002-03-19 2002-03-19
PCT/US2002/035081 WO2003038653A1 (en) 2001-11-01 2002-11-01 Method and system for validating remote database

Publications (1)

Publication Number Publication Date
UA80540C2 true UA80540C2 (en) 2007-10-10

Family

ID=38799592

Family Applications (1)

Application Number Title Priority Date Filing Date
UA20040504106A UA80540C2 (en) 2002-03-19 2002-01-11 Method, system, device, and information carrier for validating remote database updates; method for validating records in a remote database and data transmission over a communication system

Country Status (1)

Country Link
UA (1) UA80540C2 (en)

Similar Documents

Publication Publication Date Title
EA006223B1 (en) Method and system for validating remote database
US11895188B2 (en) Distributed storage system with web services client interface
US10652076B2 (en) Dynamic application instance discovery and state management within a distributed system
US9052942B1 (en) Storage object deletion job management
US7933866B2 (en) Systems, methods and software programs for data synchronization
US20200134043A1 (en) Duplicate Request Checking for File System Interfaces
US20080065597A1 (en) Updating content index for content searches on networks
US20210165573A1 (en) Managing Replication State for Deleted Objects
WO2016120722A1 (en) Transaction processing in a distributed database management system
US20230185559A1 (en) Managing a federated software repository across multiple devices
UA80540C2 (en) Method, system, device, and information carrier for validating remote database updates; method for validating records in a remote database and data transmission over a communication system
UA79943C2 (en) Method and system for updating a remote data base (variants)
JP4331970B2 (en) Database snapshot method and system
WO2022120313A1 (en) Methods for distributed key-value store