Licensing Infrastructure

The infrastructure that supports our licensing mechanisms.

Proposal

Licensing library design after refactoring

Components

  • LicenseManager (dll)

    • Resolve licensing aspects for the generic controller

    • Handling the active license

    • Downloading new licenses

    • Validating licenses and execution requests

    • Check internet settings

  • LicenseModel (dll)

    • Representing the license data in a standard way.

    • Serializing and deserializing the data

    • Encryption

  • License WebService:

    • Provide license files on request

    • Add new licenses to DB

    • Query licenses DB

  • Licensing WebApp:

    • Provide UX for licensing manager users

    • Show status of licenses

    • Create new licenses

Sequence Diagrams

Open Active or Install New License
Validate License

Database Migration

There are currently 3 software components where licenses are created, each of them with its corresponding database:

  • Studio: for Snow

  • VBUC CLI License Generator: for VBUC manually generated licenses.

  • VBUC in Sales Web Flow for automatic VBUC sales.

License Model

After considering Snow, VBUC and other experiences with licenses, this is the purposed LicenseModel:

Pending Questions:

  • LicenseFile: why is this text field stored in the VBUC DB?

  • DateIssued: should it be the original date when the license was inserted into the DB? (makes more sense) or the date when the current license file was serialized?

  • Unmutable License Files: Where to handle ConsumedAccummulatedLines & LastUsedDate?

  • LicenseType & ExecutionMode: define a generic mechanism to solve all possible scenarios.

  • Serialization of new files: available in the LicenseModel, or only in a separate private dll?

Last updated