An application platform is a framework of services that application programs rely on for standard operations. An application platform operates across five principal areas: development tools, execution services, data services, operating systems (OSes) and cloud services.
Development tools: There are several kinds of development tools -- each cater to the specific needs of developers. As examples, Appian offers low-code development combined with strong process management. Microsoft PowerApps shares similar features and ties together major services, such as Office 365, SQL Server, Dropbox. Other application platforms such as Mendix and OutSystems provide enterprise-class end-to-end software development and testing with visual application creation and comprehensive user interfaces.
Execution services: Execution services are important for everyday application functions. Execution services are often related to application deployment options, such as cloud providers (including Microsoft Azure), which can host applications in virtual machines (VMs) or containers. Containers are increasingly important for execution because developers can package and implement complete application components in the form of images. Containers in application platform software enable faster-paced development cycles, such as Agile and DevOps. Tools such as PowerShell can be classified as an execution service that provides administrators with the means to configure and manage underlying systems.
Data services: Data services help applications to process and store information. Data services work alongside execution services and interpret information with data provided by development tools or from the cloud. Microsoft's Storage Spaces is one example of a data service. For example, Microsoft PowerApps can work with Microsoft's Common Data Service to offer a common platform for enterprise data instances.
Operating systems: An OS, such as Linux, Windows 10 and Windows Server 2016, provides the various resources to run applications, including file systems, memory management, user interface (to launch and manage applications), multitasking support, and the ability to interact with the underlying hardware.
Cloud computing services: Cloud services provide remotely accessed functions. Applications can deploy to cloud instances such as VMs and containers, but the cloud also offers many services to support application function. Apple's iCloud Drive is an example of cloud storage that stores and processes photos, videos, applications and other documents for users. Microsoft's OneDrive is another example of cloud storage as a service. Cloud services have become a trend for application platforms, mobile enterprise application platforms, and platforms as a service due to increases in mobile users. With the cloud developers can create applications so they can be accessed on multiple devices with the same functions and data involved.
Not all of these resources or services are required for every application, and not every application platform provides all five resources. More complex applications require more extensive and feature-rich platforms for development than simpler apps. This means that a developer might deploy multiple application platforms to support a complex application. An application's required services can also change depending on what hardware is running it. For example, a user relies on Windows 10 to open an application through their laptop, with a web browser and Microsoft SQL Server for execution and data services. The same application opened through Microsoft Azure may use Windows as an OS and .NET and Azure SQL for execution and data services.
Examples of application platforms
Mobile enterprise application platforms (MEAP) focus on minimizing the time needed to port code to new platforms. Common MEAP features reduce the amount of code written to handle multiple clients while supporting multiple types of applications. MEAPs are best suited to developers who need fast-paced development with an intuitive interface. Examples of MEAPs include IBM Worklight, Sencha and Appcelerator.
Platform as a service (PaaS) is a cloud-based service that provides an application platform along with the features needed for developers to create, deploy and host applications. A PaaS is basically "software development as a service." Developers relinquish the choice of underlying infrastructure and management (such as system provisioning and configuration) to a cloud provider, and focus solely on the software development project. Organizations also shed the capital expenses associated with development services and effectively rent the PaaS access. Examples of PaaS include AWS Elastic Beanstalk, Acquia Cloud and T-Systems' AppAgile.