What should a program being marketed under Digital Rights Management be?
Well, for one thing it should not be sold. It should only be licensed and made accessible to the licensees. No copy of such software should ever be present on the licensee's system, only the access key and a communications stub.
The process itself should run on the owner's server(s) only, and only the necessary data transfer should be made for data base entries made by the user and received by the user. The user should be able to save a copy of his data on his own machine. It may also be practical for the seller's machine to have this same data image on his server storage for convenience during a subsequent login.
The problem is keeping the two copies in synchronization, but with transmission speeds these days, it should not be a problem since initially the data are very small, and only grow as time progresses. A check sum system could be used at login for verification of the validity.
The initial license fee may or may not include some user hours for the application. In any case, the subscription needs a mechanism to bill the user for overtime on the server.
Where a graphical user interface (GUI) is involved, it should be in come common form such as OpenGL, so that the widest possible number of subscribers can be obtained.
Now sending a complete image for a screen is not really necessary, only updates which need be interpreted by the communications stub and displayed. Should the user demand a re-draw, this should be handled by the stub in communication with the server when necessary.
Let's look at some of the advantages of this system where the user doesn't have the program:
1. All updates to the program at made at the server under control of the owner of the product;
2. The user is never required to "patch" his end. If there is a change in the communications stub, this can be downloaded at the next login.
3. The user owns the data but not the program. He gets a private save in his machine of his data.
4. If only licensed users are allowed on the servers, and the security system is good, there is no question of piracy. The program is never out of the hands of the owner.
Sorry, owners, but if you want to do this right, you have to pony up some secure servers better than something PC based. Think mainframe. Think RACF. Think Multics.