Skip to main content
Log in

Multicast video-on-demand service in an enterprise network with client-assisted patching

  • Published:
Multimedia Tools and Applications Aims and scope Submit manuscript

Abstract

Multicast Video-on-Demand (VoD) systems are scalable and  cheap-to-operate. In such systems, a single stream is shared by a batch of common user requests. In this research, we propose multicast communication technique in an Enterprise Network where multimedia data are stored in distributed servers. We consider a novel patching scheme called Client-Assisted Patching where clients’ buffer of a multicast group can be used to patch the missing portion of the clients who will request the same movie shortly. This scheme significantly reduces the server load without requiring larger client cache space than conventional patching schemes. Clients can join an existing multicast session without waiting for the next available server stream which reduces service latency. Moreover, the system is more scalable and cost effective than similar existing systems. Our simulation experiment confirms all these claims.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9

Similar content being viewed by others

References

  1. Aggarwal CC, Wolf JL, Yu PS (1996) A permutation-based pyramid broadcasting scheme for video-on-demand systems. In: Proceedings of IEEE Int’l Multimedia Systems, June

  2. Akbar MM (2002) Distributed utility model applied to optimal admission control and QoS adaptation in distributed multimedia server system and enterprise networks. PhD thesis, Department of Computer Science, University of Victoria, Canada

  3. Akbar MM, Manning EG, Watson RK, Shoja GC, Khan S, Li KF (2002) Optimal admission controllers for service level agreements in enterprise networks. In: Proceedings of SCI, pp 14–18. Orlando, July

  4. Almeroth KC, Ammar MH (1996) On the performance of a multicast delivery video-on-demand service with discontinuous VCR actions. IEEE J Commun 14(5):1110–1122, August

    Google Scholar 

  5. Almeroth KC, Ammar MH (1996) The use of multicast delivery to provide a scalable and interactive video-on-demand service. IEEE J Commun 14(5):1110–1122, August

    Google Scholar 

  6. Atlas A, Bestavros A (1998) Multiplexing VBR traffic flows with guaranteed application-level QoS using statistical rate monotonic scheduling. Technical Report, Boston University Boston, MA, USA

  7. Bagrodia R, Meyerr R et al (1997) PARSEC: a parallel simulation environment for complex system. UCLA Technical Report

  8. Boggia G, L-Mazzeo PC, Mongiello M (2005) Performance of batching schemes for multimedia-on-demand services. IEEE Trans Multimedia 7(5):920–931

    Article  Google Scholar 

  9. Cai Y, Hua KA (1999) An efficient bandwidth-sharing technique for true video on demand systems. In: ACM Multimedia’99, pp 211–214. Orlando, November

  10. Cai Y, Hua KA, Vu K (1999) Optimizing patching performance. In: Multimedia computing and networking, MMCN’99, January

  11. Cai Y, Tavanapong W, Hua K (2007) A double patching technique for efficient bandwidth sharing in video-on-demand systems. In: Journal multimedia application tools, vol 32, pp 115–136, 1 January

  12. Carter SW, Long DDE (1997) Improving video-on-demand server efficiency through stream tapping. In: Sixth international conference on computer communications and networks, (ICCCN1997), pp 200–207. Las Vegas, NV, USA, September

  13. Cormen T, Leiserson CE, Rivest R (1990) Introduction to algorithms, 2nd edn. Prentice-Hall, India

    Google Scholar 

  14. Dan A, Sitaram D, Shahabuddin P (1994) Scheduling policies for an on-demand video server with batching. ACM Conference on Multimedia 391–398, October

  15. Farhad SM, Akbar MM (2007) Multicast video-on-demand service in an enterprise network with client-assisted patching. In: IEEE Pacific Rim Conference, University of Victoria, B. C., Canada, August

  16. Gao L, Towsley D (1999) Supplying instantaneous video-on-demand services using controlled multicast. In: IEEE ICMCS’99, pp 117–121. Florence, Italy, June

  17. Guo M, Ammar MH (2004) Scalable live video streaming to cooperative clients using time shifting and video patching. In: IEEE Infocom, Hong Kong, March

  18. Guo M, Ammar MH (2004) Cooperative patching: a client based P2P architecture for supporting continuous live video streaming. IEEE International Conference on Computers, Chicago, IL, October

  19. Hlavacs H, Buchinger S (2008) Hierarchical video patching with optimal server bandwidth. In: ACM TOMCCAP, January

  20. Hua KA, Sheu S (1997) Skyscraper broadcasting: a new broadcasting scheme for metropolitan video-on-demand systems. In: ACM SIGCOMM, September

  21. Hua KA, Cai Y, Sheu S (1998) Patching: a multicast technique for true video-on-demand services. In: Sixth ACM Multimedia Conference, pp 191–200. Bristol, UK, September

  22. Hua KA, Tran DA (2005) Range multicast for video on demand. Multimedia Tools and Applications 27:367–391, May

    Article  Google Scholar 

  23. Islam MM, Akbar MM, Hossain H, Manning EG (2005) Admission control of multimedia sessions to a set of multimedia servers connected by an enterprise network communications. In: IEEE Pacific Rim Conference, pp 157–160, August

  24. Jin S, Bestavros A (2002) Cache-and-relay streaming media delivery for asynchronous clients. In: NGC

  25. Jung J, Lee D (1997) Harmonic broadcasting for video-on-demand service. IEEE Trans Broadcast 43(3):268–271

    Article  Google Scholar 

  26. Little T, Venkatesh D (1994) Prospects of interactive video-on-demand. In: IEEE Multimedia, pp 14–23, August

  27. Ma H, Shin KG (2001) A new scheduling policy for multicast true vod service. In: PCM2001, vol 2195, pp 708–715, October

  28. Ma H, Shin KG (2002) Multicast video-on-demand services. ACM Comput Commun Rev 32(1):31–43

    Article  Google Scholar 

  29. Ma H, Shin KG, Wu W (2005) Best-effort patching for multicast true VoD service. Multimedia Tools and Applications 26:101–122, May

    Article  Google Scholar 

  30. Poosala V (1997) Zipf’s Law. Technical Report, Bell Laboratories. http://cs.wisc.edu

  31. Sarhan NJ, Das CR (2003) A simulation-based analysis of scheduling policies for multimedia servers. In: 36th Annual simulation symposium, part of the advanced simulation technologies conference, pp 183–190, March 30–April 2

  32. Sen S, Rexford J, Towsley D (1999) Proxy prefix caching for multimedia streams. In: INFOCOM ’99, vol 3, pp 1310–1319, March

  33. Tanenbaum AS (2003) Computer networks, 4th edn

  34. Real Time Streaming Protocol: RFC 2326 (1998) http://www.ietf.org/rfc/rfc2326.txt. Accessed 11 Oct 2008, April

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to S. M. Farhad.

Appendix: Admission control algorithm

Appendix: Admission control algorithm

The admission controller runs two parallel threads: online request processing thread and batch request processing thread. The online thread processes movie request, VCR, end session and select another patching parent request. The request that cannot be patched by the thread is batched and the other thread deals with these request after batch interval which is in progress. The batch processing thread schedules the batches of the requests by forming multicast groups whenever possible. If a group cannot be formed then a multicast group is formed with only one client with a possibility that other clients may join the multicast session if patching is possible later on.

Before describing the admission control algorithm,we first present the requests and replies to and from the different components of enterprise network and some data structures that are necessary to get an overall idea of the algorithm.

1.1 A.1 Requests and replies

Each switch, server, session, client, movie are distinguished to the Admission Controller. The admission controller maintains a database of the resources and its usage in the system. The decision about a client-request will be made by consulting these statistics. Session id, server id, session start-time and information about regular clients, patched clients and patching parents are the several attributes of a session. Client requests and responses of the Admission Controller can be carried out by using widely used Real-time Streaming Protocol [34]. The protocol commands that we use are as follows:

  • SETUP: Each client will place request for a movie to the Admission Controller through this message. The message contains the requested node id and movie id. In return the admission controller will provide a session identifier through RTSP command.

  • PLAY: When the client gets a session id from the controller it can now send this command to play out the movie. The command takes the parameters like the movie id, session id and also the play point of the movie or a range of play point. As the command takes a play point, the VCR request can also be initiated through the same command.

  • TEARDOWN: Each client will leave a session by sending this command to the Admission Controller. The command contains the information about the session id.

  • OPTIONS: The child client, facing patch stream loss, uses this command to request the Admission Controller to select an alternate patching parent. The Admission Controller will find out an alternative patching parent and send the parent address to the respective patched child client.

  • RTSP: All the responses the Admission Controller will be this command. In response to the SETUP request of a client, the controller returns session id, the multicast address of the accepted session and also the patching parent address if patching is necessary. If there is limitation of resources it returns error. For the PLAY command, the controller returns the accepted play point range of the movie. If the requested play point cannot be serviced then the current play point is returned which will be regarded as VCR action blocking. In response to the OPTIONS command the controller will returns the new patch parent address.

1.2 A.2 Data structure

Necessary data structures and procedures required for admission control algorithm are as follows:

network: This data structure represents the enterprise network for the multicast VoD system. It is a graph with multiple nodes and connecting links. It must contain information about the servers and clients connected with the network.

multicastTrees[ ]::

This is an array of shortest path trees rooted at the servers. There is one shortest path tree for each server.

serverSource[ ]::

This is an array of nodes to which servers are connected. No more than one server is connected to a node.

batchList[movie-id]::

This is an array of the waiting queues of movies. The client requests that are not satisfied readily by client-assisted patching scheme are queued to corresponding movie queue. The Admission Controller will handle these requests after each batch interval expires.

1.3 A.3 Procedures

The main procedure has already described in Section 2.4. Now the sub-procedures and relevant other pseudo code are presented in the followings:

1.4 A.4 Complexity analysis

Consider the following parameters for an Enterprise Network serving multicast VoD service as shown in the Table 2. We consider MPEG-2 as the movie file format which uses Variable Bit Rate (VBR). We assume server data rate as Constant Bit Rate (CBR) or an average data rate to do the following calculations. However, Statistical Multiplexing can be used in case of VBR data traffic [6].

Table 2 Parameters of enterprise network

As the movie length and the batch interval are almost constant for the system so S has become pseudo constant term in this scenario.

The procedure Admission-Control consists of mainly two threads: one is Online-Requests-Processing Thread and the other is Batched-Requests-Processing Thread. So, its runtime or complexity depends on the complexity of these threads and we present the complexity of those threads first.

Before starting the threads the procedure does some initialization tasks by calling procedure Init-Admission-Controller. This procedure computes the shortest path trees rooted at each server and there are s servers in the system. Dijkstra’s algorithm [13] is used to compute the shortest path trees and it takes O(ElogV) computation. Thus, the Procedure Init-Admission-Controller requires total O(sElogV) computation.

Now we discuss the complexity of Batched-Requests-Processing-Thread. The batched requests are those requests that cannot be satisfied by patching scheme immediately after requesting. The thread first sorts an array using Quick Sort [33] to get the scheduling order (MFQLF) of movies and there are m number of movies [13, 27]. Thus sorting takes \(O(m \lg m)\) computation. After sorting, the thread admits the movie requests one by one according to the scheduled order (MFQLF). The acceptance or rejection depends on the available resources. There can be at most \(n_\text r\) requests for a movie as there are total \(n_\text r\) number of clients who are seeking admission. For each movie request, the procedure admitClient finds out a multicast session that has the minimum shortest path distance from the client to the multicast tree of that session and there can be at most S sessions of a movie. Finding the availability of resources for admitting a request requires the cost of traversing a multicast tree which is O(E) computation for each session. Thus, the procedure admitClient takes O(SE) computation and the main loop of the thread has total \(O(n_{\text r}SE)\) computation. Therefore, the total complexity of Batched-Requests-Processing Thread is \(O(m \lg m + n_{\text r}SE)\) i.e. \(O(m \lg m + n_{\text c}E)\).

The complexity of Online-Requests-Processing Thread has the following components:

  • The first procedure Process-Movie-Request of the thread again consists of two sub-procedures: selectPatchSession and selectPatchingParent. So, its complexity depends on the complexity of those procedures. They are discussed below:

    • Procedure selectPatchSession finds out a patchable session from S sessions of that movie. It also ensures if resources are available along the path from the client to the multicast tree of that session which requires O(E) computation. Thus, the complexity of the procedure is O(SE) i.e. O(E). This is the resource required for regular stream.

    • Procedure selectPatchingParent finds out a patching parent of a client from the current members of a session. It first finds out the shortest path tree of the enterprise network rooted at the client node that initiates the request. So, it takes O(ElogV) computation to compute the shortest path tree as discussed earlier. After computing the shortest path tree, it finds out the shortest path client as a patching parent from the participants of that session. Finding shortest path client in a multicast tree requires O(E) computation and the average number of clients per multicast session is k. Thus it takes another O(kE), \(O(n_{\text c}E\)) computation. Therefore, the run time of the procedure selectPatchingParent is \(O(E\log V + n_{\text c}E)\).

    Therefore, the procedure Process-Movie-Request requires \(O(n_{\text c}E + E\log V + n_{\text c}E)\) i.e. \(O(E\log V + n_{\text c}E)\) computation.

  • Procedure Process-VCR-Request consists of two sub-procedures: admitVCRRequest and selectPatchingParent. The procedure admitVCRRequest performs in a similar way as the procedure admitclient does. As we have discussed earlier in this section, the complexity of those sub-procedures are O(SE) and \(O(E\log V + n_{\text c}E)\) respectively. Thus, the procedure needs total \(O(SE + E\log V + n_{\text c}E)\) i.e. \(O(E\log V + n_{\text c}E)\) computation.

  • The complexity of procedure Process-SessionEnd-Request has the same complexity as procedure selectPatchingParent. So, the complexity of this procedure is \(O(E\log V + n_{\text c}E)\).

Thus, the complexity of Online-Requests-Processing Thread will be the sum total of the complexity of its four procedures. So far we consider the computational complexity of processing one request for these procedures. There can be at most \(n_\text r\) online requests of each type. So, the complexity of the thread is \(O(n_{\text r}E\log V + n_\text r n_{\text c}E)\) i.e. \(O(n_{\text c}E\log V + n_\text c^2E)\).

The complexity of procedure Admission-Control is the sum total of the complexity of its two threads and the initial procedure. So, the complexity of the procedure is \(O(sE\log V + m \lg m + n_{\text c}E + n_{\text c}E\log V + n_\text c^2E)\) i.e. \(O(sE\log V + n_{\text c}E\log V + n_\text c^2E)\). Therefore, the runtime of the procedure increases with the increase of the network size, the number of clients and the number of movies in the system.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Farhad, S.M., Mostofa Akbar, M. & Humayun Kabir, M. Multicast video-on-demand service in an enterprise network with client-assisted patching. Multimed Tools Appl 43, 63–90 (2009). https://doi.org/10.1007/s11042-008-0257-5

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11042-008-0257-5

Keywords

Navigation