А О   С Т С

          ТЕХНОЛОГИЯ РАСПРЕДЕЛЕННОЙ УДАЛЕННОЙ ОБРАБОТКИ
                        КОММЕРЧЕСКИХ ДАННЫХ

                                1994


УСЛОВИЯ ПРИМЕНЕНИЯ

   Зачем это и кому это может быть нужно?
   Попробуем обозначить условия бизнеса, которые эта технология обеспечивает.

1. Вложены большие деньги в APPLICATIONs, основанные на Xbase - DBase,
   FoxBase, Clipper, короче, "плоские файлы" типа DBF или DAT.

2. Нет сил или средств на приобретение HARDWARE и SOFTWARE для реляционных
   SQL-серверов под Windows, UNIX, VMS, MVS и/или на разработку приложений
   для таких систем.

3. Объекты бизнеса рассредоточены в пределах города, страны или мира.
   На каждом объекте требуется ввод определенной части общей информации
   для использования ее затем в пределах всей информационной системы,
   и получение определенной части информации из всей системы.

4. Нет практической необходимости или экономической целесообразности
   в поддержании ON-LINE связи между узлами системы во время оперативной
   работы, как того требуют архитектуры CLIENT-SERVER и HOST.
   Например, данные, вносимые в базу в Миннесоте, потребуются в Нью-Йорке
   только на следующий день, и нет нужды "висеть" на "сервере" или "хосте"
   в ON-LINE, а можно передать все изменения "за один раз". Или - много
   точек обработки данных требуют большого количества линий связи и
   процессов "сервера" или "хоста", хотя обработка не настолько интенсивная,
   чтобы держать эти линии все занятыми а центральный компьютер загруженным.

5. Требуется независимая от центральной базы данных или других баз
   системы локальная обработка данных в пределах конкретного узла(объекта)
   обработки. Например - для проверки достоверности данных перед передачей
   их в систему, или локализация в пределах объекта тех или иных данных
   из соображений секретности.

6. Необходимо распространять те или иные данные, измененные в "узлах"
   в пределах всей информационной системы - в центральный репозиторий
   и на другие узлы обработки. При этом необходимо "на лету" переопределять,
   какая информация и как будет приниматься с каждого конкретного узла,
   и какая информация и как будет поступать на каждый узел с других
   точек обработки или из центрального репозитория.

7. Необходимо гибкое управление "оперативностью" передачи и получения
   измененной информации. Например, информация о наступлении события,
   определенного в страховом контракте должна обрабатываться немедленно,
   а данные о новых заключенных страховых контрактов могут обрабатываться
   в течении всего дня. Короче, требуется сочетание обработки ON-LINE и
   OFF-LINE, с возможностью изменения этого сочетания в процессе работы.

8. Требуется интеграция различных APPLICATIONS, разработанных в различных
   системах разработки, в единую распределенную информационную систему,
   поддерживающую логическую целостность данных.


ПРИМЕР ИСПОЛЬЗОВАНИЯ

   Приведем конкретный пример того бизнеса, для которого на данный момент
   описываемая технология отработана. Рамкой в нижней части схемы обведена
   оригинальная часть, разработанная АО СТС. Соединение всех из вышепере-
   численных обстоятельств заставило принимать оригинальные решения.

   1. Требовалось утилизация старых программ, чтобы не тратить время
      на разработку новых.
   2. Требовалось использование компьютеров не только 386-x но и 286-x
      и даже XT - для обеспечения работы на точках продажи. Не было
      денег на закупку серверов под Oracle, Sybase или другой SQL-сервер.
   3. В каждом из объектов типа "точка продажи", "учет и регистрация",
      "клиент", "торговая компания", "банк" необходимо хранение специфической
      информации, ненужной для других объектов.
   4. Информация по продажам с BANKING CARD должна обрабатываться ON-LINE,
      CREDIT-CARD требуют только ежедневной передачи OFF-LINE обработанных
      данных, а "электронные отчеты" клиентам могут передаваться раз в месяц.
   5. При отсутствии ON-LINE связи, работа на объектах должна нормально
      идти OFF-LINE с использованием "локальных" баз данных, которые
      содержат только необходимую для оперативной работы информацию.
   6. Оперативные данные, поступающие с "точек продаж", должны обрабатываться
      и распространяются на другие объекты. При этом, на каждый из объектов
      должны передаваться только предназначенные для него данные.
   7. Необходимо в процессе работы "на ходу" переопределять, какие именно
      данные, в каком объеме, и с какой частотой должны поступать с того
      или иного объекта и передаваться на него.
   8. Базовые программы для RETAIL STORES и банков разработаны на FoxBase,
      программы для GAS STATIONS и аналитическое SOFTWARE - с использованием
      Clipper. Структуры баз данных в разных приложениях отличались -
      требовалось объединить обработку этой разнородной информации в
      рамках одной системы.


                Cash and Cards Processing Hardware
                               |
                HARDWARE DEVICE DRIVERS (Assembler)
                  |                            |
                  |                            |
  POINT-OF-SALE END SOFTWARE (Clipper,FoxBase) |
      |                                        |
      |  REGISTRATION AND ACCOUNTING SOFTWARE (Clipper,FoxBase)
      |      |
      |      |  CUSTOMER END SOFTWARE (Clipper,FoxBase)
      |      |      |
      |      |      |  TRADE COMPANY END SOFTWARE (Clipper,FoxBase)
      |      |      |      |
      |      |      |      |  BANK END SOFTWARE (Clipper,FoxBase)
      |      |      |      |      |
      |      |      |      |      |
+==========================================================================+
|     |      |      |      |      |                                        |
| CLIENT-END TELE-COMMUNICATION SOFTWARE (C,Assembler)                     |
|                          |                                               |
|       Tele-communication Hardware (Modems,Networks,R/Stations)           |
|                          |                                               |
| SERVER-END TELE-COMMUNICATION SOFTWARE (C,Assembler)                     |
|                          |                                               |
| X-BASED DISTRIBUTED DATABASE TRANSACTIONS PROCESSOR (Clipper,Novell,C)   |
|                          |                                               |
+==========================================================================+
                           |
  CENTRAL DATABASE ADMINISTRATION CONTROL SOFTWARE (Clipper,FoxBase)



ОСНОВОПОЛАГАЮЩИЕ КОНЦЕПЦИИ

  Теперь - о концепциях, положенных в основу системы.
  В основном, здесь переплетаются принципы, используемые в системах
  электронной почты, теле-конференций, распределенных базах данных
  и существующих серверов реляционных DBMS.

  ОСНОВНЫЕ ПРИНЦИПЫ

    - На каждом узле обработки определено, какие таблицы (файлы) из
      локальной базы данных (LOCAL DATABASE) являются подмножествами
      соответствующих глобальных таблиц (GLOBAL DATA). Все прочие таблицы
      (файлы) считаются локальными (LOCAL DATA).

    - APPLICATION на каждом узле работает всегда только со своей
      LOCAL DATABASE, которая обычно является неполным подмножеством
      GLOBAL DATABASE, существующей в пределах всей системы.

    - Все изменения в пределах системы производятся посредством
      передаваемых с одного узла обработки на другой DISTRIBUTED
      TRANSACTION FILES (DT-FILES). Каждый такой файл - это совокупность
      записей или строк, именованная по той глобальной распределенной
      таблице, изменения в которой он отражает. Каждая запись в файле -
      это информация о необходимой операции SELECT/INSERT/DELETE/UPDATE
      над глобальной таблицей с соответствующими значениями полей/колонок.

    - С каждого узла обработки данные (DT-FILES) могут быть переданы на один
      или более других узлов. Каждый узел может принять данные также
      с одного или многих узлов.

    - Обмен данными (DT-FILES) может происходить по инициативе конкретного
      узла - в этом случае он выступает по отношению к другому узлу, как
      клиент. Также узел может сам отвечать на запрос другого узла, выступая
      при этом в качестве сервера.

    - Обработка глобальных данных ведется на двух уровнях.
      Спецификации доступа и изменений в GLOBAL DATA, списки узлов
      для рассылки изменений с характеристиками этих узлов определяются
      в DISTRIBUTED PROCESSING LIST (DP-LIST) для каждого узла.
      Функции обеих уровней работают строго в соответствии с этими
      спецификациями. Сам DP-LIST может быть изменен "ON FLY" средствами
      самой системы распределенной обработки.

    - Первый уровень обеспечивается встроенным в APPLICATION, работающее на
      узле, DISTRIBUTED PROCESSING ENGINE (DP-ENGINE). Функции данного
      уровня отражают все оперативные изменения в GLOBAL DATA, формируя
      соответствующие записи в DT-FILES. Эти - же функции производят
      обработку данных, полученных с других узлов посредством функций
      второго уровня.

    - Функции второго уровня активизируются в момент обмена данных,
      происходящего по инициативе конкретного узла или другого узла,
      давшего запрос конкретному узлу. Эти функции обеспечиваются
      REMOTE PROCESSOR, который обеспечивает базовые коммуникационные
      задачи - ПЕРЕДАЧА ИЗМЕНЕНИЙ, ПРИЕМ ИЗМЕНЕНИЙ, ВЫЗОВ УДАЛЕННОГО
      ПРОЦЕССА С ОЖИДАНИЕМ, ОТЛОЖЕННЫЙ ВЫЗОВ УДАЛЕННОГО ПРОЦЕССА.
      Здесь же отрабатываются функции установки соединения, входа
      в систему по USER-ID и PASSWORD, управления ходом транзакции.

    - Если функции второго уровня вызываются из APPLICATION узла
      для обеспечения конкретных BUSINESS FUNCTIONS, данный узел
      работает, как в режиме ON-LINE, каждый раз получая "свежую"
      информацию из GLOBAL DATABASE. В остальных случаях обработка
      ведется OFF-LINE, на основе текущей LOCAL DATABASE.

    - Если большинство узлов выступают только инициаторами обмена
      изменениями с каким-то одним узлом, то система приобретает
      конфигурацию (топологию) неоднородной сети с центральными
      "серверами". Если большинство узлов также выступают инициаторами
      обмена данными, система приобретает топологию одно-ранговой
      сети со множественными серверами.
      Также возможен третий вариант, когда обработка на большинстве узлов
      ведется исключительно OFF-LINE, но эти узлы одновременно выступают в
      качестве серверов. При этом один или несколько "центральных"
      узлов периодически инициируют связь, как клиенты, с остальными -
      "подкармливая" их, по необходимости, свежей информацией.
      Возможно гибкое сочетание трех "крайностей" и изменений топологии
      системы "ON FLY".

    - Известно, что не существует 100% надежности подтверждения
      завершения транзакции и 100% надежности отката при аборте транзакции.
      TWO-PHASE COMMIT только снижает на порядок вероятность нарушения
      данных в распределенной системе. Поэтому, при отсутствие уверенности
      в завершении транзакции или выполнении процедуры "отката" требует
      ПОВТОРНОГО выполнения транзакции в любом из этих двух случаев.
      Это должен обеспечивать механизм контроля повторяющихся транзакций.

    - Данные принципы применимы не только к DISTRIBUTED DATABASES на
      основе X-BASED SYSTEMS (DBase,Clipper,FoxBase), но и к любым DBMS,
      использующим распределенную обработку. Реализация данных принципов
      возможна в рамках любого системного (AS/400, UNIX, Windows, MS-DOS)
      и коммуникационного (E-Mail systems, Network Messages Passing Systems,
      Tele-Communications) окружений.


    В заключение приведем функциональную схему узла распределенной обработки.

                       EACH APPLICATION NODE

         APPLICATION                                  .
         /|\     /|\                                  .
          |       |GLOBAL                             .
          |       |DATA                               .
          |       |WAY                                .
     LOCAL|      \|/                                  .    OTHER
      DATA|      DP-ENGINE------->REMOTE PROCESSOR<------->APPLICATIONS
       WAY|        /|\ /|\        /|\    /|\          .    NODES
          |         |   |          |      |           .
          |       +-+-----------+  |      |           .
          |       |     |       |  |      |           .
         \|/     \|/    |      \|/\|/     |           .
        LOCAL DATABASE  |     DT-FILES    |           .
                        |                 |           .
                        +--------+--------+           .
                                 |
                              DP-LIST


    Антон Колонин
    АО СТС, г.Чита
1