Java-Gaming.org
Play Revenge of the Titans! The situation is critical. We need fancy commanders to defend Earth, the moon, Mars!
Featured games (78)
games approved by the League of Dukes
Games in Showcase (407)
games submitted by our members
Games in WIP (293)
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 2116 times)
0 Members and 1 Guest are viewing this topic.
Offline Liphos

Junior Newbie





« Posted 2005-05-01 10: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 21: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...
Online Riven
« League of Dukes »

JGO Overlord


Medals: 438
Projects: 4


Hand over your head.


« Reply #2 - Posted 2005-05-09 23: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
Projects: Revenge of the Titans, Titan Attacks, Droid Assault, and Ultratron
Games published by our own members! Check 'em out!
Try the Free Demo of Revenge of the Titans
Online Riven
« League of Dukes »

JGO Overlord


Medals: 438
Projects: 4


Hand over your head.


« Reply #3 - Posted 2005-05-09 23: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
Projects: Revenge of the Titans, Titan Attacks, Droid Assault, and Ultratron
Offline Liphos

Junior Newbie





« Reply #4 - Posted 2005-05-10 11: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: 4


Java games rock!


« Reply #5 - Posted 2005-05-27 14: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 22: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
« League of Dukes »

JGO Kernel


Medals: 54
Projects: 20


Mentally unstable, best avoided.


« Reply #7 - Posted 2005-05-28 07: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
« League of Dukes »

JGO Kernel


Medals: 196
Projects: 3


Eh? Who? What? ... Me?


« Reply #8 - Posted 2005-05-28 10: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.

Play Revenge of the Titans! The situation is critical. We need fancy commanders to defend Earth, the moon, Mars!
 
Play Revenge of the Titans! The situation is critical. We need fancy commanders to defend Earth, the moon, Mars and Titan!

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

The first screenshot will be displayed as a thumbnail.

The invasion has landed! On Mars! And you're there to beat 'em!
cubemaster21 (87 views)
2013-05-17 21:29:12

alaslipknot (95 views)
2013-05-16 21:24:48

gouessej (127 views)
2013-05-16 00:53:38

gouessej (121 views)
2013-05-16 00:17:58

theagentd (129 views)
2013-05-15 15:01:13

theagentd (117 views)
2013-05-15 15:00:54

StreetDoggy (160 views)
2013-05-14 15:56:26

kutucuk (183 views)
2013-05-12 17:10:36

kutucuk (183 views)
2013-05-12 15:36:09

UnluckyDevil (190 views)
2013-05-12 05:09:57
Complex number cookbook
by Roquen
2013-04-24 12:47:31

2D Dynamic Lighting
by Oskuro
2013-04-17 16:46:12

2D Dynamic Lighting
by Oskuro
2013-04-17 16:45:57

2D Dynamic Lighting
by Oskuro
2013-04-17 16:23:20

Noise (bandpassed white)
by Roquen
2013-04-05 17:36:01

Noise (bandpassed white)
by Roquen
2013-04-03 16:17:38

Java Data structures
by Roquen
2013-03-29 13:21:12

Topic Request
by kutucuk
2013-03-22 21:42:01
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!
Page created in 0.127 seconds with 21 queries.