Связь между java applet и java application
От: modelware Россия http://www.uml3.ru
Дата: 12.01.16 22:23
Оценка:
Такая ситуация.
Есть машина с Linux или Win, на которой крутится java-приложение (назовем его RfidReader).
На этой же машине запускается браузер (firefox), который грузит некоторый applet (назовем его RfidLogger).
Нужно обеспечить передачу данных между java-приложением (RfidReader) и applet-ом (RfidLogger).

Цель всего этого — заставить браузер реагировать на состояние RFID-считывателя.

Как вариант можно положить функционал java-приложения в applet, но вариант не очень удачный, так как существует еще одно приложение, которое взаимодействует с RfigReader-ом и его уже не положишь в applet и через JNI с ним обмениваться данными тоже не получится.

Есть решение проблемы?
Re: Связь между java applet и java application
От: frёёm Россия  
Дата: 12.01.16 22:35
Оценка:
Ну если апплет подписан можно через сокеты строить взаимодействие...
Если не подписан...наверно только через сервер
Ни что в жизни ни даёться так просто как... хотелось бы...
Re: Связь между java applet и java application
От: C0s Россия  
Дата: 12.01.16 22:52
Оценка: +2
Здравствуйте, modelware, Вы писали:

M>Есть машина с Linux или Win, на которой крутится java-приложение (назовем его RfidReader).

M>На этой же машине запускается браузер (firefox), который грузит некоторый applet (назовем его RfidLogger).
M>Нужно обеспечить передачу данных между java-приложением (RfidReader) и applet-ом (RfidLogger).
M>Цель всего этого — заставить браузер реагировать на состояние RFID-считывателя.

а зачем для этого апплет? по идее в RfidReader, который, как я понимаю,- обычное standalone-приложение, можно заембеддить http-серверок (jetty), и замонстрить в web sockets, либо даже попроще, если задача позволяет,- обычные сервлеты или даже jetty http-handlers, и поллинг со стороны браузера
Re[2]: Связь между java applet и java application
От: modelware Россия http://www.uml3.ru
Дата: 13.01.16 06:02
Оценка:
Здравствуйте, C0s, Вы писали:

C0s>а зачем для этого апплет? по идее в RfidReader, который, как я понимаю,- обычное standalone-приложение, можно заембеддить http-серверок (jetty), и замонстрить в web sockets, либо даже попроще, если задача позволяет,- обычные сервлеты или даже jetty http-handlers, и поллинг со стороны браузера


Было такое предложение, но машина очень слабая.
Re[2]: Связь между java applet и java application
От: Blazkowicz Россия  
Дата: 13.01.16 06:32
Оценка:
Здравствуйте, frёёm, Вы писали:

ёё>Ну если апплет подписан можно через сокеты строить взаимодействие...

ёё>Если не подписан...наверно только через сервер
Там Оракл сейчас накуралесил с безопасностью, так что может даже подписанный с локальным хостом не свяжется.
Re: Связь между java applet и java application
От: Blazkowicz Россия  
Дата: 13.01.16 06:40
Оценка:
Здравствуйте, modelware, Вы писали:

M>Как вариант можно положить функционал java-приложения в applet, но вариант не очень удачный, так как существует еще одно приложение, которое взаимодействует с RfigReader-ом и его уже не положишь в applet и через JNI с ним обмениваться данными тоже не получится.


Аплет откуда грузится и для чего он вообще нужен? Ты пишешь что машина слабая, при этом смело запускаешь 2 Java процесса, вместо того чтобы поднять простой WebSocket сервер и обращаться к нему из браузера.
Re[2]: Связь между java applet и java application
От: modelware Россия http://www.uml3.ru
Дата: 13.01.16 08:20
Оценка:
Здравствуйте, Blazkowicz, Вы писали:

B>Аплет откуда грузится и для чего он вообще нужен? Ты пишешь что машина слабая, при этом смело запускаешь 2 Java процесса, вместо того чтобы поднять простой WebSocket сервер и обращаться к нему из браузера.


Аплет нужен, чтобы осуществлять идентификацию пользователя в web-приложении через rfid-карточку.
Re: Связь между java applet и java application
От: hrensgory Россия  
Дата: 13.01.16 08:32
Оценка:
On 13.01.2016 01:23, modelware wrote:
> Такая ситуация.
> Есть машина с Linux или Win, на которой крутится java-приложение
> (назовем его RfidReader).
> На этой же машине запускается браузер (firefox), который грузит
> некоторый applet (назовем его RfidLogger).
> Нужно обеспечить передачу данных между java-приложением (RfidReader) и
> applet-ом (RfidLogger).
>
> Цель всего этого — заставить браузер реагировать на состояние
> RFID-считывателя.

Общаться приложение и апплет могут (и наверное даже должны) через TCP
сокеты на localhost, но если браузер строго файрфокс — то я бы подумал
про написание плагина к нему, т.к. в свете тенденций отказа от NPAPI вся
дальнейшая судьба апплетов как технологии — под вопросом.

--
WBR,
Serge.
Posted via RSDN NNTP Server 2.1 beta
Re[3]: Связь между java applet и java application
От: Blazkowicz Россия  
Дата: 13.01.16 09:23
Оценка:
Здравствуйте, modelware, Вы писали:

B>>Аплет откуда грузится и для чего он вообще нужен? Ты пишешь что машина слабая, при этом смело запускаешь 2 Java процесса, вместо того чтобы поднять простой WebSocket сервер и обращаться к нему из браузера.

M>Аплет нужен, чтобы осуществлять идентификацию пользователя в web-приложении через rfid-карточку.

Понятнее не стало. Почему именно для этого нужен апплет? Что он делает такого что не умеет JS?
Re[3]: Связь между java applet и java application
От: vsb Казахстан  
Дата: 13.01.16 09:53
Оценка: +1
Здравствуйте, modelware, Вы писали:

C0s>>а зачем для этого апплет? по идее в RfidReader, который, как я понимаю,- обычное standalone-приложение, можно заембеддить http-серверок (jetty), и замонстрить в web sockets, либо даже попроще, если задача позволяет,- обычные сервлеты или даже jetty http-handlers, и поллинг со стороны браузера


M>Было такое предложение, но машина очень слабая.


HTTP-сервер не даёт никакой особенной нагрузки на машину. Если на машине больше 16 МБ оперативной памяти, это вообще не стоит упоминания. Если, конечно, вы там не решите развернуть какую-нибудь WebSphere Portal Вторая JVM, обслуживающая запущенный апплет, займёт куда больше ресурсов, чем веб-сервер.

Единственный правильный вариант сегодня — запускать на localhost веб-сервер на каком-нибудь порту, а в веб-приложении с помощью JS соединяться с ним и взаимодействовать как душе угодно. Лучше всего через WebSocket.

А про апплеты забудьте. Они уже не работаю в хроме, они скоро не будут работать в FF. Это устаревшая технология.

Единственный тонкий момент будет с HTTPS. Могу расписать подробней. Если ваш сайт работает через HTTP, проблем не будет.
Re[4]: Связь между java applet и java application
От: modelware Россия http://www.uml3.ru
Дата: 13.01.16 10:40
Оценка:
Здравствуйте, Blazkowicz, Вы писали:

B>Понятнее не стало. Почему именно для этого нужен апплет? Что он делает такого что не умеет JS?


Доступ к нативным библиотекам
Re[4]: Связь между java applet и java application
От: modelware Россия http://www.uml3.ru
Дата: 13.01.16 10:43
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>Единственный правильный вариант сегодня — запускать на localhost веб-сервер на каком-нибудь порту, а в веб-приложении с помощью JS соединяться с ним и взаимодействовать как душе угодно. Лучше всего через WebSocket.


vsb>А про апплеты забудьте. Они уже не работаю в хроме, они скоро не будут работать в FF. Это устаревшая технология.


vsb>Единственный тонкий момент будет с HTTPS. Могу расписать подробней. Если ваш сайт работает через HTTP, проблем не будет.


Похоже это действительно единственный вариант.
Сайт на https. Распишите проблемы. Буду благодарен. Может через личку?
Re[5]: Связь между java applet и java application
От: Blazkowicz Россия  
Дата: 13.01.16 10:43
Оценка:
Здравствуйте, modelware, Вы писали:

M>Доступ к нативным библиотекам

А как же?
M>и через JNI с ним обмениваться данными тоже не получится.
Теперь стало совсем не понятно какая роль у standalone модуля.
Re[5]: Связь между java applet и java application
От: vsb Казахстан  
Дата: 13.01.16 11:34
Оценка:
Здравствуйте, modelware, Вы писали:

M>Похоже это действительно единственный вариант.

M>Сайт на https. Распишите проблемы. Буду благодарен. Может через личку?

Проблема следующая. Если сайт на HTTPS, то многие (все?) браузеры не дадут установить незащищённое WebSocket-соединение. Т.е. WebSocket-соединение тоже должно защищено через HTTPS-соединение. Значит ваш локальный веб-сервер на 127.0.0.1 должен принимать HTTPS-соединения. И, конечно, показывать браузеру сертификат, которому браузер будет доверять. Есть два способа сделать такой сертификат: либо сгенерировать самоподписанный сертификат для IP-адреса 127.0.0.1 и установить этот сертификат как доверенный в браузер (надо сделать один раз, но процедура не совсем тривиальная для пользователя); либо создать поддомен localhost.mywebsite.com, получить на этот поддомен нормальный сертификат от любого удостоверяющего центра и прописать в DNS адрес 127.0.0.1 для этого поддомена. Соответственно вебсокет открывать на wss://localhost.mywebsite.com:12345.

Второй вариант для пользователя самый простой (не нужно добавлять в браузер сертификат), но вам придётся распространять закрытый ключ вместе с вашим клиентским приложением. Это нарушение условий любого удостоверяющего центра и в теории ваш сертификат могут отозвать. На практике, конечно, вряд ли это случится.
Re[2]: Связь между java applet и java application
От: RonWilson Россия  
Дата: 13.01.16 12:01
Оценка:
Здравствуйте, hrensgory, Вы писали:

H>Общаться приложение и апплет могут (и наверное даже должны) через TCP

H>сокеты на localhost, но если браузер строго файрфокс — то я бы подумал
H>про написание плагина к нему, т.к. в свете тенденций отказа от NPAPI вся
H>дальнейшая судьба апплетов как технологии — под вопросом.

офф: а кто отказывается от NPAPI и в пользу чего?
Re[3]: Связь между java applet и java application
От: Blazkowicz Россия  
Дата: 13.01.16 12:35
Оценка:
Здравствуйте, RonWilson, Вы писали:

RW>офф: а кто отказывается от NPAPI и в пользу чего?№

Хром
https://www.chromium.org/developers/npapi-deprecation
Лисица
https://blog.mozilla.org/futurereleases/2015/10/08/npapi-plugins-in-firefox/

В пользу DHTML и прочих Web технологий.
Re[3]: Связь между java applet и java application
От: mselez  
Дата: 27.02.16 20:23
Оценка:
Здравствуйте, Blazkowicz, Вы писали:

B>Там Оракл сейчас накуралесил с безопасностью, так что может даже подписанный с локальным хостом не свяжется.


Если подписан за деньги, то работает.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.