Re: Designing presentation-tier for occasionally connected applications.

From: Thomas Weidenfeller (nobody_at_ericsson.invalid)
Date: 02/05/04


Date: Thu, 05 Feb 2004 10:29:06 +0100

Vijay Kumar wrote:
> We are in the process of developing a web-based app that needs to be
> functional when the user is on the road where the Internet connection
> to the server is not available.

Well, this is a contradiction. Without a web server anything beyond
simple file viewing will become difficult or impossible when just using
a browser. In fact, since the web server is responsible for delivering
the web-based application to the thin-client, there is nothing left that
can deliver the application.

> 1. Must be web-based, not a fat client app.
> 2. The UI for the offline mode and on-line should be identical.
> 3. In the off-line mode some basic functionality to enter data (fill
> forms) should be available, that do not need to be reentered when the
> connectivity is available.

No server, no form processing. You either throw in some local web
server, you give them a real application or a local applet, hack tons of
JavaScrip (this is a Java, not a JavaScript group :-)) or you just give
them a text editor :-). In any case, you will not have a thin client. Or
at least not a thin client without some additional fat pieces of
software on the same machine.

> Can some one think of a solution on how one would design this app.

In a totally different way. Instead of first selecting the technology
(web-based thin-cilent), and then trying to work around the limitations,
I would start with some real requirements, and then select a matching
technology.

[Note: What you call requirements are not requirements, but technically
constraints. A requirement defines what should happen, a constraint
defines how it should happen (e.g. choice of technology). A constraint
reduces a developer's ability to find a solution for the problem at
hand, while at the same time it takes the responsibility out of the
hands of the developer. The one insiting on the constraint (the choice
of technology) is responsible now. There is nothing wrong with
constraints in a software project. You usually have a lot of them. But
when they reduce your alternatives to close to zero, you should get rid
of them, and do a fresh start.]

> To
> me disconnect from the network mean no web application, but some one
> here insisted that we can put a web-server/appserver on each client
> machine (about 200 of these).

Sure you can. I would hesitate to call that a thin client, but hey it is
your software. If you do so, your problem will be deployment. Exactly
the problem people try to avoid when going for a web-based thin-client
solution. Since this is a Java group, you could think about using Java
web start for software distribution and updates.

> Swing based solutions are ruled out because that is not a web-based
> architecture.

"Web-based architecture" is a buzzword and meaningless here. Swing is a
GUI toolkit. If you have a decent Java version in your browser (usually
using a plug-in), you can of course have Java Applets who use Swing. If
  that qualifies as "web-based architecture" or not is up to you.

/Thomas



Relevant Pages

  • Re: How to communicate from HTML page with an IP which is not the web-server?
    ... Is Java the only technology to do this (except Microsoft technologies, ... I assume that the applet may be invisible. ... If your Applet connects back to the same server as the codebase (as ...
    (comp.lang.java.programmer)
  • Re: Java server technology question?
    ... simplest technology to do this. ... The web server that I am familiar with is ... Does Apache have built-in Java capabilities? ...
    (comp.lang.java.help)
  • Re: Designing a server for Java applet
    ... The server is Java servlet running on Tomcat. ... One possible technology to use is to exchange serialised Java objects, ...
    (comp.lang.java.programmer)
  • Re: Desktop Java app. vs. JSP app.
    ... database will reside on a server in the same building. ... should use Java desktop app. ... in javascript, then you probably want a Java or Applet. ... Also, if you have to ask "Which technology should I use?", you are NOT ...
    (comp.lang.java.programmer)
  • Re: AJAX devtool using Cobol
    ... managed by a Java Applet. ... Server Affinity is completely under ... just enter an asterix "*" for the Queue Name and then click ... Applet Java code is application-neutral and completely reusable. ...
    (comp.lang.cobol)