Эффективность клиентского доступа к AS/400.
Брухтий А.В.
Строчков А.Я.
Аннотация: В статье рассматриваются основные факторы, влияющие на эффективность доступа к компьютерам AS/400 фирмы IBM. Перечислены типы доступа к базам данных и приводятся результаты прямых измерений скорости обращения к базам данных с клиентских рабочих мест. Поскольку количество публикаций о платформе AS/400 на русском языке весьма невелико, в начале статьи приводятся общие обзорные сведения о компьютерах AS/400 и базовых средствах клиентского доступа к ним.
Семейство компьютеров AS/400 фирмы IBM представлено рядом моделей с общей производительностью от средней до высокой, и рассчитано на эксплуатацию в многопользовательском режиме – от 10 пользователей для младших моделей до нескольких сотен пользователей для старших моделей. Типичная роль этих компьютеров в вычислительных сетях – серверы баз данных, серверы приложений, файл-серверы, принт-серверы, WEB-серверы, серверы терминального доступа, широкий спектр возможностей делает эти компьютеры весьма привлекательными для корпоративного применения [3].
Как и в других многопользовательских системах, одним из ключевых вопросов для компьютеров этого семейства является эффективность клиентского доступа. Эффективность определяется широтой возможностей реализации клиентского доступа, что в первую очередь важно для системных администраторов, и удобством и скоростью доступа, что важнее для пользователей.
Клиентский доступ на платформе AS/400 реализуется весьма широким набором способов [1]. Среди них как широко распространенные сетевые протоколы IPX/SPX (обеспечивающий совместимость с Novell NetWare) и TCP/IP (стандарт для Intrnet и Intranet), так и специально разработанные фирмой IBM протоколы взаимодействия с мэйнфреймами APPC (Advanced Program to Program Communications), SNA (System Netware Architecture) и ориентированный на PC-совместимые персональные компьютеры протокол Personal Communications. Кроме того, сторонними фирмами реализованы дополнительные протоколы (например, NS/Router фирмы NetSoft). Такое многообразие возможностей позволяет интегрировать AS/400 практически в любое сетевое окружение, и выбирать средства, уже освоенные в данной организации, вместо того, чтобы тратить время на изучение новых средств.
В качестве аппаратной платформы клиентских рабочих мест можно использовать персональные компьютеры, совместимые с IBM PC с операционными системами DOS, Windows 3.x, Windows 95, Windows NT, всеми версиями OS/2 (как старыми 16-тиразрядными, так и 32-хразрядными), компьютеры Apple и их клоны, а также алфавитно-цифровые и графические (X-windows) терминалы, непосредственно подключаемые к AS/400 с помощью TWINAX-соединения (разновидность последовательного интерфейса).
Аппаратная поддержка сетевого соединения с AS/400 (контроллеры) реализована для стандартов Ethernet 10MB и Ethernet 100MB (FastEthernet), TokenRing 4MB и 16MB, FDDI (волоконно-оптическое соединение), а также для удаленного подключения через коммутируемые, выделенные и радио-каналы с помощью модема.
Программное обеспечение клиентского доступа к AS/400 основано на семействе программных продуктов Client Access. Оно представлено серверной компонентой, выполняющейся на AS/400 и обеспечивающей все многообразие способов доступа к AS/400, и клиентскими компонентами, работающими на пользовательских рабочих местах и обеспечивающими пользователям доступ ко всем услугам, предоставляемым AS/400. Клиентские программы реализованы для всех перечисленных выше операционных систем, и фирма IBM постоянно обновляет и усовершенствует их, расширяя их возможности и обеспечивая совместимость с новыми операционными системами, появляющимися на рынке.
С точки зрения программиста Client Access является интерфейсом средств доступа к ресурсам сервера AS/400 – базам данных, очередям и спулерам процессов (активных заданий), эмулятору файловой системы, а также к аппаратным ресурсам сервера. Рассмотрим более подробно программные интерфейсы доступа к базам данных, поскольку использование AS/400 в качестве сервера баз данных является наиболее типичным применением.
Сервер баз данных основан на СУБД DB2/400, встроенной в ядро операционной системы OS/400. Такое технологическое решение позволяет оптимизировать быстродействие DB2/400, а кроме того оно прямо связано с идеологией защиты данных, положенной в основу платформы AS/400: все средства управления доступом реализованы на уровне операционной системы, а не в прикладной системе, какими являются все остальные СУБД. Это позволяет принципиально повысить надежность защиты данных от несанкционированного доступа, поскольку ликвидирует “лазейки” в обход системы защиты.
Взаимодействие прикладных программ с DB2/400 осуществляется с помощью нескольких программных интерфейсов:
1. CLI (Call Level Interface) – специализированный интерфейс, реализованный фирмой IBM для взаимодействия с DB2. Это самый низкоуровневый интерфейс, прямо обращающийся к встроенным функциям СУБД. Поэтому его использование целесообразно в случаях, когда быстродействие прикладной программы является критическим фактором (большие объемы обрабатываемой информации). Для использования этого интерфейса требуется знание внутренней организации DB2/400 и специфики доступа к базам данных на AS/400. От остальных интерфейсов он отличается необходимостью установки на рабочие места клиентского программного обеспечения DB2, что увеличивает стоимость рабочего места.
2. SQL (Structured Query Language) – интерфейс, основанный на открытом стандарте, используемом во всех основных СУБД. Позволяет обращаться к базе данных на формализованном высокоуровневом языке запросов, передаваемых серверу базы данных непосредственно в том виде, в каком они сформулированы, либо в текстовом виде, либо в виде псевдокодов (предкомпилированные запросы). Сервер обрабатывает поступившие запросы с помощью интерпретатора, выполняет их и возвращает результат через специальные выделенные области памяти (Data Area – результат выполнения запроса, Communications Area – состояние выполнения запроса), служащие буфером передачи данных. Поскольку для интерпретирующих систем характерно низкое быстродействие [2], в DB2/400 приняты специальные меры повышения производительности: для запроса может быть построен план доступа, который впоследствии может быть применен к однотипным запросам, что сокращает время их выполнения.
3. ODBC (Open DataBase Connectivity) – интерфейс, также являющийся отраслевым стандартом, широко используемый в офисных приложениях. Способ взаимодействия с СУБД такой же, как у SQL, но ODBC может применяться не только как интерфейс программиста, но и как интерфейс конечного пользователя: реализация ODBC обязательно включает утилиту-администратор источников данных, которая позволяет выбирать базы данных для доступа (как на локальной машине, так и на сервере), унифицируя таким образом способ обращения к данным. Поддержку ODBC с помощью специальных драйверов обеспечивают все наиболее распространенные СУБД, а из приложений для конечного пользователя ODBC поддерживают, например, Excel и Access фирмы Microsoft.
Все эти интерфейсы доступны программистам, использующим Visual Age среду разработки, созданную фирмой IBM, включающую оболочку визуального проектирования программ, и компиляторы нескольких языков программирования: C++, Java, Smalltalk, Basic. Удобным инструментом Visual Age является утилита Data Access Builder, которая позволяет выбрать уже существующую базу данных и автоматически построить методы доступа к записям этой базы данных, что при «ручном» программировании составляет значительную часть работы. Кроме того, фирма IBM свободно распространяет библиотеки поддержки интерфейса SQL для разработки программ на языке C. Программисты, предпочитающие среду разработки Visual C++ фирмы Microsoft, могут использовать интерфейс ODBC, поддержка которого включена в библиотеки этого продукта.
С целью прямой проверки скорости клиентского доступа к AS/400 была написана тестовая программа, выполняющая заполнение базы данных на AS/400 в пакетном режиме.
Для тестирования использовалась AS/400 модели 9402 с оперативной памятью 96 MB и жестким диском 4 GB. На сервере была установлена операционная система OS/400 V3R6M0, и программное обеспечение для доступа к серверу Client Access/400 Family.
Сетевое соединение клиентского рабочего места с сервером было выполнено в стандарте 10BASE2 (Ethernet 10 Mb), протокол MS DLC v.1.0, тип соединения – APPC. Влияние пропускной способности сети на результаты тестирования, безусловно, можно не учитывать, поскольку она на много порядков выше требований тестовой программы.
Рабочая станция, использованная для тестирования – персональный компьютер Dell Dimension XPS-P90 с процессором Intel Pentium 90 MHz, оперативной памятью 32 MB и жестким диском 1 GB. На рабочей станции была установлена операционная система MS DOS v.6.2 и Windows for Workgroup v.3.11, а также клиентское программное обеспечение Client Access for Win 3.1 V3R1M1.
Тестовая программа была скомпилирована Microsoft Visual C++ v.4.1 и слинкована с библиотекой EHNAPIW.LIB, поставляемой фирмой IBM для обеспечения интерфейса с Client Access. Для работы программа также использовала динамическую библиотеку EHNRQW.DLL фирмы IBM, обеспечивающую интерфейс SQL (Client Access Remote SQL Application Programming Interface).
Исходные данные для тестирования представляли собой 15 тысяч коротких текстовых файлов (размером от 150 до 1000 байт), являющихся словарными статьями энциклопедического словаря (по одной словарной статье в файле), общим размером 3,56 MB (всего около 380 000 слов). Файлы для тестирования были помещены на диск AS/400 в эмулятор файловой системы (IFS). Доступ к файлам в IFS несколько медленнее, чем к файлам в FAT.
База данных для тестирования имела структуру записи, состоящую из двух текстовых полей. База данных была создана командой SQL. В этом случае сервер DB2/400 создает набор данных (Collection), для которого по умолчанию включена опция журналирования, обеспечивающая корректный режим транзакций с возможностью отката и восстановления. Журналирование повышает надежность хранения базы данных при добавлении или изменении записей, но заметно повышает время обращения к базе.
Для повышения точности оценки на время выполнения задачи были устранены все посторонние факторы, влияющие на загруженность сервера: все клиентские места, кроме выполняющего тестовую задачу, были отключены, все серверные процессы, кроме обслуживающих тестовую задачу, остановлены.
Тестовая программа заполняла базу данных словами из файлов, помещая их в первое поле записи, а во втором поле записи сохраняла имя соответствующего файла, так что впоследствии при поиске можно было найти все файлы, содержащие заданное слово (задача полнотекстовой индексации). Заполнение базы данных выполнялось в двух режимах: с индексированием (индекс создавался одновременно с базой данных) и без индексирования (индекс создавался после заполнения базы).
Тестирование показало следующие результаты: без индексирования время заполнения базы составило 34,5 часа (приблизительно 0,33 сек на одну запись), с индексированием – 42,5 часа (0,4 сек на одну запись). Создание индекса после заполнения базы заняло около 15 минут.
Эти результаты не следует рассматривать как абсолютную скорость взаимодействия с сервером. На них, разумеется, повлияли как неблагоприятные факторы (использование SQL, IFS и журналирование), так и благоприятные (монопольный доступ к серверу). Однако в целом время отклика, сравнимое с долями секунды, вполне приемлемо при интерактивной работе пользователя, когда данные вводятся с клавиатуры. В этом случае применение SQL или ODBC оправдано. При пакетной обработке, когда передаются большие объемы заранее подготовленных данных, предпочтительнее использовать CLI.
Литература:
1. Soltis, F. Inside the AS/400. Duke Press, 1995.
2. Conte, P. SQL/400 vs. RPG IV. Which One’s Faster? NEWS/400, September, 1996.
3. Перевозчиков А. Серверы AS/400. Компьютер Пресс, №5, 1997.
Достарыңызбен бөлісу: |