511
Примеры / Re: Activity diagramm. Как направить один объектный узел сразу двум узлам управления
« : 20 Марта 2016, 17:26:39 »
Тоже быльём поросло, но я как НЛО могу встрять. Своё встревание предваряю замечанием, что, на мой взгляд, часть стандарта UML, описывающая объектные потоки в моделях деятельности, очень перемудрённая .
По стандарту fork подразумевает параллелизм, в том смысле, что он может его реализовать. Но параллелизм [после fork] возникает не во всех случаях. Если fork для объектных потоков, это значит, что любой входящий объектный токен копируется на каждый исходящий объектный поток. Если их готовы принять узлы, куда ведут потоки, то они [параллельно] проходят дальше. Если не готовы, то они стоят и ждут, когда их примут.
Datastore по стандарту не занимается рассылкой копий объектных токенов как таковой. Datastore сохраняет в себе копии всего того, что в него пришло (в единственном экземпляре). И за счёт этого "размноженный объектный токен" может пройти по разным исходящим потокам.
P. S. Два объектных потока, исходящих из деятельности, предполагают, что у неё есть два выходных параметра (объектных узла), и из каждого такого узла, в общем случае, выйдут разные объектные токены. То есть, для объектных потоков такая конструкция не аналогична fork, как в случае потоков управления. Придётся либо помещать "объектный fork" явно вне деятельности, либо моделировать размножение внутри деятельности с явным указанием двух или более однотипных out-параметров, через которые будут выходить копии токенов.
По стандарту fork подразумевает параллелизм, в том смысле, что он может его реализовать. Но параллелизм [после fork] возникает не во всех случаях. Если fork для объектных потоков, это значит, что любой входящий объектный токен копируется на каждый исходящий объектный поток. Если их готовы принять узлы, куда ведут потоки, то они [параллельно] проходят дальше. Если не готовы, то они стоят и ждут, когда их примут.
Datastore по стандарту не занимается рассылкой копий объектных токенов как таковой. Datastore сохраняет в себе копии всего того, что в него пришло (в единственном экземпляре). И за счёт этого "размноженный объектный токен" может пройти по разным исходящим потокам.
P. S. Два объектных потока, исходящих из деятельности, предполагают, что у неё есть два выходных параметра (объектных узла), и из каждого такого узла, в общем случае, выйдут разные объектные токены. То есть, для объектных потоков такая конструкция не аналогична fork, как в случае потоков управления. Придётся либо помещать "объектный fork" явно вне деятельности, либо моделировать размножение внутри деятельности с явным указанием двух или более однотипных out-параметров, через которые будут выходить копии токенов.