US20200120189A1 - Contextual remote management of virtual app lifecycle - Google Patents
Contextual remote management of virtual app lifecycle Download PDFInfo
- Publication number
- US20200120189A1 US20200120189A1 US16/708,481 US201916708481A US2020120189A1 US 20200120189 A1 US20200120189 A1 US 20200120189A1 US 201916708481 A US201916708481 A US 201916708481A US 2020120189 A1 US2020120189 A1 US 2020120189A1
- Authority
- US
- United States
- Prior art keywords
- user
- context
- server based
- app
- apps
- 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
Links
- 238000000034 method Methods 0.000 claims abstract description 101
- 238000012545 processing Methods 0.000 claims description 38
- 238000004891 communication Methods 0.000 claims description 17
- 230000033001 locomotion Effects 0.000 claims description 9
- 230000000694 effects Effects 0.000 claims description 5
- 230000003993 interaction Effects 0.000 abstract description 9
- 230000008569 process Effects 0.000 description 54
- 238000007726 management method Methods 0.000 description 38
- 238000003860 storage Methods 0.000 description 32
- 230000006870 function Effects 0.000 description 21
- 230000010365 information processing Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 12
- 230000001413 cellular effect Effects 0.000 description 6
- 238000009434 installation Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 238000003491 array Methods 0.000 description 3
- 230000006855 networking Effects 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 238000012384 transportation and delivery Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- YCISZOVUHXIOFY-HKXOFBAYSA-N Halopredone acetate Chemical compound C1([C@H](F)C2)=CC(=O)C(Br)=C[C@]1(C)[C@]1(F)[C@@H]2[C@@H]2CC[C@](OC(C)=O)(C(=O)COC(=O)C)[C@@]2(C)C[C@@H]1O YCISZOVUHXIOFY-HKXOFBAYSA-N 0.000 description 1
- 241001508691 Martes zibellina Species 0.000 description 1
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 230000009172 bursting Effects 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000012517 data analytics Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000011900 installation process Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 235000012054 meals Nutrition 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- H04L67/42—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/62—Uninstallation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Commerce
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/01—Social networking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4604—LAN interconnection over a backbone network, e.g. Internet, Frame Relay
- H04L12/462—LAN interconnection over a bridge based backbone
- H04L12/4625—Single bridge functionality, e.g. connection of two networks over a single bridge
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L67/025—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/1396—Protocols specially adapted for monitoring users' activity
-
- H04L67/22—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
- H04L67/306—User profiles
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/535—Tracking the activity of the user
Definitions
- the present disclosure generally relates to the field of management of applications on a device, and more particularly to remotely managing the lifecycle of applications based on context information relating to a user of the device.
- User computing equipment such as cellular phones, personal electronic device, and the like, are increasingly able to host applications to provide useful services or information to a user.
- the usefulness of having dedicated applications, or “apps,” on a user device has led to an increase in the number of apps that are of interest to a user.
- a method on a server includes determining a first context for a user's device, where the first context being a context of the user's device at a timepoint. The method further includes determining, based on the first context and a respective set of context related conditions associated with each server based app within at least one server based app, a first set of server based apps associated with the first context. The method also includes sending, in association with the indication of the first context, a respective indicator of a respective user interface element for each server based app within the first set of server based apps. The method further includes receiving, at a server from the user's device based on sending the respective indicator, user interface inputs associated with a selected user interface for a selected app within the first set of server based apps. The method additionally includes processing, based on receiving the user interface inputs, the user interface inputs to produce results based on the user interface inputs. The method further includes sending, based on the producing, the results.
- a method on a user device includes determining a present user device context and receiving, from a remote processor, a respective indicator of a respective user interface element associated with each respective server based app within a first set of server based apps. Each respective indicator indicating a user interface element to display for selection of its associated server based app.
- the method further includes receiving, in association with the first set of server based apps, an indication of a device context and determining that the present user device context matches the indication of a device context.
- the method further includes displaying, based on receiving the respective indicator and based on determining that the present user device context matches the indication of a device context, the respective user interface element associated with each server based app within the first set of server based apps.
- the respective user interface elements are displayed on a display along with other user interface elements.
- the method also includes receiving, based on displaying the respective user interface element, a selection of a selected user interface element that is associated with a selected server based app. In an example, this selection is able to be made by a single interaction with the selected user interface element.
- the selected server based app executing on the remote processor and interacting with a user interface components of the user device.
- the method also includes presenting on a display of the user device, based on the selection, a user interface for the selected server based app.
- the method further includes exchanging with the remote processor, in conjunction with the user interface, information between the selected server based app executing on the remote processor and user interface components of the user device.
- FIG. 1 illustrates a geographic environment, in accordance with one example
- FIG. 2 illustrates two example shopping center area user device displays, according to an example
- FIG. 3 illustrates example city center shopping area user device displays, according to an example
- FIG. 4 illustrates cloud based app management and deployment environment, according to an example
- FIG. 5 illustrates a present device context app management platform process, according to an example
- FIG. 6 illustrates a multiple device contexts app display definition process, according to an example
- FIG. 7 illustrates a user device process, according to an example
- FIG. 8 depicts a cloud computing environment according to an embodiment of the present invention.
- FIG. 9 depicts abstraction model layers according to an embodiment of the present invention.
- FIG. 10 is a block diagram illustrating one example of an information processing system according to one example.
- a context of a user's device and therefore a context associated with a user of that device, is determined
- processes on a remote server such as within a cloud based computing infrastructure, performs lifecycle management of various special purpose processing applications, referred to herein as “apps,” on that user's device.
- lifecycle management is able to include installation, management, operational support, and de-installation of one or more capabilities on the user device.
- server based apps that allow a user to perform processing, access data, perform other tasks, or combinations of these, via the user interface of the user device.
- a server based app is enabled on the user device by providing a user interface on the device that communicates with, and exchanges data with, a remote computing device such as a server or other cloud based infrastructure.
- the cloud based infrastructure in an example is able to perform processing, data storage, other operational support, or combinations of these, based on the user interface provided on the user's device.
- FIG. 1 illustrates a geographic environment 100 , according to an example.
- the geographic environment 100 in this example includes two commercial areas, a shopping center 102 , and a downtown city center 104 that includes a number of retail and other consumer oriented businesses.
- a relatively small number of stores, retail and other consumer oriented businesses are shown in this geographic environment 100 in order to more concisely describe relevant aspects of the operation of the described systems and methods.
- shopping centers and city centers are able to have a large number and a large variety of businesses and other venues that are able to be spread over a generally large geographic area in a variety of configurations over that area.
- the shopping center 102 includes a store A 102 , a store B 122 , and a store C 124 .
- these three stores are shown in a line from left to right in the drawing, with store B 122 between store A 120 and store C 124 , which are respectively at the ends of this line.
- a first user 110 and a second user 112 are shown in different areas of the shopping center 102 . In the particular configuration of this illustration, the first user 110 is shown near store A 120 , and the second user 112 is shown near store C 124 .
- the city center 104 includes movie 130 , a shop N 132 , a department store 134 and a restaurant 136 .
- the movie 130 , shop N 132 and department store 134 shown in a rough line from left to right in the drawing, with shop N 132 between the movie 130 and the department store 134 , which are respectively at the ends of this line.
- the restaurant 136 is shown to be opposite the movie 130 .
- a third user 114 and a forth user 116 are also shown in different areas of the city center 104 . In particular, the third user 114 is shown to be close to the restaurant 136 and between the movie 130 and restaurant 136 .
- the fourth user 116 is shown near the department store 134 .
- An arrow near the third user 114 indicates that the user is in motion and moving towards the movie 130 and shop N 132 , and therefore away from the restaurant 136 .
- An arrow near the fourth user 116 shows that the fourth user 116 is moving in a direction generally towards the opposite end of the illustrated city center 104 , and therefore generally towards the restaurant 136 and movie 130 .
- the users in the geographic environment 100 each have a respective user device that wirelessly communicates with a wireless communications infrastructure.
- the user's devices are able to wirelessly communicate with either a first wireless communications station 140 and/or a second wireless communications station 142 .
- the user's devices are able to communicate, either wirelessly or via a wired connection, through any suitable communications interface.
- user devices used by any of the first user 110 , the second user 112 , the third user 114 , the fourth user 116 , or any combinations of these are able to communicate via cellular data services, short range wireless links such as Wi-Fi®, Bluetooth®, any suitable technique, or combinations of these.
- the user devices communicate with a server 144 through one or both of the first wireless communications station 140 or the second wireless communications station 142 .
- the server 144 is able to consist of a server, any suitable cloud computing infrastructure, or combinations of these.
- the server 144 in an example is a cloud computing platform that includes functions to perform lifecycle management of apps on the user devices used by each of the four users depicted in the geographic environment 100 .
- These apps in an example are able to include apps that allow the user to receive information relevant to the stores, retail businesses, or other consumer based businesses that likely to be of interest to the particular user of the respective user's devices.
- the server 144 operates to install, manage operations of, support operations of, uninstall, perform other lifecycle maintenance for, or combinations of these, the apps on user devices associated with each of the depicted users.
- FIG. 2 illustrates two example shopping center area user device displays 200 , according to an example.
- the two example shopping center area user device displays 200 depict a first display 202 and a second display 204 .
- the first display 202 shows example icons displayed on a display of the device of the first user 110 when that user is in the location in the shopping center 102 shown in FIG. 1 .
- the second display 204 shows example icons displayed on a display of the device of the second user 112 that user is in the location in the shopping center 102 shown in FIG. 1 .
- the first display 202 and the second display 204 each depict a display of app icons for apps where some of those icons have been selected to be displayed on the respective devices based on a context determined for that device, which is assumed to be a context associated with the user of that device.
- the depicted icons are examples of user interface elements associated with apps that are able to be used in conjunction with the user device.
- the icons illustrated in the two example shopping center area user device displays 200 include two types of icons, virtual icons and local icons.
- Virtual icons in one example include user interface elements that are associated with and that therefore represent sever based apps.
- a user is able to use a server based app in one example by selecting the virtual icon associated with the selected app.
- the selection of an icon is able to be made by any suitable technique, such as by touching a touch sensitive screen in the vicinity of the display of the icon.
- Examples of server based apps include cloud based apps that operate by at least partially performing some functions on a remote processor, and those functions are able to interact with user interfaces that are presented on the user's device.
- Virtual icons in one example are able to be managed by a virtual icon manager that operates on a remote server.
- the virtual icon manager is implemented by processing performed within a cloud computing infrastructure.
- the virtual icon manager in some examples is able to add icons to the display of a user's device, determine positions at which to place each icon on the display of the user's device, control operation of server based apps and the interaction with user interfaces operating on the user's device, remove virtual icons from the display of the user's device, or combinations of these.
- the virtual icon manager is able to manage the lifecycle of server based apps on the user's device, where those server based apps are represented by virtual icons provided by to the user's device by the virtual icon manager.
- the two example shopping center area user device displays 200 depict user device displays that include local app icons.
- Local app icons in an example are icons associated with apps that are installed on the user's device and which primarily execute on the user's device.
- local icon apps are associated with apps that include apps installed under the control of the user of the device.
- the first display 202 includes two virtual icons that were selected based on the context of the device used by the first user 110 . As described above, the first user 110 is in the vicinity of Store A 120 , and also near Store B 122 . As shown in FIG. 1 , Store C 124 is further from the first user 110 at that time. Because the first user 110 is closest to Store A 120 and Store B 122 and is further from store C 124 , the first display 202 has a first icon 230 that is associated with a server based app for Store A 120 and a second icon 232 that is associated with a server based app for store B 122 .
- the locations on the user's device display of these icons is also determined based on the context of the user's device. For example, the first icon 230 representing a server based app for Store A 120 is placed above on the second icon 232 representing a server based app for store B 122 because the user is located closer to Store A 120 than Store B 122 . In the illustrated example, the two virtual app icons are placed above a first local app icon 234 , although any other placement and arrangement is able to be determined by the remote server.
- the second display 204 also includes two virtual icons that were selected based on the context of the device used by the second user 112 . As described above, the second user 112 is in the vicinity of Store C 124 , and also near Store B 122 . As shown in FIG. 1 , Store A 120 is further from the second user 112 at that time. Because the second user 112 is closest to Store C 124 and Store B 122 and is further from Store A 120 , the second display 204 has a third icon 220 that is associated with a server based app for Store C 124 and a fourth icon 222 that is associated with a server based app for store B 122 .
- the locations on the user's device display of these icons is also determined based on the context of the user's device. For example, the third icon 220 representing a server based app for Store C 124 is placed above on the fourth icon 222 representing a server based app for store B 122 because the user is located closer to Store C 124 than Store B 122 . In the illustrated example, the two virtual app icons are placed above a second local app icon 224 , although any other placement and arrangement is able to be determined by the remote server.
- FIG. 3 illustrates example city center shopping area user device displays 300 , according to an example.
- the example city center shopping area user device displays 300 depicts a third display 302 and a fourth display 304 .
- the third display 302 shows example icons displayed on a display of the device of the third user 114 when that user is in the location in the city center 104 shown in FIG. 1 .
- the fourth display 304 shows example icons displayed on a display of the device of the fourth user 116 when that user is in the location of the shopping area in the city center 104 shown in FIG. 1 .
- the third display 302 and the fourth display 304 each depict a display of app icons for apps where some of those icons have been selected to be displayed on the respective devices based on a context determined for that device, which is assumed to be a context associated with the user of that device.
- the icons displayed in the example city center shopping area user device displays 300 are similar to those discussed above with regards to the example city center shopping area user device displays 300 .
- the city center shopping area user device displays 300 include virtual icons, which represent server based apps, and local icons that represent apps locally installed on the device.
- the virtual icons in some examples are able to be managed by the above described virtual icon manager.
- the third display 302 includes three virtual icons that were selected based on the context of the device used by the third user 114 . As described above, the third user 114 is close to the restaurant 136 and between the movie 130 , and the restaurant 136 . In this illustrated example, the third user 114 is shown by an arrow to be moving away from the restaurant 136 and towards Shop N 132 .
- the illustrated third display 302 includes virtual icons that are selected based not only on the location of the third user 114 , but also based on the movement of the third user 114 . Because the third user 114 is moving towards Shop N 132 , the third display presents a third display first virtual icon 320 at the top of the presented icons as was selected to be an icon associated with a virtual app for Shop N 132 .
- the virtual icon selected to be displayed and positioned below the top icon is a third display second virtual icon 322 that is associated with an app for the movie 130 .
- the third user 114 is closer to the restaurant 136 than the Store N 132 , or movie 130 , the third user 114 as shown in FIG. 1 is moving away from the restaurant 136 and towards those other two locations. Because the third user 114 is close to the restaurant 136 , a third display third virtual icon 324 is displayed in this example at the bottom of the third display 302 where the third display third virtual icon 324 is associated with a server based app associated with the restaurant 136 . The virtual icon for the restaurant 136 is shown at the bottom of the virtual icons because it is determined in this example to be of less interest to the third user 114 given the third user's movement away from that location.
- a virtual icon associated with the restaurant may be placed more prominently on a display based on other factors, such as the display being presented near a customary meal time for the third user, based on a preference of the third user for the particular restaurant 136 or a chain of restaurants to which restaurant 136 may belong, based on other factors, or combinations of these.
- the fourth display 304 includes two virtual icons that were selected based on the context of the device used by the fourth user 116 . As described above, the fourth user 116 is in the vicinity of the department store 134 , but moving towards the opposite end of the city center 104 and thus more towards the movie 130 and restaurant 136 . In addition to the context of the user device based on the device's location, additional information is used in this example to determine the set of virtual icons and their display locations on the fourth display 304 . In this example, information gathered from the personal calendar for the fourth user 116 , which is available to one or both of the user device used by the fourth user 116 and the cloud based virtual icon manager, indicates that the fourth user 116 is scheduled to meet a friend in a few minutes.
- the cloud based virtual icon manager selects virtual icons for server based apps that are appropriate for meeting friends, such as a restaurant 136 or movie 130 . Locations less likely to be of interest when meeting friends, such as Shop N 132 or Department Store 134 are given less priority in selecting virtual icons to present to the user.
- the fourth display 304 has a fourth display first virtual icon 330 that is an icon associated with an app for the restaurant 136 .
- a fourth display second virtual icon 332 that is an icon associated with a server based app for the movie 130 .
- a fourth display third virtual icon 334 which in this example is for a server based app associated with store N 132
- a fourth display fourth virtual icon 336 which in this example is for a server based app associated with the department store 134 .
- the icon for a server based app associated with Shop N 132 is selected to be shown above the icon for the department store 134 based on the movement of the fourth user 116 towards the Shop N 132 , even though the fourth user 116 is closer to the department store 134 .
- the fourth display 304 further includes a local app icon, a fourth display first local icon 338 and a fourth display second local icon 338 .
- the local app icons are associated with apps installed on the user's device.
- the any arrangement of virtual icons and local icons is able to be specified, including intermingling local icons with virtual icons on the display.
- FIG. 4 illustrates a cloud based app management and deployment environment 400 , according to an environment.
- the illustrated cloud based app management and deployment environment 400 depicts three fundamental components, a sponsor component 402 , a cloud infrastructure component 406 , and user devices 404 . As described below, these components interact with each other to deliver and maintain a relevant set of virtual icons on a user's device to allow the user to use server based apps that are relevant to the context of the user.
- the sponsor component 402 includes a number of app sponsors, such as app sponsor 1 430 , app sponsor 2 432 , and app sponsor N 434 .
- app sponsors in some examples include operators of retail and other businesses, such as are discussed above in FIG. 1 .
- the operators of the stores in the shopping center 102 and the shops, stores, movies and restaurants in the city center 104 are each able to individually control one or more apps associated with a business that a user is able to use to receive information from, or otherwise interact with, that particular business.
- Each app sponsor has a corresponding sponsor interface, such as the sponsor 1 interface 440 , sponsor 2 interface 442 , and sponsor N interface 444 .
- These interfaces in one example include a cloud computing platform interface, such as an Internet Web browser or other computer communications program.
- a cloud computing platform interface such as an Internet Web browser or other computer communications program.
- one or more centrally located terminals or other user interface devices are able to be located in the vicinity of several sponsors, such as in an office of the shopping center 102 or a management office for the city center 104 .
- These interfaces in an example allow a user, such as a person working for the particular app sponsor, to provide information to, and otherwise control or interact with, the cloud based computing platform that operates to provide certain cloud based apps deployed to the user devices 404 .
- the app sponsors are able to dynamically register or unregister one or more server based apps to enable or disable to server based app to be available for deployment to devices in the user devices 404 , otherwise configure, or control the server based app to present desired information, perform desired processing, or otherwise configure the server based app, or otherwise control the server based app's operation and deployment to user devices.
- the user devices 404 include multiple user devices, such as the illustrated user devices 404 .
- the user devices 404 are representative of any suitable user device, such as a smart phone, personal digital assistant (PDA), other devices used by individuals, or any other suitable device.
- the user devices 404 include a display 410 on which data, images, text, other visual information, or combinations of these, are presented.
- the illustrated display 410 includes a User Interface (UI) element 1 412 , UI element 2 414 , and a UI element N 416 .
- UI User Interface
- these UI elements are icons presented on the display 410 of a user device in the user devices 404 .
- Each of these UI elements is associated with a particular app that is available for use by the user of a user device within the user devices 404 .
- the display 410 is a touch sensitive display that allows a user to provide input by touching particular areas of the display 410 .
- a user is able to initiate operation of an app by touching, or otherwise selecting, a particular UI element on a touch sensitive display and an app associated with that UI element will start and provide a corresponding user interface to the user to use that selected app.
- the UI elements are able to be associated with local apps, which have at least one component installed on the user devices 404 , or server based apps that include processing operating on a cloud based server and that interact with user interface elements provided on the user devices 404 .
- the user devices 404 of one example includes a processor 420 and memory 421 .
- the processor 420 executes programs defined by applications stored in the memory 421 .
- the memory 421 is able to store data defining programs or apps such as a server based app user interface manager 422 , a device context manager 424 , and one or more local apps 428 .
- the server based app user interface manager 422 is an executable program in some examples that controls the display of virtual icons associated with server based apps on the display 410 .
- the device context manager 424 in one example monitors indications of the user device context and reports relevant information regarding the present user device context to the cloud infrastructure component 406 .
- the memory 421 is able to store one or more local apps 428 that are apps executed by the processor 420 of the user device.
- the memory 421 further includes a user interface indicators, locations and associated context storage 426 .
- the user interface indicators, locations and associated context storage 426 in one example, stores a number of user interface indicators, such as icons, for virtual apps that correspond to server based apps.
- the user interface indicators, locations and associated context storage 426 in some examples stores locations at which those user interface indicators, such as icons, are to be displayed on the display 410 .
- the user interface indicators, locations and associated context storage 426 is able to store specifications of the user devices contexts in which certain server based apps are to be displayed on the display 410 . For example, a particular server based app is able to specify that its icon is to be displayed when the user device is within a specified geographic location.
- the cloud infrastructure component 406 includes an app management platform 470 and an execution platform 450 .
- the app management platform 470 and the execution platform 450 in an example are provided on a cloud based infrastructure that allows the virtual access of all of their functions via a suitable communications network.
- the app management platform 470 and the execution platform 450 are each shown as one element that are in communications with one another, the actual realization of these function is sable to have any structure in a cloud computing infrastructure.
- the app management platform 470 includes an app sponsor registration manager 472 .
- the app sponsor registration manager 472 interacts with app sponsors within the app sponsor component 402 , such as via the sponsor interfaces described above, to configure the server based apps for deployment to and use on the user devices 404 .
- the app sponsor registration manager 472 allows a sponsor of a server based app, such as a store owner or other promoter of a business, to register or unregister one or more of that sponsor's server based app in order to enable or disable one or more of that sponsor's server based app to be available to client devices.
- the app sponsor registration manager 472 allows app sponsors to setup installers and uninstallers to install or uninstall the sponsor's server based apps onto user devices.
- the app sponsor registration manager 472 in some examples further allows an app sponsor to upload, configure, otherwise manipulate, or combinations of these, the server based apps that are provided through, and that execute on, the cloud based infrastructure for use by users, such as via a user interface provided on the user devices 404 .
- the app sponsor registration manager 472 allows the app sponsor to specify device context related conditions that control when a User Interface element, such as an icon, associated with a particular server based app is to be loaded onto or removed from a particular user device within the user devices 404 .
- the app management platform 470 further includes a user device virtual app lifecycle control manager 474 .
- the user device virtual app lifecycle control manager 474 controls the user interface elements provided to, removed from, otherwise altered or manipulated, or combinations of these, from the user devices 404 .
- the app lifecycle control manager 474 invokes install and uninstall scripts to install or remove user interface elements, such as icons, onto the user device for selected server based apps.
- the app lifecycle control manager 474 also loads or removes appropriate parameters for each installed or uninstalled user interface element, such as parameters for installing a representation of the server based app, transferring an icon image and information used to identify the server based app as part of the installation process of the virtual app onto the user device.
- the app lifecycle control manager 474 further monitors context related information for each user device, and determines which user devices satisfy context related conditions specified for installation of, removal of, modification of, other modifications of, or combinations of these, one or more server based apps.
- an app sponsor is able to specify context related conditions cause a virtual app to be installed on to a user device when the context of that user device satisfies those specified conditions.
- the app lifecycle control manager 474 receives various data from the app sponsor registration manager 472 to define server based apps to deploy to various user devices, to define the associated contexts in which to deploy certain server based apps, to specify other operational information, or combinations of these.
- the app management platform 470 in one example receives app related information and data such as the above described information and data provided by the app sponsors from the app sponsor registration manager 472 .
- context related conditions are able to be specified by any suitable source.
- context related conditions are able to be based on fixed geographical locations.
- the app lifecycle control manager 474 is able to be configured with one or more geographic locations associated with each server based app where the geographic locations correspond to a geographic vicinity near each store or other facility that is associated with the server based app.
- each user device reports its present location to the app lifecycle control manager 474 .
- the app lifecycle control manager 474 then compares the present location of each user device with the location related context conditions specified for each server based app.
- the app lifecycle control manager 474 When the present location of a user device satisfies the location based context for a server based app, and also satisfies any other context based conditions for that server based app, the app lifecycle control manager 474 then operates to cause a user interface element to be installed onto the user device for the server based app whose context related conditions have been satisfied.
- the execution platform 450 in one example includes the cloud based components that manage and support the operation and deployment of server based apps, also referred to as virtual apps, in conjunction with user devices 404 .
- the execution platform 450 includes a virtual app storage 462 that stores executable software executed within the cloud based infrastructure to perform the functions provided by server based apps.
- the execution platform further includes a virtual app installer 460 that manages the installation of virtual apps onto user devices.
- installation of a particular virtual app onto a user device includes sending a definition of an icon associated with the particular server based virtual app to the user device, along with information identifying the server based app that allows the user device to exchange information with and otherwise inter-operate with the server based app executing on the cloud based infrastructure.
- the execution platform 450 further includes a virtual app uninstaller 466 that manages de-installation of virtual apps from user devices.
- the virtual app uninstaller 466 communicates with the user device to cause icons for apps to be removed when the context specifications for those apps are no longer satisfied by the context of the user device.
- the execution platform 450 includes a server based app execution component 452 .
- the server based app execution component 452 implements the processing to perform the functions of the server based apps supported by the cloud infrastructure component 406 .
- the server based app election component 452 in an example operates with an interface to user devices 454 to exchange user interface data with the user interfaces provided on the user devices 404 with which each server based app executing via the server based app execution component 452 .
- FIG. 5 illustrates a present device context app management platform process 500 , according to an example.
- the present device context app management platform process 500 illustrates an example process flow performed by a cloud infrastructure component 406 as discussed above.
- the illustrated present device context app management platform process 500 receives information from a user device that conveys the present context of the user's device. Based on that present context, the present device context app management platform process 500 determines selected virtual apps to be presented to the user of the user device, conveys icons for those selected virtual apps to the user device, and supports operation of those selected virtual apps by performing the processing associated with each of the selected virtual apps the user of the user device is using.
- the present context includes not only a location of the user's device, but other information such as ambient temperature, speed and direction of movement, other information, or combinations of these.
- the present device context app management platform process 500 is performed on a cloud based infrastructure and interacts with user interface elements provided on the user device. In general, many instances of the illustrated present device context app management platform process 500 are able too operate to support many user devices or multiple virtual apps operating contemporaneously on a particular user device.
- the present device context app management platform process 500 begins by receiving, at 502 , context related information for each server based app.
- this context related information is received from the sponsor of each server based app.
- each server based app is able to have an associated specification of context related conditions that control when the server based app is presented to a user of a user's device.
- the present device context app management platform process 500 continues by determining, at 504 , a present context of the user's device.
- This present context in one example is determined based upon context related information that is determined and reported by a user device.
- the context related information in other examples are able to be determined, reported, or both, by any suitable technique either operating on the user device or by monitoring that is separate from the user device.
- the present context is a context at a first timepoint that is sufficiently close to the present time such that the reported context is relevant to the user of the user device.
- the present context in an example is determined by assembling the received context related information into a form to facilitate comparison to specified context related conditions for each app.
- determining the user device context is able to be based on any context status associated with the user device, such as the user device location, user device movement, user device communications status, user device communications history, social media contacts for a user of the user device, social media activities of a user of the user device, physiological information of a user associated with the user device, calendar entries for a user of the user device, preferences of a user of the user device, or information within a profile of a user of the user device, or combinations of these.
- context status associated with the user device such as the user device location, user device movement, user device communications status, user device communications history, social media contacts for a user of the user device, social media activities of a user of the user device, physiological information of a user associated with the user device, calendar entries for a user of the user device, preferences of a user of the user device, or information within a profile of a user of the user device, or combinations of these.
- the present device context app management platform process 500 determines, at 506 , a set of server based apps that are associated with the determined present context for the user device. This determination in an example is based upon a comparison of the received context related information for each server based app and the determined present context of a user device.
- server based apps are associated with the determined present context of the user device when the received context related information matches the context related conditions specified for the server based app.
- the set of server based apps is set to a default set of server based apps, at 510 .
- the default set of server based apps is defined to be no server based apps.
- the default set of server based apps is defined to be a set of server based apps that are considered to be of general interest to users regardless of the context of the user device.
- the present device context app management platform process 500 determines, at 512 , a position in the display to be presented on the user device for each virtual icon associated with each server based app in the determined set of server based apps.
- the determined position is able to be specified as positions relative to other virtual icons, relative to other virtual icons and local app icons, as positions relative to local app icons, as absolute locations on the display, as any suitable location specification, or as any combination of these.
- Icons and a specification of the determined location on the display for each icon for each server based app within the set of server based apps are sent to the device, at 514 . These icons are then displayed by the user device.
- a user of the user device is able to select an icon by any suitable technique, and begin access to a server based app associated with the icon selected by the user.
- a user interface for the selected server based app is presented on the user device. This user interface for the selected server based app is able to be provided alone with the icon associated with that server based app, or the present device context app management platform process 500 is able to send such user interface definitions based on receiving an indication of a user input selecting the icon.
- the present device context app management platform process 500 receives, at 516 , user inputs for a selected app in the set of apps.
- these user inputs are able to include an input to select an icon for a particular server based app as well as other user inputs to the user interface associated with the selected server based app.
- the present device context app management platform process 500 processes the user inputs to produce results. These results are able to include, for example, a different user interface to present to the user on the display of the user device, information to be presented to the user on the user interface device, any other type of result, or combinations of these.
- the present device context app management platform process 500 sends, at 520 , these results to the user device.
- these results are presented to the user on a visual, audio, or other output device and are able to allow further inputs to be received from the user.
- determining if the device context has changed includes determining a second context of the user device at a second timepoint, where that second timepoint is subsequent to the first timepoint at which the user device context was determined, at 504 .
- the present device context app management platform process 500 returns to receiving, at 516 , user inputs as is described above. If the device context has changed, the present device context app management platform process 500 returns to determining, at 506 , server based apps that are associated with this new context and continues with the subsequent processing described above.
- FIG. 6 illustrates a multiple device contexts app display definition process 600 , according to an example.
- the multiple device contexts app display definition process 600 is similar to the present device context app management platform process 500 discussed above but determines multiple sets of server based apps, where each set of server based apps includes server based app icons and associated information for each of multiple device contexts. These multiple sets of server based apps are sent, along with a definition of each associated context, to the user device. This allows the user device to autonomously determine and present relevant virtual app icons based on the context of the user device as determined at the user device.
- the multiple device contexts app display definition process 600 begins by setting, at 602 , a first context as a present context. As discussed above, each server based app is able to have an associated specification of context related conditions that controls when the server based app is presented to a user of a user's device.
- the multiple device contexts app display definition process 600 determines or defines sets of context related conditions for a number of server based apps for a number of defined contexts. In one example, theses sets of context related conditions for a number of server based apps are created at a time prior to sending those sets of context related conditions user devices.
- the user device is able to compare stored sets of context related conditions and if the context related conditions of one of those sets is satisfied by a present context of that user device, icons for server based apps associated with the matched set of context related conditions can be displayed by the user devices 404 independent of interaction with the cloud infrastructure component 406 .
- the contexts defined by the multiple device contexts app display definition process 600 are able to be selected based on any suitable criteria. For example, in the above described example depicted in FIG. 1 , a set of geographic locations within the shopping center 102 are able to be defined such that each context in the set of defined contexts corresponds to being near each store within the shopping center 102 .
- setting this first context as a present context corresponds to determining a first context of a user device at a first timepoint.
- the first timepoint corresponds to a time in the future at which the user device will satisfy the conditions for this first context, and thus result in the display of associated icons, as is described below.
- the multiple device contexts app display definition process 600 determines, at 606 , a set of server based apps that are associated with the present context for the user device.
- the multiple device contexts app display definition process 600 determines, at 606 , a position in the display to be presented on the user device for each virtual icon associated with each server based app in the determined set of server based apps.
- the determined position is able to be specified as positions relative to other virtual icons, relative to other virtual and local app icons, as positions relative to local app icons, as absolute locations on the display, as any suitable location specification, or as any combination of these.
- Icons and a specification of the determined location on the display for each icon for each server based app within the set of server based apps are sent to the device, at 608 .
- these icons and associated data are stored on the user device and when the user device determines its context matches one of the determined contexts, the set of server based apps is then displayed to the user of the user device.
- the multiple device contexts app display definition process 600 receives, at 622 , user inputs for a selected app in the set of apps. In some examples, these user inputs are able to include an input to select an icon for a particular server based app as well as other user inputs to the user interface associated with the selected server based app. Based on these received user inputs, the multiple device contexts app display definition process 600 processes, at 624 , the user inputs to produce results. These results are able to include, for example, a different user interface to present to the user on the display of the user device, information to be presented to the user on the user interface device, any other type of result, or combinations of these.
- the multiple device contexts app display definition process 600 sends, at 626 , these results to the user device. If the device context has not changed, the multiple device contexts app display definition process 600 returns to receiving, at 622 , user inputs as is described above. It is noted that the user input reception and processing 620 in this example is performed independently of an indication of the context of the user device being provided to the server based app, or to the cloud infrastructure component 406 discussed above.
- FIG. 7 illustrates a user device process 700 , according to an example.
- the user device process 700 is an example of a process performed by a processor 420 within a user device within the user's devices 404 as is described above.
- the user device process 700 includes processing defined by the server based app user interface manager 422 .
- the user device performing the user device process 700 in some examples is able to be a mobile device, such as a mobile phone, cellular phone, cellular smart phone, other mobile device, any other suitable device, or combinations of these.
- the user device process 700 beings by determining, at 702 , a present context of the user device.
- the present context is able to include, for example, the present location of the user device, a speed and direction of movement of the user device, a state or history of voice communications (such as phone usage) of the user device, preferences or other information stored within a profile of a user of the user device, activities of a user associated with the user device as determined by, for example, social circles and activities, physiological parameters of the user, calendar, other context parameters, or combinations of these.
- the user device process 700 sends, at 704 , in one example the determined present context to a server.
- the server such as within a cloud based infrastructure, is able to respond to the determined context of the user device and provide, modify, remove, or combinations of these, based on the present context of the user device as determined by the user device and reported to the cloud based infrastructure.
- the user device process 700 receives, at 706 , icons for each app within a set of server based apps.
- these icons are examples of user interface elements that can be displayed to a user of the user device.
- processing within a cloud based infrastructure determines which apps to include within the set of server based apps are selected based upon the present context of the user's device. The processing within the cloud based infrastructure then sends icons for each app within the set of server based apps to the user device.
- the user device process 700 receives, at 708 , a location for display each icon within the received icons for each app within the set of server based apps.
- the location at which to display each icon is able to be determined by processing within a cloud based infrastructure in order to, for example, place more relevant icons at the top of the display of virtual icons.
- the location at which to display each of these virtual icons is able to be specified relative to local icons for locally installed apps on the user's device so that virtual icons and local icons are able to be interleaved on the display presented to the user of the user device.
- the user device process 700 in some examples receives, at 710 , an indication of a context associated with the set of server based apps for which associated icons were received.
- This indication of context allows processing within the user device to determine if the present context of the user device matches the context associated with the set of server based apps, and therefore the icons associated with the set of server based apps should be displayed on the display of the user device.
- the received icons, display location, and context associated with the set of server based apps are stored, at 712 . Storing these data allows subsequent processing by the user device to determine if the user device enters a context that satisfies contexts for a set of server based apps. Upon such as determination, the user device is then able to retrieve and display the icons associated with the set of server based apps whose context conditions are satisfied by the device's context, such as is described below. Storing these context indications allows reducing the amount of data transmitted between the user device and the cloud computing infrastructure.
- the user device process 700 displays, at 720 , icons in specified location for each server based app in a set of server based apps associated with the present context. Once these icons are displayed, a user is able to select a server based app by selecting one of the displayed icons.
- the display of icons for server based apps is able to be interleaved with icons for apps stored on the user device.
- the equipment used to display the icons in one example is able to be a display of a mobile device, such as a cellular telephone or smart phone.
- the icons for the server based apps are displayed in a default pane of the display of the device.
- This default pane is able to also include icons for locally installed apps or other apps or functions able to be accessed or used by a user of the device displaying the icons.
- a user is able to select an icon by pressing a touch sensitive display of the user device in the vicinity of a display of the icon of the desired server based app.
- Such an icon selection in one example is able to be made by a single interaction, such as a single click, single touch, or single tap of the icon displayed on the user's device.
- the user device process 700 determines, at 714 , if the present device context matches a stored indication of a context, and performs the above described subsequent processing.
- the user device process 700 presents, at 724 , a user interface for a server based app associated with the selected icon.
- the user interface for a selected server based app is able to be provided by the cloud based infrastructure, the user interface is able to be stored on the user device, or the user interface is able to be obtained through any suitable technique.
- the user device process 700 then exchanges, at 726 , data with the selected server based app.
- the user interface provided by the user device accepts user inputs and forwards those inputs the selected server based app, such as an app operating on the execution platform 450 discussed above.
- the server based app is then able to determine results, either based on or independent of the user inputs, and provide those results to the user device for display to the user, such as via a user interface provided for that server based app on the user device.
- the user device process 700 then returns to determining, at 714 , if the present device context matches a stored indication of a context, and performs the above described subsequent processing.
- Cloud computing is a model of service delivery for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g. networks, network bandwidth, servers, processing, memory, storage, applications, virtual machines, and services) that can be rapidly provisioned and released with minimal management effort or interaction with a provider of the service.
- This cloud model may include at least five characteristics, at least three service models, and at least four deployment models.
- On-demand self-service a cloud consumer can unilaterally provision computing capabilities, such as server time and network storage, as needed automatically without requiring human interaction with the service's provider.
- Resource pooling the provider's computing resources are pooled to serve multiple consumers using a multi-tenant model, with different physical and virtual resources dynamically assigned and reassigned according to demand There is a sense of location independence in that the consumer generally has no control or knowledge over the exact location of the provided resources but may be able to specify location at a higher level of abstraction (e.g., country, state, or datacenter).
- Rapid elasticity capabilities can be rapidly and elastically provisioned, in some cases automatically, to quickly scale out and rapidly released to quickly scale in. To the consumer, the capabilities available for provisioning often appear to be unlimited and can be purchased in any quantity at any time.
- Measured service cloud systems automatically control and optimize resource use by leveraging a metering capability at some level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, and active user accounts). Resource usage can be monitored, controlled, and reported providing transparency for both the provider and consumer of the utilized service.
- level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, and active user accounts).
- SaaS Software as a Service: the capability provided to the consumer is to use the provider's applications running on a cloud infrastructure.
- the applications are accessible from various client devices through a thin client interface such as a web browser (e.g., web-based e-mail).
- a web browser e.g., web-based e-mail
- the consumer does not manage or control the underlying cloud infrastructure including network, servers, operating systems, storage, or even individual application capabilities, with the possible exception of limited user-specific application configuration settings.
- PaaS Platform as a Service
- the consumer does not manage or control the underlying cloud infrastructure including networks, servers, operating systems, or storage, but has control over the deployed applications and possibly application hosting environment configurations.
- IaaS Infrastructure as a Service
- the consumer does not manage or control the underlying cloud infrastructure but has control over operating systems, storage, deployed applications, and possibly limited control of select networking components (e.g., host firewalls).
- Private cloud the cloud infrastructure is operated solely for an organization. It may be managed by the organization or a third party and may exist on-premises or off-premises.
- Public cloud the cloud infrastructure is made available to the general public or a large industry group and is owned by an organization selling cloud services.
- Hybrid cloud the cloud infrastructure is a composition of two or more clouds (private, community, or public) that remain unique entities but are bound together by standardized or proprietary technology that enables data and application portability (e.g., cloud bursting for load-balancing between clouds).
- a cloud computing environment is service oriented with a focus on statelessness, low coupling, modularity, and semantic interoperability.
- An infrastructure comprising a network of interconnected nodes.
- cloud computing environment 802 comprises one or more cloud computing nodes 820 with which local computing devices used by cloud consumers, such as, for example, personal digital assistant (PDA) or cellular telephone 804 , desktop computer 086 , laptop computer 808 , and/or automobile computer system 810 may communicate.
- Nodes 820 may communicate with one another. They may be grouped (not shown) physically or virtually, in one or more networks, such as Private, Community, Public, or Hybrid clouds as described hereinabove, or a combination thereof. This allows cloud computing environment 802 to offer infrastructure, platforms and/or software as services for which a cloud consumer does not need to maintain resources on a local computing device.
- computing devices 804 - 810 shown in FIG. 1 are intended to be illustrative only and that computing nodes 820 and cloud computing environment 802 can communicate with any type of computerized device over any type of network and/or network addressable connection (e.g., using a web browser).
- FIG. 9 a set of functional abstraction layers provided by cloud computing environment 802 ( FIG. 1 ) is shown. It should be understood in advance that the components, layers, and functions shown in FIG. 9 are intended to be illustrative only and embodiments of the invention are not limited thereto. As depicted, the following layers and corresponding functions are provided:
- Hardware and software layer 902 includes hardware and software components.
- hardware components include: mainframes 910 ; RISC (Reduced Instruction Set Computer) architecture based servers 912 ; servers 914 ; blade servers 916 ; storage devices 918 ; and networks and networking components 920 .
- software components include network application server software 922 and database software 924 .
- Virtualization layer 904 provides an abstraction layer from which the following examples of virtual entities may be provided: virtual servers 930 ; virtual storage 932 ; virtual networks 934 , including virtual private networks; virtual applications and operating systems 936 ; and virtual clients 938 .
- management layer 906 may provide the functions described below.
- Resource provisioning 940 provides dynamic procurement of computing resources and other resources that are utilized to perform tasks within the cloud computing environment.
- Metering and Pricing 942 provide cost tracking as resources are utilized within the cloud computing environment, and billing or invoicing for consumption of these resources. In one example, these resources may comprise application software licenses.
- Security provides identity verification for cloud consumers and tasks, as well as protection for data and other resources.
- User portal 944 provides access to the cloud computing environment for consumers and system administrators.
- Service level management 946 provides cloud computing resource allocation and management such that required service levels are met.
- Service Level Agreement (SLA) planning and fulfillment 948 provide pre-arrangement for, and procurement of, cloud computing resources for which a future requirement is anticipated in accordance with an SLA.
- SLA Service Level Agreement
- Workloads layer 908 provides examples of functionality for which the cloud computing environment may be utilized. Examples of workloads and functions which may be provided from this layer include: mapping and navigation 950 ; software development and lifecycle management 952 ; virtual classroom education delivery 954 ; data analytics processing 956 ; transaction processing 958 ; and ghost app server 960 .
- FIG. 10 this figure is a block diagram illustrating an information processing system that can be utilized in various examples of the present disclosure.
- the information processing system 1002 is based upon a suitably configured processing system configured to implement one or more embodiments of the present disclosure. Any suitably configured processing system can be used as the information processing system 1002 in embodiments of the present disclosure.
- the information processing system 1002 is a special purpose information processing system configured to perform one or more embodiments discussed above.
- the components of the information processing system 1002 can include, but are not limited to, one or more processors or processing units 1004 , a system memory 1006 , and a bus 1008 that couples various system components including the system memory 1006 to the processor 1004 .
- the bus 1008 represents one or more of any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of a variety of bus architectures.
- bus architectures include Industry Standard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnects (PCI) bus.
- the system memory 1006 can also include computer system readable media in the form of volatile memory, such as random access memory (RAM) 1010 and/or cache memory 1012 .
- the information processing system 1002 can further include other removable/non-removable, volatile/non-volatile computer system storage media.
- a storage system 1014 can be provided for reading from and writing to a non-removable or removable, non-volatile media such as one or more solid state disks and/or magnetic media (typically called a “hard drive”).
- a magnetic disk drive for reading from and writing to a removable, non-volatile magnetic disk e.g., a “floppy disk”
- an optical disk drive for reading from or writing to a removable, non-volatile optical disk such as a CD-ROM, DVD-ROM or other optical media
- each can be connected to the bus 1008 by one or more data media interfaces.
- the memory 1006 can include at least one program product having a set of program modules that are configured to carry out the functions of various examples described above.
- Program/utility 1016 having a set of program modules 1018 , may be stored in memory 1006 by way of example, and not limitation, as well as an operating system, one or more application programs, other program modules, and program data. Each of the operating system, one or more application programs, other program modules, and program data or some combination thereof, may include an implementation of a networking environment.
- Program modules 1018 generally carry out the functions and/or methodologies of the above described processes and systems.
- the information processing system 1002 can also communicate with one or more external devices 1020 such as a keyboard, a pointing device, a display 1022 , and the like.
- the information processing system 1002 is further able to communicate with one or more devices that enable a user to interact with the information processing system 1002 ; and/or any devices (e.g., network card, modem, etc.) that enable computer system/server 1002 to communicate with one or more other computing devices.
- Such communication can occur via I/O interfaces 1024 .
- the information processing system 1002 can communicate with one or more networks such as a local area network (LAN), a general wide area network (WAN), and/or a public network (e.g., the Internet) via network adapter 1026 .
- LAN local area network
- WAN wide area network
- public network e.g., the Internet
- the network adapter 1026 communicates with the other components of information processing system 1002 via the bus 1008 .
- Other hardware and/or software components can also be used in conjunction with the information processing system 1002 . Examples include, but are not limited to: microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data archival storage systems.
- aspects of the present invention may be a system, a method, and/or a computer program product.
- the computer program product may include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of the present invention.
- the computer readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device.
- the computer readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing.
- a non-exhaustive list of more specific examples of the computer readable storage medium includes the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon, and any suitable combination of the foregoing.
- RAM random access memory
- ROM read-only memory
- EPROM or Flash memory erasable programmable read-only memory
- SRAM static random access memory
- CD-ROM compact disc read-only memory
- DVD digital versatile disk
- memory stick a floppy disk
- a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon
- a computer readable storage medium is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through a fiber-optic cable), or electrical signals transmitted through a wire.
- Computer readable program instructions described herein can be downloaded to respective computing/processing devices from a computer readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and/or a wireless network.
- the network may comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers, and/or edge servers.
- a network adapter card or network interface in each computing/processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing/processing device.
- Computer readable program instructions for carrying out operations of the present invention may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C++ or the like, and conventional procedural programming languages, such as the “C” programming language or similar programming languages.
- the computer readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server.
- the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
- electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGA), or programmable logic arrays (PLA) may execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present invention.
- These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
- These computer readable program instructions may also be stored in a computer readable storage medium that can direct a computer, a programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer readable storage medium having instructions stored therein comprises an article of manufacture including instructions which implement aspects of the function/act specified in the flowchart and/or block diagram block or blocks.
- the computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process, such that the instructions which execute on the computer, other programmable apparatus, or other device implement the functions/acts specified in the flowchart and/or block diagram block or blocks.
- each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s).
- the functions noted in the block may occur out of the order noted in the figures.
- two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Economics (AREA)
- Marketing (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Human Computer Interaction (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Human Resources & Organizations (AREA)
- Primary Health Care (AREA)
- Tourism & Hospitality (AREA)
- Finance (AREA)
- Development Economics (AREA)
- Accounting & Taxation (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
Description
- The present disclosure generally relates to the field of management of applications on a device, and more particularly to remotely managing the lifecycle of applications based on context information relating to a user of the device.
- User computing equipment, such as cellular phones, personal electronic device, and the like, are increasingly able to host applications to provide useful services or information to a user. The usefulness of having dedicated applications, or “apps,” on a user device has led to an increase in the number of apps that are of interest to a user.
- A method on a server includes determining a first context for a user's device, where the first context being a context of the user's device at a timepoint. The method further includes determining, based on the first context and a respective set of context related conditions associated with each server based app within at least one server based app, a first set of server based apps associated with the first context. The method also includes sending, in association with the indication of the first context, a respective indicator of a respective user interface element for each server based app within the first set of server based apps. The method further includes receiving, at a server from the user's device based on sending the respective indicator, user interface inputs associated with a selected user interface for a selected app within the first set of server based apps. The method additionally includes processing, based on receiving the user interface inputs, the user interface inputs to produce results based on the user interface inputs. The method further includes sending, based on the producing, the results.
- In one example, a method on a user device includes determining a present user device context and receiving, from a remote processor, a respective indicator of a respective user interface element associated with each respective server based app within a first set of server based apps. Each respective indicator indicating a user interface element to display for selection of its associated server based app. The method further includes receiving, in association with the first set of server based apps, an indication of a device context and determining that the present user device context matches the indication of a device context. The method further includes displaying, based on receiving the respective indicator and based on determining that the present user device context matches the indication of a device context, the respective user interface element associated with each server based app within the first set of server based apps. In an example, the respective user interface elements are displayed on a display along with other user interface elements. The method also includes receiving, based on displaying the respective user interface element, a selection of a selected user interface element that is associated with a selected server based app. In an example, this selection is able to be made by a single interaction with the selected user interface element. The selected server based app executing on the remote processor and interacting with a user interface components of the user device. The method also includes presenting on a display of the user device, based on the selection, a user interface for the selected server based app. The method further includes exchanging with the remote processor, in conjunction with the user interface, information between the selected server based app executing on the remote processor and user interface components of the user device.
- The accompanying figures where like reference numerals refer to identical or functionally similar elements throughout the separate views, and which together with the detailed description below are incorporated in and form part of the specification, serve to further illustrate various examples and to explain various principles and advantages all in accordance with the present disclosure, in which:
-
FIG. 1 illustrates a geographic environment, in accordance with one example; -
FIG. 2 illustrates two example shopping center area user device displays, according to an example; -
FIG. 3 illustrates example city center shopping area user device displays, according to an example; -
FIG. 4 illustrates cloud based app management and deployment environment, according to an example; -
FIG. 5 illustrates a present device context app management platform process, according to an example; -
FIG. 6 illustrates a multiple device contexts app display definition process, according to an example; -
FIG. 7 illustrates a user device process, according to an example; -
FIG. 8 depicts a cloud computing environment according to an embodiment of the present invention; -
FIG. 9 depicts abstraction model layers according to an embodiment of the present invention; and -
FIG. 10 is a block diagram illustrating one example of an information processing system according to one example. - The below described system and method operate to provide an improved user's experience when using a mobile device to access information or perform other communications associated with businesses or other entities that are relevant to the user's context. In an example, a context of a user's device, and therefore a context associated with a user of that device, is determined Based on this determined context, processes on a remote server, such as within a cloud based computing infrastructure, performs lifecycle management of various special purpose processing applications, referred to herein as “apps,” on that user's device. In an example, such lifecycle management is able to include installation, management, operational support, and de-installation of one or more capabilities on the user device. These capabilities in one example are server based apps that allow a user to perform processing, access data, perform other tasks, or combinations of these, via the user interface of the user device. In an example, a server based app is enabled on the user device by providing a user interface on the device that communicates with, and exchanges data with, a remote computing device such as a server or other cloud based infrastructure. The cloud based infrastructure in an example is able to perform processing, data storage, other operational support, or combinations of these, based on the user interface provided on the user's device.
-
FIG. 1 illustrates ageographic environment 100, according to an example. Thegeographic environment 100 in this example includes two commercial areas, ashopping center 102, and adowntown city center 104 that includes a number of retail and other consumer oriented businesses. A relatively small number of stores, retail and other consumer oriented businesses are shown in thisgeographic environment 100 in order to more concisely describe relevant aspects of the operation of the described systems and methods. As is generally understood, such shopping centers and city centers are able to have a large number and a large variety of businesses and other venues that are able to be spread over a generally large geographic area in a variety of configurations over that area. - In the illustrated
geographic environment 100, theshopping center 102 includes astore A 102, astore B 122, and astore C 124. In this depiction, these three stores are shown in a line from left to right in the drawing, withstore B 122 betweenstore A 120 andstore C 124, which are respectively at the ends of this line. Afirst user 110 and asecond user 112 are shown in different areas of theshopping center 102. In the particular configuration of this illustration, thefirst user 110 is shown nearstore A 120, and thesecond user 112 is shown nearstore C 124. - The
city center 104 includesmovie 130, ashop N 132, adepartment store 134 and arestaurant 136. In this depiction, themovie 130,shop N 132 anddepartment store 134 shown in a rough line from left to right in the drawing, withshop N 132 between themovie 130 and thedepartment store 134, which are respectively at the ends of this line. Therestaurant 136 is shown to be opposite themovie 130. Athird user 114 and a forthuser 116 are also shown in different areas of thecity center 104. In particular, thethird user 114 is shown to be close to therestaurant 136 and between themovie 130 andrestaurant 136. Thefourth user 116 is shown near thedepartment store 134. An arrow near thethird user 114 indicates that the user is in motion and moving towards themovie 130 andshop N 132, and therefore away from therestaurant 136. An arrow near thefourth user 116 shows that thefourth user 116 is moving in a direction generally towards the opposite end of the illustratedcity center 104, and therefore generally towards therestaurant 136 andmovie 130. - The users in the
geographic environment 100 each have a respective user device that wirelessly communicates with a wireless communications infrastructure. In the illustratedgeographic environment 100, the user's devices are able to wirelessly communicate with either a firstwireless communications station 140 and/or a secondwireless communications station 142. In general, the user's devices are able to communicate, either wirelessly or via a wired connection, through any suitable communications interface. In various examples, user devices used by any of thefirst user 110, thesecond user 112, thethird user 114, thefourth user 116, or any combinations of these, are able to communicate via cellular data services, short range wireless links such as Wi-Fi®, Bluetooth®, any suitable technique, or combinations of these. In the illustrated example, the user devices communicate with aserver 144 through one or both of the firstwireless communications station 140 or the secondwireless communications station 142. In various examples theserver 144 is able to consist of a server, any suitable cloud computing infrastructure, or combinations of these. - The
server 144 in an example is a cloud computing platform that includes functions to perform lifecycle management of apps on the user devices used by each of the four users depicted in thegeographic environment 100. These apps in an example are able to include apps that allow the user to receive information relevant to the stores, retail businesses, or other consumer based businesses that likely to be of interest to the particular user of the respective user's devices. In an example, theserver 144 operates to install, manage operations of, support operations of, uninstall, perform other lifecycle maintenance for, or combinations of these, the apps on user devices associated with each of the depicted users. -
FIG. 2 illustrates two example shopping center area user device displays 200, according to an example. The two example shopping center area user device displays 200 depict afirst display 202 and asecond display 204. Thefirst display 202 shows example icons displayed on a display of the device of thefirst user 110 when that user is in the location in theshopping center 102 shown inFIG. 1 . Thesecond display 204 shows example icons displayed on a display of the device of thesecond user 112 that user is in the location in theshopping center 102 shown inFIG. 1 . Thefirst display 202 and thesecond display 204 each depict a display of app icons for apps where some of those icons have been selected to be displayed on the respective devices based on a context determined for that device, which is assumed to be a context associated with the user of that device. - The depicted icons are examples of user interface elements associated with apps that are able to be used in conjunction with the user device. The icons illustrated in the two example shopping center area user device displays 200 include two types of icons, virtual icons and local icons. Virtual icons in one example include user interface elements that are associated with and that therefore represent sever based apps. A user is able to use a server based app in one example by selecting the virtual icon associated with the selected app. The selection of an icon is able to be made by any suitable technique, such as by touching a touch sensitive screen in the vicinity of the display of the icon. Examples of server based apps include cloud based apps that operate by at least partially performing some functions on a remote processor, and those functions are able to interact with user interfaces that are presented on the user's device.
- Virtual icons in one example are able to be managed by a virtual icon manager that operates on a remote server. In an example, the virtual icon manager is implemented by processing performed within a cloud computing infrastructure. The virtual icon manager in some examples is able to add icons to the display of a user's device, determine positions at which to place each icon on the display of the user's device, control operation of server based apps and the interaction with user interfaces operating on the user's device, remove virtual icons from the display of the user's device, or combinations of these. In some examples, the virtual icon manager is able to manage the lifecycle of server based apps on the user's device, where those server based apps are represented by virtual icons provided by to the user's device by the virtual icon manager.
- In addition to the virtual icons, the two example shopping center area user device displays 200 depict user device displays that include local app icons. Local app icons in an example are icons associated with apps that are installed on the user's device and which primarily execute on the user's device. In some examples, local icon apps are associated with apps that include apps installed under the control of the user of the device.
- The
first display 202 includes two virtual icons that were selected based on the context of the device used by thefirst user 110. As described above, thefirst user 110 is in the vicinity ofStore A 120, and also nearStore B 122. As shown inFIG. 1 ,Store C 124 is further from thefirst user 110 at that time. Because thefirst user 110 is closest to Store A 120 andStore B 122 and is further fromstore C 124, thefirst display 202 has afirst icon 230 that is associated with a server based app forStore A 120 and asecond icon 232 that is associated with a server based app forstore B 122. In addition to using the device's context to select which icons to display on the first display, the locations on the user's device display of these icons is also determined based on the context of the user's device. For example, thefirst icon 230 representing a server based app forStore A 120 is placed above on thesecond icon 232 representing a server based app forstore B 122 because the user is located closer to Store A 120 thanStore B 122. In the illustrated example, the two virtual app icons are placed above a firstlocal app icon 234, although any other placement and arrangement is able to be determined by the remote server. - The
second display 204 also includes two virtual icons that were selected based on the context of the device used by thesecond user 112. As described above, thesecond user 112 is in the vicinity ofStore C 124, and also nearStore B 122. As shown inFIG. 1 ,Store A 120 is further from thesecond user 112 at that time. Because thesecond user 112 is closest toStore C 124 andStore B 122 and is further fromStore A 120, thesecond display 204 has athird icon 220 that is associated with a server based app forStore C 124 and afourth icon 222 that is associated with a server based app forstore B 122. In addition to using the device's context to select which icons to display on the first display, the locations on the user's device display of these icons is also determined based on the context of the user's device. For example, thethird icon 220 representing a server based app forStore C 124 is placed above on thefourth icon 222 representing a server based app forstore B 122 because the user is located closer toStore C 124 thanStore B 122. In the illustrated example, the two virtual app icons are placed above a secondlocal app icon 224, although any other placement and arrangement is able to be determined by the remote server. -
FIG. 3 illustrates example city center shopping area user device displays 300, according to an example. The example city center shopping area user device displays 300 depicts athird display 302 and afourth display 304. Thethird display 302 shows example icons displayed on a display of the device of thethird user 114 when that user is in the location in thecity center 104 shown inFIG. 1 . Thefourth display 304 shows example icons displayed on a display of the device of thefourth user 116 when that user is in the location of the shopping area in thecity center 104 shown inFIG. 1 . As is similarly displayed for the two example shopping center area user device displays 200, thethird display 302 and thefourth display 304 each depict a display of app icons for apps where some of those icons have been selected to be displayed on the respective devices based on a context determined for that device, which is assumed to be a context associated with the user of that device. - The icons displayed in the example city center shopping area user device displays 300 are similar to those discussed above with regards to the example city center shopping area user device displays 300. For example the city center shopping area user device displays 300 include virtual icons, which represent server based apps, and local icons that represent apps locally installed on the device. As is discussed above, the virtual icons in some examples are able to be managed by the above described virtual icon manager.
- The
third display 302 includes three virtual icons that were selected based on the context of the device used by thethird user 114. As described above, thethird user 114 is close to therestaurant 136 and between themovie 130, and therestaurant 136. In this illustrated example, thethird user 114 is shown by an arrow to be moving away from therestaurant 136 and towardsShop N 132. The illustratedthird display 302 includes virtual icons that are selected based not only on the location of thethird user 114, but also based on the movement of thethird user 114. Because thethird user 114 is moving towardsShop N 132, the third display presents a third display firstvirtual icon 320 at the top of the presented icons as was selected to be an icon associated with a virtual app forShop N 132. The virtual icon selected to be displayed and positioned below the top icon is a third display secondvirtual icon 322 that is associated with an app for themovie 130. - Although the
third user 114 is closer to therestaurant 136 than theStore N 132, ormovie 130, thethird user 114 as shown inFIG. 1 is moving away from therestaurant 136 and towards those other two locations. Because thethird user 114 is close to therestaurant 136, a third display thirdvirtual icon 324 is displayed in this example at the bottom of thethird display 302 where the third display thirdvirtual icon 324 is associated with a server based app associated with therestaurant 136. The virtual icon for therestaurant 136 is shown at the bottom of the virtual icons because it is determined in this example to be of less interest to thethird user 114 given the third user's movement away from that location. In further examples, a virtual icon associated with the restaurant may be placed more prominently on a display based on other factors, such as the display being presented near a customary meal time for the third user, based on a preference of the third user for theparticular restaurant 136 or a chain of restaurants to whichrestaurant 136 may belong, based on other factors, or combinations of these. - The
fourth display 304 includes two virtual icons that were selected based on the context of the device used by thefourth user 116. As described above, thefourth user 116 is in the vicinity of thedepartment store 134, but moving towards the opposite end of thecity center 104 and thus more towards themovie 130 andrestaurant 136. In addition to the context of the user device based on the device's location, additional information is used in this example to determine the set of virtual icons and their display locations on thefourth display 304. In this example, information gathered from the personal calendar for thefourth user 116, which is available to one or both of the user device used by thefourth user 116 and the cloud based virtual icon manager, indicates that thefourth user 116 is scheduled to meet a friend in a few minutes. Because thefourth user 116 is scheduled meet a friend, the cloud based virtual icon manager in an example selects virtual icons for server based apps that are appropriate for meeting friends, such as arestaurant 136 ormovie 130. Locations less likely to be of interest when meeting friends, such asShop N 132 orDepartment Store 134 are given less priority in selecting virtual icons to present to the user. - The
fourth display 304 has a fourth display firstvirtual icon 330 that is an icon associated with an app for therestaurant 136. Below that is a fourth display secondvirtual icon 332 that is an icon associated with a server based app for themovie 130. Below these two virtual icons on thefourth display 304 is a fourth display thirdvirtual icon 334, which in this example is for a server based app associated withstore N 132, and a fourth display fourthvirtual icon 336, which in this example is for a server based app associated with thedepartment store 134. In this example, the icon for a server based app associated withShop N 132 is selected to be shown above the icon for thedepartment store 134 based on the movement of thefourth user 116 towards theShop N 132, even though thefourth user 116 is closer to thedepartment store 134. Thefourth display 304 further includes a local app icon, a fourth display firstlocal icon 338 and a fourth display secondlocal icon 338. As discussed above, the local app icons are associated with apps installed on the user's device. In further examples, the any arrangement of virtual icons and local icons is able to be specified, including intermingling local icons with virtual icons on the display. -
FIG. 4 illustrates a cloud based app management anddeployment environment 400, according to an environment. The illustrated cloud based app management anddeployment environment 400 depicts three fundamental components, asponsor component 402, acloud infrastructure component 406, anduser devices 404. As described below, these components interact with each other to deliver and maintain a relevant set of virtual icons on a user's device to allow the user to use server based apps that are relevant to the context of the user. - The
sponsor component 402 includes a number of app sponsors, such asapp sponsor 1 430,app sponsor 2 432, andapp sponsor N 434. These app sponsors in some examples include operators of retail and other businesses, such as are discussed above inFIG. 1 . For example, the operators of the stores in theshopping center 102 and the shops, stores, movies and restaurants in thecity center 104 are each able to individually control one or more apps associated with a business that a user is able to use to receive information from, or otherwise interact with, that particular business. - Each app sponsor has a corresponding sponsor interface, such as the
sponsor 1interface 440,sponsor 2interface 442, and sponsorN interface 444. These interfaces in one example include a cloud computing platform interface, such as an Internet Web browser or other computer communications program. In an example, one or more centrally located terminals or other user interface devices are able to be located in the vicinity of several sponsors, such as in an office of theshopping center 102 or a management office for thecity center 104. These interfaces in an example allow a user, such as a person working for the particular app sponsor, to provide information to, and otherwise control or interact with, the cloud based computing platform that operates to provide certain cloud based apps deployed to theuser devices 404. In an example, the app sponsors are able to dynamically register or unregister one or more server based apps to enable or disable to server based app to be available for deployment to devices in theuser devices 404, otherwise configure, or control the server based app to present desired information, perform desired processing, or otherwise configure the server based app, or otherwise control the server based app's operation and deployment to user devices. - The
user devices 404 include multiple user devices, such as the illustrateduser devices 404. Theuser devices 404 are representative of any suitable user device, such as a smart phone, personal digital assistant (PDA), other devices used by individuals, or any other suitable device. Theuser devices 404 include adisplay 410 on which data, images, text, other visual information, or combinations of these, are presented. The illustrateddisplay 410 includes a User Interface (UI)element 1 412,UI element 2 414, and aUI element N 416. In an example, these UI elements are icons presented on thedisplay 410 of a user device in theuser devices 404. Each of these UI elements, such as each icon, is associated with a particular app that is available for use by the user of a user device within theuser devices 404. In an example, thedisplay 410 is a touch sensitive display that allows a user to provide input by touching particular areas of thedisplay 410. In an example with a touch sensitive display, a user is able to initiate operation of an app by touching, or otherwise selecting, a particular UI element on a touch sensitive display and an app associated with that UI element will start and provide a corresponding user interface to the user to use that selected app. In various examples, the UI elements are able to be associated with local apps, which have at least one component installed on theuser devices 404, or server based apps that include processing operating on a cloud based server and that interact with user interface elements provided on theuser devices 404. - The
user devices 404 of one example includes aprocessor 420 and memory 421. Theprocessor 420 executes programs defined by applications stored in the memory 421. In an example, the memory 421 is able to store data defining programs or apps such as a server based appuser interface manager 422, adevice context manager 424, and one or morelocal apps 428. The server based appuser interface manager 422 is an executable program in some examples that controls the display of virtual icons associated with server based apps on thedisplay 410. Thedevice context manager 424 in one example monitors indications of the user device context and reports relevant information regarding the present user device context to thecloud infrastructure component 406. Additionally, the memory 421 is able to store one or morelocal apps 428 that are apps executed by theprocessor 420 of the user device. - The memory 421 further includes a user interface indicators, locations and associated
context storage 426. The user interface indicators, locations and associatedcontext storage 426 in one example, stores a number of user interface indicators, such as icons, for virtual apps that correspond to server based apps. In addition to user interface indicators for one or more server based apps, the user interface indicators, locations and associatedcontext storage 426 in some examples stores locations at which those user interface indicators, such as icons, are to be displayed on thedisplay 410. Additionally, the user interface indicators, locations and associatedcontext storage 426 is able to store specifications of the user devices contexts in which certain server based apps are to be displayed on thedisplay 410. For example, a particular server based app is able to specify that its icon is to be displayed when the user device is within a specified geographic location. - The
cloud infrastructure component 406 includes anapp management platform 470 and anexecution platform 450. Theapp management platform 470 and theexecution platform 450 in an example are provided on a cloud based infrastructure that allows the virtual access of all of their functions via a suitable communications network. Although theapp management platform 470 and theexecution platform 450 are each shown as one element that are in communications with one another, the actual realization of these function is sable to have any structure in a cloud computing infrastructure. - The
app management platform 470 includes an appsponsor registration manager 472. The appsponsor registration manager 472 interacts with app sponsors within theapp sponsor component 402, such as via the sponsor interfaces described above, to configure the server based apps for deployment to and use on theuser devices 404. In an example, the appsponsor registration manager 472 allows a sponsor of a server based app, such as a store owner or other promoter of a business, to register or unregister one or more of that sponsor's server based app in order to enable or disable one or more of that sponsor's server based app to be available to client devices. In an example, the appsponsor registration manager 472 allows app sponsors to setup installers and uninstallers to install or uninstall the sponsor's server based apps onto user devices. The appsponsor registration manager 472 in some examples further allows an app sponsor to upload, configure, otherwise manipulate, or combinations of these, the server based apps that are provided through, and that execute on, the cloud based infrastructure for use by users, such as via a user interface provided on theuser devices 404. In some examples, the appsponsor registration manager 472 allows the app sponsor to specify device context related conditions that control when a User Interface element, such as an icon, associated with a particular server based app is to be loaded onto or removed from a particular user device within theuser devices 404. - The
app management platform 470 further includes a user device virtual applifecycle control manager 474. The user device virtual applifecycle control manager 474 controls the user interface elements provided to, removed from, otherwise altered or manipulated, or combinations of these, from theuser devices 404. In an example, the applifecycle control manager 474 invokes install and uninstall scripts to install or remove user interface elements, such as icons, onto the user device for selected server based apps. In some examples, the applifecycle control manager 474 also loads or removes appropriate parameters for each installed or uninstalled user interface element, such as parameters for installing a representation of the server based app, transferring an icon image and information used to identify the server based app as part of the installation process of the virtual app onto the user device. - In some examples, the app
lifecycle control manager 474 further monitors context related information for each user device, and determines which user devices satisfy context related conditions specified for installation of, removal of, modification of, other modifications of, or combinations of these, one or more server based apps. As discussed above, an app sponsor is able to specify context related conditions cause a virtual app to be installed on to a user device when the context of that user device satisfies those specified conditions. In one example, the applifecycle control manager 474 receives various data from the appsponsor registration manager 472 to define server based apps to deploy to various user devices, to define the associated contexts in which to deploy certain server based apps, to specify other operational information, or combinations of these. Theapp management platform 470 in one example receives app related information and data such as the above described information and data provided by the app sponsors from the appsponsor registration manager 472. - In addition to, or in place of, conditions specified by an app sponsor, other device context related conditions are able to be specified by any suitable source. For example, context related conditions are able to be based on fixed geographical locations. In an example, the app
lifecycle control manager 474 is able to be configured with one or more geographic locations associated with each server based app where the geographic locations correspond to a geographic vicinity near each store or other facility that is associated with the server based app. In such an example, each user device reports its present location to the applifecycle control manager 474. The applifecycle control manager 474 then compares the present location of each user device with the location related context conditions specified for each server based app. When the present location of a user device satisfies the location based context for a server based app, and also satisfies any other context based conditions for that server based app, the applifecycle control manager 474 then operates to cause a user interface element to be installed onto the user device for the server based app whose context related conditions have been satisfied. - The
execution platform 450 in one example includes the cloud based components that manage and support the operation and deployment of server based apps, also referred to as virtual apps, in conjunction withuser devices 404. Theexecution platform 450 includes avirtual app storage 462 that stores executable software executed within the cloud based infrastructure to perform the functions provided by server based apps. The execution platform further includes avirtual app installer 460 that manages the installation of virtual apps onto user devices. In an example, installation of a particular virtual app onto a user device includes sending a definition of an icon associated with the particular server based virtual app to the user device, along with information identifying the server based app that allows the user device to exchange information with and otherwise inter-operate with the server based app executing on the cloud based infrastructure. Theexecution platform 450 further includes avirtual app uninstaller 466 that manages de-installation of virtual apps from user devices. In an example, thevirtual app uninstaller 466 communicates with the user device to cause icons for apps to be removed when the context specifications for those apps are no longer satisfied by the context of the user device. - The
execution platform 450 includes a server basedapp execution component 452. The server basedapp execution component 452 implements the processing to perform the functions of the server based apps supported by thecloud infrastructure component 406. The server basedapp election component 452 in an example operates with an interface touser devices 454 to exchange user interface data with the user interfaces provided on theuser devices 404 with which each server based app executing via the server basedapp execution component 452. -
FIG. 5 illustrates a present device context appmanagement platform process 500, according to an example. The present device context appmanagement platform process 500 illustrates an example process flow performed by acloud infrastructure component 406 as discussed above. The illustrated present device context appmanagement platform process 500 receives information from a user device that conveys the present context of the user's device. Based on that present context, the present device context appmanagement platform process 500 determines selected virtual apps to be presented to the user of the user device, conveys icons for those selected virtual apps to the user device, and supports operation of those selected virtual apps by performing the processing associated with each of the selected virtual apps the user of the user device is using. In an example, the present context includes not only a location of the user's device, but other information such as ambient temperature, speed and direction of movement, other information, or combinations of these. In an example, the present device context appmanagement platform process 500 is performed on a cloud based infrastructure and interacts with user interface elements provided on the user device. In general, many instances of the illustrated present device context appmanagement platform process 500 are able too operate to support many user devices or multiple virtual apps operating contemporaneously on a particular user device. - The present device context app
management platform process 500 begins by receiving, at 502, context related information for each server based app. In an example, this context related information is received from the sponsor of each server based app. In general, each server based app is able to have an associated specification of context related conditions that control when the server based app is presented to a user of a user's device. - The present device context app
management platform process 500 continues by determining, at 504, a present context of the user's device. This present context in one example is determined based upon context related information that is determined and reported by a user device. The context related information in other examples are able to be determined, reported, or both, by any suitable technique either operating on the user device or by monitoring that is separate from the user device. In an example, the present context is a context at a first timepoint that is sufficiently close to the present time such that the reported context is relevant to the user of the user device. The present context in an example is determined by assembling the received context related information into a form to facilitate comparison to specified context related conditions for each app. In an example, determining the user device context is able to be based on any context status associated with the user device, such as the user device location, user device movement, user device communications status, user device communications history, social media contacts for a user of the user device, social media activities of a user of the user device, physiological information of a user associated with the user device, calendar entries for a user of the user device, preferences of a user of the user device, or information within a profile of a user of the user device, or combinations of these. - The present device context app
management platform process 500 determines, at 506, a set of server based apps that are associated with the determined present context for the user device. This determination in an example is based upon a comparison of the received context related information for each server based app and the determined present context of a user device. - A determination is then made, at 508, if any server based apps are determined to be associated with the determined present context of the user device. In an example, server based apps are associated with the determined present context of the user device when the received context related information matches the context related conditions specified for the server based app.
- If it is determined that there are no server based apps associated with the present device context, the set of server based apps is set to a default set of server based apps, at 510. In an example, the default set of server based apps is defined to be no server based apps. In further examples, the default set of server based apps is defined to be a set of server based apps that are considered to be of general interest to users regardless of the context of the user device.
- After determining the set of server based apps as either server based apps associated with the present context or as a default set, the present device context app
management platform process 500 determines, at 512, a position in the display to be presented on the user device for each virtual icon associated with each server based app in the determined set of server based apps. The determined position is able to be specified as positions relative to other virtual icons, relative to other virtual icons and local app icons, as positions relative to local app icons, as absolute locations on the display, as any suitable location specification, or as any combination of these. - Icons and a specification of the determined location on the display for each icon for each server based app within the set of server based apps are sent to the device, at 514. These icons are then displayed by the user device. A user of the user device is able to select an icon by any suitable technique, and begin access to a server based app associated with the icon selected by the user. In various examples, once a user selects an icon for a particular server based app, a user interface for the selected server based app is presented on the user device. This user interface for the selected server based app is able to be provided alone with the icon associated with that server based app, or the present device context app
management platform process 500 is able to send such user interface definitions based on receiving an indication of a user input selecting the icon. - The present device context app
management platform process 500 receives, at 516, user inputs for a selected app in the set of apps. In some examples, these user inputs are able to include an input to select an icon for a particular server based app as well as other user inputs to the user interface associated with the selected server based app. Based on these received user inputs, the present device context appmanagement platform process 500 processes the user inputs to produce results. These results are able to include, for example, a different user interface to present to the user on the display of the user device, information to be presented to the user on the user interface device, any other type of result, or combinations of these. - The present device context app
management platform process 500 sends, at 520, these results to the user device. In general, these results are presented to the user on a visual, audio, or other output device and are able to allow further inputs to be received from the user. - A determination is then made, at 522, if the device context has changed. This determination is able to be based upon receiving context related information from the user device, receiving information from any other source, or combinations of these, as is discussed above with regards to determining the present context of the user device, at 504. In an example, determining if the device context has changed includes determining a second context of the user device at a second timepoint, where that second timepoint is subsequent to the first timepoint at which the user device context was determined, at 504.
- If the device context has not changed, the present device context app
management platform process 500 returns to receiving, at 516, user inputs as is described above. If the device context has changed, the present device context appmanagement platform process 500 returns to determining, at 506, server based apps that are associated with this new context and continues with the subsequent processing described above. -
FIG. 6 illustrates a multiple device contexts appdisplay definition process 600, according to an example. The multiple device contexts appdisplay definition process 600 is similar to the present device context appmanagement platform process 500 discussed above but determines multiple sets of server based apps, where each set of server based apps includes server based app icons and associated information for each of multiple device contexts. These multiple sets of server based apps are sent, along with a definition of each associated context, to the user device. This allows the user device to autonomously determine and present relevant virtual app icons based on the context of the user device as determined at the user device. - The multiple device contexts app
display definition process 600 begins by setting, at 602, a first context as a present context. As discussed above, each server based app is able to have an associated specification of context related conditions that controls when the server based app is presented to a user of a user's device. The multiple device contexts appdisplay definition process 600 determines or defines sets of context related conditions for a number of server based apps for a number of defined contexts. In one example, theses sets of context related conditions for a number of server based apps are created at a time prior to sending those sets of context related conditions user devices. In this manner, the user device is able to compare stored sets of context related conditions and if the context related conditions of one of those sets is satisfied by a present context of that user device, icons for server based apps associated with the matched set of context related conditions can be displayed by theuser devices 404 independent of interaction with thecloud infrastructure component 406. - The contexts defined by the multiple device contexts app
display definition process 600 are able to be selected based on any suitable criteria. For example, in the above described example depicted inFIG. 1 , a set of geographic locations within theshopping center 102 are able to be defined such that each context in the set of defined contexts corresponds to being near each store within theshopping center 102. In one example, setting this first context as a present context corresponds to determining a first context of a user device at a first timepoint. In this example, the first timepoint corresponds to a time in the future at which the user device will satisfy the conditions for this first context, and thus result in the display of associated icons, as is described below. - The multiple device contexts app
display definition process 600 determines, at 606, a set of server based apps that are associated with the present context for the user device. The multiple device contexts appdisplay definition process 600 determines, at 606, a position in the display to be presented on the user device for each virtual icon associated with each server based app in the determined set of server based apps. The determined position is able to be specified as positions relative to other virtual icons, relative to other virtual and local app icons, as positions relative to local app icons, as absolute locations on the display, as any suitable location specification, or as any combination of these. - Icons and a specification of the determined location on the display for each icon for each server based app within the set of server based apps are sent to the device, at 608. In general, these icons and associated data are stored on the user device and when the user device determines its context matches one of the determined contexts, the set of server based apps is then displayed to the user of the user device.
- A determination is made as to whether more contexts are to be processed, at 610. If more contexts are to be processed, a new context is determined and set as the present context, at 612. In an example, this iteration of determining a new context is an example of determining a second context at a second timepoint that is after the first timepoint. In this example, the second timepoint is the timepoint at which the context of the user device satisfies the context conditions for a subsequently determined set of server based apps. If it is determined that no more contexts are to be processed, user inputs associated with a server based app are received and processed, at 620.
- In an example, the multiple device contexts app
display definition process 600 receives, at 622, user inputs for a selected app in the set of apps. In some examples, these user inputs are able to include an input to select an icon for a particular server based app as well as other user inputs to the user interface associated with the selected server based app. Based on these received user inputs, the multiple device contexts appdisplay definition process 600 processes, at 624, the user inputs to produce results. These results are able to include, for example, a different user interface to present to the user on the display of the user device, information to be presented to the user on the user interface device, any other type of result, or combinations of these. - The multiple device contexts app
display definition process 600 sends, at 626, these results to the user device. If the device context has not changed, the multiple device contexts appdisplay definition process 600 returns to receiving, at 622, user inputs as is described above. It is noted that the user input reception and processing 620 in this example is performed independently of an indication of the context of the user device being provided to the server based app, or to thecloud infrastructure component 406 discussed above. -
FIG. 7 illustrates auser device process 700, according to an example. Theuser device process 700 is an example of a process performed by aprocessor 420 within a user device within the user'sdevices 404 as is described above. In an example, theuser device process 700 includes processing defined by the server based appuser interface manager 422. The user device performing theuser device process 700 in some examples is able to be a mobile device, such as a mobile phone, cellular phone, cellular smart phone, other mobile device, any other suitable device, or combinations of these. - The
user device process 700 beings by determining, at 702, a present context of the user device. The present context is able to include, for example, the present location of the user device, a speed and direction of movement of the user device, a state or history of voice communications (such as phone usage) of the user device, preferences or other information stored within a profile of a user of the user device, activities of a user associated with the user device as determined by, for example, social circles and activities, physiological parameters of the user, calendar, other context parameters, or combinations of these. - The
user device process 700 sends, at 704, in one example the determined present context to a server. In some examples, the server, such as within a cloud based infrastructure, is able to respond to the determined context of the user device and provide, modify, remove, or combinations of these, based on the present context of the user device as determined by the user device and reported to the cloud based infrastructure. - The
user device process 700 receives, at 706, icons for each app within a set of server based apps. In some example, these icons are examples of user interface elements that can be displayed to a user of the user device. In some examples, processing within a cloud based infrastructure determines which apps to include within the set of server based apps are selected based upon the present context of the user's device. The processing within the cloud based infrastructure then sends icons for each app within the set of server based apps to the user device. - The
user device process 700 in some examples receives, at 708, a location for display each icon within the received icons for each app within the set of server based apps. The location at which to display each icon is able to be determined by processing within a cloud based infrastructure in order to, for example, place more relevant icons at the top of the display of virtual icons. In some examples, the location at which to display each of these virtual icons is able to be specified relative to local icons for locally installed apps on the user's device so that virtual icons and local icons are able to be interleaved on the display presented to the user of the user device. - The
user device process 700 in some examples receives, at 710, an indication of a context associated with the set of server based apps for which associated icons were received. This indication of context allows processing within the user device to determine if the present context of the user device matches the context associated with the set of server based apps, and therefore the icons associated with the set of server based apps should be displayed on the display of the user device. - The received icons, display location, and context associated with the set of server based apps are stored, at 712. Storing these data allows subsequent processing by the user device to determine if the user device enters a context that satisfies contexts for a set of server based apps. Upon such as determination, the user device is then able to retrieve and display the icons associated with the set of server based apps whose context conditions are satisfied by the device's context, such as is described below. Storing these context indications allows reducing the amount of data transmitted between the user device and the cloud computing infrastructure.
- A determination is made in some examples as to whether the present device context matches a stored indication of a context associated with a set of server based apps, at 714. If such a match is not determined, the
user device process 700 determines, at 716, the present device context and returns to the determination, at 714. In some examples, the newly determined present device context is also sent to a server, as is described above. In some examples, a server receiving the new device context is able to send additional icons to the user device, at which point the user device will display those icons as described above. - In some examples, after determining the present device context, at 716, a determination is made, at 730, as to whether the present device context does not satisfy conditions for an icon that is displayed on the display of the user device. If the present device context does not satisfy conditions for an icon that is displayed on the display of the user device, that displayed icon whose conditions are no longer satisfied is removed, or uninstalled, at 732 from the presentation on the user display. If it is determined that the present device context does satisfy conditions for the icons displayed on the user device display, or after icons whose conditions are no longer satisfied are removed or uninstalled, the
user device process 700 returns to determining, at 714, if the present device context matches a stored indication of a context, and performs the above described subsequent processing. - If it is determined, at 714, that the present device context matches a stored indication of a context associated with a set of server based apps, the
user device process 700 displays, at 720, icons in specified location for each server based app in a set of server based apps associated with the present context. Once these icons are displayed, a user is able to select a server based app by selecting one of the displayed icons. In some examples, the display of icons for server based apps is able to be interleaved with icons for apps stored on the user device. The equipment used to display the icons in one example is able to be a display of a mobile device, such as a cellular telephone or smart phone. In some examples, the icons for the server based apps are displayed in a default pane of the display of the device. This default pane is able to also include icons for locally installed apps or other apps or functions able to be accessed or used by a user of the device displaying the icons. - A determination is made, at 722, if an icon is selected. In an example, a user is able to select an icon by pressing a touch sensitive display of the user device in the vicinity of a display of the icon of the desired server based app. Such an icon selection in one example is able to be made by a single interaction, such as a single click, single touch, or single tap of the icon displayed on the user's device. If it is determined that an icon is not selected, the
user device process 700 determines, at 714, if the present device context matches a stored indication of a context, and performs the above described subsequent processing. - If it is determined that an icon is selected, the
user device process 700 presents, at 724, a user interface for a server based app associated with the selected icon. In an example, the user interface for a selected server based app is able to be provided by the cloud based infrastructure, the user interface is able to be stored on the user device, or the user interface is able to be obtained through any suitable technique. - The
user device process 700 then exchanges, at 726, data with the selected server based app. In an example, the user interface provided by the user device accepts user inputs and forwards those inputs the selected server based app, such as an app operating on theexecution platform 450 discussed above. The server based app is then able to determine results, either based on or independent of the user inputs, and provide those results to the user device for display to the user, such as via a user interface provided for that server based app on the user device. Theuser device process 700 then returns to determining, at 714, if the present device context matches a stored indication of a context, and performs the above described subsequent processing. - It is understood in advance that although this disclosure includes a detailed description on cloud computing, implementation of the teachings recited herein are not limited to a cloud computing environment. Rather, embodiments of the present invention are capable of being implemented in conjunction with any other type of computing environment now known or later developed.
- Cloud computing is a model of service delivery for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g. networks, network bandwidth, servers, processing, memory, storage, applications, virtual machines, and services) that can be rapidly provisioned and released with minimal management effort or interaction with a provider of the service. This cloud model may include at least five characteristics, at least three service models, and at least four deployment models.
- Characteristics are as follows:
- On-demand self-service: a cloud consumer can unilaterally provision computing capabilities, such as server time and network storage, as needed automatically without requiring human interaction with the service's provider.
- Broad network access: capabilities are available over a network and accessed through standard mechanisms that promote use by heterogeneous thin or thick client platforms (e.g., mobile phones, laptops, and PDAs).
- Resource pooling: the provider's computing resources are pooled to serve multiple consumers using a multi-tenant model, with different physical and virtual resources dynamically assigned and reassigned according to demand There is a sense of location independence in that the consumer generally has no control or knowledge over the exact location of the provided resources but may be able to specify location at a higher level of abstraction (e.g., country, state, or datacenter).
- Rapid elasticity: capabilities can be rapidly and elastically provisioned, in some cases automatically, to quickly scale out and rapidly released to quickly scale in. To the consumer, the capabilities available for provisioning often appear to be unlimited and can be purchased in any quantity at any time.
- Measured service: cloud systems automatically control and optimize resource use by leveraging a metering capability at some level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, and active user accounts). Resource usage can be monitored, controlled, and reported providing transparency for both the provider and consumer of the utilized service.
- Service Models are as follows:
- Software as a Service (SaaS): the capability provided to the consumer is to use the provider's applications running on a cloud infrastructure. The applications are accessible from various client devices through a thin client interface such as a web browser (e.g., web-based e-mail). The consumer does not manage or control the underlying cloud infrastructure including network, servers, operating systems, storage, or even individual application capabilities, with the possible exception of limited user-specific application configuration settings.
- Platform as a Service (PaaS): the capability provided to the consumer is to deploy onto the cloud infrastructure consumer-created or acquired applications created using programming languages and tools supported by the provider. The consumer does not manage or control the underlying cloud infrastructure including networks, servers, operating systems, or storage, but has control over the deployed applications and possibly application hosting environment configurations.
- Infrastructure as a Service (IaaS): the capability provided to the consumer is to provision processing, storage, networks, and other fundamental computing resources where the consumer is able to deploy and run arbitrary software, which can include operating systems and applications. The consumer does not manage or control the underlying cloud infrastructure but has control over operating systems, storage, deployed applications, and possibly limited control of select networking components (e.g., host firewalls).
- Deployment Models are as follows:
- Private cloud: the cloud infrastructure is operated solely for an organization. It may be managed by the organization or a third party and may exist on-premises or off-premises.
- Community cloud: the cloud infrastructure is shared by several organizations and supports a specific community that has shared concerns (e.g., mission, security requirements, policy, and compliance considerations). It may be managed by the organizations or a third party and may exist on-premises or off-premises.
- Public cloud: the cloud infrastructure is made available to the general public or a large industry group and is owned by an organization selling cloud services.
- Hybrid cloud: the cloud infrastructure is a composition of two or more clouds (private, community, or public) that remain unique entities but are bound together by standardized or proprietary technology that enables data and application portability (e.g., cloud bursting for load-balancing between clouds).
- A cloud computing environment is service oriented with a focus on statelessness, low coupling, modularity, and semantic interoperability. At the heart of cloud computing is an infrastructure comprising a network of interconnected nodes.
- Referring now to
FIG. 8 , illustrativecloud computing environment 802 is depicted. As shown,cloud computing environment 802 comprises one or morecloud computing nodes 820 with which local computing devices used by cloud consumers, such as, for example, personal digital assistant (PDA) or cellular telephone 804, desktop computer 086,laptop computer 808, and/orautomobile computer system 810 may communicate.Nodes 820 may communicate with one another. They may be grouped (not shown) physically or virtually, in one or more networks, such as Private, Community, Public, or Hybrid clouds as described hereinabove, or a combination thereof. This allowscloud computing environment 802 to offer infrastructure, platforms and/or software as services for which a cloud consumer does not need to maintain resources on a local computing device. It is understood that the types of computing devices 804-810 shown inFIG. 1 are intended to be illustrative only and thatcomputing nodes 820 andcloud computing environment 802 can communicate with any type of computerized device over any type of network and/or network addressable connection (e.g., using a web browser). - Referring now to
FIG. 9 , a set of functional abstraction layers provided by cloud computing environment 802 (FIG. 1 ) is shown. It should be understood in advance that the components, layers, and functions shown inFIG. 9 are intended to be illustrative only and embodiments of the invention are not limited thereto. As depicted, the following layers and corresponding functions are provided: - Hardware and
software layer 902 includes hardware and software components. Examples of hardware components include:mainframes 910; RISC (Reduced Instruction Set Computer) architecture basedservers 912;servers 914;blade servers 916;storage devices 918; and networks andnetworking components 920. In some embodiments, software components include networkapplication server software 922 anddatabase software 924. -
Virtualization layer 904 provides an abstraction layer from which the following examples of virtual entities may be provided:virtual servers 930;virtual storage 932;virtual networks 934, including virtual private networks; virtual applications andoperating systems 936; andvirtual clients 938. - In one example,
management layer 906 may provide the functions described below.Resource provisioning 940 provides dynamic procurement of computing resources and other resources that are utilized to perform tasks within the cloud computing environment. Metering andPricing 942 provide cost tracking as resources are utilized within the cloud computing environment, and billing or invoicing for consumption of these resources. In one example, these resources may comprise application software licenses. Security provides identity verification for cloud consumers and tasks, as well as protection for data and other resources.User portal 944 provides access to the cloud computing environment for consumers and system administrators.Service level management 946 provides cloud computing resource allocation and management such that required service levels are met. Service Level Agreement (SLA) planning andfulfillment 948 provide pre-arrangement for, and procurement of, cloud computing resources for which a future requirement is anticipated in accordance with an SLA. -
Workloads layer 908 provides examples of functionality for which the cloud computing environment may be utilized. Examples of workloads and functions which may be provided from this layer include: mapping andnavigation 950; software development andlifecycle management 952; virtualclassroom education delivery 954; data analytics processing 956;transaction processing 958; andghost app server 960. - Referring now to
FIG. 10 , this figure is a block diagram illustrating an information processing system that can be utilized in various examples of the present disclosure. Theinformation processing system 1002 is based upon a suitably configured processing system configured to implement one or more embodiments of the present disclosure. Any suitably configured processing system can be used as theinformation processing system 1002 in embodiments of the present disclosure. In another embodiment, theinformation processing system 1002 is a special purpose information processing system configured to perform one or more embodiments discussed above. The components of theinformation processing system 1002 can include, but are not limited to, one or more processors orprocessing units 1004, asystem memory 1006, and abus 1008 that couples various system components including thesystem memory 1006 to theprocessor 1004. - The
bus 1008 represents one or more of any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of a variety of bus architectures. By way of example, and not limitation, such architectures include Industry Standard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnects (PCI) bus. - The
system memory 1006 can also include computer system readable media in the form of volatile memory, such as random access memory (RAM) 1010 and/orcache memory 1012. Theinformation processing system 1002 can further include other removable/non-removable, volatile/non-volatile computer system storage media. By way of example only, a storage system 1014 can be provided for reading from and writing to a non-removable or removable, non-volatile media such as one or more solid state disks and/or magnetic media (typically called a “hard drive”). A magnetic disk drive for reading from and writing to a removable, non-volatile magnetic disk (e.g., a “floppy disk”), and an optical disk drive for reading from or writing to a removable, non-volatile optical disk such as a CD-ROM, DVD-ROM or other optical media can be provided. In such instances, each can be connected to thebus 1008 by one or more data media interfaces. Thememory 1006 can include at least one program product having a set of program modules that are configured to carry out the functions of various examples described above. - Program/
utility 1016, having a set ofprogram modules 1018, may be stored inmemory 1006 by way of example, and not limitation, as well as an operating system, one or more application programs, other program modules, and program data. Each of the operating system, one or more application programs, other program modules, and program data or some combination thereof, may include an implementation of a networking environment.Program modules 1018 generally carry out the functions and/or methodologies of the above described processes and systems. - The
information processing system 1002 can also communicate with one or moreexternal devices 1020 such as a keyboard, a pointing device, adisplay 1022, and the like. Theinformation processing system 1002 is further able to communicate with one or more devices that enable a user to interact with theinformation processing system 1002; and/or any devices (e.g., network card, modem, etc.) that enable computer system/server 1002 to communicate with one or more other computing devices. Such communication can occur via I/O interfaces 1024. Still yet, theinformation processing system 1002 can communicate with one or more networks such as a local area network (LAN), a general wide area network (WAN), and/or a public network (e.g., the Internet) vianetwork adapter 1026. As depicted, thenetwork adapter 1026 communicates with the other components ofinformation processing system 1002 via thebus 1008. Other hardware and/or software components can also be used in conjunction with theinformation processing system 1002. Examples include, but are not limited to: microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data archival storage systems. - As will be appreciated by one skilled in the art, aspects of the present invention may be a system, a method, and/or a computer program product. The computer program product may include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of the present invention.
- The computer readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device. The computer readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of the computer readable storage medium includes the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon, and any suitable combination of the foregoing. A computer readable storage medium, as used herein, is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through a fiber-optic cable), or electrical signals transmitted through a wire.
- Computer readable program instructions described herein can be downloaded to respective computing/processing devices from a computer readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and/or a wireless network. The network may comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers, and/or edge servers. A network adapter card or network interface in each computing/processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing/processing device.
- Computer readable program instructions for carrying out operations of the present invention may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C++ or the like, and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The computer readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGA), or programmable logic arrays (PLA) may execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present invention.
- Aspects of the present invention are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer readable program instructions.
- These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. These computer readable program instructions may also be stored in a computer readable storage medium that can direct a computer, a programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer readable storage medium having instructions stored therein comprises an article of manufacture including instructions which implement aspects of the function/act specified in the flowchart and/or block diagram block or blocks.
- The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process, such that the instructions which execute on the computer, other programmable apparatus, or other device implement the functions/acts specified in the flowchart and/or block diagram block or blocks.
- The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts or carry out combinations of special purpose hardware and computer instructions.
- The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
- The description of the present invention has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the invention. The embodiment was chosen and described in order to best explain the principles of the invention and the practical application, and to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated.
Claims (20)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/708,481 US20200120189A1 (en) | 2016-02-24 | 2019-12-10 | Contextual remote management of virtual app lifecycle |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/052,091 US10530896B2 (en) | 2016-02-24 | 2016-02-24 | Contextual remote management of virtual app lifecycle |
US16/708,481 US20200120189A1 (en) | 2016-02-24 | 2019-12-10 | Contextual remote management of virtual app lifecycle |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/052,091 Continuation US10530896B2 (en) | 2016-02-24 | 2016-02-24 | Contextual remote management of virtual app lifecycle |
Publications (1)
Publication Number | Publication Date |
---|---|
US20200120189A1 true US20200120189A1 (en) | 2020-04-16 |
Family
ID=59629382
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/052,091 Expired - Fee Related US10530896B2 (en) | 2016-02-24 | 2016-02-24 | Contextual remote management of virtual app lifecycle |
US16/708,481 Abandoned US20200120189A1 (en) | 2016-02-24 | 2019-12-10 | Contextual remote management of virtual app lifecycle |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/052,091 Expired - Fee Related US10530896B2 (en) | 2016-02-24 | 2016-02-24 | Contextual remote management of virtual app lifecycle |
Country Status (1)
Country | Link |
---|---|
US (2) | US10530896B2 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102485368B1 (en) | 2018-01-15 | 2023-01-05 | 삼성전자주식회사 | Electronic apparatus, method for controlling thereof and the computer readable recording medium |
US10783205B2 (en) | 2018-07-25 | 2020-09-22 | International Business Machines Corporation | Mobile device having cognitive contacts |
JP7127479B2 (en) * | 2018-10-25 | 2022-08-30 | 富士フイルムビジネスイノベーション株式会社 | Information processing device and information processing program |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090307263A1 (en) | 2008-06-06 | 2009-12-10 | Sense Networks, Inc. | System And Method Of Performing Location Analytics |
US20100041391A1 (en) * | 2008-08-12 | 2010-02-18 | Anthony Wayne Spivey | Embedded mobile analytics in a mobile device |
US8224766B2 (en) | 2008-09-30 | 2012-07-17 | Sense Networks, Inc. | Comparing spatial-temporal trails in location analytics |
US9852156B2 (en) * | 2009-12-03 | 2017-12-26 | Google Inc. | Hybrid use of location sensor data and visual query to return local listings for visual query |
US8233408B2 (en) | 2009-12-10 | 2012-07-31 | Wei Lu | Mobile cloud architecture based on open wireless architecture (OWA) platform |
US20110208797A1 (en) | 2010-02-22 | 2011-08-25 | Full Armor Corporation | Geolocation-Based Management of Virtual Applications |
US8751743B2 (en) | 2010-03-15 | 2014-06-10 | Howard University | Apparatus and method for context-aware mobile data management |
US9179239B2 (en) * | 2010-04-19 | 2015-11-03 | Netmeno | Method and system for managing, delivering, displaying and interacting with contextual applications for mobile devices |
US20110302302A1 (en) * | 2010-06-04 | 2011-12-08 | Electronics And Telecommunications Research Institute | Adaptive mobile cloud system using private virtual intance and construction method thereof |
US20110320318A1 (en) * | 2010-06-28 | 2011-12-29 | Amol Bhasker Patel | Context-aware shopping services on mobile |
US20140180760A1 (en) | 2011-03-18 | 2014-06-26 | Telefonica, S.A. | Method for context-aware recommendations based on implicit user feedback |
US9373267B2 (en) | 2011-04-08 | 2016-06-21 | Wombat Security Technologies, Inc. | Method and system for controlling context-aware cybersecurity training |
US20120269116A1 (en) * | 2011-04-25 | 2012-10-25 | Bo Xing | Context-aware mobile search based on user activities |
TW201301118A (en) | 2011-06-30 | 2013-01-01 | Gcca Inc | Cloud-based communication device and smart mobile device using cloud-based communication device |
US9250928B2 (en) * | 2011-10-18 | 2016-02-02 | Mcafee, Inc. | Cooperative mobile analytics |
US20130346217A1 (en) | 2012-06-22 | 2013-12-26 | Cisco Technology, Inc. | Mobile device location analytics for use in content selection |
US9590848B2 (en) | 2013-03-14 | 2017-03-07 | Intel Corporation | Cloud based virtual mobile device |
US9351105B2 (en) | 2013-07-02 | 2016-05-24 | Sap Se | Location based applications |
CN104423778A (en) | 2013-08-26 | 2015-03-18 | 中兴通讯股份有限公司 | Method and device for adjusting sequence of mobile terminal icons, and mobile terminal |
US9451043B2 (en) | 2013-09-13 | 2016-09-20 | Evie Labs, Inc. | Remote virtualization of mobile apps |
US20150189377A1 (en) * | 2013-12-27 | 2015-07-02 | United Video Properties, Inc. | Methods and systems for adjusting user input interaction types based on the level of engagement of a user |
US10296550B2 (en) * | 2014-08-18 | 2019-05-21 | Perry Street Software, Inc. | Selective inclusion of members in a results list |
KR20160097671A (en) * | 2015-02-09 | 2016-08-18 | 삼성전자주식회사 | Mobile device for controlling medical apparatus and method for controlling medical apparatus thereof |
US10687724B2 (en) * | 2015-06-25 | 2020-06-23 | Intel Corporation | User's physiological context sensing method and apparatus |
-
2016
- 2016-02-24 US US15/052,091 patent/US10530896B2/en not_active Expired - Fee Related
-
2019
- 2019-12-10 US US16/708,481 patent/US20200120189A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US10530896B2 (en) | 2020-01-07 |
US20170242553A1 (en) | 2017-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20160349944A1 (en) | Dynamic tidy correlated icon depending on the favorite | |
US10304024B2 (en) | Intelligent key performance indicator catalog | |
US9996239B2 (en) | Enumeration and modification of cognitive interface elements in an ambient computing environment | |
US9857937B2 (en) | Changing a controlling device interface based on device orientation | |
US20180275845A1 (en) | Dashboard Creation With Popular Patterns and Suggestions Using Analytics | |
US20170242711A1 (en) | Remote management of virtual app lifecycle based on context and social network activities | |
US10318338B2 (en) | Re-launching contextually related application sets | |
US20200120189A1 (en) | Contextual remote management of virtual app lifecycle | |
US20170337279A1 (en) | Allocating computing resources | |
US20210092071A1 (en) | Distributing computing resources based on location | |
US10140163B2 (en) | Intelligent framework for shared services orchestration | |
US11079927B2 (en) | Automated modification of graphical user interfaces | |
US20170318110A1 (en) | Providing push notifications to a device based on nearby devices | |
US10684665B2 (en) | Automated mobile device charging detection | |
US11029761B2 (en) | Context based gesture control | |
US20180293455A1 (en) | Methods and systems for managing images | |
US20230281019A1 (en) | Computer operating system shutdown sequencing | |
US11669676B2 (en) | Comparing similar applications with redirection to a new web page |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW YORK Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:DEY, KUNTAL;EKAMBARAM, VIJAY;VIJIL, ENARA C.;REEL/FRAME:051223/0624 Effective date: 20160112 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
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: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |