1.7 Versioning and Capability Negotiation

This protocol has no specific capability negotiation or versioning aspects, aside from the following considerations:

  • Services are identified by a globally unique identifier (GUID); furthermore, services of the same type can be differentiated by class ID (also a GUID).

  • Versioning is achieved by adding services (or support for new services) identified by new GUIDs (similar to COM interface versioning).

  • DSLR extensibility is achieved by:

    • Adding services: CreateService message on either side of the DSLR connection through a unique GUID is analogous to the COM QueryInterface call.

    • Adding functions: DSLR services are backwards compatible as long as old functions are kept.