This article describes a use case in which a sales manager consolidates data from her staff and then tailors that data into a personalized dashboard using IBM Mashup Center. IBM Mashup Center is an easy-to-use business mashup platform, supporting line-of-business assembly of dynamic situational applications. It combines the user-mashup capabilities from IBM Lotus® Mashups together with the information access and transformation capabilities of IBM InfoSphere MashupHub, into a tightly integrated, comprehensive mashup offering.
The example described in this article shows the strength and flexibility of Mashup Center’s functionality and illustrates the advantages of Web 2.0 concepts such as creating data feeds from spreadsheets. Currently, many business users spend too much time collecting, combining, consolidating, and distributing data when they use spreadsheets as their primary information distribution system. Turning spreadsheet data into data feeds allows the information to be easily used by enterprise mashups applications.
Jane, a sales manager, wants to consolidate data from her sales representatives and combine that data with external sources; she also wants to stop having to check her inbox for updated versions of spreadsheets sent to her. Currently, Jane asks each of her sales reps to send her a spreadsheet with current sales and pipeline (forecasted) sales from each of their customers. Jane takes those files and creates one consolidated spreadsheet file which she then sends back to her staff and to her executive manager.
Unfortunately, Jane is in the mist of "spreadsheet overload." For example, one sales rep tells her that new information was received from a customer, and thus a new spreadsheet was sent to her which should replace yesterday’s email with the spreadsheet attachment. Yesterday, Jane had already sent out an email to her staff and management team, so now she has to update her copy, and then send the updated copy back to her distribution list. Eventually, people end up with multiple emails in their inboxes, wondering which attached spreadsheet is supposed to be the "most up-to-date" and having to delete all of the older emails.
By using IBM Mashup Center, the manager is able to create an application which exposes the most recent revenue and pipeline forecast data and allows the manager to combine it with other external data sources.
Instead of each sales rep sending out the spreadsheet via email, each sales rep can simply create a data feed using IBM Mashup Center. InfoSphere MashupHub, the data catalog and feed generator component of the Mashup Center product, easily allows business users to expose Excel or other spreadsheet data as a feed. This step for the sales reps to load their spreadsheet data does not require programming or IT expertise. The rest of this article describes the one-time setup to consolidate and filter the information. Once the setup is complete, users of the data will see updates automatically!
In order to load revenue, forecast information, and create a MashupHub feed, the sales rep would need to follow these steps:
- Step 1 - Sales rep creates spreadsheet with sales information
- Step 2 - He or she goes to the MashupHub Web page and selects Create Feed
- Step 3 - The sales rep selects Excel Workbook from the Data Source Page
- Step 4 – Select header row number and select XLS file to upload. The Sales rep will then fill out a details page with a Feed Title (example: “Sales – John”) and feed description.
- Step 5 – An ATOM Feed is then created which reflects the sales data.
Figure 1 illustrates these steps. Notice that no programming is required of the sales rep.
Figure 1. MashupHub feed created from Spreadsheet
There is a video which illustrates these steps on the IBM Mashup Center wiki. Once the feed has been created within the MashupHub catalog, the sales reps would simply update the feed whenever necessary (only Step 4 would be needed in order to upload the updated spreadsheet). Anyone subscribed to the feed (such as Jane, the sales manager), would automatically see the changes within their mashup application.
After the sales team's feeds are available within MashupHub, Jane could consolidate or transform the feeds to however she would like to view the data. For example, she could use Mashup Feed Editor to create a new feed which consolidates all of her team's sales data and then filters the data based on certain parameters within the feed's URL.
Figure 2 shows an example feed mashup. Jane could use this feed mashup to combine sales data from three of her team members (Josh, Chris, and ED) and then filter the data based on either the state of the customer, amount of revenue, and/or by the assigned sales rep.
Figure 2. A feed which combines each sales rep reports
Let’s walk through the steps Jane took to create this new feed mashup.
First, Jane selects the data source for each of her sales reps. Jane puts 3 source operators onto the Mashup editor palette for each of her sales reps, John, Chris, and Ed as Figure 3 shows. She selects the From Catalog radio button and proceeds to press the Browse button to search the catalog.
Figure 3. Source operator added for each sales representative
Next, Jane selects the Combine operator which merges all data feeds into one data feed as Figure 4 illustrates. This operator amalgamates all the source inputs into a single view including all entries for each source. Jane wires each source plug into the combine operator.
Figure 4. Source operator added for each sales representative
Next, Jane wants to filter some data so she can view the database on sales rep, revenue, or location of the customer. IBM InfoSphere MashupHub easily allows a data feed with parameters to be created. First, a Filter operator which she names "State" is added onto the canvas for the location. Jane wires the Combine operator output to the State filter. Within the Input element side, Jane selects the data element (or text node) that would contain the State field as Figure 5 shows.
Figure 5. State input element selected within Filter operator
Now Jane wants to make this feed dynamic, so she selects the value as an input variable as Figure 6 illustrates.
Figure 6. Input variable
This selection prompts Jane to create a variable called State with a default value of * as Figure 7 shows.
Figure 7. Setting default values
Jane wants to have a feed in which she can specify the parameters for State and simply receive customers for that particular state (example: STATE=NY). However if she specifies STATE=*, she’d like to receive a list of all customers regardless of their location. In order to set * to essentially turn off the filter, simply change the condition from “All” to “Any” on the condition statement. Then add a new condition that tests if * is equal to the input variable. Figure 8 illustrates these steps.
Figure 8. Setting filter operator
Jane would create similar filters for Revenue and Sales Rep — each being wired together as shown above in Figure 5. The sales rep filter operation is shown in Figure 9. The Revenue would be based on a comparison of “>” where the default for the variable would be zero. The Sales Rep filter would be identical to that of the State Filter.
Figure 9. Sales rep filter operator
The last step is to select an ATOM feed for the Publish operator as Figure 10 shows.
Figure 10. Publish operator
The resulting combined feed would also have parameters to filter based on certain criteria. For example the feed URL would be http://myserver.test.com:9080/mashuphub/client/plugin/generate/entryid/71/pluginid/10?RevenueAtLeast=0&SalesRep=*&State=*
Now Jane can utilize this data feed within Lotus Mashups to create her own situational application. For example, a Manager’s dashboard could be created like the one shown in Figure 11. This example application only takes a few steps to build within Lotus Mashups and there is no programming required. Jane would first select an Input Box widget (which is available on Lotus Greenhouse) and add it to the Mashups palette. She then would edit the settings for the Input Box widget and specify the Combined Sales Data feed URL. Three input fields will appear within the widget which correspond to each of the 3 parameters within the feed URL (RevenueAtLeast, SalesRep, and State). Jane adds a Data Viewer widget to the Mashups palette and this widget is wired to receive data from the Input Box widget. Lastly, Jane adds a Web Site Displayer widget to the palette and is wired to receive the Website URL for the company that is selected within the Data Viewer widget. The mashup application is now complete and can be run anytime Jane needs status; this application will retrieve the most up-to-date sales information from her team.
Figure 11. Completed mashup application taking sales data and displaying associated Web site for selected company
If Jane wished to only see customers who were located in New York and with at least $35,700 in revenue, then all she has to do is specify the parameter values within the Input Box widget. The URL retrieved from the Data Viewer widget would be http://myserver.test.com:9080/mashuphub/client/plugin/generate/entryid/71/pluginid/10?RevenueAtLeast=35700&SalesRep=*&State=NY
An example output is shown in Figure 12.
Figure 12. Completed mashup application with filtered data
This example showed consolidating data from three sales reps. Imagine if Jane had 50 sales reps and had to manually consolidate their spreadsheet data! Initially it might seem a little complex to set up the operators to transform the feed into a combined feed with filters. However, once the mashup feed has been created, Jane would not need to edit the feed again. She would simply use her Mashup application to view the data. Data on her application is always current. No more sending spreadsheets around via email! This example shows how data can also be freed up from being stored on individual hard-drives and instead migrated under a common repository with the enterprise governance, structure, backup, and security that is needed for mission-critical data. This shared information can now be changed to fit your format, morphed, and migrated over corporate boundaries as data feeds, effectively turning the corporate Intranet into a loosely-coupled database.
Stop isolating your desktop information
This example illustrates a means to make your desktop data not be isolated. The data generated on the desktop usually stems from people wanting to work within a "sandbox" before they share their work, not trusting existing systems, or not having access to a formal solution or system.
Many would suggest that this system would be covered by a generic CRM solution. If you have heard the term sandbagging, then you likely will identify with the scenario that the Sales reps report what they feel they need to in order to avoid misinterpretation of pipeline. Where do they store their real synopsis? In many cases, the answer is that they store this information on their desktop.
It is also worth noting that in the above example, Ed, Chris, and John could have created their own pages from their own feeds. These feeds and pages can serve their own purposes to quickly validate assumptions and predictions. More importantly to the individual representative, within IBM Mashup Center each of the feeds and pages can be secured such that only they (or Jane if they wish) can see the page or feed. This enables them to maintain a sandbox for the feed and serve the request/demand that Jane has to roll-up revenue. Furthermore, you can create a Feed Mashup like someone else’s if you are working within a sales team; each member can quickly produce feeds specific to their needs from others' work. So, effectively, Ed could create a page like Jane for his own analysis which of course serves Jane very well as she has strengthened the team.
This scenario caters to a sales scenario, but there are many roles in a company that promote this type of behavior. This scenario could have been about rolling up workflow information where the nature of information may be different and criteria may be different, but the sources and team dynamic can be very similar. This approach to incorporating desktop information can be useful outside the scenario given. There are many tasks that a given role may include that fall outside standard applications giving way to the adhoc applications the business user tend to when there is no formal solution. Examples could include merger and acquisitions, competitive analysis, and the like. These applications and roles would benefit from improved data sharing as exemplified above.
IBM Mashup Center leverages the mashup model of Web 2.0 to enable organizations to rid themselves of email overload by easily turning data within spreadsheets into data feeds that can then be easily consumed by others. Much of the information used by Line of Business is outside the control of the IT department as it is often sitting in spreadsheets on user desktops. By using IBM Mashup Center, vital business information can be controlled, governed, and shared via a central feed repository.
Learn
- "Get started with InfoSphere
MashupHub" (developerWorks, June 2008): Learn about the architecture, tools, and
utilities of InfoSphere MashupHub, part of the IBM Mashup Center product. Then, explore a simple use-case scenario that showcases the different components and illustrates the advantages of using Web 2.0 concepts. This article is the first in a two-part series.
- " In-depth look at Feed Mashup Editor within IBM Mashup Center's InfoSphere MashupHub"
(developerWorks, July 2008): In Part 2 of this series, explore the InfoSphere MashupHub more deeply and extend the use-case scenario to showcase the different components and illustrate the advantages of using Web 2.0 concepts, such as data feeds and feed mashups in an enterprise.
- "Extend the reach of data for IBM Mashup Center" (August 2008):
Learn about extending IBM Mashup Center's InfoSphere MashupHub feed sources in Enterprise Mashups, and gain first-hand knowledge of how to do so using code samples.
- Check out the IBM Mashup Center wiki to get comprehensive information about the
IBM Mashup Center.
- Watch a video to view a demo of how the IBM Mashup Center can help you deal with spreadsheet
overload.
- developerWorks Information Management zone: Learn more about Information Management. Find technical documentation, how-to articles, education, downloads, product information, and more.
- Stay current with developerWorks technical events and webcasts.
Get products and technologies
- IBM Mashup Center: Find an easy to use business mashup solution, supporting line of business assembly of dynamic situational applications — with the management, security, and governance capabilities IT requires.
- Try IBM Mashup Center for
free by using the on-line trial version located at the Lotus Greenhouse web site.
- Build your next development
project with IBM trial software, available for download directly from developerWorks.
Discuss
- Participate in developerWorks blogs and get involved
in the developerWorks community.

John Feller is the manager of the IBM jStart Emerging Technologies development team. He manages a creative and energetic team of developers that architect, design, and develop innovative solutions focused on emerging internet software technologies. He is currently focused on Web 2.0 technologies such as mashups, mashup widgets, on-line communities, tagging, Wikis, Blogs, and other social networking technologies. The IBM jStart Emerging Technologies team has the mission of leveraging emerging technologies to solve real-world problems for real customers and clients. If you are interested in applying emerging technologies to solve real business needs today, visit the IBM jStart web site.

With more than fifteen years of industry experience, Chris Gruber, Technical Manager for Developer Initiatives, works with IBM Information Management on industry-leading Data Server products. Previously, Chris has worked as a Senior Product Manager for Sybase iAnywhere Solutions. He has worked very closely with engineering and development partners accelerating partners time to the market. He currently works at IBM Information Management as Product Manager in Web 2.0 product lines.





