Introduction to Open Software Description

Note This technology is obsolete as of Windows Internet Explorer 7 and should not be used.

Open Software Description (OSD) is an XML vocabulary used to describe software components and their relationships to other components. The OSD vocabulary is a standard (open) way to describe software components, their versions, their underlying structures and their dependence on other components.

It is standard for books to have a table of contents. Think of OSD as the equivalent contents list for software components.

This article is an overview of the OSD vocabulary. It presents high-level information about the benefits and usage of OSD.

  • Key Terms and Concepts
  • Requirements
  • Benefits
  • Sample Uses
  • Software Update Channels
    • Automatic Update Notification
  • Related topics

Key Terms and Concepts

This section describes the fundamental terms and concepts associated with the OSD vocabulary.

  • Distribution Unit

    Web-bound software distribution units are packages consisting of a compressed cabinet file (CAB) that contains an information file (INF) and/or an OSD file, with or without a code component. The cabinet file is used primarily to reduce file size, which reduces the associated download time. The INF file provides installation instructions that Windows Internet Explorer uses to install and register software components.

    One or more distribution units might be needed to distribute a single component. Additional information about distribution units can be found in the About Distribution Units.

  • Extensible Markup Language (XML)

    XML is a language for describing and exchanging data on the Web. It provides a standard for defining markup tags and data structure so that data can be easily exchanged online. XML makes it possible to describe structured data, like software distribution packages, in a hierarchical or tree-like fashion. The flexible nature of XML enables developers to create their own markup.

    An XML vocabulary is defined by a specific Document Type Definition (DTD) file. Think of an XML vocabulary as the set of elements (words) and the rules for valid constructions of those elements (grammar) as defined by a particular DTD.

    OSD allows for the creation of custom extensions called namespaces. These extensions, defined by DTD files, allow for the definition of additional tags, elements, and attributes required for specific implementations.

    Additional information about XML is available in MSXML.


Microsoft Internet Explorer 3.0 and later provides Internet Component Download services for downloading, certificate checking, and installing software packages from the Internet and intranets. Support for OSD files began with Microsoft Internet Explorer 4.0.

For information about Internet Component Download distribution methods supported by different versions of Internet Explorer, see Choosing a Packaging and Distribution Method.


OSD provides a larger and more flexible vocabulary than INF files for describing Web-bound software distribution packages. When structure and dependencies can be clearly described, only those parts of the package that need to be changed will be downloaded. You can save users' time and bandwidth by not overwriting or duplicating package downloads.

  • Complex Dependencies

    Software components often require other components to run. OSD provides a way to specify many levels of dependency for Web-bound software components.

    The DEPENDENCY element of the OSD vocabulary specifies which files a software package needs to run. Dependencies are installed before their parent SOFTPKG component. If a component has multiple layers of dependencies, the components should be arranged in a hierarchical fashion to assure the deepest nodes will be installed first.

  • Java Classes and Applets

    Unlike INF files, OSD files support the inclusion of Java classes and applets in a distribution unit. Specifically, this is done with the JAVA and PACKAGE tags.

    When described by an OSD file and packaged in a distribution unit, Java class files and applets can be downloaded using Internet Explorer's Internet Component Download services. You can save users' time and bandwidth by not overwriting or duplicating Java downloads. Downloading Java applets makes your content accessible offline and saves server cycles.

  • International Languages

    The OSD vocabulary provides a way to ensure that Internet Explorer's Internet Component Download service only delivers the correct language version of a software distribution package to the user.

    International language support reduces complexity for the user. An OSD file can tell Internet Explorer's Internet Component Download service which LANGUAGE versions are available within the DEPENDENCY, IMPLEMENTATION, or SOFTPKG elements.

  • Operating System and Hardware Platforms

    Another way the OSD vocabulary reduces complexity for the user is by delivering only the software implementation the user needs. The OS and PROCESSOR elements are used to specify the operating system and hardware platforms a software component's IMPLEMENTATION requires.

Sample Uses

OSD files are used to describe the parts of a software package's structured hierarchy and to describe how the parts are dependent on each other. An OSD file can be compressed in a cabinet file as part of a distribution unit. The OSD vocabulary can be used to describe Java classes and applets, complex software dependencies, and platform and language requirements.

Examples of the OSD syntax for a variety of uses are presented in About OSD File Architecture.

Software Update Channels

Channel Definition Format (CDF) is an XML vocabulary for delivering Web content. It is used to describe the hierarchy of pages in a Web site, as well as a schedule recommended by the Web publisher for updating the content of the site. Web sites described by CDF files are referred to as Microsoft Active Channel sites.

Users subscribe to Active Channel sites by clicking a hyperlink on a Web page that downloads a CDF file. Subscribing enables users to view the channel's contents offline, if they choose, without the delays (or expense) associated with a modem connection. Users may also elect to receive automatic updates of the channel's contents.

When you include the OSD SOFTPKG element in a CDF file, a Software Update Channel is created.

Automatic Update Notification

Software update channels can be used to notify subscribed users about new versions of software that the user has already installed.


Choosing a Packaging and Distribution Method

Introduction to Internet Component Download

Introduction to Software Update Channels

Using INF Files

About OSD File Architecture

Microsoft Internet Component Download Reference

Open Software Description Element Reference

How to Package Components for Internet Distribution

Other Resources