I'd like to take a moment to talk about the Information Service and why it is unique. You see, this is the only service compatible across multiple releases. All other services are locked to a specific Vault release. For example, a Document Service that talks to a Vault 2010 server will fail if you try to connect it to a Vault 2009 or Vault 2011 server.
But not the Information service. Starting with R5, all Information service functions have been compatible with the future release. No need to re-compile or update the web reference.
The reason it works that way is because this service tells you the version of the Vault server. Locking it to a specific version would have been self-defeating. The main idea is that you can check with the Information service before you sign in. If the server version doesn't match the version you expect, you abort the operation because you know that the sign in won't connect properly. Not only can you get the version of the server, but you can tell which Vault product is running on the server.
GetSystemProducts
GetSystemProducts() is the main function in the server. The other functions are there for rare cases and backward compatibility, so you will probably not need to deal with them. GetSystemProducts has some interesting behavior. First, you get an array back, not a single value. This array will contain the server product and all subset products. So, a Vault Professional server will return 4 Products: Vault Professional, Vault Collaboration, Vault Workgroup, and Vault. A base Vault server will just return the Vault object.
The ProductName value on the Product object is tricky. Because of backward compatibility, this value resembles the original product name, which may not be the current product name. You probably know that Productstream was the original name of Vault Professional, but did you know that Vault Professional was the codename for Vault Workgroup?
Here, let me demonstrate with a chart:
ProductName | DisplayName (2011 release) |
Autodesk.Vault | Vault Server |
Autodesk.VaultPro | Vault Workgroup Server |
Autodesk.VaultCollaboration | Vault Collaboration Server |
Autodesk.Productstream | Vault Professional Server |
Lastly, there is the ProductVersion value. This is a string with a 4 part version number corresponding to the build number of the Vault server. For example "1.0.3.200". For some strange reason, Vault uses Inventor's primary build number. So even though Vault 2011 is technically R9, it has a primary build number of "15".
Anyway, the primary number is the only one you need to worry about. The second build number is the service pack level, but the API does not change during service packs. And the last two numbers are just increment values.
All the Product objects returned should have the same build number. In the past, it has always been the same, and I don't see that ever changing. The effort to test and support a mixed version server would be astronomical.