| Previous | Table of Contents | Next |
The System/38 had objects in both the operating system and in the MI. Two different groups of people in the development organization defined and named these objects. One group defined the CPF objects, which were renamed OS/400 objects with the announcement of the AS/400.3 The other group defined the MI instruction set and the MI system objects.
3Speaking of names, Rochester systems never used the name operating system prior to the AS/400. Operating systems were supposed to be complex and scary to most customers. Names such as Control Program Facility and System Support Program were somehow friendlier and less threatening. To everyones surprise, when the PC introduced the Disk Operating System (DOS), no one was concerned; hence, the name change to OS/400.
The good news is that sometimes there is a one-to-one mapping between an OS/400 object and a system object at the MI. They are the same. The bad news is that sometimes they are not the same. All OS/400 objects are made up of one or more MI system objects. In other words, the relationship between OS/400 object types and MI system object types is one-to-one or one-to-many, never many-to-one or many-to-many. You will see an example of this in the next section. Before continuing, we need to clarify one more point of confusion.
Even when there is a one-to-one mapping of an OS/400 object to an MI system object, the objects may have different names. For example, OS/400 has an object called a library. There is an equivalent system object at the MI, but there it is called a context. How could this happen? The answer goes back to the System/38 days and the two different groups of people with two different naming philosophies.
One of the philosophies said this: If you are going to come up with a new system, you should rename everything. The reason is to force people to go in and understand the new structure. If you are going to implement a library, and you call it a library, someone will say, I know what a library is; I worked on another system that had a library. Of course, that other systems library may be totally different. If you give the library a new name, such as context, no one will have preconceived ideas about it. Glenn Henry, the System/38 programming manager, advocated this naming philosophy. The group who defined the system objects at the MI used this approach, and they created some very strange names.
The other group was responsible for naming the operating system objects. This group followed Thomas Edisons approach to naming: Use a name that sounds familiar, even if it isnt exactly the same. Back in the days when Edison was selling electricity, he decided to use names familiar to everyone who used natural gas. Thus, he would talk about the electric main coming into the house just like the gas or water mains do, even though a main is a pipe or a duct, and electrons dont usually flow through pipes into a house. He also called the heating element on a stove an electric burner, so that people who were familiar with gas burners would accept the electric stove (honest the electricity in the heating element is not burning). Edison would have liked the operating system group.
Several object types are available in both OS/400 and the MI. Table 5.1 lists the types of OS/400 objects. For comparison, Table 5.2 lists the MI system objects. Keep in mind that we continue to add functions and even object types to the definition of the AS/400 with each release. The object listings in both Table 5.1 and Table 5.2 are reasonably complete for the purposes of our discussions in this and the following chapters, but all objects may not be included.
| Authorization list | Journal |
| Chart format | Journal receiver |
| Class | Library |
| Class of service description | Line description |
| Command | Menu definition |
| Configuration list | Message file |
| Controller description | Message queue |
| Data dictionary | Mode description |
| Device description | Module |
| Document | Network interface description |
| Document list | Output queue |
| Data area | Panel group definition |
| Data queue | Product definition |
| Edit description | Program |
| File | Query definition |
| Folder | Reference code translate table |
| Forms control table | S/36 machine description |
| Graphics symbol set | Service program |
| Ideographic character table | Session description |
| Ideographic dictionary | Spelling aid dictionary |
| Ideographic sort table | Subsystem description |
| Information search index | Table |
| Job description | User index |
| Job queue | User profile |
| Access group | Index |
| Authorization list | Journal port |
| Byte string space | Journal space |
| Class of service description | Logical unit description |
| Commit block | Mode descriptor |
| Context | Module |
| Controller description | Network descriptor |
| Cursor | Process control space |
| Data space | Program (3 Subtypes) |
| Data space index | Queue |
| Dictionary | Space |
| Dump space | User profile |
Some of the OS/400 objects in Table 5.1 map one-to-one with the MI system objects in Table 5.2, but the name of the object in each set may or may not be the same. An example where the names are the same is a program. The library (context) object is an example where the names are different.
Other OS/400 objects have a one-to-many mapping with MI system objects. Figure 5.1 shows an example of this. The OS/400 database file in our example has five MI system objects, and it is composed of four different types of MI system objects (two are spaces in our example). The actual number of objects making up a file can be much greater. A cursor exists for each member, and even a single-membered join file can own or refer to up to 32 dataspace indexes. In the next chapter, we look at the database and how these various MI system objects are related. For now, we can see the separate pieces.
Figure 5.1 OS/400 Database File Objects
One of the MI system objects is a data space. The database uses a data space to store the physical data, along with a definition of the fields in the database records. A second system object, called the data-space index, contains a description of how the data is to be viewed. In the next chapter, we will see how the data-space index provides a logical view of the physical data. The third object is a cursor that essentially accesses the records in the data space and uses the data-space index to provide the logical view. The cursor provides the open data path to the data space and also contains the user buffers. The fourth object is a space where the result of the database operation can be placed. This is essentially an I/O buffer. The final object shown in our example, which is also a space, contains the file description. This objects only runtime function is to locate other objects.
| Previous | Table of Contents | Next |