An information processing apparatus configured to control an operation of software based on an issued license, the information processing apparatus comprising: a holding means configured to store a first license of the software, the first license comprising a first serial number; and control means configured to: receive (S1003) from a user a second serial number; determine (S1002-No) that no valid license is present for a second version of the software; generate (S1004, S1005) a request to provide a second license for the second version of the software, the request comprising the second serial number; determine (S1006) whether the second serial number is different from the first serial number, and if the second serial number is different from the first serial number (S1006-Yes), append (S1007) a request to return the first license to the request to provide a second license, and delete the first license from the information processing apparatus, and if the second serial number and the first serial number are the same (S1006-No), not return the first license; send, to a license server, the request to provide a second license; and receive, from the license server, the second license for the second version of the software, the second license comprising the second serial number, store the second license on the information processing apparatus, and control the second version of the software based on the second license. a holding means configured to store a first license of the software, the first license comprising a first serial number; and control means configured to: receive (S1003) from a user a second serial number; determine (S1002-No) that no valid license is present for a second version of the software; generate (S1004, S1005) a request to provide a second license for the second version of the software, the request comprising the second serial number; determine (S1006) whether the second serial number is different from the first serial number, and if the second serial number is different from the first serial number (S1006-Yes), append (S1007) a request to return the first license to the request to provide a second license, and delete the first license from the information processing apparatus, and if the second serial number and the first serial number are the same (S1006-No), not return the first license; send, to a license server, the request to provide a second license; and receive, from the license server, the second license for the second version of the software, the second license comprising the second serial number, store the second license on the information processing apparatus, and control the second version of the software based on the second license. receive (S1003) from a user a second serial number; determine (S1002-No) that no valid license is present for a second version of the software; generate (S1004, S1005) a request to provide a second license for the second version of the software, the request comprising the second serial number; determine (S1006) whether the second serial number is different from the first serial number, and if the second serial number is different from the first serial number (S1006-Yes), append (S1007) a request to return the first license to the request to provide a second license, and delete the first license from the information processing apparatus, and if the second serial number and the first serial number are the same (S1006-No), not return the first license; send, to a license server, the request to provide a second license; and receive, from the license server, the second license for the second version of the software, the second license comprising the second serial number, store the second license on the information processing apparatus, and control the second version of the software based on the second license. <EOS>