Graphical user interface for qualifying navigations through relational data models

Some embodiments provide a non-transitory machine-readable medium that stores a program executable by at least one processing unit of a device. The program receives a selection of a navigation route through a relational data model. The relational data model includes several entities and a set of relationships among the several entities. The program also provides, through a graphical user interface (GUI), a tool for qualifying an attribute associated with an entity in the selected navigation route. The program further receives a selection of a value for the attribute associated with the entity in the navigation route for a data integration operation.

BACKGROUND

Computing systems (e.g., enterprise systems) may be used for managing large amounts of data. Different computing systems may manage data using different techniques. For instance, some computing systems store data based on to a relational data model. In such a model, data is organized and/or stored according to defined entities and relationships among the entities.

In some instances, a computing system may export data to another computing system (e.g., a third-party system). For complex relational data models that have a large number of entities and/or relationships, identifying the desired data to export to another computing system may be difficult and/or time consuming. For example, a user of the computing system may need to manually traverse through the relational data model in order to identify the desired data.

When a computing system exports data to another computing system, the other computing system may expect data that is not directly available from the attributes of an entity. For example, the other computing system may require data that includes street, city, state, and zip code in a single string while the computing system may store the street, city, state, and zip code as separate attributes of an entity. In such an example, the computing system may aggregate the attributes into a single string before exporting the data to the other computing system.

SUMMARY

In some embodiments, a non-transitory machine-readable medium stores a program executable by at least one processing unit of a device. The program receives a selection of a navigation route through a relational data model. The relational data model includes several entities and a set of relationships among the several entities. The program also provides, through a graphical user interface (GUI), a tool for qualifying an attribute associated with an entity in the selected navigation route. The program further receives a selection of a value for the attribute associated with the entity in the navigation route for a data integration operation.

In some embodiments, the program provides, through the GUI, a selectable UI item for invoking the tool for qualifying the attribute associated with the entity in the selected navigation route. The selectable UI item may be provided in response to receiving the selection of the navigation route. The attribute associated with the entity may be a first attribute associated with a first entity and the selectable UI item may be a first selectable UI item. In some embodiments, the program provides, through the GUI, a second selectable UI item for invoking the tool for qualifying a second attribute associated with a second entity in the selected navigation route.

In some embodiments, the program also performs the data integration operation on a system based on the selected navigation route and the selected value for the attribute associated with the entity in the navigation route. The data integration operation includes retrieving data from a data source according to the relational data model, the selected navigation route, and the selected value for the attribute associated with the entity in the navigation route, and sending the retrieved data to the system in order for the system to integrate the data into the system. In some embodiments, the GUI provides a visual context of data in the relational data model.

In some embodiments, a method receives a selection of a navigation route through a relational data model. The relational data model include several entities and a set of relationships among the several entities. The method also provides, through a graphical user interface (GUI), a tool for qualifying an attribute associated with an entity in the selected navigation route. The method further receives a selection of a value for the attribute associated with the entity in the navigation route for a data integration operation.

In some embodiments, the method also provides, through the GUI, a selectable UI item for invoking the tool for qualifying the attribute associated with the entity in the selected navigation route. The selectable UI item may be provided in response to receiving the selection of the navigation route. The attribute associated with the entity may be a first attribute associated with a first entity and the selectable UI item may be a first selectable UI item. In some embodiments, the method also provides, through the GUI, a second selectable UI item for invoking the tool for qualifying a second attribute associated with a second entity in the selected navigation route.

In some embodiments, the method performs the data integration operation on a system based on the selected navigation route and the selected value for the attribute associated with the entity in the navigation route. The data integration operation may include retrieving data from a data source according to the relational data model, the selected navigation route, and the selected value for the attribute associated with the entity in the navigation route, and sending the retrieved data to the system in order for the system to integrate the data into the system. In some embodiments, the GUI provides a visual context of data in the relational data model.

In some embodiments, a system includes a set of processing units and a non-transitory machine-readable medium storing a program executable by at least one processing unit in the set of processing units. The program receives a selection of a navigation route through a relational data model. The relational data model includes several entities and a set of relationships among the several entities. The program also provides, through a graphical user interface (GUI), a tool for qualifying an attribute associated with an entity in the selected navigation route. The program further receives a selection of a value for the attribute associated with the entity in the navigation route for a data integration operation.

In some embodiments, the program also provides, through the GUI, a selectable UI item for invoking the tool for qualifying the attribute associated with the entity in the selected navigation route. The selectable UI item may be provided in response to receiving the selection of the navigation route. The attribute associated with the entity may be a first attribute associated with a first entity and the selectable UI item may be a first selectable UI item. In some embodiments, the program also provides, through the GUI, a second selectable UI item for invoking the tool for qualifying a second attribute associated with a second entity in the selected navigation route.

In some embodiments, the program performs the data integration operation on a system based on the selected navigation route and the selected value for the attribute associated with the entity in the navigation route. The data integration operation may include retrieving data from a data source according to the relational data model, the selected navigation route, and the selected value for the attribute associated with the entity in the navigation route, and sending the retrieved data to the system in order for the system to integrate the data into the system.

DETAILED DESCRIPTION

Described herein are techniques for providing routes through a relational data model. In some embodiments, a relational data model defines entities and relationships among the entities. Each entity may include one or more attributes and one or more relationships. A relationship between two entities may specify a type of relationship (e.g., a one-to-one relationship, a one-to-many relationship, a many-to-one relationship, a many-to-many relationship, etc.). In some embodiments, a user specifies an entity in the relational data model as a starting entity and an attribute of another entity in the relational data model as a target entity. Based on the starting entity, target entity, and relational data model, several routes through the relational data model are presented to the user for selection. In some embodiments, the routes are presented to the user through a graphical user interface (GUI) in order to provide a visual presentation of the context of data. A route through a relational data model may include a first entity and a second entity that are related to each other according to a one-to-many or many-to-many type of relationship. In some embodiments, the GUI includes a tool for qualifying an attribute associated with the second entity.

FIG. 1illustrates a data flow of a system100for integrating data according to some embodiments. As shown, system100includes data source105, data integration manager110, and systems115a-n. In some embodiments, data source105and data integration manager110are part of the same system while, in other embodiments, data source105and data integration manager110operate on separate systems.

Data source105is configured to provide data to data integration manager110. In some embodiments, data source105stores and manages data based on a relational data model. For example, data source105stores data that describes entities defined by the relational data model and data that describes relationships among the entities defined by the relational data model. In some embodiments, data source105is implemented by several storages (e.g., hard disk storages, flash memory storages, optical disc storages, etc.) while, in other embodiments, data source105is implemented by a single storage. In some embodiments, data source105is a database, a file, a data as a service (DaaS), a web service, etc.

Data integration manager110may be configured to provide data from data source105to systems115a-nfor integration into systems115a-n. As shown inFIG. 1, data integration manager110is receiving exported data from data source105. In some embodiments, data integration manager110retrieves the exported data from data source105while, in other embodiments, data source105sends the exported data to data integration manager100in response to data integration manager110sending data source105a request for the exported data. Upon receiving the exported data, data integration manager110sends the exported data to a system115as data for integration into the system115. In some embodiments, the exported data is sent to a system115as a file according to a file format (e.g., a comma-separated values (CSV) file).

In some embodiments, before sending the exported data to a system115, data integration manager110may format the exported data according to a certain format in which the system115expects the data. For example, a system115may expect to receive address data (e.g., street, city, state, zip code, etc.) as a single string, as a collection of strings and/or numbers, etc. As another example, a system115may expect to receive name data (e.g., first name, middle name, last name, etc.) as a single string, as a collection of strings and/or numbers, etc. One of ordinary skill in the art will appreciate that any number of different types of data may be formatted any number of different ways.

Data integration manager110may perform data integration operations at different times. For example, data integration manager110may perform a data integration operation at a specified time (e.g., a scheduled time), at defined intervals (e.g., once a day, once every five days, once a week, once a month, etc.), in response to a request from a system115, etc.

In some embodiments, data integration manager110is a data integration service or tool that is part of a multi-tenant, cloud-based system implemented using a software as a service (SaaS) methodology. One of ordinary skill in the art will understand that data integration manager110may be part of any number of different systems (e.g., a human capital management (HCM) system, an enterprise resource planning (ERP) system, a customer relationship management (CRM) system, a supply chain management (SCM) system, a product lifecycle management (PLM) system, etc.).

Systems115a-nare configured for receiving data stored in data source105via data integration manager110. In some embodiments, a system115may expect data that system115receives from data integration manager110to be in a certain format (e.g., by sending to data integration manager110a request to send data to the system115according to the certain format). For example, a system115may expect to receive address data (e.g., street, city, state, zip code, etc.) as a single string, as a collection of strings and/or numbers, etc.

Systems115a-nmay be third-party systems that operate on computing systems separate from data source105and data integration manager110. Examples of third-party systems include a payroll system, a background screening system, a finance system, a learning management system (LMS), a human resource management system (HRMS), a human resources information system (HRIS), a time management system, an employee benefits system, etc.

As illustrated inFIG. 1, system100includes one data source. One of ordinary skill in the art will realize that system100may include any number of additional and/or different data sources from which data integration manager110may integrate data into systems115a-n.

As mentioned above, data source105may store and manage data based on a relational data model.FIG. 2illustrates an example relational data model200according to some embodiments. In this example, relational data model200defines entities and relationships among the entities for describing personal information and employment information associated with people. As described above, a relational data model defines entities and relationships among the entities in some embodiments. Each entity may include one or more attributes and one or more relationships.

As illustrated inFIG. 2, relational data model200includes email info entity205, email type entity210, personal info entity215, person entity220, employment info entity225, dependents entity230, and job info entity235. For this example, email info entity205represents information associated with an email, email type entity210represents a type of email, personal info entity215represents personal information associated with a person, person entity220represents a person, employment info entity225represents information associated with a place of employment, dependents entity230represents a dependent of a person, and job info entity235represents information associated with a job. As shown inFIG. 2, personal info entity215includes a first name attribute and a last name attribute, email info entity205includes an email address attribute, and email type entity210includes a type attribute that indicates a type of email address (e.g., personal email, business email, secondary email, etc.). One of ordinary skill in the art will understand that entities205,210,215,220,225,230, and235may include any number of additional and/or different attributes. However, for the purposes of simplicity and explanation, attributes of entities205,210,215,220,225,230, and235are not shown except for the first name and last name attributes of personal info entity215, the email address of the email info entity205, and the type attribute of email type entity210.

As explained above, a relationship between two entities may specify a type of relationship (e.g., a one-to-one relationship, a one-to-many relationship, a many-to-one relationship, a many-to-many relationship, etc.).FIG. 2illustrates relationships250,255,260,265,270,275,280, and285among entities205,210,215,220,225,230, and235. In this example, a person has one or more places of employment, one set of personal information about the person, and one or more dependents. As such, relationship265between person entity220and employment info entity225is a one-to-many relationship with, relationship260between person entity220and personal info entity215is a one-to-one relationship, and relationship275between person entity220and dependents entity230is a one-to-many relationship, respectively.

For a place of employment in this example, a person has one or more jobs at the place of employment. Thus, relationship280between employment info entity225and job info entity235is a one-to-many relationship. In this example, a person has one manager for each job. This relationship is defined in relational data model200through relationship285between job info entity235and employment info entity225, which is a one-to-one relationship. Specifically, a relationship285represents a relationship between the job information of a person and the employment information of the person's manager. In this example, employment information of a manager of a person may be accessed by navigating from job info entity235to employment info entity225via relationship285. The personal information of the manager of the person may be accessed by continuing to navigate from employment info entity225to personal info entity215via relationships265and260.

A dependent in this example has one set of personal information about the dependent. Accordingly, dependent entity230has a one-to-one relationship with personal info entity215. In this example, the personal information for a person has one or more emails. As such, personal info entity215has a one-to-many relationship with email info entity205. Each email in this example may be of a certain type (e.g., personal email, business email, secondary email, etc.) and many emails may be of the same type. Thus, email info entity205has a many-to-one relationship with email type entity210.

As described above,FIG. 2illustrates an example relational data model. One of ordinary skill in the art will appreciate that the entities, relationships, and types of relationships depicted inFIG. 2are used for the purposes of simplicity and explanation and that relational data model200may include any number of additional and/or different entities, relationships, and/or types of relationships.

FIG. 3illustrates an architecture of data integration manager110according to some embodiments. As shown, data integration manager110includes a user interface (UI) manager310, a navigation manager315, and a data manager320. UI manager310is configured to provide UIs (e.g., GUIs, command line interfaces (CLI), etc.) to client305for interacting with the data integration manager110. Client305may be any type of computing device (e.g., a mobile device, a smartphone, a laptop, a desktop computer, a tablet, etc.). Client305may include a thin client (e.g., a web browser) configured to interact with the UIs provided by UI manager310. In some embodiments, client305and data integration manager110operate on the same computing device while, in other embodiments, client305and data integration manager110operate on separate computing devices.

Navigation manager315is responsible for navigating through a relational data model (e.g., relational data model200) to identify routes through the relational data model. Navigation manager315may receive a request from UI manager310to determine routes through a relational data model. In response to such a request, navigation manager315may access the relational data model in data models325, which is configured to store relational data models, in order to determine routes through the relational data model. Upon determining routes through the relation data model, navigation manager315sends the determined routes to UI manager310.

Data manager320may handle retrieving data from data source105and sending the retrieved data to one or more systems115for integration into the one or more systems115. In some embodiments, before sending the retrieved data to a system115, data manager320may format retrieved data according to a certain format in which the system115expects the data. Data manager320may receive a request from UI manager310to integrate data from data source105to one or more systems115. The request may specify the data for integration, a relational data model, a route through the relational data model to access the data for integration, and one or more systems115. In response to the request, data manager320retrieves the requested data from data source105based on the relational data model and the route through the relational data model. Upon retrieving the requested data from data source105, data manager320sends the retrieved data to the specified one or more systems115.

In some instances, a user of client305may want certain data in data source105for integration into a system115. For example, the user may want to integrate the business email of a manager of each person in data source105into a system115. However, a manager may have several different emails associated with the manager. For instance, a manager may have a personal email, a business email, a secondary email, etc. An example data integration operation for integrating the business email of managers by qualifying navigation routes through a relational data model will now be described by reference toFIGS. 2-5.

FIG. 4illustrates a process400for qualifying navigation routes through a relational data model according to some embodiments. In some embodiments, data integration manager110performs process400. Process400starts by receiving, at410, a selection of a starting entity in a relational data model. Referring toFIG. 3as an example, UI manager310may perform operation410by receiving a selection of a starting entity in a relational data model from client305through a GUI that UI manager310provides to client305. In this example data integration operation, a user of client305selects through the GUI (e.g., via a dropdown menu, a text box control, a selectable UI item, etc.) person entity220in relational data model200as a starting entity.

Next, process400receives, at420, a selection of a target entity in the relational data model. Referring toFIG. 3as an example, UI manager310may perform operation420by receiving a selection of a target entity in the relational data model from client305through a GUI that UI manager310provides to client305. In some embodiments, the selection of a target entity includes a selection of one or more attributes of the target entity. For this example data integration operation, a user of client305selects through the GUI (e.g., via a dropdown menu, a text box control, a selectable UI item, etc.) the email address attribute of email info entity205in relational data model200in order to select email info entity205as a target entity.

Process400then determines, at430, navigation routes through the relational data model based on the starting entity and the target entity. Referring toFIG. 3as an example, UI manager310may send the selected starting entity and target entity to navigation manager315and instruct navigation manager315to perform operation430. After navigation manager315determines navigation routes through the relational data model, navigation manager315sends the determined navigation routes to UI manage310.

In some embodiments, process400determines a navigation route through the relational data model by beginning at the starting entity in the relational data model, traversing through the relational data model based on the relationships between the entities in the relational data model until arriving at the target entity. The starting entity, the entities through which the relational model is traversed, and the target entity collectively form the navigation route. In some embodiments, process400limits the navigation route to a defined number of entities (e.g., five entities, seven entities, ten entities, etc.). Thus, in some such embodiments, process400starts determining a new navigation route through the relational data model when process400has traversed the defined number of entities in the relational data model and has not arrived at the target entity.

In some embodiments, when process400determines a next entity to traverse to when determining a navigation route, process400considers an entity in the relational data model other than the previous entity in the navigation route. Referring toFIG. 2as an example, if process400traverses from personal info entity215to person entity220via relationship260for a navigation route, process400may consider, as a next entity to traverse to for the navigation route, traversing from person entity220to dependents entity230via relationship275or from person entity220to employment info entity225via relationship265. Process400does not consider traversing from person entity220to personal info entity215because process400traversed to person entity220from personal info entity215.

After determining navigation routes through the relational data model, process400provides, at440, the determined navigation routes. Referring toFIG. 3as an example, UI manager310may perform operation440by providing the determined navigation routes to client305through a GUI that UI manager310provides to client305. Continuing with the example data integration operation, UI manager310provides navigation routes that include person entity220as the starting entity and email info entity205as the target entity.FIGS. 5A and 5Billustrate a graphical user interface (GUI)500for providing a tool for qualifying a navigation route through a relational data model according to some embodiments. In particular, GUI500provides a tool for qualifying an attribute associated with an entity in a navigation route. For this example data integration operation, UI manager310provides such a tool to client305via GUI500. As shown inFIG. 5A, GUI500includes text box control505, navigation route panel510, field filter panel550, and selectable UI items555and560.

Text box control505receives input for selecting attributes of a target entity in a relational data model. In this example, a user of client305specified the email address attribute of email info entity205in text box control505in order to select the email address as the requested data and email info entity205as the target entity. Selectable UI item555is configured to terminate the navigation route selection operation and selectable UI item560is configured to select a navigation route for a data integration operation.

Navigation route panel510is configured to display determined navigation routes through a relational data model. As shown, navigation route panel510includes navigation routes515,520, and525. In this example, addition navigation routes are included in navigation route panel510. The additional navigation routes are not displayed but viewable via scroll bar control530. Navigation route515starts at person entity220, traverses through personal info entity215via relationship260, and ends at email info entity205via relationship255. As such, traversing through relational data model200via navigation route515accesses an email address associated with a person. Navigation route520starts at person entity220, traverses through dependents entity230and personal info entity215via relationships275and270, respectively, and ends at email info entity205via relationship255. Thus, traversing through relational data model200via navigation route520accesses an email address associated with a dependent of a person. Navigation route525starts at person entity220; traverses through employment info entity225, job info entity235, employment info entity225, and personal info entity215via relationships265,280,285, and260respectively; and ends at email info entity205via relationship255. Therefore, traversing through relational data model200via navigation route525accesses an email address of a manager of a person. As illustrated, the navigation routes displayed in navigation route panel510provide a visual representation of the context of the requested data (the email address of email info entity205in this example).

Field filter panel550is configured to display a navigation route that includes a selectable UI item for each entity in the navigation route that belongs to a one-to-many or many-to-many relationship. When GUI500receives a selection of a navigation route in navigation route panel510, GUI500displays a version of the selected navigation route in field filter panel550includes a selectable UI item for each entity in the navigation route that belongs to a one-to-many or many-to-many relationship.

As shown inFIG. 5A, in this example, navigation route525is selected in navigation route panel510as indicated by a highlighting of navigation route525in navigation route panel510. As such, field filter panel550is displaying navigation route565. Navigation route565is similar to navigation route525except navigation route565includes selectable UI items570,575, and580. Selectable UI items570,575, and580are configured to invoke a tool for qualifying an attribute associated with the corresponding entity in navigation route565. In this example, selectable UI item570is configured to invoke a tool for qualifying an attribute associated with employment info entity225when traversing from person entity220via relationship265. In addition, selectable UI item575is configured to invoke a tool for qualifying an attribute associated with employment info entity235when traversing from employment info entity225via relationship280. Selectable UI item580is configured to invoke a tool for qualifying an attribute associated with email info entity205when traversing from personal info entity215via relationship255.

Returning toFIG. 4, process400provides, at450, a tool for qualifying an attribute associated with an entity in a determined navigation route. Referring toFIG. 3as an example, UI manager310may receive a selection of a UI item to invoke a tool for qualifying an attribute associated with an entity in a determined navigation route from client305through GUI500. In response, UI manager310provides in field filter panel550a tool for qualifying an attribute associated with an entity in the selected navigation route. In some embodiments, client305processes the selection and provides in field filter panel550a tool for qualifying an attribute associated with an entity in the selected navigation route in response to the selection.

For this example data integration operation, a user of client305selects UI item580to invoke a tool for qualifying the type attribute associated with email info entity205in navigation route565because a person may have more several different types of emails associated with the person. For instance, a person may have a personal email, a business email, or additional and/or different types of emails. A tool for qualifying the type attribute associated with email info entity205in navigation route565allows the user to specify a particular type of email associated with a person (as opposed to an unknown and/or random type of email associated with the person) for the data integration operation.

FIG. 5Billustrates GUI500after UI manager310provides UI tool585in response to the selection of UI item580. As shown, UI item580is highlighted to indicate that UI tool585is for qualifying an attribute associated with email info entity205. UI tool585includes selection controls (e.g., drop-down controls)590and595. Selection control590is for selecting an attribute associated with email info entity205. Selection control595is for selecting a value for the attribute selected with selection control590. UI tool585also includes a visual indication of a type of operation between the attribute selected with selection control590and the value selected with selection595. In some embodiments, UI tool585may include a selection control (not shown) for selecting the type of operation between the attribute selected with selection control590and the value selected with selection595.

Next, process400next receives, at460, a selection of a value for an attribute associated with the entity in the determined navigation route. Referring toFIG. 3as an example, UI manager310may receive a selection of a value for an attribute associated with the entity in the determined navigation route from client305through GUI500.FIG. 5Balso illustrates GUI500after UI manager310receives a selection of a value for an attribute associated with email info entity205in navigation route565. For this example data integration operation, the requested data is the business email of a manager of a person. Thus, as shown inFIG. 5B, the selected attribute associated with email info entity205is the type attribute of email type entity210via relationship250and the selected value for the type attribute is “Business.”

For the purposes of simplicity and explanation, the relationships defined between entities in relational data model200are represented in navigation route panel515and field filter panel550as260,275,265,280, etc. and the relationship defined between entities in relational data model200is represented in UI tool585as “relationship250”. One of ordinary skill in the art will realize that GUI500may represent such relationships differently in different embodiments. For example,260may be represented as “Person to Personal Info Relationship,”285may be represented as “Job Info to Manager Employment Info Relationship,”275may be represented as “Person to Dependents Relationship,” “relationship250” may be represented as “Email Info to Email Type Relationship,” etc.

Process400then receives, at470, a selection of a determined navigation route for a data integration operation. Referring toFIG. 3as an example, UI manager310may perform operation470by receiving a selection of a determined navigation route from client305through a GUI that UI manager310provides to client305. In this example data integration operation, after selecting navigation route525and qualifying the type attribute associated with email info entity205using UI tool585, a user of client305selects UI item560. In response, UI manager310receives the selection of qualified navigation route565as a navigation route for a data integration operation from client305.

Finally, process400performs, at480, the data integration operation based on the selected navigation route. In some embodiments, process400may receive a selection of one or more systems on which the data integration operation is performed (e.g., via a GUI provided by UI manager310to client305). In other embodiments, the one or more systems on which the data integration operation is performed is preconfigured.

Referring toFIG. 3as an example, UI manager310may send the selected navigation route and specified systems115to data manager320and request data manager320to perform operation480. When data manager320receives the request, data manager320retrieves the requested data based on the navigation route and sends the requested data to the specified systems115for integration into the specified systems115. In this example data integration operation, the requested data is the business email of a manager of a person since the type attribute associated with email info entity205of the selected navigation route is qualified as business email. As such, data manager320retrieves the business email of a manager of each person in data source105and sends such data to the specified systems115for integration into the specified systems115.

An exemplary computer system600is illustrated inFIG. 6. Computer system610includes a bus605or other communication mechanism for communicating information, and a processor601coupled with bus605for processing information. Computer system610also includes memory602coupled to bus605for storing information and instructions to be executed by processor601, including information and instructions for performing the techniques described above, for example. This memory may also be used for storing variables or other intermediate information during execution of instructions to be executed by processor601. Possible implementations of this memory may be, but are not limited to, random access memory (RAM), read only memory (ROM), or both. A storage device603is also provided for storing information and instructions. Common forms of storage devices include, for example, a hard drive, a magnetic disk, an optical disk, a CD-ROM, a DVD, a flash memory, a USB memory card, or any other medium from which a computer can read. Storage device603may include source code, binary code, or software files for performing the techniques above, for example. Storage device and memory are both examples of computer readable mediums.

Computer system610may be coupled via bus605to a display612, such as a cathode ray tube (CRT) or liquid crystal display (LCD), for displaying information to a computer user. An input device611such as a keyboard and/or mouse is coupled to bus605for communicating information and command selections from the user to processor601. The combination of these components allows the user to communicate with the system. In some systems, bus605may be divided into multiple specialized buses.

Computer system610also includes a network interface604coupled with bus605. Network interface604may provide two-way data communication between computer system610and the local network620. The network interface604may be a digital subscriber line (DSL) or a modem to provide data communication connection over a telephone line, for example. Another example of the network interface is a local area network (LAN) card to provide a data communication connection to a compatible LAN. Wireless links are another example. In any such implementation, network interface604sends and receives electrical, electromagnetic, or optical signals that carry digital data streams representing various types of information.

Computer system610can send and receive information, including messages or other interface actions, through the network interface604across a local network620, an Intranet, or the Internet630. For a local network, computer system610may communicate with a plurality of other computer machines, such as server615. Accordingly, computer system610and server computer systems represented by server615may form a cloud computing network, which may be programmed with processes described herein. In the Internet example, software components or services may reside on multiple different computer systems610or servers631-635across the network. The processes described above may be implemented on one or more servers, for example. A server631may transmit actions or messages from one component, through Internet630, local network620, and network interface604to a component on computer system610. The software components and processes described above may be implemented on any computer system and send and/or receive information across a network, for example.