Архитектура AS/400
Объекты
Операционная система OS/400
Надежность
Заключение
Литература
 


Фирма IBM, одной из первых создавшая в свое время не одну серию универсальных компьютеров, на этот раз пошла по пути узкой специализации и создала Application System/400 - семейство компьютеров, специально предназначенных для реализации полного цикла обработки информации: ввод, надежное хранение, быстрый доступ и обработка, обмен по линиям связи, распределенная обработка, защита от несанкционированного доступа.

В последнее время среди тех, кто использует компьютеры для банковских, бухгалтерских, кассовых операций, начали циркулировать упорные слухи, что кроме IBM-PC в мире существуют и другие компьютеры, в том самом мире в основном и применяющиеся для реализации большинства офисных технологий.

В то же самое время появились руководители крупных вычислительных центров при коммерческих учреждениях, которым надоело:

  • каждый божий день закупать дополнительные винчестеры для информации , нарастающей как снежный ком;
  • каждый божий месяц покупать дополнительные серверы, поскольку их сеть уже не переваривает такие объемы информации;
  • восстанавливать данные, потерянные в результате внезапного выключения питания, сбоев дисковых устройств, сбоев сетей и т. д.

Эти руководители, как всегда, обратили свой взор на Запад и увидели, что компьютеризация, о которой так много говорили, и IBM-PC - вовсе не одно и то же, особенно что касается банковских технологий и вообще работы с деньгами. Они также увидели DEC, Hewlett-Packard, Sun, Siemens, AT&T, издревле занимающихся компьютеризацией мира бизнеса и достигших на этом определенных успехов. Наконец, те, кто старше тридцати, вспомнили, что существует фирма, в названии которой просто написано: International Business Machines.

Система AS/400 - компьютер, получивший специальную ежегодную премию качества, учрежденную конгрессом США (1990 год).

Архитектура AS/400

Сегодня предлагается достаточно много различных моделей AS/400. Наиболее современными следует считать AS/400 9406 моделей F35, F45, F50, F60, F70, F80, F90 и F95.

На рисунке 1 показана архитектура AS/400 для всех последних моделей. Как и в любой системе, ядро - это системные процессоры, обрабатывающие данные длиной в полное слово (32 бита) и способные обеспечить доступ к 48-разрядным адресам. И хотя это более чем достаточно для средних компьютеров, аппаратура позволяет обеспечить адрес длиной в два слова.

Время цикла памяти для AS/400 различается в зависимости от модели компьютера. Объем основной памяти - до 512 MB. Все модели имеют режимы обнаружения и коррекции ошибок с использованием дополнительных битов проверки.

Управляющая память объемом 4-8 К слов с высокой скоростью выборки содержит внутреннее представление наиболее часто использующихся операций (Licensed Internal Code). По сути это набор инструкций процессора, недоступный как программисту, так и конечному пользователю. Любые программы автоматически преобразовываются в LIC-инструкции, исполняемые затем процессором. Поскольку LIC-инструкций несколько больше, чем размер управляющей памяти, часть их располагается в основной памяти. При необходимости команды извлекаются оттуда, что несколько замедляет работу системы. Посредством LIC, собственно и обеспечивающего машинный интерфейс, система AS/400 легко адаптируется и к новому "железу" и к программному обеспечению, используя и уже имеющиеся приложения.

Процессоры ввода/вывода ответственны за управление любыми подключенными к AS/400 устройствами: принтерами, дисками, дискетами, стриммерами и т. д. Процессоры ввода/вывода связаны с основными процессорами посредством шины ввода/вывода. В дополнение к процессорам ввода/вывода в AS/400 встроен обслуживающий процессор, ответственный за запуск системы и постоянно контролирующий работоспособность различных ее составляющих.

В AS/400 реализована концепция так называемой одноуровневой виртуальной памяти. Это означает, что между основной памятью и дисками нет никакого различия с точки зрения приложений. Вся память выступает в качестве единой области, доступ к которой осуществляется идентично. При этом становятся непосредственно доступны для работы около 281 терабайт памяти.

Объекты

Важная отличительная черта AS/400 - объектная ориентация, позволяющая простым и единственным путем получить доступ к объектам системы.

Объектом называется все, что может быть извлечено из системы или положено в нее. Практически для каждого объекта в системе известны такие атрибуты, как имя, тип, размер, дата создания, описание, а также владелец. Объект представляется набором информации, расположенной в нем. Так, представление программы - это ее код, представление файла - набор записей, его составляющих и т. д. Различные типы объектов имеют и различные функции работы с ними. У каждого объекта можно выделить общий для всех объектов заголовок и функциональную часть, зависящую от типа объекта. У всех объектов есть имя. Имя в совокупности с типом позволяют однозначно идентифицировать объект в системе. Рассмотрим кратко основные типы объектов.

Библиотеки

Библиотекой называется объект, предназначенный для группировки других объектов и их поиска. Количество объектов в библиотеке ограничивается только размером памяти. Объекты группируются логически; группировка никак не отражается на местонахождении объекта в памяти. Объект располагается в библиотеке с момента своего рождения. Однако в дальнейшем он может иммигрировать в другие библиотеки совершенно свободно (хотя и с "соизволения ОВИР", т. е. пользователя или системы). При копировании объекта его собственное имя остается прежним, однако полное имя изменяется, поскольку он теперь принадлежит другому объекту (библиотеке). Поскольку полное имя объекта включает в себя и имя библиотеки, в системе не может присутствовать два одинаковых объекта. Два и более объектов с одинаковым именем могут принадлежать одной библиотеке, только если типы этих объектов различны.

Различают три типа библиотек: системные, пользовательские и библиотеки IBM, однако при достаточном опыте объекты этих библиотек можно использовать в своих приложениях весьма продуктивно.

Фолдеры

Фолдером (папкой) называется объект, служащий для хранения документов и других фолдеров. По сути, фолдер - это обычный каталог. Персональный компьютер, подключенный к AS/400 посредством PC Support/400, может хранить данные в фолдерах в AS/400. При этом на PC становятся видны один или несколько сетевых дисков.

Файлы

Файлом называется объект, предназначенный для хранения записей либо потоков данных. Один из наиболее используемых типов файлов, хранящих записи, - файл баз данных. Документы хранятся в файлах-потоках.

Существуют специальные виды файлов, называемые файлами устройств, содержащие информацию о том, каким образом программа и конкретное устройство будут обмениваться данными. Например, если такой файл связан связан с дисплеем, то операция write производит вывод данных программы на дисплей. Допускается переназначение ввода/вывода. Если программа работает с дисплеем, то, переопределив дисплейный файл файлом коммуникации, та же программа начнет посылать данные по линиям связи.

Программы

Для интерпретируемых языков исходный код разбирается и выполняется сразу, поэтому в файле содержится только исходный текст. Для компилируемых языков (C, RPG, Pascal и других) исходный текст хранится в объекте типа файл, а скомпилированная программа - в объекте типа программа. Программа - это объект, содержащий набор инструкций.

Команды

Определением команды является объект, содержащий описание команды (включая имя команды, определения параметров и проверку синтаксиса) и программу, выполняющую требуемые действия. Вместе с системой поставляется огромное число команд, обеспечивающих доступ ко всем функциям системы. Пользователь может составлять свои команды (и, конечно, давать им имена по своему разумению) и изменять уже существующие.

Очереди

Очередью называется список объектов, нуждающихся в обработке. Различают четыре вида очередей.

Очередь заданий. Система обеспечивает множество операций в одно и то же время и управляет разделением системных ресурсов. В противоположность времени собственно обработки данных, время ожидания ввода для интерактивных задач достаточно велико. Системы пытается использовать время ожидания для работы других программ. Как правило, пакетные задания не требуют ввода с рабочих мест, зато довольно много времени уделяют расчетам. Очередь заданий управляет пакетной обработкой. Пользователь может поставить свою задачу в очередь и заняться другими полезными делами, а не пить кофе в ожидании ответа. Скажем, для страховой компании ввод страховых полисов может производиться в интерактивном режиме, а расчет зарплаты агентов в режиме пакетной обработки. Пользователь может управлять различными параметрами заданий в очереди, но наиболее интересными являются приоритет и запуск по расписанию.

Выходная очередь. Обычно программа, обработав некоторую порцию данных, используя файл, связанный с устройством печати так или иначе форматирует выходные данные. Эти данные попадают в выходную очередь и ожидают до тех пор, пока их не отправят непосредственно на принтер. Как и в очереди заданий, возможны установки приоритетов, задержки и прочие операции управления очередью.

Очередь сообщений. Пользователи и различные объекты в системе могут взаимодействовать посредством сообщений. Когда сообщение посылается программе или пользователю, оно заносится в очередь сообщений, связанную с приемником сообщения. Доступ к сообщениям производится посредством операции выборки из очереди.

Операционная система автоматически поддерживает очереди сообщений для:

  • рабочих станций;
  • пользователей, зарегистрированных в системе;
  • пользователей, ответственных за поддержку системы;
  • системного журнала.

Пользователи могут создавать дополнительные очереди сообщений.

Очередь данных. Когда в работе находится приложение, состоящее нескольких программных объектов, часто требуется организовать обмен данными между ними. В этом случае устанавливается очередь данных для использования внутри приложения, так, что все программы могут обращаться к единому набору данных, передаваемых от программы к программе. В эту очередь могут обратиться и другие приложения.

Операционная система OS/400

Системная поддержка данных

OS/400 работает с реляционными базами. База данных состоит из физических и логических файлов. Физический файл - это набор записей фиксированной длины, имеющих одинаковый формат. Однако имеется возможность использовать как записи, так и поля переменной длины. Совокупность описателей полей определяет формат записи и располагается внутри файла. Логический файлы используют данные из одного или нескольких физических файлов в виде, интересующем пользователя. Формат и способ организации данных могут отличаться от физического. Любой число логических файлов могут иметь доступ к одному физическому. Путь доступа используется для определения сортировки данных. Он изменяется сразу же, как только какая-либо задача производит изменения данных, влияющих на путь доступа. Описание файла производится либо при помощи спецификаций описания данных (Data Description Specifications - DDS), либо стандартными средствами SQL/400. Описания файлов используются различными системными программами и процедурами, созданными программистом. Имеется специальное средство управления запросами (Query Manager - QM), позволяющее указать, в каком виде данные, выбранные из баз данных, будут представлены в отчетах.

Для определения полей, форматов записей, файлов данных в словарях данных предназначена утилита IDDU.

Программы, написанные на любом языке программирования, имеют сходные возможности манипулирования данными, такими как чтение, запись, удаление, добавление, прямой и последовательных доступ, поиск по ключу и т. д. Важным элементом обработки данных является отделение способа представления данных в программе от их физического хранения в системе.

Обычные реляционные базы - это наборы данных, расположенные в одной или нескольких хранящихся в компьютере таблицах. О распределенных системах можно говорить, когда данные и программы, их использующие, расположены в различных системах (более подробно о требованиях к распределенным системам см. [8]1). За поддержку распределенных баз данных в AS/400 отвечает специальный компонент Distributed Relational Database Architecture (DRDA).

Для сохранения логической целостности баз данных используются средства управления транзакциями Commitment Control. После нескольких изменений базы данных (или нескольких баз данных) все изменения могут быть подтверждены и вступить в силу, либо отменены. Вопрос управления транзакциями по своей обширности выходит за рамки этой статьи, поэтому можно просто сказать, что в системе AS/400 реализован язык SQL в полном объеме, причем SQL-подход распространен на все файлы системы AS/400. Важно, что прерванная по каким-либо причинам транзакция не фиксирует свои частичные изменения и не нарушает общности данных.

Важным элементом при работе с базами данных является ведение журналов. Правильное управление журналами позволяет не только не потерять данные после сбоев, но и значительно повысить производительность системы. Все изменения объектов фиксируются в журналах и в случае сбоев могут быть восстановлены. Для баз данных фиксируется добавление, изменение и удаление записей, открытие и закрытие библиотек, файлов и т. д. Заносится и дополнительная контрольная информация: пользователь, задача, программа, дата, время изменения. Для системных объектов журналируются изменения на уровне файлов (например, перемещение, переименование), на уровне библиотек и на системном уровне (такие, как загрузка, сбои). При создании журнала можно указать, какую информацию собирать. Журналы могут вестись для любых объектов в системе и могут быть включены и выключены по необходимости.

Возможности, предоставляемые программисту

Главное, видимо, - интерфейс прикладных программ (Applocation Program Interface - API). API доступен из всех языков программирования и используется для доступа к системных функциям. Одна из часто повторяющихся процедур в больших проектах, использующих сотни файлов данных, - поиск процедур, изменяющих какое-либо поле. В OS/400 головная боль от такой работы уходит навсегда. Использование системы перекрестных ссылок позволяет понять, какие программы работают с какими файлами, увидеть взаимозависимость файлов и даже отдельных полей. Гибкое использование сообщений упрощает программирование интерфейса между прикладными программами.

Набор инструментов для разработки приложений включает следующие функции:

Расширенные функции печати, позволяющие пользоваться графическими возможностями матричных принтеров:

  • разработка прототипа документа;
  • указание специальных функций для документа в целом и для отдельных полей;
  • слияние пользовательских данных с прототипом;
  • создание графических образов, шрифтов, специальных символов;
  • поддержка шриховых кодов различных видов;
  • рисование линий.

Дизайнер символов. AS/400 позволяет работать как в одноязычном, так и в многоязычном режиме. И хотя поддержка национальных языков оставляет желать лучшего, подход заслуживает внимания. Различаются языки под направлению письма и по количеству байт, отводимых для кодировки одного символа - один либо два байта. Поэтому отнюдь не лишена смысла строка типа sizeof('A')! Дизайнер символов специально предназначен для разработки двухбайтных символов.

Программа работы с файлами используется для создания приложений, в интерактивном режиме модифицирующих содержимое файлов баз данных.

Оболочка для работы с объектами предусмотрена для эффективной работы с объектами системы. Доступ к объектам осуществляется с уровня библиотек и заканчивается членами объекта. Помимо достаточно стандартных операций типа копирования, удаления и т. п., оболочка имеет такие режимы, как компиляция, восстановление объектов, поиск по вхождению образца и т. д. По желанию пользователя могут создаваться дополнительные режимы.

Дизайнер отчетов обладает полным набором средств для разработки приложений. Интерактивная задача, как правило, использует десятки экранных форм. И, конечно же, все ленивые программисты (а программисты все ленивые) пользуются данной утилитой для рисования меню, форм, таблиц скроллинга. На сегодняшний день для описания экрана используется около 130 ключевых слов, позволяющих указать способы ввода/вывода данных, задать условия проверок и т. д. Опыт разработки приложений показывает, что одной из особенностей программирования для AS/400 является как раз то, что достаточно большая часть программы описывается дизайнером экранных форм, а не в тексте программы.

Текстовый редактор кроме стандартного набора функций содержит режим проверки синтаксиса. Это избавляет программиста от необходимости дожидаться результатов неудачной компиляции из-за пропущенной запятой.

В OS/400 доступны следующие языки программирования: BASIC, PASCAL, PL/I, RM/COBOL-85, C/400, COBOL/400, FORTRAN/400, RPG/400, SYSTEM C/400.

Интересная и активно используемая возможность - программа PC Support/400, позволяющая работать с персонального компьютера со всеми ресурсами AS/400. PC Support/400 позволяет:

  • использовать персональный компьютер в качестве рабочей станции AS/400, с запуском до пяти сессий;
  • передавать данные между персоналкой и AS/400;
  • поддерживать фолдеры в качестве сетевых дисков;
  • эмулировать системный принтер и режим виртуального принтера;
  • запускать удаленные команды;
  • поддерживать национальные языки;
  • работать с Windows 3.x.

Надежность

Помимо обычного резервного копирования на ленту, дискеты или кэртриджи AS/400 обладает рядом заслуживающих внимания методов защиты информации. Само по себе резервное копирование должно вестись в рабочем режиме эксплуатации системы, однако данные, восстановленные с ленты, могут оказаться в лучшем случае просто устаревшими, а в худшем - некорректными (например, если база данных является распределенной). Поэтому дополнительно предусматривается целый ряд программно-аппаратных методов защиты от сбоев и восстановления данных.

Восставление данных после сбоев дисков

Практика показывает, что большая часть данных теряется при сбоях внешних накопителей информации; восстановлению данных после сбоев магнитных дисков всегда уделяется особое внимание.

Выделение областей внешней памяти (Auxiliary Storage Pool - ASP). Один (или несколько) физических дисковых накопителей можно закрепить за данными определенного типа, объявив его (их) отдельной областью внешней памяти. (Примерами таких данных могут служить область временных данных ОС или область страничного обмена.) Смысл этого объявления заключается в том, чтобы разделить временные данные и саму операционную систему. Понятно, что, чем реже производится запись на дисковый накопитель, тем меньше вероятность разрушить его целостность. В системе существует как минимум одна ASP - системная, создаваемая автоматически при генерации системы. Системная ASP содержит все объекты OS/400, лицензионные программы и пользовательские объекты, не вошедшие в другие ASP. Кроме системной можно определить до 15 ASP для пользовательских объектов. Этим достигается изоляция объектов друг от друга, препятствующая разрушению одних объектов другими. Кроме того, так можно повысить производительность системы в целом (например, поместив журнал в отдельную ASP). Метод выделения областей внешней памяти не восстанавливает сами данные, но уменьшает время восстановления и повышает общую устойчивость системы.

Защита методом контрольных сумм может применяться для любой из ASP в системе. Применение этого метода требует дополнительных ресурсов системы и тщательного планирования при инсталляции (объем областей контрольных сумм обратно пропорционален числу дисковых устройств.)

Контрольная сумма формируется программно в специальной области ASP и постоянно обновляется при изменениях. Если ASP включает несколько дисковых устройств, область контрольных сумм равномерно распределяется между ними. При выходе из строя любого (одного) диска в ASP система полностью реконструирует содержимое испорченного диска, используя контрольные суммы и данные на других дисках. При выходе из строя более, чем одного дискового устройства полное восстановление невозможно. Также невозможно полное восстановление и при последовательном выходе из строя двух дисковых устройств - если не завершено восстановление первого диска, а из строя вышел второй.

Защита устройств по четности - чисто аппаратный метод защиты данных на уровне дискового контроллера. Если происходит потеря данных на дисковом устройстве типа 9337, контроллер автоматически восстанавливает данные, используя информацию с других дисков, подключенных к контроллеру. В отличие от защиты методом контрольных сумм, этот метода защиты не моет быть включен/выключен системными средствами, а является аппаратным, и применяется только в дисковых устройствах типа 9337 моделей 110 и 120. Понятно, что на аппаратном уровне восстановление можно провести значительно быстрее, чем на программном. Минимальное количество дисковых устройств, которые можно защитить этим методом в устройстве 9337 - четыре, максимальное -семь.

Защита методом дублирования направлена на защиту дисковой системы ввода-вывода от отказа ее компонентов.

Дублироваться могут:

  • дисковые устройства;
  • дисковые контроллеры;
  • процессоры ввода-вывода;
  • шина.

При выходе из строя какой-либо части дублируемого оборудования, происходит автоматическое переключение на работающую систему. Все дублируемые устройства в системе должны иметь одинаковый уровень защиты и принадлежать к одному ASP. Система устанавливает пары устройств внутри ASP так, чтобы уровень защиты был максимальным. Это значит, что если аппаратная конфигурация позволяет дублировать контроллеры, они будут дублированы, а, если возможно дублировать только дисковые устройства, будут дублированы только они.

Защита от сбоев по питанию

Эта проблема весьма актуальна для нашей страны, годе с электричеством происходят такие же чудеса, как и со всем остальным. Сейчас уже все, кто дорожит своими данными, подключают свои компьютеры (или по крайней мере серверы) через устройства бесперебойного питания (UPS).

О системе AS/400 можно сказать, что она очень устойчива к этому виду сбоев благодаря методам защиты, описанным выше. Кроме того, старшие модели системы AS/400 просто имеют встроенный UPS и программные средства работы с ним. Стандартные действия системы OS/400 таковы: ожидание 30 секунд, и, если питание не восстановилось, сохранение образа оперативной памяти на диске и, наконец, снятие напряжения с системного блока. После возобновления питания происходит восстановление программной среды на момент сбоя. Предусмотрено даже создание пользовательской программы, реагирующей на выключение питания и выполняющая действия, нужные пользователю.

Опираясь на личный опыт, мы можем сказать, что на нашей машине (кстати, не имеющей встроенного UPS) мы пока не теряли информации, несмотря на несколько внезапных отключений питания в рабочем режиме.

Конфиденциальность информации

Как следует из самого названия, Application System предназначена для создания и выполнения прикладных программ. И поэтому о ней известно только то, что для этого необходимо. Отсутствует информация по таким важным для взломщиков компонентам, как структура файловой системы, система команд процессоров, работа с памятью, алгоритм страничного обмена, структура системных таблиц и т. д. И еще одно важное отличие: в AS/400 нет ассемблера. Все эти факторы, вкупе с специальными средствами защиты от несанкционированного доступа, создают серьезные преграды для вторжения в AS/400.

OS/400 можно установить (в зависимости от потребности) четыре уровня секретности.

По своим правам и функциям относительно секретности все пользователи системы делятся на классы:

  • начальник системы безопасности;
  • администратор системы безопасности;
  • программист;
  • системный оператор;
  • пользователь.

Чтобы осуществить режим секретности, для каждого пользователя системы создается описание доступных ему ресурсов и его прав. Такое описание может создать только администратор или начальник системы безопасности. В нем, в частности, содержится пароль для входа в систему. Пользователь может впоследствии изменить свой пароль, после чего его не может узнать никто, даже начальник системы безопасности (который, впрочем, тоже может изменить пароль и получить доступ к объектам пользователя; однако, не зная старого пароля, нельзя скрыть факт несанкционированного доступа, а это часто важнее всего). В описателе ресурсов можно также указать периодичность смены пароля.

Пользователь работает с тем объектами и данными (библиотеками, коллекциями, программами, устройствами и т. д.), доступ к которым для него разрешен. Он также может открывать свой объект (или его часть) для других пользователей и, соответственно, получать доступ к чужим объектам. Доступ как к данным, так и к объектам можно получить на различном уровне: управления, чтения, добавления, изменения и т. д.

Для удобства коллективной работы может быть создан групповой описатель ресурсов, в котором фиксируются объекты, доступные для работы этой группе. Конечно, уровень доступа к данным пользователь внутри группы может существенно различаться: можно сделать часть данных невидимыми для всех пользователей, кроме одного, или запретить добавлять или изменять данные в определенных таблицах.

Предусмотрено и разрешение/запрещение по желанию пользователя возможности передавать права на доступ от одной программы к другой. Это значит, что если есть программы PA и PB, принадлежащие пользователям A и B соответственно, и есть данные DC, права на доступ к которым имеет только пользователь B, то пользователь A может получить доступ к этим данным через программу PB (конечно, только в том случае, если у него есть права на работу с программой PB).

Отдельный вопрос - проверка соблюдения режима секретности. Кроме организационных мероприятий, можно воспользоваться системой мониторинга OS/400 и отслеживать различные события в системе (действия с объектами, изменения прав доступа, инсталляцию новых программных продуктов и еще многое, многое другое). Мониторинг можно вести как непрерывно, так и периодически, выделяя для контроля пользователей и объекты, принадлежащие к "группе риска".

Заключение

За последний год популярность системы AS/400 в нашей стране сильно возросла. Частично это можно объяснить неким подобием моды, частично - традиционно сильными позициями у нас компьютеров фирмы IBM, но в основном, наверное, тем, что солидные фирмы выбирают для себя солидные компьютеры.


 

Литература

[1] Hoskyns R. IBM AS/400: A business perspective.

[2] IBM AS/400 system handbook 10-th edidtion 1992.

[3] AS/400 System Concept.

[4] AS/400 System Introduction.

[5] AS/400 Backup and Recovery.

[6] AS/400 Security.

[7] Datamation, July 1991.

[8] Открытые системы, Весна 1993.

 


1 "нам не дано предугадать, как слово наше отзовется..." (прим. ред.).