ubiQoS Architecture

The components of the ubiQoS middleware present a similar architecture, shown in Figure 2, designed by composing different modules that provide different functionality. The ubiQoS gateway is the most complete component including all basic modules. The other ubiQoS components have more limited duties and include only a subset of the gateway functions. In particular, ubiQoS proxies do not need LDAP and discovery servers; ubiQoS client/server stubs only provide functionality for gateway discovery and RTP flow receiving/sending.

Figure 2. The modular architecture of ubiQoS components.

The QoS Monitoring module observes the state of resources and services that are local to the ubiQoS component. The module extracts and works on monitoring information about VoD flows from RTCP sender/receiver reports. It also achieves the visibility of Java Virtual Machine (JVM) indicators, e.g., method invocation and object/memory allocation for any Java thread, via the JVM Profiler Interface, an experimental API of the Java 2 platform for the monitoring of Java-based applications. In addition, this module monitors system indicators, e.g., CPU load, file system occupation, network packet collision rate, by exploiting the Java Native Interface to integrate with platform-dependent monitoring mechanisms, e.g., the psapi.dll on Windows NT and pstat on Unix. Other details about our Java-based module for QoS monitoring are available here.

The Admission Control module maintains information of all current VoD flows. Any entry include a unique identifier for the VoD flow, a unique identifier for the VoD content, a tuple of QoS requirements associated with the flow, the identifiers of previous and next ubiQoS components in the distribution path. Depending on information obtained from the monitoring module and on the current state of already accepted flows, the module chooses to accept or reject new VoD flow requests. The Accounting module exploits the monitoring module to keep a log of the QoS level provided to the different receivers. It is in charge of authenticating users and associating them with the requested VoD flows and the corresponding accounting information. For any couple , accounting data record possible modifications of QoS levels during provision. These data are stored in log files local to the ubiQoS components and can be processed off-line, for instance when billing users.

The QoS Manager module coordinates the other local modules and decides the QoS level for the following ubiQoS components in the VoD path. During the negotiation phase, it combines QoS requirements from user/terminal profiles and reservation data from the admission control module. On this basis, it decides to enforce a specific point in the space of possible values for QoS parameters, e.g., frame rate, size and resolution. Usually, an interval for QoS parameters is permitted; the manager module chooses the QoS point to maintain by considering the resource consumption policy of the local host. ubiQoS currently provides two simple extreme policies. The thrifty one enforces QoS to minimize resource consumption according to a specified function cost. The greedy one chooses the QoS that reserves the maximum local resource usage. In the latter case, new VoD flow requests dynamically modify the QoS point of accepted flows by preempting previously committed resources. We are extending the set of policies of the QoS manager module: in particular, we are considering differentiated behavior depending on receiver priority. At provision time, the manager module can modify the provided QoS level by moving in the QoS space to maximize a cost function with weighted QoS parameters (depending on user/terminal profiles). For instance, a device with limited display capabilities can specify a frame rate weight larger than frame resolution to indicate a preference in degradation of image quality instead of frequency decrease.


 
Page updated on
In case of problems, or if you find any bug, please contact us.