Генератор проектов средство автоматизации проектирования прикладных информационновычислительных систем ORMM-2010 1 Авторский коллектив Вышинский Л.Л. Гринев И.Л. Логинов А.А. Флёров Ю.А. Широков Н.И. Широков А.Н. ВЦ РАН Отдел математ. моделир. сист. проектирования ORMM-2010 2 Основные проблемы разработки ИВС Изменяющиеся нормы и правила работы Требования гибкости и различных настроек Многопользовательский режим Многокомпонентная сетевая архитектура Высокие требование к надежности Требования информационной безопасности Требования «масштабируемости» Сложность систем (большой объем программ) Необходимость длительного сопровождения ORMM-2010 3 Жизненный цикл новых разработок Технические объекты Информационные системы Разработка моделей Проектирование Конструирование Изготовление Испытания Производство Эксплуатация Модификации Разработка моделей (анализ) Проектирование Программирование Трансляция и сборка Тестирование Внедрение (тиражирование) Эксплуатация Модификации ORMM-2010 4 Соотношение трудоемкости этапов жизненного цикла ИВС АНАЛИЗ АНАЛИЗ ПРОЕКТИРОВАНИЕ ПРОГРАММИРОВАНИЕ ПРОГРАММИРОВАНИЕ СБОРКА СБОРКА ТЕСТИРОВАНИЕ ВНЕДРЕНИЕ СОПРОВОЖДЕНИЕ ORMM-2010 5 Проектный подход к разработке ИВС информация о содержательных понятиях и объектах Полная Методы Вид и свойства объектов представления результатов ORMM-2010 6 Проектный подход к разработке ИВС Первый этап - проектирование системы. Проект прикладной программной системы – формальный документ. Второй этап – это генерация полного программного кода системы и его технологическая сборка, то есть создание инсталляционного пакета. Автоматизация требует специального инструментария, который является технологической компонентой проекта. Фактически, инструментарий – это генератор программного кода проекта – ГЕНЕРАТОР ПРОЕКТА. ORMM-2010 7 Проектный подход к разработке ИВС (генерация системы по ее проекту) АНАЛИЗ ПРОЕКТИРОВАНИЕ ГЕНЕРАЦИЯ ПРОГРАММИРОВАНИЕ СБОРКА СБОРКА ТЕСТИРОВАНИЕ ВНЕДРЕНИЕ СОПРОВОЖДЕНИЕ ORMM-2010 8 Задачи автоматизации построения ИВС создание единого информационного пространства проекта; описание архитектуры проектируемой системы; разработка математических моделей объектов предметной области; описание логических структур и моделей хранимых данных; описание серверных компонент системы; описание пользовательского интерфейса, механизмы редактирования пользовательских документов, форм, диалогов и прочее; ORMM-2010 9 Задачи автоматизации построения ИВС создание опытных образцов, макетов, демонстрационных стендов; автоматизация программирования, генерация исходного программного кода; автоматизация разработки программной и эксплуатационной документации; автоматизация разработки программы, методики и тестов функциональных, ресурсных и других испытаний системы; автоматизация разработки средств загрузки и инсталляции системы, средств, обеспечивающих системное обслуживание и эксплуатацию. ORMM-2010 10 «Генератор проектов» это реализация следующих технологий: Клиент – серверная архитектура Работа с реляционными базами данных Пользовательский оконный интерфейс (клиентские приложения, окна, диалоги) Создание ИНТЕРНЕТ – сайтов Информационная безопасность «Многоплатформенность» ORMM-2010 11 Архитектура «клиент-сервер» SQL-запросы БАЗА ДАННЫХ СУБД КЛИЕНТСКИЙ МОДУЛЬ ДВУХУРОВНЕВЫЙ «КЛИЕНТ – СЕРВЕР» КЛИЕНТСКИЙ МОДУЛЬ ЗП ПРИКЛАДНОЙ СЕРВЕР SQL СУБД БАЗА ДАННЫХ ТРЕХУРОВНЕВЫЙ «КЛИЕНТ – СЕРВЕР» ORMM-2010 12 Описание проекта Типы данных Схема базы данных Спецификации запросов Описание клиентского интерфейса ГЕНЕРАТОР Описание запросов Описание WEB интерфейса ПРОЕКТОВ ПРОГРАММНЫЙ КОД ORMM-2010 13 КЛИЕНТСКИЙ МОДУЛЬ 1 МОДУЛЬ АДМИНИСТРАТОРА СИСТЕМЫ КЛИЕНТСКИЙ МОДУЛЬ 2 БД СБ СИСТЕМА БЕЗОПАСНОСТИ КЛИЕНТСКИЙ МОДУЛЬ К ПРИКЛАДНОЙ СЕРВЕР 1 СУБД БД 1 W E B САЙТ 2 ПРИКЛАДНОЙ СЕРВЕР 2 СУБД БД 2 W E B САЙТ M ПРИКЛАДНОЙ СЕРВЕР N СУБД БД N ДИНАМИЧЕСКИЕ БИБЛИОТЕКИ УТИЛИТЫ РАБОТЫ С БАЗАМИ ДАННЫХ W E B САЙТ 1 HTML - СТРАНИЦЫ ORMM-2010 14 Состав проекта ИВС Головной файл – имя проекта и его структура Описание типов данных Описание проектных документов Файлы описания баз данных Файлы описания серверов Файлы описания окон и диалогов Файлы описания клиентских приложений Файлы описания ИНТЕРНЕТ-серверов Файлы «ручных» функций для процедур ORMM-2010 15 Единое информационное пространство проекта текущая версия генератора проекта; полный комплект файлов описания проекта; полный комплект файлов генерируемого программного кода системы; полный комплект исполняемых файлов системы. ORMM-2010 16 Язык описания проекта реквизиты проекта платформы пользователи системы типы данных документы сетевые структуры данных реляционные базы данных генерируемые (автоматически) SQL - запросы произвольные SQL - запросы ORMM-2010 17 Язык описания проекта прикладные серверы порты прикладных запросов WEB - порты серверов бизнес - процедуры прикладных серверов «ручные» программы бизнес-процедур пользовательские окна пользовательские диалоги пользовательские (клиентские) модули ORMM-2010 18 Платформы Cltgtk – оконные приложения Linux Cltgtw – оконные приложения MS Windows. Cltwin – оконные приложения для использования в MS Windows. Libuni – библиотеки для ручных программ в Linux. Libwin - библиотеки для ручных программ в MS WIndows. Srvuni – серверы для использования в Linux. Srvwin – серверы для использования в MS Windows ORMM-2010 19 Драйверы баз данных win_dblb7 – MS SQL Server через ntwdblib в MS WIndows. win_orcl – Oracle через oci32 в MS WIndows. win_sybase – SYBASE через ctlib в MS WIndows. win_mysql – MySql в MS Windows. uni_psql – Postgres в Linux. uni_sybase – SYBASE через ctlib в Linux. uni_mysql – интерфейс с MySql в Linux. ORMM-2010 20 Типы данных предописанный тип данных (numb,char,date,money,…), переопределение ранее определенного прототипа, перечислимый тип (enum, radio, mask), type <идентификатор>: {<формат>(<базовый тип>)|alias <идентификатор типа>} [(<список значений>|<список свойств>)] /tilte=<строка комментария>/hdr=<строка заголовка> ORMM-2010 21 Типы и модели данных структуры (struct). В описании задается состав именованных компонент структуры с их типами. type <имя> : {<имя предописанного типа>(<формат>) | struct | alias <имя прототипа>} [(<компоненты типа>)] /title=<строка> /hdr=<строка> реляционные модели данных, основанные на SQL сетевые модели, основанные на списковых структурах ORMM-2010 22 Документ – основное понятия языка описания проектов document <имя документа> : <тип документа>; record <имя записи> : <тип записи>;… set <имя набора> [owner <владелец>] member <член набора>;… func <имя функции> (<вход>) : (<выход>) { <тело> }… ЖЖЖЖЖЖЖЖЖЖЖЖ ЖЖЖЖЖЖЖЖЖЖЖ s1 s2 r1 r2 s3 s4 s5 r3 r4 s7 s6 r5 ORMM-2010 23 Операторы манипулирования содержимым документа Записать в заданный экземпляр документа структуру. Считать из заданного документа структуру. Создать экземпляр записи данного типа с указанием структуры, содержимое которой нужно разместить в записи. Удалить заданный экземпляр записи. Считать из заданного экземпляра записи структуру. Записать в заданный экземпляр записи структуру. ORMM-2010 24 Операторы манипулирования содержимым документа Включить заданный экземпляр записи в экземпляр набора в заданную позицию. Найти по заданному номеру позиции экземпляр члена набора по экземпляру владельца. Перейти от заданного экземпляра члена набора к следующему/предыдущему. Найти экземпляр владельца по заданному экземпляру члена набора. Для заданного владельца ключевого набора и значения ключа найти соответствующий экземпляр члена набора. ORMM-2010 25 Реализации абстракции документа документ в памяти компьютера документ в виде совокупности бинарных файлов с прямым доступом (сетевая базы данных) сетевой (TCP/IP) интерфейс к одной из двух предыдущих реализаций ORMM-2010 26 Схема выполнения бизнес-процедур Входные документы ВХОДНЫЕ ДОКУМЕНТЫ с е р в е р КЛИЕНТСКИЕ МОДУЛИ (АРМ) БИЗНЕС - ПРОЦЕДУРА БИЗНЕС - ПРОЦЕДУРЫ СУБД БД Выходные документы ВЫХОДНЫЕ ДОКУМЕНТЫ ORMM-2010 27 Пользователи Пользовательские окна – это абстрактное понятие, связанное с внешним представлением описанных в проекте документов. Пользовательские диалоги - специальный вид окна Пользовательские приложения - это клиентские модули, обеспечивающие интерфейс пользователей с бизнеспроцедурами серверов. ORMM-2010 28 Пользовательский интерфейс ORMM-2010 29 ORMM-2010 30 Результат генерации проекта (состав программных модулей) исполняемые модули бизнес-серверов конфигуратор баз данных crpsetup.exe - конфигуратор безопасности crplib.dll – библиотека шифрования db_dblb7.dll – драйвер интерфейса с СУБД MS SQL Server db_orcl.dll – драйвер интерфейса с СУБД Oracle 7 db_sybase.dll – драйвер интерфейса с СУБД Sybase 11 <имя кл. модулей>.exe – исполняемые файлы клиентских модулей sysadm.exe – исполняемый модуль администратора безопасности crplib.dll – библиотека алгоритмов шифрования (clt) zlib.dll – библиотека компрессирования информации … конфигурационные, командные и другие вспомогательные файлы ORMM-2010 31 Эффективность «Генератора проектов» Объем сгенерированного программного кода ~ 7.5 Мбт в том числе: клиентские модули библиотеки сервер Объем ~ 4.0 Мбт ~ 1.0 Мбт ~ 2.5 Мбт проекта ~ 0.4 Мбт ORMM-2010 32 Разработанные информационно вычислительные системы Система МФО (1992 г. ГУ ЦБ РФ) АС МБР (1993 г. ГУ ЦБ РФ) ГАМБИТ (1995 – 97 г. СБ РФ) Взаимозачеты (1999 г. РПБ) Mobipay (2002 г.) MassPay (2003 г. СБ РФ) Биллинг (2004 г.) ORMM-2010 33 АСБУ - Автоматизированная система бюджетного управления корпорацией (2005, ОАО ТВЭЛ). АСВР-М - Автоматизированная система весовых расчетов (2007, ОКБ им. П.О. Сухого). КПИР - Комплексная программа управления инженерными расчетами (2010, ОКБ им. П.О. Сухого. ORMM-2010 34 Вышинский Л.Л., Прибытков Ю.Д., Флеров Ю.А., Шиленко В.И., Широков Н.И. Инструментальная система ФАКИР. Известия Академии наук СССР, Техническая кибернетика, Москва, 1986 г., № 3. Вышинский Л.Л., Гринев И.Л., Флеров Ю.А., Шиленко В.И., Широков Н.И. Инструментальные средства САПР. В сб. Задачи и методы автоматизированного проектирования в авиастроении. Издание Вычислительного Центра АН СССР, Москва, 1991 г. Гринев И.Л., Широков Н.И. Средства управления данными в САПР. В сб. Задачи и методы автоматизированного проектирования в авиастроении. ВЦ АН СССР, Москва, 1991 г. Вышинский Л.Л., Гринев И.Л., Демидов А.Ю., Широков Н.И. Технологии разработки и сопровождения АБС. «Банковские технологии», Москва, 1997 июль-август ORMM-2010 35 Вышинский Л.Л., Гринев И.Л., Катунин В.П., Лабутин И.В., Флеров Ю.А. Широков Н.И. Банковские информационные технологии (части I и II) // М.: ВЦ РАН 1999, 272 с. Вышинский Л.Л., Гринев И.Л., Флеров Ю.А., Широков А.Н., Широков Н.И. Генератор проектов – инструментальный комплекс для разработки «клиент - серверных» систем // Информационные технологии и вычислительные системы. 2003, № 1-2, с..6-25. сборник «Автоматизация проектирования финансовых информационных систем» // М.: ВЦ РАН 2004 г. ORMM-2010 36 Текущие задачи Повышение эффективности создаваемых многопользовательских транзакционных клиентсерверных систем Повышение эффективности самого Генератора проектов Вопросы разработки новых оконных типов в рамках Генератора проектов ORMM-2010 37 Спасибо за внимание ORMM-2010 38