IV. Создание проекта в Oracle Real Time Decisions
Открыть Decision Studio из RTD_HOME\eclipse\eclipse.exe. Начать новый проект,для этого выбрать в меню File > New > Inline Service Project.
Ввести название для проекта Surveys и выбираем Basic Template в качестве шаблона. (По умолчанию файлы с проектом располагаются в директории C:\Documents and Settings\WIN_USER\Oracle RTD Studio\Surveys)
Скриншот 14
Интерфейс Decision Studio устроен следующим образом.
Скриншот 15
Справа в Проводнике проекта появляется созданный нами проект Surveys. Открыть элемент Surveys > Service Metadata > Application. Это основной объект, в котором содержится вся информация о проекте. Ввести описание для проекта и перейти на закладку Permissions.
Скриншот 16
Для того, чтобы можно было заходить в проект из Decision Studion (Web-приложение для конечного пользователя, необходимо дать доступ пользователя к проекту.
В разделе User or Groups нажимаем Add и далее Select Server. В появившемся окне вводим имя хоста и номер порта, где установлен RTD, а также имя пользователя “admin” и пароль “admin”. Нажимаем Connect и возвращаемся обратно в окно добавления пользователей.
Нажать галочку Show Users и затем кнопку Get Names. В таблице появится созданный нами ранее пользователь admin. Выбрать его нажать OK.
Выбрать пользователя admin и нажать в столбец Granted напротив строк Deploy Service from Studio и Download Service. После этого все 4 строчки должны быть помечены.
Скриншот 17
На предыдущих шагах, мы настроили в OC4J и ORTD поддержку нашего источника данных Surveys Data Source.
Настроим источник информации для проекта. Нажать правую кнопку мыши на элементе Surveys > Service Metadata > Data Sources и выбрать New SQL Data Source
Ввести название Surveys Data Source
Справа откроется окно со свойствами, нажать кнопку Import.
Свойства сервера должны совпадать с настроенными нами ранее при импорте пользователя admin, нажать Next
Выбрать SURVEYSDS в качестве JDBC Data Source и таблицу CUSTOMER_SATISFACTION и нажать Finish.
Все колонки таблицы появятся в Output. Перенести колонку Input Customer_Satisfaction_Id направо в input
Скриншот 18
К этому моменту мы создали новый проект, настроили доступ пользователя admin к нему, настроили источник данных из схемы Surveys. Теперь настроим основную логику работы.
Создадим сущность, описывающую событие, что конкретный продукт получил или положительную или отрицательную оценку.
Нажать правую кнопку мыши на элементе Surveys > Service Metadata > Entities и выбрать New Entity
Ввести название Satisfaction
Нажать на кнопку Import и выбрать в качестве источника Surveys Data Source
В таблице появится список полей из таблицы
Нажать кнопку Add Key, ввести Display Label – Id, Data Type – Integer. Созданный ключ появится в таблице с полями.
Скриншот 19
Перейти на закладку Mapping.
В таблице поля, которые были импортированы, автоматически настроены на источник Surveys Data Source. Созданное нами поле Id не имеет привязки к источнику. Нам надо привязать созданный нами атрибут на входные атрибуты.
В таблице Data Source Input Values нажать на поле в Input Value на поле CUSTOMER_SATISFACTION_ID.
Выбрать Attribute or variables и сущность Satisfaction, поле Id.
Выбрать File > Save All
Во всех проекта Real Time Decisions есть специальная сущность Session, которая создается при открытии новой сессии к серверу. Нам надо связать сущность Session с только что созданной сущностью Satisfaction
Открыть Surveys > Service Metadata > Entities > Session
Нажать Add Attribute, ввести название Satisfaction, выбрать Data Type – Other, затем Entity Types и Satisfaction
Нажать Select в около Session Keys from Dependent Entities и выбрать Session > Satisfaction > Id
Скриншот 20
Для построения анализа зависимостей оценки типа продукта, его версии и год обновления , надо создать группу возможных оценок продукта.
Нажать правую кнопку мыши на элементе Surveys > Service Metadata > Choices и выбрать New Choice Group, ввести название Feedback.
На закладке Choices Attributes нажать Add, ввести название code, Data Type – String
C помощью атрибута code, будем определять оценку, которую получает той или иной продукт. Создадим сами оценки.
Нажать правую кнопку мыши на элементе Surveys > Service Metadata > Choices > Feedback и выбрать New Choice
Ввести имя NEGATIVE, на закладке Attributes Values ввести значение в поле Attribute Value для атрибута code – NEGATIVE
Скриншот 21
Аналогичным образом, нажать правую кнопку мыши на элементе Surveys > Service Metadata > Choices > Feedback и выбрать New Choice
Ввести имя POSITIVE, на закладке Attributes Values ввести значение в поле Attribute Value для атрибута code – POSITIVE
Перейдем к созданию модели для поиска зависимостей между оценками продукта и его характеристиками.
Нажать правую кнопку мыши на элементе Surveys > Service Metadata > Models > Feedback и выбрать New Choice Model
Ввести название FeedbackAnalysis, на закладке Choice выбрать Choice Group – Feedback
Скриншот 22
Необходимо исключить саму оценку из анализа зависимостей.
На закладке Attributes в разделе Excluded Attributes нажать Select и выбрать Session > Satisfaction > Feedback
Теперь создадим простейший информатор, который будет добавлять новые прецеденты к модели анализа FeedbackAnalysis
Нажать правую кнопку мыши на элементе Surveys > Service Metadata > Integration Points > Informants и выбрать New Informant, ввести название Process
Для работы информатора надо выбрать Session Key и ввести логику его работы.
Нажать Select в Session Keys, выбрать Satisfaction / Id
Ввести 0 в поле Order, убрать галку с Force Session Close и перейти на закладку Logic
Скриншот 23
На закладке Logic вводится вся логика работы информатора. Логика пишется на языке Java. Список всех методов можно посмотреть в документации. Для обращения к созданным сущностям и объектам, используется стандартная нотация. Поскольку в Real Time Decisions есть сущность по умолчанию Session, то мы можем обратиться к ней всегда. Кроме того, на предыдущих шагах, мы связали Сущность Session c сущностью Satisfaction.
Ввести следующий код
Скриншот 24
Теперь создадим еще одного информатора, который будет закрывать сессию.
Нажать правую кнопку мыши на элементе Surveys > Service Metadata > Integration Points > Informants и выбрать New Informant, ввести название End
Аналогичным образом выбрать Session Key – Satisfaction / Id
Поставить Order – 1 и галку Force Session Close, которая означает после отработки этого информатора сессия будет закрываться.
На закладке Logic ввести logInfo(“Close”);
Остается последний шаг, указать модели анализа выбора FeedbackAnalysis, где осуществляется добавление нового прецедента.
Открыть Surveys > Service Metadata > Models > FeedbackAnalysis
Перейти на закладку Learn Location, выбрать On Integration Point, нажать Select и выбрать Process.
Скриншот 25
Выбрать File > Save All
После того, как мы создали все необходимые структуры, для того чтобы их протестировать , необходимо «задеплоить» проект на сервер, для этого надо выбрать в меню Project > Deploy. Затем выбрать проект Survyes, ввести название Inline Service – Surveys, Deploymeny State – Development, отметить Terminate active sessions и нажать Deploy.
Если все было сделано правильно, то проект удачно «отдеплоится» на сервер и может приступать к тестированию. Если возникнут ошибки, то их список можно посмотреть, выбрав в меню Windows > Show View > Problems.
Для тестирования необходимо выбрать Windows > Show View > Test.
Скриншот 27
В Integration Point надо выбрать Process, тогда в таблице Request Inputs появится одно поле Id. Введем значение 25 и нажмем справа вверху на кнопку Execute Request. Сервер выполнит наш запрос и запишет результаты в лог. Откроем закладку Log.
Скриншот 28
Сервер сделает запрос к таблице CUSTOMER_SATISFACTION по указанному Id, возьмем все характеристики по продукту, и запишет в модель анализа FeedbackAnalysis положительный или отрицательный отзыв.
Для того, чтобы не перебирать руками все записи в таблице CUSTOMER_SATISFACTION, для построения модели анализа. В состав Oracle Real Time Decisions входит специальный инструмент для моделирования работы системы. Называется он Oracle RTD Load Generator и находится RTD_HOME/scripts/loadgen.cmd. Запустим его.
Содержание раздела