I am super excited about the public beta 2 release of Windows Server AppFabric. I am also hoping that you are also (if not more, than almost as) excited about this extremely useful and game changing offering from Microsoft.
However if you are one of those people who are still wondering what's this 'Windows Server AppFabric' and why is it important for you then you have come to the right place. In the last few weeks I have been asked few recurring questions on Windows AppFabric Fabric and it made a perfect sense for me to write a blog post (or perhaps a couple of them) on this topic.
At the moment I am thinking about making this a 3 part series which we will cover following areas:-
1- Try to answer some of the common questions around Windows Server AppFabric
2- Discuss business use cases that require use of Windows Server AppFabric
3- Discuss Windows Server AppFabric Architecture and its extensibility points
In this first post I will solely try to outline the technology side of the story and try to answer following common set of questions:-
Q: What is Windows Server AppFabric:
Let’s see what MSDN has to say:
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.
In a nut shell, AppFabric
- is an ApplicationServer that allows you to build composite (WCF and WF) services that can horizontally scale out.
- offers enterprise scale distributed in-memory caching (that can, again, scale out horizontally)
- makes managing and monitoring services extremely easy through streamlined dashboards (via IIS) and Windows Power Shell Cmdlets
So, the key words are Services, Composite, Scalability, Distributed, In-Memory Caching, and ease of Management.
Q: Why/When should I use AppFabric?
We are not going to talk about business use-case in this post but surely we can discuss AppFabric's technical features that are extremely useful for developing composite service oriented applications.
You should definitely consider using AppFabric, when among other things, you... :-
- need your services to be scalable i.e the ability to expand from one node to hundreds and thousands nodes
- want to use application level in-memory caching that is highly available, performant and distributed across number of nodes
- want to be able to monitor your hosted services
- want the ability to manage your services using IIS as well as Windows Power Shell Cmdlets
Q: But... hold on...what happened with Oslo, Dublin and Velocity?
As a matter of fact, simply put mathematically, Windows Server AppFabric = Dublin + Velocity.
These days Oslo is more focused on data modelling and you find more details on Oslo here
Q: What are the key features of AppFabric:
Some key features of AppFabric include:-
- Hosting with message based activation i.e. Auto-magic lifecycle management based on incoming messages (more on hosting here)
- Streamlined configuration and monitoring via a centralized IIS Management console and Windows Power Shell Cmdlets (more on management tools here)
- Distributed, high performing, highly available, in-memory application caching (more on caching here)
- Seamless integration with IIS, WCF and WF (more on development here)
Q: How can I develop applications that can leverage AppFabric functionality?
Very simple! Fortunately, one of the good things about AppFabric is that any WCF/WF application/service built using following Visual Studio template leverage AppFabric feature-set.
- WCF Service Application
- WCF Workflow Service Application
- WCF Service
In fact, AppFabric (goes an extra mile and) looks for services created using these templates and applies default configurations for persistence and monitoring.
I believe that's it for now and in the next post, we will try to cover common use cases where we can run our services on AppFabric add utilize its feature-set to build scalable, composite and robust services and platforms.