Upload
randy
View
87
Download
2
Embed Size (px)
DESCRIPTION
Инструментальные средства организации работы с системой через WEB- интерфейс. Обзор технологий. Дополнительные инструментальные средства. Подсистема лицензирования и проверки прав доступа Обзор изменений в подсистеме лицензирования Дополнительные функции серверного API системы - PowerPoint PPT Presentation
Citation preview
Инструментальные средства организации работы с системой через
WEB-интерфейс
Обзор технологий
Дополнительные инструментальные средства
Подсистема лицензирования и проверки прав доступа Обзор изменений в подсистеме лицензирования Дополнительные функции серверного API системы Применение в WEB-приложениях
Сервер отложенной печати Принцип работы Применение в WEB-приложениях
Условия отбора на сервере Текущая схема работы Перспективная схема работы Применение в WEB-приложениях
Назначение Доработки, направленные на расширение
интеграционных возможностей системы и облегчение использования серверного API в сторонних разработках
Устраняемая проблематика Контроль прав доступа к системе в WEB-приложениях
(и прочих сторонних приложениях, работающих с БД и использующих функции API ПП Парус 8) с использованием штатной оснастки модуля “Администратор”
Доступность В полном объеме описанные ниже изменения
доступны в версии 8.5.6.1 ПП Парус начиная с ноябрьского релиза 2012 года
Подсистема лицензирования и проверки прав доступа
Подсистема лицензирования и проверки прав доступа
Обзор изменений Универсальная лицензия (Anyone)
Обеспечение подключения пользователей в условиях конкуренции на лицензии приложений системы
Анонимные пользователиВозможность настроить подключение от имени WEB-приложения,
пользователи WEB-приложения могут использовать это подключение, но не обязательно должны являться пользователями БД
Фоновые пользователиНастройка процессов, исполняющихся в фоном режиме, фоновые
пользователи имеют возможность исполнять процессы от имени других пользователей системы
Изменение серверного API контроля сессий и прав доступа
Подсистема лицензирования и проверки прав доступа
Универсальная лицензия (Anyone)
Приложение А(3 лицензии)
Приложение Б(2 лицензии)
Приложение А(3 лицензии)
Приложение Б(2 лицензии)
Универсальная лицензия
(2 лицензии)
без универсальной лицензиис универсальной лицензией
3 подключения
2 подключения
Подключение А или Б
3 подключения
2 подключения
Подключение А или Б
-1 подключение
к универсальной лицензии
Остаток подключений =
1
Подключение от имени
пользователя приложения
Подключение от имени
анонимного пользователя
Подсистема лицензирования и проверки прав доступа
Анонимные пользователи
Парус 8
WEB - приложения
Клиенты WEB - приложений
Клиент
Сервер приложен
ий
Подсистема лицензирования и проверки прав доступа
Фоновые пользователи
Парус 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_WEBsCONNECT in varchar2, -- уникальный идентификатор соединенияsUTILIZER in varchar2, -- имя пользователя, выполняющего процессsPASSWORD in varchar2, -- пароль пользователя, выполняющего процессsIMPLEMENTATION in varchar2, -- код приложения, выполняющего соединениеsAPPLICATION in varchar2, -- код приложения, выполняющего процессsCOMPANY in varchar2 -- наименование организации
Проверка прав доступа
Регистрация событий
Регистрация ошибок
Регистрация бизнес-процессов
Лицензия WEB-
приложения
Лицензия Приложения
системы
Подсистема лицензирования и проверки прав доступа
PKG_SESSION.LOGON_BGsIMPLEMENTATION in varchar2, -- код приложения, выполняющего соединение и процесс
sUTILIZER in varchar2 := null -- имя пользователя, выполняющего процесс
sCOMPANY in varchar2 := null -- наименование организации
PKG_SESSION.LOGOFF_WEBsCONNECT in varchar2 -- уникальный идентификатор соединения
PKG_SESSION.TIMEOUT_WEBsCONNECT in varchar2, -- уникальный идентификатор соединения
nTIMEOUT in number -- ограничение (мин.): null,0,<0 - снять ограничение, >0 - установить ограничение
PKG_SESSION.LOGON_STATEiDETAIL in binary_integer := null 0 -- (0 - основные состояния, 1 - детальные состояния) основные состояния:
0 - регистрация не выполнялась, регистрация не прошла или ошибка регистрации, регистрация прошла успешно и сеанс был отключён 1 - регистрация не прошла: истёк срок эксплуатации, 2 - регистрация прошла успешно,
детальные состояния: -1 - регистрация не выполнялась, 0 - регистрация не прошла или ошибка регистрации, 1 - регистрация не прошла: истёк срок эксплуатации, 2 - регистрация прошла успешно, 3 - регистрация прошла успешно и сеанс был отключён
Подсистема лицензирования и проверки прав доступа
Применение в WEB-приложениях – Oracle APEX
:P101_COMPANY
:P101_USERNAME
:P101_PASSWORD
• Нет необходимости регистрировать пользователей WEB-приложений в Oracle
• Разграничение прав доступа с применением штатных средств модуля “Администратор”
Сервис “On-Line доступ”ПП Парус 8 используетданный API для аутентификациии авторизации пользователей.
Пользователи данного сервиса должны быть зарегистрированы в системе, но могут не являться пользователями БД.
Подсистема лицензирования и проверки прав доступа
Применение в WEB-приложениях – “On-Line доступ”
Назначение Формирование отчетов, расчет которых занимает длительное время Инициализация отчета и получение результатов его исполнения из
сторонних систем и приложений Автоматизация обмена данными отчетов (например, отложенное
формирование отчета с его последующей отправкой по E-Mail) Устраняемая проблематика
Получение отчетности, разработанной в ПП Парус 8 из сторонних систем, с сохранением всех преимуществ API ПП Парус 8, использованных при разработке выходных отчетных форм
Ограничения В настоящее время поддерживаются только выходные отчетные формы
на базе MS Excel и Open Office Calc Лицензирование
Для работы сервиса отложенной печати отчетов требуется специальная лицензия
Доступность Сервис отложенной печати доступен в версии 8.5.6.1 ПП Парус начиная
с ноябрьского релиза 2012 года
Сервер отложенной печати
Сервер отложенной печати
Принцип работыОчередь сервиса
отложенной печати
(RPTPRTQUEUE)
Готовые отчеты(RPTPRTQUEUE_RPT
)
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;
begin P_RPTPRTQUEUE_GET_RPT(
NRN => РН_ЗАПИСИ_ОЧЕРЕДИ ,NUR_TYPE => ТИП_ОТЧЕТА_ВЫХОДНОЙ
,BDATA => ФАЙЛ_ОТЧЕТА_ВЫХОДНОЙ);end;
Сервер/Рабочая станция (ОС семейства MS Windows + MS Excel и/или Open Office Calc)
Сервис отложенной печати(p8application.exe /bБД /aPrintServer /uПользователь
/cОрганизация)
Сервер отложенной печати
Применение в WEB-приложениях – Oracle APEX
Сервер отложенной печати
Применение в WEB-приложениях – Oracle APEXselect * from rptprtqueue 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;
MS IE 9.x
Google Chrome
• Нет необходимости верстать отчет в XML в режиме “Run-time”• Возможно использование всех преимуществ пакета PRSG_EXCEL• Публикация в WEB-интерфейсе ранее разработанных для WIN-клиента пользовательских отчетов
…обеспечивающими возможностьвыгрузки подготовленного отчета или повторную печать, при необходимости
Мониторинг очереди осуществляется встроенными средствами…
Формирование отчетов сервиса “On-Line доступ” ПП Парус 8
осуществляется через очередь сервиса отложенной печати
Сервер отложенной печати
Применение в WEB-приложениях – “On-Line доступ”
Инструментарий сервиса отложенной печати интегрирован в “On-Line доступ” ПП Парус 8
Назначение Формирование условий отбора данных раздела на сервере
Устраняемая проблематика Оптимизация запросов, формируемых клиентом системы в
момент отбора данных по разделам Решение проблем безопасности, связанных с доступностью
некоторых таблиц схемы “PARUS”, обусловленной необходимостью формирования условий отбора на клиенте
Контроль данных, запрашиваемых пользователем из БД Доступность
Формирование условий отбора на сервере доступно в версии 8.5.6.1 ПП Парус начиная с ноябрьского релиза 2012 года
Перспективы Перевод механизмов отбора в штатных разделах на работу с
пакетом формирования условий отбора на сервере
Условия отбора на сервере
Готовый запрос
Готовый запрос
WIN-клиент ПП Парус 8
Условия отбора на сервере
Текущая схема работы
Формирование
секции WHERE
запроса
Сервер БД ПП Парус 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
WEB-клиент ПП Парус 8
:P51_STATE:P51_PRJTYPE :P51_INSDEPT
Условия отбора на сервере
Новая схема работы
Сервер БД ПП Парус 8
Формирование запроса на отбор данных раздела, и его исполнение
(PKG_COND_BROCKER)
Клиент БД ПП Парус 8
Пользовательский интерфейс
ввода параметров
отбора
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;
Сборка неименованного блока со значениями параметров отбора
Исполнение неименованного
блокаОтправка блока на исполнение
серверуv
Процедура 1 формирования условий отбора
Процедура N формирования условий отбора
Хранение идентификаторов документов, попавших в
отбор(COND_BROKER_ID*)
Пользовательский интерфейс представления
отобранных данных
select T.*from COND_BROKER_IDLITE C ,<ПРЕДСТАВЛЕНИЕ_РАЗДЕЛА> Twhere C.ID = T.NRNorder by C.ROWNUM#;
Исполнение запроса по
отобранным документам
Условия отбора на сервере
Применение в 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;
create or replace procedure UDO_P_PHONE_BOOK_COND asbegin -- Установка главной таблицы - Сотрудники 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) Возможность предварительного просмотра собранного запроса Запуск в специальном режиме для исследования
производительности сформированного запроса
Спасибо за внимание
Ваши вопросы…