Основы AS/400
Шрифт:
Названия же для объектов ОС выбирала другая группа, предпочитавшая подход Томаса Эдисона (Thomas Edison): лучше даже не вполне подходящее, но уже знакомое покупателям имя. Когда Эдисон продвигал идеи использования электроэнергии, он решил выбирать названия, знакомые каждому, использующему природный газ. Он говорил, что к дому подводятся электрические магистрали (main), подобно газовым или водопроводным магистралям, хотя main — это труба или канал, а электроны, обычно, попадают в дом не по трубе. Он также называл нагревательный элемент кухонной плиты электрической горелкой, чтобы электрическая плита казалась чем-то знакомым людям, имевшим дело с газовыми горелками (скажем честно — электричество в нагревающем элементе не «горит»). Наша группа разработчиков ОС понравилась бы Эдисону.
Объекты OS/400 и системные объекты MI
Несколько
Графический набор символов | Служебная программа |
Документ | Описание сетевого интерфейса |
Идеографическая таблица символов | Описание сессии |
Идеографическая таблица сортировки Описание подсистемы | |
Идеографический словарь | Словарь правописания |
Индекс поиска информации | Таблица |
Класс | Библиотека |
Класс описания сервиса | Описание линии |
Команда | Определение меню |
Область данных | Определение группы панели |
Описание задания | Пользовательский индекс |
Описание контроллера | Очередь сообщений |
Описание редактирования | Программа |
Описание устройства | Модуль |
Очередь данных | Определение продукта |
Очередь заданий | Пользовательский профиль |
Папка | Справочная таблица трансляции кода |
Словарь данных | Описание режима |
Список документов | Выходная очередь |
Список конфигурации | Файл сообщения |
Список прав | Журнал |
Таблица управления формами | Описание машины S/36 |
Файл | Определение запроса |
Формат диаграммы | Приемник журнала |
Таблица 5.1. Объекты OS/400
лок транзакции | Описатель режима |
Группа доступа | Индекс |
Индекс пространства данных | Очередь |
Класс описания сервиса | Описание логического устройства |
Контекст | Модуль |
Курсор | Пространство управления процессом |
Описание контроллера | Описатель сети |
Пространство дампа | Профиль пользователя |
Пространство данных | Программа (3 подтипа) |
Пространство цепочки байтов | Пространство журнала |
Словарь | Пространство |
Список
| Порт журнала |
Таблица 5.2. Системные объекты MI
Некоторые объекты OS/400 из таблицы 5.1 полностью соответствуют системным объектам MI из таблицы 5.2, при этом имена объекта в двух разных наборах могут совпадать, а могут и не совпадать. Пример совпадения имен — «программа», несовпадения — «библиотека» и «контекст».
Рисунок 5.1 Объекты файла базы данных OS/400
На рисунке можно видеть набор отдельных компонентов. Один из системных объектов MI — область данных. Она используется базой данных для хранения физических данных вместе с определением полей записей. Еще один системный объект — индекс области данных — содержит описание того, как осуществлять доступ к этим данным. В следующей главе мы увидим, как индекс области данных обеспечивает логическое представление физических данных. Третий объект — курсор, осуществляющий фактический доступ к записям в области данных и использующий индекс области данных для формирования логического представления. Курсор предоставляет управляющие структуры для доступа к данным в области данных, а также содержит пользовательские буферы. Четвертый объект — пространство, в которое помещается результат опе-
Другие объекты OS/400 относятся к системным объектам MI как один ко многим. Посмотрите на пример на рисунке 5.1: здесь файл базы данных OS/400 состоит из пяти системных объектов MI, и ему соответствуют четыре разных типа системных объектов MI (в нашем примере два объекта-пространства). Фактически, файл могут составлять намного больше объектов. Для каждого из них существует курсор, и даже однокомпонентный файл объединения (join file) может владеть или ссылаться на 32 индекса области данных. База данных, а также связи между разными системными объектами MI будут рассмотрены в следующей главе.
рации над базой данных (по сути дела, это буфер ввода-вывода). Последний, показанный в примере объект, который также является пространством, содержит описание файла. Единственная его функция — поиск других объектов.
Поиск объектов
Найти объект в базе данных оригинальной System/38 было очень легко, так как все они были поименованы: Вы просто отыскивали нужное имя в библиотеке. Библиотека давала возможность организации объектов в группы и обеспечивала их поименный поиск. Эта структура была перенесена и в AS/400.
Библиотеки
В OS/400 библиотека — объект, который используется для поиска других объектов в базе данных. В отличие от многоуровневой иерархии каталогов в ОС ПК и Unix, библиотека OS/400 имеет одноуровневую иерархию. Для иллюстрации рассмотрим структуру имен объектов OS/400.
Чтобы найти объект OS/400 требуется знать имена библиотеки и объекта (то есть, путь «Библиотека/Объект»), а также его тип (одно и то же имя могут иметь несколько объектов, но все они — объекты разного типа). Другими словами, в библиотеке может содержаться программа SAM и пространство данных SAM, но двух программ с именами SAM быть не может. Кроме того, каждый объект находится в одной и только в одной библиотеке.
Библиотека не может ссылаться на другие библиотеки, иначе была бы нарушена одноуровневая иерархия «Библиотека/Объект». Из этого правила есть лишь одно исключение — специальная библиотека с именем QSYS, в которой, и только в которой, находятся некоторые специальные объекты OS/400 например, профили пользователей, определяющие права последних, и объекты конфигурации ввода-вывода, используемые для выполнения соответствующих операций. Подробно эти объекты рассматриваются в последующих главах.
Рисунок 5.2 Структура библиотеки OS/400
Структура библиотеки OS/400 показана на рисунке 5.2. В данном примере QSYS содержит профиль пользователя (JOHN), библиотеку (LIB1) и описание устройства (DEVD1). Библиотека LIB1 содержит файл базы данных (DB), очередь данных (DQ) и выходную очередь (OQ).
Позже мы увидим, что с каждым заданием в системе связан список библиотек. Этот список указывает системе, где следует искать объект, а также задает порядок поиска в библиотеках.