Open Source Web Application for OLAP Reporting

Home | OpenI | Community | Download

SourceForge.net Logo

Table of Contents

Deployment

Prerequisites

  1. Operating Systems: Independent.
    Since OpenI 2 is completely Java-based, it should run on any operating system that has a compatible JVM.
  2. OLAP Server: Supports Microsoft Analysis Services 2000, SQL Server Analysis Service 2005 and Mondrian.
    You can use OpenI 2 with any XMLA-compliant OLAP server. If you are planning to use OpenI 2 with Microsoft Analysis Services, you will need to have an instance of Microsoft Analysis Services running WITH the XMLA interface provider. See setup details in the Set up XMLA Provider | Microsoft Analysis Services 2000 (MSAS 2000) section.
  3. Java Runtime : Requires version 1.5 or higher.
    Tested on Sun J2SE 1.5 and 1.6 edition. JBoss deployment works only with 1.5 edition
  4. Database (optional): Any relational database server (with JDBC support if using Mondrian).
    Although the default installation of OpenI 2 doesn't directly connect to a database, the OLAP servers do require at least one database instance. While Microsoft Anlaysis Services uses its native drivers to connect to the database, Mondrian uses JDBC drivers to connect to the database.

Install OpenI 2 from Binary

  1. Download and unzip binary distribution of openi-2.0-tomcat-alpha.zip or openi-2.0-jboss-alpha.zip into an empty folder
  2. Add user with roles 'openi' and 'app_admin' in web server and restart server. For tomcat : edit [TOMCAT_HOME]/conf/users.xml file. For JBoss, add or edit [JBOSS_HOME]/server/default/conf/users.properties and [JBOSS_HOME]/server/default/conf/roles.properties files
  3. Copy the openi.war into the deployment folder of your J2EE server . For example, if you are running tomcat as your J2EE server on Linux:
    • cp openi.war <tomcat_home>/webapps/
    Similarily, if you are running JBoss as your J2EE server on Linux (assuming 'default' configuration):
    • cp openi.war <jboss_home>/server/default/deploy
  4. Restart J2EE server if necessary
  5. Log in using the user having roles 'openi' and 'app_admin' defined. Please see Application Security for security configuration details.
  6. OpenI will ask you to create project for first time. Click on 'create project' button to coninue.

Build OpenI 2 from Source

  1. To build OpenI 2 from source, you will need Apache Ant and JDK 1.5 or greater.
  2. Checkout source from sf.net SVN
  3. Compile OpenI 2 :
    • Type 'cd build'
    • Type 'ant dist.tomcat' for tomcat war or 'ant dist.plain.war' for jboss war ( to clean and build, type 'ant clean dist.tomcat' or 'ant clean dist.plain.war')
    • This produces one WAR file under a dist folder for J2EE web deployment: openi.war Follow the same steps above to deploy war into J2EE folder

Set up XMLA Provider Interface

Microsoft Analysis Services 2000 (MSAS 2000)

OpenI 2 communicates with Microsoft Analysis Services (MSAS) OLAP server, using XMLA SDK version 1.1. To enable the XMLA interface of an MSAS instance, you need to follow these steps (in the exact order):

  • See Instructions at msdn site
  • We are assumming you have already installed Microsoft Analysis Services. If not:
    • Install SQL 2000 (optional) and apply Service Pack 3a or latest.
    • Install Microsoft Analysis Services (MSAS) and apply Service Pack 3a or latest.
  • On the machine where MSAS is installed, install IIS 6.0
  • Install Microsoft XML Core Services (MSXML). Use MSXML 4.0 for the 1.1 version of the XML Download here
  • Install XML for Analysis SDK 1.1 Download here
  • Create virtual directory (/xmla), using path to C:\Program Files\Microsoft XML For Analysis SDK\Isapi
  • Enable web service extension(name = xmla, path to C:\Program Files\Microsoft XML For Analysis SDK\Isapi\mdxisapi.dll
  • Verify installation: goto http://localhost/xmla/msxisapi.dll you should see something like this:

    <?xml version="1.0" ?>
    - <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
        SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
    - <SOAP-ENV:Body>
    - <SOAP-ENV:Fault>

      <faultcode>XMLAnalysisError.88BA0800</faultcode>
      <faultstring>The Web Service supports only the POST operation.</faultstring>
      <faultactor>XML for Analysis Provider</faultactor>
    - <detail>

    - <faultstring>

      <Error ErrorCode="2293893120"
             Description="The Web Service supports only the POST operation."
             Source="XML for Analysis Provider" />
      </faultstring>
      </detail>
      </SOAP-ENV:Fault>
      </SOAP-ENV:Body>

      </SOAP-ENV:Envelope>

Back to Table of Contents

SQL Server Analysis Services 2005 (SSAS 2005)

SQL Server 2005 installation is bundled with SSAS 2005 XMLA service. To enable the XMLA interface of an SSAS 2005 instance, you need to follow these steps (in the exact order):

  • We are assumming you have already installed IIS.
  • Install Microsoft SQL Server 2005 with SQl Server Analysis Service selected
  • Copy the contents of the <SQL_INSTALL_FOLDER>\OLAP\bin\isapi directory into the folder you would like to become the base for the virtual directory in IIS.(e.g. C:\inetpub\wwwroot\olap)
  • Create an application pool:
    • Goto IIS Management Console
    • Right-click the Application pools to open the shortcut menu and select New, than Application Pool.
    • Name the application pool. e.g. OLAP
  • Create a virtual directory
    • Goto IIS Management Console
    • Right-click the Web site to open the shortcut menu and select 'New', than 'Virtual Directory'
    • Name the virtual directory.(e.g. OLAP). The 'Content Directory' should point to the folder you've just created. (e.g. C:\inetpub\wwroot\olap)
    • Make sure that under the Access Permissions, only the second check box, Run Scripts (Such as ASP) is selected
  • Set up virtual directory properties
    • Right-click your virtual directory node and select Properties from the menu.
    • In virtual directory tab:
      • Choose the application pool as one you've just created.
      • Click the Configuration button. It will show 'Application Configuration' Dialog
      • Click on add button
      • In the Executable option, enter the full path name to msmdpump.dll. (e.g. C:\wwroot\olap\msmdpump.dll)
      • Enter .dll in the Extension text box.
      • Click the OK button to accept the settings
    • In 'Directory Security' tab:
      • Click to Edit on Authentication and access control. It will show 'Authentication Method' dialog box
      • Enable 'Anonymous Access'
    • Set up Web Service Extension :
      • Goto IIS Management Console, right-click the Web Service Extensions node and select Add new Web Service Extension.
      • Name the extension.(e.g. olap)
      • Click the Add button and provide a path to your msmdpump.dll file
      • Check the Set extension status to Allowed check box.
  • Verify installation: goto http://localhost/olap/msmdpump.dll you should see something like this:

    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <soap:Fault xmlns="http://schemas.xmlsoap.org/soap/envelope/"> <faultcode>XMLAnalysisError.0xc10e0002</faultcode> <faultstring>Parser: The syntax for 'GET' is incorrect.</faultstring> <detail> <Error ErrorCode="3238920194" Description="Parser: The syntax for 'GET' is incorrect." Source="Unknown" HelpFile=""/> </detail> </soap:Fault> </soap:Body> </soap:Envelope>

Back to Table of Contents

Configure OpenI 2 Datasource

Once OpenI 2 and the appropriate XMLA provider interface are installed and running, don't forget to configure the OpenI 2 datasources. A datasource definition defines the XMLA interface URL that OpenI 2 will use to discover and query the OLAP cubes. To do this:

    • Select project in project selection page (OpenI 2 autoselects the default project if there is single project available for the user. In such case it will bypass the project selection page)
    • Go to Preference -> Data Sources
    • There two default OLAP datasource definitions provided with OpenI 2 : msas and mondrian. Change the datasource URL with the actual URL and select the OLAP catalog for 'foodmart'. Use following datasource URL for each XMLA provider:
      • MS XMLA 2000 : http://xmla_server/xmla/xmla/msxisapi.dll
      • SSAS 2005 XMLA : http://xmla_server/olap/msmdpump.dll
      • Mondrian : http://mondrian_xmla:port/xmla

    Back to Table of Contents

Feed Service

Feed Service compiles into its own war file 'feeds.war', which needs to be deployed on remote server. Feed Service war file must be deployed on remote server to manage remote feed

Install Feed Service from source

  1. To build feed service war from source, you will need Apache Ant and JDK 1.5 or greater.
  2. Checkout source from sf.net SVN
  3. Compile Feed Service:
    • Type 'cd build'
    • Type 'ant feeds.war' ( to clean and build, type 'ant clean feeds.war')
    • This produces one WAR file under a dist folder for J2EE web deployment: feeds.war.
  4. Copy the WAR file to remote J2EE server's deployment folder. For tomcat, it is : <tomcat_home>/webapps/ and for JBoss : <jboss_home>/server/default/deploy
  5. Open browser to: http://remotefeedserver:port/feeds/FeedMetaDataService.jws. It should display the WSDL file for feed service
  6. Log in into OpenI 2 using admin account, goto configure datasource, add feed datasource, give it some name and use following URL as feed service URL : http://remotefeedserver:port/feeds/FeedMetaDataService.jws
  7. Goto 'Manage Feeds', select the datasource you have specified earlier

Back to Table of Contents

Application Security

OpenI 2 uses role based security provided by JEE web container. SInce each JEE web container security configuration is not identical, we are covering JBoss 4.2.2 and Tomcat 6.0 only. Please refer to the respective JEE server documentation for the details about security configuration.

Roles :
Every user must have a role 'openi' and other roles are specified as per user type.

app_admin : 'app_admin' role has to be granted for the user if user requires application administartive privilage.

proj_admin : 'proj_admin' role has to be granted for the user along with the role '<project_id>'' if user requires project administartive privilage for the project '<project_id>'

project User : this is not a role. If user is neither granted for 'app_admin'' nor for 'proj_admin' then user is considered as project user for the project '<project_id>'. User must have '<project_id>' role assigned to grant the perticular project access.

There are 3 built-in role definitions in the OpenI web application. Here is a table summarizinng their authorization rules:

User Type Roles Required Project visibility
Application Administrator openi, app_admin all projects in subdomain
Project Administrator (for project '<project_id>') openi, proj_admin, <project_id> for perticular project only. must be declared for each project
Project User (for project '<project_id>') openi,<project_id> for perticular project only. must be declared for each project
Note: Project users are protected for public folder access through module security. See module security configuration for more details.

For example, if you have a Tomcat deployment using the default security database, you need to ensure the following:

  • Find <tomcat-home>/conf/tomcat-users.xml
  • Configure a user in the admin role as follows:
    <user username=”admin” password=”password” roles=”openi,app_admin”/>
    <user username=”foodmartadmin” password=”password” roles="openi,proj_admin,foodmart"/>
    <user username=”foodmartuser” password=”password” roles="openi,foodmart"/>
    Note: all user must have 'openi' role. All non-app-admin user must have '<project_id>' role. For example foodmart project role is 'foodmart'.
  • Find <tomcat-home>/conf/server.xml
  • Ensure you have the following definition entry for the security realm:
    <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
    debug="0" resourceName="UserDatabase"/>
  • In Tomcat’s case, you have a choice of other security realms based on where you want to store the user database (see http://jakarta.apache.org/tomcat/tomcat-5.0-doc/realm-howto.html). Based on the security realm you choose for the OpenI web application, you need to ensure that the user database has the users and roles defined in it.
  • OpenI 2 also has a feature to manage user/roles, if roles/users are configured for jdbc database in JEE web container. For details, see security configuration.

For JBoss, add following files under [JBOSS_HOME]/server/default/conf folder :

  • Users.properties : contains user entries as user_name=user_password
  • Roles.properties : contains role entries as user_name=role1,role2,rolen (OpenI requires roles 'openi' and 'app_admin' for admin user)

To customize JBoss authentication, see 'JBoss-with-users-db-install-tips.txt' file under docs folder for details

Back to Table of Contents


Security configuration

Module security

Goto Manage Project page and add/update module security entries. Folder is allowed for all if no user is specified else it is accissible only to the admin users or non admin user whose name is listed there in mdoule entry.

Back to Table of Contents

Concept of a Project

OpenI 2 uses the concept of projects to define a specific collection of OLAP reports. Each project has its own look-and-feel definitions, list of reports, and security hierarchy.

In fact, this concept flows over from our “real-life” implementation of OpenI 2 – where we serve different “clients” from a single OpenI instance and each “client” needs their own space carved out within the OpenI instance. So, for example, when client A accesses the OpenI URL, they only see their “projects”, while client B sees a completely different list of projects, and so on. We feel that this concept is more universal than just in the case of different clients needing to see separate list of projects. For example, projects can be department-specific, where within an organization, you have an “accounting” project with accounting related reports, a separate “marketing” project with marketing related reports, and so on. That way, you separately setup access rights and administration separately for each project so accounting can’t see marketing reports and vice-versa.

Sample Project

The default binary distribution contains one project called "foodmart". OpenI 2 automatically creates the sample project contents into '<user_home>/openi-projects' folder, if it unable to find any project folder specified at startup. For details, see OpenI 2 environment settings.

Create a New Project

To create a new project, you can simply make a copy of the "foodmart" folder under "open-projects" and rename it (project name must be unique). Each project has the following contents:

  • project.xml -- this has project-specific properties, most of them are configurable via the "Administration - Manage Project" link on the OpenI site.
  • images -- folder for project-specific image files
  • public -- folder for "public" analyses, i.e. analysis that are visible to all users that have access to the project
  • In addition, there is a folder for each user who has created "private" analyses. These analyses are only visible to the user, and hence are kept under a folder under the username.

To further configure the new project, access the project by logging into the web interface (http://localhost:8080/openi) as an application admin. You should see the project listed in the main page. Once you are inside the project, click on menu 'Preferences->Project Settings" . This enables you to define the following:

  • Account ID : ID of the Account
  • Account Name : Name of the project for display purposes
  • Account Category : Name Account category
  • Stylesheet : Stylesheet to use for project's HTML look and feel
  • Header Message : Header Message to display at the roports page
  • Default Analysis Path : sets the default analysis path (for e.g. '/acc_name/path/xy.analysis')
  • Default Chart Color Palette : Defines the colour palates to display on the Chart
  • Multiple Filter Selection : Check box to make multiple filter selection on/off
  • Write Image Maps : Chcek box to make write images maps on/off
Once the project is set up, you can start defining data sources and create new reports under the context of that project. More details are available in the User Guide. Also, a "living" version of OpenI documentation is available at OpenI wiki.

Back to Table of Contents

Feedback

Please send us feedback on these instructions. The support forum is at http://sourceforge.net/forum/?group_id=142873.

A "living" version of OpenI documentation is available at OpenI wiki.

Back to Table of Contents

© Copyright 2005-2008, OpenI.Org, All Rights Reserved