This section describes the architecture for the SharePoint Portal Server dashboard site.
The dashboard factory (dashboard.asp) resides in the portal/resource folder in the workspace and is executed by the Microsoft Windows® 2000 Internet Information Services (IIS) Active Server Pages (ASP) engine. The dashboard factory relies on store.vbs, an abstraction layer between the dashboard factory and the underlying store, to implement a set of functions that load and save the dashboard from the store. Distributed Authoring and Versioning (DAV) Provider is used to communicate with the store.
The dashboard site virtual root, the entire workspace, resides in the default Web site on the server. It uses two important server objects, serverXMLHTTP and XMLDOM, for rendering the dashboards. The serverXMLHTTP object is used to access data from the store through IIS and DAV Provider as illustrated in the figure below. It is important that you use the serverXMLHTTP object on the server and not the XMLHTTP object. These objects are part of Microsoft's XML Implementation (MSXML3).
Figure 4: Dashboard Architecture
DAV Provider is an object used for sending queries to the store, in this case to Search index and Web Storage System. For more information about object and query architecture, see Content Crawling and Search Overview. This section focuses on the objects related to the dashboard factory.
The dashboard site makes extensive use of a component called the serverXMLHTTP object for data access. The object is used both in the dashboard framework and within the Web Parts to provide DAV access to the Web Storage System. It is used for all enumerations and dashboard site searches.
For example, the dashboard framework uses this object to enumerate all of the Web Parts that are displayed on a dashboard. When a query is issued, the search Web Parts use the object to execute the DAV query against the Search index and the Web Storage System. DAV then returns raw XML that is manipulated with XSL and displayed in the dashboard.
The serverXMLHTTP object is a new server-safe version of the existing XMLHTTP object. It was developed by Microsoft's XML and Internet Explorer Networking teams and is designed to run on a server and handle the heavy, multi-user load of a server application. It first shipped independently in MSXML3 (Microsoft's XML implementation).
The serverXMLHTTP object has its own proxy settings, which are stored in the registry. This must be configured correctly using the proxycfg.exe tool if the dashboard site is to make requests through a proxy server. For more information about configuring your proxy server, see SharePoint Portal Server Help Documentation.
XLMDOM first shipped with Internet Explorer 5.0. The XMLDOM is shorthand notation for a COM object that can load and parse XML text. After it is loaded and parsed, there are properties and methods of the COM object that let you manipulate the XML data and perform XSL transformations. The dashboard site uses the XMLDOM version from MSXML3.
The dashboard factory uses XMLDOM when rendering Web Parts.
Rendering a Dashboard Site
When a user navigates to the dashboard site with a browser, the forms registry redirects the request to dashboard.asp (dashboard factory). The dashboard.asp gets the list of parts in the folder as an XMLDOM from store.vbs. The ASP page loops through the parts defined in the XMLDOM and renders each Web Part. This process may include following links to content (using XMLHTTP), executing script, or performing XML/XSL transformations.
Within dashboard.asp, SharePoint Portal Server makes two rendering passes to give Web Parts the opportunity to run queries in parallel. This is accomplished using the Init() and GetContent() functions.
A Web Part can initialize itself by including the optional Init() function. This allows the dashboard to display all the Web Parts. In the second pass, the GetContent() function is called and each Web Part can retrieve their respective content.
The dashboard.asp builds the page output and inserts each part's HTML using a final XML/XSL transformation. For Internet Explorer 5.0 or higher, dbview_ie.xsl is used in the transformation. For all other browsers, dbview.xsl is used.
SharePoint Portal Server stores data by using a basic folder structure. A dashboard folder is created for each dashboard. Within each dashboard folder, you can have a collection of Web Parts and supporting Web Part folders. In addition, you can have additional dashboard folders that represent sub-dashboards. Each item in the store has a content-class property that specifies whether it is a dashboard or a Web Part. SharePoint Portal Server also contains a Resource folder that stores system information, such as definitions, forms registry entries, dashboard.asp, and style sheets.
The Resource folder is useful for obtaining general information on properties related to the system. Except for catalogs.xml and dashboardextensions.vbs, do not modify any of the other files in this folder, as this will cause problems with the server.
DashboardExtensions.vbs provides a place for you to include custom functions and global constants using a #include statement. This method allows you to share functionality within your custom Web Parts. When naming custom variables and functions, it is recommended that you include a unique prefix to avoid naming conflicts with system variables and functions.
SharePoint Portal Server makes extensive use of the forms registry when accessing dashboards and Web Parts. A forms registry entry specifies the relationship of a particular content-class to a specific ASP page. The specific ASP page defines how the content should be displayed. For more information about the forms registry, see Microsoft Exchange SDK.
For more information about dashboard factories, see Microsoft Digital Dashboard.