Intellicus Enterprise Reporting and Business Insights 19.1

Deployment Architectural Options

0 views September 22, 2020 0

Intellicus Web Client supports all the Web servers and extensions that support JSP execution.

The Intellicus Web Client files include Intellicus Java Server Pages and Intellicus Java API packages. Other supporting files include java script files, image files, property configuration files, etc.

These files are available at <Intellicus_Install_path>/Jakarta/webapps/intellicus

There are two recommended methods for integrating Intellicus client into a host web application.

Intellicus portal can be run separately and can be interacted with HTTP calls, OR

Intellicus portal JSPs and JAVA APIs can be copied inside the HOST application server.

Note: The options are with integrating the client components. In either case, the Report Server will run as a separate standalone server process.

Option-1: Intellicus Running on Separate Webserver

In this method Intellicus web client components are deployed in a separate application server and managed separately.

The client components run in the memory space of a separate Jakarta TomCat JSP Server. During streaming of report output to the browser, the client components won’t consume host applications’ threads, temporary file space etc.

Still, this integration option can provide embedded reporting, by placing reporting output as an integral part of the host application page.

separate webserver
Figure 1: Integrating as a separate portal

Use cases
  1. Host application user login to their (Host) application.
  2. User clicks Reports option for getting a report layout list etc. from the web browser and thus hit the Intellicus portal.
  3. Host application user access Client database for their normal actions other than reports.
  4. Client application communicates with Intellicus JAVA APIs (includes intellica.jar, log4ij.jar, xercesImpl.jar, xmlParserAPIs.jar, jersey-bundle-1.19.4.jar, commons-imaging-1.0a1.jar, xml-apis-1.4.01.jar, jackson-core-2.10.2.jar, jackson-databind-2.10.2.jar, jackson-annotations-2.10.2.jar, json.jar) deployed on Client app server in their class path.
  5. Client uses Intellicus JAVA APIs for performing Intellicus administration task programmatically.
  6. Intellicus portal communicates with report server for report execution, administration etc.
  7. Intellicus report server communicates with Client database for fetching report layouts.(Intellicus creates its own repository tables in the database)
  8. Intellicus report server communicates with Client database and fetches data using report SQL from Client database.
  9. Host application user logs in through Intellicus portal for Admin Screens using Intellicus portal login screen.
Deploying JSPs and SERVLETs

Step 1- Install Intellicus Report Server

Run Setup.exe and Install Intellicus Report Server.

You can install Intellicus Report Server on a separate machine or on the same machine as the host application server is running.

The setup.exe installs the report server as well as the Intellicus client components.

Note: By default, Intellicus suite listens to HTTP requests on port 80. If this number conflicts with any of host application port numbers, then either of ports should be changed.

Step 2- Configure HTTP port number

Report Web Service will start automatically on port 80. To change Intellicus portal HTTP port number,

  1. Go to [Intellicus_Install_path]/Program Files/Intellicus/Jakarta/conf
  2. Using any text editor, edit ‘server.xml’ file.
  3. Search for Connector port=”80″ text and replace 80 with other number, for example, 8000.

The Intellicus can be now accessed as localhost:8000/intellicus.

Step 3- Setting Intellicus User Context

When it comes to integrating Intellicus with a host application it is desired that the user gets seamless experience.  That means, user should not only get the same look and feel, but if the application needs user authentication, he/she should not be asked to log into Intellicus again.

Single sign-on refers to one time authentication performed by the host application. Intellicus does not perform any authentication check for the Users accessing Intellicus from Host Application as these are already authenticated. This means that User can access Intellicus without going through Intellicus Login page

Please refer Intellicus Single Sign-on for more details on single sign on.

Option-2: Intellicus Running inside a Host Application

In this method Intellicus web client components are deployed inside the host application server and managed along with the host application.

During streaming of report output to the browser, the client components run in the memory space of host application server and consume threads, temporary file space etc.

host application
Figure 2: Integrating as embedded in host application

 

Use cases
  1. Client application is a web-based application, which is deployed on some App Server. Intellicus Web Application is running on the same server.
  2. Intellicus web Application is embedded with the Host web application.
  3. The Host Web Application accesses the Intellicus pages.
  4. The Host Web Application accesses the Intellicus Report Server through Intellicus Web Application.
  5. The Host application uses Intellicus JAVA APIs for creating/mapping Intellicus users/roles etc. Host application communicates with Intellicus JAVA APIs (includes intellica.jar, log4ij.jar, xercesImpl.jar, xmlParserAPIs.jar, jersey-bundle-1.19.4.jar, commons-imaging-1.0a1.jar, xml-apis-1.4.01.jar, jackson-core-2.10.2.jar, jackson-databind-2.10.2.jar, jackson-annotations-2.10.2.jar, json.jar) deployed on their App server in their class path.
  6. Intellicus Report Server connects to Client database; with a single-user connection pool (Intellicus creates its own repository tables in the database). Intellicus repository is also formed on the same database (may be under a different schema).
  7. Intellicus report server communicates with Client database and fetches data using report SQL from Client database.
Steps to deploy Intellicus as a Embedded Application inside Host Application
  1. Copy “intellicus” web application to the Host Application

Go to the drive where Intellicus is installed and then follow the path  Intellicus>Jakarta>webapps, copy the folder “intellicus” from there and place it inside the Host Application folder “hostapp”.

jakarta/webapps/hostapp

  1. Copy library files of intellicus

Copy the jar files from  intellicus/WEB-INF/lib folder to WEB-INF folder at above location.

  1. Modify the contents of “web.xml’
  • The contents of Intellicus’ web.xml (inside the WEB-INF of intellicus folder) should be merged into web.xml of hostapp folder

jakarta/webapps\hostapp\WEB-INF\web.xml

  • Modify the entry of propertyFilename to set env-entry-value to /intellicus/client/config/ReportClient.properties
  • Also, the mappings mentioned below requires prefix as Application Folder Name in its uel-pattern. (Ex., if embedded folder “intellicus” is renamed as “report” inside host application, then “/report” should be used as the prefix)

<servlet-mapping>

<servlet-name>ChartTemplateController</servlet-name>

<url-pattern>/report/tools/amchart/templates/*</url-pattern>

</servlet-mapping>

<servlet-mapping>

<servlet-name>ChartTemplateController</servlet-name>

<url-pattern>/report/tools/microchart/templates/*</url-pattern>

</servlet-mapping>

<servlet-mapping>

<servlet-name>ChartTemplateController</servlet-name>

<url-pattern>/report/tools/amchart_javascript/templates/*</url-pattern>

</servlet-mapping>

<servlet-mapping>

<servlet-name>MapTemplateController</servlet-name>

<url-pattern>/report/tools/ammap/templates/*</url-pattern>

</servlet-mapping>

<servlet-mapping>

<servlet-name>MapTemplateController</servlet-name>

<url-pattern>/report/tools/leaflet/templates/*</url-pattern>

</servlet-mapping>

<servlet-mapping>

<servlet-name>UploadConfServlet</servlet-name>

<url-pattern>/report/conf/UploadConf</url-pattern>

</servlet-mapping>

<servlet-mapping>

<servlet-name>NetworkGraphTemplateController</servlet-name>

<url-pattern>/report/templates/graphs/*</url-pattern>

</servlet-mapping>

<servlet-mapping>

<servlet-name>GridTemplateController</servlet-name>

<url-pattern>/report/templates/grids/*</url-pattern>

</servlet-mapping>

<servlet-mapping>

<servlet-name>HelpController</servlet-name>

<url-pattern>/report/common/help/images/Default/*</url-pattern>

</servlet-mapping>

<servlet-mapping>

<servlet-name>HelpController</servlet-name>

<url-pattern>/report/common/css/images/Default/*</url-pattern>

</servlet-mapping>

<servlet-mapping>

<servlet-name>HelpController</servlet-name>

<url-pattern>/report/common/help/stylesheets/help.css</url-pattern>

</servlet-mapping>

<servlet-mapping>

<servlet-name>ResourceLinkServlet</servlet-name>

<url-pattern>/report/viewResource</url-pattern>

</servlet-mapping>

<servlet-mapping>

<servlet-name>WebStudioUtility</servlet-name>

<url-pattern>/report/webdesigner/images/user/*</url-pattern>

</servlet-mapping>

<servlet-mapping>

<servlet-name>RESTServlet</servlet-name>

<url-pattern>/report/rest/*</url-pattern>

</servlet-mapping>

<servlet-mapping>

<servlet-name>snapshotServlet</servlet-name>

<url-pattern>/report/core/SnapshotServlet</url-pattern>

</servlet-mapping>

<servlet-mapping>

<servlet-name>ManageCertificateServlet</servlet-name>

<url-pattern>/report/conf/ManageCertificate</url-pattern>

</servlet-mapping>

<servlet-mapping>

<servlet-name>ManageKeyServlet</servlet-name>

<url-pattern>/report/conf/ManageKey</url-pattern>

</servlet-mapping>

<servlet-mapping>

<servlet-name>OlapServlet</servlet-name>

<url-pattern>/report/olap/OlapServlet</url-pattern>

</servlet-mapping>

<servlet-mapping>

<servlet-name>AdhocHelperServlet</servlet-name>

<url-pattern>/report/servlet/AdhocHelperServlet</url-pattern>

</servlet-mapping>

<servlet-mapping>

<servlet-name>UserLoginValidatorServlet</servlet-name>

<url-pattern>/report/servlet/userLoginValidatorServlet</url-pattern>

</servlet-mapping>

<env-entry>

<env-entry-name>propertyFileName</env-entry-name>

<env-entry-value>/report/client/config/ReportClient.properties</env-entry-value>

<env-entry-type>java.lang.String</env-entry-type>

</env-entry>


    1. Modify the ReportClient.properties file

The location of ReportClient.properties file.

jakarta/webapps/hostapp/intellicus/client/config

  • REPORT_ENGINE_IP section in ReportClient.properties file should point to Report Engine Server.

E.g.:    ## [REPORT ENGINE CONFIGURATION]

# Address of machine where Report Engine is running

# (Default value:- 127.0.0.1)

REPORT_ENGINE_IP=192.168.33.110

# Port number on which Report Engine is running

# (Default Value:- 45450)

REPORT_ENGINE_PORT=45450

  • Set INTERA_HOME to blank.
  • Set RELATIVE_PATH=/intellicus

In case the name of the intellicus folder is renamed by the user   like, “intellicus” is renamed as “report”, then the relative path is set as “/report”

  1. Modify the contents of “ReportEngine.properties”

The location of ReportEngine.properties:

<Intellicus_Install_Path>/ReportEngine/Config/

Change HYPERLINK_RELATIVE_PATH property

From                : ../../../InteraController.jsp

To     : ../../../intellicus/InteraController.jsp

In case the name of the intellicus folder is renamed by the user   like, “intellicus” is renamed as “report”, then HYPERLINK_RELATIVE_PATH property should be set as  ../../../report/InteraController.jsp

  1. Access Intellicus from hostapp application

User can access Intellicus with following URL

http://<IP Address> :< port no>/hostapp/intellicus/index.jsp

In case the name of the intellicus folder is renamed by the user like “intellicus” is renamed as “report” then the user can access Intellicus with the following URL:

http://<IP Address> :< port no>/hostapp/report/index.jsp

HTML Look and Feel

All Intellicus JSP files use various style sheets like intellicus.css , style.css etc to generate the HTML look-and-feel. You can change modify these JSP files to use your cascading style sheet file (CSS) to give the look-and-feel according to your application.

Note: Intellicus provides professional services for developing the UI skin. Please contact Intellicus support for the same.