Develop a strategy to deal with the obsolescence of Java EE. Retain Java EE servers for existing legacy applications, but use lighter-weight Java frameworks for digital business application development projects or evaluate other language platforms.
Adopt aPaaS (public or private) to help increase agility and to obtain the capabilities required for digital business. Evaluate nontraditional and specialized tooling to use with aPaaS, such as high-productivity platforms, dynamic languages, event processing and in-memory computing.
Design all new applications to be cloud-native, irrespective of whether or not you plan to deploy them in the cloud.
If business drivers warrant the investment, rearchitect existing applications to be cloud-native and move them to aPaaS.
Give preference to vendors that articulate a platform strategy that supports modern application requirements, such as public, private and hybrid cloud deployment, in-memory computing, multichannel clients, microservices, event processing, continuous delivery, Internet of Things (IoT) support and API management.
By 2019, fewer than 35% of all new business applications will be deployed in Java EE application servers.
By 2020, at least 50% of all new business applications will be created with high-productivity toolsets.
By 2021, new aPaaS deployments will exceed new on-premises deployments.
By 2023, aPaaS revenue will exceed that of application platform software.
Application platforms provide runtime environments for application logic. They manage the life cycle of an application or application component, and ensure the availability, reliability, scalability, security and monitoring of application logic. They typically support distributed application deployments across multiple nodes. Some also support cloud-style operations (elasticity, multitenancy and self-service).
Gartner tracks three types of application platforms:
Transaction processing (TP) monitors are software products that host preweb, online-transaction-processing (OLTP)-style applications.
Application platform software is packaged and delivered as software products that organizations can deploy on-premises or on provider-managed infrastructure as a service (IaaS).
Application platform as a service (aPaaS) is a provider-managed platform capability (either public or private) that is operated as a cloud service.
Application platforms typically come with associated development, monitoring, management and administration tools. They may include a variety of features, such as load balancers, autoscaling orchestrators, automated deployment tools, in-memory data grids (IMDGs), event processing and external adapters.
Application platforms often have an affinity with a particular application programming language and framework, which can limit the types of applications they can host. For example, Java EE application servers can only host applications built with the Java language and the Java EE framework, and high-productivity aPaaS platforms can only host applications built with their associated high-productivity development tool. Other platforms support polyglot languages and frameworks; for example, most high-control aPaaSs support a broad array of languages and frameworks, and can also host other application platforms, such as deploying a Ruby on Rails platform as a buildpack in Heroku.
Numerous vendors include platform capabilities in packaged applications or other application infrastructure products, such as portal products, mobile application development platforms, enterprise service buses (ESBs) and business process management (BPM) suites. This research examines the stand-alone application platform market.
The application platform market is large (worth approximately $7.8 billion in revenue in 2015) and growing (it will be worth approximately $11 billion by 2020). This market growth stems primarily from the aPaaS segment. Currently, aPaaS accounts for less than 19% of the market, but it is growing rapidly (with an 18.5% compound annual growth rate [CAGR]). The platform software segment is currently 2.5 times (58%) larger than the aPaaS segment but this market segment is growing slowly (with 3% CAGR). The TP monitor segment currently makes up 23% of the market, but is declining (-0.4% CAGR). The aPaaS segment is likely to bypass the platform software segment by 2023. Figure 1 compares the relative size and estimated growth of the three market segments through 2020. 1
TP = transaction processing; CAGR = compound annual growth rate; aPaaS = application platform as a service
Source: Gartner (November 2016)
The application platform software segment includes application servers, lightweight web-scale servers, embeddable servers, high-productivity platforms, specialized platforms, PaaS frameworks and cloud-enabled application platforms (CEAPs).
2015 was a pivotal year in the application platform software segment. Overall, the market grew at a modest 3%, but megavendors are being hit hard as organizations shift from traditional application servers to cloud, open-source and specialized alternatives.
Currently, the lion's share of application platform software revenue comes from license sales of Java EE application servers. From a revenue perspective, the application platform software market is dominated by just two vendors: Oracle and IBM. Their combined revenues account for more than three-quarters of the market.
Revenue market share doesn't accurately reflect platform usage though. Microsoft is a major player in the application platform software market, but because its application server technology is embedded in the Windows Server operating system and doesn't generate stand-alone revenue, it's difficult to make a direct market share comparison between Microsoft and other vendors. However, the Microsoft platform installed base is comparable to — and possibly larger than — the combined installed base of Oracle and IBM.
Open-source software also plays a significant role in this market. Open-source application server products generate only a fraction of their closed-source counterparts' revenue, but their installed base is massive — most likely larger than IBM, Oracle and Microsoft combined. The leading open-source platform provider, Red Hat, is the third largest player by revenue, with 4.4% of the platform software market in 2015.
Figure 2 illustrates the significant changes happening in this market. For the first time, Oracle and IBM posted a decline in application platform software revenue. Oracle's and IBM's platform software revenues declined in 2015 by 4.5% and 9.5% respectively. Meanwhile, vendors that provide open-source and private PaaS technologies, including Red Hat, Amazon and Pivotal, showed sharp growth in 2015 (33.3%, 50.6% and 22.7% respectively). 1
Source: Gartner (November 2016)
The aPaaS market segment is young, vibrant, competitive and rapidly growing. Salesforce dominates this market, with over 57% market share in 2015 based on revenue. All other leading vendors, such as Google, Microsoft, SAP and Mendix have single-digit market shares, as illustrated in Figure 3.
Source: Gartner (November 2016)
The aPaaS market segment includes two types of offerings:
High-productivity aPaaS (hpaPaaS) supports a no-code or low-code graphical, model-driven development model that enables professional and nonprofessional developers to rapidly build and deploy cloud-native applications. The platform completely hides the infrastructure below the application runtime. Organizations use these platforms for building employee-facing business and productivity applications although, due to pricing constraints, these platforms are typically less appropriate for customer-facing applications (see "Reduce Costs of Custom Applications by Leveraging Public PaaS Pricing Models" ).
High-control aPaaS (hcaPaaS) supports multiple third-generation programming languages. Developers can use a variety of frameworks to build applications, but it is their responsibility to ensure that the applications are cloud-native. DevOps personnel have significant control over how application components are deployed and how resources are allocated to those components. These platforms are suitable for professional developers building customer-facing, front-office, back-office, and advanced, cloud-native software solutions.
A related, cloud-hosted platform service type is function PaaS (fPaaS), which includes Amazon Web Services (AWS) Lambda, Google Cloud Functions, IBM Bluemix OpenWhisk and Microsoft Azure Functions. Iron.io provides an open-source software variant of fPaaS called IronWorker. A relative newcomer to the PaaS ecosystem, fPaaS is a serverless execution platform for event-triggered functions (such as microservices). These platforms enable you to run code without provisioning or managing any underlying system or application infrastructure, and they automatically scale to support increasing or decreasing loads. These platforms only run back-end functions, and are dependent on other platform services to support a full application and, therefore, Gartner does not categorize them as complete application platforms. These platforms are appropriate for sophisticated developers and architects building web-scale, event-driven, microservices-based applications.
The industry's original and now legacy application platform, TP monitors are available for both mainframe and distributed server platforms. A TP monitor implements most of the core features of an application platform, but on the basis of "pre-web" programming models and languages such as COBOL, PL/1 and C/C++. Many TP monitors now also support Java and other modern programming languages.
The TP monitor market segment is still large (approximately $1.46 billion in 2015), but shrinking in terms of both revenue and installed base. User organizations rarely start new projects on TP monitors, although they keep running established, large and business-critical workloads on these platforms. However, given the high cost of operation, the diminishing skill pool and the very slow pace of adoption of new technologies, a growing number of organizations — especially at the low end of the market — are migrating these workloads to application servers or cloud platforms, or replacing them with packaged or SaaS applications.
Java-EE-based application platforms (such as IBM WebSphere Application Server and Oracle WebLogic Server) are mature products that have traditionally been used for enterprise-class projects. Over the past decade though, Java EE has gained a reputation for heavyweight bloat that is slow to add support for emerging application architectures. In 2009, the Java community responded to these complaints by defining a more lightweight version of Java EE called the Web Profile, which removes a number of back-end application server capabilities that typically aren't used in web applications. However, the Web Profile still contains features that typically aren't required in modern applications and, more significantly, it's missing a host of cloud-native features that Java developers need.
Java remains the industry's most popular programming language. 2 But, at this point, Java developers eschew Java EE and use a wide variety of lightweight frameworks instead. Popular Java frameworks and platforms for building cloud-native applications include Apache Tomcat, Dropwizard, Spring Cloud and Play Framework.
Java EE is a framework for building three-tier client/server applications, but the three-tier model is obsolete and no longer meets the needs of modern applications. All new applications should be designed as cloud-native: They should be built using the mesh app and service architecture (MASA), and be designed with autoscaling and self-healing capabilities. They should also be deployed in platforms that support these cloud-native capabilities (see "Retire the Three-Tier Application Architecture to Move Toward Digital Business" ).
Java EE has not kept pace with modern architectural trends. Oracle is leading an effort to produce a new version of Java EE (version 8), which is slated to add a host of long-overdue features; however, Oracle announced at Oracle OpenWorld 2016 that Java EE 8 has been delayed until the end of 2017. 3 By the time Java EE catches up with basic features required for today's applications, it will be at least two or three years behind the times again.
Bottom line: Java EE is not an appropriate framework for building cloud-native applications. Even Oracle and IBM recognize this fact. Both vendors have shifted their strategic application platform investments to PaaS and specialized platform technologies.
Specialized platform technologies provide interesting alternatives to general-purpose application platforms. A variety of specialized platforms (offered as self-managed platform software or provider-managed aPaaS) are beginning to encroach on mainstream application servers. For example:
High productivity: A number of vendors provide platforms with metadata-driven development tooling. Examples include Mendix, OutSystems, and Salesforce.
Alternative languages: Application platforms based on alternative languages and programming models, such as .NET, Node.js, PHP, Python, Ruby on Rails and Scala, often compete with mainstream application servers for innovative digital business applications. Examples include Akka, Meteor, Phusion Passenger, Progress Modulus, Slim and Zend Server. Most of these platforms are available as open-source, and, in some cases, as supported and curated aPaaS platforms.
Microservices infrastructure: Teams that are building microservices need microcontainers to embed in their independently deployable components. Open-source-embeddable platforms include Apache Tomcat, Caucho Resin, Eclipse Jetty and JBoss Undertow. Other vendors provide microservices runtime infrastructure and container management systems. Examples include Cloudsoft, Eventuate and Trifork.
High-performance platforms: These highly resilient platforms support high-volume, data-intensive applications. Examples include GigaSpaces eXtreme Application Platform (XAP), GridGain In-Memory Data Fabric and Lightbend Fast Data Platform.
Most application platform vendors recognize that the traditional application server market is dying, and so they have shifted their strategic investments to aPaaS technologies, including aPaaS cloud services, PaaS frameworks and CEAPs. This is where the most significant innovation is happening. Indeed, PaaS technologies offer modern features and capabilities not found in traditional platforms, including self-service provisioning, cloud-native frameworks, autoscaling, efficient resource management, service health monitoring and auto-recovery. aPaaS solutions typically include support for mobile, event processing, IoT and data-intensive processing. Many players also support machine learning and artificial intelligence capabilities. All the megavendors have public and private aPaaS technology offerings, including IBM Bluemix, Microsoft Azure, Oracle Cloud and SAP Hana Cloud Platform.
Public aPaaS offerings provide the most turnkey platform solutions, but many organizations still feel uneasy about putting their business-critical applications and data on shared infrastructure. Organizations looking to construct a private aPaaS have three options:
PaaS frameworks are open-source software distributions that provide high-control foundational infrastructure to enable cloud qualities such as multitenancy, elastic scalability, self-service provisioning and high density. Examples include Apache Stratos, Cloud Foundry and Red Hat OpenShift Origin.
CEAPs provide a commercial, private PaaS software solution with curated platform middleware, and they typically supply development tools or opinionated frameworks that guide developers via predefined conventions in order to build cloud-friendly applications that optimize resource usage and support modern architectural models. CEAPs are available in both high-control (such as Apprenda, Pivotal Cloud Foundry and Red Hat OpenShift Container Platform) and high-productivity (such as Mendix, OutSystems and Progress Rollbase) flavors.
Dedicated aPaaS provides a public aPaaS experience on dedicated, cloud-hosted services. Vendors include IBM, Red Hat and Salesforce (Heroku).
The vendors listed in this Market Guide do not imply an exhaustive list. This section is intended to provide more understanding of the market and its offerings.
See Table 1.
Source: Gartner (November 2016)
As they evolve their application platform strategies, application leaders face conflicting challenges. First and foremost, they must support the established system-of-record application portfolio at the lowest possible cost and, thus, look for stable, low-risk products that are focused primarily on reducing total cost of ownership. At the same time, application leaders must also provide platforms that enable rapid innovation for their digital business initiatives. Modern applications require new technologies and architectures, such as cloud, mobile, in-memory computing, web-scale, microservices, hybrid IT and APIs. Therefore, trying to standardize on a single application platform becomes increasingly difficult. Traditional platforms don't support cloud-native applications, and legacy applications won't run on cloud-native platforms. Consequently, application leaders must devise an application platform strategy that combines multiple products and is optimized by use case, taking into account the following recommendations:
Develop a strategy to deal with the obsolescence of Java EE and other three-tier application frameworks. Retain Java EE servers for legacy and system of record applications, but look beyond Java EE for digital business application development projects.
Treat your Java EE applications as you would any other legacy application, and evaluate them using a fitness and value review process to determine your best course of action (see "How to Assess Your Current Application Portfolio Using Fitness and Value Review Processes" ).
Resist the temptation to simply lift and shift Java EE applications from closed-source to open-source application servers for modest license savings. If you are contemplating porting an application, consider rearchitecting it to be cloud-native and moving it to aPaaS — presuming that business drivers warrant the investment.
Adopt aPaaS (public or private) to help increase agility and to obtain the capabilities required for digital business.
Design all new applications to be cloud-native, regardless of whether or not you plan to deploy them in the cloud: Shift from three-tier to MASA and adopt miniservices or microservices to improve agility and scalability.
Give preference to vendors that articulate a platform strategy that supports modern application requirements, such as public, private and hybrid cloud deployment; in-memory computing; multichannel clients; microservices; event processing; continuous delivery and API management.
|application platform as a service
|cloud-enabled application platform
|function platform as a service
|Java Platform, Enterprise Edition
|mesh app and service architecture
|platform as a service
3 The Tiobe Programming Community index measures the popularity of programming languages — see "TIOBE Index for November 2016."