 |
A New Rich Client: WeatherWatcher
Posted by joshy on September 27, 2004 at 11:56 AM | Comments (20)
I think this MiniApp idea is starting to have legs. Thinking about all that Java Web Start provides we can start to imagine an application category: the so called "Rich Client". The key to a successful rich client is that it must do something that neither webapps nor native programs can do well. It must exist outside of the webrowser (the rich part), use the network for something (the client part), and not require installation (or as minimal as possible). I think my new MiniApp does this quite well.
Presenting Weather Watcher
Okay, so my graphic design skills aren't the best, but you get the idea. Weather Watcher is a simple webstart application that grabs weather data as an XML feed from www.weather.gov. It does one thing, display weather, pretty well, and it's super easy to use. So how does it stack up on the rich client qualifications?
Exists outside of the webbrowser. This is obviously true since you can close the browser down and still have the program running. More subtly, however, the program runs when offline (displaying stale data though) and it saves the city selection locally, remembering your settings each time. In the future it could do things like monitor more than one city, or track and analyze the weather history. This would make the interface more "rich", which is really just a code word for stuff you can't do with a browser.
Use the network for something. Weather Watcher is the definition of a networked app. It not only parses live xml data from a public webservice, but is also uses jsps for the configuration pages. There is a big (700k) xml file containing every weather station in the country. Rather than download this file, Weather Watcher calls a JSP on my site which has a single copy of the database. This JSP generates the list of possible states. Once you select a state it goes to another JSP to get the list of stations for that state. Thus we have a central networked database (of sorts) shared by lots of thick clients (potentially more than just this one). Though this is a simple example I think it shows the potential of networked interfaces. If new stations or states were added to the list (which, admittedly, doesn't happen that often) then they would automatically show up in the setup panel without the user anything special. That's pretty powerful.
Does not require installation. Since this is a Java Web Start application you obviously need to have a recent version of Java installed, and auto-installing still isn't as easy as it should be. Once you overcome that hurdle (which is only done once) there is visible installation step for a webstart app. You click on the link in your browser and it pops up on your screen. While it still has some bugs Java Webstart provides a really great user experience. My mother would have no trouble using it.
Weather Watcher website and webstart link.
So what do you think? What will it take to get more of these kinds of applications going?
Update
I should mention that the webstart requires full access. This is for two reasons. First, WeatherWatcher makes screenshots to create the illusion of transparency. Second, WeatherWatcher is loaded from my server but the data it accesses is on a different server, weather.gov. I could solve the first problem by removing the transparency effect, but the second one I can't do anything about (other than mirror the entire nationwide weather data set on my lowly 1.3Ghz Athelon).
The real solution is for Java Web Start to grant either conditional access as needed (ask only when you actually use it instead of at startup) or to provide more fine grained permissions. Currently you can only ask for full or none. I would, of course, prefer both options. Until then, I'm afraid we'll have to deal with the security popup.
Bookmark blog post: del.icio.us Digg DZone Furl Reddit
Comments
Comments are listed in date ascending order (oldest first) | Post Comment
-
It's a good idea. Sadly, the way you've configured it, web start asks for full disk and network control. Even web start says you should say no when asked.
Posted by: cornell on September 27, 2004 at 05:07 PM
-
You are correct, and unfortunately I can't do anything about it. I've added a update explaining why. I might be able to improve the situation by buying a real verifiable cert. Know any cheap cert vendors?
- Joshua
Posted by: joshy on September 27, 2004 at 05:38 PM
-
It's really cool to read about your discovery into the incredible potential of WebStart.
But cornell is right, you have to be careful that your application does not require any special permissions. Most people won't try it, even if your cdebase is signed.
If you do it correctly, your WebStart will require neither.
Yes, the network really is the computer. :-)
PS Technically your architecture is more correctly thin client. Granted it is all clumsy marketing quasi techno-speak. The reasoning is that the client application does not exist at all at the client, except when it is needed.
Posted by: cajo on September 27, 2004 at 06:15 PM
-
The simple way around requiring network access is to proxy the weather data - a simple script on your server can pull the information from the weather.gov server and pass it back to the weather app.
(Although, that would still eat up a lot of your bandwidth.)
Posted by: overzealous on September 28, 2004 at 04:34 AM
-
Any feeds you can attach this to so it works in different countries? e.g. UK? :-D
Posted by: archangel on September 28, 2004 at 05:37 AM
-
Nice app. Unfortunately the illusion of transparency cannot always be achieved by taking screenshots and painting the "skin" over the captured image.
Open WeatherWatcher, then open some other 2 or 3 applications. Afther this, minimize all windows, switch the window focus to WeatherWatcher and start moving the app frame. Sometimes the application's background does not reflect the "real" background.
Btw, Robot.createScreenCapture() is slooow...
Posted by: misuasm on September 28, 2004 at 05:45 AM
-
transparent background. It's true that the fake transparency isn't perfect. That's why it's fake! :) Actually there is a timer in there that will refresh the background after you move the app around, so it should update itself once you get it positioned how you like. It may always be a bit off though.
other countries. The weather data is directly from weather.gov, which is US specific (the National Weather Service) I believe. However, if someone has a source for weather data for other countries I can use, then I would be glad to integrate it in to the system.
Posted by: joshy on September 28, 2004 at 05:57 AM
-
The right way to access other servers would be through a SocketService. Please vote for the SocketService RFE:
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4876235
Posted by: markswanson on September 28, 2004 at 06:20 AM
-
First I really want to emphasize that I value what Josh is doing with mini apps. His blogs on this subject are much more then inspiring. But (well, I guess there is always a small but :-)) the discussion about WebStart and granting access to the system shows that we should still consider alternatives. I have offered POJAs (plain old Java applets :-)) before, and - please forgive me - continue to do so. IMHO the make up really good mini apps.
Posted by: tommi_kuenneth on September 28, 2004 at 08:10 AM
-
to tommi_kuenneth:
Thanks for your interest.
What I'm trying to do here is play around with some ideas. We have desktop programs with full on installation, full access, platform dependent, etc. And then we have web applications. There's a lot of space inbetween that I'd like to explore. Applets are towards the webapp side. JWS is towards the desktop side. I've been thinking that we could maybe merge the two. More on that soon.
Do you have an interesting applets you could share?
Posted by: joshy on September 28, 2004 at 08:20 AM
-
Joshua,
to be honest, I have been concentrating on the "infrastructure" side of things, in other words an applet viewer. TKAppletBar should soon be visible as a new JavaDesktop project here at java.net; my plans are of course to provide applets which resemble these Konfabulator widgets. But, so far there is no such applet...
Posted by: tommi_kuenneth on September 28, 2004 at 11:47 AM
-
It's possible to get a Thawte Freemail certificate and use that to do signing. There's more details here: Java Web Start and Code Signing
If you go that route, you have to meet with other individuals in your area to get your "Web of Trust" rating up high enough to make the certificate show your name. I started the process myself so that anyone who downloads HotSheet now sees that it comes from a verified Thawte Freemail user but I need to find someone else to get it bumped up to where my name shows. Kind of a pain, but it has the advantage of long life for the cert and it costs nothing.
Posted by: johnmunsch on September 28, 2004 at 03:29 PM
-
I'm a (biased) believer that MiniApps are a great idea, and that the way to make them is with Jacl/Swank scripts delivered via Java Web Start (http://www.onemoonscientific.com/swank/index.html). Quite sophisticated apps can be developed and after the inital download of Jacl and Swank additional Apps require only a small script to be downloaded.
Posted by: bruce_johnson on September 28, 2004 at 04:29 PM
-
Jacl/Swank
I used to be a big fan of the Tcl plugin, that sort of died and my hopes went to Jacl and Swank. At that time it seemed not mature enough yet, but I will gladly check it out again :-)
Posted by: tobega on September 29, 2004 at 02:27 AM
-
On Mac OS X, the "transparent" frame has a small border around it (the drop shadow). Apple suggests you can get rid of it by calling
frame.getRootPane().setWindowDecorationStyle(JRootPane.PLAIN_DIALOG)
Posted by: thomasmuch on September 29, 2004 at 02:28 AM
-
I've just finished my first Konfabulator Widget displaying the registrations of the JavaPolis conference.
You can read my doubts on here
Posted by: sja on September 29, 2004 at 03:06 AM
-
So you need a source for a web server certificates? Check out these guys. They have certs starting at $24.99, but now that one is on sale for $9.99. HTH.
Posted by: mozkit on September 29, 2004 at 03:37 AM
-
Before I registered a cert with just anybody, I'd check to make sure the cert authority was listed in Java Web Start. If not, it's no more worthwhile than a self-signed cert. Are those people listed?
Posted by: johnmunsch on September 29, 2004 at 06:05 AM
-
What about the idea of launching miniApps within a single VM?
Without this, each miniApp will use more than 20 Mb of RAM, and it is too much for a *mini* app. .
Posted by: ildella on September 29, 2004 at 03:43 PM
-
I'd love it if you could launch multiple programs in the same JVM, but that feature keeps getting pushed off into the future. Originally scheduled for 1.4, and then 1.5 (5.0) JREs. :(
I've also been thinking about how to do this by hand. If you only run *safe* miniapps then they should be able to share a single JVM safely. The tricky part is making this work with Java Web Start.
Posted by: joshy on September 29, 2004 at 06:36 PM
|