Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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.044 c
3-1085643217
Kraw
2004-05-27 11:33
2004.06.20
Программирование TDBGrid


14-1086070455
ИМХО
2004-06-01 10:14
2004.06.20
ATM-карта


1-1086233758
rtf
2004-06-03 07:35
2004.06.20
Как узнать количество дней между двумя датами?


14-1085986415
Unicode
2004-05-31 10:53
2004.06.20
PHP


14-1086155836
NailMan
2004-06-02 09:57
2004.06.20
Нужен хороший монитор сети





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский