Описание архитектуры и основных принципов построения платформы phorga-aContext v. 2.5.9 1. Мотивы построения платформы В практике разработки и поддержки достаточно больших систем приходится сталкиваться с обстоятельством, когда разработка продукта (системы) ведется достаточно долгое время, а внедрение и поддержка системы начинается на ранних фазах готовности продукта. В этом случае технические требования к финальной версии продукта не могут быть сформулированы до начала его проектирования, а уточняются в период реализации. В следствии этого, при поэтапном проектировании и реализации такой системы приходится предусматривать возможность дальнейшего ее развитие без частых изменений ядра, которые делать крайне затруднительно в момент эксплуатации системы. Еще одним мотивом является наличие общих функциональных модулей практически во многих разрабатываемых приложениях. Их можно назвать: администрирование, обеспечение безопасности, аудит, локализация, возможность интеграции, описание объектов приложения и прочее. В силу названных причин, разработчики платформы попытались абстрагировать ядро платформы от применения в конкретных предметных областях, а предоставить возможность построения моделей без модификации ядра путем описания объектов, связей, событий и использования внешних компонент. 2. Базовые компоненты платформы Платформа является Web-приложением, построенным по технологии Java EE. EJB-container – JBoss v. 4.2.* Web-container – Tomcat v. 6.0.* Database – Oracle 10.* BPM – jBPM (бизнес-процесс менеджер) SOA – слой на стороне EJB-контейнера, поддерживающий Webсервисы OpenOffice – OpenOffice v. 2-3, запускаемый, как сервер и используемый для генерации документов Direct Integration – интерфейс прямой интеграции с внешними приложениями (например, phorga-Vector) Платформа для работы компонент использует Java SE 5-6.* phorga-aContext является межплатформенным приложением и опробована в работе на Linux, Solaris, Windows. При поставке продукта предпочтение отдается OS Linux и Solaris. 3. Какие задачи можно реализовать с помощью платформы ? Задачи описания, инвентаризации объектов любой природы (в том числе и людей при необходимости). Отслеживание событий и состояний объектов. Построение топологически связанных структур объектов (в том числе организация расчетов по схемам). Определение порядка восстановления состояния объектов и определение стоимости восстановления. Построение и запуск на платформе бизнес-процессов, взаимодействующих с информацией всей платформы. Организация хранения документов, изображений и пр, связанных с объектами или журналами данных. Информационный обмен данными между приложениями и пользователями. Интеграция с ГИС приложениями. Построение интеграционной платформы или платформы консолидации данных. 4. Компоненты ядра приложения EJB-компонента — реализует бизнес-логику приложения, представляет из себя несколько ear-модулей. Устанавливается в EJB-контейнер. Web-компонента — реализует интерфейс пользователя, представляет из себя один war-модуль. Устанавливается в Webконтейнер. База данных приложения — хранилище основных данных платформы. База данных BPM – хранилище бизнес процессов. NoticeService – Web-сервис уведомлений о событиях связанных с объектом платформы EquipmentInfoService – Web-сервис, передающий по запросу клиента полную информацию об объекте phorga-Mobile – Web-приложение для мобильных телефонов с браузерами (работает в демо-режиме) 5. Языки и скрипты реализации Java — базовый язык реализации JavaScript — динамическая работа на клиенте HTML — создание интерфейса пользователя XML – пересылка данных JSON – упаковка данных для JavaScript SQL – запросы к базе данных SVG – отображение векторной графики Jfo – реализация виджетов и отчетов JSP – реализация интерфейса пользователя на стороне сервера Velocity - реализация интерфейса пользователя на стороне сервера 6. Дополнительные технологии и библиотеки, используемые для реализации платформы AJAX – асинхронный вызов серверного функционала JSF – создание интерфейса пользователя с помощью Javaкомпонент Apache POI – интерфейс к MS Excel FOP – построение документов и графики 7. Основные функциональные блоки Блок безопасности — обеспечивает безопасность системы, включает: управление доменами безопасности управление пользователями управление группами пользователей аудит работы пользователей Блок метаданных — обеспечивает мета-настройку системы для заказчиков, включает: управление заказчиками управление информационными слоями управление представлением данных (в частности создание деревьев объектов) Блок настройки системы — обеспечивает настройку системы, включает: локализацию управление компонентами настройку параметров системы управление лицензиями настройку параметров сообщений Блок интеграции — обеспечивает интеграцию системы с внешними приложениями, включает: описание внешних приложений управление маппингом Блок моделирования — обеспечивает построение прикладной модели, включает: управление управление управление управление типами объектов атрибутами объектов шаблонами универсальными справочниками Блок справочной информации — обеспечивает поддержку работы приложения, включает: набор системных справочников Блок построения топологических схем — включает: дизайнер-схем (содержит инструментарий для создания, редактирования и просмотра схем) Блок диагностики — обеспечивает отслеживание состояния объекта, включает: управление испытаниями управлениями дефектами управление регламентами управление отказами управление событиями Сервисный блок — включает: управление объектами (создание, редактирование, просмотр свойств) управление ассоциативной связью (деревьями) управление сообщениями рабочий стол управление папками и документами Блок смет — обеспечивает управление стоимостью и работами восстановления объекта, включает: управление сметами управление нормативами управление работами Блок бизнес-процессов — обеспечивает интеграцию платформы с BPM, включает: интерфейс развертывания бизнес-процессов настройка бизнес-процессов управление безопасностью бизнес-процессов список задач пользователя управление запущенными бизнес-процессами Сервер задач — обеспечивает запуск задач в фоновом режиме, включает: менеджер задач Блок отчетов и импорта документов — обеспечивает создание отчетов, документов, включает: генератор отчетов по Excel-шаблонов интерфейс интеграции с OpenOffice для генерации документов управление Jfo-виджетами и Jfo/JSP-отчетами 8. Построение модели Модель — способ описания среды для поддержки объектов прикладной области, используемых в решении. Этапы создания модели: Анализ требований задачи Настройка безопасности (домены, пользователи) (Администратор) Создание информационных слоев и деревьев (Администратор) Описание типов объектов, в том числе построение визуального образа для схем (Моделер) (входит в описание работы Моделера) Создание универсальных справочников (Моделер) (входит в описание работы Моделера) Определение статусов объектов (Моделер) (входит в описание работы Моделера) Описание атрибутов типа (Моделер) (входит в описание работы Моделера) Создание шаблонов (Моделер) (входит в описание работы Моделера) Заполнение системных справочников Создание типов событий Создание и развертывание бизнес-процессов (Администратор) Настройка интеграции (Администратор) Расширение функционала (Разработчики) 9. Расширение функционала В рамках расширения функционала могут выполняться следующие работы: создание Jfo-отчетов для типов или объектов создание JSP-отчетов создание Excel-шаблонных отчетов создание Jfo-виджетов настройка рабочих столов