advertisement
javaboutique
Search Tips
Articles  |   Tutorials  |   Reviews  |   Tools  |   by Category  |   by Date  |   by Name  |   Submit  |   Source  |   Forums  |  
javaboutique
Browse DevX


Partners & Affiliates











advertisement

Articles : JavaBoutique's Introduction to Java :
Distributing Applets :

Contents
Introduction
3 Scenarios
Why Archive?
.zip, .cab, and .jar
Conclusions

3 Scenarios

But wait! Is it necessarily better to use one of these flashy, new distribution technologies if you have a large application? Well, unfortunately, there are no easy answers because it depends on the specifics of your situation. Consider the following scenarios:

The Deadweight Scenario

Suppose you have a large application with dozens of class files. However, because of the average work flow of your application, it is unlikely that the user will need all of the functionality in any one usage. Thus, many of the classes that are part of the application will be deadweight in any given execution.

So, given that situation, if you archive the application and force the user to download the entire bundle at once, you may be forcing them to download more class files than they need to. Even considering the fact that you may have compressed those class files, the deadweight of the extraneous classes could counter the benefits of compression or even end up making the final download time longer than it needs to be.

In this case, archiving or even archiving with compression may not be your best option.

Thin Button and Progress Bar Scenario

Suppose again that you have a large applet and your users are webbing away from your page before they get a chance to see the applet because it takes so long to download. You think to yourself that an ideal resolution would be to place a very lightweight push button that the user could press to begin the application. When a user presses the button, you continue to imagine, a progress bar could popup and let the user know that the applet is loading by filling up proportionally to the number of class files downloaded.

Thinking that is a good solution you add something like the following to your code:

try {
Class C = Class.forName("myClass1");
thinButton.setLabel("Loading...20%");
thinButton.repaint();

C = Class.forName("myClass2");
thinButton.setLabel("Loading...40%");
thinButton.repaint();

C = Class.forName("myClass3");
thinButton.setLabel("Loading...60%");
thinButton.repaint();

C = Class.forName("myClass4");
thinButton.setLabel("Loading...80%");
thinButton.repaint();
	}
catch (ClassNotFoundException e)
	{
	System.out.println("Class not found exception");
	}

The lightweight button would solve the problem of the applet taking too long to download and the progress bar would be a psychological crutch which would help the user through the download time. But again, this would be impossible if you downloaded the entire application as an archive because by the time the light weight button was instantiated, the entire class library would have been downloaded.

Web Server Twiddling Its Thumbs Scenario

One of the "official" benefits of archiving is that a web browser need only make one HTTP request from a web server in order to download an applet. This saves the web browser from having to open separate HTTP connections for each class file, image and data file in your program.

Thus, if you have two dozen files in your applet, you would reduce the number of necessary HTTP connections by 11. Wow, 11 times faster!

Well, not exactly. In actuality, the time it takes to make an HTTP connections is minimal. In fact, the more connections you open the better it is for you. After all, if the web browser multi-tasks by downloading class files in tandem, it can download the class files even faster.

NEXT


Selena Sol contributes to the JavaBoutique's Introduction to Java. Selena curently works for Barclays Capital in London, one of the leading global investment banks in Europe and has worked as a software developer for the National Center for Human Genome research, Microline Software, Neuron Data, and Electric Eye in Singapore. Selena is perhaps best-known for creating the Public Domain Web Script Archive (Extropia) and writing several books on Web Programming (Perl, CGI, Java).
Email: selena@extropia.com

 Microsoft RIA Development Center
 IBM Rational Resource Center
 Destination .NET
XML error: not well-formed (invalid token) at line 33
advertisement
Receive Articles via our XML/RSS feed
Receive Articles via our XML/RSS feed

JavaBytes
Internet Cyclone
This powerful, easy-to-use, internet optimizer is for Windows 95, 98, ME, NT, 2000 and XP. It's designed to automatically optimize your Windows settings, boosting your Internet connection up to 200%.

Free VMware Server 2.0 Now Release Candidate
Linux Player Xandros Grabs Storied Rival Linspire
Hey Enterprise: Here Comes the 3G iPhone
MySpace Opens Profile Portability API
Microsoft Jumps Into Virtualization Fray
Eclipse Ganymede Makes It Easier for Devs
Open Source Nokia a Threat to Microsoft, Google?
Salesforce, Google Head for 2nd on Apps
HP Open Sources Unix File System for Linux
Red Hat Opens Its Network to Space

Build a Generic Histogram Generator for SQL Server
Beyond XML and JSON: YAML for Java Developers
Mastering the Windows Mobile Emulators
Avaya AE Services Provide Rapid Telephony Integration with Facebook
Featured Algorithm: Intel Threading Building Blocks: parallel_reduce
Getting Started with Windows Live Admin Center
Eight Key Practices for ASP.NET Deployment
Java ME User Interfaces: Do It with LWUIT!
Talking VPro: Transcript
Bringing Semantic Technology to the Enterprise

Advertising Info  |   Member Services  |   Contact Us  |   Help  |   Feedback  |   Site Map  |   Network Map  |   About



JupiterOnlineMedia

internet.comearthweb.comDevx.commediabistro.comGraphics.com

Search:

Jupitermedia Corporation has two divisions: Jupiterimages and JupiterOnlineMedia

Jupitermedia Corporate Info


Legal Notices, Licensing, Reprints, & Permissions, Privacy Policy.

Advertise | Newsletters | Tech Jobs | Shopping | E-mail Offers

Solutions
Whitepapers and eBooks
IBM eBook: Planning a Service Oriented Architecture
IBM eBook: Choosing the Right Architecture--What It Means for You and Your Business
Microsoft Article: Will Hyper-V Make VMware This Decade's Netscape?
Avaya Article: Using Intelligent Presence to Create Smarter Business Applications
Intel Go Parallel Article: Getting Started with TBB on Windows
Microsoft Article: 7.0, Microsoft's Lucky Version?
Avaya Article: How to Feed Data into the Avaya Event Processor
IBM Article: Developing a Software Policy for Your Organization
Microsoft Article: Managing Virtual Machines with Microsoft System Center
Intel Go Parallel Article: Intel Threading Tools and OpenMP
HP eBook: Storage Networking , Part 1
Microsoft Article: Solving Data Center Complexity with Microsoft System Center Configuration Manager 2007
MORE WHITEPAPERS, EBOOKS, AND ARTICLES
Webcasts
HP Video: StorageWorks EVA4400 and Oracle
HP Webcast: Storage Is Changing Fast - Be Ready or Be Left Behind
Microsoft Silverlight Video: Creating Fading Controls with Expression Design and Expression Blend 2
MORE WEBCASTS, PODCASTS, AND VIDEOS
Downloads and eKits
Red Gate Download: SQL Toolbelt and free High-Performance SQL Code eBook
Iron Speed Designer Application Generator
MORE DOWNLOADS, EKITS, AND FREE TRIALS
Tutorials and Demos
Silverlight 2 App and Walkthrough: Leverage Silverlight 2 with SQL Server and XML
IBM Article: Enterprise Search--Do You Know What's Out There?
HP Demo: StorageWorks EVA4400
Microsoft Article: The Progress and Promise of Deep Zoom
Microsoft How-to Article: Get Going with Silverlight and Windows Live
MORE TUTORIALS, DEMOS AND STEP-BY-STEP GUIDES