|
|
|
Java EE и показания ваттметра в реальном времени по сети
|
|||
|---|---|---|---|
|
#18+
Приветствую всех, кто сюда заглянул! Есть прибор, который делает измерения в реальном времени электрических параметров. Сервер слушает его и постоянно снимает значения к себе в буфер. А вот дальше это нужно передавать на удаленный клиент. Очень бы хотелось, чтобы клиент работал в браузере, желательно на Flex. В связи с этим вопрос - насколько экономичными окажутся вызовы методов сервлета, если соединить JavaEE и Flex-клиент через BlazeDS? Предполагается снимать пять параметров float с одного прибора каждые 0,2 секунды. Самих приборов может быть несколько, так что чем экономичнее решение, тем лучше. Сколько одновременно отображать приборов в клиенте - как раз и зависит от выбранного способа связи. Можно было бы на сокетах сделать, но ведь всякие прокси и файерволы как всегда... Хотелось бы чисто HTTP. Можно ли какой-то канал сделать с Java-сервером? Есть ли такие функции у GraniteDS и LiveCycle? Какие ещё варианты под браузер кроме Flex можно выбрать для этой задачи? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2012, 06:40:36 |
|
||
|
Java EE и показания ваттметра в реальном времени по сети
|
|||
|---|---|---|---|
|
#18+
Comet, но чтобы не было проблем с фаерволами надо https будет использовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2012, 10:13:44 |
|
||
|
Java EE и показания ваттметра в реальном времени по сети
|
|||
|---|---|---|---|
|
#18+
iPOJO, При чём здесь всякие прокси и файрволы? Делайте свои вэб-запросы из-под флекса, или вообще, из-под хтмл-странички аяксом, раз в 0.2 секунды, и отображайте тем же флексом или хтмл. Если 0.2 секунды запроса с клиента окажется не очень хорошо, то подберите частоту (имею ввиду клиентских запросов для отображения). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2012, 11:24:41 |
|
||
|
Java EE и показания ваттметра в реальном времени по сети
|
|||
|---|---|---|---|
|
#18+
Ну почему же? По long-polling GraniteDS впереди планеты всей flex-фреймвоков. Называется Gravity, настраивается очень просто (на всякий случай - это не сокет, а long-polling, запрос висит до результата или таймаута). Соединив с Message Broker/JMS (ActiveMQ), можно получить неплохое решение. Но сокет есть сокет - "отзывчивость" клиента выше. Хотя тебе может и некритично. Как вариант, который попробовал - готовый мультимедийный сокет-сервер (типа Wowza, SFS, Red5, после сравнения использовал SFS). Просто решение "из коробки" с массой примеров, настраивается очень и очень просто, платный, но 100-юзерная девелоперская версия бесплатна и даже может использоваться в готовых проектах не-помню-на-какой-лицензии, но с указанием сервера. Прелесть в том, что а) полностью заменяет веб-сервер (Jetty на борту); б) стартануть или потестить при средней профессиональной подготовке можно на час - примеры помогут; в) админка на высоте; г) очень неплохая поддержка. Делал мультплеер на нем, все были поражены "отзывчивостью" клиента. Кстати, базируется на Mina. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2012, 12:59:32 |
|
||
|
Java EE и показания ваттметра в реальном времени по сети
|
|||
|---|---|---|---|
|
#18+
Стоит упомянуть что java не слишком оптимальный выбор для приложений реалтайм, время задержки может непредсказуемо меняться изза Jit-компиляции, GC, и т.д. Есть конечно real-time java, но она вроде платная. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2012, 14:54:43 |
|
||
|
Java EE и показания ваттметра в реальном времени по сети
|
|||
|---|---|---|---|
|
#18+
забыл никСтоит упомянуть что java не слишком оптимальный выбор для приложений реалтайм, время задержки может непредсказуемо меняться изза Jit-компиляции, GC, и т.д. Есть конечно real-time java, но она вроде платная. server JVM + тонкий тюнинг GC позволяют минимизировать задержки до такого значения что они нивелируютсяя задержками связаными с передачей по сети. Есть ведь тот же LMAX, где счет идёт на миллисекунды. Хотя они там вроде JVM немного курочили. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2012, 14:58:55 |
|
||
|
Java EE и показания ваттметра в реальном времени по сети
|
|||
|---|---|---|---|
|
#18+
Я тоже за server push. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2012, 14:59:26 |
|
||
|
Java EE и показания ваттметра в реальном времени по сети
|
|||
|---|---|---|---|
|
#18+
Blazkowiczзабыл никСтоит упомянуть что java не слишком оптимальный выбор для приложений реалтайм, время задержки может непредсказуемо меняться изза Jit-компиляции, GC, и т.д. Есть конечно real-time java, но она вроде платная. server JVM + тонкий тюнинг GC позволяют минимизировать задержки до такого значения что они нивелируютсяя задержками связаными с передачей по сети. Есть ведь тот же LMAX, где счет идёт на миллисекунды. Хотя они там вроде JVM немного курочили. Бесспорно, я просто обратил внимание на этот момент, что не все так безоблачно и нужен как минимум один толковый специалист владеющий java performance best practices. А насчет LMAX - да курочили ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2012, 16:36:46 |
|
||
|
Java EE и показания ваттметра в реальном времени по сети
|
|||
|---|---|---|---|
|
#18+
BlazkowiczЯ тоже за server push. Сервер-пуш, в контексте хттп называется Comet . Это слово и надо гуглить. Реализаций очень много. Про одну из них написал мой хороший знакомый IDVsbruck . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2012, 16:46:47 |
|
||
|
Java EE и показания ваттметра в реальном времени по сети
|
|||
|---|---|---|---|
|
#18+
ShSergeСервер-пуш, в контексте хттп называется Comet . Я как бе в курсе. Привел автору ещё один термин, так как не вижу смысла повторять один и тот же. Второй раз в теме. ShSergeмой хороший знакомый IDVsbruck . Ваши отношения в оффлайн очень интересуют весь форум. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2012, 17:23:21 |
|
||
|
Java EE и показания ваттметра в реальном времени по сети
|
|||
|---|---|---|---|
|
#18+
Оффтоп: У-у-у ... неужели? К сожалению, знакомы только виртуально. Объединяет любовь к вебу, нетерпимость к дилетанству, разработка веб-игр. Антогонисты в плане использования фреймворков (Серж за "чистоту" кода от этого пагубного влияния). Но, как это бывает в виртуале, "дружим не друг с другом", а "дружим против кого-то" :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2012, 18:04:38 |
|
||
|
Java EE и показания ваттметра в реальном времени по сети
|
|||
|---|---|---|---|
|
#18+
Blazkowicz...Я как бе в курсе... Если я привёл (и вполне логично по контексту) Вашу цитату, то это вовсе не означает, что я обращался к Вам. Паранойя? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2012, 18:40:13 |
|
||
|
Java EE и показания ваттметра в реальном времени по сети
|
|||
|---|---|---|---|
|
#18+
Комет здесь излишен, достаточно простого непрерывного вывода в 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2012, 23:56:36 |
|
||
|
Java EE и показания ваттметра в реальном времени по сети
|
|||
|---|---|---|---|
|
#18+
Да ну? Уверен, что каждый браузер захочет "обождать", пока ты решишь завершить http-запрос? То, что ты говоришь, имеет свою реализацию у Jetty, называется Continuations - гораздо сложнее, чем ты говоришь. И даже при этом, это - разновидность Comet. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2012, 01:58:32 |
|
||
|
Java EE и показания ваттметра в реальном времени по сети
|
|||
|---|---|---|---|
|
#18+
IDVsbruckДа ну? Баранки гну. Не понимаю с чего такой тон общения ты выбрал? IDVsbruckУверен, что каждый браузер захочет "обождать", пока ты решишь завершить http-запрос? Да уверен и уверен на 100%, так как неоднократно проверял непрерывный вывод в браузер на практике и проблем не возникало и это стандарт HTTP почему он не должен работать? IDVsbruck То, что ты говоришь, имеет свою реализацию у Jetty, называется Continuations - гораздо сложнее, чем ты говоришь. И даже при этом, это - разновидность Comet. Нету здесь абсолютно никакой сложности, этот способ еще наши прадеды использовали когда мы под стол пешком ходили и тогда не то что о Comet никто не знал, тогда даже еще Ajax не придумали. Никакой специфичной функцинальности от контейнера сервлетов не требуется, и всё именно настолько просто насколько я и написал, более того тут и контейнер сервлетов не нужен хоть на php хоть на perl пиши, выставь заголовки и не отпускай тред и всё, дело в шляпе. iPOJO используй обычный javascript+html5 возможностей по рисованию графиков в нём хватает с головой. Просто подключаешься к серверу читаешь данные с него непрерывно и обновляешь графики по мере поступления данных, объем трафика будет примерно сопоставим с обычнымы сокетами, за исключением того что из сервлета ты скорее всего будешь сразу отправлять JSON но это думаю не критично. Для кода сервера используй снипет опубликованный мною выше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2012, 03:49:36 |
|
||
|
Java EE и показания ваттметра в реальном времени по сети
|
|||
|---|---|---|---|
|
#18+
Это и есть комет :) Надо только помнить, что всё отправленное висит на клиенте в памяти, пока респонс не завершится. Поэтому рекомендуется периодически переоткрывать запрос (посылать новый). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2012, 08:00:57 |
|
||
|
|

start [/forum/topic.php?fid=59&tid=2131580]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
39ms |
get topic data: |
15ms |
get forum data: |
4ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
| others: | 370ms |
| total: | 524ms |

| 0 / 0 |
