Your understanding of JCR is correct: it is a specification that has been implemented by multiple projects (including Jackrabbit, ModeShape, Alfresco, eXo, etc.). In fact, there are multiple versions of JCR (1.0, 2.0 and very soon 2.1), and not all implementations support all JCR versions.
(Full disclosure: I'm the founder and lead of ModeShape.)
There is no standard nor universal way to back up a JCR repository, but several of the implementations offer their own mechanisms. For example, if everything is stored in a DBMS, then you can use the DBMS backup and restore feature. Jackrabbit has its own backup mechanism, as does ModeShape.
What kind of integrity checking are you doing, and how does Toromino do that? JCR implementations should not allow any content to be saved that would violate the defined constraints (e.g., node type definitions with property and child node definitions), and they limit (to various degrees) how these node definitions can be changed.
I'm not aware of any great JCR books or online resources, but have a look at the Jackrabbit docs and the ModeShape docs.