METHOD AND APPARATUS EMPLOYING A PROXY SERVER FOR MODIFYING AN HTML DOCUMENT SUPPLIED BY A WEB SERVER TO A WEB CLIENT
NOTICE OF COPYRIGHTS AND TRADE DRESS
A portion of the disclosure of this patent document contains material, which is subject to copyright protection. This patent document may show and/or describe matter, which is or may become trade dress of the owner. The copyright and trade dress owner has no objection to the facsimile reproduction by any one of the patent disclosure, as it appears in the Patent and Trademark Office patent files or records, but otherwise reserves all copyright and trade dress rights whatsoever.
RELATED APPLICATION INFORMATION
This application is related to Application No. 09/265,512 filed March 9, 1999 entitled "Network Data Distribution Based Upon User-Specific Qualities," which is incorporated herein by reference, and which is a continuation-in-part of Application No. 60/077,331 filed March 9, 1998 entitled "Network Data Distribution Based Upon Geographic Location, Usage Patterns, Interactive Data, Profile Data, Demographic Data and Scheduling Information."
This application is also related to the following applications, each of which is incorporated herein by reference: (1) Application No. 09/324,747, entitled "Monitoring of Individual Internet Usage," filed June 3, 1999; (2) Application No. 09/349,325, entitled "System and Device for Monitoring Individual Internet Usage," filed July 8, 1999; (3) Application No. 09/364,544, entitled "Device for Displaying Advertisements to a User of an Online Service," filed July 29, 1999; (4) Application No. 09/393,391, entitled "Internet Server with Dynamic Ad Targeting Capabilities," filed September 10, 1999.
BACKGROUND OF THE INVENTION
1. Field Of the Invention
The present invention relates to the provision and display of documents in a client- server network and, more particularly, relates to a device and method of obtaining and modifying World Wide Web documents and administering services in connection with World Wide Web documents.
2. Description Of Related Art
With the explosive growth in the Internet, business entities are struggling to provide increased services for users of the World Wide Web. Typically, an entity provides such services by establishing a web site that a user accesses over the Internet. The web site contains information related to the types of services provided and typically allows the user to electronically sign up for such services. The user commonly signs-up for the service by filling out an electronic sign-up form. The form typically comprises a web document that has several empty fields into which the user enters personal information.
However, users are often deterred from filling-out such forms, as it requires the user to manually enter type written information. While the information itself is not difficult for the user to obtain, the actual typing in of such information every time the user desires to electronically sign up for a program is tedious for the user. Oftentimes, the user will enter the information and press an "accept" key only to receive a notice that some information was wrongly entered. The user then has to re-type all of the information. This deters the user from filling out electronic sign-up forms and acts as a significant impediment to service providers obtaining additional members.
After a user signs-up for an online service program, it would be highly desirable for the user to be able to administer his or her online memberships from a single source, such as a single web site that could be accessed from a web browser. This would be desirable from the user's standpoint, as it would be easier for a user to keep track of a multitude of online affiliations from a single web site. It would also be desirable from a service provider's
standpoint, as it would allow the provider to offer additional services and upgrades in existing services from a single web site.
A web browser is a software device that allows a user of a client computer to download World Wide Web documents and view the documents on the client computer. The browser interacts with a web server across a communication channel. In general, the browser requests that the web server send specific web documents which are typically in the form of Hypertext Markup Language (HTML) code. Once a web document is obtained, the browser causes the document to be displayed on a computer output device. The browser typically allows the user to download the web documents by either clicking on a hyperlink or by entering the page's Web address or uniform resource locator (URL) into an address bar.
The URL is a reference (or address) to a resource available on a TCP/IP network such as the Internet. A URL is composed of a character string, and may have a number of parts. These parts include a top level domain name, second level domain name, directory name, and file name. URLs may identify a file located on a web server. URLs may also point to other resources on the network such as database queries and command output. The determination and use of URLs is well known in the art and is not discussed further herein.
When obtaining a web document, the web browser first establishes a TCP/IP connection with the web server by sending a connection request message to the web server. After a connection is established, the browser sends a request message to the server that contains the URL associated with the web document. The request message is sent according to the Hyper Text Transport Protocol (HTTP).
The web server then responds to the browser request with an HTTP response message. The response message typically includes a copy of the web document, which is typically in the form of a Hyper Text Markup Language (HTML) file. The HTML file includes tags that define the structure or format of the document. Each HTML tag serves a special purpose that helps identify the document's structure, such as holding and italic, fonts and font sizes, as well as tags that correspond to graphics contained on the page. The browser interprets the tags and then causes the web document to be rendered on the client computer's monitor. When the browser encounters a tag that corresponds to a graphic, the browser requests the
server to send a copy of the graphic file. In short, the browser simply takes whatever HTML file that was supplied by the web server and then examines and renders the files contents.
There are a number of types of online service providers that administer the provision of online services to users. Online services may serve the general public or may serve a limited class of individuals. Some public OSPs utilize proprietary networks; America Online and @Home are examples. Other public OSPs use the public networks, and most Internet Service Providers (ISPs) are an example. OSPs often provide Internet access. Internet access is the primary service provided by some OSPs, most notably ISPs. Some Internet Service Providers provide their user's with special access to one or more web pages that acts as the user's gateway to the Internet. From the web page, the user can often access special promotions that are supplied by sponsors associated with the ISP. For example, the web page may contain clubs that the user may join as a special privilege of being an ISP member. The user uses the web page as a launching site to access other web sites or to perform web searches.
In certain situations, the ISP may desire to provide unique formats to web pages that the user accesses in order to enhance the user's Internet experience. The ISP may also desire to provide unique browser capabilities for its users. For example, it would be highly desirable for the browser to be able to translate the text of web documents into a language specified by the user. As mentioned, however, conventional browsers simply take whatever HTML documents that are supplied by a web server and render the documents on the local device. Accordingly, the ISP may lobby browser vendors, such as Microsoft and Netscape, to provide enhanced features in accordance with the ISP's needs. However, it is unrealistic for the ISP to expect a browser vendor to incorporate into its browser every feature that the ISP requests.
The ISP is free to design its own browser and provide the browser with specific features according to its own needs. However, such ISPs are not in the business of designing full-fledged browsers and, therefore, have neither the desire nor the wherewithal to provide the user with a browser having all the features of a Netscape Navigator or a Microsoft Internet
Explorer. The ISP is therefore left with relying on the browsers supplied by conventional browser vendors to provide the eatures required by the ISP.
SUMMARY OF THE INVENTION
Disclosed is an Internet web server that is configured to receive requests from a client computer to provide the client computer with a web document associated with a remote web site. The web server includes a software program that allows the web server to perform the functions that are typically associated with a web browser. The software program is configured to establish a communication channel with the remote web site and to download and interpret web documents, preferably in the form of HTTP documents. The software program is further configured to dynamically modify the web documents and issue instructions to the client computer to display the modified version of the web document. In one embodiment, the software program comprises a servlet object that is written in the JAVA programming language.
Further disclosed is a method of administering an online club membership program. A membership administrator such as a web server preferably administers the program. The membership administrator preferably obtains data related to the user when the user signs up for the program. Additionally, the membership administrator also leams information about the user by monitoring the user's interaction with the Internet. The data is used to provide the user with special membership services without requiring the user to re-enter the data every time the user signs up for a service.
By joining the club membership program, the user is eligible for special services in connection with online services. The services are preferably provided in affiliation with one or more electronic service providers that each provide some sort of service for members of the club. The services could vary widely but are preferably configured to be provided electronically over the Internet. For example, the services could relate to the provision of stock quotes or the provision of financial services including electronic loan approval and/or financial account management, retail services, government entity services, or any other service that may be provided over an electronic medium.
In one aspect of the invention, there is disclosed a method executed by a server computer under the control of a program stored in a memory of the server computer, the server computer being a portion of a client-server network. The method comprises the server computer receiving a request from a client computer of the client-server network to provide the client computer with a web document from a remote web server; the server computer invoking a servlet object; the servlet object establishing a communication channel between the server computer and the remote web server; the server computer forwarding the request to the remote web server; the server computer receiving the web document from the remote web server; the servlet object examining and interpreting the contents web document; the servlet object generating a modified version of the web document; and the servlet object instructing the client computer to display the modified version of the web document.
Still further objects and advantages attaching to the system and to its use and operation will be apparent to those skilled in the art from the following particular description.
DESCRIPTION OF THE DRAWINGS
Further objects of this invention, together with additional features contributing thereto and advantages accruing therefrom, will be apparent from the following description of a preferred embodiment of the present invention which is shown in the accompanying drawings with like reference numerals indicating corresponding parts throughout and which is to be read in conjunction with the following drawings, wherein:
Figure 1 is a first block diagram of a network data distribution system in accordance with the invention.
Figure 2 is a schematic illustration of a client device and a server device arranged in a client-server network.
Figure 3 is a schematic illustration of the server device.
Figure 4 is a flowchart of a method of implementing a browser proxy servlet in accordance with one aspect of the invention.
Figure 5 shows an exemplary browser window that includes a rendition of a web document.
Figure 6 is a exemplary embodiment of an online service provider server comprised of plural server devices.
Figure 7 is a flow chart that describes a method of administering an online club membership program.
These and additional embodiments of the invention may now be better understood by turning to the following detailed description wherein an illustrated embodiment is described.
DETAILED DESCRIPTION OF THE INVENTION
Throughout this description, the preferred embodiment and examples shown should be considered as exemplars, rather than limitations on the apparatus and methods of the present invention.
Referring now to Figure 1, there is shown a block diagram of a network data distribution system in accordance with the invention in conjunction with a source of web pages. Figure 1 includes a client device 100, a data access network 120, an OSP server 130 and a web server device 150 that are arranged in a client-server relationship. The client device 100, the data access network 120 and the OSP server 130 comprise the network data distribution system. The client device 100 is provided online service to the network data distribution system under control of the OSP server 130. An online service provider controls the OSP server 130.
The client device 100 preferably comprises a client computer that is configured to access the OSP server 130 via the data access network 120. The client computer may be, for example, a PC running a Microsoft Windows operating system. The client device 100 preferably includes an output device, such as display 101, and an input device, such as keyboard 102 and / or pointing device 103 (e.g., mouse, track ball, light pen, or data glove). The client device 100 may also be, for example, an Internet appliance, network computer (NC), or an appropriately Internet-enabled device such as a portable digital assistant (PDA), mobile phone, etc. The particular type of device of the client device 100 is not considered to be important so long as the client device 100 can provide some measure of individual user interactivity with an online service.
The data access network 120 provides lower layer network support for the client device 100 to interact with online service, including the OSP server 130 and the web server device 150. The data access network 120 preferably comprises a common or private bidirectional telecommunications network (e.g., a public switched telephone network (PSTN), a cable-based telecommunication network, a LAN, a WAN, a wireless network), coupled with or overlaid by a TCP/IP network (e.g., the Internet or an intranet).
The web server device 150 may be of the type known in the art and has the ability to serve web pages to the client device 100, as requested in the manner known in the art. It should be appreciated that the web server device 150 is representative of any source of web pages available to the client device 100. Thus, for example, the web server device 150 could be accessible from the Internet, or it could be a part of an intranet and represents any number of web servers.
The OSP server 130 preferably is a computer system, such as a server computer. Alternatively, the OSP server 130 may be considered to represent a number of physical devices that as a group provide the indicated network services. The OSP server 130 preferably acts as a gatekeeper to the online services. Only after the OSP server has authorized access can the client device 100 access the web server device 150 and any other resources of the online service.
Figure 2 schematically illustrates one embodiment of the client device 100 and the web server device 150. The client device 100 includes a central processing unit (CPU) 210 that is coupled to a memory 220. The memory 220 stores one or more application programs, including a browser application 225. The browser application 225 is software that provides interactive utilization of hypertext objects located on a network, such as web pages on the Internet. As used herein, "browser application" also includes most email clients and ftp clients.
The memory 220 also stores a client application 230. The client application 230 is a program operative on the client device 100, and preferably an independent application program or a DLL. The client application 230 preferably retrieves certain network data, displays certain network data, transmits geographic location data, transmits interactive user data, transmits network usage data and transmits other information related to a user of the online service. The client application 230 preferably also sets up and provides access to the online service.
The client device 100 also includes a network interface device 235 that is used to establish a communication channel 240 between the client device 100, the web server device
150, and the OSP server 130. The communication channel may be any wire or wireless communication channel.
With reference to Figure 2, the web server device 150 includes a network interface device 245, a CPU 250 and a memory 255. The memory 255 stores one or more computer programs that implement the processing associated with the description herein. The programs include a web server program 260. The web server program 260 is configured to serve web documents to client devices. The web server program 260 may be standard web server software that is modified to include the functionality described herein.
The memory 255 further includes one or more servlets 265. Each of the servlets 265 comprises a software module that runs in accordance with the web server program 260 and extends the functionality of the web server program 260. The web server program 260 interacts with the servlets 265 through at least one application program interface (API), as shown in Figure 3.
Figure 3 schematically illustrates the web server device 150. As mentioned, the memory 255 of the web server device 150 includes a web server program 260 and one or more servlets 265. The web server program 260 interacts with the one or more servlets 265 through corresponding application program interfaces (APIs). Each servlet preferably comprises a software object that is invoked by the web server program 260 and used to dynamically generate information or documents, such as a modified HTML document. The servlets 265 accept one or more requests from the web server program 260 and then return data to the web server program 260.
The servlets 265 are preferably loaded into the memory 250 at the start-up of the web server device 150. The servlets 265 then effectively operate in a continual loop while waiting to be invoked. Advantageously, when the web server program 260 invokes any of the servlets 265, there is no computational expense associated therewith because the servlets are already in a running mode. Alternatively, the servlets 265 may be loaded upon the occurrence of predetermined conditions or by invocation of the client device 100. In one embodiment, the web servlets are written in the JAVA programming language.
In accordance with one aspect of the invention, one of the servlets 265 comprises a browser proxy servlet 265 a that is configured to function as a simple web browser. That is, the browser proxy servlet 265a is configured to cause the web server device 150 to establish a communication channel with a remote web server and thereafter request that the remote web server provide a web document stored on the remote web server. A "web document" comprises a document that is accessed and displayed on the Internet and which includes information in the form of text, graphics, audio, and hyperlinks to other web documents. A web document is also referred to as a web page. In a preferred embodiment, web documents are written in HTML. A web document is typically accessed by specifying a URL that is associated with the web document.
The browser proxy servlet 265a is also configured to interpret the contents of a web document and thereby determine the format of the web document when displayed in a browser window. For example, the browser proxy servlet 265a is configured to parse HTML documents, determine the meaning of HTML tags within the document, and thereby determine the attributes that the document contains, such as the content and format of text and graphics that are displayed in accordance with the HTML instructions. Additionally, the browser proxy servlet 265a is configured to interpret cookies that are associated with a web document. The browser proxy servlet 265a is preferably also configured to cause the web server device 150 to perform Internet search functions, such as by invoking an Internet search engine.
Additionally, the browser proxy servlet 265 a is preferably configured to perform at least some of the functions associated with full-fledged web browsers. For example, the browser proxy servlet 265a is configured to track and record web documents that have already been downloaded by the client device 100. The browser proxy servlet 265a is further configured to identify and download audio and visual files associated with the web document and to store the files in a location local to the web server device 150.
When the web server program 260 invokes the browser proxy servlet 265 a, the web server program 260 provides the browser proxy servlet 265 a with a URL associated with a web document and also provides any cookies associated with the web document. The
browser proxy servlet 265a tiien causes the web server device 150 to obtain the web document by first establishing a communication channel with the web server that is associated with the URL and then downloading a copy of the web document. Once the web document is obtained, the browser proxy servlet 265a then dynamically modifies the web document and forwards the web document to the client device 100 for display by the browser application 225, as described in more detail below.
The web server device 150 is thus configured to serve web documents to the client device 100. Additionally, the browser proxy servlet 265a allows the web server device 150 to browse the World Wide Web by downloading and interpreting web documents.
Figure 4 is a flow chart that describes a method of accessing web documents on the World Wide Web using the browser proxy servlet 265a. The method begins when the web server device 150 receives a request from the client device 100 to provide a web document for display on the client device 100 (step 410). The request is typically in the form of an HTTP request that a user generates using the browser application 225 on the client device 100. Figure 5 shows one embodiment of a Microsoft Internet Explorer browser window 505 having an address bar 510. An exemplary rendition of a web document 512 is shown displayed within the browser window 505. The web document 512 includes one or more hypertext links 520. The user can generate an HTTP request for a web document by entering a URL associated with the web document into the address bar 510. Alternately, the user can use the keyboard 102 and / or pointing device 103 (Figure 1) to click on one of the hypertext links 520. This causes the browser application 225 to generate an HTTP request to provide the web document associated with the hypertext link.
In one embodiment, the client application 230 on the client device 100 causes the browser application 225 to route all web document requests from the client device 100 to the web server device 150. The web server device 150 thereafter handles all HTTP requests from the client device 100. Preferably, the requests are routed to the web server device 150 only after the user has accessed a web document associated with the Internet service provider and entered an authorization code. For example, Figure 5 shows a web document associated with an Internet service provider. The web document includes fields 525 for entry of a username
and password. If the correct authorization code is not entered, the browser application 225 forwards all requests for web documents directly to the web site specified by the user without going through the web server device 150.
After the web server device 150 receives an authorized web document request from the client device 100, the web server software 160 invokes the browser proxy servlet 265a (step 420). The web server software 160 preferably establishes a request thread with the browser proxy servlet 265a that includes the parameters of the HTTP request from the client device 100, including the URL of the web document requested by the client device 100. The request thread preferably also includes any cookies associated with the web document. The browser proxy servlet 265a then translates the cookies and determines the location of the web document.
The browser proxy servlet 265a next causes the web server device 150 to establish a communication channel with the device on which the requested web document is stored (step 430). Such a device typically comprises a remote web server device that is configured to serve web documents. The communication channel is typically established over the Internet. After the communication channel with the remote web server is established, the browser proxy servlet 265a issues a request for the remote web server to provide the web document (step 440). The request preferably comprises an HTTP request that is substantially identical to the request issued by the client device 100. However, the browser proxy servlet 265 requests that the web document be sent to the web server device 150 rather than to the client device 100.
In step 450, the web server device 150 receives a copy of the web document from the remote web server. As mentioned, the web document is typically in the form of an HTML document that includes instructions associated with display attributes for the web document, such as fonts, font sizes, graphics, audio. The web document also includes instructions associated with the text that is displayed in association with the web document. The text to be displayed in association with the web document is referred to herein as the "display text." The display text may be in one or more human languages, such as English, Spanish, Japanese, etc. The particular language is referred to herein as the "native language" of the display text.
After receiving the requested web document, the web server device 150 invokes the browser proxy servlet 265a to parse and interpret the web document (step 460). That is, the browser proxy servlet 265 a examines the contents of the web document and identifies tags that are associated with the attributes of the document, as well as any data that is displayed in connection with the document. The browser proxy servlet 265 a also identifies any graphic and audio files that are associated with the web document.
The browser proxy servlet 265 a next determines whether to modify the contents of the web document (step 470). The browser proxy servlet 265a preferably modifies certain web document for unique display on the browser window 505 of the client device 100. In one embodiment, the browser proxy servlet 265a determines the native language of the display text associated with the web document. The browser proxy servlet 265a then translates the native language into a second language that was previously specified by the user of the local device. The browser proxy servlet 265a preferably uses well-known algorithms and/or computer software to identify and translate the display text from the native language to the second language.
For example, assume that the user of the client device 100 specifies that he or she wishes to view all web documents in the English language. The ISP of the user preferably provides a medium, such as a dedicated web site, by which the user may specify the desired language. Thereafter, the browser proxy servlet 265a preferably translates the display text of all web documents requested by the user into the English language prior to forwarding the web document to the client device 100. Advantageously, the browser proxy servlet 265a translates the web documents so that the user and the browser application 225 on the client device 100 are blind to the process. The browser application 225 simply displays whatever web document that is supplied by the web browser proxy 265a.
In another embodiment, the browser proxy servlet 265 a determines whether the web document contains a form with empty fields that are to be filled in with data associated with the user. For example, the form may contain fields for entry of the user's name, address, credit card number, phone number, etc. If so, the browser proxy servlet 265a preferably modifies the web document by automatically filling in the empty fields with the appropriate
user data. The user data is preferably accessed from data stores that are assembled in accordance with the methods described in the related patent applications described above. The browser proxy servlet 265 a preferably utilizes a data mapping dictionary to determine which user data should be inserted into which of the empty fields of the web document. The form-filling capabilities of the browser proxy servlet 265a facilitate the provision of unique services to members of the OSP, as described more fully below.
The browser proxy servlet 265a is also configured to modify the web document in other manners other than those described above. For example, the browser proxy servlet 265a may determine that the web document is associated with a particular sponsor of the user's ISP. If so, the browser proxy servlet 265a modifies the web document to incorporate data that is unique to the ISP.
After the browser proxy servlet 265a modifies the web document, the browser proxy servlet 265a causes the web server device 150 to instruct the client device 100 to display the modified version of the web document in the browser window 505 (step 480). This may be accomplished for example, by the browser proxy servlet 265a storing the modified web document in a storage location and sending instructions for the browser application to access modified URLs that point to the storage location. Alternatively, the browser proxy servlet 265a can send the modified web document to the client device 100 for display by the browser application 225. The browser application 225 then displays the web document in the browser window 505. The process then ends.
As mentioned above, the web server device 150 is configured to fill empty data fields in web documents with data associated with the user. The form-filling capabilities of the web server device 150 facilitate the provision of services to members of the OSP, such as by providing the user with pre-filled applications for membership for additional services.
In a preferred embodiment, the form-filling capabilities are provided in connection with a club membership program that is administered by a club administrator. The club administrator may be any entity, including an OSP, an ISP, a web portal entity or any other entity configured to administer services over the Internet.
By joining the club membership program, the user is eligible for special services in connection with and in addition to the provision of online services. The services are preferably provided in affiliation with one or more electronic service providers that each provide some sort of service for members of the club. The services could vary widely but are preferably configured to be provided electronically over the data access network. For example, the services could relate to the provision of stock quotes or the provision of financial services including electronic loan approval and/or financial account management.
Preferably, the club administrator provides a user with membership in the club program in exchange for the user providing some sort of consideration. The consideration need not necessarily be monetary consideration. Rather, the user may simply provide the administrator with information regarding user attributes in order to obtain the membership in the club.
Figure 6 shows a representative embodiment of a club administrator server 605 that is configured to administer an online club membership program. The club administrator server 605 comprises a system of several devices that collectively administer the club membership program. Specifically, the club administrator server 605 includes a membership server 610, a services administration server 620, and a sponsor server 630. The club administrator server 605 further comprises a data store 640 communicatively coupled to each of the individual servers 610, 620, and 630.
The servers 610, 620, and 630 are each communicatively coupled to one another and each preferably include a central processing unit and a memory. Additionally, the servers 610, 620, and 630 are preferably configured to serve and download web documents in accordance with the description above. The embodiment of the club administrator server 605 described herein is a representative embodiment. It will be appreciated that the club administrator server 605 may comprise a single server device and can also include more or less server devices than are shown in the embodiment of Figure 6.
The membership server 610 is preferably configured to administer functions in association with the signing-up of members in the club membership program. The membership server 610 preferably serves one or more web documents that a user can access
from a client device 100. The web documents preferably allow a user to sign-up for membership in the club program over the data access network 120. Upon sign-up of a user, the membership server 610 preferably obtains personal data about the member and stores the information in the data store 640. Personal data comprises any type of information descriptive of the user, including the user's name, age, home and work address, home and work phone numbers, and social security number. The membership server 610 can also obtain additional data regarding the user by tracking the user's interaction with the data access network. The additional data is preferably obtained in connection with the types of web documents that the user accesses, as described in the related applications referenced above.
The membership server 610 preferably also obtains and manages club preference data from the user. The preference data relates to the user's preferences regarding the club administrator's management of the user data. Preferably, the user provides or denies permission for the club administrator to share the data with authorized service providers that are associated with the club. The permission may be granted on one or more graduating levels. For example, the user may authorize the club administrator to only provide name and address information but not to provide any financial information.
On another level, the user may authorize the club administrator to continually provide updated information to service providers that already are in possession of the information about the user, such as if the user has previously transacted with the service provider. This would allow the user to utilize the club membership as an online manager of personal information so that when the club administrator obtains revised data regarding the user, the revised data is automatically forwarded to authorized online service providers.
The services administration server 620 is configured to monitor and administer the services that are provided to the user in association with the club membership. The service administration server 620 preferably updates web documents to reflect changes to promotions offered by the service providers. The service administration server 620 preferably also monitors the user's interaction with the data access network in accordance with the methods described in the related patent applications referenced above. This allows the club
administrator to obtain additional data regarding the user and to update the data in the data store 640.
The service provider server 630 is preferably configured to serve web documents that are associated with each of the service providers. Preferably, each service provider affiliated with the club membership program has one or more web documents that describe the type of services that are offered. The user preferably accesses the web documents by clicking on hyperlinks that are displayed on a home web document for the club. The service provider server 630 may be replaced by or supplemented with one or more remote servers that are managed independently by the service providers. In such a case, the club administrator server 605 downloads the service provider's web document over the data access network 120.
The types of services offered by service providers may vary widely. A service provider comprises any entity that offers information or services to a member of the club membership program. Service providers may be any organization, such as online clubs, special interest groups, political groups, voter registration groups, or government organizations, such as the department of motor vehicles. Service providers may also comprise retailers, insurance providers, legal service providers, and medical service providers.
The services preferably include the provision of financial information and services, such as stock quotes, stock purchases, credit cards and loans. The services may also include the provision of credit card applications, insurance, government services, and information services for clubs and organizations. Any type of service that may be offered over an electronic medium may be provided in accordance with the membership program.
Figure 7 shows a flow chart that describes a method of administering online club membership services. The method begins when the user signs up for membership in the club membership program (step 710). The user preferably signs up over the data access network 120, such as by using the browser application 225 to download and view a web document that is associated with membership signups. Alternately, the user may sign up in the club membership program by using a telephone or by providing the club administrator with e-mail or snail mail. The club administrator may offer membership in the club membership program
either in conjunction with membership in an OSP or as an additional feature that is available to OSP members. Preferably, membership in the club membership program is provided independent of membership in an OSP.
The membership server 610 preferably obtains information about the user when the user signs up for membership in the club program (step 720). In one embodiment, the user initially manually provides the information upon signing up for membership in the club program. In another embodiment, the membership server 610 obtains the personal information from an existing database owned or accessible to the membership server 610 or from a database managed by a third party. Thereafter, the membership server 610 may obtain additional information about the user by periodically requesting updates from the user and by monitoring the user's interaction with the data network 120, particularly with respect to the content of web documents that the user accesses. The membership server 610 preferably stores the information regarding the user in the data store 640.
After the user has signed up for membership in the club program, the services administrator server 620 preferably offers one or more services to the user as a privilege of the membership (step 730). The services are preferably offered in association with the service providers that are affiliated with the club administrator. As mentioned, the types of services preferably relate to services that may be offered over an electronic medium, such as in conjunction with a web document. For example, the services administrator server 620 may offer the user the ability to track stock quotes using a service vendor that provides stock market services. The services may be offered either for monetary payment or for free.
Desirably, the services administrator server 620 offers the services in connection with a web document that is displayed in the browser window 505. As shown in Figure 5, the browser window includes one or more hyperlinks 520, some of which may be associated with a service. The hyperlink preferably includes a label that describes the type of services available to the user. The user preferably clicks on the hyperlink and the service administrator server 620 thereafter provides a web document that provides additional information regarding the terms for participating in the service.
In a preferred embodiment, at least one of the web documents is a form having one or more data fields for entry of us;r-related information (step 740). Prior to providing the web document to the local device, the services administrator sever 620 pre-fills the data entry fields with the appropriate user-related data from the data store 640 according to the method described above with respect to Figure 4. The user is therefore provided with a service signup form that is pre-filled with user information so that the user is not required to manually enter the information. This greatly facilitates the user signing up for the service, which increases the likelihood that the user will indeed sign up. The user examines the form and may revise the information contained in the form. For example, the user may enter a new address or telephone number.
After the services administrator server 620 provides the sign-up form to the client device 100, the user accepts the service related to the form (step 750). Preferably, the web document includes a one-click hypertext link that the user selects to affirm sign up with the service. This makes it as easy as possible for the user to sign up. As mentioned above, the user preferably also provides one or more levels of authorization that allow the club administrator to forward the user information to the service providers.
The services administrator server 620 preferably also examines the contents of the form to determine whether the user has revised the user information. If so, the services administrator server 620 preferably updates the user's personal information in the data store 640. Additionally, the server 620 preferably sends a notice to the user asking the user whether the updated information should be sent to other service providers. Alternately, the user may authorize that the server 620 to automatically update the service providers when the user enters new information into a form.
Thereafter, the local device 100 transmits a copy of the filled-in form to the club administrator server 605. The club administrator server 605 then provides the service provider with the user-related information (step 760). This is preferably accomplished by forwarding a copy of the web document to a web server device associated with the service provider, such as the service provider server 630.
In step 770, the membership server 610 updates the user-related information in the data store 640. The membership server 610 preferably updates the information on a periodic basis. Finally, the membership server 610 also periodically updates the enrollment status of the user for all services for which the user has signed up. For example, if the membership server 610 server obtains new address information regarding the user, the new information is electronically forwarded to the service provider so that the service provider's records may be updated. Additionally, the membership server 610 preferably automatically notifies the user of and/or automatically signs up the user for upgrades in the services provided by the service provider (step 780).
For example, assume that the user has signed up for program "blue" from a service provider. The service provider subsequently offers an upgrade from program "blue" to program "red." Preferably, the club administrator server 605 automatically upgrades the user's membership from program blue to program red, assuming that the user has authorized such automatic upgrades.
The club administrator server 605 is also configured to forward the user information in the data store 640 to one or more remote data stores as a group package. This will allow the user-base of the club membership program to be bulk transferred to other electronic membership programs without having to transfer the user information on an individual basis. The forwarding of user information is preferably governed by a set of preferences specified by the user. Each user preferably notifies the club administrator whether the user information may be automatically transferred to service providers or to third parties. Each user preferably also provides or denies authorization for the club administrator to allow service providers to send updates or additional information to the user.
In one embodiment, the services administrator server 620 periodically reviews the user information and compares it to a list of services offered by service providers. The services administrator server 620 then automatically sends notices to the user of services for which the user is eligible or for which the user seems to be interested. If the user has provided authorization, then the services administrator server 620 may automatically enroll the user in such programs.
The services administrator server 620 could also be configured to notify the user of important expiration dates such as the pending expiration of a license. The user could then use the client device 100 to instruct the services administrator server 620 to forward updated user information to the licensing entity with instructions to renew the license.
The club administrator server 605 is thus configured to administer and provide electronic services for the user. The club membership program is preferably used to provide the user with a one-stop ability to manage electronic information and services.
Although exemplary embodiments of the present invention have been shown and described, it will be apparent to those having ordinary skill in the art that a number of changes, modifications, or alterations to the invention as described herein may be made, none of which depart from the spirit of the present invention. All such changes, modifications and alterations should therefore be seen as within the scope of the present invention.