Pages

Ads 468x60px

Labels

Thursday 10 January 2013

The Business Intelligence Chasm

The term Business Intelligence was first coined by IBM researcher Hans Luhn (in the IBM Journal of Research and Development, October 1958) and then used in its modern sense in 1989 by then-Gartner analyst Howard Dresner, who defined BI as an umbrella term to describe concepts and methods to improve business decision making by using fact based support systems.Both these definitions were quite prescient for its time – Mr. Luhn’s concept of ‘action points’ in the organization and Mr. Dresner’s reference to ‘business decision making’ ensured that BI has direct business relevance to go along with its very interesting technology façade.
BI & Analytics, in some sense, represents the holy grail of computer based applications, i.e. the use of technology to solve real world business problems. Clearly, there are 2 distinct aspects to BI –Technology and Business and both have to work synergistically to deliver on the overall promise.
As we step into 2013, my contention is that we as BI practitioners are doing fairly well on the technology front by assimilating many of the new developments (In-memory, Appliances, Columnar storage, Big data processing etc.) into mainstream data management, reporting and analytics, while we lack the skills required to integrate all this in the broader business context. Let me substantiate that statement.

Thursday 20 December 2012

Linking Enterprise Master Data with Social MediaData – Social MDM

“By 2015, 15 percent of organizations will have added social media data about their customers to the customer master data attributes they manage in their MDM systems” – Gartner

In my previous post on Collaborative Data Management we analyzed how data governance, quality and Master Data Management (MDM) can be leveraged to bring about a coherent data conscious environment within an organization. But is data that can provide business insights present within organization boundaries alone? Well with the explosion of Social Media the answer is a big ‘NO’.
As a known fact, traditionally the customer buying pattern was analyzed from data gathered from in-house systems and leveraged for selling opportunities. The information that these systems provided are essentially what the customers wanted to provide, in other words the intelligence was limited to the data collected at the Point of Sales. With Social MDM in place the whole approach changes. Following are the recommended action points as to how organizations need to go about with their Social MDM strategy:
  • Determine Attributes: Strategize on potential application of different Social Media and identify new attributes
  • Integrate Attributes: Linking MDM within Enterprise and Identity on Social Media followed by Enhancing the ‘Golden Copy of Customer Data
  • Build Social Intelligence: Take enterprise to the customer on Social Media

Do you have a vision for your Business Intelligence?


A quick search on the internet on Business Intelligence brings up a myriad of results:
a)  Big Data analytics helps to analyze large volumes of data – Is this BI?
b)  Data Virtualization brings together enterprise data from multiple, disparate sources– Is this BI?
c)   Data discovery tools offer agility and high performance for faster data exploration – is this BI?
None of this is Business Intelligence. The term Business Intelligence (BI) is often confused for a technology. However, the technologies that go by the name of BI are only a means to an end. The end still remains the information, insights and actions delivered through this technology platform. This understanding is critical to the success of Business Intelligence.
An often cited metric about Business Intelligence is that more than 50% of BI projects fail. Even as one questions the veracity of the claim, it is but common knowledge that BI projects drag on for a long period without producing concrete business deliverables. One of the primary reasons that this happens and that BI projects are not considered successful is that success in a BI project is seldom established.
It is not often that organizations make a conscious effort to create a business intelligence vision, which underlines the success criteria for the BI platform. In many organizations, BI initiatives start with one section of the business and gradually evolve to cover other areas. When this happens or when there is an attempt to consolidate several independent local BI initiatives together into an organization-wide BI platform without a clear vision and a direction, the outcome is often less than desirable.
The BI vision is essentially a set of clearly defined business objectives and a bunch of relevant metrics to track the progress towards the objectives and the final outcome. It is important to ensure that there are metrics that reflect both internal (mostly relevant at the divisional level) and external effectiveness (relevant at the organization / market level) and that they are aligned with each other and to the business objectives.
BI Vision
There are several industry-standard methodologies such as the Balanced Scorecard, the Performance Pyramid that are available to deduce strategic metrics or performance indicators in alignment to the overall strategy / business objectives.
Do you want your BI program to be success? Do you have a vision for your Business Intelligence?

Tuesday 20 November 2012

Oracle R12 Applications Using LoadRunner

The Challenge

We recently load tested our first Oracle R12 release (All modules for nationwide and international wide of Oracle ERP R12). The company was upgrading to R12 from 11.5.8 largely for performance reasons.

We knew we’d be “cutting new ground” with LoadRunner on R12. This became evident with our first testrecord-and-playback, which failed even after finding and fixing all the missing correlations. We raised a ticket with HP (SR# #4622615067), and with their initial help, step by step we overcame all the nuances of coaxing vugen to record successfully, and then creatively working around its inability to recognize the full set of identifiers for a new java ITEMTREE object.

This Practical Solution describes the challenges we encountered and how we overcame them. See the

Technical Issues and Solutions section for the gory details.

Before You Start

As with 11i, remember that you must expose “Oracle Developer Names*” on the instance before

recording. There’s an HP technote on this, but here are the steps:

  • Launch Oracle application
  • Login with Administrator privileges
  • Select the role “System Administrator”. If you don’t have this role, you don’t have the rights to do this
  • Select the option “Profile: System”
  • Search for the following profile option: “ICX: Forms Launcher” (Search for a specific user to change only the settings for one user);
  • Append this string to the end URL: “?play=&record=names”;
  • Save and close.

* Failure to do this will result in generic field names that make scripting much more difficult and harder to

maintain.

Lessons Learned

  • HP Support can help
  • Oracle Metalink documents provide good info on R12 architecture and configuration
  • If VUGen stumbles on a new object, try the QTP Object Spy
  • R12 can be installed in two distinct communication modes; make sure it’s in the more efficient “Socket    mode” before you beginning scripting
  • Porting scripts is a pretty common requirement – save crucial time at “show time” by parameterizing the instance-specific values up-front

Technical Issues and Solutions

 

Issue1: Playback failure on nca_object_action statements

Following the nca_connect statement there are two statements of this form:

nca_java_action (“SR_DUP_GRID_DUP_GRID_0″,)

On playback, the script invariably fails at the first of these.

Practical Solution:

In each script directory, open the default.cfg file and in the [NCA_GENERAL] section add this line:

NCATimerWaitMode=0

Playback will now successfully process nca_object_action statements.

 

 

 

 

Issue2: Java Runtime version and memory setting

Oracle R12 now loads the JInitiator file (runtime program for executing the Oracle java applet) from the

Java JRE, instead of downloading it during the Oracle initialization process or installing it on your PC separately. Also, Forms 10g needs more desktop memory than Forms 6 to perform reasonably.

Practical Solution:

Upgrade the Java JRE to version 1.0.0_05 or later. Moreover, allocate at least 512 MB of memory, using the Java Control Panel, and add the parameter:

–mx512m –Dcache.size=500000000.

Issue3: The correlation of ncx_ticket is different from 11i

In 11i, the correlation rule to correlate the key Oracle Forms session id, ncx_ticket, yields a web_reg_save_param statement with these left and right boundaries:

web_reg_save_param (“ICX_Ticket”, “LB=icx_ticket=”, “RB=’”, LAST);

In R12, a new suffix appears on the LB and a there is a new RB:

web_reg_save_param (“ICX_Ticket”, “LB=icx_ticket&gv15=”, “RB=&“,LAST);

Practical Solution:

In the Recording Settings, modify the OracleApps ‘icx’ correlation rule with the above LB and RB

to enable vugen to properly correlate icx_ticket automatically.

 

 

Issue4: Failure to recognize certain new java objects on record

QTP has issues recording an R12 object called an ITEMTREE which was a list of expandable items that

look like this:

+40907824 ITEM1

+40907839 ITEM2

The following statements resulted after selecting an item during recording, but these would not play back:

nca_tree_select_item (“ITEMTREE_ITEMTREE_0″, “40907824 ITEM1 “);

nca_tree_activate_item(“ITEMTREE_ITEMTREE_0″, “40907824 ITEM1 “);

If you encounter this object, or any other new object that vugen has trouble with, this tip may get you

around the recording limitation.

Practical Solution:

We used QuickTest Pro’s ObjectSpy to examine the ITEMTREE object and found that each menu

item had a reference number that is selectable and plays back correctly. We then modified the

VUgen code with the correct reference numbers:

nca_tree_select_item(“ITEMTREE_ITEMTREE_0″, “409“);

nca_tree_activate_item(“ITEMTREE_ITEMTREE_0″, “409“);

This reference number is listed in the detail log files if you look carefully but they were not obvious

during recording, but we recommend using ObjectSpy if you encounter any other objects that

VUgen doesn’t handle correctly.

 

Issue5: Porting scripts between environments

A common situation is that you must develop scripts in one environment but conduct testing in another.

This requires that your scripts be portable across environments.

Practical Solution:

There are several values that need to be parameterized in order to make your scripts portable.

Parameterize and test these as early as possible to avoid frantic porting at test execution time!

The values to parameterize are:

1. Base URL or app server ip

2. Web server port number which you initially connect to for login authentication

3. Forms server port number, which the nca_connect sues to connect to the Forms server

4. Configuration (“config” value in nca_connect)

5. Module (second ‘path’ value in nca_connect)

Examples of where these are used:

/*initial Oracle launch*/

web_browser (“UnysisERPR12.com:8050“,

DESCRIPTION,

ACTION,

“Navigate=http ://{ app_srv} :{ port_web}/”,

LAST);

/*Forms server connect*/

nca_connect_server (“{app_srv}“, “{port_forms}“,

“module=/ebstop/{module}/apps/apps_st/appl/fnd/12.0.0/forms/US/FNDSCSGN fndnam=APPS

record=names config=’{config}‘ icx_ticket=’.{ICX_Ticket}..’

resp=’AR/CAN_CUSTOMER_MASTER_ADMIN’ …”);

Configuring Oracle Unified Directory (OUD) 11g as a Directory Server

I used Oracle Unified Directory (OUD) Version 11.1.1.5.0 during my test deployment locally here. I tried to collect as much information possible in this post for configuration.

Ideally, there are three possible configuration options for OUD:

  • as a Directory Server
  • as a Replication Server
  • as a Proxy Server

Directory Server provides the main LDAP functionality in OUD. Proxy server can be used for proxying LDAP requests. And Replication Server is used for replication from one OUD to another OUD or even to another ODSEE (earlier Sun Java Directory) server. You can my previous posts on OUD here and here.

In this post, we will talk about configuring OUD after installation as a Directory Server. You can read about OUD installation in my previous post here.

Once installation is completed, you will find following files in $ORACLE_HOME Directory.

-rwxr-x---  1 oracle oracle 1152 May 17 11:16 oud-proxy-setup  -rwxr-x---  1 oracle oracle 1482 May 17 11:16 oud-proxy-setup.bat  -rwxr-x---  1 oracle oracle 1180 May 17 11:16 oud-replication-gateway-setup  -rwxr-x---  1 oracle oracle 1510 May 17 11:16 oud-replication-gateway-setup.bat  -rwxr-x---  1 oracle oracle 1141 Aug 10 16:50 oud-setup  -rwxr-x---  1 oracle oracle 1538 May 17 11:15 oud-setup.bat

In this listing, .bat files are used in windows. So, In Linux (that is what I am using), we will be using following files.

  • oud-setup – To configure Directory Server
  • oud-replication-gateway-setup – To configure Directory Replication Server
  • oud-proxy-setup – To Setup Proxy Server

You can run the script shown below.

$ ./oud-setup OUD Instance location successfully created - /u01/oracle/Middleware/Oracle_OUD1/../asinst_2 Launching graphical setup...  The graphical setup launch failed.  Check file /tmp/oud-setup-8836874387532698932.log for more details.  Launching command line setup...  Oracle Unified Directory 11.1.1.5.0 Please wait while the setup program initializes...  What would you like to use as the initial root user DN for the Directory Server? [cn=Directory Manager]: Please provide the password to use for the initial root user: Please re-enter the password for confirmation:  On which port would you like the Directory Server to accept connections from LDAP clients? [1389]: 389  ERROR:  Unable to bind to port 389.  This port may already be in use, or you may not have permission to bind to it.  On UNIX-based operating systems, non-root users may not be allowed to bind to ports 1 through 1024 On which port would you like the Directory Server to accept connections from LDAP clients? [1389]:  On which port would you like the Administration Connector to accept connections? [4444]: Do you want to create base DNs in the server? (yes / no) [yes]:  Provide the base DN for the directory data: [dc=example,dc=com]: Options for populating the database:  1)  Only create the base entry 2)  Leave the database empty 3)  Import data from an LDIF file 4)  Load automatically-generated sample data  Enter choice [1]: 1  Do you want to enable SSL? (yes / no) [no]: yes On which port would you like the Directory Server to accept connections from LDAPS clients? [1636]:  Do you want to enable Start TLS? (yes / no) [no]: yes Certificate server options:  1)  Generate self-signed certificate (recommended for testing purposes only) 2)  Use an existing certificate located on a Java Key Store (JKS) 3)  Use an existing certificate located on a JCEKS key store 4)  Use an existing certificate located on a PKCS#12 key store 5)  Use an existing certificate on a PKCS#11 token  Enter choice [1]: Provide the fully-qualified host name or IP address that will be used to generate the self-signed certificate [ut1ef1]:  Do you want to start the server when the configuration is completed? (yes / no) [yes]:  Setup Summary ============= LDAP Listener Port:            1389 Administration Connector Port: 4444 LDAP Secure Access:            Enable StartTLS Enable SSL on LDAP Port 1636 Create a new Self-Signed Certificate Root User DN:                  cn=Directory Manager Directory Data:                Create New Base DN dc=example,dc=com. Base DN Data: Only Create Base Entry (dc=example,dc=com)  Start Server when the configuration is completed  What would you like to do?  1)  Set up the server with the parameters above 2)  Provide the setup parameters again 3)  Print equivalent non-interactive command-line 4)  Cancel and exit  Enter choice [1]: 3  Equivalent non-interactive command-line to setup server:  oud-setup \ --cli \ --baseDN dc=example,dc=com \ --addBaseEntry \ --ldapPort 1389 \ --adminConnectorPort 4444 \ --rootUserDN cn=Directory\ Manager \ --rootUserPassword ****** \ --enableStartTLS \ --ldapsPort 1636 \ --generateSelfSignedCertificate \ --hostName ut1ef1 \ --no-prompt \ --noPropertiesFile  What would you like to do?  1)  Set up the server with the parameters above 2)  Provide the setup parameters again 3)  Print equivalent non-interactive command-line 4)  Cancel and exit  Enter choice [1]: 4 No configuration performed. OUD Instance directory deleted. $

Then you need to run the oud-setup with the options provided for creating the directory server.

$ ./oud-setup           –cli           –baseDN dc=example,dc=com           –addBaseEntry           –ldapPort 1389           –adminConnectorPort 4444           –rootUserDN cn=Directory\ Manager           –rootUserPassword ******           –enableStartTLS           –ldapsPort 1636           –generateSelfSignedCertificate           –hostName ut1ef1           –no-prompt           –noPropertiesFile

OUD Instance location successfully created – /u01/oracle/Middleware/Oracle_OUD1/../asinst_2

An error occurred while parsing the command-line arguments:  An unexpected error occurred while attempting to initialize the command-line arguments:  Argument “bat” does not start with one or two dashes and unnamed trailing arguments are not allowed

Here, the issue is with the rootUserPassword value. Since I put * here, it replaced with all the files in the local directory, so it failed. Replace it with the required password for the “cn=Directory Manager” as shown below.

$ ./oud-setup           --cli           --baseDN dc=example,dc=com           --addBaseEntry           --ldapPort 1389           --adminConnectorPort 4444           --rootUserDN cn=Directory\ Manager           --rootUserPassword pass_t3st           --enableStartTLS           --ldapsPort 1636           --generateSelfSignedCertificate           --hostName ut1ef1           --no-prompt           --noPropertiesFile OUD Instance location successfully created - /u01/oracle/Middleware/Oracle_OUD1/../asinst_2  Oracle Unified Directory 11.1.1.5.0 Please wait while the setup program initializes...  See /tmp/oud-setup-5822533240188214866.log for a detailed log of this operation.  Configuring Directory Server ..... Done. Configuring Certificates ..... Done. Creating Base Entry dc=example,dc=com ..... Done. Starting Directory Server ......... Done.  To see basic server configuration status and configuration you can launch /u01/oracle/Middleware/asinst_2/OUD/bin/status $  cd bin $ ./status  >>>> Specify Oracle Unified Directory LDAP connection parameters  How do you want to trust the server certificate?  1)  Automatically trust 2)  Use a truststore 3)  Manually validate  Enter choice [3]: 1  Administrator user bind DN [cn=Directory Manager]:  Password for user 'cn=Directory Manager':  --- Server Status --- Server Run Status:        Started Open Connections:         1  --- Server Details --- Host Name:                ut1ef1 Administrative Users:     cn=Directory Manager Installation Path:        /u01/oracle/Middleware/Oracle_OUD1 Instance Path:            /u01/oracle/Middleware/asinst_2/OUD Version:                  Oracle Unified Directory 11.1.1.5.0 Java Version:             1.6.0_26 Administration Connector: Port 4444 (LDAPS)  --- Connection Handlers --- Address:Port : Protocol               : State -------------:------------------------:--------- --           : LDIF                   : Disabled 0.0.0.0:161  : SNMP                   : Disabled 0.0.0.0:1389 : LDAP (allows StartTLS) : Enabled 0.0.0.0:1636 : LDAPS                  : Enabled 0.0.0.0:1689 : JMX                    : Disabled  --- Data Sources --- Base DN:     dc=example,dc=com Backend ID:  userRoot Entries:     1 Replication: Disabled
$

Now, your newly created OUD Directory Server is running in the machine. You can check this with the ldapsearch command.

$ ldapsearch -h localhost -p 1389 -D “cn=Directory Manager” -w ebs_t3st -s sub -b “dc=example,dc=com” “(objectclass=*)” cn
dn: dc=example,dc=com

$

LDAP Search command will return one entry as shown above.

Here are some of my Observations:

  • If you want to use the port 389/636 for your Directory Server, then you need to run the setup using root user. Then you need to use start-ds and stop-ds commands using root user only.
  • There are six scripts to setup OUD components (three for unix/linux and three for windows environments)
  • You can setup a new TLS based certificate as part of configuring a new Directory Server.

 

Okay, thats all for now. We will meet in another post. Until then