CA2186408A1 - System and method for backing up and restoring groupware documents - Google Patents

System and method for backing up and restoring groupware documents

Info

Publication number
CA2186408A1
CA2186408A1 CA002186408A CA2186408A CA2186408A1 CA 2186408 A1 CA2186408 A1 CA 2186408A1 CA 002186408 A CA002186408 A CA 002186408A CA 2186408 A CA2186408 A CA 2186408A CA 2186408 A1 CA2186408 A1 CA 2186408A1
Authority
CA
Canada
Prior art keywords
document
database
groupware
server
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
CA002186408A
Other languages
French (fr)
Inventor
Debra Nakanishi Masada
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CA2186408A1 publication Critical patent/CA2186408A1/en
Abandoned legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments

Abstract

A system and method employing logic coupled to a groupware document server and a backup server for enabling back up and restore of a document stored in a document database on the groupware server. The logic is configured with means for restoring an existing document in the groupware document database and also for restoring a document in the database that is marked as being unopenable. The logic is further configured for either restoring a single existing document in the database or a plurality of documents.

Description

2 1 864~8 SYSTEM AND METHOD FOR BACIaNG UP
AND RESTORING GROUPWARE DOCUMENTS
1. Field of the Invention This invention relates generally to data managen1el1t svstems, al1d in particular.
to a metl10d and system for bacl~ing up and restoring data in a groupware environment.
2. Description of the Related Art The number of ~ays for communicating computer data has created a pletllora of data t}lat l1as inundated tllose ~11o try to manage it for business al1d academia.
Tlle ~videspread use of e-mail. computer bulletil1-boards~ and fax machines enable anyone l1aving a fax!modenl to send and receive vast amounts of data. Additionally, a growing use of multi-~nedia, such as CD-ROMS ~vit~1 both sound and inlage dataand otller means for inputting video information such as cameras witl1 computer communications adapters have increased tlle different types of data tllat IllUst be 1 5 managed.
Group~vare is a recently coined term intended to classify soft~vare that is desigl1ed to coordinate and manage such diverse types of data for multiple userscomn1unicating over a net~vorl~ Tlle ternl is still in its il1fancy, so tllere are a number of current definitions for group~are. Ho~ever~ one highly ap~roved prod~lct that has shaped and defined ~ U~.. II~ terminology iS Lotus Notes developed by Lotus Development Corp., a subsidiary of tlle IB~I Corporation. A ~videly accepted ~vorkable definition of groupware offered in vie~v of t~le capability of Lotus Notes is 2 ~ 86408 .
SA9950~8 given in the book, "I,ss~ltial ~ t/ScrY~r Sllr~ ", by R. Orfali, D. Harlcey, andJ. Edwards available fronl Van Nostral~d Reinllold, Ne~ Yorl~, N.Y., l 994. According to tllat definition, Il~lUU~)WdlC~ is soft~vare tllat supports tlle creation, flo~v, and traclcing of non-structured informatioll in direct support of collaborative group activity." T}le definition implies tl1at group~are is involved ill tlle managen1ent of botl1 information and activities. The inforn1ation that Group~are manages is termed "documents." ~ plurality of sucl1 docun1ents form a document database.
lt is useful to compare a group~vare document database to a relational database in order to appreciate llo~v a group~vare database is different. A relational database manages all data by requiring that it conform to a rigid str~lctured format. Forexample, the basic unit of management in an SQL relational database is a table. Tllus, all data m~lst fit to prescribed ro~vs and columns of tables. Each table has ro~vs and columns locatable by indices. Data contailled in a table may be externally identiQed at any time by referring to tllese indices. Such external idelltification aids tasl~s such as backup and restoration since it is al~ays clear llo~ to address tl1e data.
In contrast, group~are documents are made up of higllly unstructured data--including for example text, image, grapllics, faxes~ e-mail, and information from an electronic bulletin board. Group~vare documents may also incl~lde digital sound, icons, forn1ulas, and the information described as a "form" that defilles how data may be entered, vie~ved, and stored. Group~vare documents are not l-eq~lired to have external identifiers suc}l as names, or titles, because fle.~ibility of creation and use is encouraged by tlle lack of formalities. On tlle otller lland tlle lack of external identifiers and tlle various ~ays tllat data may be entered and stored creates difficulties in bacl~ing up and restorillg ~IUU~Wdl C: documents and tlle databases that store tllem.

SA99504-~3 A docurllent, in its ra~vest form, is a collection of diverse types of information.
Tile documellt is to ~IOU~J~Vdlt:~ what a table is to a SQL database, i.e. the basic unit of managen1ent. Group~are helps end users create document databases. It can movethese documel1ts via electronic mail and database replicas Group~vare includes tools tllat are needed to query, manage, and navigate tllrough document databases.
Documents are the currellcy of group~vare. Typically, group~vare launches tlle tools that create the document. For example if tl1e document contains an image, movie, or sound clip, tl1e ~I~U~ dlC ~ill find tlle data and launcll executable code that allo~vs the data to be vie~ved or ~leard.
Group~vare builds on at least five foundation tec~lnologies: multi-media, docunlent management, ~vorl~flo~, e-mail, conferencillg and schedulillg. Group~vare manages tllese techl1ologies to allo~v the end user to talce advantage of tlleir combined cayabilities. It is useful to explore at least one such tecl1l1ology to gain an insight into tl1e con1plexities of group~vare.
Worlcflo~1v is the technology of processing docun1ents. For example, a ~vorlc-order for a repair service may req~lire tl1at a docun1ent be accessed by telephone company personnel for entering customer il1formation and a description of the problem. Tl1e same docun1ent should thell be accessible to tl1e repair person for entering a diagnosis, to a job estimator for calculating tl1e cost of repairs, to t~le customer for approving tl1e ~vork, to the repair person for enteriilg their ~vork completion report, and again to the custolller agail1 for approving completion and indicating feedback. Furtller, tlle document should be accessible to quality control and managemellt personnel who oversee tlle project. Workflow technology for handling such a sequence is readily available but it is unreasonabl~ to expect all users, .
SA99504~3 il1cluding tlle customer, to adhere to a rigid format. Yet, all tlle data must be readily available and capable of beillg located quiclcly by any user for tlle system to be useful.
Anot~er tecllnology supported by ~IUUlU~Vdl~ is image technology. The new technologies of PCs, local area net~vorlcs, scanners, and optical dislis have allowed tlle automatiol1 of image storage as ~vell as tlle data-cel~tered traclcil1g systems t}lat locate stored in~ages. Image tecl1l1010gy supports economical online storage and display of images. Il1 sonle app]ications, t}le cost savings associated ~vitl1 reduced staff and faster online access to group~vare documents, i.e. seconds versus hours or even days, justifies t~le il1cren1el~tal cxpense for client!ser~rer systems. The authors of tlle "Essential Client!Ser rer Survival Guide", referenced above, esti~late it costs $257000 to fill a four-dra~ver paper file cabinet and $2,160 annually to nlaintain it . T}ley furt}ler estimate tllat about 3 percent of paper is eventually lost, ~ it}l an average cost of $120 to recover a paper docunlent It is t~lese costs tllat have ellcouraged t}le gro~vt}l of tlle electronic illlage industry and made ~;IUU~J~Vdlt~ doculnent nlanagement 50 important.
As ~vit~1 any data processing system it is ill1portant to be able to back up group~vare documents for l11aintenance and recovery. It is also valuable that the baclcup system support more tl1al1 one bacl~Jp version as well as deal ~vith different types of bacl~up media. Further, it is valuable to have a group~vare system that is capable of baclcing up and restoring one selected docunlent at a time. The prior art has attempted to provide baclc up of group~rare databases by usil1g file-level back up.
Unfortunately sucll so-called database level backup can not provide t}le capabilitv to back up and restore individual documents witl1 t}le databases. Since such documents do not l1ave external identifiers, the prior art does not provide a means to back tllem up. Thus, tllere is a clear need in t}le art to provide a tool that ~rould support tlle 2 1 864~8 capability to back ~lp and l-estore an individual doam~ent wit~lin a database wllile also providing t}le capability to back up tlle elltire database.
Tile Ileed to replicate data in a multi-~lser database arc~litecture by movementof data among tlle users poses a unique challenge to a backup f~mction ill such an architecture. In this regard, when a doaument in a Notes database is deleted, it is marl~ed as a "deletion stub", i.e. it is not actually p~lrged from t~le database but ratiler marlced to be deleted at sonle later til~le. Tlle presence of a deletion stub communicates to t~le replic~tion process that a database llas a deletion tllat must be replicated to ot~er databases tllat exist on otller servers. If a doaument is accidentally deleted from a database and replicatioll occurs before tl1e document is restored, tlle restoration of a database-level baclcup copy is not sufficient ~itllout manual inter~ention. The reason for t~lis is tllat all the data, including any dates/times, within tlle res~ored database reflect values tllat existed ~ itl~ tlle database at the time tlle entire database ~vas baclced up. Hence, the erroneo~ls replicated deletion ~villeventually be replicated back to the restored database, in effect nullifyil1g the restored data. Tllus, tl~ere is a clear need in the art to provide a way to restore a doculnent that is accidentally deleted fronl a database to prevent replication type errors.
Moreover, it ~ould be an advance to provide tl1e general capability of beil1g able to restore group-~are doaun~ents tllat cannot be opened for al1y reason.
Baclcing up an entire database rl1ay be required in certain circumstances;
however, at tiI~les it is only necessary to back up tllat wl1ich has changed since tlle last back up operation. For e~ample, in a database tllat is not ofteIl updated it would be wastef~ll to back up an entire database wllen updating a fe~v documents in the database ~vould suffice. Thus, tllere is a clear need ill the art to provide a system .
S~995048 having incremental back up capability and also having tlle ability to provide the above referenced ser~ices to solve tlle above-described problems.
SUMMARY OF THE INVENTION
To overcome tlle limitations in tl1e prior art described above, and to overcome other limitations that will beconle apparent upon readillg and ullderstanding tllis application, this invention pro~ides a met}lod alld systenl for baclcing up and restoring group~are documellts. This invention enables back up al1d restoration of at least one group-vare document stored in a group~are database on a group~vare document server. This invention is capable of restoring an existillg document in a ~;IUUIJ~VdlC~
document database. Tllis il1vel1tion is also capable of incrementally forming a baclc up of t}1e group~vare database to tlle baclcup server in order to back up only t}lose documents ill the database tllat llave cllanged since the most recent baclcup operation.
Furtller, t}lis illvention is capable of restoring a plurality of existing documents belonging to tlle group document database on the ~IUUII~VdlC server, and also ofrestoring a document in t~le database t~lat is lilarl<ed as beillg opened by tlle group~vare docun~ent server.
In a preferred embodinlent this invention comprises baclc~lp and restoration logic in tlle fornl of software that is loaded illtO memory coupled to t}le ~IUUIJ-~d-t:
document server and t}1e baclcup server. In another embodiment, tlle logic is recorded on a recording n1ediun1 for executing a metllod according to the invention.

BRIEF DESCRIF~TION OF THE DR~WINGS
Referring no~v to tlle dra~vings in ~llicll lil~e referel~ce nurtlbers representcorresponding parts througllout:
Fig. I is a block diagram of a group~rare environment employing this invention;
Fig. 2 is a block diagratn of back up and restore logic of tllis invention sho~vn in an architectural relationship ~vith a group~vare docu~llel1t ser~er operating in the group~are environment sllo-~n in Fig. l;
Fig. 3 is a block diagram of modules of the logic of this illvention depicted inFig. 2;
Fig. 4 is an example of a ~;IUULlWdl~ client's vie~ of group~vare documents available in a group~are document database stored il1 tlle group~vare document server of Fig. 2;
Fig. 5 is an e~ample of an alternative vie~ of the same groupware documents vie~ved in Fig. 4;
Fig. 6 is an example of a client creation of a docilment tllat is to be stored in tlle group~vare documellt database;
Fig. 7 is an example of a n~ultitlledia docun1e~1t existillg ill t~le groupware document database;
Fig. 8A is an example of a client creation of the equivalent of an electronic mail (e-mail) document that is to be stored ill the ~IU~ 'dlC~ document database;
Fig. 8B is an example of a client creation of a e-mail document tllat is a replyto t~le e-mail docun1ent of Fig. 8A;
Fig. 9A is a data structure created by tlle logic of this invention to enable tlle operation of tllis il1vention;

21 864~8 SA9950~
Fig. 9B is allother data str~tcture used by logic of tllis illvelltion to manage t]le operation of tllis invention;
Fig. 9C is still anotller data structure ~Ised by tlle logic of tl~is invention to manage t~le operatioll of this iIlventioll;
Figs. 10, Il, 12, 13, 14. 15, 16, 17, 18,and 19areeachfio~vchartsshowing tlle operatiollal sequence of tlle metllod of tllis invention carried out ill tlle group~rare environment of Fig. I; and Fig. 20 is an article of manufacture, such as pre-recorded floppy disk, or othersimilar computer p~-ogranT product, for use in tlle ~ U~Wdl~ environment of Fig. I
~ith progranl means recorded thereon for directing tlle data processing system to fadlitate t~le practice of tlle met~lod of this inventioll as sllo~v~ l flo~v cllarts in Figs.
10-19.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
This invention is described in a preferred embodiment in tlle following dra~vingfigures. In tllese figures, a lilce number sho~l in various figures represent tlle same or similar elelllents. Wllile tllis invelltion is described in terms of the best mode for achieving specific objectives, it v~rill be appreciated by tllose slcilled in the art that variations may be accomplished in vie~ of tllese teac~lings ~itllout deviating from tlle spirit or scope of the invention. In particular, certain aspects of t~lis inventioll are described as operatiIlg in terms of con~puter soft~vare in computer memory, but tllis invention may also be embodied in whole or in part in application spedfic integrated i~cuitr~(ASlC)~vonesldlled;l~tl~ecomputerartsiD~ ~o~tl~et~a~llingsherei~

2 1 86~08 .

The temls "group~are ser~er" and "grollp~vare server logic" are used t~lrougllout t~lis description to denote server logic that may reside ~itllill a group~vare application or product. Many group~vare systems llave client and server components and aessto database contents is provided tl~rough the client code, .~itll tlle active cooperation of logic in tlle server con1ponent.
In tllis description, a "server" denotes a node at which a systenl resource is managed. Tlle ser rer provides to systel~l users tl~e service of access to tlle resource.
A "cli~nt" is a local process at a user t~lat acts as all agent of a server v}len the user requires access to a resource managed by the server.
Systern Architecture Fig. I sho-vs a pref~rred ~IUU~.~dlC environment 21 for the operation of this invention. A baclcup server 22 is connected by a communications net~vork 23 to client ~orlcstations (clients) 34, 42, and 48, a ~lVU~\~'dlc~ doaument server 40, smart peripherals 28, a file server 56, a video server 59 and a router 54 for communicating ~itll otller net~orlcs. The smart peripllerals mav send electl-onic mail (e-n1ail) messages to tlle clients and tlle server to il~dicate tllat events llave occurred, such as prillt jobs:tllat are completed or errors tllat llave occurred. Sucll data may eventually become data stored in a database on a server or client. Tlle baclcup server has a storage unit 24 and mountable media 25 for storing bac.l~up copies 26 of documents of a group ~rare doalmellt database 38 that is itself stored oll tlle groupware document server storage unit 36. The different Icinds of storage media can comprise a hierarchy of baclcup storage. T~le bacl~up storage ~mit l~lay be, for e~ample, a hard disk drive witll magnetic or optical storage capabilitv. Cliellts 34, 42, and 48 each have a 2 1 864~8 .

respective storage unit 30, 4~, and 50 on ~vhich private databases may be l~ept and accordingly tl~e logic of this invention enables bacl~up copies of these documents to be stored on storage unit 24 of baclcup server 22 A file server 56 is also sho ~l as part of tlle group~Yare en~irollment for tlle sal~e of completelless and to contrast tlle v.~ell-lcno-vn role of a file server vith tlle relatively ne~ coneept of a group~are document server A group~are ellvironment does not require a file server, but a typical business or academie ~IOUI~Wdl~ environment ~vould likely illclude one Tlle file server's role is to malce aE)plications stored on storage unit 58, sueh as spreadslleets and ~ordproeessors7 available to clients on tile net~vorlc and to store user files created in association ~vith sucll applications A user may in fact use tlle file server as a cliellt to tlle group~vare doculnent server for tlle purposes of creating, alld vie~ lg doeuments in t~le group~vare database Recall tllat tlle documents in the group-~are database are referred to as "unstructured" for having no rigid format that t~leir data must adllere to A group~are document Illay be tlloug~l~ of as a container of Illallifold types of inforlllation Group~vare data used to construct documents may inelude text, illlage, grap~lics, faxes, e-mail, and general multi-media including Illusic Tllus, tlle clients in tlle group~vare environment depicted in Fig I inllerently include an assortlllent of vell-lcno~vn computer multi-nledia equipment such as video equipment. digital sound creation equipment7 CD-E~OM, scanners, fax machines, modems, and other commul~ication equipment including tllose devices that are not presently ill e~istence but will serve similar purposes to tllose described above For tlle purposes of this specification, documents are broadly defined to encompass any record-level piece of data ~ithill a ~IOU~ 'dlt~ database, including 21 8640~
SA99504~
forms, icons, formulas, and data fro~n e-mail includillg tllat from ~Isers and machines, sucll as tlle snlart peripllerals discussed above Documents mav contain many data typ~s, incl~ldillg text, graphics, image, video, and audio Documellts can be Illade up of data ~llich is actually stored partially in tlle document itself and partially in otller documents in the same database or in differellt databases The illventor ~las recognized tllat it is cxpellsive to copv each entire group~are database~onto t~le bacl~up server's storage Ul~it Accordingly, slle l~as provided tlle logic of tllis invention, ~hich ellables tlle file server to intel-act ~ith the baclcup server to provide services tllat make such duplication unllecessary Ho~vever, slle has also recognized that such duplication may, in certain circumstances, be appropriate Th~ls, tlle logic of tlle invention enables tlle back~lp server to provide tlle above-referenced services ~llile also llaving the ability to restore an entire group~vare database Tlle logic is sllo~n as being i~ ed in t~le Itlemory of the groupware server but could be implemented at any appropriate point ill tlle svstelll of ~igure 1, including the backup server Altlloug}l, it is preferred to provide the logic in tlle forlll of modules on a server ~orl~station, one slcilled in the art ~ill recognize tllat any ~orl<station having the ability to communicate on tlle net~ork can be configured ~Vitll the logic of tlle invelltion to op~rate in conjullction vith the bacl~up ser~er Thus, for example7 client station 42 could serve t~le same fullctioll as server 40 for carrying out tlle operation of tlle invention e~en though it Illig~lt be some~vhat more encumbered tllan the server ill terms of performance because it ~vo~lld have to access t~le group~vare document database over tlle net~vork Referring to ~ig 2, tlle group~vare document server 40 includes a central processor 68 tllat operates as the central control unit of the server hard~vare as vell 2~864a8 .

as tl1e main engil1e for rulmil1g soft~vare, including backup and restore logic 66 which embodies tl1e presel1t il1vel1tion Tlle processor is in communication ~vitl input/o~ltput circuitry 62 to el1able commul1ications ~vitl1 valious input/output devices such as displays, keyboards, and pointing devices Additionally, tlle processor is in communicatiol1s witll net~ork commullications circuitry 70 for enabling commul1icatiol1s on net~ork 23 (Fig l ), ~hicll may be a local area net~vork (LAN) of a ~vell-lcno~vn topology such as a tol~ell-passillg ring or etllernet bus Main memory 64, ~vllich may be ~ell-lcl1o~vn random access memory or read only n1emory, loads soft~vare that supports this invention Tl1e soft~are is typically loaded into main mell1ory from mass storage 36 ~vhen tlle server is po~vered up The mass storage 36 may be a ~vell-l~no~11 direct access storage device, such as a l1ard disk drive Communications bet~veen nlain n1emory 64 and mass storage unit 36 is acllieved tllrougll data bus 73 I,ogic of this invention Referring to ~igs 2 and 3, the baclcup and restore logic 66 is embodied as a computer progranl llaving four modules and is loaded into main memory 64 In thisdescriptiol1, tlle four modules are treated separately in order to distinctly describe their respective functions and characteristics Ho~vever, altlloug}l tl1e invention supports four distil1ct patlls of logic that provide distil1ct functions, the preferred embodinlent of the il1~ention is in computer-exealtable code tllat is not differentiated into four separate, executable files The logic embodying tl1e invention operates ul1der control of an operating systeln 67, vllicl1 n1ay be for exan1ple IBM's OS/2, Microsoft's Windo~vs, or tlle well-lcno~n UNIX systen1 Groupware docunlent server logic 63 .

provides commands and instruction sets tllat col~trol access to documents in tlle database 38 (Fig l ) Tlle logic 66 oon1municates directly ~vitll tlle logic 63 The logic 66 includes an "incremental bacl~up" module 727 an "e~isting document restore"
module 74~ a "group~are database restore module" 76, and an "unopenable databaserestore module" 78 T~le module 72 gives the baclcup server tl1e capability to scan tllrougll a particular database in tlle group~vare en~ironment and baclcs up onlv tllose documents vllicll are new or have been modified since the last incremental back up Additionally, adjustlllents are nlade to reflect deletions of documents from t~le database since t~le last back up operation In tl1e instance ~vhen a database has been created after the last back up operation all of the documents il~ tlle database are baclced up The module 74 supports back up and restoration of a particular document selected by a llser The invention uses the ~ IUU~ dlc~ document vie~ving facility as a ~vay of retrieving a docunlent into memory so tllat its internal idelltification can be discovered Tllis capability is lleeded in a group~vare environnlent because group~vare documents often llave no required extemal identifier, such as a name or title that each doc lment m~tst llave and t~erefore prior to tllis illvention tlle user had no convenient metllod to back up a particular document because he/she ~as unable to identify it Tlle module 76 enables the baclcup server to restore an entire database back to the level of t~le database at a particular point in tin~e Tlle l~lodule is capable of restoring the entire database according to either of t~vo embodiments In a firstembodill1ent, tlle server is el1abled to restore an entire database by merging restored documents ~ith a previously restored database T~lis first embodiment ~vorl~s in 21 86~08 .

conjunction ~vith module 74 to restore tlle database follo~villg tlle docunlent level restore. In a second en1bodiment, tlle entire database is restored by the modulerebuilding a copy of tlle database from the most current bacl~up copies of documents that reside on t~le baclcup server.
The module 78 provides tlle capability for restorillg a document tllat cannot be opened. For e~ample, solne documents are marl<ed to indicate tllat they are to be deleted. Generally, once these documents are marl<ed, tlley are inaccessible to other soft~are applicatiol1s. Ho~ever, tllere may be a reasoll to open such a file for backllp, i.e., tlle file ~as erroneously marl~ed for deletioll. Prior to tllis illvention there ~as no convenient ~vay for a user to create a backup copy of a file erroneously marl<ed for deletion. Tilis invention allo~vs tlle ~tser to restore a docunlent tllat cannot be opened or updated directly.
Although tlle logic of this invention is adaptable to an~ group~vare document server software and any baclcup server soft~vare7 the inventor has recogni~ed tllat tlle logic of this invention is particularlY best for a group~vare docunlent server tllat operates under control of t~le ~IUU~Vdl~ document server soft~are Icno~vn as Lotus Notes (Notes) available froltl Lotus Development Corporatiol1 and a baclcup server operating under tile oontrol of ~dstar Distributed Storage Manager (ADSM) software available fronl IBM (~orporation.
Tlle logic of the invention is best implenlented for communicating ~vith the backup server soft~vare and the ~luu~uwalt: document server software through an Application Plu~ g Interface (APr). An API is a set of software functiolls that a ~Iser can :use to access services and communicate Witl1 otller soft~vare. For example an operatiilg systetn typically offers an API that includes basic reading and ~vriting of 2 1 g6~08 SA99504~
files. Lotus Notes, the preferred group~vare document server software7 offers over 100 functions through APl's tllat are p~lblicly available to other programs and are also used by No~es itself. Basic functions are offered tllroug~l APl's tllat are part of tile ADSM
bacl~up server logic also. The functions include being able to send al1d receive data to and from t~le ADSM bacl~up server. Tlle logic of tllis illventiol1 essentially queries the APl's al1d then figuratively glues the data from tlle t~vo sets of APl's togetller.
Tlle logic of this invention calls the ~;IUU~U~'dlC~ document selver logic in order to scan t~lrough tlle documents database. In t~le preferred embodiment tlle group~vare document server lûgic is Lotus Notes. In this case tlle il1vel1tion's logic calls a Notes API ful1ctiol1 called NSFSearch to scan throug~l tlle database. For each document it finds, it calls a callback routine tllat receives inforrllation froln tlle NFSSearch API.
Some of the information obtained by the callbacl~ routi~le is stored in a data structure tllat ~vill be disc~lssed below ~ith reference to Fig. 9A. Tllis data structure represents a datastream t~lat is sent to tlle bacl~up server.
Anot~ler Notes API function, NSFNoteGetlnfo7 is called to allo~v tlle logic of this il1vention to get remaining data about a particular document that is ullavailable from NFSSearch. NSFNoteGetlnfo must be called for eacll piece of data desired for a document because the API does not pass a complete data structure filled Witl1 data and tllerefore data is obtained on tllis piece-n1eal basis.
2û The data ~itllil1 a Notes document is referred to as al1 "item." T~lus, in a preferred environment, documents are divisible into itel~1s. For e~ample, a doc lment tllat represents a chapter of a book rl1igl1t be comprised of the follo~ing iterl1s: ( I ) a cllapter title; (2) a body of te~t; (3) a graphic illustration; (4) a statistics table; and (5) a sublleading.

21 ~6qO8 Ti~e logic of tilis invention recognizes and stores el10ugil informatiol1 to rebuild eacll itenl tllat mal~es up a document in order to restore and back up documents.
Tl1erefore, tl1e logic is enabled to build a data structure for the docunlent itself and including data fields dedicated to each iten1 making up tile document. Information about these iten1s is obtained fronl the API NSFlten1Info. Additionally, information regarding tlle storage location or database path of each doculllent is combil1ed ~vitll il1formation obtained from that API to create a data object for maintaining dataintegrity of specified documents by enabling ti~e back up and restore operation.
Notes also has a special type of item, referred to as aIl "object." A ~,IUUI~W~
object includes composite data tllat either defines a specialty functioll, lil~e an attached file, or is displayed to tlle user in a format determined by another apl~lication. An example is an attached file, ~hich appears in a document as an icon.
wilell tile icon is illvolced tllrough a ~ell~ lo~n double clicl~ing of a mouse button options are given to a user (usually through a dialog bo~) to disconnect the file. Such a function migllt be i1andy for attacl1illg a big file to a ~llessage so tllat tlle receiver can read tlle Illessage, detacll tlle file, I<eep it tlle file, and discard tlle message. Anotller example is a Windo~v's OLE (object linl~ing and embedding) object.
The Lotus Notes groupware docurnent server logic identifies documents, referred to as "notes", by various internal IDs. A single note will have a universal note ID (UNID), an originator note ID, and a replication note ID, among otllers. Lotus Notes Iceeps tilese for its o~n purposes but tlley must be retained and l~ept intact, generally, by the logic of tllis invention so tllat tlle doculnent cal1 be restored accurately. Additionally, the invelltor of this il1vention has critically recoglli~ed that .
SA99504~
these internal IDs7 and in particular tl~e UNID, Illay be used to identify documents for tl~e purposes of back up and restore so tllat tl1e problem of not }laving external identifiers for documents is largely circumYented.
Additionally~ tlle logic of tllis invention is enabled to send a data stream containing a data field representing tlle entire document database. Table I is apsuedocode representation of tlle preferred embodiment of a portion of tlle logic of this invention tllat creates t}le data structures tllat are sent to the bacl~up ser~er and used for t}le restore and baclc up of document data. Tllese data structures are used to build docunlent data objects that are manipulated bv tlle invelltion to back up tlle group~vare document database and restore documents of tlle group~ are document database. T}le table is explained ill terms of tlle data structure ~itll reference to Figs.
9A and 9B below. For example, the structure InNoteDbHdr (sho~vn in the data stream of Fig. 9B and cl~eated by the logic of t~lis il1vention7 as illustrated in Table l belo~v) is a byte stream of data tllat can be parsed vith tlle logic of tllis invention but is otller~vise unintelligible.
The table is further understal1dable for the purposes of practicing tllis invention ~vitll referellce to tlle operation of tlle invention described witll reference to the flo~v diagran1s, Figs. 10-19. The psuedocode is ~vritten for execution by a "C"
language compiler and it is envisioned tllat one sl~illed in tlle art will have familiarity ~Vit}l the ~vell-kno~n "C language and also ho~v to program APl's including those presented ~.itl1 Lotus Notes and ADSM "for operation of t~le preferred embodiment of the invention.

2~ 86408 S~99504'c3 ~able I
#i~ lcf I I_l,Nr~RMS_ #~cfille _l I_LNrARMS_ #dcfille fl~:M 13Ul'rER_S17~E 32768 #~lefillc Bl('._13Ul l l~ Sli7E o5536 #~IRIlr NO~I`I,S 0l3JI,t~r M},M ~1i7,1, ()S000 yi~r~cr strllct S_IIlNol~l I(lr /* I)oalrllellt i Ica~lcr */
{

illîl6 s(rll~tSz; /* Sizr of slrllcttlr~ ldillg ~ foE3~1ff~/
illtl~) strll~Vcrs; /# Str~ tllrr ~crsion*/
D~311) ; /* Notes da~abasc id*/
NOTEID ; /* Note id Witllill a d})*/
OrD ; /* Notcs Oll) origillat~r id*/
WORD IlClass; /* No~cs "note" ciass series of flags - llcl~*/
WORD t)reV3rriv; /* Not~s l~ri~ ges - i)rr Nol~s vers `3 0~/
WORD Nrlags; /* I`lag~ for llot~ g~leric nags - se~trity~/
TIMI:O/~ lastat~ Datcltlllle of last a~cess of llot~
cllallges ~cre accessed*/
} IIINo~cll~lr;
~Yi''`dCl strll~t S IllNotei~bEldr (datai~ase llcadcr~
{

il~tl6 strllc~Sz; /* Size of s~rll-~t~lrc, in-~]ll(iillg (~blllfol31lff $/
lG s~ructVers; /~ S~mct((r~ version */
illtl6 d~ rll~f(>l.(~ db lleal~cr info lr~gtll ~/
'rlMiil~ )1 I irBackll~il`l ); /* dat~/time Or l~a( kll~ sed for l,~er scarcll '/
rilar (~ rlr~folNSl'_lNl`O_SlZE+Il; /* dala}~ascl~(~a~lt~rillfo ~/
DURl:l'l lt'~lNl'O; /* Re~licatioll illfo */
} IIlNote~ lr;
ty~e(~trstr(l(~t S IIINotcl~el~ lr 21 864a8 {
il~tl6 str~ tSz; /~ Sizc of strueturc~/
intl6 str~ tV~rs; /~ Str~let~lre~ersio c~lar l~lag~ IllagiC mll~ll)t~r~/
5WORI~ Itelllllags; l~ Item flags~/
I~WORI) Valllc~Lellgtll; /~ L~ gtl- L)f Itelll ~1lar string tl:at foll~ rs~/
WORD Na~ l.c~ngtl~ Leng~l of It~lll rlame~/
llillt8 res~r~cd; /~ ullllscd ngl~t 1~0 V ~/
Uillt8 Ldatarlags; /~ Val~les listc~Ld bclo~
DWOI~D IlOl~jSize; /~ size of ol)jeet tllat g~c~s witl- itelll ol)jee~/
WORI) IlOI-j( lass; /~ Notes o~jee~ elas9~/
WORI) IlOI-jrriv; /~ Notes obje~ ri~ilc~es~/
ellar ~ata~ Item llallle all~t ~allle*/
II~Notc~l~mil~r;
/~ #Liefil~ M_III)R sl7.r. 23 ill bytes ~OIl't ill~ e t-'le ~la:aLl] 1/
#L~cfille mM_lll)R SlZi sizcof(lllNotcltemlldr) ~ doll't i~lelud data ~/
/~ v.al~c~s for datal`lags ill lllNotcsltellllldr. Tllis fiLICI is use~ to tcll tllc i~rogranl~l~rr ac~otlt al~y ~i~c~eial inforlllatioll lle sllo~lld i~lO~V about tlle edata stream tllat follo~rs tclis lleaL~cr.~/
#dcfil~cDl NOTI`S OBJECT (llill~8)(0~0001) /~Tlli9datasîreaml~asa~ tsobjeet ~/
#e~lL~if/~ _ll LNi'ARMS_ ~/
Table I is best understood viith reference to the description of t}~e data stmctures created by t~le logic of tl~is invention and vith reference to the description of flo~ cllarts~ botll descriptions in this specification appearing belo~v Data Strue~llr~c Fig 9A is an exarr~ple of a document data object Illade of a series of data structures used by logic sho~n in Fig 2 to manage t~le operation of tllis invention 21 86~0~
.
SA99504~
depicted in tlle following flo~v chart diagrams described belo~r The structure "InNotelldr" 101 contains descriptive data pertinent to the document itself Ttlecontents of tlle descriptive data appear in Table 1, in the section enclosed in brackets follo~ving "typedef struct S_lnNoteHdr" and before "InNoteHdr;" The comn1ents for each executable line of pseudocode describe tllat ~ icl1 tlle field contains Tlle comments are included bet~veen delimiters tllat appear as 'I/*'' and "*~ For example~
the executable line "int l 6 structSz" contains data identifying tlle "Size of structure, incl~lding dblnfoBufP', ~vllerein dblnfoBuff refers to the size of tlle database, and is defined in documentation available Vitll the group~vare document server A piece of data ~Vitl.ill tlle structure "InNoteHdr" 101 is tlle part built by the executable code statement "TIMEDATE lastacc" (Table I ) ~hich includes the "Date/time of last access of the note " By l<eeping up vith tlle date and time of the last access tlle back up of tlle data may talce place witl~out interfering vitll a replication service tl~at may be used on tl~e group~are service ~eplication maV be used, for example, to allo~v one group-vare server to send data to another group~vare server A disadval1tage of database-level bacl~up services of tt e prior art is tllat ttlev do not refiect tl~e most recent time that a document tlas beel~ restored and replication is triggered by such date!time information Thus, replication of restored data may }lOt occur because of tllis out-of-sync condition The "InNoteltemHdr" structure 103 contaills data tllat contaills descriptive data about al1 iten1 that may malie up tlle documellt Datafield 105 contains ttle "ItemName" vllidl is descriptive data that contaills an identifyillg name of tlle item Datafield 107 contains the "ItemValue" which is the actual data itself tllat Illal~es Ip tlle item nanled in tlle "ItemName" field Datafield 109 is also a InNoteltem}ldr 2186~0~
SA99504:~
structure to indicate that tllere are typically several itellls il1 a document alld each itelll must be identified by such a datafield. similarly, datafields 111 and 113respectively contain tlle corresponding datafield of ItenlName and ItemValue.
Tl~e "InNoteltemHdr" structure 103 is constructed by a portion of tlle code s~own in Table 1. Referring to Table I above, with reference to tlle section of tl~e psuedocode enclosed in braclcets following "typedef struct S_lnNoteltemHdr" and before "InNoteltemHdr;" tlle comments for eac~l executable lil~e describe tllat wl~ich tl~e field contains. As described above, tlle comments are illcluded bet~veell tlle delimiters "/~" and "~/'. For example, tlle executable line "intl 6 structVers" contains data identifying t~le "Structure Version".
An almost identical data stream of t~le type sho~n in E~ig. 9A is sho~vn in rig.9B, ~herein fields 115, 117, 119, and 121 are identical in type to those described v.~itll reference to fields 101, 103, 105, and 107 respectively. Tlle data stream in Fig.
9B is different fronl tlle structure of Figure 9A because of tlle addition of a "Notes Object" field w~licll contains dyllamic linl<ing information ~llich is useful for file attacllment, as described above.
Fig. 9C sho~s a data streanl containing only field 125 containing "InNotedbll~r" ~vhicll is descriptive data about t~le database of documents itself. The InNotedblldr structure is constructed by a portioll of tlle code sho~vn in Table 1.
Referring to Table I above, witl1 reference to t~le section of tl~e psuedocode enclosed in bracliets following "tvpedef struct S_lnNoteDbHdr" and before "InNotedblldr;" tlle comments for each executable line describe tllat ~llicll t~le field contaills. For example, t~e executable line "intl6 dblldrlnfoLen" contains data identifying thedatabase header inforination field lengt~l ~ 2 1 86408 A part of field "InNotedblldr" is built by the code "TIMEDATE
dbHdrBackupTD". This part includes tlle "date/time of back up" and is used for alater searcll througll t~le database. Use of tllis value allows the process to distinguisll whicl~ documents ill tlle database llave beel1 cllal1ged or are new since tlle last 5 incremental back up.
Up.V.~ Doel-m~nt D~t~t~ F.Y~n~le Figs. 4-8A alld 8B provide an e~Y~ample of a ~IUUIU~VdlC: document database tllat includes a plllrality of documents. The eYan1ples are sllo~vll for tlle purpose of teaching ho~ tlle system of tllis invention including tlle logic rl10dules referel1ced above function to maintain data il1tegrity of iI1dividual documents stored in a docunlent database. Tllus. the eYamples are not limitations of tl~is invention. It will be apparent to tllose slcilled in the art tllat tlle invention is capable of baclcing up any type of document stored in a ~IUUIUWdlC: database.
Fig. 4 sho~vs a hypotlletical user's vie~v of documents in tlle group~are database.
Tlle user may be logged-on at any client in the l1etworl~ 23. Assume, the user is part of a hypotlletical university that teaches students careers related to film. Viewport or windo~v 60 appears on a display (llOt sllowl1) on the client and contains a title bar 79 entitled "GROUPWARE DOCUMENTS." The title bar also contains information tllat c~1al1ges to illdicate how tl~e iIlformation is presel1ted ol1 tlle client's vie~vport.
lll this exatllple, tlle information is arranged as "Courses: By Course." In otller ~vords t~le datal>ase primarily contains documents dealillg witl1 college courses and this particular presentation-vie~v sho~vs tlle documents arranged sequentially by course number. The documents are arranged in a hierarchial presentation with certain documents being presented il1 a subservient fasllion to "main documents." In t~lis 2 1 86~08 .

example, each course description is t~le main document and certain documents pertainillg~to tlle same course are considered subservient to it. A short narrati~e title describillg a course represents the course description document. Double cliclcing on t~le title brings up a presentation of more information describillg the course. For example, a documellt contaiIling data t~lat contains student information, referred to as "Student Roster, (by) T. Hobbes" is presented one-hierarchy level belo-~v the course description entitled "From Cats to Cat~voman: A revie~r of tlle impact of felines on film."
In tllis example tlle client l-as used tlle "Action bar" tool 80 to select a presentation or vieiv by selecting tlle "Vie~t' Action. Tlle particulars of "~lo-~' t~le data is arranged by tlle ~I~U~'dl~ server logic is not in1portallt to the teaching of tilis invention. Ho~ever, since the documents may be arranged in a variety of ~vays ~itllin t~e database and contain no required external identifier, the comple.xity of backing up and/or restoring documents sllould be a~parent to tllose sl~illed in tlle art. For tl~e saloe of understanding t~le invention, tlle examples sho~n are based on t~le preferred group~are document server software Lotus Notcs.
The selection of a particular vie~v option has allowed t}le client to arrange tlle documents by descending course number, or in this example. ''Flm-503'', "Flm-500"7 "Flm-103". "Flm-102, and "Flm-101". The title of t~le course Flm-503 has been discussed and tlle titles of the others are in respective order, "Forum Discussion -Moral Issues of Fillll'', "Big Buclcs from Films", "Big Tllrills from Films", and "Fundamental of Films." Each has a professor wllo is listed in the view, and in respective order (including Flm-503) are, "C. Hobbyss", "D. Wingright", "S. Spendbigr (Flm 103&102)", and "H. Wood."

.
SA99504~
The documents available in tlle database for Flm-503 furt~ler include "Multimedia report requirements" by graduate assistal~t "T. Hobbes" which describes, in tl1is hypothetical example, ho~v tlle students are to prepare tileir reports in m~lltimedia format. All icon 81 that appears to be a cat's face in vie~vport 60 is ~Ised to open a document containing a sample report nlade by tlle assistant, T. Hobbes.
Tllis example of a multinledia document t~lat is launched by an icon is described belo~v in more detail Vitll reference to Fig. 7. Each student's report is included in the database, from W~liCIl it can be ascertained that student, "B. Spu1l1<y" has submitted his "Mid-term" report and "Final" report v.~hile t~le other students, "B. Sassy" and "B.
Cllritllmytl-" llave not yet submitted tlleir final versions.
Referrillg again to Figure 4, in this example the course "Flm-500" is intended to be a course conducted electronically. Students create documents tllat are tlle equivalent of e-mail and tl~e professor, "D. Wingrigllt" llas tlle option of creatillg anotller docunlent equivalent to e-mail by replyillg to their documents. 11l tllis example ~ve see that "A. Student" has composed a document and "D. Wingright" llas replied. No reply llas been made for comments from "B. Student" and "C. Studellt."
Assunle in tllis hypotlletical example that anot}ler client ~vishes to vie~v information in the same database in a different ~ray than tllat shotvn in Fig. 4.
Accordingly, an alternative vie~ is sho~ll in Fig. 5. Assume tllat tlle client has cllosen to vie~v docun1ents by autllor instead of by course. In tllis case tlle documents are presented by autllor arranged in alphabetical order according to tlle last name beginning ~vitll "Chrilllyth" and ending ~vitll "Wood." For each document the date of creation is s~lo~vn, witll the course, and doc~lment type. It can be appreciated that documents could be sorted and stored in various ~ays including by document type.

2 1 86~
.

Tlle "Document Type" column sllot n on vie~vport 60 indicates a particular data "form". A fornl defines ho~ the data can be vie~ved. Tlle data vhich describes 11o v to create the form is stored in one place in tlle database, and tlle data that is contained ~ithin a particular document adhering to tl1at form ~ill be stored some~vhere else. This further complicates tlle problenl of backing ~lp and restorillg documents in a ~ JU~ environment; l1o~vever, the inventor has critically recognized techniques for doing so that are described belo~v in tlle section titled "Operation of t~le Invention."
Returning to the example of Fig. 5, tllree documents are sllo~vn for author "T.
Hobbes" and tllis comports vitl1 tlle same inforll1ation s~lo vn in a different ~vay on Fig. 4. Furtller, ~ve can see tllat all t~lree documents were created on 08/20/95.
Similar information exists for each author. Figs. 6, 7, 8A, and 8B are each examples of the differellt documents sllo-vn in Figs. 4 and 5 for various autllors.
Fig. 6 s~lo~s tlle creation of a "Ne~v Topic" as sho~n in title bar 79. The category of tllis lle.~v topic defines tlle doc~m1ent type (Fig. 5). 1l1 tllis example the category is "Course Description" wllerein tlle l1ypotlletical professor, C. Hobbyss, P}l.
D. has entered the text description of the course so tllat studellts can be dedde if tlley wis}l to talce the course. The docunlent is stored in the database upon completion and accessible to any client for vie~ving.
Rights to modify the description are of course dependellt on tllat assigned by agroupware administrator and are not partic~llarly pertillent to tllis invention.Fig.~ 7 sl10~vs tlle hypothetical example of a l11~11ti~media document opened bytlle icon 81 in Fig. 4. In tllis example the document includes animation and includes sound clips. The animation is contained in another icon ~itllin the document. The 21 86~08 SA9950~-8 icon launches a video 82 of animated spotligllts moving animated light beam graphics that s~veep across a title banner graphic 83 ~hile music plays over spealcers accompanied by musical note graphics. Tlle doculnent also contains still grapllics 84, 85 of cats dressed ~Ip in top llats and bo~vties. Tlle category is sho~vn as "Report"
w~licll indicates a document form having multi-media capability.
Figs. 8A and 8B are examples of text documents that are compiled via tlle equivalent of e-mail. Fig. 8A sho~vs a comment sellt by "A. Student" OII 09/01/95 for the course Flm-500. Note that tlle title bar 79 indicates tllat e-mail is a "Ne~v Topic."
Fig. 8~ sho ~s tlle hypotlletical professor of t~lis course vie ving tlle docunlent witl- tlle option of entering a "Reply" (see title bar 79), to tlle "New Topic" entered bv A.
St~ldent.
Operation of the InY~ntion Figs. 10- l 9 describe the operation of tllis inventioll ill fio~v diagram form. Each seq~lence of operation is perfornled by tlle logic modules described above in the group~are enviroIlment s}lo~n in Fig. 1. Initially, tlle ITlodule obtains tlle date of the last incremental back up, ~hicll has been stored on t~le baclcllp server (-~hich could be in atly secure place).
Referring to Fig. 10, t~le operation of tlle incremental bacl<up module 72 is sllo~n. In step 86, t~le Illodule notifies tlle baclcup server of tlle database name and path. In step 87, tlle module searches through the database to identify the documents tllat llave been modified, added, or deleted (changed) since tlle last incremental back up. Recall that deleting a docun~ent sillce tlle last il1cremelltal baclc up is treated as a modification of tllat particular document within tlle database. In steps 87 and 88, 2 1 86~08 if the document is a deleted document, tllen data tllat can be ~tsed to identify the doc~lment later is added to a list. Steps 89-91 do not applv to deleted documents.
In Step ~9, contents for tlle identified documents are translated into a self-describing datastream. In steps 90 and 91, if tlle docunlent contains ricll-text data, i.e. a group~are object, then tllat object is also translated to the datastream. Steps 90 and 91 call be repeated if l~lore than one group~vare object e~ists ill tlle document. In step 92, the self-describing datastream is sent as a data object to tlle baclcup server 22.
Tlle database patll and internal id of t~le document are also sent to tlle backup server 22. Tlle processillg in Steps 87-92 can occur for each ne~v, or changed, docunlent in t~le group~vare database. In Step 93, the backup server 22 is notified of all t~le documents that have been deleted from the ~ U~JWdlt' database. In step 94, tlle bacl~up date~time (timestamp) are saved ill t~le l>aclcup server 22 or in some secure place; tllen tlle bacl~up server 22 performs tlle backup operatioll. It will be apparent to tllose sl~illed in tlle art tllat the above-described logic can be extended to multiple databases for a single execution.
Fig. 11 sllo~s restoration of an existing document as p~rfornled by module 74.
In order to illvolce tllis module. the user specifies tlle document he vants to restore by selectillg for vie~ving an existing docunlent fronn a database. For e~ample, Fig. 7 sllo~s a docunlent selected for vie~ving. Once tlle document is loaded into mainmemory, then logic module 74 can be ~Ised to obtain tlle document's internal ID. For example, the inventor has critically recognized tllat the currently popular groupware application Lot~ls Notes llas al1 internal ID that is unique to each document and it is referred to as a ~miversal ID (IJNID). This internal ID can tllen be translated into a data object ID tllat is sent to the bacl~up server. Generally, tlle logic module 74 tal~es 21~4~8 advantage of tl~e inventor's critical recognition, and solves the problem of selectillg a documellt for back up ~vllich has no extemal identifier such as a name or title.Tlle step-by-step application of the general operation of module 74 is describedbelow. In step 95. the user identifies ~vhicll document or documents he ~vants to restore by vie~ving an eYisting document from tlle group ~are database 38. In step 96, t~le module creates a restore list of data objects represelltillg eligible document back up copies from tile bacl~up server. In step 98, each document is tested against user-sup~)lied date~tillle criteria. Tlle eligible document bacl~up copies (tllose tllat pass t~le test) are added to tlle restore list. In step 99, tlle restore list is sorted such tllat off-line media, including sequential media, is accessed efficiently. A backup cop~ of tlle docunlent is obtained from tlle bacl~up server in step 100. Connectillg step "A" is used at tlle end of Fig. I l and at t~le beginning of Fig. 12 to sho~v connectivity between the steps of tllese t~vo flo~vcharts. In general, an identical letter appearing in one flo~v diagram, S~IC~I as Fig. I l, and also in another diagram, such as Fig. 12, is used to sllo~v connectivity of processing from one flo~v diagram to another.
~eferring to Fig. 12, tlle self-describing data object is interpreted to reconstruct tlle document, in step 102. In step 104 tlle existing document tllat was retrieved illtO
memory in step 9O is updated. In step 106, if a ~ VdlC~ object exists in tile document, tllen the restored data is translated to a group~vare object. Step 106 can be repeated if more tllan one group~rare object exists in a document. In step 108, the existing document in the database is updated to reflect tlle update of t~le retrieved document in step 104. The logic 66 checl~s to see if tllere is anotller document to be retrieved in step 1 10, and if tllere is, processing continues to connecting step B and back to step 94 of Fig. 1~. Tllen processing repeats tlle above steps 94 t~lrough 108 21~db~

until the test in step I 10 is satisfied because tllere are no remainillg documel~ts 1 step I I Oa, tlle updated database is v rittell to tlle llard disk Fig 13-15 sho~v t~le operation of logic module 76 wllich provides a capability of restoring an entire database The inventor llas recognized that there will be situatiolls ~hich require tllat an entire database be recovered to its state at a particular point in time To support tllis tvpe of recovery, a sufficient n~lmber of versions of every document in tlle database must be Icept in tlle backup server In s~lch a situation tlle logic of tllis illvention ~vorks togetller ~vith a vell-kno-vn database-level bacl~up product such as ADSM to mal<e a database-level copy of the database The logic tllen talces ellough periodic incren1ental back ups of each databas~ to cover any updates since tlle database level copy ~as made This is advantageous because it is no longer necessary to l~eep an illordinate number of back~lp versions in tlle server for all tllose databases ~vhose data changes on an extremely frequent basis once tllis invention is implemented on a group~are document database Fig 13 s}lo~vs the basic steps of restoring an entire database by merging restored documents ~vitll tlle restored database Tlle follo~ving steps are understood to begin after tlle ~Iser uses a well l~no~lrn database-level bacl~up system, such as ADSM
to restore tlle database-level copy of the database 11l step 112, that restored groupware database is opened In step 1 14, mod-lle 76 begins tlle step of creating a restore list of data objects representing eligible document baclcup copies from the server for restoration Each document is tested against a pre-determined time criteria, in step 116, to determille those ~vhich are eligible ~or example, the user may optionally specify a "fronl date/time" and "to date/time", ~vhose combination defines a range in ~vllich eligible document bacl~up copies must fall T~le eligible document 2~ 86408 .
SA995048 ~ ~~
backup copies, i.e., tllose that pass the test will be added to t~le restore list in step 118. In step 120, the restore list is sorted sucll tllat off-line media, including sequential media, is accessed efficiently. Processing contillues to continuation step C.
Fig. 14 sllo-vs a continuation of tlle operation of logic mod~lle 76 in a first embodiment of restorillg an entire database. Follo~illg contilluation step C, aninquiry is-posed in step 124 to see if there are remaining entries in the list. If tile ans~ver is "no" tllen tlle updated database is committed by being written to tlle hard dislc in step 125, and processing ends in step 126. If tlle answer is "yes" tllen processing flo~s step 128. In step 130, a bacl~up copy of tlle document from thebaclcui~ s~rver is obtained. Processing continues to continuation step E.
Fig. 15 sho~s tlle continuation of the process described above. Following continuation step E, ill step 132, the module clleclcs to see if tlle document can be opened for updatillg. For example, if a doamlent has been marlced to be deleted tllen it cannot be opened. If tlle ans-~er to tlle inquiry of step ] 32 is "no" tllen, in step 134, l~lodule 76 calls tlle "unopenable document restore" module 78. The operation of module 78 is described belo~v .Vitll referellce to Figs. 18 and 19. If tlle ans~rer to tlle inquiry in step 132 is "yes", then, in step 136, the data object is translated to place the database documellt in memory. The document is updated in memory in step 138.And tlle document in tlle database is updated ~vith tlle restored document, in step 1 40.
Continuation step F continues back to Fig. 1~ and flo~vs into step 12~ ~vllere module 76 checlcs to see if tllere are remaining entries in the list and processing of steps 128 and 140 are repeated until there are no remaining eligible entries in tlle list.

21 86~a8 .
SA9950~
Wllen tllere are no more entries tile updated database is ~vrittel~ to the hard disk and tlle processing ends ill step 126.
Fig. 16 s~lo-vs a second embodinlent for carrying out the restore of an entire database by module 76. This embodiment is based on tlle inventor's critical recognition t}lat it may be sufficient to rebuild a copy of a gl-oup~vare database fronl backup copies of documents. Tllis embodiment does not rely on an independent database-level back up system, but ratller relies oll tllere being a sufficient llumber of versions of doculnent bacl~up copies l<ept on tlle backup server ~hich sul~ports such a restore.
Fig. 16 sllo~s tlle basic steps of rebuilding a database solely frorll bacl<up copies of documents. Implicitly, it is to be understood t~lat data ~vill not allo~ved to be restored into an existing file. Therefore, tests ~vill be performed to ensure tllat an existing file is not ovenvritten before t}le follo~ving steps are carried out. Step 142 is tlle beginning step of tlle process. In step 144, eacll docunlent is tested against a predetel~llined tinle criteria ill a similar fasllioll as described above ~vith reference to tlle f~rst eIllbodiment. Passing documents are added to tl~e restore list as sho~vn in step 146. 11l step 14~. tlle restore list is sorted into an order t~at promotes efficient access to mountable media. Processing continues tllrough continuation step G into Fig. 1 7.
Referrillg to Fig. 17, in step 152, logic mod~lle 76 checl~s to see if tllere are remaining eligible entries in tllis list and if tlle ans~er is ''IlO'' processing ends in step 154. Ho~vever, if the ans~ver is "yes", then processing contin~les into step 156. Ill step 156, for the next data object entry in tlle list, tlle module retrieves a backup copy of the document fronl the server. In step 156, tlle backup copv of tlle document, ~vllich SA9950~
is in tlle form of a self~describing data stream, is obtained from tl~e backup server. In step 158, tl~e database is updated ~vitll tlle restored doc lment. 11l step 159, if tlle data stream indicates a group~vare object, tllen that object is b~tilt and entered in the database. Processing contillues back to tlle inquiry ill step 152 Ulltil tllere are no remainillg entries in tlle list and tllen processing contillues to step 153, in whic~1 the data ill tlle ne~v database is ~rittell to tlle llard disk and step 154 in ~vhich case it ends.
Figs. 18 and 197 described belo~v, describe tlle operation of logic module 78 ~hicll is used to restore documents tllat are unopenable. An e,~ample of an unopenable document is tllat ~llich occurs ~Vitll tl~ ell l~llo~n group~rare product Lotus Notes. Lotus Notes uses a procedure of creating "deletion stubs". Presellce of a deletion stub communicates to a replication process used for Illoving data bet~veen databases tl~at a database llas a deletion that must be replicated to other databases.
Since tlle deletion stub illdicates t}lat a file is no lollger accessible, tllere is llo convenient facility in the prior art to open a document marlced ~vitll a deletion stub.
Since ~vitll prior art systems the document cannot be opened, it cannot be directly read or updated. Fig. 18 and 19 show tlle basic steps to restore a document thatcanllot be opened or updated directly. Step 160 sho~vs tlle beginniilg of t}le restorer of an unopenable document proced~lre. In step 161, tlle database into which the doc lment is to be restored is opened. 1l1 step 1627 tlle group~vare database is searched to identify tlle documents to be restored. In step 163, the list of documents is sorted to minimize media mounts. In step 164, a bacl~up copy of the unopenable documentis retrieved from tl~e bacl~up server into main memory. Tllen, in step 166, t}le module ~vrites the bacl~up copy into tlle database ~ith tlle original ullique document ID. In S~995048 167, if tlle restore data stream indicates a group~vare object~ then tlle data is translated to a groupivare object. Continuation step 1{ flo~s into Fig. 19 wllere the step for processing is sho~vn.
In step 168, tlle original docunlent id from tlle bacl<up copy is retained in main memory. In step 169, tlle newly created document is con1n~itted to tlle database. Tn step 170, tllat sallle document is read back into memor~, and tlle document id is checl~ed. 11l step 171, if tllis document id is tlle same as tlle saved id, t~len tlle update ~orl~ed, eYen ~vithout an "open", so the updated database is comn1itted to tlle llard disk in step 175 and processing ends in step 176. If, in step 171, tlle IDs do not match, tllen processing contin~les in step 172. In step 172, tlle ullopenable docunlent is deleted from t}le database. Then, in step 174, tlle unique document ID is replaced ~itil tlle original ID stored in memory. Thus, tlle document ~vllich ~lad been nlarked as unopenable has been restored in tlle database by module 78. Changes to tlle database are committed to tlle llard disk in step 175. Processing ends in step 176.
Article of M~nl-f~ re F.mhsdyin~ Logic of thi~ InYention Wllile t}lis illvention is primarily discussed as a metllod, it can be understood by a p~rson of ordinary sl~ill in tlle art tllat tlle apparat~ls discussed above in connection ~vitll Flgs. I and 2 may be IJ~u~ldllllllcd or otller~vise designed to facilitate tlle practice of the n~ethod of tllis invention. Also, an article of manufacture such as a pre-recorded floppy disk 702 in Fig. 20, or otller similar computer program product for use .Vitll a data processing systelll, such as tlle data processing systelll of Fig. 1, co~lld include a storage medium such as magnetic storage medium 704 and program means recorded tllereon, such as program means 706, 708, 710, 712 and 714 for 2 ~ 8b4~
.
SA99504~3 directing tlle data processing system to facilitate t]le practice of the met]lod of this invention. It ~ill be understood that such apparatus and articles of manufacture also fall witllin the spirit and scope of t~lis invention.
Other en1bodiments and modifications of this invetltion may occur to tllose of ordinary sl<ill in the art in vie~v of tllese teachings. Tllerefore, tllis illvention is limited oJlly by t]~e follo~ving claims, ~hich include all such embodiments and modifications ~vhell vie~ed in conjunction vrith tlle above specification and accompanying drawing.

Claims (40)

1. In a data processing system including a groupware document server managing a plurality of documents stored in a groupware document database, the groupware document server having groupware server logic, the system further including a backup server coupled to the groupware document server for providingbackup services. and main memory coupled to the groupware document server, each document in the plurality of documents containing zero or more data items and having one or more internal identifiers (IDs) that identify the document to the server logic, the database including a database path identifying a storage location of the document, wherein the server logic is configured to allow viewing of documents stored in the database, a method for ensuring data integrity of at least one document of the plurality of documents, the method comprising:
querying the groupware server logic to determine items contained in at least one specified document and internal IDs used to identify the at least one specified document;
building for the at least one specified document, a document data object with a data structure having a plurality of data fields, the plurality of data fields including zero or more item data fields containing information describing corresponding items contained in the at least one specified document, at least one identifier field containing information describing internal IDs used to identify at least one specified document and a database path field representing a database path; and backing up the groupware document database or restoring the at least one specified document in response to information contained in the plurality of data fields in the document data object.
2. The method of claim 1, wherein backing up includes incrementally backing up of the groupware database by:
identifying documents that have been changed since a previous backup operation;
specifying each document identified during the identifying step by building a document data object for the document;
sending each data object built during the specifying step to the backup server;
and performing a backup operation on the backup server using information contained in the sent data objects for each specified document.
3. The method of claim 2, wherein the identifying step includes the step of identifying one or more documents having accompanying deletion markers that indicate that the one or more documents are marked for deletion from the groupware document database.
4. The method of claim 2, wherein, in the identifying step, a document is identified as changed if it has data that has been modified since the last back up operation.
5. The method of claim 27 wherein, in the identifying step, a document is identified as changed if the document has been added to the groupware document database since the last back up operation.
6. The method of claim 2, wherein a document has been changed if new data has been added to the document since the last backup operation.
7. The method of claim 2, wherein, in the identifying step, a document is identified as changed if it has been marked to be deleted.
8. The method of claim 2, wherein the groupware server manages a plurality of groupware document databases, each having a plurality of documents and the method performs the step of incrementally by backing up each groupware document database of the plurality of groupware document databases substantiallysimultaneously.
9. The method of claim 3, further comprising notifying the backup server of identified documents having deletion markers, and deleting the identified documents having deletion markers at the backup server.
10. The method of claim 1, the data processing system including means for marking a document as unopenable, wherein restoring the at least one specified document when the document is marked as unopenable includes:
(a) retrieving into the main memory a most recent backup copy of the document marked as being unopenable;
(b) building a document data object for the most recent backup copy, (c) storing information from the document data object describing the internal IDs of the most recent backup copy into the main memory;
(d) storing the most recent backup copy in the groupware document database;
(e) reading the most recent backup copy from the groupware document database and comparing internal IDs in the most recent backup copy with the internal IDs stored in the main memory; and, if the internal IDs do not match;
(f) deleting the document marked as unopenable from the groupware document database; and (g) replacing the unique document IDs of the most recent backup copy stored in the groupware document database with the internal IDs stored in main memory;
otherwise, repeating steps (a)-(e) until the IDs match.
11. The method of claim 1, wherein the at least one specified document has been selected for viewing and restoring the at least one specified document includes:
building a document data object for the document;
retrieving into main memory a backup copy of the document from the backup server;

using information contained in the document data object to reconstruct the document;
updating the backup copy in main memory with information from the reconstructed document; and replacing the document with the backup copy in the database.
12. The method of claim 1, wherein restoring includes restoring a plurality of documents belonging to the groupware document database on the groupware server by building a plurality of document data objects, wherein each document data object represents an eligible backup copy of a document to be restored, eligibility being determined by comparing a record of a time when the backup copy was created to a predetermined time criterion;
creating a restore list containing each of the document data objects that represent eligible backup copies;
sorting the restore list to minimize potential mounts of media used by the backup server;
obtaining from the backup server a backup copy for each document represented by a document data object in the restore list of the document from the backup server;
and for each obtained backup copy replacing each document in the groupware document database corresponding to a data object in the restore list for which a respective backup copy is obtained.
13. The method of claim 12. wherein if a document represented by a document data object in the restore list is marked as being unopenable then the unopenable document is restored by retrieving into the main memory a backup copy of a document marked by the groupware server logic as being unopenable;
building a document data object for the retrieved unopenable document;
storing the information from the document data object describing the internal IDs of the backup copy into the main memory;
storing the backup copy in the document database;
reading the newly stored document from the database to compare its id with the id save in main memory;
conditionally deleting the unopenable document from the database; and replacing the unique document IDs of the backup copy stored in the document database with the internal IDs stored in main memory
14. A data processing system for enabling back up and restore of at least one groupware document of a plurality of groupware documents stored in a groupware document database on a groupware document server having groupware server logic, each document containing zero or more data items and having an internal identifier (ID) that is used to identify the document to the groupware server logic and further having a database path identifying a storage location of the document, the server logic being configured to allow viewing of documents stored in the database, the system comprising:

a groupware document server having a plurality of documents stored in a groupware document database;
a backup server coupled through a communications network to the groupware document server;
main memory coupled to the groupware document server; and logic coupled to main memory and the backup server and to the groupware document server and having machine-executed means for:
querying the groupware server logic to determine what items are contained in at least one specified document and what internal IDs are used to identify the at least one specified document to the groupware server logic;
building a data object for the at least one specified document that includes a data structure having a plurality of data fields, the plurality of data fields including zero or more item data fields containing information describing each item contained in the at least one specified document, at least one identifier field containing information describing internal IDs that are used to identify the particular document to the groupware server logic; and using the data object to ensure data integrity of the particular document by enabling back up and restore operations that use the information contained in the data fields in the data object.
15. The system of claim 14, wherein the back up operations enabled by the building of the data object include operations to incrementally perform a back up of the groupware database by:

searching through the database to identify the documents that have been changed since the last back up operation;
specifying each document identified during the searching step, and in response to the specifying of a document building the data object;
sending each built data object to the backup server; and performing a back up operation on the backup server using information contained in the sent data objects for each specified document.
16. The system of claim 15, wherein the means for searching includes means for searching to identify documents having accompanying deletion markers that indicate that the identified document is marked for deletion from the database.
17. The system of claim 15, wherein a document is identified as changed if it has data that has been modified since the last back up operation.
18. The system of claim 15, wherein a document is identified as changed if the document itself has been added since the last back up operation.
19. The system of claim 15, wherein data has been modified if new data has been added to the document since the last back up operation.
20. The system of claim 15, wherein a document is identified as changed if it has been marked to be deleted as a deletion stub.
21. The system of claim 15, wherein the groupware server includes a plurality of document databases each having a plurality of documents and the system performs the incremental back up on each database of the plurality of databases in a substantially simultaneous operation.
22. The system of claim 16, further comprising means for notifying the backup server of identified documents having deletion markers that are to be deleted by the backup server.
23. The system of claim 14, wherein the restore operations enabled by the building of the data object include operations to restore a document in the database that is marked as being unopenable by the groupware server logic by:
retrieving into the main memory a most recent backup copy of a document marked by the groupware server logic as being unopenable;
building the data object for the retrieved unopenable document;
storing the information from the data object describing the internal IDs of the backup copy into the main memory;
storing the backup copy in the document database;
reading the newly stored document from the database to compare its id with the id saved in main memory;
conditionally deleting the unopenable document from the database; and replacing the unique document IDs of the backup copy stored in the document database with the internal IDs stored in main memory.
24. The system of claim 14, wherein the restore operations enabled by the building of the data object include operations to restore an existing document by:
building the data object for a document selected for a document viewing operation;
retrieving into main memory a backup copy of the selected document from the backup server;
interpreting the information contained in the data object to reconstruct the document;
updating the backup copy in main memory with information from the reconstructed document; and replacing the selected documents with the backup copy in the database.
25. The system of claim 14, wherein the restore operations enabled by the building of the data object include operations for restoring a plurality of existing documents belonging to the groupware document database on the groupware server by:
building a plurality of the data objects. wherein each built data object represents an eligible backup copy of a document to be restored, wherein eligibility is determined by comparing a date and time record of when the backup copy was created to a predetermined date and time criterion;
creating a restore list containing each of the data objects representing eligible backup copies;
sorting the restore list to minimize potential mounts of media used by the backup server;

obtaining from the backup server a backup copy for each document represented by a data object in the restore list of the document from the backup server; and for each obtained backup copy replacing each document in the database corresponding to a data object in the restore list for which a respective backup copy is obtained.
26. The system of claim 25, wherein if a document represented by a data object in the restore list is marked as being unopenable then the unopenable document is restored by:
retrieving into the main memory a most recent backup copy of a document marked by the groupware server logic as being unopenable;
building the data object for the retrieved unopenable document;
storing the information from the data object describing the internal IDs of the backup copy into the main memory;
storing the backup copy in the document database;
reading the newly stored document from the database to compare its id with the id saved in main memory;
conditionally deleting the unopenable document from the database; and replacing the unique document IDs of the backup copy stored in the document database with the internal IDs stored in main memory.
27. A computer program product for enabling back up and restore of at least one groupware document of a plurality of groupware documents stored in a groupware document database on a groupware document server having groupware server logic for use in a data processing system including a groupware document server having a plurality of documents stored in a groupware document database, a backup server coupled through a communications network to the groupware document server, main memory coupled to the groupware document server, each document containing zero or more data items and having an internal identifier (ID) that is used to identify the document to the groupware server logic and further having a database path identifying a storage location of the document wherein the server logic is configured to allow viewing of documents stored in the database, the program product comprising:
a recording medium;
means, recorded on the recording medium for:
querying the groupware server logic to determine what items are contained in at least one specified document and what internal IDs are used to identify the at least one specified document to the groupware server logic;
building a data object for the at least one specified document that includes a data structure having a plurality of data fields, the plurality of data fields including zero or more item data fields containing information describing each item contained in the at least one specified document, at least one identifier field containing information describing internal IDs that are used to identify the particular document to the groupware server logic; and using the data object to ensure data integrity of the particular document by enabling back up and restore operations that use the information contained in the data fields in the data object.
28. The computer program product of claim 27. wherein the means recorded on the recording medium for enabling back up operations include means for incrementally performing a backup of the groupware database by:
searching through the database to identify the documents that have been changed since the last back up operation;
specifying each document identified during the searching step, and in response to the specifying of a document building the data object;
sending each built data object to the backup server; and performing a back up operation on the backup server using information contained in the sent data objects for each specified document.
29. The computer program product of claim 28, including means for searching to identify documents having accompanying deletion markers that indicate that the identified document is marked for deletion from the database.
30. The computer program product of claim 28, wherein a document is identified as changed if it has data that has been modified since the last back up operation.
31. The computer program product of claim 28, wherein a document is identified as changed if the document itself has been added since the last back up operation.
32. The computer program product of claim 28, wherein data has been modified if new data has been added to the document since the last back up operation.
33. The computer program product of claim 28, wherein a document is identified as changed if it has been marked to be deleted with a deletion stub
34. The computer program product of claim 28, wherein the groupware server includes a plurality of document databases each having a plurality of documents and the computer program product performs the incremental back up on each database of the plurality of databases in a substantially simultaneous operation.
35. The computer program product of claim 29, further comprising means for notifying the backup server of identified documents having deletion markers that are to be deleted by the backup server.
36. The computer program product of claim 27. wherein the means recorded on the recording medium for enabling restore operations include operations to restore a document in the database that is marked as being unopenable by the groupware server logic by:
retrieving into the main memory a most recent backup copy of a document marked by the groupware server logic as being unopenable;
building the data object for the retrieved unopenable document;

storing the information from the data object describing the internal IDs of the backup copy into the main memory;
storing the backup copy in the document database;
reading the newly stored document from the database to compare its id with the id saved in main memory, conditionally deleting the unopenable document from the database; and replacing the unique document IDs of the backup copy stored in the document database with the internal IDs stored in main memory.
37. The computer program product of claim 27, wherein the means recorded on the recording medium for enabling restore operations include means for restoring an existing document by:
building the data object for a document selected for a document viewing operation;
retrieving into main memory a backup copy of the selected document from the backup server;
interpreting the information contained in the data object to reconstruct the document;
updating the backup copy in main memory with information from the reconstructed document; and replacing the selected document with the backup copy in the database.
38. The computer program product of claim 27, wherein the means recorded on the recording medium for enabling restore operations include means for restoring a plurality of existing documents belonging to the groupware document database on tile groupware server by:
building a plurality of the data objects. wherein each built data object represents an eligible backup copy of a document to be restored, wherein eligibility is determined by comparing a date and time record of when the backup copy was created to a predetermined date and time criterion;
creating a restore list containing each of the data objects representing eligible backup copies;
sorting the restore list to minimize potential mounts of media used by the backup server;
obtaining from the backup server a backup copy for each document represented by a data object in the restore list of the document from the backup server; andfor each obtained backup copy replacing each document in the database corresponding to a data object in the restore list for which a respective backup copy is obtained.
39. The computer program product of claim 38. wherein if a document represented by a data object in the restore list is marked as being unopenable then the unopenable document is restored by means for:
retrieving into the main memory a most recent backup copy of a document marked by the groupware server logic as being unopenable;
building the data object for the retrieved unopenable document;
storing the information from the data object describing the internal IDs of the backup copy into the main memory;

storing the backup copy in the document database;
reading the newly stored document from the database to compare its id with the id saved in main memory;
conditionally deleting the unopenable document from the database; and replacing the unique document IDs of the backup copy stored in the document database with the internal IDs stored in main memory.
40. An apparatus for enabling back up and restore of at least one groupware document of a plurality of groupware documents stored in a groupware document database on a groupware document server having groupware server logic configuredto communicate with a data processing system including a groupware document server having a plurality of documents stored in a groupware document database, a backup server coupled through a communications network to the groupware document server, each document containing at least one data item and having an internal identifier (ID) that is used to identify the document to the groupware server logic and further having a database path identifying a storage location of the document, wherein the server logic is configured to allow viewing of documents stored in the database the apparatus comprising:
memory coupled to the groupware document server;
logic being loaded into the memory including:
a module configured to restore an existing document in the groupware document database;
a module configured to incrementally perform a back up of the groupware database to the backup server in order to back up only those documents in the database that have been changed since the most recent back up operation;
a module configured to restore a plurality of existing documents belonging to the groupware document database on the groupware server; and a module configured to restore a document in the database that is marked as being unopenable by the groupware server logic.
CA002186408A 1995-12-04 1996-09-25 System and method for backing up and restoring groupware documents Abandoned CA2186408A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/568,890 US5754782A (en) 1995-12-04 1995-12-04 System and method for backing up and restoring groupware documents
US08/568,890 1995-12-04

Publications (1)

Publication Number Publication Date
CA2186408A1 true CA2186408A1 (en) 1997-06-05

Family

ID=24273155

Family Applications (1)

Application Number Title Priority Date Filing Date
CA002186408A Abandoned CA2186408A1 (en) 1995-12-04 1996-09-25 System and method for backing up and restoring groupware documents

Country Status (4)

Country Link
US (1) US5754782A (en)
EP (1) EP0778527A1 (en)
JP (1) JPH09179824A (en)
CA (1) CA2186408A1 (en)

Families Citing this family (90)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6041345A (en) * 1996-03-08 2000-03-21 Microsoft Corporation Active stream format for holding multiple media streams
JP3524270B2 (en) 1996-06-24 2004-05-10 株式会社日立製作所 Parallel processing system
US20060195595A1 (en) 2003-12-19 2006-08-31 Mendez Daniel J System and method for globally and securely accessing unified information in a computer network
US6161113A (en) * 1997-01-21 2000-12-12 Texas Instruments Incorporated Computer-aided project notebook
US5873101A (en) * 1997-02-10 1999-02-16 Oracle Corporation Database backup/restore and bulk data transfer
US6145119A (en) * 1997-03-31 2000-11-07 International Business Machines Corporation Programming development environment for intranet and internet applications employing unique project data structure
US5966512A (en) * 1997-06-05 1999-10-12 International Business Machines Corporation Groupware save operation
US6487558B1 (en) * 1997-06-27 2002-11-26 Sun Microsystems, Inc. Method for generating database server configuration documentation
US6067541A (en) * 1997-09-17 2000-05-23 Microsoft Corporation Monitoring document changes in a file system of documents with the document change information stored in a persistent log
EP1057121B1 (en) * 1998-02-17 2006-10-04 Intergraph Hardware Technologies Company Apparatus and method for transmitting documents between a server computer and a client computer
US6205527B1 (en) 1998-02-24 2001-03-20 Adaptec, Inc. Intelligent backup and restoring system and method for implementing the same
US6532535B1 (en) 1998-02-24 2003-03-11 Adaptec, Inc. Method for managing primary and secondary storage devices in an intelligent backup and restoring system
US6374366B1 (en) 1998-02-24 2002-04-16 Adaptec, Inc. Automated drive repair systems and methods
US6374363B1 (en) 1998-02-24 2002-04-16 Adaptec, Inc. Method for generating a footprint image file for an intelligent backup and restoring system
US6385707B1 (en) 1998-02-24 2002-05-07 Adaptec, Inc. Method and apparatus for backing up a disk drive upon a system failure
US6289426B1 (en) 1998-02-24 2001-09-11 Adaptec, Inc. Drive preparation methods for intelligent backup systems
US6360330B1 (en) * 1998-03-31 2002-03-19 Emc Corporation System and method for backing up data stored in multiple mirrors on a mass storage subsystem under control of a backup server
IL141493A0 (en) * 1998-08-21 2002-03-10 Visto Corp System and method for using a global translator to synchronize workspace elements across a network
US6562076B2 (en) 1998-08-31 2003-05-13 Xerox Corporation Extending application behavior through active properties attached to a document in a document management system
US6330573B1 (en) * 1998-08-31 2001-12-11 Xerox Corporation Maintaining document identity across hierarchy and non-hierarchy file systems
US6266682B1 (en) 1998-08-31 2001-07-24 Xerox Corporation Tagging related files in a document management system
US6453348B1 (en) 1998-11-06 2002-09-17 Ameritech Corporation Extranet architecture
US6594819B1 (en) * 1999-01-25 2003-07-15 International Business Machines Corporation Method and system for establishing collection of hostable applications
US6826751B1 (en) * 1999-03-18 2004-11-30 Microsoft Corporation Ambient calculus-based modal logics for mobile ambients
US6526493B1 (en) 1999-03-30 2003-02-25 Adaptec, Inc. Method and apparatus for partitioning and formatting a storage media without rebooting by creating a logical device control block (DCB) on-the-fly
US6415382B1 (en) 1999-04-30 2002-07-02 Adaptec, Inc. Hard disk bootstrap redirection
EP1063598A3 (en) * 1999-06-21 2003-05-02 Matsushita Electric Industrial Co., Ltd. System and method for document management and document sharing
US6496944B1 (en) 1999-10-06 2002-12-17 International Business Machines Corporation Method for database assisted file system restore
US6526418B1 (en) * 1999-12-16 2003-02-25 Livevault Corporation Systems and methods for backing up data files
US6779003B1 (en) 1999-12-16 2004-08-17 Livevault Corporation Systems and methods for backing up data files
US6460055B1 (en) * 1999-12-16 2002-10-01 Livevault Corporation Systems and methods for backing up data files
US6847984B1 (en) 1999-12-16 2005-01-25 Livevault Corporation Systems and methods for backing up data files
US6625623B1 (en) 1999-12-16 2003-09-23 Livevault Corporation Systems and methods for backing up data files
US6625620B1 (en) 2000-04-21 2003-09-23 International Business Machines Corporation Method and apparatus for the management of file attachments in a groupware oriented system
US6708227B1 (en) * 2000-04-24 2004-03-16 Microsoft Corporation Method and system for providing common coordination and administration of multiple snapshot providers
US7062541B1 (en) * 2000-04-27 2006-06-13 International Business Machines Corporation System and method for transferring related data objects in a distributed data storage environment
US6484187B1 (en) * 2000-04-28 2002-11-19 International Business Machines Corporation Coordinating remote copy status changes across multiple logical sessions to maintain consistency
US6505123B1 (en) 2000-07-24 2003-01-07 Weatherbank, Inc. Interactive weather advisory system
US6640217B1 (en) 2000-09-19 2003-10-28 Bocada, Inc, Method for extracting and storing records of data backup activity from a plurality of backup devices
US6745210B1 (en) 2000-09-19 2004-06-01 Bocada, Inc. Method for visualizing data backup activity from a plurality of backup devices
AU2001291169A1 (en) * 2000-09-19 2002-04-02 Bocada, Inc. Method for obtaining a record of data backup and converting same into a canonical format
US6708188B1 (en) 2000-09-19 2004-03-16 Bocada, Inc. Extensible method for obtaining an historical record of data backup activity (and errors) and converting same into a canonical format
JP3913484B2 (en) * 2001-02-05 2007-05-09 株式会社リコー Image processing device
JP4179880B2 (en) * 2001-03-16 2008-11-12 シャープ株式会社 System for synchronizing data, apparatus used in the system, and data synchronization method
FR2824211B1 (en) * 2001-04-27 2003-06-27 Radio Electronique Aides Tech SYSTEM AND METHOD FOR COMMUNICATION BETWEEN STATIONS PROCESSING COMMON FOLDERS
US6910188B2 (en) 2001-06-27 2005-06-21 International Business Machines Corporation Viewing changes to a shared document in one object
US20030117500A1 (en) * 2001-12-24 2003-06-26 Icp Electronics Inc. Network video recording system
US8103794B2 (en) * 2002-07-22 2012-01-24 Kabushiki Kaisha Toshiba Backup and recovery system and method
US8443045B2 (en) * 2002-10-01 2013-05-14 Honda Motor Co., Ltd. Storage of selected e-mails including attachments in document management system
US20050010616A1 (en) * 2003-07-09 2005-01-13 Burks David P. System and method for restoring files
US8166101B2 (en) 2003-08-21 2012-04-24 Microsoft Corporation Systems and methods for the implementation of a synchronization schemas for units of information manageable by a hardware/software interface system
US8238696B2 (en) 2003-08-21 2012-08-07 Microsoft Corporation Systems and methods for the implementation of a digital images schema for organizing units of information manageable by a hardware/software interface system
US7225208B2 (en) * 2003-09-30 2007-05-29 Iron Mountain Incorporated Systems and methods for backing up data files
AU2003304502A1 (en) * 2003-10-13 2005-04-27 Illuminator (Israel) Ltd. Apparatus and method for information recovery quality assessment in a computer system
KR100657065B1 (en) * 2004-01-29 2006-12-13 삼성전자주식회사 Device and method for character processing in wireless terminal
US7644239B2 (en) 2004-05-03 2010-01-05 Microsoft Corporation Non-volatile memory cache performance improvement
US7143120B2 (en) * 2004-05-03 2006-11-28 Microsoft Corporation Systems and methods for automated maintenance and repair of database and file systems
US7490197B2 (en) 2004-10-21 2009-02-10 Microsoft Corporation Using external memory devices to improve system performance
US7814367B1 (en) * 2004-11-12 2010-10-12 Double-Take Software Canada, Inc. Method and system for time addressable storage
US9063898B1 (en) * 2004-11-23 2015-06-23 Hewlett-Packard Development Company, L.P. Method of restoring backup data
US7746875B1 (en) * 2004-12-21 2010-06-29 Emc Corporation System and method for protecting and sharing data across a network
US20060161469A1 (en) * 2005-01-14 2006-07-20 Weatherbank, Inc. Interactive advisory system
US8832121B2 (en) 2005-02-02 2014-09-09 Accuweather, Inc. Location-based data communications system and method
US7853959B2 (en) * 2005-02-08 2010-12-14 Sap Ag Business process extension for productivity suite application
US7634758B2 (en) * 2005-03-02 2009-12-15 Computer Associates Think, Inc. System and method for backing up open files of a source control management repository
US20060277079A1 (en) * 2005-04-22 2006-12-07 Gilligan Geffrey D Groupware travel itinerary creation
US7890964B2 (en) * 2005-04-22 2011-02-15 Sap Ag Methods and apparatus for contextual awareness in a groupware client
US7890962B2 (en) * 2005-04-22 2011-02-15 Sag Ag Business process extensions to enable alerts and reports within the context of groupware
US9111253B2 (en) * 2005-04-22 2015-08-18 Sap Se Groupware time tracking
US8335768B1 (en) 2005-05-25 2012-12-18 Emc Corporation Selecting data in backup data sets for grooming and transferring
US20070124370A1 (en) * 2005-11-29 2007-05-31 Microsoft Corporation Interactive table based platform to facilitate collaborative activities
US8914557B2 (en) 2005-12-16 2014-12-16 Microsoft Corporation Optimizing write and wear performance for a memory
US8229467B2 (en) 2006-01-19 2012-07-24 Locator IP, L.P. Interactive advisory system
US20100179944A1 (en) * 2006-05-31 2010-07-15 Pankaj Anand Local Data Retrieval And Restoration Method And System Thereof
US20070294355A1 (en) * 2006-06-19 2007-12-20 Dallas Area Rapid Transit Method and system for making a portable network user mailbox from an archived network post office without restoring to the original active post office
US7865556B2 (en) * 2006-12-20 2011-01-04 International Business Machines Corporation Failover processing for automatic responder in mixed server environment
US8634814B2 (en) 2007-02-23 2014-01-21 Locator IP, L.P. Interactive advisory system for prioritizing content
US20080263007A1 (en) * 2007-04-20 2008-10-23 Sap Ag Managing archived data
US7882073B1 (en) * 2007-09-28 2011-02-01 Symantec Operating Corporation Backup agent for dynamically decomposing a database backup request to constituent files to facilitate backup restartability
US8631203B2 (en) * 2007-12-10 2014-01-14 Microsoft Corporation Management of external memory functioning as virtual cache
US9032151B2 (en) 2008-09-15 2015-05-12 Microsoft Technology Licensing, Llc Method and system for ensuring reliability of cache data and metadata subsequent to a reboot
US8032707B2 (en) 2008-09-15 2011-10-04 Microsoft Corporation Managing cache data and metadata
US7953774B2 (en) 2008-09-19 2011-05-31 Microsoft Corporation Aggregation of write traffic to a data store
US8812625B1 (en) 2009-04-21 2014-08-19 Google Inc. Tracking changes in on-line spreadsheet
US8392466B2 (en) * 2010-08-27 2013-03-05 International Business Machines Corporation Method and apparatus for automated processing of a data stream
CN109947594B (en) * 2019-02-27 2021-04-09 武汉天喻信息产业股份有限公司 Data backup method and device and data recovery method and device
CN111174729B (en) * 2020-03-05 2021-09-24 山东省科学院激光研究所 Measuring plate path forming system for single-point progressive forming processing
CN111782619A (en) * 2020-07-28 2020-10-16 上海爱数信息技术股份有限公司 Document increment synchronization method and device between servers and storage medium
US11354161B2 (en) 2020-08-10 2022-06-07 Bank Of America Corporation Controlling memory utilization by a topic in a publish-subscribe environment
US11340828B2 (en) 2020-08-10 2022-05-24 Bank Of America Corporation Restoring messages to a memory utilized by a topic in a publish-subscribe environment

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0797373B2 (en) * 1985-08-23 1995-10-18 株式会社日立製作所 Document matching system
US5133066A (en) * 1985-10-24 1992-07-21 International Business Machines Corporation Method for selecting multiple versions of data in a reduced record units text editing system
US4914586A (en) * 1987-11-06 1990-04-03 Xerox Corporation Garbage collector for hypermedia systems
US5214781A (en) * 1988-07-25 1993-05-25 Matsushita Electric Industrial Co., Ltd. Method of managing storage medium
US5155847A (en) * 1988-08-03 1992-10-13 Minicom Data Corporation Method and apparatus for updating software at remote locations
US5089958A (en) * 1989-01-23 1992-02-18 Vortex Systems, Inc. Fault tolerant computer backup system
US5140521A (en) * 1989-04-26 1992-08-18 International Business Machines Corporation Method for deleting a marked portion of a structured document
US5133065A (en) * 1989-07-27 1992-07-21 Personal Computer Peripherals Corporation Backup computer program for networks
US5163148A (en) * 1989-08-11 1992-11-10 Digital Equipment Corporation File backup system for producing a backup copy of a file which may be updated during backup
US5212789A (en) * 1989-10-12 1993-05-18 Bell Communications Research, Inc. Method and apparatus for updating application databases used in a distributed transaction processing environment
JPH03161873A (en) * 1989-11-20 1991-07-11 Ricoh Co Ltd Electronic filing device having data base constructing function
US5276860A (en) * 1989-12-19 1994-01-04 Epoch Systems, Inc. Digital data processor with improved backup storage
JP3268529B2 (en) * 1990-03-14 2002-03-25 株式会社日立製作所 Knowledge database processing system and expert system
DE69119222T2 (en) * 1991-06-04 1996-11-21 Ibm Data backup and elimination in a data processing system
US5606693A (en) * 1991-10-02 1997-02-25 International Business Machines Corporation Distributed database management over a network
JP3454855B2 (en) * 1993-02-01 2003-10-06 株式会社日立製作所 Facsimile server system
US5263154A (en) * 1992-04-20 1993-11-16 International Business Machines Corporation Method and system for incremental time zero backup copying of data
US5555388A (en) * 1992-08-20 1996-09-10 Borland International, Inc. Multi-user system and methods providing improved file management by reading
JPH06250895A (en) * 1993-02-26 1994-09-09 Fujitsu Ltd Structured data base system
JP2783109B2 (en) * 1993-03-04 1998-08-06 三菱電機株式会社 Database system evacuation device, database system restoration device, and database system migration device
US5537590A (en) * 1993-08-05 1996-07-16 Amado; Armando Apparatus for applying analysis rules to data sets in a relational database to generate a database of diagnostic records linked to the data sets
US5515502A (en) * 1993-09-30 1996-05-07 Sybase, Inc. Data backup system with methods for stripe affinity backup to multiple archive devices
JP3415914B2 (en) * 1993-10-12 2003-06-09 富士通株式会社 Parallel merge sort processing method
US5659746A (en) * 1994-12-30 1997-08-19 Aegis Star Corporation Method for storing and retrieving digital data transmissions

Also Published As

Publication number Publication date
EP0778527A1 (en) 1997-06-11
JPH09179824A (en) 1997-07-11
US5754782A (en) 1998-05-19

Similar Documents

Publication Publication Date Title
CA2186408A1 (en) System and method for backing up and restoring groupware documents
US20210208973A1 (en) Generating snapshots and an associated index
JP5729708B2 (en) Storage and replication system and method
US10133746B1 (en) Persistent file system objects for management of databases
US20070255765A1 (en) Systems and methods for file maintenance
US7774566B2 (en) Physical tape interchange format
US20070168692A1 (en) Remote location failover server application
US20070061359A1 (en) Organizing managed content for efficient storage and management
CA2501667C (en) System and method for managing data using static lists
US8762347B1 (en) Method and apparatus for processing transactional file system operations to enable point in time consistent file data recreation
WO2007035652A2 (en) Avoiding duplicative storage of managed content
CA2379930A1 (en) Multi-model access to data
JP4806168B2 (en) Identification method and system for identifying changes to be made to a table
US5963961A (en) Database reconstruction using embedded database backup codes
Nestor Toward a persistent object base
Feeney Towards a national strategy for archiving digital materials
US20040044706A1 (en) Method and system for providing a file system overlay
Morris Relational database design and implementation for biodiversity informatics
JP3730556B2 (en) Database management system
US20040054676A1 (en) Systems and methods for automatically processing text information
US8244811B1 (en) Method and apparatus for searching messaging identities
Beck et al. Persistent storage for a workflow tool implemented in Smalltalk
Heminger et al. Assessing the digital Rosetta stone model for long-term access to digital documents
Kappes et al. Document Management for the Knowledge Worker System
Mitchell et al. Real-world SQL-DMO for SQL server

Legal Events

Date Code Title Description
EEER Examination request
FZDE Discontinued