270 likes | 635 Views
Инструментальные средства организации работы с системой через WEB- интерфейс. Обзор технологий. Дополнительные инструментальные средства. Подсистема лицензирования и проверки прав доступа Обзор изменений в подсистеме лицензирования Дополнительные функции серверного API системы
E N D
Инструментальные средства организации работы с системой через WEB-интерфейс Обзор технологий
Дополнительные инструментальные средства • Подсистема лицензирования и проверки прав доступа • Обзор изменений в подсистеме лицензирования • Дополнительные функции серверного API системы • Применение в WEB-приложениях • Сервер отложенной печати • Принцип работы • Применение в WEB-приложениях • Условия отбора на сервере • Текущая схема работы • Перспективная схема работы • Применение в WEB-приложениях
Подсистема лицензирования и проверки прав доступа • Назначение • Доработки, направленные на расширение интеграционных возможностей системы и облегчение использования серверного API в сторонних разработках • Устраняемая проблематика • Контроль прав доступа к системе в WEB-приложениях (и прочих сторонних приложениях, работающих с БД и использующих функции APIПП Парус 8) с использованием штатной оснастки модуля “Администратор” • Доступность • В полном объеме описанные ниже изменения доступны в версии 8.5.6.1 ПП Парус начиная с ноябрьского релиза 2012 года
Подсистема лицензирования и проверки прав доступа • Обзор изменений • Универсальная лицензия (Anyone) Обеспечение подключения пользователей в условиях конкуренции на лицензии приложений системы • Анонимные пользователи Возможность настроить подключение от имени WEB-приложения, пользователи WEB-приложения могут использовать это подключение, но не обязательно должны являться пользователями БД • Фоновые пользователи Настройка процессов, исполняющихся в фоном режиме, фоновые пользователи имеют возможность исполнять процессы от имени других пользователей системы • Изменение серверного API контроля сессий и прав доступа
Подсистема лицензирования и проверки прав доступа • Универсальная лицензия(Anyone) 3 подключения Приложение А (3 лицензии) Подключение А или Б Приложение Б (2 лицензии) 2 подключения без универсальной лицензии с универсальной лицензией 3 подключения Приложение А (3 лицензии) -1 подключение к универсальной лицензии Подключение А или Б Приложение Б (2 лицензии) 2 подключения Универсальная лицензия (2 лицензии) Остаток подключений = 1
Подсистема лицензирования и проверки прав доступа • Анонимные пользователи WEB - приложения Сервер приложений Подключение от имени анонимного пользователя Подключение от имени пользователя приложения Клиент Клиенты WEB - приложений Парус 8
Подсистема лицензирования и проверки прав доступа • Фоновые пользователи Внешние фоновые процессы Сервис отложенной печати Подключение от имени фонового пользователя Работа от имени пользователя, разместившего отчет в очереди Обработка записи очереди печати, сформированной от имени пользователя системы Процессы, инициируемые фоновым Парус 8
Подсистема лицензирования и проверки прав доступа • Дополнительные функции серверного API • PKG_SESSION.LOGON_WEB – аутентификация и создание сеанса WEB-пользователя • PKG_SESSION.LOGON_BG – создание фонового сеанса от имени указанного пользователя системы • PKG_SESSION.LOGOFF_WEB – завершение сеанса WEB-приложения • PKG_SESSION.TIMEOUT_WEB – установка ограничения времени простоя для WEB-сеанса • PKG_SESSION.LOGON_STATE – получение сведений о текущем состоянии сеанса
Подсистема лицензирования и проверки прав доступа • PKG_SESSION.LOGON_WEB sCONNECTin varchar2, -- уникальный идентификатор соединения sUTILIZERin varchar2, -- имя пользователя, выполняющего процесс sPASSWORDin varchar2, -- пароль пользователя, выполняющего процесс sIMPLEMENTATIONin varchar2, -- код приложения, выполняющего соединение sAPPLICATIONin varchar2, -- код приложения, выполняющего процесс sCOMPANYin varchar2-- наименование организации Проверка прав доступа Лицензия WEB-приложения Регистрация событий Регистрация ошибок Лицензия Приложения системы Регистрация бизнес-процессов
Подсистема лицензирования и проверки прав доступа • PKG_SESSION.LOGON_BG sIMPLEMENTATIONin varchar2,-- код приложения, выполняющего соединение и процесс sUTILIZERin varchar2 := null-- имя пользователя, выполняющего процесс sCOMPANYin varchar2 := null-- наименование организации • PKG_SESSION.LOGOFF_WEB sCONNECTin varchar2-- уникальный идентификатор соединения • PKG_SESSION.TIMEOUT_WEB sCONNECTin varchar2, -- уникальный идентификатор соединения nTIMEOUTinnumber-- ограничение (мин.): null,0,<0 - снять ограничение, >0 - установить ограничение • PKG_SESSION.LOGON_STATE iDETAILinbinary_integer := null 0 -- (0 - основные состояния, 1 - детальные состояния) • основные состояния: • 0 - регистрация не выполнялась, регистрация не прошла или ошибка регистрации,регистрация прошла успешно и сеанс был отключён • 1 - регистрация не прошла: истёк срок эксплуатации, • 2 - регистрация прошла успешно, • детальные состояния: • -1 - регистрация не выполнялась, • 0 - регистрация не прошла или ошибка регистрации, • 1 - регистрация не прошла: истёк срок эксплуатации, • 2 - регистрация прошла успешно, • 3 - регистрация прошла успешно и сеанс был отключён
Подсистема лицензирования и проверки прав доступа • Применение в WEB-приложениях – Oracle APEX :P101_COMPANY :P101_USERNAME :P101_PASSWORD • Нет необходимости регистрировать пользователей WEB-приложений в Oracle • Разграничение прав доступа с применением штатных средств модуля “Администратор”
Подсистема лицензирования и проверки прав доступа • Применение в WEB-приложениях – “On-Line доступ” Сервис “On-Line доступ” ПП Парус 8 использует данный API для аутентификации и авторизации пользователей. Пользователи данного сервиса должны быть зарегистрированы в системе, но могут не являться пользователями БД.
Сервер отложенной печати • Назначение • Формирование отчетов, расчет которых занимает длительное время • Инициализация отчета и получение результатов его исполнения из сторонних систем и приложений • Автоматизация обмена данными отчетов (например, отложенное формирование отчета с его последующей отправкой по E-Mail) • Устраняемая проблематика • Получение отчетности, разработанной в ПП Парус 8 из сторонних систем, с сохранением всех преимуществAPI ПП Парус 8, использованных при разработке выходных отчетных форм • Ограничения • В настоящее время поддерживаются только выходные отчетные формы на базе MS Excel и Open Office Calc • Лицензирование • Для работы сервиса отложенной печати отчетов требуется специальная лицензия • Доступность • Сервис отложенной печати доступен в версии 8.5.6.1 ПП Парус начиная с ноябрьского релиза 2012 года
Сервер отложенной печати • Принцип работы Очередь сервиса отложенной печати (RPTPRTQUEUE) begin P_RPTPRTQUEUE_BASE_INSERT( IREPORT_TYPE => ТИП_ОТЧЕТА ,NCOMPANY => ОРГАНИЗАЦИЯ ,NIDENT => ИДЕНТИФИКАТОР_ПРОЦЕССА ,NUSER_REPORT => РЕГ_НОМЕР_ПОЛЬЗ_ОТЧЕТА ,NRN => РН_ЗАПИСИ_ОЧЕРЕДИ); P_RPTPRTQUEUE_PRM_BASE_INSERT( NPRN => РН_ЗАПИСИ_ОЧЕРЕДИ ,SNAME => ИМЯ_ПАРАМЕТРА ,IDATA_TYPE => ТИП_ДАННЫХ ,SSTR_VALUE => ЗНАЧЕНИЕ_СТРОКА ,NNUM_VALUE => ЗНАЧЕНИЕ_ЧИСЛО ,DDATE_VALUE => ЗНАЧЕНИЕ_ДАТА ,NRN => РН_ЗАПИСИ_ПАРАМЕТРА); end; Сервер/Рабочая станция (ОС семейства MS Windows + MS Excel и/или Open Office Calc) Сервис отложенной печати (p8application.exe /bБД /aPrintServer /uПользователь /cОрганизация) Готовые отчеты (RPTPRTQUEUE_RPT) begin P_RPTPRTQUEUE_GET_RPT( NRN => РН_ЗАПИСИ_ОЧЕРЕДИ ,NUR_TYPE => ТИП_ОТЧЕТА_ВЫХОДНОЙ ,BDATA => ФАЙЛ_ОТЧЕТА_ВЫХОДНОЙ); end;
Сервер отложенной печати • Применение в WEB-приложениях – Oracle APEX
Сервер отложенной печати • Применение в WEB-приложениях – Oracle APEX select * fromrptprtqueue t begin --считываем данные отчета из очереди P_RPTPRTQUEUE_GET_RPT( NRN => :REPORT_RN ,NUR_TYPE => NREPORT_TYPE ,BDATA => BREPORT_DATA); --открываем заголовок HTTP OWA_UTIL.MIME_HEADER('application/excel' ,false ,'utf-8'); --указываем браузеру размер скачиваемого файла HTP.P('Content-length: ' || NLENGTH); HTP.P('Content-Disposition: attachment; filename="' || SFILE_NAME || '"'); --закрываем заголовок OWA_UTIL.HTTP_HEADER_CLOSE; --загрузка из BLOB WPG_DOCLOAD.DOWNLOAD_FILE(BREPORT_DATA); end; • Поставлено в очередь • Выполнение завершено (успешно) • Выполнение завершено (с ошибками) Текст ошибки Стэк вызова • Нет необходимости верстать отчет в XMLв режиме “Run-time” • Возможно использование всех преимуществ пакета PRSG_EXCEL • Публикация в WEB-интерфейсе ранее разработанных для WIN-клиента пользовательских отчетов MS IE 9.x Google Chrome
Сервер отложенной печати • Применение в WEB-приложениях – “On-Line доступ” Формирование отчетов сервиса “On-Line доступ” ПП Парус 8 осуществляется через очередь сервиса отложенной печати Мониторинг очереди осуществляется встроенными средствами… Инструментарий сервиса отложенной печати интегрирован в “On-Line доступ” ПП Парус 8 …обеспечивающими возможность выгрузки подготовленного отчета или повторную печать, при необходимости
Условия отбора на сервере • Назначение • Формирование условий отбора данных раздела на сервере • Устраняемая проблематика • Оптимизация запросов, формируемых клиентом системы в момент отбора данных по разделам • Решение проблем безопасности, связанных с доступностью некоторых таблиц схемы “PARUS”, обусловленной необходимостью формирования условий отбора на клиенте • Контроль данных, запрашиваемых пользователем из БД • Доступность • Формирование условий отбора на сервере доступно в версии 8.5.6.1 ПП Парус начиная с ноябрьского релиза 2012 года • Перспективы • Перевод механизмов отбора в штатных разделах на работу с пакетом формирования условий отбора на сервере
Условия отбора на сервере • Текущая схема работы WIN-клиент ПП Парус 8 select M.* from V_FCCOSTNOTES M where NCOMPANY = 43667 and SCOST_PREF >= ' AAA' and SCOST_NUMB >= ' 123' and SCOST_PREF <= ' AAA' and SCOST_NUMB <= ' 321' and DCOST_DATE >= TO_DATE('01/01/2012' ,'dd/mm/yyyy') and DCOST_DATE <= TO_DATE('31/12/2012' ,'dd/mm/yyyy') order by SCALC_PERIOD Формирование секции WHEREзапроса Готовый запрос Сервер БД ПП Парус 8 Исполнение запроса WEB-клиент ПП Парус 8 :P51_PRJTYPE :P51_INSDEPT :P51_STATE Готовый запрос
Условия отбора на сервере • Новая схема работы Клиент БД ПП Парус 8 Сервер БД ПП Парус 8 Пользовательский интерфейс ввода параметров отбора Исполнение неименованного блока Сборка неименованного блока со значениями параметров отбора Отправка блока на исполнение серверуv Процедура 1 формирования условий отбора Процедура N формирования условий отбора begin PKG_COND_BROKER.PROLOGUE; PKG_COND_BROKER.SET_COMPANY(:NCOMPANY); PKG_COND_BROKER.SET_PROCEDURE('<ХП_ОТБОРА>' ); PKG_COND_BROKER.SET_CONDITION_DATE('DateCond', :DDATE); PKG_COND_BROKER.SET_CONDITION_STR ('StrCond', :SSTR); PKG_COND_BROKER.SET_CONDITION_NUM ('NumbCond', :NNUMBER); PKG_COND_BROKER.EPILOGUE; end; Формирование запроса на отбор данных раздела, и его исполнение (PKG_COND_BROCKER) Исполнение запроса по отобранным документам select T.*from COND_BROKER_IDLITE C,<ПРЕДСТАВЛЕНИЕ_РАЗДЕЛА> Twhere C.ID = T.NRNorder by C.ROWNUM#; Пользовательский интерфейс представления отобранных данных Хранение идентификаторов документов, попавших в отбор (COND_BROKER_ID*)
Условия отбора на сервере • Применение в WEB-приложениях– Oracle APEX begin PKG_COND_BROKER.PROLOGUE; PKG_COND_BROKER.SET_COMPANY(GET_SESSION_COMPANY); PKG_COND_BROKER.SET_PROCEDURE('UDO_P_PHONE_BOOK_COND'); PKG_COND_BROKER.SET_CONDITION_STR('Subdiv', :P57_SUBDIV); PKG_COND_BROKER.SET_CONDITION_STR('Post', :P57_POST); PKG_COND_BROKER.SET_CONDITION_STR('Name', :P57_NAME); PKG_COND_BROKER.SET_CONDITION_STR('Lastname', :P57_LASTNAME); PKG_COND_BROKER.EPILOGUE;end; createorreplaceprocedure UDO_P_PHONE_BOOK_COND as begin -- Установка главной таблицы - Сотрудники PKG_COND_BROKER.SET_TABLE('CLNPERSONS'); -- Мнемокод сотрудника - поле CODE основной таблицы раздела PKG_COND_BROKER.ADD_CONDITION_CODE('CODE', 'PersonCode'); ... -- Имя - поле AGNLASTNAME таблицы AGNLIST, связанной с CLNPERSONS чере поле PERS_AGENT PKG_COND_BROKER.ADD_CONDITION_CODE('AGNFIRSTNAME', 'Name', 'PERS_AGENT <- RN;AGNLIST'); -- Отчество - поле AGNLASTNAME таблицы AGNLIST, связанной с CLNPERSONS чере поле PERS_AGENT PKG_COND_BROKER.ADD_CONDITION_CODE('AGNLASTNAME', 'Lastname', 'PERS_AGENT <- RN;AGNLIST'); ... end; Регистрационные номера отобранных документов в COND_BROKER_IDLIGHT
Условия отбора на сервере • Применение в WEB-приложениях– Oracle APEX • Лаконичные запросы для областей типа “Report” • Простота отладки условий отбора • Легкость добавления новых условий отбора • Возможность повторного использования отобранных документов
Условия отбора на сервере • Применение в WEB-приложениях– “On-Line доступ” В настоящий момент в приложении “On-Line доступ” ПП Парус 8доступен отбор по колонкам. С введением механизма формирования условий отбора на сервере, для приложений “On-Line доступа” будет доступен полноценный отбор. Кроме того, существенно расширяются возможности форм отбора в пользовательских разделах, разработанных с применением модуля “Конструктор отраслевых расширений”
Условия отбора на сервере • Преимущества решения • Работа в 4-х режимах в зависимости от потребностей пользователя • LIGHT – сохранение результатов отбора в рамках транзакции • MULTI– сохранение результатов отбора по нескольким разделам в рамках транзакции • SMART –сохранение результатов отбора в рамках сессии • HARD – хранение результатов отбора для повторного использования • Многократное использование алгоритмов формирования запроса и отобранных данных • Возможность журналирования выборок пользователей • “Прозрачность” механизмов отбора и возможность их отладки • Применение средств, контролирующих синтаксис, при разработке (Oracle SQL Developer, PL/SQL Developer) • Возможность предварительного просмотра собранного запроса • Запуск в специальном режиме для исследования производительности сформированного запроса
Спасибо за внимание Ваши вопросы…