`
`(19) World Intellectual Property Organization
`International Bureau
`
`
`
`
`
`|I||||||||I||||||||||||||||||l||lllllfll|||||||l||||||||l|||l l||||l|||||
`
`(43) International Publication Date
`27 September 2001 (27.09.2001)
`
`{10) International Publication Number
`
`PCT
`
`W0 (ll/71992 A2
`
`(5]) International Patent Classificationfi
`
`H04L 1258
`
`(74) Agent: CARLSON, Brett, A.; Snell S: Wilmer I..I..P.,
`One Arimna Center, Phoenix, AZ 85004—2202 (US).
`
`(2]) InternationalApplication Number:
`
`PCTIUSOIIOQISS
`
`(22) International Filing Date:
`
`-2 March 2001 (22.03.2001)
`
`(25) Filing Language:
`
`(26) Publication Language:
`
`English
`
`English
`
`(30) Priority Data:
`601'19 i ,085
`
`22 March 2000 (22.03.2000)
`
`US
`
`(71) Applicant (for all designated States except US): OMNI-
`POD, INC. [USflJSl; 4L East 11th Street, New York, NY
`10003 (US).
`
`(72) Inventors; and
`(75) InventorstApplicants (for US only): OPPENHEIMER,
`David [USIUS]; 3348 Buckeye Lane, Fairfax, VA 22033
`(US). LIMPEROS, Kevin llJSiUSI; #1, 14th Street, Apt.
`60?, Hoboken, NJ (17030 (US). HUNT, Matthew IUSIUSI;
`55 Park Terrace East, Apt. B-Sl, New York, NY 10034
`(US).
`
`(81) Designated States (national): Ali, AG, AL, AM, AT, AU,
`AZ, BA, BB, BG, BR, BY, BZ, CA, CH, CN, CR, CU, CZ,
`DE, DK, DM, DZ, l-lli. 158, 1’1, GB, GD, GE. GH, GM, HR.
`l-lU, ID, IL, IN, IS, JP, KE, KG, KP, KR, KZ, LC, LK, LR,
`LS, LT, LU, LV, MA, MD, MG, MK, MN, MW, MX, M2,
`NO, NZ, PL, PT, RO, RU, SD, SE, SG, SI, SK, SL, TJ, TM,
`TR, TT, T2, UA, UG, US, UZ, VN, YU, 2A, 2W.
`
`(84) Designated States (regional): ARIPO patent (Gil, GM,
`KE, LS, MW, MZ, SD, SL, SZ, ’12, U6, ZW), Eurasian
`patent (AM, AZ, BY, KG, KZ, MD, RU, TJ, TM), European
`patent (AT, BE, CII, CY, DE, DK, ES, FI, FR, GB, GR, IE,
`IT, LU, MC. NL, PT, SE, TR), ()APl patent (BF, BJ, CF,
`CG, CI, CM, GA, GN, GW, ML, MR, N15, SN, TD, TG).
`
`Published:
`without internationat‘ search report and to be republished
`upon receipt ofthat report
`
`For two—tetter codes and other abbreviations. refer to the "Guid—
`ance Notes on Codes and/I bbrevt'att'ons " appearing at the begin—
`ning ofeach regular issue oft/1e PCT Gazette.
`
`(54) Title: INTEGRATED SYSTEM AND METHOD OF PROVIDING ONLINTi ACCESS 'llO FILES AND INFORMATION
`
`290
`
`\N
`
`-5
`
`208
`
`
`
`
`
`210
`
`assassinsiAPPtJ-QIIFINI
`//
`
`
`28
`
`r5,":
`TE] 0'
`
`14
`
`(57) Abstract: An integrated communications system for exchanging data messages on a data network suitably includes an interface
`configured to receive said data messages via the data network; a plurality of application servers configured to process data messages
`and to create output messages in response thereto; and a messenger service configured to route data and output messages between the
`application servers and users. A method for exchanging data messages on a data network suitably includes receiving data messages at
`an interface: routing data messages from the interface to an application server with a messaging service; processing the data messages
`at an appropriate application server to create output messages in response thereto; and providing output messages to a recipient via
`the messaging service. An exemplary client application suitably includes a network interface module configured to send and receive
`messages via a digital network; a file transfer modulo configured to transfer data files between a local storage medium and a remote
`Storage medium via the network interface module; an instant messaging module configured to transfer instant messages between
`the user and another user via the network interface module; and a user interface module configured to display data files and instant
`messages for the user, and to accept inputs from the user.
`
`GOOGLE 1007
`
`|||l||||||||||l|||||||||||||||||||||l||||||||||l|||||||||l|l||||||||||||||||||||
`WO01/71992A2
`
`1
`
`GOOGLE 1007
`
`
`
`W0 011'71992
`
`PCTIUSOII09153
`
`Integrated System and Method of Providing Onh'ne Access
`to Files and Information
`
`FIELD OF THE INVENTION
`
`The invention relates generally to systems and methods for providing digital content via
`
`a computer network. More particularly, the invention relates to user interfaces for searching,
`
`obtaining, viewing and processing files and information via a computer network such as the
`
`Internet.
`
`BACKGROIWD
`
`Digital networks such as the Internet have greatly revolutionized information sharing betWeen
`
`individuals, corporate departments, and the like. Applications such as email, the World Wide
`
`Web (WWW), file transfer, remote logon and the like have greatly simplified the way people
`
`communicate and have greatly increased the amount of information available to various users.
`
`As the amount of information increases, however, many users have noticed that finding and
`
`using such a large volume of information can become unwieldy. Personal information managers
`
`such as the Microsoft Outlook product available from the Microsofi corporation of Redmond,
`
`Washington, for example, provides integrated access to calendar, schedule and email
`
`information. Such programs typically utilize proprietary protocols for information access and
`
`retrieval, however, making their use over a public network (e.g. the Internet) impractical.
`
`Similarly, such programs typically do not provide file transfer services or storage of files and
`
`data in a convenient location on the newtork. in recent years, many new services have
`
`attempted to expand the functionality of digital networks such as the Internet. The Napster
`
`service, for example, provides free access to literally millions of free digital audio files that are
`
`distributed amongst millions of users throughout the globe. The Napster service is limited to
`
`2
`
`
`
`W0 01(71992
`
`PCTIUSDIKNISS
`
`MP3 files, however, and does not provide a seamless integration of multiple applications.
`
`Similarly, the America Oniine (AOL) and other internet provider services provide email and
`
`instant messaging functionality through the Internet, but do not typically integrate fiinctions
`
`such as calendar, email, file sharing, instant messaging and the like into a common application
`
`so that data may be easily processed and shared. Moreover, new services such as Idrive and
`
`Xdrive provide remote file sharing, but do not otherwise integrate user fimctionalities into a
`
`common application. It is therefore desired to create an application that integrates file sharing,
`
`instant messaging and the like into a common application. It is additionally desired that such an
`
`application would store information remotely on a digital network so that information is
`
`available to users accessing the application from home, work, travel, or the like.
`
`BRIEF DESCRIPTION OF EXEMPLARY EMBODIMENTS
`
`An integrated communications system for exchanging data messages on a data network
`
`suitably includes an interface configured to receive said data messages via the data network; a
`
`plurality of application servers configured to process data messages and to create output
`
`messages in response thereto; and a messenger service configured to route data and output
`
`messages between the application servers and users.
`
`A method for exchanging data messages on a data network suitably includes receiving
`
`data messages at an interface; routing data messages from the interface to an application server
`
`with a messaging service; processing the data messages at an appropriate application server to
`
`create output messages in response thereto; and providing output messages to a recipient via the
`
`messaging service.
`
`An exemplary client application suitably includes a network interface module
`
`configured to send and receive messages via a digital network; a file transfer module configured
`
`to transfer data files between a local storage medium and a remote storage medium via the
`
`3
`
`
`
`W0 01(71992
`
`PCTIUSDIIHSHSIS
`
`network interface module; an instant messaging module configured to transfer instant messages
`
`between the user and another user via the network interface module; and a user interface
`
`module configured to display data files and instant messages for the user, and to accept inputs
`
`from the user.
`
`BRIEF DESCRIPTION OF THE DRAWING FIGURES
`
`The above and other features and advantages are hereinafter described in the following
`
`detailed description of illustrative embodiments to be read in conjunction with the
`
`accompanying drawing figures, wherein like reference numerals are used to identify the same
`
`or similar parts in the similar views, and:
`
`Figures 1A and 1B are user interfaces for an exemplary pod application;
`
`Figure 2 is a block diagram for an exemplary server system;
`
`Figure 3 is a flowchart of an exemplary login process;
`
`Figure 4 is a flowchart of an exemplary data transfer operation;
`
`Figure SA is a user interface for an exemplary instant message function;
`
`Figure 5B is a flowchart for an exemplary instant message function;
`
`Figure 6A is a user interface for an exemplary file transfer fiinction;
`
`Figure SB is a flowchart for an exemplary file transfer function; and
`
`Figures 7A—E are user interfaces for other exemplary functions of an exemplary pod
`
`application,
`
`DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS
`
`Various embodiments of the invention provide a computerized tool (referred to herein as
`
`a “pod application , pod”, “client , client application” or simply “the application”) for users
`
`to View, share, modify, communicate, create and!or store information via a digital network. The
`
`4
`
`
`
`W0 0]!"11992
`
`PCTIUSOII09153
`
`pod application suitably performs various functions in conjunction with a server, which may be
`
`in logical communication with the pod application Via a computer network such as the Internet,
`
`a corporate intranet, an extranet, or the Hire.
`
`Exemplary functions performed by various embodiments of the pod application may
`
`include file management; browsing and searching a file system or a network; sending and
`
`receiving emails and instant messages (EMS); participating in chat rooms; managing and
`
`maintaining personalized buddy lists; playing multimedia files such as video, audio or other
`
`multimedia files; providing users with security control and application customization; providing
`
`scheduling and/or calendar functions; linking to advertisements for web pages, other pod
`
`applications, products, services or the like; viewing pods belonging to other users or services;
`
`dragging and dropping files or other information between pods; and providing a tool for
`
`creating customized skins to have the pod reflect user personality. Pod applications may also
`
`integrate multiple fimctionalities described above such that file sharing, instant messaging,
`
`email and the like (for example) are handled by a single common application. In various
`
`embodiments, data for the pod application is stored on a network server so that users have
`
`seamless access to their data from multiple computers, remote locations, while travelling, and
`
`the like. The pod application may further have the effect of building a community of users, all
`
`interacting through a common platform for sharing information and exploiting the network to
`
`its fullest.
`
`The systems and processes described herein may be described herein with reference to
`
`fimctional block components and various processing steps. It should be appreciated that such
`
`functional blocks may be realized by any number of hardware and/or software components
`
`configured to perform the specified fiinctions. The systems described herein, for example, may
`
`employ various client and server computers including conventional hardware components, e. g,
`
`memory elements, processing elements, logic elements, look-up tables, and the like, which may
`
`5
`
`
`
`W0 01(71992
`
`PCTIUSDIKNISS
`
`carry out a variety of functions under the control of one or more microprocessors or other
`
`control devices. Similarly, the software elements described herein may be implemented with
`
`any programing or scripting language such as C, C-H~, Visual C-H- (available from the
`
`Microsoft Corporation of Redmond, Washington), PASCAL, Java, assembler, PERL, PI-IP, any
`
`database programming language or the like, with the various algorithms being implemented
`
`with any combination of data structures, objects, processes, routines or other programming
`
`elements. Similarly, the invention could be used in conjunction with any type of personal
`
`computer, network computer, workstation, server, minicomputer, mainframe, or other computer
`
`running any version of Windows, MacOS, BeOS, Linux, UNIX, Solaris or any other operating
`
`system. Further, it should be noted that the present invention might employ any number of
`
`conventional techniques for data transmission, signaling, data processing, network control, and
`
`the like. For example, radio frequency (RF) or other wireless techniques could be used in place
`
`of any network technique described herein. Moreover, although the invention is frequently
`
`described herein as being implemented with TCPfEP communications protocols, it will be
`
`readily understood that the invention could also be implemented using IPX, Appletalk, [P3, IP-
`
`6, NetBIOS, OSI or any number of existing or future protocols.
`
`It should be appreciated that the particular implementations shown and described herein
`
`are illustrative of the invention and are not intended to limit the scope of the invention in any
`
`way. Indeed, for the sake of brevity, conventional data networking, application development
`
`and other functional aspects of the systems (and components of the individual operating
`
`components of the systems) may not be described in detail herein. Furthermore, the connecting
`
`lines shovvn in the various figures contained herein are intended to represent exemplary
`
`functional relationships, logical relationships and!or physical couplings between the various
`
`elements. It should be noted that many alternative or additional fimctional relationships or
`
`physical connections may be present in a practical system.
`
`6
`
`
`
`W0 0]!"11992
`
`PCTIUSOIIOQIS3
`
`Figures 1A and 1B show user interfaces suitable for use with an exemplary client
`
`application 100 (also referred to herein as a “pod application”). With reference to Figure 1A,
`
`client application 100 may be a computer application, applet, or other program that runs on a
`
`client computer (such as a personal computer, personal digital assistant, network computer,
`
`workstation or other computer). In an exemplary embodiment (such as the embodiment shown
`
`in Figure 1), client application 100 executes on a personal computer running any of the
`
`Windows operating systems available from the Microsoft Corporation of Redmond,
`
`Washington, the MacOS operating system available from the Apple Corporation of Cupertino,
`
`California, the LINUX operating system available from a number of free sources, or any other
`
`operating system.
`
`Figure 1A shows an exemplary pod application interface in a “closed” or “compact”
`
`state. With continued reference to Figure 1A, client application 100 suitably includes a central
`
`display window 102, expansion buttons 104 and 106, advertisements 108, fimction activation
`
`buttons 110, a help button 112, and/or window minimize and close buttons 116 and 114
`
`(respectively). Central display window 102 may interface with a conventional browser
`
`application such as any version of the Internet Explorer available from Microsoft or Netscape
`
`Navigator available from the Netscape Corporation of Mountain View, California.
`
`In such
`
`embodiments, central display window suitably displays files in HTML, PDF or another suitable
`
`format. Expansion buttons 104/ 106 expand the interface to client application 100 as
`
`appropriate, and as described more fiilly below in conjunction with Figure 1B. Optional
`
`advertisements 108 may be graphical images in GIF, TIFF, JPEG or any other format, and may
`
`be linked via hypertext to web pages on the Internet or another network. In other embodiments,
`
`advertisements 108 may be eliminated or may be re-configured to provide links to web sites or
`
`data services, links to departments or other services available via a corporate internet, or for any
`
`other purpose. Function activation buttons 110 may be selected by a user to choose a particular
`
`7
`
`
`
`W0 01(71992
`
`PCTIUSleflSlISS
`
`service or application desired. Exemplary function activation buttons 1 10 suitably include
`
`buttons to activate email 110A, playing multimedia files 110B, calendar 110C, file sharing and
`
`searching 110D, messaging 110E, pod utilities (such as changing skins, passwords, etc.) 110F,
`
`and pod search functions 110G. Optional help button 112 may provide a link to a help menu or
`
`display that may be showu in display window 102 as requested by the user. Such a help display
`
`may provide information about using client application 100, configuration issues,
`
`troubleshooting, and the like. Window close and minimize buttons 114 and 116 are
`
`conventional buttons associated with many applications for closing or minimizing the interface
`
`to client application 100, and these buttons may be altered, replaced, or eliminated depending
`
`upon the particular embodiment and operating system being run by the user. Of course the
`
`displays and interfaces discussed herein are for explanatory purposes only, and may vary
`
`significantly from embodiment to embodiment. Certain buttons (such as expansion buttons)
`
`may be moved, changed or eliminated in other embodiments, for example. Similarly, function
`
`activation buttons 110 may be augmented, replaced, or altered significantly depending upon the
`
`particular functions provided by any particular embodiment of client application 100.
`
`Moreover, various embodiments provide the ability to create “skins” or customizable interfaces
`
`to client application 100. Such customizations may be performed with a development tool
`
`(such as a skin development kit (SDK) and may be stored on a server, as described more fully
`
`below.
`
`Figure 1B shows a user interface for an exemplary “expanded” view of client
`
`application 100. With reference to Figure 1B, client application 100 has been expanded in
`
`response to user activation of expansion buttons 104 and 106 to reveal a contacts window 120
`
`and a data management window 122. Of course not all embodiments of client application 100
`
`are expandable, and many forms of expansion to reveal additional data windmills could be
`
`formulated. With reference again to Figure 113, contacts window 120 may include lists of
`
`8
`
`
`
`W0 0]!"11992
`
`PCTIUSOII09153
`
`other pod applications of interest to the user, such as pods belonging to fi'iends, family,
`
`“buddies”, coworkers, office or department mates, or the like. Window 120 may also include
`
`buttons to add new buddy groups or pods to the list, to open or delete pods already in the lists,
`
`to send an email or instant message to another pod, to obtain more information about a pod (e. g.
`
`a “pod profile”) or any other fiinctions as appropriate. Data management window 122 suitably
`
`includes menus or lists for managing an email inbox, files stored within client application 100,
`
`messages, multimedia files (such as MPEG, MP3, streaming audio or video files, or the like).
`
`A trash list for discarded files, messages, emails and the like may also be provided.
`
`To use client application 100, a user suitably selects a function from function select
`
`buttons 110 and provides input as appropriate via display window 102, contacts window 120,
`
`data management window 122, or the like. To send an instant message to another pod
`
`application user, for example, a user might select messaging button 110E, then select a message
`
`recipient from a buddy list in window 120. Display window 102 suitably prompts the user to
`
`enter a message via a keyboard and mouse, pen input, or other input device, and the message is
`
`appropriately sent. Various embodiments also allow the user to attach a file (such as a graphics
`
`or sound file) to the message by selecting the file from data management window 122. Files
`
`and other data associated with each user’s client application 100 may be stored on a server on a
`
`digital network so that flies, data, messages and the like are available from any location where
`
`the user obtains access to the network. A user may access the same pod from computers at
`
`home and work, for example, as well as from airport kiosks, personal digital assistants, and the
`
`like. Because information associated with client application 100 may be stored on a network
`
`server, the data is available to the user from any location having access to the network.
`
`Figure 2 is a block diagram of an exemplary system 200 for integrated processing of
`
`various applications supported by pod applications 100. With reference to Figure 2, pod
`
`applications 100A and 100B suitably communicate with server system 204 via digital network
`
`9
`
`
`
`W0 0]!"11992
`
`PCTIUSOII09153
`
`202. Digital network 202 may be any digital communications network such as the Internet, a
`
`corporate intranet, an extranet, the public switched telephone network (PTSN), a wireless or
`
`optical network, or any other communications network. Computers running conventional web
`
`browsers 204 or other network applications such as email, file transfer, remote logic and the
`
`like may also use network 202 in tandem with pod applications 100, and indeed multiple pod
`
`applications 100, internet browsers 204, and the like may reside on a single computer system
`
`operated by a particular user.
`
`Server system 204 suitably includes a firewall 206, a load balancer 208, a Web server
`
`222, a messaging service 210, application servers 212, a database 218 and an optional
`
`additional storage device 220 communicatively coupled via a server network 214. Server
`
`network 214 may include various local area or wide area network segments, and may work in
`
`conjunction with one or more high speed data switches 216 such as a gigabit Ethernet switch.
`
`In an exemplary embodiment, the various components of server system 204 are connected via a
`
`gigabit Ethernet network 214 that is controlled by a Cisco model 6509 or similar Ethernet
`
`switch 216, although of course other switches or architectures could be used in alternate
`
`embodiments. NetWork 214 may be isolated from network 202, as appropriate, by a suitable
`
`firewall 206 that restricts data packets from passing between the two networks. Exemplary
`
`firewall packages include the P1X product available from the Cisco Corporation, and ma}r be
`
`used to limit traffic penetrating into netw0rk 214 from network 202, thereby making network
`
`214 more resistant to security breaches, Security may also be improved in various
`
`embodiments by encrypting data communications between server system 204 and pod
`
`applications 100A—B. Encryption may take placing using any form of symmetric, asymmetric,
`
`elliptical or other cryptography technique such as secure sockets layer (8 SL) encryption, data
`
`encryption standard (DES) encryption, RSA encryption, or the like.
`
`10
`
`10
`
`
`
`W0 01(71992
`
`PCTIUSDIKNISS
`
`Optional load balancer 208 is any device capable of receiving data packets passing
`
`through firewall 206 from network 1202 and of forwarding the packets to an appropriate
`
`messaging or application server for processing. Load balancer 208 performs “load balancing"
`
`functions so that workload is suitably assigned between redundant servers to lessen the
`
`possibility of one or more servers becoming overburdened while other servers are underutilized.
`
`Exemplary load balancer hardware is available from the Cisco, F5 or Nortel corporations, as
`
`Well as several others. Load balancing may also be performed in software running on a router,
`
`workstation or other computing device. Load balancer 208 may be eliminated or modified in
`
`certain embodiments that do not use redundant servers or that do not expect traffic to
`
`overburden the servers used.
`
`Primary functionality of the server system 204 is provided by one or more server
`
`computers coupled to network 214. The use of multiple servers allows for customization and
`
`expandability of server system 204.
`
`In an exemplary embodiment, server system 204 includes
`
`one or more messaging servers 210A—C associated with messaging service 210, one or more
`
`application servers 212A—C, a database server associated with database 218 and optional
`
`streaming servers (not separately shown in Figure 2). The various servers may be configured in
`
`a “publish/subscriben mode such that client applications 100 place requests into “mailboxes”
`
`associated with the various servers. Similarly, results of processed requests may be placed into
`
`mailboxes associated with other applications or particular client applications 100 as described
`
`more fully below. Server functionality may be implemented as logically distinct processes on a
`
`common hardware device, or may be implemented across a number of workstations or other
`
`computers linked via network 214. Although any computing device could host one or more
`
`servers in server system 204, in an exemplary embodiment the various servers are hosted on
`
`Model E4500 or Netra Tl server platforms avaiiable from Sun Microsystems, or with products
`
`available from Compaq, IBM, and others.
`
`10
`
`11
`
`11
`
`
`
`W0 01(71992
`
`PCTIUSDIKNISS
`
`Message service 210 is any messaging application capable of providing communication
`
`services between pod applications 100 and server system 204, as well as between the various
`
`servers Within system 204.
`
`In various embodiments, messaging service 210 suitabiy acts as a
`
`software router for the varioas messages via a system of message queues (ie. mailboxes)
`
`associated with the various applications, client programs, and other elements operating within
`
`system 200. Exemplary embodiments of message service 210 may be implemented with the
`
`Tempest Messaging System (TMS) available from Tempest Software Inc. of New York City,
`
`New York. Alternatively, message service 210 may be implemented with the WebLogic
`
`product available from BEA, Inc, the Microsoft Transaction Server available ficm Microsoft,
`
`with products available from IBM or Tibco, or with any other messaging service. Messages
`
`sent by and within message server 210 may be in any format, such as the extensible markup
`
`language (XL/EL.) format.
`
`Application servers 212 are any servers capable of processing data messages from pod
`
`applications 100 to produce appropriate results. Exemplary application server fiinctions
`
`include processing instant messages, processing file transfers, processing email or calendar
`
`entries, and the like.
`
`In an exemplary embodiment, application servers 212 suitably receive
`
`data messages from pod applications 100 and return processed results messages to appropriate
`
`pod applications 100 via messaging service 210. Exemplary processes executed at applications
`
`servers 212 for instant messaging and file transfer applications are discussed in additional detail
`
`below in conjunction with Figures 5 and 6, respectively.
`
`Various embodiments suitably redirect processing of certain fiinctions to servers outside
`
`of network 213 in addition to or in place of applicationprocessing taking place within network
`
`214. Email, calendaring and/or streaming multimedia processing, for example, may be
`
`processed at servers maintained by external vendors.
`
`In such embodiments, application servers
`
`212 may be configured to forward service requests through firewall 206 to remote servers on
`
`11
`
`12
`
`12
`
`
`
`W0 0]!"11992
`
`PCTIUSOII09153
`
`network 202, for example. Alternatively, messaging service 210 may suitably forward such
`
`requests directly or indirectly to the remote site.
`
`Database 218 is any data structure or repository capable of maintaining information
`
`about users, client applications, files stored within system 200, or the like. Database 218 may
`
`be implemented with any hierarchical, relational, obj act-oriented or other database such as with
`
`database products available from Sybase, Oracle, IBM or Microsoft. In an exemplary
`
`embodiment, database 218 is an Oracle database that suitably maintains information about
`
`individual pod applications and files stored within the system in a format that is readily
`
`retrievable by the various application servers 212. Database 218 may be associated with an
`
`appropriate database server (not shown in Figure 2) to provide network interface, query
`
`processing, and other fiJnctionality.
`
`Storage device 220 is any mass storage device (such as one or more RAID systems)
`
`capable of storing files and other data used within system 200.
`
`In an exemplary embodiment,
`
`files uploaded from the various users are processed with a suitable hashing algorithm (such as
`
`the MD4 or MDS algorithm) to create a 128~bit digest corresponding to the file. The digest
`
`may then be used to identify the file within the system, and may be used to identify duplicates
`
`of the same file (since any duplicates will typically have an identical digest). In such
`
`embodiments only a single copy or" the file need be stored on device 220. By storing multiple
`
`copies of pointers to the file as metadata within database 218, multiple users may be provided
`
`with access to a single copy of a file, thus reducing the total amount of storage space used by
`
`system 204. Storage space may be further reduced through the use of hardware or software
`
`compression techniques prior to storage.
`
`Optional Web server 222 is any conventional web or other Internet server that is capable
`
`of serving pages over the World Wide Web. Such pages may be useful for promoting system
`
`200 to new users, for providing troubleshooting information or answers to frequently asked
`
`12
`
`13
`
`13
`
`
`
`W0 01(71992
`
`PCTIUSDIKNISS
`
`questions, and for distributing the client application 100, as described more fully below. Such
`
`fimctionality may be omitted in various embodiments of the invention.
`
`Figure 3 is a flowchart of an exemplary process for logging into server 204 from a client
`
`application 100. With reference now to Figure 3, an exemplary process suitably begins with a
`
`user activating a client application 100 on a client computer (step 3 02). As discussed briefly
`
`above, users may obtain a copy of a client application 100 by retrieving the program with a
`
`conventional web browser 204 by “surfing” or otherwise connecting to Web server 222. Web
`
`server 222 may provide a copy of the client software to the user through the file transfer
`
`protocol or any other appropriate technique.
`
`When client program 100 is installed and activated, the user may be prompted to
`
`provide an authentication credential such as a userid/password, digital signature or the like.
`
`The credential may be manually entered by the user or obtained from a smartcard, fingerprint
`
`reader, retina scan or the like. After the credential is obtained, the client application 100
`
`suitably contacts server system 204 via network 202 with a request for connection (step 304).
`
`As the request is allowed through firewall 206, load director 208 suitably identifies an
`
`appropriate messaging server 210A-C that has available processing capacity and forwards the
`
`request to a message queue associated with logins on that server. Messaging server 210
`
`suitably retrieves the request from the queue and processes the login request as appropriate
`
`(step 306). Processing the request suitably includes checking the authenticity of the digital
`
`credential against an entry in database 218, creating a mailbox on the messaging server 210, and
`
`replying to the client application 100 indicating whether the login was successful. Messaging
`
`server 210 may also store the address of the client mailbox in database 218 or in a routing table
`
`maintained elsewhere in system 204 so that other messages, queries, users, and the like can find
`
`the particular client application 100 after it is logged in.
`
`In various embodiments, the client
`
`13
`
`14
`
`14
`
`
`
`W0 01(71992
`
`PCTIUSDIKNISS
`
`mailbox created on messaging server 210 remains at a constant location throughout the login
`
`session, referred to as a “sticky connection”.
`
`After the login process is complete, server system 204 provides various information to
`
`the client application 100 from database 218. An interface skin, buddy list, file list (or portion
`
`of a file list) and other information may be downloaded to client application 100 if such
`
`information is not already locally stored. System messages (which may be in HTML format,
`
`for example) may also be downloaded and displayed in display window 102 of client
`
`application 100. Server 204 may also log the user into an email and/or calendar system, as
`
`appropriate. The user is then ready to use the client application 100. An optional “heartbeat”
`
`monitor may also be provided which “pings” or otherwise detects the continued presence of
`
`client application 100 on network 202 at a r