Форум: "Corba";
Текущий архив: 2004.06.20;
Скачать: [xml.tar.bz2];
ВнизCORBA сразу и клиент и сервер возможен? Найти похожие ветки
← →
Matushkin © (2002-02-06 09:44) [0]Серверу надо посылать команды другим приложениям. Подскажите это в рамках CORBA в принципе возможно ?
← →
Олег Лаукарт © (2002-02-06 11:22) [1]Очень даже возможно. В Corba понятие сервера динамическое. Это не жесткая связка в понимании клиент-серверного подхода. Сервер, это объект (в терминах ООП), но не понятно где размещенный, который можно использовать как и другие (локальные). Иногда его надо создавать (через фабрику), а иногда нет - подключился, использовал, отключился. Нет никаких проблем, чтобы этот объект вел себя точно также с другими локальными либо удаленными объектами. Различие лишь в форме организации такого доступа, и то очень малая.
← →
Matushkin © (2002-02-07 07:36) [2]Но при попытке так сделать моё приложение начинает (по сети видно) интенсивно обращаться и становиться недоступным, пока не убьёшь его. D6, W2k(SP2).
← →
nikols © (2002-02-07 08:15) [3]Расскажи, как ты его сделал?
← →
nikols © (2002-02-07 09:59) [4]Сделал самый простой примерчик. Смотри:
http://www.corbaejb.mastak.ru/samples/SampleSC.zip
← →
Олег Лаукарт © (2002-02-07 10:48) [5]Для того, чтобы один объект посылал другим сообщения, можно воспользоваться CallBack интерфейсами. Смысл такой. Получатели создают объект для обратной связи и регистрируют его на сервере. Сервер хранит все эти интерфейсы и при необходимости посылает команды, вызывая заданный метод у каждого интерфейса.
При этом надо учитывать следующее:
1. Сервер в данном случае выступает клиентом.
2. Клиент создает скелет CallBack-объекта и должен хранить ссылку на него, пока хочет/должен получать команды.
3. Сервер, при передаче команд должен ловить и анализировать exception с целью определения ушедших клиентов и забывать такой CallBack объект.
4. У CallBack объекта метод для приема команды должен быть oneway.
Вот пример интерфейса:
interface ClientCallBack
{oneway void SendCommand (in long CommandCode, in string Message);
};
Вообще-то объясни, что ты понимаешь под командой, должен ли клиент отвечать серверу, как отвечать.
Для двусторонней связи посмотри, где-то есть статьи по организации CallBack связи.
← →
Matushkin © (2002-02-07 14:03) [6]Задача такая: на сервере рассчитывается модель физ. обьекта, на части клиентов просто отображаются различные параметры его, а вот часть клиентов им управляют. При этом они переключают физ. обьекта из одного режима работы в другой, при этом есть условие - если один из клиентов перевёл физ. обьекта в какой-то режим, то остальные управляющие клиенты должны об этом узнать. Можно конечно по таймеру опрашивать сервер со всех управляющих клиентов, но это доп. нагрузка, поэтому и хотелось бы, чтобы он сам их известил об том в каком он сейчас режиме (тем более, что переключают его относительно редко).
Спасибо за помощь
← →
nikols © (2002-02-07 17:26) [7]а не нужно ли подумать о сервисе событий?
← →
Matushkin © (2002-02-08 07:17) [8]> nikols ©
насколько я понял из описания при использовании сервиса событий сообщение будет передаваться ВСЕМ клиентам, что неоправданно загрузит сеть.
← →
Олег Лаукарт © (2002-02-08 11:06) [9]Я еще не успел познакомится с службой событий, но я нашел упомянутые мной выше статьи - очень похоже на поставленную задачу:
1."Обратные вызовы в CORBA" Технология Клиент-Сервер 1999"3.
http://www.optim.ru/cs/1999/3/corba/corba.asp
2."Использование callback-вызовов и сервисов событий в CORBA" Технология Клиент-Сервер 2000"3.
http://www.optim.ru/cs/2000/3/corba/corba_callback.asp
← →
matushkin © (2002-02-08 14:05) [10]Что-то из моей области интернета этот сайт не виден :(
← →
Олег Лаукарт © (2002-02-08 18:51) [11]Лови обе статьи на matushkin@mtu-net.ru
Страницы: 1 вся ветка
Форум: "Corba";
Текущий архив: 2004.06.20;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.045 c