Appendix B

B.1 DISTRIBUTED NAME RESOLUTION BASED ON NAMING CONTEXTS

Arbitrarily many DSAs are typically involved in distributed name resolution. Each DSA that is passed the request (by referrals or chaining) can typically only perform a fraction of the name resolution. Thus each subsequent DSA in the processing needs to know how much name resolution was performed by the previous DSA, and also what action is expected of it. This is achieved by including state information in the protocol (in both the DSP and the DAP) which describes the progress of the operation. The primary argument, called Operation Progress, indicates whether distributed name resolution either has not started, or is progressing, or has completed. If progressing, it also indicates which RDN in the purported name is to be resolved next. See § 9.13.4 for a full description of Operation Progress.

Upon receiving a request, a DSA determines the current progress of the operation and then compares the purported name against the context prefixes of the naming contexts that it holds, to see if it has a match. If it has a sufficient match, it will compare the RDNs of entries that it holds with the remaining RDNs in the purported name. This may eventually lead to the whole purported name being matched, or to an alias being encountered, or to a subordinate (or non-specific subordinate) reference being found, or to a conclusion that the purported name is wrong.

In the event that an alias is encountered, it is dereferenced. This process entails modifying the purported name by replacing the alias name (which is the initial part of the purported name) with the aliased object name attribute value (the name of the entry being pointed at). The trailing part of the purported name is left unaltered. Operation progress is set to not started and name resolution starts again with the new purported name.

In the event of a reference being found, the operation may be chained to the next DSA, by using the Access Point Information contained in the subordinate or non-specific subordinate reference. Alternatively, a referral may be returned to the requestor, so that it may continue the processing. A referral contains Access Point Information and Operation Progress arguments (§ 9.13.1). In both cases, the Operation Progress argument is suitably updated ready for the next DSA.

If the DSA did not get a sufficient match with its context prefixes, then a non-First Level DSA will either forward the request to the DSA in its superior reference, or return an error to the caller, depending upon the value of the operation progress argument. A First Level DSA will be able to determine if the name is an error, or if a subordinate of the root has a matching initial RDN. In the latter case, the First Level DSA will forward the request (via chaining or referrals) to the DSA holding the subordinate. Distributed name resolution based on naming contexts is shown in Fig. B.1.
 

Fig. B.1 (Simplified) distributed name resolution as performed by one DSA.