Инструментальные средства организации работы с системой через 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)
Возможность предварительного просмотра собранного запроса
Запуск в специальном режиме для исследования
производительности сформированного запроса
Спасибо за внимание
Ваши вопросы…