Editor’s Note: Welcome to our weekly Reader Forum section. In an attempt to broaden our interaction with our readers we have created this forum for those with something meaningful to say to the wireless industry. We want to keep this as open as possible, but we maintain some editorial control to keep it free of commercials or attacks. Please send along submissions for this section to our editors at: dmeyer@rcrwireless.com.
In 1999, Oracle CEO Larry Ellison pronounced the client server architecture was dead. His famous quote states, “Client servers were a tremendous mistake. And we are sorry that we sold it to you.”
Then almost a decade later in 2007, IBM CEO Sam Palmisano pronounced that the client server architecture was dead, stating, “The PC client-server model has run its course.”
What they meant, of course, was that with the advent of the Web, a new model had to take over. Instead of one in which an application resided on a PC and requested data from a server, the new model had a client device that was simply a “window” to the application and the data residing on a central server.
In the years since, the age of the client server has largely given way to web architecture, but now as we evolve into the age of mobile and the cloud, the question becomes: Are we headed back to a client server architecture?
As most of us have witnessed for ourselves, today’s workplace is fast becoming a mobile enterprise. More and more of our work is being done with smartphones and tablets and, as such, is driving the anytime, anywhere work styles that are blurring the lines between the corporation and the individual.
It is estimated that 52 billion apps will be downloaded to phones this year. When mobile first started to take off, the vast majority of applications were written natively for the device on which they were intended to run, such as Apple iOS or Android phones.
Increasingly, however, mobile apps, especially those being delivered by corporate customers, are being developed and deployed as “hybrid apps.” This means they use a combination of server-side and client-side processing to deliver a “native” experience with an app that is installed locally but relies on services being delivered from a central server. This business logic is commonly referred to as backend-as-a-service.
Sound familiar?
Before answering that question, let’s compare and contrast BaaS with client server. Client-server computing was implemented to provide a number of important benefits, though it didn’t always do so:
1. Centralization for development and administration – This model made it easier to maintain and upgrade applications, back up and recover data and monitor usage.
2. Scalability – Rather than have to upgrade hundreds or thousands of client devices, scalability entailed just upgrading one or a few servers or storage or networking equipment.
3. Security – Client server provided the ability to centrally control access to applications and data, raising security levels.
4. Availability – Implementing high availability and disaster recovery was easier to do at the back end, rather than be concerned about how to do so for large numbers of distributed applications and desktops.
5. Cost savings – In theory anyway, client server computing only needed thin clients to support applications, rather than meaty desktops.
Fast forward to the mobile enterprise today. The objectives are the same, as are many of the challenges:
Development and distribution challenges include building enterprise-grade mobile apps quickly and cost-effectively; distributing them securely and making the process repeatable – consisting of a variety of devices and platforms, fragmented data sources and a growing tangle of APIs.
To enable this, a development platform such as a mobile enterprise application platform is required. MEAP software typically comes in the form of mobile middleware that connects back-end data sources such as enterprise applications and databases to mobile devices. It also offers a set of development tools such as HTML/CSS/JavaScript and 4GL rapid application development tools.
Once the application has been developed, the challenge shifts to delivery and enablement. Specifically, whether hosted by a cloud service provider or deployed within an enterprises’ private cloud, mobile platforms need to have the enterprise-class characteristics necessary for a growing, dynamic and critical mobile backend. Simply put, BaaS needs to provide high performance, scalability, security and high availability.
To meet theses need for speed, elasticity, performance and protection, BaaS platforms are increasingly being built on a converged infrastructure platform that delivers enterprise-class cloud provisioning and management.
Converged infrastructure is software that provides compute, storage, networking, security and availability services that are pooled, aggregated, and delivered as software and managed by intelligent, policy-driven software.
This software-defined environment makes it easier to scale resources on demand, optimize resource utilization and lower costs. It also simplifies the process of delivering high availability and reduces cost by an N+1 model – whereby a single server can act as a failover resource for multiple servers.
The agility found within these converged infrastructures is especially tuned for the needs of a mobile backends, as user requirements tend to vary over short time periods. A key consideration though, when choosing between different CI solutions, is whether a particular option can support both virtual and physical servers. Not all enterprise applications are easily virtualized, and in many cases, such as database and performance-intensive apps, the most critical are the least likely to be virtualized.
The second part of building a mobile cloud service requires the use of cloud management software. These products make it easy for mobile application owners or solution architects to design, request, provision, protect and manage their own mobile infrastructure and services – a key requirement in this consumerization and self-service.
This cloud software must provide a dynamically scalable, secure and highly available environment that is easy for user to deploy applications centrally and be able to monitor and report on ongoing activities, usage and status.
And while the new world of “bring your own device” seems far more complex than the old client server world, there is an incredibly familiar feel to it. In fact, looking at the goals of client server – centralization of administration, scalability, security, availability and cost savings – you’ll see that they haven’t changed. As mobile apps replace PC client apps and BaaS become the new central server, it seems that mobile is Client Server 2.0. Perhaps even Larry and Sam would agree.