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 (без графического
интерфейса, который в данном случае и не использовался). Тем самым, кросс-платформенность решения обеспечивается
возможностями используемых инструментальных сред.