1. Technical Field
The present invention relates to data processing systems and, in particular, to user interfaces for performing multi-stepped processes. Still more particularly, the present invention provides a method, apparatus, and program for inline representation of steps in a multi-stepped process.
2. Description of Related Art
A user interface is a combination of windows, fields, and controls, which creates a way for a user to interact with a computer. A user interface may present information to be gathered to complete a given task, such as ordering merchandise online or setting the properties of a file. An example of a user interface is a dialog box, which is a movable window that is displayed on the screen in response to a user input. A dialog box may provide a current status and available options for a particular feature in a program, for example.
At times, a user must satisfy multiple steps to perform a given task. A wizard is a user interface that guides the user through a series of steps to accomplish a task. Typically, a wizard is a series of dialogs where a user completes a step by providing required information and selects a control, such as a “next” button to proceed to the next step.
Known solutions for representing complex multi-stepped processes generally provide a poor overview of the steps required. In the simple wizard solution, the user only knows the current step with no context. In other words, the preceding or remaining steps are typically not clearly communicated or represented at all. The user typically cannot revisit content that was available in earlier steps without losing the context of the current step or, even worse, losing work completed in the current step.
The present invention recognizes the disadvantages of the prior art and provides an improved user interface with inline representation of steps in a multi-stepped process. A task to be performed may belong to a set of tasks and consists of a series of steps. Each step of a given task is presented as a concise, but meaningful description. When a step is selected or “open,” the step content is displayed inline within the series of steps. This user interface with inline representation of steps in a multi-stepped process may be accomplished using a Java Server Page with a Struts framework and a Tiles framework.
The novel features believed characteristic of the invention are set forth in the appended claims. The invention itself, however, as well as a preferred mode of use, further objectives and advantages thereof, will best be understood by reference to the following detailed description of an illustrative embodiment when read in conjunction with the accompanying drawings, wherein:
With reference now to the figures,
In the depicted example, server 104 is connected to network 102 along with storage unit 106. In addition, clients 108, 110, and 112 are connected to network 102. These clients 108, 110, and 112 may be, for example, personal computers or network computers. In the depicted example, server 104 provides data, such as user interface pages and content to clients 108-112. Clients 108, 110, and 112 are clients to server 104. Network data processing system 100 may include additional servers, clients, and other devices not shown.
In accordance with a preferred embodiment of the present invention, a user of one of clients 108-112 may be performing a multi-stepped task or process. A user interface presenting a series of steps for the multi-stepped process may be presented on a display of the client device. According to a preferred embodiment of the present invention, the content of a step that is currently selected or “open,” is presented inline within the series of steps.
In an exemplary embodiment, server 104 may provide the user interface screens or “pages” to the client device. Server 104 may include a Java Server Page (JSP), which provides the user interface to the client as a HyperText Markup Language (HTML) page. JSP is an extension to the Java servlet technology from Sun Microsystems that provides a simple programming vehicle for displaying dynamic content on a Web page. The JSP is an HTML page with embedded Java source code that is executed in the Web server or application server. The HTML provides the page layout that will be returned to a Web browser of the client, and the Java provides the processing. The JSP can also call Enterprise JavaBeans (EJBs) for additional processing. JSPs are the Sun/Java counterpart to Microsoft's ASPs (Active Server Pages). A person of ordinary skill in the art will recognize that other techniques for presenting dynamic content, such as ASPs, may also be used within the scope of the present invention.
In the depicted example, network data processing system 100 is the Internet with network 102 representing a worldwide collection of networks and gateways that use the Transmission Control Protocol/Internet Protocol (TCP/IP) suite of protocols to communicate with one another. At the heart of the Internet is a backbone of high-speed data communication lines between major nodes or host computers, consisting of thousands of commercial, government, educational and other computer systems that route data and messages. Of course, network data processing system 100 also may be implemented as a number of different types of networks, such as for example, an intranet, a local area network (LAN), or a wide area network (WAN).
Referring to
Peripheral component interconnect (PCI) bus bridge 214 connected to I/O bus 212 provides an interface to PCI local bus 216. A number of modems may be connected to PCI local bus 216. Typical PCI bus implementations will support four PCI expansion slots or add-in connectors. Communications links to clients 108-112 in
Additional PCI bus bridges 222 and 224 provide interfaces for additional PCI local buses 226 and 228, from which additional modems or network adapters may be supported. In this manner, data processing system 200 allows connections to multiple network computers. A memory-mapped graphics adapter 230 and hard disk 232 may also be connected to I/O bus 212 as depicted, either directly or indirectly.
Those of ordinary skill in the art will appreciate that the hardware depicted in
The data processing system depicted in
With reference now to
In the depicted example, local area network (LAN) adapter 310, SCSI host bus adapter 312, and expansion bus interface 314 are connected to PCI local bus 306 by direct component connection. In contrast, audio adapter 316, graphics adapter 318, and audio/video adapter 319 are connected to PCI local bus 306 by add-in boards inserted into expansion slots. Expansion bus interface 314 provides a connection for a keyboard and mouse adapter 320, modem 322, and additional memory 324. Small computer system interface (SCSI) host bus adapter 312 provides a connection for hard disk drive 326, tape drive 328, and CD-ROM drive 330. Typical PCI local bus implementations will support three or four PCI expansion slots or add-in connectors.
An operating system runs on processor 302 and is used to coordinate and provide control of various components within data processing system 300 in
Those of ordinary skill in the art will appreciate that the hardware in
As another example, data processing system 300 may be a stand-alone system configured to be bootable without relying on some type of network communication interfaces As a further example, data processing system 300 may be a personal digital assistant (PDA) device, which is configured with ROM and/or flash ROM in order to provide non-volatile memory for storing operating system files and/or user-generated data.
The depicted example in
Client 410 may be a client device or a client application, such as a Web browser application. Similarly, server 420 may be a server device, such as server 104 in
In an exemplary embodiment of the present invention, server 420 includes Java Server Page 422, which is a HTML page with embedded Java source code that is executed in the server. The HTML provides the page layout that will be returned to the client and the Java code provides the processing. JSP 422 dynamically generates the user interface page to include a series of steps wherein a currently selected or open step is expanded and displayed inline within the series of steps.
Turning now to
Tiles is a framework that allows users to provide a consistent user interface. The Tiles framework allows users to display portions or “components” of content within a larger page of content, and to download and process just one section of the interface at a time, thus decreasing bandwidth needs. These content components, which are typically rectangular boxes of content, are reusable and may be used in recursive or nested fashion. Through a central XML file that defines the screens and sets of tags that can be embedded in JSP pages for the insertion of dynamic/static content, Tiles lets users build component views and assemble these views to form the interface pages.
Each time a user selects a task or step or completes a step of the process, client 430 makes a request to server 450 to update the user interface. In an exemplary embodiment, the request is an HTTP “get” request and the response is an HTML page to be presented to the user.
Client 430 may be a client device or a client application, such as a Web browser application. Similarly, server 450 may be a server device, such as server 104 in
In an exemplary embodiment, client 430 includes browser 432 through which the user views the user interface pages, selects tasks and steps, and interacts with the content of the steps to complete the process. Browser 432 issues a request, which is received by controller 452 in the server. Controller 452 then makes the decision where to send the request. With Struts, the controller is a command design pattern implemented as a servlet. Struts configuration file 460, which may typically be an XML file configures the controller.
The Tiles framework provides a template mechanism that allows the responsibilities of layout to be separated from those of content. The Tiles framework provides a superset of the template tag library of Struts, as well as many other features. Tiles supports tile and layout reuse. Tiles configuration file 470, which may be an XML file, provides definitions for the layout of the user interface pages.
Business logic 456 updates the state of the model and helps control the flow of the application. With Struts, this is done with an Action class as a thin wrapper to the actual business logic. Model 458 represents the state of the application. The business objects update the application state. An ActionForm bean may be provided in model 458 to represent the Model state at a session or request level and not at a persistent level. A backend (not shown) may be provided for persistent storage of the model state.
View 454 may simply be a JSP file. The JSP file may read information from model 458 using JSP tags. View 454 dynamically generates response pages and returns them to browser 432. In accordance with a preferred embodiment of the present invention, the contents of a current step are presented inline within the series of steps for a task. Therefore, when a user at client 430 selects a step in the user interface, server 450 dynamically generates a new user interface page wherein the selected step is presented in a tile within the context of the series of steps.
The user interface includes a navigation tile 510 and a task tile 520. Navigation tile 510 may present a set of tasks to be performed. Task tile 520 may present a series of steps to be performed for a current task. In accordance with a preferred embodiment of the present invention, the contents of a current step, such as step 1522 in
Navigation tile 610 presents a set of tasks to be performed. For example, the set of tasks includes a plurality of server tasks, a plurality of applications tasks, a plurality of resources tasks, and so on. The set of applications tasks is expanded to show an “Enterprise Applications” task and an “Install Application” task. In the depicted example, “Install New Application” task 612 is selected.
Task tile 620 presents a series of steps for the task selected in the navigation tile. A current step, step 1622, is open and presented within the context of remaining steps 624. Step 1622 is presented as a tile, which may include text, tables, checkboxes, text input fields, buttons, and the like. The user may enter information for the step using the user input controls in the step tile.
When the user is finished entering information for the step, the user may select the “Next” button to proceed to the next step. The user may also select the “Cancel” button to return to a previous step or the list of steps. In addition, the steps in the series of steps 624 may be selected to proceed directly to another step. Therefore, the user may easily navigate the series of steps and enter information for a given step while still viewing the context of the series of steps.
In the example shown in
When the user is finished entering information for the step, the user may select the “Next” button to proceed to the next step. The user may also select the “Cancel” button to return to a previous step or the list of steps. The user may select the “Previous” button to return to the previous step. For example, pressing the “Previous” button in
Default bindings and mappings generation may supplement missing data in the required steps. When this happens, no other user input may be required other than to jump to the last step and finish the task. Required steps with incomplete data may be shown with an asterisk or other indicator, such as indicator 654, so that the user can easily discern the steps that must be completed before finishing the task. Thus, the user may complete each and every step in succession to provide detailed input for the task or simply proceed to the required steps to more quickly complete the task.
If a task is selected in step 706, the process identifies the task selected in the navigation tile (step 712) and retrieves a task tile for the selected task (step 714). A determination is made as to whether a step is selected in the task tile (step 716). A step may be selected as a default step when the task tile is first presented. For example, the first step may be selected by default. In an alternative embodiment, no step may be selected when the task tile is first presented. A given step may be explicitly selected by a user from the navigation tile or may be selected by selecting a “Next” or “Previous” button or control in a step tile. If no step is selected, the process builds the response page with the series of steps being presented in the task tile (step 708) and returns the response page to the client (step 710). Thereafter, the process ends.
If a step is selected in step 716, the process identifies a current step in the task (step 718) and retrieves a step tile for the current step (step 720). Then, the process builds the response page with the current step displayed inline in the task tile (step 708). The process then returns the response page to the client (step 710) and ends.
Thus, the present invention solves the disadvantages of the prior art by providing an improved user interface with inline representation of steps in a multi-stepped process. A task to be performed may belong to a set of tasks and consists of a series of steps. Each step of a given task is presented as a concise, but meaningful description. When a step is selected or “open,” the step content is displayed inline within the series of steps. This user interface with inline representation of steps in a multi-stepped process may be accomplished using a Java Server Page with a Struts framework and a Tiles framework.
It is important to note that while the present invention has been described in the context of a fully functioning data processing system, those of ordinary skill in the art will appreciate that the processes of the present invention are capable of being distributed in the form of a computer readable medium of instructions and a variety of forms and that the present invention applies equally regardless of the particular type of signal bearing media actually used to carry out the distribution. Examples of computer readable media include recordable-type media, such as a floppy disk, a hard disk drive, a RAM, CD-ROMs, DVD-ROMs, and transmission-type media, such as digital and analog communications links, wired or wireless communications links using transmission forms, such as, for example, radio frequency and light wave transmissions. The computer readable media may take the form of coded formats that are decoded for actual use in a particular data processing system.
The description of the present invention has been presented for purposes of illustration and description, and is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art. The embodiment was chosen and described in order to best explain the principles of the invention, the practical application, and to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated.