MicroStrategy ONE
Block Infrastructure
Starting with version 9.x, MicroStrategy Web makes extensive use of Ajax techniques to implement certain features such as prompts, toolbars and menus. This has led to a fast and rich interactive experience while using MicroStrategy Web since Ajax uses asynchronous data transfer (HTTP requests) between the browser and the Web server based on a user action, allowing MicroStrategy Web to request small bits of information from the Web server instead of entire pages. The data is converted into changes to the MicroStrategy Web GUI, typically through the generation of HTML.
For example, when you click on a ribbon on a report in MicroStrategy Web, the data required for constructing and presenting the toolbar and a menu is retrieved in the background without interfering with the display and behavior of the Report Execution page.
To aid in this implementation of the Ajax technique, MicroStrategy Web introduced the Block Infrastructure. The Block Infrastructure represents the arbitrary hierarchical data structures by separating the structure of the data from how it is presented. A block represents a single "node" in this arbitrarily structured hierarchical tree that is defined by a set of name/value pairs. Each name/value pair is called a block property which has a type scalar (e.g. string, integer) or composite, that references other blocks and lists of blocks. Thus, a data structure or a block tree gets created when a "base" block connects to other blocks via properties.
The Block Infrastructure uses the Model-View-Controller architectural pattern to keep the business logic independent of the presentation logic. A block tree or a block is constructed by using server-side layout definition files in MicroStrategy Web. The Block Infrastructure defines a formal Renderer interface that allows this in-memory block tree to be converted into a serialized format. Block renderers for the most typical text formats such as JavaScript Object Notation (JSON) and XML are available in MicroStrategy Web.
The Web browser then parses the JavaScript and renders the block on the MicroStrategy Web GUI.