Answers to your numbered questions below.
1. Each WBEM Server has its own mechanism for associating a CIM Class (which is what you'll define in your MOF files and compile into the WBEM Server's class repository) with the provide code that supports requests related to that CIM class. A typical mechanism uses a "Provider" CIM Class Qualifier, which you will define in your CIM Class that identifies the Java Package and Class name. (e.g. Provider["mycompany.myproduct.MyJavaProvider"] As long as you include the JAR file containing your Providers in the WBEM Server's Java Class Path, everything should just work.
2. See my answer to question 3 below.
3. I would strongly recommend taking a look at the WS, Inc. J WBEM Server. Full disclosure - I used to work for WS, Inc. You should do some research and verify on your own that there is not a alternate good enterprise caliber Java implementation of a WBEM Server that supports the standards required by SMI-S. My advice for getting started would be to download an evaluation copy of the WS J WBEM Server. You can use it for your "getting started" development without any licensing cost. If you do decide that its a good solution for you, your company will need to establish a licensing agreement with WS, Inc. The J WBEM Server has documentation related to Provider and Client code examples, and the team at WS, Inc is very good about giving some level of free advice.
4. In order to use your SMI implementation with SCVMM, you will need to support the Microsoft required set of SMI-S Profiles. I would recommend starting with the Profile Registration Profile, as these providers will typically return static data, so its a good basic set of providers to get started with.
- Matt