Cloud-Based Image Hosting
Cloud-Based Image Hosting
Cloud-Based Image Hosting
::::::::::
US 8,856.262 B1
Page 2
(56) References Cited U.S. Appl. No. 13/341.227 Final Office Action mailed Apr. 18, 2014.
U.S. Appl. No. 13/475,918 Office Action mailed Mar. 12, 2014.
OTHER PUBLICATIONS Ali, Mir Farooq et al., “Building multi-platform user interfaces with
UIML.” Computer-Aided Design of User Interfaces III. Springer
. Appl. No. 13/475,917 Office Action dated Nov. 18, 2013. Netherlands, 2002. 255-266.
. Appl. No. 13/668,091 Final Office Action dated Nov. 6, 2013. Cuergo, “Ergonomic Guidelines for arranging a Computer Worksta
. Appl. No. 13/670,163 Office Action dated Nov. 6, 2013. tion—10 steps for users”. Jun. 6, 2004. p. 1-5.
. Appl. No. 13/668,095 Office Action dated Nov. 5, 2013. Holzinger, Andreas, Peter Treitler, and Wolfgang Slany. “Making
. Appl. No. 13/831,782 Office Action dated Nov. 6, 2013. apps useable on multiple different mobile platforms: On interoper
. Appl. No. 13/831,783 Final Office Action dated Dec. 17, 2013. ability for business application development on Smartphones.”
. Appl. No. 13/831,783 Office Action dated Sep. 3, 2013. Multidisciplinary Research and Practice for Information Systems.
.S. Appl. No. 13/831,783 Office Action dated Sep. 4, 2013. Springer Berlin Heidelberg, 2012. 176-189.
S 8,689.289, 04/2014, Eilam (withdrawn). Karch, Marziah, 'Android in a Microsoft World.” Android for Work.
.S. Appl. No. 13/341.222. Office Action mailed Jan. 27, 2014. Apress, 2010. 93-102.
.S. Appl. No. 13/341,756 Final Office Action mailed Feb. 4, 2014. U.S. Appl. No. 13/341,207 Final Office Action mailed May 14, 2014.
S Appl . NNo.
O 13/341,232 Office Action mailed Mar. 10, 2014. U.S. Appl. No. 13/341.222. Final Office Action mailed May 15, 2014.
.S. Appl. No. 13/341,425 Office Action mailed Mar. 5, 2014. U.S. Appl. No. 13/341,756 Office Action mailed Jun. 11, 2014.
.S. Appl. No. 13/341,765 Office Action mailed Feb. 7, 2014. U.S. Appl. No. 13/341.232 Final Office Action mailed Jun. 18, 2014.
.S. Appl. No. 13/490,327 Office Action mailed Jan. 28, 2014. U.S. Appl. No. 13/341,765 Final Office Action mailed Jun. 24, 2014.
.S. Appl. No. 13/475,916 Final Office Action mailed Mar. 12, 2014. U.S. Appl. No. 13/490,330 Final Office Action mailed Jul. 17, 2014.
.S. Appl. No. 13/475,917 Final Office Action mailed Mar. 12, 2014. U.S. Appl. No. 13/475,911 Office Action mailed Jun. 24, 2014.
.S. Appl. No. 13/831,782 Final Office Action mailed Feb. 24, 2014. U.S. Appl. No. 13/475,912 Office Action mailed Jun. 24, 2014.
.S. Appl. No. 13/341,432 Office Action mailed Mar. 24, 2014. U.S. Appl. No. 13/475,913 Office Action mailed Jun. 24, 2014.
.S. Appl. No. 13/341.215 Office Action mailed Mar. 21, 2014. U.S. Appl. No. 13/831,782 Office Action mailed Jul 17, 2014.
.S. Appl. No. 13/341,750 Office Action mailed Apr. 16, 2014.
.S. Appl. No. 13/341,754. Office Action mailed Apr. 16, 2014. * cited by examiner
U.S. Patent Oct. 7, 2014 Sheet 1 of 2 US 8,856.262 B1
†? ? ?
?
US 8,856.262 B1
1. 2
CLOUD-BASED IMAGE HOSTING For one particular type of display/changes, namely video
displays, video codecs are components that compress or
BACKGROUND decompress video databased on various algorithms.
There is, therefore, a need in the art for improved systems
1. Field of the Invention and methods of image hosting for cross-platform display.
The present invention generally relates to cross-platform
display. More specifically, the present invention relates to SUMMARY OF THE CLAIMED INVENTION
image hosting for cross-platform display.
2. Description of the Related Art Embodiments of the present invention include systems and
Individuals currently have a variety of options for commu 10 methods of image hosting for cross-platform display. Data
nicating and carrying out transactions. Such options may including information regarding a display of the host device
include traditional desktop coming devices, as well as various may be received. Information regarding the display of the
mobile devices (e.g., mobile phones, Smartphones, and tab host device may be received and evaluated identify the images
lets). In fact, many individuals may use multiple computing in the display. The identified images may be stored in memory
and mobile devices at home, work, and on the move. For 15
and associated with a uniform resource locator (URL). A
example, an individual may use a desktop computer at work, bitstream describing the display may be generated in which
a laptop computer at home, and one or more mobile devices each image is referenced using the associated URL. The
(e.g., Smartphone, tablet) elsewhere. As such, people have bitstream may then be provided to a client device, where
come to expect to be able to have access to data and comput rendering of the bitstream results in a display corresponding
ing resources so to perform most computing tasks anywhere. to the host device. Rendering the display may include retriev
One difficulty in meeting Such an expectation is that the ing the images associated with the URLs in the bitstream.
various computing devices may not all have the same capa Various embodiments of the present invention include
bilities. For example, such devices may run different operat methods of image hosting for cross-platform display. Such
ing systems/platforms and applications. Such differences methods may include receiving data sent over a communica
may make it difficult to Support the same tasks across Such 25 tion network, the data including information regarding a dis
devices. One solution has been to provide remote desktops play of a host device, identifying one or more images included
where a first device runs the applications and a second device in the display of the host device, providing the one or more
receives the visual display that appears on the first device over images to memory for storage, associating each of the one or
a communication network (e.g., Internet). Such remote desk more images with a uniform resource locator (URL), and
tops can allow users to access and control resources and data 30 generating a bitstream regarding the display of the host device
on the first device at a remote location using a second (e.g., that references the one or more images using the one or more
portable) device. URLs associated with the stored images; and providing the
One drawback to such an approach arises from the fact that bitstream to the client device for rendering the bitstream by
Such devices are generally used differently, so applications retrieving the images associated with the URLs and stored in
may be optimized for one type of device, but not another. For 35 memory
example, the different devices may have different sizes and Embodiments of the present invention may further include
input options (e.g., keyboard, keypad, touchscreen). The dis systems of image hosting for cross-platform display. Such
play of one device may not be optimized for a second device. systems may include a host device and a client device with a
For example, if a desktop computer display is shrunk to fit on display that corresponds to a display of a host device. Some
a Smartphone screen, the shrunken size may be difficult for 40 embodiments may additionally include an intermediary
the user to read or discern what is being displayed. Alterna device, such as a server. Either the host device or server may
tively, if the display is not shrunken, the Smartphone may only evaluate the host device display to identify any images, store
be able to display a portion of the original display at a time, the images in memory, associate the images with URLs,
which also adds to the difficulty in reading and discerning generate a bitstream to describe the host device display that
what is being displayed. While some devices allow for 45 uses the URLs to refer to the images, and provide the bit
manual adjustment of the display by the user, changing dis stream to the client device for rendering, which includes
plays and images may require the user to continually re-adjust retrieving the stored images associated with the URLs.
the display, which may be unwieldy and inconvenient. Addi Other embodiments of the present invention include non
tionally, using a finger on a touchscreen does not provide transitory computer-readable storage media on which is
input as accurately as, for example, a mouse or physical 50 embodied instructions executable to perform a method of
keyboard. This difficulty is further heightened where the image hosting for cross-platform display as previously set
device lacks a tactile keyboard and instead relies on a key forth above.
board display on a touchscreen. The size of the screenportion
for display is further constrained when a keyboard is acti BRIEF DESCRIPTION OF THE DRAWINGS
vated. 55
An additional complication is that some devices (e.g., FIG.1 illustrates a network environment in which an exem
mobile devices) may not have the same processing power or plary system of image hosting for cross-platform display may
speed as other devices. For powerful devices, rendering com be implemented.
plex displays may not be a problem. For less powerful FIG. 2 is a flowchart illustrating an exemplary method of
devices, it may take a much longer time. This problem is 60 image hosting for cross-platform display.
further heightened where displays are continually changing
(e.g., Video). DETAILED DESCRIPTION
Generally, host-rendered displays allow for an image to be
rendered on a host device, processed (e.g., compressed), and Image hosting for cross-platform display is provided. Data
then delivered to the client. In client-rendered displays, client 65 including information regarding a display of the host device
devices are sent instructions for rendering a display. Some may be received. Information regarding the display of the
models rely on a combination of host- and client-rendering. host device may be received and evaluated identify the images
US 8,856.262 B1
3 4
in the display. The identified images may be stored in memory grated server) may take on certain client-side, cache, or proxy
and associated with a uniform resource locator (URL). A server characteristics. These characteristics may depend on
bitstream describing the display may be generated in which the particular network placement of the server or certain
each image is described by reference to the associated URL. configurations of the server.
The bitstream may then be provided to a client device, where Server 130 may associated with the same user and located
rendering of the bitstream results in a display corresponding in the same local network as client device 120C. Alterna
to the host device. Rendering the display may include retriev tively, server 130 may be located remotely (e.g., in the cloud)
ing the images associated with the URLs in the bitstream and may be associated with a third party that provides Ser
FIG. 1 illustrates a network environment 100 in which a
system for image hosting for cross-platform display may be 10
vices in accordance with embodiments of the present inven
implemented. Network environment 100 may include a com tion. In some instances, the services may be provided via
munication network 110, one or more user devices 120A-C, Software (e.g., mobile application, Software as a service)
downloaded from server 130 to one or more client devices
and a server 130. Devices in network environment 100 may 120. Updated software may similarly be downloaded as the
communicate with each other via communications network
110. 15 updates become available or as needed.
Communication network 110 may be a local, proprietary Server application may represent an application executing
network (e.g., an intranet) and/or may be a part of a larger (“running) on server 130. The functionality of server appli
wide-area network (e.g., the cloud). The communications cation may be visible to and accessible by client 120 via
network 110 may be a local area network (LAN), which may application publishing over the cloud (e.g., communication
be communicatively coupled to a wide area network (WAN) network 110), such as that supported by GraphOn GO-Glo
such as the Internet. The Internet is a broad network of inter bal, Microsoft Remote Desktop Services, and Citrix XenApp.
connected computers and servers allowing for the transmis Examples of server application 132 may include a computer
sion and exchange of Internet Protocol (IP) data between aided design (CAD) application, such as AutoCADR (by
users connected through a network service provider. Autodesk, Inc. of San Rafael, Calif.) or Cadence Virtuoso (by
Examples of network service providers are the public 25 Cadence Design Systems of San Jose, Calif.), a medical clini
Switched telephone network, a cable service provider, a pro cal workflow application such as Symbia.net (by Siemens AG
vider of digital subscriber line (DSL) services, or a satellite of Munich, Germany), an interactive mapping application
service provider. Communications network 110 allows for such as Google Earth (by Google, Inc of Mountain View,
communication between the various components of network Calif.), or a 3D game.
environment 100. 30 FIG. 2 illustrates a method 200 for image hosting for cross
Users may use any number of different electronic client platform display. The method 200 of FIG.2 may be embodied
devices 120A-C, such as general purpose computers, mobile as executable instructions in a non-transitory computer read
phones, Smartphones, personal digital assistants (PDAs), por able storage medium including but not limited to a CD, DVD,
table computing devices (e.g., laptop, netbook, tablets), desk or non-volatile memory Such as a hard drive. The instructions
top computing devices, handheld computing device, or any 35 of the storage medium may be executed by a processor (or
other type of computing device capable of communicating processors) to cause various hardware components of a com
over communication network 110. Client devices 120 may puting device hosting or otherwise accessing the storage
also be configured to access data from other storage media, medium to effectuate the method. The steps identified in FIG.
Such as memory cards or disk drives as may be appropriate in 2 (and the order thereof) are exemplary and may include
the case of downloaded services. Client device 120 may 40 various alternatives, equivalents, or derivations thereof
include standard hardware computing components such as including but not limited to the order of execution of the same.
network and media interfaces, non-transitory computer-read In method 200 of FIG.2, information regarding a display of
able storage (memory), and processors for executing instruc a host device (e.g., device 120C) is received and analyzed to
tions that may be stored in memory. identify any images in the display. Each identified image is
Client device 120A is illustrated as a mobile phone or 45 stored in memory and associated with a URL. A bitstream
smartphone, while client device 120B is illustrated as a tablet describing the host device display may be generated. Descrip
computing device and client device 120C is illustrated as a tion of the image includes referencing the associated URL.
desktop device. As can be seen, each client device 120 is sized The bitstream may be sent to the client device (e.g., device
differently and/or has different input options. Exemplary 120A), which renders the display described by the bitstream.
embodiments of the present invention allow for tasks and 50 Rendering may include retrieving the images stored in
applications that are specific to one client device 120 (e.g., memory and associated with the URLs.
operating in a Microsoft Windows.(R) environment) to be used In step 210, information regarding a display of a host
and optimized for another client device 120 (e.g., operating in device 120C may be received for processing prior to render
an Apple iOS(R) environment). ing by client device 120A. In some instances, the user may
A client device 120 may include a client application, a 55 wish for client device 120A to include a display correspond
client 3D library, and a client display driver. Collectively, ing to that of the host device 120C. Some types of applications
these elements may enable the client and the client user to may be associated with a visual, graphical display. A host
consume computer graphics resources or services provided device 120C running Such applications may generate a dis
by server 110. play to appear on a screen associated with the host device
Server 130 may include any type of server or other com 60 120C. Information regarding the display may be indicative of
puting device as is known in the art, including standard hard what needs to be displayed (e.g., images, text, and video).
ware computing components such as network and media Such information may additionally indicate where an image
interfaces, non-transitory computer-readable storage or text appears on the Screen.
(memory), and processors for executing instructions or In step 220, images in the host device display are identified.
accessing information that may be stored in memory. The 65 The images may be identified as a type of file (having a file
functionalities of multiple servers may be integrated into a extension) known in the art to be an image (e.g., bmp, jpg,
single server. Any of the aforementioned servers (or an inte png). Alternatively, the display may be broken down into
US 8,856.262 B1
5 6
portions (or set of pixels) 6 Such that each portion may be The present invention may be implemented in an applica
considered an image. Combinations of the foregoing may tion that may be operable using a variety of devices. Non
also be used. transitory computer-readable storage media refer to any
In step 230, the images are stored in memory of a web medium or media that participate in providing instructions to
hosting device and associated with a uniform resource locator 5 a central processing unit (CPU) for execution. Such media
(URL) identifying the location where the images are stored. can take many forms, including, but not limited to, non
The web-hosting device may be the server 130 or another Volatile and Volatile media Such as optical or magnetic disks
device associated with a service provider of web-hosting and dynamic memory, respectively. Common forms of non
services. The images may be encoded prior to storage and transitory computer-readable media include, for example, a
hosting. Such encoding may be based on a compression codec 10 floppy disk, a flexible disk, a hard disk, magnetic tape, any
that is compatible with a browser associated with client other magnetic medium, a CD-ROM disk, digital video disk
device 120A. For example, for an Apple iPhone(R), an image (DVD), any other optical medium, RAM, PROM, EPROM, a
may be encoded using a code that is compatible with Safari. FLASHEPROM, and any other memory chip or cartridge.
A URL is assigned to each image; the URL may be used to Various forms of transmission media may be involved in
retrieve the associated image that is stored at the identified 15 carrying one or more sequences of one or more instructions to
location (e.g., at the web-host). a CPU for execution. A bus carries the data to system RAM,
In step 240, a bitstream is generated regarding the display from which a CPU retrieves and executes the instructions.
of the host device 120C using the URLs to refer to the asso The instructions received by system RAM can optionally be
ciated images. Because a particular image file may be quite stored on a fixed disk either before or after execution by a
large (depending on type, resolution, quality), using a URL to CPU. Various forms of storage may likewise be implemented
link to an image rather than providing the image itself may as well as the necessary network interfaces and network
reduce the amount of data required to describe a display topologies to implement the same.
including one or more images. Moreover, some images (e.g., While various embodiments have been described above, it
3D graphics) in the display of host device 120C may not be should be understood that they have been presented by way of
compatible with or easily processed by client device 120A. 25 example only, and not limitation. The descriptions are not
Prior art solutions, for example, may include sending images intended to limit the scope of the invention to the particular
with JavaScript commands for rendering the same. In con forms set forth herein. Thus, the breadth and scope of a
trast, step 240 involves leveraging internet browser capabili preferred embodiment should not be limited by any of the
ties for rendering graphics by ensuring that the bitstream sent above-described exemplary embodiments. It should be
to client device 120A includes URL links to images that are 30 understood that the above description is illustrative and not
already encoded for the internet browser associated with the restrictive. To the contrary, the present descriptions are
client device 120A. intended to cover such alternatives, modifications, and
In step 250, the bitstream is provided to the client device equivalents as may be included within the spirit and scope of
120A (e.g., its internet browser) for processing and rendering. the invention as defined by the appended claims and other
The bitstream provides information to client device 120A on 35 wise appreciated by one of ordinary skill in the art. The scope
how to render a display that corresponds to the display of the of the invention should, therefore, be determined not with
host device 120C. Instead of receiving images, however, the reference to the above description, but instead should be
client device 120A receives URLs, which can be used (e.g., determined with reference to the appended claims along with
by the internet browser on the client device 120A) to retrieve their full scope of equivalents.
the images. The retrieved images can be rendered on the 40 What is claimed is:
display of the client device 120A using the graphics and 1. A method for image hosting for cross-platform display,
rendering capabilities of the internet browser. As such, the the method comprising:
client device 120A may generate a display that corresponds to receiving a request for data sent over a communication
that of the host device 120C in an efficient manner despite network from a client device, the data including infor
having different (e.g., less) processing resources. 45 mation regarding a display of a host device associated
Various embodiments of the present invention allow for the with execution of an application at the host device, the
method 200 to be performed by an intermediary device (e.g., application display information including a plurality of
server 130) which may be associated with the host device or data types, wherein at least one type is image data;
reside elsewhere in the network (e.g., in the cloud). For executing instructions stored in memory, wherein execu
example, server 130 (or proxy device) may receive informa 50 tion of instructions by a processor:
tion regarding what the host device 120C is currently display identifies one or more images included in the image data
ing. The server 130 may provide information to client device from the plurality of data types regarding the display of
120A so that client device 120A can generate a corresponding the host device,
display. Server 130 may additionally monitor host device encodes the identified images based on an identified web
120C, identify images in the display, provide to a web-host in 55 browser of the client device, wherein the identified web
association with a URL, generate a bitstream incorporating browser is specific to an operating environment of the
the URLs in place of the actual images (and image rendering client device,
commands), and provide the bitstream to client device 120A automatically provides the identified and encoded images
for processing. to a web host for storage,
Alternatively, software located at host device 120C may 60 automatically assigning each of the identified and encoded
receive information regarding the display, identify images in images a uniform resource locator (URL) identifying a
the display, Store the images on a web-hosting device, asso location at the web host where the image is retrievable by
ciate each stored image with a URL, generate a bitstream the identified web browser of the client device;
regarding the host device display, and provide the bitstream to generates a bitstream regarding the display of the host
the client device 120A such that the client device 120A can 65 device, wherein the bitstream refers to the one or more
use its internet browser capabilities to retrieve and render the URLs associated with the stored images; and sending
linked images. the bitstream over the communication network to the
US 8,856.262 B1
7 8
client device, wherein rendering the bitstream com 10. The system of claim 8, wherein the web host is located
prises using the identified web browser of the client remotely and wherein the communication interface sends the
device to retrieve each of the images from the location at images to the web host over the communications network.
the web host as identified by the assigned URL, and 11. The system of claim 8, further comprising a web host
wherein a display of the client device corresponds to the database for hosting the images locally.
application display of the host device. 12. The system of claim 8, wherein the processor identifies
2. The method of claim 1, wherein the one or more images the browser associated with the client device and encodes the
are identified based on association with a name indicative of bitstream based on the identified browser.
images. 10
13. The system of claim 12, wherein the processor further
3. The method of claim 1, wherein the web host is located encodes the stored images based on the identified browser
remotely and wherein providing the images to the web host prior to storage at the web host and assignment of the asso
comprises sending the images over the communication net ciated URL.
work. 14. The system of claim 8, wherein the communications
4. The method of claim 1, wherein providing the images to 15 interface receives a request including the URLs and sending
the web host comprises hosting the images locally. the images associated with the URLs over the communication
5. The method of claim 1, further comprising identifying network to the client device.
the browser associated with the client device and encoding 15. A non-transitory computer-readable storage medium,
the bitstream based on the identified browser. having embodied thereon a program executable by a proces
6. The method of claim 5, wherein the stored images are Sor to perform a method for image hosting for cross-platform
encoded based on the identified browser prior to storage at the display, the method comprising:
web host and assignment of the associated URL. receiving a request for data sent over a communication
7. The method of claim 1, further comprising: network from a client device, the data including infor
receiving a request including the URLs; mation regarding a display of a host device associated
retrieving the images associated with the URLs based on 25 with execution of an application at the host device, the
the request; and application display information including a plurality of
sending the retrieved images over the communication net data types, wherein at least one type is image data;
work to the client device. identifying one or more images included in the image data
8. A system for image hosting for cross-platform display, from the plurality of data types regarding the display of
the system comprising: 30
the host device;
a communications interface for receiving a request for data encoding the identified images based on an identified web
sent over a communication network from a client device, browser of the client device, wherein the identified web
the data including information regarding a display of a browser is specific to an operating environment of the
host device associated with execution of an application client device;
at the host device, the application display information 35
including a plurality of data types, wherein at least one automatically providing the one or more identified and
type is image data; and encoded images to a web host for storage;
a processor for executing instructions, wherein execution automatically assigning each of the identified and encoded
of the instructions by the processor: images a uniform resource locator (URL) identifying a
identifies one or more images included in the image data 40 location at the web host where the image is retrievable by
from the plurality of data types regarding the display the identified web browser of the client device;
of the host device, generating a bitstream regarding the display of the host
encodes the identified images based on an identified web device, wherein the bitstream refers to the one or more
browser of the client device, wherein the identified URLs associated with the stored images; and sending
web browser is specific to an operating environment 45 the bitstream over the communication network to the
of the client device, client device, wherein rendering the bitstream com
automatically provides the identified and encoded prises using the identified web browser of the client
images to a web host for storage, device to retrieve each of the images from the location at
automatically assigning each of the identified and the web host as identified by the assigned URL, and
encoded images a uniform resource locator (URL) 50
wherein a display of the client device corresponds to the
identifying a location at the web host where the image application display of the host device.
is retrievable by the identified web browser of the 16. The method of claim 1, wherein the encoding of each
client device; image is based on a codec compatible with the identified
generates a bitstream regarding the display of the host browser of the client device.
device, wherein the bitstream refers to the one or more 55
URLs associated with the stored images; 17. The method of claim 1, wherein the bitstream further
wherein the communications interface sends the bitstream includes information regarding placement of the images
over the communication network to the client device, within the application display of the host device, and wherein
wherein rendering the bitstream comprises using the the rendering of the bitstream by the client device comprises
identified web browser of the client device to retrieve 60 placing the retrieved images in accordance with the place
each of the images from the location at the web host as ment information.
identified by the assigned URL, and wherein a display of 18. The system of claim 8, wherein the encoding of each
the client device corresponds to the application display image is based on a codec compatible with the identified
of the host device. browser of the client device.
9. The system of claim 8, wherein the processor identifies 65 19. The system of claim 8, wherein the bitstream further
the one or more images based on association with a name includes information regarding placement of the images
indicative of images. within the application display of the host device, and wherein
US 8,856.262 B1
9 10
the rendering of the bitstream by the client device comprises
placing the retrieved images in accordance with the place
ment information.