Previous section.

Systems Management: Backup Services API (XBSA)
Copyright © 1998 The Open Group


This document specifies the Open Systems Backup Services Data Movement Application Programming Interface (XBSA), which defines an interface between applications or facilities needing data storage management for backup or archive purposes, and the underlying services which provide these functions.

The programming interface defined in this document focuses on data movement. It is intended that data management interfaces will be covered in a separate document in the future. First, this document describes an overall architecture to serve as a basis for a general discussion of the XBSA functions. Then, in the context of this architecture, it specifies an API consisting of calling interfaces, structures and return codes. Appendices provide a glossary, additional information for end users and vendors on the use of this Technical Standard, and a sample C language header file.

XBSA resolves the need to standardize an API between users and applications needing backup services, and the underlying services available on many platforms. For example, file system and database vendors must integrate their products with popular backup products. Without the interfaces provided in XBSA, these vendors must negotiate individually with the backup products; with XBSA, they can use a consistent interface to interact with a variety of backup products.


The architecture used in defining this Open Backup Services API addresses the following objectives. With XBSA, applications may be created to provide these functions:

The XBSA interfaces will support applications and services which meet the above objectives.

This API addresses portability issues across multiple backup products. It is not intended to address the interoperability of clients and backup servers across arbitrary networks; this is a responsibility of the underlying Backup Service product.


Fundamental terms necessary to understand the architecture used in this Technical Standard are shown below. Further definitions are described in the Glossary.

XBSA Client

Application-specific software which uses XBSA to request services from a Backup Service on behalf of a particular application. Typically an XBSA Client is tightly bound to a user application (such as a DBMS) or an operating system service (such as a file system) by existing in the address space of the application/service or being packaged with this function.

XBSA Manager

Management software which uses XBSA to manage the services provided by a Backup Service. Typically an XBSA Manager may manage the operation of a variety of Backup Service implementations from a variety of vendors. For full functionality, an XBSA Manager will require additional interfaces which will be defined in a future Open Backup Services Management API Technical Standard. In the interim, management functionality will be achieved by implementation-specific mechanisms.

XBSA Application

An XBSA Client or an XBSA Manager.

Backup Service

Software which carries out the functions provided in XBSA. Independently-written packages implementing the lower XBSA interfaces may be written by various vendors for a variety of platforms. These packages provide interfaces meeting this Technical standard which may be dynamically or statically bound to an XBSA Application.


The portability of backup applications and related administration tools can be significantly improved with the standardization of the interfaces between these packages and an underlying backup service. Especially, if these interfaces can be managed as a system-independent, vendor-independent and application-independent API, vendors can focus on the more important aspects of their packages.

The approach adopted in this Open Backup Services API is therefore to define a minimal, generic and extensible API that is able to adequately and efficiently support a wide range of backup applications and utilities - from a simple backup utility for a standalone personal computer to a high-function, high-performance, multi-server solution for a heterogeneous distributed computing environment - while allowing the utmost flexibility in implementation and customization to meet specific needs.

In its simplest form, XBSA provides an interface between XBSA Applications and Backup Service implementations, as shown in Simplified Architecture for XBSA . The actual boundary between a particular XBSA Client and the related application or service is implemented by the developer of the application or service package.

Figure: Simplified Architecture for XBSA

Simplified Architecture for XBSA 1 illustrates the data flow between the XBSA Application and the Backup Service. All operations are initiated by the XBSA Application.

This document defines the XBSA Data Movement API. It does not address the subject of a Management API for Backup Services.

Some of the parameter values used in XBSA calls are dependent on the specific Backup Service which is invoked. Consequently, while the XBSA calls and structures are generic in nature, an XBSA Application may need to determine the actual Backup Service being invoked in order to fully exploit all the features of the Backup Service.

Other aspects of a backup, archive, and restore (BAR) system, such as user interfaces, transfer protocols, media formats, and API(s) for specific environments are not covered by this Technical Standard. In the context of this Technical Standard, they are considered implementation options for a backup application or the underlying services.

In the same context, networking and remote support issues are not covered in this Technical Standard.


By default, an implementation of the XBSA Backup Service will provide an object library using a standard name of the form libxbsa.ext, where ext is replaced by an operating system specific extension.

The XBSA interfaces may be deployed in either of two ways. The first is as a source-level interface, with an XBSA Application statically linking to the XBSA object library. The second option, which is expected to be more common, is as a binary-level interface, with the XBSA Application being dynamically linked to an XBSA object library.

The second method allows the XBSA Application the flexibility to bind to different Backup Services at run-time. The precise mechanism by which this achieved is dependent on the environment in which the XBSA Application is running. If the operating system provides support for a search path for locating dynamic libraries, this mechanism may be used to support multiple implementations simultaneously present on the same system. If this, or a similar mechanism, is not available, the XBSA Application will only be able to access a single Backup Service implementation using the default object library name and dynamic linking. In this case, multiple implementations may still be supported by means of static linking.


An implementation claiming conformance to this Technical Standard must provide all the XBSA functions and data structures, as defined in Backup Services API Definitions and Type Definitions and Data Structures .

Future Directions

The following items might be considered for potential future work activities.
Why not acquire a nicely bound hard copy?
Click here to return to the publication details or order a copy of this publication.

Contents Next section Index