Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

CORBA сразу и клиент и сервер возможен?


Matushkin ©   (2002-02-06 09:44:00) 

Серверу надо посылать команды другим приложениям. Подскажите это в рамках CORBA в принципе возможно ?


Олег Лаукарт   (2002-02-08 18:51:00) [1]

Лови обе статьи на matushkin@mtu-net.ru


matushkin   (2002-02-08 14:05:00) [2]

Что-то из моей области интернета этот сайт не виден :(


Олег Лаукарт   (2002-02-08 11:06:00) [3]

Я еще не успел познакомится с службой событий, но я нашел упомянутые мной выше статьи - очень похоже на поставленную задачу:
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 07:17:00) [4]

> nikols ©

насколько я понял из описания при использовании сервиса событий сообщение будет передаваться ВСЕМклиентам, что неоправданно загрузит сеть.


nikols   (2002-02-07 17:26:00) [5]

а не нужно ли подумать о сервисе событий?


Matushkin   (2002-02-07 14:03:00) [6]

Задача такая: на сервере рассчитывается модель физ. обьекта, на части клиентов просто отображаются различные параметры его, а вот часть клиентов им управляют. При этом они переключают физ. обьекта из одного режима работы в другой, при этом есть условие - если один из клиентов перевёл физ. обьекта в какой-то режим, то остальные управляющие клиенты должны об этом узнать. Можно конечно по таймеру опрашивать сервер со всех управляющих клиентов, но это доп. нагрузка, поэтому и хотелось бы, чтобы он сам их известил об том в каком он сейчас режиме (тем более, что переключают его относительно редко).
Спасибо за помощь


Олег Лаукарт   (2002-02-07 10:48:00) [7]

Для того, чтобы один объект посылал другим сообщения, можно воспользоваться CallBack интерфейсами. Смысл такой. Получатели создают объект для обратной связи и регистрируют его на сервере. Сервер хранит все эти интерфейсы и при необходимости посылает команды, вызывая заданный метод у каждого интерфейса.
При этом надо учитывать следующее:
1. Сервер в данном случае выступает клиентом.
2. Клиент создает скелет CallBack-объекта и должен хранить ссылку на него, пока хочет/должен получать команды.
3. Сервер, при передаче команд должен ловить и анализировать exception с целью определения ушедших клиентов и забывать такой CallBack объект.
4. У CallBack объекта метод для приема команды должен быть oneway.
Вот пример интерфейса:
interface ClientCallBack
{oneway void SendCommand (in long CommandCode, in string Message);
};
Вообще-то объясни, что ты понимаешь под командой, должен ли клиент отвечать серверу, как отвечать.
Для двусторонней связи посмотри, где-то есть статьи по организации CallBack связи.


nikols   (2002-02-07 09:59:00) [8]

Сделал самый простой примерчик. Смотри:
http://www.corbaejb.mastak.ru/samples/SampleSC.zip


nikols   (2002-02-07 08:15:00) [9]

Расскажи, как ты его сделал?


Matushkin   (2002-02-07 07:36:00) [10]

Но при попытке так сделать моё приложение начинает (по сети видно) интенсивно обращаться и становиться недоступным, пока не убьёшь его. D6, W2k(SP2).


Олег Лаукарт   (2002-02-06 11:22:00) [11]

Очень даже возможно. В Corba понятие сервера динамическое. Это не жесткая связка в понимании клиент-серверного подхода. Сервер, это объект (в терминах ООП), но не понятно где размещенный, который можно использовать как и другие (локальные). Иногда его надо создавать (через фабрику), а иногда нет - подключился, использовал, отключился. Нет никаких проблем, чтобы этот объект вел себя точно также с другими локальными либо удаленными объектами. Различие лишь в форме организации такого доступа, и то очень малая.


Наверх

Титульная страница Поиск, карта сайта Написать письмо