Being exposed to Windows Management Instrumentation (WMI) lately, I’m afraid I’m coming down with a fever, hot flashes and jumpy legs. I suggest you all stay away from me, or you might come down with the “sickness” too. The name Windows Management Instrumentation implies a 21st century Gestapo organization that quarantines computers and people in a vacuum of space and time.
I can see the movie preview now…
Movie Preview Guy: In the future, societies pivot between billions and billions of worlds inside entities and relationships…
Ilene, receptionist at CIM, a big futuristic corporation: (With a big smile) Good morning Mister Peacembodied.
Peacembodied, big wig at CIM: Good morning Ilene.
Movie Preview Guy: People, interfaces and devices are not what they seem…
Big wig: Ilene, Could you please schedule an emergency meeting with the Distributed Management Task Force (DMTF)?
Movie Preview Guy: In a future where the DMTF controls all interoperability interactions between man and machine, something is missing and lost forever in our distant past…
Big wig: Also Ilene, I would like you to arrange the resurrection of Bill Gates from cryogenic freeze. I want him to be a part of this meeting.
Movie Preview Guy: Only one man backed by billions of dollars, on a mission for exposed continuity, can save humanity’s need for technology. Your neighborhood is not safe. Lock your doors or kiss yourself goodbye. Bill Gates is Mr. AND Mrs. Interoperability!
MR. AND MRS INTEROPERABILITY COMING SOON TO YOUR FUTURE SOCIETY
If you are not there, you might as well be dead… and if you are not dead… you at least should not be breathing.
Anyone with a heart condition must leave the room.
All jokes aside, here is a little background on WMI…
WMI is Microsoft’s answer to basically every application that needs to communicate with any version of a Microsoft application, regardless of the operating system version. The goal of the common information model (CIM) and WMI is to expose the data about all applications on the computer(s) that need to communicate with each other (i.e. other computers inside a network or devices exposed on the network).
This provides additional functionality to the user, whether or not the user is even aware they’re in direct contact with the computer or another computer. The WMI is the vessel (or bidirectional message) that allows the calling application to communicate with the CIM. Think of the CIM repository as a SQL container (or database), because that’s almost exactly what it is.
The WMI also departmentalizes the exposed application into methods or tasks, which can be performed by user interfaces and extend a user-friendly namespace to be called from the .NET language.
Just like any other relational database, child parts of the exposed namespace can be interfaced with. The CIM repository is called from the WMI via a standard language called WQL (WMI Query Language). Sounds familiar? Well it is. It is based on T-SQL and follows almost the same rules and structure all developers are familiar with. This decreases development time due to the fact that all WMI components are housed in the same place and can be called using the same language.
This call is similar to an order placed by phone or fax to a restaurant, with all the directions needed to complete the order. The WMI places the order and picks it up after the chef (CIM) verifies that it has the ingredients for WMI. Just like placing an order, you go through all the things you want in your order and how you want the order prepared. This is very similar to custom APIs. Sounds great doesn’t it?
BUT…I’ve experienced problems when the WMI (Mr. and Mrs. Interoperability) calls in an order for something that’s not available, but the CIM expects it to be.
Goes like this…
Caller: What do you mean you are out of cheese!? You deliver pizza right?
I’ve had two problems related to this issue. One problem occurred when subject matter expert attempted to install SQL server and the CIM repository seemed to be missing, causing the installation process to expect “a pizza with CHEESE.” The pizza company was no longer there to answer the call and make the pizza. The second issue I experienced was related to credential issues.
I support Microsoft and value what they are trying to do, but have Mr. and Mrs. Interoperability created a one dimensional environment that prevents and forces us to communicate with only one restaurant with a limited menu? What are your thoughts and experiences with WMI?