Last time I detailed a bit about the Limited Profile, one of Ion’s more advanced and complex Profile options. Today I’ll talk about Ion’s Adaptive Quirks Profile, which is the default and most commonly-used profile in Ion’s arsenal.
The Adaptive Quirks Profile, at a high level, is our answer to complex legacy web application environments, many of which were started during the IE6 days and built upon for years after. Parts of old web applications are often updated or rewritten over time even as other parts of the application remained unchanged. The updated pages may simply have been written out by newer tools that knew about newer standards and browsers like Firefox or IE7 and as a result those pages were stamped with more modern web standard declarative statements. The results is that many legacy web applications tend to be a mish-mash of IE6- and IE7-era web pages, all being served up by the same root web application.
The way that any browser decides which layout engine to use or which standards bodies to adhere to when it renders your site can be complex, and IE8 and IE9 are no exception. Even IE10, currently in development, is not immune: Last year Microsoft blogged about a new legacy quirks mode that IE10 will be supporting.
When we were developing Ion last year, we found that this problem (a single legacy web application that serves up a mish-mash of IE6- and IE7-era pages) to be more common than expected. This made configuring Ion potentially painful: customers evaluating Ion had to consider writing multiple rules for a single web application because it switched in and out of legacy and modern standards modes so frequently.
Our answer to this is our Adaptive Quirks Profile. Think of it as a smart profile: before it actually renders a web page, it sniffs the page to see if it was written as an IE6 (or older) page or whether it may understand what IE7 is, and then loads the correct layout engine for that page dynamically. This means that a single rule and profile within Ion can handle these complicated web applications with relative ease.
For the technically curious, here’s the decision tree that details which legacy IE engine Ion will load, depending on how a site is written. If you’re not familiar with DOCTYPE declarations for web pages, Wikipedia‘s DOCTYPE article is a great place to start reading.
Decision point #1: Does the page have a DOCTYPE declaration? If not, it’s considered to be a legacy page and Ion will load the page using the Quirks settings. If the page does have a DOCTYPE, we go on to decision point #2…
Decision point #2: Is the DOCTYPE in the correct location in the page? (the DOCTYPE must be first) If not, it’s considered to be a legacy page and Ion will load the page using the Quirks settings. If the page does have a DOCTYPE in the correct position, we go on to decision point #3…
Decision point #3: Does the DOCTYPE (which is in the correct place) declare itself as QUIRKS? If so, Ion will load the page using the Quirks setting. If not, Ion loads the page using IE7 settings (specifically IE7 Standards Mode).
For those of you who learn visually, here’s a flowchart detailing the decision tree:
As a result, Ion can achieve the maximum compatibility with legacy web applications even if individual pages within the application switch in and out of legacy standards modes. I have to admit that this kind of thing is more than anyone really wants to know about when they’re dealing with web application compatibility, and that’s why we wrote Ion: so you really don’t have to.
One final point of emphasis: I want to remind our readers that we did not write a new layout engine in Ion. Our Adaptive Quirks Profile is not some Browsium-authored technology. What Ion is doing is intelligently directing IE8 or IE9 to render content using layout modes that they already support. We just do it in a way that’s a lot smarter and easier to manage than you might otherwise have available to you.
This guest blog post was written by Tim Mangan, the owner of TMurgent Technologies which specializes in Microsoft App-V.
I have found that many of the companies that are interested in Browsium Ion are also using Microsoft App-V as part of a migration to Windows 7. So the question I get is, “can I use App-V to virtualize and deploy Browsium Ion”? While I have blogged about using App-V 4.6 SP1 to virtualize the older UniBrows product, I had not looked at doing so with Ion yet, but have now done so. The short answer is yes, but I’ll discuss this in this post.
Let’s start with the client portion. While much has changed under the covers about how Browsium provides a virtual browsing environment, ultimately the new version is simpler to deal with in App-V. The client portion is basically a specialized Internet Explorer plug-in (browser helper objects) with a proprietary license mechanism.
Preparing an IE plug-in to be virtualized in App-V is done using a process called “sequencing”. Sequencing plug-ins is usually easy, once you understand how to do it right. This is something we spend quite a bit time training people on in our Masters Level App-V Training Classes. The hard part isn’t the plug-in itself, but in providing way to ensure the user gets all of their plug-ins no matter how they start IE. That harder part involves creating a base IE package that consists of the shortcuts and file associations needed and using Dynamic Suite Composition (DSC) to load in the plug-ins. If you deploy the plug-ins this way you can update all of your plug-ins separately (which reduces risk and test time). But if you just want to provide a specialized shortcut to get IE to run one special application under Ion, you can skip all of that and create a single package with the Browsium Ion Client Add-on as an IE plug-in. The only difference between those options while sequencing the Browsium Ion Client Add-on is a decision on whether to publish a shortcut in the package.
The client needs a set of policies and rules to determine when to use the different rendering engines that is the Ion magic. These rules are created by the admin console, and there are at least four different ways of getting them to the client that I have identified. Which one is right for your company depends more on how you like to do things. These four ways to deploy the Ion Client Add-on via App-V and handle the rules are:
I should note that it is also possible to add the Ion Configuration Manager to the App-V package if you want to give console access to certain users. This is not the normal case, but it works great if you need it.
Recipe Instructions to Sequence Ion Client Add-on (version 2.0 Update 2) with App-V 4.6 SP1:
Since the release of Ion in January of this year, we’ve remained committed to improving Ion’s compatibility with the web applications that our customers are running. Browsium Ion 2.0 Update 2, our second maintenance release, is now available. Update 2 is a full release of both the Ion Configuration Manager and Ion Client Add-on. Installation is seamless and quick, with no need to uninstall the previous version before installing Update 2. In addition, existing Ion project files will continue to work as is.
Ion 2.0 Update 2 (build number: 2.0.4505.40156) includes a variety of improvements, including:
A complete list of improvements, with more information about installing and using Ion 2.0 Update 2, is available in the release notes.
If you’re new to Ion and would like to learn more about the process we use for remediation, please check out our JumpStart Program web page.
Many customers running legacy applications are also running legacy hardware, and old PCs tend to be memory constrained.
To help in cases where PCs are under severe memory pressure, Ion has a “Limited Profile” option, which makes many of Ion’s features available but without the overhead of additional processes running on the system (and therefore not taking up extra memory).
The tradeoff is that only a subset of Ion’s features are available to the Limited Profile. However, if the limited subset of available features helps customers get their web applications working with Ion, it can be a useful solution to the memory problem.
I’ve posted this KB article at our support site that details which features are and are not available to Limited Profiles, but here are the notable features NOT available to Limited Profiles, with a brief discussion of what each means:
Custom DEP/NX settings. Because Ion is not running in a separate process, Limited Profiles must adhere to the DEP/NX setting used by the host browser (IE8 or IE9).
Custom ActiveX control settings. Web applications running the Limited Profile cannot load custom ActiveX controls (including Java). The default versions of all ActiveX controls loaded by the host browser (IE8 or IE9) will load in a Limited Profile.
Custom Registry settings. Limited Profiles run without the Ion sandbox, so no custom registry settings (including Feature Control Keys) can be set. All Regsitry values will be read normally out of the user’s registry.
Note that there are a few more features not available to Limited Profiles that are detailed in the KB article that are not listed here.
However, there are still quite a few features that are available to Limited Profiles, and they may be enough to get your web-based application running. A short list of features that can still be used by Limited Profiles include (but is not limited to): custom User Agent string settings, string replacement, script injection and content override.
If your PC environment is running with severe memory constraints and the list of features available to you suffices to get your legacy web applications running inside IE8 or IE9, then the Limited Profile may be just what you need.
What do you do when you’re under pressure to upgrade your ageing infrastructure but have hundreds of business-critical web applications that won’t work if you upgrade? If you’re like most organizations, you contemplate spending millions to upgrade the applications or use virtualization to keep them running. If you’re Her Majesty’s Revenue and Customs (aka HMRC), you turn to Browsium Ion to get the job done quickly and easily, at a fraction of the cost of the alternatives.
HMRC, the agency of the British government responsible for tax collection with over 85,000 desktop PCs, has chosen Browsium Ion as their solution to keep their legacy IE6-dependent applications running as they modernize their desktops with a migration from Windows XP and IE6 to Windows 7 and IE9. Not only was this critical upgrade unblocked, but HMRC can now modernize their web infrastructure and deploy new business applications and cloud solutions that wouldn’t run on those old platforms.
As reported in ComputerWeekly, based on an interview with HMRC’s CIO Phil Pavitt, choosing Ion saved as much as £50M compared to alternatives offered by other vendors, including virtualization solutions.
US start-up Browsium is able to complete the work for £1.28m, compared to quotes from £35m to £50m or above from large system integrators, CIO Phil Pavitt, revealed last week.
HMRC is just one of many large enterprise organizations that have discovered that remediating legacy web applications does not have to mean a huge cash outlay and years of development, test and integration. With Browsium Ion, legacy applications run side by side with modern applications and the Internet in a single-browser, with no server-side code changes and no complex virtual environments to manage.
Update: Read the case study.
Browsium will be attending the Microsoft Management Summit (MMS) in Las Vegas April 16-20 2012. We won’t be exhibiting (so don’t bother hunting for our booth), but we will be spending the week meeting with customers and partners. Email us at email@example.com if you’d like to schedule a meeting to talk about how Browsium Ion can unblock your organization’s Windows 7 migration.
If you’re in the UK and not able to make it to Las Vegas, don’t worry, we’re coming to you. We’ll be in London on May 3rd for the Microsoft and Camwood Windows 7 migration seminar.