Customer Stories

Products and ServicesNews and Mailing ListsCustomer StoriesArticles and  LinksSupport and ForumsSearch and Site MapDownload and BuyContact and About


Education & Government




DigitalXpress uses Amzi! in Rules-based 
Scheduling of Satellite Broadcasts

While some corporations or organizations are in a position to utilize satellite broadcasting on a full time basis, others can more effectively time-share resources for the delivery of digital data, voice, and video. In a time-sharing system, the usage time for a particular satellite transponder, which provides a two-way communications channel, is allocated among different customers.

Typical applications include:

  • Video for distance learning and corporate meetings
  • Downloading of large data files
  • Data provision to advertising kiosks
  • Audio feeds for in-store advertising and private news channels
  • Augmenting ISP backbones with an "IP multicast over-net" in which web-cast feeds go directly from the Internet broadcaster to the last mile ISP POP 

Understanding the need for the economical provision of these satellite services, including high speed data transfer, DigitalXpress provides organizations with the ability to share a single transponder for delivery throughout the United States, covering all locations, including remote areas. Uplink of data to the satellite is done through dial-up or dedicated lines into a central site run by DigitalXpress.

Scheduling is Key

Key to implementing the services is scheduling the usage of the satellite transponder among many customers. However, scheduling is a complex task because there are many variables. To begin with, the information to be broadcast may be stored and transmitted later (digital data) or transmitted in real-time (video and audio).

The advent of streaming video further complicates scheduling because streaming video cannot be interrupted. This is in contrast to data, which will not lose its integrity if there is a short delay in transmission since it is sent in packets instead of a stream.

To handle the complexity of scheduling, DigitalXpress built a rule-based scheduling engine that determines the best transmission time for a given broadcast.

Amzi! Prolog + Logic Server Selected for Building the Scheduling Engine

The scheduling engine was built using Amzi! Prolog + Logic Server, because it met the requirements of:
  • Speed for real-time scheduling
  • Flexible because it's easily embedded in many applications 

Amzi! Prolog + Logic Server consists of the general purpose Prolog language, delivered as the foundation of a compact, powerful library that is easily embedded in a variety of applications. It works with C, C++, Java, Smalltalk, Delphi, Visual Basic; has a CGI interface for Web servers; and a general API for tools such as Access, PowerBuilder, and Excel.

The Amzi! Logic Server extends Prolog to access and reason over any kind of data, such as from databases or remote servers.

Scheduling Inputs

Inputs to the scheduling engine include:
  • Requests for a specific transmission date and time
  • Type of data to be transmitted type (store-and-forward or real-time)
  • Duration of broadcast (in 1 or 15 minute increments)
  • Priority
  • Reliability factor (send once, send twice)
  • Channel 

Store-and-forward transmissions are typically small and billed in 1-minute increments. Real-time transmissions are much harder to schedule and are handled in 15-minute increments. The priority is used for load leveling and for controlling the level of preemption when scheduling higher priority transmissions. In addition, the scheduler can schedule equipment maintenance. If the maintenance is due to a pending failure, the scheduling engine can immediately reschedule affected transmissions. If a new transmission schedule cannot be reached, an operator is required to manually determine the new schedule time for the transmission.

Object Model

The scheduling works hand-in-hand with transmission specifications that are stored in an object model. This object model defines channels, configurations, schedules, transmissions and business rules. Channel objects describe the characteristics of channels within the satellite transponder. Configurations define the transmission services that are available and the attributes of the customers who purchase them. Schedule objects are the result of the scheduling engine and are a commitment to provide a service at a specified time/duration or window of time. Transmission objects are used to manage the process of actually making the transmission (which are initiated by an operator for real-time services). Business rules define operational constraints, minimum and the maximum duration of specific services and other constraints.

All of these objects are stored in a persistent database, but that layer is invisible to the scheduling engine and the graphical user interfaces that use the objects.

Based on information from the object model, the scheduling engine delivers a schedule of work for the Uplink center and receiver sites. The schedule can be created in less than five seconds. Once the schedule has been created, the transmission can be broadcast and the customer can be billed. 

Prolog for Flexibility

The scheduling engine uses several algorithms, originally written in Visual Basic, to tie in with the entire system of applications, object servers and databases.

However, DigitalXpress soon recognized that modifying the Visual Basic code was expensive in both time and cost and still would not allow quick response to changing market demands. DigitalXpress sought a flexible system that could be easily understood by most programmers. Experience had shown that trying to maintain and adapt the scheduling algorithms using Visual Basic was not an effective way to go. It was not going to fit the bill.

An expert system shell was not practical because the solution to the scheduling problem could not be represented in the expert system's domain. The expert shell would have been acceptable for the algorithms alone, but would have been difficult to integrate with the other applications, object servers and databases.

DigitalXpress decided that a switch from Visual Basic to Amzi! Prolog + Logic Server for the scheduling algorithms was the way to go. Amzi! Prolog + Logic Server provided the flexibility needed for quick response to changing market requirements. In fact, DigitalXpress estimates that development time and effort was spared by a factor of ten by making the switch.

Prolog for Speed

The scheduling engine works in real-time as well as in advance, and demonstrates that Prolog easily delivers the speed necessary for real-time scheduling.

Amzi! Prolog Embeddable in Visual Basic is Advantageous

Additionally, DigitalXpress was impressed by Amzi! Prolog + Logic Server's ease of integration with both Visual Basic and C. Amzi! Prolog is embeddable in Visual Basic. Currently much of the application, including about 30 graphical user interfaces (GUIs), is written in Visual Basic. These GUIs manage the service definitions, customer contracts and billings, resource and channel management and schedule creation and execution. The schedule creation user interface interacts with the scheduling engine (in Prolog). Although DigitalXpress hasn't used the C/C++ interface to extend Amzi! Prolog with new functions, it is important that this flexibility is available to them in the future.

Finally, it was critical to have support services available, which would not be the case with a freeware version of Prolog.

2550 University Avenue. W., Suite 310S
St. Paul, MN 55114
Phone: +1 888 591 1053
Contact: Thomas A. Haug, Vice President of Engineering

See Also: An Information Management Architecture for On-demand Satellite Broadcasting

Copyright ©1995-2006 Amzi! inc. All Rights Reserved. Privacy Policy.
Amzi!, KnowledgeWright and WebLS are registered trademarks and Adventure in Prolog, Logic Server, Logic Explorer, Adventure in Prolog and Subscription Plus are trademarks of Amzi! inc.