n:T n:T n n Процесс Типы вершин: 1 2 3 4 Типы дуг: для

advertisement
Процесс
Типы вершин:
1
n:T
2
n:T
Клиентский порт.
Отправка запроса.
Получение ответа.
Серверный порт.
Получение запроса.
Отправка ответа.
3
n
Начальный
метод процесса.
4
n
Метод процесса.
Типы дуг:
для обозначения потока управления
1,2
3,4
n
1->(3|4):
2->(3|4):
Переход от порта к методу,
если поступило данное сообщение
port: Type ! Message -> method;
port: Type ? Message -> method;
1,2
3,4
Переход от порта к методу
по умолчанию
1->(3|4): port: Type ! -> method; или port: Type ! x->Y | -> method;
2->(3|4): port: Type ? -> method; или port: Type ! x->Y | -> method;
3,4
+
3->(3|4):
4->(3|4):
3,4
3->(3|4):
4->(3|4):
3,4
Переход от метода к методу,
если метод завершился успешно
+method() -> method1;
method() -> method1;
3,4
Переход от метода к методу,
если метод завершился неуспешно
+method() -> | method1;
method() -> | method1;
Типы дуг:
для обозначения потока данных
3,4
1,2
n
Отправка сообщения в порт
(3|4)->(1|2): method(port ! Message);
1,2
3,4
n
Чтение сообщения из порта
(1|2)->(3|4): method(port ? Message);
для обозначения составного потока управление-данные
1,2
3,4
n
Переход от порта к методу,
если поступило данное сообщение.
Метод считывает данное сообщение
1->(3|4): port: Type ! Message -> method; method(port?Message);
2->(3|4): port: Type ? Message -> method; method(port?Message);
n
1,2
3,4
n
Конструкция соответсвует двум
дугам, помеченным одним и тем же
сообщением. В силу того, что эта
конструкция является типовой,
вводится специальная дуга.
Канал
Типы вершин:
1
Состояние
клиентского порта.
N
3
2
N
Начальное состояние
(клиентского порта).
Состояние
серверного порта.
N
Типы дуг:
1,2,3
n
1,2,3
Переход между состояниями,
при передаче данного сообщения.
1->(1|2|3)
State ? Message -> NewState;
2->(1|2|3)
State ! Message -> NewState;
3->(1|2|3) +State ? Message -> NewState;
Download