Quick viewing(Text Mode)

Web Based EPG

Web Based EPG

2001:024

MASTER'S THESIS

Web Based EPG

Stefan Johansson

Civilingenjörsprogrammet Datateknik

Institutionen för Systemteknik Avdelningen för Programvaruteknik

2001:024 • ISSN: 1402-1617 • ISRN: LTU-EX--01/024--SE Preface This master thesis was begun during the summer of 1999 and was performed at Telia Research in Nynäshamn, however the major part of the people involved in the project that this master thesis area is a part of, are placed at Telia Research in Farsta. Since this work is just one of many aspects in that project, I hope that my conclusions can participate in the decision for choosing the development platform and also in the creation of the electronic program guide.

I would like to thank both Niclas Klack and Magnus Nilsson who where my supervisors at Telia Research. I had Magnus during the first two month of my master thesis and Niclas during the rest of the time. From them I got valuable feedback and support during my work. I also would like to thank my examiner, Roland Parviainen at Luleå University of Technology, for shown interest and support. Abstract

As the number of available channels is increasing, new ways to help users find programs they want to se has developed. Instead of using a paper based TV-guide or the , users can use an electronic program guide to find the shows they are interested in.

The Swedish existing web based EPG (Electronic program guide) that where found, are all very similarly regarding both interface and functions, and the overall function is the one that shows what is on all the channels, right this second. The channel information for these channels can be found in several companies, but the most interesting is TVData, Infomedia and Avisa. To connect the database containing the channel information with the server holding the EPG, a database driver is required. The most suitable for this among the JDBC drivers, are the Native-API partly-Java driver and for ODBC, the Two-tier-architecture. Before constructing an EPG, a decision regarding which platform to chose, needs to be made. The evaluated platforms are the web based, OpenTV and MediaHighway. When comparing web based EPG with EPGs from OpenTV and MediaHighway. There are more advantages for using web based tools when creating an EPG, like no licence and that the developing language is well known. But OpenTV and MediaHighway are better prepared against a large increase of users. Since they broadcast there contents all the time.

New products that already contain an EPG, are products like TiVo and ReplayTV. These products can be seen as the future VCR as they have several interesting functions and store all the movies on an internal hard disk. Since the products from TiVo and ReplayTV have very similarly functions and price. It will in my opinion be how user-friendly their interfaces for their different functions are, that will separate these two. These products that can be seen as local-on-demand also have more advantages compared with server based -on-demand. Sammanfattning Allt eftersom de antal kanaler som blir tillgängliga för hushållen ökar hela tiden. Kommer behovet av ett hjälpmedel för att hitta de önskade programmen att behövas. Istället för att använda sig av en pappers baserad TV-guide eller texttv, så kommer en elektronisk TV-guide, dvs en elektronisk program guide att användas. Med en sådan kommer användaren kunna söka bland kanalerna genom att t ex ange dag, kanal, kategori för att hitta det önskade programmet.

De webbaserade elektroniska program guider som idag finns i Sverige, är väldigt lika vad gäller både utseende och funktion. Den gemensamma funktionen som de har är att de kan visa vad som sänds just nu på alla kanaler. Själva kanal informationen till dessa elektroniska program guider finns på flera ställen, men de mest intressanta bolagen är TVData, Infomedia och Avisa. För att kunna koppla en databas med sådan information till en server där EPG:n finns, krävs det en databaskoppling. Den mest lämpliga av JDBC kopplingarna var Native-API partly-Java och för ODBC, Two-tier-architecture. Innan man skapar en EPG bör man fundera vilken platform man skall välja. De platformar jag har utvärderat är den webbaserade, OpenTV och MediaHighway. Det är flera fördelar för att utvecklingen skall ske på den webbaserade platformen. Som t ex att det inte finns någon licenskostnad och språket är väl känt. Dock är OpenTV och MediaHighway bättre förberedda när det gäller många samtida användare. Eftersom de broadcastar ut sitt innehåll hela tiden.

Nya produkter som redan innehåller en EPG är t ex TiVo och ReplayTV. Dessa kan ses som framtidens videoappart, dock med fler intressanta funktioner samt att de lagrar alla program på en hårddisk. TiVo och ReplayTV har nästa samma funktioner och samma pris. Så vad som kommer att skilja dessa två är hur användarvänliga deras funktioner kommer att uppfattas. Dessa produkter kan ses som local-on-demand och har även flera fördelar jämfört med serverbaserad-on-demand. Contents ______

Table of Contents

1 INTRODUCTION...... 1 1.1 About Telia ...... 1 1.2 Background...... 1 1.3 Purpose ...... 1 1.4 Objectives ...... 2 1.5 Demarcation...... 2 1.6 Chapter description...... 3 2 INTRODUCING ...... 4 2.1 Analogue Television...... 4 2.2 ...... 4 2.3 Distribution networks ...... 5 2.3.1 Terrestrial ...... 5 2.3.2 Satellite ...... 5 2.3.3 Cable...... 6 2.3.4 Back channel ...... 6 2.4 Future alternatives ...... 6 2.4.1 ADSL...... 6 2.4.2 Mains ...... 7 2.4.3 VDSL...... 8 2.4.4 Ethernet LAN...... 8 2.4.5 High-Quality ATM...... 8 2.5 Television improvements...... 9 2.5.1 TV ...... 9 2.5.2 Enhanced TV ...... 9 2.6 Television standards ...... 9 2.6.1 Television system ...... 10 2.6.2 Frame creation ...... 11 3 STANDARDS...... 12 3.1 NorDig...... 12 3.2 DVB ...... 12 4 SET-TOP BOX...... 13 4.1 Types of set-top boxes ...... 13 4.2 Future set-top box...... 13 5 VIDEO-ON-DEMAND ...... 14 5.1 The first VOD network...... 14 5.2 TiVo & ReplayTV...... 14 5.2.1 TiVo ...... 15 5.2.1.1 Connections ...... 15 5.2.1.2 Back panel...... 15 5.2.1.3 ...... 16 5.2.1.4 Description of functionality...... 17 5.2.2 ReplayTV...... 18 5.2.2.1 Remote control...... 18 5.2.2.2 Description of ReplayTVs functionality ...... 19 5.2.3 Comparison chart ...... 20 5.2.4 Conclusions...... 22 5.3 Protocols ...... 22 5.4 Server based vs local based video-on-demand...... 27 5.4.1 Advantage for local based system compare to server based system ...... 27 5.4.2 Disadvantage for local compare to server based...... 27 5.4.3 Conclusions...... 27 5.5 Improvements for server based video-on-demand...... 28 5.5.1 Proxy caching...... 28

Web based EPG Contents ______

5.5.2 Playback restart...... 29 5.5.3 Skyscraper multicast ...... 30 6 EPG ...... 31 6.1 Transmitting EPG information to a STB ...... 31 6.2 Channel Information...... 31 6.3 Telia Infomedia...... 32 6.4 Different platforms for EPG ...... 33 6.4.1 OPENTV...... 34 6.4.2 MEDIAHIGHWAY...... 35 6.4.3 Web based ...... 36 6.5 Comparing these EPG platforms with web based EPG ...... 36 6.5.1 The market...... 38 6.5.2 Conclusions...... 38 6.5.3 Future ...... 39 7 DATABASE ...... 40 7.1 Database Models ...... 40 7.1.1 Flat file...... 40 7.1.2 The Hierarchical Model...... 40 7.1.3 The Network model ...... 40 7.1.4 The Relational Model...... 40 7.1.5 The Object-Oriented Model...... 40 7.1.6 The Object-Relational Model ...... 41 7.2 DBMS...... 41 7.3 Database connection...... 41 7.3.1 JDBC ...... 41 7.3.1.1 Drivers ...... 42 7.3.1.2 Performance...... 43 7.3.1.3 Conclusions...... 44 7.3.2 ODBC ...... 44 7.3.2.1 Drivers ...... 45 7.3.2.2 Conclusions...... 46 8 CONSTRUCTION OF THE EPG ...... 47 8.1 Language for EPG...... 47 9 THE WEB BASED EPG PROTOTYPE ...... 49 9.1 Language ...... 49 9.2 Architecture ...... 49 9.3 Components ...... 49 9.4 The EPG interface ...... 50 10 FUTURE WORK ...... 52

11 CONCLUSION AND DISCUSSION ...... 53

12 REFERENCES...... 54

APPENDIX ...... 58 Existing web based EPG ...... 58 Script environments for creating EPG ...... 59 ABBREVIATIONS...... 64 Figures ______

Figures

Figure 2-1 Illustration of Nipkows Television system [2]...... 4 Figure 2-2 Back channels for distributed networks ...... 6 Figure 2-3 The construction of ADSL network [6]...... 7 Figure 2-4 The Architecture for Digital Power Line [7] ...... 7 Figure 2-5 The principle of comability [1] ...... 10 Figure 2-6 The extension of television standards [71] ...... 10 Figure 2-7 Recreation of frame [1] ...... 11 Figure 3-1 Adoption of DVB standards world-wide [70] ...... 12 Figure 4-1 Example of a set-top box [57]...... 13 Figure 5-1 Satellite receiver, cable box and a VCR connected to a TiVo STB. [22] ...... 15 Figure 5-2 Back panel of the TiVo STB [23]...... 15 Figure 5-3 TiVos remote control [20]...... 16 Figure 5-4 TiVos EPG [21]...... 17 Figure 5-5 ReplayTVs remote control [26]...... 18 Figure 5-6 ReplayTVs EPG [59]...... 19 Figure 5-7 ReplayTVs STB [26]...... 20 Figure 5-8 TiVos STB [20]...... 20 Figure 5-9 Internet multimedia conference protocols [33]...... 22 Figure 5-10 Example of IP multicast protocols [39]...... 23 Figure 5-11 RTSP Client / Server Communication: Standard UDP Mode [34]...... 26 Figure 5-13 Smoothing model [67] ...... 28 Figure 5-14 Video-on-Demand system model [68]...... 29 Figure 5-15 An Example of Skyscraper transmission schedule [69] ...... 30 Figure 6-1 Topology of a STB software stack [77]...... 34 Figure 6-2 The MediHighway software architecture in the STB [80] ...... 35 Figure 6-3 The Europeean market for middlewares [79] ...... 38 Figure 7-1 Components of DBMS [42]...... 41 Figure 7-2 Java drivers [44]...... 42 Figure 7-3 Java drivers [44]...... 42 Figure 7-4 The relationship between the ODBC components. [65]...... 45 Figure 7-5 One-tier-architecture [66] ...... 45 Figure 7-6 Two-tier-architecture [66]...... 46 Figure 8-1 The Servlet life cycle [75]...... 47 Figure 9-1 The for the EPG...... 50 Figure 9-2 Frames in the EPG ...... 51 Figure 10-1 Tjohoo´s EPG [60]...... 58 Figure 10-2 TVProgram.nu´s EPG [61]...... 58 Figure 10-3 DagensTV´s EPG [62]...... 58 Figure 10-4 SvD´s EPG [63] ...... 58 Figure 10-5 Spray´s EPG [64]...... 58 Figure 10-6 Aftonbladet´s EPG [81] ...... 58 Figure 10-7 EPG overview...... 59 Figure 10-7 The build-in components in ASP [54]...... 59 Figure 10-8 A COM object [52]...... 61 Figure 10-9 Application accessing COM objects [52] ...... 61 Figure 10-10 ColdFusion application processing [72] ...... 62

Web based EPG Introduction ______

1 Introduction

1.1 About Telia Telia is a government-owned telecom company in Sweden. It was established in 1854 and became a corporation in 1993. Telia will be a public limited company during the summer of 2000, but the government will in the initial stage have the share majority. Today there are approximately 30000 employees working at Telia and their organisation consists of five different business areas. These business areas are Carrier & Nät, Enterprises, Företag, Mobil and Privat. In 1991 Telia created Telia Research AB, a company that would be able to meet the fast changes in the telecom business. This company has about 300 employees and offices placed in Malmö, Nynäshamn, Farsta and Luleå.

The task for Telia Research are according to their own brochure, to develop new product- and business-concept based on strategic breakthrough in the information- and communication-technology, and to support Telias business area in the productification of these concepts. Telia Research has for the moment three different research and development areas. These areas are communication services, information services and services. My master thesis has been performed at Telia Research in Nynäshamn, in an area called Hemmet & Media, which is a part of the communication services area.

1.2 Background The people in Sweden had during a long time only access to two different channels, SVT1 and SVT2. All information about the programs that where transmitted in those channels, could be found in a newspaper. Since the people only had to search through information for two channels, it was no problem to find the show he/she wanted to watch. But when it was possible to transmit channels through satellite and cable, special paper based TV-guides, was created. So the people would have all the channel information gathered at one place. Since the number of channels that people subscribe to continues to increase, a new way to find the desired program has been developed. Instead of using the paper-based guide, an EPG (Electronic Program Guide) can be used. With the electronic program guide the user will have the possibility to search for programs using for example: program category, channel or the start time for the program. Today there exist a number of different electronic program guides, some of them are web based guides and exist on the Internet. Others like Telias cable company, Comhem have an electronic program guide, which have been constructed using an application program interface from OpenTV.

Some of the channels that are sent can either be coded or transmitted with digitally signals. To be able to watch those channels, people will need a STB (Set-Top Box) that convert the digital signal into an analogue signal and if needed decodes the signal. A new type of set-top boxes has been developed from TiVo and ReplayTV. These boxes are a combination between an ordinary set-top box and a VCR, but with more functions and these products are predicted to exist in almost every home in the future. The boxes also have an EPG, and as the areas of use for the EPG grows, people will certainly in a short time be familiarly with this type of application.

1.3 Purpose The project at Telia Research that this master thesis is performed in are involved in programs over the Internet protocol. They are interested in offering an electronic program guide that is made with web based tools, so people easily can find the program they want to watch. Since several special application program interfaces for this kind of applications exist on the market today, but are intended for other platforms. An evaluation regarding the areas concerning the web based electronic guide needs to be done. This involves investigation of where the channel information can be found and which database connection to prefer. Also perform a comparison between an

Web based EPG 1 Introduction ______electronic program guide constructed with web based tools and those using some of the application program interfaces from OpenTV or MediaHighway. The last area involves investigating the existing web based electronic program guides on the net today and finally constructing my own electronic program guide with web based tools.

With server based video-on-demand, users can choose from a wide area of programs and the concept may act as the future video store. But since the number of channels that each household is subscribing are likely to increase, the future households will have a large number of programs to choose between and the need for server based video-on-demand might be question. Products like TiVo and ReplayTV, which are set-top boxse that have functions that can search for programs and give suggestions among the programs that are broadcast, needs to be evaluated. These products save all the content on an internal hard disk and can be seen as local video-on-demand. So a comparison between server based video-on-demand and local video-on-demand is also required.

1.4 Objectives The following tasks are the objectives with this master thesis.

· Examining existing EPGs and databases with channel information

· Investigate different types of database connections

· Compare web based EPG with EPGs developed for other platforms

· Evaluate TiVo and ReplayTV and compare these with server based video-on-demand

· Construct an EPG

1.5 Demarcation There are three ways to transport the EPG and the channel information to the users. One way is to have the EPG and the channel information transmitted with the same stream as the audio and the video. This is how the cable companies are doing it today. Another way is to just send the EPG with the audio and video stream, and have all the channel information sent to the user, using IP. Which users will received by a modem in the set-top box. The final way would to have both the EPG and the channel information sent to the user that way.

Since the project that I am performing this master thesis in will use that last alternative, my report is based on that procedure.

Existing EPGs and the channel information I have only searched for existing web based EPGs that are used in Sweden and the focus regarding companies that sell channel information, has been at companies existing in Sweden.

Database connections Several different ways to connect to database from a web page has been investigated, but a more thoroughly investigation has been done with the different types of drivers of JDBC and ODBC.

EPGs developed for other platforms I have based my evaluation at more generally differences between them. Since I did not have access to OpenTV or MediaHighway, and a technically difference in depth would have taken to much time.

TiVo & ReplayTV It was my intention to buy and fully exam these two products. But after contacting both TiVo and RepalyTV, it turned out that none of them are selling their products to customer outside the U.S. Because of this I have not been able to fully examine these devices. I have based my conclusions from documents that both manufactures have on their web addresses and by contacts with these

Web based EPG 2 Introduction ______companies. Since TiVo had more information about their product, my report is based a little bit more on TiVos functions compared to ReplayTVs. According to ReplayTV, the model 2020 is now the only one available. Since the other models 2001, 2003, and 2005 have been discontinued. My evaluation of their product was finished when I discovered their new model. Therefor I have just added the differences that the model 2020 has in the table.

1.6 Chapter description Section 2 gives an introduction to the television terminology. Here the existing techniques for transmitting television programs and some future ways are explained. Chapter 3 describes some organisations that are working with standards mainly in the area of digital television. A short description of a set-top box is done in section 4 and some text on the future box.

The evaluation of TiVo and RepalyTV is done in chapter 5 and also the comparison between these two products and the server based video-on-demand system. I have also given some suggestions how to improve the video-on-demand system. Section 6 contains the databases with channel information and the comparison between the web based electronic program guide and electronic program guides created with OpenTV API and MediaHighway API. This section also describes some general information about the information sent to the electronic program guide.

Chapter 7 gives an introduction to different types of databases before the evaluation of different database connection is done. I have concentrated my evaluation to drivers from JDBC and ODBC. In the appendix there is also a description of some of the most common database connections. In Chapter 8 and 9 I give an evaluation about which web based tool to use for creating an EPG and I also explain my EPG construction. The Examination of the existing EPGs is shown in the appendix.

Web based EPG 3 Introducing Television ______

2 Introducing Television

The English word television, which has the same meaning in the Swedish language, is compound by the Greek word tele and the Latin word visus [1]. Tele means distant and visus means vision, and a translation of televisus into Swedish would be fjärrsyn.

Households today can receive television signals by three different ways. It is through satellite, cable and terrestrial broadcast. A major part of these transmissions are analogous, but it is possible today to receive digitally transmissions in all three areas. The television has in our society become one of the products that exist almost in every home. Its roll as an entertainment medium has grown as more channels and new functions have become available. One of the first kinds of interactive services was teletext. This gave users access to news, sport results and other type of information. The future will certainly offer more sophisticated interactive services then teletext.

2.1 Analogue Television The technique that is used today, regarding how a picture is read, is based on the principle of Nipkow. Paul Nipkow (1860 - 1940) was a German University student when he in 1884 patented and proposed the world's first electromechanical television system [2]. The system, presented in figure 2-1 was based on a disc that was perforated with holes that together formed the shape of a spiral. To transfer an image, it will first be projected on the disc by a lens system. When the disc is rotating, each perforated hole will scan a line of the image and send that light variation to a selenium cell, placed behind the disc. The disc rotates until the whole image is scanned. To reconstruct the image at a receiver, the receivers disc has to be synchronised with the disc at the transmitter. When the first line of the image is scanned and received by the selenium cell, that light variation will be transported by an electric signal to the receiver. That signal will control a lamp that will vary its brightness to display the image. When both discs are rotating fast, the receiver will not be able to apprehend that the image is in fact divided.

Figure 2-1 Illustration of Nipkows Television system [2]

Other important inventions that also have had great impact on today’s television system are for example the cathode ray tube. This was developed in the beginning of the nineteen-century. Beside the electrical system where there also a mechanical system. It was the mechanical system that first where able to transmit moving pictures. It was done in 1925, but fifteen years later the mechanical system had to acknowledge its defeat against the electronic system.

The first transmissions that where performed did not contain any colour. In Sweden could the first colour transmission be performed in 1968.

2.2 Digital Television Digital television has been broadcast through cable and satellite in Sweden since 1997. The terrestrial broadcast, which is controlled by the government, got its breakthrough in the spring of 1997 when the Swedish government decided to introduce digital terrestrial broadcast [3]. Today almost half of the

Web based EPG 4 Introducing Television ______

Swedish population has access to that kind of broadcast. The digital system have the ability to create duplex communications and with that the possibility to make interactive services.

To use digital signal instead of analogous implies several advantages. The frequency range that one analogous signal use could be used by between four to six digital signals. There are several reasons for this; one is that the compression of the digital signal is more efficient compare to analogous compression [M. Andersson, Personally communication, 17 Jun 1999]. Other advantages are that the digital signals are more resistant against interference. If a bit have been affected by interference, it can be recreated, as long as it can be identified. Could it not be identified then it can not be used. Analogous signals with interference can always be recreated but not to the same standard as it was sent. This means that interference will always have negative qualities affect both regarding the picture and the sound when transmitting with analogous signals. By using digital signals both the picture and the sound quality will be improved, since some interference can be handled. Digital signals can also be transmitted in random order since they will be reassembled at the receiver. This is not possible with analogous signals, since they have to be received in the same order as they were sent. Otherwise the receiver can not interpret the signals correctly.

The television display is created by small dots that can have different combinations and strength of the colours red, blue and green. How often the frame is updated depends on which system is used. An analogous television has no memory of what frame latest was displayed, that’s why the whole frame has to be updated every time. With digital signals, only the changes from the previous frame have to be sent. This is accomplished by a memory that remembers the previous frame. The next frame will only update the parts of the old frame that have changes.

2.3 Distribution networks There exist three different technologies for broadcasting television programs on the market today. Users can receive television program either by terrestrial, satellite or cable.

2.3.1 Terrestrial The Swedish terrestrial net consists of three minor net, SVT1, SVT2 and TV4 [3]. The net is built and handle by Teracom AB, which is the largest and television operator in Sweden. Every minor net only has room for one program when the program is broadcast with analogous signals. The transmit stations that are at the end of the net can transmit more then one program, since every program is transmitted at a different frequency's. When these programs will be sent with digital signals, every minor net will be able to broadcast between four to six programs at the same frequency that where used to broadcast one program with analogous signals. Before a program will reach a household, the signal first has to be sent from the program producers to Teracom at Kaknästornet [5]. Kaknästornet is the connection point for this kind of traffic in Sweden and from there the signals are transported out to a broadcast station by the radio link net. Satellite or temporary radio links will complement places that are not covered by this net. The signal will be broadcast when it reaches one of the broadcast stations and these signals will then be received by the household’s antenna. These stations have a broadcast range of thirty to fifty kilometres due to mountains and the bending of the earth [4]. It take approximately 54 large broadcast stations to cover the area of Sweden and several hundred smaller slave stations that are placed in between. The slave stations job is to amplify the signal until the signal reaches one of the broadcast stations. It is not possible for the user to transmit information back through the terrestrial net.

2.3.2 Satellite The structure for broadcasting by satellite is much easier compare to the terrestrial structure. In Sweden the company that produce the programs sends their signals to an uplink that will pass the information to a satellite. Kaknästornet in Sweden is such an uplink, but domestic channels can use other uplinks. Like the Swedish channel, TV 3. They have there own uplink, which is located in England [E. Schüler, Personally communication, 16 June 1999]. The satellite that receives the information from the uplink can send it to a very large area and the households will only need a satellite dish to receive that information. The reason for the shape of a satellite dish is because the

Web based EPG 5 Introducing Television ______signal first has to be concentrated before the receiver can interpret it. If the signal already is strong when it is received, then there is no need for a large dish [4].

2.3.3 Cable This technique is different from the other two. Since the signals here are sent in cables, their signals do not compete in the frequency area with other traffic like signals for terrestrial and satellite broadcast. But that regards only the part from the cable network to the households. Since the cable companies usually receive programs by satellite and then distribute them over to the cable network. The cable network consists of fibre networks and coaxial cables. The backbone network is usually build on fibre and is connected to a central, which is located close to the household’s [4]. Coaxial cables are connecting the households to this central. Every apartment is either connected directly to that central or to a loop with coaxial cable that passes all the households. Cable networks exist mainly in block of flats. Today Telia is using digital technique to transmit program in there net and Stjärn-TV will during 1999 digitise there net as well.

2.3.4 Back channel The distribution networks just mention has different technologies they can use for transmitting data from the user see figure 2-2. The ordinary modem uses the phone lines and the cable modem uses the coaxial cable to transmit their data from the user. Ethernet connections can also be used as a back channel, if the household is equipped with that.

Terrestrial Satellite Cable Ordinary modem X x x Cable modem x Ethernet connection X x x Figure 2-2 Back channels for distributed networks

2.4 Future alternatives It will in the future be possible for people to receive television programs in other ways then by cable, satellite or terrestrial broadcast. Below I give a short description of some of the technologies that could be the next way to distribute television programs to the households.

2.4.1 ADSL ADSL (Asymmetric Digital Subscriber Line) is a technique that uses copper-wire as transporting medium. This means that the existing telephone wires can be used. Regarding the conflict with ordinary telephone-calls, the frequency’s up to 4 kHz is used for calls and the remaining part from 25 kHz is used by ADSL [6]. So using the telephone will be possible at the same time data is transported. Since ADSL is an asymmetric technique, the bandwidth is not the same in both directions. Telia have introduced Flexicom, illustrated in figure 2-3, which is a service based on ADSL. The concept consists of three different areas, the home, the tele station and the connection point. The offered bandwidth is 2 Mbit/s to the user and 150 Kbit/s from the user. That bandwidth is guaranteed to the connection point that is closest to the Internet. The distance from the home to the tele station should not be more than 3 km, to guarantee the bandwidth performance.

Web based EPG 6 Introducing Television ______

Figure 2-3 The construction of ADSL network [6]

Every home needs to be equipped with an ADSL modem and a filter to be able to use ADSL. The filter will divide the data- and telephone signals, and the modem will translate signals from either Ethernet or ATM into ADSL signals. The signals from the modem can be sent out either on an Ethernet port or an ATM port. The reason for ATM between the modem and the TV, are because they want to be able to reserve bandwidth. In every tele station there will be an AXE-switch, a filter and a DSLAM (Digital Subscriber Line Access Multiplexor). The AXE-switch handles telephone calls and the DSLAM will handle the data signals. It is the filter unit that will send the telephone signal to the AXE-switch and the ADSL signal to the DSLAM. A DSLAM is a modempool for xDSL-technique. It will handle multiple users and pass these over one outgoing link. The net that Telia have chosen between the tele station and the connection point is based on asynchronous transfer mode (ATM) and has a bandwidth of 155 Mbit/s. At the connection point exist besides a router also several servers and databases. The servers are used for example to cache information and the database store subscriber information. Since Telia have a distributed net, there are several connection points in different places in Sweden.

This technique can in the future be use to transmit television programs. Tests have been made with bandwidth of 4 Mbit/s to the user with satisfied results and since the copper net already exists there is no need to create any additional net in to the households.

2.4.2 Mains The Swedish companies Sydkraft and Stockholm Energi are together with and the company Nor.Web offering Internet through the mains. Nor.Web is a joint venture company between Nortel (Northern Telecom) and United Utilities. Nor.Web delivers this technique and it is called DPL (Digital Power Line). The technique converts electrical low volt networks into a data network with symmetric data transmissions [7]. The structure for this concept is presented in figure 2-4.

Figure 2-4 The Architecture for Digital Power Line [7]

Web based EPG 7 Introducing Television ______

Every household will need a communications module, a coupling unit and an energy meter to participate in this type of network. The energy meter which register all the electricity that a household is using, will receive all the electricity and pass all of it on to the coupling unit. Here the data signals will be sort out and sent with the ordinary electricity to a power point [M. Murray, Personal communication, 8 Nov 1999]. The communication module, which is a modem, connects to the PC by a 10Base T Ethernet cable and with a coaxial cable to the power point. Communication between the modem and the coupling unit is handled by the DPL protocol. The base station will receive the data signal from the user and forward them to an ISP (Internet Service Provider). A test with this is now going on with 200 house in the area of Stockholm. It involves both Tele2 and Stockholm Energi [8] and other test is being done in , Island and . The bandwidth that this technique can offer is 1 Mbit/s in both directions.

If they are able to increase the bandwidth, I believe that this is a technique that in the future could send television program on. Although according to Michelle Murray [Personal communication, 8 Nov 1999], they have now disbanded the joint venture Nor.Web.

2.4.3 VDSL VDSL (Very high date rate Digital Subscriber Line) is one of the techniques in the xDSL series. It runs on copper wires and has considerable bandwidth improvements compare to ADSL. It is like ADSL an asymmetric technique but together with a technique called the Zipper-technique, the operator has more control over the capacity. The Zipper-technique divides the total bandwidth into 2048 frequency bands [10]. Where every band can be used to transport information upstream (from the user) or downstream (to the user). This makes it more flexible compare to ADSL. It will also be compatible with the ADSL systems that are constructed today. It is Telia Research and the French semiconductor manufacturer ST Microelectronics that have developed the Zipper VDSL. The bandwidth that it offers can be as high as 60 Mbit/s but then the user should not be more then 1500 m from the telephone station [9]. The Zipper VDSL is very sensitive regarding the distance between the user and the telephone station. At the range of two kilometres between users and telephone stations, the bandwidth has dropped to 10 Mbit/s.

VDSL with Zipper has with its bandwidth the possibility to transport several channels to the user, and the user could still have about 10 Mbit/s of bandwidth from their homes. Regarding the infrastructure, it does not demand a new network, since it can use the existing telephone net. The only problem is that it will probably not be on the market for about one to two years.

2.4.4 Ethernet LAN The Swedish company Bredbandsbolaget is offering the house-owner a solution where the apartments are connected into a local area network [11]. Every household is equipped with an Ethernet socket and that socket is connected to an Ethernet switch. The switch will be connected by fibre to the closest city node. The offered bandwidth is 10 Mbit/s, which is divided between both the upstream and downstream traffic. There is another Swedish company that has almost the same concept. That is Telecyber, there infrastructure consists of Gigabit routers, Single Mode fibre and fibre nets [13]. All apartments have there own Ethernet 100TX port. This port is connected to one of several switches that exist in the apartment house by a cat6 (350Mhz) PIMF-cable, which can support bandwidth up to 1000 Mbit/s. From there to the Gigabit router they use Single Mode fibre. With this technique they are able to deliver bandwidth up to 100 Mbit/s divided between up and downstream traffic. In October last year, the acquisition of Telecyber was made by Bredbandsbolaget [12].

These methods will certainly be able to show multiple television channels in the future. Even though they can not rely on existing infrastructure as techniques that runs on copper wire or mains do. But the predicted bandwidth that they will deliver is larger then the techniques that use existing networks.

2.4.5 High-Quality ATM High-Quality ATM is a further development of ATM. It was developed in USA for their navy. The city construction is based on a microwave link that is placed on a tall building [15]. This link will pass the signal to the houses where the customers are. When the antenna on the block of flats receives the

Web based EPG 8 Introducing Television ______signal, it can be sent to the household in two different ways. Wireless or by using existing telephone cables. The wireless way is done by having the antenna pass the signal to another antenna that is placed high on the front of the house. That antenna will send the signal along the front of the house and an antenna that is placed at the window in each apartment, will receive the signal. From there it will be transported through a cable to a set-top box, where the signal will be interpreted. The other way is to connect a xDSL modem at the antenna. Which then has access to the buildings telephone network. To be able to receive the signal from the telephone network, every apartment has to install a xDSL modem. The signal will then be sent through the telephone cables to the modem at the receiver and then probably by Ethernet cable in to the set-top box. The bandwidth this technique can offer is between 6 and 8 Mbit/s and the backbone net for this solution is a fibre optic net, with bandwidth from 64 Kbit/s to 100 Mbit/s. The backbone is connected to UUNET. The UUNET is one of the largest Internet service providers with connections all over the world [14]. Tests have been made with this technique around Stockholm since the fall of 1998.

This technique could be a future way for transmitting television. With the bandwidth today it is sufficient to send two channels. The company that tested this technique has however withdrawn all information about this from their homepage, without any explanation.

2.5 Television improvements Over the past years have new functions developed that has improved the functionality for the television. At first the television where a totally passive medium, people where only using it to watch television programs. It is that passivity that is about to be changed, it started with teletext and below are some functions that will make the television into a more active device.

2.5.1 Internet TV This gives people access to the Internet through their television. The concept is mainly for people that can not afford or do not need a computer but want access to the Internet. It gives the user access to both Internet and services like email. The set-top box that provide these functions contains among other things a processor, modem, smart card and also a keyboard are provided. Telia offered this service in December 1997 with a set-top box from Technema, but the box was introduced with the trademark Internet TV.

2.5.2 Enhanced TV It where companies in the US that introduced the enhanced television expression. The idea was that instead of having two different platforms, the Internet and ordinary television functions separated. Enhanced television merges those two together. This makes it possible to display information from the Internet at the same time as the program that is broadcast. But since the Internet information is prepared for being displayed on monitor with video graphics array (VGA) -format. It first has to be transformed into the actually television standard that the television set is handling [58]. The set-top box contains besides the Internet functions also a TV-tuner and the hardware that handles the graphic overlay. The information that is displayed together with the ordinary program can be information about the program that just now is broadcast or some other type of information that would be valuable to the user. The VBI (Vertical blanking Interval) technique is used when displaying information accessed form the Internet at the screen together with a television program, which is also the same technique that is used to transmit teletext.

2.6 Television standards When the first television programs where broadcast, the signal contained no colour, so only monochrome programs where possible to watch. But when the technique for adding colour to the monochrome signal was developed, some restrictions where made about what qualities a colour/black and white compatible television system should have [1]. There are some limitations about the number of lines and the frame-frequency to make sure that the transmissions will not take to much space in

Web based EPG 9 Introducing Television ______the air. Also households with only monochrome television set must be able to watch program that are broadcast in colour, and a colour television must be able to show program that are broadcast in black and white. Colour systems that fulfils these requirements are called compatible television system, the principle for these kinds of system are illustrated in figure 2-5.

To be able to define a colour, it takes three different method of measurement: luminance, colour tone and saturation.

Figure 2-5 The principle of comability [1] (Chrominance: colour tone and saturation.)

2.6.1 Television system There exist three major television systems that countries around the world use. The system that is used by the most countries is the PAL system. Figure 2-6 show how the different standards have been adopted in the world.

I Figure 2-6 The extension of television standards [71]

NTSC The first compatible system was developed 1953 in USA by a working team in the National Television Systems Committee. The system was called NTSC and where in the same year set to be the standard in America for broadcasting colour television. This system is mainly used in , , Japan, and parts of Central and South America [16]. But the NTSC system presented incorrect colour tones when phase fault occurred some where in the chain of transmissions. Every phase divergence will result in wrong colour tones. It is the phase position of the colour carrier wave that is decisive for what colour will be presented at the receiver. To avoid this, two other compatible systems was developed, named PAL and SECAM.

Web based EPG 10 Introducing Television ______

PAL It was AEG-TELEFUNKEN in Hannover under guidance by DR. Walter Bruch that by further developing the NTSC system into a phase error compensated system. That system was named PAL (Phase Alternation Line). To eliminate phase error, an equally large phase failure was added but in the opposite direction. One drawback with this solution is that the amplitude of colour signals was redouble. The amplitude is by the system later divide into half. Which resulted in a smaller saturation fault at the receiver. PAL is used for example in Western , Australia, and parts of Central and South America.

SECAM SECAM (sequentiell a’ emoire) was also developed from NTSC for the same reason as PAL, to avoid phase failure. It was the Frenchmen Henry de that created this system in 1957. SECAM is mainly used in France, Eastern Europe and former Soviet.

In 1965, the European countries gather to decide which system should be set as standard in Europe. Since no agreement where made, one half of Europe uses SECAM and the other half uses PAL.

2.6.2 Frame creation To transmit television pictures from one place to another. Every picture first has to be divided into a number of horizontal lines. The lines are read from left to right and from the upper line to the last one. The picture element is then transmitted over the same connection one after the other. The receiver then put together these elements to recreate the frame. When the frame is recreated at the receiver, the same method is used as when the frame was read at the production place. But now the lines are created, starting at the top and from left to right as shown in figure 2-7.

Figure 2-7 Recreation of frame [1]

A country that uses PAL has agreed on having 626 lines per frame as standard. France which uses SECAM have 819 lines per frames but I can not tell if that it is the standard for SECAM. Those countries that have NTSC as they’re standard, like USA and Japan, have 525 lines per frame. To draw every line, the picture tube uses a beam of electrons. The beam is extinct when is changes row or is finished with a frame. When a frame is finished the beam quickly moves back to the upper left corner and is ready to display lines of the next frame. The lowest rate of switching frames to create motion continuity is 16 frames per second and the standard for movies is 24 frames per second.

In USA where the net frequency is 60 Hz has the frame switching standard set to 30 Hz (30 frames/sec). That is because disturbances occur if the frame-frequency not has the same or a multiple of the net frequency. In Sweden, which uses the PAL system, has a net frequency 50 Hz and the frame-frequency is there by set to 25

Web based EPG 11 Standards ______

3 Standards

3.1 NorDig NorDig (Nordic Digital Television) is a Nordic co-operate that was formed in November 1997, with the purpose of specifying a common platform for digital television within the Nordic region. Some of the things that this includes are to create a technical specification of requirements for the set-top boxes that shall receive the digital signals, with starting-point of the standards set by DVB. A standard for which application-programming interface (API) these boxes should used, shall also be set. Some of the API’s for the set-top box that members of NorDig are using today is OpenTV and MediaHighway [36]. The Swedish members in NorDig are Senda, Sveriges Television, TV4 Sweden, Telia and Teracom.

3.2 DVB This project started in 1991 when broadcasters and consumer equipment manufactures discussed how to create a European platform for developing digital terrestrial television. In 1993 the group became DVB (Digital Video Broadcast). The project today involves more then 220 companies from 30 different countries and the Swedish members in DVB are SVT, Telia and Teracom. The main task for DVB is to work out suggestions for standards which is later evaluated and accepted by the standard organisations ETSI (European Telecommunications Standards Institute) and CENELEC (Commite Europen de Normalisation ElectroTechnique) [70]. Today it is not only the European countries that are using these standards. DVB standards have become a global standard for digitally broadcasting. The global adoption of the DVB standards is presented in figure 3-1.

Figure 3-1 Adoption of DVB standards world-wide [70]

Since the purpose with this project is to create a common platform for digital broadcasts, there are different standards for different technique of broadcasts. DVB-S is the standard for satellite broadcast, DVB-C is standard for broadcast through cable and the standard for terrestrial is DVB-T. All these systems are based on MPEG-2. Which is a standard for video and audio compression that are developed by the Moving Picture Experts Group (MPEG).

Web based EPG 12 Set-top box ______

4 Set-top box

The television signals that today are broadcast can be both analogous and digitally. But since most households today have a television set that only can interpret analogue signals. There is a need for converting the digitally signal into an analogous signal, so that the television set can understand it. The digital signals can also be encoded, since some channels want to be sure that their customers that have a subscription are the only one that can watch their programs. A set-top box (STB) today, can both decodes and converts the signal that it receives. The signals are decoded by a smart card that can be received from the Swedish company Senda AB. Figure 4-1 shows a typical design of a STB.

Figure 4-1 Example of a set-top box [57]

4.1 Types of set-top boxes On the market today there exists several different types of set-top boxes. The Internet TV box, is one type of STB that add functionality to the television set. Other types of boxes are those that have more ordinary tasks, like converting and decoding signals for the different types of broadcast.

Below are example of set-top boxes that has an electronic program guide built in. These boxes are built to receive digitally signals.

· Nokia Mediamaster 9820 T – receiver for terrestrial broadcast

· Nokia Mediamaster 9730 C – receiver for cable transmissions

· Nokia Mediamaster 9600 S – receiver for satellite broadcast

4.2 Future set-top box It is my personally opinion that since people only buy a new television set every 10-15 year, it will not be possible to have the television set itself to handle all the new functions that are developing. Since that would mean that users would have to buy a new television set every 3-4 year, because the development rate is so moving fast. It would be much better to have a small box that could handle the incoming signal and only send a “ready to watch digitally signal” to the television set. This means that the television set in the future would only work as a simple display screen. On the other hand it would not be practical to install more software then necessary into the STB. Since software upgrades should be as simple as possible. The STB are easily to handle and supported if they can be considered as “thin clients”. The best thing might be to store as much software as possible some where in the network.

Web based EPG Video-on-Demand ______

5 Video-on-Demand

Video-on-demand (VOD) is the service where users can make their own decisions of which movie they want to watch. They choose the desired movie and just a short time after the movie has started it is displayed on the television set. The service can be seen as having direct access to a video store. There are on the market today some services that can be seen as a simplification of real VOD. That is pay per view, where the customer contacts the company and orders a movie to be displayed at a certain time. Regarding the way to transmit a movie. Ordinary television programs are broadcast but the movies in the VOD case are using unicast. This means that the movie is only transmitted to a specific receiver, as in this case would be the person performing the request.

5.1 The first VOD network Time-Warner performed in 1994 a full service network (FSN) test in Orlando Florida and it would continue until the end of 1997. The goal of the test was to provide answers of what demands customer preferred [17]. The service’s that was delivered to the several thousand people participating in the trail was among other thing movies-on-demand and news-on-demand. Movies-on-demand where the service that was the most popular. The indication of the test was that the other things offered did not bring any value for the users, since they where seldom used. This information and that the users where upper-income families with children where theoretically the ideal market for these services, cast doubts over the whole concept. It would be difficult financial, with only one services that is really demanded.

Since their where a demand for movies, Jim Burton one of the architects of FSN joined Mike Ramsey, to form TiVo [18]. A company that would give consumer more control over the television content. The concept of letting the people watch the programs they want instead of the programs the cable system want to sell to them, did make a lot of sense. But instead of storing all the digitised programs on a large central computer, way not store some of the programs at the STB.

5.2 TiVo & ReplayTV This is a new type of “VCR” known as PVR (Personal Video Recorder) that gives the television viewers new abilities to capture and manipulate the stream of television shows. These products do not depended on how the program is broadcast to the user. This concept can also be called local based VOD, since all the available movies are stored located at the user. These kinds of products have been called ”tapeless VCR” and it has almost the same size of a VCR. These products offer more functions than the ordinary VCR. It does not use videotapes to store programs on, since all the programs will instead be stored on an internal hard disk. Some of the functions that a user can choose from are the possibility to pause, rewind and fast-forward live television. Both companies where formed in 1997 and have their headquarters in California.

Shared Functions When the analogous signal is received it is transferred to the STB (TiVo or ReplayTV). The analogue and digital converter will convert the signal from analogue to digital. Then MPEG2 is used for compressing the signal. It will then be saved at the hard disk and then decompressed and converted back to analogues format. Now the signal can be sent to the television for display and at the same time be stored at the hard disk. This is the procedure that makes is possible to pause live television [K. Geoffrey, Personally communication, 4 Aug 1999]. But since it can only receives one channel when recording. It is not possible to watch another channel except the ones being recorded. On the other hand, it is possible to watch a program that already is stored on the hard disk and at the same time record another program. To be able to watch a different channel besides the one being recorded, the incoming cable signal needs to be split, and then connect one cable to the STB and the another cable is connected directly to the television [20].

Web based EPG Video-on Demand ______

It will start recording the program a user currently is watching. If the user switch to another channel, it will start to record that program starting from that moment. The other show that the user just zapped from will not continued to be recorded. If a user stop the program that he/she is watching, the box will continues to record it. And the user can fast forward until he/she have cached up with the live transmissions. Both product records entire programs, including any commercials. It is not possible to have the commercial erased while recording the program. To be able to update their channel guides both ReplayTV and TiVo has a built-in telephone jack. Where they every night dial to a secure server and download the latest channel guide information. When transferring a recorded program to the VCR, it will take the same amount of time as the program length is. Both can change channels on other set- top boxes using IR or serial connection.

5.2.1 TiVo

5.2.1.1 Connections Here is a connection example with both a cable box, satellite receiver and a VCR. Figure 5-1 shows the maximum of units that can be used together with TiVo.

Figure 5-1 Satellite receiver, cable box and a VCR connected to a TiVo STB. [22]

5.2.1.2 Back panel Below is a description of TiVos back panel, se figure 5-2. The same in– and out-puts also exists on ReplayTVs back panel.

Figure 5-2 Back panel of the TiVo STB [23]

The Phone line: Uses TiVos built-in modem to get software updates and new program listings.

Web based EPG 15 Video-on Demand ______

Serial and IR: Are connections to gain access to other boxes and be able to change channel on them using TiVos remote control. The infrared sensor is connected to the box and then the infrared stick is placed in front on the IR receiver on the box the user want to control. The serial connection is to prefer since its works better then the IR.

Audio L/: Is used when the user connect a cable/satellite box where video and audio is transferred separately. It can also be used to connect a stereo.

Composite Video: This is an RCA contact and the functionality is to deliver one video-stream without sound. Here there is no need for a tuner, since only one program at the time will be transmitted, at a specific frequency.

S-Video: Another name for it is super-vhs. It's a 4-pin mini DIN connector and the reason to use this one instead of composite video is that the luminance and chrominance signals are divided at different pins. Since they are on a different pin (pin 3 is for luminance and pin 4 is for chrominance). There is no need to filter the signal, which will give a better picture compared to composite video [O. Lidholm, Personally communication, 2 Aug 1999].

RF (in): Here there is a tuner that makes it possible for the user to choose between all the programs that are being broadcast. The natural connection is from terrestrial network. But it can be connected from another STB as well, although then only one program will be transmitted to this connection. A signal transmitted through RF contains both video and audio. This connection is also used when the user wants to connect an analogue STB to TiVo.

RF (out): This is used if it is not possible to connect the television any other way. If this contact is used the RF switch should not be set to the same channel that is occupied by any local broadcast channel. Otherwise the picture quality will be affected.

On the back panel of RepalyTV there also exist a FireWire (IEEE-1394) port. This can be used to connect expansion modules that will increase the storage capacity of ReplayTV.

5.2.1.3 Remote control The remote control for TiVo is displayed in figure 5-3 and some of the functions are descried below.

Figure 5-3 TiVos remote control [20]

Functions

· Live TV/Guide This button takes the user directly to live TV. If the button is pressed again, the TV-guide will be displayed. · Thumbs Up / Down Indicates approval or disapproval of a program.

Web based EPG 16 Video-on Demand ______

· Select Selects the marked item on the screen. · Record Records a program from live TV. · Play Start a recorded program at normal speed. · Pause Pause the program the user is watching. · Back/Forward Fast forward or rewinds at three different choices of speed. · Slow-motion Plays a recorded or live program in slow motion. · Jump Catches up to live TV or move the user to the end of a recorded program. · Instant replay Replay the last 8 seconds, of live TV or a recorded program.

5.2.1.4 Description of TiVos functionality Below follows some of the more characteristic functions that TiVo have.

TV-guide TiVo uses an overlay half-grid EPG, where all the channels are displayed on the left side and at the right side are programs that will be broadcast for that channel, the nearest hours. TiVos EPG is shown in figure 5-4. It has a small description for every program and also display start and stop time for that program.

Figure 5-4 TiVos EPG [21]

Record When the user resume after having paused live TV, a status bar shows how far behind the live transmission the user are. If a user have watched a program and decides to record it, TiVo will start recording from the point where the user starts recording. So the part of the program that have been recorded in the thirty minutes large cache will not be used [24]. It is possible to let TiVo record programs for the user by grading shows with thumbs up. If there is a particular program that a user does not want to miss, he/she can give it a season pass. This means that TiVo will record this show on this channel whenever it is broadcast. Unfortunately this means that re-runs of this program will also be recorded, if they are transmitted on the same channel [TiVo Customer Care, Personally communication, 04 Aug 1999]. The TiVo box can not detect if a program (sport event) goes into overtime.

It is possible to watch a program that is being recorded at the same time. The user can start watching a show that is being recorded. Without having to wait until the recording is finished. When the user wants to record a program, TiVo first checks that it will not overlap with another programs that the user have asked it to record. It also inspects that there is enough disk space to record the program. Every program is normally saved for two days. If the user have some shows recorded and want to save them longer, the user can choose between “save until I delete” or “delete after x days”. TiVo will not delete any of the shows marked with a season pass. Those shows that have not been specific told to keep, TiVo will use a FIFO algorithm to figure out which shows should be deleted. The useful of the hard disk is according to TiVo between five to seven years.

Web based EPG 17 Video-on Demand ______

TiVo will grade their different recording modes like this. Best: approaches the level of DVD Good: close to VHS tape

Thumb up/down TiVo automatically give every thing that is record one thumb. If it turns outs to be a lousy program TiVo will still recommend that kind of films in the future because of the one thumb up. The user can give every show up to three thumbs up or down to make the choice stronger. If there are more then one person that uses TiVo and the thumbs up/down. TiVo will selects among a wide range of shows to record. By default TiVo always tries to keep the hard disk full. It will continuously search for program the user might like, based on the thumbs up.

5.2.2 ReplayTV

5.2.2.1 Remote control Figure 5-5 shows ReplayTVs remote control, and below are some of its functions described.

Figure 5-5 ReplayTVs remote control [26]

Functions

· Channel guide Integrated, on-screen channel guide. · Quickstep Steps forward 30 seconds in the program the user currently watching. · Instant replay Replay the last 7 seconds of live TV or a recorded program. · Replay guide All channels that where created by Replay zones are displayed. · Replay zones Creates your own channel that ReplayTV will record for the user. · Record Record a program from live TV. · Rew/FF Fast forward or rewind in different speed choices. · Play Start the program from being paused. · Live TV Returns to live TV. · Pause Pause live TV. · Jump Switch back to the last show the user were watching.

Web based EPG 18 Video-on Demand ______

5.2.2.2 Description of ReplayTVs functionality

Channel guide The EPG that ReplayTV has, figure 5-6, show programs that are on right now and for some hours ahead. It also shows when a program begins and when it ends, a description for every program also exists.

Figure 5-6 ReplayTVs EPG [59]

Replay guide List all shows that a user has created with Replay zones. It also shows the program that has been recorded for each Replay zone.

Replay Zones (Replay Channel) ReplayTV has the ability to search its built-in channel guide and record shows based on the user's search criteria. When this is done, a Replay Channel is created. For instance, if the user tell ReplayTV to get Clint Eastwood movies, then ReplayTV would create a Clint Eastwood Replay Channel and record a new Clint Eastwood movie every time one is broadcast [26]. The user can then choose the Clint Eastwood Replay Channel from the channel guide and begin watching the movie. That's an example of an actor-based Replay Channel, but ReplayTV can also create theme-based and show- based Replay Channels. When the user create a Replay Channel for a favourite show. The user can choose how many episodes of this show it want to keep. If the user select that just one episode should be stored, then Replay will replace the stored show every time a new show is broadcast.

The ReplayTV has a different way of recording shows comparing with an ordinary VCR. When the user want to record a show he/she can do this by clicking on the program and it will be record and stored on the hard disk. A red dot will show behind the program and if the user click on the program a second time, the user are telling ReplayTV to record this program whenever it is sending. This will result in two red dots shown after the program. ReplayTV will notice the user if it tries to record a show that are in conflict with an earlier set recording. It is not possible to record parts of a show, but is being considered for a future software release.

According to ReplayTV, their compression rates give following picture quality [27]

2 Mbit/s: The picture quality will be better than VHS tape. 4 Mbit/s: The picture quality will be better than SVHS tape. 6 Mbit/s: The quality approaches the level of DVD.

Web based EPG 19 Video-on Demand ______

5.2.3 Comparison chart

Introduction Feature ReplayTV TiVo

Personal Television Recorder

Figure 5-7 ReplayTVs STB [26] Figure 5-8 TiVos STB [20] Remote control Can control up to 6 different Can control on/off and volume devices. for the TV and volume for stereo. Model / storage capacity 2001 10 hours PTV100 14 hours (HDR112) 2003 14 hours PTV300 30 hours (HDR312) 2005 28 hours 2020 20 hours Hard disk (gigabyte) 2001 10.2 PTV100 13.6 2003 13.6 PTV300 27.2 2005 27.2 2020 20.0 Price 2001 $699.00 PTV100 $499.00 2003 $899.00 (HDR112 $299.00) 2004 $1,499.00 PTV300 $999.00 (HDR312 $399.00) 2020 $699.00 (now $399.99) TV-Program service Included Monthly $9.95/month Annual $99.00/year Lifetime $199.00 Availability Since April, 1999 Since March 31, 1999 Since 15 November 1999 (model 2020)

Is only available in US Is only available in US Guarantee / Warranty 30 day money back 30 day money back 1 year for parts in the receiver 1 year for parts in the receiver

Product specification Feature ReplayTV TiVo Video In 1 S-Video 1 S-Video 2 Composite video RCA 1 Composite video RCA Video Out 1 S-Video 1 S-Video 2 Composite video RCA 2 Composite video RCA Audio In 2 Pairs RCA 1 Pair RCA Audio Out 2 Pairs RCA 2 Pairs RCA RF In 1 (antenna) 1 (antenna) RF Out 0 1 (channel 3 or 4, switchable) IR control out 1 1 Serial control out 1 1 Modem speed N/A N/A Phone RJ-11 Yes Yes IEEE-1394 (FireWire) 2 ports No No (model 2020) Processor N/A PowerPC OS N/A Hard disk N/A Quantum Quickview Type of video compression MPEG-2 MPEG-2

Web based EPG 20 Video-on Demand ______

Broadcast format NTSC NTSC HDTV No No Power 120 VAC 60 Hz 120 VAC 60 Hz

Functions Feature ReplayTV TiVo Fast forward/rewind 2X 4X 16X 20X (model 2020) 3X 20X 60X Skip forward 30 s No Skip backward 7 s 8 s Stop/pause Yes Pause only Slow-motion No (yes model 2020) Yes, 1/4X One Frame forward/rewind N/A Yes

EPG Feature ReplayTV TiVo EPG Yes Yes Future program listings 7 days 13 days and every day check for changes Search program listings By name, category, time and By name, category, time and channel channel

Service and update Feature ReplayTV TiVo Phone call For software and programming For software and programming information updates. information updates. Privacy N/A Anonymous viewing information is used. It can be prevented by informing TiVo

Recording Feature ReplayTV TiVo Recording modes 2 Mbit/s 4 Mbit/s 6 Mbit/s Good, medium, high and best Recording length with different 2001 10h N/A N/A PTV 100 14h 8h 6h 4h modes (low to high) 2003 14h N/A N/A PTV 300 30h 18h 14h 9h 2005 28h N/A N/A 2020 20h 11h 9h Cache for live TV Limited only by free available 30 min disk Save or clear cache when Clear Clear changing channel Record program everytime Yes, Replay channel Yes , season pass Record program everytime by Yes, Replay channel No theme Store programs to a ZIP drive N/A No Store programs to a VCR Yes Yes Conflict handler Yes Yes

N/A means that the information was not available. All the information in this table is received from the sources under the TiVo-ref and Replay-ref. The references that has been using for this chart are [22], [24], [25], TiVo customer care. [26], [27], [28], [29], Kevin Murray and Kelly Geoffroy. The name changes and the latest price changes are in parenthesis.

Web based EPG 21 Video-on Demand ______

5.2.4 Conclusions Almost every comment from people that have compared these two products feel that the price is to high and that the remote control from TiVo is much user-friendlier. I thought that ReplayTV was better prepared for upgrading the hard disk. But when the new model 2020 is without FireWire connections and the other models have been discontinued, ReplayTV lost their advantage at that area. Regarding TiVos thumbs up/down, if there are several peoples in a household and they are all using TiVos thumbs up/down to grade their programs. TiVo will suggest several different kinds of programs, and the accuracy of the function will disappear. ReplayTVs thirty seconds skip button will certainly be well used, since there are a lot of on the TV.

In my opinion the size of the hard disk it too small and the price is little bit to high. But as the price on disks drops the product will be cheaper and have larger storage capacity. When all signals are digital there is no need for AD- and DA-converter, which will also affect the price. One thing that is expensive and can not be removed even if all signals are digitally, is the MPEG coder. I think that these two products are very similar, regarding functions, service and storage capability. It is more their special functions that separate them, ReplayTVs –Replay channel and TiVos thumbs up/down. What will separate the two products are in my opinion how user-friendly their interfaces for all their functions are.

The Future According to Forrester Research analyst Josh Bernoff will the PVR, in the future exist in almost every home. He predicts that in “ten years from now, personal video recorders will have penetrated four out of five homes and overall television ad viewing will be cut nearly in half” [19]. This will certainly affect the television advertising, as we know it today. Since all the companies that now invest in television commercial, will have second thoughts of continue with that. If they know that most of viewers can fast forward through commercials.

5.3 Protocols When transmitting video over the Internet, several protocols are involved. Below is a description of protocols that are being used for multimedia streams as the figure 5-9 shows.

Figure 5-9 Internet multimedia conference protocols [33]

IP (Internet protocol) This is the base protocol used on the Internet, and the current version of this protocol is four. IPv4 is a protocol that exists in the network layer in the OSI-model, and is the protocol that supports the interconnection of the multiple networks into an Internet. When routers decide where to send incoming packets, they use information in the IP-header together with routing algorithms to determine the optimal route to the destination.

IP Multicast IP multicast consists of IP multicast addresses that are identified by a particular class D IP address (224.0.0.0 – 239.255.255.255). The communication between the transmitter and the receiver is done by unicast. Communication with broadcast means that the transmitter sends messages to every potential receiver, but with multicast the transmitter sends messages to a particular group, where

Web based EPG 22 Video-on Demand ______every IP multicast group are subscribing to an particular message/application. The routers will only copy the packets that the transmitter is sending, if there are hosts in that segment that has joined that particular multicast group. The routers are using IGMP to find out if any clients have joined a multicast address in their segment.

IGMP (Internet Group Management Protocol) IGMP allows a host to join and leave host groups, as well as send IP datagrams to host groups. The IGMP is considered as a part of the IP-layer, layer 3. Since it is an integrated part of IP, all IGMP messages are encapsulated in IP datagrams. Since the routing protocol takes care of figuring out which multicast packets (if any) should be sent to which routers, the individual routers need a way to determine whether there are any members of a particular group on their sub network. By using IGMP they can advertise which group’s packets they need to receive and decide whether to forward a particular group's packets onto their subnet.

Host membership query IGMP let routers keep track of IP group membership on its local LANs by sending IGMP Host Membership Queries and receiving IGMP Host Membership Reports. When the multicast routers sends the host membership query message, the group address field in the header is zeroed when sent and ignored when received [40]. Queries that are addressed to the all-hosts group are sent to address 224.0.0.1, and carry an IP time-to-live of 1. Multicast routers send queries periodically to keep their knowledge of membership updated. If the router doesn’t receive any reports after some number of queries, the routers assume that that group doesn’t have any local members, and will not forward multicast packets for that group any more.

Host membership report. When a host receives a Host Membership Query messages it respond by generating a host membership reports. That report contains each host group they belong to and will be multicast to their group address with a time-to-live 1. The purpose is to let the routers know which groups the hosts belong to. To avoid a massive LAN traffic when the query has been sent. Every host will wait a random amount of time before it reply’s, and if a host gets a report for a group to which it belongs to, its timer will be stopped, and no report will be sent. The only thing that is important for the router to know is that if there are one or more on its sub-network that is a member of the group. The number of members does not matter, and since the multicast routers receive all IP multicast datagrams, it doesn’t need to be addressed explicitly. A host that wants to join a group, does only need to send a report to the group address, and the router will know that it now needs to forward (or continue to forward) multicast packets for that group onto the LAN. The joining host need not wait for a query to join, so that the time it takes for a host to begin to receive group packets after joining that group will be minimised. Figure 5-10 shows where in the network, IGMP is used.

Figure 5-10 Example of IP multicast protocols [39] (A multicast gateway is also called a multicast router)

Once a multicast router has received the membership status of hosts, it must send that information to other multicast routers. This is achieved by using various types of routing protocols. For example the Distance Vector Multicast Routing Protocol (DVMRP), the Multicast Open Shortest Path First routing protocol (MOSPF), or the Protocol Independent Multicast (PIM).

Web based EPG 23 Video-on Demand ______

UDP (User Datagram Protocol) UDP is a transport protocol and belong to the layer 4 in the OSI-model. It provides a connectionless service, which means that an application program may send information without any prior agreement from the destination end-system. This protocol extends the host to host delivery service of the underlying networks into a process to process communication service [37]. This protocol adds no additionally functions to the best-effort service that is provided by the underlying network. Since there are many processes running on a user, UDP adds a level of demultiplexing so that several application processes on a host can share the network. To identify each process, UDP uses a port number. But since the port field in the header is only 16 bits, the receiving host needs to be identified also. The is the demultiplexing key for the UDP protocol. When a client initiates a message exchange with a server process, it uses a well-known port at the server. Then they can agree for another port and leave the well-known port free for other clients.

TCP (Transmission Control Protocol) TCP also like UDP belong to layer 4 in the OSI-model, but are considered a reliable transport protocol. It is also full duplex and connection-oriented. A connection is established by a three-way connection, which involves exchange of three messages between the client and the server. The TCP is able to recover data that is damaged, lost, duplicated or delivered out of order by the Internet communication system. This is achieved by assigning a sequence number to each packet that is transmitted, and the receiver will send an acknowledgement (ACK) for that packet, back to the sender [38]. This is called the stop-and-wait algorithm, and means that after the server transmitting one frame it will wait for an acknowledgement from the receiver, before it sends the next frame.

TCP maintains at the sending side a buffer, which contains data that has been sent but not yet acknowledged. Those packets will be retransmit if the receiver have not sent an acknowledgement before a certain timestamp. The timestamp is set as a function of the RTT (Round-trip time) between the two ends of the connection. TCP also maintains a buffer at the receiver side, which is used for handling data that have arrived out of order. The receiver will use the sequence numbers to correctly order the segments that may be received out of order and also to eliminate duplicates. To cope with damage, TCP adds a checksum to each segment transmitted, which is checked at the receiver. The receiver will discard all damaged packets. Since it would be very inefficient to have the sender inactive and wait for an acknowledgement for every packet transmitted. TCP uses an algorithm called sliding window [37]. Which means that the sender transmits new packets during the time it waits for acknowledgement. How many packets that can be transmitted before an acknowledgement has arrived, depend on the size of the sender’s window. Only those packets that are present in the sender window have permission to be transmitted. The window slides over the packets that will be transmitted, thereby the algorithms name.

TCP uses a mechanism called slowstart that increases the window rapidly when starting from scratch. For every ACK received by the sender, the window size for the sender who determines how many packets is can send, is increased by one. There are also other mechanism that adds additional congestion control to TCP, like fast retransmit and fast recovery. Some protocols that use TCP are FTP and HTTP. However TCP is not suitable for transmitting video and audio on the Internet. Because TCP give priority to secure transmissions rather the fast transmissions. If a packet would be lost, the picture at the receiver would be stalled because it would have to wait for that particular packet to be retransmitted by TCP. That is why UDP is used for such applications.

RSVP (Resource Reservation Protocol) RSVP is designed to improve the support for real-time applications. RSVP is viewed as a companion protocol to IP. The protocol is connectionless and the resources requirements are not specified to the network, instead the protocol informs the receiver. This is done by having the source regularly sending a path messages and the receiver replies with a reserve messages that specify the required quality of service [33]. The network will reserve the resources specified by the sender on the way back from the receiver to the sender.

HTTP (Hypertext Transport Protocol)

Web based EPG 24 Video-on Demand ______

This protocol is the standard mechanism for transferring documents between servers and clients at the World Wide Web today, and the protocol is placed in layer 7 at the OSI-model. HTTP has been in use since 1990 and is regarded as a request/response protocol. Which means that client makes a request and the server respond to that request. The HTTP/1.0 will make multiple parallel TCP connections when a user is requesting multiple objects. But with HTTP/1.1 only one TCP connection will be required for a request that implies download of multiple object [33]. Since HTTP is not a suitable for secure transactions a particularly protocol called Secure-HTTP has been developed. Secure HTTP is a secure message-oriented communications protocol. It supports secure end-to-end transactions and has been designed to work in conjunction with HTTP. The S-HTTP does not require any client-side public key certificates or any public key [35]. This will make secure spontaneous transactions possible, since there is no need for establishing a public key.

The reason way HTTP is not suitable for real-time transmission is because HTTP is based on TCP. TCP has higher priority for reliable transmissions instead of those real-time demands that exist on mediastream transfers.

RTP (Real-time Transport Protocol) This is an Internet standard protocol for transporting real-time data over IP networks. It can be used with both unicast and multicast. Every packet has a sequence number that the receiver uses to place the packets in correct order. The packet also contains a timestamp, which is used differently regarding the data that the packet contains [31]. When the packets contains audio, the timestamp will increment by the number of sample periods conveyed in each packet, including this packet. For video, the timestamp will increase for every new frame. Those packets that are part of the same frame will have the same timestamp. Note that RTP itself does not provide any mechanism to ensure timely delivery or provide other quality-of-service guarantees, it relies on lower-layer services to do so. It does not guarantee delivery or prevent out-of-order delivery, nor does it assume that the underlying network is reliable and delivers packets in sequence.

RTCP (Real-Time Transport Control Protocol) This is the companion protocol to RTP and the primary function is to provide feedback on the quality of the data distribution. Both sender and receivers uses special report to inform all participants about the current status. The report that is send by receivers is called receiver report (RR), which the sender may use to modify its transmissions [32]. An observer to determine if delivery problems are local, regional or global can use the sender report that the receivers will get. It can also be used by a monitor that only receives RTCP packets for evaluate there network for multicast distribution.

In an audio and videoconference, the media is transmitted as separate RTP sessions. The RTCP packets are transmitted for each medium and both the medium and the RTCP use different UDP ports and/or multicast addresses. One motivation for this separation is to allow some participants in the conference to receive only one medium if they choose. Each instance of the media application in the conference periodically multicasts a reception report and the name of its user on the RTCP (control) port. The reception report indicates how well the current speaker is being received and may be used to control adaptive encoding. A site sends the RTCP BYE packet when it leaves the conference.

RTSP (Real-Time Streaming Protocol) The possibility to control either a single or several time-synchronised streams of continuous media such as audio and video, is given with RTSP. The protocol does not deliver the continuous streams itself, it acts more as a "network remote control" for multimedia servers. RTSP is an application-level protocol. It provides means for choosing delivery channels (such as UDP, multicast UDP and TCP) and the delivery mechanisms is based upon RTP [34]. There is a presentation file that contains a description of the media streams. Which gives the client the possibility to choose an appropriate combination of the media.

Each media stream in this presentation description is individually controllable by RTSP and identified by an RTSP URL. This URL points to the handling that particular media stream and does names the stream stored on that server. The media streams do not have to be placed on the same

Web based EPG 25 Video-on Demand ______server. For example, audio and video streams can be split across servers for load sharing. RTSP controls a stream that may be sent via a separate protocol, independent of the control channel

Figure 5-11 RTSP Client / Server Communication: Standard UDP Mode [34]

In figure 5-11 has RTSP creates a control channel, that is handled by a TCP connection. The control channel initiates and directs the delivery of the data sent by the deliver mechanism, which in this case, is RTP.

The RTSP client has set up three communication channels with the RTSP Server. The control channel is handled by a TCP connection. The control channel initiates and directs the delivery of the data sent by the deliver mechanism, which in this case, is RTP. The RTP Data channel in the middle is a simplex UDP channel along which the media is streamed. The last channel is a full-duplex UDP channel for the RTCP packets, providing synchronisation information to the client and packet loss information to the server. The RTP port is always an even number. The RTCP port must be the next consecutive port, so it is always an odd number. The following states are available when a stream resource on a server shall be defined and used, SETUP, PLAY, RECORD, PAUSE, and TEARDOWN.

SAP (Session Announcement Protocol) A SAP client that announces a conference session periodically multicasts an announcement packet to a well-known multicast address and port. At that port, potential receivers can read the description of the session as well as the application needed to view the session, and the announcement is multicast with the same scope as the session it announces. This ensures that all the recipients that receive the announcement, also can be a consumer [33].

SDP (Session Description Protocol) When uses go the well-known multicast address and port that the SAP informs about. The session description protocol will describe such as, the session’s name and purpose, the time that session is active. The SDP will also give an information about the type of media (video, audio, etc) and the format of the media (H.261 video, MPEG video, etc). Is also includes what transport protocol being used (RTP/UDP/IP, H.320, etc) [41]. For an IP multicast or a unicast session, the necessary address and port is also conveyed.

SIP (Session Invitation Protocol) The SIP is used to “invite” participants to a session. It is an application-layer control protocol that can establish, modify and terminate multimedia sessions or calls [33]. SIP can invite both persons and devices, such as a media storage service, where the media storage could be invited to record an ongoing conference. SIP can be used to invite parties to both unicast and multicast sessions and the person invited does not have to be a member of that session. The default protocol used by SIP is UDP, although TCP can also be used.

Web based EPG 26 Video-on Demand ______

5.4 Server based vs local based video-on-demand Server based VOD is when the movies are received from a centralised server, that serves many users over a large area. When evaluating the server based VOD system against the products TiVo and RepalyTV, that can be seen as local based VOD, it has been done without any practical tests, since TiVo and RepalyTV where not accessible. The evaluation has been performed from the user perspective. That is when the user requests a movie that is stored locally at one of the PTV or stored at a central placed server.

5.4.1 Advantage for local based system compare to server based system The client latency will be smaller for almost everything that the user does with the local based system. This includes things like choosing a movie and the time it take before is has started. Or the time it takes if the user want to change the current displayed movie into another movie.

When a user want to change to another movie with server based VOD, that will affect the load of the network. This is a drawback with the centralised approach, since the behaviour of the end-user is visible in the traffic that runs through the network. If e.g. end users flip their remote controls or want to deviate from the stream sequence in an interactive movie or game, all network buffers must be reloaded almost instantaneously with new data to provide for the new scene. A VOD system is only configured to support a certain number of users, when the maximum users are connected. Additional clients will be denied access.

These set-top boxes have other services than just lets the user choose between some of the recorded programs. They offer their users more control over the movie their watching. If the program is broadcast, they can record it or use the ability to cache live TV.

A user that wants to record a program can choose to record it in different quality modes. The program can be recorded up to 6 Mbit/s, which is regarded as very good quality. I have no information of the bit/s that server based systems are using to display their movies.

One of the things that affect the prise on these boxes is the hard disk. But since the technology is moving rapidly forward, the price on these disks will certainly drop. This will have a positive influence on the prise on TiVo and RepalyTV, at least from the customer point of view. I assume that a lower price on the hard disk, not have a large affect on the price customers have to pay for receiving a movie with the server based system. Since the initially price per movie should already be low enough to compete with the local video stores.

5.4.2 Disadvantage for local compare to server based The offer is limited to the programs that are broadcast on the different channels. When the user want to watch a movie, he can choose form the programs that has been recorded for him and those that are being broadcast.

The initial cost is higher, since the customer needs to buy the PVR.

5.4.3 Conclusions From the customer’s point of view are the products TiVo and RepalyTV a better choice than the server based system. The only thing that is better with the server based system is that it can offer more up to date movies. With TiVo and RepalyTV acting more as a modified VCR and the server based system is the store where a user can rent movies. This assumption is based on that programs that can be rented or can be watched at the cinema always are newer compare to the programs that are broadcast by satellite, cable and terrestrial companies. TiVo and ReplayTV acts more like a local network with only one user and gives their customers more control over the transmitted movie and the possibility to record the movie.

Web based EPG 27 Video-on Demand ______

5.5 Improvements for server based video-on-demand I have examined different solutions that could improve the performance for the server based VOD system.

5.5.1 Proxy caching Proxies are a useful way to reduce the user-perceived latency and the total load on the server. Traffic between servers and clients can be reduced with a proxy, by caching resources that will satisfy future client requests [67]. Since techniques for caching text and images is not appropriate for continuos media streams, because caching entire audio or video streams would exhaust the capacity of the proxy cache. Instead the proxy should store a prefix which consists of the initial frames of each popular stream. When the proxy receives a client request for a stream, the proxy immediately initiates transmissions to the client, while simultaneously requesting the remaining frames form the server.

The proxy must reside on the path between the client and the server for the proxy to intercept the client requests. To ensure that the client request goes through the proxy, the IP address of the streaming service can be set to the proxy, who contacts the server to initiate transmission of the remaining frames. To request the appropriate portion of the stream, several protocols can be used. If the continuous media stream is a web resource, the byte range operation in HTTP can be used. RTSP supports absolute positioning and the RTP have both sequence number and timestamp for every packet, which enables the proxy to identify the frames.

Proxy prefix size The size of the prefix buffer depends on the trade-off between how fast the proxy start sending the initial frames and the delay from the server to the proxy. From the point where the proxy gets the clients request the size of the prefix should be at least max{dmax – s, 0} frames. Where the delay from the server to the proxy ranges from dmax, dmin and s is the additional start-up delay for the client. The client are not suppose to wait any longer the s time units after the clients request has arrived at the proxy. The ordinary start-up delay for the client depends on the distance between the client and the proxy. This means that if there is a delay x between the proxy and the client, the frames must be sent at least x times earlier to ensure that they reach the client in time [J. Rexford, Personal communication, 24 Oct 1999]. The time parameter is i and is measured in units of frame slots.

Since the prefix reduce the latency for the client an additional buffer at the proxy could be used to reduce delay between both the server and to perform workahead smoothing into the client playback buffer. Which otherwise could result in playout disruption. The model for workahead smoothing is presented in figure 5-13.

Figure 5-13 Smoothing model [67]

The proxy will store the initial frames in buffer in bp and will use the buffer bs for storing bit that are used to for workahead smoothing into the client buffer, bc.

The window is used for workahead smoothing. A frame arrives at the proxy w time units before it must be sent to the client. The proxy could send the frame immediately upon receiving it, which will increase the clients buffer. Or it can wait some time, but not more then w time units. Otherwise the number of frames that are waiting in the clients buffer will be decreased. When using the smoothing model the proxy will store the first dmax –(s-x)+w frames. If w=0, that means that every frame the proxy receives from the server has to be sent immediately to the client, to avoid starvation in the clients buffer.

Web based EPG 28 Video-on Demand ______

Parameter D is the cumulative amount of bits that have been played, including the frame to be played in the next time unit. The reason there are +1 is to make sure the frame arrives in the time unit before it is played [J. Rexford, Personal communication, 17 Nov 1999]. They are using a fluid model, where the frame finishes arriving at the end of the time unit, so they need to have the frame arrive during the time unit that is one unit *before* playout. The formula for D is shown below, where the video stream consist of N frames and the frame i (i=1…N) is fi bits long.

i D = f i åj=1 j

Ai represents the cumulative amount of bits that has arrived at the proxy at time i, including the initial prefix that is stored in the buffer bp. Si is the transmission schedule for the smoothing model and is based on all parameters shown in figure 5-13.

Conclusions Proxies between the server and the client will reduce both server load and the initial response time for the client. The proxy used together with workahead smoothing will also reduce the demand for bandwidth that is necessary for a client to have.

5.5.2 Playback restart When a client will make an interactive operation such as fast-forward or rewind in a VOD system. It will result in an index jump, which also result in some delay. In order to keep this delay as small as possible the article [68] suggest two algorithms. Figure 5-14 shows an example of a VOD system.

Figure 5-14 Video-on-Demand system model [68]

Algorithm1 When the client makes a playback request. It first empties its buffer and then waits for the server to transmit from the correct frame position. When the server has sent an amount of data that can be stored at the client buffert, it will send a message to the client to resume playback. The client will have a delay from the time it sends its playback request until the resume playback is received. This latency depends on the amount that the server will send before it can send the resume playback message to the client. It will also depend on the rate that this amount can be sent in.

Algorithm2 This is a modification of algorithm 1 and instead of having the client waiting for the amount of to be transferred before resuming playback. The client should resume playback as soon as possible. This means that the server has to transmit at this faster rate a little bit longer, before it can switch to the playback transmission schedule. This give the client lower latency and to transmit at the larger rate will avoid starvation at the client buffer.

Comparison Comparing the performance between these two has done with client buffer sizes 64 KB, 256 KB, 1 MB and 4 MB. Focus has been made on a client buffer of 1 MB. When an interactive operation is made on the movie starters, it shows that algorithm1 will have the restart latency evenly spread between 0 and 14 seconds. Algorithm 2 on the other hand will result in 90 % of all the operation have a latency between 0 and 1 second. It shows that a client with a large buffer size that has to wait for the resume

Web based EPG 29 Video-on Demand ______playback buffer to be filled until resuming playback, will result in a high latency after performing an interactive operation.

5.5.3 Skyscraper multicast The purpose of using this method is to decrease the maximum waiting time after a client has sent a request. This model can be used to support on-demand access to large data stored both on servers and regional servers. A VOD server only has a certain number of channels it use to transmit a movie. Therefore it is important to use these channels in the best possible way. One solution to keep the waiting times limited would be to use multicast for the most popular movies. The skyscraper model has been specially developed to reduce that waiting time, where the accessed data is multicast. In this model every movie will be divided into multiple segments and each of these segments will be multicast of different channels.

Figure 5-15 An Example of Skyscraper transmission schedule [69]

As seen in figure 5-15, each object is divided into eight segments, where the sizes of the segments are {1,2,2,4,4,8,8,8}=45. This means that the total time for the movie is 45 units. Every new transmission period is marked with an X in channel 0, so in this example a movie is multicast four times. When a client makes a request that is just before the grey-shaded segment in channel 0. It will then receive all the grey-shaded segment in channel 0 to channel 7. If a client’s request arrives just after the grey-shaded segment in channel 0 has started. That client will instead receive the next segment after the grey-shaded one in channel 0, and concurrently receiving the grey-shaded segment in . The clients will from the remaining channels receive the grey-shaded segments and will always have the size of one segment in their buffer [69].

Clients that receive the last possible segment in the first period in channel 0. Will concurrently receive the last segment in channel 1. When the segment from channel 1 is played, the client will at the same time receive the segments from both channel 3 and channel 4. The strategy is to have the clients use their buffer to receive future segments and played when it is suitable. The buffer requirements on the client using this system, is that it must be able to buffer the maximum segment size – 1.

Conclusions Assume that L represents the length of the movie in minutes. By using this model the worst case a client has to wait before receiving the initial frame for the movie would be L/45. L is the length of the movie in minutes. This would occur when a client makes its request just after one unit in Channel 0 has started. That compared with just dividing the movie in eight channels would get a worst case of L/8.

Web based EPG 30 EPG ______

6 EPG

EPG means electronic program guide and this will be the new way for people to quickly find the television programs that want to watch. The EPG can be seen as a further development of teletext. With the EPG people will be able to search for programs that are in one of the many categories, like sports, comedy, movies and news. It will also be possible to search for programs that start at a certain time. Today people find there programs either by teletext, newspaper or paper based TV-guides. But since every household in the future will receive a large the number of channels, the present way for finding desired programs will not be sufficient. For example, if a user have one hundred channels. It would take about nine minutes before the user have switched between those channels and made an opinion weather it is worth looking at or not. Based on that a user spends five seconds on each channel. Since neither the paper based TV-guide or other means to find certain programs have the ability to search for user specific programs. It will be much more effective to use an EPG to find the programs that are of interest. It will also be possible to create more personally TV-guides with the EPG. Where user can create a user profile where only programs that are match to that profile will be updated.

6.1 Transmitting EPG information to a STB Transmitting information to the user can in the present situation be done by two different ways. The information is either sent to the user by a modem or it will be broadcast. When users want access to services that for example the cable company ComHem is offering, all the information will be broadcast. The STB that receives this broadcast will use a tuner to get to the transport stream containing the services that the user want access to. It is the same procedure as when the user would change to another channel. This technique can also be done if the producers send all their content through satellite or by terrestrial. If the producer want to have a more sophisticated interactive service. Then it would not be practical to broadcast every information that a specific user wants to have, so just the access button to those services will be broadcast. These types of services could be stored at a server and the users would get access through its modem, and the chosen services would be sent back via the modem to the user.

If the user has an Ethernet connection that he/she can connect the STB to, then it would be possible to send the accessed application only to the user that have made the request. A more focused transmission could be made compared with the broadcast technique.

6.2 Channel Information To find companies that collects and sells information about television channels. Contacts at Telia and the search on the Internet have been my main approach. I have also contacted the companies that I found, to help me find other companies like them. Most of the companies that were contacted were willing to help.

TVData This is the world’s largest database with television information. The company has about 300 employees and has been doing this for more then 30 years. They have information about more than 1,400,000 programs, including 90,000 movies and more than 200 program categories. They have information on almost every program that is being broadcast from North and South-America. Their customers are newspapers, cable companies and many others.

Infomedia Infomedia is regarded as Europe's leader in television listings. The company started to collect television information in 1991. They have program information of about 250 channels and that information is being used in more then 20 European countries. Their customers are television

Web based EPG 31 EPG ______magazines, newspapers, on-line and electronic program guides, as well as producers and distributors of television programs. Infomedia delivers most of their channel information either by e-mail or FTP.

Avisa Centralredaktion AB Avisa is one of the largest collectors of television programs in Sweden. They have (in their database) information for almost hundred different channels. The major parts of their customers are newspapers and magazines. TT (Tidningarnas Telegrambyrå) now owns this company. TT also had television listings but now Avisa handles that.

Tjohoo AB This is Sweden’s largest local portal. Regarding channel information, they collect the information them self directly from the companies that produce the programs. But that information is only for internal use, that is their EPG, TV-Guiden.

Rockitmedia HB The EPG, Tvprogram.nu is own by this company. Their channel information that they collect is used mainly for their EPG. But the information is not only for internal use [F. Mican, Personally communication, 14 Aug 1999]. But there is no information about which their customers are.

Customers Below is a list of some of the customers that these companies have. When that information was not available, it has instead been marked with N/A.

Infomedia Luxemburg SA Tjohoo AB Teledanmark N/A BskyB France Telecom Telia Infomedia Rockitmedia HB Passagen N/A SvD (Tv-Guide)

Avisa Centralredaktion AB (own by TT) TVData DagensTV About 2,700 businesses in 20 countries use their More the 75 Swedish magazines and news information papers

SVT Svergies Television (SVT) represent the Swedish channels SVT1 and SVT2, are storing all information about their two channels on a database. That database will contain information for at least four weeks ahead. Customers like newspapers and others that want to take part of that information can get if for free, since all this information is without charge. But they do have to pay for the different pictures that have a connection to the program, since there is a copyright for them. In Sweden today, companies only transmit channel information for the current broadcast program and the following program to their EPG. The reason is that these EPG can not handle more information. That is due to the standard DVB-SI that is used. For the moment this standard can only handle information for two channels. But when it has been improved, user will probably have access to channel information for one or two weeks ahead [J. Palmqvist, Personally communication, 4 Aug 1999].

6.3 Telia Infomedia Telia Infomedia receives their channel information from Infomedia in Luxembourg. Telia Infomedia buy information for proximately fifty channels and the information are received in a TSV format. Which stands for Tab Separated Values and is a database format. Telia Infomedia are accessing their

Web based EPG 32 EPG ______information and EPG by the STB called Macab. That box is based on the eurobox, which is the European standard, set for set-top boxes. Every customer will need one of these boxes to be able to receive those channels that is not part of the ordinary offering, that Telia is offering through their cable net. This also applies the EPG. Their EPG list the channel information by title, start time, channel and category.

Database file content Every file that Telia Infomedia is received from Infomedia in Luxembourg contains the following field names

Channel Category Date Actors Time Synopsis Original title Director Title Schedule_id Episode Title Duration Country DVB Language Year Rating

Telia Infomedia are buying new channel information every day [A. Gustavsson, Personally communication, 16 June 1999]. The information that they purchase is one week ahead, and they also get updates on the information they bought earlier every day. Regarding changes when some programs will be broadcast. The companies that is responsible for the broadcast will sent this update to companies that collects this type of information, like Infomedia in Luxembourg. Where it will be passed -on to customer for these kinds of companies. Sometimes this information is sent directly to the customer’s e.g. Telia Infomedia.

6.4 Different platforms for EPG There are different platforms to choose between when creating an EPG. Some of these platforms are MediaHighway, OpenTV and a web based platform. When creating an EPG using the web based platform, languages like JavaScript, html and other tools are used, the MediaHighway and OpenTV have there own language for developing these kinds of services. Both these are software that are placed in a STB, where these programs acts as a virtual machine. Which means that they can supports many embedded real-time operating systems. Since they do not include their own real-time operating systems, they are referd to as middlewares. Virtual machines for other types such as HTML- JavaScript and DVB-MHP can be expected according to Michelle Abraham [77].

The operating system refers to the four bottom layers, namely device drivers, kernel, adoption layer and library layer. OpenTV and MediaHighway that are referred to as middlewares are placed on top of the OS, se figure 6-1. These middlewares can have their own libraries, interpreter and applications.

Web based EPG 33 EPG ______

Figure 6-1 Topology of a STB software stack [77]

· Applications : Applications written for the STB.

· Networked Community Software : This allows devices to recognise and use each other’s services over the network. Some software that supports this are Jini, Upnp (universal plug and play) and HAVI (home audio video interoperability).

· Interpreter : Translate the application code into instructions that the processor can understand.

· Libraries : Contains codes that the hardware needs to support features such as graphics, communication, security and others.

· Adaption Layer : This is the interface between the kernel and the device hardware.

· Kernel : Provides functions like memory management and process management tasks.

· Device Drivers : Drivers to operate the devices that are built in to the system.

6.4.1 OPENTV The company was formed by a joint development and marketing alliance between Thomson Multimedia and Sun Microsystems in 1994. Their first product was shipped in 1996 and was named OpenTV 1.0. The alliance was later reconstructed into an independent company with the name OpenTV. Approximately 6.1 million digital set-top boxes are today using OpenTV and about 20 STB manufactures have licensed the OpenTV operating system.

Web based EPG 34 EPG ______

Some of OpenTVs customers are

Company Country Distribution form Telia InfoMedia TeleVision AB Sweden par Satellite (TPS) France Satellite Senda Sweden Terrestrial EchoStar/ US Satellite France Telecom Cable France Cable BskyB UK Satellite

It is the STB software OpenTV EN2 that allows the box to receive the MPEG-2 video and audio, as well as the interactive services that are sent through the broadcast stream. The software consists of a core part and an extension part. It is the core part that act as a middleware layer to support several real-time operating systems such as pSOS, VxWorks, Nucleus Plus and others [78]. The extensions are add-on modules that increase the capabilities, for example smart cards can be used for shopping or retrieve teletext from the stream. New extensions during this year (2000) are TCP/IP return channels and web browsing.

The application API consists of the OpenTV Software Developers Kit (SDK). This is an environment using ANSI C and is available for several platforms such as SUN, Windows and NT. There is also another tool for developing OpenTV applications. It is called OpenAuthor and this is aimed more to the non-technical community. This is a visual authoring tool, much like the tools that exist for creating HTML pages. The OpenAuthor delivers their content precompiled and can then run direct on the virtual machine.

6.4.2 MEDIAHIGHWAY CANAL+ was founded in 1984 and are today regarded as the leading pay-television company in Europe. Their system for creating interactive services is called MediaHighway and has been inserted in approximately 6 million set-top boxes. The language that MediaHighway is using to write interactive applications are called Pan Talk. The technology has been chosen by approximate 10 STB manufactures. Canal+ also have their own developed conditional access system, named MEDIAGUARD. The MediaHighway system is like OpenTV based on a virtual machine, which means that it has the ability to run on any hardware platform or operating system chosen by the STB manufacturers.

Figure 6-2 The MediHighway software architecture in the STB [80]

The figure 6-2 shows where in the chain the virtual machine is placed. The MediaHighway consists of both the virtual machine and the development kit for creating applications. The architecture for MediaHighway has two key interfaces. The interface between the virtual machine and the device

Web based EPG 35 EPG ______manager called Device Layer Interface (DLI), and the development of the software below the device manager, are the STB manufacturers in charge off. It is the DLI that has been licensed to the STB manufacturers. The other interface is between the Virtual Machine and the Application and this is the application program interface [80]. The virtual machine is able to support the Java programming language, so the developer is not bound to their language, Pan Talk.

Some of MediaHighways customers are

Company Country Distribution form MediaOne US Cable Zee Network Cable Jupiter Japan Cable

6.4.3 Web based Regarding the tools for creating web based EPG, I refer to chapter 7.1. Where I examined and motivate my selection of language before I construct my prototype.

6.5 Comparing these EPG platforms with web based EPG The answers to the questions regarding OpenTV have been performed together with Brad Fuller at OpenTV and Ewa Jacobsson at ComHem.

Language Web based When creating an EPG with web based tools, both HTML and JavaScript can be used. Both these languages are well known and there are a great number of peoples that can develop applications with these languages. OpenTV The language that OpenTV are using for creating their interactive application is based on ANSI C. Since it is used only with in this area, the language is not so well known. MediaHighway Canal+ has designed its own language called Pan Talk. Which is also a language that is used only in this area and not well spread.

Accessing How is the EPG application accessed and how much is the client latency. Web based I have access all the web based EPGs that I have mention in my appendix and their loading range where between 7 to 20 seconds. The computer from where the access where made from is a Pentium 3, 600 MHz with an ordinary 56 Kbit/s modem and Telia as the ISP. The channel information that is shown for these accessed EPGs are between is for 15 to 42 channels, and they only display programs for one day at the time or what is on right now.

Other things that affect the access time besides my modem connection are the load on the servers and the generally load on the internet at that time. OpenTV The EPG and the channel information are transferred with the same steams as video and audio is sent with. When a user want access to the EPG, it takes between 15-20 seconds before the EPG is loaded. On the other hand are channel information showed for 73 different channels, three days ahead. The test was made on the EPG that ComHem are using, which has been developed with OpenTV. MediaHighway N/A

Web based EPG 36 EPG ______

Commercials If there are commercials at the EPG, is it possible for the users to click on them and then receive more information about that product Web based Yes, when a user clicks on a commercial banner, the page will be loaded as any other page on the Internet would be loaded. OpenTV Dynamic commercial pages could be pre-stored stored in RAM or Hard disk. They can also be stored in the FLASH memory as well. MediaHighway N/A

License Does this developing tool demand license for every set-top box, where the created EPG is inserted. Web based No OpenTV Yes MediaHighway Yes

Scale How does the number of user affect the load on the EPG application. Web based Here the number of users can be a load on the network, but it all depend on the traffic between the users and the server containing the EPG. OpenTV Since the EPG is always broadcast, the number of user will never be a bottleneck. MediaHighway The EPG is always broadcast and the number of user will not be a bottleneck.

Channel information Web based The channel information is placed in a database. When users want this information, they will access this database directly through a database connection. OpenTV The channel information is placed in a database, at least in ComHem’s case, which are using this API. The user will in this case not get access directly to the database. Instead will all the channel information be broadcast with the same stream as the video and the audio is sent in. MediaHighway N/A

Web pages and links Is it possible to include web pages and links to web pages inside the EPG. Web based Yes OpenTV It is also possible to have links from the EPG to web pages on the Internet. Since web browsing is one of the extension that will be developed during this year (2000), in the OpenTV EN2. But it is possible to convert web data into OpenTV modules and then broadcast it. MediaHighway N/A

Developing platforms Which platforms can be used, when developing an EPG. Web based Macromedia Windows 95/98/NT and Macintosh Java/JavaScript/HTML 95/98/NT and Solaris OpenTV Windows 95/98/NT and Solaris MediaHighway N/A

Web based EPG 37 EPG ______

Remote control Is it possible to control the EPG with a remote control. Web based Yes OpenTV Yes MediaHighway Yes

6.5.1 The market OpenTV and MediaHighway are regarded as the dominating APIs in Europe as figure 6-3 shows. The expansion for MediaHighway in Europe will during 2001 reach nearly 5 million and OpenTV will reach about 6 million subscriber’s [79]. There was no available information about the market for the web based tools regarding the creating of interactive services.

Figure 6-3 The Europeean market for middlewares [79]

6.5.2 Conclusions There are some disadvantages with both OpenTV and MediaHighway. The first is the license, which is a fee that is paid for every box by the manufacturer of the set top that both products have box [P. Marchal, Personally communication, 19 May 2000]. The other it that people with the right qualification is much harder to find for the OpenTV and the MediaHighway API. Since their languages is not as well spread, which the web based languages are. The downloading time is to long and users that access the web based EPG will certainly have more bandwidth than 56 Kbit/s. When inserting commercials, the web based EPG is more prepared for the e-commerce since they are on the same platform and the this market already exist. With OpenTV, the commercial web pages first have to be converted before they are broadcast out to the users.

With a web based EPG, the launching time will be affected by the load of the server from where the EPG is located and the generally load between the users and the server. This bandwidth that the user have will also be an affecting part. None of these factors will have any affect when an EPG is launched created by OpenTV or MediaHighway. Since applications like that is always broadcasted out to the users, and is not affected by the number of users.

Web based EPG 38 EPG ______

6.5.3 Future Since DVB are aiming to develop the MHP standard. The MHP will include a collection of net and video standards such as HTML, SMIL and JavaScript. Since this standard probably will be supported by many STB manufactures. It is important for OpenTV and MediaHighway to support it.

According to Therese Torris [79] will both OpenTV and MediaHighway have difficulties in 2002 to increase their functionality in all the set-top boxes running their proprietary APIs, since it will not be able to extract any more performance from them. Both the TV channels together with the interactive digital TV (iDTV) operators like, ChanelSatellite’s Canal Plus and Open’s News Corp channels will put pressure on their parent companies to distance themselves form proprietary technologies. That will hold back the wider distribution of their interactive services. Regarding the adaptation for OpenTV and MediaHighway to MHP, Therese Torris say that OpenTV will be able to transform from the system licence fees to a MHP service provider. MediaHighway on the other hand are expected to sell their technology to standard solutions providers like for example .

Web based EPG 39 Database ______

7 Database

Since one task in my degree thesis where to examine some database connections. I first give an introduction to the database area. A database is a storage medium, where different kind of informations is kept in a structure way. The information can be easily accessed and read or changed.

7.1 Database Models There have been several different database models used over the years. Below is a short description of some of them.

7.1.1 Flat file This was the first way of storage data. All information was stored in a single table. Which where difficult to handle when volume increased. Flat files do not provide all the service of DBMS, such as elimination of redundancy.

7.1.2 The Hierarchical Model In 1960 IBM developed the first real database. The hierarchical model organises the data in a tree structure (an upside-down tree) with parent, children and leaves. The records of the highest level of the hierarchy are called roots and record to which several records of a lower level are linked is called a parent. The records linked to the parent are its children and the records of the lowest level are called leaves. A record is linked to another record by a pointer. The relationship between the parent and child is one to many, it can only be used with 1:1 or 1:N relation between the records. One problem with this model is when there are many parents with the same child, M:N or M:1. In those cases hierarchical databases require considerable data redundancy just because child records can have only one parent [42].

7.1.3 The Network model This model was designed by the CODASYL (Conference On Data Systems Languages) in 1971. It is an extension of the hierarchical model where many to many relationships are now allowed. Parents can now have many children and children can have many parents. By doing this they reduced the data redundancy but when the system grow as well as the connections between the segments. It will reach the point where maintenance of the system becomes very difficult. The organisation of this model is that of an arbitrary graph.

7.1.4 The Relational Model In the relational data model the database is represented as a group of related tables. It was in 1970 that Edgar Codd introduced the relational data model, and is currently the most popular database model. The mathematical simplicity and ease of visualisation of the relational data model have contributed to its success. The relation itself corresponds to our familiar notion of a table. A relation is a collection of tuples (table rows), each of which contains values for a fixed number of attributes (table column). Each tuple in a relation must be unique -- that is, there can be no duplicates. To ensure that no duplicates can appear, the relational model requires that every relation have a key. The key fields have non-null values and no two tuples may have the same key value.

7.1.5 The Object-Oriented Model This model is created to provide DBMS capabilities to store objects that have been created using some object programming language. Every object in this model has been assigning a unique OID (object identifier). Pointers handle the relation between the different objects. But when the amount of relations increases, the numbers of pointer get so high that they will negatively affect the performance.

Web based EPG 40 Database ______

They also make the relationship between the object very hard to survey. That is way this method is not suitable for handling large amount of data. This model is more appropriate to handle smaller amount of data. It is there the pointers are most useful and with that small amount of data, this model is even faster then the relational model. To solve the problem with objects written in different languages, two ways can be used. One is that every object that shall be store in the database is saved with a neutral language and when the object is requested is will be transformed to the correct language for the requested application. The other technique is to store the object with its correct language and then transform it if necessary.

7.1.6 The Object-Relational Model The Object-Relational Model has been build by taken some object-oriented features with the function that the relational models have. The purposed standard for object-relational is SQL3 but the ANSI committee is not yet finished with it. Because of this no vendors today can call them self, SQL3 compliant. To create ORDBMS (Object-Relational DBMS), vendors like ORACLE and IBM have used their own originally RDBMS (Relational DBMS) and change them dramatically to include object- oriented features [43]. Their models, which also can be called a hybrid, are half-relational and half object-oriented.

7.2 DBMS Database management system (DBMS) is software that is designed to control user access to the database and to efficiently manage the data resource. Every DBMS has two common components, DDL (Data Definition Language) and DML (Data Manipulation Language). The DDL handles restrictions and with DML the data can be manipulated. Figure 7-1 show where the DMBS is placed in the database system.

Figure 7-1 Components of DBMS [42]

7.3 Database connection Today there exist a number of different database connections on the market. To make it easier for user to connect to their database. Both Microsoft and SUN Microsystems have developed database interfaces, that through different drivers can connect to almost all the different existing databases.

7.3.1 JDBC Java Database Connectivity (JDBC) is a standard defined by Sun Microsystems and it is used by Java applets and Java applications to access databases. It is the equivalence to Microsoft’s ODBC, and both of these interfaces for database communication is based on X/Open SQL CLI (call-level interface). The SQL CLI was developed by SQL access group in 1990 and is an API for database access. In 1995 it had become a X/Open Common Application Environment specification. This meant that the X/open CLI specification had become a standard for database access and that it is neutral

Web based EPG 41 Database ______regarding, vendor, platform and database. The JDBC API is used for executing SQL statement and can only be used with relational databases. The SQL statements are embedded as arguments to methods in JDBC interfaces.

For clients to access a database they need a driver. There are four different types of JDBC-drivers. The only driver that Sun has developed is the JDBC-ODBC Bridge, all the other types has different database vendors made to be adjusted to just there DBMS. Therefor a different driver is required for each different vendor's database [48]. Today JDBC 2.0 is the latest update of the JDBC API. It contains both the Core API and the Standard Extension. The standard extensions are packages of classes written in the Java programming language. Application developers can use these extensions to extend the functionality of the core part of the Java platform. The reason way there are extensions is because the core part of the Java platform has been growing steadily since SUN released version 1.0. Now there are over 50 packages in version 1.2 and by using extensions they can add functionality without increase the size of the core API.

7.3.1.1 Drivers There are four different types of JDBC Drivers

· JDBC-ODBC Bridge · Native-API Partly-Java Driver · Net-Protocol All-Java Driver · Native-Protocol All-Java Driver

Every part in the two pictures below is on the client side except middleware and the database server.

A B C D

Figure 7-2 Java drivers [44] Figure 7-3 Java drivers [44]

A: JDBC-ODBC Bridge This driver has been developed by Intersolv and JavaSoft. This driver will translate JDBC calls into ODBC calls. To ODBC it will appear as a normal application program. The reason why Sun developed this type of driver was to take advantage of the large number of existing databases that where already using ODBC. When using this bridge the JDBC calls are converted into C language for the ODBC APIs. It will then be passed by ODBC to the appropriate ODBC driver that will handle the connection to the database server. For ODBC to be able to pass the JDBC calls to the appropriate ODBC driver, the client has to install one driver for every database manufacturer. The bridge is implemented as the jdbcodbc.class and a native library to access the ODBC driver [J. Andersson, Personal communication, 24 Aug 1999].

Web based EPG 42 Database ______

The bridge, ODBC and some ODBC-drivers for different database DBMS has to be installed at the client. The DB Client Lib is the vendor’s c or c++ lib, which contains both the vendor specific driver and the API for communication with that driver. To gain access to the vendor’s lib a DLL file is used, which contains the communication layer with the vendor’s lib. The JDBC Driver Manager is a class that chooses the correct driver when a client wants to make a database connection.

B: Native-API partly-Java drivers When using this driver the JDBC call will be converted into the API for the current database. This means that there will be no portability because the client will only be able to connect to just that specific database. On the other hand the user will not have to wait for the JDBC-ODBC Bridge to convert the JDBC-calls. But the driver for the particular database that a client wishes to connect to still has to be installed. This connection can be used with many different database drivers but every client have to make the connection to the driver for the database by themselves, there is no interface like ODBC that will choose the right driver when access to a database is desired. This driver simply removes the ODBC portion of the JDBC-ODBC Bridge.

JavaSoft calls these native-API partly-Java drivers because there is a wide range of variation between vendors in how much of the driver is Java, and how much is C/C++. Some vendors have merely wrapped an existing C/C++ driver in a thin layer of Java. Other vendors, like WebLogic, instead built the driver in Java, and then added a very thin layer of C/C++ to make calls to the vendor libraries. Since the client libraries are usually written in C or C++, the JDBC implementation uses that layer of C or C++ which the Java driver have to make the call to the vendor libraries. This requires that each client have a local copy of the .DLL that contains the C/C++ layer for communicating with the vendor library [46]. Often drivers like these are called "native" drivers, because their layer of non-Java code requires the use of "native methods" in Java.

C: Direct-to-Database Native-protocol all-Java driver In this case the driver convert JDBC call directly to the network protocol that the DBMS is using. For example Oracle DBMS use the network protocol SQLNet, which is run on top of TCP/IP by using Oracles TCP/IP protocol adapter. But many of these protocols are proprietary the database vendor, and the driver has to come from them since they are the only ones that know how the procedure for sending user_id, password etc are.

D: For Database Middleware, Net-protocol all-Java driver:

This type of driver translates JDBC calls into a DBMS-independent network protocol, which is later translated into a DBMS specific protocol by a middle-tier server. The driver is installed at the client and uses sockets to call the middleware-application that translates the client requests. At the middleware both Java driver of type A and B can be installed [45]. This driver give the user good flexibility, since a client can access multiple and different databases with the single driver that is installed at the client. But since there are two drivers involved in a database access, performance is not so good. Although the driver do not require any additional code to be installed at the client.

7.3.1.2 Performance Because these drivers have been designed to meet different demands, there is a difference in performance. To separate these drivers, regarding performance. I used the grading that the magazine Network computing has done [47]. Since it was not possible to made a performance test of these drivers myself.

JDBC-ODBC Bridge (type 1) This driver was the slowest. Native-API partly-Java drivers (type 2) These drivers are the quickest of these four. Direct-to-Database Native-protocol all-Java The driver loads quickly, because they are small, driver (type 4) but do not execute requests as fast as type 2. For Database Middleware, Net-protocol all-Java These are efficient but no match for the type 2 driver (type 3) driver.

Web based EPG 43 Database ______

7.3.1.3 Conclusions

JDBC-ODBC Bridge This driver might be the slowest of these drivers but the advantages with the JDBC-ODBC Bridge is that it can access almost any database. But since the service provider probably not will have many different kinds of databases, the advantage with this driver will not be used.

Native-API partly-Java drivers This driver had the best performance but native code (DB client Lib) has to be preinstalled at the client. This means that if the service provider changes database, the DB client Lib for that database has to be installed at the user. This is in my opinion the best-suited driver for database connection between the server and the database, since it is that fastes one, and with the assumption that the service provider will not change database often.

Direct-to-Database Native-protocol all-Java driver These drivers are very much like the Native-API partly-Java drivers. The difference is that this driver does not offer the same performance but on the other hand the client does not require any preinstalled code. But since this driver demands several JDBC drivers for various vendors’ SQL databases, it does not have the same flexibility that driver D does.

For Database Middleware, Net-protocol all-Java driver The advantage with this driver is that there is no need for any native code to be preinstalled at the client, only the driver needs to be installed. Since the driver speaks DBMS-vendor neutral protocol, the software receiving the request can access many different SQL databases without the need for loading additional code at the client. This driver may not be the fastest but it is the most flexible one, since the client only requires minimal code and still has access to many different databases.

7.3.2 ODBC Open database connectivity (ODBC) is an API for accessing data from relational and non-relational database management systems (DBMS). This interfaces for database communication is like JDBC based on X/Open SQL CLI. ODBC is developed by Microsoft and is today widely accepted. Before ODBC, every user that wanted to access several databases had to have each vendors database solution installed. This meant that the user had to learn one API’s for every connection. With ODBC the user only needs to learn one API, the ODBC API, to make a database connection regardless of the API that the specific database has.

When the user want to access a database, it has to use the correct driver. The procedure to choose the correct driver is done by the driver manager [65]. Before the connection is possible, the user has to declare the data source name, user id and password for the database it wishes to connect to. The driver manager will take the data source name to find the associated driver. When the driver is found, driver manager will call a function in the driver, which will make the connection to the database.

The ODBC architecture has four components:

· Application: The application is the program that processes the data. It call ODBC functions to submit SQL statements and retrieve results.

· Driver Manager: Loads and unloads drivers on behalf of an application.

· Driver: Connects and passes a SQL requests to a specific data source, and the result is returned to the application. The driver is loaded at run time.

· Data source: The data source includes the data the user wants to access and its environment, like the operation system and DBMS.

Web based EPG 44 Database ______

Figure 7-4 The relationship between the ODBC components. [65] The application, driver manager and the driver are located at the client side.

7.3.2.1 Drivers There are two types of ODBC drivers

· Single-tier · Multiple-tier

Single-tier These kinds of drivers, se figure 7-5, are used when the database and the driver are located on the same machine. The database engine with this kind of driver is not an SQL database engine, and since these drivers do not have a DBMS to deliver their calls to. The driver has to perform all the SQL processing it self. The interface to the data source is through file I/O or ISAM (indexed sequential access method) calls. Examples of drivers using file I/O are Microsoft Excel drivers and applications that use the ISAM type are for example Microsoft Access and dBASE.

Figure 7-5 One-tier-architecture [66]

Multiple-tier The two-tier system is the standard system used today. Here the user will not directly contact the data, instead the request will be sent to the DBMS, se figure 7-6. The DBMS will execute the request and send back the result to the user. The user can send the request by two different ways. Either the application can call the SQL execution function through the ODBC driver. Then the driver will compose a message with the user determined SQL-string and use a function in the network library, which will send the message to the server, so the DBMS can receive it. If it is sent by RPC (Remote Procedure Call), the client would sens the SQL function in encoded form, together with its argument, the SQL string, to the server. Where it will be reconstructed into the original SQL function call.

Web based EPG 45 Database ______

Figure 7-7 Three-tier-architecture [66] Figure 7-6 Two-tier-architecture [66]

There is not much difference between the three-tier and the two-tier architecture. Except that the SQL function call is not send directly to the DBMS, se figure 7-7. The gateway server first handles the function call from the client, before it reaches the DBMS on another machine. At the gateway server exists both an ODBC driver manager and drivers for one- and two-tier. This means that client can connect to multiple databases through the gateway server.

7.3.2.2 Conclusions The most flexible one is the Three-tire driver, here the operator is not bound to one type of DBMS. Since the client only needs to install one driver and still have the possibility to access several different DBMSs. But with the same reason as mention in the JDBC case. That speed should have higher priority that flexibility. There has been no comparison regarding the speed between these drivers. But since the database and the EPG are probably not placed on the same machine, the Single-tier driver will not be used. This means that the Two-tier-architecture should be the fastest one, and they’re by my recommendation.

Web based EPG 46 Construction of the EPG ______

8 Construction of the EPG

8.1 Language for EPG Before constructing the EPG, I had to decide the language and the application type in which the EPG where going to be developed in. The ones that I have chosen from are listed below.

· Servlet

· Applet

· Script

Servlet A servlet is a server-side component that is written in Java. When a user are accessing a servlet, through its web browser. The connected server will forward that request to a servlet. The servlet is executed on the server and the processing of the servlet are usually returned to the client in the form of HTML. There is no need for a Java Virtual Machine at the client since all the interpretation of the Java code is done at the server. Servlets have the ability to run on many different web servers like O’Reilly Website, BEA WebLogic Application Server and Netscape Enterprise Server. It is also possible through add-ons that will add support to web servers like Microsoft Internet Information Server and Apache Web Server. The Servlet API that contains all the classes and interfaces is a part of Sun’s Java Servlet Development Kit.

Figure 8-1 The Servlet life cycle [75]

A servlet runs inside a Java-enabled Webserver. When the first request for a servlet program is made, the servlet will be loaded into the JVM in the HTTP server. After the HTTP server loads and initialises the servlet, the servlet is ready to handle client requests. Each client’s request has its call to the service method run in its own servlet thread: the method receives the client's request, and sends the client its response. Servlets are considered as a good substitute for CGI programs because they are faster after the first request. While a CGI program opens a new address space for serving each incoming browser request, a servlet operates in the same address space, opening only threads for servicing requests, se figure 8-1. A connection to a database can with a servlet be made with any of the JDBC drivers.

Java Applet Java applets are constructed with Java code. When the user is requesting a Java applet through its web browser, all the precompiled code for that applet will be downloaded to the clients web browser. The applet that are included in the HTML code are then executed in the web browser.

Web based EPG 47 Construction of the EPG ______

The applet has a fixed area in the web page. When a Java applet is compiled it turns into byte code. This bytecode will be translates into machine-specific instructions by the Java Virtual Machine (JVM) that is written for that particular platform. The browser company must have licensed the technology from Sun and then built it into the browser. It exists a JVM for every platform like Macintosh, UNIX and Windows that will turn the code into the right machine code. The most common web browsers, Netscape Navigator and Microsoft Internet Explorer are examples of browser using an embedded JVM.

Applets that are loaded over the net are generally not allowed to read or write files that exist on the clients file system, since all loaded applets are considered untrusted. It is also not allowed to make network connections to other hosts except to the original host, from where the applet was loaded. This is not the host where the html page came from, but the host that provided the .class files. It is possible to release some of the strictness of the applet by using signing and verification. But Netscape Communicator or Internet Explorer does not support it. It is only supported by HotJava and appletviewer [74]. When connecting to a database through an Applets, the JDBC drivers can be use.

Script It exists many different script languages on the web today. I have mentioned some of them in the appendix. Scripts can be seen as an addition to HTML, since all code is imbedded with in the HTML. When using script there is no compiler involved since the browser interprets the script. There exist both client-side and server side script. Most of the script has the possibility to connect to a database.

Evaluation

Different Platforms Advantages for applets and servlets are that Java is a cross-platform language, this means that it can run on platforms like UNIX, Windows NT and other operating system that are Java compiliant. Most of the script languages can also run on these platforms.

Applets demand a JVM in the client’s browser. With servlets there is only need for a JVM at the server. That means that there is no need for support for Java in the client’s browser.

Graphical interface Since it exist many powerful tool for creating html pages. All script languages have excellent possibility to make sophisticated interfaces for the electronic program guide. Servlets and applets demand from the developer to create every row by them self. Which can not be compared with the existing web pages tools on the market today, like the Macromedia dreamvewer.

Client loading Since the intention to have as little processing done at the client as possible. Applets have the disadvantage to have its code executed at the client. The code that Servlets and scripts will send, is code that is interpreted by the client’s browser.

Database connection Applets, Servlets and Scripts have the possibility to connect to a database.

Conclusions The script language is considerd to be best suited for this type of application. With this technology the EPG will be easily designed with existing tools on the market, and the load on the client is minimal. Since the code sent from the server, is code that the browser will interpret

Web based EPG 48 The Web Based EPG prototype ______

9 The Web Based EPG prototype

9.1 Language Regarding the interface for the EPG, it where several different language and application types to choose from. But since I already had some knowledge in Servlets, I choose to develop my EPG as such an application type.

9.2 Architecture The architecture for the EPG involves a client, a database and a webserver. I have installed both the webserver and the database on different hosts, and a third host is used for accessing the EPG. The reason way I did not install everything on one computer. Was because I wanted the environment to be as realistic as possible. To setup my environment, the following software was installed.

Client JDE 2.1.5 JDK Version 1.2.2 JSDK 2.0 20.3.1 of GNU Emacs Jikes 1.04

Databas Server NT 4 for server MS SQL 7

WebServer JavaWebServer 1.1.3 jdbcKona/MSSQLServer4 driver

9.3 Components

Videoplayer The video player that is used is the RealPlayer from RealNetworks. They provide Realplayers for both Netscape and Internet Explorer. With Netscape the RealPlayer is a plugin and for Explorer, it is an ActiveX component.

The videoclips showed in the RealPlayer was recorded from the television by using the program ASUS Live. This program saved the recorded video clips in the avi format. But since this realplayer uses another format, it had to be converted from the .avi format to the .rm format. This was done with the RealEncoder 5.01. Every videoclip was recorded at 300 Kbit/s and 284 Kbit/s of those 300 was used for the video and the remaining 16 Kbit/s was used for the audio. At figure 9-1 are the interface of the EPG that where developed.

Database connection For database connection, I used the jdbcKona/MSSQLServer4 driver from Weblogic. This driver is a type 4 driver, which in my report is referred to the driver type C.

Regarding the choice of database, the Microsoft Access could have been used, but since it is limited to handle only ten users simultaneously. My choice was the Microsoft SQL server, that is scaleable to handle thousands of users simultaneously, and is probably the database chosen between this two, if a real system with a web based EPG would be constructed.

Web based EPG 49 The Web Based EPG prototype ______

There where also performed a test to examine the time it takes to perform the following SQL expression, exec="Select channel, date, time, title, category, duration from svensktv". Which is the database call to receive all the necessary information that was needed to display the information for the titles that where chosen in my EPG. These titles are Channel, Starttime, Stoptime, Program and Category. There where 30 calls performed, the worst-case was 70 ms and the best-case was 10 ms, and the average time for all 30 calls where 43 ms. Every call was made from the computer that the web server was on, to the computer where the database where. Both computer where on the same net at Telia Research AB in Nynäshamn (Research-nyn-1).

This test was performed by making three time calls in the code, T1, T2 and T3. The first two call, T1 and T2 where made before the SQL expression had been performed. Then where the T3 call where made. This gave the time it took before the data from the database where received. This expression T3-T2-(T2-T1) also removes the time it take to perform the actually time call.

Channel information The channel information that are used, where received from Telia Infomedia. It contained informations about the different programs for one day. That information was actually used on the first of November 1999, in their cable net. To insert the channel information, the file first has to be saved as a textile, and then some adjustments were made in Microsoft Access to it. Then it was ready to be inserted in to Microsoft SQL server.

9.4 The EPG interface

Figure 9-1 The graphical user interface for the EPG

Interface description The EPG consists of seven frames, and is presented in figure 9-1. The whole EPG is presented by a servlet to the client. In figure 9-2 shows the placement of the seven different frames, and is followed by a more detailed description of these frames.

Web based EPG 50 The Web Based EPG prototype ______

Figure 9-2 Frames in the EPG

1. This frame will only contain the commercials.

2. Here is the video player and as mention eirlyer the player I am using is RealPlayer, and this is representing a small television screen. When users finds one of the programs that are being transmitted, he/she can get a quick view of the program without leaving the EPG. The RealPlayer works with both Internet Explorer and Netscape. The RealPlayer has been set up as an ActiveX component for Internet Explorer and as a plug-in for Netscape. It is a servlet that are handling this frame.

3. Here it will be possible for the user to have the EPG display all the programs that are on right now, by pressing the På-tv-just-nu button. The other two are for future functions, where the inställningar button can display the profile the user have. Regarding channels, type of movies so that just those types of programs are shown and not all available. The sök button is for searching after a program, more specefic then channels or movie categories. It can be used for searching for a certain actor or the name of a program.

4. This frame displays the current time and date.

5. These dropdownlists contains all available channels and categories. They are read from the database using the JDBC driver when the user loads the EPG. It gives the user the opportunity to search the database for programs involving their starttime, channels, category and day. This is handled by a servlet.

6. This is a static frame displaying the headlines for the channel information.

7. Here are all the channel information shown. It is possible for the user to click on the channels logo that are under the headline Kanal, and some of the programs that where recorded will be displayed by the RealPlayer. This will symbolise that all current transferred program are available for the user to get a quick look to see if it where something interesting. This frame is handled by a servlet

Web based EPG 51 Future Work ______

10 Future Work

There are often things that could be futher investigated. Below are some tasks that could be performed to extend this work futher.

· Future work would be to purchase PVR, Tivo and ReplayTV and then compare and evaluate their user interface.

· A more practical evaluation of the different database connection.

· Use the web based EPG in as small field trial with real channel information stored at the database.

· Complete the two buttons, sök and inställningar in the EPG prototype.

Web based EPG 52 Conclusion and Discussion ______

11 Conclusion and Discussion

Those EPG that where found had very similar interface and functions. Users can base their search on channel, date, category or time, and some also have the possibility to search with free text among these channels. Another common function is that the user can choose to display information of only those channels that he/she is interested in. For example when a user want to se what is transmitted right now, channels that the user do have access to, will not be viewable. The channel information is often either for what is on right now or information for one day ahead.

The channel information for these channels can be found in several companies. The major companies that sells gathered channel information are TVData, Infomedia, and Avisa Centralredaktion AB. Both Infomedia and Avisa have channel information that are common to the Swedish viewers and from where channel information could be bought for a future web based EPG. The largest of these three are TVData, but unfortunately it is not confirmed if they have any of the most common channels viewable to the Swedish households. Two other companies that exist on the Swedish market are Tjohoo AB and Rockitmedia HB, but Tjohoo only have the information for internal use, but Rockitmedia have some channel information that extern companies can use.

The connection between the database that contains the channel information and the server where the EPG is placed, where also examined. With the assumption that the EPG is installed at one server and the database are placed in another server. The best driver would be the fastest one and not the most flexible one. For JDBC, the best driver would be the Native-API partly-Java driver, and for ODBC, the Two-tier-architecture. Should flexibility have higher priority then speed. Then my recommendation would for JDBC be the Database Middleware Net-protocol all-Java driver, and for ODBC the Three- tier-architecture.

When constructing an EPG, there are several platforms to chose form. In the evaluation between creating the EPG with web based tools or use OpenTV or MediaHighway, there were more advantages for creating a web based EPG. These is no license per set-top box with web based tools, the different script languages are well known. It is more suitable for e-commerce, since commercials with the EPG would be no different that the commercials that exists on for example, the Swedish newspaper Aftonbladet. Also the assumption that these proprietary APIs will have difficulty to support future interactive services.

The disadvantage with creating the EPG with web based tools. Is that the number of users will affect the load on the network. When many users at the same time access the web based EPG, the load on the network will increase and could be a bottleneck. This is not a problem for OpenTV or MediaHighway, since their EPG is broadcast to all their users.

The products from TiVo and ReplayTV have very similarly functions, price and storage capacity, and it will in my opinion be their interfaces that will separate them. Their functions will be well used but the size of the hard disk is to small and the price is to high to penetrate the mass market. During the evaluation of these products the price has gone down from $999 to $399 (TiVos HDR312). With that price they are almost in the same pricerange as the ordinary VCR today, but offer much more functions. So a replacement of the existing VCRs with the PVR will certainly occur. When comparing these two products with server based VOD. It was the PVR that had the most advantages for the client, for example they offer better functions, the user has more control over the movies and the client latency is smaller. Also when the users makes a request or want to change its present selection of movie, the load on the network will not be affected.

Web based EPG 53 References ______

12 References

[1] Enstedt E. (1988). TV-teknikens grundläggande principer. Lund : Studentlitteratur ISBN 91-44-27931-0 [2] Hellström J. (1958). Radioteknikerns handbok: TV-teknik. Stockholm: Teknografiska inst. [3] Radio och tv-verket. (1999). En guide till digital-tv. Stockholm: Elanders Gotab. ISBN 91-630-7841-4 [4] Kabeltv (1999). Basfakta URL: http://www.kabeltv.se/fakta/basfakta/index.htm (1999-11-16) [5] Teracom (1999). TV och radio – hur fungerar det URL: http://www.teracom.se/ (1999-11-16) [6] Nordling E. (1999) adsl Datateknik, 10, 24-28. [7] NOR.WEB (1999) Architechture URL: http://www.nor.webdpl.com (1999-08-10) [8] Tele2 (1999). El och Internet i samma nät URL: http://www.tele2.se/tele2nytt/nr2_99/nyheter.html (1999-11-16) [9] Mellgren E. (1999). Nytt superchip ger billig bredband i vanlig koppartråd. NyTeknik, 45, 11. [10] Edström A. (1998) VDSL blir åtta gånger snabbare än ADSL. URL : http://www.elektroniktidningen.se/arkiv/1998/9812/2.html ( 1999-11-15) [11] Bredbandsbolaget (1999) Ständig uppkoppling till fast pris URL : http://www.bredband.com/node85.asp (1999-11-15) [12] Bredbandsbolaget (1999) Bredbandsbolaget förvärvar TeleCyber URL : http://www.bredband.com/files/pressreleases/PR_991011.html ( 1999-11-15) [13] TeleCyber (1999). Teknik URL : http://www.telecyber.se/teknik.html ( 1999-11-15) [14] UUNET (1999). The Network URL : http://www.uk.uu.net/company/network/ (1999-11-15) [15] InfraNET (1999). Produkter URL : http://www.infranet.se/produkter/produkter.html (1999-08-02) [16] Video International Development Corporation. (1999). World Television Standards. URL: http://www.videointernational.com/Standards.html (1999-11-17) [17] Claymon D. (1998). ONE TO WATCH, Red Herring, August 1998. URL : http://www.redherring.com/mag/issue57/watch.html (1999-09-10) [18] Electronic Publishing Services (1997). Time-Warnet finally closes Orlando FSN URL : http://www.epsltd.com/eps/database/imi/may97/timew.html (1999-06-11) [19] USA Today (1999). Tech Rewiews: Devices give TV viewers new options URL: http://www.usatoday.com/life/cyber/tech/review/cte749.htm (1999-11-25) [20] TiVo (1999). This is the manual for the TiVo Software. Version 1.2.1 URL: http://www.tivo.com/care/manual.html (1999-11-26) [21] TiVo (1999). TiVo Tour URL: http://www.tivo.com/what/intro.html (1999-11-25) [22] TiVo Manual (1999). Example Connections URL: http://www.tivo.com/care/appa_2c.html#connection8 (1999-11-25) [23] TiVo (1999). Product specification URL: http://www.tivo.com/what/how2.html (1999-11-25) [24] TiVo (1999). FAQ URL: http://www.tivo.com/what/faq_sub.html#q01 (1999-11-26) [25] TiVo (1999). TiVo News URL: http://www.tivo.com/what/news.html (1999-09-21) [26] Press kit and brochure from ReplayTV [27] ReplayTV (1999). Technical FAQ URL: http://www.replaytv.com/support/techfaq.html (1999-10-15) [28] ReplayTV (1999). Specification URL: http://www.replaytv.com/replaytv/specs.html (1999-07-02)

Web based EPG 54 References ______

[29] ReplayTV (1999) FAQ URL: http://www.replaytv.com/replaytv/faq.html (1999-07-13) [30] ReplayTV (1999). News URL: http://www.replaytv.com/news/index.html (1999-11-26) [31] Casner S. Jacobson V. (February 1999). Compressing IP/UDP/RTP Headers for Low-Speed Serial Links. RFC 2508 URL: http://www.faqs.org/rfcs/rfc2508.html (1999-11-30) [32] Schulzrinne H. Casner S. Frederick R. Jacobson V. (January 1996). RTP: A Transport Protocol for Real-Time Applications. RFC 1889 URL: http://www.faqs.org/rfcs/rfc1889.html (1999-11-25) [33] Miller C.K. (1999) Multicast Networking and Applications. Reading, Mass.: Addison-Wesley ISDN: 0-201-30979-3 [34] RealNetworks (1998). Real Time Streaming Protocol (RTSP) into firewalls, proxies, and other intermediary devices. ver2.0. URL: http://docs.real.com/docs/proxykit/rtspd.pdf (1999-11-18) [35] Rescorla E. Schiffman A. (August 1999). The Secure HyperText Transfer Protocol. RFC 2660 URL: http://www.faqs.org/rfcs/rfc2660.html (1999-11-18) [36] NorDig (2000) NorDig Specifications URL: http://www.svt.se/nordig/NorDig1_2.pdf (2000-02-02) [37] Peterson L. L. & Davie B. S (1996). Computer Networks. San Francisco, Calif.: Morgan Kaufmann Publishers. ISBN: 1-55860-368-9 [38] Information Sciences Institute.(September 1981). TRANSMISSION CONTROL PROTOCOL, RFC 793 URL: http://www.faqs.org/rfcs/rfc793.html (1999-11-16) [39] Fluckiger F. (1999) Understanding networked multimedia: applications and technology. London: Prentice-Hall, ISDN: 0-13-190992-4 [40] Deering S. (August 1989). Host Extensions for IP Multicasting, RFC 1112 URL: http://www.faqs.org/rfcs/rfc1112.html (1999-11-30) [41] Handley M. & Jacobson V. (April 1998). SDP: Session Description Protocol, RFC 793 URL: http://www.faqs.org/rfcs/rfc2327.html (1999-11-28) [42] Bengtsson M. & Bensow. A. & Radifinia S. (1998). Kriterier för databasval. Uddevalla: Högskolan Trollhättan/Uddevalla Examensarbete Systemvetenskap, SV1998:14) [43] Danielsen A. (1999). The Evolution Of Data Models And Approaches To Persistence In Database Systems. URL: http://www.hin.no/~asd/publications/essay.html (1999-11-30) [44] SUN Microsystem (1999). The JDBC API. URL: http://java.sun.com/marketing/collateral/jdbc_ds.html. (1999-11-25) [45] Callahan T. (1999). So you want a stand-alone database for Java. URL: http://www.sys-con.com/java/feature/3-12/standalonedbforjava/index_b.html (1999-11-30) [46] Weblogic (1999). Choosing a Java Database Connectivity driver. URL: http://www.weblogic.com/docs/techoverview/jdbc.html (1999-11-25) [47] Nance B. (1999). Examining The Network Performance Of JDBC. URL: http://www.networkcomputing.com/810/810ws2.html (1999-11-30) [48] Reese, G. (1997). Database Programming with JDBC and Java. Cambridge: O'Reilly ISBN: 1-56592-270-0 [49] Atkinson Leon. (1999). Core PHP programming; using PHP to build dynamic web sites. NJ: Prentice Hall PTR. ISBN 0-13-020787-X [50] Bakken, S.S & Aulbach, A. & Schmid, E. & Winstead, J. & Wilson, L.T.& Lerdorf, R & Suraski, Z. (1999). PHP Manual. URL: http://www.php.net/manual/ (1999-11-08) [51] Fleischman R. (1999). NETSCAPE ONE TOOLS OVERVIEW. URL: http://developer.netscape.com:80/viewsource/archive/tools2.html (1999-11-16) [52] Chappell D. (1996). Understanding ActiveX and OLE. U.S.A: Microsoft Press [53] Williams A. & Barber K. & Newkirk P. (1998). Active server pages black book. Albany, NY : Coriolis ISBN 1-57610-247-5 [54] Hettihewa S. (1999). Lär dig Active Server Pages på 3 veckor. Sundbyberg : Pagina ISBN: 91-636-0522-8

Web based EPG 55 References ______

[55] Microsoft (1999). DCOM. URL : http://msdn.microsoft.com/isapi/msdnlib.idc?theURL=/library/psdk/dasdk/mdad2jsd.htm (1999-11-16). Microsoft ActiveX Data Object , Glossary [56] Goodwin Peggi. (1998). COM, ActiveX Controls, and CE. Microsoft Corporation URL: http://msdn.microsoft.com/library/backgrnd/html/msdn_cecomactx.htm (1999-11-16) [57] Nokia (1999). Nokia Mediamaster 9730 C. URL: http://www.nokia.se/ [58] Trott F. (1998). Enhanced TV. Linköping: Linköping Universitet. Examensarbete LiTH-IDA- Ex-98/49 [59] ReplayTV (1999). Watch Replay in action URL: http://www.replaytv.com/demo/index.html (2000-01-15) [60] Tjohoo AB (2000). TV-Guiden URL: http://www.tjohoo.se/tv_guiden/ (2000-01-15) [61] Tvprogram.nu (2000). TV-Guide URL: http://www.tvprogram.nu/ (2000-01-15) [62] DagensTV (2000). Tvguide URL: http://www.dagenstv.com/ (2000-01-15) [63] Svenska Dagbladet (2000). TV-GUIDEN URL: http://www-tv.svd.se/ (2000-01-15) [64] Spray AB (2000). SprayTV URL: http://www.spray.se/tv/ (2000-01-15) [65] Microsoft (2000). ODBC Programmers Reference URL : http://msdn.microsoft.com/ (2000-01-15) MSDN Library – Platform SDK – Data Access Services – Microsoft Data Access Components (MDAC) SDK – Microsoft Open Database Connectivity (ODBC) - ODBC Programmers Reference [66] [G] Geiger K. (1995). Inside ODBC. U.S.A: Microsoft Press [67] Sen S. & Rexford J. & Towsley D. (1998). Proxy Prefix Caching for Multimedia Streams. Massachusetts: University of Massachusetts. Technical Report 98-27 [68] Sen S. & Dey J. K. & Towsley D. & Kurose J. F. & Salehi J. D. (199X). Playback restart in interactive streaming video applications. Massachusetts: University of Massachusetts (Department of Computer Science). [69] Eager D. L. & Ferris M. C. & Vernon M. K. (1998). Optimized Regional Caching for On- Demand Delivery [70] DVB (2000). DVB Home page URL: http:www:dvb.org (2000-01-24) [71] Communications LAB (1999). DVB Digital Versatile Broadcasting URL: http://lab1.commslab.gov.au/lab/lectures/factsdvb/macavock1/ppframe.htm [72] Allaire Corporation (1999). ColdFusion White Paper version 4.5 URL: http://www.allaire.com/Products/ColdFusion/productinformation/ (2000-02-19) [73] Allaire Corporation (1999). General Information FAQ URL : http://www.allaire.com/products/coldFusion/generalInformation/FAQs/ (2000-02-19) [74] Java Development Kit (JDKTM) (2000). Signed Applet Example URL : http://java.sun.com/security/signExample/ (2000-03-28) [75] Hunter J. & Crawford W. (1998). JAVA Servlet Programming Sebastopol, CA : O'Reilly ISBN: 1-56592-391-X [76] Goodman D. (1998). JavaScript bible Foster City, Calif. : IDG Books Worldwide ISBN: 0-7645-3188-3 [77] Abraham .M (1999). Consumer Set-top box Operating System. Report no MM9902MI. Cahners In-Stat Group. URL: http://www.instat.com/abstracts/mm/1999/mm9902mi_abs.htm (2000-04-06) [78] OpenTV (2000) Products. URL : http://www.opentv.com/products/systems/#en (2000-04-06) [79] Torris T (Feb 2000). Europes iDTV Walls Come Down. The Forrester Report URL : http://www.forrester.com [80] Canal+ Technologies (2000). MEDIAHIGHWAY URL : http://www.canalplus-technologies.com/media/mediahighway.html [81] Aftonbladet (2000). AftonbladetTV URL: http://www3.aftonbladet.se/tv/justnu.asp (2000-05-16)

Web based EPG 56 References ______

Verbal reference list

Schüler Eleonor, Kundtjänst , Teracom, Geoffroy Kelly, sales request , Replay Networks Murray Kevin , General Info Request , Replay Networks Andersson Marcus, Kundtjänst, Teracom AB Murray Michelle, Nortel Networks Corporation Lidholm Ola, Nokia, Contact: [email protected] Rexford Jennifer Rexford, AT&T Labs Research Kroon Per, Telia Infomedia Television AB Gustavsson Anneli, Telia Infomedia Television AB Mican Fredrik, Editor-in-chief Tjohoo.AB Nordebo Peter Editor-in-chief Avisa Centralredaktion AB Sohlberg Joakim SvD Palmqvist Johan ,Digital TV, SVT Jacobsson Ewa, Creative Director, Comhem AB Fuller Brad, Senior Product Manager – OS Products, OpenTV Andersson Jonas, Senior Product Specialist – Java, SUN Microsystems AB Marchal Pierre, Account Manager, OPEN TV

Web based EPG 57 Appendix ______

Appendix

Existing web based EPG Here is a list and pictures of the Swedish web based EPG that where found.

Tjohoo TVPROGRAM.NU Its own by Tjohoo AB : This is own by Rockitmedia

Figure 10-1 Tjohoo´s EPG [60] Figure 10-2 TVProgram.nu´s EPG [61]

DagensTV TV-GUIDEN This EPG is own by Avisa Centralredaktion AB Svenska Dagbladet (SvD) owns this EPG.

Figure 10-3 DagensTV´s EPG [62] Figure 10-4 SvD´s EPG [63]

Spray owns this EPG Aftobladet owns this EPG

Figure 10-5 Spray´s EPG [64]

Figure 10-6 Aftonbladet´s EPG [81]

Web based EPG 58 Appendix ______

In figure 10-7 shows a survey of the different EPGs that where found.

Amount of Number of Language The develop Create user Search channel channels sent to client environment profiles parameters information Tvprogram.nu 1 day 52 HTML, CGI No Time, category JavaScript and Free text. Tjohoo 1 week 24 HTML, PHP3 No Day, time and JavaScript category SprayTV 3 days 25 HTML, JSP No Time and JavaScript category DagensTV 2 weeks 82 HTML ASP Yes Channel, category, time and day SvD 8 days 99 HTML, CGI Yes Channel, JavaScript category, start and stop time. Aftonbladet 2 weeks 63 HTML, ASP Yes Channel, JavaScript category, time and day

Figure 10-7 EPG overview

Script environments for creating EPG

ASP ASP (Active Server Page) is a server-side environment in Microsoft Internet Information Server (IIS). An active server page is a page that contains server-side script and html. ASP can also have a mix of server-side and client-side script.

The ASP environment comes with six build-in components, se figure 10-7. It is also possible to create your own ASP components. To create components any language that can create an ActiveX component can also be used for creating ASP components. The file extension for an active server page file is asp.

Figure 10-7 The build-in components in ASP [54]

Web based EPG 59 Appendix ______

When a client request an asp-file, that file will be passed by the IIS to the script engine for processing, and the result as well as the HTML is sent to the client. Any server-script language can be used provided that the server has the appropriate scripting engine. The default language for IIS is VBScript but other languages like JScript, PHP and JavaScript can also be used, since the appropriate scripting engine exist [53].

Scripts can be used together with Java applets and ActiveX controls to increase the web pages functionality. Both Java applets and ActiveX controls can be defined as object-oriented applications or just objects. Since objects like Applets and ActiveX are set in HTML, using the OBJECT tag. There is no dependency of the script language used with HTML. The object on the other hand has to be supported by the browser. Internet Explorer (IE) supports ActiveX controls and both Netscape Navigator and IE support Java applets. Netscape can support some ActiveX controls by using a special plug-in [51].

There exist two different types of ActiveX controls. Server based and client based controls. Server based ActiveX controls are also called ActiveX components and they are independent of the web browser that the user is running, since the component is executed on the web server. But with client based ActiveX controls, the clients web browser needs to support it. Since this type of control is executed on the client.

There is a different regarding the download between ActiveX and Applets. An ActiveX control is downloaded only once while Applets will be re-loaded every time. The only time ActiveX controls have to be re-downloaded to a user machine is when a new version comes out. When the browser encounters a web page with an ActiveX control it first checks the users local system registry to find out if that component is available on the machine. If it is available, the browser displays the page and activates the control. If the control is not already installed on the user machine, the browser automatically find and install the component over the web, based on the location specified by the developer creating the page. What separates the different applets and ActiveX controls is that applets have different class name and each ActiveX controls have a unique classid (clsid).

To access a database, objects in the COM object, ADO (Active Data Objects) is used. The main objects in the ADO that is involved with accessing a database, is the Connection and Recordset object [54]. At first the server component creates the connection object and uses that object to open a database. The SQL expression is sent and an object of Recordset is created to handle the reply from the database. ASP can access information stored in any Database connection can be made to any ODBC data source.

ActiveX history It started with OLE 1, (Object Linking and Embedding) a technology for creating compound documents. For example a user could combine a spreadsheet created with Excel, to a text document created with Word. While OLE's first release was focused solely on compound documents, the next release, OLE2, introduced COM [56]. COM grew out of the OLE architects desire to provide a more general mechanism for allowing one piece of software to provide services to another. While OLE2 was the first technology to use it, COM is not really tied to compound documents in any significant way. And COM began to be used in technologies that had nothing whatsoever to do with compound documents.

Microsoft then decided to reduce the name OLE to every technology that used COM. Microsoft drop the version number and decided that the term should no longer be viewed as an acronym. In the spring of 1996, Microsoft chose the name ActiveX to be associated with technologies related to the Internet and applications that grew out from the Internet. Then ActiveX began to absorb more and more of the territory of OLE and today the term OLE again refers only to the technology for creating compounds documents. And new technologies that are based on COM are now tagged with ActiveX instead of OLE.

COM (Component Object Model) is Microsoft's component software architecture. It is the foundation upon which OLE and ActiveX are based on. COM defines a standard way for a peace of software to provide services to another, regardless of the language the software is written in. Because COM

Web based EPG 60 Appendix ______defines a binary interface that objects must support, COM is independent on the programming language.

Every COM object, se figure 10-8 has interfaces where the object services are accessible. And every interface provides one or several methods.

Figure 10-8 A COM object [52]

DCOM (Distributed Component Object Model) is an extension of COM [52] that allows applications and components to communicate with each other over a network, se figure 10-9. The extension is a wire protocol [55] where Remote Procedure Call (RPC) is used. When a client makes a call to a component, it will appear to be a local call. But the call is executed at some object across the network.

Figure 10-9 Application accessing COM objects [52]

PHP3 PHP (Personal Home Page) is one of many server-side script technologies where html is embedded with the script language. The PHP language is built on C and Java, where the much of the functions in those languages are available, and the possibility to create classes and instances of them (objects) also exist. One large advantage is the platform independence, PHP can be run on UNIX, Windows 98, Windows NT and Macintosh, without code alteration [50], and all pages with PHP script will have the file extension php3. PHP is free and the complete source code can be downloaded form the PHP web site. The language was developed in 1994 by Rasmus Lerdorf, and the first version used by others was available in early 1995. Today there are about 150000 web sites that are using PHP.

PHP is designed to integrate with the apache web server but it works well with other web servers too [49]. When a page with PHP script is requested, the PHP engine first executes the script. The script will generate some html code that will be sent by the web server to the user that made the requested. PHP exist as a tag inside HTML file and it begins with . All the text inside these tags is expected to be PHP code, PHP offers two other ways to mark the code.

< ? php … ?>

Web based EPG 61 Appendix ______

Supported databases PHP can be used to access many different databases. Some of the databases that PHP can access to are MySQL, Sybase, and Microsoft SQL Server. When a user want to access a database, it first connects to the server with username and password. Then the user select that database it want access to.

Coldfusion Coldfusion is a web application server with support of serveral different technologies, which is presented in figure 6-11. ColdFusion have its own language for creating application that can e.g. communicate with a database. The language is called CFML (ColdFusion Markup Language) and it is a server-side script. Its syntax resembles closely to HTML.

Figure 10-10 ColdFusion application processing [72]

Figure 10-10 also shows the scenario when a client makes a request. The different stages are explained below.

1. The client sends an HTTP request by its web browser. This request is sent via the Internet or an Intranet. 2. The web server will pass the request to the appropriate ColdFusion page and through the server API it will then send this to the ColdFusion Server. 3. The server processes the CFML in the page and will interact with the desired application, which could be a database, SMTP servers or other applications. 4. After the interaction, Coldfusion will dynamically generate an HTML web page, which is returned to the web server. 5. The web server returns the page that was generated back to the user.

Supported databases ColdFusion supports integration with databases through ODBC and native database drivers for Oracle and Sybase [73]. But before a client can use any of the native drivers he/she has to install client database software for the particular database. For example, to use the Oracle 8.0 database, users have to install the Oracle 8.0 client.

The platforms that ColdFusion are supported are Windows 95/98, Windows NT and Solaris. Support for Linux is planned in future releases. Some of the web servers that ColdFusion supports are Microsoft Internet Information Server, Netscape Enterprise Server and Apache.

Web based EPG 62 Appendix ______

JavaScript Netscape developed this language in 1995 in parallel with their web server. It was originally named LiveScript and the database connectivity was named Livewire. Later the same year, Netscape and Sun announced that the language thereafter would be named JavaScript. JavaScript can be used as both client side and server side script [76]. The different between them are that server side scripting performs the processing on the server and pushes pure html to the client. When the client through its browser requests a page with client side script, the server sends the full content of the document, including HTML and the script statements, over the network to the client. The client will read the page from top to bottom and then displays the result of the HTML and execute the script statements. This means that the browser that the client is using must have support for the script.

At the developer stage when creating the necessary HTML pages with the server side script. The files are compiled into bytecode executable files. When the client’s browser requests the application, the runtime engine will dynamically generate the HTML page and run any server-side JavaScript statements found on the page. It then sends the resulting page over the network to the client, where the result will be displayed.

It is possible to connect to a database with Livewire using server side script. The different kinds of databases that are possible to connect to are Oracle, Sybase, Informix, DB2, or any ODBC standard database.

Web based EPG 63 Abbreviations

Abbreviations

ADSL Asymmetric Digital Subscriber Line

API Application Programming Interface

ATM Asynchronous Transfer Mode

DBMS Database management system

DSLAM Digital Subscriber Line Access Multiplexor

DVB Digital Video Broadcast

EPG Electronic Program Guide

JDBC Java Database Connectivity

MHP Multimedia Home Platform

MPEG Moving Picture Expert Group

NorDig Nordic Digital Television

NTSC National Television Systems Committee

ODBC Open Database Connectivity

PAL Phase Alternation Line

PVR Personal Video Recorder

SECAM Sequentiell a’ emoire

STB Set-top Box

VDSL Very high date rate Digital Subscriber Line

VOD Video-On-Demand

Web based EPG 64