Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > сервер версий


Автор: cube 30.10.2008, 14:15
Привет всем!

Пишу десктоп клиент-сервер приложение, которое используется на более 10-ти клиентских машинах, приложение постоянно дорабатывается в связи появляющимися требованиями к нему, требуется организовать систему в которой версия этого приложения на клиентах обновлялась бы автоматически, как это можно организовать? И вообще есть ли такие уже готовые решения? 

(наверняка просто кто-то сталкивался с этим, не бегать же каждый раз переустанавливать всем клиентам программу...)

Спасибо!


Автор: SoulKeeper 30.10.2008, 14:26
Как на счет обычного SVN? Написать лаунчер, который бы проверял ревизию, и обновлял при необходимости.

Автор: cube 30.10.2008, 14:47
Цитата(SoulKeeper @ 30.10.2008,  14:26)
Как на счет обычного SVN? Написать лаунчер, который бы проверял ревизию, и обновлял при необходимости.

ну незнаю не хотелось бы с этим заморачиваться.... потому как есть уже один сервер к которому конектяться клиенты, нехочу еще один сервис поднимать... я подумал что клиенты могли бы загружать библиотеки себе с этого же сервера...

и потом эту программулину вдруг еще где-то придется поднимать, мало того что базу поднять придеться, сервер настроить, клиентов всем поустанавливать + еще svn - очень не хочется (((

Автор: alex_nevolin 30.10.2008, 15:03
Может это подойдет?
http://java.sun.com/javase/technologies/desktop/javawebstart/index.jsp
http://java.com/ru/download/faq/5000070700.xml

Автор: cube 30.10.2008, 16:18
Цитата(alex_nevolin @ 30.10.2008,  15:03)
Может это подойдет?
http://java.sun.com/javase/technologies/desktop/javawebstart/index.jsp
http://java.com/ru/download/faq/5000070700.xml

Да это то что нужно, но у меня вот вопрос, если вы пользовались, как я понял что установка приложения будет происходить с некого ресурса и приложение придется подписывать чтобы оно могло обращаться к каким-то ситемным ресурсам например для создания/удаления фалов и т.п.

Возможно ли обойти все это? Я хочу чтобы приложение устанавливалось скажем из дистрибутива записанного на диск, а в дальнейшем пробовало бы соединиться с сервером для проверки файлов в точности как веб старт?

Автор: Keyo 30.10.2008, 16:32
Обязательно нужен дистрибутив? Можно например сделать ярлык, который будет запускать JWS... 

Автор: alex_nevolin 30.10.2008, 17:32
Цитата

Java Web Start предъявляет определенные требования к написанному клиентскому Java-приложению. Приложение должно поставляться как набор JAR-файлов, все ресурсы приложения, такие как изображения, конфигурационные файлы, Native библиоткуи (DLL, SO), необходимо включать в JAR-файлы. Ресурсы в коде должны получаться с помощью ClassLoader getResource или подобных методов. Приложение запускается на клиентском ПК с правами доступа, выданных для "стандартной песочницы" (sandbox), со всеми вытекающими последствиями. Поэтому если вам необходим неограниченный доступ к локальным файлам - потребуются дополнительные настройки и подписывание библиотек кода с помощью сертификата. Также для хранения локальных клиентских настроек в JWS имеется специальное PersistenceService API, которое чем-то похоже на "cookies" и позволяет безопасным способом хранить локальные настройки на ПК. Кроме этого, есть еще другие API - BasicService, ClipboardService, DownloadService, FileOpenService, FileSaveService, PrintService. 

подробнее http://lib.juga.ru/article/articleview/196/1/22

Автор: cube 31.10.2008, 10:57
да это я уже изучил, вот только в таком виде он не подходит... вот например взять любой айсику клиент, ставиться приложение при помощи стандартного утановочного файла, а дальше как выхождит новая версия он узнает, и выполняет процедуру установки обновлений, вот мне примерно тоже самое и нужно... можно ли этот jnlp протокол использовать как-то подругому?

Автор: alex_nevolin 1.11.2008, 15:58
А зачем вам установочный файл? 
Пусть клиенты сразу заускают Java Web Start, тогда необходимость в установочных файлах отпадет вообще.

Автор: dorogoyIV 1.11.2008, 23:32
Цитата(alex_nevolin @  1.11.2008,  15:58 Найти цитируемый пост)
Пусть клиенты сразу заускают Java Web Start, тогда необходимость в установочных файлах отпадет вообще.

вот тут я не в курсе - если Java не установлена, Java Web Start будет пытаться загрузить JRE ?

Автор: cube 5.11.2008, 12:47
Цитата(dorogoyIV @ 1.11.2008,  23:32)
Цитата(alex_nevolin @  1.11.2008,  15:58 Найти цитируемый пост)
Пусть клиенты сразу заускают Java Web Start, тогда необходимость в установочных файлах отпадет вообще.

вот тут я не в курсе - если Java не установлена, Java Web Start будет пытаться загрузить JRE ?

да, мало того еще версию посмотрит... просто мне не подходит эта технология, уже пишу свое

Автор: Keyo 5.11.2008, 12:58
cube, дык объясните же почему? Я лично давно сгораю от любопытства, для чего вам обязательно дистрибутив нужен?  smile 

Автор: Shurr 5.11.2008, 17:37
dorogoyIV, 
Цитата(dorogoyIV @  1.11.2008,  22:32 Найти цитируемый пост)
вот тут я не в курсе - если Java не установлена, Java Web Start будет пытаться загрузить JRE ?

Технология Java Web Start требует наличия клиентской части, которая иждет в комплекте с JRE. Поэтому вопрос некорректен сам по себе, отсутствующая JRE не может попытаться что-нибудь загрузить. Если же имеется в виду поведение браузера при заходе по ссылке на такое приложение, то т.к. JRE нет, то и с соответствующим content-type ничего не проассоциировано, клиент скорее всего увидит просто текстовое представление jnlp-файла.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)