Application Platforms
Applications come in several different styles, as we’ve just seen, and an application platform should support all of them
An application platform has five different components, each providing a specific type of services for applications and the people who create them.
The services provided by an application platform can be grouped into five categories:
Operating System
implementing the foundation services on which all applications depend. These include basic storage, such as a file system, and the fundamentals required to run code, such as scheduling.
Data Services
which let applications store and process data. The most important technology in this category today is a database management system (DBMS), but other data services are becoming increasingly important. Streamed data, such as data used for complex event processing or real-time voice, can be useful in many scenarios. The rise of big data, i.e., very large amounts of unstructured information, also requires technologies that go beyond traditional relational database systems.
Not every application uses all of these components, but a broadly targeted application platform offers all five. More than this, it needs to provide these components across different kinds of hardware. Figure 6 shows how this looks, giving a general picture of a modern application platform
Execution Services
providing libraries and more for running software. This large category includes support for creating user interfaces on clients, communicating with other software, structuring how code executes (e.g., with workflows), and many other things.
Cloud Services
offering remotely provided functionality that applications can use. Example cloud services today provide information, such as maps, or let applications do things such as search the Internet or connect with other applications.
Development Tools
helping development teams create and maintain applications. These tools range from simple code editors to full-featured tool families with support for writing code, testing, deployment, and other aspects of the development process.
An Example: The Microsoft Application Platform
The Microsoft application platform provides a range of services for different kinds of applications.
To understand this broad set of technology, it’s worth walking through each of the five kinds of application platform components described earlier, looking at examples of what the Microsoft platform provides in each area.
For operating systems, the Microsoft application platform includes options for each of the three hardware categories:
-
For clients, the choices today include Windows 7 for desktops and laptops and Windows Phone 7 for mobile phones.
-
For on-premises servers, the platform provides Windows Server 2008 R2.
-
For public cloud servers, the underlying operating system is Windows Azure.