1) По поводу общения — у нас задача передаеться не вычислителю, а программе(ЗАГРУЗЧИК) которая порождает вычислители. То есть на удаленном компьютере запускаеться программа, готовая получить проект для вычесления. После получения проекта она запускает собственно вычислитель, вычислитель регистрируеться в сервере CORBA имен и собственно начинает вычисления. Все взаимодействие с ним производиться по зарегисрированному имени. А программа ЗАГРУЗЧИК сразу же готова принять следующий проект. У нас нет понятия решенности задачи, так как программа GUI по управлению выполнением задачи дергает вычислителей раз 50 в секунду, такова специфика задачи.
2) У нас есть аналог диспетчера в вашем понимании, именно он забирает готовый проект из хранилища проектов и передает их ЗАГРУЗЧИКАМ, все загрузчики обязаны при старте регистрироваться в диспетчере, для этого они используют сервер имен CORBA, а именно генерируют уникальное имя и регистрируютсья под ним в сервере имен, а затем передают это имя диспетчеру.
http://sistem.perm.ru/service/developers/system_modeling/
По поводу вопросов(ИМХО):
1) Клиент сам должен передавать задачи диспетчеру, если диспетчер не способен выполнить задачу немедленно, то он сохраняет её в своем хранилище. При передачи задачи клиент передает и свое имя в сервере имен CORBA и идентификатор задачи, этот идентификатор и дергает агент при выполнении задачи, тем самым говоря клиенту что задача с таким то ID выполнена.
2)
— при старте агент регистрируеться в диспетчере — у нас также сделано, по моему довольно удобная схема.
— диспетчер передает задания агенту, а лучше не агенту, а ЗАГРУЗЧИКУ, при это ЗАГРУЗЧИК может отказатся взять задачу на выполнение если ресурсов осталось мало.
K>Да я тоже склоняюсь к CORBA. У меня еще есть вопросы по архитектуре — точнее даже по вызовам в системе.... << RSDN@Home 1.1.4 beta 3 rev. 185>>