A Resource Information Service for the Component Architecture Toolkit

Andrew Whitaker


In order for a problem-solving environment to be effective, it must have access to information about the hardware and software resources available on the system. This allows end-users to make informed decisions about which components and machines to employ for a given computation. The CAT Resource Information Service (RIS) provides a database for software and hardware meta-data as well as a graphical database browser. This paper describes the design and implementation of the RIS.

1) Introduction

The Component Architecture Toolkit provides a framework in which heterogeneous software components can connect and interact in order to solve problems in computational science and engineering. In the context of the CAT, a component is any self-contained software module that satisfies certain basic requirements imposed by the framework. Any CAT component can be dynamically inserted into the system and be made to interact with other CAT components, regardless of differences between architecture, operating system, and programming language. The end-user interacts with this problem-solving environment (PSE) through a graphical interface, which provides a visual workspace in which components can be created and connected. The CAT is inherently distributed, so software components contained in a CAT workspace can run on any machine on the Internet.

Before the user can decide which components and machines to employ, she must have access to information about the hardware and software resources available on the system. This facility is provided by the CAT Resource Information Service (RIS). The RIS comprises two subsystems. The Information Server maintains an LDAP database, which stores hardware and software meta-data. The Information Browser is a graphical tool packaged with the CAT that allows the user to search and browse the contents of the LDAP database.

Figure 1: RIS and the CAT

2) Information Server

The information server uses an LDAP database to store CAT meta-data for reasons that will described in this paper. However, the system was designed with flexibility in mind, so the LDAP database could be replaced with only a few changes to the Information Browser.

2.1) Directory Services and LDAP

The RIS is implemented with a distributed directory service instead of a conventional database. In general, a directory service contains a hierarchy or tree of data entries in the same way that a file system contains a hierarchy of files and directories. Typically, a directory service is optimized for reading more than writing, and is used to store mostly static information.

Figure 2: An LDAP directory tree

The Information Subsystem uses a directory service based on the Lightweight Directory Access Protocol (LDAP). LDAP is based on the OSI X.500 protocol for directory access, but is much simpler and runs over TCP/IP. The LDAP directory tree is populated with entries that contain attribute/value pairs. Although an attribute name must be a string, its corresponding value can be a string or an arbitrary array of bytes. Therefore, an LDAP database can store any form of data that can be serialized into a binary format.

The attributes that an entry possesses are defined by LDAP object classes. For example, a person object class might contain attributes such as name, position, email, and telephone. Each entry is uniquely identified by one of its attribute/value pairs called its relative distinguished name (RDN) and the relative distinguished names of its ancestors. This composed string is called an entry's distinguished name (DN), and is used to uniquely identify an LDAP entry. The distinguished name of an entry corresponding to a person might look like:

cn=Randall Bramley,ou=Computer Science,o=Indiana University, c=US
cn stands for "common name"; ou stands for "organizational unit"; o stands for "organization"; c stands for "country"

Distinguished names can also serve as data values. This allows an entry to contain a "pointer" to another entry. For example, a software component entry could contain an author attribute whose value is the distinguished name of a person entry. Schematically, this transforms the directory tree into a directed graph.

LDAP offers several advantages over conventional databases for the purpose of constructing the CAT Information Subsystem: