| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Работа с сетью > Архитектура Клиента????? |
| Автор: CMYK 17.10.2009, 08:37 |
| Подскажите пожалуйста какая длжна быть архитектура клиента, если например, приходит сообщение, пусть будет h1, исходя из этого сообщения клиент понимает, что ему ножно выполнить долгосрочную или не очень задачу, при этом в процессе выполнения задачи он должен принимать дополнительные сообщения. Так вот сколько и на, что нужно выделить потоки? |
| Автор: COVD 17.10.2009, 18:15 | ||
Если речь идет о том, что приходит сообщение извне и что-то делается в ответ - это все же не клиент, а наверное сервис или сервер.
приложение в ходе выполнения задания только может при необходимости запрашивать дополнительную информацию (например, у других приложений) |
| Автор: Maksym 17.10.2009, 18:53 |
| CMYK Standalone сервис номер1 -- висит на приемке сообщений. Все что он делает:
Standalone сервис номер2 -- обрабатывает очередь сообщений Что умеет он:
Можно еще сервис3, который будет мониторить буфер обмена2 и сообщать результаты обработки куда надо. Получится весьма масштабируемое решение. Можно еще сервис4, который будет проверять консистентность трех предыдущих и бороться за их живучесть (рестартовать и т.п.), а так же следить за состоянием буферов обмена (переполнение, дубликаты и т.п.) и предпринимать какие-то действия на этот счет (сообщать куда надо, чистить и т.п.). Совершенству нет предела |
| Автор: CMYK 17.10.2009, 22:05 |
| Я наверно не полностью описал задачу. Попробую так. Мне нужно организовать передачу данных между приложениями например: есть приложение которое думает там себе чего то, выполняет разные задачи. Захотелось ему подключиться к интернету (первое что пришло в голову), это приложение отправляет команду другому приложению которое отвечает за подключение\отключение к интернету и выводу различной информации об этом подключении на экран. Допустим потом захотелось ему вычислить площадь круга и еще выполнить несколько задач, для этого также есть отдельные модули которые выполняют эти задачи (один модуль на выполнение какой то определенной цели). Я так подумал подходит сервер клиент к такой ситеме. Поэтуму мне нужно узнать какая должна быть архитектура такого клинта, чтобы можно было дать задание, а при необходимости дать еще дополнительное задание. Может быть есть другие технологии которые лучше адаптированы к такому подходу? |
| Автор: CMYK 17.10.2009, 23:24 |
| И еще.. почему именно такой подход.. мне нужно время от времени добавлять новые модули которые выполняют задачи и чтобы не перекомпилировать прогу я подумал, что так будет рациональней. И потом.. все эти модули не всегда будут нужны, а только по требованию и их может накопиться приличное колличество. |
| Автор: Maksym 17.10.2009, 23:56 |
Да, похоже я зря старался Сервер-клиент в данном случае не совсем то. Нужна шина, на которой будут регистрироваться и висеть твои сервисы, через нее же они будут предоставлять свои услуги. Ты просто говориш шине: "Хочу интернет, вот логин, пароль", "Хочу пдф, вот данные для него", а шина знает где искать нужный сервис, как в него впихнуть входные данные, как вернуть результат. На энтерпрайзном уровне аналогичная технология это http://en.wikipedia.org/wiki/Enterprise_service_bus. |
| Автор: CMYK 18.10.2009, 00:46 | ||
От чего же зря? Это тоже интересно. Шина значит и ESB. буду разбираться, спасибо за помощь. |
| Автор: COVD 18.10.2009, 04:01 | ||
|
| Автор: CMYK 18.10.2009, 05:47 | ||||
Я тоже так думаю |
| Автор: firedrago 18.10.2009, 11:34 |
| мое мнение, для подобных задач, надо прекращать изобретать велосипеды..... ведь много умных дядек сидят и делают разные фреймворки.... почему бы не строить подобные программы например основываясь на http://ru.wikipedia.org/wiki/OSGi, наделал кучу плагинов и включаешь/выключаешь их когда надо... сделал например один интерфэйс для соединений сделал плагин например на основе http://mina.apache.org/ и включил его когда надо.... надоела Mina, взял другой фреймворк, подогнал под свой интерфэйс и все.... я использую http://www.eclipse.org/rcp/ и очень доволен — большую часть работы за меня уже давно сделали, остается только бизнес логика.... |