Intelligence Server Engines and Query Flow
Tue, 2011-09-27 10:58 MicroStrategy Administration
I would like to blog about various MicroStrategy engines available in I-Server. There are about 14 I-Server engines, each one is described below:
• Security Engine – manages user authentication and authorization
• Object Browsing Engine – presents the folder navigation of the BI applications
• Prompting Engine – manages the presentation and resolution of prompts
• Resolution Engine – interprets business definitions for efficient execution
• Command Engine – manages all engine capacities and job queues.
• Cache Management Engine – retrieves report data from caches and history lists
• Dynamic SQL Engine – generates optimized SQL for relational data sources
• Dynamic MDX Engine – generates optimized MDX for multi-dimensional cubes
• Freeform SQL Engine — bridges business definitions with relational data sources
• Query Engine – directs data retrieval from the data sources
• Analytical Engine – performs additional calculations, cross-tabbing, and subtotaling of results
• Formatting Engine – adds rich formatting and converts results to the required output format
• Monitoring Engine – displays and logs current Intelligence Server activity
• Scheduling Engine – gathers and runs reports attached to time and event schedules
The below diagram represents the intelligence server Query flow:
1. MicroStrategy Intelligence Server receives a logon request from any interface. The Security Engine authenticates the user, and allocates the appropriate authorization. If third-party authentication is used, 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. If 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 (not shown) to the data source is created via the Query Engine.
6. Once all required information is gathered for 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 applies 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 user interface.
13. The Formatting Engine applies all the report formats – fonts, colors, images, thresholds, alignment, size, bands, 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.