Инструментальные средства организации работы с системой через WEB-интерфейс Обзор технологий Дополнительные инструментальные средства Подсистема лицензирования и проверки прав доступа Сервер отложенной печати Обзор изменений в подсистеме.
Download
Report
Transcript Инструментальные средства организации работы с системой через WEB-интерфейс Обзор технологий Дополнительные инструментальные средства Подсистема лицензирования и проверки прав доступа Сервер отложенной печати Обзор изменений в подсистеме.
Инструментальные средства
организации работы с системой через
WEB-интерфейс
Обзор технологий
Дополнительные инструментальные средства
Подсистема лицензирования и проверки прав доступа
Сервер отложенной печати
Обзор изменений в подсистеме лицензирования
Дополнительные функции серверного API системы
Применение в WEB-приложениях
Принцип работы
Применение в WEB-приложениях
Условия отбора на сервере
Текущая схема работы
Перспективная схема работы
Применение в WEB-приложениях
Подсистема лицензирования и проверки прав
доступа
Назначение
Устраняемая проблематика
Доработки, направленные на расширение интеграционных
возможностей системы и облегчение использования
серверного API в сторонних разработках
Контроль прав доступа к системе в WEB-приложениях (и
прочих сторонних приложениях, работающих с БД и
использующих функции API ПП Парус 8) с использованием
штатной оснастки модуля “Администратор”
Доступность
В полном объеме описанные ниже изменения доступны в
версии 8.5.6.1 ПП Парус начиная с ноябрьского релиза 2012
года
Подсистема лицензирования и проверки прав
доступа
Обзор изменений
Универсальная лицензия (Anyone)
Обеспечение подключения пользователей в условиях конкуренции на
лицензии приложений системы
Анонимные пользователи
Возможность настроить подключение от имени WEB-приложения,
пользователи WEB-приложения могут использовать это
подключение, но не обязательно должны являться пользователями
БД
Фоновые пользователи
Настройка процессов, исполняющихся в фоном режиме, фоновые
пользователи имеют возможность исполнять процессы от имени
других пользователей системы
Изменение серверного API контроля сессий и прав доступа
Подсистема лицензирования и проверки прав
доступа
Универсальная лицензия (Anyone)
Приложение А
(3 лицензии)
Приложение Б
(2 лицензии)
3 подключения
Подключение
А или Б
2 подключения
без универсальной лицензии
с универсальной лицензией
Приложение А
(3 лицензии)
Приложение Б
(2 лицензии)
Универсальная
лицензия
(2 лицензии)
3 подключения
Подключение
А или Б
2 подключения
Остаток
подключений = 1
-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
sCONNECT
sUTILIZER
sPASSWORD
sIMPLEMENTATION
sAPPLICATION
sCOMPANY
in varchar2,
in varchar2,
in varchar2,
in varchar2,
in varchar2,
in varchar2
-- уникальный идентификатор соединения
-- имя пользователя, выполняющего процесс
-- пароль пользователя, выполняющего процесс
-- код приложения, выполняющего соединение
-- код приложения, выполняющего процесс
-- наименование организации
Проверка прав доступа
Регистрация событий
Регистрация ошибок
Регистрация бизнес-процессов
Лицензия
WEB-приложения
Лицензия
Приложения
системы
Подсистема лицензирования и проверки прав
доступа
PKG_SESSION.LOGON_BG
sIMPLEMENTATION
in varchar2,
sUTILIZER
in varchar2 := null -- имя пользователя, выполняющего процесс
sCOMPANY
in varchar2 := null -- наименование организации
PKG_SESSION.LOGOFF_WEB
sCONNECT
-- код приложения, выполняющего соединение и процесс
in varchar2
-- уникальный идентификатор соединения
PKG_SESSION.TIMEOUT_WEB
sCONNECT
in varchar2, -- уникальный идентификатор соединения
nTIMEOUT
in number
-- ограничение (мин.): null,0,<0 - снять ограничение, >0 - установить ограничение
PKG_SESSION.LOGON_STATE
iDETAIL
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
• Разграничение прав доступа с
применением штатных средств
модуля “Администратор”
Подсистема лицензирования и проверки прав
доступа
Применение в WEB-приложениях – “On-Line доступ”
Сервис “On-Line доступ”
ПП Парус 8 использует
данный API для
аутентификации
и авторизации
пользователей.
Пользователи данного
сервиса должны быть
зарегистрированы в
системе, но могут не
являться
пользователями БД.
Сервер отложенной печати
Назначение
Устраняемая проблематика
В настоящее время поддерживаются только выходные отчетные формы на базе MS
Excel и Open Office Calc
Лицензирование
Получение отчетности, разработанной в ПП Парус 8 из сторонних систем, с
сохранением всех преимуществ API ПП Парус 8, использованных при разработке
выходных отчетных форм
Ограничения
Формирование отчетов, расчет которых занимает длительное время
Инициализация отчета и получение результатов его исполнения из сторонних систем
и приложений
Автоматизация обмена данными отчетов (например, отложенное формирование
отчета с его последующей отправкой по E-Mail)
Для работы сервиса отложенной печати отчетов требуется специальная лицензия
Доступность
Сервис отложенной печати доступен в версии 8.5.6.1 ПП Парус начиная с ноябрьского
релиза 2012 года
Сервер отложенной печати
Принцип работы
Очередь сервиса
отложенной
печати
(RPTPRTQUEUE)
Сервер/Рабочая станция
(ОС семейства MS Windows
+ MS Excel и/или Open Office Calc)
Сервис отложенной печати
(p8application.exe /bБД /aPrintServer /uПользователь /cОрганизация)
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;
Готовые отчеты
(RPTPRTQUEUE_RPT)
begin
P_RPTPRTQUEUE_GET_RPT(
NRN
=> РН_ЗАПИСИ_ОЧЕРЕДИ
,NUR_TYPE => ТИП_ОТЧЕТА_ВЫХОДНОЙ
,BDATA
=> ФАЙЛ_ОТЧЕТА_ВЫХОДНОЙ);
end;
Сервер отложенной печати
Применение в WEB-приложениях – Oracle APEX
Сервер отложенной печати
Применение в WEB-приложениях – Oracle APEX
select * from rptprtqueue t
• Поставлено в очередь
• Выполнение завершено (успешно)
• Выполнение завершено (с ошибками)
MS IE 9.x
Google Chrome
Текст
ошибки
Стэк
вызова
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-клиента
пользовательских отчетов
Сервер отложенной печати
Применение в WEB-приложениях – “On-Line доступ”
Формирование отчетов сервиса
“On-Line доступ” ПП Парус 8
осуществляется через
очередь сервиса отложенной печати
Мониторинг очереди осуществляется
встроенными средствами…
Инструментарий сервиса
отложенной печати интегрирован в
“On-Line доступ” ПП Парус 8
…обеспечивающими возможность
выгрузки подготовленного отчета
или повторную печать,
при необходимости
Условия отбора на сервере
Назначение
Устраняемая проблематика
Оптимизация запросов, формируемых клиентом системы в
момент отбора данных по разделам
Решение проблем безопасности, связанных с доступностью
некоторых таблиц схемы “PARUS”, обусловленной
необходимостью формирования условий отбора на клиенте
Контроль данных, запрашиваемых пользователем из БД
Доступность
Формирование условий отбора данных раздела на сервере
Формирование условий отбора на сервере доступно в версии
8.5.6.1 ПП Парус начиная с ноябрьского релиза 2012 года
Перспективы
Перевод механизмов отбора в штатных разделах на работу с
пакетом формирования условий отбора на сервере
Условия отбора на сервере
Текущая схема работы
Формирова
ние секции
WHERE
запроса
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
Готовый запрос
Исполнение
запроса
WIN-клиент ПП Парус 8
Сервер БД ПП Парус 8
:P51_PRJTYPE
:P51_INSDEPT
:P51_STATE
Готовый запрос
WEB-клиент ПП Парус 8
Условия отбора на сервере
Новая схема работы
Пользовательский
интерфейс ввода
параметров
отбора
Исполнение
неименованного
блока
Сборка неименованного блока со
значениями параметров отбора
Отправка блока на
исполнение серверуv
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;
Исполнение запроса
по отобранным
документам
Пользовательский
интерфейс
представления
отобранных
данных
Клиент БД ПП Парус 8
select T.*
from COND_BROKER_IDLITE C
,<ПРЕДСТАВЛЕНИЕ_РАЗДЕЛА> T
where C.ID = T.NRN
order by C.ROWNUM#;
Процедура 1
формирования
условий отбора
Процедура N
формирования
условий отбора
Формирование запроса на отбор данных
раздела, и его исполнение
(PKG_COND_BROCKER)
Хранение идентификаторов
документов, попавших в отбор
(COND_BROKER_ID*)
Сервер БД ПП Парус 8
Условия отбора на сервере
Применение в 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 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)
Возможность предварительного просмотра собранного запроса
Запуск в специальном режиме для исследования
производительности сформированного запроса
Спасибо за внимание
Ваши вопросы…