Defining the problem
You may not know it, but you may have a Java problem in Internet Explorer. It starts simply and can be insidious. You have a web application (or two or more!), each of which requires a different version of Java. The solution is often simple enough: run the oldest version of Java necessary that works for the apps you have (also called the “lowest common denominator” approach).
But then things get complicated: your users might visit a gaming web site during their lunch hour and be coerced to download a newer update of Java than you anticipated. Oracle itself has released security updates for Java an average of every 2-3 months over the last three years and the Java auto-updater will try and download them all. And I didn’t even mention the full new version of Java (1.7) released in July of this year!
Suddenly your controlled application environment has started to fragment – and worse, your applications that relied on older versions of Java stop working. On top of all this, by staying on an older version of Java (to maintain compatibility), you’ve sacrificed security (by ignoring those 14 security updates released for Java since 2009 that were released for a reason). One account we’ve talked to knew that of the 25 Java security updates available for Java 1.6 at the time, 22 of them were running in their enterprise.
Sound familiar? That’s what I mean by the “Java Problem.”
The good news is that UniBrows can help solve this problem.
How UniBrows can help (aka “Web Application Continuity”)
The same way that UniBrows can help you run separate versions of Internet Explorer from one tab to another, UniBrows can help you run different versions of Java from one tab to another.
By using our profiles feature, you can designate certain versions of Java to run for certain sites independently of versions running on other sites at the same time with no user interaction required.
What this means is important: with UniBrows you can run the older versions of Java that you need for your older applications, but run the latest version of Java everywhere else. That means you maximize compatibility and security at the same time. You aren’t risking your corporate network’s health just for the sake of a few old web applications that you want to deprecate in a few years anyway. This also isolates your older apps from those Java security updates by preventing updates to the latest & greatest version of Java from impacting your older Java engines & applications.
Technical details about our solution
Java requires that you install the full version of Java you need on all client PCs. If you need to run 3 or 4 different versions of Java in your environment, you still need to install all of them on all your client PCs – that’s a Java requirement regardless of whether or not you’re running UniBrows. Java is designed to be installed side-by-side; just make sure all of your versions of Java are installed into discrete directories.
We also support the Microsoft Java VM in our solution – so if you’re one of those companies who rely on the MSJVM, we can manage that as well.
At a high level the UniBrows process, when called upon to load Java content, will check its profile settings to see if a custom version of Java has been specified. If one has been specified, UniBrows will instantiate the specific version of Java that you’ve designated to run for that page/site/application. If one has not been specified (which is the default), UniBrows allows Internet Explorer to load the default version of Java on the system, which should be the latest version of Java that’s installed (Java 1.6 Update 25 or Java 1.7 if they’re installed). Because UniBrows profiles all run in separate processes, you can have multiple versions of Java running simultaneously in different profiles all at the same time.
Summary
With UniBrows’ custom profile feature, you can maintain maximum web application compatibility for your old web apps while remaining secure while browsing the open Internet for users who use Java.
UniBrows has supported running custom versions of Java per profile since our 1.0.0 release.
-Christopher