Software applications enable and optimize business processes and functions and, therefore, are an integral part of all organizations. The increase in available business software was the driving force behind the vast improvements in business productivity that occurred from the late 1980s through the 1990s. Organizations are now so dependent on their applications that disruptions to application use can produce catastrophic effects. Without applications, there would be little need for other computing infrastructure components, such as desktops, data, networks, and devices. The increasing demands on application delivery infrastructure as a whole are significant. In recent years, businesses and end-users have generated an unprecedented level of complexity and cost for computing infrastructure. Given this significant investment in existing computing infrastructure, it is no longer cost-efficient to continuously re-design the existing infrastructure to meet the new demands and unforeseeable challenges that lie ahead. Still, today's dynamic landscape continues to push computing technology and applications beyond their original design limits, impacting organizations across all industries and around the world. These demands are generated by unavoidable industry trends, such as globalization, regulatory compliance, consolidation, and unpredictable disruptions, along with a new generation of users entering our workforce. Unfortunately, the enormous technology base that we have in place today was not designed with all of these new requirements in mind. Further, we cannot simply swap everything out to better address this new dynamic world, by rewriting the applications and replacing the infrastructure, as it has taken decades of investments and time to get where we are today. Instead, computing systems must become more adaptable and embrace these new challenges quickly. This adaptation must be cost-effective, given that most businesses are faced with a flat IT budget that limits their ability to respond. It must also be able to address any existing, new, and future computing requirements. What is needed is a way to take existing computing investments and quickly adapt them to meet the demands we face in a dynamic world. The solution must support existing as well as emerging IT and business environments, without requiring wholesale upgrades and replacement of the existing infrastructure and applications. It must be capable of withstanding the tests of time, adapting to the new challenges that are just around the corner.
The History of Application Delivery
In the early days of business computing, business applications were monolithic---limited and centralized on mainframe or mid-range systems. Client "terminal" endpoints used devices that were homogenous, and typically proprietary, as the servers to which they connected. The explosion of PC sales and the distributed computing model during the late 1980s and 1990s, while being a significant enabler of business productivity improvement, also had the unexpected impact of increasing the overhead required to manage this burgeoning infrastructure. The IT department was faced with providing support to an ever-increasing range of client hardware and software combinations. This wave brought with it the advent of client-server applications, where the user interface and logic were separated from the data. During the same period, the user base that accessed these applications became much more distributed. Users needed to access corporate applications from branch offices and in increasingly mobile scenarios. Prior to the advent of widely available broadband networks, much of this remote connectivity was done over slow dial-up or leased lines, with bandwidth at a fraction of the LAN (for example, 28.8Kps versus 10Mbps). Application performance was degraded significantly whenever the connection between application and data occurred over these slow-speed links. In response to these challenges, the server-based computing model was established, led by server-side app virtualization products, such as Citrix WinFrame. Server-based computing was implemented by many organizations as a way to decrease the Total Cost of Ownership (TCO) of client-server applications, by centralizing them as well as extending their reach beyond the LAN to remote and mobile users. The advent of the Internet brought with it new types of applications and methods to share information. Its popularity helped to accelerate the implementation of fast networking in both the commercial and public sphere. Security became much more of an issue, as organizations were transmitting data and applications over a public network. Security was added to server-based computing implementations by securing the remoting protocols, either by securing the remoting traffic itself or through the addition of secure sockets layer (SSL) or IP security virtual private networks (VPNs) between the remote user and the centralized applications. While the Web initially delivered HTML pages, its global reach and the almost universal platform created by the Web browser soon attracted the attention of developers looking for ways to leverage the Web to deliver applications. The initial attempts at Web-based applications had limited success, as they lacked the richness and features of Windows applications. However, new programming technologies, such as Asynchronous Javascript and XML (AJAX) and Adobe Flash®, have provided platforms for new applications that are gaining wider acceptance by the consumer, as well as the business marketplace. The following diagram illustrates the evolution of application development architectures.

For a long time, infrastructure architecture has been moving further away from proprietary models where hardware, operating systems, software, and even networking capabilities were provided by the same vendor. While segmentation still exists (for example, Windows® versus UNIX®), it is now widely accepted that applications must interact between these segments. Organizations expect to be able to use the technology most applicable to their requirements, without having to be concerned about interoperability with their existing implementation. Much of this interaction has been achieved through the agreement and varying adherence to industry standards; for example, the Internet protocol (IP) that virtually every networked device uses. Though IP is now the standard, ten years ago corporate networks abounded with various protocols, such as IPX, NetBios and AppleTalk.
The Evolution of Business Operating Models
Many businesses have already started evolving into an ecosystem, where repeatable processes, for example, payroll, are outsourced to secondary organizations that specialize in performing these processes, allowing the primary organization to focus more of its efforts on the core business. Employees are also accessing applications from an increasingly diverse set of locations. More than 50 percent of the global enterprise workforce now works in a branch office or other remote location. As companies expand their presence into new markets and geographies, the reality that all team members are physically located in one place is fast becoming the minority. Employers are displaying greater flexibility in home/work ratios, and many employees continue to work after they leave the office for the day. Each of these workforce scenarios requires a different approach to application delivery. The following diagram illustrates this complex matrix of scenarios.

The end result of these developments in application design, IT infrastructure, and business models is a complex matrix of user access scenarios, application types, and hardware posing design challenges to IT architects through the diverse requirements raised by each scenario.
A New Computing Model to Meet Today's Challenges
One way to create an application delivery infrastructure that adequately responds to these challenges is to rewrite applications and redesign computing infrastructure so that they are more modular, making the desired set of computing services available through programming changes. Unfortunately, this is an impractical and cost-intensive approach for most organizations. The modular approach, however, that is being used in application design through service-oriented architecture (SOA) and similar methods is a suitable model. SOA provides a set of programming-based constructs for designing applications that are more flexible by design. Still, once an application is developed and delivered, unexpected requirements and issues can arise in production use across a broad set of businesses and industries. SOA is a step in the right direction; unfortunately, it requires expensive, time-consuming programming resources that are limited or not available under circumstances involving existing applications and computing resources. Therefore, SOA is a definite improvement and step in the right direction, but it falls short of providing the flexibility that most businesses now require. Just as the business analyst is able to compose and modify business processes by manipulating components in the SOA, the IT expert of the future will be manipulating the components of the computing infrastructure so that new business and user scenarios can be easily accommodated. This approach is called flexible computing. Flexible computing is a method of computing whereby existing computing resources flex and respond quickly to changing business demands and evolving user needs. These challenges are met by transforming rigid, monolithic computing elements into modular, logical components that can be continually re-coupled as new computing services that are adaptive and responsive to new demands and requirements. The flexible computing model changes the way people think about computing resources. Rather than viewing computing resources as physical entities (for example, computers, client-server applications, desktops, operating systems, and so on), in the dynamic computing world, these entities become on-demand services. These flexible computing services deliver computing resources to users, independent of their physical characteristics and original design limitations. Unlike a physical and often monolithic computing element in traditional computing that has limits on how and where it may be used, a flexible computing service overcomes these limitations.
Flexible computing breaks down the physical computing barriers represented by traditional computing elements, resulting in a set of modular building blocks or flexible computing components. Flexible computing architecture consists of the following key components:

- Flexible desktop services. A user accesses his applications and computing environment through a desktop. Flexible desktop services ensure that the user always has the right desktop services available anywhere, anytime, and on any device.
- Just-in-time application delivery. A user needs immediate access to specific applications to get his job done, and these applications must be available anywhere, anytime, and on any device.
- Application delivery infrastructure. Includes virtualization, optimization, security, access control, and monitoring technologies combined to provide the foundation of flexible computing architecture.
These components are described in detail in the following sections.
Flexible Desktop Services
Desktops provide the graphical user interface environment for users to view and access their applications, files, and other computing services. Desktops are typically provided by a computer's operating system and, by default, are tied to the physical PC that the operating system runs on.
A desktop service is any computing component that a typical IT department provides to its users to support the desktop environment. This often takes the form of a standard corporate desktop image, combined with a range of applications, management tools, and business process services. Every IT group today provides a slightly different set of desktop services to its users. Some users are given a standard corporate desktop image that is locked down and heavily controlled (for example, for task workers), which reduces IT support costs at both endpoints. Other users are given a standard corporate desktop image that is less restrictive, providing those knowledge workers and their management with the ability to install their own applications locally, customize the environment to whatever degree is allowed, and so on.
A new group of users expect freedoms never before encountered by IT departments. These users prefer to work on their device of choice; for example, a Windows-based notebook PC, a Mac Book Pro, or one of the many Linux distributions. Increasingly, they reject the idea of using a locked-down corporate PC, preferring to use their own personal device instead. Organizations report issuing company notebook PCs to employees, only to have employees return them, indicating that they have no use for them. The reason for this widespread push back is that employees want to use PCs that meet both their personal needs and the needs of the organization. Companies are looking for ways to balance the needs of IT against the increased freedom users now expect, as well as the demands from the company that the business increasingly needs to attract, retain, and motivate top talent in a competitive world.
Now that the time when IT could dictate the desktop PC environment as a means of controlling costs and reducing risks is over, how will IT respond? Will the tools and infrastructure used to control the desktop before this brave new world emerged be sufficient? Will IT be able to meet what appears to be conflicting goals with a flat budget?
In a flexible computing world, a combination of existing and new tools and processes is needed to handle the range of desktop models that must now be supported. This combination of components is called a flexible desktop service. A flexible desktop service delivers the right kind of desktops to the right users, based upon applying a balance of IT policy control with appropriate user freedoms, as illustrated in the following diagram.
To achieve the best overall business results, the desktop service must provide both the flexibility and the granularity of control required to meet a range of use cases. Both ends of the spectrum - IT regulations and control, and users' personal choice - are unacceptable in this evolving dynamic world. Instead, the right balance needs to be achieved for each class of users and business scenarios that must be supported, and it is imperative that it is quick and easy to deal with any exceptions.
A flexible desktop service abstracts the desktop from the physical computing device on which it executes, delivering the desktop service to the end-users. It provides the necessary mixture of centralized IT control and user freedom that is required to optimally serve the business.
A flexible desktop is virtualized. It is delivered dynamically to where it needs to execute, often through application virtualization using streaming and isolation technologies, and desktop virtualization technologies. The flexible desktop is able to follow the user as they move from device to device, change physical locations, and appear in various access scenarios, for example, on campus, at home, and offline.
A flexible desktop service:
- Separates applications from desktop images, making each available independently
- Separates desktop images from the hardware on which they run
- Streams applications to desktops. For more information about this capability, see the Just-in-Time Applications section.
- Dynamically delivers desktop images from the datacenter the endpoint
- Works on virtually any end-user device; for example, diskless PCs, notebook PCs, desktop PCs, and guest VM on servers
- Virtualizes desktop images, enabling desktops to be delivered securely to users over any network to any end-user device
Unlike traditional desktops, applications included in a flexible desktop service are not directly associated with desktop images. Instead, application packages and desktop images are managed independent of each other. This separation of the desktop from the applications is fundamental to achieving flexibility and many other benefits.
In a traditional computing environment, each desktop image includes a set of all of the applications that IT expects a user to need, regardless of whether or not they are actually used. This method of hard-coding applications to desktops is called the traditional desktop approach. It is an inefficient and cost-intensive way for IT to manage and deliver desktops and applications for the business. One issue with this approach is that IT must build large numbers of desktop images to support the spectrum of PC devices required, multiplied by the number of application combinations that each user group requires. The end result is an unwieldy explosion of desktop images - hundreds and even thousands - requiring a large staff to rigorously test each desktop and application combination to ensure that no conflicts exist and the desktops are ready for uninterrupted business use.
A second issue with this traditional desktop approach is that all applications that a potential user may want to access in the future must be delivered in advance, in case they are needed immediately at the endpoint. This approach results in excessive software licensing costs for applications that may never be used. It also creates an even bigger problem - a distributed application warehouse that must be maintained across every endpoint device - a practice that has proven to be unreliable.
Traditional Desktop Deployment Model
Traditional desktop deployment forces IT to be responsible for patching each application on every end-user device. This painstaking process results in additional costs and risks of failure if the applications are not maintained regularly.
This process typically manifests itself in excessively long desktop image refresh cycles, which can take six or more months to complete. It also increases risk due to slow response to security hotfixes and other critical updates. Finally, it deprives the business of taking timely advantage of the latest software that is available to them.
Of course, there are tools which aim to address this distributed application warehouse problem. Customers, analysts, and software vendors themselves agree that this inflexible model is flawed, and that it is simply not feasible to maintain this distributed set of desktops and applications reliably---even with the deployment tools available today. Flexible Desktop Deployment Model
Conversely, in a flexible desktop environment, desktops and applications remain separate. Application MSI setup files, patches, and updates never leave the datacenter. Instead, desktops and applications are installed, patched, and updated centrally. Once testing is complete, the new images and application packages are delivered, and become instantly available for use, on demand.
For example, a corporate desktop may use the power of a local processor to run the operating system and applications locally; however, the software is not installed and maintained locally. To accomplish this task, the entire desktop image is streamed over the corporate network to a diskless endpoint located at an office worker's desk. Each time the end-user device is started, the latest desktop image is streamed across the high-speed network and cached locally, as needed. From an end-user's point of view, the endpoint starts and operates as usual.
Alternately, a desktop itself can be delivered via virtualization. In this case, the desktop executes in the datacenter and its presentation layer (keyboard, screen, mouse, audio, and so on) is delivered to the end-user device. Server-side app virtualization provides the user with remote access to the desktop. This option uses the processing power of the server in the datacenter to execute the operating system and application functions, and requires a much less powerful end-user device.
Virtual desktops can also be used to abstract and isolate environments with different ownership or trust models. Virtualized desktops are ideal for end-users who prefer to use their own PC equipment, as it best supports both the user's business life and personal life, and it consumes a minimal amount of local resources at the endpoint.
Virtual desktops are also a great way to safely enable offshoring and outsourcing tasks, while maintaining centralized control of applications, data, and resulting intellectual property.
These scenarios assume that network connectivity is always available to provide application access and functionality. In the case of a user who is offline or disconnected from the network, a mobile flexible desktop service can be created.
There are three different ways to create a mobile flexible desktop service:
- Company equipment scenarios. In this case, a company-provided notebook PC contains the business desktop image that is streamed over the network to the device, or imaged in advance when IT first issues the device to the user. Each time the user connects to the company network, the latest operating system image changes are streamed to the notebook PC. This streamed image is maintained on the local hard disk device, providing offline access in the disconnected state.
- Personal equipment scenarios. In this case, the user's personal notebook PC must support the business desktop image. By using a client-side virtual machine (for example, Microsoft's Virtual PC), the business desktop image runs within a protected zone on the end-users device. Each time the user connects to the company network with this business desktop, the user may be prompted to update the desktop with a new image. Another option is to transport the desktop on a USB stick that can be connected to any PC.
- Offline scenarios. In this case, applications can be streamed on demand to the business desktop image and cached for offline use, as with the just-in-time applications that are discussed in the next section. These hybrid models combine features of connected and disconnected usage profiles to deliver some very innovative solutions.
Just-in-Time Applications
To make a flexible desktop service useful, we need applications to be available with the desktop. Traditionally, applications were deployed (installed) onto each PC computing device. This default approach to providing application access leaves much to chance. As discussed above, when we deploy applications at every endpoint, we incur the following burdens:
- The need to provide all relevant applications to every potential user in advance. This burden is inefficient and cost-intensive because it requires IT to purchase and install all of the applications on each end-user device, regardless of whether or not they are actually used.
- The distributed application warehouse problem is created where every application at every endpoint must be maintained separately and regularly. This burden is unreliable and inefficient.
- Testing all application interactions with each other in all possible combinations, across all desktop combinations. This burden requires excessive resources, is time-consuming, and causes a slow response to new application rollouts.
In a flexible computing world, we maintain applications and desktops separately. Applications are delivered to desktop users---on demand. Our warehouse of applications resides in the datacenter, under the supervision and control of IT. Since applications flow from a central trusted source, they can be installed, updated, patched, and efficiently tested with minimal resources and time investment.
Just-in-time applications are centrally managed application units delivered instantly to the end-user device, as needed. Just-in-time applications can be cached locally or can continue running in the background (for example, with disconnected sessions) to provide on-demand response to a user's requests.
Just-in-time applications have the following characteristics:
- Applications are packaged into a form suitable for rapid, just-in-time delivery to the end-user device
- Applications are delivered on demand to the end-user device, and can be cached for future reuse and offline access
- Application execution takes place within an isolation environment for increased compatibility and security
- Applications can be virtualized at the datacenter and delivered securely over any network to any end-user device
Just-in-time applications can be delivered by:
- Virtualizing them on a server in the datacenter, and publishing them over a network to the end-user device, or
- Executing them in an application virtualization container in the datacenter, and streaming them over a network to the end-user device
The key to avoiding application conflicts is to provide a safe execution environment and the right level of application isolation. Application isolation can take place on several levels. For example, in a Citrix XenApp environment, each virtualized application is isolated and runs independent of other applications. Further, challenging applications are often isolated into their own silos within the server farm, providing an additional degree of protection. Server-side app virtualization has proven to be the most effective form of application isolation available.
Isolation Method |
Isolation Level |
| Installed directly on OS |
Lowest |
| Installed and isolated |
Medium |
| Streamed and isolated |
Medium |
| Virtualized |
Highest |
Safe execution ensures that applications will run successfully in their isolation container, yet they will also be capable of proper interaction with one another, as needed (for example, when a Microsoft Word document is launched from within an Outlook e-mail message or SAP session). To accomplish this task, various mechanisms for inter-isolation compartment communications are required (for example, file type association and distributed COM/OLE for drag and drop capability and more advanced inter-program integrations).
The second form of isolation is known as client-side application virtualization, where the application runs within a protected compartment. Isolating applications within their own execution environment has proven to be an effective way to avoid common application conflicts that would otherwise arise from competing registry entries, DLL collisions, file system conflicts, and so on. Virtualized applications are often streamed from a central application package store to the device on which they execute. These application packages are maintained centrally, yielding the benefits of centralized management combined with distributed execution and offline use.
Just-in-time applications are maintained in a central application warehouse store. By storing and managing applications centrally in the datacenter, and delivering them on demand to users on any device, anywhere, applications are easier to update, patch, and test. Further, IT can easily publish multiple versions of an application, providing more flexibility for application rollouts, transitions from one version to another, and rapid rollback in the event of unforeseen issues. By combining just-in-time applications with a flexible desktop service, the needs of both IT and business users can now be met---with reduced complexity, desktop maintenance, and compatibility testing, and increased user freedom, along with the necessary IT management oversight and control.
IT departments tend to focus on the delivery of business applications, but in reality, the user's computing environment includes many more applications than IT knows about and manages. Users have their own personal productivity applications that they rely upon to complete their day-to-day work. Typically, IT either ignores these applications, or blocks users from installing them. A flexible desktop service includes provisions for users to install their own personal productivity applications, departmental applications, and other utilities and tools that help them get their jobs done. Since IT is ultimately responsible for the computing infrastructure, they need to find a way to balance the freedoms that users require, while ensuring the security and integrity of the computing environment.
When a user starts to install a personal productivity application into a flexible desktop service, that application is first checked against a list of applications that the organization and its IT department have prohibited (for example, music download applications). Authorized applications are installed by the user, as usual.However, as these user applications are being installed, the flexible desktop service is transparently profiling them, creating an application package that IT will use to manage them. Upon successful installation, the profiled application package becomes a managed user application. Managed user applications are known to IT and treated as computing assets that must be managed for the user. These applications are now inventoried, backed up, and visible to IT and the business. This gives IT more leverage, like the ability to recognize new user application trends, as well as enable IT purchasing to aggregate application purchasing instead of having the necessity to maintain numerous hidden, independently expensed software programs and add-ons.
The managed user application is associated with the end-user, and the associated application package is automatically uploaded into the User Application Library (UAL), a library of user-installed applications. IT may also choose to exclude the management of certain types of applications (for example, software development tools), and allow the installation and use of these applications by specified users. The next time the user connects to the flexible desktop service, applications in the UAL are published to the user's desktop environment. For example, the user purchases, downloads, and installs Camtasia Studio® on their desktop PC at the office to complete a project. The user is suddenly called upon to travel out of town; however, the project due date has not changed, and the user needs access to Camtasia Studio from a non-business PC device remotely.
The user connects to the flexible desktop service remotely and accesses a virtualized desktop image that is running in the datacenter. Camtasia Studio is included in the UAL, so the user can readily access the application. The user must also be able to access the related data files and folders. The flexible desktop service goes a step further by providing virtualized access to the user's My Documents folders. These folders, along with the user's profile, desktop, and application settings, are also managed by the flexible desktop service. Therefore, users have access to their personal productivity applications, as well as the data files they require for these applications to be useful.
The Eight Tenets of a Flexible Computing Architecture
To determine whether or not a computing system is a flexible computing architecture (FCA), the following eight tenets of FCA may be applied. To have a fully flexible computing architecture, all eight tenets must be met. In practice, businesses may adopt a computing infrastructure that incrementally becomes an FCA.
- Computing elements are separated into modular building blocks. Key computing elements are virtualized and made available as building blocks that can be dynamically combined. Virtualization services are at the heart of enabling flexible computing architectures. Once virtualized, computing elements can be reorganized and applied to meet new business challenges quickly and cost-effectively.
- Desktops and applications are made available separately, as independent services. Desktop images and applications are separated from each other, and made available as centrally managed on-demand services. Desktop images are maintained in a central location and are streamed on demand to the end-user device. Applications are not installed and deployed; instead, they are profiled and repackaged into a flexible application package that can be streamed on demand to the end-user device. By delivering both desktops and applications as independent services, the costs and complexities associated with managing traditional, hard-coded desktops with embedded (pre-installed) applications are eliminated.
- Desktop images are minimized to just those required to satisfy hardware variations. Only those desktop images actually required to support the range of hardware and device configurations is maintained. Applications are not embedded on these images, greatly simplifying the management of desktops by eliminating costs and complexity.
- Desktops and applications are delivered dynamically to the end-user device. Desktops and applications are delivered as independent services and combined together dynamically where and when they are needed. As a result, users always have access to the right desktop and set of applications, over any network and on any available device. Delivering desktops and applications as services enables IT to measure actual consumption, reduce costs and waste, improve service levels, and respond quickly to the changing business environment.
- Applications are isolated, eliminating application conflicts. Applications always execute in safe containers, ensuring that they will be no incompatibility issues between them. By separating applications, there is no longer the need to undergo extensive application compatibility testing. There may be multiple levels of isolation provided, including:
- Server-side app virtualization. Isolating applications into server-based computing compartments over a network, by providing controlled access to selected application features (for example, display, keyboard, mouse, clipboard, devices, and drives).
- Client-side app virtualization. Isolating applications by executing them within local resource compartments that provide virtualized local resources for the application (file system, registry, pipes, services, and so on).
- System virtualization. Isolating applications within their own virtual machine compartments running on a hypervisor.
Applications must execute within one or more of these isolation compartments to ensure that no application conflicts arise during execution.
- Users are provided with their own personalized computing environments. Depending on their role, users are able to personalize their computing environment to different degrees, such as choosing their favorite wallpaper, desktop themes, widgets, and other common user settings. These settings persist automatically as the user moves from one desktop environment to another.
- Users have the freedom to choose their computing devices. Users are free to choose their own PC equipment and related devices, and utilize these devices securely within the business environment. For example, a user may opt to use a Mac Book PC to access company-provided business desktops and applications.
- The unique digital personality of users is fully managed and their entire business computing environment follows them everywhere. The user's productivity applications, folders, data files, and profile follow them, but are managed centrally by IT. Users may install their own personal productivity applications, which are automatically recognized--
profiled and packaged--and maintained by IT. Whenever a user needs to access such personal productivity, workgroup or departmental applications, they are made available from the user's central store of user applications. Since the user also requires access to their documents and file folders in order to be productive, their My Documents and other selected folders and files are also maintained by the system, ensuring this information is protected, backed up and always available. The user's personal preferences, favorites and other common user profile settings are maintained, cached and always available.
Current Computing Trends
To understand just how complex and dynamic IT infrastructure has become, it is necessary to examine the developments that are occurring today within the major infrastructure areas: applications, hardware, data, and networks. The trends and challenges in these areas that exist today include:
- While Windows client-server architecture is still the prevalent business application architecture installed today, most new applications are being developed for use with Web servers. Application development approaches are becoming more loosely coupled with a growing acceptance of Service Oriented Architectures (SOA) and Web Services. SOA is an approach to application design that allows loosely coupled applications to be reused as "services." Rather than duplicate the code required to perform functions, for example, to calculate tax, an application invokes the services of a second application to perform this function using standard protocols and methods. Web Services is separate, but related implementation methodology that uses a specific set of standards; for example, Simple Object Access Protocol (SOAP), which enables the exchange of XML-based messages over the Internet using HTTP, and uses Web Services Description Language (WSDL) to describe Web services.
- Application and communications vendors are promoting the concept of "unified communications" that aims for a seamless integration of voice with applications, where voice becomes just another aspect of applications to better support enterprise workflows.
- The choice of server hardware vendor no longer determines the selection of operating system, application platform, or network protocol, as it did in previous decades. More industry-wide standards are being addressed by the major hardware and software vendors during the design phase. Organizations are implementing datacenter consolidation projects to reduce management, security, and operating costs. The result is an increase in the density of server hardware, influencing a trend towards server virtualization to reduce power consumption and heating overheads.
- Server consolidation projects are also moving applications and data away from the endpoint (for example, from disparate server rooms near end-users) by centralizing them at the datacenter, where they can be more efficiently managed and secured by IT staff. Conversely, new application models, such as Software as a Service (SaaS), separate data sources. Despite connectivity outside of the office becoming more widespread, variable performance and connectivity requirements (for example, offline scenarios such as connecting from a plane) result in the need for end-users to still store data on local client storage devices that are vulnerable to potential security attacks and data loss.
- Network access is also becoming ubiquitous, and the wired network is giving way to wireless. Users connect to applications more frequently over wide area network (WAN) links, but are experiencing performance degradation, as common application protocols were designed for local area networks (LANs).
- Current sales trends worldwide indicate that end-users are turning from the desktop PC to the notebook. Trends in Asian consumer markets identify handheld mobile devices as the dominant endpoint device of the future.
- IT users are now much more sophisticated in their use and expectations of technology. They expect access to their applications from any location at any time. Work hours are becoming increasingly flexible, for example, after-hours checking of e-mail messages and use of corporate Internet connections for personal use during business hours are quickly becoming commonplace. In addition, corporate applications are also being delivered to non-employees, such as outsourcers and contractors.
A Flexible Computing Infrastructure Solution
Building blocks are created from existing computing resources that work together to provide a foundation for the application delivery process. This dynamic application delivery infrastructure contains the technologies required for the componentization and flexible re-coupling of computing components that underlie a flexible computing architecture. These technologies are:
- Virtualization services. The core technologies for flexible computing, as they enable the necessary componentization, isolation, and logical representation of physical computing elements to be flexible computing services.
- Optimization services. Perform the functions necessary to ensure that the application delivery experience is consistent across all delivery methods and user scenarios.
- Security and access control services. Determine the application delivery and security methods appropriate for each end-user scenario.
- Management services. Provide the feedback necessary to fine-tune the entire end-to-end application delivery process.