United States Patent7080051
CrawfordJuly 18, 2006

Title

Internet download systems and methods providing software to internet computer users for local execution

Abstract

A customer computer connects to an online service provider by phone, Internet, or other telecommunications link. The link gives the customer access to additional processing and storage resources such as virtual storage, processing power and/or additional software or data through interaction between the customer computer and an online service provider computer over the link. The additional resources made available to the customer computer enhance the customers' local needs through access to virtual storage, a more powerful processor of similar type for program execution, and/or online support services such as software rental, software sales, release update services, anti-viral services, data backup and recovery services, diagnostic services and/or repair services.


Inventors:Crawford; Christopher M. (Breckenridge, CO)
Appl. No.:10/094,968
Filed:March 12, 2002

Current U.S. Class:705/400 709/219 717/172 717/173 717/176 717/177 717/178 379/111 379/93.01 705/30 
Current International Class:G06F 17/00 (20060101)
Field of Search:379/90.01,93.01,93.02,111,114 705/30,34,400 709/209,217,218,219,212,220 717/168,169,170,171,172,173,174,176,177,178

U.S. Patent Documents
3718906February 1973Lightner
3917934November 1975Goto
3934079January 1976Barnhart
4278837July 1981Best
4319079March 1982Best
4465901August 1984Best
4528643July 1985Freeny, Jr.
4578530March 1986Zeidler
4646479March 1987Advani
4675828June 1987Winston
4685055August 1987Thomas
4796220January 1989Wolfe
4827508May 1989Shear
4864412September 1989Ueno
4868758September 1989Kokubu
4901223February 1990Rhyne
4954945September 1990Inoue et al.
4959861September 1990Howlette
4962449October 1990Schlesinger
4982234January 1991Filion et al.
4994963February 1991Rorden et al.
4999806March 1991Chernow et al.
5005122April 1991Griffin et al.
5007082April 1991Cummins
5014651May 1991Cummings
5023774June 1991Sakai et al.
5060185October 1991Naito et al.
5089958February 1992Horton et al.
5107456April 1992Schuur
5109515April 1992Laggis et al.
5155847October 1992Kirouac et al.
5181238January 1993Medamana et al.
5182770January 1993Medveczky et al.
5204897April 1993Wyman
5210866May 1993Milligan et al.
5212784May 1993Sparks
5222134June 1993Waite et al.
5257367October 1993Goodlander et al.
5265153November 1993Ozawa
5276441January 1994Katsurada et al.
5276867January 1994Kenley et al.
5291554March 1994Morales
5313637May 1994Rose
5317728May 1994Tevis et al.
5325430June 1994Smyth et al.
5353283October 1994Tsuchiya
5353411October 1994Nakaosa et al.
5367698November 1994Webber et al.
5371797December 1994Bocinsky, Jr.
5371852December 1994Attanasio et al.
5379418January 1995Shimazaki et al.
5383129January 1995Farrell
5388211February 1995Hornbuckle
5390297February 1995Barber et al.
5404508April 1995Konrad et al.
5404527April 1995Irwin et al.
5412801May 1995de Remer et al.
5424724June 1995Williams et al.
5426594June 1995Wright et al.
5446871August 1995Shomler et al.
5448718September 1995Cohn et al.
5469573November 1995McGill, III et al.
5479654December 1995Squibb
5497463March 1996Stein et al.
5497479March 1996Hornbuckle
5509070April 1996Schull
5515502May 1996Wood
5535407July 1996Yanagawa et al.
5544320August 1996Konrad
5548645August 1996Ananda
5555371September 1996Duyanovich et al.
5559991September 1996Kanfi
5568551October 1996Kawashima
5577222November 1996Micka et al.
5579222November 1996Bains et al.
5588109December 1996Dickinson et al.
5594663January 1997Messaros et al.
5606719February 1997Nichols et al.
5613089March 1997Hornbuckle
5646984July 1997Oda
5664186September 1997Bennett et al.
5671285September 1997Newman
5680453October 1997Akiyama et al.
5689476November 1997Leach
5696901December 1997Konrad
5727065March 1998Dillon
5732401March 1998Conway
5737538April 1998Wilhite
5751799May 1998Mori
5771354June 1998Crawford
5799285August 1998Klingman
5809145September 1998Slik et al.
5889942March 1999Orenshteyn
5893077April 1999Griffin
5901228May 1999Crawford
5949415September 1999Lin et al.
6067582May 2000Smith et al.
6532543March 2003Smith et al.
Foreign Patent Documents
0410191Jan., 1992JP
08-205119Aug., 1996JP
Other References
Burns: "Software delivered electronically. (CompuServ's Software Exchange)"; Online Today, Nov. 1987, vol. 6, No. 11, p. 32. cited by exam- iner .
Bermant: "In search of utilities software: local bulletin boards and on-line services."; Personal Computing, Jan. 1988, vol. 12, No. 1, p. 124. cited by examiner .
Page et al: "Online help for finding the right sofware. (includes related article)"; Link-up, Sep.-Oct. 1988, vol. 5, No. 5, p. 14. cited by examin- er .
IBM Tehnical Disclosure Bulletin: "IPL Status Via Non-Standard Display Method"; Apr. 1, 1989, vol. 31, No. 11, pp. 123-125. cited by examiner .
Lazzaro: "Shopping overview: jingle bells and whistles. (computer shopping services)"; Link-Up, Nov.-Dec. 1990, vol. 7, No. 6, p. 16. cited by exami- ner .
Valauskas: "Access to information: Two Catalysts for Change"; Online, Mar. 1992, v16, n2. pp. 96-98. cited by examiner .
New Compaq ENSA Storage Solutions Enable NonStop eBusiness. (Enterprise Newtwork Storage Architecture; Smart Array 4200 controller and Storage Works RAID Array 4000)(Product Announcement); EDGE: Work-Group Computing Report Jul. 26, 1996. cited by examiner .
Peregrine System.RTM. Takes Employee Self Service to the Next Level with e-Service for PC Support; PR Newswire, Oct. 24, 2000. cited by examiner .
Steinberg, Jeffrey A., "Diverting Data from Disaster (Advanced Systems Concepts Inc.'s Remote Shadow Option Disk Shadowing Software)," Software Review (Evaluation), Abstract. cited by other .
S. Armbrust et al., PC Tech Journal, vol. 3, No. 9, "Forward Locking VDI," Sep. 1985, pp. 42-53. cited by other .
E.R. Carpenter, IBM Technical Disclosure Bulletin, vol. 34, No. 10B, "single System Imagewith Network File Systems," IBM Corp., Mar. 1992, pp. 408-409. cited by other .
M. Tabes, Datamation. "Managing Storage Across the Enterprise."May 1992, pp. 36-40. cited by other .
P. Korzeniowski, Software Magazine, "Back to the Mainframe for Storage of LAN Data," Jul. 1992, pp. 73-77. cited by other .
Mark Ludwig, The Little Black Book of Computer Viruses, American Eagle publications, 1991, pp. 11-19, 23-29, 55-68, 69-76, 159-162. cited by oth- er .
R. Waterman, Software Magazine, "Waiting for X500," Jul. 1992, 2 pages. cited by other .
R. Brown, Systems 3X/400, "Serving Many Masters," Mar. 1992, pp. 68-70. cited by other .
PC Computing, "Test and Evaluation Methods," Jun. 1992, pp. 238, 240, 247-248 and 262. cited by other .
Price list, "Tape Backup," 1 page. cited by other .
Advertisement, "Let's Talk.RTM., Tired of the Runaround?" 1 page. cited by other .
Advertisement, "PC/TCP.RTM. Plus," 1 page. cited by other .
Advertisement, News 3X/400, "Mimix Hi-Net, Lakeview Technology Inc.," Sep. 1991, p. 140. cited by other .
Advertisement, Network Innovation, "Server Based Backup," 1 page. cited by other .
Advertisement, News 3X/400, "PC File Mail," Nov. 1991, p. 74. cited by oth- er .
Advertisement, "HandsOn Software, Monarch 36/400J lets PC users get their hands on mid-range data," 1 page. cited by other .
Advertisement, Andrew, "NetLynx.TM.: LAN Connectivity by the Numbers," 1 page. cited by other .
Advertisement, "Innovation.RTM. Data Processing, FDR. Your DASD Management System," 1 page. cited by other .
Advertisement, "Maynard.RTM., Maynard Delivers a Super Bundle," 1 page. cited by other .
Advertisement, "Central Point Software Inc..RTM., Never Underestimate the Importance of Complete Protection," 1 page. cited by other .
Advertisement, Business Communications, Gazzelle, "Backup While You Work," Jun. 1992. cited by other .
Advertisement, "Works," 1 page. cited by other .
Advertisement, Intel.RTM., Introducing fax software that can send, receive and run with your faxes, 1 page. cited by other .
Advertisement, "LapLink, With LapLink you're only a phone call away," 1 page. cited by other .
M. Tischer, PC Systems Programming, Abacus, Apr. 1993, pp. 157-171, 208-212, Appendix B and C. cited by other .
Advertisement, PC/Computing, "SequeLink, MiddleWare : Open Windows for Client/Server Computing," p. 427. cited by other .
Advertisement, System Software Associates, Inc., BPCS Client/Server Application Software, 1 page. cited by other .
Advertisement, "Rochester Software Connection, Inc., What's fast, fun and does the AS/400?" 1 page. cited by other .
Robert Jourdan, Programers Problem Solver, Prentice Hall, 1986, pp. 369-394, 395-406. cited by other .
The Waite Group, MS-DOS Developers Guide, Howard Sams & Co., 1989, pp. 281-354, 583, 739-748. cited by other .
Advertisement, PC/Computing, Control up to 96 PC file servers with 1 keyboard and monitor using . . . Commander by cybex, p. 433. cited by oth- er .
G. Campbell & J. Heim, PC World. "The Best of Online Services, " Oct. 1993, pp. 225-240. cited by other .
C. Shipley, Personal Computing, Ziff-Savis, "The World at Your Fingertips," Fall 1993, pp. 52-56. cited by other .
J. Burgess, Washington Post Business Magazine Monday Section, Wash Tech, Cybertalk, "Avoiding Highway Robbert," Nov. 1993. pp. 19, 26. cited by other .
K. Neely, Midrange Computing, "Terminal Emulator or Network: a Management Guide," Sep. 1993, pp. 56-60. cited by other .
P. Borsook, InfoWorld, "Enterprise Computing, Internetworking," Feb. 1, 1993, pp. 48-49. cited by other .
F. Derfler & S. Rigney, PC Manazine, vol. 10, No. 15, "From LAN to WAN, Bringing Your Networks Together," Sep. 10, 1991, pp. 106-118. cited by other .
F. Derfler & S. Rigney, PC Magazine, vol. 10, No. 15, "Bridges and Routers, Smart Links Between LAN Segements," Sep. 10, 1991, p. 121-169. cited by other .
M. Thompson & S. Rigney, PC Magzine, vol. 10, No. 15, "Access Servers, Dialing Up the LAN," Sep. 10, 1991, pp. 177-277. cited by other .
J. Salemi, PC Magazine, vol. 10, No. 15, "Bulletin Board Software, Tools for Wide-Area Communications," Sep. 10, 1991, pp. 231-300. cited by other .
M. Stone, PC Magazine, vol. 10, No. 15, "E-Mail Lan Links, Gateway to the World," Sep. 10, 1991, pp. 303-345. cited by other .
F. Derfler & K. Maxwell, PC Magazine, vol. 10, No. 15, "Linking LANs the Media Move the Message," Sep. 10, 1991, pp. 351-374. cited by other .
F. Derfler & K. Maxwelll, PC Magazine, vol. 10, No. 15, "Public Data Networks, Reliable Relays." Sep 10, 1991, pp. 177-227. cited by other .
P. Stephenson, LAN Magazine, "Chip Awat at Viruses," Oct. 1992. pp. 95-102. cited by other .
PC Computing, "Mobile Computing, No-Hassle Solutions for Keeping Files in Sync," Jul. 1993, pp. 218-219. cited by other .
Advertisement, MicroCom (R), "Carbon Copy, #1 in Remote Control." 1 page. cited by other .
Advertisement, Symantec, "The Norton pc Anywhere TM, Controlling Your Desktop PC from a Portable Used to Require a Little Training," 1 page. cited by other .
Microsoft Croporation, Microsoft MS-DOS(R) 6 Users Guide, Chapter 7 "Features for Your Laptop Computer, Using Interlink to Connect Two Computers," Copyright 1993, pp. 161-166. cited by other .
Symantec Crop., The Norton pc Anywhre Users Guide, Copyright 1990, 1991. cited by other .
IBM Corporation, Application System/400.TM., System Introduction, GC1-9766-1, Copyright 1998, 1989. cited by other .
IBM Corporation, Application System/400.TM., Programming : System Reference Summary, SC21-8104-1, Copyright 1988, 1989. cited by other .
IBM Corporation, Application System/400.TM., Programming : Control Language Reference vol. 1, SC21-9775-1, Copyright 1998, 1989. cited by other .
IBM Corporation, Application System/400.TM., Programming : Control Language Programmer's Guide, SC21-8077-1, Copyright 1988, 1989. cited by other .
IBM Corporation, Application System/400.TM., Programming: Database Guide, SC21-9659-1, Copyright 1988, 1989. cited by other .
IBM Corporation, Application System/400.TM., Programming: Data Management Guide, SC21-9658-1, Copyright 1988, 1989. cited by other .
IBM Corporation, Application System/400.TM., Programming: Work Management Guide, SC21-8078-1, Copyright 1998, 1989. cited by other .
IBM Corporation, Application System/400.TM., PC Support: DOS Planning and Installation Guide, SC21-8195-0, Copyright 1990. cited by other .
IBM Corporation, Application System/400.TM., PC Support: DOS Operations Reference, SC21-8195-01 Copyright 1990. cited by other .
IBM Corporation, Application System/400.TM., PC Support: DOS Users Guide, SC21-8199-0, Copyright 1990. cited by other .
IBM Corporation, Application System/400.TM., PC Support: DOS and 0s/2 Technical Reference, SC21-8091-2, Copyright 1'988, 1990. cited by other .
IBM Corporation, Application System/400.TM., PC DOS and 0s/2 Messages and Problem Analysis Guide SC21-8093-2, Copyright 1998, 1990. cited by other .
Berhsad, "Watchdogs: Extneding the UNIX File System," Feb. 12, 1988, pp. 267-275. cited by other .
Needham, "Using Encryption for Authentication in Large Networks of Computers," Dec. 1978, pp. 993-999. cited by other .
Editorial; Computer Audit Update, March 1991 (3 pages). cited by other .
Dolce: "The changing landscape of wide are networking," Telecommunications vol. 25, n4, p. 44, Apr. 1991, (6 pages). cited by other .
"Secure Data Network signs $30 million agreement with PacTel Meridian Systems," May 13, 1991 (3 pages). cited by other .
"Minigrams," Computergram International, n1682, May 23, 1991 (6 pages). cited by other .
Ferrill: "PC-NFS," PC Magazine, vol. 10, n10, p. 328, May 28,1991 (3 pages). cited by other .
White: "Trio of companies agree to clone clients' data and preserve it in `electronic vaults,`"Los Angeles Business Journal, vol. 13, n22, p.14, Jun. 3, 1991 (2 pages). cited by other .
Ratcliffe: "SDN offers clean, well-lighted place for data storage," MacWEEK, vol. 5,n23, p. 27, Jun. 18, 1991 (2 pages). cited by other .
"Los Alamos grants software license to Santa Fe firm," Jun. 20, 1991 (3 pages). cited by other .
"Dantz to unveil new remote backup package," MacWEEK, vol. 5, n25, p. 11 Jul 16, 1991, (2 pages). cited by other .
Murphy: "Taking the disaster out of recovery," Security Management, vol. 35, n8, p. 60. Aug. 1991 (9 pages). cited by other .
Linsdtrom: "UDS Motorola wins major ISDN CPE order," Telephony, vol. 221, n10, p. 17, Sep. 2, 1991 ( 3 pages). cited by other .
Lau: "Don't underestimate value of magnetic media," Computer Canada, vol. 17, n23, p. 47, Nov. 7, 1991 (3 pages). cited by other .
Engel: "Looking out for No. 1," Business Journal Serving Charlotte and the Metropolitan Area, vol. 6, n30, p. 15, Nov. 11, 1991 (4 pages). cited by other .
Snell: "New ways to distribute mainframe storage," Datamation, vol. 37, n24, p67, Dec. 1, 1991 (4 pages). cited by other .
Rudnick: "question of Recognition Heads List of Barriers to Foreign Investment,"Euromoney Slovenia Supplement, pp. 47, Dec. 1991 (3 pages). cited by other .
CompuServe File Search: re "remote backup," "Twin Express 1.1a Serial File Transfer Program." PC Communications, Jan. 12, 1992. (abstract) (1 page). cited by other .
Andrews: "Phone Call Makes Backup Duty Easier Than Ever," Seattle Times, Apr. 14, 1992 (3 pages). cited by other .
Titch: "Changing times in the data marker," Telephony, vol. 222, n16 p. S1 Apr. 20, 1992 (7 pages). cited by other .
Slater: "Disaster planning for the 21.sup.st century," Bankers Monthly, vol. 109, n4, p. 19, Apr. 1992 (4 pages). cited by other .
Cordy: "Security culture," Computer Weekly, May 7, 1992 (4 pages). cited by other .
Flores: "High Technology Computer Culprits Have Given Rise to a New Filed `The Good Guys,`" Seattle Times, Jul. 12, 1992 (4 pages). cited by other .
McHenry: "TRW Ties Data from Macs, Workstations, PCs Together," Lan Times, Sep. 14, 1992, p. 77 vol. 9, issue 17 (4 pages). cited by other .
Seltzer: "Notes form the lab," PC Week, vol. 9 n39, p. 91, Sep. 28, 1992 (5 pages). cited by other .
Vacca: "Masters of Disasters," Network World, vol. 9, n40, pp. 37-46, Oct. 5, 1992 (10 pages). cited by other .
Schneier: "Taking backups out of users' hands," MacWeek, vol. 6, n37, p. 32 Oct. 19, 1992 (5 pages). cited by other .
"Online backup for Vines," Lan Computing, vol. 3, n10, p. 55, Oct. 1992 (2 pages). cited by other .
Schroeder: "Tecmar to announce storage, backup units," PC Week, vol. 9, n46, p. 8, Nov. 16, 1992. cited by other .
Xu et al: "Parallel data vault methods for larger scale stochastic dynamic programming," Jun. 24, 1992; Proceedings of the 1992 American Control Conference (two pages). cited by other .
Phillips: "Electronic vaulting and records centers," Records Management Quarterly, vol. 27, n1, pp. 38-41+, Jan. 1993 (7 pages). cited by other .
"Remote backup storage," Computer Fraud & Security Bulletin, Mar. 1993 (abstract). cited by other .
"Rimage Corporation Purchases P.C. Back-upTechnology, Anticipates Improved First Quarter Earnings," PR Newswire, Apr. 16, 1993 (2 pages). cited by other .
"Merc Exchanges Work on Joint System," Commercial Appeal ( Memphis ), May 18, 1993. cited by other .
Fucini: "Ready for anything," U.S. Distribution Journal, vol. 220, n6, p. 22, Jun. 15, 1993 (8 pages). cited by other .
Dudman: "Getting your back up," PC User, n. 213, p. S18, Jun. 16, 1993 (7 pages). cited by other .
Symantec, The Norton Backup, Version 3 for Windows, "User's Guide" (1993). cited by other .
Symantec, The Norton pcAnywhere for Windows, Version 1.0, "Using Norton pcANYWHERE for Windows" (1993). cited by other .
Future Soft Engineering, Inc., DynaComm, Dynamic Communications, Asychronous Edition, "Users Guide," Edition IV, (1989). cited by other .
Traveling Software, Inc., Laplink Pro, "User's Guide" (1991). cited by oth- er .
IntelliLink Corp., IntelliLink for Windows, "User's Guide," Version 3.0 (1993). cited by other .
Paiindrome Corporation, Network Archivist, Version 2.0, "Operator's Guide," "Network Archivist Handbook," "Hardware Installation Guide," (1991). cited by other .
Palindrome Corporation, Network Archivist, Version 2.Of, "Documentation Update" (1992). cited by other .
Affidavit of Russ Ranshaw, Interactive Gift Express, Inc. v. Compuserve, Incorporated, et al. (Feb. 20, 1997). cited by other .
CNET News.com, "E-Data royalty claims challenged," Jul. 19, 1996. cited by other .
Bowen, Charles and Peyton, David, "How To Get The Most Out Of Compuserve," Second Edition, Bantam Computer Books (Feb. 1996). cited by other .
"The Online Backup Index," updated Jun. 15, 1998, An Index of Online Backup Software . . . vices and Online Back Technology) and associated documents. cited by other .
Little: "Feasibility of a Remote Backup Service," 1992; "University of Colorado" (181 pages). cited by other .
Cosgrove: "The RBS Book LITE "; Mar. 1, 1995; Precision Data Corporation, "Fewer Calories Than Our Other Fine Book" (34 pages). cited by other .
Cheng: "The Analysis of Computer Backup Service: Economics, Optimal Capacity, and Resource Allocation", 1992 (Abstract) (The University of Rochester). cited by other .
Chin: "Networks of Queues with State-Dependent Flows," 1987 (Abstract) (Georgia Institute of Technology. cited by other .
Pirkul: "The Siting of Emergency Service Facilities with Workload Capacities and Backup Service," (Listing) (1 page) (College of Administrative Science, Ohio State University). cited by other .
Pirkul: "The Capacitated Maximall Covering Location Problem with Backup Service," 1987 (Listing) (1 page) ( College of Business, Ohio State University). cited by other .
McConnell: "Put it in a Data Vault," Data Management, vol. 17 No. 7, pp. Jul. 1979 (Abstract). cited by other .
Anonymous: "Data Vaults Secure Tapes at Public Archives," Canadian Datasystems, vol. 14n10; p. 83, Oct. 1982 (abstract). cited by other .
"Dealing with the dark side: disasters and crime," Drug Topics, v. 127, p. 36, May 2, 1983 (5 pages). cited by other .
"Data Storage Companies Riding Crest of the Computer Wave," Boston Globe, Jul. 12, 1983 (2 pages). cited by other .
Schrage: "Personal Computers Networks: Computers Most Useful When They Chat," The Washington Post, Dec. 5, 1983 (4 pages). cited by other .
"New Firms Help Avert Computer Disaster Threat of Business Loss Crates Fast-Growing Field of Data Recovery," Boston Globe, Mar. 12, 1984. (2 pages). cited by other .
Knox: "Insuring That A Computer Problem Won't Be Costly," Philadelphia Inquirer, Jul. 23, 1984 (3 pages). cited by other .
Coy: "Nervous Firms Burying Backup Data in Vaults Thousands of Reels of Magnetic Tape Stored as Precaution Against Computer Failure," The Washington Post, Jan. 26, 1986 (4 pages). cited by other .
Pyramid Technology: New WorkCenter provides Workstation Data/Center Networking, Feb. 6, 1986 (3 pages). cited by other .
"Competition Grows In Off-Site Data Storage Business," San Jose Mercury News, Jan. 15, 1987 (4 pages). cited by other .
Electronic Faulting Aims At Reducing `Loss-Exposure Window ` For Banks, Corporate EFT Report. vol. 8, n15, Jul. 20, 1988, (two pages). cited by other .
Moran: "An Electronic Vault in Time," Computer Decision , vol. 20, n8, p. 30 (Aug. 1988) (4 pages). cited by other .
"Fast Track Announces the World's First and Only Electronic Faculting System," Sep. 28, 1988, (3 pages). cited by other .
"CNT Announces Networking Gateway for IBM Tape Subsystems," News Release, Nov. 1, 1988 (2 pages). cited by other .
Reitman: "Sungard and IBM Talking About Working Together," Philadelphia Inquirer, Dec. 3, 1988 (2 pages). cited by other .
Keough: "Eiectronic Vaulting for Micros, LANs," Computer Decisions, vol. 20, n12, p. 77, Dec. 1988 (3 pages). cited by other .
"Northern Telecom: Northern Telecom Announces Alliance with Novell Inc. to Jointly Develop LAN Operating System Software," Feb. 27, 1989 (3 pages). cited by other .
Jaben: "Disaster Planning--Electronic Faulting: Recordkeeping Kept Safe," Bankers Monthly, v 106, n7, pp. 37-37, Jul. 1989 (abstract). cited by oth- er .
Rosenberger: "Computer Virus Myths," 6 pages (1988). cited by other .
"Secure Data Network Inc. Introduces Nation's First Online PC Data Backup and Retrieval Service," Oct. 31, 1989 (3 pages). cited by other .
"Comdisco Disaster Recovery Services Introduces CDRS NET," Nov. 10, 1989 (3 pages). cited by other .
"Integrity Solutions Announces Real--Time Electronic Vaulting," News Release, Dec. 1989 (2 pages). cited by other .
Kenley: "You Might Never Run Out of Disk Space Again," R & D, vol. 32, n2, p. 110, Feb. 1990 (4 pages). cited by other .
Kamal: The Hybrid Approach: Mixing Satellite With Land-Based Solutions, Communication News, vol. 27, n3, p. 47, Mar. 1990 (4 pages). cited by oth- er .
Rothstein: Disaster Recovery in the New Decade: Retrofit Answers Will Not Make it in the 90s, Communications News, vol. 27, n4, p. 34, Apr. 1990 (4 pages). cited by other .
Kramer: "Central Software Performs Local Backup," PC Week, vol. 7, n24, p. 105 (Jun. 18, 1990) (6 pages). cited by other .
"ARCUS Opens New Facility," Jul. 20, 1990 (2 pages). cited by other .
Squibb Datasafe Systems Offers Online Backup of Data, Worldwide Databases, vol. 2, n11, Nov. 1990 (2 pages). cited by other .
Majorian: "Enhanced network backup in Retrospect Remote," MacWeek, vol. 4, n 42, p. 82, Dec. 18, 1990 (3 pages). cited by other .
Bozman: "Escon an Aid to Remote Disks, " Computerworld, vol. 25,n1, p. 29, Jan. 7, 1991 (3 pages). cited by other .
Boatner: "Finding electronic vaults and network wonders," PC Magazine, vol. 10, n2, p. 280, Jan. 29, 1991 (3 pages). cited by other .
"System Industries posts second quarter earnings," Feb. 21, 1991 (3 pages). cited by other .
Norr: "CARE package takes worry out of backups," MacWEEK, vol. 5, n8, p. 12, Feb. 26, 1991 (2 pages). cited by other .
Noakes: "All business require solid disaster plan," Financial Post, p. 13, Mar. 9, 1991 (3 pages). cited by other .
Mills: "Linking design and manufacturing," Computer-Aided Engineering, vol. 10, n3, p. 42. Mar. 1991 (8 pages). cited by other .
To, C.K. et al., "Knowledge Engineering Approach To Data Centres Disaster Backup/Recorvery Planning," Dept. of Computing Studies Hong Kong Polytechnic, Kowloon, Hong Kong, pp. 241-248, 1989 IEEE. cited by other .
Arneson, David A., "Mass Storage Archiving in Network Environments," Control Data Corporation, Arden Hills, Minnesota. pp. 45-50 (1988 IEEE). cited by other .
Ford, Ric, et al., "Juggling Features and Options in Retrospect," MacWEEK, V5, N10, p. 52 ( Mar. 12, 1991). cited by other .
Kindel: "After the fall: hurricanes, floods and even bombings are forcing computer-dependent businesses to rethink their disaster recovery plans," Financial World, vol. 162, n.13, p. 74, Jun. 22, 1993 (4 pages). cited by other .
Creswell: "Creswell on Communications-Tips & Trends Oct, 1993"; Sep. 25, 1993 (3 pages). cited by other .
Peterson: "Network backup evolves," PC Magazine, vol. 12, n. 16, p. 277, Sep. 28, 1993 (14 pages). cited by other .
Excerpts from IBM New Users Forum, Nov. 1993 (3 pages). cited by other .
Bittner: "Description of Remote Backup Service as Business," Jan. 2, 1994 (11 pages). cited by other.~
Primary Examiner: Cosimano; Edward
Attorney, Agent or Firm:Nixon & Vanderhye P.C.

Parent Case Text



CROSS-REFERENCES TO RELATED APPLICATIONS

This is a divisional application of application Ser. No. 09/644,546, filed Aug. 24, 2000, now U.S. Pat. No. 6,411,943 B1; which is a continuing application of application Ser. No. 09/417,896, filed Oct. 14, 1999, now U.S. Pat. No. 6,327,579; which is a divisional application of application Ser. No. 09/159,492, filed Sep. 23, 1998, now U.S. Pat. No. 6,014,651; which is a divisional of application Ser. No. 08/813,612 filed Mar. 10, 1997, now U.S. Pat. No. 5,901,228; which is a divisional of application Ser. No. 08/145,825 filed Nov. 4, 1993, now U.S. Pat. No. 5,771,354, the entire contents of which are hereby incorporated by reference in this application.

Claims


What is claimed is:
1. A method of distributing software to multiple geographically remotely located Internet computer users having associated computers each communicating via the Internet, said method comprising the following steps: (a) establishing communications via the Internet between a software provider system and multiple geographically remotely located computers; (b) transmitting software over the Internet from said software provider system to said computers for execution, said execution being initiated without requiring user interaction after said software transmitting has completed; (c) communicating information to and from said computers over the Internet regarding requests to purchase and/or try out available software; (d) executing software on said software provider system to accept and process communicated requests; and (e) permitting said Internet computer users to use requested software, said permitting being conditioned at least in part by at least one of: (i) a specified try out period; or (ii) a financial account identifier supplied via the Internet in encrypted form to said software provider system.

2. A method of selling software to customers over the Internet comprising the following steps: (a) providing a software sales service for customers with Internet access, said service using the Internet to communicate with at least one computer user; (b) sending software from the service to a computer of the user in step (a) for execution, said execution being initiated without requiring user interaction after the software has been sent; (c) establishing the user as a customer of the service; (d) sending software and service information to the user; (e) receiving a request to purchase software from the user; (f) authorizing the request received in step (e); (g) allowing the user to download software from the service; and (h) accepting a payment from the user via an encrypted financial account transaction.

3. In a system with at least one computer programmed to provide Internet commercial software services to customers that use a computer with an Internet connection to receive goods and/or services, said system allowing customers to try out and purchase software, said system performing the following steps: (a) establishing communications over the Internet with a computer user, said communications at least in part facilitating the transport of display data, download data, requests, and encrypted transmissions; (b) sending software from said system to a computer of the computer user in step (a) for execution, said execution being initiated without requiring user interaction after the software has been sent; (c) sending information about available software to the computer user; (d) downloading available software to the computer user's computer storage device; (e) allowing the computer user to try out available software for a specified limited period; (f) accepting a request from the computer user to purchase available software; and (g) checking payment authorization and charging an associated fee to an account associated with the computer user.

4. A method of providing a software sales and software update service to customers over the Internet, said method comprising the following steps: (a) providing a software service with Internet access, said service servicing more than one user simultaneously; (b) sending information to a computer of a user communicating with the service over the Internet that enables said computer to display software information; (c) sending software for execution to the computer of said user communicating with the service over the Internet, said execution being initiated without requiring user interaction after the software has been sent; (d) receiving and processing a request from said user to receive software; (e) establishing said user as a customer; (f) allowing a customer established in step (e) to receive software requested in step (d), including determining if said customer should receive said requested software; and (g) downloading at least one file from said service to a computer of said user over the Internet.

5. A method of providing a software update service wherein a software provider system sends updates to an Internet computer user over the Internet, comprising: (a) using the Internet to communicate with the Internet computer user; (b) sending software from said system to a computer of said Internet computer user for execution, said execution being initiated without requiring user interaction after the software has been sent; (c) sending software update information to said Internet computer user; (d) processing a request to receive a software update from said Internet computer user; (e) checking to see if said Internet computer user needs a software update; (f) conditioned on step (e), downloading the software update to said Internet computer user; and (g) executing software that installs said downloaded software update on a computer associated with said Internet computer user.

6. A method of providing software rental services to customers over the Internet, said method comprising the following steps: (a) providing a software rental service with Internet access, said service being capable of servicing more than one Internet computer user simultaneously; (b) sending software over the Internet to an Internet computer user for execution, said execution being initiated without requiring user interaction after the software has been sent; (c) sending information to the Internet computer user over the Internet, said information including software rental information; (d) receiving and processing a request from the Internet computer user to rent software; (e) selectively enabling the Internet computer user to execute requested rental software in a computer associated with the customer while imposing a restriction thereon; and; (f) charging a fee to the customer.

7. A method of providing software rental services to Internet computer users, said method comprising the following steps: (a) providing a software rental service with Internet access, said service being capable of servicing more than one Internet computer user simultaneously; (b) sending information to at least one Internet computer user over the Internet, said information including software rental information; (c) receiving and processing a request from the Internet computer user to rent software; (d) executing requested rental software in a computer associated with the Internet computer user; (e) charging a fee to the Internet computer user; and (f) providing said Internet computer user with the ability to access a database used by at least one other Internet computer user.

8. A method of providing software rental services to Internet computer users over the Internet, said method comprising the following steps: (a) providing a software rental service with Internet access, said service being capable of servicing more than one Internet computer user simultaneously; (b) sending information to at least one Internet computer user over the Internet, said information including software rental information; (c) receiving and processing a request from the Internet computer user to rent software; (d) executing requested rental software in a computer associated with the Internet computer user; (e) charging a fee to the Internet computer user; and (f) providing the Internet computer user with the ability to route data to another Internet computer user.

9. A method for online services that includes: (1) establishing a customer/provider relationship between a computer user and a provider of online backup, online storage, online processing over the Internet; (2) establishing a communications link between the customer and provider using the Internet; (3) validating that the customer is permitted access to the services of the online service provider; (4) making available to the customer some of the data stored within the online service provider's storage over the Internet; (5) conditionally permitting or denying the customer to access the data stored within the online service provider's storage; (6) receiving data from the customer over the Internet to be stored within the online service provider's storage as a backup, restore, and/or archive; (7) logging the customer's use of the services provided by the online service provider; and (8) billing the customer for using the services provided by the online service provider.

10. An Internet download system comprising: a data storage repository containing data for downloading; a communications facility that provides communications with computer users over the Internet; a receiver that processes requests from computer users for downloads; an authorization service that checks authorization of credit card accounts associated with computer users; a security arrangement that conditionally allows computer users to download data; a software downloader that downloads data from said data storage repository to computer users via said communications facility, said data at least in part comprising software for execution, said execution being initiated without requiring user interaction after the download has completed; a commercial data downloader that downloads data from said data storage repository to computer users via said communications facility conditioned at least in part by said security arrangement; a billing service that charges fees to computer users associated with requests processed by said receiver and satisfied by said commercial data downloader; and a payment collector that collects fees charged by said billing service, said fees being collected by charging credit card accounts authorized by said authorization service.

11. A system as in claim 10 further including a database manager that provides computer users with the ability to use a database accessible by at least one other computer user.

12. A system as in claim 10 wherein said software downloaded by said software downloader is executed as if the software is directly accessible by said computer users.

13. A system as in claim 10 wherein said data downloaded by said commercial data downloader includes at least one of software data, information data, multimedia data, video data, image data, sound data, voice data, word processing data, electronic mail data, fax data, and print data.

14. A system as in claim 10 wherein said data downloaded by said commercial data downloader is stored as a data file within storage of said computer users.

15. A system as in claim 10 wherein said data downloaded by said commercial data downloader is accessed by said computer users as a data file.

16. A system as in claim 10 wherein said data downloaded by said commercial data downloader is accessed by said computer users as if the data is directly accessible by software executing in a computer of said computer users.

17. A system as in claim 10 further including a converter that converts data to a different data format before downloading by said commercial data downloader.

18. A system as in claim 10 further including an electronic mail facility that sends email to computer users.

19. A system as in claim 18 wherein said electronic mail facility provides computer users with the ability to route data to another computer user.

20. A system as in claim 18 wherein said commercial data downloader communicates with said electronic mail facility to download data to computer users.

21. A system as in claim 18 wherein said commercial data downloader downloads data to computer users via said electronic mail facility.

22. A system as in claim 21 further including a converter that converts data to a different data format before downloading by said commercial data downloader.

Description

STATEMENT REGARDING FEDERALLY SPONSORED RESEARCH OR DEVELOPMENT

Not applicable.

FIELD OF THE INVENTION

The present invention relates to on-line services for computer users. More specifically, it provides an on-line service that supplies automated information processing services to computer users for a fee. The present invention more particularly relates to an on-line service that allows remote computer users to connect on-line to computer devices (e.g., "virtual" disks) and access them to do such things as run computer software from them.

BACKGROUND AND SUMMARY OF THE INVENTION

It is common for computer users to connect to a large mainframe computer to get computer services. The user has a "dumb" terminal (a keyboard and a display but no processor "brain") connect to the mainframe computer over a telephone line. The user's "dumb terminal" calls up the mainframe and establishes an on-line connection. The mainframe does all the computer processing, and sends the results down the telephone line for display on the user's display. The user is often charged a fee based on the amount of time he is connected to the mainframe.

Many people now have personal computers in their homes and businesses. These "stand-alone" personal computers have taken over the marketplace, and now most computing is done locally within the box that sits in front of the user. This is possible because these personal computers are self-contained units that have their own powerful internal processor "brain," memory and mass storage. Since they can do most computing locally, most computing tasks can be carried out without connecting to another computer over a telephone line.

Even though most computing can be done locally on a personal computer, there is often a need to share information between computers. For example, one computer user may wish to send an electronic mail message ("Email") to another computer user. Similarly, a computer user may want to retrieve a file he (or someone else) previously stored on another computer.

The simplest way to transfer information between computers is to have one of the computers write the information onto a storage device (e.g., a floppy diskette or magnetic tape). This storage device is then physically carried to the other computer, which reads the information. While this approach is simple and low in cost, it is often inconvenient to carry or send a physical storage device to the computer that wants to read the information. In addition, it may take too long to physically move the storage device (e.g., suppose that the two computers are in different states or even in different countries).

Because computer users often demand instantaneous sharing of computer information and cannot wait for someone to send them a floppy disk containing the information, various "on-line" personal computer connections have become popular. The computer user can connect a "modem" (a kind of data transmitter and receiver) between his computer and his telephone line. The computer controls the modem to automatically call the telephone number of another computer, which also has a similar modem connected between it and the telephone line. The two computers can "talk" to one another over the telephone line, and can exchange all sorts of information such as files, Email, and computer programs.

An entire industry of "information providers" (also referred to as "on-line services") has been created to support the need for computers to share information. These information providers automatically answer telephone calls placed by user's computers, automatically respond to information requests, and provide the information over the telephone line to the calling computer. Compuserve, Prodigy and America On-line are all examples of information providers. A computer user can use these on-line services to do useful things such as place a computer want ad, read electronic mail messages, download a new video game program, scan the news wires, get a stock quote, and conference with other computer users about his favorite hobby. The information providers require the user to pay a fee each month. This fee can be a flat, unlimited use fee, or it can be based on the amount of connection time. The user's credit card number is often on record, and his credit card is automatically charged every month.

The information provider maintains a "host" computer system (e.g., a large "mainframe" computer) that automatically answers the incoming call. When a user requests a function to be performed by the information provider, software is run on the host computer system to satisfy the request. Results can be stored on the host for later review or file transfer to the remote personal computer. The user's computer uses "file transfer protocols" and "workstation capture buffer" to receive the data. However, just like with prior "dumb" terminals, user interaction with the host computer system is with the user's personal computer acting as a workstation display terminal. The user is limited to keyboard input and displayed output.

There are also certain products that allow one personal computer to remotely access another personal computer and/or resources connected to the other personal computer. For example, a product known as "PC Anywhere" involves loading software onto two personal computers: the "master" personal computer to be accessed, and the "remote" personal computer that will be doing the remote accessing. The software allows an on-line, real time link to be established via modems and a telecommunications link between the master and the remote. All user inputs (e.g., keyboard and mouse commands) inputted at the remote are passed to the master, and all display outputs (e.g, screen driver inputs) are passed from the master to the remote. The processor of the remote simply passes this information back and forth without doing any other substantive processing on it. Moreover, the on-line session takes control of the remote computer (at least in a single tasking environment) and does not allow the remote user to access other resources of his remote computer. This "PC Anywhere" technique thus allows the remote computer to access all resources (e.g., connections to a minicomputer) that the master can access, but does not permit any substantial degree of co-processing. In other words, the remote personal computer thus acts like a "dumb" terminal, with the master doing all of the substantive processing.

So-called "Bulletin Board" systems also provide on-line services to PC users. These systems typically consist of a dedicated personal computer with a large hard disk to store the software and messages collected from various users. These systems are suitable for sending and retrieving messages, bulletins, programs, and other uses like a forwarding point for customer orders, remote site data collection, software distribution, or on-line product support services. Limited hardware and software costs for these systems has made them a cost effective solution for certain business needs. More frequently, they are used by individuals to send and receive programs and messages. The biggest limitations to these systems are their lack of security controls and their limited capabilities (and corresponding susceptibility to overload) when operated in a multi-user and multi-tasking environment. Bulletin Board systems are also renowned for spreading computer viruses (see discussion below) particularly because virus coders can easily upload their infected programs anonymously.

Another way computer users commonly share information is by logging onto the "Internet," a worldwide network of computers connected together. Nearly every university and many other organizations in the United States have connected their computer systems to the Internet. The Internet is commonly used to transfer electronic mail and files between computers. However, some "server" computers on the Internet also provide automatic computing capabilities to remote users. For example, it is possible to send an electronic mail "request" that a particular "server" computer automatically responds to by sending a electronic mail "reply" containing the requested information. A simple example is for a server to reply to a request by sending a text message or file. On a more complex scale, so-called "Archie" servers can automatically perform a database search based on the request, and send back a list of records that meet the search criteria. It is also possible to send programs from a less powerful computer to a more powerful computer, having the more powerful computer execute the program to generate an output file, and then return the output file to the less powerful computer for review and analysis. A wealth of publications and articles are available that provide much more information about the "Internet" and the so-called "Information Highway."

The Internet is similar to a LAN/WAN in that it was designed to allow many computers of differing types to interconnect and exchange information and programs. The Internet is used to allow computers to interconnect with other computers of similar or different type to exchange information and access programs. Typical access to the Internet is by monthly fee paid to a provider for access. A typical fee might be $200 a month for unlimited access and 50 megabytes of download capabilities. Additional data downloaded would be provided on a per megabtye basis. Other commercial providers on the Internet may charge by the minute for access to their system. An on-line service as described in the exemplary embodiment of this invention could become a commercial provider on the Internet.

Many users connect to the Internet using a protocol called "SLIP" which allows a personal computer to operate as a "dumb terminal" for access to information and services. The Internet provides several layers of access available to remote users. The mail layer allows the exchange of mail between remote system users. The news layer provides various news information typically related to computers such as a new virus loose, or new release information on an upcoming system or hardware product. Telnet is used to provide remote log-on into other remote systems connected to the Internet. NFS (Network File System), RFS (Remote File System) are used to set aside at least a portion of the local system to be available as a file system on the network. Drives on a remote system defined using NFS and RFS are available for mounting by other remote systems on the Internet. Anonymous FTP (File Transfer Protocol) is also available on the Internet to access files residing on a remote system. PPC is also used to provide interconnection between a remote system and the Internet. PPC allows a remote system to be defined by the Internet with a node and is thus assigned a unique address within the Internet system to allow other remote systems to access the remote system defined using PPC.

One problem with the Internet is that a local computer can directly access the resources of another computer, thus allowing a local computer to introduce a boot sector virus, for instance, on the system disk of a remote computer such that the remote computer will become infected the next time the remote computer is booted. NFS and RFS do utilize security controls to set the discretionary (public access as set by user) and mandatory (secured access defined through system maintained security attributes for each object on the system) controls when making a local file system available to the network. A remote user with proper authorities, however, still has direct access to the remote system's storage, however, and so the opportunity exists to transport unwanted data and programs to the remote system. This problem has cause serious consequences in the past (e.g., in 1988 a WORM virus spread throughout the Internet and infected many computers).

"Local area networks" (LANS) are another common way to interconnect computers. Many businesses now store most or all of their important data on a special shared personal computer called a "file server." User computers access the shared file server over a high-speed data network called a "local area network" (LAN) or a "wide area network" (WAN). Briefly, a "local area network" interconnects data equipment within a limited geographical area, allowing user computers to communicate with each other and to share central resources such as printers, data storage, and long distance data communications. LANs are typically interconnected with coaxial copper cable, unshielded twisted pair cable, or fiber optics. Using a LAN to inter-connect computers provides a more efficient and faster means for data transfer than traditional file transfer methods. All users on a LAN can share resources such as printers, storage devices, and telecommunication links to limit costs associated with duplication of data and equipment. A LAN can also improve business functions with interconnected workstations accessing electronic mail and various shared applications such as customer service inquiry.

As an example of using a LAN to share information, suppose a user wants to edit a word processing document stored on the shared file server. The user's computer sends an electronic request for the document over the local area network. The file server receives the request, processes it, and sends the requested document over the network in an electronic message addressed to the user's computer. The user's computer then loads the document into its internal memory for editing. Once edited, the user's computer can store the document locally (e.g., on the user's computer's hard disk or floppy disk drive), or it can write the edited document back to the file server over the network where it can later be retrieved by the same or different user.

The biggest problem with a LAN in today's world is that the user transparently directly accesses resources on a different computer. This leaves open the possibility that a computer "virus" can proliferate without user knowledge and with limited detection capabilities. A computer "virus" is a special kind of computer program that takes over the operation of a computer. Computers can "catch" viruses by receiving executable computer programs from other computers. Some viruses command the infected computer to destroy all stored information. Other viruses are less harmful, but all viruses are potentially damaging in terms of wasting computer resources and annoying computer users. Virus protection software can be loaded onto computers to protect them from virus infections. Unfortunately, this anti-viral software can only protect against the particular types of viruses the software is programmed to recognize and/or behavior common to viruses. A new "strain" of computer virus can entirely escape detection. Therefore, it is necessary to update virus protection software with new versions as often as possible. This becomes expensive and time consuming, and it often becomes an administrative problem to ensure that updates are regularly applied.

Some personal computer users are able to establish connections with minicomputers such as IBM's AS/400 system and its predecessor system the IBM System 36 and System 38. The AS/400, IBM's mid-range computer system, has been successfully marketed by IBM to a wide variety of medium size businesses such as banks and law firms. Although IBM's AS/400 system is typically referred to as a "mid-range" computer, the larger models supporting more than one thousand simultaneous users are actually "mainframes" from the standpoint of storage and processing capabilities. Because personal computers are so common, IBM has developed some sophisticated "PC Support" techniques for allowing local and remote personal computers to "attach" to the IBM AS/400 minicomputer as workstations and also to send and retrieve files and other information.

IBM also introduced a "Virtual Disk" function as part of its "PC Support." This function allows users to access personal computer programs and information by accessing the mini computer as if it were a locally-attached personal computer disk drive. Thus, the minicomputer simulates a local disk drive with a "virtual" or "simulated" disk that actually comprises hardware and software resources of the mid-range computer. In other words, the mid-range computer when attached to the personal computer "looks like" a local disk drive to the personal computer. The personal computer "thinks" it is writing to a locally attached disk drive when actually its data is going through a communications (e.g., telephone) line and gets stored in the memory and/or hard disk of the minicomputer.

Because the personal computer is "fooled" into thinking that the minicomputer "virtual disk" resource is a locally attached disk drive, no significant changes to personal computer hardware and software are needed to interface the personal computer with the minicomputer. For example, it becomes possible for a standard off-the-shelf software program such as Lotus 1-2-3 or WordPerfect to, without modification, read from and write to the disk of the minicomputer. IBM has also provided a "virtual printer" facility that allows personal computers to write to printers attached to the minicomputer while "thinking" they are writing to a locally attached printer.

To install or update the "PC Support" software on a personal computer ("PC"), the user establishes an on-line session between the PC and the IBM minicomputer using special "bootup" software. This bootup software attaches, to the PC, a host virtual disk drive containing the current version of the PC Support software. The software then may be copied from the virtual disk onto the personal computer's local hard disk drive. Alternatively, the personal computer can execute the PC support software from the virtual disk.

When IBM introduced the AS/400, the "Virtual Disk" function was enhanced with the "Shared Folder" function. Shared folders typically contain various different types of files, such as: PC files (both programs and data), text documents (accessible by AS/400 and PC word processors), mail, and data created with Office Vision/400. Personal computer files maintained in a folder are stored in PC format just like PC files. When PC files are stored in a shared folder, the information can be shared by other personal computer users.

In one configuration, the IBM AS/400 can be used with dial-up telephone lines to attach "virtual disks" to remotely located personal computers. Modems are used to provide an interface between the AS/400 and standard dial-up telephone lines. The modems connect to a "communications controller" interface board within the AS/400. This "communications controller" board translates the data streams between the modem and the AS/400. Using these techniques, it is possible to have a remote personal computer call up the AS/400 over a dial up telephone line and attach to a "virtual disk" provided by the AS/400 (this requires both the remote personal computer and the AS/400 to run appropriate "PC Support" software). The personal computer assigns a drive designator (e.g., "E") to the "virtual disk." If the computer user commands the personal computer to write to the "C" drive, the personal computer will write the information to the local PC hard disk. If the computer user, on the other hand, commands the personal computer to write to the "E" (virtual) disk drive, the personal computer "thinks" it is writing to a locally attached "E" disk but is instead sending its data over the telephone line for storage in the AS/400. Reading from the "E" drive retrieves files from the AS/400. The reader is referred to the IBM documentation concerning this function, and in particular, the "PC Support" manuals relating to the IBM System/36, System/38 and AS/400. See also IBM manuals relating to TCP/IP for the IBM RISC 6000 describing the "mount" command supported under the AIX operating system.

File serving in an AS/400 environment provides added anti-viral protection because a user's personal computer never directly addresses another personal computer. Each personal computer can simultaneously access host peripherals, but it cannot directly access another personal computer through the AS/400 using standard DOS interaction. Each personal computer data request is intercepted by PC Support Router software which translates device access into workstation requests. Although a virus can be sent to and retrieved from the host system as part of a program, the virus cannot spread on its own while it is stored on the host. Furthermore, the AS/400 does not execute code stored on virtual disks. PC code does not execute in the AS/400
processor because the AS/400 operating system is different from a personal computer operating system. Moreover, one of the most dangerous types of viruses known as "boot sector viruses" (executable code stored in a "boot sector" of a physical disk drive to provide drive information for the disk to be addressed) cannot be appended to a host drive because host drives are AS/400 objects (files) accessed solely by a router to satisfy various PC requests.

The following is a non-exhaustive but somewhat representative listing of additional prior-issued patents, publications and advertisements related to on-line virtual device computer services and/or virtual devices:

TABLE-US-00001 4,649,479 03/87 Advani et al. 4,982,324 01/91 McConaughy et al. 5,023,774 06/91 Sakai et al. 5,107,456 04/92 Schuur 5,109,515 04/92 Laggis et al.

S. Armbrust et al., PC Tech Journal, Vol. 3, No. 9, "Forward Looking VDI," September 1985, pp 42 53 E. R. Carpenter, IBM Technical Disclosure Bulletin, Vol. 34, No. 10B, "Single System Image With Network File System," IBM Corp., March 1992, pp
408 409 M. Tabes, Datamation, "Managing Storage Across the Enterprise," May 1992, pp 36 40 P. Korzeniowski, Software Magazine, "Back to the Mainframe For Storage of LAN Data," July 1992, pp 73 77 Mark Ludwig, The Little Black Book of Computer Viruses, American Eagle publications, 1991, pp. 11 19, 23 29, 55 68, 69 76, 159 162 R. Waterman, Software Magazine, "Waiting for X500," July 1992, 2 pages R. Brown, Systems 3X/400, "Serving Many Masters," March 1992, pp 68 70 PC Computing, "Test and Evaluation Methods," June 1992, pp 238, 240, 247 248 and 262 Advertisement, "Data Rx," 1 page Price list, "Tape Backup," 1 page Advertisement, "Let's Talk.RTM., Tired of the Runaround?," 1 page Advertisement, "PC/TCP.RTM. Plus," 1 page Advertisement, News 3X/400, "Mimix Hi-Net, Lakeview Technology Inc.," September 1991, p 140 Advertisement, Network Innovation, "Server Based Backup," 1 page Advertisement, News 3X/400, "PC File Mail," November 1991, p 74 Advertisement, "HandsOn Software, Monarch 36/400J lets PC users get their hands on mid-range data," 1 page Advertisement, Andrew, "NetLynx.TM.: LAN Connectivity by the Numbers," 1 page Advertisement, "Innovation.RTM. Data Processing, FDR. Your DASD Management System," 1 page Advertisement, "Maynard.RTM., Maynard Delivers a Super Bundle," 1 page Advertisement, "Central Point Software Inc..RTM., Never Underestimate the Importance of Complete Protection," 1 page Advertisement, Business Communications, Gazelle, "Backup While You Work," June 1992, p. 436
Advertisement, "Works," 1 page Advertisement, "Intel.RTM., Introducing fax software that can send, receive and run with your faxes, 1 page Advertisement, "LapLink, With LapLink you're only a phone call away," 1 page M. Tischer, PC Systems Programming, Abacus, April 1993, pp. 157 171, 208 12, Appendix B and C Robert Jourdan, Programers Problem Solver, Prentice Hall, 1986, pp. 369 394, 395 406 The Waite Group, MS-DOS Developers Guide, Howard Sams & Co., 1989, pp. 281 354, 583, 739 748 Advertisement, PC/Computing, "Control up to 96 PC file servers with 1 keyboard and monitor using . . . Commander by cybex, p 433 Advertisement, PC/Computing, "SequeLink.TM., MiddleWare.TM.: Open Windows for Client/Server Computing," p 427 Advertisement, "System Software Associates, Inc., BPCS Client/Server Application Software, 1 page Advertisement, "Rochester Software Connection, Inc., What's fast, fun and does the AS/400?" 1 page

One of the greatest limitations to existing on-line services is that no provisions are available to execute host based software on the remote user's system directly or for a user's locally executing application to directly access storage on the host system. The present invention provides an on-line service and associated equipment which solves these and other problems.

A presently preferred exemplary embodiment of this invention provides the following advantageous features: A multi-user host provides a wide variety of on-line services to a plurality of remote computers via virtual device attachment. Virtual peripheral devices are attached to the remote customer computer via an on-line, temporary telecommunications link (e.g., a dial up telephone line) in the context of an on-line service. Customers can load executable code stored on host virtual devices directly into customer or "replica" server memory for execution without file transfer. Device drivers executed by the customer computer automatically manage I/O requests to replica server and host virtual devices as though they were locally attached devices. An automated recovery feature periodically (e.g., incrementally) archives the customer computer mass storage data onto a host "virtual disk drive." When recovery is necessary (e.g., due to failure of the local mass storage device), the customer computer may be initiated using a special boot diskette to boot the computer and automatically attach to the host virtual disk--thereby permitting the customer computer to operate essentially normally despite the failure of its local mass storage device. Software distribution can be provided on two levels. "Execute only" access to an executable program stored on host-provided virtual storage allows the user to run the program from time to time and/or permit the user to try the software out to determine whether a local copy is needed. Execute only access loads directly into the customer computer or replica server memory without creating an intermediate disk copy. Upon paying a fee, the user is granted copy access to permit downloading the file onto the customer computer local mass storage. Virtual storage device access includes automatic anti-virus detection in real time. The most recent anti-virus software releases are provided so that new virus strains will be detected while relieving the user from having to constantly update anti-virus software. Unattended access/attachment to the host (e.g., at a scheduled time during off peak hours) performs routine tasks such as incremental backup/archiving. Automatic diagnostic capabilities inform the customer about hardware and/or software problems with their computer. The host may route information between users and/or physical or virtual devices (e.g., to permit multiple users to have shared access to a common database, or customers to move information from one computer to another). On-line virtual output facilities such as production printing, facsimile, and electronic mail can be economically provided on a "pay as you go" basis. The host provides automatic billing capabilities and security facilities. User authorization to access the host may be granted by a "sign-up" system. The "sign-up" system may create a configuration file including password and other access information, and download the file to the user's workstation. Initial charges may be collected via a user-supplied credit card number. Alternatively, access to the "sign-up" system may be via a "special pay" telephone number (900) such that compensation is received by the service provider from the user via the telephone company billing system. A sophisticated signal process. A dialing pattern sent to a customer computer (e.g., a certain number of calls, certain number of rings each call, a certain wait period between each call) triggers the customer computer modem to switch into answer mode. Upon answer, an access code is optionally sent to the customer's computer that identifies a reason for the host call (i.e., dial back verification, host task completed on behalf of customer, mail or data waiting for download to customer, etc.). The host computer flags a customer record indicating the customer computer answered at the appropriate time (dialing pattern match), thereby allowing the customer computer to access the host. A Customer Signal file is used to queue the dial-up requests. This allows the host to trigger the customer to call the host when needed, and also allows the customer to be certain that only his computer can access the service. When the customer calls the service first, the service hangs up and queues a dialing pattern to be sent to the customer. Only when the customer computer answers after a certain dialing pattern will the host computer allow the customer entry. The customer accesses the service, but only after the host flags a dialing pattern match. If the host dials the customer first and gets a pattern match, then the customer can access the system immediately without this dialback sequence. A computer of similar type to the customer (Off-line "Replica" Computer) performs tasks that require an identical processor type to the customer, thus freeing the customer computer to perform other activities. Request data is written by the customer and read by the Replica computer to perform these tasks. The Replica computer task has access to data secured by the user but available only to the customer and the replica task (i.e., routing disks, etc.). Prompts and information are supplied before the request is queued, and the replica computer automatically enters the necessary keystrokes to achieve the task using the prompted information stored with the request data. A Replica Request file is used for the data. A 900 area code phone number is used for pay access to services. A customer processor executes commands from the host. All requests for services are initiated by a host command that in turn may execute a customer computer processor command. Host based anti-viral programs are loaded and executed in the customer processor to protect access to programs and data. Virtual devices to allow the execution of host based software within the customer processor. Host Request information maintained in a Host Request File causes commands to execute on the host which may in turn cause commands to execute within the customer processor. A host based controlling command for each service option and a router security intercept program which track the start and end time for billing purposes whenever a command executes within the customer processor. Media, documents and the like can be converted by using a replica of the customer's computer running translation or conversion software against data stored in virtual devices by the customer. The service allows customer access to on-line service data by the customer computer processor by attaching to the data as a virtual drive. Data and programs can be rented by using a host control program to restrict attachment to virtual disks holding the data and programs. A host command is used to direct the router to initiate execution of a specified program in the customer's processor. Data and programs can be purchased/licensed by moving them from a restricted virtual disk to a virtual disk created for and owned by the customer using a host control program. Automated release update services maintain a table of software owned by the customer that is allowed to be updated. Release update data and programs can be transferred from a restricted virtual disk to the customer computer disks or virtual disks using a host control program. A security program verifies types of access to restricted virtual devices attached by a control program but currently accessed by a program executing within the customer's processor. Control information is transferred between the host computer and the customer computer to manage on-line service requests. A host controlling program executes programs in both the host processor and customer processor separately or at the same time within a given process to achieve desired results. Programs residing on the host system but executed within the customer processor are executed as though they are directly available to the customer computer operating system using a host control program. In the case of on-line service access via special charge telephone numbers, Telco's use On-line Service billing time and access charges to assess fees which appear on the customer's Telco statement. Request completion information is maintained on the host. This information is displayed to the customer on subsequent accesses, or the customer is alerted of a completion by sending a dialing pattern and access code to identify the type of message or trigger the customer computer to call the on-line service. The customer computer automated access program can identify a lockup condition and break out of the task to continue with additional requests. The host computer identifies a lockup condition and cancels the program or session to allow the customer computer to continue with additional requests.

BRIEF DESCRIPTION OF THE DRAWINGS

These and other features and advantages provided by the present invention can be more completely and better understood by referring to the following written description of a presently preferred exemplary embodiment in connection with the drawings, of which:

FIG. 1 schematically shows an on-line service system connected to a user's personal computer in accordance with the preferred embodiment of the present invention;

FIG. 2 illustrates various examples of services provided by the preferred on-line service system of FIG. 1;

FIG. 3 schematically illustrates the components within the preferred on-line service system and the customer computer;

FIG. 4 is a detailed schematic diagram showing various different arrangements for connecting the on-line service system to customer computers;

FIG. 5 is a schematic diagram showing one example of remote disk drive sharing in the preferred embodiment;

FIG. 6A schematically illustrates overall functional connections provided by the preferred embodiment on-line computer system to make virtual devices available to the customer computer and other system components;

FIG. 6B schematically illustrates overall functional connections provided by the preferred embodiment on-line computer system to process customer computer signalling;

FIG. 6C schematically illustrates, on a high level, the basic way in which the preferred on-line computer system handles on-line service requests;

FIG. 6D schematically illustrates, on a high level, the basic way in which the preferred on-line computer system handles off-line service requests;

FIG. 6E schematically illustrates different processing functions performed by the host computer, replica computer and customer computer in the preferred embodiment;

FIG. 7 schematically illustrates, on a more detailed level, some of the major tasks performed by the customer computer in the presently preferred embodiment;

FIGS. 8A and 8B schematically illustrate, on a more detailed level, some of the major tasks performed by the host computer system in a preferred embodiment;

FIG. 9 schematically illustrates, on a more detailed level, some of the major tasks performed by the replica computer in the preferred embodiment;

FIG. 10 is a high level flow chart of exemplary tasks performed by the customer computer in the preferred embodiment during startup;

FIG. 11 is a schematic flowchart of the "re-direct interrupt" block of FIG. 10;

FIG. 12A is a schematic flowchart of exemplary keyboard interrupt handler tasks in the preferred embodiment;

FIG. 12B is a schematic flowchart of exemplary timer interrupt handler tasks in the preferred embodiment;

FIG. 12C is a schematic flowchart of exemplary communications interrupt handler tasks in the preferred embodiment;

FIG. 13 is a schematic flowchart of exemplary tasks performed by the customer computer during an on-line session with the on-line service system in the preferred embodiment;

FIGS. 14A 14H are more detailed schematic flowcharts of the "begin customer server router" block of FIG. 13;

FIG. 15 is a flowchart of exemplary program control steps of the "security check" block of FIGS. 14A 14H;

FIGS. 16A 16C are schematic illustrations of exemplary data structures maintained by the customer computer in the preferred embodiment;

FIG. 17 is a schematic flowchart of exemplary program control steps performed by the host computer in the preferred embodiment;

FIG. 18 is a flowchart of exemplary program control steps performed by the "begin host security program" block shown in FIG. 17;

FIGS. 19A and 19B together are a flowchart of exemplary program control steps performed by the host computer system as part of the "begin signal customer task" block shown in FIG. 17;

FIGS. 20A 20B together are a flowchart of exemplary program control steps performed by the host computer system of the preferred embodiment to effect the "begin host request task" block shown in FIG. 17;

FIGS. 21A 21E together are a flowchart of exemplary program control steps performed by the host computer system in the preferred embodiment to effect the "begin customer session" block shown in FIG. 17;

FIG. 21F is a flowchart of exemplary program control steps performed by the host computer system in the preferred embodiment to effect the "begin off-line replica session" block shown in FIG. 17 to manage the operations of an off-line replica computer;

FIGS. 22A 22G schematically show exemplary data structures maintained by the host computer system in the preferred embodiment;

FIG. 22H schematically shows some of the request options available to on-line service customers in the preferred embodiment;

FIG. 23 is a flowchart of exemplary program control steps performed by the on-line replica computer in the preferred embodiment;

FIGS. 24A 24J together are a flowchart of exemplary program control steps performed by the replica computer of the preferred embodiment to effect the "begin replica server router" block of FIG. 23;

FIG. 24K is a flowchart of exemplary program control steps performed by the preferred embodiment replica computer to effect the "security check" block in FIGS. 24A 24J;

FIG. 25A schematically illustrates exemplary data structures stored by the replica computer in the preferred embodiment;

FIG. 25B schematically illustrates some of the requests managed by the customer and replica server router programs in the preferred embodiment;

FIG. 26 is a flowchart of exemplary program control steps performed to boot up and operate the off-line replica computer in the preferred embodiment; and

FIG. 27 is a flowchart of exemplary program control steps performed by a preferred embodiment on-line service sign-up computer in order to issue new account numbers for the on-line service.

DETAILED DESCRIPTION OF A PRESENTLY PREFERRED EXEMPLARY EMBODIMENT

I. Customer Computer On-line Service Needs

FIG. 1 shows a preferred example of a customer computer 50 accessing an on-line service system 100 in accordance with a presently preferred exemplary embodiment of this invention. Customer computer 50 may for example be a standard personal computer including a main processor unit 52, a display 54, a keyboard 56, and a mouse 58. Main processing unit 52 typically includes a floppy disk slot (drive) 60 that reads floppy diskettes 62. Customer computer 50 performs tasks for a user under software control, and displays the results of the tasks on display 54 (an optional printer can be connected to main processing unit 52 in order to print out the results). New software can be loaded onto customer computer 50 by storing the software on floppy diskette 62 and inserting the floppy diskette into disk slot 60 so that it can be read by the main processor unit 52. The user operates keyboard 56 and mouse 58 to interact with the software tasks performed by computer 50.

Customer computer 50 as described above is a self-contained, stand-alone unit that is capable of performing a wide variety of processing tasks without having to be connected to any other computer equipment. For example, the user can run a word processing program to key in new documents for storage within the main processor unit 52. The user can also perform financial calculations using a spreadsheet program, and store the results of the calculations again within main processor unit 52. Depending upon the software loaded into main processor unit 52, the user may be able to perform a wide variety of additional software tasks such as, for example, video games, check book management, graphics generation program, etc. The variety of different tasks customer computer 50 is capable of performing is determined by the availability of software needed to perform the tasks.

Although customer computer 50 is capable of doing many different tasks all by itself, it has certain limitations. For example, there may be no printer attached to customer computer 50 such that it is not possible to print out hard copy of the results of the processings performed by the customer computer. Even with a printer, it may take a very long time to print out certain results and the user may not want to tie up his printer for such a long time. Similarly, the user may not wish to spend the money to buy various expensive peripheral equipment that could be connected to customer computer 50 (e.g., Fax boards, CD ROM drives, voice boards, multi-media equipment, etc.) but would nevertheless like on occasion to have some of the capabilities associated with this added equipment.

Another serious limitation of customer computer 50 relates to the amount of storage it has. Typically, a so-called "hard disk" within main processor unit 52 is used to store all of the data generated by the customer computer 50 as well as all of the software to be executed by a customer computer. Auxiliary storage capabilities are provided by floppy disk slot 60 and floppy diskettes 62. Unfortunately, the hard disk internal to main processor unit 52 may run out of space to store additional data or programs, or it may fail and lose all of the data it previously stored. The user can "back up" the data stored on the internal hard drive using floppy diskettes 62, but this can be a long and tedious process and the user may sometimes forget to do it. The user could, of course, upgrade his customer computer 50 by adding additional internal or external storage devices, but this would be expensive and might not be cost effective. Nevertheless, the limitations on the storage capabilities of customer computer 50 may be troublesome to the user at times (e.g., if a hard disk failure does occur, of if the user wants to try out a new program but does not have the space on his hard drive to load the new program onto it).

Another limitation of customer computer 50 relates to the variety of different software it can run. Customer computer 50 can only run software that has been loaded onto it. In order to perform a new function or task, the user must obtain floppy diskettes 62 containing a new program from a software store, and then use floppy disk slot 60 to input the new software to main processor unit 52 (e.g., to load the new software onto the internal hard drive within the main processor unit 52). If the new software is a big program, this loading process can take a lot of time. In addition, the loading process may be confusing to the user. Moreover, there is no convenient way to "try out" or temporarily rent or use software with customer computer 50. For this reason, the user of customer computer 50 may only be able to run a relatively small number of programs, and it is difficult to add new programs to that limited repertoire.

Another problem that the user of customer computer 50 commonly confronts is outdated software. Most software companies are constantly improving their offerings. Each time a new version of software becomes available, the user must obtain the software on floppy diskettes and go through the time-consuming and sometimes confusing process of loading the software onto main processor unit 52 via diskettes 62 and floppy disk slot 60. This is especially a problem with certain software that must be updated constantly in order to remain effective. For example, it is a good idea for the user to run virus detection software on customer computer 50 in order to prevent the computer from catching viruses introduced when new software is loaded onto the computer. Because new "strains" of viruses are always being developed, and because virus protection software is typically effective only against those particular strains it has been programmed to recognize, it is essential for the virus protection software to be updated as often as possible so as to be able to detect even the newest strains. This is very inconvenient for the user, since it requires the user to constantly procure updated versions of the virus protection software and load them onto customer computer 50.

II. On-line Services Give Customer Computer What it Needs

These and other problems and difficulties are eliminated when customer computer 50 connects to an on-line service system 100 provided by the preferred embodiment of the present invention via a data link 150 as shown in FIG. 1. Data link 150 may comprise a dial up telephone line or other similarly convenient telecommunications link that allows customer computer 50 to be located remotely to the on-line service system 100. The on-line service system 100 provides various capabilities (e.g., data storage, program storage, processing, and input/output devices) that enhance the operations of customer computer 50 in order to solve the drawbacks and problems mentioned above. On-line service system 100 provides software and computing services to customer computer 50 in return for fees. Such software and services can be extremely valuable to the user of customer computer 50 in that they provide enhancements to the operation of the customer computer that were available either not at all or only through great expense and/or inconvenience.

FIG. 2 is a schematic illustration of some of the various capability enhancements that on-line service system 100 can provide to customer computer 50, including the following: Anti-Viral Services (block 200) are provided by accessing anti-viral software stored on virtual disk. Anti-viral programs can be copied or executed directly. Anti-viral updates offer customers the latest anti-viral technologies. Offsite Archival Services (block 202) are performed by accessing virtual disk drives. Customer files inactive for a specified period are automatically copied to on-line service virtual disks for offsite archiving. Many disks of varying size can exist for each customer. Virtual disks are mounted and customer files are copied to their original customer disk for restoration. Virtual disks inactive for a specified period can be copied to on-line service tape for long term offsite archival. A virtual disk can be considered an offsite archival storage area. Every customer file could be stored on virtual disk with directory structures maintained. A diskette 62 can be provided to boot a customer computer and connect to the on-line service and boot a virtual disk copy of the customer computer system disk. An advantage virtual disks provide for offsite archival is that remote storage is accessible as if locally attached. Diagnostics and Maintenance Services (block 204) include various programs stored on virtual disks to checkout, troubleshoot, and enhance the customer computer 50. Diagnostic programs can detect problems with memory or system board components. Peripheral management programs can be used for testing, alignment, storage maintenance, etc., to improve device throughput. Hardware errors detected by diagnostic programs during a customer automated session can trigger repair service based on a maintenance agreement. Electronic Media Services (block 206) are designed to facilitate media transport by using an on-line service with virtual disks. Files stored in originating media format (WP, Fax, Image, etc.) can be copied to a customer "routing" virtual disk. A customer computer 50 accessing a virtual disk can convert a file from one media format to another (i.e., Fax to WP, WP to voice, etc.). On-line service peripherals provide further services such as transmitting to a fax unit or distributing a printed report. Customer Drive Services (block 208) allow customer access to virtual disks under on-line service session control. A customer can have multiple virtual disks mounted at the same time. During the course of an on-line session, a customer can mount and dismount many different virtual disks. Virtual disks can be shared by multiple users or by groups of users. Virtual disks can be made public to all, or secured for single user access. Program & Information Rental Services (block 210) are provided by offering secured access to host virtual disks with rental programs and data. Access security software protects against unauthorized copying. One time, per use, and/or time charges are assessed for information and program access. Program & Information Sales Services (block 212) are provided by copying software from a protected virtual disk to a customer's local or virtual disk upon receipt of payment. Demos can be offered by copying software to a temporary customer virtual disk. The temporary disk is deleted if payment is not received within a specified period. Demos common to all customers can be provided by accessing a shared, execute only virtual disk. Software Update Services (block 214) are provided by attaching to virtual disks and copying files to customer disks. A control program automatically determines the software or data to update. Batch files are typically used to automate the release update process, particularly when changes in configuration definition are required. "One Time" Services (block 216) describes services for providing undefined users access to on-line services. Charges for a one time customer on-line service access appear on the customer telephone bill. Customer access for one time services is also provided by generic user ID. These generic user ID's are only allowed when the controller's modem is attached to a Telco pay exchange phone number in the preferred embodiment. The one time customer can access most on-line services except offsite archival. III. Preferred System Architecture

FIG. 3 is a schematic illustration showing internal components within customer computer 50 and on-line service system 100. As described above, customer computer main processor unit 52 includes a floppy diskette drive 60a having the slot 60 shown in FIG. 1. In addition, the main processor unit 52 includes an internal hard disk 64, internal random access memory 66, a processor 68 and input/output ("I/O") controllers 70. I/O controllers 70 allow communication between the main processor unit 52
and external peripherals such as keyboard 56, mouse 58, and additional optional external peripheral equipment (e.g., a tape drive 72, a Fax unit 74, a printer 76, and/or a CD ROM drive 78) Main processor unit 52 also includes a modem 80. A modem is a conventional device which allows customer computer 50 to communicate over data link 150 with another computer having a similar modem. In the preferred embodiment, on-line service system 100 includes a modem 102 that is connected between data link 150
and a host computer 104.

Host computer 104, which comprises an IBM AS/400 in the preferred embodiment, includes one or more main processors 106, internal random access memory 108, peripheral controllers 110, and communication controllers 112. Peripheral controllers 110
allow main processor 106 to communicate with various peripheral devices such as, for example, one or more high-speed printers 114, one or more mass storage disks 116, and other mass storage devices such as a tape storage device 118. Additional peripheral devices such as CD ROM drives, Fax machines and the like (block 120) may be also be provided and coupled to main processor 106 via the peripheral controller 110. In addition, one or more local display devices 122 may be connected to host computer 104 to allow local control over the host computer. The AS/400 is preferred as host computer 104 in the preferred embodiment due to its flexibility in terms of providing a multiprocessor system with object based security, workstation emulation, and virtual device access. However, other types of computers providing the required functionality could be used instead.

FIG. 4 represents some common communication links 150 available to on-line service customers. A host computer 104 is shown with various attached peripherals including disk 116, tape 118, and printers 114. Communications Controllers 112 attached to the host computer 104 include digital (ISDN), Public Data Network (X.25), LAN Attachment Card, ASCII controller 112a, and customer replica computer 160 running host workstation emulation software. Each controller 112 is connected (with or without modem 102) to a telecommunication relay station 124a. Data may be transmitted between two switching stations 124a, 124b by several means including satellite 126, fiber optic link 128, microwave link 130, Public Data Network 132, or cable TV link 134.

For example, Customer computer 50(W) accesses system 100 via LAN attachment card 82 connect or remote session gateway connect (not shown). Customer computer 50(X) connects to the host with an ISDN digital link 84. Customer computer 50(Y) uses a modem 80b to connect to the host computer ASCII workstation controller 112a or the replica server computer 160. Customer computer 50(Z) connects to the on-line service using a coax cable connection 86.

FIG. 4 shows that data link 150 may comprise up to three different "layers" of connection: the first layer or sub-link connects host computer 104 to switching station 124a; the second "layer" connects switching station 124a to switching station
124b; and the third "layer" connects switching station 124b to a customer computer 50. A customer may connect the on-line service system 100 by many different methods. These methods may evolve as advances in telecommunications become available. For example, each of the various layers may comprise any of ISDN link, LAN/WAN connect, a "front end controller," another computer, a telephone company connection, a direct connection, a fiber optic link, a cable television link, cellular link, a satellite link, a radio frequency link and/or a PDN connection. The three layers can also comprise varying cable mediums and software bridges, gateways, routers and/or emulations.

On-line service system 100 also includes at least one (and typically many) "replica computer" 160. Replica computer 160 is connected to host computer 104 via communication controllers 112, and is also capable of connecting directly to customer computer 50 via a modem 162. Replica computer 160 is the same type of computer as is customer computer 50 and thus may be used to perform the same types of processing that customer computer 50 is capable of performing. This replica computer 160 adds processing capabilities to host computer 104 (which may be a different type of computer not capable of executing the same software that customer computer 50 is capable of executing).

In the preferred embodiment, replica computer 160 is capable of operating in an on-line mode or in an off-line mode. In the on-line mode, the replica computer 160 communicates interactively with customer computer 50 to perform processing tasks. In this on-line mode in the preferred embodiment, the customer computer 50 and the on-line replica computer 160 cooperate to support processing in either and/or both processors (shared access to data buffers and a record locking scheme is used to ensure safe access). In the off-line mode, replica computer 160 performs personal computer tasks in response to direction from host computer 104 without having an on-line, interactive link with customer computer 50.

In the preferred embodiment, the replica computer(s) 160 is locally attached to host computer 104 using workstation emulation hardware/software (e.g., a 5250 emulation card for connection to an AS/400 host computer). The replica computer 160
connects to the customer computer 50 with personal computer communications software using modems connected to communications ports COM1 on each of the computers.

The on-line replica computer 160 is used to facilitate customer access to host computer virtual disks by seamlessly integrating a replica of the customer computer into the communications link 150. The replica computer 160 loads device drivers and runs communications software to establish a host session and access host virtual disks. "Dual redirection" of drives provides the replica computer 160 with access to drives of customer computer 50, and also provides customer access to replica drives (including, for example, host virtual disks). The presently preferred exemplary embodiment of this invention provides a disk sharing utility between replica computer 160 and customer computer 50. In this unique arrangement, the local hard drive 164 of the replica computer 160 can be "attached" to customer computer 50, and the customer computer local hard drive 64 can be "attached" to the replica computer 160. This allows the replica computer 160 to write to and read from the customer computer local hard drive 64 and also allows the customer computer 50 to write to and read from the replica computer local hard drive 164. Combined with controlled redirection of keyboard, mouse, video and printing, execution during a replica computer 160 on-line session can occur in the customer computer 50 or replica computer with user transparency.

The off-line replica computer 160 performs tasks on behalf of the customer without a customer connection. Batch requests including parameters and script file data are stored in a Replica Request file (maintained by host computer 104 in the preferred embodiment) with a date/time to execute. The Off-line Replica computer 160 accesses the host computer with special authorities to certain customer virtual disks. The Off-line Replica computer 160 reads Replica Request data and when the time condition is met, the request is processed as if it were performed by the customer.

IV. "Virtual" Disks

In the preferred embodiment, host computer 104 may provide one or more "virtual" disk drives to customer computer 50. In addition, in the preferred embodiment on-line replica computer 160 may provide one or more "virtual" disk drives to customer computer 50, and the customer computer may provide one or more "virtual" disk drives to the on-line replica computer. In the context of this patent specification, a "virtual device" is an arrangement that "simulates" or "emulates" a locally-attached, physical device. For example, a "virtual disk drive" can be an arrangement (e.g., some combination of local and/or remote hardware and/or software) that "looks like" a physical disk drive. In the preferred embodiment, "virtual disk drives" allow the customer computer 50 to access resources as if those resources were actually a physical disk device locally attached to the customer computer. Since the customer computer 50 and its associated operating system and application software is already conditioned to efficiently access locally attached physical disk drives, the customer computer 50 can very easily access the "virtual disk drives" without any change in operating system or application software or additional overhead (other than software needed to support the virtual disk drive). Since the "resources" that emulate the locally attached physical drive to create the "virtual disk" can comprise, in part, a data link 150 and resources remotely located to the customer computer 50, virtual disks can provide great flexibility in allowing customer computer 50 to very efficiently access remotely located computer storage. Since in the preferred embodiment, the host computer 104 and/or replica computer 160 controls this remote storage, "virtual disks" provide an efficient means to allow the customer computer 50 to have access to particular data in a manner chosen by the operators of system 100.

One example of a "virtual disk drive" provided by the preferred embodiment is a "virtual disk drive" that host computer 104 attaches to customer computer 50. Although host computer 104 may have several physical disk drives 116, those drives typically are not directly accessible by the operating system of customer computer 50, and in any event are remote to the customer computer and hence cannot be directly accessed by the customer computer as one of its local drives. Host-provided "virtual disks" are actually "objects" (e.g., files or some other data structure) stored by host computer 104. These objects may be physically stored on host disk 116 and/or host random access memory 108. Through software executed by host computer 104 and cooperating software executing on customer computer 50 and/or replica computer 160, these virtual disks can be "attached" to customer computer 50 and/or replica computer 160, and appear to those computers 50, 160 as additional, locally attached physical drives. In other words, the operating systems of computers 50, 160 can access these virtual disks in the same way they access a locally attached physical disk drive. Thus, customer computer 50 operating system can write to and read from a virtual disk in essentially the same manner that it can write to and read from its own local hard disk 64. In addition, the host computer 104 can supply commands and/or programs on the virtual disk for execution by the customer computer 50 in order to provide remote control features. For example, control programs stored on host computer 104 read-only virtual disks can be used to set "processor flags" on the customer computer 50 and the replica computer 160. Other control parameters on the customer or replica computers are similarly changed by control programs stored on host virtual disks. These programs are typically called by a command issued by host computer 104 used to execute personal computer commands in the attached personal computer (replica computer
160 or customer computer 50).

Host computer 104 can create a "virtual disk" from memory resources, disk resources or typically, both memory and disk resources. Information written by customer computer 50 to a host computer "virtual disk" is typically temporarily stored within host computer memory 108, and is eventually more permanently stored on host physical disk ("DASD") 116 for later retrieval by the host, the customer computer that stored the information, or some other customer computer. The operator of system 100
can, of course, store information onto host virtual disks (e.g., by inputting the information via a replica computer 160) so that the information can be accessed by customer computer(s) 50. Communications software and device driver programs executing on customer computer 50 cooperating with communications and other software executing on host computer 104 make it possible for the customer computer to access these host computer memory and disk resources as if they were a physical, locally attached disk device. Although the host computer 104 can also manipulate and process data objects stored on such "virtual disks," it typically cannot execute an executable PC file stored on the virtual disk because in the preferred embodiment the host computer has a different operating system than does customer computer 50A.

Host computer 104 provides "virtual disk drives" to customer computer 50 and replica computer(s) 160 in the preferred embodiment through use of conventional software available from IBM. In the preferred embodiment, host computer 104 comprises an IBM AS/400 mid-range computer providing "PC Support" virtual disk, print and other associated functions. As explained above, the IBM-provided PC Support Software makes it easy to attach a "virtual disk" or virtual printer to a remote or local personal computer such as customer computer 50. For DOS machines, "PC Support" requires that certain device drivers (EIMPCS.SYS and ECYDDX.SYS) are resident in the memory of the customer computer 50 or replic