BACKGROUNDThe 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.
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.
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.
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.
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.
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.
SUMMARYIn light of the above, there is provided a method and a system for delivering application packages based on user demands.
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.
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 DRAWINGSFIG. 1 illustrates a system for delivering application packages according to an embodiment consistent with the present invention.
FIG. 2 illustrates a system for delivering application packages according to another embodiment consistent with the present invention.
FIG. 3 illustrates a method for delivering application packages according to an embodiment consistent with the present invention.
DETAILED DESCRIPTIONHereinafter, 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.
Referring toFIG. 1, there is illustrated a system for delivering application packages according to an embodiment consistent with the present invention.
As shown inFIG. 1, aserver100, which may be operated and maintained by a service provider, is connected to a wide area network (WAN)10. In one embodiment,server100 may include an operating system (OS)server110, an application package (AP)server120, and a user data (UD)server130. Although threedifferent servers110,120, and130 have been shown and described, it is to be understood thatservers110,120, and130 may be realized as one server, two servers, or three different servers. Further,server100 may include abilling module140 and anoutput unit150.
OS server110 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® of Microsoft Corp., “Mac OS X” of Apple Inc., and the like.
APserver120 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.
UD server130 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 server130 may include a plurality of hard disks, thereby forming a file system under Redundant Array of Independent Disks (RAID) architecture. Accordingly, storing user data inUD server130 may be better secured than saving them inmass storage device260, which does not normally employ a RAID architecture. In addition, to protect privacy of the user, the user data stored inUD server130 may be encrypted.
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 inserver100. 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 utilizeoutput unit150 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 module140 may issue a bill to charge the user for the services the user subscribed and/or used.
Referring again toFIG. 1, aclient terminal200 may be connected to WAN10 via anaccess point20. In one embodiment,client terminal200 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.
Client terminal200 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)unit240, an extension port (EP)250 (for example, a universal serial bus (USB) port, or a card reader), a mass storage device260 (for example, a hard disk), and a network interface (NI)270. In one embodiment,client terminal200 may not requiremass storage device260.Client terminal200 may be operated usingUD server130 as a substitute mass storage device, with or withoutmass storage device260 inclient terminal200.
Access point20 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 terminal200 uses NI270 to gain access to WAN10 viaaccess point20, so as to communicate withserver100. In one embodiment, NI270 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 ofaccess point20 used.
Referring toFIG. 2, there is illustrated a system for delivering application packages according to another embodiment consistent with the present invention. As shown, aserver100 is connected to a local area network (LAN)12. As discussed above,server100 may include an operating system (OS)server110, an application package (AP)server120, and a user data (UD)server130. In one embodiment,server100 may be managed by the service provider. However, it is appreciated thatserver100, which is connected toLAN12, may be managed by the administrator ofLAN12, such as a corporate information technology (IT) department. The service provider provides licenses for aclient terminal200 to use the operating systems installed inOS server110 and the application packages installed inAP server120.
As shown inFIG. 2,client terminal200 is connected toLAN12.Client terminal200 may useNI270 to accessserver100 viaLAN12. In one embodiment,LAN12 may comprise Ethernet, andNI270 may comprise an Ethernet card. However, it is to be understood thatLAN12 may comprise an Intranet, which may connectclient terminal200 andserver100 under the same domain but located at different geographical locations. Further,LAN12 may be connected toWAN10 via anaccess point20.
Referring toFIG. 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 toFIG. 3 as well as toFIGS. 1 and/or2.
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.
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.
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 withclient terminal200 viaEP250. The subscription information may include user information, pass code, account information, subscription details, and/or system configurations ofclient terminal200. In one embodiment, the user identification device may be integrated withROM230 ofclient terminal200. For example, the subscription information may be recorded inROM230 ofclient terminal200, ifclient terminal200 is provided to the user by the service provider.
Referring toFIG. 3, inStep300, the user powers onclient terminal200. Immediately after powering onclient terminal200,client terminal200 may begin performing a network booting process.
In Step310,client terminal200 attempts to associate with a communication network14 (for example,WAN10 or LAN12) by sending out a request tocommunication network14. In one embodiment,communication network14 may include a wireless communication network, which is accessible toclient terminal200 via a wireless access point, such as a base station. Onceclient terminal200 is associated withcommunication network14,client terminal200 may have access toserver200. In one embodiment,client terminal200 may be assigned a network address upon association withcommunication network14. Alternatively,client terminal200 may use a predetermined network address included in the subscription details recorded in the user identification device.
In Step320, afterclient terminal200 is associated withcommunication network14,client terminal200 may broadcast a request for findingserver100 that includes an operating system installed therein. In one embodiment, a server address ofserver100 may be included in the subscription details recorded in the user identification device. In this case,client terminal200 may findserver100 within a short time period. Onceserver100 is found,client terminal200 may begin a booting process (or initiating process) based on the subscription information by transferring fromserver100 the operating system subscribed by the user. Before the booting process, however,server100 may need to authenticate the user. In one embodiment,server100 may authenticate the user by requesting, for example, the subscription information fromclient terminal200. Because the operating system is installed inserver100,client terminal200 does not require the operating system be installed inmass storage device260 ofclient terminal200. Ifclient terminal200 includesmass storage device260, the user may then use the entire capacity ofmass storage device260 to store user data, without sacrificing storage space for the operating system.
The network booting process described above may be time consuming, especially when the bandwidth ofcommunication network14 is narrow. Accordingly, in one embodiment,client terminal200 may further include a non-volatile memory module (not shown) having a storage capacity substantially the same as that ofRAM220. If the user wants to power offclient terminal200 to save energy, but does not want to spend time on the network booting process when powering onclient terminal200 again, dynamic data inRAM220 ofclient terminal200 may be transferred to the non-volatile memory when powering off, so as to allowclient terminal200 to enter a hibernation mode. When the user powers onclient terminal200 again, the dynamic data stored in the non-volatile memory module may be loaded back toRAM220. In this manner,client terminal200 may return to its original state of operation at the time the power is turned off. Accordingly, no reboot ofclient terminal200 may be necessary. Essentially,client terminal200 may need to go through this network booting process only whenclient terminal200 is powered on for the first time. Nevertheless,client terminal200 may still need to reboot when certain portions of the operating system go crashed and are unrecoverable.
In Step330, after performing the network booting process,client terminal200 may requestserver100 to send a list of application packages installed inAP server120.Server100 may then provide the list of application packages toclient terminal200. 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 inserver100,client terminal200 does not require the application packages be installed inmass storage device260 ofclient terminal200. Accordingly, ifclient terminal200 includesmass storage device260, the user may use the entire capacity ofmass storage device260 to store user data.
In Step S340, in order to execute or run a subscribed application package onclient terminal200, the user may select the subscribed application package from the list of application packages, and send a request for the selected application package toserver100. In one embodiment,server100 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 terminal200 then begin transferring the selected application package and execute the selected application package onclient terminal200, using resources of the operating system resident inRAM220 ofclient terminal200.
While running the selected application package onclient terminal200,client terminal200 may communicate withserver100, and vice versa, to obtain component parts or add-on modules of the selected application package from AP server ofserver100, and/or to store temporary data intoU D server130 ofserver100, for example. Further, while running the selected application package, the user ofclient terminal200 may store a newly created data file intoserver100 and/or retrieve a previously created data file fromserver100. Moreover, the user may output a data file throughoutput unit150 ofserver100. The service provider may then ship the output material, such as document papers, to the user via courier.
In Step S350, when the user is to terminate the execution of the selected application package,client terminal200 may informserver100 that the selected application package is to be terminated.Client terminal200 may then release the running application package fromRAM220 ofclient terminal200.
In Step S360, when the user wants to change his subscription of services, the user may useclient terminal200 to send a request for subscription update toserver100. In response,server100 may send a list of application packages including currently subscribed application packages and available application packages not currently subscribed.
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.
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.
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.
In Step S370, the service provider may charge the user a fee for the services that are subscribed. More specifically,billing module140 ofserver100 may issue a bill according to the user's subscription of the services of the service provider. In one embodiment,billing module140 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.
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.
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.
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.