SYSTEM AND METHOD OF PERMISSIVE DATA FLOW AND APPLICATION TRANSFER

Abstract: A method for improving interface efficiencies between networking devices is provided. An enabling code is downloadable to the local computer device. This enabling code allows terminal emulation by a client computer as thin mode (112) which may access application software on server (116) or support some level of fat-client (110) support for a software application which may be used by the client user (118). A configurable database may also be provided and is made accessible to registered users.

Description: SYSTEM AND METHOD OF PERMISSIVE DATA FLOW AND APPLICATION TRANSFER Cross-Reference to Related Applications This application claims the benefit of U.S. Provisional Application No. 60/152,721, filed September 8, 1999, U.S. Provisional Application No. 60/152,756, filed September 8, 1999, and U.S. Provisional Application No. 60/193,599, filed March 31, 2000. Field of the Invention The invention relates generally to data flow among computing devices and networks, and more particularly to techniques for improving the flow of information, especially applications and marketing data, among the computing devices and networks. Background of the Invention Within the field of computing devices and software generally, there is a desire to provide greater access to data for an ever-increasing volume of users. This is due to various factors, but one important factor relates to the much greater demand for such services by users, as well as economic considerations of large user populations and marketing to such populations. In the specific area of consumer preferences and marketing data, data gathering has been fractured and dominated generally by larger corporations with the polling means and other resources necessary to accomplish the large-scale tasks of reaching sizable populations. Moreover, these corporate or private polling providers have generally then utilized such consumer information for a relatively small range of marketing purposes and marketing vendors. It would be desirable to provide extensive marketing and preference information about numerous subjects, allowing for various degrees of subject control, and make this information available to interested parties such as marketers, within the explicit or implicit license granted by the subjects of the information. It is recognized, however, that in order to integrate and establish such an exceptional service for vast numbers of subjects, it may be necessary to motivate provide incentives to such subjects to register to receive means to facilitate transfer of the data via the communication nets. Because of the dominance of the personal computer and desktop devices, as well as laptop devices, onto which are loaded very large scale computer applications consisting of millions of lines of source code. Because of their size, such applications require large amounts of memory and relatively high cycle speeds of CPU operation in order to run satisfactorily. However, in the 1980's and 1990's, with the popularity of the Internet and world-wide web, there has also arisen a general desire to have dramatically improved interoperability between systems, as well as improved simultaneous communications interfacing and network among an increased number of users. Unfortunately, the ultimate providers of the marketing information, i.e., the members of the population consisting of the owners of the desktop and laptop PCs in the worldwide economies, are generally enslaved by the operating systems or application programs they run. This is due to a cost dominance which makes it impractical for most users to switch from one system to another once purchased and installed or used in each individual's computing device. Similarly, the vendors of the legacy programs, which typically require large investment costs to purchase, and may require unique operating systems, have tended to maintain user loyalty by coercive practices which provide limited choices to customers. What is needed is a way in which various computing platforms may operate in a unified environment. A universal computing environment may make it possible to provide marketing subjects, as discussed above, to register to receive such means to facilitate transfer of the data via the communication nets. Within the field of computing, there are numerous problems which prevent efficient flow of data among computing devices. Indeed, as the demand for ever-larger application programs continues, and the attendant requirement for greater memory to service these applications accompany such demand, systems for interfacing and operating computing devices become increasingly challenged to keep pace. As a result, whenever data flow is desired, for example the download of application or other programs onto computers from a remote computing device, substantial delays typically ensue which accumulate to vast aggregate inefficiencies throughout the various economies of the world. These inefficiencies contribute to a loss of resources such as time, computing power, human potential, opportunity costs, and others. These lead to a need for more efficient management and cost-effective interface among computing devices. Computing systems or interfaces have been devised which operate in a so-called "thin client" mode, i.e., one in which a user terminal or computer may be relatively less powerful than a typical existing PC. The thin-client mode of operation may provide for all application execution to take place at the server. In this type of thin client, the client acts essentially as a terminal emulator, using a commercial network such as the Internet, to submit input to the application running at the server level, and displaying the output of the executable resident on the server. This mode of operation is comparable to a mainframe terminal. Alternatively, a thin client computer may use the communications network to obtain application code, or other executable code, i.e., programs, to enable application operation at the thin client. However, the object code of the program is not permanently stored at the thin client. Typically, if executable code is actually downloaded to a client, only a portion of an application's executable code resides on the thin client at one time. The efficiencies of the thin client mode of operating a computing device stem from the manner in which a large size program may be accessed remotely, with the large size program not being downloaded to the computing device of the user. Instead, the large program is accessed remotely by that computing device user (and likely by other users simultaneously as well). This affords substantial efficiencies to the user, but results in inefficient operation of the server or other control means which allocates user availability and resources of the communications net. This, of course, is a function of the limited number of users that can be utilizing such resources of the communications net at any one time. Another development within the software industry is increasing user demand and/or supplier desire for more efficient modes of software delivery to the consumer, chiefly through software downloads over the ftp or http protocols on the Internet. However, while software downloads are available, users are becoming increasingly used to instant gratification of their desire to receive digital content on on-line services, without waiting for extensive downloads. Of course, modern software, born of in-the-large style programming and consisting of literally millions of lines of source code, and correspondingly large executable files following compilation, can take considerable time to download, even on a connection with relatively high bandwidth, such as DSL or cable modems. Furthermore, extensive download waits make it impractical to switch between a thin- and fat-client environment. An additional problem occurs when computer users in locations remote from each other attempt to share data files, e.g., word processing "document" files, among themselves. Many viruses are spread via e-mail attachments, particularly where the native application for the attachment file utilizes macros, i.e., executable code running within the native application that is embedded within a data file. Accordingly, as a securing- , —, precaution many companies have prohibited all e-mail attachments. Furthermore, many Internet Service Providers have file attachment size limits of from one to five megabytes. It would be desirable to provide remote user access to data files of arbitrarily large size without sending the file itself, and without the necessity of the recipient ever downloading the file. The originators of some data files may wish to restrict the ability of file recipients to change a document. Currently, software exists, e.g. ADOBE'S Acrobat PDF (portable document format) software and client viewer software, and other page-description systems that allow data files of certain types to be transmitted in a format which restricts the ability of a recipient to make changes to the data file. This file is then sent as an attachment or download to the recipient, who then views it if he has the PDF viewer installed on his computer. PDF is essentially a "picture" of a document, meaning that the recipient cannot change it. However, a data file originator may wish to restrict use or access of a document in other ways in addition to restricting modification of a data file. For example, a data file originator may wish to restrict the number of times a remote user may view a document, or restrict the ability of a remote user to even save the document. It would be desirable to provide a system by which a data file or "document" originator may restrict access or permissions to a data file in ways other than merely restricting modification. Finally, with regard to data file and "document" file sharing, a file originator cannot always be certain, without prior consultation with a document recipient, whether the recipient has the necessary software, i.e., the data file's native application of the same version used by the originator, to view the data file as it appears to the originator. A document originator will wish to be sure that a recipient will be able to view, and perhaps work with a data file, regardless of whether the recipient has a program capable of opening that file installed on his or her PC. This is the function of ADOBE'S PDF (portable document format). With PDF, a PDF file is derived from a document by the ADOBE conversion utility. However, even with document formats such as PDF, the originator does not have complete control over the use put to the document. For example, it may be saved by the remote viewer. It would be desirable to provide a thin client computing environment in which users may use software applications in the interim between a decision to download a software application, and the completion of the download of the entire body of executable code making up the application. It would be also desirable to provide a thin client computing environment in which collaboration between users may take place, i.e., one in which various users may simultaneously view a single data file using a thin-client application. It would also be desirable to provide users with support for a thin client environment in which a user may work until a "fat client", i.e., an environment in which needed application code is downloaded and resides for an extended period of time on the user's computer, is downloaded to the client computer. SUMMARY OF THE INVENTION A method for improving interface efficiencies between networked or otherwise communicating computing devices is provided. Enabling code is provided to enable and/or initiate the interface between a remote computing device and a local computing device. This enabling code is downloadable in a format suitable for making possible substantially instant utilization of the enabling code, even while additional portions of the enabling code continue to be downloaded to the local computing device. This enabling code will preferably allow terminal emulation by a client computer, as well as allow further executable code to be downloaded in the background, in order to support some level of fat-client support for a software application which may be used by the client user. In a preferred embodiment of the subject invention, the enabling code provides a terminal emulator by which the client computer may access application software resident on a server. Preferably, the server computer which executes the application program transmits presentation data to the client computer on an instantaneous or near instantaneous basis, so that the terminal emulation is transparent to the client user, i.e., so that the experience of the user is similar or identical to using a fat client executable application. As the enabling code and other software continues to be downloaded from the remote computing device to the local computing device, a user is free to use other data such as application or file data, resident at or through either the remote computing device or the local computing device. In one embodiment of the invention, following completion of the download of enabling data of the user is, optionally, advised of a transition sequence automatically occurring to terminate the application or data download phase and fully operate within either a local computing device mode or a mode in which files are shared with the local computing device via the remote computing device. Also provided within an embodiment of the present invention is a system for distribution of data files between and among remote users. In a preferred embodiment of the invention, information about the location of a remote server may be embedded in a web page viewed with the WWW application, or through e-mail, e.g. the SMTP protocol. Within these communication media would also be embedded information about the remote file to be accessed by the recipient of the communication, and the server application to which the remote file is native. The file, residing on a central server or being uploadable to the server, will also preferably contain information regarding permissions granted to various remote users, including modification, saving, and viewing permissions, together with duration parameters. In an alternate embodiment of the invention, the enabling code method may be incorporated into a system and method for increasing the utility and attractiveness of an electronic data service to users; the method comprising multiple steps. A first step includes providing enabling code means to register users which may permit certain application and other software to be available to the registered users. In one embodiment of the subject invention, this enabling code software may be provided to the user free of charge. A configurable database may also be provided and is made accessible to registered users having the enabling code means. A user customized database is configured and built using user-response queries pertaining to a plurality of specific preferences of each user. Permissive action means are provided for use by the user to optionally designate permissive uses of the preference data according to the user's desire. In an alternative embodiment of the present invention, a system of increasing user utility may be provided which does not utilize enabling code means, where an alternative system of user authentication is provided for. BRIEF DESCRIPTION OF THE DRAWINGS Figure 1 is a state diagram of one embodiment of a system according to the present invention. Figure 2 is a schematic illustration of a network according to one embodiment of the present invention. Figure 3 is a screen view of one embodiment of a computerized method according to the present invention. Figure 4 is a schematic illustration of the network of Figure 2, as perceived by a user according to the present invention. Figure 5 is another screen view of a computerized method according to one embodiment of the present invention. DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS In one embodiment of the present invention, it is desired to provide a common enabling code means for rapid download from communications nets, such as internets, the worldwide web, or other providers of such communication download services. Such enabling code means is designed to provide enablement for download and upload of data from such communications nets to and from desktop, laptop, hand held, or other computing devices of various sizes and capacities. However, such enabling code means is designed with substantial commonality and interoperability with vast amounts of application and other types of software which is freely available on such communication nets. As is known in the art, terminal emulation software is available for several popular computing platforms, including the Wintel (Windows operating system, Intel CPU) platform. Terminal emulation software permits a remote client computer to access a server computer and receive GUI or other interface output from the server computer to reflect the operation of an executable application, e.g., a word-processing application or CAD program. If the bandwidth of the communication network connecting the client and server computers is sufficient, the user at the client computer may use the remote application almost as if the application was resident on a local hard drive, and was being executed by his local CPU. This, of course, is the traditional mode of program execution by a PC owner who purchases off-the-shelf software, and then installs it on his machine for us. In the past, no one system has been designed for readily providing access for a user to such vast stores of free and readily downloadable information. A key to this availability, therefore, is enabling code means using a common language which is contemplated herein. Of course, the availability of such vast stores of data is one example of a motivating factor for potential users to register to receive such services. In an alternate embodiment of the subject invention, advanced means are provided to a user for customizing either business or personal databases in a manner that permits permissive use to a subset of users of such data. This data may consist of user-created files, documents, or other data which may be generated or manipulated by applications offered according to the subject invention. In an alternative embodiment, the data may consist of user-preference or other marketing data. Examples of preference data include, without limitation, preference items of personal information such as name, address, clothing sizes, hobbies, interests, personal preferences in food and drink and clothing, periodic needs, information needs, business needs, consultation requirements and needs, computing needs, situational desires, preferred designs of computing device interfaces, and the like. These, and other, needs or preferences may also be related to a specific product, service, or project. For example, in one embodiment, the use of a personalized database as described above may be to offer to a new user a personalized environment skin, template, desktop, GUI, or other interface, which may be generally termed a WebTop, or other communications net interface based on the individual user's profile. Alternatively, a business user could have a WebTop design or interface which looks like a well known interface environment. Alternatively a youngster or one having tendencies toward youthful designs could enjoy selecting a WebTop or interface design featuring primary colors, large selection means based on cartoon characters, help menus written at the appropriate reading levels, verbal options where each program element would verbally describe its function when requested via a cursor or other simple designation, and other features. In similar fashion, teenagers may enjoy certain features and desires, motifs or themes. In all examples above, there may also be options for preference data related to gender or other preferences. In an alternate embodiment of a preference database, which may be either a personal or business related preference database, the registered user may be allowed to navigate through a process of starting a business. For example, this may include best options selection and linking for writing or having assistance in writing a business plan, incorporating, developing a marketing plan, finding an accountant or legal advisor, locating online accounting software, finding a tax professional, finding sources of funds, or other elements of successfully founding and running a business. Additional resources in such a database provides the user with instant linking connection to various regulatory agencies of various levels of government, marketing professionals, advertising agencies, employment agencies and other resources. An alternate embodiment of the present invention may provide users with automatic event planners permitting extensive coordination between users or other third parties. Yet another example of such a personalization database may include, for example, a warehouse or clearinghouse concept of personal data on users. Indeed, the degree of user involvement will always determine, to a certain extent, the success or attractiveness of such a database to potential purchasers of information therein. However, in order to optimize the voluntary providing of such personal information (or business related information) to such databases, it is important to provide maximum access control to the user generating the initial data. In this manner, it is possible for the initial provider of the data to restrict or retract authority or permissions for certain broad or narrow uses of the data based on, for example, possible recipients, time considerations, frequency of permissive action authorized, particularity as to types of users of the database information, and other techniques. This may generally be termed a "permissive action database." In service-oriented societies and economies, it is generally desirable to provide improved service to users. This improved service may be provided, in one embodiment of the subject invention, by providing wide-ranging access to free software. Service may also be improved by provision of means to provide certain businesses with an opportunity to better serve the primary registered users of this system and these methods also comprises an improved service, when desired, to the primary users. For example, the ability to better understand the customer's personal tastes and functional needs and to then maintain that information in a data warehouse is very valuable to businesses which may serve users of the present invention. The value of this information to businesses may make possible a reduced or free price in many instances, for the underlying information in the form of applications and other useful software to the primary user. In similar fashion, the data warehouse relating to many peoples' personal taste and functional needs is then able to be used in a manner to provide optimum service to the primary users. One example includes access to a frequent flyer's personal database by as many airlines as desire such information in order to greet the flying passenger upon boarding the aircraft with the proper questions to allow that passenger to enjoy the best possible service while onboard that particular aircraft. Once again, no longer is it a requirement that the passenger be a registered member of a plurality of airline programs nor is it any longer a requirement, after use of Applicant's invention, for each individual airline or air carrier to maintain distinctly different programs of exceptional service to frequent passengers. Rather, such airlines may simply access the personalized database warehouse and utilize the more particular and specialized data on passengers or corporations to which service is to be provided. It is recognized that vendors and other service providers may also provide fee or other revenue or resources to such an online service described by Applicant when such vendors or others gain business opportunities via the business methods, techniques, and systems described herein. Yet another example of the value of this highly refined permissive action database method and system relates to the business users of the data in the database who would otherwise be completely unable to afford individual polling of such widespread consumers and primary providers of the preference data. These are typically smaller companies and individual service providers which have virtually no means to have such a particularized and accurate database to provide enhanced service to widespread portions of targeted user populations. In order to attract the volume of users necessary to achieve substantial and critical levels of various database categories of information, and to achieve this in an efficient manner, it will be desirable to provide attractive user interface features of the interface between the communication nets and the primary users of the computing devices. Indeed, such efficiencies and attractiveness will preferably exceed the former standards known by such users, or provide such a desirable alternative that such primary users will never choose to partake of the old models of communication interface. For example, in one embodiment of the invention, it is desirable to utilize a combination of techniques in allowing simultaneous communication between a user of a computing device and a communication net in a mode which is considered a "thin client" mode of communication while simultaneously permitting the same user to operate the computing device in what is considered a "fat client" operating mode. In other words, rather than simply having a user restricted to use of the particular computing device (laptop, desktop, etc.) for a particular application, it is also possible to simultaneously or virtually simultaneously allow the user to access and download information such as usable applications from a communications network while also operating in the fat client mode. In one embodiment of the subject invention, this executable code may be provided free of charge to attract user subscribers for marketing research. Alternatively, the application code or other code may be rented to users on a pay-per-use system, a subscribe system, or similar payment structure. This permits the user to virtually simultaneously share the very useful download time for any applications or software being downloaded from a remote interface storage location or other system by having the enabling code means to operate one or more portions of the downloading software be downloaded first. Accordingly, this allows the user to actually utilize the computing device during the download process in either a fat client mode, such as utilizing software already resident on the user's computing device, or alternatively to be working in a portion of the software which is undergoing a download to the user's computing device. A state transition diagram of representative embodiment of the subject invention is shown in Figure 1. Figure 1 shows the fat- and thin-client states which a user may be operating in, as well as situations or circumstances in which a state transition to the alternate mode may occur. In an embodiment of the present invention in which access to executable code is provided to users on a free basis, software may be provided to the user which is available for little or no cost from disparate sources, such as shareware or other open source movement software. In an alternate embodiment of the subject invention, software may be provided to users which is generally sold, the use being supported by advertising revenues. Alternatively, a combination of fee-based subscription and advertising-supported service, with users selecting the level and type of service they wish to receive. Advertising presented by a free service according to an embodiment of the invention, appearing as it does on the thin-client WebTop, would preferably be discreet, modest, stationary, and where possible, related to preference information submitted by the registered user. Another embodiment of the present invention envisions the simultaneous download feature from a web or other remote communications net to a local computing device simultaneous with the computing device user actually working in another application either on the computing device or on the communication net. When a download is complete, or at any other pre-selectable time, a notification of mode change- over may be made utilizing various cueing systems or means as are known in the art. At that point, the user may then utilize the efficiencies of the thin client mode of operating a computing device in which a large size program may be accessed remotely, with the large size program not being downloaded to the computing device of the user, but rather accessed remotely by that computing device user (and likely by other users simultaneously as well). This affords substantial efficiencies to the user, but results in inefficient operation of the server or other control means which allocates user availability and resources of the communications network. This, of course, is a function of the limited number of users that can be utilizing such resources of the communications net at any one time. However, a further efficiency in the above-described combination of fat and thin client mode utilization simultaneously results from the download and utilization in a fat client mode of relatively smaller application programs or other programs on the computing device of the user, rather than in a shared web type mode. Thus, for various types of software applications, a combination of a thin client mode and a fat client mode, or transition between thin client mode to fat client, is highly desirable. Examples of situations in which this combination may be useful include collaboration sessions among various team members on a project remotely located from each other but desirous of collaborating using both relatively small programs as well as a large program suitable to a web based application or simultaneous use, such as a large computer-aided design (CAD) program, an advanced scheduling program, or other advanced and relatively large-scale software programs. Indeed, this system may also incorporate utilization monitoring means for automatically entering a suitable mode, or by prompting users as to the optimum use mode to be in, as well as record such use, if desired, for later use. A collaboration session is preferably initiated by various users accessing a single computer data file, such as a word processing document file. The document file, and any software required to view or edit the document file may be requested by a remote user by, for example, activating a hyperlink by clicking on a document name in an HTML document within the WWW application over the http protocol. This link would prompt the user's local browser to request the document from a server according to DNS information corresponding to the URL information stored in the link reference, as is well-known in the art. Upon receiving a request for a document or data file, the remote server will preferably download to the requesting user the data file and such software as is required to read (view) or write (edit) the data file according to the permissions granted to the user by, for example, the originator or other administrator of the document permissions information. The permissions granted to a user may preferably be altered on a dynamic basis, for example, where several users view a document at one time. In this instance, one user preferably will be granted write permission to the data file while all other users are granted a lesser form of permission such as "read". This provides version control to the data file and avoids problems with inconsistencies between what is ostensibly the same data file from the point of view of the users. In addition to limitations on user's rights to write, modify, or delete data files, the present invention preferably may be configured by a data file originator or administrator to limit other user's access rights to viewing a document, but withholding permission to the other user's to save the data file, at least in its native format. Figure 4 depicts a screen view of an executable application that would perform according to the present invention. The user may be presented with a screen showing various options for security and access provisions for a data files, e.g., a word processing file, spreadsheet file, or CAD drawing. In an alternate embodiment of the present invention, a thin-client is provided without a corresponding fat client mode, but data file collaboration and other related file transfer techniques are available to thin client users. This embodiment would allow users to use alternate terminal emulation hardware, including, but not limited to, web appliances, personal digital assistants, palmtops, and any other devices which are web- or Internet-enabled, or may operate over TCP/IP, as is known in the art. While, in a preferred embodiment of the subject invention, data files and application portions or other executable code such as applets are downloaded to users over the http and TCP/IP protocols, as is well known. Other protocols may be accessed by the link URL according to user preference, network firewall concerns, or security concerns. Other protocols which may be used for the required data transfer include, but are not limited to, https, ftp, gopher, telnet, SMTP, or NNTP. Alternately, the HTML link may point to a cgi-bin script where suitable or according to user preference. In an alternate embodiment of the subject invention, upon execution of a hyperlink request for a document by a remote user, the user may be presented with a document, together with thin client executable code which permits viewing and editing of the data file in its native format, replacing the prior modes of data submission such as CGI forms. The data file submitting by a remote user in this way may later be viewed and edited by other remote users, the form originator, or the user submitting data through the native thin-client executable. A schematic state transition diagram showing an embodiment of the present invention is depicted in Figure 1. Figure 1 shows a fat 110 and thin-client mode 112, and various transitions between these modes. For example, a remote user may wish to begin using a software application which he has not yet loaded on his client PC. The user may wish to operate in thin client mode 112 in order to immediately use an application, the "user application" residing on a remote server, without waiting for the software to download. The user may operate in a thin client mode 112 if the user has access to a commercial service providing access, for example, to a server providing terminal emulation capabilities. This terminal emulation may proceed by input at the client machine being transmitted as instruction requests to the server, indicated by 114. Upon execution of the instruction request 116 at the server application level, the server web- enabling application may modify the GUI or other interface state of the remote user's data file, indicated by 118, as returned by the "user application" running on the server, i.e., the application that the remote user wishes to use for manipulation of a certain data file. In other words, the user's input on the client machine is transmitted to the server, executed on the user application running on the server, and the output of the user application 118 is sent to the client machine, basically, as a "picture" of the server's executable user application output. Because this picture is preferably changed very frequently, the experience of the client user is substantially the same as if the user was inputting commands to executable code resident on the client machine. This "picture" repeatedly sent to the client user may be termed the "GUI state" 118 of the application executing on the server. The executable code which allows the client machine to emulate a terminal, i.e., allows the client machine to send instructions to the server machine, and display the GUI or other output of the client machine, may be considered a component of enable code. If a client machine already has the terminal emulation thin client software installed, the enable code downloaded to the client machine may consist solely of user application executable code. In many cases, because the input processes of human beings are, in computer terms, extremely slow, significant bandwidth may exist for the downloading of data over the remote client's communication link. Because of this significant idle bandwidth, the user may request, as indicated at 120, a change of mode from thin- to fat-client, without interrupting use of the user application in thin-client mode. In other words, the user who may wish to have executable user application code running on their local machine, rather than submitting input to the remote server and waiting for pictures reflecting the impact that the user's instruction have on the application's output when executed by the server. Alternatively, this transition to download executable code, indicated at 122, may occur automatically, for example, upon initial access of the server. In either event, according to an embodiment of the subject invention, the executable code for the application may be downloaded as a background process or thread, permitting the downloading to take place in the background on the client machine, thus being more or less transparent to the user. Thus, the present invention allows a remote user to have virtually instant use of an application on the server, while the executable code for the application itself is being transmitted or downloaded to the user's client machine. Upon download of the application code, the application code may be installed on the remote user's machine. This installation may commence upon prompting to a user to begin the installation process, or the installation may commence automatically upon completion of the download process. After installation of the software, if the software executable is run by the user, the user will be operating in fat client mode, indicated by 110. Various events can take place in order to return the client machine to operate in a thin client mode 112. For example, the user may wish to free up disk space or RAM, both of which may be freed up to some extent by a move from fat to thin-client. This effect may be particularly desirable on smaller capacity client machines such as palmtops or PDAs. Alternatively, the client machine may periodically poll its own status indicated at 124 to see if a return to thin-client status is necessary or desirable, as further indicated at 126 and 128, respectively. If a transition to thin-client mode is necessary or desirable, the client machine will preferably check to determine whether communication with the server is present or may be reestablished, as indicated at 130. Thin-client mode, as described above, depends on a communications link between client and server which is essentially constant in its availability, if the client user is not to experience inconvenient delays in execution of input and output feedback. If termination of communication with the server occurs or is imminent while in thin-client mode, an immediate transition to fat-client mode is desirable if sufficient user application executable code has been transmitted to the client machine. If termination of communication is imminent but has yet to occur as indicated at 132, preferably the server machine will download any remaining user application code necessary for the application to run on the client machine, as well as any data files being modified by the user at the server level. If communications are terminated abruptly, preferably the server will automatically save any data, at 122, file being modified by the client user, as well as several past versions, according the client user the opportunity to discard changes saved to the data file. According to one embodiment of the present invention as depicted in Fig. 2, an e- mail or a web page can have a hyperlink to a particular application file or document stored remotely on server 140 or remote machine 144. The machines form a virtual network linked by the Internet or other communications network indicated by network cloud 148. When the recipient or user using client computer 140 clicks on the link, information embedded therein directs the client computer to a server computer 140 on which a data file and user application reside, a thin-client is automatically downloaded to the user, and the application or program associated with the file (typically the application that was used to create it, i.e., the data file's native application) is started on a remote application server computer 142. The specific file linked to is then opened by the user application, and the thin-client displays the file on the user's computer 140 within a thin client window which contains the application's graphical user interface. The user is then free to interact with the file as if it were running inside an application running on the user's client PC 140. Alternatively, a remote file on a different remote computer 144 may be accessed by a user application running on server 142. A hyperlink according to the present invention may be created in a GUI environment such as that depicted in Figure 3, showing a screen shot of a GUI allowing a user to create a hyperlink to a server-supported application link. A client user may create a server application link by specifying a file resident on a local client machine, e.g., client machine 140 or Fig. 2, a server 142, or a remote client machine 144 which may establish from time to time a direct or indirect link to the server 140. A hyperlink to the server- supported application may contain an embedded URL of a server application or protocol which may execute a series of instructions to download middleware, or web-enabling client code, to the machine 140 from which the hyperlink is accessed. In addition, the hyperlink may contain embedded information, or the URL of a protocol file containing information as to the executable code to run on the server 140, as well as a particular data file to open within the executable application being run on the server 140. This application's output may then be sent as a "picture" by the server middleware to a web- enabling client resident on the client local machine 140, as depicted by process 118 of Fig. 1. In other words, upon execution of the hyperlink by a remote client 140, a process will be executed by the server 142 by which a remote client 140 will have a thin-client process loaded onto it, and then access the remote data file, while the native application of the data file runs on the server. The remote user interacts with the server application using middleware server and client components resident on the respective machines. During this process, user application excertable code may be downloading as bandwidth permits, as indicted by 122 in Fig. 1. In a preferred embodiment of the present invention, an originator of a document, in creating an server-supported application link to a data file such as a "document" file, the originator of the document may specify recipient permissions and other access parameters, such as through a GUI screen as depicted in Figure 3 as screen 150. In Figure 3, the originator of a document may specify, for example, whether a remote client accessing the document may alter the document, selected in pull-down list 152, whether the remote client may save the list locally (pull-down list 154), and whether a password will be required in order to access the data file being linked (check box 156). In addition, and as depicted in the GUI 150 of Figure 3, the originator may specify whether the file being accessed will be subject to an expiration date (check box 158) or a maximum number of accesses (check box 160) and whether the document may be downloaded to a local client (check box 162). One advantage of sending this hyperlink to a recipient in an email compared to the alternative of simply including the file as an attachment to the email is that there is no computer virus danger. Many viruses are spread via email attachments, and many companies have prohibited all email attachments as a security risk. The application file hyperlink is a way to allow an employee of such a company to view and work with a file without having to receive the file in an attachment, or download it. Another advantage of this method for giving a user the ability to view and work with a file in a server-based application is that the originator can then be sure that the recipient will be able to view and work with the file, regardless of whether the recipient has a program capable of opening that file installed on his or her PC. This is the function of ADOBE'S PDF document format. With PDF, a PDF file is derived from a document by a conversion utility. This file is then sent as an attachment or download to the recipient, who then views it if he has the PDF viewer installed on his computer. PDF is essentially a "picture" of a document, meaning that the recipient cannot change it. With an application file hyperlink, no file is transferred, and it is not necessary that the recipient have a viewer installed on his machine. The thin client software is typically a "signed" Java applet, meaning that a central certifying authority has certified the thin client to be virus-free. Another advantage is that access to data files of arbitrarily large size can be given to the recipient without sending the file itself, and without the necessity of the recipient ever downloading the file. Many Internet Service Providers have file attachment size limits of from one to five megabytes. An application file hyperlink bypasses that limit, since no file is sent. The thin client applet is typically under one megabyte in size. Since the file is not sent, the originator of the hyperlink retains control over that data file as implemented and controlled in GUI screen 150. The originator of the hyperlink can set varying permissions to accomplish various goals. The originator can make the file "read-only", meaning that the recipient can view and work with the file but not change it permanently, e.g., through pull-down menu 152. The originator can prevent the file from being saved locally onto the recipient's PC, e.g., through pull-down menu 154. This results in the recipient being able to view and work with a file in native format, but not possess a digital copy of the file, meaning that the recipient cannot copy the file or re-send it to others. Full control of the file remains in the hands of the originator, even after the hyperlink has been sent or accessed. In fact, the originator can change the file after the hyperlink has been sent, unlike simply sending the file itself. The originator can cancel the hyperlink after it has been sent if he changes his mind about the message a file may contain. The originator can specify that a hyperlink will only be active a specified number of times, e.g., through check box 160. If this number is set to one, for example, the document becomes, in effect, a self-destructing, "Mission-Impossible"-type message. The originator can specify that he receive notification each time the hyperlink is accessed, telling him that the file has been viewed or worked with, along with data such as the time it was accessed, and for how long. In contrast, under the prior art simply sending an e-mail attachment tells the sender nothing about whether the attachment was ever viewed by the recipient. The originator can specify that an originator-specified password be required from the recipient before file access is granted, e.g., through check box 156 and corresponding text box 164, ensuring that the hyperlink is not used by an unknown person. Different passwords could be given to different people, allowing the originator could get notification of which person accessed the file. A hyperlink to a word processing document could be sent, or a link to a presentation program file. Clicking on the hyperlink would load the presentation program onto the application server, e.g., server 142 on Fig. 2, and the presentation file would run within the thin client window on the recipient's PC, e.g., client machine 140. In addition to email, a hyperlink could be included on a web page. Clicking on a link on a financial adviser's web page might bring up a spreadsheet file within the spreadsheet application, with a template for a prospective customer to enter personal information, and perhaps run macros to see how much money the financial adviser could save him if he employs the adviser. This is much more robust and reliable than simply converting a spreadsheet to a web page, since the full functionality of the spreadsheet remains available to the viewer. Figure 5 depicts a GUI screen 160 according to one embodiment of the subject invention, suitable for notifying the recipient of an server-supported application link as to the status of the data file they may view in thin-client mode as provided by the present invention. Upon clicking on a server-supported application link, which may preferably appear as a standard hyperlink in an e-mail communication or HTML web page, GUI screen 160 is presented to the recipient at computer 154 of virtual thin-client network 159 in Figure 4. Recipient user operating client machine 154 may access a document stored on server 156, or any other data file residing on a machine of the virtual thin-client network collaboration group 159 when such machine is presently linked through a communication network to server 156. GUI screen 160 of Figure 5 tells the recipient at machine 154 the name of the data file, e.g., a "Business Plan" word processing document, as indicated at 162, the user application to which the data file is native, e.g., "WORD 95" as indicated at 164. The GUI screen 160 also indicates the originator of the data file, e.g. "Joe User" at 166. The "sender" of the data file corresponds to the data file originator, and this user or registrant operates machine 152 in virtual network 159. Other data file parameters are indicated in GUI screen 160 including size at 168, and a text box 170 to enter an access password, if required by document originator 152 of network 150. The GUI screen 160 may also indicate the parameters of access as shown at 172 of screen 160, a thumbnail view or preview of the data file in its native application at 174, and whether saving is permitted by the originator, indicated at 176. The recipient of server-supported application link may then open the document on server 156 of virtual network 150 of Figure 4 by clicking the Open button 178 of GUI screen 160. Downloading or saving to local machine may be effected by GUI button 180, when enabled by the document originator at machine 152 in Figure 4. Yet another example of the advantages of this combination thin-client/fat-client system and method comprises a user operating a portable computer in a public location, for example, near an airport departure lounge. In this instance, at a first moment in time the user is connected to a remote communications network, and is operating the relatively small memory capacity portable computer or laptop computer or hand held or palm size computing device in the thin client mode to optimize availability of advanced programs without the requirement to dominate use of the remaining available portion of memory in the local computing device. However, as the user's aircraft boarding time approaches it may be desirable for the user to employ signal means to shift from a thin client mode to a fat client mode for a selectable portion of an application desired for use onboard the aircraft, but which is not then resident on the user's computing device. This scenario corresponds to the "terminator or communications imminent branch 132 of the state diagram 108 diagram of Fig. 1. This technology and methodology, therefore, permits such a user to optionally select mode shifts between the client user modes in order to optimize not only the computing device memory ratio to software utilized but also to take into account and to accommodate situational elements which occur every day worldwide and which heretofore have not been dealt with in a manner that permits seamless utilization of the computing device in the various situations. Interestingly, in this situation, it is contemplated that portions of the downloadable application or other program, as well as portions of additional enabling code means, may become resident in a fully downloaded application program of the same type at the time of transition from a thin client to a fat client mode, i.e., at state 110 of the state diagram 108 of Fig. 1. In any event, it is anticipated that such an interface timing, as well as the timing necessary to achieve simultaneity of thin and fat client modes, may be optimized by utilization of non-clock based timing system as well as timing systems currently known but which utilize timesharing or data stream techniques. In the above example, the user may optionally choose to return to the thin client mode indicated as event 134 in state diagram 108, possibly in the same application program, upon arrival at her destination. Public location kiosk-type client machine placement in locations such as airports may increase the user base. For example, agreements may be formed with major office service stores to feature a service based on the present invention as a place for a computer user to store their files for later retrieval at home. This preferably would require the user to sign-up for an account. In addition to personal databases and business databases, it is possible to provide collaboration tools, file storage means, office suite programs and other types of desirable packages to the computing device user, such as premium channel packages. The advantages of using the systems and methods described herein include resource savings including financial savings, time savings, ready access throughout the world, minimization or eradication of synchronization problems in various interface scenarios, improved data security due to a reduction in data resident to highly portable and easily lost or stolen portable computing devices, enhanced team productivity among multiple users, dramatically improved session persistence of multiple users and individual users per session, ready access at one logon or communications step to vast stores of information which may have previously required multiple communication access steps and other advantages. The experience of user under this communication thus duplicates virtual private network, and may be experienced as fully interconnected network 150 of Fig. 4. As used herein, office suite software may include but not be limited to enabling code means, word processing means, spreadsheet means, presentation and financial and organizational analysis means, database access and manipulation means, and various combinations of the above and other features suitable for business or office utilization of data and management. Collaboration tools used herein includes but is not limited to document sharing software, instant messaging software, news and other information projection means, and multiple access documents and facilitation software for situations such as conferences or other projects or unique advantage situations or opportunities. Collaboration methods may, in one embodiment of the present invention be organized around user-selected themes or projects. For example, users could define a project as wedding planning workflow which would have a screen for entering the persons invited to the wedding, a template for invitations, a link to local or national invitation printers, a mechanism for sending email invitations, an electronic RSVP list, which would automatically check-off a guest when he/she has RSVP-ed via email, a link to local wedding venue renters, a link to local caterers, a list where the couple could list the retail establishments which they would like to have included in their gift registry. Another example is a party planner workflow with an invitation list as mentioned above, with links to party caterers and links to an automatic map-creation web site to allow the user to create a map to the party site which would be sent to users. Another example is a "virtual business incubator" which steps the user through the process of starting a business, from writing a business plan, to incorporating, to developing a marketing plan, finding an accountant or on-line accounting software, finding a tax professional, finding sources of funds, etc. There could be links at appropriate places in the workflow to corporate attorneys, State departments of commerce, marketing professionals, advertising agencies, employment agencies, etc. Various packages of available service are configurable in order to provide various types of users and revenue bases, according to marketing considerations. For example, simple packages may include different advantages and different information requests than premium packages. Premium packages or higher level packages may have fewer advertisements, greater file space, more CPU cycles and other type options than more basic packages. Regardless, the benefits and advantages of systems functioning utilizing the methods and structures disclosed herein include dramatically improved one-to-one service relationships heretofore unknown due to the lack of recognition of the possibility of providing such information in such ways to so many users from so many providers. As a result of this one-to-one relationship of service providers to those being serviced, it is anticipated that the business methods, systems and other techniques disclosed herein will provide improved customer loyalty and greater opportunity for productive feedback of additional needs and preference adjustment among users. The resulting accumulation of advantages may be summarized by the effect of this structural model. The technical interface provided by the subject invention provides for a network offset which preferably will lead to an increase in user or subscriber base. In essence, one embodiment of the present invention provides a network effect which builds an ever-increasing user base due to the appeal of the free software to the computing device user and the relatively low cost and highly customized data product provided to users of the user preference databases. As more free applications of software are available, as well as free uses of various sorts via these means identified herein are available, the benefits to users increase. This produces more users and greater and more valuable business and personal database entries resulting in more one-to-one, high quality service within economies. The network effect provided by the subject invention will preferably result in extraordinary savings of otherwise lost time, resources, and other opportunities not previously addressed or captured.

Claims: WHAT IS CLAIMED IS: 1. A method of providing individualized marketing and services to consumers, comprising the steps of: providing consumer and business access to a service; registering consumer and business users to receive the service; querying registered users as to particular preference data; querying registered users as to particular permissive action corresponding to use options of the preference data; storing for later use or editing the preference data and corresponding permissive action data; and selectively releasing preference data to particular designated users according to registrant-specified parameters. 2. The method of claim 1, wherein the service is free. 3. The method of claim 1, wherein the service comprises a server from which software may be downloaded. 4. The method of claim 1, wherein the service comprises a server from which applications may be run in thin-client mode. 5. A data system for optimizing use of large scale databases to individualize consumer and business marketing, comprising: communication net means for remote access by registered users of a data system; enabling code means which is configured for downloading from a remote communication net means to a local computing device; software control means for interfacing with said enabling code means to allow operation of the local computing device in various modes during or after a time period when enabling code means is being downloaded to the local computing device; and preference data storage means electronically interfaced with the communication net means for receiving, manipulating, and storing preference data of users of local computing devices. 6. A method of distributing computer data files to remote users, comprising the steps of: providing a central server accessible to remote users and to a data file originator; effecting electronic delivery of a data file to the central server; providing executable code on the central server capable of receiving input from a remote user to manipulate the data file's native application, and further being capable of transmitting the output of the native application to a client application for display by the client application in a manner which can be viewed by a remote user. 7. The method of claim 6, further comprising the step of: providing a permissions system by which the data file access by remote users is limited according to specified parameters. 8. The method of claim 7, wherein the specified parameters include the number of times the data file can be accessed. 9. The method of claim 7, wherein the specified parameters include whether a remote user may save a data file locally. 10. The method of claim 9, wherein the specified parameters include the provision of authentication information by the remote user. 11. The method of claim 10, wherein the authentication information is a password. 12. The method of claim 11 , wherein the authentication information is a digital signature. 13. The method of claim 7, wherein the specified parameter comprises the provision of a number of times the data file may be accessed. 14. The method of claim 7, wherein the specified parameter comprises an inability for remote users to save the data file locally in the native application format. 15. The method of claim 7, wherein the specified parameter comprises an expiration date past which time the data file may not be accessed. 16. The method of claim 7, wherein remote users may enter consumer and business preference information into a centralized marketing database. 17. The method of claim 16, wherein remote users may restrict distribution of preference information according to specified parameters. 18. The method of claim 17, wherein the specified parameters comprise particular companies. 19. The method of claim 17, wherein the specified parameters comprise classes of companies. 20. The method of claim 17, wherein the specified parameters comprise types of service providers. 21. The method of claim 6, wherein the server storing the specified application is connected to a communications network and has an IP address. 22. The method of claim 21 , wherein the IP address information of the server is embedded directly or indirectly within an Internet WWW application page. 23. The method of claim 21, wherein the IP address information of the server is embedded directly or indirectly within a electronic mail protocol message. 24. A computerized data system for optimizing use of large scale databases, comprising: communication network means enabling remote access by registered users of a data system; enabling code means adapted for downloading from a remote server through a communication network means to a local computing device; software control means for interfacing with said enabling code means to allow operation of the local computing device in various modes for a specified time period after commencement of enabling code downloading; and preference data storage means electronically interfaced with the communication network means for receiving, manipulating, and storing preference data of users of local computing devices. 25. A method of permitting multiple client users to simultaneously access a computer-linked remote data file, the method comprising the steps of: receiving a client request to access the document through a computer link; transmitting to the requesting client thin-client enabling code; and executing user application code on the server. 26. The method of claim 25, wherein the service is made available to users who have paid a subscription fee. 27. The method of claim 25, wherein the service is made available to users for free upon registration. 28. The method of claim 25, wherein appearance and function of the user's graphical user interface at the remote client may be customized by the user. 29. The method of claim 25, wherein the enabling code downloaded to the client machine creates a graphical user interface for the user on the user's remote client computer. 30. The method of claim 29, wherein the graphical user interface downloaded to the user's remote client computer instructs the user regarding carrying out the steps in a process of interest to the user. 31. The method of claim 30, wherein the graphical user interface instructing the user regarding carrying out the steps in a process contains hyperlinks to advertising, promotional, and regulatory information and .of interest to a user according to the process selected by the user. 32. The method of claim 1 wherein a registrant may list items of personal information comprising name, address, clothing sizes, hobbies, interests, personal preferences in food, drink, and clothing. 33. The method of claim 32 in which entries, which can be altered and updated by the user at any time. 35. The method of claim 32 in which the user may control access to their entities by third parties, and may allow selected access to personal information by vendors for the purpose of providing benefits to the user in the form of personalized offers of products or services related to the user's interests. 36. The method of claim 33, wherein information about a user's clothing sizes, which would be released to custom clothing manufacturer when a user orders an item of clothing. The item would then be manufactured using the user's size information to create a clothing item, which is the exact size of the user.

Inventors: RICE JAMES L III, RICE, JAMES, L., III
Applicants: FREEDESK COM INC, RICE JAMES L III, FREEDESK.COM, INC., RICE, JAMES, L., III
Application year: 2000
Main classification: G06F15
IPC codes: G06F17, G06Q30