Trends in digital transformation
To keep pace with today’s on-demand and increasingly connected world, companies need a simple way to create applications fast, without relying on deep technical skills, expensive IT resources, or long development projects. Time to market is critical in today’s competitive environment. Building new, revenue generating applications that will increase the business’s revenue is a must. Rapid application development (RAD) provides developers with the tools necessary to build an application quickly with an emphasis on releasing frequent prototypes by focusing less on planning.
Figure 1 what is IaaS, paas, saas [1]
Application platform technology innovation has moved to the cloud, as CIOs, IT planners and architects, driven by the demands of cloud, mobile and IoT, seek innovation in technology and business. While Infrastructure as a Service (IaaS) provides network, storage, servers and virtualization; PaaS provides operating systems, runtime and middleware. Both enable the software to run as a service (SaaS). According to Goldman Sachs, Software as a Service (SaaS) revenue is predicted to reach $106 billion in 2016, a 21 percent increase over projected 2015 spending. Research firm Technavio projects that the global Platform as a Service (PaaS) market will top $6 billion by 2016. The growth rate is projected to be more than 48 percent per year for the next four years. International Data Corporation (IDC) also estimates that between now and 2017, the PaaS market will grow 30% annually, reaching $14 billion by 2017. Another report published by 451 Research predicts a fare more optimistic PaaS spending to grow at 36% CAGR, exceeding already $20 billion by 2016. We can recall how Gartner valued the worldwide PaaS market at $1.2 billion in 2012, up from $900 million in 2011. Monolithic releases designed and implemented with waterfall-type project methodologies aren’t suited for the rapid iterations common to SaaS applications. In the SaaS universe, it’s acceptable to release products that aren’t complete as long as customers are engaged and their feedback is incorporated into future product iterations. Rapid application development methodologies work well and allow to incorporate customer feedback into upcoming releases on a regular basis. With its capability to provide infrastructure and software on demand, as a service, the cloud gets rid of the potentially slow and costly steps required to get software up and running. At the same time, a cloud approach helps reduce long-term maintenance and licensing costs while providing you with access to the latest software innovation.
Figure 2 The cloud landscape [2]
Application Platform as a Service (aPaaS) is a cloud service for designing, building, deploying and managing custom business applications while seamlessly supporting the entire application lifecycle. aPaaS is an emerging market with a lot of confusion about what aPaaS is and isn’t. Its importance is nevertheless growing very fast. While today much of the focus in cloud technology centers around Infrastructure as a Service (IaaS), it is the application platform services that can ultimately unlock greater innovation. Leading vendors are rethinking app delivery. IDC estimated that aPaaS will grow at a faster rate than Infrastructure as a Service (IaaS) and Software as a Service (SaaS) with a five-year CAGRs of 30.6%. aPaaS is found on Layers 2, 3 and 4 of the cloud framework depicted on Figure 3. Layer 2 allows the developer to concentrate on the application itself rather than the ancillary components needed to run it. Layer 3 deals with the application code in its human-readable form, before compilation. Layer 4 provides additional support for visual modeling languages that accelerate app development, and are often easy enough for business users with less development expertise to use effectively. Generally, the various platforms on the market are categorized based on the degree to which they enable developer speed or control (see Figure 4). High-control aPaaS is based on a lower-level programming language, such as Java, Ruby, .NET, etc, and allows application developers to design and code more advanced applications. In the high-productivity (high-speed) aPaaS category, vendors use a Model-Driven Development (MDD) approach in various ways. They provide easy-to-use, intuitive, web-based products that let experienced developers or technically proficient business users rapidly create, customize, and share rich application models. Gartner states that by 2018, more than half of all business-to-employee mobile apps will be created by enterprise business analysts using codeless tools.  Model-Driven aPaaS is also referred to as Rapid Application Delivery (RAD) PaaS, High Productivity PaaS (by Gartner), or low-code platforms (by Forrester). The Gartner hype cycle in Figure 5 shows an indication of High-Productivity Application PaaS (model-driven) being perceived as more mature than High-Control Application PaaS (traditional programming language).
Figure 4 High Control & HIGH productivity aPaaS [3]
Figure 5 Gartner hype cycle for PaaS 2015 [4]
One of the bigger differentiators among high-productivity aPaaS vendors is their approach to model interpretation. Some vendors use the old-school code-generation approach. Others provide true, model-driven platforms that produce metadata that is interpreted at runtime. As shown in Figure 6 model execution contrasts to code generation paradigms, where code (e.g. Java or .NET) is generated from a high-level model in order to run the app. In the model execution approach the model becomes the application. The tools output definitions (metadata), not code, and the definitions are then interpreted by the platform to create the running application. Standard MDD functionality is more than sufficient for most applications. However, there may be instances where developers need to fall back on a general purpose language to extend a model. Thus, integration with a 3rd generation programming language (like Java, PHP) is an important part of a model-driven aPaaS.
Figure 6 Code generation vs model execution
Ideally an aPaaS supports the entire lifecycle of the application. An aPaaS supports the Design phase of the application lifecycle through agile project management and social collaboration features. In the Develop phase, it is important to that the aPaaS leverage a development paradigm such as visual model-driven development with custom code support that fosters greater communication, productivity and short iterations. Many aPaaS vendors help further accelerate development productivity with an App Store populated with pre-built templates, widgets, plugins and even complete business components. Vendors usually provide an online exchange where customers can browse, test drive, and install basic, prebuilt applications and application templates. The prebuilt applications can be customized to meet specific business needs, using easy-to-learn drag-and-drop and point-and-click tools. The same tools are often used to build own custom applications from scratch, all without leaving the browser. In the Deploy phase, instant cloud deployment is an essential feature of aPaaS. While the public cloud is often sufficient, there are scenarios necessitating alternate deployment options, whether private cloud, on-premise, or hybrid. Some rapid application development vendors also offer IaaS/PaaS where applications can run online in one integrated environment, sharing a common security model, data model, and user interface. Usually there is also an option to run the applications outside the vendor’s platform as well on both hosted and private cloud environments. Additionally, aPaaS can also support the Manage and Collaborate phase of the application life-cycle. Low-Code platforms delivered as aPaaS go beyond just allowing you to build and manage low-code software assets; they provide a multi-tenancy layer, which allows developers to build and license access to software assets to third-parties. Low-code aPaaS will likely offer a private label option, so that software vendors can provide its own portfolio of apps customized to the specific needs of each of its own customers. Enterprise-class low-code aPaaS will have deep security features, including single code base multi-tenancy, which allows all tenants to use the same code base but provides each its own database solution (metadata).
[1] http://www.strategyr.com/MarketResearch/Platform_as_a_Service_PaaS_Market_Trends.asp
[2] http://www.theenterprisearchitect.eu/blog/2013/10/12/the-cloud-landscape-described-categorized-and-compared/
[3] http://agilepoint.com/bi-modal-it-and-two-kinds-of-apaas-low-code/
[4] http://www.theenterprisearchitect.eu/blog/2016/02/10/how-mdd-brings-business-relevance-to-paas/