1. Field of Invention
The present invention relates to a system and method applicable to the Internet for providing differentiated service by scheduling external requests. More particularly, the present invention relates to a system and method applicable to determine the scheduling and processing of external requests-according to the category weight of the external requests, the resources consumed by the external requests, and the available resources in the servo system.
2. Related Art
With the prosperous development of various applications in the Internet environment, the demand for servo systems is increasingly greater, which, together with the growth of the number of the Internet users, has made the average load of most servo systems become increasingly greater as well.
In fact, overload of a servo system often keeps users waiting a long time for the service, and even leads to a total paralysis of service of the servo system. Therefore, many servo systems tend to grant more servo system throughput to users of higher level by means of differentiated service, to differentiate service waiting times for users after external requests are sent. Thus, users of higher level will obtain better service quality, and the satisfaction level of these users will be improved.
Generally, there are two approaches applied to provide differentiated service in a servo system. One approach is classifying the external requests to be received by the servo system according to appropriate weights, i.e., providing different priority to different external requests, such that external requests sent by different users will obtain different servo system throughput, thereby differentiated service is realized. The other is that as every external request requires different resources of the servo system, and the consumption proportions of the different resources are also different from each other, if the servo system resources are effectively allocated and planned, differentiated service may also be achieved while maximizing the resource utilization of the servo system.
a and
For differentiated service quality 01 without category/resource scheduling shown in
In U.S. Pat. No. 6,816,907, it utilizes a priority table in the main servo system to control the sequence of transmitting the external requests to the servo system, wherein the priority table classifies all external requests into at least two levels. There are two criteria to determine the transmission sequence: (1) when the number of external requests of the higher level is no less than a predetermined transmission number, the external requests of the higher level of the same number with the predetermined transmission number are transmitted to the servo system; (2) when the number of external requests of the higher level is less than a predetermined transmission number, a mixture of external requests of the higher level and the lower level is transmitted to the servo system, and the number of external requests being transmitted is the same with the predetermined transmission number. This mainly classifies the external requests into two categories according to different priorities, and by emphasizing that external requests of higher level must obtain a greater number of processes from the servo system than external requests of lower level, differentiated service is achieved. Though this approach ensures that the number of processed external requests differs according to level, it does not mean users of higher level will obtain better service quality, since all external requests do not consume the same resources of the servo system, i.e. the size of the responses for individual external requests differ from each other, so processing a greater number of external requests of higher level does not mean that the servo system provides more resources to the external requests of higher level, and users of higher level may not necessarily enjoy better service quality, that is, the service waiting time perceived by these users is not necessarily shortened.
Another prior art, U.S. Pat. No. 6,728,748, utilizes a routing host to receive all external requests and classifies the external requests, then communicates with the routing host and proxies disposed in various servo systems through the adaptive policy engine connected between the routing host and multiple servo systems, and determines which category of external requests should be assigned to which servo system to be processed according to the attribute information of various servo systems returned from the proxies.
Though various methods of differentiated service are provided in the conventional arts, they basically belong to the differentiated service mode generated from the classification of the categories of the external requests as described in
Therefore, to provide better quality differentiated service, and to reduce the influence on the operation of the servo system caused by differentiated service, an integrated consideration of the aforementioned two factors has to be made: one is the priority of the external requests, and the other is the allocation of resources required by the external requests. Thereby, complete differentiated service can be provided.
Accordingly, an object of the present invention is to provide a system for providing differentiated service by using category/resource scheduling and a method therefor.
In the present invention, through designating different category weights to different external requests, external requests from users will obtain different qualities of differentiated service, especially in that the administrator of the servo system may grant different proportions of utilization rate of the servo system resources to clients of different categories, and the proportions of the servo system resources used by various categories of clients are determined in accordance with the designated category weights, thus the effect that different users obtain significantly differentiated servo system throughput and response waiting time can be achieved.
In addition, in the present invention, through effectively allocating the consumed resources for various resources of the servo system, that is, through maximally improving the utilization rate of various resources of the servo system, the effect of the bottleneck caused by a single resource on the utilization rate of other resources can be reduced, thus the effect of reducing the influence on the quality of the differentiated service caused by resource exhaustion and resource idling can be achieved.
Furthermore, the present invention is realized mainly through computer executable programs, therefore, when the invention is applied in the Internet environment, it can optionally be executed at relay points of the Internet or on the servers including the servo system directly. When executed at relay points, the present invention good differentiated service quality may be easily achieved without any change to user-end applications or the servo systems. Compared with the prior art, the present invention can be easily realized with less resources invested.
The features and practices of the present invention are described in detail below with preferred embodiments accompanied with drawings. To facilitate a further understanding of the objects, structure, features, and functions of the present invention, preferred embodiments are described below in detail.
Further scope of applicability of the present invention will become apparent from the detailed description given hereinafter. However, it must be understood that the detailed description and specific examples, while indicating preferred embodiments of the invention, are given by way of illustration only, since various changes and modifications within the spirit and scope of the invention will become apparent to those skilled in the art from this detailed description.
The present invention will become more fully understood from the detailed description given herein below for illustration only, and which thus is not limitative of the present invention, and wherein:
a is a schematic view showing the quality of differentiated service without applying a servo system for providing differentiated service by using category/resource scheduling according to a conventional technique.
b is a schematic view showing the quality of differentiated service applying a servo system for providing differentiated service by using category scheduling according to the conventional technique.
c is a schematic view showing the quality of differentiated service of the servo system for providing differentiated service by using category/resource scheduling according to the present invention.
a to 3f are main and detailed flow charts of the method for providing differentiated service by using category/resource scheduling according to the present invention.
a to 4k are schematic views showing the embodiment of the system for providing differentiated service by using category/resource scheduling according to the present invention.
The present invention provides a system for providing differentiated service by using category/resource scheduling and a method therefor, which are applied to schedule the processes of external requests 50 according to the classified category of and the resource to be consumed by the external requests 50, when a servo system 150 is ready to receive the external requests 50 from the Internet 100. The time points when the external requests 50 are sent to the servo system 150 to be processed are determined by the assigned category weight of and the resource required by the external requests 50 and the capacity of available resources of the servo system.
(1) Classifier 210. This is mainly used to analyze various external requests 50 submitted from applications of the other end of the Internet 100, and then compare the analyzed result to a service category policy table 250 and a request resource table 260 maintained by an explorer 240. The category classification, resource classification, and resource consumption proportion corresponding to each external request 50 can thus be obtained. Then, the manner how the external requests 50 are registered in request queues 220 is determined according to the information in the service category policy table 250 and the request resource table 260. Typically, the external requests 50 are registered in the category queue corresponding to the category classification in the request queue that is consuming the largest proportion of resources.
(2) Request queues 220. Typically, there is one or more request queues corresponding to different resources of the servo system 150 in the area of the request queues 220, and there are category queues corresponding to different category classifications in each request queue.
Assuming that there are N types of resources in the entire servo system 150, and there are M categories of the external requests 50. Then N request queues, e.g. the 1st resource request queue, . . . , the Nth resource request queue, corresponding to N types of resources of the servo system 150 will be generated in the request queues 220 of the category/resource scheduling differentiated service system 200 according to the present invention, and each request queue further includes M category queues, e.g. category queue 1, . . . , category queue M, corresponding to M categories of external requests 50.
(3) Scheduler 230. It includes one or more sub-schedulers 231 and a main scheduler 232.
The sub-schedulers 231 operate corresponding to the resource counter in the main scheduler 232 and the request queues, e.g. the 1st resource request queue, . . . , the Nth resource request queue, and they are mainly responsible for driving the corresponding sub-scheduler 231 to operate in accordance with the selection result to the resources from the main scheduler 232. Each sub-scheduler 231 has a category counter pointer (as shown in
The main scheduler 232 has a resource counter pointer (as shown in
Similarly, assuming that there are N types of resources in the entire servo system 150, and there are M categories of external requests 50. Then, there are N request queues (i.e. the 1st resource request queue, . . . , the Nth resource request queue), and there are M category queues in each request queue (i.e. the 1st category queue, . . . , the Mth category queue) as described above, therefore there will be N sub-schedulers 231 (i.e. the 1st resource sub-scheduler, . . . , the Nth sub-scheduler) in the scheduler 230 correspondingly, each sub-scheduler comprises M category counters, and there are N resource counters in the main scheduler 232 corresponding to the sub-schedulers 231.
(4) Explorer 240. It is used to pre-establish a situation of the category classification, resource classification, and resource consumption proportion of all external requests 50 that might be received by the servo system 150, and meanwhile calculate the proportion of individual resources of the servo system 150 before the servo system 150 formally starts to process the external requests 50. Once the explorer 240 completes the above data establishment and calculation, the entire category/resource scheduling differentiated service system 200 starts to initialize the request queues 220 and the scheduler 230, which includes generating the category queues of the request queues 220, and the category counters of the sub-schedulers 231 and the resource counters of the main scheduler 232 in the scheduler 230.
Two tables for recording information are generated after the operation of the explorer 240, which will be provided to the classifier 210 to classify the external requests 50 when they are received. One table is the service category policy table 250 for recording the category classification of the external requests 50, wherein the categories of the external requests 50 can be defined according to their content of the network layer or content of the application layer. The other table is the request resource table 260 for recording the proportion of consumed resources of the external requests 50.
a to 3f are flow charts of the method for providing differentiated service using category/resource scheduling according to the present invention. The main flow in
Before starting to operate, the servo system 150 pre-establishes the category classification, the resource classification, and the resource consumption of all external requests 50 in the servo system 150 through an explorer 240, and calculates the proportion of individual resources of the servo system 150 (Step 300).
After completing the above-mentioned operation, the explorer 240 starts the initialization for generating the category queues in the request queues 220, the category counters of the sub-schedulers 231, and the resource counters of the main scheduler 232 in the scheduler 230 (Step 400). The detailed initialization flow refers to the
After Step 400 is completed, the external requests 50 received from the Internet 100 are continuously analyzed through the classifier 210, then the service category policy table 250 and the request resource table 260 established and maintained by the explorer 240 are referred to know the corresponding category classification and resource consumption proportion corresponding to the current external request 50, and the current external request 50 is registered in the corresponding category queue of the corresponding request queue 220 accordingly (Step 500).
Then, the main scheduler 232 starts to select and drive the sub-scheduler 231 with the highest available resource proportion and the corresponding request queue in the servo system 150 to process the current external request (Step 600). If all the available resource proportions of the servo system 150 are the same at the beginning, the main resource can be randomly selected, and which category of the external requests 50 is to be processed can be selected according to the sequence of the category weights, or may be randomly selected at the beginning. But basically, the selection of resources and category weights is circularly processed with the deficit round robin scheduling algorithm on the whole. After resource category is determined, processable external requests are sent to the servo system 150 to be processed, and the resource counters, the category counters, and the corresponding category queues are adjusted according to the resource consumption proportions of the external requests (Step 700). The detailed flow of Step 700 is further illustrated with
Firstly, the resource counter pointer in the main scheduler 232 is moved to the resource counter corresponding to the selected servo system resource, and the category counter pointers in individual sub-scheduler 231 are moved to the category counters of the current category classification (Step 710). Confirm whether the external requests 50 still exist in the category queues of the current category classification in the request queues. (Step 720) If yes, further determine whether the available resource proportions in individual resource counters are greater than the resource consumption proportions. (Step 730) If the available resource proportions are confirmed to be sufficient, further confirm whether all available category proportions of the category counters of the current category classification in individual sub-schedulers are greater than individual resource consumption proportions (Step 740)? If there is no problem after the confirmation in Step 720, Step 730, and Step 740, it indicates that the current external request 50 is allowed to be processed, and the corresponding external request 50 is sent to the servo system 150 to be processed, and individual resource consumption proportions corresponding to the external requests 50 will be deducted from individual resource counters and the category counters of the current category classification of individual sub-schedulers 231 (Step 750).
If any of the Step 720, Step 730, and Step 740 cannot be confirmed, it indicates that the current external request 50 cannot be processed by the servo system 150, and must be adjusted. Therefore, it goes to the flow in
When the external requests 50 are continuously sent from the Internet 100, the entire category/resource differentiated service system 200 will continuously perform the aforementioned Step 500. And when the external requests 50 have not been processed still exist in the request queues 220, Step 600 and Step 700 will be performed repeatedly in a manner of round cycle. Every time a cycle of Step 600 and Step 700 is completed, it represents that an external request 50 is processed, that is, only one external request 50 is processed at a time. In addition, after all category classifications in the request queues are cycled once, a new round of cycle will begin, and the available category proportions corresponding to the category weights must be added to individual category counters 2311 in accordance with the predetermined category weights of individual category classifications.
It should be noted that after the servo system 150 completes the processing of the external requests 50, it typically generates a corresponding response to indicate that the process is finished, and represent that some resources will be released to be available. Therefore, the major flow of the entire
Referring to the detailed flow in
a to 4k show an embodiment of the present invention, wherein the aforementioned operation procedures of Step 300 to Step 500 are omitted, and the embodiment is illustrated only directed to how to process the external requests 50 by the category/resource scheduling differentiated service system 200 of the present invention.
a shows the state that the initialization of the category/resource scheduling differentiated service system 200 of the present invention is completed. It can be seen from the number of the resource counters 2321 of the main scheduler 232 shown in the drawing, there are three types of resources in the servo system 150 of the present embodiment, and after the initialization, the available resource proportions of all resource counters 2321 are set to 100. The external requests are predetermined to be classified into three categories, wherein the predetermined category weights are as following in sequence: the first category weight is 6, the second category weight is 3, and the third category weight is 1. Therefore, after the initialization is completed, there are three request queues in the request queues, namely the first resource request queue 221, the second resource request queue 222, and the third resource request queue 223, each of the individual request queues includes three category queues, namely the first category queues 221A, 222A, and 223A, the second category queues 221B, 222B, and 223B, and the third category queues 221C, 222C, and 223C. The resource request queues 221, 222, and 223 correspond to three sub-schedulers 231, namely the first resource sub-scheduler 231A, the second resource sub-scheduler 231B, and the third resource sub-scheduler 231C respectively. Each of the sub-schedulers 231A, 231B, and 231C has a category counter pointer 2310, and category counters 2311 corresponding to three request queues, wherein the available category proportions granted to the first category, the second category, and the third category are 60, 30 and 10 in sequence according to the relationship of category weights. The main scheduler 232 has a resource counter pointer 2320 and three resources counters 2321 corresponding to different. resources in the servo system 150.
As all proportions of available resources are the same (all are 100), the category/resource scheduling differentiated service system 200 randomly selects a first resource as a start, and the category selection is started from the first category, and in this embodiment it is started from the first category queue 221A. The resource counter pointer 2320 points to the resource counter 2321 corresponding to the first resource proportion, and the first resource sub-scheduler 231A representing the first resource will be driven. Meanwhile, the category counter pointers 2310 in all sub-schedulers 231A, 231B, and 231C will point to the category counters 2311 of the first category, then the external request 50 registered at the very beginning of the first category queue 221A in the first resource request queue 221 is ready to be processed, and the resource consumption proportions that this external request 50 consumes the first resource, the second resource, and the third resource are (6, 5, 3) respectively.
At this time, after the confirmation in Step 720 to Step 740, the external request 50 is allowed to be sent to the servo system 150 to be processed, the state of the entire category/resource scheduling differentiated service system 200 will be as shown in
Like the processing principle described above, the situation after the current external request 50 is sent to the servo system 150 is as shown in
But a situation occurs in
f and 4g provide another processing mechanism of the category/resource scheduling differentiated service system 200 according to the present invention. The situation is as shown in
h and
j and
The foregoing description is the technical content of the system for providing differentiated service using category/resource scheduling and the method therefor. The present invention is completely realized through computer executable programs, so it can be optionally executed on servers including servo systems directly, or be executed at Internet relay points on the Internet path through which the external requests 50 are sent to the servo system 150. Possible Internet relay points include gateways, routers, proxy servers, load-balanced servers, and the like.
The invention being thus described, it will be obvious that the same may be varied in many ways. Such variations are not to be regarded as a departure from the spirit and scope of the invention, and all such modifications as would be obvious to one skilled in the art are intended to be included within the scope of the following claims.
Number | Date | Country | Kind |
---|---|---|---|
094146975 | Dec 2005 | TW | national |
This application is a continuation-in-part patent application of U.S. application Ser. No. 11/222,770 filed on Sep. 12 2005, the entire contents of which are hereby incorporated by reference for which priority is claimed under 35 U.S.C. § 120. This non-provisional application claims priority under 35 U.S.C. § 119(a) on Patent Application No(s). 094146975 filed in Taiwan, R.O.C. on Dec. 28, 2005, the entire contents of which are hereby incorporated by reference.
Number | Date | Country | |
---|---|---|---|
Parent | 11222770 | Sep 2005 | US |
Child | 11434932 | May 2006 | US |