Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Может ли RMI-сервер вызвать метод RMI-клиента ? 
V
    Опции темы
VAB
Дата 20.10.2010, 03:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 12.10.2006
Где: WwW

Репутация: нет
Всего: нет



Здравствуйте!

Ситуация такая: есть RMI-сервер и RMI-клиент. Клиент вызывает методы сервера и получает все необходимые данные. Но теперь надо сделать так, чтобы после того как на сервере обновилась сумма счета пользователя, она должна обновляться в соответствующем поле в клиентской программе. Т.е. клиент должен принимать запрос от сервера.

Можно ли это сделать на RMI и как? Если нельзя, то что посоветуете выбрать?

PS Опрос клиентом сервера по периоду не подходит - возрастет ненужная нагрузка на сервер сродни DDOS-атаке.

Заранее спасибо!
PM MAIL WWW ICQ Skype   Вверх
sergioK
Дата 20.10.2010, 10:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 207
Регистрация: 15.2.2008

Репутация: нет
Всего: нет



Цитата(VAB @ 20.10.2010,  03:28)
Здравствуйте!

Ситуация такая: есть RMI-сервер и RMI-клиент. Клиент вызывает методы сервера и получает все необходимые данные. Но теперь надо сделать так, чтобы после того как на сервере обновилась сумма счета пользователя, она должна обновляться в соответствующем поле в клиентской программе. Т.е. клиент должен принимать запрос от сервера.

Можно ли это сделать на RMI и как? Если нельзя, то что посоветуете выбрать?

PS Опрос клиентом сервера по периоду не подходит - возрастет ненужная нагрузка на сервер сродни DDOS-атаке.

Заранее спасибо!

то есть клиент он одновременно и клиент  и сервер , RMI это 100% 
уу Яна Дарвина в книге есть пример 
PM MAIL   Вверх
jk1
Дата 20.10.2010, 10:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1168
Регистрация: 17.10.2008
Где: Санкт-Петербург

Репутация: 2
Всего: 75



Есть такой прием, RMI Callback. Он позволяет серверу вызывать методы клиента. 
Описание и пример.


--------------------
Opinions are like assholes — everybody has one
PM MAIL   Вверх
Skipy
Дата 20.10.2010, 12:54 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 487
Регистрация: 24.8.2006
Где: Москва, Россия

Репутация: 4
Всего: 16



Цитата(jk1 @ 20.10.2010,  10:42)
Есть такой прием, RMI Callback. Он позволяет серверу вызывать методы клиента. 
Описание и пример.

Особенно он хорош при наличии какого-нибудь десятка тысяч клиентов, которые сервер должен уведомлять. Лучший способ завалить сервер быстро и качественно.

Добавлено @ 13:00
Цитата(VAB @ 20.10.2010,  03:28)
Можно ли это сделать на RMI и как? Если нельзя, то что посоветуете выбрать?

PS Опрос клиентом сервера по периоду не подходит - возрастет ненужная нагрузка на сервер сродни DDOS-атаке.

Можно, но не нужно. Сервер ПРЕДНАЗНАЧЕН для опросов. И при нормальном построении pull даже раз в секунду от 10000 клиентов он выдержит спокойно. 

А вот уведомление этих же 10000 клиентов раз в секунду - оно его завалит. Особенно когда пятьсот клиентов уже отвалилось, полторы тысячи сидит за прокси, у трех тысяч слабый канал и длительные задержки.  Всё это ляжет на плечи сервера - и обработка ошибок соединений, и поддержка списка активных клиентов - неблагодарное занятие, - и ожидания при передаче. 

А на деле в конце концов окажется, что обновления раз в минуту было более чем достаточно, и его можно было свободно инициировать со стороны клиента.

В общем, я Вам настоятельно рекомендую сначала сделать стандартный вариант - периодический опрос. И посмотреть, действительно ли нагрузка на сервер возрастет настолько, что с этим надо разбираться таким образом. И не является ли возрастание нагрузки следствием неграмотно написаного серверного кода.

Это сообщение отредактировал(а) Skipy - 20.10.2010, 13:01


--------------------
С уважением,
Евгений aka Skipy
www.skipy.ru
PM MAIL WWW ICQ   Вверх
VAB
Дата 21.10.2010, 03:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 12.10.2006
Где: WwW

Репутация: нет
Всего: нет



Разобрался - во всех случаях происходит передача удаленного объекта с клиента на сервер. 
Ян Дарвина просто посмотрел, второй пример немного улучшил и упростил.
Что касается философии проектирования - есть над чем подумать. В данном случае достаточно не то что раз в минуту обновлять, а вообще предоставить пользователю самому обновлять поле. Если учесть вышесказанное про прокси и отвалившиеся клиенты, то резонно пока сделать односторонний вызов.

Благодарю всех за ответы, очень ценная для меня инфа!

 

Присоединённый файл ( Кол-во скачиваний: 13 )
Присоединённый файл  RMI_CallBack.rar 2,23 Kb
PM MAIL WWW ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Работа с сетью | Следующая тема »


 




[ Время генерации скрипта: 0.0449 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.