Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.06.20;
Скачать: CL | DM;

Вниз

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 вся ветка

Текущий архив: 2004.06.20;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.038 c
6-1083365117
greybox
2004-05-01 02:45
2004.06.20
TWebBrowser


3-1085676104
JurMax
2004-05-27 20:41
2004.06.20
Компоненты для чтения DXF формата


1-1086669113
Анатолий
2004-06-08 08:31
2004.06.20
BDE снесли без унинстала, как его удалить из реестра?


3-1085647953
Marik
2004-05-27 12:52
2004.06.20
Поиск по дате


14-1086041201
lak
2004-06-01 02:06
2004.06.20
зацените и скажите