This is the first in a series of posts to document Amazing Alex Weinert's COM308 talk on building manageable services with the Windows Communication Foundation.
An important impetus for the adoption of service orientation is the prospect of an information services infrastructure comprised of readily-manageable units. Furthermore, in envisaging that more-manageable infrastructure, what people see is not merely that the units can be more easily administered as software entities by system administrators, but also that they can be properly administered as components of a business enterprise, as budget line-items. The construction of software is an expensive undertaking that is almost always for the purpose of either making money or saving money. A reason that investing in software is viewed with increasing skepticism is that the costs of building software are always readily apparent, but the returns on the investment are much less so. Software services are supposed to software entities of which the costs are more controllable and the returns more tangible. Indeed, ideally a software service is supposed to be an entity of which the costs of operation and the level of service are known and controlled exactly, and which can not only be composed together into larger systems of which the costs and reliability are also known precisely, but something of which the consumption can also be sold.
The Windows Communication Foundation responds to the demand for software that is more easily administered as information technology and as budget line-items in two ways. First, it provides an admirable variety of tools for systems administrators to use to manage Windows Communication Foundation solutions. (Did I say "admirable?" Hell, what I mean to say is THE WINDOWS COMMUNICATION FOUNDATION HAS THE RICHEST SET OF MANAGEMENT TOOLS OF ANY DEVELOPER FOCUSED TECHNOLOGY EV-AH, AND IS THE FIRST TO MASSIVELY DELIVER ON THE PROMISE OF SOFTWARE SERVICES BEING MORE MANAGEABLE.) Second, it allows developers to easily augment those tools for systems administrators, and also to add facilities that will be unique to each business enterprise, by which business administrators can monitor costs, risks and returns.
Here are no less than ten important ways in which applications built using the Windows Communication Foundation can be managed:
1. System administrators can configure how Windows Communication Foundation applications addresses, bindings, contracts, and behaviors.
2. Windows Communication Foundation applications can log messages as they pass through each part of the system.
3. System administrators can retrieve rich trace information emitted by Windows Communication Foundation applications.
4. System administrators can monitor the rich set of performance counters provided with the Windows Communication Foundation.
5. Windows Communication Foundation services can provide information to Windows Management Instrumentation (WMI), so existing WMI tools can be used to monitor and manipulate those services. In the future, all such information will be accessible via the WS-Management specification.
6. Developers can provide systems administrators with their own interfaces for monitoring applications.
7. Developers can supplement the built-in trace information with trace information that is unique to their own applications.
8. Developers can supplement built in performance counters with additional ones that the systems administrators may require.
9. Developers can provide performance counters to allow business administrators to monitor the risks, costs, and returns of software services
10. One can use the WMI programming interfaces to construct custom network and business operations consoles for Windows Communication Foundation applications.
As you study these options, you should find that they make use of facilities that are already familiar parts of the Windows operating system, the .NET Framework, and the Windows Communication Foundation itself. So, in learning how to make Windows Communication Foundations applications manageable, neither the developer nor the administrator is confronted with unfamiliar tools, but are rather capitalizing on skills that they already possess.
The next several posts will show the code from the COM308 demo to illustrate how to leverage these ten options in your own applications.