Диссертация (1091077), страница 20
Текст из файла (страница 20)
Разработка метода и алгоритмов решения задачисинхронизации распределенных данных в вычислительномкомплексе информационных сервисов электронногообученияОсновная особенность ВКИСЭО – это его функционирование, какцелостной/единой системы, обеспечивающей прозрачный доступ к ИСЭОразличных ОЦВК в рамках распределенных прикладных процессов ВКИСЭО. А,следовательно, в ВКИСЭО, в общем случае, одновременное внесение изменений вБД различных ОЦВК должно осуществляться синхронно, т.е.
в рамках однойтранзакции.Задача синхронного внесения изменений (а также создания/удалениязаписей) для любой распределенной системы – это практически полностью неразрешимая задача из-за ряда факторов, например: ошибка выполнения ПО,проблемы с каналами связи (коммуникациями) или с серверами обработкиданных [56].
Эта задача свойственна и для ВКИСЭО, в котором решение этойзадачи обеспечивается на следующих уровнях [56]:•на уровне данных – обеспечивается разработанной в диссертации ДМРД;•на уровне архитектуры – обеспечивается разработанной в диссертацииархитектурой ВКИСЭО;•на уровне взаимодействующих субъектов – как правило, в транзакциибудет задействовано не более двух ОЦВК;•на уровне применяемых технологий – обеспечивается мониторамитранзакций и технологией распределенных объектов;•на уровне прикладных процессов – обеспечивается разработанным вдиссертации методом отложенного синхронного внесения изменений вВКИСЭО, в основе которого разработанная в диссертации ДМПП.Уровень данных. Правильно организованное интегральное отношениеминимизирует вероятность переноса изменений из одного ОЦВК в другое, т.е. невсякое изменение в первичных записях нужно будет передавать в их вторичныезаписи [56].
Об этом детально написано в п. 3.1, а здесь кратко представимнаиболее важные особенности применения ДМРД.127В общем случае, первичная запись может состоять из следующих значений(в квадратных скобках указано: «+» или «–» – это, соответственно, означает, чтоэти значения передаются или не передаются во вторичные записи):• [–] общих ссылок, атрибуты которых не выделены в качестве поисковыхобщих ссылок;• [+] общих ссылок, атрибуты которых выделены в качестве поисковыхобщих ссылок;• [–] частных ссылок на записи из этого же ОЦВК;• [+] частных ссылок на записи из другого ОЦВК;• [–] данных, атрибуты которых не выделены в качестве поисковых свойств;• [+] данных, атрибуты которых выделены в качестве поисковых свойств.Если будут изменяться значения для поисковых свойств и поисковыхссылок, то только эти изменения будут передавать во вторичные записи.
При этомизменения поисковых частных ссылок порождает перенос изменений только в теОЦВК, на записи которых указывают эти изменившиеся ссылки, а измененияпоисковых общих ссылок и поисковых свойств порождает перенос изменений вовсе ОЦВК, которые задействованы в первичной записи.ДМРД предоставляет гибкий способ организации распределенных данных,позволяя эмпирическим путем выбрать “золотую середину” между тем, чтобыбольше или меньше выделять поисковых общих ссылок и поисковых свойств,соответственно, увеличивая или уменьшая вероятность переноса изменений вовторичные записи.
Это же относится и к вероятности обращения к первичнымзаписям из других ОЦВК при поиске необходимых первичных записей повторичным записям.Кроме того, данные, которые редко участвуют в фильтрации записей, ночасто запрашиваемые, лучше реализовывать через рассылку уведомлений.
Этопозволит уменьшить количество передаваемых данных из первичных записей в ихвторичные записи, а также уменьшит количество запросов пользователей (сцелью проверки наличия ожидаемых данных) к первичным записям, которыехранятся в других ОЦВК.128Уровень архитектуры. Об обеспечение стабильного функционированияВКИСЭО на уровне архитектуры детально написано в п.
2.4 [56]:•о трехуровневой архитектуре;•об узловом принципе построения ВКИСЭО;•о том, что элементы ядра каждого узла не принадлежат подключенным кнему ОЦВК;•о независимом обслуживании запросов в ОЦВК и в его представителе,соответственно, зарегистрированных в нем учащихся и учащихся издругих ОЦВК;•о возможности применения, например, кластерных структур;•о возможности регулировать мощностями серверов;•о целостности данных и структуры ВКИСЭО, например, в случаеотсутствия доступа к какому-либо ОЦВК.Кроме того, для повышения надежности каналов связи (коммуникаций)между серверами ВКИСЭО могут использоваться, например, корпоративные сети,надежность которых выше, чем в общедоступных сетях.Уровень взаимодействующих субъектов. Как правило, в любой первичнойзаписи, могут быть ссылки на записи только из одного другого ОЦВК [56]. Этообъясняется тем, что из другого ОЦВК будет либо лектор, либо учащийся [56].Получается, что при внесении изменений в первичные записи будут максимумзадействованы только два ОЦВК: первый ОЦВК – в нем изменяется первичнаязапись, а второй ОЦВК – в нем изменяется соответствующая вторичная запись[56].Таким образом, получается, что каждый ОЦВК может взаимодействовать сразличными ОЦВК, но в синхронном внесении изменений будет задействовано,как правило, не более двух ОЦВК.
Иными словами, получается так, как будто вВКИСЭО существуют только два взаимодействующих ОЦВК. По существу, чемменьше количество задействованных ОЦВК в первичной записи, тем большевероятность благополучного синхронного внесения изменений в эти ОЦВК.Уровень применяемых технологий.
Интерфейс монитора транзакций129позволяет взаимодействовать сразу с несколькими СУБД [56]. Технологияраспределенных объектов позволяет взаимодействовать с удаленными объектамив рамках одной транзакции [56]. Эти возможности лежат в основе исследованнойи примененной компонентной технологии Enterprise JavaBeans, которая к тому жепозволяет создавать объектную оболочку над разными реализациями БД,предоставляя,посуществу,унифицированныйобъектныйдоступкраспределенным данным в ВКИСЭО [56].Уровень прикладных процессов. Предлагается предусмотреть возможностьприменения разработанного в диссертации метода отложенного синхронноговнесения изменений [56].
Предполагается, что эта задержка будет связана либо свременным отсутствием доступа к целевой БД, либо будут учитываться такиефакторы, как загруженность сети [56]. При этом изменения будут вноситься врамках конкретного прикладного процесса (ПП) [56].Суть этого метода рассмотрим на примере [56]. В A-м ОЦВК на L-м шагеприкладного процесса изменяется запись, и должны быть переданы изменения вB-й ОЦВК, а последний оказывается недоступным [56]. Тогда указанныеизменения не должны быть выполнены и в A-м ОЦВК. Однако необходимосохранить это предполагаемое изменение в специальном для этого месте БД A-гоОЦВК [56].
При этом пользователь с L-го шага должен быть переведен напромежуточный L’-й шаг [56]. Когда B-й ОЦВК будет снова доступен, то этосохраненное предполагаемое изменение должно быть автоматически выполнено врамках одной транзакции [56]. Если результатом такого выполнения будетошибка (например, пользователь изначально передал некорректные данные, илиистекло допустимое время ожидания доступности B-го ОЦВК), то причина еёвозникновения должна быть доступна пользователю на L’-м шаге [56].На рисунке 4.4 представлен пример фрагмента логики выполнения ПП вA-м ОЦВК. Предположим, что на L-м шаге ПП делаются такие изменения,которые должны быть синхронно внесены в A-й и в B-й ОЦВК.
Если при попыткевнести изменения на L-м шаге выяснилось, что B-й ОЦВК недоступен длявнесения изменений, то предполагаемое изменение сохраняется в специальном130месте БД A-го ОЦВК, а пользователь переходит на промежуточный L’-й шаг ППA-го ОЦВК.По существу, промежуточный L’-й шаг нужен для следующего:•сохранить предполагаемое изменение в специальном месте БД, чтобыпотом автоматически выполнить его специальной программой пообработке таких сохраненных предполагаемых изменений;•если после автоматической обработки сохраненного предполагаемогоизменения возникнет какая-либо ошибка, то она должна бытьпредоставлена пользователю на этом шаге;•еслиавтоматическаяобработкасохраненногопредполагаемогоизменения пройдет успешно, то дальнейшее выполнение ПП должнобыть таким же, каким оно было бы, если бы L’-й шаг вовсе неиспользовался.
Например, на рисунке 4.4(a) указано, что переход с L-гошага может быть либо на этот же L-й шаг, либо на следующий (L+1)-йшаг. Поэтому при переходе с L’-го шага должно быть соответствующееповедение ПП. Это продемонстрировано на рисунке 4.4(b);•чтобы пользователь видел, что переход на следующий шаг не выполнен.На промежуточном L’-м шаге пользователю могут быть доступныследующие кнопки [56]:•Кнопка “Удалить изменение” – эта кнопка доступна только до тех пор,пока сохраненное предполагаемое изменение не будет выполнено. Спомощью этой кнопки пользователь может удалить это изменение,вернувшись на L-й шаг (параметр перехода: «delete»), например, чтобыпо-иному задать изменение.•Кнопка “Назад” – эта кнопка доступна только после того, когдапроизошла ошибка в результате автоматической обработки сохраненногопредполагаемого изменения, например: истекло допустимое времяожидания доступности B-го ОЦВК, или пользователь изначальнопередал некорректное изменение.
В таком случае пользователю на L’-мшаге будет предоставлен текст ошибки. С помощью этой кнопки можно131вернуться на L-й шаг (параметр перехода: «back»), чтобы, например,скорректировать изменение и повторить внесение изменений.•Кнопка “Продолжить” – эта кнопка доступна только в том случае, еслисохраненное предполагаемое изменение было благополучно выполнено,а пользователь в этот момент находился на экранной форме L’-го шага.Пользователь либо нажимает на эту кнопку (параметр перехода:«continue»), либо закрывает экранную форму L’-го шага и повторнозаходит. В обеих ситуациях L’-й шаг уже не будет доступен, посколькувыполнениеприкладногопроцессабудетпродолженосогласнонастроенной в нем логики: будет переход на шаг, который должен бытьпосле благополучного внесения изменений на L-м шаге.В диссертации разработаны следующие алгоритмы для ВКИСЭО [56]:• алгоритм перехода на промежуточный шаг (рисунок 4.5);• алгоритм обработки сохраненных предполагаемых изменений (рисунок 4.6).• алгоритм поведения пользователя на промежуточном шаге (рисунок 4.7);НачалоНачало******(L-1)-й шагL-й шагPARAM1=P1PARAM1=P1;PARAM3=continue;PARAM3=back;PARAM3=delete(L-1)-й шагL-й шагPARAM1=P2(L+1)-й шагL’-й шагPARAM1=P1;PARAM2=ErrorPARAM1=P1;PARAM2=Not_ErrorPARAM1=P2;PARAM2=Not_Error(L+1)-й шагPARAM1=P2; PARAM3=continue******ЗавершениеЗавершениеa)b)Рисунок 4.4 – Пример фрагмента схемы логики выполнения прикладного процесса в ВКИСЭО:a) прикладной процесс без промежуточного шага;b) прикладной процесс с промежуточным шагом132началоСформировано изменение на L-м шагеДоступны все ОЦВК,задействованные в изменении?НетПредполагаемоеизменениесохраняется в БДДаИзменениевносится на L-мшаге во всезадействованныеОЦВКПользовательпереведен напромежуточныйL’-й шагконецРисунок 4.5.