I implement method 1 and maintain the printer-up-time. The reason is that
the printer is not one unique component.
Method 1 is the same as method 2 if the printer never goes down.
I dont think the job-printer-up-time is necessary, since once the client has
the printer-up-time, it knows time when the printer reboot occurred and can
calculate the local times of all the jobs. The client must refresh the
printer-up-time occasionally, in case the printer has rebooted, but the
client can do this when it queries the printer for other attributes, such as
printer-state. There is of course a risk that the client might occasionally
display incorrect times if the printer reboots frequently, but maybe that is
not so important.
job-printer-up-time does not do any harm of course, but clients will have to
cope anyway with V1.0 servers that don't supply it.
A minor point is that if the client asks for a long list of jobs, the server
might take a while to prepare it, and the job-printer-up-time returned for
each job might not be the same. I guess that the client ought to take the
last job-printer-up-time in the list.