Data systems are currently in wide use. Configuring such systems properly, in order to serve an organization's needs, can be quite difficult. In addition, even once a data system is deployed, during its lifecycle, it can be difficult to analyze the ongoing operation of the system, and whether upgrades might be beneficial.
In one specific example, business data systems are used by many organizations in order to perform business operations. Business data systems can include, for example, enterprise resource planning (ERP) systems, customer resource management (CRM) systems, and line-of-business (LOB) systems and other business data systems.
Business data systems can be purchased by an organization, and deployed by that organization, in order to meet the business needs of the organization. However, these types of business data systems can be relatively large and complicated. Therefore, designing and deploying them in the most efficient or effective way, can be difficult.
When an organization shops for and eventually buys and deploys a business data system, a normal lifecycle includes a number of phases. A first phase can be performed at presale or startup. In this phase, the organization is attempting to shop for a business data system and identify an appropriate business data system that will serve its needs. During the presale process, it can be difficult for a potential customer to have an idea of what equipment is needed to deploy a business data system, and what licensing may be needed. In addition, it can be difficult to know how much of a given business data system functionality will meet the needs of the organization, and how much will need to be modified or developed.
A second phase may include designing or developing the business data system, once it is purchased, in order to meet the specific needs of the organization. This can involve making modifications to a base form of the business data system. Once in the development phase, it can be difficult to know whether a developer is following the best practices of the seller of the business data system, or whether the developer's product could be improved or otherwise modified to operate more efficiently. In the past, the developer has had to provide its code to the seller for analysis, and then wait for analysis results. In addition, the analysis performed by the seller is often a highly manual process.
During a third phase, the product is actually deployed. When the business data system has moved out of the development and into the deployment phase, it can be difficult to know whether the business data system is deployed in the most efficient and highest performing way possible.
During the final phase, the product is operated at the organization. If the organization is growing or changing, or if the business data system is further developed by the seller, it may be that the organization could benefit from an upgrade. However, it can also be difficult to tell whether upgrades to the business data system will be helpful, or which upgrades might be more helpful than others.
The discussion above is merely provided for general background information and is not intended to be used as an aid in determining the scope of the claimed subject matter.
Metadata is obtained regarding a data system instance. The metadata is sent to a server in a multi-tenant data center. Analysis results are received that indicate the results of an analysis performed on the metadata by a tool at the multi-tenant data center.
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter. The claimed subject matter is not limited to implementations that solve any or all disadvantages noted in the background.
Tenant 104 is shown generating user interface displays 108 with user input mechanisms 110 for interaction by user 112. Tenant 106 also, of course, generates user interface displays with user input mechanisms for interaction by a user, although they are not shown. Tenants 104 and 106 illustratively access multi-tenant data center 102 over network 114.
Architecture 100 also shows that a new customer 116 has access to multi-tenant data center 102 over network 114 as well. New customer 116 is illustratively in the pre-sale phase and generates user interface displays 118 with user input mechanisms 120 for interaction by user 122.
User input mechanisms 110 and 120 can take a wide variety of different forms. For instance, they can be text boxes, buttons, dropdown menus, icons, links, or other user actuatable input mechanisms for controlling and manipulating tenant 104, new customer 116, and multi-tenant data center 102. In addition, the user input mechanisms 110 and 120 can be actuated in a wide variety of different ways. For instance, where the device displaying the user interface display is a touch sensitive screen, then the user input mechanisms can be actuated by touch gestures using the user's finger, a stylus, or another mechanism. Similarly, when tenant 104 or new customer system 116 has speech recognition components, the corresponding user input mechanisms can be actuated using voice commands. Of course, they can also be actuated using a point and click device (such as a mouse or trackball), a thumbpad, a touch pad, a keypad, hardware or soft keyboard, or another mechanism.
Multi-tenant data center 102 illustratively includes one or more processors 124, project manager component 126 and a plurality of site-wide servers (tools or other services) including business process modeler tool 128, code analysis tool 130, diagnostic engine 132, diagnostic rules 134, upgrade analysis tool 136, hotfix services 138, size estimator tool 140, licensing estimator tool 142, other servers, tools or components 144 and data viewer component 145.
Servers 148 can include utility servers that perform utility functions, such as reporting services, load balancing, provisioning, configuration, statistics, and other utility functions. When a new tenant is provisioned at multi-tenant data center 102, it can be assigned to one or more of the groups served by servers 128. One of servers 128 then creates a private, unshared database 150-152 for the new tenant. Associating or mapping between the tenant and the assigned group is also created and can be stored in shared data store 156, along with other configuration information.
Each tenant 104-106 illustratively corresponds to a separate organization. The organizations illustratively wish their business data to be stored in unshared databases 150-152, so that they are separate from the business data stored by other tenants.
Multi-tenant data center 102 also illustratively includes product data store 154 and shared data store 156 that stores data shared by multiple tenants. Further,
For the sake of simplicity, the present description will proceed with respect to the data hosted by multi-tenant data center 102 being for multiple on-premise instances of an enterprise resource planning (ERP) system run at tenants 104-106. It will be appreciated, however, that any type of hosted data center may be implemented using the technologies presented herein, including hosting data for other types of hosted or on-premise business applications (or hosted business data systems).
Tenant 104 is shown as including one or more database servers 172 that are coupled to a business data application store 174 that stores on-premise business data application 176 (such as an instance of an ERP system, a CRM system, an LOB system, etc.). For purposes of the present description, on-premise business application 176 will be referred to in terms of an ERP application. However, this is for the sake of example only. One or more application servers 178 provide the functionality for on-premise business application 176 and interact with database servers 172 to obtain business data, along with metadata 180 and other data 182 from business data application store 174.
Processors 124, 186 and 190 are illustratively computer processors that include associated memory and timing circuitry (not separately shown). They are illustratively functional components of multi-tenant data center 102, tenant 104 and new customer system 116, respectively. They are activated by, and facilitate the functionality of, other items in multi-tenant data center 102, tenant 104 and new customer system 116, respectively.
It will be noted that, while
Before providing a detailed description of the operation of architecture 100, a brief description will be provided as an overview. New customer system 116 is illustratively the system of a customer who is in the pre-sale phase of acquiring a business data system. Therefore, they are attempting to identify an appropriate business data system, determine whether it will meet their organizational needs, determine what type of license they will need, as well as the sizing of various hardware or other equipment that they will need.
Tenant 104 illustratively already has an instance of the business data system. Therefore, tenant 104 can be in the development, deployment, or operational phases of the lifecycle of the business data system.
Therefore, in one embodiment, user 122 can access various tools on multi-tenant data center 102 to receive pre-sale help. For instance, use 122 can user business process modeler tool 128 to identify the various business processes that are available on the business data system that the user is reviewing. In addition, the user can use tool 128 to modify representations of those business processes to meet their own needs, and then have tool 128 provide an indication as to what needs to be done in order to make the business data system actually meet the needs of the organization or customer of system 116. In addition, user 122 can invoke sizing estimator tool 140 and licensing estimator tool 142 in order to determine the size of equipment or other systems needed for development of the business data system and the types of licenses that may be needed.
Once user 122 decides to use the business data system, user 122 can use project manager component 126 to create a new project, identify key members for the project, create issues and track issues for the project, and view a dashboard corresponding to the project. Similarly, once the new customer enters the development, deployment and operational phases (such as tenant 104), the user 122 (or 112) can use project manager component 126 to track the progress of the project. Similarly, the users can use code analysis tool 130 to obtain analysis results for the code that has already been developed. In this way, the users can identify issues with the code, even before it is deployed.
Once deployed, diagnostic engine 132 can be used to obtain diagnostic information from the particular tenant (and the environment of the business data system). Engine 132 can then run diagnostic rules 134 against the diagnostic data to provide evaluation results and recommendations to enhance the performance of the instance of the business data system for the given tenant where it is deployed.
Similarly, during the operational phase, the tenants or users may encounter problems or bugs. They can use hotfix service 138 to identify whether any problems or bugs have already had fixes developed for them. If so, the fixes can be reviewed or downloaded and incorporated in the given instance of the business data system.
In addition, tenants or users can use upgrade analysis tool 136 during the operational phase of the business data system. Tool 136 provides evaluation results which indicate whether the tenant or user would benefit from an upgrade to their particular instance of the business data system, and what the specific upgrade might be.
In any case, the data is sent to a server or tool on the multi-tenant data center 102. This is indicated by block 206 in
The given tool, engine or service then performs analysis on the data. Data viewer component 145 illustratively generates a view of the results of the analysis and returns them to the particular tenant 104-106 or new customer system 116, from which the original data (or metadata) came. In one embodiment, data viewer component 145 provides a view of the data through a web interface. Of course, the data can simply be provided and the user interface displayed for viewing the data can be generated by user interface component 188 on tenant 104, or a similar component on new customer system 116. In any case, receiving the display data indicative of the analysis of the uploaded data by a tool or other engine or analyzer on multi-tenant data center 102 is indicated by block 210 in
Then, a user interface display is generated and shown to a user. The user interface display displays the analysis results provided by multi-tenant data center 102. In some cases, the display can also display the raw data received by multi-tenant data center 102, upon which the analysis was performed. In any case, generating the user interface display with the analysis results is indicated by block 212 in
User 112 first provides inputs through user interface displays 108, to access project manager component 126 on multi-tenant data center 102. Project manager component 126 then generates a log-in user interface display that is provided as one of user interface displays 108, to user 112. Generating the user interface display to receive user login information is indicated by block 214 in
Project manager component 126 then illustratively provides a set of user interface displays to user 112 that allow user 112 to create a new project. This is indicated by block 224 in
Project creation tool 158 then illustratively generates a user interface display, such as user interface display 230 shown in
In project section 232, user 112 can illustratively select a projects user input mechanism 236 that shows existing projects for this user (although none of them will be the project that the user is going to create). In addition, project request mechanism 238 can be actuated by user 122 to review any project requests that have been made of the user. Similarly, new project input mechanism 240, when actuated by the user, navigates the user to a set of user interface displays that allow the user to create the new project. User input mechanism 242 allows the user to view various users of the system, or corresponding to the various projects, etc. In addition, user interface display 230 illustratively includes an announcement section 244 that includes various announcements for various projects in new customer system in tenant 104.
User management will first be described. When the user 112 actuates user input mechanism 242, the user can illustratively review and invite various organization users to participate in various projects. This is indicated by block 246 in
User 112 can then access team selection tool 160 to select a team for a given project. In doing so, tool 160 illustratively displays a user interface display, such as display 256 shown in
Project creation tool 150 also generates a project creation user interface display such as user interface display 166 shown in
The user can also provide inputs to generate a project timeline to indicate when certain phases of the project should be completed. This is indicated by block 292 in
In addition, the user can generate an issue list and assign an owner to each of the issues generated, and this is indicated by block 294.
User interface display 298 shows that when the user actuates the view button a pop-up menu 304 is displayed which allows the user to select which type of issue to view. In the embodiment shown in
In addition, returning again to
Also, during the presale phase of a product, the user can access sizing estimator tool 140 in multi-tenant data center 102 to obtain an estimate as to the sizing of the hardware, software, databases, systems, etc. required by the user. In order to do that, user 112 first provides an input indicating to sizing estimator tool 140 that user 112 wishes to obtain a size estimate. In response, sizing estimator tool 140 provides a user interface display, such as user interface display 324 shown in
User 112 can also access multi-tenant data center 102 to obtain an estimate of the licensing that will be used for a given business data system. The user illustratively provides user inputs to access licensing estimator tool 142. In response, licensing estimator tool 142 illustratively generates a user interface display, such as user interface display 350 shown in
Once the estimation is complete, licensing estimator tool 142 illustratively downloads a licensing estimation that can be displayed to user 112. Displaying the licensing estimations or recommendations is indicated by block 370 in
User 112 can also access business process modeler tool 128 in multi-tenant data center 102. This allows the user to view process model maps that are diagrams of process models that already exist in a base business data system (such as in a base ERP or CRM system) as sold by the seller. It also allows the user to make changes to those maps to identify changes to be made to the base system, in order for the process to accurately meet the needs of the organization to which the user belongs. Tool 128 can then generate a work item list or a fit gap list that indicates the items of work that need to be developed or modified relative to the base business data system in order to have it meet the desired needs of the organization.
In order to do this, user 112 illustratively provides user inputs to access business process modeler tool 128. In response, tool 128 illustratively generates a user interface display, such as user interface display 370 shown in
When the user selects a leaf node, a business process model is illustratively displayed in flow diagram form. The user can then drag and drop shapes in the flow diagram to modify the flow diagram, or the user can add shapes and connectors in the flow diagram or delete shapes and connectors from the flow diagram, in order to modify the diagram of the desired business process. Based upon the modifications, tool 128 generates a list of work items or a fit gap list or other documentation indicating what needs to be done to the base process in order to meet the needs of the organization to which the user belongs.
In addition, if the user desires to create his or her own business process, tool 128 illustratively displays a user interface display such as display 388 shown in
Generating the user interface display to receive user inputs to view and modify process diagrams is indicated by blocks 396 and 398 in the flow diagram of
In order to generate a dashboard display for a selected product, user 112 first illustratively accesses project manager component 126, and specifically dashboard generator tool 162 to indicate that user 112 desires to see the dashboard view for a product. In response, tool 162 illustratively generates a user interface display that allows user 112 to select a project. This is indicated by block 410 in
In response, dashboard generator tool 162 illustratively generates a dashboard display, such as user interface display 416 shown in
The phases section illustratively allows the user to click on one of the displayed buttons or tiles to view information relevant to a given phase of the product, such as the analysis phase and the design phase (which can precede the development phase or be part of it), the development phase, the deployment phase, or the operational phase. The phases section also illustratively includes a status indicator, such as when a given phase was completed.
Dashboard 416 also illustratively includes an issue service actuator 428 and an issue tracking actuator 430. Issues service actuator 428 allows the user to manage, view and add or delete issues for the project, and the issue tracking actuator 430 illustratively allows the user to accurately track the progress in solving various issues. Deliverables actuator 432 allows the user to get an update as to the status of the various deliverables. Dashboard 416 also illustratively includes a tools section 434. This allows the user to actuate a user input mechanism (such as a link or tile) in order to invoke one of the tools on multi-tenant data center 102. Of course, there could be other actuators or sections on dashboard 416 as well, and this is indicated by block 436 in
Work item section 444 illustratively displays a breakdown of the various work items (such as bugs) and the number of them that are open, in progress, and closed. Similarly, a temporal display can be used to show the number of items that have been opened, are in progress, or have been closed within the last seven days (or any other desired period of time). Code review section 446 illustratively displays the results of any code review that have been performed on the code, to date.
User interface displays 458, 460 and 462 (shown in
User 112 can invite another user to be added to the project also. In response, team selection tool 160 illustratively displays user interface display 460 shown in
Referring again to the dashboard of
The user can perform all these and other functions from the displayed dashboard. Displaying the dashboard and performing these functions is indicated by block 502 in the flow diagram of
During the development phase of the business data system, user 112 may author or modify code. User 112 then may desire to have the code analyzed to determine whether it meets best practices, or analyzed for other reasons. Thus, user 112 may wish to invoke code analysis tool 130 in multi-tenant data center 102. User 112 can access tool 130 to upload code for analysis. In response, tool 130 can generate a user interface display, such as display 504 shown in
In addition, tool 130 can generate a user interface display, such as display 516 shown in
A user interface display, such as display 536 shown in
During either the deployment or the operational phase of the business data system, it may be that user 112 encounters various problems. However, these problems may have been already encountered by other users of the business data system, and so fixes may have already been generated for those problems. Therefore, user 112 may desire to access hotfix service 138 in order to search for and download existing fixes to problems that user 112 is encountering.
In one embodiment, in order to do this, hotfix service 138 generates a set of user interface displays that allow the user to search for already-existing fixes.
When the user actuates one of the links 562 and 564, additional information can be displayed.
If the user wishes to simply download the fix and actuates button 576, the fix is automatically downloaded, and this is indicated by blocks 583 and 584. Of course, if the user wishes to view the changes corresponding to the fix, this can be done by actuating button 578.
When the business data system is eventually deployed and operating, it may not be deployed in the most efficient and high performing, way. Therefore, user 112 may wish to have the deployment diagnosed to identify possible performance improvements that can be made. In that case, the user provides a request to diagnostic engine 132. Diagnostic engine 132 discovers the environment corresponding to an instance of the business data system and collects diagnostic data from that environment. The diagnostic data can include a wide variety of different kinds of data. The diagnostic data is then uploaded to diagnostic engine 132. Receiving the diagnostic request, discovering the environment of the business data system instance and collecting and uploading the diagnostic data is indicated by blocks 588, 590, 592 and 594, respectively.
Diagnostic engine 132 then accesses diagnostic rules 134 and evaluates the diagnostic data for the environment of the instance of the business data system where the diagnostic data came from, against the diagnostic rules 134. Engine 132 then illustratively provides information that can be displayed to user 112, including the raw diagnostic data, the evaluation results, and any recommendations that are generated based on the diagnostic results. Performing the diagnostic evaluation and receiving and displaying the diagnostic data, evaluation results and recommendations at tenant 104 are indicated by blocks 596 and 598, respectively.
At any time during the operation of the business data system on tenant 104, user 112, may desire to have an upgrade analysis performed. That is, it may be that the user wishes to determine whether there are any upgrades to the business data system that may be helpful. Also, of course, an upgrade analysis can be scheduled to occur on a regular basis, or on a intermittent basis, or when some other trigger happens, such as when the number of users of the business data system exceed a given threshold, etc. In any case, determining whether it is time to perform an upgrade analysis, and uploading data about the instance of the business data system to perform an upgrade analysis are indicated by blocks 600 and 602 in
Upgrade analysis tool 136 then performs an upgrade analysis to determine whether there are any upgrades available, that may be helpful, for the instance of the business data system being run on tenant 104. Performing the analysis is indicated by block 604. Upgrade analysis tool 136 then generates display information that can be used to display the results of the upgrade analysis (such as whether upgrades are available, what those upgrades are, how much they cost, what is required to deploy them, what types of different licensing may be needed, etc.), This is indicated by block 606.
It can thus be seen that multi-tenant data center 102 can receive from a tenant or a new customer, information about a business data system in any phase of the lifecycle of the business data system and perform analysis using various engines, tools, systems, servers, etc. Multi-tenant data center 102 can then generate information that can be displayed to the user, that is indicative of the analysis performed on the data that was received. This can be used in a wide variety of different ways, to perform a wide variety of different functions.
The description is intended to include both public cloud computing and private cloud computing. Cloud computing (both public and private) provides substantially seamless pooling of resources, as well as a reduced need to manage and configure underlying hardware infrastructure.
A public cloud is managed by a vendor and typically supports multiple consumers using the same infrastructure. Also, a public cloud, as opposed to a private cloud, can free up the end users from managing the hardware. A private cloud may be managed by the organization itself and the infrastructure is typically not shared with other organizations. The organization still maintains the hardware to some extent, such as installations and repairs, etc.
In the embodiment shown in
It will also be noted that architecture 100, or portions of it, can be disposed on a wide variety of different devices. Some of those devices include servers, desktop computers, laptop computers, tablet computers, or other mobile devices, such as palm top computers, cell phones, smart phones, multimedia players, personal digital assistants, etc.
Under other embodiments, applications or systems (like on-premise business application 176) are received on a removable Secure Digital (SD) card that is connected to a SD card interface 15. SD card interface 15 and communication links 13 communicate with a processor 17 (which can also embody processors 124, 186 or 190 from
I/O components 23, in one embodiment, are provided to facilitate input and output operations. I/O components 23 for various embodiments of the device 16 can include input components such as buttons, touch sensors, multi-touch sensors, optical or video sensors, voice sensors, touch screens, proximity sensors, microphones, tilt sensors, and gravity switches and output components such as a display device, a speaker, and or a printer port. Other I/O components 23 can be used as well.
Clock 25 illustratively comprises a real time clock component that outputs a time and date. It can also, illustratively, provide timing functions for processor 17.
Location system 27 illustratively includes a component that outputs a current geographical location of device 16. This can include, for instance, a global positioning system (GPS) receiver, a LORAN system, a dead reckoning system, a cellular triangulation system, or other positioning system. It can also include, for example, mapping software or navigation software that generates desired maps, navigation routes and other geographic functions.
Memory 21 stores operating system 29, network settings 31, applications 33, application configuration settings 35, data store 37, communication drivers 39, and communication configuration settings 41. Memory 21 can include all types of tangible volatile and non-volatile computer-readable memory devices. It can also include computer storage media (described below). Memory 21 stores computer readable instructions that, when executed by processor 17, cause the processor to perform computer-implemented steps or functions according to the instructions. Application 154 or the items in data store 156, for example, can reside in memory 21. Similarly, device 16 can have a client business system 24 which can run various business applications or embody parts or all of tenant 104. Processor 17 can be activated by other components to facilitate their functionality as well.
Examples of the network settings 31 include things such as proxy information, Internet connection information, and mappings. Application configuration settings 35 include settings that tailor the application for a specific enterprise or user. Communication configuration settings 41 provide parameters for communicating with other computers and include items such as GPRS parameters, SMS parameters, connection user names and passwords.
Applications 33 can be applications that have previously been stored on the device 16 or applications that are installed during use, although these can be part of operating system 29, or hosted external to device 16, as well.
The mobile device of
Note that other forms of the devices 16 are possible.
Computer 810 typically includes a variety of computer readable media. Computer readable media can be any available media that can be accessed by computer 810 and includes both volatile and nonvolatile media, removable and non-removable media. By way of example, and not limitation, computer readable media may comprise computer storage media and communication media. Computer storage media is different from, and does not include, a modulated data signal or carrier wave. It includes hardware storage media including both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by computer 810. Communication media typically embodies computer readable instructions, data structures, program modules or other data in a transport mechanism and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of any of the above should also be included within the scope of computer readable media.
The system memory 830 includes computer storage media in the form of volatile and/or nonvolatile memory such as read only memory (ROM) 831 and random access memory (RAM) 832. A basic input/output system 833 (BIOS), containing the basic routines that help to transfer information between elements within computer 810, such as during startup, is typically stored in ROM 831. RAM 832 typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processing unit 820. By way of example, and not limitation,
The computer 810 may also include other removable/non-removable volatile/nonvolatile computer storage media. By way of example only,
Alternatively, or in addition, the functionality described herein can be performed, at least in part, by one or more hardware logic components. For example, and without limitation, illustrative types of hardware logic components that can be used include Field-programmable Gate Arrays (FPGAs), Program-specific Integrated Circuits (ASICs), Program-specific Standard Products (ASSPs), System-on-a-chip systems (SOCs), Complex Programmable Logic Devices (CPLDs), etc.
The drives and their associated computer storage media discussed above and illustrated in
A user may enter commands and information into the computer 810 through input devices such as a keyboard 862, a microphone 863, and a pointing device 861, such as a mouse, trackball or touch pad. Other input devices (not shown) may include a joystick, game pad, satellite dish, scanner, or the like. These and other input devices are often connected to the processing unit 820 through a user input interface 860 that is coupled to the system bus, but may be connected by other interface and bus structures, such as a parallel port, game port or a universal serial bus (USB). A visual display 891 or other type of display device is also connected to the system bus 821 via an interface, such as a video interface 890. In addition to the monitor, computers may also include other peripheral output devices such as speakers 897 and printer 896, which may be connected through an output peripheral interface 895.
The computer 810 is operated in a networked environment using logical connections to one or more remote computers, such as a remote computer 880. The remote computer 880 may be a personal computer, a hand-held device, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to the computer 810. The logical connections depicted in
When used in a LAN networking environment, the computer 810 is connected to the LAN 871 through a network interface or adapter 870. When used in a WAN networking environment, the computer 810 typically includes a modem 872 or other means for establishing communications over the WAN 873, such as the Internet. The modem 872, which may be internal or external, may be connected to the system bus 821 via the user input interface 860, or other appropriate mechanism. In a networked environment, program modules depicted relative to the computer 810, or portions thereof, may be stored in the remote memory storage device. By way of example, and not limitation,
It should also be noted that the different embodiments described herein can be combined in different ways. That is, parts of one or more embodiments can be combined with parts of one or more other embodiments. All of this is contemplated herein.
Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.