Deployment
Prerequisites
-
Operating Systems: Independent.
Since OpenI 2 is completely Java-based, it
should run on any operating system that has a compatible
JVM.
- 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.
- 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
- 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
-
-
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
- 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
- Restart J2EE server if necessary
-
- Log in using the user having roles 'openi' and 'app_admin' defined. Please see Application Security for security configuration details.
-
OpenI will ask you to create project for first time. Click on 'create project' button to coninue.
Build OpenI 2
from Source
-
To build OpenI 2 from source, you will need Apache Ant and JDK 1.5 or greater.
-
-
Compile OpenI 2 :
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>
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>
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
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
-
To build feed service war from source, you will need Apache Ant and JDK 1.5 or greater.
-
-
Compile Feed Service:
-
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
-
- 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
- Goto 'Manage Feeds', select the datasource you have specified earlier
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
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.
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.
|
|