cablesoft
As an American, I often feel an intense jealousy of Ceefax, one of several commercially successful teletext services in the UK and Europe. "Teletext" is sometimes a confusing term because of its apparent relation to telecom-industry technologies like the teletypewriter and telegram, but it refers specifically to a "broadcast text" technology usually operated over TV networks. Teletext could be considered the first form of "interactive television," a reimagining of traditional television as a more WWW-like service that allows viewers to navigate through information and retrieve content on-demand.
Despite many, many attempts, interactive television was never particularly successful in the US. Nor, I believe, did it fare well in Europe after the retirement of teletext. It was an artifact of a specific time and place; once PC ownership and internet access expanded they handily filled the niche of interactive text. That feels a little surprising, televisions being a big screen that so many consumers already had in their home, but offerings like MSN TV sucked to use compared to PCs. The technology for interacting with PC software from a couch honestly still isn't quite there [1], and it was even worse in the '90s.
Despite its general failure to launch, Interactive TV was, for a time, a big field with big ideas. For example, you've heard of MPEG-4, but what about MHEG-5? That's the Multimedia Hypermedia Expert Group's effort towards an object-oriented, television-native hypermedia environment, and it's exactly as terrible and fascinating as that description would lead you to believe. But I'm not going to talk about that today. Here's what's on my mind: what if I told you that MSN TV was Microsoft's second attempt at interactive television?
In 1994, Microsoft formed a partnership with two cable television carriers to launch Cablesoft. It was such a big hit that Microsoft spent most of its brief life trying not to talk about it.
You might remember the days when a television with a standard QAM tuner could often pick up on-demand content being watched by other people. And that's the basic interactive television model at work: as a cable customer with on-demand features, your STB presents a set of menus to select a program. When you start it, a video server at the head end selects an unused digital television channel and plays back the content on it. Your STB is sent a command to tune to the correct channel, and all of your playback control actions (play/pause etc) are sent to the video server. Today the video downlink is always encrypted, but in the heyday of CATV on-demand encryption was inconsistent and some providers didn't use it at all, leaving these downlink channels viewable by anyone with a tuner not configured to hide them.
On-demand isn't particularly exciting, and perhaps only barely counts as "interactive television," but it is the most substantial thing to come out of US efforts. The late '80s and early '90s saw plenty of interactive television ideas, which tended to envision the TV as the main way consumers would get information. Because of the limitations of the technology, this exciting world was mostly text. Text on the TV. Nothing would really catch on, even to the trial phase, until interactive TV started to become synonymous with multimedia.
The 1990s were an exciting time in computer multimedia. Larger storage devices (namely CD-ROMs), faster processors, and better display controllers all meant that computers were becoming more and more practical for audio and video. In the video game industry, the period famously lead to a surge of "full motion video" (FMV) games that used live-action cutscenes or elaborate pre-rendered 3D scenes. Of course, most enthusiasts of video game history also wince at the thought of figuring out which exact version of Apple QuickTime will work right with any given title.
Despite its surging popularity, computer multimedia was also in its infancy. Audio and video encoding were dominated by proprietary systems like QuickTime and RealMedia. SOver time, these products and their underlying codecs would largely converge into the relatively consistent and consumer-friendly ecosystem of media formats we use today (i.e. everything is MPEG and consumers don't care about the rest, mostly, as long as they don't want h.265 in a web browser on Linux or something wild like that).
Some of that convergence happened because of vendors actively contributing to standardization and promoting licensing pools, but some of it also happened because one of the biggest players in the PC software industry saw Apple's success with QuickTime and didn't want to fall behind. Microsoft developed a major focus on multimedia, leading to their own family of codecs, containers, and protocols, some of which remain in common use today. What's more, Microsoft had a long-running fascination with the television distribution industry, which it tended to view as the future of media delivery due to its very high capacity compared to telephone lines. Microsoft itself, and its executives as individuals, had a variety of interests in cable TV starting in the '90s. Perhaps most prominently, Paul Allen was controlling owner of Charter for a decade, and Microsoft invested a billion dollars in Comcast in 1997 to support their effort to pivot towards data.
So, the application of Microsoft technology to cable television was inevitable. Microsoft brought Tele-Communications Inc (TCI, now part of Comcast) and Time Warner (somehow not part of Comcast yet) on board as CATV partners and set about building Microsoft Media for CATV. Or, perhaps, TCI and Time Warner formed a joint initiative to develop an interactive TV platform and selected Microsoft as a partner. The history is a little fuzzy, but somehow, these three companies ended up in high-level talks about a new, standard platform for technology-enabled TV. Cablesoft, as they called it, would include an electronic program guide, TV shopping, and, most importantly, on-demand streaming media.
I'm trying not to say this over and over again, but Microsoft and Bill Gates and Paul Allen were all kind of obsessed with streaming media and on-demand delivery in the 1990s. It's hard to keep track of all the failed ventures they either launched or invested in, there were several each year. If you read into the history of the TV distribution industry Paul Allen especially just keeps popping up in weird places. It's fascinating to me because our modern experience shows that they were very much right, in that on-demand streaming delivery via computers would become the dominant way media is distributed. But they were also pathologically ahead of their time; Paul Allen was basically trying to do Netflix in 1993 and all of these efforts just sucked. The infrastructure was simply not there and the many companies trying to build it tripped over each other as often as they made progress.
To be fair, Microsoft was not the only faction making repeated stabs at streaming media, and by 1994 investors were already starting to tire of it. A 1994 News Tribune (Tacoma) article on Cablesoft's announcement captures the attitude with this spectacular quote from industry newsletter editor Denise Caruso: "Anybody who bothers to get excited about another interactive TV trial at this point deserves everything they get in terms of disappointment." In 1994! All These Goddamned Streaming Services is a complaint pretty much as old as computer multimedia. I wonder what Denise Caruso would have to say about Tubi.
As you know, things didn't get a whole lot better. In 1996, the Boston Globe's "FastTrack" technology column began: "Interactive television is the Loch Ness Monster of the information age---much talked about but rarely seen." And it's not hard to find these quotes, those are like the first two search results in the archive I use. The consumer internet was barely a thing and industry commentators were already rolling their eyes at each new streaming service.
The difference, of course, is this: back in the '90s, these streaming multimedia efforts were collapsing fast, generally before they signed up actual consumers. Now they collapse very slowly, after producing about a hundred original TV series that none of us will ever hear of. Say what you will of Cablesoft, at least they didn't make Tall Girl and Tall Girl 2.
So what did they make? Look, Cablesoft didn't get very far, and there's not a lot of historical information about them. You have to be careful not to confuse Cablesoft with CableSoft, a completely separate company that was working on the exact same thing at pretty much the same time (CableSoft had spun off of television technology giant General Instrument and thus had a considerable advantage, but it didn't work out for them either) [2].
By early 1994, Microsoft was already involved in other interactive TV ventures, leading to a somewhat critical interview of future Microsoft CTO and cookbook author Nathan Myhrvold by the Seattle Post-Intelligencer. "In the long run," he opined, "it's very likely there will be some form of a smart TV... it's not very input intensive, you don't have a keyboard for your TV." 100% correct!
But then the interviewer, Jim Erickson, asks something along the line of "what's with these three different interactive TV things that Microsoft is doing at once?" Myhrvold answers that "there is more uniformity and more synergy than may meet the eye with the series of things that we have done so far," which sounds like a comedy sketch of a Google exec explaining the difference between Duo and Allo. Erickson digs a little deeper, asking what's going on with Cablesoft, prompting Myhrvold to say "it's a funny thing to give status on something you never announced and never admitted to." And that is a very interesting response indeed.
The Wikipedia article is an absolute stub, giving us just one tantalizing factoid that has my practically foaming at the mouth: "...a custom version of the Windows NT operating system known as NTAS, which was essentially a series of fine-tuning efforts to drive ATM switches." We'll get back to that. But the Wikipedia article also says that Cablesoft was announced in 1994, which isn't wrong, but is a little misleading. As far as I can tell, Microsoft "announced" Cablesoft in March 1994 only under duress. Rumors of Cablesoft started to swirl about nine months earlier, in 1993, and the media did not look on it very positively. The most widely published article quoted then-chairman of Apple John Sculley accusing Microsoft of an anticompetitive move to corner the interactive TV market.
There is, of course, nothing more quintessentially Microsoft than an anticompetitive move to capture a market that would never actually emerge.
The first widespread mention of Cablesoft running under the headline "Big Software-Cable Deal Criticized" does a bit to explain Microsoft's odd cageyness about Cablesoft, repeatedly denying that any final deal had been signed and even downplaying the likelihood of the product launching. TCI and Time Warner refused to talk about it. Charmingly, a Phil Rowe of Battle Creek, Michigan wrote in to the editor of the Battle Creek Enquirer that Microsoft, TCI, and AT&T (I think Rowe was just confused? AT&T had its own interactive television efforts going on) would soon monopolize the interactive TV market, and that to hold them off, Battle Creek should swiftly franchise wireless cable.
It seems that Cablesoft died under the same cloud that it emerged. No one is really that clear on what happened. A trial program apparently launched where TCI and Microsoft employees in the Puget Sound area could try it out. It must not have lasted very long, by 1995 an article about Microsoft's antitrust woes listed Cablesoft as one of the ventures that Microsoft had abandoned due to the scrutiny. "Everyone backed off," an anonymous Microsoft employee told another reporter. "They were all afraid that this thing would be regulated out of existence."
Cablesoft didn't make much of a contribution to the business, but was it technically significant? And what about that customized version of Windows NT? Denise Caruso comes up again: an archived version of her personal website is the Wikipedia article's main source. She wrote:
Code-named Tiger and now called the Microsoft Media Server, the innovative design is based on a version of the Windows NT operating system, called NTAS, that uses standard PCs and cutting-edge ATM (asynchronous transfer mode) networking products to deliver video, audio, animation and information services into the home.
Streaming media was difficult in 1999; it was very difficult in 1993, when Microsoft's efforts began. Hard disks were slow, and head contention meant that it was very hard to serve multiple video streams from one disk. Networks were slow and, worse, had high levels of latency and jitter compared to what we are used to today. Feasibly providing real-time unicast streams to a large set of users would require some sort of large, very high performance storage system---or, in a strategic move that has repeatedly revolutionized the server side, a lot of consumer hardware and a clever system of coordination.
Microsoft technical report 96-09 describes the Tiger Video Fileserver. It was released after the Cablesoft project had faltered and never mentions it by name, but it clearly describes the head-end equipment for an on-demand video streaming system. Its authors, including Myhrvold, include a half dozen people with long careers in distributed systems and high performance storage.
A Tiger fileserver consists of multiple consumer PCs running Windows NT. Each of these nodes, called "cubs," has multiple hard disks. Files are separated into blocks (64kB-1MB) which are distributed across disks in the cluster; there are no constraints on the nature of the files except that they must be at the same playback bitrate. This constraint exists because the entire Tiger system operates on a synchronized timeslot schedule, consisting of block service times which are equal to the time required to read one block from disk, plus some margin for transient events and error recovery.
When a viewer requests a video, a controller node allocates the viewer to slots in a schedule of block service times and cubs. This is done such that each successive block of a given video will be handled by a different disk, and such that no one disk will be needed by more than one viewer in a given block service time. In other words, video playback consists of a series of cubs each delivering a single block of the file in order, and each disk retrieves only one block at a time. Because the block service time (and thus rate at which the schedule is executed) is appreciably shorter than the time viewers spent playing back back that same block, the cubs are able to support multiple viewers and still deliver blocks on time.
Because disks were not fast enough to reliably perform two block reads within a block service time, and aggregation of multiple viewers into one logical stream remained an elusive challenge, Tiger used a simple hack to avoid noisy neighbor problems: the controller ensured that there was only one viewer of a given file at a given time index. In practice, if two user were to hit "play" on the same movie at the exact same time, the controller would slightly delay the beginning of streaming to one of the viewers in order to introduce a time offset. Combined with the striping of each file across multiple nodes, this naturally distributed load to allow a large number of simultaneous viewers of the same media without having to create additional replicas of the media.
The controller determines and distributes the schedule in advance, and each cub is permitted (and expected) to retrieve blocks early as its I/O allows. But cubs are required to send that block in the correct schedule slot, so that storage buffering occurs only at the cub level and the outgoing network stream is in perfect realtime. When the file is distributed across cubs and disks, extra copies of each block are stored for redundancy, in case of a disk or cub failure. Extra slack in the block service time allows a failed block retrieval to be moved to a different cub. Secondary blocks are allocated by organizing the cubs into a ring. Each primary block has secondary copies stored on one or more cubs "to the right," and each cub is responsible for monitoring the liveness of its neighbor "to the left" and assuming its schedule if required.
The physical layout of files on each disk is optimized for fault load; the "primary" copy of each block is stored on the (physical) outer part of the disk surface while the inner part of the disk surface is used for secondary (backup) copies. Because the outer surface of the disk moves physically faster, it can be read more quickly. By placing primary blocks on the outer half, the disk's normal "primary" workload runs at nearer the disk's maximum read speed, leaving spare time for retrieval of secondary blocks when block sizes and bitrates are optimized for the disk's average read speed. When primary blocks are lost due to disk failure, they are automatically restored to a new disk as soon as one is available.
Besides real-time streaming of files, Tiger also supported ad-hoc read and write operations. These were performed on an opportunistic basis, sent to cubs as "extra" jobs to execute when they were ahead on carrying out scheduled reads. When viewers fast-forwarded or rewound playback, these opportunistic jobs were used to jump-start playback at other points in the file, with the caveat of reduced reliability.
During the course of normal video playback, individual blocks will come from an arbitrary sequence of different cubs. There are several approaches to the network design, and Tiger supports UDP over both Ethernet and ATM, but ATM is preferred. ATM is Asynchronous Transfer Mode, a network protocol that originated in the telephone industry as part of the ISDN stack. Unlike Ethernet, ATM was designed for real-time data streams, and uses prescheduled time-division muxing to provide guaranteed-bandwidth virtual circuits over a switched fabric. This made ATM inherently more suited to streaming media than Ethernet, a difference that Ethernet only made up for with quality of service protocols and, mostly, just getting to be so fast that streaming media mostly worked out despite having only intermittent, opportunistic access to the network media.
Microsoft further enhanced ATM for the Tiger application by introducing the ATM "funnel," a multipoint-to-point networking mode that allows many cubs to send packets into a single virtual circuit. ATM subdivides packets into multiple frames, meaning that if two cubs were to send packets too close together, they may become interleaved (both violating the design of IP-over-ATM and complicating the work of the viewer). To resolve this problem, Tiger uses a token-passing scheme where each cub transmits its block and then passes a token to the next cub in the schedule for that viewer. The implementation of this token-passing ATM variant is one of two customizations to the NT kernel involved in Tiger.
The other will be familiar to readers in the modern high-performance networking industry: Tiger implemented a basic form of kernel-bypass networking in which the network interface read the file block directly from the read buffer via DMA. Tiger thus required some special kernel-mode code to implement this DMA-to-UDP mode and ensure that video data passed over the bus only twice, once from the disk controller to memory, and once from memory to the network controller.
These kernel features, which I believe were less modifications than device drivers, seem to be the "customizations" that Caruso referred to. To my frustration, the connection to the term "NTAS" seems to be mistaken. I cannot find any instance of Microsoft using it in relation to Cablesoft or Tiger. Most likely it arose from confusion with the branding of NT 3.1's server edition as NT Advanced Server; NT 3.1 must have been the basis for the Tiger system since it was released in 1993 and had considerable emphasis on performance as a network file server to compete with Netware.
The technical report describes a model Tiger deployment: Five Gateway Pentium 133MHz machines served as cubs, each with 48MB of RAM, three 2GB Seagate drives, and an OC-3 ATM adapter. Larger than usual 2KB sectors were used on the hard disks for better throughput when handling large files (this is an interesting detail since support for non-default sector sizes was apparently rather cantankerous in the PCs and storage interfaces of the time). A Gateway 486/66 machine served as the controller for the cluster. Ten 486/66s, each attached to the ATM network by 100Mbps fiber, served as test clients.
The controller, on the other hand, used 10Mbps ethernet to communicate with the five cubs, while the cubs communicated among themselves using the ATM network. The paper explains this by noting that the 486-based controller was very slow compared to the Pentium-based cubs, perhaps no benefit was seen in the added cost of extending the ATM network to the controller.
This system, with a total of 15 data drives, stored a little over 6 hours of media at 6Mbps. 0.75MB blocks were used, for a block playback time of roughly one second. Based on calculations, the OC-3 interfaces were the bottleneck of the system, allowing the five cubs to provide a total of 68 simultaneous streams. The 486-based viewer machines actually weren't fast enough to decode that many streams, so some requested videos and simply discarded the packets, while others actually checked the received blocks for correctness. Based on this sampling method, a lost or late block rate of only 0.02% was observed. Performance data collected from the cubs indicated that, with faster network controllers, they would have kept up with additional viewers.
Despite Cablesoft's failure to ever reach the market, Tiger appears to have included novel work in several areas: scheduling real-time demand across a cluster, distributed storage with striping and replication for fault-tolerance and performance. At the bottom line, Tiger demonstrated the use of a cluster of commodity PCs to perform a task that, at the time, was seen as requiring specialized and costly high-performance machines from SGI or Oracle.
In the end, it wasn't enough. Caruso again:
Unlike the PC business, where it has ultimate leverage over all the links of a relatively short chain, Microsoft has no native influence in the large and existing infrastructures it wants to penetrate (cable networks, telcos and content providers)---except that it is Microsoft.
Cablesoft ended so quietly that we will probably never know for sure, but I think that Caruso's larger argument in her article about Cablesoft is right: licensing software for STBs and cable headends would never bring in Bill Gates money. Microsoft's real play was for revenue share: wrestling matches and hotel pornography had proven that on-demand content could move a lot of money, and as the operator of the technical platform, Microsoft stood to impose royalties. 5% of pay-per-view revenue is the kind of thing that motivates Microsoft. When Microsoft went to major cable operators to try to standardize them on its platform, the cable oligopoly saw the software monopoly coming in for a slice of the pie. They probably thought they could do it just fine on their own.
And they turned out to be right. Interactive TV would die off as a buzzword in the US market, but not that much later, in the '00s, General Instrument successor Motorola would partner with the manufacturers of some of those specialized costly machines and quietly introduce video on demand to the American cable consumer as a standard offering of digital TV packages.
I think they met more success because they didn't try as hard: '00s on-demand infrastructure involved some formidable machines, like the Broadbus (later Motorola) B-1 that served thousands of simultaneous video streams by storing the entire active video library in RAM. But no one was talking about hypertext or smart TVs or the TV as the center of digital family life. The aspects of interactive TV that were familiar to the television industry, electronic program guides and more convenient pay-per-view, did just fine once they became technically feasible.
What of Tiger?
As part of NT4 in 1996, Microsoft introduced NetShow. NetShow would later be known as Microsoft Media Server, and then Windows Media Server, before fading into obscurity. It was a real-time media server that used a proprietary protocol to deliver Advanced Streaming Format media, competing directly with streaming pioneer RealNetworks. The details are fuzzy enough that I have a hard time saying this for sure, and Tiger as a distributed system definitely didn't make it past Cablesoft, but it does seem very likely that NetShow is a descendent of Tiger. Over time, the Windows Media family moved over to industry standard protocol RTSP, and then the streaming server was merged into IIS. Perhaps nothing of Tiger survived into the 21st century. But, you know how Microsoft is. Maybe there's a bit of Tiger inside of Windows to this day.
[1] As a dedicated computer-on-TV person, I use a ThinkPad Trackpoint Keyboard II as the "remote control." It's the best I've found so far but still large and clunky compared to a traditional remote. More recently, my husband also added an HDMI-CEC adapter that allows the TV remote to control the computer via a daemon that generates keyboard events. This is pretty slick for applications like Plex and Steam Big Picture that were designed with television use in mind, but in the web browser the experience leaves much to be desired. We're basically facing all the same struggles as similar dweebs did thirty years ago.
[2] And neither should be confused with Cablesoft Ltd., an English company that developed software for the telephone and television industry during the same years, or CableSoft, a company that made a stock quotation and analytics product a couple of years later.