What is Minstrel ?

He brewed a song of love and hatred - oblique suggestions - and he waited.
-- Jethro Tull -- Minstrel in the Gallery

The goal of the Minstrel project is to develop a portable, flexible, scalable, and secure Java-based push system. Push systems reverse the typical communication pattern of Internet information systems: information is actively disseminated to users. The benefits of this approach are:

The design goals of Minstrel are:

The Minstrel Fact Sheet gives a quick overview on push systems and Minstrel's architecture.

If you are interested in push systems in general check out my Push Resources.

For TU Vienna Students: Minstrel Praktika and Theses Topics !

If you are a student at the Technical University of Vienna you can participate in the Minstrel project by doing a Praktikum or a master thesis in this area. You can choose from the list of available topics or come up with your own (if so, please prepare 1-2 pages that explain your topic).

Minstrel in the large

Minstrel's architecture

Status of the Project

We are at the beginning. So far no software or full specification is available.

Documentation and Specification

The following documents are currently available:

Minstrel Fact Sheet
Gives an overview on the Minstrel system and its architecture.

A Component and Communication Model for Push Systems

We present a communication and component model for push systems. Surprisingly, despite the widespread use of many push services on the Internet, no such models exist. Our communication model contrasts push systems with client-server and event-based systems. Our component model provides a basis for comparison and evaluation of different push systems and their design alternatives. We compare several prominent push systems using our component model. The component model consists of producers and consumers, broadcasters and channels, and a transport system. We detail the concerns of each of these components. Finally, we discuss a number of open issues that challenge the widespread deployment of push or any other system on an Internet-wide scale. Payment models are the most important among these and are not adequately addressed by any existing system. We briefly present the payment approach in our Minstrel project.

A Reference Architecture for Push Systems
This paper presents a reference architecture for push systems. It describes the general concepts, abstractions (broadcasting, channel), and components (broadcaster, receiver, transport system) of push systems. The properties and relations of components are presented and the main issues to be addressed by push architectures are discussed: scalability, network traffic, security, and e-commerce. Since push systems can allow executable content, the relations with mobile code systems are considered. A brief discussion of existing systems in respect to the reference architecture rounds out the paper.

The Minstrel Push System

The following documents are still under development:

The Minstrel Distribution Protocol Suite
MADP
Minstrel Active Distribution Protocol
MRRP
Minstrel Receiver Request Protocol
Data definitions for content and administrative information
Definitions for content data, sample, and administrative information

The Minstrel Security Architecture
The security features of Minstrel regarding authorization, authentication, pushlets (mobile code), and Java.

Software Under Development

The following Minstrel packages are currently being developed:

Broadcaster
A push system has at least one component that offers channels and distributes channel contents to the channels' subscribers. In analogy to TV this component is called a broadcaster. The broadcaster has a flexible external interface for feeding data into channels. Minstrel's broadcaster uses a hybrid broadcasting scheme:

  • server push is used to distribute information on the data available in channels (references, samples) allowing the receivers to keep track of available content and preserving the freshness, notification, and consistency properties
  • client pull then is used to request the actual content if wanted

Electronic Commerce
Minstrel shall support state-of-the-art electronic commerce as an initial design concept. Millicent is a micro-payment protocol developed by DEC. It is designed to support electronic commerce on the Internet. Millicent supports small purchases, e.g. pay for a WWW page, push channel, etc. Since it is intended for small amounts only (some cents to a few dollars) its security constraints and protocol are lightweight compared to other payment protocols. This package implements a Java component (JavaBean) which supports the Millicent protocol. Typical patterns for payment on the Internet (pay-per-view, flat fee, etc.) shall be supported.

Netscape Remote Control Facility
The user client of Minstrel will consist of 2 parts: Netscape Communicator (Mozilla) for displaying information and a Java-based GUI that allows the user to interact with Minstrel and remotely control Netscape Communicator. By using Netscape Communicator the user always has up-to-date content presentation functionalities while Minstrel itself does not have to keep up with new WWW media formats. Netscape Communicator has interfaces to allow remote control. This package implements a JavaBean that allows remote control of Netscape communicator.

Authentication
The Minstrel Data Lock package is targeted at ensuring authenticated information on the one side and prevent accesses from unauthorized clients. Thus receivers can be sure that the information they receive comes from an authenticated source and broadcasters know that their channels are accessed by authorized receivers. More generally, this component ensures authenticated, unchanged information and authenticated communication partners.

Client Security Framework
Minstrel supports mobile code (pushlets). Since this is code that is downloaded from an external source to be executed at the receiver it must be authenticated and run inside an environment that allows the user to specify access permissions and protects the receiver from malicious code.

Receiver
The receiver is the interface that facilitates interaction between users and channels. It gets channel data from broadcasters, presents it to the user, and enables the user to interact with the system.

Software to be implemented

The following Minstrel packages are yet to be implemented:

Security

The security features of Minstrel comprise the following areas:

Encryption
Some channels will hold confidential data or users will have to pay for a channel. Encryption ensures that such requirements are met. Minstrel uses out-of-the-box standard techniques.

Basic Distribution Component
In a large-scale push system a dedicated transport system is necessary to make it scale and operational, i.e. take care of efficient network access in terms of decreasing network bandwidth consumption and increase availability and responsiveness. Minstrel models the transport system as Basic Distribution Components (BDCs) and their possible interaction patterns. A BDC is a generic component that acts as a broadcaster towards receivers and as a receiver towards broadcasters in order to achieve the transparency property. A BDC can exist in several configurations: repeater, cache, and proxy.

Development Resources

We have set up an distributed development environment, the Minstrel Developer's Package.

Workshops

At irregular intervals we make workshops on the new developments in the project. Visitors are welcome.

Why is it called Minstrel ?

The name Minstrel was inspired by 2 facts:

Copyright and Distribution Policy

This software will be issued under the GNU General Public License.



© 1997, 1998 Manfred Hauswirth
Last modified: $Date: 1999/07/12 12:32:13 $