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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Архитектура Клиента????? 
:(
    Опции темы
CMYK
Дата 17.10.2009, 08:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Подскажите пожалуйста какая длжна быть архитектура клиента, если например, приходит сообщение,  пусть будет  h1, исходя из этого сообщения клиент понимает, что ему ножно выполнить долгосрочную или не очень задачу, при этом в процессе выполнения задачи он должен принимать дополнительные сообщения. Так вот сколько и на, что нужно выделить потоки?

PM MAIL   Вверх
COVD
Дата 17.10.2009, 18:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 26.7.2005

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



Если речь идет о том, что приходит сообщение извне и что-то делается в ответ - это все же не клиент, а наверное  сервис или сервер.

Цитата

в процессе выполнения задачи он должен принимать дополнительные сообщения


приложение в ходе выполнения задания только может при необходимости запрашивать дополнительную информацию (например, у других приложений)

Это сообщение отредактировал(а) COVD - 17.10.2009, 18:50
PM MAIL   Вверх
Maksym
Дата 17.10.2009, 18:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


.
***


Профиль
Группа: Участник Клуба
Сообщений: 1456
Регистрация: 19.8.2005
Где: Odessa, Black Sea

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



CMYK
Standalone сервис номер1 -- висит на приемке сообщений.
Все что он делает:
  • принял сообщение
  • залогировал это факт
  • положил соощение в некий буфер обмена1 (это может быть таблица в базе данных, Message Queue или какой нибудь другой mail box)
  • залогировал и это факт тоже
  • если нужно нотифицировал того кто прислал сообщение, что оно принято к рассмотрению
  • это тоже можно залогировать
Этот сервис желательно поднять в каком-нибудь готовом сервере, который возьмет на себя заботу о соединениях и потоках на их обработку.

Standalone сервис номер2 -- обрабатывает очередь сообщений
Что умеет он:
  • достает сообщение из буфера обмена1 (при этом локирует его -- чтобы никто другой не взялся его обрабатывать, но не удаляет -- чтобы не потерять в случае сбоя в процессе обработки)
  • логирует это дело
  • обрабатывает его
  • логирует
  • кладет результат в буфер обмена2 (адекватную структуру так же подбираем по ситуации)
  • логирует это
  • удаляет залокированое сообщение в буфере обмена1
  • конечно логирует, что наделал
  • берется за следующее сообщение
Этих ребят можно поназапускать кучу, на разных боксах, вобщем поиграться, чтобы добиться приемлимой производительности.

Можно еще сервис3, который будет мониторить буфер обмена2 и сообщать результаты обработки куда надо.

Получится весьма масштабируемое решение.

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

Это сообщение отредактировал(а) Maksym - 17.10.2009, 19:00
PM MAIL   Вверх
CMYK
Дата 17.10.2009, 22:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Я наверно не полностью описал задачу.
Попробую так. Мне нужно организовать передачу данных между приложениями например: есть приложение которое думает там себе чего то, выполняет разные задачи. Захотелось ему подключиться к интернету (первое что пришло в голову), это приложение отправляет команду другому приложению которое отвечает за подключение\отключение к интернету и выводу различной информации об этом подключении на экран. Допустим потом захотелось ему вычислить площадь круга и еще выполнить несколько задач, для этого также есть отдельные модули которые выполняют эти задачи (один модуль на выполнение какой то определенной цели). Я так подумал подходит сервер клиент к такой ситеме. Поэтуму мне нужно узнать какая должна быть архитектура такого клинта, чтобы можно было дать задание, а при необходимости дать еще дополнительное задание.
Может быть есть другие технологии которые лучше адаптированы к такому подходу?
PM MAIL   Вверх
CMYK
Дата 17.10.2009, 23:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



И еще.. почему именно такой подход.. мне нужно время от времени добавлять новые модули которые выполняют задачи и чтобы не перекомпилировать прогу я подумал, что так будет рациональней. И потом.. все эти модули не всегда будут нужны, а только по требованию и их может накопиться приличное колличество.
PM MAIL   Вверх
Maksym
Дата 17.10.2009, 23:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


.
***


Профиль
Группа: Участник Клуба
Сообщений: 1456
Регистрация: 19.8.2005
Где: Odessa, Black Sea

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



Цитата(CMYK @  17.10.2009,  21:05 Найти цитируемый пост)
Я наверно не полностью описал задачу.

Да, похоже я зря старался  smile Ну да ладно. 
Сервер-клиент в данном случае не совсем то. Нужна шина, на которой будут регистрироваться и висеть твои сервисы, через нее же они будут предоставлять свои услуги. Ты просто говориш шине: "Хочу интернет, вот логин, пароль", "Хочу пдф, вот данные для него", а шина знает где искать нужный сервис, как в него впихнуть входные данные, как вернуть результат.
На энтерпрайзном уровне аналогичная технология это ESB.

PM MAIL   Вверх
CMYK
Дата 18.10.2009, 00:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(Maksym @ 17.10.2009,  23:56)
Да, похоже я зря старался  smile Ну да ладно.

От чего же зря? Это тоже интересно.
Шина значит и ESB. буду разбираться, спасибо за помощь. 
PM MAIL   Вверх
COVD
Дата 18.10.2009, 04:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 26.7.2005

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



Цитата

приложение которое думает там себе чего то

 smile 
PM MAIL   Вверх
CMYK
Дата 18.10.2009, 05:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(COVD @ 18.10.2009,  04:01)
Цитата

приложение которое думает там себе чего то

 smile

Я тоже так думаю  smile 
PM MAIL   Вверх
firedrago
Дата 18.10.2009, 11:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



мое мнение, для подобных задач, надо прекращать изобретать велосипеды..... ведь много умных дядек сидят и делают разные фреймворки.... почему бы не строить подобные программы например основываясь на OSGI, наделал кучу плагинов и включаешь/выключаешь их когда надо... сделал например один интерфэйс для соединений сделал плагин например на основе Apache Mina и включил его когда надо.... надоела Mina, взял другой фреймворк, подогнал под свой интерфэйс и все....   я использую Eclipse RCP  и очень доволен — большую часть работы за меня уже давно сделали, остается только бизнес логика....

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

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

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


 




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


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

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