Jump to: navigation, search

Difference between revisions of "Configure EventNotification Endpoint and Enterprise Service for CUI"


(Overview)
(Direct Access)
 
(75 intermediate revisions by the same user not shown)
Line 1: Line 1:
EventNotification Endpoint is a middleware which is responsible to receive incomming COMOS event notification, queue them internally and forward them to the UBIK Enterprise service for further processing.  
+
EventNotification Endpoint is a middleware which is responsible for receiving incoming COMOS event notifications, queuing them internally and forwarding them to the {{UBIK}} Enterprise Service for further processing.  
 
This page describes how to setup the system.
 
This page describes how to setup the system.
  
 
= Overview =
 
= Overview =
* Make sure [[HowTo:Install_UBIK_Enterprise_Service|Enterprise Service]] and USAM are installed on IIS Server.
+
* Make sure the [[HowTo:Install_UBIK_Enterprise_Service|Enterprise Service]] and the [[HowTo:Install_UBIK_Web_Service#UBIK.C2.AE_Authentication_Web_Service_USAM.svc|USAM]] are installed on the IIS Server.
* Install Notification Endpoint webservice on IIS Server
+
* Install the Notification Endpoint Webservice on the IIS Server
* Configure mandatory settings for Notification Endpoint Webservice
+
* Configure all mandatory settings for the Notification Endpoint Webservice
* Configure Notification Endpoint service URL in COMOS and enable Notifications
+
* Configure the Notification Endpoint Webservice URL in COMOS and enable notifications
 +
* Make sure all files are accessible
  
 +
[[Category:Version 4.3|Configure EventNotification Endpoint and Enterprise Service for CUI]]
 +
 +
= Install Notification Endpoint =
 +
* Download the Notification Endpoint Webservice from the release portal.
 +
* Deploy the Notification Endpoint Webservice to the designated web app folder on the IIS Server (web app folder needs to be created if necessary)
 +
** IIS Manager setting check: see [[Configure_EventNotification_Endpoint_and_Enterprise_Service_for_CUI#IIS_Manager|IIS Manager]]
 +
* Make sure COMOS is configured to send notifications.
 +
 +
 +
== IIS Manager ==
 +
 +
= Direct Access =
 +
* Add a new website under the "Sites" folder in IIS Manager.
 +
* Connect the new site to the corresponding physical folder via the website's "basic settings". <br/> [[Image:WebsiteConfIIS.PNG|300px]]
 +
** "Site Name", "Application pool" and "Physical path" should be adapted by your setting, here are only example
 +
* Configure a "Binding" for the website.<br/>[[Image:BindingIISConf.PNG|300px]]
 +
** The URL can be used as a direct access target,
 +
** '''or used as an internal target for [[Configure_EventNotification_Endpoint_and_Enterprise_Service_for_CUI#URL_redirection|URL redirection]].'''
 +
 +
[[Category:Version 4.3|Configure EventNotification Endpoint and Enterprise Service for CUI]]
 +
 +
=URL redirection=
 +
* Install URL redirect feature by using "Server Manager", to "Add Roles and Features Wizard":
 +
[[Image:Urlredirect.JPG|500px]]
 +
* Click on the Web Site, which will be exposed to the outside
 +
* Open "URL Rewrite" at "....Home"
 +
* Add rule(s) as 'Inbound Rule' like the following:
 +
[[Image:InboundRules.PNG|500px]]
 +
[[Image:InboundRules2.PNG|500px]]
 +
 +
'''Rewrite URL is defined base on direct access'''
  
= IIS Manager=
 
* Download Notification Service from the release portal.
 
* Deploy the Notification Service to the designated web app folder on the IIS Server (web app folder needs to be created if necessary)
 
USAM Service and Enterprise Service are required.
 
  
 
= Notification Endpoint=
 
= Notification Endpoint=
 
Adapt “Your/EventNotificationEndpoint/Folder/Configuration/config.json” file, configure at least the mandatory settings:
 
Adapt “Your/EventNotificationEndpoint/Folder/Configuration/config.json” file, configure at least the mandatory settings:
 
+
* "USAMUrl": The URL of the USAM Service
* "USAMUrl": "your USAM URL ",
+
* "QueuePath": The folder containing all files, which will be sent to Enterprise Service for processing. After having been processed by ES, the corresponding files will be deleted.
* "QueuePath": "your queue file path",(need corresponding folder)
+
* "InComingLogPath": All received COMOS notifications will be stored here
* "InComingLogPath": "your COMOS incoming notification file path ",- mandatory(need corresponding folder)
+
* "ProcessUrl": The URL of the Enterprise Service web interface
* "ProcessUrl": "your Enterprise Service URL"- mandatory
+
<br/>
 +
Optional settings:
 +
* "LogPath": Path to your log files folder
 +
* "DeleteLogAfter": Maximum age (in days) to keep log files for
 +
* "DBkeys": Json string array containing the white list of COMOS DBkeys (empty or delete for receiving all DBkeys)
  
  
 
= Enterprise Service=
 
= Enterprise Service=
* Go to UBIK.EnterpriseService folder,
+
* Go to the UBIK.EnterpriseService folder,
* Check if CUI plugin installed,
+
* Copy and paste UBIK.Interface.CUI.dll to the “Injection” folder (create it if it does not exist).
** Copy paste UBIK.Interface.CUI.dll to “Injection” folder.
+
* Open UBIK.EnterpriseService.exe.config, find the “appSettings” section, configure all necessary information, and add the "ContentControllerConfigPath" setting to the end:
* If Injection does not exist, create it.
+
<source lang = "xml">
** Open UBIK.EnterpriseService.exe.config:
+
<appSettings>
* Find “appSettings” session, add following set:
+
    <!-- System.Diagnostics.ProcessWindowStyle: Normal = 0, Hidden = 1, Minimized = 2, Maximized = 3 -->
<code><add key="ContentControllerConfigPath" value="YouContentControllerPath\ContentController.json" /></code>
+
    <add key="ConsoleRunMode" value="1" />
'''Make sure ContentController.json exist.'''
+
    <!-- Nothing = 0, Mark = 1, Delete = 2 -->
* Open ContentController.json, change the content base on the requirement:
+
    <add key="CommandFileAction" value="0" />
 +
    <add key="ClearWatchFolders" value="0" />
 +
    <!-- Path to json file. Pointing to EnterpriseServicePluginExecutionConfigHolder -->
 +
    <add key="PluginExecutionConfigPath" value="" />
 +
    <add key="ClientSettingsProvider.ServiceUri" value="" />
 +
    <!--TEST IF ONLINE USING BROWSER  // GET http://localhost:9000/api/basicenterpriseservice/getuptimeinfo-->
 +
    <!-- switch on WebInterface: 1, switch off WebInterface : 0 -->
 +
    <add key="ExecuteWebInterface" value="1" />
 +
    <add key="ExecuteTaskByJsonFile" value="0" />
 +
    <!-- Notification Endpoint config ProcessUrl -->
 +
    <add key="WebInterfacePort" value="9000" />
 +
    <add key="WebInterfaceHost" value="http://localhost" />
 +
    <!-- Add this to the ES config file -->
 +
    <add key="ContentControllerConfigPath" value="your\setting\path\ContentController.json" />
 +
</appSettings>
 +
</source>
 +
'''Make sure ContentController.json exists.'''
 +
* Create or adapt ContentController.json according to your database connection:
 +
<source lang = "yaml">
 
{
 
{
"SqlConnectionDefinition": {
+
  "SqlConnectionDefinition":  
 +
    {
 
       "SSPI": false (or true, based on your DB setting),
 
       "SSPI": false (or true, based on your DB setting),
 
       "SQLUser": "username",
 
       "SQLUser": "username",
Line 40: Line 91:
 
       "SQLServer": "your SQL Server",
 
       "SQLServer": "your SQL Server",
 
       "SQLInitialCatalog": "DB name"
 
       "SQLInitialCatalog": "DB name"
      }
+
    }
 
}
 
}
 
+
</source>
 +
* Example:
 +
** "SQLUser": "aaa"
 +
** "SQLPassoword": "bbb"
 +
** "SQLServer":  "(localdb)\ProjectModels"
 +
** "SQLInitialCatalog": "TEMPLATE.LOCAL"
 +
'''Pay attention on JSON escape with ' \" ', ' \\ ''''
 
==See also==
 
==See also==
 
<!-- DO NOT MODIFY THE NAME OF THIS SECTION, BUT REMOVE IT IF NOT REQUIRED -->
 
<!-- DO NOT MODIFY THE NAME OF THIS SECTION, BUT REMOVE IT IF NOT REQUIRED -->
 +
* [[HowTo:Install_UBIK_Web_Service#UBIK.C2.AE_Authentication_Web_Service_USAM.svc]]
 +
* [[HowTo:Install_UBIK_Enterprise_Service]]
 +
 +
[[Category:Version 4.3|Configure EventNotification Endpoint and Enterprise Service for CUI]]

Latest revision as of 12:20, 23 August 2023

EventNotification Endpoint is a middleware which is responsible for receiving incoming COMOS event notifications, queuing them internally and forwarding them to the UBIK® Enterprise Service for further processing. This page describes how to setup the system.

Overview

  • Make sure the Enterprise Service and the USAM are installed on the IIS Server.
  • Install the Notification Endpoint Webservice on the IIS Server
  • Configure all mandatory settings for the Notification Endpoint Webservice
  • Configure the Notification Endpoint Webservice URL in COMOS and enable notifications
  • Make sure all files are accessible

Install Notification Endpoint

  • Download the Notification Endpoint Webservice from the release portal.
  • Deploy the Notification Endpoint Webservice to the designated web app folder on the IIS Server (web app folder needs to be created if necessary)
  • Make sure COMOS is configured to send notifications.


IIS Manager

Direct Access

  • Add a new website under the "Sites" folder in IIS Manager.
  • Connect the new site to the corresponding physical folder via the website's "basic settings".
    WebsiteConfIIS.PNG
    • "Site Name", "Application pool" and "Physical path" should be adapted by your setting, here are only example
  • Configure a "Binding" for the website.
    BindingIISConf.PNG
    • The URL can be used as a direct access target,
    • or used as an internal target for URL redirection.

URL redirection

  • Install URL redirect feature by using "Server Manager", to "Add Roles and Features Wizard":

Urlredirect.JPG

  • Click on the Web Site, which will be exposed to the outside
  • Open "URL Rewrite" at "....Home"
  • Add rule(s) as 'Inbound Rule' like the following:

InboundRules.PNG InboundRules2.PNG

Rewrite URL is defined base on direct access


Notification Endpoint

Adapt “Your/EventNotificationEndpoint/Folder/Configuration/config.json” file, configure at least the mandatory settings:

  • "USAMUrl": The URL of the USAM Service
  • "QueuePath": The folder containing all files, which will be sent to Enterprise Service for processing. After having been processed by ES, the corresponding files will be deleted.
  • "InComingLogPath": All received COMOS notifications will be stored here
  • "ProcessUrl": The URL of the Enterprise Service web interface


Optional settings:

  • "LogPath": Path to your log files folder
  • "DeleteLogAfter": Maximum age (in days) to keep log files for
  • "DBkeys": Json string array containing the white list of COMOS DBkeys (empty or delete for receiving all DBkeys)


Enterprise Service

  • Go to the UBIK.EnterpriseService folder,
  • Copy and paste UBIK.Interface.CUI.dll to the “Injection” folder (create it if it does not exist).
  • Open UBIK.EnterpriseService.exe.config, find the “appSettings” section, configure all necessary information, and add the "ContentControllerConfigPath" setting to the end:
<appSettings>
    <!-- System.Diagnostics.ProcessWindowStyle: Normal = 0, Hidden = 1, Minimized = 2, Maximized = 3 -->
    <add key="ConsoleRunMode" value="1" />
    <!-- Nothing = 0, Mark = 1, Delete = 2 -->
    <add key="CommandFileAction" value="0" />
    <add key="ClearWatchFolders" value="0" />
    <!-- Path to json file. Pointing to EnterpriseServicePluginExecutionConfigHolder -->
    <add key="PluginExecutionConfigPath" value="" />
    <add key="ClientSettingsProvider.ServiceUri" value="" />
    <!--TEST IF ONLINE USING BROWSER  // GET http://localhost:9000/api/basicenterpriseservice/getuptimeinfo-->
    <!-- switch on WebInterface: 1, switch off WebInterface : 0 -->
    <add key="ExecuteWebInterface" value="1" />
    <add key="ExecuteTaskByJsonFile" value="0" />
    <!-- Notification Endpoint config ProcessUrl -->
    <add key="WebInterfacePort" value="9000" />
    <add key="WebInterfaceHost" value="http://localhost" />
    <!-- Add this to the ES config file -->
    <add key="ContentControllerConfigPath" value="your\setting\path\ContentController.json" />
</appSettings>

Make sure ContentController.json exists.

  • Create or adapt ContentController.json according to your database connection:
{
   "SqlConnectionDefinition"
:
    {
      "SSPI"
: false (or true, based on your DB setting),
      "SQLUser"
: "username",
      "SQLPassword"
: "password",
      "SQLServer"
: "your SQL Server",
      "SQLInitialCatalog"
: "DB name"
    }
}
  • Example:
    • "SQLUser": "aaa"
    • "SQLPassoword": "bbb"
    • "SQLServer": "(localdb)\ProjectModels"
    • "SQLInitialCatalog": "TEMPLATE.LOCAL"

Pay attention on JSON escape with ' \" ', ' \\ '

See also