This post has been authored by Browsium CEO, Matt Heller. Matt shares technical details, along with his personal take on the development process and architectural changes which deliver the myriad benefits inherent in Ion 3.
One of the great things about life at Browsium is that we’re busy. Really busy. Customers around the world are struggling to upgrade to a modern version of Internet Explorer (IE) and we get calls from the four corners of the globe asking for help. The downside of being so busy is that I meant to get this post out a few weeks ago when we released Ion 3. I’ve had a few conversations in the past week discussing this information, so I’m taking the time now to cover it while it’s still fresh.
As with any enterprise software company, we’re always looking at ways to improve our offerings. Sometimes that means adding features, sometimes even cutting features, and sometimes it’s an issue of finding ways to do things better behind the scenes. In the months after releasing Ion 2, we began collecting data and feedback from customers and partners. The information led us to focus on two specific development and product principles for Ion 3. They were:
The first was a big task, touching nearly every part of the product no one will ever ‘see’. The second item was more visible and really changes the way customers and partners experience or work with Ion.
The team started the Ion 3 planning process by looking at what customers needed that we had built into Ion 2. We had previously exposed a wide range of settings, options, dials and switches to help solve web application compatibility issues. For Ion 3, we went over each setting and asked if we had another way to control manage that setting, or if anyone needed to change our presets. Given our subject matter expertise in the area, we found our presets were the right ones, so they weren’t being modified by customers. This enabled us to simplify the product by pulling out the code behind those settings since they were not needed. Keep reading to learn more about how we improved Ion 3 to be faster and easier to use.
Our development team worked really hard to reduce Ion’s footprint and, while I’m not going to say their code is on par with the works of Shakespeare, they deserve the public recognition in this post they wouldn’t otherwise get since the work in this area is all internal and architectural. You will experience the benefits when using Ion 3, but it’s all behind the scenes and started with integrating more tightly with Internet Explorer.
Ion 3 changes the core browser integration design we had used in previous versions. The team worked hard to find ways to let IE do more work natively on functions like authentication and networking, while still having Ion handle the web application compatibility issues. By letting IE handle more of the ‘core’ Windows functions natively, we removed complexity and enabled more use cases for customers’ unique environments. Another benefit of this approach is it enabled us to find areas to reduce our code base.
We cut more than 50,000 lines of code while developing Ion 3. Some of those cuts came from architecture modifications we made around browser integration, and a larger portion of the cuts came from redundant/overlapping functions and refactoring. Every software company finds itself building ‘engineering debt’, especially as new developers are added to the team and each member works on their area of the code. That can result in completely redundant functions sneaking in to the code.
The software programming model can also have a major impact on performance. IE already has a long history of being impacted by 3rd party add-ons. The IE add-on in Ion 2 was written in managed code, which required loading .Net before our add-on could run. That added performance overhead for IE startup time as well as negatively impacting navigation and other functions. The Ion 3 add-on is written in native code to remove all of these issues. The native code re-write also helped us cut down our code base for the add-on.
The add-on changes also impact the overall architecture improvements we made for Ion 3. The add-on now only handles a single function, relying on the new Ion Controller (CovController.exe process) to handle the configuration workload. This change helps us ensure stability by integrating better with IE, while also moving complex functions to our separate process for execution.
In the process of tightening our IE integration, we also wanted to ensure our software stayed ‘out of the way’ wherever possible and only engaged when Ion was required to manage a web application. To meet that goal, we altered the interaction experience so Ion 3 opens a new IE window for each unique Profile, rather than combining them into tabs within one window. The result is tighter integration with IE, leading to more stability, improved performance, and better overall compatibility for all web applications. The navigation between IE windows is automatic and seamless, so the user experience is not affected by this change. The one exception is when navigating to an Ion-managed site with no IE windows already open (such as from a desktop shortcut or link in an email). In that single edge use case, the user will see an extra IE window open and close while Ion triggers the navigation to the Ion-managed IE window.
The last major impact of our new design is faster load times, achieved by leaving all of the page rendering and script execution to IE. When we first started Browsium, the world was looking at IE6 to IE8 migrations. Things are very different today. For example, the recent release of IE11 for Windows 7 is leading Google to drop support for IE9, making it a de facto ‘legacy browser’. The pace of browser evolution is increasing and Ion helps organizations adopt new versions more rapidly, while not forcing the browser to be ‘dumbed down’ across the board, and lose all of the performance enhancements Microsoft has built. Modern versions of IE are better and faster than ever, and we want to take advantage of the work they’ve done in those areas. Ion 3 has been designed to avoid inhibiting browser performance and allows IE to do the work it is best at doing, and we handle the rest. Ion 3 handles the configuration specifics and requirements that IE is unable to do, along with the conflicting requirements that many enterprise web applications require.
I’m often sending out notes to our team about applications I find that were ‘clearly designed by engineers’ and as such are less than logical for end users. I’m not saying engineers can’t build great things, but there are many examples where the end user must have too deep an understanding of the tool to use it. Ion 2 suffered from this in many areas. We had too many examples where customers got confused trying to configure Ion 2 and we had to come in to help.
In response, we’ve removed many of the dials and switches from Ion 2. We consolidated where we had other ways to configure those settings, and we removed items where our defaults were not being changed. We also cut down the number of screens needed to get started, and removed nodes from the configuration tool to reduce clutter. Customers are getting productive with Ion 3 much faster than ever before and often completing their web application remediation projects without requiring any contact with us. We’re beginning to feel a bit like the Maytag Repairman, but this seems like the right outcome.
The work we did to make Java management much easier in Ion 3 is also very notable. The recent post on the new Java Version Manager provides details, but, at a high level, we wanted to find a better way to help the customers that need Ion to control Java web compatibility and secure Java in their environment. Our technical documentation was always very solid, but we felt the experience could be better and easier. The Java Version Manager delivers that today, and customer feedback has been tremendously positive.
Our Ion 3 release is both a natural product evolution and the result of our experience from more than three years leading the enterprise browser management space. If you’ve looked at Ion in the past and didn’t get the results you expected, I encourage you to download Ion 3 and try again. We are working with many customers who struggled on their own with previous versions, but Ion 3 is helping them get unstuck on their move to a modern version of IE.
Founder and CEO