Written by Byron Osing, CEO & Chair.
Modernizing an existing enterprise class application so that it can be computed effectively on your private cloud or public cloud is an activity that is not for the faint of heart. For developers and architects who have been writing advanced applications to power the business or government sector for the past five to twenty years, there are some tried and true methodologies to deal with the issue but each of those options can be problematic.
This is no small issue for the global software sector. Up until the past five-year period the requirements to architect an application to support cloud computing, whether that be your own data center, private cloud, an externally hosted data center or public cloud, was largely a non-issue. The vast majority of the advanced applications written in the past twenty-five years have been written for desktop computing or architected based on some type of server-fat client architecture. That holds true whether you were writing apps using Microsoft tools sets or using tools to write Linux based apps.
The cloud era is suddenly upon us. While the media may be a bit ahead of itself and expert predictions vary widely as to what the uptake of applications on clouds will be, there is no denying that any ISV product line or set of applications developed for its own use by a Fortune 10,000 corporation, must at least start the transformation to cloud computing and advanced mobile functionality as soon as possible. To not do so will result in being left in the dust.
The question then becomes: How? How do we take this great application, with years of development effort, polishing, and perfecting and enable it to be run on clouds, or at least computed at scale on a large server array in your own data center, instead of at the desktop level? If you call your local cloud vendor, and ask for advice, they will likely tell you that you have three options:
(1) Just throw out all the years of effort and millions of dollars invested in your application and start over. Is that the right decision for the company and its shareholders? In the best case, you will likely end up years behind more forward thinking competitors and may lose some of your install base along the way.
(2) Send your source code to a recommend ‘fast track’ re-write company. There are a number of companies who specialize in re-writing your application for you on an outsourced basis and will guarantee to supply you with more resources on that project than you can probably muster from your own internal ranks. The code re-write will get done faster and you will lose less time to market. However, that comes at a big cost. Code re-writes for enterprise class applications tend to require in a range of 50-200 man years of development time. What’s the fully packed cost per hour of development time from an outsourced supply shop? You do the math – you will be shelling out many millions of dollars, with no real guarantee of the quality of the code base.
(3) Contract with one of the many Systems Integrators to do a traditional Services Oriented Architecture (SOA) project. This is a very common method for trying to update or modernize an application. It involves breaking up the source code base of your product and integrating it with the SOA platform of the supplier you are working with. That obviously requires significant development time and cost. In many cases 70-80% of the code base of your existing application will have to be re-written first. Along with this comes a very high project failure rate. Just because your great application was carefully architected and written in a classic language, doesn’t mean it is going to work well when that same code is re-written in a new language and broken apart to be installed on the SOA. That’s why estimates of failure rates for complex SOA projects can run as high as 50%. Worse yet, you are many millions of dollars into the project before you suddenly realize that it just isn’t going to work.
None of these very typical options should seem attractive to the owner of the target application but they sure are attractive to the people getting paid the hours to write or re-write the code. SOA and code re-writing of existing applications is an industry driving many billions of dollars around the globe on an annual basis. If companies make huge money providing these services, why would any of them want anything to change? Well, sometimes ‘innovation happens,’ whether the incumbent industry players like it or not.
Now a whole set of technical and methodology barriers have been broken and a new approach to enabling the extension of web services to existing applications is here. Like any innovation, it requires some out-of-the-box thinking.
Using the new era PureWeb® approach to solve this issue, you only need to modify a few hundred lines source code to tie in the PureWeb® libraries to your existing application, which is then recompiled. This enables your application to be accessed online and on mobile devices from the cloud, without changing how your application works. How completely innovative and valuable is that comparative to any of the three traditional approaches to this issue?
Using PureWeb®, you can create fully secure HTML5 or other browser based user interfaces designed to look just like your existing application. You could also update its appearance or refactor it to the look and feel of various mobile devices. That is, the same software is accessed on and appears customized for each device. Real-time shared use of each instance allows users to collaborate with each other.
The moral of the story: don’t re-write your software. The world order has changed. Instead, use a new and innovative technology to rapidly extend your application into a web service. Then it’s ready for the new world of cloud and mobility.
For more information on PureWeb, visit http://www.calgaryscientific.com/pureweb.