Abstract
The current approach used to obtain official television channel statistics is based on polls combined with specialized reporting hardware. These are deployed only on a small scale and batch processed every 24~hours. With the enhanced capabilities of present-day IPTV set-top-boxes, network operators can track channel popularity and usage patterns with a degree of precision and sophistication not possible with existing methods. One such network operator, Altibox, is the largest provider of IPTV in Norway with a deployment of over 320,000 set top-boxes. By tapping into the high-volume stream of channel zap events sent from these set-top boxes, very accurate viewership can be obtained and presented in near real-time.In this paper, we examine two programming paradigms for implementing applications to compute viewership based on channel zap events. One based on a general-purpose programming language (Java) and the other based on a highly specialized event stream processing language (EPL). An important characteristic of this application is stateful event processing. We are interested in exploring the trade-offs between these two implementations, to determine their suitability for such applications. Specifically, we are interested in the performance trade-off and the program complexity of each implementation.Our results show that a pure Java implementation has a significant edge over EPL in terms of performance. Although, our numbers cannot be used to draw a general conclusion, it seems indicative that an event stream processing engine would suffer more than a general-purpose language as query complexity grows. We conjecture that this is because it is easier to construct custom data structures for the specific problem in a general-purpose language like Java. In terms of program complexity, EPL has a slight edge in all metrics, and a significant edge when event streams can be reused to perform more complex processing, indicating that less effort is necessary to extend functionality.
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have