я думал будет рационально иметь постояно демона, так как подразумевается, что команд будет N кол-во и многие из которых запускают другие консольные скрипты принимающие чтение с клавиатуры
Хотелось бы сделать cmd daemon, которому можно кидать команды, но при том, что некоторые команды могут заставить поток чтения зависнуть до тех пор пока cmd не вернёт терминатор
Не подумайте, что мне было лень сделать поиск, я нашёл некоторые API для работы, но хотел узнать другие варианты или советы как подойти к решению задачи. Всё же спасибо!
Предположим, сценарий, мне нужно во всех views выводить некое сообщение, оно может быть отрегулированно позже администратором, я просто посчитал нерациональным иметь таблицу с несколькими записями или даже одной или спокойно стандартно?
А возможно ли указать определение схемы всех общих аттрибутов для миграции будущих таблиц в concern, чтобы не определять для каждой модели схему миграции, а уже подключать общие и дописывать дополнительные?
@pi314, задание заключается в том, чтобы построить чат для передачи сообщений между клиентами (так же как и личными), а так же передача файлов 1 к 1. Главное в задании использовать Multithreading + Socket Programming => Distributed Computer Systems. Итого, я выбрал 2 протокола из списка: TCP & RMI, который я могу сам имплементировать. Сейчас я не могу сделать одно, это научится передавать файл как открыл (клиент А)-выкачал(клиент Б) при помощи RMI. Я думаю всё же выйдет велосипед, этого и хочет лектор.
Если вы знаете как это сделать, я был бы очень рад)
@leahch, ммм интересно... думаю это очень подходит. Осталось прояснить логику: Клиент А порциями пишет в FileOutputStream серверу, сервер читает FileInputStream и пересылает всем регистрированным observers, который были заранее сданы серверу на это событие. Так с этим как бы разобрался.
Теперь, как Observer объект (будучи уже зарегистрированным) будет читать данные от сервера? Observer объект должен иметь ссылку на FileInputStream поток (на клиенте) и внутри update метода после notification от Observable читать с потока данные от сервера?
Если слишком неясно, то ладно. Значит мне сначало стоит поэксперементировать, а потом спрашивать).
Всё же огромное спасибо за терпение и разъяснения, думаю ещё будет что спросить.
Я понимаю, сервер ждёт события, которые уже были описаны при помощи коллбека, затем когда это события происходит, сервер запускает коллбек и выполняет задание.
Нет необходимости все использовать, поэтому я решил взять TCP и RMI. Можно использовать любые библиотеки, главное чтобы для меня это были TCP и RMI.
О паттерне мне нравится идея, я думаю её рассмотрю. Не могли бы вы хоть посоветовать, что прочесть про коллбеки в данном случае, которые вы имеете ввиду для реализации сервера?
Я бы с радостью реализовал предложенный протокол, но беда в следующем:
You must use at least two (2) proper API's and network protocols from the list below: TCP, UDP, RMI, SMTP or SSMTP, PoP3 or PoP3s, SSH.
Т.е всё упирается в использование TCP и RMI. Лектор рекомендовал тогда уж если messaging на TCP, то RMI для трансфера Client to Client, но мне от этого легче не стало. Получается мне всё же придётся реализовать свой велосипед, как бы я не хотел этого делать.
Я буду рад услышать любые предложения по реализации этого велосипеда с RMI :D
На данный момент я сузил область изучения и пришёл к тому, что мне нужно сделать PipedStreaming через RMI.
Мне очень нравится ваш подход, я обязательно с ним ознакомлюсь, он действительно хороший и более профессиональный. К сожалению из предложенных протоколов в курсаче мне пришлось выбрать TCP для Messaging и RMI для передачи файла. Я сейчас наткнулся на статью о PipedStreaming (www.certpal.com/blogs/2010/11/using-a-pipedinputst... я думаю это часть решения для моей проблемы. Пытаюсь выяснить всё же как реализовать задуманное.
Так с этим понятно. Теперь я хочу как-нибудь иметь ссылки на все threads-workers как поле-коллекции в классе Server, при том, что reseted-сокеты и их объекты-workers не могли бы находиться в коллекции. Подскажите как это лучше сделать? У меня есть идея, это просто сделать коллекцию у Server и тупо add при добавлении и при исключении reset-socket remove из коллекции. Мне хочеться всё же ассоциировать подключения и как то обращаться к workers для некоторых задач. Если брать ExecutorsService то это просто runner-pool с проверкой их статуса.