Семенов В.А., Морозов С.В., Тарлапан О.А., Энкович И.В.
Труды Института системного программирования РАН
Работа коллектива поддержана РФФИ (грант 07-01-00427).
Коллекции могут использоваться для реализации множественных ассоциативных связей между объектными типами. В языках объектно-ориентированного моделирования имеется возможность для каждой прямой ассоциации объявить соответствующую инверсную, которая представляется, как правило, неупорядоченным множеством или мультимножеством объектных ссылок и налагает дополнительные семантические ограничения (уникальности или мощности множественной ассоциации) на исходную модель.
Пусть
и
— объектные типы,
— прямая множественная
ассоциация,
— соответствующая ей
инверсная. Будем считать, что в качестве прямой ассоциации может быть
использована произвольная коллекция, в качестве инверсной — set или multiset. Поскольку
модификация прямой ассоциации подразумевает симметричную коррекцию инверсной,
операции установления и отмены ассоциативных отношений связаны логической
эквивалентностью следующим образом:
,
,
,
. Поэтому данные операции обязаны совместно участвовать в
итоговой транзакции.
Если инверсная ассоциация представляется множеством, то дополнительно устанавливается ограничение уникальности инверсного отношения. При сочетании в качестве прямой и инверсных ассоциаций различных коллекций более строгое ограничение уникальности в итоге распространится на обе ассоциативные связи. Таким образом, возможны следующие варианты сочетания прямых и инверсных коллекций: «set–set», «multiset–multiset», «list–multiset», «ordered set–set».
Нарушение ограничения уникальности прямой ассоциации автоматически приводит к аналогичному нарушению на стороне инверсной. Поэтому наличие инверсного ассоциативного отношения с уникальными элементами не вносит дополнительных корректив в способы представления и формирования дельты, а также в методы разрешения конфликтов, описанные в предыдущих разделах.
Более интересным с этой точки зрения представляются
ограничения мощности множественной ассоциации
,
,
. В данном случае корректное представление дельты
предполагает выполнение следующих условий:
В силу отношений логической эквивалентности операций над прямыми и обратными ассоциациями, условия приобретают вид:
В случае конкурентных транзакций
данные условия должны
выполняться также для консолидированной дельты
.
Таким образом, рассмотрены основные типы коллекций, поддерживаемые популярными языками объектно-ориентированного моделирования. Для них определены способы представления, журнализации, вычисления, принятия и согласования изменений. Для каждого выделенного типа дается строгая, семантически состоятельная интерпретация конфликтов и предлагается конструктивный метод их идентификации и разрешения. Результаты предполагается использовать при создании универсальной, основанной на модельном представлении среды коллективной инженерии с развитыми возможностями семантически корректной и функционально содержательной реконсиляции дивергентных реплик данных.