Tuesday I posted about one of the pitfall of going 64bit and that was that 16bit applications wouldn’t work and because our current 32bit operating systems will happily run 16bit we may be none the wiser.
One of the ‘Usual Suspect’, Mike Dimmick kindly posted in my comments,
“I'm not sure if a 32-bit OS running as a guest under Virtual Server 2005 R2 or VMWare on a 64-bit host will support 16-bit code. I'd hope so. That may not help you since this is presumably a client-side app, unless you write something server-side to drive the app. Sounds barmy, I know, but I've heard of people screen-scraping legacy apps to provide new services.”
So let’s examine some of the options Mike’s given me for the sake of discussion.
Yep, it is a client side application that connects to data files stored centrally via mapped-drives which it finds via an entry in the Win.ini, yep we are talking about old stuff!
Running a virtual server with a 32bit operating system on your 64bit platform will happily allow a 16bit application to run ‘in’ it, so this is one option.
Screen-scraping isn’t a barmy idea at all! For example Jacada with their Fusion product have been doing just that over at Vodafone UK to marry together screens from different systems to make one consistent UI.
Jacada Fusion solution is marrying systems together at the presentation layer so I can imagine a few guys out there wincing at the thought of that as it is generally considered good practice to integrate systems at the data or business logic layers and not at the presentation layer.
Pie-in-the-sky aside, many systems I’ve encountered are never text-book and have a great deal of business logic held in the UI. So solutions like Fusion aren’t a bad idea as it gives a layer of abstract that can help you isolate the old system and then work on phasing it out, then switching over at a later date and as the UI is consistent and abstracted, the user may be none-the-wiser.
The next option I want to discuss is one I find extremely exciting and is not often discussed simply because very few know about it and this option is Software Virtualization!
So what is Software Virtualization?
Well we all know what VMWare and Virtual Server does; it allows multiple instances of different operating systems to run on one platform concurrently.
Software Virtualization allows a program to run in its own environment under a single operating system instance.
The software virtualized environment provides all the different DLL’s, configurations and even different registry settings to reside in the virtualized environment. Advantages are the end to DLL hell, reduces regression testing; multiple versions of the same application can reside on the same operating system so as different versions of Microsoft Office for example. Another example would be the ability to run applications that require different versions of MDAC running on the same machine. I used these two examples as I know they are pet hates.
Currently I have only found one example of a company doing Software Virtualization and that is Softricity with their product called SoftGrid.
Softricity SoftGrid used hand in hand with technologies such as Citrix create a compelling way of deploying troublesome applications with zero impact on a users PC and without the nightmare of multiple configurations scenarios in the Citrix farm (which I’m sure David Caddick and now Angus MacAlister will be able to tell you more about, over to you guys!)
The only fly in the ointment as I see it is 16bit virtualized applications still won’t run under a 64bit operating system so using a technology such as Citrix will allow you to have a layer of abstraction that will give the illusion this is possible.
Anyway more ideas I’m always happy to hear them, just drop me a mail or fill in a comment.