next_inactive up previous


Intro to TapiocaStor

©2001 The TapiocaStor Group


Contents

1 What it is:

Tapioca is intended to be the first Open Source enterprise-class network backup program for Linux and other platforms of interest. It is being created by a team of programmers with years of experience in enterprise backup as a reliable alternative to costly commercial programs or to ad-hoc solutions using 'tar' or 'cpio'.

The name 'tapio' for the low level engine is a play on 'TAr' and 'cPIO'. As for why the name ``Tapioca'': Your backups and restores will go smooth as pudding (Tm). The SourceForge project page for this is at http://sourceforge.net/projects/tapioca/. This project is hosted by VA Linux's SourceForge (http://www.sourceforge.net/) service. This document was written using Xemacs and LaTeX on Red Hat 7.1 Linux.

2 Documentation:

Here's some documents to look at after you're finished with the overview. Note that all documents are currently *very* sketchy - they basically exist solely as a framework.

  1. Requirements document: requirements/Requirements.html
  2. Architecture manual: architecture/Main.html
  3. Implementation Overview Guide: implementation/ImpOverview.html
  4. RFC's and Misc. Design Docs: rfc/RFC.html
  5. Tapio Implementation Manual: TBD.
  6. Tapioca Implementation Manual: TBD.
  7. (note: there won't be any client implementation manual, because the protocals will be described in the Tapioca manual).

3 Overview:

TapiocaStor is a distributed network backup program. Please read the Overview Guide ( implementation/ImpOverview.html for the details. It consists of three major components:

  1. tapio - the backup and restore engine. This is a highly componentized set of 'black boxes' which are strung together in the appropriate order using 'glue' (which in turn uses various types of 'plumbing' to handle communications) in order to back up some system to some tape drive somewhere on the network. Sample component types are Sources, Tees, Funnels, and Sinks. More in the architecture document (complete with pictures!).
  2. tapioca - the tapio central authority. This is responsible for deciding what glue to use to chain together tapio components to do the desired backup and restore operations, handling storage management, and handling the central data store (a MySQL database as of the time of this writing).
  3. tapigui, tapiweb, tapicli: These communicate with tapioca via the tapicom protocol in order to give it the proper instructions for performing backup and restore.
Major features of TapiocaStor that differentiate it from any current Open Source solution are:

  1. Can back up any system on the network to any tape drive on the network (assuming that the appropriate tapio components are installed and the Plumbing services are running).
  2. All network communications can be encrypted and/or compressed as needed just by adding the appropriate components to the Pudding (the Pudding is the end result of tapioca using Glue on all of these components to run them with their plumbing going to the right places).
  3. End users can restore their own files in a secure manner without operator intervention (aside from possibly pushing in a tape) using an easy-to-use GUI.
  4. Controls all popular autoloaders and tape jukeboxes.
  5. Ability to multiplex multiple streams of data for incremental backups (or any other backup for that matter) so that the full bandwidth of the network or SAN can be used.
  6. Due to the flexible nature of Glue, which can run any component that's in the client's gluepot anywhere on the network, could eventually be used as the basis for an integrated system administration/software distribution system too.
Additional details will be in additional documents, listed here as they become available.

4 Credits

The inspiration for TapiocaStor came from RandyK, who said ``hey, why don't we write an open source backup program?''. This is why the Java classes are in package ``net.nimitz.*'' (note: Java package names generally begin with the domain name of the author in reverse order, in order to prevent name collisions with other packages).

The name ``Tapioca'' came from RJF, who also came up with the slogan ``Your backups and restores will go smooth as pudding.''

This document and the SourceForge project were put together by EGreen, who also is drawing all the pretty pictures for the architecture document.

The idea for the Glue and the Plumbing came from Peter Buschman, who mentioned it as one of the strengths of Bakbone (i.e., its ability to glue lots of components into various orders to handle all sorts of weird situations). Any weirdness is solely the responsibility of EGreen, whose warped mind came up with the whonky terminology such as ``Gluepot'' and ``Pudding''.

The notion of using Unix components, rather than CORBA components or COM components or one of those other newcomer component models, was inspired by the 'xbru' program that was/is part of BRU, which did its work by calling command-line Unix programs such as 'mt' and 'bru'. Using the Glue and Plumbing allows those calls to be on entirely different machines.

The use of C++ was suggested by RJF, who said he was tired of spaghetti-like ``C'' code.

The session management and ticketing model for tapicom was inspired by Kerberos.

The use of Java was suggested by EGreen after RJF shot down the notion of using Perl as the Glue (too easy to spaghetti-ize it, he said). Python was not considered due to intellectual property problems which will not be discussed here but which are related to prior employment activities on the part of the core team. Other languages were not considered to have a large enough user community for people to be able to easily contribute to the project.

About this document ...

Intro to TapiocaStor

This document was generated using the LaTeX2HTML translator Version 2K.1beta (1.47)

Copyright © 1993, 1994, 1995, 1996, Nikos Drakos, Computer Based Learning Unit, University of Leeds.
Copyright © 1997, 1998, 1999, Ross Moore, Mathematics Department, Macquarie University, Sydney.

The command line arguments were:
latex2html -local_icons -no_auto_link -no_subdir -split 0 -show_section_numbers Intro.tex

The translation was initiated by The Unknown Hacker on 2001-07-06


next_inactive up previous
The Unknown Hacker 2001-07-06