1. Field of the Invention
The present invention is related to web-based management interfaces and more particularly to a collaborative design system for designing web-based management interfaces.
2. Background Description
Increasingly, network based devices include a web-based management interface that provides users with information such as system status. Since the system status information may be changing, constantly, a typical such web interface application is designed to dynamically build and rebuild new web pages with every information change. The typical interface may provide web pages built from a collection of hypertext mark up language (HTML) files with placeholders in markup text for receiving and displaying dynamic input data. An executable code module can generate variable data, which another executable code module receives and combines with the HTML template files to produce complete HTML documents. The HTML documents are transferred to web-based clients using standard hypertext transport protocol (http) and displayed as web pages.
Typically, such an interface is a collaboratively designed by a number of groups with design responsibility for the HTML template files and executable code modules assigned to each of the groups. The development groups must maintain good communications during design. The executable code modules must designed to provide whatever variable data is necessary and in an acceptable format and, then, combine the data with the HTML template files in the correct placeholder locations to provide useful pages. Further, the web pages may include repeated item structures that are stored in system memory which must be locatable by the executable code modules. Frequent calls for those repeated structures can increase the size of the executable code, inefficiently using system resources and restricting HTML template file design, thereby impairing and/or impeding the coding effort. As a result, these design constraints may limit what tabular data can be incorporated into the final web pages or how many pages are available.
Thus, there is a need for an efficient collaborative design system for designing web-based management interfaces and for collecting variable data and passing collected data for display in web pages provided by the particular web-based management interface.
It is a purpose of the invention to control executable code module size growth;
It is another purpose of the invention to improve the tabular data handling efficiency of web-based management interfaces;
It is yet another purpose of the invention to maintain good communications between design groups designing parts of a web-based management interfaces;
It is yet another purpose of the invention to increase HTML template file and web page design flexibility when incorporating tabular data into the web pages;
It is yet another purpose of the invention to optimize storage of repeated item structures and facilitate the location of such structures by executable code modules to improve system resource efficiency and to allow a more dynamic coding effort.
The present invention relates to a data structure for repeated data items presented in tabular lists in a web based management interface, to a collaborative web based management interface design system and to a system and program product including the data structure. The data structure includes a page pointer table with links to repeatable data structures and corresponding page maps. The page maps have links to tabular lists in corresponding repeatable data structures. The page pointer table may be included in executable code modules generating variable data and generating web pages from the data. Adding web pages to the interface only increases the size of the executable code modules by the size of a repeatable data structure link, a map page link and a map page length indicator.
The foregoing and other objects, aspects and advantages will be better understood from the following detailed description of a preferred embodiment of the invention with reference to the drawings, in which:
Thereafter during operation, the data generation module 106 receives and formats raw system data and stores it, locally in data store 108. Once a request is placed for the data, e.g., selecting the web address for the particular HTML document, the page generation module 110 selects the appropriate HTML template 104 and retrieves the corresponding data from the local data store 108. Then, the page generation module 110 combines the data in data store 108 with the HTML templates 104 to create HTML documents 112 for display 114.
The development groups 102A, 102B and 102C must necessarily maintain good communications. The data generation module 106 must provide whatever variable data is necessary and in the proper format. The page generation module 110 must accept the variable data and combine it with the HTML template files 104 in the correct placeholder locations to generate useful pages. The pre-compiler 116 facilitates this communication, operating on the HTML template files 104 to extract the placeholder names and produce a C language source code file and a header file that may then be used in compiling the data and page generation modules 106, 110. Once design is complete, the compiler 118 and pre-compiler are no longer necessary and the final web-based management interface includes the data generation module 106 generating variable data and stored in input data store 108 and which the page generation module 110 combines appropriate HTML template files 104 to produce complete HTML documents 112 for display 114.
So, in this example, each tabular data list 146, 148, 150, 152, 154 has similar information organized into number of columns determined by the corresponding second entry 136L, 138L, 140L, 142L, 144L and a variable number of rows. The corresponding HTML template files 104 for this facility has placeholders embedded for each of the columns inside a pairing of start and end markers. For this simple example (i.e., N=5), the pre-allocated memory requirements places a significant constraint on the executable code. Each pair of entries 136P, 136L, 138P, 138L, 140P, 140L, 142P, 142L, 144P, 144L in this example requires six bytes in the code or 30 bytes for each page, even though many of the pages do not include tabular data lists. Since, typically, such an interface may exceed 200 pages, corresponding NULL/zero entry pair values are included, bloating data and page generation module 106, 110 by 6 Kbytes. Further, expanding the number lists (e.g., N=18) exacerbates this problem. For 213 pages, for example, increasing from 5 tabular data lists at 30 bytes per page to 18 at 108 further bloats the data and page generation module 106, 110 sizes from 6,390 bytes to 23,004 bytes.
Thus, instead of storing a pointer to the beginning of a tabular list for each repeated item structure and an integer to describe the structure's width, each page is described by an individual map 178, 180, which is a single data structure holding all of the information (offset pointers and column numbers) necessary to describe all of the repeated item structures on a given web page. Further, by storing the page maps 178, 180, e.g., with dynamic data in store 104, the page pointer table 162, which points to each map 178, 180, provides a much more efficient master data structure, requiring 36 bytes in the executable modules to describe the same structure described in
The pre-compiler conveniently and seamlessly adapts the same unmodified source code used for the executable modules from the data structure 120 of
Advantageously, because variable system data is structured to minimize the impact of adding tables and pages with tables on code used in generating the pages, teams can now work together of a project much more easily than was heretofore possible. Source code developers, teams 102B and 102C, no longer need make difficult and risky changes to the operation of their code just support page layout decisions made by team 102A. Page layout team 102A no longer needs to avoid making page layout changes because such changes are no longer met with resistance to such changes from code developer teams 102B and 102C. As a result, the teams 102A, 102B, 102C can dedicate most of their time working freely on that aspect of the system in which each is a specialist, creating a final system that is of higher quality than would have otherwise been produced.
While the invention has been described in terms of preferred embodiments, those skilled in the art will recognize that the invention can be practiced with modification within the spirit and scope of the appended claims.
The present invention is related to a U.S. patent application Ser. No. 09/852,959 entitled “System and Method for Improving The Performance of a Web Application by Building Only Requested Web Pages Only in A Requested Human Language” to Brewer et al., filed May 10, 2001, published Nov. 14, 2002 as Published Application No. 2002/0169802 and assigned to the assignee of the present invention.