Jump to: navigation, search

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


(Direct Access)
 
(74 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 =
 
= Install Notification Endpoint =
* Download Notification Service from the release portal.
+
* Download the Notification Endpoint Webservice 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)
+
* Deploy the Notification Endpoint Webservice 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.  
+
** 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=
 
 
= 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 41: 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