Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
компьютерная техника (конспектировать ).docx
Скачиваний:
66
Добавлен:
05.11.2018
Размер:
1.56 Mб
Скачать

Правила непротиворечивых данных

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

2. Обязанность аналитика - гарантировать, что данные, требуемые действием, непротиворечивы или что действие предусматривает противоречивость, обусловленную временем распространения. Мы уже видели это на простом примере Клиент-Клерк. Напомним, что когда конечный автомат Определителя Обслуживания входил в состояние 1, он искал клиента с состоянием "Ожидание свободного клерка" и не проявлялся в экземпляре Обслуживания именно по этой причине.

Правила событий

1. Событие никогда не исчезает: каждое событие достигнет конечного автомата или терминатора, к которому оно направлено.

2. Событие используется, когда принимается конечным автоматом, затем исчезает как событие и не может повторно использоваться.

Это правило аналогично большинству механизмов задач взаимодействия, в которых сообщение не может быть получено дважды. Как только сообщение принято, оно исчезает как сообщение.

3. Когда событие порождается, оно сразу становится доступным для конечного автомата или терминатора, к которому направлено.

4. Когда экземпляр завершает действие, то считается, что он теперь находится в новом состоянии. Тогда

  • экземпляр затребует доступное событие, направленное к нему, если вообще такие события существуют в. это время (одновременная интерпретация);

  • в какое-то неопределенное время после завершения действия конечный автомат примет новое доступное событие, если вообще такое существует (чередуемая интерпретация).

5. Многократные события могут выступать в роли ожидающих обработки данным конечным автоматом.

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

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

6. Если конечный автомат порождает многократные события для одного принимающего экземпляра, события будут получены в сгенерированном порядке.

7. Если имеются ожидающие обработки события для некоторого конечного автомата, которые были порождены различными отправителями, то не определено, какое событие будет принято сначала.