Informix Logo


Informix Magazine Russian Edition Сентябрь 1998г.

Технология перевода корпоративных информационных систем на архитектуру клиент-сервер

Грачев Андрей Юрьевич, к.ф.-м.н, консультант по проектам,
Подколзин Юрий Анатольевич, консультант, автор идеи,
Серегин Дмитрий Владимирович, консультант,
Informix-Москва

1. Введение

В настоящий момент в России самой популярной архитектурой для реализации корпоративных информационных систем (КИС) является файл-серверная архитектура. Приложения, составляющие такие ИС, обычно написаны с помощью таких инструментальных средств как Clipper, Clarion, FoxPro и т.д. (будет называть такие системы xBase-системами) и функционируют на PC, работающих в локальной сети под управлением Novell Netware или, Unix или NT, что встречается значительно реже.П одобный подход используется во многих банковских и торговых системах, где передача данных из филиала в филиал происходит по простому протоколу с помощью модема, и филиальная локальная сеть использует решение, написанное на xBase-системе.

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

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

Есть и другие причины, которые ограничивают использование файл-серверной архитектуры для серьезных КИС. Они хорошо известны разработчикам, администраторам и пользователям xBase-систем.

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

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

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

  • Существует возможность потерпеть неудачу

  • Есть необходимость переобучать пользователей работе с новой системой;

  • Требуются существенные затраты на переработку (разработку) приложений и трудности воспроизведения сложившихся бизнес-технологий;

  • Необходимо переобучать обслуживающий персонал;

  • Очень сложно одновременно разрабатывать новые приложенияи поддерживать старые.

  • Требуются затраты на новую аппаратуру и системное ПО (в том числе, и на СУБД);

  • Отсутствует возможность остановить производственный процесс хотя бы на один день.

В московском представительстве фирмы Informix Software разработана технология и необходимое программное обеспечение для осуществления <эволюционного> перевода ИС с технологии файл-сервер на технологию клиент-сервер на базе СУБД Informix. Данная технология позволяет отказаться на первом этапе внедрения от необходимости переобучения персонала и вкладывания значительных средств в разработку новых приложений, следовательно, повышает шансы на успех проекта в целом.

Другими заказчикамиданной технологии, являются Российские фирмы - поставщики корпоративных КИС. Не секрет, что большинство таких систем написаны на xBase.. Предлагаемая здесь технология позволяет дать <второе дыхание> мегабайтам строк исходного текста.

Рассмотрим этот вопрос более подробно.

2. Отличие предлагаемого решения от существующих на рынке

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

На рынке уже существует ряд инструментов подобного рода, но их использование было невозможным по следующим причинам:

  • Отсутствовало универсальное решение для MS DOS и MS Windows.

  • На западе xBase-технологии занимают ничтожно малую часть рынка, поэтому технологичность решений <оттуда> была крайне низкой, а отечественные разработки отсутствовали.

  • Существующие решения не были оптимизированы под конкретный сервер БД, поэтому производительность была неприемлемо низка.

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

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

На первом этапе было решено обеспечить портирование Clarion- и Clipper-приложений, как одних из самых распространенных. Для этого следовало разработать библиотеку, которая динамически интерпретирует поступающие Clipper-запросы и перенаправляет их в сервер базы данных Informix. Это позволило бы использовать существующие Clipper-приложения без переписывания исходного кода этих приложений. В дальнейшем, учитывая схожесть технологии работы с данными в Clipper, Clarion, FoxPro и т.д. можно расширить применимость данной технологии и для других xBase-систем.

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

Рисунок 1. Трехуровневая схема

Рис. 1

Следующие факторы сыграли решающую роль при выборе трехуровневой архитектуры, вместо двухуровневой

  • Повышение уровня безопасности и конфиденциальности данных;

  • Возможность оставить в эксплуатации старые, но достаточно надежные, MS DOS-компьютеры, которым для прямой связи с сервером Informix потребовалось бы ставить Informix Connect и, как следствие, устанавливать MS Windows.

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

В настоящее время, данная технология и инструмент уже полностью разработаны и обеспечивают поддержку Clipper 5.2 и Clarion 3 или 4 (или выше) на стороне клиента и ОС SCO Unix или Solaris на аппаратуре Intel в качестве платформы для промежуточного слоя. В ближайшее время будут доступны замещаемые библиотеки для FoxPro и реализация промежуточного слоя на MS Windows NT.
 

3. Технические детали

Инструментальное средство состоит из клиентской части, реализованной в виде библиотеки замещаемого драйвера базы данных (RDD), и промежуточного компонента (middleware), обеспечивающего доступ к РСУБД Informix для нескольких клиентов. Рассмотрим компоновку систему на примере Clipper:

fig14_2_2.gif (10638 bytes)
fig14_2_3.gif (8187 bytes)

Взаимодействие с сервером баз данных Informix-Dynamic Server осуществляется промежуточным компонентом (middleware). Компонент выполняет все операции по подключению пользователей к серверу, преобразованию запросов клиентов в SQL-запросы, преобразованию форматов данных в формат данных Clipper и возвращению данных клиентским приложениям. При этом возможны и традиционные способы работы с данными (через штатную библиотеку DBFNTX).

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

Со стороны Clipper Informix Direct Driver реализован в виде библиотеки замещаемого драйвера баз данных, который преобразовывает обращения к стандартным функциям работы с данными в запросы к промежуточному компоненту и возвращает в прикладной программе полученные результаты, а также коды ошибок, используя стандартный API работы с ошибками Clipper. Кроме стандартных функций, в библиотеку также встроены функции выполнения SQL-запросов для прямого обращения к серверу баз данных.

Для работы с промежуточным компонентом используется протокол IPX/SPX. Этот протокол, как правило, уже есть на рабочих станциях, работающих с файл-сервером Novell NetWare. Это позволяет клиентам одновременно работать как с файл-сервером, так и с промежуточным компонентом.


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

Рассмотрим основные шаги, которые надо предпринять для портирования информационной системы (ИС), написанной на Clipper в среду Informix. Обычно, ИС состоит из нескольких приложений.

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

Следующий шаг заключается в переносе схемы базы данных и, собственно, данных из файлов (dbf) в сервер Informix. Средства для такого переноса входят в базовую поставку сервера Informix (утилита onload) и существуют в виде свободно распространяемых программ (утилиты преобразования dbf файлов).

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

Следует отметить, что на этом этапе уже имеется работающее приложение, причем интерфейс рабочих мест полностью идентичен тому, что было раньше. Следовательно, не требуется переобучать пользователей и менять привычную схему использования ИС.

4. Заключение

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

 


Украинская баннерная сеть
 

[Home]

Сайт поддерживается группой пользователей Информикс на Украине.

Hosted by NO-more.