+

US20170132677A1 - Systems and methods for providing repeated use of computing resources - Google Patents

Systems and methods for providing repeated use of computing resources Download PDF

Info

Publication number
US20170132677A1
US20170132677A1 US15/413,243 US201715413243A US2017132677A1 US 20170132677 A1 US20170132677 A1 US 20170132677A1 US 201715413243 A US201715413243 A US 201715413243A US 2017132677 A1 US2017132677 A1 US 2017132677A1
Authority
US
United States
Prior art keywords
resource
entity
service
computing
paas
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US15/413,243
Inventor
John Catalano
Kyle Falkenhagen
Eric Pulier
David Roberts
Tim Woodall
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CSC Agility Platform Inc
Original Assignee
ServiceMesh Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US12/488,424 external-priority patent/US8514868B2/en
Priority claimed from US13/009,774 external-priority patent/US8931038B2/en
Priority claimed from US13/354,275 external-priority patent/US9069599B2/en
Priority claimed from US13/842,413 external-priority patent/US9489647B2/en
Application filed by ServiceMesh Inc filed Critical ServiceMesh Inc
Priority to US15/413,243 priority Critical patent/US20170132677A1/en
Publication of US20170132677A1 publication Critical patent/US20170132677A1/en
Priority to US17/094,204 priority patent/US20210133836A1/en
Priority to US17/695,116 priority patent/US20220207580A1/en
Priority to US18/338,894 priority patent/US12248971B2/en
Priority to US18/978,659 priority patent/US20250111416A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0603Catalogue creation or management
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse

Definitions

  • the present technology relates to the field of computing resources. More particularly, the present technology relates to systems and techniques for providing repeated use of computing resources.
  • computing resources such as cloud computing resources
  • Cloud computing resources Users of cloud computing services can utilize computing resources provided by the cloud computing services to perform a wide variety of tasks, such as providing infrastructure, platforms, or applications (e.g., software, services).
  • entities such as corporations can utilize cloud computing to provide low-level infrastructure offerings.
  • entities can utilize cloud computing to provide middle-level platform offerings.
  • entities such as application developers can utilize cloud environments to provide high-level application offerings.
  • computing resources can be provided via service catalogs (or self-service portals).
  • Service catalogs can provide users with access to computing resources (or other offerings) that are available for consumption or utilization.
  • the spectrum of available computing resources can be limited and the process of developing or providing these computing resources can be costly, time-consuming, and inefficient.
  • Various embodiments of the present disclosure can include systems, methods, and non-transitory computer readable media configured to provide access to a first-level computing resource via a service catalog.
  • the first-level computing resource can be created by a first entity.
  • a second-level computing resource can be received.
  • the second-level computing resource can be created by a second entity based, at least in part, on the first-level computing resource.
  • Access to the second-level computing resource can be provided via the service catalog. Relational information associated with the first-level computing resource and the second-level computing resource can be tracked.
  • the second-level computing resource can be associated with a higher-level than the first-level computing resource
  • the third-level computing resource can be associated with a higher-level than the second-level computing resource
  • each of the first-level computing resource, the second-level computing resource, and the third-level computing resource can correspond to at least one of an Infrastructure-as-a-Service (IaaS) offering, a Platform-as-a-Service (PaaS) offering, or a Software-as-a-Service (SaaS) offering.
  • IaaS Infrastructure-as-a-Service
  • PaaS Platform-as-a-Service
  • SaaS Software-as-a-Service
  • At least two of the first entity, the second entity, or the third entity can correspond to a single entity.
  • the relational information can includes at least one of financial information, licensing information, service-level agreement (SLA) information, or configuration information.
  • SLA service-level agreement
  • one or more payments can be received from a fourth entity that accesses the third-level computing resource.
  • the one or more payments can be allocated to the first entity, the second entity, and the third entity based on the relational information associated with the first-level computing resource, the second-level computing resource, and the third-level computing resource.
  • the relational information can indicate a first portion of the one or more payments to be allocated to the first entity, a second portion of the one or more payments to be allocated to the second entity, and a third portion of the one or more payments to be allocated to the third entity.
  • a marketplace configured to facilitate one or more interactions among users of the service catalog can be provided.
  • a computing system can be associated with an abstraction layer of a cloud management system.
  • the computing system can be configure to provide for repeated use of computing resources.
  • FIG. 1 illustrates an example scenario in which repeated use of computing resources can be implemented, according to an embodiment of the present disclosure.
  • FIG. 2 illustrates an example scenario in which repeated use of computing resources can be implemented, according to an embodiment of the present disclosure.
  • FIG. 3 illustrates an example scenario in which repeated use of computing resources can be implemented and relational information can be tracked, according to an embodiment of the present disclosure.
  • FIG. 4 illustrates an example system implementation configured to provide repeated use of computing resources, according to an embodiment of the present disclosure.
  • FIG. 5 illustrates an example method implementation for providing repeated use of computing resources, according to an embodiment of the present disclosure.
  • FIG. 6 illustrates an example method implementation for providing repeated use of computing resources, according to an embodiment of the present disclosure.
  • FIG. 7 shows a diagram illustrating an example system in accordance with an embodiment of the present disclosure.
  • FIG. 8 shows a diagram illustrating an example management module in accordance with an embodiment of the present disclosure.
  • FIG. 9 illustrates an example of a computing device or system that can be used to implement one or more of the embodiments described herein, according to an embodiment of the present disclosure.
  • IaaS Infrastructure-as-a-Service
  • PaaS Platform-as-a-Service
  • SaaS Software-as-a-Service
  • IaaS, PaaS, and SaaS resources can differ with respect to the “completeness” of the resource.
  • IaaS is usually associated with delivery of low-level operating system instances and resources
  • PaaS is associated with delivery of a middle-ware environment and resources, which can be suitable for deploying application code.
  • SaaS is usually associated with delivery of high-level, full-featured, ready-to-use applications (e.g., software, services, programs, etc.).
  • higher-level offerings can be built (e.g., created, generated, developed, etc.) based on lower-level offerings. For instance, one can build a PaaS offering by starting with an IaaS resource and then adding and configuring middle-ware software to the IaaS resource to create the PaaS offering. Similarly, one can build a SaaS application based on a PaaS resource or offering.
  • self-service portals or service catalogs can operate in a somewhat restricted fashion.
  • offerings or computing resources
  • Various embodiments of the present disclosure can provide for repeated use (e.g., recursive consumption and/or publication) of computing resources or offerings, such as cloud computing resources or offerings.
  • the disclosed technology can provide a self-service portal or service catalog configured to allow for a layered creation of offerings by a relatively larger number of users or entities.
  • a user can identify and consume a low-level offering (e.g., IaaS) and use it to build a middle-level offering (e.g., PaaS) by adding and configuring middle-ware software components.
  • the middle-level offering can then be “republished” back into (or made available at) the self-service portal or service catalog for consumption by other users.
  • a middle-level offering such as the middle-level offering built based on the low-level offering, can be consumed and used to create a high-level offering (e.g., SaaS).
  • the high-level offering can also be republished back into the self-service portal or service catalog for subsequent consumption or utilization. Relational information associated with the low-level, middle-level, and/or high-level offerings can also be tracked, such as for payment allocation and/or licensing purposes.
  • the disclosed technology can, for example, provide an improved approach to consuming and publishing computing resources (e.g., repeatedly or recursively), allow for a larger number of entities to build and offer computing resources, and permit a wider variety of computing resources to be published and available.
  • FIG. 1 illustrates an example scenario 100 in which repeated use of computing resources can be implemented, according to an embodiment of the present disclosure.
  • the example scenario 100 can include a repeated use module (e.g., component, unit, system, etc.) 102 .
  • the repeated use module 102 can be implemented in, integrated with, or can correspond to a service catalog, which can reside, in part or in whole, within an abstraction layer of a cloud management system/platform.
  • the repeated use module 102 can be configured to automate and facilitate repeated use (e.g., recursive consumption and/or publication) of computing resources or offerings.
  • the repeated use module 102 can provide access to a low-level resource such as IaaS 104 , a high-level resource such as SaaS 108 , as well as one or more intermediate-level or middle-level resources such as PaaS 106 .
  • a low-level resource such as IaaS 104
  • a high-level resource such as SaaS 108
  • one or more intermediate-level or middle-level resources such as PaaS 106 .
  • the repeated use module 104 can be configured to provide User A 110 with access to the low-level resource (e.g., IaaS 104 ).
  • the low-level resource can provide infrastructure, an operating system (OS), and/or other low-level features.
  • User A 110 can consume or utilize the low-level resource to build, create, or develop a middle-level resource (e.g., PaaS 106 ).
  • middle-level resource e.g., PaaS 106
  • User A 110 can add middleware and/or other middle-level functionality, such as web servers, applications servers, storage systems, databases, etc., to the low-level resource in order to create the middle-level resource.
  • User A 110 can “publish” (e.g., make available, provide, offer, release, etc.) the middle-level resource via the repeated use module 102 .
  • the repeated use module 102 can then provide access to the middle-level resource for consumption.
  • User B 112 can search for, find, and/or identify the middle-level resource (e.g., PaaS 106 ) via the repeated use module 102 .
  • User B 112 can consume the middle-level resource and use it to develop a high-level resource (e.g., SaaS 108 ).
  • a high-level resource e.g., SaaS 108
  • User B 112 can start with the middle-level resource and deploy application code with respect to the middle-level resource to generate a high-level resource (e.g., SaaS 108 ), such as an application, service, program, software, etc.
  • User B 112 can publish and offer the generated high-level resource via the repeated use module 102 .
  • User B 112 can republish (or publish) the high-level resource back into the repeated use module 102 (or into a service catalog associated with the repeated use module 102 ).
  • the repeated use module 102 (or associated service catalog) can enable the high-level resource to be available for consumption.
  • User C 114 can, for example, consume the high-level resource.
  • the example scenario 100 of FIG. 1 can illustrate how the repeated use module 102 is configured to provide the ability to link publishing/republishing steps together, such as by publishing IaaS 104 , (re-)publishing PaaS 106 , and (re-)publishing SaaS 108 .
  • each of User A 110 , User B 112 , and User C 114 can correspond to an entity, such as a corporation, company, enterprise, organization, group, individual, virtual unit, etc., or any combination thereof, or to any number of persons associated with the entity.
  • User A 110 , User B 112 , and User C 114 can all correspond to the same entity.
  • at least two of User A 110 , User B 112 , and User C 114 can correspond to the same entity.
  • User A 110 , User B 112 , and User C 114 can correspond to different entities.
  • the consumption of low-level resources e.g., low-level offerings, low-level services, etc.
  • the republishing of higher-level resources e.g., resources having a higher-level than low-level resources
  • the consumers, publishers, and/or users of the resources can correspond to different departments within an entity.
  • an IT department of a company can create a PaaS offering using IaaS resources.
  • application developers e.g., business units
  • the company can create a SaaS offering based on the PaaS offering created by the company's IT department.
  • FIG. 2 illustrates an example scenario 200 in which repeated use of computing resources can be implemented, according to an embodiment of the present disclosure.
  • the consumption and republishing of computing resources or offerings can, for example, occur among different entities, such as organizations, using a (global) self-service portal or service catalog.
  • Entity A 210 can create and offer/publish an IaaS resource 204 via a repeated use module 202 (or via a service catalog associated with the repeated use module 202 ).
  • Entity B 212 can (find and) consume the IaaS resource 204 and use it to create a PaaS offering 206 .
  • Entity B 212 can subsequently offer or (re-)publish the PaaS offering 206 back at the repeated use module 202 (or service catalog).
  • Entity C 214 can (identify and) consume the PaaS offering 206 published by Entity B 212 and can use it to create a SaaS offering 208 .
  • Entity C 214 can (re-)publish the SaaS offering 208 back at the repeated use module 202 (or service catalog).
  • Entity D 216 can then consume the SaaS offering 208 published by Entity C 214 .
  • FIG. 3 illustrates an example scenario 300 in which repeated use of computing resources can be implemented and relational information can be tracked, according to an embodiment of the present disclosure.
  • relational information can refer to information associated with the relationships between various computing resources or offerings provided by a repeated use module 302 (or service catalog) and/or the relations between their consumers, publishers, and/or users.
  • relational information can include (but is not limited to) information about money flow or finances (e.g., real money, virtual money, internal budget, etc.) associated with the various uses (e.g., consumption, publication, republication, etc.) and/or users (e.g., consumers, publishers, republishers, etc.) of the computing resources or offerings.
  • money flow or finances e.g., real money, virtual money, internal budget, etc.
  • uses e.g., consumption, publication, republication, etc.
  • users e.g., consumers, publishers, republishers, etc.
  • consumption of a low-level resource can “cost” a given amount.
  • a publisher or developer of a middle-level resource can create the middle-level resource based on the low-level resource, and can offer the created middle-level resource for sale.
  • the publisher or developer of the middle-level resource can consider the given cost of the low-level resource as a “cost of goods sold.”
  • the publisher or developer of the middle-level level can accordingly price the middle-level resource to cover the given cost of the low-level resource.
  • a publisher or developer of a high-level resource can create the high-level resource based on the middle-level resource.
  • the high-level resource publisher or developer can also consider the price paid for the middle-level resource as a “cost of goods sold.” As such, the high-level resource publisher or developer can price its offered high-level resource to cover the cost of the middle-level resource (which incorporates the cost of the low-level resource). When a high-level resource consumer pays for the high-level resource, the price paid can cover the costs associated with all of the high-level, middle-level, and low-level resources.
  • Various embodiments of the present disclosure can track (e.g., record, maintain, etc.) relational information, including financial information, associated with various uses and/or users of the computing resources and can allocate or distribute finances appropriately based on the financial information.
  • the illustrated example scenario 300 can involve a repeated use module 302 (and/or a service catalog associated with the repeated use module 302 ).
  • Entity A 310 can create and publish an IaaS resource 304 via the repeated use module 302 (or service catalog). In this example, Entity A 310 can decide to charge $15 for the IaaS resource 304 .
  • Entity B 312 can find the IaaS resource 304 and decide to consume or use the IaaS resource 304 to create a PaaS resource 306 .
  • Entity B 312 can decide to charge $35 for building the PaaS resource 306 , which is built based on the $15 IaaS resource 304 , and thus resulting in a total of $50 for the PaaS resource 306 built on the IaaS resource 304 .
  • Entity B 312 can offer and republish the PaaS resource 306 back at the repeated use module 302 (or service catalog).
  • Entity C 314 can identify the PaaS resource 306 and decide to consume or use the PaaS resource 306 to create a SaaS resource 308 .
  • Entity C 314 can decide to charge $50 for building the SaaS resource 308 , which is built based on the $35 PaaS resource 306 and the $15 IaaS resource 304 , and thus resulting in a total of $100 for the SaaS resource 308 (incorporating the PaaS resource 306 and the IaaS resource 304 ).
  • Entity C 314 can then offer and republish the SaaS resource 308 back at the repeated use module 302 (or service catalog).
  • Entity D 316 can decide to purchase the SaaS resource 308 and pay $100.
  • the repeated use module 302 can track the relational information, including financial information, associated with the SaaS resource 308 , the PaaS resource 306 , and the IaaS resource 304 (and/or the relational information associated with Entity A 310 , Entity B 312 , and Entity C 314 ). Accordingly, the repeated use module 302 can automatically allocate (and/or distribute) the $100 paid by Entity D 316 in the appropriate amounts to Entity A 310 , Entity B 312 , and Entity C 314 . In this example, 50% of the $100 (or $50) can be given to Entity C 314 , 35% of the $100 (or $35) can be given to Entity B 312 , and 15% of the $100 (or $15) can be given to Entity A 310 .
  • the repeated use module 302 can be configured to track and apply other types of relational information including (but not limited to) licensing information, service-level agreement (SLA) information, configuration information, and/or other similar types of information. Further, constraints related to the relational information can be applied by the repeated use module 302 .
  • SLA service-level agreement
  • the repeated use module 302 can receive and enforce licensing terms as constraints with respect to an IaaS resource, a PaaS resource, a SaaS resource 108 , or any other level of computing resource.
  • an entity that publishes a resource may offer the resource subject to specified licensing terms to consumers of the resource.
  • the licensing terms can limit access to the resource based on any number and any types of constraints, such as number of seats, usage restrictions, geographic restrictions, tiered pricing structures, time duration, competitive exclusions, etc.
  • the repeated use module 302 may enforce these constraints before or during consumption of the resource by any entity. For example, if the license terms provide that a consuming entity may not exceed a predetermined number of seats, then the repeated use module 302 may determine how many users associated with the entity are using the resource and cease access for users that exceed the permitted number of seats.
  • the license terms on which the resource can be offered to an entity may provide for usage restrictions.
  • the license terms prohibit the combination of an offered resource with certain other resources (e.g., incompatible software, open source software with copyleft, etc.)
  • the repeated use module 302 can prohibit such combination by a consuming entity.
  • the license terms for the resource published by an entity can exclude competitors of the entity from accessing the resource.
  • the repeated use module 302 upon determining that a competitor to the entity seeks access to the resource, can deny the competitor access to the resource.
  • the repeated use module 302 may apply constraints associated with SLAs and configuration information in the publication and consumption of resources.
  • FIG. 4 illustrates an example system implementation configured to provide repeated use of computing resources, according to an embodiment of the present disclosure.
  • the example system implementation can correspond to a repeated use module 400 .
  • the repeated use module 400 can correspond to the repeated use module 102 of FIG. 1 , the repeated use module 202 of FIG. 2 , the repeated use module 302 of FIG. 3 , and/or the repeated use module 750 of FIG. 7 .
  • the repeated use module 400 can, for example, comprise a consumption mechanism (or component, feature, unit, module, etc.) 402 , a publication mechanism 404 , a tracking mechanism 406 , and a controller mechanism 408 .
  • the controller mechanism 408 can be configured to manage or control the various tasks of the repeated use module 400 , such as facilitating the interactions or communications among the consumption mechanism 402 , the publication mechanism 404 , and/or the tracking mechanism 406 .
  • the controller mechanism 408 can also apply constraints relating to relational information in the publication and consumption of resources, as discussed herein.
  • the consumption mechanism 402 can be configured to perform operations associated with the consumption of computing resources or offerings.
  • the consumption mechanism 402 can be configured to facilitate providing access to various computing resources or offerings for consumption.
  • the publication mechanism 404 can be configured to perform operations associated with the publishing (or republishing) of computing resources or offerings.
  • the publication mechanism 404 can be configured to facilitate receiving various developed/created computing resources or offerings to be offered and/or (re-)published.
  • the tracking mechanism 406 can be configured to perform operations associated with tracking, recording, and/or maintaining information (e.g., relational information) associated with various computing resources and/or users.
  • the tracking mechanism 406 can be configured to facilitate tracking relational information including (but not limited to) financial information, licensing information, service-level agreement (SLA) information, and/or configuration information.
  • the tracking mechanism 406 can also be configured to facilitate receiving one or more payments and allocating (and/or distributing) the one or more payments appropriately based on the relational information.
  • FIG. 5 illustrates an example method implementation 500 for providing repeated use of computing resources, according to an embodiment of the present disclosure. It should be appreciated that there can be additional, fewer, or alternative steps performed in similar or alternative orders, or in parallel, within the scope of the various embodiments unless otherwise stated.
  • the example method implementation 500 can provide access to a first-level computing resource via a service catalog.
  • the first-level computing resource can be created by a first entity.
  • Step 504 can include receiving a second-level computing resource.
  • the second-level computing resource can be created by a second entity based, at least in part, on the first-level computing resource.
  • access to the second-level computing resource can be provided via the service catalog, at step 506 .
  • the example method implementation 500 can track relational information associated with the first-level computing resource and the second-level computing resource, at step 508 .
  • the relational information can include (but is not limited to) at least one of financial information, licensing information, service-level agreement (SLA) information, and/or configuration information, etc., as discussed previously.
  • FIG. 6 illustrates an example method implementation 600 for providing repeated use of computing resources, according to an embodiment of the present disclosure. Again, there can be additional, fewer, or alternative steps performed in similar or alternative orders, or in parallel, within the scope of the various embodiments unless otherwise stated.
  • the example method 600 can receive a third-level computing resource, at step 602 .
  • the third-level computing resource can be created by a third entity based, at least in part, on the second-level computing resource.
  • the example method 600 can provide access to the third-level computing resource via the service catalog, at step 604 .
  • Step 606 can include tracking relational information associated with the first-level computing resource, the second-level computing resource, and the third-level computing resource.
  • one or more payments can be received from a fourth entity that accesses the third-level computing resource.
  • the one or more payments can be allocated (and/or distributed) to the first entity, the second entity, and the third entity based on the relational information associated with the first-level computing resource, the second-level computing resource, and the third-level computing resource.
  • the relational information can indicate a first portion of the one or more payments to be allocated to the first entity, a second portion of the one or more payments to be allocated to the second entity, and a third portion of the one or more payments to be allocated to the third entity.
  • each of the first, second, and third portions can include a specified amount, a proportion, and/or a percentage.
  • one or more intermediate-level resources can be optional.
  • low-level resources such as IaaS can be used directly to create high-level resources such as SaaS.
  • a developer or creator can start with a low-level resource, add desired functionality to the low-level resource, and generate a high-level resource (e.g., application, service, etc.).
  • the service catalog or self-service portal can operate or work with various entities and allow for consumption and/or (re-)publishing at multiple levels.
  • the various entities can correspond to different corporate entities. In some embodiments, the various entities can correspond to different departments or portions of a single entity. In some embodiments, the various entities can correspond to a single entity.
  • the service catalog or self-service portal can handle the money flow or licensing agreements between all parties in a single-party or multi-party chain of publishers.
  • the disclosed technology can allow for the creation of a marketplace or exchange for facilitating interactions among users (e.g., consumers, publishers, etc.) of computing resources or offerings.
  • users e.g., consumers, publishers, etc.
  • FIG. 7 shows a diagram illustrating an example system 710 in accordance with an embodiment of the present disclosure.
  • FIG. 7 illustrates a cloud-computing environment 735 comprising one or more cloud-computing resources, a client network 731 comprising client computing devices 714 (e.g., desktops, laptops, smart mobile devices), and a cloud-computing platform 720 (i.e., cloud management abstraction layer, hybrid cloud management platform) in accordance with an embodiment of the present disclosure.
  • cloud-computing platform 720 provides a system through which computing devices 714 residing on client network 731 (e.g., enterprise network) can access one or more cloud-computing services.
  • client network 731 e.g., enterprise network
  • a cloud-computing service can comprise a cloud-computing resource residing within the cloud-computing environment 735 and managed by the cloud-computing platform 720 to provide the cloud computing service.
  • cloud-computing environment 735 may comprise one or more cloud providing networks that include cloud-computing resources (e.g., cloud services provided by public or private clouds, which may be external or internal to the enterprise that uses them) that can be utilized by users.
  • platform 720 may reside on the client network 731 or separate from the client network 731 .
  • Cloud-computing environment 735 may comprise an internal cloud, an external cloud, a private cloud, or a public cloud (e.g., commercial cloud).
  • cloud-computing environment 735 comprises internal private cloud resource 738 , external private cloud resource 741 , and secure public cloud resource 744 .
  • a private cloud may be implemented using a variety of cloud systems including, for example, Eucalyptus Systems, VMWare vSphere®, or Microsoft® HyperV.
  • Cloud-computing resources provided by these clouds may include, for example, storage resources (e.g., Storage Area Network (SAN), Network File System (NFS), and Amazon S3®), network resources (e.g., firewall, load-balancer, and proxy server), internal private resources, external private resources, secure public resources, infrastructure-as-a-services (IaaSs), platform-as-a-services (PaaSs), or software-as-a-services (SaaSs).
  • storage resources e.g., Storage Area Network (SAN), Network File System (NFS), and Amazon S3®
  • network resources e.g., firewall, load-balancer, and proxy server
  • IaaSs infrastructure-as-a-services
  • PaaSs platform-as-a-services
  • SaaSs software-as-a-services
  • cloud-computing platform 720 By using cloud-computing platform 720 to plan, build, manage, or use cloud-computing resources within a cloud-computing environment, users of platform 720 can be provided with standardized access to a variety of cloud-computing resources from disparate cloud-computing systems and providers without concerning themselves with the proprietary details of accessing or interfacing with such cloud-computing systems and providers.
  • the platform 720 can be configured to take the workloads that are developed with the platform 720 and automatically provide the interfaces and access steps necessary to operate the workload on any particular platform or infrastructure element within a federation of cloud computing resources, such that the user is able to interact with the platform 720 to develop such workloads at a level of abstraction that allows the user to configure the logic of the workload (including conditional logic that allows interrelation of different workloads) and to embody the technical, operational, and business requirements of the workload in policies that are associated with the workload, without the user being required to access or understand the details of (or in some cases even know about the existence of) such particular platform or infrastructure elements.
  • users of platform 720 can access cloud-computing services through platform 720 on-demand and on a self-service basis through the standardized access.
  • Users of cloud computing services offered by platform 720 may include end users, developers, partners, or administrators that reside on the client network 731 .
  • Platform 720 may comprise planner module 723 , manager module 726 , builder module 729 , and consumption module 732 .
  • Planner module 723 can be configured to plan cloud-computing service provided by platform 720 by inventorying, profiling, characterizing and prioritizing computer workloads, such as programs, applets, calculations, applications, servers, or services.
  • planner module 723 may model current applications and associated software-development life cycle (SDLC) phases to determine what infrastructure environments would be required or preferred. This may include defining security, privacy, management or other profiles for each SDLC phase of each application. The profiles, in turn, will identify existing infrastructure and systems that support the SDLC phases, and manage relationships between the infrastructure, systems and the applications.
  • SDLC software-development life cycle
  • Profiles may also contain characteristics regarding the SDLC phases or attributes relevant to development, deployment or performance of infrastructure, systems, or workloads, such as latency, geography, responsiveness, bandwidth, storage capacity, processing speed, processing type, platforms involved (including operating system, file types, communication protocols, and the like), data involved, protocols used, and specific institutional requirements.
  • planner 723 may first identify which SDLC computing environments and systems would be suitable for cloud computing or migration to cloud computing, and then prioritize the enablement and operability of newly developed or migrated computer workloads according to the SDLC phases.
  • the characterizations determined by planner module 723 can be used by builder module 729 to build a cloud-computing service or to deploy a computer workload to a cloud-computing resource.
  • the user may have access to, or may create or modify, policy information relevant to the computer workloads with which the user can interact in the planner module 723 .
  • the policy information may be stored in or associated with a meta model, which may enable the identification, characterization, and storage of a wide range of information, including policy information, that can be associated with a given workload.
  • the metamodel data can be associated with the workload such that throughout the various components of the platform 720 , from planning through deployment to a cloud, the workflow can be handled in a manner that is consistent with the metamodel data, and in particular consistent with the policies that are applicable to that workload.
  • the planner/user may thus plan the use of workloads in a manner that is consistent with technical, operational, and business requirements that are appropriate with such workload, as seen by association of the same with the workload, and the planner/user may modify or populate the policies associated with the workload, such that the metamodel data for that workload embodies and is consistent with the plans of the planner/user.
  • policies and other metamodel data are stored by the platform 720 and may be used throughout the development and deployment cycle.
  • Builder module 729 can be configured to assemble, validate, and publish a cloud-computing service or computer workload for consumption (i.e., use) by a user.
  • Builder module 729 may be configured to receive characterization information from planner module 723 and build a cloud-computing service or computer workload based on the information.
  • builder module 729 may be configured to assemble a cloud computing service based on the prioritized list of computer workloads provided by planner module 723 .
  • Builder module 729 may be configured to create and edit scripts for loading computer workloads during installation, startup, runtime, and shutdown of cloud-computing services assembled by builder 729 .
  • the scripts for the cloud-computing services may be verified and validated before the cloud-computing services are published for consumption (i.e., use).
  • the script may have access to metamodel and policy information which may alter how the script uses the metamodel and policy information to make a decision.
  • builder module 729 may be configured to associate the computer workload with the appropriate cloud-computing service or resource (e.g., associate an application with an appropriate underlying virtual machine image or associate a computer workload with a specific network).
  • the user/builder may have access to, or may create or modify, policy information relevant to the computer workloads with which the user can interact in the builder module 729 , such as the policy information stored in or associated with the above-referenced meta model, which may enable the identification, characterization, and storage of a wide range of information, including policy information, that can be associated with a given workload.
  • the builder/user may thus build of workloads in a manner that is consistent with technical, operational, and business requirements that are appropriate with such workload, as seen by association of the same with the workload, and the builder/user may modify or populate the policies associated with the workload, such that the metamodel data for that workload embodies and is consistent with the plans of the planner/user.
  • the builder module 729 may present options to the builder pre-filtered, such as in pre-populated scripts, filtered drop-down menus, that are dictated by or consistent with the policies and other metamodel data associated with a workload, omitting, blocking or hiding options that are inconsistent with such policies.
  • a workload that stores customer data could omit the option to store a social security number if a data privacy regulation prohibits storing such data in the business process to which the workload relates.
  • Such automatic pre-filtering, pre-configuration, and blocking ensure consistency with the policies associated with the workload at the planning stage (or other stages) while also improving efficiency by removing development paths that might be pursued despite being prohibited.
  • the metamodel provides a flexible structure to organize metadata and apply the same policies using a combination of system and user supplied metadata that may indicate use of the same policy, however may define the same policy in different ways.
  • the system may consider a Tier 5 datacenter to be the most fault tolerant type of data center and a user may consider a Tier 1 data center to be the most tolerant.
  • the metamodel allows a policy that requires provisioning in the most fault tolerant data center to be assigned Tier 5 or Tier 1 metadata, depending on the definition of the most fault tolerant data center in that specific operating environment.
  • builder module 729 can publish a cloud-computing service for consumption by users.
  • the builder module 729 can publish the cloud-computing service to a consumption module 732 (e.g., store or storefront such as an application store, a service store, or a software stack store) where users can preview, select, and subscribe to a cloud-computing service for use.
  • the builder module 729 can enter the cloud-computing service in repository 730 when it is ready and available for consumption by users.
  • Embodiments may also be configured for the builder module 729 such that the development community can approve or disapprove of the cloud-computing service before publication.
  • Consumption module 732 is configured to allow a user to subscribe to, collaborate on, and assess a cloud-computing service published for consumption. For example, a user can preview cloud-computing services available for deployment to the virtual private cloud and consumption. Then, when a user wants to subscribe and invoke a cloud-computing service for usage, the user can invoke the cloud-computing service on a self-service, on-demand basis through the consumption module 732 .
  • Consumption module 732 may list published available cloud-computing service at or near real-time, and allow a user to request updates and information on a listed cloud-computing service. In some embodiments, the consumption module 732 may allow users to collaborate on where, what, and how many cloud-computing services are deployed for consumption.
  • consumption module 732 may allow a user to comment on and rate cloud-computing services, or assess the cost associated with deploying and using a cloud-computing service.
  • the consumption module 732 has access to policy information and other metamodel data that is associated with each workload, such that the workload may be consumed only in a manner that is consistent with such policy information.
  • policy information and other metamodel data that is associated with each workload, such that the workload may be consumed only in a manner that is consistent with such policy information.
  • consumption policies related to permitted time, permitted sets of users, security, pricing, resource consumption rules, and a wide variety of other policies may be maintained by the consumption module based on the policies associated with the workload in the platform 720 .
  • Manager module 726 can be configured to provision one or more cloud-computing resources for a cloud-computing service or computer workload, manage one or more cloud-computing resources for the cloud-computing service or computer workload, and monitor one or more cloud-computing resources for the cloud-computing service or computer workload. For example, manager module 726 may provision one or more cloud-computing resources (e.g., provision one or more virtual machine instances) for a published cloud-computing service that is invoked from the consumption module 732 . Upon invoking the cloud-computing service, the manager module 726 may deploy and start the one or more cloud-computing resources to the virtual private cloud for the cloud-computing service.
  • cloud-computing resources e.g., provision one or more virtual machine instances
  • manager module 726 may control the start, stop, or run-time of one or more cloud-computing resources (e.g., control start, stop, or run-time of virtual machine instance) for a cloud-computing service. Manager module 726 may further schedule the start and stop time windows for the one or more cloud-computing resources, or govern a service level, such as per a service level agreement (SLA), or a threshold associated with the one or more cloud-computing resources. Through its control, manager module 726 can govern the cloud-computing resource according to conditions, constraints, security policies, or non-security policies.
  • SLA service level agreement
  • Manager module 726 may also monitor the one or more cloud-computing resources, detect security intrusions, and monitor the consumption of cloud-computing services their associated cloud-computing resources in order to determine the costs accrued by a user. Aspects of cloud-computing resources monitored by manager module 726 include, for example, central processing unit (CPU) usage, memory usage, data storage usage, data input/output usage, application usage, workload usage, service usage, and other attributes of usage of a service or a computer workload.
  • CPU central processing unit
  • manager module 726 is configured such that a user can request a planner using the planner module 723 to change the design of a cloud-computing service. For example, a user may request that the cloud-computing service change or computer workload with respect to the cloud-computing resources utilized (e.g., change to a platform stack). As in the other components of the platform 720 , in the manager module 726 the user may have access to, or may create or modify, policy information or metamodel data relevant to the computer workloads with which the user can interact in the manager module 726 . The manager/user of the manager module 726 may thus manage the provisioning of infrastructure and platform elements such that usage will be consistent with the policies of the enterprise, including operational and business policies, as well as technical requirements.
  • provisioning to expensive infrastructure elements may be confined to workloads that satisfy business rules that distinguish between mission critical elements and other elements.
  • the manager/user of the manager module 726 may be provided with access to the policies consistent with the metamodel framework, and in embodiments may be provided with pre-filtered options, such as in menu choices, decision trees, or the like, that are consistent with such policies. For example, a workload designated as non-critical in its metamodel data could automatically appear in the manager module with deployment options confined to relatively low cost clouds, while a mission-critical workload might appear with all different cloud options (or ones that are filtered to satisfy certain requirements as to low latency, bandwidth, storage capacity, guaranteed quality of service, or the like). As with other modules, the manager module 726 may thus enforce policy while streamlining workflow, improving both effectiveness and efficiency.
  • the cloud-computing platform can also comprise a repeated use module 750 , as shown in FIG. 7 .
  • the repeated use module 750 can be configured to facilitate or provide for the repeated use (e.g., recursive consumption and/or publication) of computing resources or offerings.
  • the repeated use module 750 can correspond to the repeated use module 102 of FIG. 1 , the repeated use module 202 of FIG. 2 , the repeated use module 302 of FIG. 3 , and/or the repeated use module 400 of FIG. 4 .
  • the repeated use module 750 can be implemented as software, hardware, or any combination thereof. In some embodiments, the repeated use module 750 can be implemented in, integrated with, or can correspond to a service catalog or a self-service portal. In some embodiments, the repeated use module 750 can be implemented as or reside with (at least a portion of) the cloud computing platform 720 . Moreover, in some embodiments, the repeated use module 750 can be implemented, in part or in whole, in one or more of the various modules included with the cloud computing platform 720 . For example, the repeated use module 750 can be implemented, in part or in whole, in a scheduling module of the cloud computing platform 720 and/or in the manager module 726 of the cloud computing platform 720 .
  • FIG. 8 shows a diagram illustrating an example management module 826 (e.g., management module 726 in FIG. 7 ) in further detail.
  • management module 826 comprises governor module 803 configured to govern operation of a cloud-computing services and its associated cloud-computing resources, provisioning module 806 configured to provision cloud-computing resources for a cloud-computing service, and monitoring module 812 configured to facilitate the various monitoring functions of management module 826 .
  • the present disclosure may provide for a policy-driven infrastructure as a service (IaaS) event bus, which can be comprised of a policy engine, metamodel, reporting system, and workflow engine; and allows for the creation of business policies, such that said business policies can be reflected into a dynamic information technology environment and expressed across internal and external information technology infrastructure, regardless of operating system, programming language, middle-ware solution, application platform, or cloud provider, by making use of abstraction layers.
  • the workflow engine provides an integration point between the IaaS event bus and workflow management.
  • the abstraction layers allow for integration with application programming interfaces made available by different vendors, business models, technical models, eventing and altering channels and monitoring systems in a vendor agnostic manner.
  • the abstraction layer could be a cloud-computing provider.
  • a cloud computing provider may be VMWare, Baremetal, Amazon EC2, Savvis, TerreMark, Microsoft HyperV, and the like.
  • the policy engine allows policies to be created through an easy to use visual interface that allows users that do not necessarily have information technology skills or other programming skills to author and assign policies to workloads.
  • the policies can be expressed via languages such as XML, and the like.
  • a policy could be an event policy.
  • An event policy supports matching one or more events that are temporally related and generate a notification action when matches occur.
  • An event can be defined as either a threshold condition or matching constraints specified as rules.
  • a rule can be comprised of one or more match constraints and each match constraint must be satisfied, by a logical “and” operation, within a specified sliding time window in order for the notification actions to be invoked.
  • a match specifies the set of conditions that must be satisfied to match an event.
  • Each condition specifies a property of an event or object contained by the event, which is matched against a set of one or more values using the supplied comparison operation If multiple values are supplied for a condition then the result is a logical “or” operation of the property being compared and against each value individually.
  • Any of the event properties or properties of objects contained within the event structure may be used to refine the match criteria.
  • an auto-scaling policy may be created to add more web and database servers according to a ration if a business application becomes heavily loaded, in order to reduce the load on that application.
  • an auto-scaling policy with business awareness may be created that deploys additional business topologies according to an algorithm if revenue per hour exceeds a threshold.
  • the metamodel allows the system to abstract business user definition from technical definition and allows an enterprise to track information about information technology resources that were unknown when the system was created.
  • the metamodel allows business users to define data classes consistent with their enterprise nomenclature, while still being able to map them consistently to the internal system.
  • a Tier 4 data center is common technical classification of a data center that generally has the highest uptime, however some enterprises refer to Tier 4 data centers as Tier 1 and the metamodel would allow Tier 1 and Tier 4 to be used interchangeably, depending on the definition used by a specific enterprise. This provides a benefit to the enterprise by eliminating the need to write specific policies for each instance or the need to customize each abstraction layer for individual instances.
  • the metamodel By tracking information about IT resources that were unknown when the system was created, the metamodel allows business users to arbitrarily define elements of data to track and create policy after the system was built, also allowing the users to track a specific piece of information that is defined for any resources that are managed by the system.
  • Resources could be networks, storage, servers, workloads, topologies, applications, business units, and the like.
  • the policy-driven infrastructure as a service may also include additional components. Additional components may be reporting, auditing, and federated identify management systems.
  • the present disclosure may provide for a visual policy editor, which provides an easy-to-use graphical user interface to a feature-rich and extensible policy engine, using a visual programming language and policies, eliminating the need for the user to write complex code to define, assign, and enforce policies.
  • the graphical user interface allows the user to author policies using a visual drag-and-drop interface or an XML editor.
  • the visual programming language functions could be loops, variables, branching, switching, pulling of attributes, code execution within a policy, and the like.
  • the visual programming language could access an external pricing engine that contains live pricing information, then make a decision on the next step of the execution process, based on the information it receives from the pricing engine.
  • policies can be enforced at an object level.
  • Objects could be organizational groups, individual projects, different deployment environments, and the like.
  • Policies could be access control policies, firewall policies, event-based policies and the like.
  • Access control policies could include packages, scripts, and the like.
  • Access control policies could be defined by cloud or other service providers, network attributes, network geographic location, security policies, and the like.
  • Firewall policies may include port and network ACL lists that are applied as policies and applied at container level to ensure conformance to corporate standards for port opening/closing.
  • Event based policies relate to service level management and could include compound threshold rules that trigger an action, lifecycle event management, compound event sequences, signature detection, and policy stacking, and the like. For example, a policy could be defined to restrict deployment of a computing workload to private internal clouds in a specific country.
  • the present disclosure may provide for automated processes to support a continuous integration cycle to migrate a computing workload from a development environment to an operational environment.
  • the continuous integration cycle may include maintaining a code repository, automating the build process, self-testing the build process, automatically deploying the build, and the like.
  • the policies and metamodels defined and assigned to the computing workload environment follow the build from its creation using the Builder Module through to its publication into the Consumption module. This capability allows the enterprise to greatly reduce the time required to develop, test, deploy and update a computing workload.
  • Continuous integration may also include ensuring the modernization, patch management, conforming configuration of deployed cloud-computing services.
  • the embodiments may provide this service as DevToOps policy allowing centrally defined service definition that deployed cloud-compute services can compare against and either update themselves when their configuration no longer matches, warn administrators of non-conformance, rewrite themselves back to conformance when configurations of the cloud-compute services are made arbitrarily, and the like.
  • various embodiments of the present disclosure provide standardized access, management, or control to different types of cloud-computing resources on a self-service, on-demand basis without the user needing to know the specific instructions or details for accessing, managing, or controlling those different target cloud-computing resources.
  • some management modules may comprise a cloud model data store 809 that maps the management action to the appropriate cloud-computing resources. Subsequently, the management action can be translated to one or more instructions for a target cloud-computing resource and/or a computer workload operating thereon.
  • a topology is an example of a cloud service, where a topology can be comprised of a number of individual virtual machines orchestrated together. A common management action to perform on a topology is to start it.
  • This simple topology start action within the management layer gets turned into a number of individual instructions that get passed down into the cloud service bus 815 , such as (1) calculate the Start Up order for topology, (2) initiate ordered startup one VM at a time, (3) as VM's come up, attach volumes that are associated with the VM, (4) install any packages and software onto the VM's, and (5) once all machines are up and running the topology status changes to running.
  • Cloud service bus 815 may be utilized to parse management instructions received from the manager module 826 , transform the management instructions to instructions compatible with the target cloud-computing resource, and route the management instruction to the targeted cloud-computing resource.
  • the cloud service bus 815 can then route, via a connection module(s) 818 , the instructions to the application program interface (API) 821 for a target cloud-computing resource from an external commercial cloud resource(s) 827 , or to the virtual machine manager (VMM) (e.g., hypervisor) 824 for a target cloud-computing resource from an internal private cloud resource(s) 830 .
  • API application program interface
  • VMM virtual machine manager
  • FIG. 9 illustrates an example of a computer system 900 that may be used to implement one or more of the embodiments described herein in accordance with an embodiment of the invention.
  • the computer system 900 includes sets of instructions for causing the computer system 900 to perform the processes and features discussed herein.
  • the computer system 900 may be connected (e.g., networked) to other machines. In a networked deployment, the computer system 900 may operate in the capacity of a server machine or a client machine in a client-server network environment, or as a peer machine in a peer-to-peer (or distributed) network environment.
  • the computer system 900 may be a component of the networking system described herein.
  • the computer system 900 may be one server among many that constitutes all or part of a networking system.
  • the computer system 900 can include a processor 902 , a cache 904 , and one or more executable modules and drivers, stored on a computer-readable medium, directed to the processes and features described herein. Additionally, the computer system 900 may include a high performance input/output (I/O) bus 906 or a standard I/O bus 908 .
  • a host bridge 910 couples processor 902 to high performance I/O bus 906
  • I/O bus bridge 912 couples the two buses 906 and 908 to each other.
  • a system memory 914 and one or more network interfaces 916 couple to high performance I/O bus 906 .
  • the computer system 900 may further include video memory and a display device coupled to the video memory (not shown).
  • Mass storage 918 and I/O ports 920 couple to the standard I/O bus 908 .
  • the computer system 900 may optionally include a keyboard and pointing device, a display device, or other input/output devices (not shown) coupled to the standard I/O bus 908 .
  • Collectively, these elements are intended to represent a broad category of computer hardware systems, including but not limited to computer systems based on the x86-compatible processors manufactured by Intel Corporation of Santa Clara, Calif., and the x86-compatible processors manufactured by Advanced Micro Devices (AMD), Inc., of Sunnyvale, Calif., as well as any other suitable processor.
  • AMD Advanced Micro Devices
  • An operating system manages and controls the operation of the computer system 900 , including the input and output of data to and from software applications (not shown).
  • the operating system provides an interface between the software applications being executed on the system and the hardware components of the system.
  • Any suitable operating system may be used, such as the LINUX Operating System, the Apple Macintosh Operating System, available from Apple Computer Inc. of Cupertino, Calif., UNIX operating systems, Microsoft® Windows® operating systems, BSD operating systems, and the like. Other implementations are possible.
  • the network interface 916 provides communication between the computer system 900 and any of a wide range of networks, such as an Ethernet (e.g., IEEE 802.3) network, a backplane, etc.
  • the mass storage 918 provides permanent storage for the data and programming instructions to perform the above-described processes and features implemented by the respective computing systems identified above, whereas the system memory 914 (e.g., DRAM) provides temporary storage for the data and programming instructions when executed by the processor 902 .
  • the I/O ports 920 may be one or more serial and/or parallel communication ports that provide communication between additional peripheral devices, which may be coupled to the computer system 900 .
  • the computer system 900 may include a variety of system architectures, and various components of the computer system 900 may be rearranged.
  • the cache 904 may be on-chip with processor 902 .
  • the cache 904 and the processor 902 may be packed together as a “processor module”, with processor 902 being referred to as the “processor core”.
  • certain embodiments of the invention may neither require nor include all of the above components.
  • peripheral devices coupled to the standard I/O bus 908 may couple to the high performance I/O bus 906 .
  • only a single bus may exist, with the components of the computer system 900 being coupled to the single bus.
  • the computer system 900 may include additional components, such as additional processors, storage devices, or memories.
  • the processes and features described herein may be implemented as part of an operating system or a specific application, component, program, object, module, or series of instructions referred to as “programs”.
  • programs may be used to execute specific processes described herein.
  • the programs typically comprise one or more instructions in various memory and storage devices in the computer system 900 that, when read and executed by one or more processors, cause the computer system 900 to perform operations to execute the processes and features described herein.
  • the processes and features described herein may be implemented in software, firmware, hardware (e.g., an application specific integrated circuit), or any combination thereof.
  • the processes and features described herein are implemented as a series of executable modules run by the computer system 900 , individually or collectively in a distributed computing environment.
  • the foregoing modules may be realized by hardware, executable modules stored on a computer-readable medium (or machine-readable medium), or a combination of both.
  • the modules may comprise a plurality or series of instructions to be executed by a processor in a hardware system, such as the processor 902 .
  • the series of instructions may be stored on a storage device, such as the mass storage 918 .
  • the series of instructions can be stored on any suitable computer readable storage medium.
  • the series of instructions need not be stored locally, and could be received from a remote storage device, such as a server on a network, via the network interface 916 .
  • the instructions are copied from the storage device, such as the mass storage 918 , into the system memory 914 and then accessed and executed by the processor 902 .
  • a module or modules can be executed by a processor or multiple processors in one or multiple locations, such as multiple servers in a parallel processing environment.
  • Examples of computer-readable media include, but are not limited to, recordable type media such as volatile and non-volatile memory devices; solid state memories; floppy and other removable disks; hard disk drives; magnetic media; optical disks (e.g., Compact Disk Read-Only Memory (CD ROMS), Digital Versatile Disks (DVDs)); other similar non-transitory (or transitory), tangible (or non-tangible) storage medium; or any type of medium suitable for storing, encoding, or carrying a series of instructions for execution by the computer system 900 to perform any one or more of the processes and features described herein.
  • recordable type media such as volatile and non-volatile memory devices; solid state memories; floppy and other removable disks; hard disk drives; magnetic media; optical disks (e.g., Compact Disk Read-Only Memory (CD ROMS), Digital Versatile Disks (DVDs)); other similar non-transitory (or transitory), tangible (or non-tangible) storage medium; or any
  • references in this specification to “one embodiment”, “an embodiment”, “other embodiments”, “one series of embodiments”, “some embodiments”, “various embodiments”, or the like means that a particular feature, design, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the disclosure.
  • the appearances of, for example, the phrase “in one embodiment” or “in an embodiment” in various places in the specification are not necessarily all referring to the same embodiment, nor are separate or alternative embodiments mutually exclusive of other embodiments.
  • various features are described, which may be variously combined and included in some embodiments, but also variously omitted in other embodiments.
  • various features are described that may be preferences or requirements for some embodiments, but not other embodiments.

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Development Economics (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Marketing (AREA)
  • Economics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

Systems, methods, and non-transitory computer-readable media can provide access to a first-level computing resource via a service catalog. In some instances, the first-level computing resource can be created by a first entity. Moreover, a second-level computing resource can be received. In some cases, the second-level computing resource can be created by a second entity based, at least in part, on the first-level computing resource. Access to the second-level computing resource can be provided via the service catalog. Relational information associated with the first-level computing resource and the second-level computing resource can be tracked.

Description

    CROSS-REFERENCE TO RELATED APPLICATIONS
  • This application is a continuation of U.S. patent application Ser. No. 14/213,540, filed Mar. 14, 2014, entitled “SYSTEMS AND METHODS FOR PROVIDING REPEATED USE OF COMPUTING RESOURCES,” which is a continuation-in-part of U.S. patent application Ser. No. 13/842,413, filed Mar. 15, 2013 (now U.S. Pat. No. 9,489,647, issued Nov. 8, 2016), entitled “SYSTEM AND METHOD FOR A CLOUD COMPUTING ABSTRACTION WITH SELF-SERVICE PORTAL”, which is a continuation-in-part of U.S. patent application Ser. No. 13/354,275, filed Jan. 19, 2012 (now U.S. Pat. No. 9,069,599, issued Jun. 30, 2015), entitled “SYSTEM AND METHOD FOR A CLOUD COMPUTING ABSTRACTION LAYER WITH SECURITY ZONE FACILITIES”, which claims priority to U.S. Provisional Patent Application No. 61/434,396 filed Jan. 19, 2011, entitled “SYSTEM AND METHOD FOR CLOUD COMPUTING”, and which is a continuation-in-part of U.S. patent application Ser. No. 13/009,774 (“the '774 application”) filed Jan. 19, 2011 (now U.S. Pat. No. 8,931,038, issued Jun. 1, 2015) entitled “SYSTEM AND METHOD FOR A CLOUD COMPUTING ABSTRACTION LAYER”; the '774 application claims priority to U.S. Provisional Patent App. No. 61/296,405 filed on Jan. 19, 2010, entitled “ENTERPRISE CLOUD SYSTEM AND METHOD”, and is a continuation-in-part of U.S. patent application Ser. No. 12/488,424 entitled “CLOUD COMPUTING GATEWAY, CLOUD COMPUTING HYPERVISOR, AND METHODS FOR IMPLEMENTING SAME” filed Jun. 19, 2009 (now U.S. Pat. No. 8,514,868, issued Aug. 20, 2013), and published as U.S. Publication No. 20100027552 on Feb. 4, 2010, and which claims priority to U.S. Provisional Patent Application No. 61/074,027 filed Jun. 19, 2008 entitled “CLOUD COMPUTING GATEWAY AND CLOUD COMPUTING HYPERVISOR”; each of which is hereby incorporated herein by reference in its entirety.
  • FIELD OF THE INVENTION
  • The present technology relates to the field of computing resources. More particularly, the present technology relates to systems and techniques for providing repeated use of computing resources.
  • BACKGROUND
  • The use of computing resources, such as cloud computing resources, is becoming increasingly commonplace. Users of cloud computing services can utilize computing resources provided by the cloud computing services to perform a wide variety of tasks, such as providing infrastructure, platforms, or applications (e.g., software, services). In one example, entities such as corporations can utilize cloud computing to provide low-level infrastructure offerings. In another example, entities can utilize cloud computing to provide middle-level platform offerings. In a further example, entities such as application developers can utilize cloud environments to provide high-level application offerings.
  • In some cases, computing resources can be provided via service catalogs (or self-service portals). Service catalogs can provide users with access to computing resources (or other offerings) that are available for consumption or utilization. With respect to conventional approaches, there is usually a limited number of entities who build or create the computing resources, but a larger number of entities who consume or utilize the computing resources. As a result, under conventional approaches, the spectrum of available computing resources can be limited and the process of developing or providing these computing resources can be costly, time-consuming, and inefficient. These and other concerns can create challenges for and reduce the overall experience associated with building and utilizing computing resources.
  • SUMMARY
  • Various embodiments of the present disclosure can include systems, methods, and non-transitory computer readable media configured to provide access to a first-level computing resource via a service catalog. In some instances, the first-level computing resource can be created by a first entity. Moreover, a second-level computing resource can be received. In some cases, the second-level computing resource can be created by a second entity based, at least in part, on the first-level computing resource. Access to the second-level computing resource can be provided via the service catalog. Relational information associated with the first-level computing resource and the second-level computing resource can be tracked.
  • In one embodiment, the second-level computing resource can be associated with a higher-level than the first-level computing resource, and the third-level computing resource can be associated with a higher-level than the second-level computing resource.
  • In one embodiment, each of the first-level computing resource, the second-level computing resource, and the third-level computing resource can correspond to at least one of an Infrastructure-as-a-Service (IaaS) offering, a Platform-as-a-Service (PaaS) offering, or a Software-as-a-Service (SaaS) offering.
  • In one embodiment, at least two of the first entity, the second entity, or the third entity can correspond to a single entity.
  • In one embodiment, the relational information can includes at least one of financial information, licensing information, service-level agreement (SLA) information, or configuration information.
  • In one embodiment, one or more payments can be received from a fourth entity that accesses the third-level computing resource. The one or more payments can be allocated to the first entity, the second entity, and the third entity based on the relational information associated with the first-level computing resource, the second-level computing resource, and the third-level computing resource.
  • In one embodiment, the relational information can indicate a first portion of the one or more payments to be allocated to the first entity, a second portion of the one or more payments to be allocated to the second entity, and a third portion of the one or more payments to be allocated to the third entity.
  • In one embodiment, a marketplace configured to facilitate one or more interactions among users of the service catalog can be provided.
  • In one embodiment, a computing system can be associated with an abstraction layer of a cloud management system. The computing system can be configure to provide for repeated use of computing resources.
  • Many other features and embodiments of the disclosed technology will be apparent from the accompanying drawings and from the following detailed description.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 illustrates an example scenario in which repeated use of computing resources can be implemented, according to an embodiment of the present disclosure.
  • FIG. 2 illustrates an example scenario in which repeated use of computing resources can be implemented, according to an embodiment of the present disclosure.
  • FIG. 3 illustrates an example scenario in which repeated use of computing resources can be implemented and relational information can be tracked, according to an embodiment of the present disclosure.
  • FIG. 4 illustrates an example system implementation configured to provide repeated use of computing resources, according to an embodiment of the present disclosure.
  • FIG. 5 illustrates an example method implementation for providing repeated use of computing resources, according to an embodiment of the present disclosure.
  • FIG. 6 illustrates an example method implementation for providing repeated use of computing resources, according to an embodiment of the present disclosure.
  • FIG. 7 shows a diagram illustrating an example system in accordance with an embodiment of the present disclosure.
  • FIG. 8 shows a diagram illustrating an example management module in accordance with an embodiment of the present disclosure.
  • FIG. 9 illustrates an example of a computing device or system that can be used to implement one or more of the embodiments described herein, according to an embodiment of the present disclosure.
  • The figures depict various embodiments of the disclosed technology for purposes of illustration only, wherein the figures use like reference numerals to identify like elements. One skilled in the art will readily recognize from the following discussion that alternative embodiments of the structures and methods illustrated in the figures can be employed without departing from the principles of the disclosed technology described herein.
  • DETAILED DESCRIPTION Providing Repeated Use of Computing Resources
  • It is becoming more commonplace to consume or utilize cloud computing resources. For example, users often consume cloud-based information technology (IT) resources using a self-service portal or service catalog. In some instances, the cloud-based IT resources can be categorized as Infrastructure-as-a-Service (IaaS), Platform-as-a-Service (PaaS), or Software-as-a-Service (SaaS). In general, IaaS, PaaS, and SaaS resources can differ with respect to the “completeness” of the resource. For example, IaaS is usually associated with delivery of low-level operating system instances and resources, whereas PaaS is associated with delivery of a middle-ware environment and resources, which can be suitable for deploying application code. Moreover, SaaS is usually associated with delivery of high-level, full-featured, ready-to-use applications (e.g., software, services, programs, etc.).
  • In some embodiments, higher-level offerings can be built (e.g., created, generated, developed, etc.) based on lower-level offerings. For instance, one can build a PaaS offering by starting with an IaaS resource and then adding and configuring middle-ware software to the IaaS resource to create the PaaS offering. Similarly, one can build a SaaS application based on a PaaS resource or offering.
  • Under conventional approaches, self-service portals or service catalogs can operate in a somewhat restricted fashion. With respect to conventional approaches to providing offerings (or computing resources), there can be a relatively small number of entities who create or build offerings and a relatively larger number of entities who consume or utilize offerings.
  • Various embodiments of the present disclosure can provide for repeated use (e.g., recursive consumption and/or publication) of computing resources or offerings, such as cloud computing resources or offerings. The disclosed technology can provide a self-service portal or service catalog configured to allow for a layered creation of offerings by a relatively larger number of users or entities. In some cases, a user can identify and consume a low-level offering (e.g., IaaS) and use it to build a middle-level offering (e.g., PaaS) by adding and configuring middle-ware software components. The middle-level offering can then be “republished” back into (or made available at) the self-service portal or service catalog for consumption by other users. Further, a middle-level offering, such as the middle-level offering built based on the low-level offering, can be consumed and used to create a high-level offering (e.g., SaaS). The high-level offering can also be republished back into the self-service portal or service catalog for subsequent consumption or utilization. Relational information associated with the low-level, middle-level, and/or high-level offerings can also be tracked, such as for payment allocation and/or licensing purposes. Accordingly, the disclosed technology can, for example, provide an improved approach to consuming and publishing computing resources (e.g., repeatedly or recursively), allow for a larger number of entities to build and offer computing resources, and permit a wider variety of computing resources to be published and available.
  • FIG. 1 illustrates an example scenario 100 in which repeated use of computing resources can be implemented, according to an embodiment of the present disclosure. The example scenario 100 can include a repeated use module (e.g., component, unit, system, etc.) 102. In some embodiments, the repeated use module 102 can be implemented in, integrated with, or can correspond to a service catalog, which can reside, in part or in whole, within an abstraction layer of a cloud management system/platform. The repeated use module 102 can be configured to automate and facilitate repeated use (e.g., recursive consumption and/or publication) of computing resources or offerings. For example, the repeated use module 102 can provide access to a low-level resource such as IaaS 104, a high-level resource such as SaaS 108, as well as one or more intermediate-level or middle-level resources such as PaaS 106.
  • In the example of FIG. 1, the repeated use module 104 can be configured to provide User A 110 with access to the low-level resource (e.g., IaaS 104). The low-level resource can provide infrastructure, an operating system (OS), and/or other low-level features. User A 110 can consume or utilize the low-level resource to build, create, or develop a middle-level resource (e.g., PaaS 106). For instance, User A 110 can add middleware and/or other middle-level functionality, such as web servers, applications servers, storage systems, databases, etc., to the low-level resource in order to create the middle-level resource. Subsequently, User A 110 can “publish” (e.g., make available, provide, offer, release, etc.) the middle-level resource via the repeated use module 102. The repeated use module 102 can then provide access to the middle-level resource for consumption.
  • Continuing with the example of FIG. 1, User B 112 can search for, find, and/or identify the middle-level resource (e.g., PaaS 106) via the repeated use module 102. User B 112 can consume the middle-level resource and use it to develop a high-level resource (e.g., SaaS 108). For example, User B 112 can start with the middle-level resource and deploy application code with respect to the middle-level resource to generate a high-level resource (e.g., SaaS 108), such as an application, service, program, software, etc. User B 112 can publish and offer the generated high-level resource via the repeated use module 102. For example, User B 112 can republish (or publish) the high-level resource back into the repeated use module 102 (or into a service catalog associated with the repeated use module 102). The repeated use module 102 (or associated service catalog) can enable the high-level resource to be available for consumption. User C 114 can, for example, consume the high-level resource.
  • Accordingly, the example scenario 100 of FIG. 1 can illustrate how the repeated use module 102 is configured to provide the ability to link publishing/republishing steps together, such as by publishing IaaS 104, (re-)publishing PaaS 106, and (re-)publishing SaaS 108.
  • In some instances, each of User A 110, User B 112, and User C 114 can correspond to an entity, such as a corporation, company, enterprise, organization, group, individual, virtual unit, etc., or any combination thereof, or to any number of persons associated with the entity. In one example, User A 110, User B 112, and User C 114 can all correspond to the same entity. In another example, at least two of User A 110, User B 112, and User C 114 can correspond to the same entity. In a further example, User A 110, User B 112, and User C 114 can correspond to different entities.
  • In some cases, the consumption of low-level resources (e.g., low-level offerings, low-level services, etc.) and the republishing of higher-level resources (e.g., resources having a higher-level than low-level resources) built on the low-level resources can occur within a single entity. For instance, the consumers, publishers, and/or users of the resources can correspond to different departments within an entity. In one example, an IT department of a company can create a PaaS offering using IaaS resources. Then application developers (e.g., business units) of the company can create a SaaS offering based on the PaaS offering created by the company's IT department.
  • FIG. 2 illustrates an example scenario 200 in which repeated use of computing resources can be implemented, according to an embodiment of the present disclosure. In some cases, the consumption and republishing of computing resources or offerings can, for example, occur among different entities, such as organizations, using a (global) self-service portal or service catalog. For instance, as shown in the example scenario 200 of FIG. 2, Entity A 210 can create and offer/publish an IaaS resource 204 via a repeated use module 202 (or via a service catalog associated with the repeated use module 202). Entity B 212 can (find and) consume the IaaS resource 204 and use it to create a PaaS offering 206. Entity B 212 can subsequently offer or (re-)publish the PaaS offering 206 back at the repeated use module 202 (or service catalog). Entity C 214 can (identify and) consume the PaaS offering 206 published by Entity B 212 and can use it to create a SaaS offering 208. Entity C 214 can (re-)publish the SaaS offering 208 back at the repeated use module 202 (or service catalog). Entity D 216 can then consume the SaaS offering 208 published by Entity C 214.
  • Furthermore, the disclosed technology can provide for the tracking, recording, and/or maintenance of relational information associated with various uses and/or users of the computing resources or offerings. FIG. 3 illustrates an example scenario 300 in which repeated use of computing resources can be implemented and relational information can be tracked, according to an embodiment of the present disclosure. In some embodiments, relational information can refer to information associated with the relationships between various computing resources or offerings provided by a repeated use module 302 (or service catalog) and/or the relations between their consumers, publishers, and/or users. In some instances, relational information can include (but is not limited to) information about money flow or finances (e.g., real money, virtual money, internal budget, etc.) associated with the various uses (e.g., consumption, publication, republication, etc.) and/or users (e.g., consumers, publishers, republishers, etc.) of the computing resources or offerings.
  • For instance, consumption of a low-level resource can “cost” a given amount. A publisher or developer of a middle-level resource can create the middle-level resource based on the low-level resource, and can offer the created middle-level resource for sale. The publisher or developer of the middle-level resource can consider the given cost of the low-level resource as a “cost of goods sold.” The publisher or developer of the middle-level level can accordingly price the middle-level resource to cover the given cost of the low-level resource. In addition, a publisher or developer of a high-level resource can create the high-level resource based on the middle-level resource. The high-level resource publisher or developer can also consider the price paid for the middle-level resource as a “cost of goods sold.” As such, the high-level resource publisher or developer can price its offered high-level resource to cover the cost of the middle-level resource (which incorporates the cost of the low-level resource). When a high-level resource consumer pays for the high-level resource, the price paid can cover the costs associated with all of the high-level, middle-level, and low-level resources. Various embodiments of the present disclosure can track (e.g., record, maintain, etc.) relational information, including financial information, associated with various uses and/or users of the computing resources and can allocate or distribute finances appropriately based on the financial information.
  • In FIG. 3, the illustrated example scenario 300 can involve a repeated use module 302 (and/or a service catalog associated with the repeated use module 302). Entity A 310 can create and publish an IaaS resource 304 via the repeated use module 302 (or service catalog). In this example, Entity A 310 can decide to charge $15 for the IaaS resource 304.
  • Continuing with the example, Entity B 312 can find the IaaS resource 304 and decide to consume or use the IaaS resource 304 to create a PaaS resource 306. Entity B 312 can decide to charge $35 for building the PaaS resource 306, which is built based on the $15 IaaS resource 304, and thus resulting in a total of $50 for the PaaS resource 306 built on the IaaS resource 304. Entity B 312 can offer and republish the PaaS resource 306 back at the repeated use module 302 (or service catalog).
  • Subsequently, in this example, Entity C 314 can identify the PaaS resource 306 and decide to consume or use the PaaS resource 306 to create a SaaS resource 308. Entity C 314 can decide to charge $50 for building the SaaS resource 308, which is built based on the $35 PaaS resource 306 and the $15 IaaS resource 304, and thus resulting in a total of $100 for the SaaS resource 308 (incorporating the PaaS resource 306 and the IaaS resource 304). Entity C 314 can then offer and republish the SaaS resource 308 back at the repeated use module 302 (or service catalog).
  • Finally, in this example, Entity D 316 can decide to purchase the SaaS resource 308 and pay $100. As discussed previously, the repeated use module 302 can track the relational information, including financial information, associated with the SaaS resource 308, the PaaS resource 306, and the IaaS resource 304 (and/or the relational information associated with Entity A 310, Entity B 312, and Entity C 314). Accordingly, the repeated use module 302 can automatically allocate (and/or distribute) the $100 paid by Entity D 316 in the appropriate amounts to Entity A 310, Entity B 312, and Entity C 314. In this example, 50% of the $100 (or $50) can be given to Entity C 314, 35% of the $100 (or $35) can be given to Entity B 312, and 15% of the $100 (or $15) can be given to Entity A 310.
  • Moreover, in some cases, other types of relational information can be tracked by the repeated use module 302. For example, in addition to financial information, the repeated use module 302 can be configured to track and apply other types of relational information including (but not limited to) licensing information, service-level agreement (SLA) information, configuration information, and/or other similar types of information. Further, constraints related to the relational information can be applied by the repeated use module 302.
  • With respect to licensing information as an example, the repeated use module 302 can receive and enforce licensing terms as constraints with respect to an IaaS resource, a PaaS resource, a SaaS resource 108, or any other level of computing resource. For example, an entity that publishes a resource may offer the resource subject to specified licensing terms to consumers of the resource. The licensing terms can limit access to the resource based on any number and any types of constraints, such as number of seats, usage restrictions, geographic restrictions, tiered pricing structures, time duration, competitive exclusions, etc. The repeated use module 302 may enforce these constraints before or during consumption of the resource by any entity. For example, if the license terms provide that a consuming entity may not exceed a predetermined number of seats, then the repeated use module 302 may determine how many users associated with the entity are using the resource and cease access for users that exceed the permitted number of seats.
  • As another example, the license terms on which the resource can be offered to an entity may provide for usage restrictions. In this regard, if the license terms prohibit the combination of an offered resource with certain other resources (e.g., incompatible software, open source software with copyleft, etc.), then the repeated use module 302 can prohibit such combination by a consuming entity.
  • As yet another example, the license terms for the resource published by an entity can exclude competitors of the entity from accessing the resource. In this case, the repeated use module 302, upon determining that a competitor to the entity seeks access to the resource, can deny the competitor access to the resource.
  • In a similar manner, the repeated use module 302 may apply constraints associated with SLAs and configuration information in the publication and consumption of resources.
  • FIG. 4 illustrates an example system implementation configured to provide repeated use of computing resources, according to an embodiment of the present disclosure. In FIG. 4, the example system implementation can correspond to a repeated use module 400. The repeated use module 400 can correspond to the repeated use module 102 of FIG. 1, the repeated use module 202 of FIG. 2, the repeated use module 302 of FIG. 3, and/or the repeated use module 750 of FIG. 7. The repeated use module 400 can, for example, comprise a consumption mechanism (or component, feature, unit, module, etc.) 402, a publication mechanism 404, a tracking mechanism 406, and a controller mechanism 408. The controller mechanism 408 can be configured to manage or control the various tasks of the repeated use module 400, such as facilitating the interactions or communications among the consumption mechanism 402, the publication mechanism 404, and/or the tracking mechanism 406. The controller mechanism 408 can also apply constraints relating to relational information in the publication and consumption of resources, as discussed herein.
  • In some embodiments, the consumption mechanism 402 can be configured to perform operations associated with the consumption of computing resources or offerings. For example, the consumption mechanism 402 can be configured to facilitate providing access to various computing resources or offerings for consumption.
  • In some embodiments, the publication mechanism 404 can be configured to perform operations associated with the publishing (or republishing) of computing resources or offerings. For example, the publication mechanism 404 can be configured to facilitate receiving various developed/created computing resources or offerings to be offered and/or (re-)published.
  • In some embodiments, the tracking mechanism 406 can be configured to perform operations associated with tracking, recording, and/or maintaining information (e.g., relational information) associated with various computing resources and/or users. For example, the tracking mechanism 406 can be configured to facilitate tracking relational information including (but not limited to) financial information, licensing information, service-level agreement (SLA) information, and/or configuration information. In some embodiments, the tracking mechanism 406 can also be configured to facilitate receiving one or more payments and allocating (and/or distributing) the one or more payments appropriately based on the relational information.
  • FIG. 5 illustrates an example method implementation 500 for providing repeated use of computing resources, according to an embodiment of the present disclosure. It should be appreciated that there can be additional, fewer, or alternative steps performed in similar or alternative orders, or in parallel, within the scope of the various embodiments unless otherwise stated. At step 502, the example method implementation 500 can provide access to a first-level computing resource via a service catalog. In some instances, the first-level computing resource can be created by a first entity.
  • Step 504 can include receiving a second-level computing resource. In some implementations, the second-level computing resource can be created by a second entity based, at least in part, on the first-level computing resource. Moreover, access to the second-level computing resource can be provided via the service catalog, at step 506.
  • Then, the example method implementation 500 can track relational information associated with the first-level computing resource and the second-level computing resource, at step 508. In some embodiments, the relational information can include (but is not limited to) at least one of financial information, licensing information, service-level agreement (SLA) information, and/or configuration information, etc., as discussed previously.
  • FIG. 6 illustrates an example method implementation 600 for providing repeated use of computing resources, according to an embodiment of the present disclosure. Again, there can be additional, fewer, or alternative steps performed in similar or alternative orders, or in parallel, within the scope of the various embodiments unless otherwise stated. The example method 600 can receive a third-level computing resource, at step 602. In some embodiments, the third-level computing resource can be created by a third entity based, at least in part, on the second-level computing resource.
  • The example method 600 can provide access to the third-level computing resource via the service catalog, at step 604. Step 606 can include tracking relational information associated with the first-level computing resource, the second-level computing resource, and the third-level computing resource.
  • Furthermore, in some embodiments, one or more payments can be received from a fourth entity that accesses the third-level computing resource. The one or more payments can be allocated (and/or distributed) to the first entity, the second entity, and the third entity based on the relational information associated with the first-level computing resource, the second-level computing resource, and the third-level computing resource.
  • In some cases, as discussed previously, the relational information can indicate a first portion of the one or more payments to be allocated to the first entity, a second portion of the one or more payments to be allocated to the second entity, and a third portion of the one or more payments to be allocated to the third entity. In some instances, each of the first, second, and third portions can include a specified amount, a proportion, and/or a percentage.
  • Moreover, many other variations or applications are possible. In some embodiments, one or more intermediate-level resources (e.g., published/offered middle-level resources) can be optional. For instance, low-level resources such as IaaS can be used directly to create high-level resources such as SaaS. In one example, a developer or creator can start with a low-level resource, add desired functionality to the low-level resource, and generate a high-level resource (e.g., application, service, etc.).
  • In some embodiments, the service catalog or self-service portal can operate or work with various entities and allow for consumption and/or (re-)publishing at multiple levels.
  • In some embodiments, the various entities can correspond to different corporate entities. In some embodiments, the various entities can correspond to different departments or portions of a single entity. In some embodiments, the various entities can correspond to a single entity.
  • In some embodiments, the service catalog or self-service portal can handle the money flow or licensing agreements between all parties in a single-party or multi-party chain of publishers.
  • Various other embodiments and/or applications are also possible. In one example scenario, the disclosed technology can allow for the creation of a marketplace or exchange for facilitating interactions among users (e.g., consumers, publishers, etc.) of computing resources or offerings.
  • It is further contemplated that there can be many other uses, applications, and/or variations associated with the various embodiments of the present disclosure.
  • Abstraction Layer—Example Implementation
  • FIG. 7 shows a diagram illustrating an example system 710 in accordance with an embodiment of the present disclosure. FIG. 7 illustrates a cloud-computing environment 735 comprising one or more cloud-computing resources, a client network 731 comprising client computing devices 714 (e.g., desktops, laptops, smart mobile devices), and a cloud-computing platform 720 (i.e., cloud management abstraction layer, hybrid cloud management platform) in accordance with an embodiment of the present disclosure. In FIG. 7, cloud-computing platform 720 provides a system through which computing devices 714 residing on client network 731 (e.g., enterprise network) can access one or more cloud-computing services. A cloud-computing service can comprise a cloud-computing resource residing within the cloud-computing environment 735 and managed by the cloud-computing platform 720 to provide the cloud computing service. Depending on the embodiment, cloud-computing environment 735 may comprise one or more cloud providing networks that include cloud-computing resources (e.g., cloud services provided by public or private clouds, which may be external or internal to the enterprise that uses them) that can be utilized by users. Additionally, depending on the embodiment, platform 720 may reside on the client network 731 or separate from the client network 731.
  • Cloud-computing environment 735 may comprise an internal cloud, an external cloud, a private cloud, or a public cloud (e.g., commercial cloud). In the example of FIG. 7, cloud-computing environment 735 comprises internal private cloud resource 738, external private cloud resource 741, and secure public cloud resource 744. A private cloud may be implemented using a variety of cloud systems including, for example, Eucalyptus Systems, VMWare vSphere®, or Microsoft® HyperV. Providers of public clouds may include, for example, Amazon EC2®, Amazon Web Services®, Terremark®, Savvis®, or GoGrid® Cloud-computing resources provided by these clouds may include, for example, storage resources (e.g., Storage Area Network (SAN), Network File System (NFS), and Amazon S3®), network resources (e.g., firewall, load-balancer, and proxy server), internal private resources, external private resources, secure public resources, infrastructure-as-a-services (IaaSs), platform-as-a-services (PaaSs), or software-as-a-services (SaaSs).
  • By using cloud-computing platform 720 to plan, build, manage, or use cloud-computing resources within a cloud-computing environment, users of platform 720 can be provided with standardized access to a variety of cloud-computing resources from disparate cloud-computing systems and providers without concerning themselves with the proprietary details of accessing or interfacing with such cloud-computing systems and providers. The platform 720 can be configured to take the workloads that are developed with the platform 720 and automatically provide the interfaces and access steps necessary to operate the workload on any particular platform or infrastructure element within a federation of cloud computing resources, such that the user is able to interact with the platform 720 to develop such workloads at a level of abstraction that allows the user to configure the logic of the workload (including conditional logic that allows interrelation of different workloads) and to embody the technical, operational, and business requirements of the workload in policies that are associated with the workload, without the user being required to access or understand the details of (or in some cases even know about the existence of) such particular platform or infrastructure elements. Additionally, users of platform 720 can access cloud-computing services through platform 720 on-demand and on a self-service basis through the standardized access. Users of cloud computing services offered by platform 720 may include end users, developers, partners, or administrators that reside on the client network 731.
  • Platform 720 may comprise planner module 723, manager module 726, builder module 729, and consumption module 732. Planner module 723 can be configured to plan cloud-computing service provided by platform 720 by inventorying, profiling, characterizing and prioritizing computer workloads, such as programs, applets, calculations, applications, servers, or services. For example, with respect to software/application development, planner module 723 may model current applications and associated software-development life cycle (SDLC) phases to determine what infrastructure environments would be required or preferred. This may include defining security, privacy, management or other profiles for each SDLC phase of each application. The profiles, in turn, will identify existing infrastructure and systems that support the SDLC phases, and manage relationships between the infrastructure, systems and the applications. Profiles may also contain characteristics regarding the SDLC phases or attributes relevant to development, deployment or performance of infrastructure, systems, or workloads, such as latency, geography, responsiveness, bandwidth, storage capacity, processing speed, processing type, platforms involved (including operating system, file types, communication protocols, and the like), data involved, protocols used, and specific institutional requirements. In terms of prioritizing the cloud-computing services needed for the SDLC phases, planner 723 may first identify which SDLC computing environments and systems would be suitable for cloud computing or migration to cloud computing, and then prioritize the enablement and operability of newly developed or migrated computer workloads according to the SDLC phases. Subsequently, the characterizations determined by planner module 723 can be used by builder module 729 to build a cloud-computing service or to deploy a computer workload to a cloud-computing resource. In the planner module 723 or in other components of the platform 720 associated with the planner module 23 the user may have access to, or may create or modify, policy information relevant to the computer workloads with which the user can interact in the planner module 723. The policy information may be stored in or associated with a meta model, which may enable the identification, characterization, and storage of a wide range of information, including policy information, that can be associated with a given workload. The metamodel data, including policy information, can be associated with the workload such that throughout the various components of the platform 720, from planning through deployment to a cloud, the workflow can be handled in a manner that is consistent with the metamodel data, and in particular consistent with the policies that are applicable to that workload. In the planner module 723 the planner/user may thus plan the use of workloads in a manner that is consistent with technical, operational, and business requirements that are appropriate with such workload, as seen by association of the same with the workload, and the planner/user may modify or populate the policies associated with the workload, such that the metamodel data for that workload embodies and is consistent with the plans of the planner/user. Once associated with the workload, such policies and other metamodel data are stored by the platform 720 and may be used throughout the development and deployment cycle.
  • Builder module 729 can be configured to assemble, validate, and publish a cloud-computing service or computer workload for consumption (i.e., use) by a user. Builder module 729 may be configured to receive characterization information from planner module 723 and build a cloud-computing service or computer workload based on the information. For example, builder module 729 may be configured to assemble a cloud computing service based on the prioritized list of computer workloads provided by planner module 723. Builder module 729 may be configured to create and edit scripts for loading computer workloads during installation, startup, runtime, and shutdown of cloud-computing services assembled by builder 729. The scripts for the cloud-computing services may be verified and validated before the cloud-computing services are published for consumption (i.e., use). The script may have access to metamodel and policy information which may alter how the script uses the metamodel and policy information to make a decision. Additionally, builder module 729 may be configured to associate the computer workload with the appropriate cloud-computing service or resource (e.g., associate an application with an appropriate underlying virtual machine image or associate a computer workload with a specific network). As with the planner module 723, in the builder module 729 the user/builder may have access to, or may create or modify, policy information relevant to the computer workloads with which the user can interact in the builder module 729, such as the policy information stored in or associated with the above-referenced meta model, which may enable the identification, characterization, and storage of a wide range of information, including policy information, that can be associated with a given workload. In the builder module 729 the builder/user may thus build of workloads in a manner that is consistent with technical, operational, and business requirements that are appropriate with such workload, as seen by association of the same with the workload, and the builder/user may modify or populate the policies associated with the workload, such that the metamodel data for that workload embodies and is consistent with the plans of the planner/user. In embodiments, the builder module 729 may present options to the builder pre-filtered, such as in pre-populated scripts, filtered drop-down menus, that are dictated by or consistent with the policies and other metamodel data associated with a workload, omitting, blocking or hiding options that are inconsistent with such policies. For example, a workload that stores customer data could omit the option to store a social security number if a data privacy regulation prohibits storing such data in the business process to which the workload relates. Such automatic pre-filtering, pre-configuration, and blocking ensure consistency with the policies associated with the workload at the planning stage (or other stages) while also improving efficiency by removing development paths that might be pursued despite being prohibited. In embodiments, the metamodel provides a flexible structure to organize metadata and apply the same policies using a combination of system and user supplied metadata that may indicate use of the same policy, however may define the same policy in different ways. For example, in some embodiments, the system may consider a Tier 5 datacenter to be the most fault tolerant type of data center and a user may consider a Tier 1 data center to be the most tolerant. The metamodel allows a policy that requires provisioning in the most fault tolerant data center to be assigned Tier 5 or Tier 1 metadata, depending on the definition of the most fault tolerant data center in that specific operating environment.
  • Eventually, builder module 729 can publish a cloud-computing service for consumption by users. In some embodiments, the builder module 729 can publish the cloud-computing service to a consumption module 732 (e.g., store or storefront such as an application store, a service store, or a software stack store) where users can preview, select, and subscribe to a cloud-computing service for use. Further, in some embodiments, the builder module 729 can enter the cloud-computing service in repository 730 when it is ready and available for consumption by users. Embodiments may also be configured for the builder module 729 such that the development community can approve or disapprove of the cloud-computing service before publication.
  • Consumption module 732 is configured to allow a user to subscribe to, collaborate on, and assess a cloud-computing service published for consumption. For example, a user can preview cloud-computing services available for deployment to the virtual private cloud and consumption. Then, when a user wants to subscribe and invoke a cloud-computing service for usage, the user can invoke the cloud-computing service on a self-service, on-demand basis through the consumption module 732. Consumption module 732 may list published available cloud-computing service at or near real-time, and allow a user to request updates and information on a listed cloud-computing service. In some embodiments, the consumption module 732 may allow users to collaborate on where, what, and how many cloud-computing services are deployed for consumption. In further embodiments, consumption module 732 may allow a user to comment on and rate cloud-computing services, or assess the cost associated with deploying and using a cloud-computing service. As noted above, as with the planning module 723 and the builder module 729, the consumption module 732 has access to policy information and other metamodel data that is associated with each workload, such that the workload may be consumed only in a manner that is consistent with such policy information. Thus consumption policies related to permitted time, permitted sets of users, security, pricing, resource consumption rules, and a wide variety of other policies may be maintained by the consumption module based on the policies associated with the workload in the platform 720.
  • Manager module 726 can be configured to provision one or more cloud-computing resources for a cloud-computing service or computer workload, manage one or more cloud-computing resources for the cloud-computing service or computer workload, and monitor one or more cloud-computing resources for the cloud-computing service or computer workload. For example, manager module 726 may provision one or more cloud-computing resources (e.g., provision one or more virtual machine instances) for a published cloud-computing service that is invoked from the consumption module 732. Upon invoking the cloud-computing service, the manager module 726 may deploy and start the one or more cloud-computing resources to the virtual private cloud for the cloud-computing service.
  • With respect to control, manager module 726 may control the start, stop, or run-time of one or more cloud-computing resources (e.g., control start, stop, or run-time of virtual machine instance) for a cloud-computing service. Manager module 726 may further schedule the start and stop time windows for the one or more cloud-computing resources, or govern a service level, such as per a service level agreement (SLA), or a threshold associated with the one or more cloud-computing resources. Through its control, manager module 726 can govern the cloud-computing resource according to conditions, constraints, security policies, or non-security policies. Manager module 726 may also monitor the one or more cloud-computing resources, detect security intrusions, and monitor the consumption of cloud-computing services their associated cloud-computing resources in order to determine the costs accrued by a user. Aspects of cloud-computing resources monitored by manager module 726 include, for example, central processing unit (CPU) usage, memory usage, data storage usage, data input/output usage, application usage, workload usage, service usage, and other attributes of usage of a service or a computer workload.
  • In some embodiments, manager module 726 is configured such that a user can request a planner using the planner module 723 to change the design of a cloud-computing service. For example, a user may request that the cloud-computing service change or computer workload with respect to the cloud-computing resources utilized (e.g., change to a platform stack). As in the other components of the platform 720, in the manager module 726 the user may have access to, or may create or modify, policy information or metamodel data relevant to the computer workloads with which the user can interact in the manager module 726. The manager/user of the manager module 726 may thus manage the provisioning of infrastructure and platform elements such that usage will be consistent with the policies of the enterprise, including operational and business policies, as well as technical requirements. For example, provisioning to expensive infrastructure elements may be confined to workloads that satisfy business rules that distinguish between mission critical elements and other elements. The manager/user of the manager module 726 may be provided with access to the policies consistent with the metamodel framework, and in embodiments may be provided with pre-filtered options, such as in menu choices, decision trees, or the like, that are consistent with such policies. For example, a workload designated as non-critical in its metamodel data could automatically appear in the manager module with deployment options confined to relatively low cost clouds, while a mission-critical workload might appear with all different cloud options (or ones that are filtered to satisfy certain requirements as to low latency, bandwidth, storage capacity, guaranteed quality of service, or the like). As with other modules, the manager module 726 may thus enforce policy while streamlining workflow, improving both effectiveness and efficiency.
  • In some embodiments, the cloud-computing platform can also comprise a repeated use module 750, as shown in FIG. 7. The repeated use module 750 can be configured to facilitate or provide for the repeated use (e.g., recursive consumption and/or publication) of computing resources or offerings. In some implementations, the repeated use module 750 can correspond to the repeated use module 102 of FIG. 1, the repeated use module 202 of FIG. 2, the repeated use module 302 of FIG. 3, and/or the repeated use module 400 of FIG. 4.
  • In some cases, the repeated use module 750 can be implemented as software, hardware, or any combination thereof. In some embodiments, the repeated use module 750 can be implemented in, integrated with, or can correspond to a service catalog or a self-service portal. In some embodiments, the repeated use module 750 can be implemented as or reside with (at least a portion of) the cloud computing platform 720. Moreover, in some embodiments, the repeated use module 750 can be implemented, in part or in whole, in one or more of the various modules included with the cloud computing platform 720. For example, the repeated use module 750 can be implemented, in part or in whole, in a scheduling module of the cloud computing platform 720 and/or in the manager module 726 of the cloud computing platform 720.
  • FIG. 8 shows a diagram illustrating an example management module 826 (e.g., management module 726 in FIG. 7) in further detail. As illustrated, management module 826 comprises governor module 803 configured to govern operation of a cloud-computing services and its associated cloud-computing resources, provisioning module 806 configured to provision cloud-computing resources for a cloud-computing service, and monitoring module 812 configured to facilitate the various monitoring functions of management module 826.
  • In embodiments, the present disclosure may provide for a policy-driven infrastructure as a service (IaaS) event bus, which can be comprised of a policy engine, metamodel, reporting system, and workflow engine; and allows for the creation of business policies, such that said business policies can be reflected into a dynamic information technology environment and expressed across internal and external information technology infrastructure, regardless of operating system, programming language, middle-ware solution, application platform, or cloud provider, by making use of abstraction layers. The workflow engine provides an integration point between the IaaS event bus and workflow management. The abstraction layers allow for integration with application programming interfaces made available by different vendors, business models, technical models, eventing and altering channels and monitoring systems in a vendor agnostic manner. In embodiments the abstraction layer could be a cloud-computing provider. A cloud computing provider may be VMWare, Baremetal, Amazon EC2, Savvis, TerreMark, Microsoft HyperV, and the like. In other embodiments, there may be multiple layers of abstraction in an abstraction layer.
  • The policy engine allows policies to be created through an easy to use visual interface that allows users that do not necessarily have information technology skills or other programming skills to author and assign policies to workloads. The policies can be expressed via languages such as XML, and the like. In some embodiments of the present disclosure a policy could be an event policy. An event policy supports matching one or more events that are temporally related and generate a notification action when matches occur. An event can be defined as either a threshold condition or matching constraints specified as rules. A rule can be comprised of one or more match constraints and each match constraint must be satisfied, by a logical “and” operation, within a specified sliding time window in order for the notification actions to be invoked. A match specifies the set of conditions that must be satisfied to match an event. Each condition specifies a property of an event or object contained by the event, which is matched against a set of one or more values using the supplied comparison operation If multiple values are supplied for a condition then the result is a logical “or” operation of the property being compared and against each value individually. Any of the event properties or properties of objects contained within the event structure may be used to refine the match criteria. For example, an auto-scaling policy may be created to add more web and database servers according to a ration if a business application becomes heavily loaded, in order to reduce the load on that application. In another example, an auto-scaling policy with business awareness may be created that deploys additional business topologies according to an algorithm if revenue per hour exceeds a threshold.
  • The metamodel allows the system to abstract business user definition from technical definition and allows an enterprise to track information about information technology resources that were unknown when the system was created. By abstracting the business user definition from the technical definition, the metamodel allows business users to define data classes consistent with their enterprise nomenclature, while still being able to map them consistently to the internal system. For example a Tier 4 data center is common technical classification of a data center that generally has the highest uptime, however some enterprises refer to Tier 4 data centers as Tier 1 and the metamodel would allow Tier 1 and Tier 4 to be used interchangeably, depending on the definition used by a specific enterprise. This provides a benefit to the enterprise by eliminating the need to write specific policies for each instance or the need to customize each abstraction layer for individual instances. By tracking information about IT resources that were unknown when the system was created, the metamodel allows business users to arbitrarily define elements of data to track and create policy after the system was built, also allowing the users to track a specific piece of information that is defined for any resources that are managed by the system. Resources could be networks, storage, servers, workloads, topologies, applications, business units, and the like.
  • In other further embodiments, the policy-driven infrastructure as a service may also include additional components. Additional components may be reporting, auditing, and federated identify management systems.
  • In embodiments, the present disclosure may provide for a visual policy editor, which provides an easy-to-use graphical user interface to a feature-rich and extensible policy engine, using a visual programming language and policies, eliminating the need for the user to write complex code to define, assign, and enforce policies. The graphical user interface allows the user to author policies using a visual drag-and-drop interface or an XML editor. The visual programming language functions could be loops, variables, branching, switching, pulling of attributes, code execution within a policy, and the like. For example the visual programming language could access an external pricing engine that contains live pricing information, then make a decision on the next step of the execution process, based on the information it receives from the pricing engine. In some embodiments, policies can be enforced at an object level. Objects could be organizational groups, individual projects, different deployment environments, and the like. Policies could be access control policies, firewall policies, event-based policies and the like. Access control policies could include packages, scripts, and the like. Access control policies could be defined by cloud or other service providers, network attributes, network geographic location, security policies, and the like. Firewall policies may include port and network ACL lists that are applied as policies and applied at container level to ensure conformance to corporate standards for port opening/closing. Event based policies relate to service level management and could include compound threshold rules that trigger an action, lifecycle event management, compound event sequences, signature detection, and policy stacking, and the like. For example, a policy could be defined to restrict deployment of a computing workload to private internal clouds in a specific country.
  • In embodiments, the present disclosure may provide for automated processes to support a continuous integration cycle to migrate a computing workload from a development environment to an operational environment. The continuous integration cycle may include maintaining a code repository, automating the build process, self-testing the build process, automatically deploying the build, and the like. The policies and metamodels defined and assigned to the computing workload environment follow the build from its creation using the Builder Module through to its publication into the Consumption module. This capability allows the enterprise to greatly reduce the time required to develop, test, deploy and update a computing workload. Continuous integration may also include ensuring the modernization, patch management, conforming configuration of deployed cloud-computing services. The embodiments may provide this service as DevToOps policy allowing centrally defined service definition that deployed cloud-compute services can compare against and either update themselves when their configuration no longer matches, warn administrators of non-conformance, rewrite themselves back to conformance when configurations of the cloud-compute services are made arbitrarily, and the like.
  • As noted before, various embodiments of the present disclosure provide standardized access, management, or control to different types of cloud-computing resources on a self-service, on-demand basis without the user needing to know the specific instructions or details for accessing, managing, or controlling those different target cloud-computing resources.
  • In some implementations, in order to translate a standard management action for a cloud-computing service to instructions for its cloud-computing resource and/or instructions for a computer workload to be executed on a cloud-computing resource, some management modules may comprise a cloud model data store 809 that maps the management action to the appropriate cloud-computing resources. Subsequently, the management action can be translated to one or more instructions for a target cloud-computing resource and/or a computer workload operating thereon. For example, a topology is an example of a cloud service, where a topology can be comprised of a number of individual virtual machines orchestrated together. A common management action to perform on a topology is to start it. This simple topology start action within the management layer gets turned into a number of individual instructions that get passed down into the cloud service bus 815, such as (1) calculate the Start Up order for topology, (2) initiate ordered startup one VM at a time, (3) as VM's come up, attach volumes that are associated with the VM, (4) install any packages and software onto the VM's, and (5) once all machines are up and running the topology status changes to running.
  • Cloud service bus 815 may be utilized to parse management instructions received from the manager module 826, transform the management instructions to instructions compatible with the target cloud-computing resource, and route the management instruction to the targeted cloud-computing resource. In some embodiments, the cloud service bus 815 can then route, via a connection module(s) 818, the instructions to the application program interface (API) 821 for a target cloud-computing resource from an external commercial cloud resource(s) 827, or to the virtual machine manager (VMM) (e.g., hypervisor) 824 for a target cloud-computing resource from an internal private cloud resource(s) 830.
  • Hardware Implementation
  • The foregoing processes and features can be implemented by a wide variety of machine and computer system architectures and in a wide variety of network and computing environments. FIG. 9 illustrates an example of a computer system 900 that may be used to implement one or more of the embodiments described herein in accordance with an embodiment of the invention. The computer system 900 includes sets of instructions for causing the computer system 900 to perform the processes and features discussed herein. The computer system 900 may be connected (e.g., networked) to other machines. In a networked deployment, the computer system 900 may operate in the capacity of a server machine or a client machine in a client-server network environment, or as a peer machine in a peer-to-peer (or distributed) network environment. In an embodiment of the invention, the computer system 900 may be a component of the networking system described herein. In an embodiment of the present disclosure, the computer system 900 may be one server among many that constitutes all or part of a networking system.
  • The computer system 900 can include a processor 902, a cache 904, and one or more executable modules and drivers, stored on a computer-readable medium, directed to the processes and features described herein. Additionally, the computer system 900 may include a high performance input/output (I/O) bus 906 or a standard I/O bus 908. A host bridge 910 couples processor 902 to high performance I/O bus 906, whereas I/O bus bridge 912 couples the two buses 906 and 908 to each other. A system memory 914 and one or more network interfaces 916 couple to high performance I/O bus 906. The computer system 900 may further include video memory and a display device coupled to the video memory (not shown). Mass storage 918 and I/O ports 920 couple to the standard I/O bus 908. The computer system 900 may optionally include a keyboard and pointing device, a display device, or other input/output devices (not shown) coupled to the standard I/O bus 908. Collectively, these elements are intended to represent a broad category of computer hardware systems, including but not limited to computer systems based on the x86-compatible processors manufactured by Intel Corporation of Santa Clara, Calif., and the x86-compatible processors manufactured by Advanced Micro Devices (AMD), Inc., of Sunnyvale, Calif., as well as any other suitable processor.
  • An operating system manages and controls the operation of the computer system 900, including the input and output of data to and from software applications (not shown). The operating system provides an interface between the software applications being executed on the system and the hardware components of the system. Any suitable operating system may be used, such as the LINUX Operating System, the Apple Macintosh Operating System, available from Apple Computer Inc. of Cupertino, Calif., UNIX operating systems, Microsoft® Windows® operating systems, BSD operating systems, and the like. Other implementations are possible.
  • The elements of the computer system 900 are described in greater detail below. In particular, the network interface 916 provides communication between the computer system 900 and any of a wide range of networks, such as an Ethernet (e.g., IEEE 802.3) network, a backplane, etc. The mass storage 918 provides permanent storage for the data and programming instructions to perform the above-described processes and features implemented by the respective computing systems identified above, whereas the system memory 914 (e.g., DRAM) provides temporary storage for the data and programming instructions when executed by the processor 902. The I/O ports 920 may be one or more serial and/or parallel communication ports that provide communication between additional peripheral devices, which may be coupled to the computer system 900.
  • The computer system 900 may include a variety of system architectures, and various components of the computer system 900 may be rearranged. For example, the cache 904 may be on-chip with processor 902. Alternatively, the cache 904 and the processor 902 may be packed together as a “processor module”, with processor 902 being referred to as the “processor core”. Furthermore, certain embodiments of the invention may neither require nor include all of the above components. For example, peripheral devices coupled to the standard I/O bus 908 may couple to the high performance I/O bus 906. In addition, in some embodiments, only a single bus may exist, with the components of the computer system 900 being coupled to the single bus. Furthermore, the computer system 900 may include additional components, such as additional processors, storage devices, or memories.
  • In general, the processes and features described herein may be implemented as part of an operating system or a specific application, component, program, object, module, or series of instructions referred to as “programs”. For example, one or more programs may be used to execute specific processes described herein. The programs typically comprise one or more instructions in various memory and storage devices in the computer system 900 that, when read and executed by one or more processors, cause the computer system 900 to perform operations to execute the processes and features described herein. The processes and features described herein may be implemented in software, firmware, hardware (e.g., an application specific integrated circuit), or any combination thereof.
  • In one implementation, the processes and features described herein are implemented as a series of executable modules run by the computer system 900, individually or collectively in a distributed computing environment. The foregoing modules may be realized by hardware, executable modules stored on a computer-readable medium (or machine-readable medium), or a combination of both. For example, the modules may comprise a plurality or series of instructions to be executed by a processor in a hardware system, such as the processor 902. Initially, the series of instructions may be stored on a storage device, such as the mass storage 918. However, the series of instructions can be stored on any suitable computer readable storage medium. Furthermore, the series of instructions need not be stored locally, and could be received from a remote storage device, such as a server on a network, via the network interface 916. The instructions are copied from the storage device, such as the mass storage 918, into the system memory 914 and then accessed and executed by the processor 902. In various implementations, a module or modules can be executed by a processor or multiple processors in one or multiple locations, such as multiple servers in a parallel processing environment.
  • Examples of computer-readable media include, but are not limited to, recordable type media such as volatile and non-volatile memory devices; solid state memories; floppy and other removable disks; hard disk drives; magnetic media; optical disks (e.g., Compact Disk Read-Only Memory (CD ROMS), Digital Versatile Disks (DVDs)); other similar non-transitory (or transitory), tangible (or non-tangible) storage medium; or any type of medium suitable for storing, encoding, or carrying a series of instructions for execution by the computer system 900 to perform any one or more of the processes and features described herein.
  • For purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the description. It will be apparent, however, to one skilled in the art that embodiments of the disclosure can be practiced without these specific details. In some instances, modules, structures, processes, features, and devices are shown in block diagram form in order to avoid obscuring the description. In other instances, functional block diagrams and flow diagrams are shown to represent data and logic flows. The components of block diagrams and flow diagrams (e.g., modules, blocks, structures, devices, features, etc.) may be variously combined, separated, removed, reordered, and replaced in a manner other than as expressly described and depicted herein.
  • Reference in this specification to “one embodiment”, “an embodiment”, “other embodiments”, “one series of embodiments”, “some embodiments”, “various embodiments”, or the like means that a particular feature, design, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the disclosure. The appearances of, for example, the phrase “in one embodiment” or “in an embodiment” in various places in the specification are not necessarily all referring to the same embodiment, nor are separate or alternative embodiments mutually exclusive of other embodiments. Moreover, whether or not there is express reference to an “embodiment” or the like, various features are described, which may be variously combined and included in some embodiments, but also variously omitted in other embodiments. Similarly, various features are described that may be preferences or requirements for some embodiments, but not other embodiments.
  • It should also be appreciated that the specification and drawings are to be regarded in an illustrative sense. It can be evident that various changes, alterations, and modifications can be made thereunto without departing from the broader spirit and scope of the disclosed technology.
  • Moreover, the language used herein has been principally selected for readability and instructional purposes, and it may not have been selected to delineate or circumscribe the inventive subject matter. It is therefore intended that the scope of the invention be limited not by this detailed description, but rather by any claims that issue on an application based hereon. Accordingly, the disclosure of the embodiments of the invention is intended to be illustrative, but not limiting, of the scope of the invention, which is set forth in the following claims.

Claims (6)

What is claimed:
1. A computer-implemented method comprising:
providing, by a computing system, access to an Infrastructure-as-a-Service (IaaS) resource via a service catalog, the IaaS resource being created by a first entity, and associated with a first cost;
receiving, by the computing system, a Platform-as-a-Service (PaaS) resource, the PaaS resource being created by a second entity based, at least in part, on the IaaS resource;
providing, by the computing system, access to the PaaS resource via the service catalog, the PaaS resource associated with a second cost;
receiving, by the computing system, a Software-as-a-Service (SaaS) resource, the SaaS resource being created by a third entity based, at least in part, on the PaaS resource;
providing, by the computing system, access to the SaaS resource via the service catalog, the SaaS resource associated with a third cost; and
tracking, by the computing system, relational information associated with the IaaS resource, the PaaS resource, and the SaaS resource, wherein,
tracking the relational information associated with the IaaS resource, the PaaS resource, and the SaaS resource comprises tracking financial relational information, such that
access of the SaaS resource by a fourth user results in allocation of the first cost to the first entity, the second cost to the second entity, and the third cost to the third entity, and
access of the PaaS resource by the fourth user results in allocation of the first cost to the first entity, and the second cost to the second entity.
2. The computer-implemented method of claim 1, wherein the relational information further includes at least one of licensing information, service-level agreement (SLA) information, or configuration information.
3. The computer-implemented method of claim 1, further comprising:
providing a marketplace configured to facilitate one or more interactions among users of the service catalog.
4. The computer-implemented method of claim 1, wherein the computing system is associated with an abstraction layer of a cloud management system.
5. A system comprising:
at least one processor; and
a memory storing instructions that, when executed by the at least one processor, cause the system to perform:
providing access to an Infrastructure-as-a-Service (IaaS) resource via a service catalog, the IaaS resource being created by a first entity, and associated with a first cost;
receiving a Platform-as-a-Service (PaaS) resource, the PaaS resource being created by a second entity based, at least in part, on the IaaS resource;
providing access to the PaaS resource via the service catalog, the PaaS resource associated with a second cost;
receiving a Software-as-a-Service (SaaS) resource, the SaaS resource being created by a third entity based, at least in part, on the second-level computing resource;
providing access to the SaaS resource via the service catalog, the SaaS resource associated with a third cost; and
tracking relational information associated with the IaaS resource, the PaaS resource, and the SaaS resource, wherein
tracking the relational information associated with the IaaS resource, the PaaS resource, and the SaaS resource comprises tracking financial relational information, such that
access of the SaaS resource by a fourth user results in allocation of the first cost to the first entity, the second cost to the second entity, and the third cost to the third entity, and
access of the PaaS resource by the fourth user results in allocation of the first cost to the first entity, and the second cost to the second entity.
6. A non-transitory computer-readable storage medium including instructions that, when executed by at least one processor of a computing system, cause the computing system to perform:
providing access to an Infrastructure-as-a-Service (IaaS) resource via a service catalog, the IaaS resource being created by a first entity, and associated with a first cost;
receiving a Platform-as-a-Service (PaaS) resource, the PaaS resource being created by a second entity based, at least in part, on the IaaS resource;
providing access to the PaaS resource via the service catalog, the PaaS resource associated with a second cost;
receiving a Software-as-a-Service (SaaS) resource, the SaaS resource being created by a third entity based, at least in part, on the second-level computing resource;
providing access to the SaaS resource via the service catalog, the SaaS resource associated with a third cost; and
tracking relational information associated with the IaaS resource, the PaaS resource, and the SaaS resource, wherein
tracking the relational information associated with the IaaS resource, the PaaS resource, and the SaaS resource comprises tracking financial relational information, such that
access of the SaaS resource by a fourth user results in allocation of the first cost to the first entity, the second cost to the second entity, and the third cost to the third entity, and
access of the PaaS resource by the fourth user results in allocation of the first cost to the first entity, and the second cost to the second entity.
US15/413,243 2008-06-19 2017-01-23 Systems and methods for providing repeated use of computing resources Abandoned US20170132677A1 (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
US15/413,243 US20170132677A1 (en) 2008-06-19 2017-01-23 Systems and methods for providing repeated use of computing resources
US17/094,204 US20210133836A1 (en) 2008-06-19 2020-11-10 Systems and methods for providing repeated use of computing resources
US17/695,116 US20220207580A1 (en) 2008-06-19 2022-03-15 Systems and methods for providing repeated use of computing resources
US18/338,894 US12248971B2 (en) 2008-06-19 2023-06-21 Systems and methods for providing repeated use of computing resources
US18/978,659 US20250111416A1 (en) 2008-06-19 2024-12-12 Systems and methods for providing repeated use of computing resources

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US7402708P 2008-06-19 2008-06-19
US12/488,424 US8514868B2 (en) 2008-06-19 2009-06-19 Cloud computing gateway, cloud computing hypervisor, and methods for implementing same
US29640510P 2010-01-19 2010-01-19
US201161434396P 2011-01-19 2011-01-19
US13/009,774 US8931038B2 (en) 2009-06-19 2011-01-19 System and method for a cloud computing abstraction layer
US13/354,275 US9069599B2 (en) 2008-06-19 2012-01-19 System and method for a cloud computing abstraction layer with security zone facilities
US13/842,413 US9489647B2 (en) 2008-06-19 2013-03-15 System and method for a cloud computing abstraction with self-service portal for publishing resources
US14/213,540 US20140201017A1 (en) 2008-06-19 2014-03-14 Systems and methods for providing repeated use of computing resources
US15/413,243 US20170132677A1 (en) 2008-06-19 2017-01-23 Systems and methods for providing repeated use of computing resources

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US14/213,540 Continuation US20140201017A1 (en) 2008-06-19 2014-03-14 Systems and methods for providing repeated use of computing resources

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/094,204 Continuation US20210133836A1 (en) 2008-06-19 2020-11-10 Systems and methods for providing repeated use of computing resources

Publications (1)

Publication Number Publication Date
US20170132677A1 true US20170132677A1 (en) 2017-05-11

Family

ID=51165918

Family Applications (6)

Application Number Title Priority Date Filing Date
US14/213,540 Abandoned US20140201017A1 (en) 2008-06-19 2014-03-14 Systems and methods for providing repeated use of computing resources
US15/413,243 Abandoned US20170132677A1 (en) 2008-06-19 2017-01-23 Systems and methods for providing repeated use of computing resources
US17/094,204 Abandoned US20210133836A1 (en) 2008-06-19 2020-11-10 Systems and methods for providing repeated use of computing resources
US17/695,116 Abandoned US20220207580A1 (en) 2008-06-19 2022-03-15 Systems and methods for providing repeated use of computing resources
US18/338,894 Active US12248971B2 (en) 2008-06-19 2023-06-21 Systems and methods for providing repeated use of computing resources
US18/978,659 Pending US20250111416A1 (en) 2008-06-19 2024-12-12 Systems and methods for providing repeated use of computing resources

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US14/213,540 Abandoned US20140201017A1 (en) 2008-06-19 2014-03-14 Systems and methods for providing repeated use of computing resources

Family Applications After (4)

Application Number Title Priority Date Filing Date
US17/094,204 Abandoned US20210133836A1 (en) 2008-06-19 2020-11-10 Systems and methods for providing repeated use of computing resources
US17/695,116 Abandoned US20220207580A1 (en) 2008-06-19 2022-03-15 Systems and methods for providing repeated use of computing resources
US18/338,894 Active US12248971B2 (en) 2008-06-19 2023-06-21 Systems and methods for providing repeated use of computing resources
US18/978,659 Pending US20250111416A1 (en) 2008-06-19 2024-12-12 Systems and methods for providing repeated use of computing resources

Country Status (1)

Country Link
US (6) US20140201017A1 (en)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140279131A1 (en) * 2013-03-14 2014-09-18 Robert Edward Sullivan On-line marketplace service
US10565534B2 (en) 2014-11-11 2020-02-18 Amazon Technologies, Inc. Constraints and constraint sharing in a catalog service platform
US11244261B2 (en) 2014-11-11 2022-02-08 Amazon Technologies, Inc. Catalog service platform for deploying applications and services
US10089676B1 (en) 2014-11-11 2018-10-02 Amazon Technologies, Inc. Graph processing service component in a catalog service platform
US10277522B1 (en) * 2014-11-26 2019-04-30 Amazon Technologies, Inc. Automated association of computing resources with resource creators for usage allocation
US10318265B1 (en) 2015-10-09 2019-06-11 Amazon Technologies, Inc. Template generation for deployable units
WO2018035554A1 (en) * 2016-08-24 2018-03-01 Selfserveme Pty Ltd Customer service systems and portals
CN110879748B (en) * 2018-09-06 2023-06-13 阿里巴巴集团控股有限公司 Shared resource allocation method, device and equipment
WO2022205160A1 (en) * 2021-03-31 2022-10-06 京东方科技集团股份有限公司 Method and apparatus for application deployment in software-as-a-service platform, and storage medium

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6850988B1 (en) * 2000-09-15 2005-02-01 Oracle International Corporation System and method for dynamically evaluating an electronic commerce business model through click stream analysis
US20090300635A1 (en) * 2008-05-30 2009-12-03 James Michael Ferris Methods and systems for providing a marketplace for cloud-based networks
US20110314466A1 (en) * 2010-06-17 2011-12-22 International Business Machines Corporation Creating instances of cloud computing environments
US20120179824A1 (en) * 2005-03-16 2012-07-12 Adaptive Computing Enterprises, Inc. System and method of brokering cloud computing resources
US20120290460A1 (en) * 2011-05-09 2012-11-15 Curry Jr Steven Lynn Composite Public Cloud, Method and System
US20130013377A1 (en) * 2011-07-07 2013-01-10 Empire Technology Development Llc Vendor optimization in aggregated environments
US20140068743A1 (en) * 2012-08-30 2014-03-06 International Business Machines Corporation Secure configuration catalog of trusted identity providers
US20140279201A1 (en) * 2013-03-15 2014-09-18 Gravitant, Inc. Assessment of best fit cloud deployment infrastructures
US20150058459A1 (en) * 2013-08-21 2015-02-26 International Business Machines Corporation Generating a service-catalog entry from discovered attributes of provisioned virtual machines
US20150206207A1 (en) * 2013-03-15 2015-07-23 Gravitant, Inc Pricing rules management functionality within a cloud service brokerage platform

Family Cites Families (310)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0826181A4 (en) 1995-04-11 2005-02-09 Kinetech Inc Identifying data in a data processing system
AU8256998A (en) 1997-06-16 1999-01-04 Badieh Z. II Keilani System and method for processing multiple financial applications using a three-tier value network
US6012053A (en) 1997-06-23 2000-01-04 Lycos, Inc. Computer system with user-controlled relevance ranking of search results
US7184428B1 (en) 1997-12-31 2007-02-27 At&T Corp. Facility management platform for a hybrid coaxial/twisted pair local loop network service architecture
US6182226B1 (en) 1998-03-18 2001-01-30 Secure Computing Corporation System and method for controlling interactions between networks
US6345361B1 (en) 1998-04-06 2002-02-05 Microsoft Corporation Directional set operations for permission based security in a computer system
US6321334B1 (en) 1998-07-15 2001-11-20 Microsoft Corporation Administering permissions associated with a security zone in a computer system security model
US6473800B1 (en) 1998-07-15 2002-10-29 Microsoft Corporation Declarative permission requests in a computer system
US7016485B2 (en) 1998-08-03 2006-03-21 Genesys Telecommunications Laboratories, Inc. Emergency call load management for call centers
US6523166B1 (en) 1998-09-21 2003-02-18 Microsoft Corporation Method and system for on-demand installation of software implementations
US6158010A (en) 1998-10-28 2000-12-05 Crosslogix, Inc. System and method for maintaining security in a distributed computer network
WO2000033238A2 (en) 1998-11-30 2000-06-08 Siebel Systems, Inc. Assignment manager
US6996716B1 (en) 1999-04-15 2006-02-07 Avaya Technology Corp. Dual-tier security architecture for inter-domain environments
GB2353612B (en) 1999-08-24 2003-11-12 Mitel Corp Processing by use of synchronised tuple spaces and assertions
WO2001029686A1 (en) 1999-10-21 2001-04-26 Sony Electronics Inc. Method for quantifying available system resources in an electronic device
US7143439B2 (en) 2000-01-07 2006-11-28 Security, Inc. Efficient evaluation of rules
US6880089B1 (en) 2000-03-31 2005-04-12 Avaya Technology Corp. Firewall clustering for multiple network servers
AU2001255425A1 (en) 2000-04-14 2001-10-30 The Orton Family Foundation Integrated system for and method of supporting spatial decision making and land-use scenario analysis
WO2001082097A1 (en) 2000-04-27 2001-11-01 Fortress Technologies, Inc. A method and apparatus for integrating tunneling protocols with standard routing protocols
US6721793B1 (en) * 2000-05-10 2004-04-13 Cisco Technology, Inc. Intellectual property over non-internet protocol systems and networks
US7376965B2 (en) 2000-05-15 2008-05-20 Hewlett-Packard Development Company, L.P. System and method for implementing a bubble policy to achieve host and network security
US20020093527A1 (en) 2000-06-16 2002-07-18 Sherlock Kieran G. User interface for a security policy system and method
US6513059B1 (en) * 2000-08-24 2003-01-28 Cambira Corporation Adaptive collaborative intelligent network system
US20110213869A1 (en) 2000-09-25 2011-09-01 Yevgeny Korsunsky Processing data flows with a data flow processor
US20110238855A1 (en) 2000-09-25 2011-09-29 Yevgeny Korsunsky Processing data flows with a data flow processor
US20110214157A1 (en) 2000-09-25 2011-09-01 Yevgeny Korsunsky Securing a network with data flow processing
US9800608B2 (en) 2000-09-25 2017-10-24 Symantec Corporation Processing data flows with a data flow processor
US20110219035A1 (en) 2000-09-25 2011-09-08 Yevgeny Korsunsky Database security via data flow processing
US20110231564A1 (en) 2000-09-25 2011-09-22 Yevgeny Korsunsky Processing data flows with a data flow processor
US9525696B2 (en) 2000-09-25 2016-12-20 Blue Coat Systems, Inc. Systems and methods for processing data flows
US20020129128A1 (en) 2001-03-07 2002-09-12 Stephen Gold Aggregation of multiple headless computer entities into a single computer entity group
US7284267B1 (en) 2001-03-08 2007-10-16 Mcafee, Inc. Automatically configuring a computer firewall based on network connection
US8135815B2 (en) 2001-03-27 2012-03-13 Redseal Systems, Inc. Method and apparatus for network wide policy-based analysis of configurations of devices
US7003562B2 (en) 2001-03-27 2006-02-21 Redseal Systems, Inc. Method and apparatus for network wide policy-based analysis of configurations of devices
US20020184525A1 (en) 2001-03-29 2002-12-05 Lebin Cheng Style sheet transformation driven firewall access list generation
US7685261B1 (en) 2001-06-29 2010-03-23 Symantec Operating Corporation Extensible architecture for the centralized discovery and management of heterogeneous SAN components
US7546629B2 (en) 2002-03-06 2009-06-09 Check Point Software Technologies, Inc. System and methodology for security policy arbitration
US8001594B2 (en) 2001-07-30 2011-08-16 Ipass, Inc. Monitoring computer network security enforcement
US6880002B2 (en) 2001-09-05 2005-04-12 Surgient, Inc. Virtualized logical server cloud providing non-deterministic allocation of logical attributes of logical servers to physical resources
EP1293978A1 (en) 2001-09-10 2003-03-19 STMicroelectronics S.r.l. Coding/decoding process and device, for instance for disk drives
US7694303B2 (en) 2001-09-25 2010-04-06 Sun Microsystems, Inc. Method for dynamic optimization of multiplexed resource partitions
US20030093465A1 (en) 2001-10-31 2003-05-15 International Business Machines Corporation Management strategies for internationalization in a distributed computer environment
US7574496B2 (en) 2001-11-30 2009-08-11 Surgient, Inc. Virtual server cloud interfacing
US20030110154A1 (en) 2001-12-07 2003-06-12 Ishihara Mark M. Multi-processor, content-based traffic management system and a content-based traffic management system for handling both HTTP and non-HTTP data
US6577274B1 (en) 2001-12-19 2003-06-10 Intel Corporation Method and apparatus for controlling access to mobile devices
US7698230B1 (en) 2002-02-15 2010-04-13 ContractPal, Inc. Transaction architecture utilizing transaction policy statements
FR2836573A1 (en) 2002-02-27 2003-08-29 France Telecom Computer representation of a data tree structure, which is representative of the organization of a data set or data dictionary, has first and second total order relations representative of tree nodes and stored data items
US20030177390A1 (en) 2002-03-15 2003-09-18 Rakesh Radhakrishnan Securing applications based on application infrastructure security techniques
US6990666B2 (en) 2002-03-18 2006-01-24 Surgient Inc. Near on-line server
US6895413B2 (en) 2002-03-22 2005-05-17 Network Appliance, Inc. System and method for performing an on-line check of a file system
AU2002309456A1 (en) 2002-05-16 2003-12-02 Agency For Science, Technology And Research A computing system deployment planning method
US7886031B1 (en) 2002-06-04 2011-02-08 Symantec Operating Corporation SAN configuration utility
US6847970B2 (en) 2002-09-11 2005-01-25 International Business Machines Corporation Methods and apparatus for managing dependencies in distributed systems
US8019849B1 (en) 2002-09-13 2011-09-13 Symantec Operating Corporation Server-side storage area network management interface
US7774444B1 (en) 2002-10-16 2010-08-10 Symantec Operating Corporation SAN simulator
US7062566B2 (en) 2002-10-24 2006-06-13 3Com Corporation System and method for using virtual local area network tags with a virtual private network
US8060630B1 (en) 2002-11-27 2011-11-15 Symantec Operating Corporation Creating and configuring virtual fabrics in storage area networks
US20040111643A1 (en) 2002-12-02 2004-06-10 Farmer Daniel G. System and method for providing an enterprise-based computer security policy
CA2510111A1 (en) 2002-12-16 2004-07-15 Questerra Corporation Real-time insurance policy underwriting and risk management
WO2004071038A1 (en) 2003-02-05 2004-08-19 Nippon Telegraph And Telephone Corporation Firewall device
US20040210623A1 (en) 2003-03-06 2004-10-21 Aamer Hydrie Virtual network topology generation
US20050091353A1 (en) 2003-09-30 2005-04-28 Gopisetty Sandeep K. System and method for autonomically zoning storage area networks based on policy requirements
US7076393B2 (en) 2003-10-03 2006-07-11 Verizon Services Corp. Methods and apparatus for testing dynamic network firewalls
US20070061441A1 (en) 2003-10-08 2007-03-15 Landis John A Para-virtualized computer system with I/0 server partitions that map physical host hardware for access by guest partitions
JP2007510198A (en) 2003-10-08 2007-04-19 ユニシス コーポレーション Paravirtualization of computer systems using hypervisors implemented in host system partitions
US8316128B2 (en) 2004-01-26 2012-11-20 Forte Internet Software, Inc. Methods and system for creating and managing identity oriented networked communication
US8250150B2 (en) 2004-01-26 2012-08-21 Forte Internet Software, Inc. Methods and apparatus for identifying and facilitating a social interaction structure over a data packet network
US7516457B2 (en) 2004-01-30 2009-04-07 International Business Machines Corporation Componentized automatic provisioning and management of computing environments for computing utilities
US7640429B2 (en) 2004-02-26 2009-12-29 The Boeing Company Cryptographically enforced, multiple-role, policy-enabled object dissemination control mechanism
US7610621B2 (en) 2004-03-10 2009-10-27 Eric White System and method for behavior-based firewall modeling
US8996665B2 (en) 2005-03-16 2015-03-31 Icontrol Networks, Inc. Takeover processes in security network integrated with premise security system
US7328265B2 (en) 2004-03-31 2008-02-05 International Business Machines Corporation Method and system to aggregate evaluation of at least one metric across a plurality of resources
US7584301B1 (en) 2004-05-06 2009-09-01 Foundry Networks, Inc. Host-level policies for global server load balancing
US7484237B2 (en) 2004-05-13 2009-01-27 Hewlett-Packard Development Company, L.P. Method and apparatus for role-based security policy management
US7501385B2 (en) 2004-06-15 2009-03-10 Halliburton Energy Services, Inc. Compositions and methods for water control and strengthening unconsolidated formations
JP4341517B2 (en) 2004-06-21 2009-10-07 日本電気株式会社 Security policy management system, security policy management method and program
US20050289538A1 (en) 2004-06-23 2005-12-29 International Business Machines Corporation Deploying an application software on a virtual deployment target
US7698402B2 (en) 2004-06-30 2010-04-13 Hewlett-Packard Development Company, L.P. Method and apparatus for enhanced design of multi-tier systems
US7310641B2 (en) 2004-07-30 2007-12-18 Microsoft Corporation Multiple redundant services with reputation
US7428754B2 (en) 2004-08-17 2008-09-23 The Mitre Corporation System for secure computing using defense-in-depth architecture
US20060041936A1 (en) 2004-08-19 2006-02-23 International Business Machines Corporation Method and apparatus for graphical presentation of firewall security policy
US20060059548A1 (en) 2004-09-01 2006-03-16 Hildre Eric A System and method for policy enforcement and token state monitoring
GB2418110B (en) 2004-09-14 2006-09-06 3Com Corp Method and apparatus for controlling traffic between different entities on a network
CA2827035A1 (en) 2004-11-08 2006-05-18 Adaptive Computing Enterprises, Inc. System and method of providing system jobs within a compute environment
US20060133338A1 (en) 2004-11-23 2006-06-22 Interdigital Technology Corporation Method and system for securing wireless communications
WO2006059343A2 (en) 2004-11-30 2006-06-08 White Vision Software Limited A method and system for institution of information communication and computation framework
US7644137B2 (en) 2004-12-14 2010-01-05 Sap Ag Workload balancing in environments with multiple clusters of application servers
US9083748B2 (en) 2004-12-16 2015-07-14 Hewlett-Packard Development Company, L.P. Modelling network to assess security properties
CN101088256B (en) 2004-12-21 2010-12-08 艾利森电话股份有限公司 Apparatus and method related to packet flow in communication system
US20070022479A1 (en) 2005-07-21 2007-01-25 Somsubhra Sikdar Network interface and firewall device
US7870550B1 (en) 2004-12-21 2011-01-11 Zenprise, Inc. Systems and methods for automated management of software application deployments
US7937755B1 (en) 2005-01-27 2011-05-03 Juniper Networks, Inc. Identification of network policy violations
US8122131B2 (en) 2005-03-16 2012-02-21 Icontrol Networks, Inc. Takeover processes in security network integrated with premise security system
EP2360588B1 (en) 2005-03-16 2017-10-04 III Holdings 12, LLC Automatic workload transfer to an on-demand center
US20110016214A1 (en) 2009-07-15 2011-01-20 Cluster Resources, Inc. System and method of brokering cloud computing resources
EP3203374B1 (en) 2005-04-07 2021-11-24 III Holdings 12, LLC On-demand access to compute resources
US8326877B2 (en) 2005-05-04 2012-12-04 Microsoft Corporation Region-based security
US20060282295A1 (en) 2005-06-09 2006-12-14 Mccomb Shawn J Method for providing enhanced risk protection to a grower
US20060282294A1 (en) 2005-06-09 2006-12-14 Mccomb Shawn J Supplemental crop insurance and method for providing risk protection to a grower
GB0513045D0 (en) 2005-06-27 2005-08-03 Vidus Ltd Resource scheduling method and system
US8577761B1 (en) 2005-06-30 2013-11-05 Oracle America, Inc. System and method for dynamic offering topologies
US20070011723A1 (en) 2005-07-07 2007-01-11 Ching-Yun Chao Method for maintaining application compatibility within an application isolation policy
US7673029B2 (en) 2005-07-09 2010-03-02 Oracle International Corporation Grid automation bus to integrate management frameworks for dynamic grid management
US20070022474A1 (en) 2005-07-21 2007-01-25 Mistletoe Technologies, Inc. Portable firewall
US8898734B2 (en) 2005-08-20 2014-11-25 Riverbed Technology, Inc. Analyzing security compliance within a network
US20110099126A1 (en) 2005-08-30 2011-04-28 Sensact Applications, Inc. Automated Parking Policy Enforcement System
US20070061870A1 (en) 2005-09-15 2007-03-15 Annsheng Ting Method and system to provide secure data connection between creation points and use points
US8429630B2 (en) 2005-09-15 2013-04-23 Ca, Inc. Globally distributed utility computing cloud
US8472985B2 (en) 2005-09-21 2013-06-25 Buckyball Mobile, Inc Incentive marketing with a context-enriched message
CA2624483C (en) 2005-09-30 2017-11-21 Telecom Italia S.P.A. A method and system for automatically testing performance of applications run in a distributed processing structure and corresponding computer program product
US9374342B2 (en) 2005-11-08 2016-06-21 Verizon Patent And Licensing Inc. System and method for testing network firewall using fine granularity measurements
US8027251B2 (en) 2005-11-08 2011-09-27 Verizon Services Corp. Systems and methods for implementing protocol-aware network firewall
US7805757B2 (en) 2005-12-30 2010-09-28 Alcatel-Lucent Usa Inc. Control of communication session attributes in network employing firewall protection
US20070174429A1 (en) 2006-01-24 2007-07-26 Citrix Systems, Inc. Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment
US8271643B2 (en) 2006-02-01 2012-09-18 Ca, Inc. Method for building enterprise scalability models from production data
US7613826B2 (en) 2006-02-09 2009-11-03 Cisco Technology, Inc. Methods and apparatus for providing multiple policies for a virtual private network
US20070240102A1 (en) 2006-03-02 2007-10-11 International Business Machines Corporation Software development tool for sharing test and deployment assets
US8078728B1 (en) 2006-03-31 2011-12-13 Quest Software, Inc. Capacity pooling for application reservation and delivery
US20070250630A1 (en) 2006-04-25 2007-10-25 Blanding William H Method and a system of generating and evaluating potential resource allocations for an application
US7697441B2 (en) 2006-04-27 2010-04-13 Microsoft Corporation Computer system with black hole management
US20080215681A1 (en) 2006-05-01 2008-09-04 Thomas Darcie Network architecture for multi-user collaboration and data-stream mixing and method thereof
US8619771B2 (en) 2009-09-30 2013-12-31 Vmware, Inc. Private allocated networks over shared communications infrastructure
US7620613B1 (en) 2006-07-28 2009-11-17 Hewlett-Packard Development Company, L.P. Thermal management of data centers
WO2008019380A2 (en) 2006-08-07 2008-02-14 Bea Systems, Inc. System and method for providing hardware virtualization in a virtual machine environment
US8543810B1 (en) 2006-08-07 2013-09-24 Oracle America, Inc. Deployment tool and method for managing security lifecycle of a federated web service
US20090271324A1 (en) 2006-08-11 2009-10-29 Evapt, Inc. Systems and methods for metered software as a service
US8707383B2 (en) 2006-08-16 2014-04-22 International Business Machines Corporation Computer workload management with security policy enforcement
US8893224B2 (en) 2006-08-29 2014-11-18 Microsoft Corporation Zone policy administration for entity tracking and privacy assurance
US8555287B2 (en) 2006-08-31 2013-10-08 Bmc Software, Inc. Automated capacity provisioning method using historical performance data
US8595356B2 (en) 2006-09-28 2013-11-26 Microsoft Corporation Serialization of run-time state
US8255915B1 (en) 2006-10-31 2012-08-28 Hewlett-Packard Development Company, L.P. Workload management for computer system with container hierarchy and workload-group policies
US20100306773A1 (en) 2006-11-06 2010-12-02 Lee Mark M Instant on Platform
CN101192141B (en) 2006-11-20 2010-05-12 北京书生国际信息技术有限公司 Method for packaging UOML into application program interface
US8655939B2 (en) 2007-01-05 2014-02-18 Digital Doors, Inc. Electromagnetic pulse (EMP) hardened information infrastructure with extractor, cloud dispersal, secure storage, content analysis and classification and method therefor
US7937353B2 (en) 2007-01-15 2011-05-03 International Business Machines Corporation Method and system for determining whether to alter a firewall configuration
WO2008093320A1 (en) 2007-01-31 2008-08-07 Tufin Software Technologies Ltd. System and method for auditing a security policy
US8380880B2 (en) 2007-02-02 2013-02-19 The Mathworks, Inc. Scalable architecture
KR20100014481A (en) 2007-03-02 2010-02-10 지티이 (유에스에이) 인크. Wimax multicast broadcast network system architecture
US7853687B2 (en) 2007-03-05 2010-12-14 Alcatel Lucent Access control list generation and validation tool
US8046767B2 (en) 2007-04-30 2011-10-25 Hewlett-Packard Development Company, L.P. Systems and methods for providing capacity management of resource pools for servicing workloads
US7730365B1 (en) 2007-04-30 2010-06-01 Hewlett-Packard Development Company, L.P. Workload management for maintaining redundancy of non-data computer components
US8245235B1 (en) 2007-04-30 2012-08-14 Hewlett-Packard Development Company, L.P. Allocating computer resources to workloads as a function of reliability indications
US8621552B1 (en) 2007-05-22 2013-12-31 Skybox Security Inc. Method, a system, and a computer program product for managing access change assurance
US20080306798A1 (en) 2007-06-05 2008-12-11 Juergen Anke Deployment planning of components in heterogeneous environments
US8060074B2 (en) 2007-07-30 2011-11-15 Mobile Iron, Inc. Virtual instance architecture for mobile device management systems
US7921686B2 (en) 2007-08-28 2011-04-12 Cisco Technology, Inc. Highly scalable architecture for application network appliances
US8719287B2 (en) 2007-08-31 2014-05-06 Business Objects Software Limited Apparatus and method for dynamically selecting componentized executable instructions at run time
US20090085743A1 (en) 2007-09-28 2009-04-02 Symbol Technologies, Inc. Methods and systems for controlling operations of a mobile radio frequency reader based on its location
US20090089078A1 (en) 2007-09-28 2009-04-02 Great-Circle Technologies, Inc. Bundling of automated work flow
US8250581B1 (en) 2007-10-28 2012-08-21 Hewlett-Packard Development Company, L.P. Allocating computer resources to candidate recipient computer workloads according to expected marginal utilities
US8782637B2 (en) 2007-11-03 2014-07-15 ATM Shafiqul Khalid Mini-cloud system for enabling user subscription to cloud service in residential environment
CN101452386B (en) 2007-11-28 2013-05-15 国际商业机器公司 Method and policy engine for executing policy based on context model using forward reasoning chain
US20090158302A1 (en) 2007-12-13 2009-06-18 Fiberlink Communications Corporation Api translation for network access control (nac) agent
US20090178131A1 (en) 2008-01-08 2009-07-09 Microsoft Corporation Globally distributed infrastructure for secure content management
US8800002B2 (en) 2008-02-18 2014-08-05 Microsoft Corporation Inter-process networking for many-core operating systems
US8479209B2 (en) 2008-02-27 2013-07-02 Sap Ag Automated execution of virtual appliances
US8196175B2 (en) 2008-03-05 2012-06-05 Microsoft Corporation Self-describing authorization policy for accessing cloud-based resources
US8418222B2 (en) 2008-03-05 2013-04-09 Microsoft Corporation Flexible scalable application authorization for cloud computing environments
US7836198B2 (en) 2008-03-20 2010-11-16 International Business Machines Corporation Ethernet virtualization using hardware control flow override
US20090265755A1 (en) 2008-04-18 2009-10-22 International Business Machines Corporation Firewall methodologies for use within virtual environments
US8056119B2 (en) 2008-04-25 2011-11-08 Oracle America, Inc. Method and system for controlling inter-zone communication
US8849971B2 (en) 2008-05-28 2014-09-30 Red Hat, Inc. Load balancing in cloud-based networks
US8543998B2 (en) 2008-05-30 2013-09-24 Oracle International Corporation System and method for building virtual appliances using a repository metadata server and a dependency resolution service
US20090300169A1 (en) 2008-06-03 2009-12-03 Microsoft Corporation Synchronization throttling based on user activity
US8924469B2 (en) 2008-06-05 2014-12-30 Headwater Partners I Llc Enterprise access control and accounting allocation for access networks
US10620927B2 (en) 2008-06-06 2020-04-14 International Business Machines Corporation Method, arrangement, computer program product and data processing program for deploying a software service
US8336052B2 (en) 2008-06-16 2012-12-18 International Business Machines Corporation Management, control, and monitoring of workload including unrelated processes of different containers
US9104738B2 (en) 2008-06-19 2015-08-11 Tropare, Inc. Leveraging collaborative cloud services to build and share apps
US9489647B2 (en) 2008-06-19 2016-11-08 Csc Agility Platform, Inc. System and method for a cloud computing abstraction with self-service portal for publishing resources
US9069599B2 (en) 2008-06-19 2015-06-30 Servicemesh, Inc. System and method for a cloud computing abstraction layer with security zone facilities
EP2316071A4 (en) 2008-06-19 2011-08-17 Servicemesh Inc CLOUD COMPUTER GATEWAY, CLOUD COMPUTER HYPERVISOR AND METHODS OF IMPLEMENTING THE SAME
US8291378B2 (en) 2008-07-29 2012-10-16 International Business Machines Corporation Simplified deployment modeling
US8316435B1 (en) 2008-08-14 2012-11-20 Juniper Networks, Inc. Routing device having integrated MPLS-aware firewall with virtual security system support
US8307422B2 (en) 2008-08-14 2012-11-06 Juniper Networks, Inc. Routing device having integrated MPLS-aware firewall
US8713627B2 (en) 2008-08-14 2014-04-29 Juniper Networks, Inc. Scalable security services for multicast in a router having integrated zone-based firewall
US8266254B2 (en) 2008-08-19 2012-09-11 International Business Machines Corporation Allocating resources in a distributed computing environment
US9071443B2 (en) 2008-08-25 2015-06-30 Novell, Inc. Automated service platform prospecting
US8561172B2 (en) 2008-08-29 2013-10-15 Novell Intellectual Property Holdings, Inc. System and method for virtual information cards
AU2009288767B2 (en) 2008-09-08 2015-08-06 Salesforce.Com, Inc. An appliance, system, method and corresponding software components for encrypting and processing data
US8955107B2 (en) 2008-09-12 2015-02-10 Juniper Networks, Inc. Hierarchical application of security services within a computer network
US7987262B2 (en) 2008-11-19 2011-07-26 Accenture Global Services Limited Cloud computing assessment tool
US8230050B1 (en) 2008-12-10 2012-07-24 Amazon Technologies, Inc. Providing access to configurable private computer networks
US8255932B1 (en) 2008-12-17 2012-08-28 Cisco Technology, Inc. Application of an embedded instrumentation interface definition language
WO2010071888A2 (en) 2008-12-19 2010-06-24 Watchguard Technologies, Inc. Cluster architecture and configuration for network security devices
US8117317B2 (en) 2008-12-31 2012-02-14 Sap Ag Systems and methods for integrating local systems with cloud computing resources
US10057775B2 (en) 2009-01-28 2018-08-21 Headwater Research Llc Virtualized policy and charging system
US9344401B2 (en) 2009-02-04 2016-05-17 Citrix Systems, Inc. Methods and systems for providing translations of data retrieved from a storage system in a cloud computing environment
US20120005724A1 (en) 2009-02-09 2012-01-05 Imera Systems, Inc. Method and system for protecting private enterprise resources in a cloud computing environment
US20100212010A1 (en) 2009-02-18 2010-08-19 Stringer John D Systems and methods that detect sensitive data leakages from applications
US8448219B2 (en) 2009-04-23 2013-05-21 Novell, Inc. Securely hosting workloads in virtual computing environments
WO2010124446A1 (en) 2009-04-27 2010-11-04 华为技术有限公司 Method, device and system for issuing license
US8856783B2 (en) 2010-10-12 2014-10-07 Citrix Systems, Inc. Allocating virtual machines according to user-specific virtual machine metrics
CN102460391B (en) 2009-05-01 2015-04-22 思杰系统有限公司 Systems and methods for providing virtual appliance in application delivery fabric
US20100287280A1 (en) 2009-05-08 2010-11-11 Gal Sivan System and method for cloud computing based on multiple providers
US8607189B2 (en) 2009-05-18 2013-12-10 National Instruments Corporation Dynamic analysis of a graphical program in a browser
US20100318609A1 (en) 2009-06-15 2010-12-16 Microsoft Corporation Bridging enterprise networks into cloud
US20100319004A1 (en) 2009-06-16 2010-12-16 Microsoft Corporation Policy Management for the Cloud
US20190288956A1 (en) 2009-06-19 2019-09-19 Servicemesh, Inc. System and method for a cloud computing abstraction layer
US8601534B2 (en) 2009-07-02 2013-12-03 Samsung Electronics Co., Ltd. Securely using service providers in elastic computing systems and environments
US20110016473A1 (en) 2009-07-20 2011-01-20 Srinivasan Kattiganehalli Y Managing services for workloads in virtual computing environments
US8510835B1 (en) 2009-09-18 2013-08-13 Trend Micro Incorporated Techniques for protecting data in cloud computing environments
US8369333B2 (en) 2009-10-21 2013-02-05 Alcatel Lucent Method and apparatus for transparent cloud computing with a virtualized network infrastructure
US20110126197A1 (en) 2009-11-25 2011-05-26 Novell, Inc. System and method for controlling cloud and virtualized data centers in an intelligent workload management system
US8924559B2 (en) * 2009-12-03 2014-12-30 International Business Machines Corporation Provisioning services using a cloud services catalog
US9274848B2 (en) 2009-12-03 2016-03-01 International Business Machines Corporation Optimizing cloud service delivery within a cloud computing environment
US7937438B1 (en) 2009-12-07 2011-05-03 Amazon Technologies, Inc. Using virtual networking devices to manage external connections
US8799985B2 (en) 2009-12-09 2014-08-05 Microsoft Corporation Automated security classification and propagation of virtualized and physical virtual machines
US8726334B2 (en) 2009-12-09 2014-05-13 Microsoft Corporation Model based systems management in virtualized and non-virtualized environments
US8924569B2 (en) 2009-12-17 2014-12-30 Intel Corporation Cloud federation as a service
US8656019B2 (en) 2009-12-17 2014-02-18 International Business Machines Corporation Data processing workload administration in a cloud computing environment
US9141433B2 (en) 2009-12-18 2015-09-22 International Business Machines Corporation Automated cloud workload management in a map-reduce environment
US8677309B2 (en) 2009-12-29 2014-03-18 Oracle International Corporation Techniques for automated generation of deployment plans in an SOA development lifecycle
US8229999B2 (en) 2010-01-05 2012-07-24 International Business Machines Corporation Analyzing anticipated value and effort in using cloud computing to process a specified workload
US20110167034A1 (en) 2010-01-05 2011-07-07 Hewlett-Packard Development Company, L.P. System and method for metric based allocation of costs
WO2011091056A1 (en) 2010-01-19 2011-07-28 Servicemesh, Inc. System and method for a cloud computing abstraction layer
US8874749B1 (en) 2010-02-03 2014-10-28 Citrix Systems, Inc. Network fragmentation and virtual machine migration in a scalable cloud computing environment
US8966623B2 (en) 2010-03-08 2015-02-24 Vmware, Inc. Managing execution of a running-page in a virtual machine
US8806014B2 (en) 2010-03-19 2014-08-12 Novell, Inc. Techniques for intelligent service deployment
US8259571B1 (en) 2010-03-26 2012-09-04 Zscaler, Inc. Handling overlapping IP addresses in multi-tenant architecture
US9300688B2 (en) 2010-04-18 2016-03-29 Ca, Inc. Protected application stack and method and system of utilizing
US8345692B2 (en) 2010-04-27 2013-01-01 Cisco Technology, Inc. Virtual switching overlay for cloud computing
US20110270968A1 (en) 2010-04-30 2011-11-03 Salsburg Michael A Decision support system for moving computing workloads to public clouds
US9282097B2 (en) 2010-05-07 2016-03-08 Citrix Systems, Inc. Systems and methods for providing single sign on access to enterprise SAAS and cloud hosted applications
US9461996B2 (en) 2010-05-07 2016-10-04 Citrix Systems, Inc. Systems and methods for providing a single click access to enterprise, SAAS and cloud hosted application
CN102255933B (en) 2010-05-20 2016-03-30 中兴通讯股份有限公司 Cloud service intermediary, cloud computing method and cloud system
US8352611B2 (en) 2010-06-29 2013-01-08 International Business Machines Corporation Allocating computer resources in a cloud environment
US8880558B2 (en) 2010-07-01 2014-11-04 International Business Machines Corporation Cloud services creation based on graph mapping
WO2012019087A2 (en) 2010-08-06 2012-02-09 Peter Nelson Schmitt Method for costing, financing and managing perpetual digital storage and access (archiving)
US8473557B2 (en) 2010-08-24 2013-06-25 At&T Intellectual Property I, L.P. Methods and apparatus to migrate virtual machines between distributive computing networks across a wide area network
US8578348B2 (en) 2010-09-02 2013-11-05 Code Value Ltd. System and method of cost oriented software profiling
US20120066487A1 (en) 2010-09-09 2012-03-15 Novell, Inc. System and method for providing load balancer visibility in an intelligent workload management system
US8533103B1 (en) 2010-09-14 2013-09-10 Amazon Technologies, Inc. Maintaining latency guarantees for shared resources
US9535663B2 (en) 2010-09-17 2017-01-03 Oracle International Corporation Pattern-based construction and extension of enterprise applications in a cloud computing environment
US8676593B2 (en) 2010-09-23 2014-03-18 International Business Machines Corporation Geographic governance of data over clouds
US8589312B2 (en) * 2010-09-30 2013-11-19 International Business Machines Corporation Real-time license metering of a provisioned application in a cloud computing environement
US8621058B2 (en) 2010-10-28 2013-12-31 Hewlett-Packard Development Company, L.P. Providing cloud-based computing services
US9081613B2 (en) 2010-11-02 2015-07-14 International Business Machines Corporation Unified resource manager providing a single point of control
US9253016B2 (en) 2010-11-02 2016-02-02 International Business Machines Corporation Management of a data network of a computing environment
WO2012069064A1 (en) 2010-11-22 2012-05-31 Telefonaktiebolaget L M Ericsson (Publ) Technique for resource creation in a cloud computing system
US9471907B2 (en) 2010-12-21 2016-10-18 Intel Corporation Highly granular cloud computing marketplace
CN103416025B (en) 2010-12-28 2016-11-02 思杰系统有限公司 Systems and methods for adding VLAN tags via a cloud bridge
US8788669B2 (en) 2011-01-03 2014-07-22 Novell, Inc. Policy and identity based workload provisioning
US20120173709A1 (en) 2011-01-05 2012-07-05 Li Li Seamless scaling of enterprise applications
US10678602B2 (en) 2011-02-09 2020-06-09 Cisco Technology, Inc. Apparatus, systems and methods for dynamic adaptive metrics based application deployment on distributed infrastructures
US9104672B2 (en) 2011-02-25 2015-08-11 International Business Machines Corporation Virtual security zones for data processing environments
US20120221454A1 (en) 2011-02-28 2012-08-30 Morgan Christopher Edwin Systems and methods for generating marketplace brokerage exchange of excess subscribed resources using dynamic subscription periods
US20120226587A1 (en) 2011-03-01 2012-09-06 De Lara Bernardo Perez System and method for electronically-facilitated collective purchasing
US9880796B2 (en) 2011-03-08 2018-01-30 Georgia Tech Research Corporation Rapid view mobilization for enterprise applications
US9003006B2 (en) 2011-03-14 2015-04-07 Mash5 Technologies, Inc. Intercloud application virtualization
US8261295B1 (en) 2011-03-16 2012-09-04 Google Inc. High-level language for specifying configurations of cloud-based deployments
US20120246740A1 (en) 2011-03-22 2012-09-27 Brooker Marc J Strong rights management for computing application functionality
US9100188B2 (en) 2011-04-18 2015-08-04 Bank Of America Corporation Hardware-based root of trust for cloud environments
US9253252B2 (en) 2011-05-06 2016-02-02 Citrix Systems, Inc. Systems and methods for cloud bridging between intranet resources and cloud resources
US9253159B2 (en) 2011-05-06 2016-02-02 Citrix Systems, Inc. Systems and methods for cloud bridging between public and private clouds
US9336060B2 (en) 2011-06-17 2016-05-10 Microsoft Technology Licensing, Llc Middleware services framework for on-premises and cloud deployment
US8516241B2 (en) 2011-07-12 2013-08-20 Cisco Technology, Inc. Zone-based firewall policy model for a virtualized data center
US9170798B2 (en) 2012-03-02 2015-10-27 Vmware, Inc. System and method for customizing a deployment plan for a multi-tier application in a cloud infrastructure
US20130031028A1 (en) 2011-07-25 2013-01-31 Bank Of America Exchange System Supporting Cloud Computing
US8909785B2 (en) 2011-08-08 2014-12-09 International Business Machines Corporation Smart cloud workload balancer
US9023239B2 (en) * 2011-09-28 2015-05-05 Joled Inc. Ink for organic light-emitting element and a method for producing the same
WO2013065084A1 (en) 2011-11-01 2013-05-10 Hitachi, Ltd. Information system and method for managing data
US20130117157A1 (en) 2011-11-09 2013-05-09 Gravitant, Inc. Optimally sourcing services in hybrid cloud environments
US20130142201A1 (en) 2011-12-02 2013-06-06 Microsoft Corporation Connecting on-premise networks with public clouds
US9647835B2 (en) 2011-12-16 2017-05-09 Akamai Technologies, Inc. Terminating SSL connections without locally-accessible private keys
US8434080B2 (en) 2011-12-22 2013-04-30 Software Ag Usa, Inc. Distributed cloud application deployment systems and/or associated methods
US9122887B2 (en) 2012-01-06 2015-09-01 Mobile Iron, Inc. User interface for secure virtual document management system
US8863297B2 (en) 2012-01-06 2014-10-14 Mobile Iron, Inc. Secure virtual file management system
US9038065B2 (en) * 2012-01-30 2015-05-19 International Business Machines Corporation Integrated virtual infrastructure system
US20130232470A1 (en) 2012-03-03 2013-09-05 John C. Yung Launching an application stack on a cloud platform environment
US9319286B2 (en) 2012-03-30 2016-04-19 Cognizant Business Services Limited Apparatus and methods for managing applications in multi-cloud environments
US8943205B2 (en) 2012-04-25 2015-01-27 Cisco Technology, Inc. Generalized coordinate system and metric-based resource selection framework
US8793381B2 (en) 2012-06-26 2014-07-29 International Business Machines Corporation Workload adaptive cloud computing resource allocation
JP2014026537A (en) 2012-07-27 2014-02-06 Hitachi Systems Ltd SaaS payment system, SaaS usage fee payment method, and program
GB2504487A (en) 2012-07-30 2014-02-05 Ibm Automated network deployment of cloud services into a network by matching security requirements
US20140052877A1 (en) 2012-08-16 2014-02-20 Wenbo Mao Method and apparatus for tenant programmable logical network for multi-tenancy cloud datacenters
US8856386B2 (en) 2012-08-21 2014-10-07 Cisco Technology, Inc. Cloud resource placement using placement pivot in physical topology
US8972725B2 (en) 2012-09-07 2015-03-03 Oracle International Corporation Security infrastructure for cloud services
EP2909716B1 (en) 2012-10-16 2021-02-17 Citrix Systems, Inc. Systems and methods for bridging between public and private clouds through multi-level api integration
US9071644B2 (en) 2012-12-06 2015-06-30 International Business Machines Corporation Automated security policy enforcement and auditing
US9329888B2 (en) 2013-01-28 2016-05-03 International Business Machines Corporation Computing optimized virtual machine allocations using equivalence combinations
US20140236745A1 (en) 2013-02-20 2014-08-21 Airvm Inc. Virtualized distribution system offering virtual products or services
US9130901B2 (en) 2013-02-26 2015-09-08 Zentera Systems, Inc. Peripheral firewall system for application protection in cloud computing environments
US10454999B2 (en) 2013-03-14 2019-10-22 Red Hat, Inc. Coordination of inter-operable infrastructure as a service (IAAS) and platform as a service (PAAS)
US9313203B2 (en) 2013-03-15 2016-04-12 Symantec Corporation Systems and methods for identifying a secure application when connecting to a network
US20140280595A1 (en) 2013-03-15 2014-09-18 Polycom, Inc. Cloud Based Elastic Load Allocation for Multi-media Conferencing
US9043458B2 (en) 2013-03-19 2015-05-26 Cognizant Technology Solutions India Pvt. Ltd. Framework for facilitating implementation of multi-tenant SaaS architecture
US20150067677A1 (en) 2013-08-27 2015-03-05 Connectloud, Inc. Method and apparatus for defining virtual machine placement logic that is configurable and restricts virtual machine provisioning within a software defined cloud
US9883325B2 (en) 2013-12-12 2018-01-30 International Business Machines Corporation Cloud based emergency wireless link
US9880826B2 (en) 2014-02-25 2018-01-30 Red Hat, Inc. Installing of application resources in a multi-tenant platform-as-a-service (PaS) system
US20150319050A1 (en) 2014-03-14 2015-11-05 Avni Networks Inc. Method and apparatus for a fully automated engine that ensures performance, service availability, system availability, health monitoring with intelligent dynamic resource scheduling and live migration capabilities
US11675837B2 (en) 2014-03-17 2023-06-13 Modelizeit Inc. Analysis of data flows in complex enterprise IT environments
US9350710B2 (en) 2014-06-20 2016-05-24 Zscaler, Inc. Intelligent, cloud-based global virtual private network systems and methods
US9948514B2 (en) 2014-06-30 2018-04-17 Microsoft Technology Licensing, Llc Opportunistically connecting private computational resources to external services
US9521151B2 (en) 2014-10-22 2016-12-13 CloudHealth Technologies, Inc. Automated and policy driven optimization of cloud infrastructure through delegated actions
US9912759B2 (en) 2015-06-24 2018-03-06 International Business Machines Corporation Dynamically generating solution stacks
US10225259B2 (en) 2016-03-30 2019-03-05 Oracle International Corporation Establishing a cleanroom data processing environment
US10965733B2 (en) 2016-08-28 2021-03-30 Vmware, Inc. Efficient, automated distributed-search methods and systems
US10873501B2 (en) 2016-12-09 2020-12-22 Vmware, Inc. Methods, systems and apparatus to propagate node configuration changes to services in a distributed environment
US10721275B2 (en) 2017-01-23 2020-07-21 Fireeye, Inc. Automated enforcement of security policies in cloud and hybrid infrastructure environments
US10678579B2 (en) 2017-03-17 2020-06-09 Vmware, Inc. Policy based cross-cloud migration
US10261836B2 (en) 2017-03-21 2019-04-16 Oracle International Corporation Dynamic dispatching of workloads spanning heterogeneous services
US10855705B2 (en) 2017-09-29 2020-12-01 Cisco Technology, Inc. Enhanced flow-based computer network threat detection
US10931656B2 (en) 2018-03-27 2021-02-23 Oracle International Corporation Cross-region trust for a multi-tenant identity cloud service
US10819751B2 (en) 2018-03-30 2020-10-27 Amazon Technologies, Inc. Firewall management service architecture
US11165634B2 (en) 2018-04-02 2021-11-02 Oracle International Corporation Data replication conflict detection and resolution for a multi-tenant identity cloud service
US11347561B1 (en) 2018-04-30 2022-05-31 Vmware, Inc. Core to resource mapping and resource to core mapping
US11032381B2 (en) 2019-06-19 2021-06-08 Servicenow, Inc. Discovery and storage of resource tags
US11698814B2 (en) 2019-08-28 2023-07-11 Vega Cloud, Inc. Cloud resources management
US11503078B2 (en) 2020-12-30 2022-11-15 Virtustream Ip Holding Company Llc Management of security and compliance controls for multi-cloud workloads
US11159419B1 (en) 2021-01-29 2021-10-26 Netskope, Inc. Policy-driven data locality and residency

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6850988B1 (en) * 2000-09-15 2005-02-01 Oracle International Corporation System and method for dynamically evaluating an electronic commerce business model through click stream analysis
US20120179824A1 (en) * 2005-03-16 2012-07-12 Adaptive Computing Enterprises, Inc. System and method of brokering cloud computing resources
US20090300635A1 (en) * 2008-05-30 2009-12-03 James Michael Ferris Methods and systems for providing a marketplace for cloud-based networks
US20110314466A1 (en) * 2010-06-17 2011-12-22 International Business Machines Corporation Creating instances of cloud computing environments
US20120290460A1 (en) * 2011-05-09 2012-11-15 Curry Jr Steven Lynn Composite Public Cloud, Method and System
US20130013377A1 (en) * 2011-07-07 2013-01-10 Empire Technology Development Llc Vendor optimization in aggregated environments
US20140068743A1 (en) * 2012-08-30 2014-03-06 International Business Machines Corporation Secure configuration catalog of trusted identity providers
US20140279201A1 (en) * 2013-03-15 2014-09-18 Gravitant, Inc. Assessment of best fit cloud deployment infrastructures
US20150206207A1 (en) * 2013-03-15 2015-07-23 Gravitant, Inc Pricing rules management functionality within a cloud service brokerage platform
US20150058459A1 (en) * 2013-08-21 2015-02-26 International Business Machines Corporation Generating a service-catalog entry from discovered attributes of provisioned virtual machines

Also Published As

Publication number Publication date
US20140201017A1 (en) 2014-07-17
US20220207580A1 (en) 2022-06-30
US20230334543A1 (en) 2023-10-19
US20210133836A1 (en) 2021-05-06
US12248971B2 (en) 2025-03-11
US20250111416A1 (en) 2025-04-03

Similar Documents

Publication Publication Date Title
US12248971B2 (en) Systems and methods for providing repeated use of computing resources
US20220035627A1 (en) Systems and methods for providing ranked deployment options
US20240364745A1 (en) System and method for a cloud computing abstraction layer with security zone facilities
US20200389412A1 (en) Systems and methods for evaluating computing resources
US10880189B2 (en) System and method for a cloud computing abstraction with self-service portal for publishing resources
AU2014232562B2 (en) Systems and methods for providing ranked deployment options
US10411975B2 (en) System and method for a cloud computing abstraction with multi-tier deployment policy
US10620927B2 (en) Method, arrangement, computer program product and data processing program for deploying a software service
AU2019268142B2 (en) Systems and methods for providing repeated use of computing resources

Legal Events

Date Code Title Description
STPP Information on status: patent application and granting procedure in general

Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION

STPP Information on status: patent application and granting procedure in general

Free format text: NON FINAL ACTION MAILED

STPP Information on status: patent application and granting procedure in general

Free format text: FINAL REJECTION MAILED

STPP Information on status: patent application and granting procedure in general

Free format text: ADVISORY ACTION MAILED

STPP Information on status: patent application and granting procedure in general

Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION

STPP Information on status: patent application and granting procedure in general

Free format text: NON FINAL ACTION MAILED

STPP Information on status: patent application and granting procedure in general

Free format text: FINAL REJECTION MAILED

STPP Information on status: patent application and granting procedure in general

Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION

STPP Information on status: patent application and granting procedure in general

Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO PAY ISSUE FEE

点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载