METHODS AND SYSTEMS OF SPIRAL NAVIGATION

Methods and systems of navigating through process steps of a guided procedure are described. A plurality of process step identifiers may be caused to be displayed in a spiral formation in a graphical user interface of a device. Each process step identifier may identify a corresponding process step of a guided procedure. The process step identifiers may be displayed in positions along the spiral formation that reflect an order of their corresponding process steps in the guided procedure. User input may be received for one of the process steps of the guided procedure using the process step identifier that corresponds to the one of the process steps for which the user input is received. The plurality of process step identifiers may be caused to be rotated within the graphical user interface of the device.

TECHNICAL FIELD

The present application relates generally to the technical field of data processing, and, in various embodiments, to methods and systems of navigating through process steps of a guided procedure.

BACKGROUND

Current user interface navigation techniques suffer from several deficiencies. Such deficiencies include failing to consider or present a process flow of a guided procedure, failing to provide an overview of all of the stages of a guided procedure, poor visualization, and an excessive consumption of space.

DETAILED DESCRIPTION

Example methods and systems of navigating through process steps of a guided procedure are described. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of example embodiments. It will be evident, however, to one skilled in the art that the present embodiments may be practiced without these specific details.

The spiral navigation techniques of the present disclosure provide a more usable navigation experience, with improved look, feel, and guidance for the user. The spiral navigation techniques also provide an efficient use of space.

In some embodiments, a method may comprise causing, by a machine having a memory and a processor, a plurality of process step identifiers to be displayed in a spiral formation in a graphical user interface of a device. Each process step identifier may identify a corresponding process step of a guided procedure. The process step identifiers may be displayed in positions along the spiral formation that reflect an order of their corresponding process steps in the guided procedure. User input may be received for one of the process steps of the guided procedure using the process step identifier that corresponds to the one of the process steps for which the user input is received. The plurality of process step identifiers may be caused to be rotated within the graphical user interface of the device.

In some embodiments, the plurality of process step identifiers may comprise a corresponding process step identifier for every process step in the guided procedure that requires user input in order for the guided procedure to be completed. In some embodiments, the process step identifiers may be connected by at least one graphical element forming a spiral path.

In some embodiments, the method may further comprise adjusting the corresponding process step identifier to include an indication of the received user input for the one of the process steps. In some embodiments, the indication may comprise a summary of the received user input. In some embodiments, the method may further comprise causing an indication of the received user input for the one of the process steps to be displayed in a central location around which the spiral formation of the process step identifiers is disposed.

In some embodiments, receiving user input for one of the process steps may comprise: receiving a user selection of the process step identifier corresponding to the one of the process steps; causing a user interface element to be displayed, wherein the user interface element is separate from the corresponding process step identifier and is configured to receive user input for the one of the process steps; and receiving the user input via the user interface element. In some embodiments, the user interface element may be displayed on a separate page as the corresponding process step identifier. In some embodiments, receiving user input for one of the process steps may comprise receiving the user input via a user interface element integrated into the corresponding process step identifier.

In some embodiments, the plurality of process step identifiers may be caused to be rotated in response to a rotation indication from the user, the rotation indication may indicate a desire to rotate the plurality of process step identifiers. In some embodiments, each process step identifier may comprise a card.

In some embodiments, a system may comprise a machine and a spiral navigation module on the machine. The machine may have a memory and at least one processor. The spiral navigation module may be configured to cause a plurality of process step identifiers to be displayed in a spiral formation in a graphical user interface of a device. Each process step identifier may identify a corresponding process step of a guided procedure. The process step identifiers may be displayed in positions along the spiral formation that reflect an order of their corresponding process steps in the guided procedure. The spiral navigation module may be further configured to receive user input for one of the process steps of the guided procedure using the process step identifier that corresponds to the one of the process steps for which the user input is received, and cause the plurality of process step identifiers to be rotated within the graphical user interface of the device.

In some embodiments, the plurality of process step identifiers may comprise a corresponding process step identifier for every process step in the guided procedure that requires user input in order for the guided procedure to be completed. In some embodiments, the process step identifiers may be connected by at least one graphical element forming a spiral path.

In some embodiments, the spiral navigation module may be further configured to adjust the corresponding process step identifier to include an indication of the received user input for the one of the process steps. In some embodiments, the indication may comprise a summary of the received user input. In some embodiments, the spiral navigation module may be further configured to cause an indication of the received user input for the one of the process steps to be displayed in a central location around which the spiral formation of the process step identifiers is disposed.

In some embodiments, the spiral navigation module may be further configured to: receive a user selection of the process step identifier corresponding to the one of the process steps; cause a user interface element to be displayed, wherein the user interface element is separate from the corresponding process step identifier and is configured to receive user input for the one of the process steps; and receive the user input via the user interface element. In some embodiments, the spiral navigation module may be configured to cause the user interface element to be displayed on a separate page as the corresponding process step identifier. In some embodiments, the spiral navigation module may be further configured to receive the user input for one of the process steps via a user interface element integrated into the corresponding process step identifier.

In some embodiments, the plurality of process step identifiers may be caused to be rotated in response to a rotation indication from the user, the rotation indication may indicate a desire to rotate the plurality of process step identifiers. In some embodiments, each process step identifier may comprise a card.

In some embodiments, a non-transitory machine-readable storage device may store a set of instructions that, when executed by at least one processor, causes the at least one processor to perform the operations and method steps discussed within the present disclosure.

FIG. 1is a network diagram illustrating a client-server system, in accordance with an example embodiment. A platform (e.g., machines and software), in the example form of an enterprise application platform112, provides server-side functionality, via a network114(e.g., the Internet) to one or more clients.FIG. 1illustrates, for example, a client machine116with programmatic client118(e.g., a browser, such as the INTERNET EXPLORER browser developed by Microsoft Corporation of Redmond, Wash. State), a small device client machine122with a small device web client120(e.g., a browser without a script engine), and a client/server machine117with a programmatic client119.

Turning specifically to the example enterprise application platform112, web servers124and Application Program Interface (API) servers125may be coupled to, and provide web and programmatic interfaces to, application servers126. The application servers126may be, in turn, coupled to one or more database servers128that facilitate access to one or more databases130. The web servers124, Application Program Interface (API) servers125, application servers126, and database servers128may host cross-functional services132. The application servers126may further host domain applications134.

The cross-functional services132provide services to users and processes that utilize the enterprise application platform112. For instance, the cross-functional services132may provide portal services (e.g., web services), database services, and connectivity to the domain applications134for users that operate the client machine116, the client/server machine117and the small device client machine122. In addition, the cross-functional services132may provide an environment for delivering enhancements to existing applications and for integrating third-party and legacy applications with existing cross-functional services132and domain applications134. Further, while the system100shown inFIG. 1employs a client-server architecture, the embodiments of the present disclosure are, of course, not limited to such an architecture, and could equally well find application in a distributed, or peer-to-peer, architecture system.

FIG. 2is a block diagram illustrating enterprise applications and services in an enterprise application platform112, in accordance with an example embodiment. The enterprise application platform112includes cross-functional services132and domain applications134. The cross-functional services132may include portal modules140, relational database modules142, connector and messaging modules144, Application Program Interface (API) modules146, and development modules148.

The portal modules140may enable a single point of access to other cross-functional services132and domain applications134for the client machine116, the small device client machine122and the client/server machine117. The portal modules140may be utilized to process, author, and maintain web pages that present content (e.g., user interface elements and navigational controls) to the user. In addition, the portal modules140may enable user roles, a construct that associates a role with a specialized environment that is utilized by a user to execute tasks, utilize services, and exchange information with other users and within a defined scope. For example, the role may determine the content that is available to the user and the activities that the user may perform. The portal modules140include a generation module, a communication module, a receiving module, and a regenerating module. In addition, the portal modules140may comply with web services standards and/or utilize a variety of Internet technologies including Java, J2EE, SAP's Advanced Business Application Programming Language (ABAP) and Web Dynpro, XML, JCA, JAAS, X.509, LDAP, WSDL, WSRR, SOAP, UDDI and Microsoft .NET.

The relational database modules142may provide support services for access to the database(s)130, which includes a user interface library136. The relational database modules142may provide support for object relational mapping, database independence, and distributed computing. The relational database modules142may be utilized to add, delete, update, and manage database elements. In addition, the relational database modules142may comply with database standards and/or utilize a variety of database technologies including SQL, SQLDBC, Oracle, MySQL, Unicode, JDBC.

The connector and messaging modules144may enable communication across different types of messaging systems that are utilized by the cross-functional services132and the domain applications134by providing a common messaging application processing interface. The connector and messaging modules144may enable asynchronous communication on the enterprise application platform112.

The Application Program Interface (API) modules146may enable the development of service-based applications by exposing an interface to existing and new applications as services. Repositories may be included in the platform as a central place to find available services when building applications.

The development modules148may provide a development environment for the addition, integration, updating, and extension of software components on the enterprise application platform112without impacting existing cross-functional services132and domain applications134.

Turning to the domain applications134, the customer relationship management application150may enable access to and may facilitate collecting and storing of relevant personalized information from multiple data sources and business processes. Enterprise personnel that are tasked with developing a buyer into a long-term customer may utilize the customer relationship management applications150to provide assistance to the buyer throughout a customer engagement cycle.

Enterprise personnel may utilize the financial applications152and business processes to track and control financial transactions within the enterprise application platform112. The financial applications152may facilitate the execution of operational, analytical, and collaborative tasks that are associated with financial management. Specifically, the financial applications152may enable the performance of tasks related to financial accountability, planning, forecasting, and managing the cost of finance.

The human resource applications154may be utilized by enterprise personnel and business processes to manage, deploy, and track enterprise personnel. Specifically, the human resource applications154may enable the analysis of human resource issues and facilitate human resource decisions based on real time information.

The product life cycle management applications156may enable the management of a product throughout the life cycle of the product. For example, the product life cycle management applications156may enable collaborative engineering, custom product development, project management, asset management, and quality management among business partners.

The supply chain management applications158may enable monitoring of performances that are observed in supply chains. The supply chain management applications158may facilitate adherence to production plans and on-time delivery of products and services.

The third-party applications160, as well as legacy applications162, may be integrated with domain applications134and utilize cross-functional services132on the enterprise application platform112.

FIG. 3is a block diagram illustrating a spiral navigation system300, in accordance with an example embodiment. In some embodiments, the spiral navigation system300may comprise a spiral navigation module320, which may reside on a machine having a memory and at least one processor (not shown). In some embodiments, the spiral navigation module320may be incorporated into the enterprise application platform112inFIG. 1(e.g., on application server(s)126). However, it is contemplated that other configurations are also within the scope of the present disclosure.

In some embodiments, the spiral navigation module320may be configured to provide a spiral navigation experience to a user310on a device (e.g., any of machines116,117, and122inFIG. 1). In some embodiments, the user310may communicate with the spiral navigation module320via a network (e.g., network114inFIG. 1). In some embodiments, the user310may communicate with the spiral navigation module320without the use of a network, such as if the spiral navigation module320resides on the device of the user310.

In some embodiments, the spiral navigation module320may access, retrieve information from, and otherwise communicate with one or more databases330(e.g., database(s)130inFIG. 1). Database(s)330may provide and/or store any data generated or required by any functions being performed by the spiral navigation module320.

FIGS. 4A-4Killustrate a graphical user interface400at different stages of spiral navigation, in accordance with example embodiments. In some embodiments, the spiral navigation module320may be configured to cause a plurality of process step identifiers410a,410b,410c, and410dto be displayed in a spiral formation in the graphical user interface400. In some embodiments, each process step identifier410a-410dmay comprise a card. However, it is contemplated that other forms of the process step identifiers410a-410dare also within the scope of the present disclosure.

Each process step identifier410a-410dmay identify a corresponding process step of a guided procedure. Such identification may be achieved in a variety of ways. In some embodiments, the process step identifiers410a-410dmay comprise descriptive text412a-412d, respectively, providing an indication of the corresponding process step in the guided procedure. In some embodiments, the process step identifiers410a-410dmay comprise graphical objects414a-414d, respectively, providing an indication of the corresponding process step.

The process step identifiers410a-410dmay be displayed in positions along the spiral formation that reflect an order of their corresponding process steps in the guided procedure. Whichever process step identifier410a-401dthat corresponds to the current step in the guided procedure may be displayed as being in the forefront (e.g., it may appear closer to the user than any of the other process step identifiers), or otherwise prominently displayed in a fashion that makes it the focus of the user310. In some embodiments, the process step identifiers may be connected by at least one graphical element forming a spiral path420. It is contemplated that the spiral path420may be formed from a continuous graphical element, a segmented graphical element, and multiple graphical elements, as well as other graphical element configurations not explicitly disclosed herein.

In some embodiments, the plurality of process step identifiers410a-410dmay comprise a corresponding process step identifier for every process step in the guided procedure that requires user input in order for the guided procedure to be completed. However, it is contemplated that some process step identifiers may correspond to process steps that do not require user input in order for the guided procedure to be completed. For example, a process step identifier410dmay correspond to a process step that shows results of the guided procedure, without any need for user input for that process step.

A guided procedure may be any procedure that guides a user310through its steps from beginning to end, providing the user310with the ability to provide input along the way that is necessary for completion of the procedural goal. One example of a guided procedure may be an e-commerce checkout procedure for purchasing an item, which may include steps of selecting one or more items to buy, providing payment information, providing a billing address, providing a shipping address, selecting shipping options, and confirming the purchase of the item(s). It is contemplated that other types of guided procedures are also within the scope of the present disclosure.

The spiral navigation module320may be configured to receive user input for the process steps of the guided procedure using the corresponding process step identifiers410a-410d. In some embodiments, the spiral navigation module320may be configured to receive a user selection of one of the process step identifiers410a-410dcorresponding to the one of the process steps. For example, the user310may click, tap, or otherwise select one of the process step identifiers410a-410d. In response to the selection of one of the process step identifiers410a-410dby the user310, the spiral navigation module320may cause a user interface element to be displayed. In some embodiments, the user interface element may be separate from the corresponding process step identifier410a-410d. In some embodiments, the user interface element may be integrated into the corresponding process step identifier410a-410d.

Referring to the example provided inFIG. 4A, the guided procedure may comprise four steps: (1) selection of applications (corresponding to process step identifier410alabeled “Apps”); (2) selection of infrastructure (corresponding to process step identifier410blabeled “Infrastructure”); (3) selection of services (corresponding to process step identifier410clabeled “Services”); and (4) viewing of the results of the selections of the first three steps (corresponding to process step identifier410dlabeled “Results”). The corresponding process step identifiers410a-410dof these four steps are positioned along the spiral path420in positions that reflect their order in the guided procedure. Accordingly, process step identifier410a, which corresponds to the selection of applications, is positioned at the beginning of the spiral path420.

In response to the user310selecting process step identifier410a, the spiral navigation module320may present the user310with one or more user interface elements in order to enable the user310to select applications for the corresponding process step. These user interface elements may be presented to the user310as being separated from the process step identifier410a. In some embodiments, these user interface elements may be displayed on a separate page as the process step identifier410a. InFIG. 4B, an example is provided of the user interface elements being displayed on a separate page as the process step identifier410a. Here, the user310may select any of the applications440alisted on the left side of the user interface400to view details about them, and then select a “Select” button442ain order to confirm the selection of the application currently being viewed. In the example provided inFIG. 4B, The user310has selected “Sales for CRM” and “E-Mail Marketing Solutions” as the applications for this step of the guided procedure, as reflected by the check marks next to these applications on the left side of the user interface400.

In some embodiments, the spiral navigation module320may be further configured to adjust the corresponding process step identifier410a-410dto include an indication of the received user input for the corresponding process step. In some embodiments, the indication may comprise a summary of the received user input. For example, inFIG. 4C, in response to the user310selecting the applications inFIG. 4B, the spiral navigation module320may adjust process step identifier410ato include an indication445aof the selection of these applications (“Sales for CRM” and “E-Mail Marketing Solutions”).

In some embodiments, the spiral navigation module320may be configured to enable the user310to provide user input for a process step by using a user interface element integrated into the corresponding process step identifier.FIG. 5illustrates a graphical user interface400in which a user interface element510is integrated into process step identifier410ato receive user input, in accordance with example embodiments. In this example, the user310may provide input for the process step without leaving the page on which the spiral formation of process step identifiers410a-410dis being displayed. For example, the user310may select one or more applications for this process step directly from process step identifier410a. User interface element510may include, but is not limited to, text boxes, selectable buttons, drop-down lists, check boxes, and sliders. It is contemplated that other user interface elements are also within the scope of the present disclosure.

The spiral navigation module320may be configured to cause the plurality of process step identifiers410a-410dto be rotated within the graphical user interface400of the device. For example, inFIG. 4D, the process step identifiers410a-410dhave been rotated, with process step identifier410bbeing brought to the forefront and process step identifier410amoving away from the forefront. In some embodiments, the plurality of process step identifiers may be caused to be rotated in response to a rotation indication from the user310. The rotation indication may indicate a desire to rotate the plurality of process step identifiers410a-410d. For example, the user310may swipe the screen of the device in a direction of the desired rotation. It is contemplated that other rotation indications are also within the scope of the present disclosure. In some embodiments, the spiral navigation module320may automatically cause the process step identifiers410a-410dto rotate in response to the user310providing user input for a process step (e.g., if the required input for the process step has been received).

The spiral formation of process step identifiers410a-410dmay be disposed around a central location. In some embodiments, a central graphical object430may be displayed in this central location. This central graphical object430may comprise a circular shape, thereby helping the user310visualize the rotation of the process step identifiers410a-410d. However, it is contemplated that other forms and shapes of the central graphical object430are also within the scope of the present disclosure. In some embodiments, the central graphical object430may comprise a logo435of a company.

In some embodiments, the spiral navigation module320may be configured to cause an indication of the received user input for the one of the process steps to be displayed in the central location around which the spiral formation of the process step identifiers410a-410dis disposed.FIG. 6illustrates a graphical user interface400in which an indication645aof received user input for a process step is displayed in a central location630around which the spiral formation of the process step identifiers is disposed, in accordance with example embodiments. This indication645aof received user input may be displayed in addition to or as an alternative to the indications445a-445cof user input on the process step identifiers410a-410c, respectively.

The display of indications of received user input in a central location around which the process step identifiers410a-410drotate may help provide the user310with an overview of the results of the guided procedure. For example, in a scenario where the guided procedure is selecting options for an automobile, as the user310provides input at each process step, this input may be reflected in the central location. For example, as a result of the user310selecting a make and model for the automobile (e.g., Audi A4) in the first step, the body of the automobile may be displayed in the central location. As a result of the user310selecting an exterior color (e.g., silver) in the second step, the body of the automobile in the central location may be adjusted to reflect that color (e.g., the automobile will appear silver). The user310may continue to make selections for the other process steps in the guided procedure for the automobile, with these selections being reflected on the automobile displayed in the central location.

Referring back toFIG. 4D, the user310may then provide an indication that he or she wants to provide input for the process step corresponding to process step identifier410b. Such indication may include, but is not limited to, clicking or tapping on process step identifier410b. It is contemplated that other forms of providing this indication are also within the scope of the present disclosure.

The spiral navigation module320may then provide the user310with one or more user interface elements to enable the user to provide input for the corresponding process step. InFIG. 4E, the spiral navigation module320displays selection options for infrastructure on a separate page as the process step identifiers. Although, it is contemplated that these user interface elements may be presented on the same page as process step identifiers410a-410dor integrated with the corresponding process step identifier410b. In the example provided inFIG. 4E, the user310may select an infrastructure product using user interface elements440b. The selected infrastructure products inFIG. 4Eare shown within the dotted line442b.

InFIG. 4F, upon returning the user310to the page with the process step identifiers410a-410d, the spiral navigation module320may adjust process step identifier410bto include an indication445bof the selected infrastructure products442binFIG. 4E. In the example provided inFIG. 4F, this indication445bcomprises a summary of the selected infrastructure products (SAP ECC 6.0, Sybase Unwired Platform Upgrade, Sybase Afaria Infrastructure, Product B, Interface C).

The user310may then swipe the screen or provide some other indication to rotate the process step identifiers410a-410din order to move to the next process step in the guided procedure. InFIG. 4G, the spiral navigation module320has rotated the process step identifiers410a-410dso that process step identifier410chas been moved to the forefront. The user310may then select process step identifier410cto indicate that he or she wants to provide input for the corresponding process step, which, in this example, is selecting services products.

The spiral navigation module320may then provide the user310with one or more user interface elements to enable the user to provide input for the corresponding process step. InFIG. 4H, the spiral navigation module320displays selection options for services on a separate page as the process step identifiers410a-410d. Although, it is contemplated that these user interface elements may be presented on the same page as process step identifiers410a-410dor integrated with the corresponding process step identifier410c. In the example provided inFIG. 4H, the user310may select a services product using user interface elements440c. The selected services products inFIG. 4Hare shown within the dotted line442c.

InFIG. 4I, upon returning the user310to the page with the process step identifiers410a-410d, the spiral navigation module320may adjust process step identifier410cto include an indication445cof the selected infrastructure products442cinFIG. 4H. In the example provided inFIG. 4I, this indication445ccomprises a summary of the selected services products (Sybase Unwired Platform Upgrade, Sybase Afaria Infrastructure Implementation, Interface C Implementation).

The user310may then swipe the screen or provide some other indication to rotate the process step identifiers410a-410din order to move to the next process step in the guided procedure. InFIG. 4J, the spiral navigation module320has rotated the process step identifiers410a-410dso that process step identifier410dhas been moved to the forefront. In this example, process step identifier410dcorresponds to the process step of viewing results of the user input provided for the guided procedure. The user310may then select process step identifier410dto indicate that he or she wants to view the results. InFIG. 4K, the results are displayed to the user310. The results may include the effects of the choices the user310made in the previous process steps.

FIG. 7is a flowchart illustrating a method700of spiral navigation, in accordance with an example embodiment. In an example embodiment, the operations of method700may be performed by a system or modules of a system (e.g., spiral navigation module320inFIG. 3).

At operation710, process step identifiers may be caused to be displayed in a spiral formation in a graphical user interface of a device. As previously discussed, each process step identifier may identify a corresponding process step of a guided procedure, and the process step identifiers may be displayed in positions along the spiral formation that reflect an order of their corresponding process steps in the guided procedure.

Two determinations may be made throughout method700. One of the determinations may be made at operation720A, and the other determination may be made at operation720B. These determinations may be repeated over and over, and side by side, while the process step identifiers are being displayed.

At operation720A, it may be determined whether or not an indication has been received indicating that user input for a process step is to be received. Such indication may include, but is not limited to, the user selecting a process step identifier or interacting with a user interface element configured to enable selection of an option for a process step.

If such an indication has been received, then, at operation722A, user input for a process step is received using the corresponding process step identifier. In some embodiments, the user input may be received via one or more user interface elements on a separate page as the process step identifiers. In some embodiments, the user input may be received via one or more user interface elements integrated with the corresponding process step identifier. It is contemplated that other ways of receiving the user input are also within the scope of the present disclosure.

At operation724A, an indication of the user input may be caused to be displayed on the same page as the spiral formation of process step identifiers. In some embodiments, the corresponding process step identifier may be adjusted to include the indication of the received user input. In some embodiments, an indication of the received user input may be caused to be displayed in a central location around which the spiral formation of the process step identifiers is disposed. It is contemplated that the indication of the user input may be caused to be displayed in other ways as well. The method may then repeat the determination operations720A and720B.

If, at operation720A, it is determined that there has been no indication that user input for a process step is to be received, then the method may then repeat the determination operations720A and720B.

At operation720B, it is determined whether or not the process step identifiers should be rotated. In some embodiments, if a rotation indication (e.g., a swipe of the screen in the direction of the desired rotation) is received from the user, then it may be determined that the process step identifiers should be rotated. In some embodiments, it may be determined that automatic rotation (e.g., without a user initiated rotation indication) should be performed in response to the user providing user input for a process step (e.g., if the required input for the process step has been received).

If, at operation720B, it is determined that the process step identifiers should be rotated, then, at operation722B, the process step identifiers may be rotated. The method may then repeat the determination operations720A and720B.

If at operation720B, it is determined that the process step identifiers should not be rotated, then the method may then repeat the determination operations720A and720B.

It is contemplated that any of the other features described within the present disclosure may be incorporated into method700.

Modules, Components and Logic

The example computer system800includes a processor802(e.g., a central processing unit (CPU), a graphics processing unit (GPU) or both), a main memory804and a static memory806, which communicate with each other via a bus808. The computer system800may further include a video display unit810(e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)). The computer system800also includes an alphanumeric input device812(e.g., a keyboard), a user interface (UI) navigation (or cursor control) device814(e.g., a mouse), a disk drive unit816, a signal generation device818(e.g., a speaker), and a network interface device820.

The disk drive unit816includes a machine-readable medium822on which is stored one or more sets of data structures and instructions824(e.g., software) embodying or utilized by any one or more of the methodologies or functions described herein. The instructions824may also reside, completely or at least partially, within the main memory804and/or within the processor802during execution thereof by the computer system800, the main memory804and the processor802also constituting machine-readable media. The instructions824may also reside, completely or at least partially, within the static memory806.