The difference is quite simple:
The component name in this case represents a name that only makes sense when used withing the context of a managed environment (ie running inside the application server), while the JNDI name is the raw name for the component as it is deployed, basically as it appears globally in the JNDI namespace.
If you are running outside of the EJB conainter, you would use the JNDI name. If running from within the container you would have to bind the comp name into your deployment descriptor as an EJB reference, this can either be Local or Remote depending upon the type of interaction with the component. There should be a method on the utility class to use the JNDI name as well as the component name in looking up the component.