Выбор аппаратно-программной платформы КИС

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

Часто трудно с достаточной точностью предсказать саму нагрузку, особенно в случае, если система должна обслуживать несколько групп разнородных по своим потребностям пользователей. Например, иногда бессмысленно говорить, что для каждых N пользователей необходимо в конфигурации сервера иметь один процессор, поскольку для некоторых прикладных систем, в частности, для систем из области механических и электронных САПР, может потребоваться 2-4 процессора для обеспечения запросов одного пользователя. С другой стороны, даже одного процессора может вполне хватить для поддержки 15-40 пользователей, работающих с прикладным пакетом Oracle*Financial. Другие прикладные системы могут оказаться еще менее требовательными. Но следует помнить, что даже если рабочую нагрузку удается описать с достаточной точностью, обычно скорее можно только выяснить, какая конфигурация не справится с данной нагрузкой, чем с уверенностью сказать, что данная конфигурация системы будет обрабатывать заданную нагрузку, если только отсутствует определенный опыт работы с приложением.

Обычно рабочая нагрузка существенно определяется типом использования системы. Например, можно выделить серверы NFS, серверы управления БД и системы, работающие в режиме разделения времени. Эти категории систем перечислены в порядке увеличения их сложности. Как правило, серверы СУБД значительно более сложны, чем серверы NFS, а серверы разделения времени, особенно обслуживающие различные категории пользователей, являются наиболее сложными для оценки. К счастью, существует ряд упрощающих факторов. Во-первых, как правило, нагрузка на систему в среднем сглаживается, особенно при наличии большого коллектива пользователей (хотя почти всегда имеют место предсказуемые пики). Например, известно, что нагрузка на систему достигает пиковых значений через 1-1.5 часа после начала рабочего дня или окончания обеденного перерыва и резко падает во время обеденного перерыва. С большой вероятностью нагрузка будет нарастать к концу месяца, квартала или года.

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

При решении задачи выбора конфигурации системы, необходимо сначала ответить на два главных вопроса: какой сервис должен обеспечиваться системой и какой уровень сервиса может обеспечить данная конфигурация. Имея набор целевых показателей производительности конечного пользователя и стоимостных ограничений, необходимо спрогнозировать возможности определенного набора компонентов, которые включаются в конфигурацию системы. Любой, кто попробовал это сделать, знает, что подобная оценка сложна и связана с неточностью. Почему оценка конфигурации системы так сложна? Некоторые из причин перечислены ниже:

• Подобная оценка прогнозирует будущее: предполагаемую ком-бинацию устройств, будущее использование ПО, будущих пользователей.
• Сами конфигурации аппаратных и программных средств сложны, связаны с определением множества разнородных по своей сути компонентов системы, в результате чего сложность быстро увеличивается. Несколько лет назад существовала только одна вычислительная парадигма: мейнфрейм с терминалами. В настоящее время по выбору пользователя могут использоваться несколько вычислительных парадигм с широким разнообразием возможных конфигураций системы для каждой из них. Каждое новое поколение аппаратных и программных средств обеспечивает существенно больше возможностей, чем их предшественники.
• Скорость технологических усовершенствований во всех направлениях разработки компьютерной техники (аппаратных средствах, функциональной организации систем, операционных системах, ПО СУБД, ПО «среднего» слоя (middleware) очень высока и постоянно растет. Ко времени, когда какое-либо изделие широко используется и хорошо изучено, оно часто рассматривается уже как устаревшее.
• Доступная потребителю информация о самих системах, операционных системах, программном обеспечении инфраструктуры (СУБД и мониторы обработки транзакций), как правило, носит очень общий характер. Структура аппаратных средств, на базе которых работают программные системы, стала настолько сложной, что эксперты в одной области редко являются таковыми в другой.
• Информация о реальном использовании систем редко является точной. Более того, пользователи всегда находят новые способы ис-пользования вычислительных систем как только становятся доступными новые возможности.

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

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

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

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

• отношение стоимость/производительность;
• надежность и отказоустойчивость;
• масштабируемость;
• совместимость и мобильность ПО.

Отношение стоимость/производительность. Появление любого нового направления в вычислительной технике определяется требованиями компьютерного рынка. У разработчиков компьютеров несколько целей. Большая универсальная вычислительная машина (мейнфрейм) или суперкомпьютер стоят дорого. Для достижения поставленных целей при проектировании высокопроизводительных конструкций приходится игнорировать стоимостные характеристики. Суперкомпьютеры фирмы Cray Research и высокопроизводительные мейнфреймы компании IBM относятся именно к этой категории. Другим крайним примером может служить дешевая конструкция, где производительность принесена в жертву низкой стоимости. К этому направлению относятся персональные компьютеры различных клонов IBM PC. Между этими двумя крайними направлениями находятся конструкции, основанные на отношении «сто-имость/производительность», в которых разработчики находят баланс между стоимостными параметрами и производительностью. Типичными примерами являются миникомпьютеры и рабочие станции.

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

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

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

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

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

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

Этот переход выдвинул ряд новых требований к ВС (вычислительным системам).

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

Одним из вариантов моделей открытой среды является модель OSE (Open System Environment), предложенная комитетом IEEE POSIX. На основе этой модели национальный институт стандартов и технологии США выпустил документ «Application Portability Profile (APP). The U.S. Government's Open System Environment Profile OSE/1 Version 2.0», который определяет рекомендуемые для федеральных учреждений США спецификации в области информационных технологий, обеспечивающие мобильность системного и прикладного программного обеспечения. Все ведущие производители компьютеров и ПО в США в настоящее время придерживаются требований этого документа.

При разработке КИС приходится решать две группы пер-воочередных задач.
Первая группа задач – управление бизнес-процессом. Эти задачи решаются использованием прикладных пакетов программ управления корпорацией: Галактика, БОСС-корпорация, Platinum, SAP R/3 и др.
Вторая группа задач не связана с функциональными зада-чами управления и представляет собой сервисные программы прикладных процедур сети:
• организация совместного использования файлов и принтеров;
• обеспечение доступа к корпоративной БД;
• организация сетевых и теле- и видеоконференций;
• обеспечение коллективной работы над документами;
• обеспечение связи с удаленными филиалами;
• работы в сети Интернет и т.д.

Базовыми компонентами КИС, необходимыми для решения первоочередных задач, являются следующие серверные и клиентские программные продукты:

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

Рассмотрим технологию проектирования трехуровневой модели клиент-серверной КИС:

Схема 4

 

 

Технология проектирования трехуровневой модели клиент-серверной КИС

D1 – описание предметной области;
D2 – описание выбранного сервера БД;
D3 – описание выбранной конфигурации технических средств и сетевой ОС;
D4 –техническое задание (ТЗ);
D5 – описание выбранных программных средств разработки КИС;
D6 – описание функциональной структуры КИС;
D8 – права доступа различным категориям пользователей КИС;
D9 – журнал заполнения областей БД;
D10 – сопровождающая документация;
U1 – универсум сетевых ОС и технических платформ;
U2 – универсум серверов БД;
U3 – универсум программных средств разработки КИС;
G1 – вычислительная сеть;
G2 – СУБД;
G5 – SQL-описание БД с управляющими элементами;
G6 – программное обеспечение сервера;
G7 – приложения клиентских мест.

Разработка общей структуры КИС (О1)

Эта операция выполняется на основе описания предметной области D1 и технического задания D4, а также универсумов сетевых ОС и технических платформ (U1), серверов БД (U2), программных средств разработки КИС (U3). (Универсум – это конечное полное множество документов (фактов) одного типа. Обычно с помощью универсума описывают множество альтернатив, выбор из которых конкретного экземпляра определяет характер последующих проектных решений.) Результат данной технологической операции – описание выбранной конфигурации технических средств и сетевой операционной системы D3, описание выбранного сервера БД – D2, описание выбранных программных средств разработки КИС – D5, описание функциональной структуры КИС – D6. Другими словами, суть операции О1 состоит в выборе аппаратно-программной платформы реализации КИС и распределению функций обработки данных КИС по уровням клиент-серверной архитектуры.

Выбор сетевых ОС во многом зависит от технической платформы вычислительных средств. При использовании платформы INTEL наиболее распространенными сетевыми ОС являются по-следние версии Windows и Novell Net Ware. При использовании других платформ (IBM, SUN, HP и др.) применяют ОС UNIX различных версий для соответствующих платформ (например, Compaq Tru 64 UNIX).

Выбор сервера БД для КИС основывается на сравнительном анализе рынка серверов БД по различным критериям. Наибольшее распространение в КИС получили серверы Oracle, DB2 и Microsoft SQL Server. Сравнительный анализ серверов БД Oracle 7.0, Microsoft SQL Server и ADABAS D представлен в таблице 4.

Таблица 4

Сравнительный анализ серверов БД

Выбор программных средств разработки КИС определяется требованиями применяемой технологии проектирования КИС (CASE-технологии, RAD-технологии,...).

Разработка общей функциональной структуры КИС на основе функционально-ориентированной или ОО модели проблемной области заключается в определении:
• функций сервера БД;
• функций серверов приложений;
• функций клиентских мест;
• информации, необходимой для выполнения этих функций;
• распределения серверов и клиентских мест по узлам вычисли-тельной сети;
• прав доступа пользователей к КИС.

В настоящее время для ООМоделирования проблемной области широко используется унифицированный язык моделирования UML (Unified Modeling Language), разработанный группой ведущих компьютерных фирм мира OMG (Object Management Group) и фактически являющийся стандартом по объектным технологиям. Язык UML реализован в CASE-средствах Rational Rose, Natural Engineering Workbench, ARIS Toolset и д.р.

Основными правами доступа являются:
• права на доступ к вычислительным ресурсам. Такие права задаются администратором вычислительной сети с помощью инструментов сетевой ОС.(Процесс задания прав заключается в назначении различным категориям пользователей прав доступа к ресурсам сети и возможности выполнения над ними функций чтения, редактирования и записи.)
• права на доступ к объектам схемы БД КИС. Такие права задаются администратором сервера БД с помощью инструментов серверной СУБД. (Процесс задания прав заключается в назначении различным категориям пользователей возможности выполнения над объектами схемы БД функций чтения, редактирования и записи.)

Создание вычислительной сети (ВС) для КИС (О2)

Создание ВС заданной архитектуры для КИС заключается в закупке и монтаже оборудования, а также инсталляции сетевого программного обеспечения и СУБД. На основе описания функциональной структуры D6, выбранной конфигурации технических средств и сетевой ОС D3, выбранного сервера БД D2 происходит создание ВС G1 и установка СУБД G2.

Создание схемы БД для КИС (О3)

На основе ТЗ D4, описания выбранных программных средств разработки D5, функциональной структуры КИС D6, выбранного сервера БД D2 и его СУБД G2, конфигурации ВС G1 осуществляется разработка схемы БД с управляющими элементами – G5 и ее документирование D10.
Технология проектирования БД в клиент-серверной среде может быть представлена в виде следующей схемы 5:

Схема 5

Технология проектирования БД в клиент-серверной среде

 

D2 – описание выбранного сервера БД;
D5 – описание выбранных программных средств разработки КИС;
D6 – описание функциональной структуры КИС;
D7 – структура БД КИС;
D10 – сопровождающая документация;
G1 – вычислительная сеть;
G2 – СУБД;
G3 – область БД;
G4 – SQL-описание БД;
G5 – SQL-описание БД с управляющими элементами.

Создание схемы БД состоит из следующих технологических операций:
Проектирование структуры распределенной БД (О31) – D7 – на основе описания функциональной структуры КИС D6, как правило, с помощью CASE-технологии D5 с учетом описания выбранного сервера БД G2 в конкретной программно-технической среде G1 и СУБД G2. В результате строятся модель БД и подмодели для различных категорий пользователей на основе установления им прав доступа к данным.

Создание области БД (О32) – G3 – заключается в инициализации областей внешней памяти (системной, хранения данных, транзакций, хранения архивных данных). Операция выполняется системным администратором БД, который использует для этого средства СУБД сервера БД G2 и спроектированную структуру БД D7.

Загрузка SQL-описания БД (О33) – D4 – производится системным администратором БД на основе схемы БД D7 средствами СУБД сервера БД G2.

Разработка управляющих элементов БД (триггеров, хранимых процедур и др.) (О34) – G2 – осуществляется на основе структуры БД D7 с учетом ееSQL-описания БД G4 и возможностей средств СУБД сервера БД G2. В итоге получается готовая для эксплуатации схема БД с управляющими элементами, которая документируется в D10.
Хранимая процедура – процедура с операторами SQL для доступа к БД, вызываемая по имени с передачей требуемых параметров и выполняемая на сервере БД. Основная функция хранимой процедуры – функциональное расширение схемы БД. Хранимая процедура выполняет то или иное логическое действие. Например, администратор банковской системы создает хранимую процедуру, которая реализует функцию «занести на счет номер X сумму Y». Разработчик приложения пользуется этой процедурой, но не знает, как именно она работает. Это дает следующие преимущества:
• при смене алгоритма данного действия администратор меняет только эту хранимую процедуру, и все приложение сразу начинает работать по-новому;
• независимо от типа рабочего места, использующего хранимую процедуру, одно и то же действие выполняется одинаково, что повы-шает надежность разработанной системы;
• хранимая процедура пишется одним человеком, а используется многими, следовательно, сокращается время разработки КИС;
• повышается скорость обработки запросов пользователей за счет того, что действия по анализу хранимой процедуры выполняются один раз при определении этой процедуры.
Триггер БД – это механизм «событие-действие», который автоматически выполняет некоторый набор SQL-операторов при наступлении некоторого события. События, на которые можно установить триггер, – это модификации данных. Причем триггер связан с конкретной таблицей БД и хранится в БД как объект. Создание триггеров позволяет устано-вить правила обеспечения ссылочной целостности сервера БД.

Создание сервера БД КИС (О4)

На основании разработанной схемы БД с управляющими элементами G5, описания выбранного сервера БД D2 и его СУБД G2 осуществляется создание сервера БД, т.е. физическое напол-нение БД и настройка программ доступа СУБД. Результат операции – физическое установление прав доступа различным категориям пользователей КИС D8 и журнал заполнения областей БД D9.

Разработка серверов приложений (О5)

Сервер приложений G6 и сопровождающая документация D10 разрабатываются, исходя из информационных потребностей пользователей D4 и их прав D8, с использованием программных средств разработки D5.
В состав сервера приложений входят набор сервисов (функций обработки данных) и монитор транзакций, осуществляющий управление выполнением сервисов по обслуживанию клиентских потребностей.

Разработка клиентских приложений на рабочих станциях (О6)

На основе информационных потребностей пользователей D4 и их прав D8, используя программные средства разработки D5, создаются приложения клиентских мест G7 и сопровождающая документация D10. В частности, осуществляется проектирование пользовательского интерфейса клиентских частей приложений.