powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Java EE и показания ваттметра в реальном времени по сети
16 сообщений из 16, страница 1 из 1
Java EE и показания ваттметра в реальном времени по сети
    #37834926
iPOJO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую всех, кто сюда заглянул!
Есть прибор, который делает измерения в реальном времени электрических параметров. Сервер слушает его и постоянно снимает значения к себе в буфер. А вот дальше это нужно передавать на удаленный клиент. Очень бы хотелось, чтобы клиент работал в браузере, желательно на Flex.
В связи с этим вопрос - насколько экономичными окажутся вызовы методов сервлета, если соединить JavaEE и Flex-клиент через BlazeDS?
Предполагается снимать пять параметров float с одного прибора каждые 0,2 секунды. Самих приборов может быть несколько, так что чем экономичнее решение, тем лучше. Сколько одновременно отображать приборов в клиенте - как раз и зависит от выбранного способа связи.

Можно было бы на сокетах сделать, но ведь всякие прокси и файерволы как всегда... Хотелось бы чисто HTTP. Можно ли какой-то канал сделать с Java-сервером? Есть ли такие функции у GraniteDS и LiveCycle? Какие ещё варианты под браузер кроме Flex можно выбрать для этой задачи?
...
Рейтинг: 0 / 0
Java EE и показания ваттметра в реальном времени по сети
    #37834989
rrrrrrrr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Comet, но чтобы не было проблем с фаерволами надо https будет использовать.
...
Рейтинг: 0 / 0
Java EE и показания ваттметра в реальном времени по сети
    #37835063
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iPOJO,

При чём здесь всякие прокси и файрволы? Делайте свои вэб-запросы из-под флекса, или вообще, из-под хтмл-странички аяксом, раз в 0.2 секунды, и отображайте тем же флексом или хтмл. Если 0.2 секунды запроса с клиента окажется не очень хорошо, то подберите частоту (имею ввиду клиентских запросов для отображения).
...
Рейтинг: 0 / 0
Java EE и показания ваттметра в реальном времени по сети
    #37835174
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну почему же? По long-polling GraniteDS впереди планеты всей flex-фреймвоков. Называется Gravity, настраивается очень просто (на всякий случай - это не сокет, а long-polling, запрос висит до результата или таймаута). Соединив с Message Broker/JMS (ActiveMQ), можно получить неплохое решение.
Но сокет есть сокет - "отзывчивость" клиента выше. Хотя тебе может и некритично. Как вариант, который попробовал - готовый мультимедийный сокет-сервер (типа Wowza, SFS, Red5, после сравнения использовал SFS). Просто решение "из коробки" с массой примеров, настраивается очень и очень просто, платный, но 100-юзерная девелоперская версия бесплатна и даже может использоваться в готовых проектах не-помню-на-какой-лицензии, но с указанием сервера. Прелесть в том, что а) полностью заменяет веб-сервер (Jetty на борту); б) стартануть или потестить при средней профессиональной подготовке можно на час - примеры помогут; в) админка на высоте; г) очень неплохая поддержка. Делал мультплеер на нем, все были поражены "отзывчивостью" клиента. Кстати, базируется на Mina.
...
Рейтинг: 0 / 0
Java EE и показания ваттметра в реальном времени по сети
    #37835280
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Стоит упомянуть что java не слишком оптимальный выбор для приложений реалтайм, время задержки может непредсказуемо меняться изза Jit-компиляции, GC, и т.д. Есть конечно real-time java, но она вроде платная.
...
Рейтинг: 0 / 0
Java EE и показания ваттметра в реальном времени по сети
    #37835285
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл никСтоит упомянуть что java не слишком оптимальный выбор для приложений реалтайм, время задержки может непредсказуемо меняться изза Jit-компиляции, GC, и т.д. Есть конечно real-time java, но она вроде платная.
server JVM + тонкий тюнинг GC позволяют минимизировать задержки до такого значения что они нивелируютсяя задержками связаными с передачей по сети.
Есть ведь тот же LMAX, где счет идёт на миллисекунды. Хотя они там вроде JVM немного курочили.
...
Рейтинг: 0 / 0
Java EE и показания ваттметра в реальном времени по сети
    #37835286
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я тоже за server push.
...
Рейтинг: 0 / 0
Java EE и показания ваттметра в реальном времени по сети
    #37835371
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowiczзабыл никСтоит упомянуть что java не слишком оптимальный выбор для приложений реалтайм, время задержки может непредсказуемо меняться изза Jit-компиляции, GC, и т.д. Есть конечно real-time java, но она вроде платная.
server JVM + тонкий тюнинг GC позволяют минимизировать задержки до такого значения что они нивелируютсяя задержками связаными с передачей по сети.
Есть ведь тот же LMAX, где счет идёт на миллисекунды. Хотя они там вроде JVM немного курочили.
Бесспорно, я просто обратил внимание на этот момент, что не все так безоблачно и нужен как минимум один толковый специалист владеющий java performance best practices. А насчет LMAX - да курочили
...
Рейтинг: 0 / 0
Java EE и показания ваттметра в реальном времени по сети
    #37835380
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczЯ тоже за server push.
Сервер-пуш, в контексте хттп называется Comet . Это слово и надо гуглить. Реализаций очень много. Про одну из них написал мой хороший знакомый IDVsbruck .
...
Рейтинг: 0 / 0
Java EE и показания ваттметра в реальном времени по сети
    #37835410
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSergeСервер-пуш, в контексте хттп называется Comet .
Я как бе в курсе. Привел автору ещё один термин, так как не вижу смысла повторять один и тот же. Второй раз в теме.

ShSergeмой хороший знакомый IDVsbruck .
Ваши отношения в оффлайн очень интересуют весь форум.
...
Рейтинг: 0 / 0
Java EE и показания ваттметра в реальном времени по сети
    #37835454
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Оффтоп:
У-у-у ... неужели? К сожалению, знакомы только виртуально. Объединяет любовь к вебу, нетерпимость к дилетанству, разработка веб-игр. Антогонисты в плане использования фреймворков (Серж за "чистоту" кода от этого пагубного влияния). Но, как это бывает в виртуале, "дружим не друг с другом", а "дружим против кого-то" :)
...
Рейтинг: 0 / 0
Java EE и показания ваттметра в реальном времени по сети
    #37835482
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz...Я как бе в курсе...
Если я привёл (и вполне логично по контексту) Вашу цитату, то это вовсе не означает, что я обращался к Вам. Паранойя?
...
Рейтинг: 0 / 0
Java EE и показания ваттметра в реальном времени по сети
    #37835666
sys_daemon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Комет здесь излишен, достаточно простого непрерывного вывода в OutputStream сервлета по мере поступления информации от переферийного оборудования, перед этим выставив соответсвующие HTTP заголовки, получится и на J2EE сесть и эфективность сокетов съесть:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
class VoltmeterServlet implements Servlet {

    public void service(ServletRequest request, ServletResponse response)
                  throws ServletException, java.io.IOException {
        String head = "HTTP/1.0 200 OK\n"+
                + "Server: VoltmeterServlet\n"
                + "Content-Type: text/html; charset=utf-8\n"
                + "Connection: Keep-Alive\n"
                + "Content-Encoding: multipart/mixed\n"
                + "Transfer-Encoding: chunked"
                + "Pragma: no-cache\n\n";
        ServletOutputStream os = response.getOutputStream();
        os.print(head);
        // отправка клиенту http заголовков по которым он поймет что HTTP ответ будет состоять из нескольких(сколько угодно)  частей
        response.flushBuffer();

        // отправка значения напряжения клиенту до тех пор пока ему не надоест эти значения читать
        while(true) {
            os.print(voltmeter.getVoltage() \n");
            response.flushBuffer();
       }
...
Рейтинг: 0 / 0
Java EE и показания ваттметра в реальном времени по сети
    #37835723
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да ну? Уверен, что каждый браузер захочет "обождать", пока ты решишь завершить http-запрос? То, что ты говоришь, имеет свою реализацию у Jetty, называется Continuations - гораздо сложнее, чем ты говоришь. И даже при этом, это - разновидность Comet.
...
Рейтинг: 0 / 0
Java EE и показания ваттметра в реальном времени по сети
    #37835738
sys_daemon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IDVsbruckДа ну?

Баранки гну. Не понимаю с чего такой тон общения ты выбрал?
IDVsbruckУверен, что каждый браузер захочет "обождать", пока ты решишь завершить http-запрос?

Да уверен и уверен на 100%, так как неоднократно проверял непрерывный вывод в браузер на практике и проблем не возникало и это стандарт HTTP почему он не должен работать?
IDVsbruck То, что ты говоришь, имеет свою реализацию у Jetty, называется Continuations - гораздо сложнее, чем ты говоришь. И даже при этом, это - разновидность Comet.
Нету здесь абсолютно никакой сложности, этот способ еще наши прадеды использовали когда мы под стол пешком ходили и тогда не то что о Comet никто не знал, тогда даже еще Ajax не придумали. Никакой специфичной функцинальности от контейнера сервлетов не требуется, и всё именно настолько просто насколько я и написал, более того тут и контейнер сервлетов не нужен хоть на php хоть на perl пиши, выставь заголовки и не отпускай тред и всё, дело в шляпе.

iPOJO используй обычный javascript+html5 возможностей по рисованию графиков в нём хватает с головой. Просто подключаешься к серверу читаешь данные с него непрерывно и обновляешь графики по мере поступления данных, объем трафика будет примерно сопоставим с обычнымы сокетами, за исключением того что из сервлета ты скорее всего будешь сразу отправлять JSON но это думаю не критично. Для кода сервера используй снипет опубликованный мною выше.
...
Рейтинг: 0 / 0
Java EE и показания ваттметра в реальном времени по сети
    #37835777
rrrrrrrr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это и есть комет :)

Надо только помнить, что всё отправленное висит на клиенте в памяти, пока респонс не завершится. Поэтому рекомендуется периодически переоткрывать запрос (посылать новый).
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Java EE и показания ваттметра в реальном времени по сети
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]