Patent ID: 12217095

DETAILED DESCRIPTION

The innovation is now described with reference to the drawings, wherein like reference numerals are used to refer to like elements throughout. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the subject innovation. It may be evident, however, that the innovation can be practiced without these specific details.

While specific characteristics are described herein, it is to be understood that the features, functions and benefits of the innovation can employ characteristics that vary from those described herein. These alternatives are to be included within the scope of the innovation and claims appended hereto.

While, for purposes of simplicity of explanation, the one or more methodologies shown herein, e.g., in the form of a flow chart, are shown and described as a series of acts, it is to be understood and appreciated that the subject innovation is not limited by the order of acts, as some acts may, in accordance with the innovation, occur in a different order and/or concurrently with other acts from that shown and described herein. For example, those skilled in the art will understand and appreciate that a methodology could alternatively be represented as a series of interrelated states or events, such as in a state diagram. Moreover, not all illustrated acts may be required to implement a methodology in accordance with the innovation. Furthermore, the claimed subject matter can be implemented as a method, apparatus, or article of manufacture using programming or engineering techniques to produce software, firmware, hardware, or most any combination thereof to control a computer to implement the disclosed subject matter. The term “article of manufacture” as used herein is intended to encompass a computer program accessible from most any computer-readable device, carrier, or media. It is appreciated that embodiments are presented as a specific, non-limiting, examples of the innovation. Other embodiments are contemplated as well and intended to be included within the scope of this disclosure and claims appended hereto.

As used in this application, the terms “component” and “system” are intended to refer to a computer-related entity, either hardware, a combination of hardware and software, software, or software in execution. For example, a component can be, but is not limited to being, a process running on a processor, a processor, an object, an executable, a thread of execution, a program, and/or a computer. By way of illustration, both an application running on a server and the server can be a component. One or more components can reside within a process and/or thread of execution, and a component can be localized on one computer and/or distributed between two or more computers.

With reference now to the figures,FIG.1is an illustration of an example method100in accordance with one or more aspects of the disclosure. Method100is an illustration of an example of an augmented hybrid cloud service provisioning, according to one or more embodiments. In contrast to the outline of cloud services by the U.S. Department of Commerce National Institute of Standards and Technology (“NIST”), the disclosed innovation is not siloed into one of the three traditional cloud service categories of Software as a Service (“SaaS”), Platform as a Service (“PaaS”), and Infrastructure as a Service (“IaaS”). At102, a user, for example a client business application owner, presents a need or a desired scope stating, “I need infrastructure to support my application development efforts,” or “I need infrastructure to support the scope of my effort.” It is to be appreciated that this need is related to a technical area of cloud computing (as noted by NIST) and this innovation is directed to technical improvements in development systems themselves. It is also to be appreciated that a user may be an individual or a team of people. It is to be appreciated that Integration Layer component206(to be discussed in greater detail in regard toFIG.2) may parse the need, apply logic and provide supplemental information requests to the user.

At104an electronic request is submitted. The electronic request may be submitted through an “Infrastructure Services Portal” or (“ISP”). For example, ISP as will be discussed in reference toFIGS.3and4may be an ISP used. It is to be appreciated that the term portal and “Infrastructure Services Portal” are used interchangeably and that an augmented hybrid service is not constrained to a traditional IaaS as set forth by NIST. The request may be for hybrid cloud services that may include or may comprise a majority of infrastructure solutions, and services may be classified into categories of “standard” or “approved non-standard.” These categories may be set and defined differently for different target users. The categories may be set for example by such parameters as users belonging to a group of targeted internal development teams, or users belonging to a group of targeted external third parties. The electronic request may be in a form of a controlled offering of menu selections, and may provide guidance to a user such that for an item being requested, inputs necessary to ensure integration point data will be sufficient for most any predetermined rule sets for the particular predetermined user.

At106, the request is processed and either approved or declined. Approval may depend on a number of factors, for example, on a financial basis of the request or a related project. Factors for approval are not to be considered limiting. It is to be appreciated that approval factors may be highly customized and may include iteration check points. By this, it is understood that in some embodiments, approval may be granted in stages.

At108, provisioning of a technical solution is accomplished. The provisioning may be according to most any of the systems disclosed herein, for example, the system ofFIG.2, as will be discussed. It is to be appreciated that the provisioning includes pertinent touch points of integration, such as security compliance, configuration compliance, asset management, software entitlements, business continuity and financial reconciliation. Touch points may be, in one example, hyperlinks or pointers to connected and interacting systems. It is also to be appreciated that the pertinence may vary in degree and substance, depending on the target user engaged in the method. For example, users of a nature of an internal business unit may have more extensive integration of touch points or different touch points than may a user of a nature of an independent third party.

At110, delivery is accomplished. What is delivered is a fully compliant and secure hybrid cloud solution. It is to be appreciated that elements of the ensured fully compliant and secure solution may be finalized with delivery or with installation of the solution after delivery. It is to be appreciated that certain integration steps might occur after delivery (for example, post-delivery installation may require scale up and final integration into other live systems). Since integration points have been taken care of and ongoing maintenance of a platform solution are seamless to a user, the delivered solution comprises synergistic benefits beyond those that a user might obtain with a solution obtained through a traditional IaaS, followed by separate management actions. For example, a predetermined user from an internal business source would have an entirety of business touch points accounted for, even touch points that the user may not be aware of, and may typically not be called upon to be aware of.

Step112indicates an automated ongoing patching and compliance throughout the lifecycle of the technical solution. Similar to the delivery step, it is to be appreciated that certain steps may be actualized on an ongoing or intermittently timed basis after delivery of the technical solution (for example, patching and the window of patching activity may occur after provisioning of the technical solution and during the remainder of a user's efforts). It is to be appreciated that the disclosed innovation enjoys synergistic effects not only because these post-solution provisioning items are controlled outside of a user's actions or concerns, but that the inclusion of these items earlier in the method ensures that most any related touch points have been integrated properly.

In some embodiments, an option may be provided to users to opt out of a lifecycle management portion of an end to end process flow. In such a case, it is to be appreciated that hybrid cloud solutions may include suitable notifications at a delivery step110, at predetermined intervals during a remainder of a solution lifecycle, or both. In some embodiments the ability to modify an initial “opt-out” choice may be provided. Likewise, in some embodiments, the ability to “opt-out” after an initial “opt-in” may be provided.

Turning now toFIG.2, illustrated are example system components, according to one or more embodiments200. In an embodiment200, a system may be comprised of a set of components202that may be in communicative connection and other components that may interact with the set of components202. The set of components202may comprise a portal component204, an integration layer component206, a provisioning component208, a delivery component210and a lifecycle component212. It is to be appreciated that the portal component204may comprise the integration layer component206and the provisioning component208(as shown), or in certain embodiments, the components may be separate from, but in communicative connection with, the portal component204.

In an embodiment, the innovation provides an integration layer component206that existing application program interfaces (“APIs”) simply lack or are otherwise inefficient. The integration layer component206provides for integrating business level compliance factors and eliminates a need for subsequent point to point integration that most any new virtual machine being rolled out would need subsequent user accommodation in a traditional IaaS service offering. It is to be understood that the integration layer component206may be modified for various groups of targeted users. In an embodiment, for example in heavily regulated environments as in the financial industry or the medical industry, the integration layer component206may be dedicated in substantial part to compliance items that carry away a large downstream load that traditionally may have concerned users.

It is to be appreciated that the NIST Cloud Computing reference architecture and the US Government Cloud Computing Technology Roadmap each teach a different structure and system in its taxonomy and roadmap requirements. Differences exist in the disclosed innovation at multiple levels, from Level 1: Roles and Level 2: Activities; and because of these differences, Levels 3 and 4 Components and Sub Components also are not as taught or suggested by NIST.

At the Level 1: Roles, the disclosed innovation breaks through the siloed approach of NIST in relation to the roles of cloud broker, cloud service provider and cloud service consumer. At the Level 2: Activities, the NIST silo is further distanced, as the lines between PaaS and IaaS are purposefully blurred. Elements of service provision, service orchestration and cloud services management do not follow the NIST guidelines and follow a different innovative path. It is to be appreciated that other elements covered by the NIST taxonomy, such as for example, Security and Privacy (not shown) at Level 2: Activities of the NIST taxonomy are to be considered to be part of the disclosed innovation as would be understood by a person having ordinary skill in the art. For another example, the role of Cloud Auditor (not shown) and the components and subcomponents related to portability/interoperability (for data and system portability, and services interoperability) are to be considered as part of the disclosed innovation as would be understood by a person having ordinary skill in the art.

In another example, the disclosed innovation varies from traditional Iaas activity in an area of software stack and provider/consumer scope of control. The disclosed innovation provides for a level of control in order to ensure integration points in a final delivered solution. The level of control is managed outside of the typical control of an end user. This change in control alters the traditional software stack and control splits that occur in a standard IaaS arrangement. Likewise, traditional PaaS arrangements are also not followed. The hybrid innovation provides a hypervisor layer different than the taxonomy as provided by NIST. The innovation changes this model by not ceding control of configurations, at least at a level of distinction that a “suite” provided to a computer application development team has their “working base” prepped from. Instead, provisions are at a state of full compliance with predetermined target user rule sets, secure, and with future maintenance management items set. This structure contrasts significantly with SaaS and PaaS clouds in which many of these issues are not handled transparently for targeted users, and traditional structures grant very significant control over the software stack to targeted users, thereby mandating that targeted users must take on the responsibility to operate, update, and configure these traditional computing resources for security and reliability. The disclosed innovation avoids this and similar issues, and provides greater synergy by incorporating integration touch points that a user may not even be aware of.

In an embodiment, an integration layer component206may build, into a front end of a disclosed solution, control items related to delivery component210and lifecycle component212. At the front end, patching and timing windows for patching may be designated, and users may not need to be concerned with managing this aspect on their own. In some embodiments, an ability to opt out of such control may be offered, and suitable notation that provided solutions do not cover patches may be provided. In some embodiments the ability to modify an initial “opt-out” choice may be provided. Likewise, in some embodiments, the ability to “opt-out” after an initial “opt-in” may be provided.

In embodiments, an integration layer component206may provide a degree of self-management. It is to be understood that self-management controls may be integrated into the integration layer component206or may be a stand-alone component that integration layer component206interfaces with.

It is also to be appreciated that integration layer component206may be configured for selected target users to ensure particular enterprise wide compliance. In embodiments in which users are limited to be associated with a specific entity, enterprise-wide compliance may thus be assured, and system wide integration points would be seamlessly provided. The disclosed innovation thus differentiates from traditional IaaS by removing and eliminating out of band touch points that a user would be responsible for in a post-solution-provision timeframe, for example, future maintenance may no longer be a concern for a user. In another example, moving standards for credit card processing into a “bottom half of a guaranteed stack” provides users that may be concerned with computer application development ready platform for new improvements and remove integration aspects of legacy features. It is to be appreciated that this type of service/product may also be configured for different target users, for example, third parties, or may be configured to integrate third party remedies with ensured compliance to a hybrid cloud service solution.

The disclosed innovation provides for an atomic transaction tied to predetermined policies and regulations that may apply to different sets of users. Not only does this type of front loading eliminate later manual touch points, such a system is made more robust as integration of various touch points is ensured prior to a user (for example, the computer application development team) even begins to create new applications in a provisioned platform. It is to be appreciated that integration layer component206may perform combinations of multiple services into one or more new services.

In one or more embodiments, provisioning component208may provide various aspects of provisioning/configuration of a hybrid cloud service solution. Aspects may include rapid provisioning (automatically deploying cloud systems based on requested service/resources/capabilities), resource changing (adjusting configuration/resource assignment for repairs, upgrades and joining new nodes into a cloud service), monitoring and reporting (discovering and monitoring virtual resources, monitoring cloud operations and events and generating performance reports), metering (providing a metering capability at a predetermined level appropriate to a hybrid cloud service solution), and third party license agreement management (which may include software license agreements, and which may encompass contract definition, monitoring and enforcement according to defined policies). In one or more embodiments, provisioning component208may involve: database licensing, internal or external Technology Standards Center (“TSC”), Datacenter Procurement Suite (“DPS”), Path Computation Element (“PCE”)—OpenStack or Puppet, Cloud Integration Hub, Environment Modelling Center (“EMC”) Avamar, Local Network Service (“LNS”) Request System, New BuildTool (“NBT”), Network Security Service (“NSS”) Workflow Management System (“(@Work”), uDeploy, Virtual Machine Software (“Vmware vCenter”), Automated Build Tool (“ABT”), DevicePro, Hewlett-Packard Server Automation (“HP SA”), Hewlett-Packard Enterprises (“HPE”) Solutions Desk, NetZoom, and Symantec NetBackup. It is to be appreciated that both internal and external (third party) cloud service components may be provisioned by provisioning component208.

It is to be appreciated that delivery component210and lifecycle component212may operate along lines as understood by a person having ordinary skill in the art, with additional modifications to accommodate the augmented hybrid nature of the disclosed innovation. Delivery component210may be a component outside of the portal204, but still within the control of system202. Delivery component210assures that delivery is accomplished. What is delivered is a fully compliant and secure solution. It is to be appreciated that elements of the ensured fully compliant and secure solution may be finalized with delivery of a hybrid cloud services solution or with installation of the solution after delivery. Delivery component210acts under control as set within portal204and ensures that seamless and augmented provisioning of the disclosed innovation is met even after the solution is delivered. It is to be appreciated that certain integration steps might occur after delivery (for example, post-delivery installation may require scale up and final integration into other live systems). Since integration points have been taken care of and ongoing maintenance of the platform solution are seamless to a user, the delivered hybrid cloud service solution contains synergistic benefits beyond those that a user might obtain with a solution obtained through a traditional IaaS followed by separate management actions. Synergistic benefits may accrue, for example as hybrid cloud service solution may have entire business touch points accounted for, even touch points that a user may not be aware of and may typically not be called upon to be aware of.

In a similar manner, lifecycle component212may ensure that ongoing patching and compliance throughout a lifecycle of a technical solution stays within parameters as set in portal204. It is to be appreciated that certain steps may be actualized on an ongoing or intermittently timed basis after completion of delivery (for example, patching and a timing window of patching activity may occur after a provisioning and during a remainder of a user's efforts). It is to be appreciated that the disclosed innovation enjoys synergistic effects not only because these post-delivery items are controlled outside of a user's actions or concerns, but that inclusion of these items earlier in a provisioning process ensures that most any related touch points have been integrated properly.

In some embodiments, an option may be provided to users to opt out of the lifecycle management portion of an end to end process flow. In such a case, it is to be appreciated that a hybrid cloud services solution may include suitable notifications through delivery component210or lifecycle component212at predetermined intervals during a remainder of a solution lifecycle.

Rules214may be associated with a set of components202. It is to be appreciated that Rules214may be predetermined and may align with groups or categories of target users. Rules214may also be updated from time to time. According to various target user characteristics, Rules214may vary from company-wide or enterprise-wide concerns to industry-wide concerns, and may include such things, as example, existing legal rules for an industry. It is to be appreciated that rules may be set for various groups and for interactions between various groups.

Physicals216may also be associated with a set of components202. Physicals216may include traditional items that a traditional PaaS or Saas consumer service would include. For PaaS attributes, a suitable third party PaaS solution, such as Microsoft Azure, may be integrated into a hybrid solution of the disclosed innovation. Physicals may include hardware such as for example Computers (CPU, memory), network (router, firewall, switch, network link and interface), storage components (hard disk), and other physical computing infrastructure elements. Physicals may also include facility items such as for example: Heating, Ventilation, and Air Conditioning (“HVAC”), power, communications, and other aspects of a physical plant.

System200may be accessed by users though computing devices218of users through a network220, which may be in communicative connection with the set of components202. It is to be appreciated that Rules214and Physicals216may be in direct communicative contact with Network220and Computing Device218.

Turning now toFIG.3, illustrated is an example system component according to one or more embodiments300, specifically pictured are example embodiments of how portal304may appear to a user. InFIG.3A, embodiment one shows a portal component as an interactive web page on an example personal computer screen. InFIG.3B, embodiment two shows a portal component as an interactive smartphone or tablet application. It is to be appreciated that the portal component304is not limited by these embodiments or by interactive controls presented therein.FIG.4provides additional embodiments related to portal404and embodiments400. InFIG.4A, embodiment three shows a portal component as an interactive web page on an example personal computer screen. InFIG.4B, embodiment four shows a portal component as an interactive smartphone or tablet application. It is to be appreciated that the portal component404is not limited by these embodiments or by interactive controls presented therein.

FIG.5is an illustration of an example method500in accordance with one or more aspects of the disclosure. The method500is an illustration of an example an augmented cloud service provisioning, according to one or more embodiments. At502, a user, for example a client Business Application Owner, interacts with a portal504, which may for example, be a portal such as discussed in relation toFIGS.2,3and4. Portal504may present a landing page506with menu controls offering a selection of services. It is to be appreciated that the selection of services may offer one or more embodiments of methods disclosed herein and may also offer other services both related to an unrelated to the disclosed innovation. Method500may continue by accepting inputs of an initiate order508. An initiate order508may comprise a section for request details to be entered at510. It is to be appreciated that other menu choices (not shown) may be available. For example, the creation of orders and tracking for other infrastructure services may be provided through alternative menu choices. An embodiment may include a menu choice for providing visibility or tracking or monitoring of the entire workflow regardless of any automated updates. Some embodiments may provide for default monitoring, backup capabilities and access capabilities. Request details may vary by target user and may include items such as “Requestor” (which may be auto-populated), “On behalf of,” Assessment Unit (“AU”) (which may be derived from above information), “Application ID,” “App Owner” (which may be derived from Application ID and auto-populated), “App support team” (which also may be derived from Application ID and auto-populated), and “Planner” (which may be derived from above), and “Approver” (which may be derived from requestor or ‘on behalf of’). It is to be further appreciated that the entering of request details at510may create an asset record (not shown).

Once information has been obtained, Order512may be undertaken. In an embodiment, order512may be comprised of four blocks, each with subparts (not shown). Order512may also comprise a cascading series of options with request forms per layer of option (not shown).

Continuing with the embodiment, a first of four blocks of order512may be “Select Compute Details.” “Select Compute Details” may comprise subparts such as quantity, size (for example from a specified list), operating system, authentication method (which may be derived from OS), authentication domain, Server Access Control BoKS® Host Group (if an option of Uniplexed Information and Computing System (“UNIX”) has been chosen), site, environment, and server function.

A second of four blocks of order512may be “Select Optional Services.” “Select Optional Services” may comprise selections such as Domain Name System (“DNS”), load balancing, firewall, network, and certificate handling.

A third of four blocks of order512may be “Select Storage/Backup.” The “Select Storage/Backup” may comprise option selections of storage type (for example, VMWare Disk), storage amount (in GB per disk), backup policy, backup amount (GB), and file system layout.

A fourth of four blocks of order512may be “Select Software.” The “Select Software” block may comprise options such as software name, Time Stamp Counter Identification (“TSC ID”) (which may be derived from above), version (if not the latest), release, patch level, and option flagging whether a custom quote may be desired.

Order512may also comprise a cascading series of options with request forms per layer of option. The cascading decision blocks may include, for example: “CPU/Memory Upgrade?;” “Storage Add/Remove?;” “Software Add?;” “Decomm VM?;” and “Other?”. It should be appreciated that this cascading series may be open ended or may be able to be modified to include specific target user items or modifications that may extend beyond specific target users.

Once order512is completed, the next step in method500is the step of approval514. In an example, approval514may comprise one action block, one decision block, and two subsequent actions from the decision block. The action block may be “review order, cost & submit for approval.” The decision block may be “AU/App Owner approve?” An affirmative response may lead to an email approval notification to requestor, and an initiation of a next step. A negative response may lead to an email reject notification to requestor. In some embodiments, a reject notification may highlight a rational of the rejection. In some other embodiments, a reject notification may provide suggestions or recommendations to the requestor.

Upon an affirmative response from approval514, the method proceeds to generate individual work requests at work requests516. At this step, actions as captured in order512are initiated, and a solution set for all services may be requested. The steps of fulfilling requests may be processed in parallel. Fulfillment may note whether a request for a particular aspect of a solution has been made, and in some embodiments, providing status updates as the fulfillment of individual aspects proceeds. Items processed in parallel may comprise, for example: compute, storage, backups, server access, server configuration, software, configure middleware, load balancing, firewall rules, certificates, network connectivity, and DNS.

Step request complete518may be a final fulfillment step and may in some embodiments be represented by a decision block “All work requests complete?” The decision block may have a self-looping “no” path and a ‘yes’ path to a communication to requestor with post cloud service instructions and links.

At this point, the method has completed its steps within a portal, for example, portal204as discussed inFIG.2or portal304or portal404as shown in embodiments ofFIG.3or4. It is to be appreciated that the steps completed within the portal may include calls for action outside of the portal (not shown), for example, actions such as application load & testing, operational readiness, and lifecycle management. The processing within the portal may provide controls for these actions, and it is to be appreciated that the seamless actions remove administrative oversight and downstream actions that may have been required from users under more traditional cloud service solutions.

While for purposes of simplicity of explanation, the methods are shown and described as a series of blocks, it is to be understood and appreciated that the claimed subject matter is not limited by the order of the blocks, as some blocks may occur in different orders and/or concurrently with other blocks from what is depicted and described herein. Moreover, not all illustrated blocks may be required to implement the methods described hereinafter.

Still another embodiment involves a computer-readable medium including processor-executable instructions configured to implement one or more embodiments of the techniques presented herein. An embodiment of a computer-readable medium or a computer-readable device devised in these ways is illustrated inFIG.6, wherein an implementation600includes a computer-readable medium602, such as a CD-R, DVD-R, flash drive, a platter of a hard disk drive, etc., on which is encoded computer-readable data604. This computer-readable data604, such as binary data including a plurality of zero's and one's as shown in604, in turn includes a set of computer instructions606configured to operate according to one or more of the principles set forth herein. In one such embodiment600, the processor-executable computer instructions606may be configured to perform a method608, such as the method100ofFIG.1or such as method500ofFIG.5. In another embodiment, the processor-executable instructions606may be configured to implement a system, such as the system200ofFIG.2. Many such computer-readable media may be devised by those of ordinary skill in the art that are configured to operate in accordance with the techniques presented herein.

As used in this application, the terms “component”, “module,” “system”, “interface”, and the like are generally intended to refer to a computer-related entity, either hardware, a combination of hardware and software, software, or software in execution. For example, a component may be, but is not limited to being, a process running on a processor, a processor, an object, an executable, a thread of execution, a program, or a computer. By way of illustration, both an application running on a controller and the controller may be a component. One or more components residing within a process or thread of execution and a component may be localized on one computer or distributed between two or more computers.

Further, the claimed subject matter is implemented as a method, apparatus, or article of manufacture using standard programming or engineering techniques to produce software, firmware, hardware, or most any combination thereof to control a computer to implement the disclosed subject matter. The term “article of manufacture” as used herein is intended to encompass a computer program accessible from most any computer-readable device, carrier, or media. Of course, many modifications may be made to this configuration without departing from the scope or spirit of the claimed subject matter.

FIG.7and the following discussion provide a description of a suitable computing environment to implement embodiments of one or more of the provisions set forth herein. The operating environment ofFIG.7is merely one example of a suitable operating environment and is not intended to suggest limitations as to the scope of use or functionality of the operating environment. Example computing devices include, but are not limited to, personal computers, server computers, hand-held or laptop devices, mobile devices, such as mobile phones, Personal Digital Assistants (PDAs), media players, and the like, multiprocessor systems, consumer electronics, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, etc.

Generally, embodiments are described in the general context of “computer readable instructions” being executed by one or more computing devices. Computer readable instructions may be distributed via computer readable media as discussed herein. Computer readable instructions may be implemented as program modules, such as functions, objects, Application Programming Interfaces (APIs), data structures, and the like, that perform one or more tasks or implement one or more abstract data types. Typically, the functionality of the computer readable instructions is combined or distributed as desired in various environments.

FIG.7illustrates a system700including a computing device702configured to implement one or more embodiments provided herein. In one configuration, computing device702includes at least one processing unit704and memory706. Depending on the exact configuration and type of computing device, memory706may be volatile, such as RAM, non-volatile, such as ROM, flash memory, etc., or a combination of the two. This configuration is illustrated inFIG.7by dashed line708.

In other embodiments, device702includes additional features or functionality. For example, device702may include additional storage such as removable storage or non-removable storage, including, but not limited to, magnetic storage, optical storage, etc. Such additional storage is illustrated inFIG.7by storage710. In one or more embodiments, computer readable instructions to implement one or more embodiments provided herein are in storage710. Storage710may store other computer readable instructions to implement an operating system, an application program, etc. Computer readable instructions may be loaded in memory706for execution by processing unit704, for example.

The term “computer readable media” as used herein includes computer storage media. Computer storage media includes volatile and nonvolatile, removable and non-removable media implemented in most any method or technology for storage of information such as computer readable instructions or other data. Memory706and storage710are examples of computer storage media. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, Digital Versatile Disks (DVDs) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or most any other medium which may be used to store the desired information, which may be accessed by device702. Most any such computer storage media is part of device702.

Device702includes input device(s)712such as keyboard, mouse, pen, voice input device, touch input device, infrared cameras, video input devices, or most any other input device. Output device(s)714such as one or more displays, speakers, printers, or most any other output device may be included with device702. Input device(s)712and output device(s)714may be connected to device702via a wired connection, wireless connection, or most any combination thereof. In one or more embodiments, an input device or an output device from another computing device may be used as input device(s)712or output device(s)714for computing device702. Device702may include communication connection(s)716to facilitate communications with one or more other devices718, and such communication may occur over a network, for example network720.

Although, in accordance with some aspects, the subject matter has been described herein in language specific to structural features or methodological acts, it is to be understood that the subject matter of 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 embodiments.

Various operations of embodiments are provided herein. The order in which one or more or all of the operations are described should not be construed as to imply that these operations are necessarily order dependent. Alternative ordering will be appreciated based on this description. Further, not all operations may necessarily be present in each embodiment provided herein.

As used in this application, “or” is intended to mean an inclusive “or” rather than an exclusive “or”. Further, an inclusive “or” may include most any combination thereof (e.g., A, B, or most any combination thereof). In addition, “a” and “an” as used in this application are generally construed to mean “one or more” unless specified otherwise or clear from context to be directed to a singular form. Additionally, at least one of A and B and/or the like generally means A or B or both A and B. Further, to the extent that “includes”, “having”, “has, “with”, or variants thereof are used in either the detailed description or the claims, such terms are intended to be inclusive in a manner similar to the term “comprising”.

Further, unless specified otherwise, “first”, “second”, or the like are not intended to imply a temporal aspect, a spatial aspect, an ordering, etc. Rather, such terms are merely used as identifiers, names, etc. for features, elements, items, etc. For example, a first channel and a second channel generally correspond to channel A and channel B or two different or two identical channels or the same channel. Additionally, “comprising”, “comprises”, “including”, “includes”, or the like generally means comprising or including, but not limited to.

Although the disclosure has been shown and described with respect to one or more implementations, equivalent alterations and modifications will occur based on a reading and understanding of this specification and the annexed drawings. The disclosure includes all such modifications and alterations and is limited only by the scope of the following claims.

What has been described above includes examples of the innovation. It is, of course, not possible to describe every conceivable combination of components or methodologies for purposes of describing the subject innovation, but one of ordinary skill in the art may recognize that many further combinations and permutations of the innovation are possible. Accordingly, the innovation is intended to embrace all such alterations, modifications and variations that fall within the spirit and scope of the appended claims. Furthermore, to the extent that the term “includes” is used in either the detailed description or the claims, such term is intended to be inclusive in a manner similar to the term “comprising” as “comprising” is interpreted when employed as a transitional word in a claim.