Publishing PerformancePoint to Extranet Users

by Rob 3. January 2010 00:35

Today's blog is about connecting Internet/Extranet users to a PerformancePoint solution that uses Kerberos delegation to pass end-user credentials through the application layers to back-end databases. This article is about how to do it in a way that doesn't require VPN deployment, is easy to use and convenient for end-users, and adds no additional burden on SharePoint administrators or DBAs.

What? Impossible you say?  Not at all.  In fact it can be relatively easy to implement without the commonly suggested security trap-doors.  The technique has really been around for quite a while, and it's accomplished through the use of a reverse-proxy solution such as Forefront TMG or ISA server (Forefront is the name of the latest version of the product formerly known as ISA Server).

The video below is an overview and demonstration of a working solution combining the following components.

1. Windows Server 2008 R2 x64
2. SharePoint Server 2010 (CTP)
3. PerformancePoint Services (part of SharePoint 2010)
4. SQL Server 2008 R2 (CTP)
5. Forefront TMG 2010

Note: You can view this video full screen by pressing the full screen button on the bottom toolbar. It's the second item from the right-hand side.

Tags: , , ,

Configuration | Security | SharePoint

BI Dashboard for the Transportation Industry - Demo

by Rob 4. August 2009 18:34

At BlueGranite we've been considering the best way to provide better visibility to all the great capabilities BI and Dashboards deliver.

More often than not, when I do an in-person demo of a dashboard solution, it's the first time the audience has seen this kind of solution before--except for maybe a screen print or a sketch.  Personally I don't think an interactive dashboard can be explained or even understood by seeing a screen print! 

 So, today I made a quick (5 minutes) demo and uploaded it to YouTube...kind of a test of whether this is a good format to share quick ideas and demos.  Afterall, there are only so many opportunities to visit in person, and who can be everywhere at once? (hopefully with the Internet, I can?)

The video below demonstrates a BI solution which is a reduced scope demo of a solution our firm implemented in the transportation (trucking) industry.  The technology is primarily SharePoint, PerformancePoint, SQL Server Analysis Services, Silverlight and Bing Maps.

 If you like this way of communicating/blogging for BI demonstration and best practice, let me know.  It takes more time than writing, but if it's useful then in my view it's worth the time.

 --Rob

Tags: , ,

PerformancePoint | Video

PerformancePoint Now included with SharePoint eCal

by keruibo 7. April 2009 14:05

I've been heavily involved in PerformancePoint implementations since the beginning of that product's lifecycle...our company has done many deployments for clients.  It's a great dashboarding technology, and I'm continually amazed how quickly we can put together compelling solutions with it.  The efficiency and elegance of the underlying design strikes a great balance between power and simplicity of use. 

 Recently Microsoft folded this product into SharePoint as part of the Enterprise CAL.  The net effect for eCal customers is a "free" enterprise-class BI platform; and for customers that would have invested in the BI platform anyway--all the benefits of eCal, including Business Data Catalog, Excel Services and so on.

Here's a Silverlight video going into some additional detail of the benefits of combining PerformancePoint's monitoring & analytics with SharePoint:

 

 

 

Tags: , , , ,

PerformancePoint

Data-driven Time filters in PerformancePoint M&A

by keruibo 2. June 2008 00:32

Recently I've been working on methods to display time filters in PerformancePoint M&A that are more user-friendly and efficient for users.  The conventional alternatives--Member Selection, Time Intelligence Post-Back and Time Intelligence Filter--have their strengths, and all of them are user friendly!  However I find that often the underlying data structure doesn't fit with the design of these filter tools.

The fundamental problem I seem to encounter most often is that the data in the average cube isn't "as of" the current system date and/or the [Time] dimension extends well beyond the last date/time used in the data set.  For example, a cube may be processed daily, and the [Last Order Date] is yesterday, but the [Time] dimension extends one year in the future (to support forecasting, perhaps).

So, if the last date of the data is Friday, and today is Monday, how can we make our [Time] dimension filter selection default to Friday?  For Time Intelligence, Day-1 in this scenario is Sunday...that's not what our uses expect!  We could just select the last day in the [Time] dimension using an MDX filter...except that often the [Time] dimension extends out in the future, and our users don't want to default to a future date!

What we really need is a way to fill our [Time] filter with valid members, and pre-select the most logical one.  This way our users will always see valid, sensible data upon loading the dashboard.  Unfortunately, as far as I've been able to determine, none of the built-in Filters will support the scenario outlined above without some intermediate/advanced MDX work. 

What we really need is a dynamic date selector that doesn't use the computer system clock, but rather uses knowledge of the data in our data source.  At our firm we've addressed this for clients in some cases by building in calculated members to our Time hierarchies, or with named sets.  This works OK, but it still hasn't completely solved the problem because it's still tough to control what the default selection is going to be.  So, in this article I'll explore another way I went about this using fairly straightforward MDX. 

Some people aren't that comfortable with MDX.  If you're one of them, don't worry too much, because the template outlined below is pretty simple and you can probably use it without fully undertanding what's happening under the hood.

To use this method, the following should be true:

  • The solution is based on a single Analysis Services data source (a cube).  If you have multiple data sources, you need to use the Time Intelligence filters.
  • The default measure in the cube is NULL for dates after the filter's desired "as of date"

The basic technique here is to use the MDX filter type in PerformancePoint, and tune the MDX to return exactly the members we want in the list.  Unfortunately there's no way to specify to the PerformancePoint MDX Filter which member should be the default (I don't know why, since the Member Selection filter type allows this..feature request anyone?).  So, we just have to make sure the first thing that's returned by the MDX query is what we want as a default. 

Let's implement two scenarios:

  1. A list of months, in descending order, with the last month for which there is data available first
  2. The current month, current quarter, and current year--again with "current" defined by the last [Time] periods that have data in the cube 

First, take a look at MDX statements that will return these member sets.  This is just plain MDX you can experiment with in any MDX front-end application, such as SQL Management Studio.

This first query returns a list of all Months in the [Time] hierarchy, and reverses the order so the last month is first. For example: {Dec-08, Nov-08, ..., Jan-08}

SELECT
NONEMPTY (Order([Time].[Time Hierarchy].[Month].AllMembers,
 RANK([Time].[Time Hierarchy].CurrentMember,
   [Time].[Time Hierarchy].[Month].AllMembers),
   BDESC)) ON COLUMNS
FROM [Sales Cube]

Using this query, we'll generate a filter that looks something like this:

 

This second query returns members from different levels--the last Month, Quarter and Year for which we have data.  For example: {May 08, Q2-08, 2008}

SELECT
{
 TAIL(NONEMPTY ([Time].[Time Hierarchy].[Month].AllMembers)).Item(0),
 TAIL(NONEMPTY ([Time].[Time Hierarchy].[Quarter].AllMembers)).Item(0),
 TAIL(NONEMPTY ([Time].[Time Hierarchy].[Year].AllMembers)).Item(0),
} ON COLUMNS
FROM [Sales Cube]

We'll use this query to generate a filter that looks something like this:

 

So how do these queries know where the fact data ends? Well, I've cheated actually. These queries work as presented because they will automatically intersect with whatever the default measure is within the cube, and any NULL tuples will be filtered out by the NONEMPTY keyword.  If your default measure doesn't align with what you consider the "data as of" date, you'll have a bit more MDX work to do...you need to add a specific measure to the MDX in that case (see the MDX documentation for a syntax diagram).

You'll need to tweak these queries to work with your own data, but your MDX should be pretty close to these examples.

With the queries tested, simply paste them into a standard PerformancePoint M&A MDX filter definition.  To do so, follow these steps:

  1. Create a new query, selecting the MDX Query filter template 

  2. In the Enter MDX Formula edit box, paste the contents of one of the above queries, leaving out the SELECT, ON COLUMNS and FROM clauses.

  3. Save the filter
  4. Add the filter to a dashboard, and use it as any other filter

Well, that's it!  The second example is especially flexible, as you can use just about any MDX you want to use to add new items to the list.  Just be certain that any member returned in the query is from the [Time].[Time Hierarchy]...if it's not, your filter targets probably won't know what to do with them and the solution won't work!

While this tutorial deals with a [Time] hierarchy, you can probably see that the same idea can be applied in other ways.  MDX has many powerful functions and methods you can leverage to make filter sets more intelligent--which is a great way to make our users' experience with BI solutions simpler and more intuitive. 

 

 

Tags: ,

PerformancePoint

Little a vs. Big A

by Rob 24. May 2008 10:13

When planning a deployment of PerformancePoint Monitoring & Analytics (PPS M&A), an often overlooked component in the business solution is the ProClarity Analytics Server (PAS) application layer.  

PAS is sometimes not deployed by customers, and their analysts aren't trained in the effective use of these analytical tools. In my view, this is often a mistake.  Analytics has at least two constituencies--and all need to be considered when planning a successful BI deployment.

A sales specialist I have a great deal of respect for, Mac Hussey, once explained it this way...this isn't a direct quote but my interpretation of his ideas: PerformancePoint server M&A's native scorecards, analytic grids & views cover "Little a" (lightweight analytics), while PAS covers "Big A" (heavy analytics). 

Two A's...so what's the difference? "Little a" is flashy, cool and as easy to use as a web page--often requiring no training beyond a quick overview.  In most industrial and service industries, perhaps 85% of BI dashboard users are executives, managers and line of business users.  These users don't use analytics in their primary job function, but use analytics to support their "real" jobs. 

Even in the long-run, they may only want/need "Little a". If your organization fits this mold, it may seem that reaping the low-hanging fruit using "Little a" is really where all the value lies--and that's certainly true at first. Eventually, though, the "Little a" users want to know root causes, and analysts really need to dig and develop further insights.  That's when "Big A" is needed (ProClarity Analytics). 

"Little a" is certainly a "low hanging fruit picker" and brings in quick ROI in for any BI dashboard deployment.  Yet time spent deploying and training on "Big A" is where the game-changing ROI comes from over the mid/long-term. Currently this means deploying an additional application (PAS) and training end-users.  

Eventually I'm sure we'll see ProClarity Analytics fully integrated into PerformancePoint, and the "ProClarity" product brand will be just a fond memory. When that happens, every user will have access to both the "Big a" and "Little a", even if--as with Excel's features--they only know how to use the most common analytical capabilities offered by the product.  Until then, Microsoft BI practitioners who address the needs of users in the "here and now" will need to continue to pay close attention to the spectrum of user needs when planning BI deployments.

Tags: , ,

Analytics | BI Strategy | PerformancePoint

Favorite Visualization #2 – The Performance Map (Heat Map)

by Rob 19. April 2008 20:31

In a related post I wrote about one of my favorite visualizations, the Decomposition Tree.  This time I'll write about one I like even more--the Heat Map (or in Microsoft terminology, the Performance Map).

As I said before, state-of-the art BI tools enable a level of exploration and data visualization beyond our wildest imagination when I started in BI 15 years ago. Heat Maps (Performance Maps) are becoming more and more popular in fields from molecular biology to news web sites.  In analyzing performance in a business or non-profit organization, Heat Maps are really fantastic!

Heat maps are especially useful because they show the relationship between two measurements at once, and make it easy to compare a large set of entities to each other to spot patterns and exceptions.  Using a heat map is simple if you know a few simple rules:

  1. The heat map has a rectangle for each member of a group being analyzed. For example, if a company has 100 products, the heat map would have 100 rectangles, one for each product.
  2. The size of a rectangle expresses the magnitude of the first metric compared to the others.  This metric is typically something like “Sales”, “Cost”, “Profit”, etc.
  3. The color of a rectangle expresses the magnitude of the second measurement, with one color implying “positive”, and a second color implying “negative”.  For example, Green=Profit, Red=Loss. This second measurement is often expressed a ratio or percentage.
  4. The heat map is organized so that the members with the largest rectangles are at the top-left; the smallest rectangles are at the bottom-right.
  5. The brighter the color, the more extreme the measure is.  For example, “Bright Green” = “Really Great!”; “Bright Red” = “Really Poor”. 

With that much introduction, the following heat map should be pretty easy to read.  In this Performance Map, the size of the rectangles are "Sales $", and the color is "Margin %".  At the top left is the biggest-selling product by "Sales $", the PEM1409436.

But it’s margin % isn’t the best or worst, but since it's green (not red), it's good. In the center of the map is the worst Margin %--it’s the bright red rectangle.  Just above that one is the product with the best margin % (bright green).

Performance map

The beauty of the map is that in 5-10 seconds you just reviewed the performance of almost 100 products, and focused on the problem areas, and their relative priority.  How long it would have taken to do all that in Excel?

Tags: , ,

Analytics | PerformancePoint

Favorite Visualization #1 – Decomposition Tree

by Rob 19. April 2008 20:08

Business Intelligence is a broad topic, spanning a set of technologies and business improvements spanning from enterprise reporting to analytics to performance management.  One of the more interesting areas is in data exploration and visualization.

State-of-the art BI tools enable a level of exploration and data visualization beyond our wildest imagination when I started in BI 15 years ago.  At that time, to achieve acceptable performance virtually everything deployed to a broad audience had to be pre-designed, and with only a limited amount of “ad-hoc” direction by the end-user. The value was still huge—pulling together multiple data sources into a cohesive reporting environment was a jump to light-speed (many companies are still trying to make that jump today).

One of my favorite data visualization tools is the Decomposition Tree.  I love the Decomp Tree because it’s super-intuitive…everyone “gets it” right away. 

The Decomp tree is powerful not just because it can “break down numbers”—we’ve been doing that with hyperlinks on reports for years.  The real power is that it allows users to select his/her own breakdown path, then easily explore that new path, tweak it, and cross-drill across dimension members.

Decomposition Tree

In the screen print above, we started with Geography and switched to fiscal year, then switched to product.  The Decomp tree makes it easy to let the user go in any direction in any order—all very easily. No need for the report designer to anticipate every permutation the user might need!

By delivering this type of visualization to users, everyone wins.  The users win—they get the information they need quickly. Information at your fingertips – delivered! For IT, tools like the Decomp Tree let users access information in the format they need it, rather than prompting yet another custom reporting request.

Tags: , ,

Analytics | PerformancePoint

Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

© Copyright 2010 Rob Kerr's BI Blog