Architecture of Microsoft Mediaroom
Architecture of Microsoft Mediaroom
Architecture of Microsoft Mediaroom
Mediaroom
Audience
This document is intended for anyone who needs to understand how Microsoft Mediaroom
software components interact with one another. It is assumed that you are already familiar
with the features of Microsoft Mediaroom and need to understand how those features are
implemented. For information about Microsoft Mediaroom features, see Product Overview
(p. 007).
Documentation Map
The Microsoft Mediaroom software distribution includes technical documents that represent
the state of the Microsoft Mediaroom system at the time of publication. The following table
provides pointers to additional Microsoft Mediaroom information.
Encoding video for delivery as VOD assets VOD Encoding Guide (Microsoft
Mediaroom Common Reference
documentation set)
Creating metadata for VOD assets VOD Metadata Guide and Reference (p.
007)
Asset Store
TV Services
Subsystem
RDP
Keys
Application RDP Sessions
(HTTP)
Subsystem
Cookies
(HTTP)
Operational Support
Listings
Subsystem
EPG
Subsystem
Media Media
Discovery Desc
Subsystem Info
Service
Information
Subsystem Search Search Queries
Web Service (HTTP)
Asset Store
Subsystem
Media
EPG
Notification Discovery
VOD Live TV Subsystem
Subsystem Subsystem
Acquisition Acquisition
Subsystem Subsystem
Service VOD
Asset Store
Information Delivery
Subsystem
Subsystem Subsystem
Subscriber
Management
Subsystem
Subscriber
Management
Subsystem
In a Microsoft Mediaroom system, live TV, video on demand (VOD), and network (RDP)
application services are first acquired and then delivered to Microsoft Mediaroom set-top
boxes (also referred to as "clients" and "devices" in this document). For example, Microsoft
Mediaroom acquires live TV services, which can arrive in a variety of formats. Microsoft
Mediaroom then processes the streams to provide full-screen and picture-in-picture (PIP)
versions of the services in a uniform manner so that they can be delivered from backend sites
to one or more branches using Real-Time Transport Protocol (RTP).
Some Microsoft Mediaroom subsystems perform the acquisition and delivery functions
directly, while others perform a supporting role so that subscribers can discover and select the
services they want to view. For example, the live TV acquisition subsystem processes
incoming live TV services. Similarly, the VOD acquisition subsystem imports VOD assets. In
addition, the media discovery subsystem provides service descriptions that appear in program
listings.
Microsoft Mediaroom defines a set of application programming interfaces (APIs) through
which its service providers can integrate their business support systems (BSS) and operations
support systems (OSS) with Microsoft Mediaroom.
To coordinate the management of services and service information, custom applications can
use a set of OSS Web services that enable operators to manage the entire system across their
networks. Microsoft Mediaroom includes a Web application called the TV Services
Management tool that uses the OSS Web services and provides a user interface for managing
Microsoft Mediaroom services.
Service providers can integrate business support systems through a set of BSS Web services
that provide APIs for managing subscriber accounts, set-top boxes and other devices, billing
events, service packages, offers, and service entitlements.
Component Description
Live TV Acquisition Subsystem (p. Acquires live video services and generates full-
025) screen and PIP streams. Encodes streams with the
Windows Media 9 Series Audio and Video codecs
in VC-1 and H.264 formats for full-screen content
and VC-1 format for PIP streams. Encrypts and
encapsulates streams in RTP transport streams for
unicast or multicast delivery to one or more live TV
delivery subsystems.
Note If the incoming service does not require
live capture, only the PIP streams are encoded
with the Windows Media 9 Series Audio and
Video codecs.
Live TV Delivery Subsystem (p. Receives live TV services from the live TV
031) acquisition subsystem. Manages the delivery of
audio/video (A/V) streams to Microsoft Mediaroom
clients over IP unicast. Deployed on machines
known as Distribution Servers (DServers).
Live Anytime Subsystem (p. 071) Records live TV services from the live TV
acquisition subsystem, converts them to video on
demand (VOD) format, and deploys them to the
VOD delivery subsystem.
VOD Acquisition Subsystem (p. Creates video on demand (VOD) assets and
063) generates media and VOD asset metadata files for
deployment to one or more VOD delivery
subsystems.
VOD Delivery Subsystem (p. 064) Deploys VOD assets that are available on a VOD
acquisition subsystem. Includes a set of Media Store
virtual directories that deliver the VOD streams to
set-top boxes on request over HTTP.
RDP Application Subsystem (p. Enables subscribers to run remote Web or Windows
Web Service Router (p. 086) Brokers all Web service communications (SOAP
over HTTP) between Microsoft Mediaroom clients
and client-facing Web services.
Asset Store Subsystem (p. 088) Stores metadata for network (RDP) applications and
VOD assets that subscribers can browse, run, and, if
necessary, purchase.
Listings Subsystem (p. 090) Acquires listings data from third-party listings
services. Delivers listings to the media discovery
subsystem, which delivers the listings to Microsoft
Mediaroom clients.
Media Discovery Subsystem (p. Provides media descriptions that include content
095) metadata and information about how to access the
content. Exposes two identical Web services that
support requests from the server-facing tier and the
Web tier.
Service Information Subsystem (p. Provides a central directory for all Microsoft
098) Mediaroom services. Gives Microsoft Mediaroom
clients the information they need to acquire video
services.
Bootstrap Web Service (p. 101) Authenticates Microsoft Mediaroom clients and
logs them on to the Microsoft Mediaroom system.
Contacts the subscriber management subsystem
(SMS) to determine the subscriber status. Returns a
list of URLs for Web services (TServerController
Web service, upgrade Web service, and so on) from
which the Microsoft Mediaroom clients can acquire
configuration data.
Sync Discovery Service Windows Provides clients with the location of resources that
Service (p. 103) they can contact during regular start-up to retrieve
an upgraded version of the client software, or to
recover from client software failure, should one
occur.
Service Group SMS Web Service (p. Enables BSS Web services to access the service
112) group database.
DVR Scheduler Subsystem (p. 125) Manages digital video recorder (DVR) recording
schedules. Prompts clients to start and end
recordings through the notification subsystem.
User Store Subsystem (p. 128) Provides a generic mechanism for saving and
retrieving persistent name/value pairs.
Session Key Authority Subsystem (p. Generates, signs, and disseminates symmetric AES
130) keys to Microsoft Mediaroom components.
Search Subsystem (p. 132) Manages Microsoft Mediaroom client requests for
descriptions of media that meet various search
criteria, such as title or actor names.
Logging Subsystem (p. 135) Manages the various events generated by the
OSS Web Services (p. 155) Enables the TV Services Management tool and
other OSS systems to manage the acquisition and
delivery of live TV, VOD, Live to VOD, and
network (RDP) application services. OSS Web
services include:
• The ossBackendBlackout Web service.
• The ossBranchBlackout Web service.
• The BranchMgmtWS Web service.
• The osschannel Web service.
• The diagnostics notification Web service
(ossNotificationsWS).
• The ossepg Web service.
• The OssLiveBackend Web service.
• The ossppv Web service.
• The ossremoterecord Web service.
• The UI notification Web service
(ossNotificationsWS).
• The ossurl Web service.
• The ossLiveToVodWS Web service.
• The ossVodBackendWS Web service.
• The ossVodBranchWS Web service.
BSS Web Services (p. 168) Enables the integration of service provider billing
systems with Microsoft Mediaroom. BSS Web
services include:
• The BillingRecordManagement Web
service.
• The GrantManagement Web service.
• The PackageManagement Web service.
• The OfferManagement Web service.
• The PrincipalManagement Web service.
• The reportingstore Web service.
Service provider's operations support Provides the service provider’s operations and
systems and business support systems billing services. Typically in place for an existing
subscriber base, these systems integrate with the
Microsoft Mediaroom system through the OSS and
BSS Web services.
Microsoft Mediaroom integrates with the service
provider’s OSS and BSS systems by exposing a set
of Web services.
The Web services enable external OSS and BSS
systems to import and export data (get and set
operations). Traditionally, these OSS and BSS
systems include the service provider operations
support systems and business support systems and
the SMS.
See Also
High-Level Architecture (p. 013)
Encoding
The live TV acquisition subsystem accepts external streams as MPEG-2 transport, sent over
UDP multicast.
MHEG-5 No No 1 No 1 Yes
See Also
Live TV Subsystem (p. 021)
Live TV Delivery Subsystem (p. 031)
Acquisition group Coordinates live TV, PPV, and blackout acquisition activities across
controller Web the Acquisition Server machines and delivers the appropriate details
service on live TV services to other Microsoft Mediaroom server
components to enable delivery of streams and keys to Microsoft
Mediaroom clients. A single Live Backend Controller machine can
control multiple Acquisition Server machines. The Web service
configures and coordinates the activities of the Acquisition Server
machines. During startup, the Web service reads the service
configuration information from the LiveBackend database and builds
a table of Acquisition Server machines that are responsible for
acquiring these services. All communications between the controller
and the servers are HTTP connections initiated by the server. The
controller cannot initiate a connection to an Acquisition Server
machine. The controller detects whether a server is properly
configured when the server periodically connects to the controller
and requests instructions. The controller detects server failures by
calculating the time elapsed since a particular server connected to the
controller and requested instructions.
Acquisition Server Captures, repackages, encrypts, and delivers live TV streams from
machine external sources. In some cases, the live TV stream is decoded and
the video re-encoded at a lower resolution. The Acquisition Server
machine can also repackage or play back pre-encoded streams.
Acquisition Server machines use processes to provide a way to
group similar full-screen and PIP services. A process is a task that
must be performed by a single server, such as reading a network
stream, generating a PIP, and emitting both services. Processes can
manage network input or disk input.
A Microsoft Mediaroom installation can have any number of
Acquisition Server machines with each Acquisition Server process
running on an individual machine. The data that emerges from the
Acquisition Server machine includes:
• Boundary keys (used to encrypt data in audio and video
streams).
• Encrypted full-screen live TV services (A/V, and possibly
data streams such as; subtitles, teletext, and a variety of
other content).
• Encrypted PIP services (video only).
Acquisition Server machines can be clustered together. A cluster is a
unit of network configuration and failover aggregation. A server
belongs to no more than one cluster. An Acquisition Server machine
cannot support a process unless it is assigned to a cluster because the
cluster is what tells the Acquisition Server machine the subnet or
subnets to use for ingress, egress, and so on.
Communication between the Acquisition Server machine and the
Live Backend Controller machine follows a polling model. The
Acquisition Server machine periodically polls the Live Backend
Controller machine for updated live TV service information. If
services are added to or removed from the database, the Acquisition
Server machine makes the appropriate updates to its current services.
If a particular server does not poll for a certain amount of time, an
alert is raised.
Live backend Contains the list of live TV services defined in the live TV
database subsystem, their associated properties, the cluster configurations, the
list of servers in the backend, and keys associated with the services.
The Live Backend Controller machine uses this information when
configuring the Acquisition Server machines. You can modify the
information by using the TV Services Management tool or external
OSS Web services.
Note Both full-screen and PIP streams can be delivered using ICC and ICC with IGMP.
Like ICC, the live TV delivery subsystem unicasts a burst of video frames to the client at an
accelerated rate. After the client buffers enough data to prevent an underflow condition
(which can be between 1 and 5 seconds of video content, depending on the encoding
parameters), the client returns to receiving an ordinary multicast stream.
During the switch to ICC with IGMP, some packets typically are dropped, based on the data
rate of the stream and speed of the IGMP join process. The DServer machine backfills these
packets before the client needs to access them. The time between the channel tune request and
the multicast switchover point can vary depending on the stream parameters, how far the
initial I-frame was from the actual live stream, and the bandwidth reserved for unicast. The
following figure illustrates the ICC with IGMP process.
There is a trade-off between the length of time the client must remain attached to the DServer
machine at the burst data rate and the amount of network bandwidth used for the initial burst.
Whenever a client connects to a managed stream from the DServer machine, the DServer
machine picks a key frame from some point in the past in its buffer and begins transmitting
As the delay time increases without modifying the amount of extra bandwidth reserved, the
burst time increases. As the amount of extra bandwidth available for ICC increases, the
amount of burst time required decreases. However, the amount of aggregate output bandwidth
that must be reserved per subscriber on the DServer machine does not rely only on the
amount of extra burst bandwidth provisioned; it also relies on the amount of time that a client
spends in the burst state.
If a client drops one or more UDP packets, it reports the session ID and the missing packet
sequence numbers to the live TV delivery subsystem over the command and control protocol.
The live TV delivery subsystem then resends the dropped packet or packets.
Note The time period between client-hole analyses is 100 milliseconds. This value is not
currently configurable.
Retries between the DServer machine and client are always delivered over the same network
connection as that of the original unicast. Retry traffic between the Acquisition Server
machine and the DServer machine can be routed over a separate connection.
Prior to Microsoft Mediaroom 1.1 SP3.2, all retries were accomplished over unicast. In the
case of a large failure, such as a backbone network failure between the Acquisition Server and
DServer, the result is a flood of packet requests from both DServers and Clients exceeding the
egress capacity of the Acquisition Server(s).
In Microsoft Mediaroom 1.1 SP3.2 and later, a Multicast option has been added as an
alternative approach to RUDP Unicast for servicing requests for lost packets where lost
packets are re-injected into the multicast stream. The retry packets are sent on the same
multicast stream as the original stream and reach the entire network.
This Multicast RUDP (Inband RUDP) addresses scenarios where failures affect a large
portion of the network. However, in the case of a local packet loss between the DServer and
Acquisition Server the result would be flooding the DServer and Client network with
unnecessary retry packets. The Acquisition Server, acting in the Autoselect Mode,
automatically detects the nature of the failure (local loss or large scale network loss) and
automatically selects the appropriate (Unicast vs. Multicast) mode to employ when
transmitting retry packets.
Failover Scenario
While a Microsoft Mediaroom client is connected to a DServer machine, it periodically sends
a command and control packet to the DServer machine and requests the status of the stream.
If the connection fails or times out, the client detects a problem with the DServer machine.
The client disconnects from the DServer machine, selects another one from its service-to-
DServer map, and tries to connect to the new DServer machine.
If the first reconnect is successful, the subscriber perceives, at worst, only a few seconds of
interrupted live TV services. If the client was in the “multicast” portion of an ICC with IGMP
channel session, the subscriber might not perceive a service interruption. However, each
individual DServer machine rejects connections that it cannot handle within its bandwidth
Service Replication
For scalability and redundancy purposes, live TV service delivery is spread across multiple
servers within a live TV delivery subsystem. A DServer machine is the server machine in the
live TV delivery subsystem that delivers live TV content to clients. When operators define a
live TV service in the Microsoft Mediaroom system, they assign a percentage of DServer
machines to manage the distribution of the service. This percentage is called the replication
constant.
The replication constant is specified on a percentage basis. For example, if there are 100
DServer machines and the replication constant for a given service is set to 80 percent, 80 of
the DServer machines distribute that live TV service.
Component Description
Live configuration Exposes a Web service interface that enables external resources,
state Web service such as the branch management Web service (ossbranch), to update
the content in the BranchDB database.
BranchDB database Contains the configuration information for each live TV service
deployed in the live TV subsystem. This database also contains the
mapping between live TV services and the DServer machines that
distribute them.
Service-to-DServer Exposes a Web service interface that enables clients to obtain the
map Web service service-to-DServer map. This map tells clients the DServer
See Also
Live TV Subsystem (p. 021)
Live TV Acquisition Subsystem (p. 025)
You use the TV Services Management tool to define the live TV services that are acquired by
each live TV acquisition subsystem. Similarly, you use this tool to define the services that are
deployed to each live TV delivery subsystem.
For more information on scalability, see Scalability Guide (p. 005).
Note Fast forward and rewind trick streams are not created for the asset's trailer file
(preview). The only supported trick stream for the trailer file is pause.
5) Branch operators choose the assets to deploy to the VOD delivery subsystem, or they
have assets deployed automatically. Auto-deployment can be activated and can
depend on rules defined by the VOD backend operator. Deployment of a VOD asset
triggers an automated process that copies the VOD asset from the VOD backend
Staging folder to the selected VOD clusters in the branch. For details, see VOD
Delivery Subsystem (p. 064).
After VOD asset deployment, branch operators can use the VOD Asset Management
tool to modify the VOD metadata to reflect branch-specific parameters.
6) Subscribers can purchase and play a VOD asset, based on the business rules specified
by each VOD asset's business metadata.
Note A VOD cluster should be associated with only one subscriber group.
The vodMapServerWS Web service is hosted on a client-facing service group machine. When
the vodMapServerWS Web service receives a request from a set-top box, one of the
following cases applies:
• The subscriber is in only one subscriber group, and that subscriber group is
associated with one VOD cluster.
• If the associated VOD cluster has the requested VOD asset, it returns the IP
addresses of two VOD Servers from the VOD cluster.
• If the associated VOD cluster does not have the VOD asset, it returns an error
code.
• The subscriber is in more than one subscriber group, but only one subscriber group is
associated with a VOD cluster.
Note A Microsoft Mediaroom operator assigns a VOD Server to a specific VOD cluster
through an entry in the serverlayout.xml file. For information on assigning a VOD Server to a
specific VOD cluster, see Creating a New Server Layout File (p. 094) in Installation and
Configuration Guide.
The following table describes each software component, server, and storage location used in
the VOD subsystem.
Component Description
vodassets folder Contains the pre-imported VOD assets. The VOD Creator Station
looks for the VOD assets in this folder. The location of this folder is
configurable. VOD assets must be transferred to this folder after they
are acquired from a VOD asset content provider. For information on
creating this folder, see Creating a Folder for VOD Imports (p.
341) in Operations Guide. For additional information on the asset
store subsystem, see Asset Store Subsystem (p. 088).
BranchDB database Database that stores the states of all assets and VOD Server
machines.
vodCatalogWS Web Provides a client-facing Web service interface through which clients
service obtain VOD metadata.
When a Microsoft Mediaroom client needs to construct a Video on
Demand screen, it contacts the vodCatalogWS Web service to obtain
a list of VOD assets and categories. The vodCatalogWS Web service
contacts the subscriber management subsystem (SMS) to look up the
subscriber to determine which assets the subscriber is entitled to
view. The vodCatalogWS Web service returns the complete URL of
each VOD asset. The vodCatalogWS Web service is not responsible
for tracking VOD locations (service information). The
vodCatalogWS Web service is installed on a Server-Facing Branch
machine.
VOD cluster A logical grouping of VOD Servers that manages how assets are
distributed to the VOD Servers in the cluster. After deployment,
VOD Servers periodically report their current asset load back to the
VOD cluster. Microsoft Mediaroom provides one VOD cluster,
named “default.” You assign one or more VOD Servers in the same
branch to a VOD cluster. You can assign multiple VOD clusters to a
subscriber group, assigning a priority to each VOD cluster to control
which VOD cluster the subscriber group's VOD asset requests will
go to in priority order. For information on creating additional VOD
clusters, see Creating a New Server Layout File (p. 094) in
Installation and Configuration Guide.
VOD Server Serves VOD asset content to the subscriber’s set-top box. A VOD
Server can store VOD assets in RAM or direct access storage (DAS)
memory, depending on how popular the VOD asset is at a given
time. For more information about how the load on a VOD Server is
managed, see the VOD Clusters and Load Balancing (p. 058)
section.
Staging folder Contains imported VOD asset files. During deployment these files
are copied from this folder to the Mediaxx folders on the VOD
Servers at the branch. You can configure additional local Staging
folders, or additional Staging folders on a remote machine. For more
information about configuring Staging folders, see Configuring an
Additional Staging Folder on a Local Disk (p. 313) and
Configuring an Additional Staging Folder on a Remote Machine (p.
315) in Operations Guide.
VOD COM+ server Contacts the vodControllerWS Web service every n seconds with
status (including asset and session information).
Ingest adapter Uses a variety of methods of loading a VOD asset into a VOD
Server (http and https). Ingest adapter can get assets from the peer
VOD Server machines in the VOD cluster during deployment and
replication.
vodBranchWS Web Provides an interface for all branch-related operations; for example,
service deployment and replication.
vodBackendWS Web Provides an interface for all backend-related operations, for example,
service import, pre-processing, and vodBackend database access.
VOD branch Provides a wrapper around the vodBranchWS Web service to enable
management Web VOD asset management by the VOD Management tool. For more
service information, see VOD Branch Management Web Service (p. 166).
(ossVodBranchWS)
VOD Servers
The type of VOD Server you use to store VOD assets depends on the performance
expectations and popularity of the stored assets:
• RAM. A RAM-based media server serves assets from RAM; therefore, its disk
performance is slower, but the egress capacity is higher. The vodControllerWS Web
service puts the most popular VOD assets on RAM-based VOD Servers to fully
utilize the faster egress capacity.
• DAS. A DAS-based VOD Server serves assets from the hard disk; therefore, its
egress capacity is lower, but it can accommodate more assets than a RAM-based
VOD Server. The vodControllerWS Web service puts all but the most popular VOD
assets on the DAS-based VOD Servers.
VOD assets on a VOD Sever are stored in the Media folder. Under the media folder are sub-
folders named Mediaxx where xx is a positive integer. The Mediaxx sub-folders are either a
local folder or a mount point to another hard disk. The name for each new Mediaxx sub-folder
is incremented by one for each new folder or mount point that is added to the VOD Server for
storing deployed VOD assets.
VOD asset files for each VOD asset are stored under separate Assetxx sub-folders under a
Mediaxx sub-folder. The name for each new Assetxx sub-folder is incremented by one for
each new VOD asset deployed to the VOD Server.
The following example shows the directory structure under the Media folder on a VOD
Server that has three media folders that store the files for a total of six VOD assets:
Media\
Note This delivery system does not scale the bandwidth required on the WAN links as a
function of the number of branches.
The following diagram illustrates multicast asset distribution.
Note This feature is only available if the QFE116790 portion of the SP3.2 CP2 is installed in
your Microsoft Mediaroom 1.1 SP3.2 server environment. For information on post-
installation configuration and the content distribution Web service (OSS), see “Appendix of
Changes for QFE116790 - Multicast Asset Distribution” in QFE187577 Release Notes. For
information on configuring multicast asset distribution, see Configuring Multicast VOD Asset
Distribution (p. 320) in Operations Guide.
1) When a request comes in, the load balancing algorithm is used. If the selected
interface on the selected VOD Server is above a configured threshold (TA), then the
process continues with Step 2. The default for TA is 60 percent.
2) Replication of the most popular VOD asset on that VOD Server occurs. If the VOD
asset is more popular than the least popular VOD asset in RAM, the VOD asset is
replicated to a RAM-based VOD Server. If not, the VOD asset is replicated to a
DAS-based VOD Server.
3) During replication, the system is analyzed to determine whether the VOD asset fits in
the remaining storage.
• For a RAM-based VOD Server, it is unlikely that the VOD asset fits in the
remaining storage, so the least-used VOD asset is removed from the server, after
ensuring that remaining servers can handle the current subscriber load for the
removed asset. This may mean additional replication to another RAM- or DAS-
based VOD Server for the removed asset. The system will attempt to find the
RAM-based VOD Server that requires the least amount of VOD asset
movement.
• For a DAS-based VOD Server, the list of available DAS-based VOD Servers is
first sorted by network usage from least used to most used. A configuration
variable determines how full the operator wants the disk system to grow to and
once it hits that amount, any replication attempt to that server will result in first
checking to see if a less popular VOD asset can be deleted. Once a VOD asset's
usage goes down, it is not explicitly removed from a DAS-based VOD Server,
but may be removed to make space for the replication of another VOD asset.
4) If a VOD asset is to be removed from a RAM-based VOD Server, it is first copied
over to a DAS-based VOD Server and is then removed from the RAM-based VOD
Server. If multiple assets are to be removed from the RAM-based VOD Server, as
few assets as possible are removed by reviewing the sizes of the least popular assets.
Note Microsoft Mediaroom does not provide inventory or version control systems for
managing VOD assets. Each service provider is responsible for performing those tasks using
other tools.
Note Trick stream speed cannot be set through a VOD asset’s metadata. Trick speed is
defined globally. If trick streams are turned off through the global setting, the system can still
have a global trick speed setting that is used only when a VOD asset’s metadata specifically
sets values for its trick streams.
1) The VOD delivery subsystem reads the branch certificates from the certificate store.
The branch certificate is installed during Microsoft Mediaroom installation.
2) The VOD delivery subsystem sends the branch public key from the branch to the
VOD acquisition subsystem over the SSL channel.
3) The VOD acquisition subsystem verifies that the branch’s public key is valid.
4) The VOD acquisition subsystem reads the key file for each RTP stream.
5) The VOD acquisition subsystem decrypts the encrypted keys for the requested VOD
asset using the VOD acquisition subsystem’s private key and re-encrypts it with the
branch public key.
6) The VOD acquisition subsystem returns the encrypted keys to the branch.
7) When the branch receives the encrypted keys, it decrypts them (using the branch
private key) and stores them for use by devices.
During the VOD asset deployment process, the VOD asset metadata is stored in the Asset
Store Subsystem (p. 088) subsystem and rights data is stored in the Subscriber
Management Subsystem (p. 105) (SMS) by the VOD Asset Management tool.
Service Failover
The vodControllerWS Web service detects VOD Server failure when the VOD Server stops
reporting its status. It detects failure within two intervals of server status reporting (by default,
the interval between status reports is 10 seconds). The vodControllerWS Web service then
updates the database status with this information so that the URL to that server is no longer
returned to clients.
Within a few seconds of the VOD Server’s failure, clients that are using the server for
playback fail over to the second URL that was sent to them originally. If that secondary URL
also fails, the client returns to the vodMapServerWS Web service to request another set of
URLs.
The TV Services Management tool on the Branch Management machine provides a way to
manage VOD Servers, for example, to take a server offline for maintenance or decommission
it and remove entries about it from the BranchDB database. For more information, see
Managing VOD Servers (p. 420) in Operations Guide.
See Also
High-Level Architecture (p. 013)
OSS Web Service Reference (Microsoft Mediaroom OSS/BSS Integration documentation set)
BSS Web Service Reference (Microsoft Mediaroom OSS/BSS Integration documentation set)
Note Originally Live Anytime was released as “Live to VOD.” The feature name has
changed as of the Microsoft® Mediaroom Server 1.1 SP3.2 CP2 (SP3.2 CP2) release. While
the latest release of the Microsoft Mediaroom documentation refers to the current feature
name, many system components, such as services and configuration files, use the prerelease
name.
The following diagram illustrates the overall architecture and components of the Live
Anytime subsystem.
Note The Live Anytime subsystem also supports Live2VOD Recording Server redundancy
to ensure that a server is available to record a scheduled live program.
L2VDB
The L2VDB role is responsible for storing the Live Anytime configuration. Because the load
on this database is small, it typically coexists on the same machine with the BranchDB
database.
l2vRecServer
The l2vRecServer role, which is typically installed on the Live2VOD Recording Server, is
responsible for capturing and recording assets. Because of the intense nature of processing
required for capture and recording operations, the Live2VOD Recording Server is typically a
physically separate, high-performance server.
l2vControllerWS
The l2vControllerWS role is responsible for creating and managing recording schedules and
deploying finished assets to the VOD delivery subsystem. The l2vControllerWS role typically
resides on the Live2VOD Controller machine.
ossLiveToVOD
The ossLiveToVOD role enables service providers to write custom applications to monitor
and configure the Live Anytime subsystem.
smtLive2VOD
The smtLive2VOD role provides the interface between the TV Services Management tool and
the Live Anytime subsystem.
Component Description
Windows Server Terminal Services (p. Reside at the service provider site and serve
079) requests for RDP sessions from Microsoft
Mediaroom clients.
TServer Windows Service (p. 079) Provides status updates to the Terminal
Server controller private Web service and
then executes actions returned by the private
Web service. These actions include creating
users, changing passwords, starting new RDP
sessions, and shutting down existing RDP
sessions.
RDP Application Launcher (p. 080) Launches and manages the lifetime of RDP
applications. The launcher runs on a
Terminal Server and uses a virtual channel
TServerProxy COM+ Service (p. 076) Enables the TServer Windows service and
the RDP application launcher to
communicate with internal Microsoft
Mediaroom Web services.
Terminal Server Controller Private Web Receives session state information from the
Service (p. 081) TServer Windows service on each Terminal
Server and stores it in the tservercontroller
database.
Terminal Server Controller Database (p. Stores the status of available RDP sessions
082) on Terminal Servers.
Windows Applications (p. 082) Installed on the Terminal Server and run by
the RDP application launcher. Ideally,
Windows applications are designed for
display on TV screens and for operation
within the constraints of Microsoft
Mediaroom set-top boxes.
Note Microsoft Mediaroom does not support the Media Center object model for Windows
applications.
The Internet Explorer 6.0 control intercepts playback control API calls so that live TV is not
delivered over RDP. Instead, the playback controls are delivered as client messages over RDP
virtual channels. The Microsoft Mediaroom client uses these messages to acquire the
appropriate media streams and integrates those streams with the UI content delivered over
RDP. The launcher also stores cookies for each user in the user store subsystem.
Note Because subscribers can choose language preferences, Web applications can be
implemented to support multiple languages. The application retrieves the user’s language
setting from the UserLanguages list in the HTTP request header
(HttpContext.Current.Request.UserLanguages[0] in ASP.NET). The language names follow
the RFC 1766 standard in the format languagecode2-country/regioncode2 (for example, en-
US). Similarly, you can implement applications to support multiple display resolutions.
For Windows applications, which run on the Terminal Server, the launcher launches the
application maximized (with window frame and menus removed). The launcher stops the
Windows Applications
The RDP application launcher can run Windows applications installed on the Terminal
Server. Each Windows application runs in a separate process, but in the same RDP session as
the RDP application launcher that started it.
For the best user experience, Windows applications should be designed for display on TV
screens and for operation within the constraints of Microsoft Mediaroom set-top boxes. For
details on design and implementation guidelines, see Application Developer’s Guide in the
Microsoft Mediaroom OSS/BSS Integration documentation set.
Note Microsoft Mediaroom clients present available RDP applications to subscribers if they
receive RDP application service information from the media discovery subsystem. Microsoft
Mediaroom operators create media descriptions for the media discovery subsystem with the
TV Services Management tool.
Note The WSR routing table is loaded one time when the first request arrives. Any changes
to the configuration that affect the routing table require a restart of the IIS application pool for
the changes to take effect. IIS supports a rolling restart, which drains connections from an
existing worker process and sends a new request to a new worker process, thus ensuring no
down time.
The WSR builds its routing table from the routing information in the roles.xml file,
specifically from the <roleURI> XML element.
The following diagram shows how the WSR fits into a typical deployment.
The following table describes the Asset Store subsystem software components.
Component Description
vodBranchWS Web Enables the VOD, RDP Application, and Search subsystems to
service retrieve VOD asset metadata over HTTP.
vodCatalogPrivateWS Builds the VOD catalog of assets that display in the Search
Web service screen for subscribers. The catalog of assets is the library of
content that the subscriber has requested. The client displays
these assets together in a listing that is viewable by the
subscriber.
BranchDB database Database that stores the states of all assets and VOD Server
machines. Maintains information about deployed VOD assets.
See Also
Video on Demand Subsystem (p. 044)
RDP Application Subsystem (p. 076)
Search Subsystem (p. 132)
Subscriber Management Subsystem (p. 105)
Listings Distribution
Listings data originates from a listings provider, is imported into the Microsoft® Mediaroom
branch, and is then distributed to Microsoft Mediaroom clients.
The following diagram illustrates how the Microsoft Mediaroom system manages this process
end-to-end.
1) A listings provider (of the service provider’s choosing) creates a Global Listings
Format (GLF)-compliant listings data file.
2) The listings provider copies the listings data file to a secure location to which the
service provider has access.
3) Branch operators define a method for securely copying the listings file. They copy
the listings data file onto the Server-Facing Branch machine that can be accessed by
the ListingsLibrarianWS Web service. Each branch must have its own copy of the
listings data.
Each branch can have the same or different listings data files. For example, two
branches might contain an English-based listings data file while another branch has a
French-based listings data file.
4) The listings subsystem imports the listings data file into its own storage space.
Import performs a complete update of the listings data file; the system does not
currently support partial updates. Import is always done by the console application
Listings Updater.
There are two ways to import a listings data file:
• Scheduled invocation method. Set up the IPTV Edition Scheduler Windows®
service to invoke Listings Updater to import the listings data file at a specific
time. The file is imported at the same time each day regardless of whether its
content changed. This is the recommended method for importing a listings file.
• Manual import. Invoke the Listings Updater application manually by running it
on the command line. This method is not recommended outside of a lab trial, but
can be used for an extraordinary maintenance importation or other special
situation.
During import, the import process does not disturb the current listings data tables; it
writes all listings information to a secondary set of listings tables. After the import is
complete, the import changes the secondary listings tables to the primary listings
tables. Using this method, clients can still request listings data while an import is in
progress and, if the import should fail, the listings data remains intact. For more
information, see Configuring the EPG Import Process (p. 184) in Installation and
Configuration Guide.
The following diagram provides a close-up look at the interactions between the Listings
LibrarianWS Web service and other Microsoft Mediaroom components.
Channel Maps
Channel maps associate services to virtual television channels. A channel map can contain
any number of virtual channels. Channel maps enable service providers to offer different
Note The listings subsystem does not manage channel maps, rate packages, or any type of
subscriber-specific data preferences.
See Also
Media Discovery Subsystem (p. 095)
DVR Scheduler Subsystem (p. 125)
The following table describes the media discovery subsystem software components.
mdws Web service Receives requests for media descriptions from Microsoft
Mediaroom clients. Each request specifies a piece of content (for
example, a VOD asset) by a GUID known as a “media descriptor.”
The mdws Web service provides clients with the information
required to assemble the channel map and Video on Demand
screen, which is used to identify and access Microsoft Mediaroom
services. The mdws Web service contacts the service information
(SI) subsystem to retrieve service information about the content,
and then gets listings metadata for the content from the listings
subsystem. The mdwsWeb service uses the returned service
information and EPG metadata to create a media description for the
requested content and delivers it to the Microsoft Mediaroom
client.
MDWSPrivate Web Receives requests for media descriptions from the SearchWS Web
service service. The MDWSPrivate Web service then handles the requests
in the same manner as the mdws Web service.
vodCatalogPrivateWS Builds the VOD catalog of assets that display in the Search screen
Web service for subscribers. The catalog of assets is the library of content that
the subscriber has requested. The client displays these assets
together in a listing that is viewable by the subscriber.
See Also
Listings Subsystem (p. 090)
Component Description
Service discovery Provides a set of interfaces that enable other Microsoft Mediaroom
Web service server machines to access details for each service.
BranchDB database Maintains base service information data in an SQL database. Base
service information data includes the following:
• Service map, which contains detailed information about
individual services.
• Service collection map, which bundles services together to
present a consistent display across various display contexts.
• Media description map, which associates a media descriptor
(a GUID that identifies a specific media description) with
listings data and a service collection.
At Microsoft Mediaroom system startup, the client service information handler connects to a
bootstrap Web service where it acquires the appropriate service information data. It
See Also
Video on Demand Subsystem (p. 044)
RDP Application Subsystem (p. 076)
Live TV Subsystem (p. 021)
Channel Management Web Service (p. 158)
Media Discovery Subsystem (p. 095)
Web Service Router (p. 086)
This URL directs the client to a virtual directory on IIS. For more information, see Upgrading
Devices (p. 582) in Operations Guide.
ClientUpgradeFiles role
The clientUpgradeFiles role creates a virtual directory on a Web server where the upgrade
packages for 1.6.2 or later clients are located. Set-top boxes must be able to directly connect
to this Web server, as this connection is not made through the Web service router. Clients
download the appropriate upgrade package after receiving the package’s URL from the
upgradeWS Web service.
Service Offerings
The SMS uses media descriptors to identify all services, whether they provide a live TV,
VOD, or an RDP application service. media descriptors enable service providers to define
services, service collections, and service packages.
Default Entitlements
Microsoft Mediaroom service providers can grant default entitlements for individual services
(for example, access rights to view a premium channel) and for packages of services (for
example, access rights to a collection of premium channels).
If the SMS receives changes to subscriber rights, it may proactively notify the affected
devices.
Billing Events
The SMS keeps track of billable Microsoft Mediaroom transactions for each subscriber and
device, including VOD purchases, Pay Per View (PPV) purchases, and subscriptions to
services and channels. When subscribers purchase services, the SMS creates the billing events
and stores them in the service group database. The billing events can then be accessed
through BSS Web services.
Component Description
Billing Web service Enables business support systems (BSS) to access subscriber
billing events in the service group database.
Client rights Web service Manages Microsoft Mediaroom client requests for service
access rights and keys. Checks the service group database and
returns valid content protection keys to the client if service
access rights are granted by default or if the subscriber
purchased the service.
Key management Web Enables the live TV acquisition and VOD acquisition
service subsystems to update keys in the subscriber database.
Principal management Web Enables business support systems (BSS) to manage principals
service (subscribers, devices) in the service group database. BSS
systems access this Web service through the BSS principal
management Web service, which is a proxy that exposes the
same API.
Resource management Web Enables BSS systems to manage resources (live services,
Rights management Web Enables BSS systems to manage rights in the service group
service database.
Business logic resides in the service provider’s operations support systems (OSS) and
business support systems (BSS) rather than in the SMS. For example, Microsoft Mediaroom
exposes Web services to store live service package information. Through these Web services,
the OSS and BSS can define multiple service tiers (for example, basic, silver, and gold) that
include different sets of live channels. The SMS, however, does not track relationships
between these tiers. For example, the SMS does not indicate if the basic tier is a subset of the
silver or gold tiers.
Microsoft Mediaroom provides a set of Web services (billing record management, grant
management, offer management, package management, and principal management), through
which BSS systems monitor and manage SMS data.
For details on the BSS Web service APIs, see BSS Web Service Reference in the Microsoft
Mediaroom OSS/BSS Integration documentation set.
Client notification Provides clients with addresses of machines running the notification
Web service delivery Windows service. Uses a random algorithm for selecting
two notification delivery Windows services for any given Microsoft
Mediaroom client that logs on to the system.
Clients get the addresses of machines running the client notification
Web service from the bootstrap Web service.
Message Handlers
The Microsoft Mediaroom client is equipped with message handlers for messages that
Microsoft Mediaroom services may generate. Microsoft Mediaroom clients support several
types of messages, including:
• Rights change messages, which ensure that the client has the appropriate access
rights for services to which it is entitled.
• Service information change messages, which ensure that the client has current media
descriptions. These messages originate in the EPG and SI subsystems and are
typically sent as multicast notifications at repeat intervals.
• Text messages, which the client presents to television viewers through a simple UI.
These messages can be generated by custom applications that interface with the UI
notification Web service.
• Diagnostics request messages, which cause the client to upload diagnostic
information.
If the client has handlers for a message it receives, it processes the message. New or existing
services can post new types of messages to the client, but the client processes only those
messages it is equipped to handle.
Messages can be delivered to individual clients, or they can be broadcast to all clients
simultaneously.
The UDP/IP-based heartbeat protocol supports messages containing no more than 1000 bytes.
The notification delivery Windows service encrypts messages with the corresponding client’s
certificate, which it obtains from the bootstrap Web service. If the message itself is less than
1000 bytes, the ping message includes the encrypted message.
Architecture
The following sections describe the architecture of the high-priority notification subsystem.
Note Recording schedules are tied to services, not channel numbers. If a channel map is
reconfigured or if a subscriber reorders the program guide, a scheduled recording still records
the correct program. For example, a recording that is targeted at a program on the ESPN
service still correctly records an ESPN program even after a channel number change.
Component Description
DVR Provides activities used to resolve DVR scheduling conflicts. The role
Schedule associated with this Windows service is dvrScheduleUpdaterService, a
Updater Server-Facing Service Group role that can be installed on multiple
Windows machines.
service
dvrV2 Web Provides the client-facing Web services for digital video recording. The
service role associated with this Web service is dvrV2WS, a Client-Facing
Service Group role.
In a multiple set-top box household, each set-top box communicates with the DVR scheduler
subsystem independently, and this subsystem ensures that the set-top box with a hard disk
drive receives all scheduling requests. For more information about multiple set-top box
households, see Multiple Client Households (p. 181).
Component Description
User store public Web service interface through which client applications can set or
Web service get name/value pairs. The Microsoft Mediaroom client accesses
(userstorePublicWS) this Web service to save state information. The user store public
Web service ensures that only the client application that saves data
can retrieve it.
User store library DLL through which server-facing custom applications can set or
get name/value pairs.
See Also
High-Level Architecture (p. 013)
The following table describes the session key authority subsystem components.
Component Description
SKA Key Generator Windows Periodically generates symmetric server session keys
service for the various queues defined in the session key
authority database tables.
Session key authority database Contains key queues that store protected (encrypted and
tables (in the BranchDB or signed) session keys and queue definitions.
ServiceGroupDB databases)
All SKA session keys are protected by headend certificates and asymmetric cryptography.
Note The sessionKeyAuthorityWS Web service does not have access to the certificates that
protect the keys it retrieves from the session key authority database tables, so the service can
run in either an application or database security tier.
Component Description
mdws Web service Receives requests for media descriptions from Microsoft
Mediaroom clients. Each request specifies a piece of content
(for example, a VOD asset) by a GUID known as a “media
descriptor.” The mdws Web service provides clients with the
information required to assemble the channel map and Video
on Demand screen, which is used to identify and access
Microsoft Mediaroom services. The mdws Web service
contacts the service information (SI) subsystem to retrieve
service information about the content, and then gets listings
metadata for the content from the listings subsystem. The
mdwsWeb service uses the returned service information and
EPG metadata to create a media description for the requested
content and delivers it to the Microsoft Mediaroom client.
MDWSPrivate Web Receives requests for media descriptions from the SearchWS
service Web service. The MDWSPrivate Web service then handles
the requests in the same manner as the mdws Web service.
vodCatalogPrivateWS Web Builds the VOD catalog of assets that display in the Search
service screen for subscribers. The catalog of assets is the library of
content that the subscriber has requested. The client displays
these assets together in a listing that is viewable by the
subscriber.
The search subsystem periodically requests media descriptions from the MDWSPrivate Web
service (in Media Discovery Subsystem (p. 095)), and caches a local copy of the media
description in memory. The process enables the search subsystem to quickly perform searches
and return sorted lists of media descriptions when they are requested.
Because the search subsystem communicates directly with Microsoft Mediaroom clients, it is
typically deployed on a Client Gateway machine.
For more information on using the Microsoft Mediaroom client search feature, see
Subscriber’s Guide in the Microsoft Mediaroom Client documentation set.
Diagnostics
Client diagnostics information such as crash logs enable service providers to determine the
cause of set-top box failures.
1) As subscribers perform prescribed tasks on the client, the client automatically logs an
event containing details about the task in its local activity logging cache.
2) When the client accumulates 500 events, it uploads the content to the logging
framework on the Microsoft Mediaroom server.
3) The logging framework stores the subscriber activity events in the subscriber activity
SQL database.
4) Service providers can use the SQL Reporting engine or third-party applications, such
as Crystal Reports, to generate subscriber activity reports.
Subscriber activity event logs are specific to each service group. Each service group has its
own subscriber activity event logging database that contains only events from clients serviced
by that branch.
Note By default the set-top box must remain tuned to the channel for more than 20
seconds for an event to be logged. This value is configurable.
• Turns the set-top box on or off.
• Selects an item from any menu.
• Purchases a VOD asset.
• Purchases an RDP application.
System Events
All Microsoft Mediaroom software servers use the logging subsystem to report system events.
System events flag errors, warn of potential problems, or provide notification of processes
that have taken place. Service providers can use system event information to tune system
maintenance and to troubleshoot problems.
Event Information
System events contain the follow types of information:
• Event name. Fully qualified class name and class namespace that generated the
event.
• Event ID. Unique number that identifies the event. Use this information to locate
event cause and corrective actions in Microsoft Mediaroom documentation.
• Event severity.
• Critical error. A critical system problem that prevents the Microsoft
Mediaroom system from functioning.
• Error. A significant problem, such as loss of data or loss of functionality. You
should not see any error message events under normal operating conditions. The
error level captures exceptions such as out-of-memory errors and errors returned
from a system call. An Error event indicates that the application or service
cannot continue processing the current request.
• Warning. An event that is not necessarily significant, but might indicate
potential future problems. You should not see any warning message events under
normal operating conditions. For example, when disk space is low, a Warning
event might be logged.
Event Storms
During an “event storm” the logging subsystem accumulates and consolidates similar system
events and posts a single event with a counter that reflects the number of times it received the
particular event. This process is called Event Storm Detection and Consolidation (ESDC).
ESDC occurs when the logging subsystem receives more than 400 events per second and it
has more than 1000 outstanding events to process. These thresholds are configurable and
ESDC can be turned off.
Service providers can customize which event stores they maintain in their system. They can
also define which events or event groups are sent to each event store. For details on
configuring the logging framework, see Operations Guide.
Performance Counters
As Microsoft Mediaroom operates over time, the values of the various counters begin to show
a pattern. Routine monitoring over periods ranging from days to months enables operators to
establish a baseline for system performance. The baseline is an indicator of how individual
system resources or groups of resources are used during periods of normal activity.
When determining a baseline, it is important to know the types of work being done and the
days and times when the work is being done. That information helps you to associate work
with resource usage and to determine the reasonableness of performance during those
intervals.
When operators acquire sufficient performance data reflecting periods of low, average, and
peak usage, they can make a subjective determination of what constitutes acceptable
Audit Events
Audit events are useful to service providers in determining who has accessed the system and
for what purpose.
Component Description
Logger Writes the events it receives from server software components to the
local event queue and then calls the log engine.
Log engine Routes events into various sinks based on the information in the
logging configuration file.
Event Log sink Directs logging events to the local Windows Events log.
Trace sink Directs logging events from the log engine to TraceSink.Log, the
local, text-based, trace log file. This log “rolls over” when it reaches a
maximum size or at a specific interval (hourly/daily/monthly) as
defined in the configuration file. When rollover occurs, the current
TraceSink.Log file overwrites the history log file Tracesink.old.log
and an empty TraceSink.Log is created.
SQL sink Directs logging events to the log data Web service. The SQL sink bulk
inserts events based on an internal non-configurable timer. The timer
duration is based on heuristics such as the number of outstanding
events. This metric ensures that the timer does not “sleep” for too long
and it has a reasonable number of events to process at one time.
Debug sink Directs logging events to a debug console if one exists. You can set
the verbosity of the debug information and the port to route the debug
events in the logging configuration file.
logdata Web Receives log dumps from the SQL sink and writes them to the
service centralized subscriber activity log database and event log databases.
Event database Contains the server events. Events can be either informational, such as
letting an operator know that a process successfully completed, or an
alert regarding an error condition. Error events have severities of
warning, error, and critical error.
This database contains the events generated by the entire Microsoft
Mediaroom system (central repository).
Recycler job Trims respective database tables if they grow beyond a configurable
maximum size. By default, this SQL job is scheduled to run every
hour.
See Also
High-Level Architecture (p. 013)
The following table describes the software components of the client management subsystems.
Componen Description
t
bootstrap The first service that all Microsoft Mediaroom clients encounter when they go
Web through their startup sequence.
Service The bootstrap Web service authenticates the Microsoft Mediaroom client and
logs it on to the Microsoft Mediaroom system. It then contacts subscriber
management subsystem (SMS) to determine the subscriber’s level of service,
and returns a list of URLs for Web services (terminal service monitor, client
upgrade, and so on) from which the client acquires configuration data. For
more information on bootstrap Web service, see Bootstrap Web Service (p.
101). For more information on SMS, see Subscriber Management Subsystem
(p. 105).
upgradeWS When a client is authenticated— at startup or when the session key expires—
Web the client sends its current software version to the bootstrap Web service. If
service the client software version does not match the resolved software version for
the device, the bootstrap Web service returns an upgrade message that
contains the URL of the upgradeWS Web service.
For devices that run a Microsoft Mediaroom Client release prior to 1.6.2, the
upgradeWS Web service downloads the stored client software to devices that
require upgraded software.
For devices that run Microsoft Mediaroom Client 1.6.2 or later, the
upgradeWS Web service constructs a download link to send to the client.
(The URL for this link is constructed with information about the OEM ID
obtained from the client certificate, the model ID that the client reported, and
the device software version that was resolved from the ServiceGroupDB
database.) The URL that is returned to the client points to the machine that
hosts the clientUpgradeFiles role from which the requesting client can
download the appropriate client image. The URL is in the following format:
http://<clientUpgradeFiles>/<OEMid>/<modelID>/Application_<version>.da
t
where clientUpgradeFiles is the address of the machine and
<OEMid>/<modelID>/Application_<version>.dat is the path and upgrade file
for the client to download.
For more information, see Client Upgrade (p. 180).
Sync The Sync Discovery Service Windows service provides clients with a
Discovery Disaster Recovery Application (p. 103) (DRA) that they can run at startup
Service when they are recovering from a failure. For more information on the Sync
Windows Discovery Service Windows service, see Sync Discovery Service Windows
service Service (p. 103).
Sync and The “Sync Server” portion of the Sync Discovery Service Windows Service
Discovery provides a client with the Disaster Recovery Application (DRA) when the
Server client cannot boot normally, or when the client has no software at all, such as
when a new client is first connected. If a client cannot bootstrap and contact
the Microsoft Mediaroom server machine that contains the client upgrade
files, the client is diverted to the Sync and Discovery Server to obtain the
DRA.
The “Discovery Server” portion of the Sync Discovery Service Windows
service provides a client with the location of resources that it can contact
during regular start-up, or to recover from software failure, should it occur.
Client- The Client-Facing Service Group machine hosts the upgradeWS Web service
Facing and the upgrade files for clients that run a Microsoft Mediaroom Client
Service release prior to 1.6.2.
Group
IIS Cluster The IIS cluster, or another machine that hosts the clientUpgradeFiles role,
downloads the stored client software to 1.6.2 or later set-top boxes that
require upgraded software. Only the files for a particular version that need
updating are sent to replace the old versions on the set-top box.
When a client is authenticated— at startup or when the session key expires—
the client sends its current software version to the bootstrap Web service. If
the client software version does not match the resolved software version for
the device, the bootstrap Web service returns an upgrade message that
contains the URL of the IIS cluster machine with the clientUpgradeFiles role
that has the upgrade files the set-top box needs. For more information about
client upgrades, see Upgrading Devices (p. 582) in Operations Guide.
Note The NTP source should exclude leap seconds to reduce the risk of platform problems
that could result from their insertion.
Unlike analog broadcast systems, where display time synchronization is inherent in the signal
itself, compressed video systems receive frames for display at different time offsets relative to
one another, and possibly out of order. Each frame is typically labeled with a “presentation
time,” which indicates when the frame is to be displayed. Because no two clocks progress at
exactly the same rate, compressed video systems must have a means of coordinating clocks
between the source and sink of the audio/video (A/V) information; otherwise the receiver
would play back at its own data rate. Significant differences in data rates can lead to frame
repeats or drops, and eventually to under running or overflowing the network reception buffer
from the source.
In a traditional broadcast system, clients and servers cannot synchronize time except to rely
on:
• Time information that is in the stream.
• Characteristics of the broadcast channel, such as fixed delays and fixed transport bit
rates.
Traditional MPEG transport systems handle time synchronization by assuming a constant
network delay (that is, it takes the same amount of time for each packet leaving an encoder to
arrive at a decoder). The MPEG transport defines a program clock reference (PCR), which is
basically a number carried in the stream that says “when you receive the last bit of this
number, the exact time is the value encoded by that number.” This time synchronization
method works well for systems such as satellite and coaxial broadcast, where the variance in
network delay is insignificant.
Server Authentication
Microsoft Mediaroom servers use integrated Windows authentication. This authentication
method relies on NTP to provide an accurate understanding of time between servers.
Windows Server 2003 implements an NTP stack to establish and maintain correct time within
a forest.
NTP Architecture
NTP is typically deployed in one of three different architectures:
• Star
• Peer-to-Peer
• Hierarchical
Microsoft recommends that NTP servers be deployed in a hierarchical fashion for reliability,
stability, and scalability.
Quick Search Search tool that is used to find clusters, servers, processes, or
services managed by the Live Backend Management machine.
Servers Add and manage Acquisition Servers to host live TV and music
services.
You use the pages of the TV Services Management tool on the Branch Management machine
as follows to manage Microsoft Mediaroom.
Configure Pay Per View (PPV) assets and add new PPV
PPV Management
service collections.
Manage the TimeShift Recording Servers and enable services
TimeShift
for Restart Anytime.
Note This link is available after you install Microsoft
Mediaroom Server 1.1 SP3.2 CP2.
Create and manage new digital terrestrial television (DTT)
DTT Management
services.
Live to VOD Configure and manage recording live TV streams that are
converted to VOD assets for deployment through the VOD
subsystem.
See Also
Multiple and Simultaneous Interactions with TV Services Management Tool (p. 153)
Blackout Management Web Service (p. Enables OSS systems to manage service
157) (ossBranchBlackout) substitutions, also known as “blackouts," at the
branch.
Channel Management Web Service (p. Enables OSS systems to manage channel maps
158) (osschannel) and media descriptions, and to assign channel
maps to subscriber groups.
Content Distribution Web Service (p. Enables client applications to configure and
159) (ossContentDistributionWS) monitor the VOD content distribution system.
Client Configuration Web Service (p. Enables service providers to target the software
159) (upgrade) upgrades of Microsoft Mediaroom clients.
Diagnostics Notification Web Service Enables OSS systems to send requests for
(p. 159) (Diagnostics) diagnostics information through the notification
subsystem to all Microsoft Mediaroom clients
that are associated with a specific account.
Emergency Alert System Web Service Enables service providers to send alert
(p. 161) (EAS) messages to subscriber set-top boxes,
interrupting whatever programming the
EPG Web Service (p. 161) (ossepg) Enables Web clients to fetch information about
the program schedule.
Fingerprint Web Service (p. 161) Enables the service provider to place a
(fingerprint) "fingerprint" on live video services to identify
the source of pirated content.
High-Priority Notification Web Service Enables service providers to send short, time-
(p. 161) sensitive messages to subscribers.
(ossHighPriorityNotificationWS)
Live Anytime Web Service (p. 162) Enables service providers to write custom
(ossLiveToVod) applications that monitor and configure the
Live Anytime subsystem.
Live Deployment Web Service (p. 162) Enables operators to assign and reassign live
(ossLiveDeploymentWS) services to clusters in a branch.
PPV Management Web Service (p. Enables OSS systems to manage the
163) (ossppv) deployment of PPV assets.
Remote Recording Web Service (p. Enables Web clients to remotely schedule
163) (ossremoterecord) recordings and modify previously scheduled
recordings.
Restart Anytime Web Service (p. 164) Enables operators to manage time-shifted
(ossTimeShift) offerings.
Service Substitution Web Service (p. Enables service providers to schedule service
164) (ossServiceSubstitution) substitution ("blackout") events.
UI Notification Web Service (p. 164) Enables OSS systems to deliver through the
(UI) notification subsystem short messages that
appear on the screens of Microsoft Mediaroom
clients.
URL Management Web Service (p. Enables service providers to create and modify
165) (ossurl) special services based on Browser applications
and Web content.
VOD Backend Management Web Service Enables the TV Services Management tool and
(p. 166) (ossVodBackendWS) other operations support systems (OSS) to
VOD Branch Management Web Service Enables the TV Services Management tool and
(p. 166) (ossVodBranchWS) other operations support systems (OSS) to
manage VOD asset deployment at VOD
branches.
Note A number of different Web services must be used in concert to create and manage
substitution events. For details on the backend blackout management Web service API, see
"Real-Time Service Substitution" in OSS/BSS Integration Guide in the Microsoft®
Mediaroom OSS/BSS Integration documentation set.
Note A number of different Web services must be used in concert to create and manage
substitution events. For details on the backend blackout management Web service API, see
"Real-Time Service Substitution" in OSS/BSS Integration Guide in the Microsoft Mediaroom
OSS/BSS Integration documentation set.
Note Service groups can only be created through the server layout on the branch (see
Configuring the Server Layout Files (p. 089) in Installation and Configuration Guide). The
branch management Web service supports only reading existing service groups and assigning
an existing service group to use as the default service group for new accounts.
For more details on managing and migrating service groups, see Managing Service Groups
(p. 032) in Operations Guide. For more information about the branch management Web
service, see “Branch Management Web Service” in OSS Web Service Reference (Microsoft
Mediaroom OSS/BSS Integration documentation set).
See Also
Notification Subsystem (p. 116)
Logging Subsystem (p. 135)
Note A number of different Web services must be used in concert to create and manage
substitution events. For details on how the various Web services are used, see "Real-Time
Service Substitution" in OSS/BSS Integration Guide in the Microsoft Mediaroom OSS/BSS
Integration documentation set.
Note If a message is larger than 2 KB, the UI notification Web service throws an exception.
See Also
Notification Subsystem (p. 116)
Billing Record Management Web Service Manages billing records in the subscriber
(p. 169) management subsystem (SMS).
Important This is a legacy Web service,
provided for backward compatibility. At
some point in the future, this Web service
may be removed. For future development,
you should use the Reporting Store Web
Service (p. 171).
Grant Management Web Service (p. Manages the activities (play, pause, record)
169) (GrantManagement) enabled on resources, such as live TV services,
VOD assets, and RDP applications.
Offer Management Web Service (p. Manages the details of offers (price, tax, and
170) (OfferManagement) expiration) associated with live TV services,
VOD assets, and RDP applications.
Package Management Web Service (p. Manages packages, which can contain either a
170) (PackageManagement) set of services or a set of other packages.
Reporting Store Web Service (p. 171) Enables applications to access billing records
(reportingstore) associated with subscribers in all service
groups.
There are currently two external interfaces to the principal management Web service; these
interfaces provide overlapping, but not identical, functionality. The older interface is called
the primary principal management Web service, or simply the principal management Web
service; the newer one is the principal management Web service (BSS2). Ultimately, all the
principal management functionality will be made available through the BSS2 interface to the
Web service, and the older interface will be deprecated. In the meantime, the interfaces are
complementary, handling different tasks.
Note The reporting store Web service manages billing records that include more data than
the records managed by the billing record management Web service. Specifically, the
reporting store Web service billing records include rating and tax information.
Data Exchange
The UI consumes data that originates or is maintained at the Microsoft Mediaroom server
machines. Some of this data, such as listings and subscriber rights, are cached at the client to
1) The client establishes a connection with the bootstrap Web service, presents its (non-
A/V) certificate and a randomly generated value or “nonce,” and then requests a
ticket to contact services.
2) The bootstrap Web service validates the client certificate for authenticity. If the
certificate is not authentic, the bootstrap Web service logs the event, and then closes
the connection. If the certificate is valid, the bootstrap Web service does the
following:
a) Generates a symmetric key for session encryption (session key).
b) Encrypts the session key with the client’s public key.
c) Signs both the encrypted session key and the nonce.
d) Creates a client ticket.
The client ticket is fully opaque to, and not modifiable by, the client. The client
ticket contains the client’s non-A/V session key and the client ID, which are
encrypted with the branch key.
Client Upgrade
The Microsoft Mediaroom system supports automatic upgrades of client software in the field.
During the client authentication process, the client sends its software version to the bootstrap
Web service on the Client-Facing Service Group machine. The bootstrap Web service
compares the client’s current software version to its resolved version. If the version numbers
do not match, the client is directed to one of the following resources to receive upgrade files
during the next maintenance window configured by the operator:
• Device upgrades for pre-1.6.2 devices are pushed to devices through the upgrade
Web service. This service is responsible for downloading the upgraded software
image to the set-top box. The upgrade Web service is installed by default on the
Client-Facing Service Group machine.
• Device upgrades for devices that run 1.6.2 or later are pushed to devices through a
machine with the clientUpgradeFiles role. The clientUpgradeFiles role is installed in
an Internet Information Service (IIS) cluster. Upgrade files are loaded into RAM for
a period of time after the first retrieval, which provides a significant performance
improvement over the upgrades for pre-1.6.2 devices.
Software version precedence is determined through a hierarchical version stack. During a
scheduled upgrade operation, the version the device had at its last bootstrap is compared to
the current resolved version. An upgrade notification is only sent to the device if there is a
difference. If there are multiple pending upgrade jobs for the same device, only one of the
jobs is performed. For example, if you perform an individual device upgrade during the
Client Streams
Every household is allocated a certain number of streams. The streams are used to allocate
full-stream video content. There are two different kinds of streams:
• A high-definition (HD) stream can be used to watch or record high-definition or
standard-definition content.
• A standard-definition (SD) stream can be used to watch or record standard-definition
content, but not high-definition content.
If a set-top box goes into standby mode and is not recording a program, it releases any stream
it may have, allowing another set-top box to use it. Similarly, if a customer is using a set-top
box to watch already-recorded content, the set-top box releases its stream.
If no subscriber activity occurs on a set-top box for an operator-configured period of time, the
stream is designated as "stale". If another set-top box needs a stream and no unused streams
are available, the set-top box uses one of the stale streams. If an HD stream is being used to
Ingress Streams
Ingress streams define the number of each type of incoming stream that is allotted to an
account. The ingress-stream profile is applied to all devices configured for the account.
If the device is the account’s designated recording device, this profile represents the number
of each type of stream that can be used for recording. For playback (non-DVR) devices, this
profile is less relevant, because such devices can tune only to one full-screen service at a time.
Microsoft Mediaroom supports the following ingress streams. When there is contention for
ingress streams, they are considered in the order of priority shown.
For example, if the account's ingress tuple is (2, 2, 2), the HD max bit rate is 9 Mbps, and the
SD max bit rate is 3 Mbps, the total calculated ingress bit rate is 24 Mbps:
Total calculated ingress bit rate = (2 × 3) + (2 × 9) = 24 Mbps
Ingress streams can come from live TV or VOD services, or from DTT. For live TV or VOD
streams, the total ingress bit rate is calculated with the preceding formula. For DTT services,
there is no bandwidth limitation. Operators who need to control DTT bandwidth can control
the number of DTT tuners through the device’s tv2config.xml file. For information, see “DTT
Egress Streams
Egress streams define the number of each type of outgoing stream that a DVR device can
serve to the account’s other devices that can perform playback-only functions. The value for
egress streams is defined for the account’s designated recording device.
Note If the device encounters a profile violation during the evaluation, a dialog screen is
displayed to the subscriber. For more information, see “Resolving Multiple-Stream Conflicts”
in Subscriber's Guide (Microsoft Mediaroom Client documentation set).
If the request for a specific stream type satisfies the profile that it is mapped against, the
request is granted and the corresponding stream is available for the subscriber to view. The
device successfully tunes to the requested stream.
If the request for a specific steam type does not satisfy the profile that it is mapped against, a
stream contention event occurs. Most stream contention events result in a dialog screen that is
displayed to the subscriber.
Note Detuning a shared multicast live stream does not lower the WAN bandwidth
consumption, but does lower the device’s ingress stream count and bandwidth consumption.
For information on how to configure egress streams, see “StreamManagementProfile Class”
in BSS Web Service Reference (Microsoft Mediaroom OSS/BSS Integration documentation
set).
For more information on how to configure egress streams in the device’s tv2config.xml file,
see “Configuring DVR Anywhere” in Client Configuration Guide (Microsoft Mediaroom
Client documentation set).
Stream Contention
When a device applies the stream profiles, it proceeds through them until one profile is either
satisfied or violated. None of the available profiles matching is treated as though one of the
profiles on the list was violated.
If the tune service being evaluated is an IP stream (for example, download, UDP multicast or
unicast stream, VOD, or application), it is evaluated in the following order and suborders:
• Ingress profile:
• HD stream count.
• SD stream count.
• Total bit rate.
• WAN profile:
• HD stream count.
• SD stream count.
• Total bit rate.
If the tune being evaluated is a DVB tune, it is evaluated in the following order:
• DVB profile:
• DTT tuner count.
If the request for a particular stream satisfies the profile it is mapped against, that request is
granted, and the corresponding stream is available for use. The device will successfully tune
to the request.
If the request for a particular stream does not satisfy the profile condition it is mapped
against, stream contention occurs. Most stream contentions result in a dialog box being
presented to the subscriber. For more information, see “Resolving Multiple-Stream Conflicts”
in Subscriber's Guide (Microsoft Mediaroom Client documentation set).