Exploring the Inter-DIF Directory of the RINA within IRATI
The Inter-DIF Directory or IDD is one of the components of the RINA architecture that we will explore further within the IRATI project. In RINA when an application wants to communicate with another application, there is a need for a component that can find the requested application and determine a DIF that will support the communication. The component responsible for this task is the IDD. Once the requested application is found, the IDD can create a DIF either by joining other DIFs or creating a new one, that gives the two applications a common address space to use for communication.
The IDD is a Name Resolution System (NRS) that provides the directory service. As explained in John Day’s book “Patterns in Network Architecture: A return to fundamentals”, an NSR consists of a database, usually distributed, that is queried by the user (or the application). The database maintains the mapping between two name spaces: one that names what is to be located, and one that names where the object is.
There are several architectural decisions that define the design and the function of a directory. The directory structure may be centralized or decentralized (distributed, replicated or cached). It might follow a hierarchical organization or be flat. A combination of these is possible, as well as a directory that has an evolving structure according to the number of applications registered, the usage and the load and availability requirements.
Two protocols are required for the directory service, the first is a request/response protocol to query the database and the other, an update protocol to distribute updates to the database in the case it is replicated or in the case that caches exist. Moreover, a decision on how the members of the directory are queried has to be taken. When a query is made to a member of the directory, the directory might respond back with the best local information it has, might be responsible to query other databases and then return a response according to the information it acquired or simply return a reference of the next directory to ask.
In addition, a policy for the creation of the supporting layer has to be decided. In reality, there is a set of policies that decide on several operations that need to be done when creating a new layer such as the selection of the path that connects the source and the destination systems, whether an existing layer is used or a new one is created and the communication and the coordination between the systems along the path.
One of the objectives within the work held in IRATI will be to develop a framework that encompasses all these architectural decisions that concern the IDD and provide -amongst the other outcomes of the project- a study of the most representative approaches on these topics.