Java-Gaming.org    
Featured games (81)
games approved by the League of Dukes
Games in Showcase (499)
Games in Android Showcase (118)
games submitted by our members
Games in WIP (567)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  Yet another ZIP/JAR update system  (Read 2601 times)
0 Members and 1 Guest are viewing this topic.
Offline Liphos

Junior Newbie





« Posted 2005-05-01 08:13:02 »

I've been reading the JGO forums for over a year now and I've been developing something similar to Skippy's Updating API without JWS. My system started as part of Wurm Online, but I figured it might be better to release it to a wider audience.

Some key features:

  • Updates ZIP and JAR files over plain HTTP 1.1, support for proxies provided by Java runtime
  • Minimal data transfer through incremental updating and compressed data transfer
  • Low demands on server: maximum of two HTTP requests for full check/update
  • No application/code required to run on the server (except web server software)
  • Transparently updates sealed and even signed JARs without invalidating signatures or breaking the chain of trust
  • No need for clumsy external versioning information like with JWS, just one small compressed index file per ZIP/JAR archive


So, enough talk:
http://jzipupdate.sourceforge.net/

Comments, reviews and criticism always welcome Smiley
Offline Liphos

Junior Newbie





« Reply #1 - Posted 2005-05-09 19:04:16 »

Although 40 views/week and no comments don't make me feel too cozy Wink , I'd like to point anyone who tried using JZIPUpdate and got an exception labelled "Found CR in line but not followed by LF." to the latest release 0.9 which fixes that issue. Thanks to Markus Persson for reporting that bug, and blame on me for causing it Embarrassed

Did anyone at all from JGO give it a try yet? Skippy's NetUpdate seemed to attract quite some audience...
Offline Riven
« League of Dukes »

JGO Overlord


Medals: 802
Projects: 4
Exp: 16 years


Hand over your head.


« Reply #2 - Posted 2005-05-09 21:35:26 »

Let me jump in here, then Wink

Let me start by saying I truly like your API, that finally brings some intelligence into the updating process, by doing a per-entry update of archives.

But it's the same as with my API: people want standards, so they use WebStart. They will notice that it does the job in an acceptable way, and stop looking for something better. So be it.

Once they find bandwidth is a problem, they might code their own update-API that is more efficient. Chances are small they search for an existing API, chances are smaller they find yours, chances are tiny it fits precisely what they want. They end up writing something themselves. Just like we two both did.

So your user-base (devs) is kinda zero.

On a side-note: you have done that stuff with multi-part HTTP-responses pretty good. But well, these days HTTP- requests are cheap. Just look at what bunch of requests a forum generates. Compared to that for [most devs], the advantage of saving a few cpu-cycles by using multi-part, is outweighed by the disadvantage of the pre-processing step: indexing your archives everytime you upload an updated version. Too much hassle.

So only if you're short on bandwidth/datatraffic... the majority of the visitors of this forum isn't: small app,  even smaller number of downloads.

As a wise man once said:
 There is nothing more to say.

So much for the highly anticipated request for feedback. Wink

Hi, appreciate more people! Σ ♥ = ¾
Learn how to award medals... and work your way up the social rankings
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline Riven
« League of Dukes »

JGO Overlord


Medals: 802
Projects: 4
Exp: 16 years


Hand over your head.


« Reply #3 - Posted 2005-05-09 21:40:11 »

Oh, and we live in a world where screenshots matter!

Post a few good lookin' screenz and dig your way through the heap of replies.

Hi, appreciate more people! Σ ♥ = ¾
Learn how to award medals... and work your way up the social rankings
Offline Liphos

Junior Newbie





« Reply #4 - Posted 2005-05-10 09:21:27 »

Quote
But it's the same as with my API: people want standards, so they use WebStart. They will notice that it does the job in an acceptable way, and stop looking for something better. So be it.


Then again, the 56k people will kill you if you download that 4 MB JAR just because a tiny 4 KB sprite has changed Smiley

Quote
Once they find bandwidth is a problem, they might code their own update-API that is more efficient.


Unless you go binary with a custom protocol, I don't see much room for further space optimizations. And rolling out a custom protocol will open a can of bug-eating worms for sure. That's why sticked to good ol' HTTP 1.1 Smiley

Quote
They end up writing something themselves. Just like we two both did.


Yeah, but the more update APIs there are, and the more feedback they get, the higher the chance that one of those APIs will become useful to a larger audience.

Quote
So only if you're short on bandwidth/datatraffic...


Don't always think about the server Smiley The incremental updating also benefits the client, even on broadband it's a difference wether I download 4 MB or 4 KB. Even more so for narrowband.


Quote
So much for the highly anticipated request for feedback. Wink


Yay! Oh, here's some screenshots of JZIPUpdate running on Linux/Gnome:

Single progress dialog:


And for updating multiple archives:
Offline aldacron

Senior Member


Medals: 9
Exp: 16 years


Java games rock!


« Reply #5 - Posted 2005-05-27 12:33:16 »

I haven't tested it myself, but I've seen it in use via Wurm. As soon as I saw your post here I bookmarked the site and intend to use it for my current project, though I'm a ways off from that stage yet. Just wanted to let you know your post wasn't for nothing Smiley
Offline blahblahblahh

JGO Coder


Medals: 1


http://t-machine.org


« Reply #6 - Posted 2005-05-27 20:34:15 »

Quote

Let me start by saying I truly like your API, that finally brings some intelligence into the updating process, by doing a per-entry update of archives.


Yeah, Webstart's always had that as a core feature.

So, if you ask me, the reason people don't really care is that they didn't, in fact, have a problem in the first place - if they wanted this, they just had to install the free servlet that Sun provides, or else implement the protocol that sun documented (I chose the latter, since I don't use no steenkin J2EE Tongue).

Quote

But it's the same as with my API: people want standards, so they use WebStart.


Yes, standards are good, but not THAT good - people will often avoid them unless the features / reliability are quite close. But if your API is offering very little in addition, then most are obviously going to go for the standard (especially webstart, which you can expect to get 1000x as much testing etc).

/me notes, however, that webstart development and bugfixes from sun are so slow / infrequent that in this case any fully-working alternative is likely to receive serious consideration if the author shows even half an inclination to, oh I don't know, FIX CRITICAL BUGS.

So .... maybe you should explain how this is any better than webstart?

malloc will be first against the wall when the revolution comes...
Offline kevglass

JGO Kernel


Medals: 171
Projects: 23
Exp: 18 years


Coder, Trainee Pixel Artist, Game Reviewer


« Reply #7 - Posted 2005-05-28 05:56:05 »

Re: Standards - its not so much that, I could make an updater that used the JNLP standard (or just use OpenJNLP). The point is, if you've got java atm then you've got the webstart implementation.

Kev

Offline princec

JGO Kernel


Medals: 390
Projects: 3
Exp: 16 years


Eh? Who? What? ... Me?


« Reply #8 - Posted 2005-05-28 08:14:31 »

The big problem I've always had with webstart is the bootstrapping problem, not how it actually works. All I want is someone to write a native Webstart bootstrap that's like, under 300kb or something, and downloads the VM the first time it's invoked and installs it and then gets on with downloading the rest of the game.

On a related note has anyone seen how Tribal Trouble updates itself? (Uses subversion and a built in Java client). Fantastic.

Cas Smiley

Pages: [1]
  ignore  |  Print  
 
 
You cannot reply to this message, because it is very, very old.

 

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

Pippogeek (39 views)
2014-09-24 16:13:29

Pippogeek (30 views)
2014-09-24 16:12:22

Pippogeek (19 views)
2014-09-24 16:12:06

Grunnt (45 views)
2014-09-23 14:38:19

radar3301 (27 views)
2014-09-21 23:33:17

BurntPizza (63 views)
2014-09-21 02:42:18

BurntPizza (33 views)
2014-09-21 01:30:30

moogie (41 views)
2014-09-21 00:26:15

UprightPath (50 views)
2014-09-20 20:14:06

BurntPizza (54 views)
2014-09-19 03:14:18
List of Learning Resources
by Longor1996
2014-08-16 10:40:00

List of Learning Resources
by SilverTiger
2014-08-05 19:33:27

Resources for WIP games
by CogWheelz
2014-08-01 16:20:17

Resources for WIP games
by CogWheelz
2014-08-01 16:19:50

List of Learning Resources
by SilverTiger
2014-07-31 16:29:50

List of Learning Resources
by SilverTiger
2014-07-31 16:26:06

List of Learning Resources
by SilverTiger
2014-07-31 11:54:12

HotSpot Options
by dleskov
2014-07-08 01:59:08
java-gaming.org is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑gaming.org
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!