Кластер-клиент может лишиться доступа
Кластер-клиент может лишиться доступа к некоторой группе входов не только по инициативе кластера-объекта, выполнившего примитив ОТКЛЮЧЕНИЕ, но и по собственной инициативе — как автоматический результат выполнения обращений по некоторым входам из группы. Например, в результате обращения на вход CLOSE кластер-клиент теряет возможность работы с файлом. Такие входы кластера называются входами отстройки. Технически обращение на вход отстройки через некоторое подключение приводит к тому, что это подключение передается кластеру-объекту как неявный параметр. Получив этот параметр, кластер-объект оказывается его владельцем и может передать его другому кластеру-клиенту пли уничтожить (через примитив ОТКЛЮЧЕНИЕ). Таким способом осуществляется в КЛОС защита входов кластеров и контроль доступа к ним.
Если после обращения кластера-клиента к кластеру-объекту требуется передача «в обратном направлении» обратных параметров, то объект для выполнения такого ответного обращения должен иметь подключение к некоторой группе входов клиента. Ядро в этом месте не налагает никаких ограничений и вообще не различает прямые и обратные обращения. Один из возможных интерфейсов может предусматривать передачу объекту в качестве одного из прямых параметров подключения к группе входов клиента, состоящей из одного входа отстройки. В этом случае гарантируется, что на одно обращение к объекту клиент получит ровно одно ответное обращение. Симметричная схема реализует естественное обобщение сопрограммного взаимодействия («обобщение» заключается в том, что между передачей прямых параметров и получением обратных параметров кластер может выполнять любые действия асинхронно со своим партнером).
Метки: подключение, кластер-объект, КЛОС, пример, доступ