Previous section.
Systems Management: Backup Services API (XBSA)
Copyright © 1998 The Open Group
Introduction
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.
Objectives
The architecture used in defining
this Open Backup Services API addresses the following objectives.
With XBSA, applications may be created to provide these
functions:
-
Concurrent Services
A basic service to support both the backup/restoration
and the archive/retrieval of tailored sets of data
objects, including files, directories, and byte streams,
for many different applications and users operating
concurrently.
-
Object Searches
Facilities to support archive and backup object searches which
enhance an end-user's chances, effort, and/or time to
retrieve archived objects.
-
Scalability
The ability to accommodate a large volume of large data
objects for long-term storage as well as small sets of
data.
-
System Configurations
The ability to accommodate a wide spectrum of
systems and system configurations, including:
-
A single, standalone personal computer
-
A client-server computing environment
-
A widely distributed, heterogeneous (UNIX and non-UNIX) system consisting
of many clusters of workstations and main-frame
computers inter-connected through heterogeneous
networks using different protocols
-
Integrity
A high level of integrity, including:
-
The consistency and atomicity of multiple operations
-
The ability to shield the effect of one set of operations
from another set (transaction isolation)
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.
Terminology
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.
Overview
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.
Deployment
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.
Conformance
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.