Architecture

MSTR Products

  1. MicroStrategy Intelligence Server receives a logon request from any interface. The Secutiry Engine authenticates the user and allocates the appropriate authorization. If third-party authentication is uses, the Security Engine receives authentication credentials from the third-party before providing the proper authorization information.

  2. The user navigates through the available applications, folders and business definitions to run a report. This activity is serviced by the Object Browsing Engine. The information is retrieved from the metadata repository or from caches via the Cache Management Engine.

  3. If the metadata information is not cached, a connection is made to the metadata repository to retrieve the required object definitions. These object definitions are cached in memory and managed by the Cache Management Engine.

  4. When the user runs a report, the information is handed over to the Resolution Engine for analysis. It the Cache Management Engine determines that a valid cache exists for this report, the cached result set is passed to the Analytic Engine and Formatting Engine before the final formatted report is sent to the user.

  5. If prompts are included, the Prompting Engine manages the user input, resolves the prompt answers and hands the information back to the Resolution Engine. Possible prompt answers are retrieved from cache if available. Otherwise, a connection to the data source is created via the Query Engine.

  6. Once all required information is gathered from query generation, the Dynamic SQL Engine generates the optimized SQL for the specific data source. For multi-dimensional cube data sources, the Dynamic MDX generates optimized MDX.

  7. The Dynamic SQL Engine hands the SQL to the Query Engine for execution against the data source.

  8. The query Engine connects to the relevant data source and runs the query. If a valid connection is cached, that connection is used to reduce overhead. Upon completion, the final report results are retrieved.

  9. If intermediate calculations are required that are not supported by the data source, intermediate data is transferred back to the Query Engine and handed over to Analytical Engine for processing.

  10. The intermediate results are returned to the data source to complete the query. Steps 9 and 10 can be repeated many times if necessary.

  11. The report results are handed over to the Analytical Engine, which performs additional calculations and applied cross-tabbing, page-by, and aggregation according to the report layout.

  12. The final result set is added to the report cache and indexed by the Cache Management Engine. Other nodes in a clustered environment are notified that this report cache is available. This result set is now available for any matching requests from any using interface.

  13. The formatting Engine applies all the report formats - fonts, colors, images, thresholds, alignment, size, brands and graphs - and converts the data into the required output type - XML, PDF, Excel, CSV and HTML. The XML is cached and available for all other Web users.

  14. The final formatted report is delivered to the user.