Oracle EPM Smart Space

Subscribe to Oracle EPM Smart Space feed
Updated: 3 weeks 2 days ago

Publishing Gadgets

Wed, 2008-01-23 11:24

In the world of Gadgets and Widgets getting a new gadget is as simple as downloading and installing one from a Gadget site, message board or blog. This is great for making a framework pervasive but would wreak havoc on the complex IT communities that implement EPM or BI solutions. Security is an obvious concern but also the idea of maintaining and understanding what users have installed becomes impossible in a scenario like this. When designing Smart Space we often argued this topic wanting to keep idea of gadgets open and pervasive while maintain control for customers. This is how the idea of Gadget publishing came to be.

Gadget publishing gives an administrator the ability to control what gadgets his or her users can download and install. It also allows the administrator to recommend gadgets to users giving administrators some assurance as to what gadgets are installed on a user desktop. Gadget publishing is done using the same technology we use to deploy and maintain the Smart Space client (often referred to as the framework); Click Once. Going into details on Click Once would warrant an additional post, so I will keep it short for now. Click Once helps to provide a safe and secure environment for users to download and install the gadgets while providing automatic updates. The gadgets are also digitally signed with a certificate so users will be assured of their safety when installing.

I am a simple guy so I will put this is simple terms. When Smart Space is installed in an environment the administrator essentially runs a 'store' where they will maintain an inventory of gadgets or other components. The users can go to this store and download from the 'stores' inventory with confidence.

Here is how it is done. The administrator will first have to install the Smart Space Administration Utility. This utility will probably only be installed by one or two people and does require administrative privileges to install. The installation files for this get laid down when the Smart Space server is installed and can be usually accessed from the following URL: http://[ServerName]:17080/SmartSpace/Installations/AdminUtility/Setup.msi. (For installation and setup help check out the Administrator's Guide for Smart Space) Once installed and configured you should be able to open the administration utility and get to the Sign & Publish tab.

From this tab you can do the following; publish or remove the framework (Smart Space client), publish or remove gadgets, download already published gadgets, sign gadgets, etc. Most of the time you are going to just sign and publish gadgets; but if this is a first time installation you will probably sign and publish the framework and the gadgets. In either case the process is the same but it is key to make sure the framework is properly published otherwise users will not be able to get any gadgets. The utility should be pretty self explanatory and there is plenty of help in the Administrator's guide but I will run through the steps for publishing a gadget.

  • From the Sign & Publish tab click Add.
  • Browse for a framework or gadget file to publish. (.SmartSpaceGadget or .SmartSpaceFramework)

    These files are compressed files with all the bits needed for the Click Once installations and deployments. An administrator will find the framework and default gadgets in the directory where they installed the Administration Utility (usually C:\Program Files\Oracle EPM\Oracle EPM Smart Space Administration Utility).
  • Once on the list from the action dropdown verify that it says Publish.
  • Click Apply.

This will move the gadget file to the server and place all the bits in the correct location so that users will see it as available to them in the Smart Space palette on their client.

To summarize, gadgets can be a great end user tool but in the world on enterprise software there needs to be some level of control.

Categories: Development

Sending A Message - Intro

Fri, 2008-01-18 09:57
One of the cool things about using Smart Space is that you immediately become a part of the community of Smart Space users. You get this for free because the Smart Space client has built in messaging capabilities.

This opens up a wealth of opportunities for one to communicate with other Smart Space users in both traditional and non-traditional ways.

With Smart Space, you can chat with one or more users using the Smart Space Discussion dialog or send a toast notification to one or more users. (A toast is that small message box that appears and then disappears in the lower right hand corner of your screen.) For example, one could discuss a financial report with another Smart Space user by simply using the Discussion dialog to send the user a link to the desired report.

A non-traditional way messaging is utilized by the Smart Space system is in the publishing of a Smart Space desktop to one or more users. Publishing is a topic for another day so I will not elaborate for now. But in a nutshell, if you think that you have a great desktop full of gadgets and content, you can “publish” this desktop to other Smart Space users using the messaging infrastructure built into Smart Space. Those users would get a message that a new desktop has been published and prompted to install it.

Another non-traditional use of messaging within Smart Space is to use the messaging API (both .NET and Java). I have successfully used the Smart Space Java messaging API to create an Essbase Custom Defined Function (CDF) that will send a message to any user from within an Essbase calculation script. This could be used to notify a set of users that a calculation has completed. It could also be used to send a message to a user that something in their data needs attention such as a variance or missing data.

The “Always On” nature of the Smart Space client is a fantastic benefit of having an analytic client installed on your desktop. With this messaging footprint, the sky is the limit when it comes to new possibilities for enhancing your BI/EPM experience.

Stay tuned for more on this subject…
Categories: Development

Build Your First Smart Space Gadget

Tue, 2008-01-15 13:44
Whenever I start a new development endeavor I almost always look to sample code to get started, and it is even better if it is a simple sample. So with that I will attempt to give you my version of a ‘Hello World’ sample for Smart Space gadgets. Changing things up a bit I will make this a notepad sample as this is pretty common in the Gadget/Widget world.

For this sample I am using Smart Space 9.3.1 and Visual Studio 2005 and will be writing my code in C# (sorry VB’ers). I have the Smart Space client installed on my machine and I have the Smart Space SDK Wizard installed. The SDK Wizard is what enables you to create gadget projects in Visual Studio. Let’s get started:

First launch Visual Studio and select New Project from the File menu. You will get the following new project dialog. In this dialog select the root node for the language you plan to develop in. Smart Space has templates for Visual C# or Visual Basic. Select the gadget template, type a name for your gadget solution and click the ‘OK’ button. Remember the project name will end up being the name of the gadget that your users will see, so select something easy like DeskNotes or Notes instead of something like gadget1.

Once you click OK the project will get created and you will be presented with the following dialog. From this dialog you simply need to give the gadget a namespace. This is used to identify the gadget in the xml file associated with the gadget. (currently named gadgets.xml)

Once you click finish on the dialog you can begin writing code or interacting with the project.
To keep this sample simple we are going to use the designer in Visual Studio to layout our gadget. For this sample, layout should be simple, all we really need is a textbox.

  1. In the project double click the user control named Gadget and you will be put in design mode.

  2. In the toolbox select the textbox control and add it to the user control.

  3. Edit the properties of the textbox to make it like work like a note pad. Here is what I changed:

    • Set Multiline to True
    • Set Dock to Fill
    • Set BackColor to Yellow
    • Set BorderStyle to None

  4. Resize the gadget to a starting size that you want when the user opens the gadget.

From here you can run your project to test it out and see your first gadget in action. Please take note that we have not written one line of code!

Now let’s add a bit of code to make this gadget more useful. For starters lets add menu items to change the color of the notes. You can add this code on almost any event for the gadget but I usually use the load event for the gadget user control.

//create the commands to be added to the default menu
ICommand commandYellow = CommandHelper.CreateCommand("Yellow", "Yellow", "Yellow");
ICommand commandBlue = CommandHelper.CreateCommand("Blue", "Blue", "Blue");

//add events for the commands
commandYellow.Executed += new EventHandler(commandYellow_Executed);
commandBlue.Executed += new EventHandler(commandBlue_Executed);

//add the commands to the default gadget menu

This will add two sub menus under the default gadget menu named Yellow and Blue. You can also add these to the toolbar with a slight variation in the code.

//add the commands to the gadget toolbar

All that needs to be added is the code to execute when the events are fired on these new commands. Here is a sample for one.

private void commandBlue_Executed(object sender, EventArgs e)
this.textBox1.BackColor = System.Drawing.Color.Blue;

Now the user can decide what color they want their note to be. Now there is one last thing to do to make this gadget really useable; save the text and color of the note so it will be restored when the user switches Smart Space desktops or restarts Smart Space. As a developer this is something you can handle on your own but is can get pretty tricky because of gadget and desktop instances in Smart Space. Because of this there are some methods and interfaces that will make this easy.

To do this start off with a new public structure with variables to store the settings, and you need to then create a local variable of that type.

public struct GadgetPreferences
public String noteText;
public Color noteColor;

private GadgetPreferences preferences;

When closing the gadget add code to save your preferences. This is usually done in the ‘stop’ event for the gadget but can be done at anytime.

public override void Stop()
preferences.noteText = this.textBox1.Text;
preferences.noteColor = this.textBox1.BackColor;

//save the preferences for the gadget

When loading the gadget you will want to restore these preferences if they exist. Again this can be done in many places but I usually do them in the load event for the gadget user control.

//get the preferences for the gadget
preferences = this.LoadGadgetPreferences();
this.textBox1.Text = preferences.noteText;
this.textBox1.BackColor = preferences.noteColor;

When loading the preferences you may need to account for the fact that the preferences are blank or null. I often have some if statements or try catch blocks to assist when loading the preferences.

Well there you have it, a fully functional notepad gadget. You may decide that you want to expand on the concept and allow for more colors, use a RichTextBox control, support various fonts, use images for the notes background, etc.

Categories: Development

Smart Space: What is it?

Fri, 2008-01-11 09:26
Smart Space is a radical departure from the traditional BI/EPM application. For years the BI/EPM market has been focused on providing more and more features. These features are added to backend services bringing us to the ‘system’ we have today. However most of these features are simply added to existing user interfaces. Over time these interfaces, though packed with features, have become difficult to use, underperforming and nearly impossible to customize. It seems that the market has shifted the focus away from analytic consumers toward the power users which is narrowing the reach of BI/EPM solutions.

With Smart Space, we have taken a completely new approach. It is simple and elegant. We leverage the power of the entire Windows client (including the browser) to deliver a rich end user experience leveraging the powerful back end EPM processes in place today. Very few are taking this approach today and it clearly differentiates Oracle from any other BI/EPM vendor.

So, let’s look at Smart Space in a little more detail…

Smart Space creates a BI/EPM environment within the Windows desktop. This is done by installing a small, lightweight engine that is tightly integrated with Windows. The installation uses a technology called ClickOnce which is simple with automatic update capabilities. Let’s face it, customers expect any client software to be easy to install and self maintaining.

Smart Space is then “Always On”, taking advantage of the power of the desktop with its ability to multitask. Because Smart Space is “Always On”, the user connects to the BI/EPM system one time and never has to connect again. This combination of a single login and being “Always On” is a perfect example of a simple enhancement that will make BI/EPM software much more useable and responsive.

Instead of creating one large application with hundreds of features, Smart Space breaks down an application into its functional pieces. These subsets of functionality are then presented to the user in the form of gadgets. The users are then free to choose the functionality they need and organize their gadgets according to their workflow.

Smart Space also enhances the analytical experience by introducing simple collaboration into the BI/EPM environment. The collaboration capabilities of Smart Space allow for “in context” discussions about the BI/EPM content that is both secure and auditable.

Smart Space will change the way people use BI/BPM software. Instead of using BI/BPM only when necessary, Smart Space allows a wide variety of knowledge workers to easily integrate this valuable BI/BPM information into their everyday desktops.
Categories: Development

Gadget/Widgets, What are They and Why Do I Need Them?

Thu, 2008-01-10 14:18

I hear these terms a lot now a days when talking about software, and just a year or so ago I would of thought a widget was a generic term for a product and a gadget was some new electronic device. Not anymore, these terms have quickly taken on new meaning and have a place in the world of delivering information. The bad thing about these terms is that everyone uses them a little different and there are already variations on the terms. So I am going to give you my take on these terms as I see if and how they apply to Business Intelligence (BI) & Enterprise Performance Management (EPM).

First let’s try and make things simple and assume that the terms Widget and Gadget are synonyms and understand that I usually use the term Gadget. So in this post when you see the word ‘gadget’ you can replace it with ‘widget’ in your head if you so desire. My simple explanation for why there are two terms is because more than one company decided to use these ‘things’ and they have decided to differentiate. Short explanation Apple used the term ‘Widgets’ so Microsoft decided to use the term ‘Gadgets’. So that brings us to the key players in the space, I am sure there are more but I see four key players on the consumer side of things.

These companies all have gadgets and the frameworks that run them but many of them have different variations. These variations fall into three general categories. Desktop, web, and mobile with each of the above companies playing in one or all of the three categories. Even with all of these variations I think I can sum up in general what the purpose of these things are:

Gadgets (or Widgets) are mini applications that expose key content (bits of data) or features generally from a larger (full) application and they deliver these features or data in a simple and visually pleasing manner.

Data (Weather) – The larger application is your weather person or, these people and sites have lots of great data points but all I really care about is current conditions and tomorrows conditions. I really don’t have a desire to understand how isobars or barometric pressure impacts the weather. Thus a gadget.

Feature (Play Music) – The larger applications are iTunes, WMP, Zune, Songbird, Music Match and many others, these are cool full applications packed with rich features but I just want to play a song or playlist most of the time. Thus the gadget.

You can apply this concept to almost any feature you use most often or data you look at on a regular basis. The variations of desktop, web or mobile do not really matter the definition holds in any case.

Now that we know what gadgets are lets think about if we need this new application class in our life. Here I think the answer is simple to arrive at. Just ask yourself if you have ever opened a program for a single feature or piece of information? If yes then explore the possibility that others are doing it. I doubt that very many people can say no to this question. I used to do it every morning before going on my runs. I would go to and look up the forecast for my zip code and filter through all the other features to get the temp so I could decide to how to dress for the run. Now I just glance at the gadget and I can tell if I need a hat or not.

So now we know what they are and we think that they have at least some utility but can we apply these concepts to BI and EPM? This is the very question among others we had to answer when we were creating Smart Space. We came to the conclusion that BI and EPM companies where building products and adding features based on the needs of their most active users. This makes for really good, feature rich applications that some user may find offer too much. So we starting playing with BI and EPM concepts and applying them to gadgets and it worked. Here is an example:

Reporting – Over the years we have found that many users look at the same reports over and over again. Maybe it is the monthly closing process and there is a ‘book’ of reports the accounting department reviews, or a sales representative is looking at pipeline data every day. This is the feature. The larger application would be the BI tool used to present this data or reports like Oracle Answers, Financial Reporting, or Publisher. So why not let the user pick the reports or report pieces that they feel are most useful for their tasks and have them always open and ready for them. Thus a gadget.

Smart Space Smart Book Gadget:

Because the concept was so easily applied we decided to make gadgets one of the many key features in Smart Space. The gadgets in Smart Space are complemented by a bunch of other great features that make the gadgets easy to use and lend to the overall user experience.

With Smart Space gadgets we decided to not use an existing gadget framework or engine for a number of reasons. Above I used the word ‘consumer’ when I talking about existing gadget frameworks or engines and this is because to date they have been focused on the mass market and have not applied the concept to businesses or business applications. For example they have lots of gadgets for weather, stock, fantasy football, cpu meters, and even countdown to the OC. The point is that these are great, I use them, my kids have used them, but they have not crossed over to business application and the needs of business. These special needs are what differentiates Smart Space gadgets from consumer gadgets. Some of the key needs are as follows.

Gadgets are just one part of the overall user experience and there are many other features needed to enhance or complement the gadgets. For example Smart Space has a top notch Windows shell integration that allows user to easily add BI and EPM content to their gadgets. This shell integration presents application content in an enterprise repository as if it were a flash drive. Consumer frameworks do not offer these features.

Deployment and control came up as a major issue and we spoke with customers. IT organizations managing a rollout of BI application do not want their users to just go and download gadgets. Also IT wants control over who develops the gadgets that the users can install. Administrators also told us that they need this framework to be able to install on restricted user desktops. With the consumer frameworks the control and deployment differences were show stoppers. Smart Space allows administrators to publish gadgets to a ‘gadget store’ for user to select from and the users can download and install the client and new gadgets with no administrative rights.

So in summary, whatever you call it, gadgets or widgets they are a key part of computing for the consumer space and this trend will continue to move into the business space. I challenge everyone to share thoughts and ideas on how you would apply these concepts to a business application.

Categories: Development