U.S. patent application number 14/091711 was filed with the patent office on 2015-05-28 for cloud delivery platform.
This patent application is currently assigned to AT&T INTELLECTUAL PROPERTY I, L.P.. The applicant listed for this patent is AT&T Intellectual Property I, L.P.. Invention is credited to James Paul Fox, Rene Glover, Douglas Nassaur.
Application Number | 20150149634 14/091711 |
Document ID | / |
Family ID | 53183636 |
Filed Date | 2015-05-28 |
United States Patent
Application |
20150149634 |
Kind Code |
A1 |
Nassaur; Douglas ; et
al. |
May 28, 2015 |
Cloud Delivery Platform
Abstract
Concepts and technologies disclosed herein are directed to a
cloud delivery platform. The cloud delivery platform can publish a
cloud deployable offering. The cloud delivery platform can order,
from a cloud orchestrator, one or more resources to be utilized by
the cloud deployable offering. The cloud delivery platform can
provision the cloud deployable offering on the resource(s). The
cloud delivery platform can manage the cloud deployable offering to
ensure that the cloud deployable offering meets a level of service.
The cloud delivery platform can monitor one or more components of
the cloud delivery platform to determine whether an event has
occurred, and in response to determining that an event has
occurred, the cloud delivery platform can broadcast the event.
Inventors: |
Nassaur; Douglas; (Duluth,
GA) ; Fox; James Paul; (Dallas, TX) ; Glover;
Rene; (Pelham, AL) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
AT&T Intellectual Property I, L.P. |
Atlanta |
GA |
US |
|
|
Assignee: |
AT&T INTELLECTUAL PROPERTY I,
L.P.
Atlanta
GA
|
Family ID: |
53183636 |
Appl. No.: |
14/091711 |
Filed: |
November 27, 2013 |
Current U.S.
Class: |
709/226 |
Current CPC
Class: |
G06F 9/5072 20130101;
H04L 41/0806 20130101; H04L 47/70 20130101 |
Class at
Publication: |
709/226 |
International
Class: |
H04L 12/911 20060101
H04L012/911 |
Claims
1. A cloud delivery platform comprising: a hardware architecture;
and a plurality of components that, when executed by the hardware
architecture, causes the hardware architecture to perform
operations comprising publishing a cloud deployable offering,
ordering, from a cloud orchestrator, resources to be utilized by
the cloud deployable offering, and provisioning the cloud
deployable offering on the resources.
2. The cloud delivery platform of claim 1, wherein the plurality of
components that, when executed by the hardware architecture, causes
the hardware architecture to perform operations further comprising
managing the cloud deployable offering to ensure that the cloud
deployable offering meets a level of service.
3. The cloud delivery platform of claim 2, wherein managing the
cloud deployable offering to ensure that the cloud deployable
offering meets a level of service comprises: detecting an event;
and responding to the event by performing a function to return the
cloud deployable offering to the level of service.
4. The cloud delivery platform of claim 3, wherein the function to
return the cloud deployable offering to the level of service
comprises generating an order directed to the cloud orchestrator to
order additional resources to return the cloud deployable offering
to the level of service.
5. The cloud delivery platform of claim 3, wherein the function to
return the cloud deployable offering to the level of service
comprises: installing a patch to the cloud deployable offering;
upgrading the cloud deployable offering; relocating the cloud
deployable offering from the resources to new resources and
provisioning the cloud deployable offering on the new resources;
performing a recovery deployment to return the cloud deployable
offering to a previous state in which the level of service is met;
or re-provisioning the cloud deployable offering on the
resources.
6. The cloud delivery platform of claim 1, wherein the plurality of
components that, when executed by the hardware architecture, causes
the hardware architecture to perform operations further comprising:
monitoring the plurality of components to determine whether an
event has occurred; and in response to determining that an event
has occurred, broadcasting the event.
7. The cloud delivery platform of claim 1, wherein publishing the
cloud deployable offering comprises: identifying a cloud deployment
element; identifying a cloud deployment unit on which to deploy the
cloud deployment element; defining a cloud deployment policy for
the cloud deployment offering; and generating a cloud deployment
manifest comprising an identifier for the cloud deployment element,
an identifier for the cloud deployment unit, and the cloud
deployment policy.
8. The cloud delivery platform of claim 7, wherein ordering, from
the cloud orchestrator, the resources to be utilized by the cloud
deployable offering comprises consulting the cloud deployment
manifest to determine the resources to order from the cloud
orchestrator.
9. A method comprising: publishing, by a cloud delivery platform
comprising a hardware architecture that executes a plurality of
components, a cloud deployable offering; ordering, by the cloud
delivery platform, resources from a cloud orchestrator, the
resources to be utilized by the cloud deployable offering; and
provisioning, by the cloud delivery platform, the cloud deployable
offering on the resources.
10. The method of claim 9, further comprising managing, by the
cloud delivery platform the cloud deployable offering to ensure
that the cloud deployable offering meets a level of service.
11. The method of claim 10, wherein managing, by the cloud delivery
platform the cloud deployable offering to ensure that the cloud
deployable offering meets the level of service comprises: detecting
an event; and responding to the event by performing a function to
return the cloud deployable offering to the level of service.
12. The method of claim 11, wherein the function to return the
cloud deployable offering to the level of service comprises
generating an order directed to the cloud orchestrator to order
additional resources to return the cloud deployable offering to the
level of service.
13. The method of claim 11, wherein the function to return the
cloud deployable offering to the level of service comprises:
installing a patch to the cloud deployable offering; upgrading the
cloud deployable offering; relocating the cloud deployable offering
from the resources to new resources and provisioning the cloud
deployable offering on the new resources; performing a recovery
deployment to return the cloud deployable offering to a previous
state in which the level of service is met; or re-provisioning the
cloud deployable offering on the resources.
14. The method of claim 9, wherein publishing the cloud deployable
offering comprises: identifying a cloud deployment element;
identifying a cloud deployment unit on which to deploy the cloud
deployment element; defining a cloud deployment policy for the
cloud deployment offering; and generating a cloud deployment
manifest comprising an identifier for the cloud deployment element,
an identifier for the cloud deployment unit, and the cloud
deployment policy.
15. The method of claim 14, wherein ordering, from the cloud
orchestrator, the resources to be utilized by the cloud deployable
offering comprises consulting the cloud deployment manifest to
determine the resources to order from the cloud orchestrator.
16. A computer-readable storage medium having instructions stored
thereon that, when executed by a processor, cause the processor to
perform operations comprising: publishing a cloud deployable
offering; ordering resources from a cloud orchestrator, the
resources to be utilized by the cloud deployable offering; and
provisioning the cloud deployable offering on the resources.
17. The computer-readable storage medium of claim 16, further
having instructions stored thereon that, when executed by the
processor, cause the processor to perform further operations
comprising managing the cloud deployable offering to ensure that
the cloud deployable offering meets a level of service.
18. The computer-readable storage medium of claim 17, wherein
managing the cloud deployable offering to ensure that the cloud
deployable offering meets the level of service comprises: detecting
an event; and responding to the event by performing a function to
return the cloud deployable offering to the level of service.
19. The computer-readable storage medium of claim 18, wherein the
function to return the cloud deployable offering to the level of
service comprises: installing a patch to the cloud deployable
offering; upgrading the cloud deployable offering; relocating the
cloud deployable offering from the resources to new resources and
provisioning the cloud deployable offering on the new resources;
performing a recovery deployment to return the cloud deployable
offering to a previous state in which the level of service is met;
or re-provisioning the cloud deployable offering on the
resources.
20. The computer-readable storage medium of claim 16, wherein:
publishing the cloud deployable offering comprises identifying a
cloud deployment element, identifying a cloud deployment unit on
which to deploy the cloud deployment element, defining a cloud
deployment policy for the cloud deployment offering, and generating
a cloud deployment manifest comprising an identifier for the cloud
deployment element, an identifier for the cloud deployment unit,
and the cloud deployment policy; and wherein ordering, from the
cloud orchestrator, the resources to be utilized by the cloud
deployable offering comprises consulting the cloud deployment
manifest to determine the resources to order from the cloud
orchestrator.
Description
BACKGROUND
[0001] Cloud computing can allow dynamically scalable, often
virtualized resources to be provided as a service. Cloud computing
can assure an appropriate level of resources are available to power
software applications when and where the resources are needed in
response to demand. As a result, cloud computing allows entities to
respond quickly, efficiently and in an automated fashion to the
rapidly changing business environment.
SUMMARY
[0002] Concepts and technologies disclosed herein are directed to a
cloud delivery platform. The cloud delivery platform can publish a
cloud deployable offering. The cloud delivery platform can define a
cloud deployable offering using a blueprint framework. The
blueprint framework can define the software and computer
infrastructure a cloud deployable offering can utilize to function.
The blueprint framework can identify each component of the cloud
deployable offering, each components relationship to other
components, the steps taken to deploy each component, the sequence
that is to be followed to deploy the components, and one or more
policies that govern each components behavior during operation. The
cloud delivery platform can enable elastic scaling of cloud
deployable offerings by detecting demand at the component level and
taking the appropriate steps to automatically increase or decrease
resources assigned to that component. The cloud delivery platform
can order, from a cloud orchestrator, one or more resources to be
utilized by the cloud deployable offering. The cloud delivery
platform can provision the cloud deployable offering on the
resource(s). The cloud delivery platform can provision the
components of a cloud deployable offering using resources from
multiple cloud orchestrators. The cloud delivery platform can
understand the capabilities of each cloud orchestrator and the
level of service required by individual components of a cloud
deployable offering. The cloud delivery platform can manage the
cloud deployable offering to ensure that the cloud deployable
offering meets a level of service. The cloud delivery platform can
monitor one or more components of the cloud deployable offering to
determine whether an event has occurred, and in response to
determining that an event has occurred, the cloud delivery platform
can broadcast the event.
[0003] In some embodiments, the cloud delivery platform can manage
the cloud deployable offering to ensure that the cloud deployable
offering meets a level of service by detecting an event and
responding to the event by performing a function to return the
cloud deployable offering to the level of service. The function, in
some embodiments, can include generating an order directed to the
cloud orchestrator to order additional resources to return the
cloud deployable offering to the level of service. In some other
embodiments, the function can include installing a patch to the
cloud deployable offering. In some other embodiments, the function
can include upgrading the cloud deployable offering. In some other
embodiments, the function can include relocating the cloud
deployable offering from the resources to new resources and
provisioning the cloud deployable offering on the new resources. In
some other embodiments, the function can include performing a
recovery deployment to return the cloud deployable offering to a
previous state in which the level of service is met. In some other
embodiments, the function can include re-provisioning the cloud
deployable offering on the resources.
[0004] In some embodiments, the cloud delivery platform can publish
the cloud deployable offering by identifying a cloud deployment
element and a cloud deployment unit on which to deploy the cloud
deployment element. The cloud delivery platform can also define a
cloud deployment policy for the cloud deployment offering. The
cloud delivery platform can also organize the cloud deployment
element among other cloud deployment elements using a hierarchical
and tiered sequence of relationship, dependency, and resourced data
according to a unique scheme. The cloud delivery platform can also
generate a cloud deployment manifest. The cloud deployment manifest
can include an identifier for the cloud deployment element, an
identifier for the cloud deployment unit, and the cloud deployment
policy. The cloud delivery platform can consult the cloud
deployment manifest to determine the resources to order from the
cloud orchestrator. The cloud delivery platform can consult the
cloud deployment manifest to select the appropriate cloud
orchestrator from which to request one or more resources.
[0005] It should be appreciated that the above-described subject
matter may be implemented as a computer-controlled apparatus, a
computer process, a computing system, or as an article of
manufacture such as a computer-readable storage medium. These and
various other features will be apparent from a reading of the
following Detailed Description and a review of the associated
drawings.
[0006] This Summary is provided to introduce a selection of
concepts in a simplified form that are further described below in
the Detailed Description. This Summary is not intended to identify
key features or essential features of the claimed subject matter,
nor is it intended that this Summary be used to limit the scope of
the claimed subject matter. Furthermore, the claimed subject matter
is not limited to implementations that solve any or all
disadvantages noted in any part of this disclosure.
BRIEF DESCRIPTION OF THE DRAWINGS
[0007] FIG. 1 is a block diagram illustrating aspects of an
illustrative operating environment for implementing the various
concepts and technologies disclosed herein.
[0008] FIG. 2 is a block diagram illustrating additional aspects of
an illustrative operating environment for implementing the various
concepts and technologies disclosed herein.
[0009] FIG. 3 is a flow diagram illustrating aspects of a method
for providing a cloud delivery platform ("CDP"), according to an
illustrative embodiment.
[0010] FIG. 4 is a flow diagram illustrating aspects of a method
for executing a development and publication component of the CDP,
according to an illustrative embodiment.
[0011] FIG. 5 is a block diagram illustrating a cloud deployment
manifest, according to an illustrative embodiment.
[0012] FIG. 6 is a flow diagram illustrating aspects of a method
for executing an order component of the CDP, according to an
illustrative embodiment.
[0013] FIG. 7 is a flow diagram illustrating aspects of a method
for executing a provisioning component of the CDP, according to an
illustrative embodiment.
[0014] FIG. 8 is a flow diagram illustrating aspects of a method
for executing a management component of the CDP, according to an
illustrative embodiment.
[0015] FIG. 9 is a flow diagram illustrating aspects of a method
for executing a support component of the CDP, according to an
illustrative embodiment.
[0016] FIG. 10 is a block diagram illustrating an example mobile
device capable of implementing aspects of the embodiments disclosed
herein.
[0017] FIG. 11 is a block diagram illustrating an example computer
system capable of implementing aspects of the embodiments presented
herein.
[0018] FIG. 12 is a diagram illustrating a network, according to an
illustrative embodiment.
DETAILED DESCRIPTION
[0019] While the subject matter described herein may be presented,
at times, in the general context of program modules that execute in
conjunction with the execution of an operating system and
application programs on a computer system, those skilled in the art
will recognize that other implementations may be performed in
combination with other types of program modules. Generally, program
modules include routines, programs, components, data structures,
computer-executable instructions, and/or other types of structures
that perform particular tasks or implement particular abstract data
types. Moreover, those skilled in the art will appreciate that the
subject matter described herein may be practiced with other
computer systems, including hand-held devices, mobile devices,
wireless devices, multiprocessor systems, distributed computing
systems, microprocessor-based or programmable consumer electronics,
minicomputers, mainframe computers, routers, switches, other
computing devices described herein, and the like.
[0020] In the following detailed description, references are made
to the accompanying drawings that form a part hereof, and in which
are shown by way of illustration specific embodiments or examples.
Referring now to the drawings, in which like numerals represent
like elements throughout the several figures, example aspects of a
CDP will be presented.
[0021] Referring now to FIG. 1, aspects of an operating environment
100 for implementing various embodiments of the concepts and
technologies disclosed herein for a CDP will be described. The
illustrated operating environment 100 includes a CDP 102. The CDP
102 can be used to refactor a traditional service 104 and/or a
traditional application 106 into a cloud deployable offering
("CDO"). The traditional service 104 can be any service that a
business or other entity desires to deploy within a cloud computing
environment. The traditional application 106 can be any application
that a business or other entity desires to deploy within a cloud
computing environment.
[0022] The CDP 102 can be in communication with a cloud
orchestrator 108 that orchestrates the use of one or more compute
resources 110, one or more storage resources 112, and/or one or
more other resources 114 to deploy the traditional service 104
and/or the traditional application 106 within a cloud computing
environment as a CDO offering. Although a single cloud illustrated
is shown in FIG. 1, multiple cloud orchestrators 108 may be
utilized. Moreover, the compute resources 110, the storage
resources 112, and/or the other resources 114 can be dedicated to a
single cloud orchestrator 108 or shared among two or more cloud
orchestrators 108. As such, the illustrated embodiment that
includes a single cloud orchestrator 108 in communication with one
or more compute resources 110, one or more storage resources 112,
and/or one or more other resources 114 is merely illustrative, and
should not be construed as being limiting in any way.
[0023] The compute resources 110 can include physical and/or
virtualized resources that alone or in some combination facilitate
computational processes for providing a CDO offering via the CDP
102. In some embodiments, the compute resources 110 include
processing resources, memory resources, graphics resources, network
resources, input resources, output resources, combinations thereof,
and the like. The storage resources 112 can include physical and/or
virtualized resources that alone or in some combination facilitate
the storage of data for a CDO offering. In some embodiments, the
storage resources 112 include hard disks, optical disks, flash
memory drives, solid-state drives, combinations thereof, and the
like. The other resources 114 can include any other physical and/or
virtualized resources that can be utilized by the CDP 102 to
provide a CDO offering.
[0024] The CDP 102 provides the facilities, intelligence, and
automation to deploy and re-deploy software applications and
components thereof to meet demand, thereby enabling the elastic
scaling of functions as opposed to entire IT platforms. The CDP 102
can elastic scaling of cloud deployable offerings by detecting
demand at the component level and taking the appropriate steps to
automatically increase or decrease resources assigned to that
component. The CDP 102 can provide real-time monitoring of software
components that execute specific functions. The CDP 102 can monitor
each instance of a function to detect excessive busy or low demand
conditions in accordance with a thresholding algorithm. The CDP 102
can determine the appropriate course of action to scale instances
of a function in response to changing demand conditions. In the
event a threshold condition is detected, the CDP 102 can relocate
the involved software closer to demand and can increase or decrease
the amount of resources (e.g., the amount of compute resources 110,
storage resources 112, and/or other resources 114) as appropriate.
The CDP 102 is aware of the relationship of software components to
each other and the resulting impacts these relationships have on
quality and performance, and can make relocation decisions to
maintain service level requirements.
[0025] The CDP 102 provides facilities to address all phases of a
software development life cycle from ideation and development to
deployment and support. To address all phases of a software
development lifecycle, the CDP 102 includes a CDP development and
publication component 116, a CDP order component 118, a CDP
provisioning component 120, a CDP management component 122, and a
CDP support component 124. The CDP development and publication
component 116, the CDP order component 118, the CDP provisioning
component 120, the CDP management component 122, and the CDP
support component 124 can each be Platform as a Service ("PaaS")
offerings implemented via software and executed by a hardware
architecture 126 of the CDP 102. The hardware architecture 126 can
include physical hardware components, including, but not limited
to, one or more processing units (e.g., central processing units
and/or graphical processing units), one or more memory modules, one
or more storage components, one or more networking components,
and/or other hardware components that are utilized by the CDP 102
to execute the CDP components 116-124 to perform various operations
disclosed herein.
[0026] The CDP development and publication component 116 can allow
developers to develop, test, and certify applications for cloud
deployment. The CDP development and publication component 116 can
provide integrated development and can offer reference
architectures, best practices, and design principles for delivering
service-oriented architectures via a cloud delivery model. The CDP
development and publication component 116 can create CDOs, an
example of which is illustrated and described with reference to
FIG. 2. Additional details regarding the execution of the CDP
development and publication component 116 are illustrated and
described with reference to FIG. 4.
[0027] The CDP order component 118 can manage an order process
workflow for applications and components thereof for initial
deployment, re-deployment, and in response to events, such as, for
example, maintenance, upgrade, recovery, and elastic capacity
events, as will be described in greater detail herein. The CDP
order component 118 can receive order requests from one or more
portals and/or other applications via one or more application
programming interfaces ("API") exposed by the CDP 102. The CDP
order component 118 can identify and order resources, such as one
or more of the compute resources 110, storage resources 112, and/or
other resources 114, from the cloud orchestrator 108. Additional
details regarding the execution of the CDP order component 118 are
illustrated and described with reference to FIG. 6.
[0028] The CDP provisioning component 120 can receive an order from
the CDP order component 118 and can perform distribution
operations, delivery operations, installation operations, and
configuration operations to provision a software application in
accordance with a manifest. The manifest can include a master
description of a CDO used for delivery and management. An example
manifest is described with reference to FIG. 5. The CDP
provisioning component 120 can execute initial deployment
operations, elastic re-deployment operations, recovery deployment
operations, and relocation deployment operations. The CDP
provisioning component can consider resources provided by multiple
cloud orchestrators 108 based on one or more policies. Additional
details regarding the execution of the CDP provisioning component
120 are illustrated and described with reference to FIG. 7.
[0029] The CDP management component 122 can monitor a level of
service of a deployed CDO to maintain the deployed CDO at a
specific level of service. The CDP management component 122
provides automated and intelligent detection and decision making to
maintain the specific level of service. The level of service,
monitoring points, and other metrics are described within the
manifest of the deployed CDO. The CDP management component 122 can
detect capacity and performance events and receive and respond to
maintenance events, such as, for example, patches, upgrades,
software releases, and relocation requests. After an event is
detected, the CDP management component 122 can determine an
appropriate course of action based upon the manifest and submit the
appropriate order to implement the appropriate course of action to
the CDP order component 118. Additional details regarding the
execution of the CDP management component 122 are illustrated and
described with reference to FIG. 8.
[0030] The CDP support component 124 can provide event monitoring
via an API and/or an activity stream. The CDP support component 124
can broadcast events of all or a portion of the applications and
services being provided by the CDP 102. A tool or software
application can "tune" to a broadcast provided by the CDP support
component 124 so that the tool or software application can receive
and understand CDP events. The events can include events related to
publish services, location services, order services, provision
services, and management services, as will be described in greater
detail below. Additional details regarding the execution of the CDP
support component 124 are illustrated and described with reference
to FIG. 9.
[0031] The illustrated CDP 102 also includes cloud deployment
instances ("CDIs") 128A-128N and virtual resources 130A-130N. The
cloud deployment instances 128A-128N are instances of CDOs deployed
via the CDP 102. Each of the cloud service instances 128A-128N can
be executed by a corresponding one or more of the virtual resources
130A-130N, which may be virtualization of one or more of the
computer resources 110, the storage resources 112, and/or the other
resources 114.
[0032] Turning now to FIG. 2, another operating environment 200
will be described, according to an illustrative embodiment. The
operating environment 200 includes an example cloud deployable
offering ("CDO") 202. The CDO 202 can be any application or service
that a developer desires to deploy within a cloud computing
environment. The CDO 202 can be a combination of software,
resources (e.g., one or more of the compute resources 110, the
storage resources 112, and/or the other resources 114), and
policies to be deployed and managed by the CDP 102.
[0033] The illustrated CDO 202 includes a CDI 204. The CDI 204 is
the fundamental building block run-time representation of the CDO
202. The CDI 204 can include one or more cloud deployment elements
("CDEs") 206, one or more cloud deployment units ("CDUs") 208, and
one or more cloud deployment policies ("CDPs") 210. The CDE(s) 206
can include software packages, programs, scripts, utilities,
images, or some combination thereof that enable software delivery
and management for the CDO 202. The CDU(s) 208 can include
measurements units of resources, including, for example, the
compute resources 110, the storage resources 112, and/or the other
resources 114, to support the CDE(s) 206. The CDP(s) 210 can
include instructions to build, deliver, and manage the CDE(s) 206
to a specific service level.
[0034] The illustrated CDO 202 is described via a cloud deployment
manifest 212. The cloud deployment manifest 212 is the master
description of all aspects of the CDO 202 used for delivery and
management of the CDO 202 by the CDP 102. An illustrative example
of the cloud deployment manifest 212 is illustrated and described
with reference to FIG. 5.
[0035] The CDE(s) 206 identified in the CDO 202 can be stored in
and obtained from a software and image repository 214. The software
and image repository 214 can be implemented utilizing any storage
technology or combination of storage technologies, including, for
example, hard drives, solid-state drives, optical storage, tape
storage, and/or the like. The software and image repository 214 may
be part of the CDP 102 or external to and in communication with the
CDP 102.
[0036] The CDP(s) 210 identified in the CDO 202 can be implemented
utilizing one or more instructions obtained from an instruction
library 216. The instruction library 216 can be implemented
utilizing any storage technology or combination of storage
technologies, including, for example, hard drives, solid-state
drives, optical storage, tape storage, and/or the like. The
instruction library 216 may be part of the CDP 102 or external to
and in communication with the CDP 102. The instruction library 216
can be updated to include additional instructions, to modify
existing instructions, and/or to remove instructions to accommodate
different CDOs.
[0037] The cloud deployment manifest 212 can be stored in a
manifest library 218. The manifest library 218 can be implemented
utilizing any storage technology or combination of storage
technologies, including, for example, hard drives, solid-state
drives, optical storage, tape storage, and/or the like. The
manifest library 218 may be part of the CDP 102 or external to and
in communication with the CDP 102. The manifest library 218 can be
updated to include additional manifests, to modify existing
manifests, and/or to remove manifests.
[0038] The illustrating operating environment 200 also includes an
API 220. The CDP 102 (best shown in FIG. 1) can coordinate with the
cloud orchestrator 108 via the API 220 to deploy the CDO 202.
[0039] Turning now to FIG. 3, aspects of a method 300 for providing
the CDP 102 will be described in detail, according to an
illustrative embodiment. It should be understood that the
operations of the methods disclosed herein are not necessarily
presented in any particular order and that performance of some or
all of the operations in an alternative order(s) is possible and is
contemplated. The operations have been presented in the
demonstrated order for ease of description and illustration.
Operations may be added, omitted, and/or performed simultaneously,
without departing from the scope of the concepts and technologies
disclosed herein.
[0040] It also should be understood that the methods disclosed
herein can be ended at any time and need not be performed in its
entirety. Some or all operations of the methods, and/or
substantially equivalent operations, can be performed by execution
of computer-readable instructions included on a computer storage
media, as defined herein. The term "computer-readable
instructions," and variants thereof, as used herein, is used
expansively to include routines, applications, application modules,
program modules, programs, components, data structures, algorithms,
and the like. Computer-readable instructions can be implemented on
various system configurations including single-processor or
multiprocessor systems, minicomputers, mainframe computers,
personal computers, hand-held computing devices,
microprocessor-based, programmable consumer electronics,
combinations thereof, and the like.
[0041] Thus, it should be appreciated that the logical operations
described herein are implemented (1) as a sequence of computer
implemented acts or program modules running on a computing system
and/or (2) as interconnected machine logic circuits or circuit
modules within the computing system. The implementation is a matter
of choice dependent on the performance and other requirements of
the computing system. Accordingly, the logical operations described
herein are referred to variously as states, operations, structural
devices, acts, or modules. These states, operations, structural
devices, acts, and modules may be implemented in software, in
firmware, in special purpose digital logic, and any combination
thereof. As used herein, the phrase "cause a processor to perform
operations" and variants thereof is used to refer to causing a
processor of the hardware architecture 126 of the CDP 102, a
processor of the cloud orchestrator 108, a processor of the compute
resources 110, and/or a processor one or more other computing
systems and/or devices disclosed herein to perform operations.
[0042] For purposes of illustrating and describing some of the
concepts of the present disclosure, the methods disclosed herein
are described as being performed, at least in part, by the CDP 102
described herein above with reference to FIG. 1, via execution of
one or more software modules, which may be embodied, at least in
part, by the various components 116-124 described above with
reference to FIG. 1. It should be understood that additional and/or
alternative devices and/or network nodes can provide the
functionality described herein via execution of one or more
modules, applications, and/or other software. Thus, the illustrated
embodiments are illustrative, and should not be viewed as being
limiting in any way.
[0043] The method 300 will be described with reference to FIG. 3
and further reference to FIG. 1. The method 300 begins at operation
302, where the CDP 102 executes the CDP development and publication
component 116 to facilitate a developer to perform development and
publication functions for an application or service to be deployed
via the CDP 102 as a CDO. A developer, via the CDP development and
publication component 116 can develop, test, and certify an
application/service or elements (features) thereof in a sandbox
development environment and, when ready, clear the
application/service or elements (features) thereof for deployment.
The notion of elements is provided via the CDP development and
publication component 116 by enabling decomposition of applications
into specific elements that can be individually tested, certified,
and deployed as CDOs (instead of merely deploying an entire
application.) The CDP development and publication component 116 is
described in greater detail below with reference to FIG. 4.
[0044] From operation 302, the method 300 proceeds to operation
304, where the CDP 102 executes the CDP order component 118 to
perform order management functions. In particular, the CDP 102 can
execute the CDP order component 118 to manage order process
workflows for CDOs. In particular, the CDP order component 118 can
be executed by the CDP 102 to manage initial deployment of CDOs and
to manage maintenance, upgrade, recovery, and elastic capacity
events. The CDP order component 118 can be executed by the CDP 102
to receive order requests from portals and/or other applications
via one or more APIs exposed by the CDP 102. The CDP order
component 118 can also identify and order resources, such as, for
example, the compute resources 110, the storage resources 112,
and/or the other resources 114, from the cloud orchestrator 108.
The CDP order component 118 is described in greater detail below
with reference to FIG. 6.
[0045] From operation 304, the method 300 proceeds to operation
306, where the CDP 102 executes the CDP provisioning component 120
to perform provisioning functions. In particular, the CDP 102 can
execute the CDP provisioning component 120 to perform distribution,
delivery, installation, and configuration functions of all elements
of a CDO in accordance with the CDO's manifest. The CDP
provisioning component 120 can be executed by the CDP 102 to
perform initial deployment, elastic re-deployment, recovery
deployment, and relocation deployment of CDOs. The CDP provisioning
component 118 is described in greater detail below with reference
to FIG. 7.
[0046] From operation 306, the method 300 proceeds to operation
308, where the CDP 102 executes the CDP management component 122 to
perform management functions. In particular, the CDP 102 can
execute the CDP management component 122 to monitor CDOs to
maintain the CDOs at a specific level of service described in
corresponding manifests. The CDP management component 122 can be
executed by the CDP 102 to provide automated and intelligent
detection and decision making to maintain the specific level of
service. The CDP management component 122 can be executed by the
CDP 102 to detect capacity and performance events and to receive
and response to maintenance events, such as, for example, patches,
upgrades, software releases, and relocation requests. After an
event trigger is detected, the CDP management component 122 is
executed by the CDP 102 to determine an appropriate course of
action based upon the manifest and submit the appropriate order to
implement the appropriate course of action to the CDP order
component 118. Additional details regarding the execution of the
CDP management component 122 are illustrated and described with
reference to FIG. 8.
[0047] From operation 308, the method 300 proceeds to operation
310, where the CDP 102 executes the CDP support component 124 to
perform support functions. In particular, the CDP 102 can execute
the CDP support component 124 to provide event monitoring via an
API and/or an activity stream. The CDP support component 124 can be
executed by the CDP 102 to broadcast events of all or a portion of
the applications and services being provided by the CDP 102. A tool
or software application can "tune" to a broadcast provided by the
CDP support component 124 so that the tool or software application
can receive and understand CDP events. The events can include
events related to publish services, location services, order
services, provision services, and management services, as will be
described in greater detail below. Additional details regarding the
execution of the CDP support component 124 are illustrated and
described with reference to FIG. 9.
[0048] From operation 310, the method 300 proceeds to operation
312. The method 300 ends at operation 312.
[0049] Turning now to FIG. 4, a method 400 for executing the CDP
development and publication component 116 will be described in
detail, according to an illustrative embodiment. The method 400
will be described from the perspective of the CDP 102 executing the
CDP development and publication component 116 to perform various
operations. Moreover, the method 400 will be described with
reference to FIG. 4 and further reference to FIGS. 1 and 2.
[0050] The method 400 begins and proceeds to operation 402, where
the CDP 102 receives a request to create a CDO, such as the CDO
202, for deployment and management via the CDP 102. From operation
402, the method 400 proceeds to operation 404, where the CDP 102
identifies one or more CDEs, such as the CDEs 206 illustrated in
FIG. 2, and stores the CDEs 206 in the software and image
repository 214. Alternatively, the CDP 102 can identify the CDEs
206 so that the CDEs 206 can be retrieved from the software and
image repository 214.
[0051] From operation 404, the method 400 proceeds to operation
406, where the CDP 102 defines one or more relationships among the
CDEs 206 of the CDO 202. The relationships describe how the CDEs
206 interact with one another to carry out various functions of the
CDO 202. From operation 406, the method 400 proceeds to operation
408, where the CDP 102 identifies one or more CDUs, such as the
CDUs 208 illustrated in FIG. 2, to support deployment of the CDEs
206 and the relationships among the CDEs 206 identified and define
above during operations 404 and 406, respectively.
[0052] From operation 408, the method 400 proceeds to operation
410, where the CDP 102 defines one or more CDPs, such as the CDP
210 illustrated in FIG. 2, to build, deliver, and manage the CDO
202 to maintain the CDO 202 at a specific level of service. From
operation 410, the method 400 proceeds to operation 412, where the
CDP 102 generates a cloud deployment manifest, such as the cloud
deployment manifest 212 illustrated in FIG. 2. The cloud deployment
manifest 212 can include the CDEs 206 identified at operation 404,
the relationships defined at operation 406, the CDUs 208 identified
at operation 408, and the CDP 210 defined at operation 410.
[0053] From operation 412, the method 400 proceeds to operation
414, where the CDP 102 activates the CDO 202 so that one or more
instances of the CDO 202 (i.e., one or more CDIs 204) can be
ordered and deployed in accordance with the specifications set
forth in the cloud deployment manifest 212. From operation 414, the
method 400 proceeds to operation 416, where the method 400
ends.
[0054] Turning now to FIG. 5, a block diagram illustrating an
illustrative example cloud deployment manifest 500 will be
described. The example cloud deployment manifest 500 is an
illustrative example of the cloud deployment manifest 212 described
above with reference to FIG. 2. The cloud deployment manifest 212,
as described above, can include a master description of all aspects
of a CDO, such as the CDO 202, and can be used for delivery and
management of the CDO 202 by the CDP 102.
[0055] The illustrated example cloud deployment manifest 500
includes a CDE field 502, a role field 504, a quantity field 506,
and a packages field 508. The CDE field 502 identifies each CDE
type to be deployed. In the illustrated example, the CDE field 502
includes a number to identify each CDE, although other identifiers
are contemplated.
[0056] The role field 504 identifies a role for each CDE in the
example cloud deployment manifest 500. In the illustrated example,
the role field 504 includes ADMIN, STAGE, MASTER-1, MASTER-2,
MASTER-3, and DATA NODE, each corresponding to one of the CDEs
identified in the CDE field 502 and identifying a role for that
CDE. The roles can be pre-defined for any particular implementation
of the CDP 102, and as such, the illustrated roles should not be
construed as being limiting in any way.
[0057] The quantity field 506 identifies a quantity of each CDE in
the example cloud deployment manifest 500. In the illustrated
example, the quantity field 506 includes a number of each CDE type
to be deployed. The quantity field 506 can include any number of
each CDE type, and as such, the examples shown should not be
construed as being limiting in any way.
[0058] The packages field 508 identifies one or more software
packages to be utilized by each CDE identified in the CDE field
502. As shown in the illustrated example, each CDE type may have
relationships with multiple software packages, and some CDE types
may utilize the same software packages. The software packages
referenced in the packages field 508 can be obtained from the
software and image repository 214 described above with reference to
FIG. 2.
[0059] The illustrated example cloud deployment manifest 500 also
includes a provisioning types enabled field 510, a process field
512, and an image location field 514. The provisioning types
enabled field 510 identifies the type of provisioning that is
enabled for the associated CDO. The process field 512 identifies
the process to be used for the corresponding provisioning type. The
image location field 514 identifies a location of an image file to
be used for the corresponding provisioning type and process.
[0060] In the illustrated example, the provisioning types enabled
field 510 includes initial provisioning, elastic event
provisioning, and recovery provisioning. Initial provisioning is a
type of provisioning for the initial deployment of the CDO. Elastic
event provisioning is a type of provisioning that allows a CDO to
be scaled up or down based upon demand. Recovery provisioning is a
type of provisioning that allows a CDO to return to a previous
state to recover from a failure or other issue with the CDO.
[0061] In the illustrated example, the process field 512 identifies
a stick deploy process. Stick deploy refers to the process of
installing, configuring, testing, and running a software service
using scripts, programs, and software media to create a running
element. The opposite of stick build is an image. An image was
"stick built" on a staging server and then a snapshot image was
taken of the resulting installation. In some software scenarios, it
may be necessary to "stick build" software elements, whereas other
scenarios may allow for a "snapshot" of an existing installation to
be taken and used as-is. Stick build automates the steps humans
would typically do in planning, copying software to a machine,
running manual commands, updating configuration files manually,
starting processes, and running verification and testing scripts.
The term "image" is used herein to refer to a binary snapshot of a
running environment and the media (i.e., the software archive used
for installation purposes) for the initial provisioning type and a
snapshot restore process for the elastic event and recovery
provisioning types. The snapshot restore process can restore a
deployment of a CDO to a previous state. In some embodiments, an
instance of a CDO can be saved periodically as a snapshot state
that can be utilized by the snapshot restore process to return an
instance of a CDO to a previous state to recover from a failure or
other issue.
[0062] The image location field 514, in the illustrated example,
identifies the image location to be used for each of the
provisioning types and processes identified in the provisioning
types enabled field 510 and the process 512. For the snapshot
restore process, the image location field 514 can identify a
location of a snapshot image that is to be used to restore an
instance of a CDO to a previous state prior to a failure or other
issue with the CDO.
[0063] The illustrated example cloud deployment manifest 500 also
includes a CDU field 516, a CPU/CORE field 518, a memory field 520,
and a storage field 522. The CDU field 516 identifies each CDU type
to be deployed. In the illustrated example, the CDU field 516
includes a number and a brief description to identify each CDU
type, although other identifiers are contemplated. Each CDU type
can include different resource specifications, which are defined in
the CPU/CORE field 518, the memory field 520, and the storage field
522.
[0064] Turning now to FIG. 6, a method 600 for executing the CDP
order component 118 will be described in detail, according to an
illustrative embodiment. The method 600 will be described from the
perspective of the CDP 102 executing the CDP order component 118 to
perform various operations. Moreover, the method 600 will be
described with reference to FIG. 6 and further reference to FIGS. 1
and 2.
[0065] The method 600 begins and proceeds to operation 602, where
the CDP 102 accepts an order to deploy one or more instances of a
CDO, such as the CDO 202. In some embodiments, the CDP 102 can
receive an order via one or more web portals. In some embodiments,
the CDP 102 can receive an order via an order API. In either
embodiment, the method 600 proceeds from operation 602 to operation
604. At operation 604, the CDP 102 consults a cloud deployment
manifest, such as the cloud deployment manifest 212, to determine a
direction for cloud deployment of the CDO 202. In particular, the
CDP 102 determines the CDE(s) 206, the CDU(s) 208, and the CDP(s)
210 defined in the cloud deployment manifest 212 for cloud
deployment of the CDO 202.
[0066] From operation 604, the method 600 proceeds to operation
606, where the CDP 102 determines a reference architecture, if any,
to utilize for deployment of the CDO 202. The reference
architecture may include the same or similar CDU(s) 208 as
identified in the cloud deployment manifest 212 that are useable to
support the CDE(s) 206 identified in the cloud deployment manifest
212. The reference architecture, in some embodiments, is provided
as a baseline architecture that can be upgraded or downgraded to
meets the needs of the cloud deployment manifest 212.
[0067] From operation 606, the method 600 proceeds to operation
608, where the CDP 102 orders resources associated with the CDU(s)
208 from one of the qualifying cloud orchestrators 108 via the API
220. The cloud orchestrator 108, in response, can deploy at least a
portion of the compute resources 110, the storage resources 112,
and/or the other resources 114 that are associated with the CDU(s)
208 identified in the cloud deployment manifest 212.
[0068] From operation 608, the method 600 proceeds to operation
610, where the CDP 102 receives access to the resources ordered
from the selected cloud orchestrator 108. In other words, the cloud
orchestrator 108 releases the ordered resources so that the CDO 202
can be deployed thereon. From operation 610, the method 600
proceeds to operation 612, where the CDP 102 sends a provision
request to the CDP provisioning component 120.
[0069] From operation 612, the method 600 proceeds to operation
614. The method 600 ends at operation 614.
[0070] Turning now to FIG. 7, a method 700 for executing the CDP
provisioning component 120 will be described in detail, according
to an illustrative embodiment. The method 700 will be described
from the perspective of the CDP 102 executing the CDP provisioning
component 120 to perform various operations. Moreover, the method
700 will be described with reference to FIG. 7 and further
reference to FIGS. 1 and 2.
[0071] The method 700 begins and proceeds to operation 702, where
the CDP 102 receives a provisioning request from the CDP order
component 118. From operation 702, the method 700 proceeds to
operation 704, where the CDP 102 executes distribution, delivery,
installation, and configuration functions to prepare the CDE(s) 206
for deployment on the CDU(s) 208. The operation 704 can include
distributing each of the CDE(s) 206 to the CDU(s) 208, installing
the CDE(s) 206 on the CDU(s) 208, and configuring the CDE(s) 206 on
the CDU(s) 208 in preparation for deployment of the CDO 202.
[0072] From operation 704, the method 700 proceeds to operation
706, where the CDP 102 executes a deployment. The first deployment
executed by the CDP 102 is an initial deployment of one or more
instances of the CDO 202. After the initial deployment, the
deployment executed at operation 706 may be a re-deployment (using
the initial deployment parameters) of one or more instances of the
CDO 202. After the initial deployment, the deployment executed at
operation 706 alternatively may be a recovery deployment to return
one or more instances of the CDO 202 to a previous state that was
saved in accordance with the snapshot process described herein
above. After the initial deployment, the deployment executed at
operation 706 alternatively may be a relocation deployment to
relocate one or more instances of the CDO 202 from the resources
utilized in the initial deployment to resources that are at least
partially different from the resources utilized in the initial
deployment. After the initial deployment, the deployment executed
at operation 706 alternatively may be an elastic deployment
triggered in response to an elastic event such as load or demand
changes, the detection of offline servers, and/or other events that
change the ability of a deployment of the CDO 202 to perform within
certain specifications.
[0073] From operation 706, the method 700 proceeds to operation
708. The method 700 ends at operation 708.
[0074] Turning now to FIG. 8, a method 800 for executing the CDP
management component 122 will be described in detail, according to
an illustrative embodiment. The method 800 will be described from
the perspective of the CDP 102 executing the CDP management
component 122 to perform various operations. Moreover, the method
800 will be described with reference to FIG. 8 and further
reference to FIGS. 1 and 2.
[0075] The method 800 begins and proceeds to operation 802, where
the CDP 102 monitors a deployed CDO, such as the CDO 202 after
deployment during the method 700. The CDP 102 monitors the CDO 202
to maintain the CDO 202 at a specific level of service defined in
the cloud deployment manifest 212. From operation 802, the method
800 proceeds to operation 804, where the CDP 102 detects an event.
The event can relate to capacity and/or performance of one or more
instances of the CDO 202 on the CDUs 208 defined in the cloud
deployment manifest 212. In other words, the CDP 102 can detect the
event responsive to a condition related to capacity, performance,
and/or other aspect of one or more instances of the CDO 202 that
results in the CDO 202 being different from the specific level of
service defined in the cloud deployment manifest 212.
[0076] From operation 804, the method 800 proceeds to operation
806, where the CDP 102, in response to detecting the event at
operation 804, determines an appropriate course of action, based
upon the cloud deployment manifest 212, to return the CDO 202 to
the specific level of service defined in the cloud deployment
manifest 212. The course of action may include, for example,
performing a re-deployment, relocation deployment, or elastic
deployment, or otherwise providing an order to the CDP order
component 118 to order the resources necessary to return the CDO
202 to the specific level of service defined in the cloud
deployment manifest 212.
[0077] From operation 806, the method 800 proceeds to operation
808, where the CDP 108 generates an order for the course of action
determined at operation 806. From operation 808, the method 800
proceeds to operation 810, where the CDP 108 submits the order to
the CDP order component 118. The CDP order component 118 can
receive the order and process the order in accordance with the
method 600 illustrated and described with reference to FIG. 6. From
operation 810, the method 800 proceeds to operation 812, where the
method 800 ends.
[0078] Turning now to FIG. 9, a method 900 for executing the CDP
support component 124 will be described in detail, according to an
illustrative embodiment. The method 900 will be described from the
perspective of the CDP 102 executing the CDP support component 124
to perform various operations. Moreover, the method 900 will be
described with reference to FIG. 9 and further reference to FIGS. 1
and 2.
[0079] The method 900 begins and proceeds to operation 902, where
the CDP 102 monitors one or more APIs and/or one or more activity
streams associated with operations performed by the CDP 102 to
determine whether or not an event has occurred. An event can
include a publish services event, a location services event, an
order services event, a provision services event, a management
services event, or any other event that involves the CDP 102 or at
least a portion thereof. Publish services events can include all
additions, changes, activations, or other events that involve the
CDP development and publication component 116. Location services
events can include initial deployment events and relocation
deployment events. Order services events can include events that
involve the CDP order component 118. Provision services events can
include any provisioning events, including initial, elastic,
recovery, and relocation provisioning events, and other events that
involved the CDP provisioning component 120. Management services
events can include any management events that involve the CDP
management component 122.
[0080] From operation 902, the method 900 proceeds to operation
904, where the CDP 102 determines whether an event has occurred. If
so, the method 900 proceeds from operation 904 to operation 906,
where the CDP 102 broadcasts the event(s). If, however, the CDP 102
determines that no event has occurred, the method 900 returns to
operation 902, where the CDP 102 continues to monitor one or more
APIs and/or one or more activity streams associated with operations
performed by the CDP 102 to determine whether or not an event has
occurred.
[0081] From operation 906, the method 900 proceeds to operation
908. The method 900 ends at operation 908.
[0082] Turning now to FIG. 10, an illustrative mobile device 1000
and components thereof will be described. While connections are not
shown between the various components illustrated in FIG. 10, it
should be understood that some, none, or all of the components
illustrated in FIG. 10 can be configured to interact with one other
to carry out various device functions. In some embodiments, the
components are arranged so as to communicate via one or more busses
(not shown). Thus, it should be understood that FIG. 10 and the
following description are intended to provide a general
understanding of a suitable environment in which various aspects of
embodiments can be implemented, and should not be construed as
being limiting in any way.
[0083] As illustrated in FIG. 10, the mobile device 1000 can
include a display 1002 for displaying data. According to various
embodiments, the display 1002 can be configured to display various
graphical user interface ("GUI") elements, text, images, video,
virtual keypads and/or keyboards, messaging data, notification
messages, metadata, internet content, device status, time, date,
calendar data, device preferences, map and location data,
combinations thereof, and/or the like. The mobile device 1000 also
can include a processor 1004 and a memory or other data storage
device ("memory") 1006. The processor 1004 can be configured to
process data and/or can execute computer-executable instructions
stored in the memory 1006. The computer-executable instructions
executed by the processor 1004 can include, for example, an
operating system 1008, one or more applications 1010, such as a
near-field communications ("NFC") application, other
computer-executable instructions stored in a memory 1008, or the
like. In some embodiments, the applications 1010 also can include a
UI application (not illustrated in FIG. 10).
[0084] The UI application can interface with the operating system
1008 to facilitate user interaction with functionality and/or data
stored at the mobile device 1000 and/or stored elsewhere. In some
embodiments, the operating system 1008 can include a member of the
SYMBIAN OS family of operating systems from SYMBIAN LIMITED, a
member of the WINDOWS MOBILE OS and/or WINDOWS PHONE OS families of
operating systems from MICROSOFT CORPORATION, a member of the PALM
WEBOS family of operating systems from HEWLETT PACKARD CORPORATION,
a member of the BLACKBERRY OS family of operating systems from
RESEARCH IN MOTION LIMITED, a member of the IOS family of operating
systems from APPLE INC., a member of the ANDROID OS family of
operating systems from GOOGLE INC., and/or other operating systems.
These operating systems are merely illustrative of some
contemplated operating systems that may be used in accordance with
various embodiments of the concepts and technologies described
herein and therefore should not be construed as being limiting in
any way.
[0085] The UI application can be executed by the processor 1004 to
aid a user in entering content, viewing account information,
answering/initiating calls, entering/deleting data, entering and
setting user IDs and passwords for device access, configuring
settings, manipulating address book content and/or settings,
multimode interaction, interacting with other applications 1010,
and otherwise facilitating user interaction with the operating
system 1008, the applications 1010, and/or other types or instances
of data 1012 that can be stored at the mobile device 1000. The data
1012 can include, for example, one or more identifiers, and/or
other applications or program modules. According to various
embodiments, the data 1012 can include, for example, presence
applications, visual voice mail applications, messaging
applications, text-to-speech and speech-to-text applications,
add-ons, plug-ins, email applications, music applications, video
applications, camera applications, location-based service
applications, power conservation applications, game applications,
productivity applications, entertainment applications, enterprise
applications, combinations thereof, and the like. The applications
1010, the data 1012, and/or portions thereof can be stored in the
memory 1006 and/or in a firmware 1014, and can be executed by the
processor 1004. The firmware 1014 also can store code for execution
during device power up and power down operations. It can be
appreciated that the firmware 1014 can be stored in a volatile or
non-volatile data storage device including, but not limited to, the
memory 1006 and/or a portion thereof.
[0086] The mobile device 1000 also can include an input/output
("I/O") interface 1016. The I/O interfaced 1016 can be configured
to support the input/output of data such as location information,
user information, organization information, presence status
information, user IDs, passwords, and application initiation
(start-up) requests. In some embodiments, the I/O interface 1016
can include a hardwire connection such as USB port, a mini-USB
port, a micro-USB port, an audio jack, a PS2 port, an IEEE 13104
("FIREWIRE") port, a serial port, a parallel port, an Ethernet
(RJ410) port, an RJ10 port, a proprietary port, combinations
thereof, or the like. In some embodiments, the mobile device 1000
can be configured to synchronize with another device to transfer
content to and/or from the mobile device 1000. In some embodiments,
the mobile device 1000 can be configured to receive updates to one
or more of the applications 1010 via the I/O interface 1016, though
this is not necessarily the case. In some embodiments, the I/O
interface 1016 accepts I/O devices such as keyboards, keypads,
mice, interface tethers, printers, plotters, external storage,
touch/multi-touch screens, touch pads, trackballs, joysticks,
microphones, remote control devices, displays, projectors, medical
equipment (e.g., stethoscopes, heart monitors, and other health
metric monitors), modems, routers, external power sources, docking
stations, combinations thereof, and the like. It should be
appreciated that the I/O interface 1016 may be used for
communications between the mobile device 1000 and a network device
or local device.
[0087] The mobile device 1000 also can include a communications
component 1018. The communications component 1018 can be configured
to interface with the processor 1004 to facilitate wired and/or
wireless communications with one or more networks such as one or
more IP access networks and/or one or more circuit access networks.
In some embodiments, other networks include networks that utilize
non-cellular wireless technologies such as WI-FI or WIMAX. In some
embodiments, the communications component 1018 includes a multimode
communications subsystem for facilitating communications via the
cellular network and one or more other networks.
[0088] The communications component 1018, in some embodiments,
includes one or more transceivers. The one or more transceivers, if
included, can be configured to communicate over the same and/or
different wireless technology standards with respect to one
another. For example, in some embodiments one or more of the
transceivers of the communications component 1018 may be configured
to communicate using Global System for Mobile communications
("GSM"), Code Division Multiple Access ("CDMA") ONE, CDMA2000,
Long-Term Evolution ("LTE"), and various other 2G, 2.5G, 3G, 4G,
and greater generation technology standards. Moreover, the
communications component 1018 may facilitate communications over
various channel access methods (which may or may not be used by the
aforementioned standards) including, but not limited to,
Time-Division Multiple Access ("TDMA"), Frequency-Division Multiple
Access ("FDMA"), Wideband CDMA ("W-CDMA"), Orthogonal
Frequency-Division Multiplexing ("OFDM"), Space-Division Multiple
Access ("SDMA"), and the like.
[0089] In addition, the communications component 1018 may
facilitate data communications using Generic Packet Radio Service
("GPRS"), Enhanced Data Rates for Global Evolution ("EDGE"), the
High-Speed Packet Access ("HSPA") protocol family including
High-Speed Download Packet Access ("HSDPA"), Enhanced Uplink
("EUL") or otherwise termed High-Speed Upload Packet Access
("HSUPA"), HSPA+, and various other current and future wireless
data access standards. In the illustrated embodiment, the
communications component 1018 can include a first transceiver
("TxRx") 1020A that can operate in a first communications mode
(e.g., GSM). The communications component 1018 also can include an
N.sup.th transceiver ("TxRx") 1020N that can operate in a second
communications mode relative to the first transceiver 1020A (e.g.,
UMTS). While two transceivers 1020A-N (hereinafter collectively
and/or generically referred to as "transceivers 1020") are shown in
FIG. 10, it should be appreciated that less than two, two, and/or
more than two transceivers 1020 can be included in the
communications component 1018.
[0090] The communications component 1018 also can include an
alternative transceiver ("Alt TxRx") 1022 for supporting other
types and/or standards of communications. According to various
contemplated embodiments, the alternative transceiver 1022 can
communicate using various communications technologies such as, for
example, WI-FI, WIMAX, BLUETOOTH, infrared, IRDA, NFC, other RF
technologies, combinations thereof, and the like.
[0091] In some embodiments, the communications component 1018 also
can facilitate reception from terrestrial radio networks, digital
satellite radio networks, internet-based radio service networks,
combinations thereof, and the like. The communications component
1018 can process data from a network such as the Internet, an
intranet, a broadband network, a WI-FI hotspot, an Internet service
provider ("ISP"), a digital subscriber line ("DSL") provider, a
broadband provider, combinations thereof, or the like.
[0092] The mobile device 1000 also can include one or more sensors
1024. The sensors 1024 can include temperature sensors, light
sensors, air quality sensors, movement sensors, orientation
sensors, noise sensors, proximity sensors, or the like. As such, it
should be understood that the sensors 1024 can include, but are not
limited to, accelerometers, magnetometers, gyroscopes, infrared
sensors, noise sensors, microphones, combinations thereof, or the
like. Additionally, audio capabilities for the mobile device 1000
may be provided by an audio I/O component 1026. The audio I/O
component 1026 of the mobile device 1000 can include one or more
speakers for the output of audio signals, one or more microphones
for the collection and/or input of audio signals, and/or other
audio input and/or output devices.
[0093] The illustrated mobile device 1000 also can include a
subscriber identity module ("SIM") system 1028. The SIM system 1028
can include a universal SIM ("USIM"), a universal integrated
circuit card ("UICC") and/or other identity devices. The SIM system
1028 can include and/or can be connected to or inserted into an
interface such as a slot interface 1030. In some embodiments, the
slot interface 1030 can be configured to accept insertion of other
identity cards or modules for accessing various types of networks.
Additionally, or alternatively, the slot interface 1030 can be
configured to accept multiple subscriber identity cards. Because
other devices and/or modules for identifying users and/or the
mobile device 1000 are contemplated, it should be understood that
these embodiments are illustrative, and should not be construed as
being limiting in any way.
[0094] The mobile device 1000 also can include an image capture and
processing system 1032 ("image system"). The image system 1032 can
be configured to capture or otherwise obtain photos, videos, and/or
other visual information. As such, the image system 1032 can
include cameras, lenses, charge-coupled devices ("CCDs"),
combinations thereof, or the like. The mobile device 1000 may also
include a video system 1034. The video system 1034 can be
configured to capture, process, record, modify, and/or store video
content. Photos and videos obtained using the image system 1032 and
the video system 1034, respectively, may be added as message
content to an MMS message, email message, and sent to another
mobile device. The video and/or photo content also can be shared
with other devices via various types of data transfers via wired
and/or wireless communication devices as described herein.
[0095] The mobile device 1000 also can include one or more location
components 1036. The location components 1036 can be configured to
send and/or receive signals to determine a geographic location of
the mobile device 1000. According to various embodiments, the
location components 1036 can send and/or receive signals from GPS
devices, A-GPS devices, WI-FI/WIMAX and/or cellular network
triangulation data, combinations thereof, and the like. The
location component 1036 also can be configured to communicate with
the communications component 1018 to retrieve triangulation data
for determining a location of the mobile device 1000. In some
embodiments, the location component 1036 can interface with
cellular network nodes, telephone lines, satellites, location
transmitters and/or beacons, wireless network transmitters and
receivers, combinations thereof, and the like. In some embodiments,
the location component 1036 can include and/or can communicate with
one or more of the sensors 1024 such as a compass, an
accelerometer, and/or a gyroscope to determine the orientation of
the mobile device 1000. Using the location component 1036, the
mobile device 1000 can generate and/or receive data to identify its
geographic location, or to transmit data used by other devices to
determine the location of the mobile device 1000. The location
component 1036 may include multiple components for determining the
location and/or orientation of the mobile device 1000.
[0096] The illustrated mobile device 1000 also can include a power
source 1038. The power source 1038 can include one or more
batteries, power supplies, power cells, and/or other power
subsystems including alternating current ("AC") and/or direct
current ("DC") power devices. The power source 1038 also can
interface with an external power system or charging equipment via a
power I/O component 1040. Because the mobile device 1000 can
include additional and/or alternative components, the above
embodiment should be understood as being illustrative of one
possible operating environment for various embodiments of the
concepts and technologies described herein. The described
embodiment of the mobile device 1000 is illustrative, and should
not be construed as being limiting in any way.
[0097] FIG. 11 is a block diagram illustrating a computer system
1100 configured to provide the functionality in accordance with
various embodiments of the concepts and technologies disclosed
herein. In some implementations, the hardware architecture 126
(best illustrated in FIG. 1) is configured like the architecture of
the computer system 1100. It should be understood, however, that
modification to the architecture may be made to facilitate certain
interactions among elements described herein. In some
implementations, the compute resources 110, the storage resources
112, and/or the other resources 114 are configured like the
architecture of the computer system 1100 or portions thereof.
[0098] The computer system 1100 includes a processing unit 1102, a
memory 1104, one or more user interface devices 1106, one or more
input/output ("I/O") devices 1108, and one or more network devices
1110, each of which is operatively connected to a system bus 1112.
The bus 1112 enables bi-directional communication between the
processing unit 1102, the memory 1104, the user interface devices
1106, the I/O devices 1108, and the network devices 1110.
[0099] The processing unit 1102 may be a standard central processor
that performs arithmetic and logical operations, a more specific
purpose programmable logic controller ("PLC"), a programmable gate
array, or other type of processor known to those skilled in the art
and suitable for controlling the operation of the server computer.
Processing units are generally known, and therefore are not
described in further detail herein. The compute resources 110 can
include one or more processing units 1102.
[0100] The memory 1104 communicates with the processing unit 1102
via the system bus 1112. In some embodiments, the memory 1104 is
operatively connected to a memory controller (not shown) that
enables communication with the processing unit 1102 via the system
bus 1112. The compute resources 110 can include one or more
instances of the memory 1104. The illustrated memory 1104 includes
an operating system 1114 and one or more program modules 1116. The
operating system 1114 can include, but is not limited to, members
of the WINDOWS, WINDOWS CE, and/or WINDOWS MOBILE families of
operating systems from MICROSOFT CORPORATION, the LINUX family of
operating systems, the SYMBIAN family of operating systems from
SYMBIAN LIMITED, the BREW family of operating systems from QUALCOMM
CORPORATION, the MAC OS, OS X, and/or iOS families of operating
systems from APPLE CORPORATION, the FREEBSD family of operating
systems, the SOLARIS family of operating systems from ORACLE
CORPORATION, other operating systems, and the like.
[0101] The program modules 1116 may include various software and/or
program modules to perform the various operations described herein.
For example, the program modules can include the CDP development
and publication component 116, the CDP order component 118, the CDP
provisioning component 120, the CDP management component 122, the
CDP support component 124, or some combination thereof. The program
modules 1116 and/or other programs can be embodied in
computer-readable media containing instructions that, when executed
by the processing unit 1102, perform various operations such as
those described herein. According to embodiments, the program
modules 1116 may be embodied in hardware, software, firmware, or
any combination thereof. Although not shown in FIG. 11, it should
be understood that the memory 1104 also can be configured to store
the software and image repository 214, the instruction library 216,
the manifest library 218, or some combination thereof.
[0102] By way of example, and not limitation, computer-readable
media may include any available computer storage media or
communication media that can be accessed by the computer system
1100. Communication media includes computer-readable instructions,
data structures, program modules, or other data in a modulated data
signal such as a carrier wave or other transport mechanism and
includes any delivery media. The term "modulated data signal" means
a signal that has one or more of its characteristics changed or set
in a manner as to encode information in the signal. By way of
example, and not limitation, communication media includes wired
media such as a wired network or direct-wired connection, and
wireless media such as acoustic, RF, infrared and other wireless
media. Combinations of the any of the above should also be included
within the scope of computer-readable media.
[0103] Computer storage media includes volatile and non-volatile,
removable and non-removable media implemented in any method or
technology for storage of information such as computer-readable
instructions, data structures, program modules, or other data.
Computer storage media includes, but is not limited to, RAM, ROM,
Erasable Programmable ROM ("EPROM"), Electrically Erasable
Programmable ROM ("EEPROM"), flash memory or other solid state
memory technology, CD-ROM, digital versatile disks ("DVD"), or
other optical storage, magnetic cassettes, magnetic tape, magnetic
disk storage or other magnetic storage devices, or any other medium
which can be used to store the desired information and which can be
accessed by the computer system 1100. In the claims, the phrase
"computer storage medium" and variations thereof does not include
waves or signals per se and/or communication media.
[0104] The user interface devices 1106 may include one or more
devices with which a user accesses the computer system 1100. The
user interface devices 1106 may include, but are not limited to,
computers, servers, PDAs, cellular phones, or any suitable
computing devices. The I/O devices 1108 enable a user to interface
with the program modules 1116. In one embodiment, the I/O devices
1108 are operatively connected to an I/O controller (not shown)
that enables communication with the processing unit 1102 via the
system bus 1112. The I/O devices 1108 may include one or more input
devices, such as, but not limited to, a keyboard, a mouse, or an
electronic stylus. Further, the I/O devices 1108 may include one or
more output devices, such as, but not limited to, a display screen
or a printer.
[0105] The network devices 1116 enable the computer system 1100 to
communicate with other networks or remote systems via a network
1114. Examples of the network devices 1116 include, but are not
limited to, a modem, a radio frequency ("RF") or infrared ("IR")
transceiver, a telephonic interface, a bridge, a router, or a
network card. The network 1114 may include a wireless network such
as, but not limited to, a Wireless Local Area Network ("WLAN"), a
Wireless Wide Area Network ("WWAN"), a Wireless Personal Area
Network ("WPAN") such as provided via BLUETOOTH technology, a
Wireless Metropolitan Area Network ("WMAN") such as a WiMAX network
or metropolitan cellular network. Alternatively, the network 1114
may be a wired network such as, but not limited to, a Wide Area
Network ("WAN"), a wired Personal Area Network ("PAN"), or a wired
Metropolitan Area Network ("MAN"). The network 1114 may be any
other network described herein.
[0106] Turning now to FIG. 12, details of a network 1200 are
illustrated, according to an illustrative embodiment. The network
1200 includes a cellular network 1202, a packet data network 1204,
for example, the Internet, and a circuit switched network 1206, for
example, a PSTN. The cellular network 1202 includes various
components such as, but not limited to, base transceiver stations
("BTSs"), Node-B's or e-Node-B's, base station controllers
("BSCs"), radio network controllers ("RNCs"), mobile switching
centers ("MSCs"), mobile management entities ("MMEs"), short
message service centers ("SMSCs"), multimedia messaging service
centers ("MMSCs"), home location registers ("HLRs"), home
subscriber servers ("HSSs"), visitor location registers ("VLRs"),
charging platforms, billing platforms, voicemail platforms, GPRS
core network components, location service nodes, an IP Multimedia
Subsystem ("IMS"), and the like. The cellular network 1202 also
includes radios and nodes for receiving and transmitting voice,
data, and combinations thereof to and from radio transceivers,
networks, the packet data network 1204, and the circuit switched
network 1206. The CDP 102, the cloud orchestrator 108, the software
and image repository 214, the instruction library 216, the manifest
library 218, the mobile device 1000, the computer system 1100,
other devices and/or systems described herein, or combinations
thereof can be in communication with or be included in the network
1200.
[0107] A mobile communications device 1208, such as, for example, a
cellular telephone, a user equipment, a mobile terminal, a PDA, a
laptop computer, a handheld computer, and combinations thereof, can
be operatively connected to the cellular network 1202. The cellular
network 1202 can be configured as a 2G GSM network and can provide
data communications via GPRS and/or EDGE. Additionally, or
alternatively, the cellular network 1202 can be configured as a 3G
UMTS network and can provide data communications via the HSPA
protocol family, for example, HSDPA, EUL (also referred to as
HSUPA), and HSPA+. The cellular network 1202 also is compatible
with 4G mobile communications standards such as LTE, or the like,
as well as evolved and future mobile standards.
[0108] The packet data network 1204 includes various devices, for
example, servers, computers, databases, and other devices in
communication with another, as is generally known. The packet data
network 1204 devices are accessible via one or more network links.
The servers often store various files that are provided to a
requesting device such as, for example, a computer, a terminal, a
smartphone, or the like. Typically, the requesting device includes
software (a "browser") for executing a web page in a format
readable by the browser or other software. Other files and/or data
may be accessible via "links" in the retrieved files, as is
generally known. In some embodiments, the packet data network 1204
includes or is in communication with the Internet. The circuit
switched network 1206 includes various hardware and software for
providing circuit switched communications. The circuit switched
network 1206 may include, or may be, what is often referred to as a
POTS. The functionality of a circuit switched network 1206 or other
circuit-switched network are generally known and will not be
described herein in detail.
[0109] The illustrated cellular network 1202 is shown in
communication with the packet data network 1204 and a circuit
switched network 1206, though it should be appreciated that this is
not necessarily the case. One or more Internet-capable devices
1210, for example, a PC, a laptop, a portable device, or another
suitable device, can communicate with one or more cellular networks
1202, and devices connected thereto, through the packet data
network 1204. It also should be appreciated that the
Internet-capable device 1210 can communicate with the packet data
network 1204 through the circuit switched network 1206, the
cellular network 1202, and/or via other networks (not
illustrated).
[0110] As illustrated, a communications device 1212, for example,
the unmanaged TDM device 106, a telephone, facsimile machine,
modem, computer, or the like, can be in communication with the
circuit switched network 1206, and therethrough to the packet data
network 1204 and/or the cellular network 1202. It should be
appreciated that the communications device 1212 can be an
Internet-capable device, and can be substantially similar to the
Internet-capable device 1210. In the specification, the network 120
is used to refer broadly to any combination of the networks 1202,
1204, 1206. It should be appreciated that substantially all of the
functionality described with reference to the network 120 can be
performed by the cellular network 1202, the packet data network
1204, and/or the circuit switched network 1206, alone or in
combination with other networks, network elements, and the
like.
[0111] Based on the foregoing, it should be appreciated that
concepts and technologies directed to a cloud delivery platform
have been disclosed herein. Although the subject matter presented
herein has been described in language specific to computer
structural features, methodological and transformative acts,
specific computing machinery, and computer-readable media, it is to
be understood that the concepts and technologies disclosed herein
are not necessarily limited to the specific features, acts, or
media described herein. Rather, the specific features, acts and
mediums are disclosed as example forms of implementing the concepts
and technologies disclosed herein.
[0112] The subject matter described above is provided by way of
illustration only and should not be construed as limiting. Various
modifications and changes may be made to the subject matter
described herein without following the example embodiments and
applications illustrated and described, and without departing from
the true spirit and scope of the embodiments of the concepts and
technologies disclosed herein.
* * * * *