U.S. patent application number 11/944456 was filed with the patent office on 2009-05-28 for method and system for delivering application packages based on user demands.
Invention is credited to Hsuan-Yeh Chang.
Application Number | 20090138876 11/944456 |
Document ID | / |
Family ID | 40670853 |
Filed Date | 2009-05-28 |
United States Patent
Application |
20090138876 |
Kind Code |
A1 |
Chang; Hsuan-Yeh |
May 28, 2009 |
METHOD AND SYSTEM FOR DELIVERING APPLICATION PACKAGES BASED ON USER
DEMANDS
Abstract
A method and a system are provided for delivering on-demand
software packages. In one aspect, the method may include
subscribing services of a service provider operating a server, the
server including an operating system and several application
packages installed therein, initiating a client terminal by
performing a network booting process using the operating system
installed in the server, and executing in the client terminal a
subscribed application package installed in the server using
resources of the operating system resident in the client terminal.
The method may further include charging the user a fee according to
the application packages and the operating system subscribed by the
user.
Inventors: |
Chang; Hsuan-Yeh; (Taipei,
TW) |
Correspondence
Address: |
Hsuan-Yeh Chang
901 New York Avenue NW
Washington
DC
20001
US
|
Family ID: |
40670853 |
Appl. No.: |
11/944456 |
Filed: |
November 22, 2007 |
Current U.S.
Class: |
717/176 |
Current CPC
Class: |
G06F 21/629 20130101;
H04L 67/10 20130101; H04L 41/20 20130101; G06F 21/121 20130101;
G06F 8/60 20130101; G06Q 20/123 20130101; G06Q 20/127 20130101;
H04L 63/08 20130101; G06Q 20/22 20130101; G06F 2221/0713 20130101;
G06Q 20/1235 20130101 |
Class at
Publication: |
717/176 |
International
Class: |
G06F 9/445 20060101
G06F009/445 |
Claims
1. A method, comprising: subscribing services of a service provider
operating a server, the server including an operating system and a
plurality of application packages installed therein; initiating a
client terminal by performing a network booting process using the
operating system installed in the server; and executing in the
client terminal a subscribed application package installed in the
server using resources of the operating system resident in the
client terminal.
2. The method of claim 1, wherein the services comprise licenses to
use the operating system and the application packages installed in
the server.
3. The method of claim 2, wherein the services comprise rights to
use a storage unit of the server for storing user data in the
storage unit.
4. The method of claim 3, further comprising saving, into the
storage unit, a data file generated from executing the subscribed
application package.
5. The method of claim 3, further comprising retrieving, from the
storage unit, a data file previously generated in the executed
subscribed application package.
6. The method of claim 3, wherein the services comprise output
services.
7. The method of claim 6, further comprising outputting the data
file through an output unit of the server.
8. The method of claim 6, further comprising backing up the storage
unit by storing the user data into a recording medium.
9. The method of claim 1, wherein the network booting process
comprises: associating the client terminal with a communication
network via an access point to communicate with the server of the
service provider; and initiating the client terminal using the
operating system installed in the server, the operating system
being subscribed by a user of the client terminal.
10. The method of claim 9, wherein the access point comprises a
wireless access point.
11. The method of claim 9, wherein the communication network
comprises a wireless communication network or an intranet.
12. The method of claim 1, further comprising: providing to the
client terminal a list of application packages installed in the
server, the list including application packages subscribed by a
user; and selecting from the list an application package to be
executed on the client terminal.
13. The method of claim 12, further comprising updating the list of
application packages by subscribing an additional application
package or by unsubscribing a currently subscribed application
package.
14. The method of claim 12, further comprising charging the user a
fee according to the list of application packages the user
subscribed and according to the operating system the user
subscribed.
15. The method of claim 14, wherein charging the user comprises
periodically billing the user.
16. A method, comprising: initiating a client terminal using an
operating system installed in a server, the client terminal
accessing the server through a communication network via an access
point; providing to the client terminal a list of subscribed
application packages, the subscribed application packages being
installed in the server; selecting an application package from the
list; executing the selected application package on the client
terminal using resources of the operating system resident in the
client terminal; and charging the user of the client terminal a fee
by the service provider according to the list of application
packages the user subscribed.
17. The method of claim 16, further comprising updating the list of
application packages by subscribing an additional application
package or by unsubscribing a currently subscribed application
package.
18. A system, comprising: means for initiating a client terminal
using an operating system installed in a server, the client
terminal accessing the server through a communication network via
an access point; means for providing to the client terminal a list
of subscribed application packages, the subscribed application
packages being installed in the server; means for selecting an
application package from the list; means for executing the selected
application package on the client terminal using resources of the
operating system resident in the client terminal; and means for
charging the user of the client terminal a fee by the service
provider according to the list of application packages the user
subscribed.
19. The method of claim 18, further comprising means for updating
the list of application packages by subscribing an additional
application package or by unsubscribing a currently subscribed
application package.
Description
BACKGROUND
[0001] The present invention relates to a method and a system for
delivering application packages. More particularly, the present
invention relates to a method and a system for delivering
application packages based on user demands.
[0002] In order to normally operate a data processor, such as a
personal computer, it is often required that an operating system
(OS) and some application packages operable under the OS be
installed in the data processor. The OS may provide resources for
operating the data processor and manage the sharing of the
resources. The application packages may use the resources of the OS
to perform specific tasks.
[0003] In certain cases, the data processor may be purchased
including an OS and some basic application packages pre-installed
in the data processor. The user of the data processor may then
obtain a license for the OS and/or the application packages with or
without additional fees. If the user wants the data processor to
perform a special task and none of the pre-installed application
packages can perform the task, the user will then need to purchase
a special application package that performs the task and install
the purchased special application package in the data processor
before use.
[0004] Normally, the purchase of an application package means the
purchase of a license which allows a user to use that application
package on a single machine with an unlimited time period. However,
the purchase of such a license may be very costly. Accordingly,
many other types of licenses have been developed recently.
[0005] Among the recently developed licenses, an on-demand license
has attracted much attention. The on-demand license allows the user
to pay a fee only when the licensed application package is
subscribed and/or used. The user will not need to pay anything if
the application package is unsubscribed and/or not in use.
[0006] Currently, the on-demand license type is applicable mostly
to web applications. However, running a web application, i.e.,
under a web browser, may be several times slower than running the
application directly under an OS. Accordingly, there is a need to
develop a method and a system that can more efficiently deliver
application packages based on user demands.
SUMMARY
[0007] In light of the above, there is provided a method and a
system for delivering application packages based on user
demands.
[0008] In one embodiment, the method includes subscribing services
of a service provider operating a server, the server including an
operating system and a plurality of application packages installed
therein, initiating a client terminal by performing a network
booting process using the operating system installed in the server,
and executing in the client terminal a subscribed application
package installed in the server using resources of the operating
system resident in the client terminal.
[0009] In another embodiment, the method includes initiating a
client terminal using an operating system installed in a server
situated in a communication network, the client terminal accessing
the server via a service provider, providing, to the user, a list
of application packages subscribed by the user, the application
packages being installed in the server, selecting an application
package from the list, running the selected application package on
the client terminal using resources of the operating system, and
charging the user a fee by the service provider according to the
list of subscribed application packages.
BRIEF DESCRIPTION OF THE DRAWINGS
[0010] FIG. 1 illustrates a system for delivering application
packages according to an embodiment consistent with the present
invention.
[0011] FIG. 2 illustrates a system for delivering application
packages according to another embodiment consistent with the
present invention.
[0012] FIG. 3 illustrates a method for delivering application
packages according to an embodiment consistent with the present
invention.
DETAILED DESCRIPTION
[0013] Hereinafter, embodiments consistent with the present
invention will be described in detail with reference to the
accompanying drawings, in which like reference numerals refer to
like elements.
[0014] Referring to FIG. 1, there is illustrated a system for
delivering application packages according to an embodiment
consistent with the present invention.
[0015] As shown in FIG. 1, a server 100, which may be operated and
maintained by a service provider, is connected to a wide area
network (WAN) 10. In one embodiment, server 100 may include an
operating system (OS) server 110, an application package (AP)
server 120, and a user data (UD) server 130. Although three
different servers 110, 120, and 130 have been shown and described,
it is to be understood that servers 110, 120, and 130 may be
realized as one server, two servers, or three different servers.
Further, server 100 may include a billing module 140 and an output
unit 150.
[0016] OS server 110 may include one or more operating systems
installed therein. In one embodiment, the installed operation
systems may be open source operating systems, such as Linux, BSD,
and the like, or proprietary operating systems, such as
Windows.RTM. of Microsoft Corp., "Mac OS X" of Apple Inc., and the
like.
[0017] AP server 120 may include a plurality of application
packages installed therein. The application packages may be open
source software packages, such as "OpenOffice.org," or proprietary
software packages, such as "Office 2007" of Microsoft Corp.
[0018] UD server 130 may include a plurality of storage units. Each
storage unit may correspond to a user account for storing data of
the user. Each storage unit has a capacity quota. For example, the
capacity quota may be 100 GB. In one embodiment, UD server 130 may
include a plurality of hard disks, thereby forming a file system
under Redundant Array of Independent Disks (RAID) architecture.
Accordingly, storing user data in UD server 130 may be better
secured than saving them in mass storage device 260, which does not
normally employ a RAID architecture. In addition, to protect
privacy of the user, the user data stored in UD server 130 may be
encrypted.
[0019] A user may subscribe services provided by the service
provider. The services may include licenses to use one or more of
the operating systems and/or one or more application packages
installed in server 100. The services may further include rights to
use the storage unit of a certain capacity quota. Further, the
services may include output services. The user who has subscribed
the output services may utilize output unit 150 to output, for
example, documents, pictures, and the like, or to prepare a
recording medium, such as a CD, a DVD, and the like. In one
embodiment, the output services for preparing the recording medium
may be used to backup data files of the user. The service provider
may then ship the documents, pictures, data CDs, data DVDs, and the
like, to the user via courier. Billing module 140 may issue a bill
to charge the user for the services the user subscribed and/or
used.
[0020] Referring again to FIG. 1, a client terminal 200 may be
connected to WAN 10 via an access point 20. In one embodiment,
client terminal 200 may be a data processor, such as a personal
computer, a personal digital assistant, and the like, a
communication apparatus, such as a cell phone, a smart phone, and
the like, or a consumer electronic product, such as a television
set, a game box, and the like.
[0021] Client terminal 200 may include a central processing unit
(CPU) 210, a random access memory (RAM) 220, a read only memory
(ROM) 230, an input/output (I/O) unit 240, an extension port (EP)
250 (for example, a universal serial bus (USB) port, or a card
reader), a mass storage device 260 (for example, a hard disk), and
a network interface (NI) 270. In one embodiment, client terminal
200 may not require mass storage device 260. Client terminal 200
may be operated using UD server 130 as a substitute mass storage
device, with or without mass storage device 260 in client terminal
200.
[0022] Access point 20 may be a wireless access point (for example,
a wireless router, a base station, and the like), or a wired access
point (for example, a cable/DSL modem, an optical modem, and the
like). Client terminal 200 uses NI 270 to gain access to WAN 10 via
access point 20, so as to communicate with server 100. In one
embodiment, NI 270 may be a wired network card, such as an Ethernet
card, or a wireless network card, such as a WiMAX or WiFi interface
device, depending on the type of access point 20 used.
[0023] Referring to FIG. 2, there is illustrated a system for
delivering application packages according to another embodiment
consistent with the present invention. As shown, a server 100 is
connected to a local area network (LAN) 12. As discussed above,
server 100 may include an operating system (OS) server 110, an
application package (AP) server 120, and a user data (UD) server
130. In one embodiment, server 100 may be managed by the service
provider. However, it is appreciated that server 100, which is
connected to LAN 12, may be managed by the administrator of LAN 12,
such as a corporate information technology (IT) department. The
service provider provides licenses for a client terminal 200 to use
the operating systems installed in OS server 110 and the
application packages installed in AP server 120.
[0024] As shown in FIG. 2, client terminal 200 is connected to LAN
12. Client terminal 200 may use NI 270 to access server 100 via LAN
12. In one embodiment, LAN 12 may comprise Ethernet, and NI 270 may
comprise an Ethernet card. However, it is to be understood that LAN
12 may comprise an Intranet, which may connect client terminal 200
and server 100 under the same domain but located at different
geographical locations. Further, LAN 12 may be connected to WAN 10
via an access point 20.
[0025] Referring to FIG. 3, there is illustrated a method for
delivering application packages according to an embodiment
consistent with the present invention. Hereinafter, the method
consistent with the present invention will be described in detail
with reference to FIG. 3 as well as to FIGS. 1 and/or 2.
[0026] First, the user needs to obtain a client terminal and
subscribe the services of the service provider. In one example, the
user may already have a client terminal. Accordingly, the user only
needs to subscribe the services without acquiring a new client
terminal. In another example, the user may not already have a
client terminal. Accordingly, the user needs to obtain a client
terminal first. In certain cases, however, the service provide may
provide a client terminal to the user when the user subscribes
their services.
[0027] If the user does not yet have a client terminal and desires
to subscribe the services, the user may visit a vendor store of the
service provider located at, for example, a shopping center close
to the user's neighborhood. The user may then subscribe the
services using a client terminal of the vendor store. On the other
hand, if the user already have a client terminal, the user may then
visit a web store of the service provider, and subscribe the
services of the service provider through the web store.
[0028] After the user subscribes the services, the service provider
may then issue a user identification device, such as a SIM card, an
IC card, a flash memory drive, a memory card, a CD-ROM, and the
like, which may record subscription information of the user. The
user identification device may be connected with client terminal
200 via EP 250. The subscription information may include user
information, pass code, account information, subscription details,
and/or system configurations of client terminal 200. In one
embodiment, the user identification device may be integrated with
ROM 230 of client terminal 200. For example, the subscription
information may be recorded in ROM 230 of client terminal 200, if
client terminal 200 is provided to the user by the service
provider.
[0029] Referring to FIG. 3, in Step 300, the user powers on client
terminal 200. Immediately after powering on client terminal 200,
client terminal 200 may begin performing a network booting
process.
[0030] In Step 310, client terminal 200 attempts to associate with
a communication network 14 (for example, WAN 10 or LAN 12) by
sending out a request to communication network 14. In one
embodiment, communication network 14 may include a wireless
communication network, which is accessible to client terminal 200
via a wireless access point, such as a base station. Once client
terminal 200 is associated with communication network 14, client
terminal 200 may have access to server 200. In one embodiment,
client terminal 200 may be assigned a network address upon
association with communication network 14. Alternatively, client
terminal 200 may use a predetermined network address included in
the subscription details recorded in the user identification
device.
[0031] In Step 320, after client terminal 200 is associated with
communication network 14, client terminal 200 may broadcast a
request for finding server 100 that includes an operating system
installed therein. In one embodiment, a server address of server
100 may be included in the subscription details recorded in the
user identification device. In this case, client terminal 200 may
find server 100 within a short time period. Once server 100 is
found, client terminal 200 may begin a booting process (or
initiating process) based on the subscription information by
transferring from server 100 the operating system subscribed by the
user. Before the booting process, however, server 100 may need to
authenticate the user. In one embodiment, server 100 may
authenticate the user by requesting, for example, the subscription
information from client terminal 200. Because the operating system
is installed in server 100, client terminal 200 does not require
the operating system be installed in mass storage device 260 of
client terminal 200. If client terminal 200 includes mass storage
device 260, the user may then use the entire capacity of mass
storage device 260 to store user data, without sacrificing storage
space for the operating system.
[0032] The network booting process described above may be time
consuming, especially when the bandwidth of communication network
14 is narrow. Accordingly, in one embodiment, client terminal 200
may further include a non-volatile memory module (not shown) having
a storage capacity substantially the same as that of RAM 220. If
the user wants to power off client terminal 200 to save energy, but
does not want to spend time on the network booting process when
powering on client terminal 200 again, dynamic data in RAM 220 of
client terminal 200 may be transferred to the non-volatile memory
when powering off, so as to allow client terminal 200 to enter a
hibernation mode. When the user powers on client terminal 200
again, the dynamic data stored in the non-volatile memory module
may be loaded back to RAM 220. In this manner, client terminal 200
may return to its original state of operation at the time the power
is turned off. Accordingly, no reboot of client terminal 200 may be
necessary. Essentially, client terminal 200 may need to go through
this network booting process only when client terminal 200 is
powered on for the first time. Nevertheless, client terminal 200
may still need to reboot when certain portions of the operating
system go crashed and are unrecoverable.
[0033] In Step 330, after performing the network booting process,
client terminal 200 may request server 100 to send a list of
application packages installed in AP server 120. Server 100 may
then provide the list of application packages to client terminal
200. According to the subscription information recorded in the user
identification device, the user is licensed to use one or more
application packages in the list. For those application packages
not subscribed by the user, the user is not licensed to use them.
Because the subscribed application packages are installed in server
100, client terminal 200 does not require the application packages
be installed in mass storage device 260 of client terminal 200.
Accordingly, if client terminal 200 includes mass storage device
260, the user may use the entire capacity of mass storage device
260 to store user data.
[0034] In Step S340, in order to execute or run a subscribed
application package on client terminal 200, the user may select the
subscribed application package from the list of application
packages, and send a request for the selected application package
to server 100. In one embodiment, server 100 may need to verify the
user's subscription of the selected application package before
activating the selected application package. Once the user's
subscription is verified, client terminal 200 then begin
transferring the selected application package and execute the
selected application package on client terminal 200, using
resources of the operating system resident in RAM 220 of client
terminal 200.
[0035] While running the selected application package on client
terminal 200, client terminal 200 may communicate with server 100,
and vice versa, to obtain component parts or add-on modules of the
selected application package from AP server of server 100, and/or
to store temporary data into U D server 130 of server 100, for
example. Further, while running the selected application package,
the user of client terminal 200 may store a newly created data file
into server 100 and/or retrieve a previously created data file from
server 100. Moreover, the user may output a data file through
output unit 150 of server 100. The service provider may then ship
the output material, such as document papers, to the user via
courier.
[0036] In Step S350, when the user is to terminate the execution of
the selected application package, client terminal 200 may inform
server 100 that the selected application package is to be
terminated. Client terminal 200 may then release the running
application package from RAM 220 of client terminal 200.
[0037] In Step S360, when the user wants to change his subscription
of services, the user may use client terminal 200 to send a request
for subscription update to server 100. In response, server 100 may
send a list of application packages including currently subscribed
application packages and available application packages not
currently subscribed.
[0038] If the user wants to subscribe a new application package,
the user may search for the new application package from the
available application packages. The user may then select the new
application package found from the available application packages.
Further, the user may subscribe the new application package by
updating the list of application packages, that is, by adding the
new application package to the subscribed application packages.
[0039] If the user wants to unsubscribe a currently subscribed
application package, the user may select the application package to
be unsubscribed from the currently subscribed application packages.
Further, the user may unsubscribe the selected application package
by updating the list of application packages, that is, by removing
the selected application package from the subscribed application
packages.
[0040] Accordingly, application packages can be delivered to the
user according to the user's demands. When the user demands an
application package, the user may simply subscribe it from the
service provider. On the other hand, when the user no longer
demands a certain application package, the user may simply
unsubscribe it. In one embodiment, the user may subscribe or
unsubscribe the license of the application package on a daily
basis, a weekly basis, a monthly basis, and the like. In this
manner, the user only pays for the license of an application
package when he subscribes and/or uses the application package.
Thus, the user does not need to pay the large fee for purchasing
the license of an application package as in the related art.
[0041] In Step S370, the service provider may charge the user a fee
for the services that are subscribed. More specifically, billing
module 140 of server 100 may issue a bill according to the user's
subscription of the services of the service provider. In one
embodiment, billing module 140 may issue a bill to the user
periodically, such as monthly, weekly, and the like. In one
embodiment, the bill may be sent to the user via an electronic
mail.
[0042] In view of the above, the present invention may provide a
system and a method for delivering application packages based on
user demands. Unlike the delivery method of application packages in
the related art, the present invention does not require the
application packages be executed on top of a web browser. Rather,
the application packages may be executed directly on a client
terminal using resources of an operating system resident in the RAM
of the client terminal. Accordingly, the performance of the
application packages may be several times better than running the
application packages over a web browser.
[0043] Further, because application packages may be executed
directly on the client terminal, not on the server, the minimum
system requirement of the server may be largely reduced. The server
may fully dedicate to the management of the application packages
and/or the operating systems without sharing computing time for
execution of those application packages. Accordingly, the same
server may support much more client terminals under the
architecture of the present invention than under the architecture
of the related art.
[0044] While embodiments consistent with the present invention have
been described in detail, it is to be understood by those skilled
in the art that various modifications and/or alterations may be
made without departing from the spirit and scope of the appended
claims. Accordingly, it is intended that the scope of the present
invention be defined in the appended claims and their
equivalents.
* * * * *