What is this WAS thing anyway?

Posted: May 08, 2008  1 comments  

Average Rating

Tags
trivia
W3SVC
WAS

So, I was thinking that one of my first posts would be to give a high level overview of the "Process Model", the area which I nominally own, but lo and behold Thomas Deml (thomad) goes and does a whole write up on it here.  Just my luck...  :)

Doesn't matter, I'll instead give a bit of trivia about it.  In IIS 6, there was a single service for processing HTTP requests: W3SVC.  You stop that service and all HTTP processing capabilities stopped.  So, where did this WAS thing come from?  Well, internally, to do a process model, there's quite a bit of state that must be kept: the configured application pools, sites, applications, etc., as well as managing worker processes (bringing them up, monitoring, recycling them, etc).  Internally, this was known as the "WAS" piece.  Given that the dll name for it was "iisw3adm.dll" (which is still named that), you can guess that the "WAS" acronym was probably something about W3 and administration.

Of course, when IIS 7 came about, there had to be a split in the services so that we could support non-HTTP protocols.  So functionally, the "iisw3adm.dll" was split to provide the WAS and the W3SVC services.  The former would be the "parent" service for all protocols wishing to be hosted within a worker process, doing all the "process model" things in a protocol-agnostic way.  W3SVC became the "protocol service" for HTTP.  But, folks (i.e. my previous boss, who owned the process model in IIS 6 and part of IIS 7) were enamored with the "WAS" name, so they had to come up with a plausible name to fit the acronym.  Thus the "Windows Activation Service" was born. 

But, that's not the end of the story.  We shipped a beta of Vista with that name for the service and people started pinging me about "Windows Activation" issues (you know, that nagging thing in Windows about having a proper license key for Windows and how it bugs you until you "activate" it).  Uh, oh.  Not the association that we wanted.  There we were trying to explain to folks that it DOESN'T have ANYTHING to do with Windows Activation.  So, to help ease some people's mind and differentiate it from the "other" activation("Really, does MS really need a whole SERVICE to deal with Windows Activation?!?"), we decided to do a tactical change and add a silent "p" to the name.  So if you look into the service name for "WAS", you'll find it's actually the "Windows Process Activation Service".  I still remember having to change all resources to reflect that change (*ugh*)...

So, this being a technical blog, here's something technical about WAS: even though we tried to separate the functionality of WAS and the W3SVC services, including configuration, there are still several places where their conjoined past shows up.  The fact that they are still housed in the same dll (iisw3adm.dll) is a pretty good one.  Also note how in the "applicationhost.config" file the configuration for things like "web limits" and "logging" are defined in the "system.applicationHost" section group, even though they are only applicable to the HTTP protocol.  While you may split the code, you can't hide your past...

Comments

  1. Anonymous
    January 19, 2009

    Excellent Read!

Submit a Comment

Microsoft Communities