. . . "As can be seen, the application programmer may readily define subclasses to the class CM-- CommunicationDevice in order to define a protocol for any new remote device, database, or other external resource." .