How are Intervals stored in the ProofMark System?
Intervals and their cross-certifications are stored in a dtabase called an "Archive." The ability to retrieve an Interval and its Cross-certifications from an archive provides all the information necessary to complete the verification of a ProofMark. Because an archive is a logical database, it can be shared or replicated (copied) to many servers, and can be hosted on any server. Its physical persistence may be mapped into either a normal file system or a JDBC-compliant (Java Database Connectivity) relational database.
A unique hostname URL:hostname or hostname:port identifies each archive, where the port defaults to 80. This host name is the logical host of the archive, which may be ei- ther a single real server or a load-balance proxy to a group of servers. Other hosts may have replicas of the archive as well. This is the service that is contacted for Verification.
If the archive's real host ceases to exist, the ProofMark archive Directory will list forwarding host addresses where copies of the archive are located. Every Interval must be stored in at least one Archive, known as the Interval's root archive. Intervals may be stored in additional archives as well. During creation of the Interval, an archive Tree is established for the Interval and the Interval is stored or published in its root archive before it is available for use. After its initial publication, the Interval is forwarded asynchronously to one or more additional archives in the archive Tree, which may in turn each forward to additional archives. The archive Tree is represented as part of the Interval's XML representation and therefore appears in each ProofMark issued by the Interval. This enables the holder of the ProofMark to know which Archives can be used for later verification of the ProofMark. In a typical situation, an organization will have its own archive, and will forward its Intervals to a public archive, but more extensive archive Trees are possible. Each additional archive may have been configured to forward to another level of archive (propagating the archives). The process of establishing the archive Tree for an Interval occurs immediately after the Cross-certifications for the Interval have been obtained. The archive Tree is constructed by combining the archive Trees from the servers that issued Cross-certifications as follows:
- The Interval's local archive becomes the root of the archive Tree
- The set of archive trees of all of the Cross-certifications for the Interval are added as immediate branches of the root archive
- If there are archives that have been configured for publication, without requiring Cross-certifications, these archives are also added as branches
- Any cycles or redundant branches in the resulting archive tree are removed In an exception to this process, the Interval does not have a local archive. In this case, it must be configured with only a single Cross-certification group from which Cross- certifications are required. The resulting archive Tree then becomes a copy of the archive Tree from that group.