Для выполнения программы необходима память, процесс, время центрального процессора и ряд системных ресурсов. Всем этим управляет операционная система. Кроме того, для некоторых программ требуется еще иметь и разрешение от собственника программы на исполнение.
Используя обычную терминологию, вам необходима лицензия на использование ряда программ, а в ряде лицензий указываются определенные ограничения в отношении программ. Например, лицензией может быть установлен предел на допустимое число пользователей, которым можно одновременно запускать программу. Лицензия, приобретенная на возможность работы десяти пользователей на vps в сша, может иметь одну стоимость, а лицензия для работы пятидесяти пользователей будет иметь совсем другую стоимость. Некоторые производители программного обеспечения устанавливают арендную плату на программные лицензии. Предполагается, что программы по такой лицензии не будут работать, когда истечет срок аренды. На использование программного обеспечения могут накладываться также ограничения, которые уже никак не связаны с юридическими отношениями. В школьной компьютерной лаборатории может быть установлено ограничение на время в течение дня, когда на компьютерах лаборатории нельзя запускать игровые программы.
Некоторые собственники программного обеспечения используют систему «суда чести» для того, чтобы установить правила на использование их программ. Они печатают условия лицензии на экране или бумаге и обращаются к пользователям с просьбой выполнять условия контракта.
Другие собственники программного обеспечения соблюдают лицензионные правила на технологическом уровне. Один из технологических методов соблюдения программных лицензий — писать программы, которые соблюдают их собственные лицензии. Популярной технологией является проектирование прикладных программ, которые запрашивают разрешение на работу у лицензионного сервера. Такой сервер представляет собой процесс, которые сообщает прикладной программе может она выполняться или нет. Лицензионный сервер знает и соблюдает лицензионные правила.
Для выдачи запроса на разрешение и для получения гарантии на выполнение требуется установление коммуникаций между лицензированной программой и лицензионным сервером.