NetShow's Theater server is a distributed system hosted on a collection of standard personal computers running Windows NT®. The core of the NetShow Theater Server system is a single title server and one or more content servers connected by a high-speed network.
The title server receives and forwards client requests, sequences data delivery from the content servers, keeps the system clock, manages system resources, and provides configuration information to the system administration tools. No data flows through the title server.
Content servers manage the schedule, retrieve data, and deliver data to clients. Besides the system drive, each content server has 1-15 hard drives dedicated to storing the data in the NetShow Theater Server file system. These dedicated drives use a proprietary Microsoft format. All content servers in a particular system are the same type of computer, with the same type of network interface and the same number and type of disks. SCSI adapters can be added to increase the storage capacity even more.
Client workstations run NetShow Player, which can be either an ActiveX control, or a stand-alone application. Each one is designed to play video using familiar VCR-like functionality. NetShow Player can play NetShow a wide variety of file types, including .asf, *.mov, *.avi, *.ram, *.rm and *.vod. The ActiveX control allows developers to build exciting applications that can be accessed by Internet Explorer, Netscape Navigator, and other Web browsers.
User load is balanced against limited disk, network, and I/O bus resources by "striping" individual files across all the disks in the system. Files are divided into blocks of data, with each block of data being stored on the drive following the one holding its preceding block. Block size is chosen to balance disk efficiency and buffering requirements depending on the bit rate of the title; however, every block of every file on a particular NetShow Theater Server system is the same size. This innovative storage architecture ensures that all users experience exactly the same performance regardless of the number of users watching the same or different titles, up to the capacity of the system.
Delivering real-time data requires that the system computers be closely synchronized. Clock synchronization is used to keep each content server synchronized to the title server. NetShow Theater Server uses a combination of timing algorithms and the internal hardware and operating system clocks to ensure that video is delivered from each content server in the proper sequence.
Output streams are managed in a schedule that reflects the capabilities of the file servers and the network. In a typical NetShow Theater Server schedule, disks proceed down the schedule sequentially, with each disk reading a single numbered block of data, and handing the data to the network for delivery to the appropriate viewer. When a disk reaches the bottom slot, it wraps to the top, and the process is repeated.Data buffering allows NetShow Theater Server to balance the sporadic nature of the disk transmissions with the network requirement for smooth data. In the NetShow Theater Server system, there is sufficient buffering in the content servers to match the speed of the disks and the output streams (« to 1 block size per stream serviced, plus some small amount used to allow the disks to run ahead).
Since the system is not always fully loaded, disks can run slightly ahead of schedule, limited by available buffer space. As a result, the system can tolerate brief interruptions in disk or system performance without disrupting the timely delivery of data to clients. Because smoothing is performed by the content servers, client PCs typically are required to buffer only about two seconds of video content.
The total capacity of the system is the number of schedule slots, which is equal to the number of blocks read per second multiplied by the number of disks; however, practical capacity is generally limited by the network interface card (NIC). The maximum throughput the NetShow Theater Server can stream through a Fast Ethernet NIC is 80 Mbps. An ATM oc-3 NIC can deliver 100 Mbps of streaming capacity. In addition, to accommodate fault tolerance, some capacity is typically reserved in the NIC bandwidth. Thus, a content server with a Fast Ethernet NIC can deliver about forty 2-Mbps streams, allowing for overhead, and an ATM NIC can deliver 50.
Originally conceived for use with public telephone and cable television companies, NetShow Theater Server is designed to maintain high availability, even in the face of hardware failures. To avoid disruption in service from failure of distributed system components, NetShow Theater server includes optional built-in fault tolerance based on replication of data (mirroring) within the system. The mirroring scheme allows the system to survive the failure of any disk, the failure of all disks associated with a content server, or the failure of a content server itself. Mirrored data is "declustered," or distributed across the system, so when a disk fails, its load is balanced among the surviving disks, and every scheduled read to the failed disk uses an equal amount of bandwidth from each of that disk's secondaries.NetShow Theater Server uses a "deadman protocol" to detect component failure. Each content server is responsible for watching the content server to its left and sending periodic pings to the content server to its right. If a timeout occurs, the responsible content server sends a message to the title server. When a failure is declared, the title server reconfigures the failed content server's load, and assigns all reads that would have been handled by the failed content server to its mirroring content servers, just as if all of the drives on the content server had individually failed.
When the failed disk is brought back online, its presence is recognized, and its role in the system is automatically restored. System administrators can add content to the system or replace and rebuild failed disks without disrupting service.
NetShow Theater Server, with its support for MPEG standard video format and other open, industry standards, represents a significant source of opportunity for third parties creating value-added products. Independent software developers can augment their own products with NetShow Theater Server functionality or provide compatible add-ons. By exposing both client-side and administration APIs, NetShow Theater Server enables tools vendors and solution providers to offer fully interoperable products that take advantage of full-screen video or high-quality audio.
On the server side, developers can use the powerful administration functions and data tracking to populate databases for user profiles, automated billing, or even automated loading of additional content based on demand or popularity of specific titles. All server administration functions are fully scriptable and include event tracking, system monitoring at the client level, data gathering, and notification tracking.
On the client side, the NetShow client ActiveX control provides an extraordinarily rich set of client APIs, which enables clients to harness the power of an industrial strength video server. Webmasters, system integrators, and developers can quickly and easily customize the look and feel of the NetShow player or incorporate the NetShow ActiveX control functionality to create custom business solutions, using Visual Basic®, J++®, Java, C/C++®, or HTML. The media server can stream video to any ActiveX-capable Web browser or any other desktop application that functions as an ActiveX container.
Developers can use the ActiveX control to add video
to Web pages and custom applications.
Compression NetShow Theater Server currently supports both MPEG-1 and MPEG-2 audio and video standard compression schemes published by the Motion Picture Experts Group standards group and defined in ISO/IEC DIS 11172. The client currently supports MPEG-1 only. Future releases of the client software will support the MPEG-2 format. Because the stream delivery mechanism is independent of the content format and compression rate, developers have the flexibility to support a variety of content; for example, music programming at 1 Mbps, TV-quality video at 1.5 to 4.0 Mbps, or HDTV at 15 Mbps.Transport Protocols NetShow Theater Server uses TCP/IP for control and UDP/IP for streaming content. Support for this standard facilitates integration with low-level network technologies, resulting in higher-performance delivery of multimedia content. The client software automatically selects appropriate settings upon installation, and communicates with NetShow Theater Server, thus eliminating the need for system administrators to manually specify the mechanism to be used.
Data loading Before it is loaded onto the content servers, MPEG data must be converted to Microsoft's proprietary VOD2 format, which assigns headers and includes information for striping purposes. Conversion to VOD2 can be performed manually, as a command-line function, or can be automated using the NetShow Theater Server Administration Tools.
Network architectures NetShow Theater Server communications are independent of network protocol. Incoming requests from the client must be sent over a reliable network protocol, TCP/IP. Output streams require a high-bandwidth link, but do not require a reliable protocol; it is more important that the data arrive on time than that it be perfect but late; therefore, content servers use UDP/IP.Microsoft NetShow Theater Server has been designed to work in either Switched Ethernet or asynchronous transfer mode (ATM) networks. Considerations for specific network topologies are described below.
Ethernet It is recommended that NetShow Theater Server be deployed in switched (rather than shared) environments to optimize performance, to preserve the real-time quality of data, and to avoid saturation of networks with video data. NetShow Theater Server currently supports Switched Fast Ethernet (100 Mbps) networks for connection to the servers. Clients can use the slower 10BaseT Ethernet connections.
Asynchronous Transfer Mode (ATM) In an ATM environment, the NetShow Theater Server network components synchronize to recombine the video signals from the content servers into a single stream. NetShow Theater server currently supports ATM at oc-3 (155 Mbps) for connection to the servers. NetShow Theater clients can use slower 25-Mbps ATM connections. The NetShow Theater Server has been designed to operate on ATM networks using Classical IP over ATM as specified in RFC 1577.
Traditional ATM networks require that each content server establish a point-to-point virtual circuit with a particular client. Because only one content server is transmitting at any given time, NetShow Theater Server conserves considerable network capacity by establishing multipoint-to-point virtual circuits. Multipoint-to-point transmission is established by means of an ATM funnel-join protocol. Contact Microsoft for more information on specific protocols and supported ATM configurations.
This white paper is for informational purposes only. Microsoft makes no warranties, express or implied, in this document. The information contained in this document represents the current view of Microsoft Corporation on the issues discussed as of the date of publication. Because Microsoft Corporation must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of the information presented after the publication date.Microsoft, Visual Basic, Visual C++, Windows, and Windows NT are registered trademarks and NetShow, ActiveX, and BackOffice are trademarks of the Microsoft Corporation. Java is a trademark of Sun Microsystems, Inc. Other products and company names mentioned herein may be the trademarks of their respective owners.