Which AppFabric am I Looking For? (Azure or Server)
This post attempts to provide context for the Windows Azure AppFabric and Windows Server AppFabric technologies. First, you have to understand what is behind the term “AppFabric”. The notion is this - what you build as a developer and what you use to run and manage the solution you built should be separate things. As much as possible I want the runtime to worry about things like performance, scale, and resilience. I really want to build my application one way and dynamically the runtime should adjust based on the needs of my application. The capabilities my application needs to do it’s work are provided in the runtime; I just use them in my applications but at a level of isolation from the underlying runtime. AppFabric refers to delivering these application capabilities and the flexibility described. The capabilities are things like messaging, services, caching, integration and workflow to name a few. Microsoft’s goal is to deliver a broad and rich set of application capabilities and the underlying “AppFabric” runtime to support these capabilities both in Windows Server and in Windows Azure. Today, there are different capabilities in each place, which is the reason for the question – what capabilities exist where. Microsoft is working hard to clear up any confusion surrounding this question.
Overview
There are two "AppFabric" brand names within Microsoft:
Windows Server AppFabric and Windows Azure AppFabric enable IT professionals to build and manage applications more easily, both on-premises and in the cloud. Windows Server AppFabric allows applications to run on-premises, whereas Windows Azure AppFabric allows applications to connect and run in the cloud. The rest of this post provides a high level overview for both. If you need a quick link to resources for all of Appfabric, see [[articles: Windows Server AppFabric and Windows Azure AppFabric Links and Resources]].
Windows Server AppFabric
Windows Server AppFabric is a set of integrated technologies that make it easier to build, scale, and manage Web and composite applications that run on IIS. Windows Server AppFabric extends Windows Server to provide enhanced hosting, management, and caching capabilities for Web applications and middle-tier services. The AppFabric hosting features add service management extensions to Internet Information Services (IIS), Windows Process Activation Service (WAS), and the .NET Framework 4. This includes Hosting Services and Hosting Administration tools that make it easier to deploy, configure, and manage [[Windows Communication Foundation]] (WCF) and [[Windows Workflow Foundation]] (WF) based services. The AppFabric caching features add a distributed, in-memory object cache to Windows Server that makes it easier to scale out high-performance .NET applications, especially ASP.NET applications.
Refer to the Windows Server AppFabric Developer Center, and the MSDN Windows Server AppFabric product documentation for more information.
Windows Azure AppFabric
Windows Azure platform AppFabric helps developers connect applications and services in the cloud or on-premises. This includes applications running on Windows Azure, Windows Server, and a number of other platforms including Java, Ruby, PHP and others. It provides a Service Bus for connectivity across network and organizational boundaries. It also includes Access Control for federated authorization as a service.
Windows Azure AppFabric consists of the AppFabric Service Bus and the Access Control Service (ACS).
The AppFabric Service Bus helps to provide secure connectivity between loosely-coupled services and applications, enabling them to navigate firewalls or network boundaries and to use a variety of communication patterns. Services that register on Service Bus can easily be discovered and accessed, across any network topology. You can use the service bus to connect Windows Azure applications and SQL Azure databases with existing applications and databases, bridge on and off-premises applications, and create hybrid on-premise/cloud applications.
The Access Control Service helps you build federated authorization into your applications and services, without the complicated programming that is normally required to secure applications that extend beyond organizational boundaries. With its support for a simple declarative model of rules and claims, Access Control rules can easily and flexibly be configured to cover a variety of security needs and different identity-management infrastructures. You can use the ACS to create user accounts that federate a customer's existing identity management system that uses Active Directory service, other directory systems, or any standards-based infrastructure. It also gives you complete, customizable control over the level of access that each user and group has within your application. Using ACS permits you to apply the same level of security and control to Service Bus connections.
Refer to the Windows Azure Site or the Windows Azure AppFabric Developer Center for more information.