The question of what to do with applications that were written for the mainframe or client/server based applications that do not fit into a shared service model of the cloud has come up a lot in the last few weeks. This is something that is addressed in chapter 8 of the Migrating to the Cloud book. The bottom line is:
The issue you face with moving client/server applications to the cloud via rehosting is “where will the applications run?” Currently, your applications are installed on client PC machines or other thick client devices; the Apple iPhone is in the thick client category as you actually download an application that runs on your iPhone; the application now needs to be hosted on a central server accessible through the Web. A handful of products from Oracle and third parties are available for hosting client/server applications in the cloud. Third-party solutions include Citrix XenApp (formerly Citrix WinFrame Server, Citrix MetaFrame Server, and Citrix Presentation Server) and VMware Server. Oracle solutions include Oracle Virtual Server, Oracle Tuxedo, and Oracle Exalogic.
Oracle Tuxedo is the leading open systems transaction processor (TP). It supports both COBOL and C/C++ applications, as well as Ruby and Python. Oracle Tuxedo can run on Oracle Exalogic to provide you both the application runtime environment (Tuxedo) and the cloud hardware infrastructure (Exalogic). Oracle Tuxedo can also be deployed on Oracle Virtual Server for a virtualized cloud environment. We will discuss Oracle Virtual Server and Oracle Exalogic in detail in the “Target Hardware and Software Stack Options” section later in this chapter.
A client/server application cannot just be moved to a virtual server and be considered cloud-ready. The application is now accessible by many users, so it must be multiuser and multithreaded. Oracle Tuxedo and Oracle WebLogic Server are both multiuser and multithreaded. A single-user C, C++, or Java application can be made multiuser by running this application in Oracle Tuxedo or Oracle WebLogic Server as these application server containers are multiuser and multithreaded. When using Oracle Virtual Server, it needs to be placed into a grid middle tier environment. This environment could consistent of a cluster of commodity hardware components with a load balancer in front of the configuration for managing load balancing (multithreading) and multiuser connections. This virtual server grid can then run hundreds of images of the same application so that the application can service hundreds or thousands of users.