AppFabric is an evolution of the Windows Process Activation service (WAS) and the Application Server role in Windows Server to host and manage WCF and WF services. As such, AppFabric is closely aligned with .NET Framework 4 and makes use of several features that are provided as part of the Framework offering key functionality such as persistence, monitoring, and hosting of WCF and WF services. AppFabric also integrates with Internet Information Services (IIS) providing management and monitoring tools within the IIS management console.
The following architectural diagram shows the parts of AppFabric as well as the .NET Framework 4 and IIS components that are used by AppFabric:
In this topic, we will walk through the AppFabric architecture by providing further detail about each of the technologies described in the architecture diagram.
Enhancing the Windows Process Activation Service
Since the architecture diagram displays the base technologies that AppFabric is built on at the bottom, we begin there with IIS and WAS.
IIS and WAS
The foundation on which AppFabric is built is the robust hosting environment provided by IIS and WAS. Hosting applications within WAS provides several features that are desirable for a service-oriented architecture (SOA) such as:
- Message-based activation of applications that allows applications to start and stop dynamically in response to incoming messages.
Robust application and worker process recycling to maintain the health of running applications.
Application configuration and management.
Organization of applications into sites for the purposes of addressing and management. At run time, applications are associated with application pools that define runtime process boundaries.
For all the features provided, however, deployment, management, and monitoring of WCF and WF services is not addressed and
the burden falls on the application developer to provide a deployment vehicle, management guidance, and custom monitoring solutions. Also, it is challenging to host a long-running process such as a workflow in IIS and WAS due to on-demand activation and process recycling. State persistence and host activation must be explicitly configured by the developer if required by the application. AppFabric addresses these shortcomings by providing tools and services that enable you to easily deploy and monitor applications, as well as to configure features of the hosting environment.
Run-Time Services and Components
AppFabric provides services, such as persisting the state of a long-running workflow to a persistence store, content-based routing, and configuration-based activation.
Many of the basic features that make the WAS hosting environment attractive, such as application domains, life-cycle management, health monitoring, common configuration system, and dynamic compilation are provided by ASP.NET. ASP.NET also provides message-based activation for WCF and WF services that receive messages using HTTP.
WCF and WF services provide the building blocks for creating SOA applications, and are the focus of AppFabric. WCF provides a unified programming model for developing SOA applications that communicate across the Web, including interoperability with applications built by using other technologies. WF provides a workflow engine that can be used to implement long-running processes.
When implementing state persistence for executing applications, or capturing monitoring information, one of the first considerations is the storage medium for the data. It is especially critical for SOA applications that this data store be robust, secure, scalable, and highly available. Since your applications may consist of components running on multiple servers in a farm, the data store must also be easily accessible from multiple servers simultaneously.
To meet these criteria, AppFabric stores all persistence and monitoring information in a data store.