|
|
|
Механизм распределённой системы
|
|||
|---|---|---|---|
|
#18+
Доброе время суток! Вопрос по поводу распределённой системы. В настоящее время разработана система на основе СУБД, которая имеет ряд таблиц информации и, к примеру, такая система стоит в каждом регионе области. Все системы регионов могут быть связана только по электронной почте или через FTP, т.е. обмен информацией происходит в виде файлов. Необходимо разработать механизм сборки и обмена актуальной информации. Есть идеи: 1) Каждую систему в конкретном регионе считать узлом. 2) В каждом узле создать таблицы в БД, которые будут хранить информацию о самом узле и о взаимосвязи с другими узлами (также один из узлов считать центральным). 3) В каждом узле создать таблицы журналов: 1. в первом журнале будет вестись информация об изменениях, переданных из других узлов 2. во втором журнале будет вестись информация об изменениях, сделанных в самом узле ,при этом использовать маркер (в виде таблицы), который будет указывать на информацию, которая является актуальной (маркер необходим для того, что бы обмениваться не всей информацией, а самой последней). Далее описанием таблиц (не хватает только таблицы маркера и таблицы журналов объеденены в одну): 1. Описание узлов распределенной сети хранятся в таблице REPL_NODES: create table REPL_NODES ( /* Уникальный идентификатор узла */ ID number not null, /* Если = 1, что данный узел является собственным. В таблице может присутствовать только одна запись с IS_SELF = 1 */ IS_SELF number default 1 not null, /* GUID узла. Используется как дополнительная проверка корректности узла при обмене. */ GUID varchar2(200) not null, /* Уникальное название узла */ NAME varchar2(200) not null, /* GUID главного узла. Обновление нормативной базы может осуществляться только если у отправителя и получателя указан один и тот же главный узел. Для главного узла не заполняется. */ MAIN_GUID varchar2(200) not null, /* Адрес электронной почты, который будет использоваться для обмена данными */ EMAIL varchar2(200) not null, /* Адрес папки на FTP сервере, который будет использоваться для обмена данными */ FTP varchar2(200) not null, /* Адрес локальной папки, которая будет использоваться для обмена данными */ FILE_PATH varchar2(200) not null, /* Произвольное описание узла */ DESCR varchar2(200) not null ); 2. Описания каналов обмена данными хранятся в таблице REPL_HOLE: create table REPL_HOLE ( /* Уникальный идентификатор канала */ ID number not null, /* Ссылка на узел, с которым будет осуществляться обмен данными. В данной таблице не должна присутствовать ссылка на собственный узел. */ REPL_NODE number not null, /* Направление обмена. 0 – прием; 1 – отсылка; 2 – двусторонний; */ DIRECTION number not null, /* Порядок, в котором будет осуществляться обмен. Первым запускается обмен с наименьшим порядковым номером. */ NPP number not null, /* Способ получения данных: 1 - Из файла; 2 - По электронной почте; 3 - По FTP */ SOURCE number not null, /* Флаг, показывающий, используется данный канал в настоящее время или нет. Если канал используется, то набор полей REPL_NODES_ID – DIRECTION должен быть уникальным. */ IS_ACTIVE number not null ); 3. Журнал изменений для периферийных узлов хранится в таблице REPL_CHANGE: create table ( /* Уникальный идентификатор канала */ ID number not null, /* Ссылка на узел распределенной структуры, для которого регистрируются изменения */ REPL_NODE number not null, /* Объект, который необходимо обновить для узла, указанного в поле REPL_NODES_ID. 1 - Тип объекта; 2 – объект. В будущем возможна детализация объектов на более мелкие части */ OBJECT number not null, /* Действие, которое надо выполнить с указанным объектом: 1 - добавить; 2 - изменить; 3 – закрыть; 4 – удалить. */ ACTION number not null, /* Текущее состояние отработки изменения: 0 - Изменение готово для передачи адресату; 1 - Изменение требует лицензирования; 2 - Изменения переданы лицензирующему узлу; 3 - Изменение было отменено лицензирующим узлом; */ STATE number not null, /* Ссылка на тип объекта, который подвергся изменению. Заполняется в случае, если OBJECT = 1 */ OBJ_TYPE_ID number not null, /* Ссылка на объект, который подвергся изменению. Заполняется в случае, если OBJECT = 2 */ OBJ_ID number not null ); Кто подобным занимался, то поделитесь мнением по поводу данного механизма или посоветуйте что-нибудь. Заранее благодарен! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2009, 14:16:56 |
|
||
|
Механизм распределённой системы
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2009, 18:59:27 |
|
||
|
Механизм распределённой системы
|
|||
|---|---|---|---|
|
#18+
полезно будет ознакомится с некоторыми главами перед изобретением велосипедов тынц если чуток погуглить то можно найти где скачать в дежавю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2009, 09:58:05 |
|
||
|
|

start [/forum/topic.php?fid=16&gotonew=1&tid=1344693]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
188ms |
get topic data: |
10ms |
get first new msg: |
6ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 199ms |
| total: | 475ms |

| 0 / 0 |
