I get many questions about the usage, pervasiveness, and adaption of mobile BI applications. What's a mobile BI application? Beyond a simple delivery of alerts, URLs, or actual reports via email - functionality that has existed for years - here are a few newer approaches to deliver BI on a mobile device:
The no brainer. In theory any mobile device equipped with a browser can access web based, thin client, HTML only BI applications. Yes, these BI apps will be mostly static, not interactive reports and dashboards. Navigation (scrolling, zooming, etc) will be quite awkward. But, this approach indeed requires no additional effort to deploy.
Customization. The next step up is to render each (or all) reports and dashboards to a format suitable to any mobile device in terms of screen size, usage of screen real estate, and mobile device specific navigation instrumentation. A variation of this approach is to create device specific navigation controls (thumb wheel or thumb button for Blackberries, up/down/left/right arrows for Palms, gestural manipulation for iPhone, etc). This obviously requires more development effort, but still no additional software.
I'd like to drill into some more details on my BI SaaS blog from September 2009. A key critical point to "what differentiates one BI SaaS vendor from another" discussion is what really constitutes multi-tenant architecture. Here are some initiall thoughts to stimulate the discussion:
DBMS. There's got to be back end, DBMS architecture that allows for one of the following:
Automatically generate a separate DBMS instance for each client
Use same DBMS instance for multiple clients, but automatically generate a set of unique tables for each client
Use same DBMS instance and tables for multiple clients, but automatically assign unique keys to to each client so that they can only update and retrieve their own rows
Application. Similar functionality has to exist in the application tier:
Automatically connect to the appropriate, client specific DBMS instance, or
Automatically use views that only point to client specific tables, or
Append "where" clause to each SQL statement to only retrieve client specific rows