Capital Tech - технология создания корпоративных
интеллектуальных информационных систем
А.Г.Щеголев (sch@ntmdt.ru)
Корпорация NT-MDT (NanoTechnology: Molecular Devices and Tools), г. Москва
В
индустрии программного обеспечения
разработка и сопровождение корпоративных информационных систем является одной
из наиболее динамично развивающихся отраслей.
Специфичность данной сферы заключается
в том, что при изобилии готовых и вновь создаваемых решений неизбежно возникают
проблемы при внедрении и особенно при послепродажном
сопровождении созданных систем. Это связано с тем, что бизнес-процессы
компании, внедряющей у себя информационную систему, подвержены
динамичным изменениям.
Как правило,
это особенно характерно для предприятий перерабатывающей промышленности (в
особенности, научно-производственных предприятий и объединений) с
годовым оборотом в несколько млн. долларов. На
определенном этапе развития компании начинает остро ощущаться невозможность
охвата разнородных бизнес-процессов в подразделениях производства, научных разработок и, в особенности, отдела
продаж и маркетинга.
Координация
усилий руководителей разного уровня и специалистов становится
невозможной без соответствующей интеллектуальной инструментальной поддержки. Корпоративная
информационная система призвана стать необходимым инструментом
такой координации.
Опыт создания корпоративных интеллектуальных
информационных систем позволяет сформулировать требования к
информационным системам, внедряемым в развивающихся компаниях.
- Многопользовательская работа (в том числе, из
удаленных помещений, городов и даже из разных стран), естественно, требует
клиент-серверной либо распределенной архитектуры
информационной системы м использованием
стандартных офисных пакетов программ.
- Требования к информационной системе у
руководителей компании представляют собой непрерывно изменяющийся
образ. «Дрейф» этого образа во время разработки и внедрения
системы вызван не столько субъективными причинами (не до
конца продуманная логика бизнес-процессов, недостаточное знакомство с
компьютерными технологиями), сколько связан с объективными
изменениями, происходящими во всех сферах деятельности
компании. В этом смысле представление об информационной системе
как о найденном раз и навсегда решении перестает соответствовать реалиям
жизни еще на этапе разработки системы.
- Функциональность
информационной системы должна существовать и развиваться параллельно
бизнес-процессам компании и являться их существенной
составной частью. К примеру, если информационная система
используется только для формирования отчетов руководству, а наполнение
системы осуществляется лишь специально назначенными для этого людьми, рано
или поздно эти отчеты перестанут быть достоверными. Только включенность
системы в реальный документооборот (т.е. заполнение и формирование
текущих документов в самой системе) обеспечивает заинтересованное
вовлечение широкого круга сотрудников в единое информационное пространство,
т.е. в решение общих проблем (не говоря уже о том, что именно это
обеспечивает автоматизацию рутинной работы сотрудников).
- Обеспечивать дружественный для
пользователя интерфейс приходится, тем самым, ориентируясь
на достаточно разнообразный круг пользователей системы (как
по интересам, так и по навыкам работы с компьютером). Создание «интуитивно
понятного» интерфейса становится тем самым самостоятельной
многоплановой проблемой. В этой ситуации «жесткие» интерфейсные
решения неизбежно проигрывают – то, что естественно для одного
пользователя, оказывается дезориентирующим для другого. Создание
нескольких «ролевых» интерфейсов также не способно до конца решить эту
проблему: серьезное увеличение трудоемкости, как правило, все равно не
позволяет обеспечить требуемую гибкость. Выходом в данной
ситуации может стать интеллектуализация системы, понимаемая
как обеспечение вариативного общения с пользователем на основе
использования последним естественно-языковых конструкций. Таким образом, внешним
проявлением интеллектуальной информационной системы является наличие
канала взаимодействия с пользователем на основе подмножества
естественного языка (ЕЯ).
- Введенная в действие интеллектуальная информационная
система, как правило, не может быть остановлена ни на один день
(даже в случае принятия решения о радикальном изменении концепции
системы). Тем самым, преемственность последовательных версий
системы должна быть полной.
Перечисленные требования налагают
существенные ограничения на используемые технологии разработки
корпоративных информационных систем.
- Технология программирования должна
быть предельно гибкой. Необходимо осознавать, что изменение
технического задания (ТЗ) на разработку или адаптацию системы – не
исключение из правил, а совершенно обычное явление.
Разумеется, непродуманность и небрежность при формулировании требований к
системе ничем не может быть оправдана; однако даже тщательно продуманный
со стороны заказчика абрис системы все равно в дальнейшем подвергнется
изменением. Разработчики системы должны быть к этому готовы;
следовательно, должна быть обеспечена соответствующая размерность
представления данных (знаний) в системе.
- Поскольку заказчик системы может сделать
определенные выводы о направленности разработки лишь на основании
практической работы с уже созданными программными средствами,
технология программирования должна обеспечить возможность быстрого
создания и ввода последовательных версий системы.
Быстрота создания очередной версии является критическим фактором. При этом
полная функциональность системы обретается при помощи
дискретного уточнения требований и создания очередных
версий программного продукта.
- Жизненный цикл корпоративной системы
не может быть четко разделен на собственно разработку и послепродажное
сопровождение. В действительности и то, и другое представляет собой описанный
выше единый процесс последовательного – от версии к версии - достраивания
функциональности системы. Требование разработчиков о заключении
отдельных договоров для каждого случая послепродажного изменения
функциональности системы явно противоречит потребностям заказчика.
Именно поэтому «коробочные» решения являются столь же пугающими для
потенциальных заказчиков, сколь и изначально притягательными (из-за
кажущейся дешевизны, полной отчужденностью от разработчика и т.п.)
- Требование интеллектуализации системы
– с точки зрения пользовательского интерфейса – должно быть поддержано соответствующим
программистским инструментарием. В этом смысле представляется
перспективным использование средств, традиционно относимых к технологиям искусственного
интеллекта.
Capital Tech представляет
собой метатехнологию (в том смысле, что был разработан
инструмент разработки корпоративных информационных систем. Особенностями
технологического решения являются.
- Объектно-ориентированное представление
данных (знаний) в системе. При этом объектные представления используются
как непосредственно для хранения данных (взамен традиционных
реляционных представлений), так и в качестве транспортного
формата.
- Использование в качестве инструмента
создания графических интерфейсов среды программирования
Delphi.
Наиболее гибкие возможности Delphi в ряду RAD-систем именно в части интерфейсного проектирования
общеизвестны.
- Применение языка логического программирования
Prolog
для представления данных (знаний),
а также для проведения логических выводов на основе имеющихся фактов и
продукций. Таким образом, требование «внешней»
(интерфейсной) интеллектуализации получает адекватное воплощение
с точки зрения языковых средств (поскольку используются
непроцедурные представления данных
и машина вывода языка Prolog).
- Основной проблемой при использовании языка Prolog в проектировании развивающихся информационных
систем становится необходимость априорного задания размерности предикатов,
описывающих классы объектов либо (при декомпозиции) отдельные свойства
объектов. Для решения этой проблемы были использованы XML-представления
отдельных экземпляров объектов, а также процедуры преобразования
XML-представлений
в обобщенные факты Prolog’а и обратно.
- Использование XML-агентов стало основой единого
объектного транспорта – как на границе сред Delphi
– Prolog, так и для удаленного
обмена по сети.
Таким образом,
трехзвенная клиент-серверная функциональность
представления и хранения объектных классов, а также актуализации экземпляров
объектов в реальном масштабе времени осуществляется на языке Prolog. Тем самым
проблема обеспечения гибкости внесения изменений в систему решается на уровне
алгебраических представлений. Пользовательский интерфейс (а также
отдельные элементы сетевого интерфейса) реализованы в среде Delphi.
Для создания и
адаптации интеллектуализированных информационных
систем необходимо наличие компиляторов Visual Prolog (v.
5.2), а также Borland Delphi (v.
6 или выше).
Процесс
формирования корпоративных
информационных систем осуществляется в среде Capital Tech, разработанной в
NT-MDT. С точки зрения функциональности, метасистема Capital Tech
также является интеллектуализированной
информационной системой, написанной на Prolog’е, Delphi и,
частично, на самой Capital Tech.
Работа команды
разработчиков в клиент-серверной среде Capital Tech обеспечивается
автоматической фиксацией и
автоматизированным документированием всех вносимых в проект изменений.
Таким образом, деятельность разработчиков является прозрачной и
может быть эффективно скоординирована.
Изначально
разработанная для ОС MS Windows, данная технология допускает переносимость под
управление системы Linux, поскольку такую переносимость
обеспечивает как Delphi (Kylix), так и Visual Prolog (без
графического интерфейса, который в данном случае и не использовался). Тем
самым, кросс-платформенность решения
обеспечивается возможностями используемых инструментальных сред.
Литература:
1. Каймин В.А. Информатика, Учебник
для студентов. М.ИНФРА-М, 1999-2006.
2. Каймин В.А., Щеголев А.Г. и др. «Основы
информатики и ВТ». Пробный учебник для средних школ. М. Просвещение, 1989-90.
Интернет-Источники:
1. Логическое Программирование. Интернет-учебник. WDU, 2006.