Scott Stodghill Geoff Paddle CableLabs

Cable Labs DPA Tools Project




The SCTE-130 specification set defines web services for delivery of advanced advertising services. It is comparatively new, quite large, and fairly complex. In order for the cable MSOs to support advertising operations, is essential to have a specific well-defined, interoperable, multi-vendor message set for each use case that occurs in the MSO internal or national operations. However, experience has shown that such a message set may not evolve naturally, and certainly not quickly. The Document Profile Architecture (DPA) Tools project is designed to minimize this problem.


The project provides a two-pronged approach; a set of “profiles”, and a tool to exercise those profiles. The profiles will be programmatically verifiable subsets of the large set of messages and data permitted by the schemas. A profile will be defined to implement each high-value use case selected by the MSOs.

The profiles are exercised in a software emulator that can represent any SCTE-130 service at the message level. Note that the emulator contains no business logic, only message validation and generation logic. The toolset will allow any mixture of real and emulated devices to make up a testable configuration. It will validate that an actual message exchange contains the correct set of messages, and validate each message exchanged against a specific example of a profile.


The initial release of the DPA toolset consists of a PostgreSQL database and an axis-2 web server. The database holds the toolset data, while the toolset server hosts a supervisor that provides browser-based services to manage the toolset data and also emulation sessions. A browser accessing the supervisor receives a JSF client that is the primary user interface. To support the emulation sessions the toolset server hosts a "proxy" for each SCTE-130 web service, which allows the supervisor to participate in all message flows. When an emulator session includes any emulated SCTE-130 systems, as opposed to real, external, SCTE-130 system instances, the emulated 130 systems are also hosted by the toolset server.

The toolset data consists of the profiles, exemplars, protocols, and deployments. Profiles are internal DPA data models originally derived from the SCTE-130 schemas to describe the universe of XML documents valid under those schemas. Profiles are further constrained to represent the smaller set of documents valid for a specific use case. Exemplars are sets of specific values for the structure and content left unresolved in a profile. While a profile defines a use case, an exemplar begins to define a specific example of that use case. A partially resolved exemplar may be the parent of several examples, and a fully resolved exemplar provides all the specific data needed to generate a one example of the profile use case, that is, one set of complete test messages. The specific set of messages that is necessary is defined by a "protocol", a set of SCTE-130 endpoints with a specific flow of messages between them. A profile, exemplar and protocol define an executable test case. The protocol is defined against logical endpoints, which need to be bound to actual endpoints for execution. This is done by supplying a user-defined deployment object, which is bound to the protocol in the supervisor execution environment. When the bound protocol is executed, the sequence of messages from the protocol will be exchanged in what is called a conversation. Any number of these conversations can occur concurrently or sequentially.

While developed here specifically for SCTE-130, the profile tools are capable of subsetting any XML schema, so can be applied to any web service or other data model expressed as XML schemas. Similarly, the emulator is constructed for SCTE-130 messages, but with addition of a few simple message-specific identifier classes can represent virtually any SOAP-based web service.


Performance profiling performed with JProfiler

Mailing Lists

There are two mailing lists for the project: one for project announcements and another for developers to communicate amongst themselves about project direction and issues. Both lists are currently unmoderated and messages may be sent to dpatools-announce@lists.sourceforge.net and dpatools-developers@lists.sourceforge.net, respectively.

(C)Copyright 2010-2012 Cable Television Laboratories, Inc. All rights reserved.