US20120044258A1 - Interactive networking systems - Google Patents
Interactive networking systems Download PDFInfo
- Publication number
- US20120044258A1 US20120044258A1 US13/285,146 US201113285146A US2012044258A1 US 20120044258 A1 US20120044258 A1 US 20120044258A1 US 201113285146 A US201113285146 A US 201113285146A US 2012044258 A1 US2012044258 A1 US 2012044258A1
- Authority
- US
- United States
- Prior art keywords
- user
- image
- web
- web site
- featured
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M3/00—Automatic or semi-automatic exchanges
- H04M3/42—Systems providing special services or facilities to subscribers
- H04M3/436—Arrangements for screening incoming calls, i.e. evaluating the characteristics of a call before deciding whether to answer it
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/0482—Interaction with lists of selectable items, e.g. menus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04842—Selection of displayed objects or displayed text elements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
- G06Q10/06311—Scheduling, planning or task assignment for a person or group
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
- H04L51/046—Interoperability with other network applications or services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/07—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
- H04L51/10—Multimedia information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y04—INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
- Y04S—SYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
- Y04S10/00—Systems supporting electrical power generation, transmission or distribution
- Y04S10/50—Systems or methods supporting the power network operation or management, involving a certain degree of interaction with the load-side end user applications
Definitions
- Various aspect of the present invention relate to social and professional networking and, more particularly, to interactive networking systems for enabling interaction between one or more classes of users.
- Such conventional systems are also not designed for serving as social or professional networking and communications platforms where certain individuals are highly sought after communication partners. For example, while celebrities are able to register and utilize conventional networking systems to communicate directly with their friends and acquaintances, celebrities do not currently have the ability to selectively allow communications from their fans.
- Exemplary embodiments of the present invention may include interactive networking systems providing various communication features. Such embodiments may allow multiple user classes.
- the networking system may comprise any or all of various components, including a crediting system, a chat bidding system, a performance bidding system, a telephony switching system, a media interaction system, a display system, a photo management system, and a messaging system.
- the networking system may additionally comprise a server assembly.
- the server assembly may comprise one or more web servers for hosting the web site.
- a user may interact with the web site through a web client adapted to display the web site.
- the web client may receive requests from the user and direct such requests to the server assembly.
- the server assembly may call various operations or programs to implement components and operations of the web site.
- the server assembly may send responses to user requests through the web client to the user.
- Each user of the web site may have, or be associated with, a user account for accessing the web site.
- each user account may be associated with a credit account for purchasing services from the web site.
- the credit account may represent virtual funds for use on the web site.
- the chat bidding system may enable common users to pose tasks to a featured user in an organized manner.
- the chat bidding system may generally comprise a featured user, a plurality of common users, and a tasks queue.
- the featured user may represent a person or entity in which the common users have interest.
- the featured user may be a celebrity, a doctor, a counselor, or the like.
- the featured user may use a featured user account to interact with the web site.
- the common users may have an interest in the featured user.
- the common users may be fans of the featured user.
- the chat bidding system the common users may pose tasks to the featured user.
- a common user may pledge credits for a task, thereby associating the task with a bid value.
- the amount of the bid value may be debited from the user's credit account.
- the tasks queue may comprise hardware, software, or a combination thereof, in communication with the server assembly.
- the tasks queue may organize the tasks in an order corresponding to the bids associated with the tasks.
- the featured user may be presented with the tasks in an order determined by the tasks queue and, therefore, determined by the bids associated with the tasks. For each presented task, the featured user may dispatch the task by responding to or skipping the task.
- the performance bidding system may enable users to perform on the web site in an organized manner.
- the performance bidding system may comprise a plurality of users and a performance queue.
- Each user may request an opportunity to perform, and may associate such request with a bid.
- the bid value may represent a number of credits deducted from the user's account in return for the user's performance.
- the performance queue may comprise hardware, software, or a combination thereof, in communication with the server assembly.
- the performance queue may organize the performance requests in an order corresponding to the bids associated with the requests.
- a user may be allowed to perform on the web site when the user's request reaches a top of the queue.
- the telephony switching system may enable anonymous contact between two parties having user accounts on the web site.
- the telephony switching system may generally comprise a first communication device, a second communication device, a service center, and a telephony switch.
- the first communication device and second communication device may be registered with the service center, and such registration may occur over the web site.
- Each registration may include a set of contact rules specifying who may connect to the applicable communication device, and when such connections may occur.
- a first user associated with the first communication device may request a connection to a second user associated with the second communication device.
- the service center may receive the request and, based on the contact rules, may determine whether the requested connection is allowed.
- the telephony switch may be in communication with the service center. If the requested connection is allowed, the service center may forward the connection request to the telephony switch. In turn, the telephony switch may connect the first communication device to the second communication device. Accordingly, the two communication devices may be connected to each other without phone numbers of either communication device being shared with the other communication device.
- the media interaction system may enable a first user to interact with a second user by extending a media object to the second user.
- the media object may be customizable, and may comprise various media, including animations, audio, or text.
- the media object may overlay other objects displayed on a client computer of the first user and a client computer of the second user.
- a display system may enable color and theme changes of the web site as viewed by a web client. Based on a user request, a color scheme and theme of the web site may be altered in response to a user request.
- the photo management system may enable users of the web site to manage and edit digital images stored on the server assembly.
- the photo management system may comprise an image library and an image editor.
- the image library may contain images selected or created by a particular user, and the image editor may enable the user to edit images in the image library.
- a messaging system may enable a first user to leave a message on a virtual message board of a second user.
- the messaging system may comprise a message area, one or more graphical tools, and a color selector.
- the first user may select a graphical tool and a color, and may then modify an image of the message area in a manner customizable based on the chosen graphical tool and color.
- FIG. 1 illustrates an architecture of a client computer utilizing an interactive networking system, in accordance with an exemplary embodiment of the present invention.
- FIG. 2 illustrates an architecture of a server assembly of the networking system, according to an exemplary embodiment of the present invention.
- FIG. 3 illustrates a block diagram of the networking system, according to an exemplary embodiment of the present invention.
- FIG. 4 illustrates a block diagram of a chat bidding system of the networking system, according to an exemplary embodiment of the present invention.
- FIG. 5 illustrates a flow diagram of an operation of the chat bidding system of the networking system, according to an exemplary embodiment of the present invention.
- FIG. 6 illustrates a flow diagram of a process of a featured user initiating and participating in a chat bidding session of the chat bidding system, according to an exemplary embodiment of the present invention.
- FIGS. 7A-7B illustrate flow diagrams of a process of the featured user moderating the chat bidding session of the chat bidding system, according to an exemplary embodiment of the present invention.
- FIG. 8 illustrates a flow diagram of a process of a common user joining the chat bidding session of the chat bidding system, according to an exemplary embodiment of the present invention.
- FIG. 9 illustrates a flow diagram of a process of the user participating in the chat bidding session of the chat bidding system, according to an exemplary embodiment of the present invention.
- FIG. 10 illustrates a flow diagram of an operation of a performance bidding system of the networking system, according to an exemplary embodiment of the present invention.
- FIG. 11A illustrates a process of registering a communication device with the telephony switching system of the networking system, according to an exemplary embodiment of the present invention.
- FIGS. 11B-11C illustrate block diagrams of a telephony switching system of the networking system, according to an exemplary embodiment of the present invention.
- FIG. 12 illustrates a flow diagram of a method of handling a connection request from a calling party to a receiving party in the telephony switching system of the networking system, according to an exemplary embodiment of the present invention.
- FIG. 13 illustrates a flow diagram of an operation of a media interaction system of the networking system, according to an exemplary embodiment of the present invention.
- FIG. 14 illustrates a flow diagram of an operation of a photo management system of the networking system, according to an exemplary embodiment of the present invention.
- FIG. 15 illustrates a flow diagram of an operation of a photo editor of the photo management system of the networking system, according to an exemplary embodiment of the present invention.
- FIG. 16 illustrates a flow diagram of an implementation of the photo editor of the photo management system, according to an exemplary embodiment of the present invention.
- FIG. 17 illustrates a flow diagram of a process of displaying an image in the photo management system of the networking system, according to an exemplary embodiment of the present invention.
- FIG. 18 illustrates a web page of a messaging system of the networking system, according to an exemplary embodiment of the present invention.
- FIG. 19 illustrates a flow diagram of an operation of leaving a message through a messaging system of the networking system, according to an exemplary embodiment of the present invention.
- FIG. 20 illustrates a flow diagram of an operation of retrieving messages from the messaging system of the networking system, according to an exemplary embodiment of the present invention.
- FIG. 21 illustrates a flow diagram of a general operation of the messaging system of the networking system, according to an exemplary embodiment of the present invention.
- embodiments of the present networking system may be implemented in media centers, video game consoles, operating systems, and virtual machines.
- Media centers may include television, telephone, and internet technologies, any of which may utilize various embodiments of the present networking system.
- video game consoles now implement social networking, internet communications, video recording, and digital file downloading.
- Interactive networking may be useful in such video consoles, and may be provided by embodiments of the present networking system.
- Operating systems such as LinuxTM, Mac OS XTM, and Microsoft WindowsTM, enable certain technologies to be implemented within the operating system outside of the framework of the World Wide Web. Accordingly, embodiments of the networking system may be utilized in such operating systems without use of the World Wide Web.
- technologies such as JavaTM and Adobe AirTM allow functionality outside the scope of the World Wide Web, in the context of “virtual machines,” which may utilize the present networking system.
- Exemplary embodiments of the networking system may contain components that may be utilized in a wide variety of applications. Some exemplary embodiments may be for personal entertainment, and others may be for professional use. Professional uses of the networking system may include, without limitation, medical personnel recruiting, educational applications, and various other applications matching persons to persons, persons to services, or persons to products.
- the networking system may comprise various classes of users, and may enable one or more user classes to control access and duration of interaction between themselves and users of one or more other user classes.
- FIG. 1 illustrates a computer architecture for a client computer 102 , in accordance with an exemplary embodiment of the present invention.
- the client computer 102 may be used to access the web site 310 ( FIG. 3 ).
- the client computer 102 may comprise a central processing unit 105 (“CPU”) and one or more system memories 107 , such as a random access memory 109 (“RAM”) and a non-volatile memory, such as a read-only memory (“ROM”) 111 .
- CPU central processing unit
- RAM random access memory
- ROM read-only memory
- the client computer 102 may further comprise a system bus 112 coupling together the memory 107 , the CPU 5 , and various other components.
- a basic input/output system containing routines to assist in transferring information between components of the client computer 102 may be stored in the ROM 111 .
- the client computer 102 may include a mass storage device 114 for storing an operating system 116 , application programs, and other program modules.
- the mass storage device 114 is generally connected to the CPU 105 through a mass storage controller (not shown) connected to the bus 112 .
- the mass storage device 114 and its associated computer-readable media provide non-volatile storage for the client computer 102 .
- computer-readable media may include any available media accessible by the client computer 102 or a server assembly 230 ( FIG. 2 ).
- the computer-readable media may comprise computer storage media and communication media.
- Computer storage media may include volatile and non-volatile, removable and non-removable media implemented in any method or technology for storage of information, such as computer-readable instructions, data structures, program modules, or other data.
- Computer storage media includes, but is not limited to, RAM, ROM, EPROM, EEPROM, flash memory, other solid state memory technology, CD-ROM, digital versatile disks (“DVD”), other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage, other magnetic storage devices, or any other media that may be used to store the desired data and may be accessible by the client computer 102 or the server assembly 230 .
- Computer-readable instructions on the storage media of the client computer 102 may include, for example, instructions for implementing processes, preferably client-side processes, of the networking system 300 .
- the client computer 102 may operate in a networked environment using logical connections to remote computers, such as the server assembly 230 , through a network 118 , such as the Internet.
- the client computer 102 may connect to the network 118 through a network interface unit 120 connected to the bus 112 .
- the network interface unit 120 may also be utilized to connect to other types of networks and remote computer systems.
- the client computer 102 may also include an input/output controller 122 for receiving and processing input from a number of other devices, including a keyboard, mouse, or electronic stylus.
- the input/output controller 122 may provide output to a display screen, a printer, or other type of output device.
- a number of program modules and data files may be stored in the mass storage device 114 and RAM 109 of the client computer 102 .
- Such program modules and data files may include an operating system 116 suitable for controlling operations of a networked personal computer.
- a web browser application program, or web client 124 may also be stored on the mass storage device 114 and the RAM 109 .
- the web client 124 may comprise an application program for requesting and rendering web pages 126 created in Hypertext Markup Language (“HTML”) or other types of markup languages.
- HTML Hypertext Markup Language
- the web client 124 may also be capable of executing scripts through the use of a scripting host.
- the scripting host executes program code expressed as scripts within the browser environment.
- the web client 124 may be operative to execute one or more client side objects.
- client side objects are executable objects that may be identified in a web page 126 and executed in conjunction with the rendering of the web page 126 .
- JavaTM applets or ActiveXTM controls may be identified on a web page 126 and rendered by the web client 124 to generate a portion of the web page 126 display.
- the web client 124 may be further operative to utilize client side objects called web part objects 128 A- 128 C, or web parts.
- Web part objects 128 A- 128 C are reusable client side objects that stand and contain web-based content such as Extensible Markup Language (“XML”), HTML, and scripts.
- Web parts 128 A- 128 C have a set of standard properties that control how they are rendered. These properties enable web parts to be storage-neutral and reusable. Because web parts 128 A- 128 C adhere to a common standard, they may be stored in libraries, which may be utilized to create a variety of web pages 126 . Web pages 126 that include web part objects 128 A- 128 C may be referred to herein as web part pages.
- the server assembly 230 may service the web site 310 by receiving and responding to requests from web clients 124 .
- the server assembly 230 may comprise various combinations of hardware and software for servicing the web site 310 .
- the server assembly 230 described in FIG. 2 is an exemplary server configuration and may be modified to accommodate various embodiments of the networking system 300 .
- the server assembly 230 may include many of the conventional computing components included in the client computer 102 and described above with respect to FIG. 1 .
- the server assembly 230 may include a CPU 105 , a network interface unit 120 connected to a network 118 , such as the Internet, a system memory 107 , and a mass storage device 114 .
- the mass storage device 114 utilized by the server assembly 230 may typically be operative to store an operating system 116 suitable for servicing the web site 310 and controlling operations of a server computer.
- the mass storage device 114 and its associated computer-readable storage media provide non-volatile storage for the server assembly 230 .
- Computer storage media may include volatile and non-volatile, removable and non-removable media implemented in any method or technology for storage of information, such as computer-readable instructions, data structures, program modules, or other data.
- Computer-readable instructions on the computer-readable media of the server assembly 230 may include, for example, instructions for implementing processes, preferably server-side processes, of the networking system 300 .
- the server assembly 230 may utilize a web server application 232 .
- the web server application 232 may receive and respond to requests from web clients 124 at remote computers, such as the client computer 102 , for web pages 126 located at or accessible to the server assembly 230 .
- web pages 126 as described herein, include both those pages stored statically and utilizing only HTML, as well as pages generated dynamically through use of server-side scripting technologies.
- the web server application 232 may receive requests for web pages 126 that include one or more web parts 128 A- 128 C.
- web parts 128 A- 128 C comprise client-side objects that may be used by the web client 124 when displaying a web page 126 .
- FIG. 3 illustrates a block diagram of the networking system 300 , according to an exemplary embodiment of the present invention.
- the networking system 300 may operate in an environment of the client computer 102 and the server assembly 230 .
- an exemplary embodiment of the networking system 300 may comprise an interactive networking web site 310 , the server assembly 230 , and a web site manager 315 .
- the client computer 102 may interact with the web site 310 and, accordingly, the server assembly 230 through the web client 124 at the client computer 102 .
- the web site 310 may enable interaction between and among one or more featured users and a plurality of common users.
- the featured users may interact with one another via the web site 310
- the common users may interact with one another via the web site 310 .
- the common users may desire some level of interaction with the featured users, and the featured users may desire some level of privacy in their interactions with the common users.
- a featured user may be a celebrity, and a set of common users may be fans of the celebrity.
- the web site 310 may provide a virtual environment for such interactions.
- the server assembly 230 may service the web site 310 .
- the server assembly 230 may operate as discussed in detail above, or in various manners for providing services to client computers 102 over a network.
- the web site manager 315 may manage the web site 310 , act as administrator of the web site 310 , and provide customer service to users of the web site 310 .
- the web site manager 315 may be one or more humans or entities, but may also comprise computing devices and automated services.
- the web site 310 may generally comprise any combination of the following components: a crediting system 320 , a chat bidding system 330 , a performance bidding system 340 , a telephony switching system 350 , a media interaction system 360 , a display system 370 , a photo management system 380 , and a messaging system 390 .
- Each component of the web site 310 may provide various services as described further below.
- the web site 310 may provide a crediting system 320 for providing users a means to purchase services of the web site 310 .
- Each user may have a user account, and the user account may be associated with the user's history of activities on the web site 310 .
- the user account may include a credit account representing virtual credits allotted to the user. The credits may be used to purchase services from the web site 310 , or products and services from entities associated with the web site 310 .
- the web site 310 may provide multiple categories of credits, such as universal credits and limited credits. Universal, or non-promotional, credits may be purchasable by the user. The user may purchase universal credits from the web site manager 315 via the web site 310 , over a phone call, or via various other means of communicating a desire to purchase credits. In contrast, limited, or promotional, credits may be awarded to the user based on promotions. The web site 310 may separately account for universal and limited credits. However, the web site 310 may present the user with either a combined total of credits or with separate totals for each of universal and limited credit accounts. As mentioned above, various services of the web site 310 may be purchased with credits. Preferably, predetermined exclusive services of the web site 310 may be purchased only with universal credits, while non-exclusive services may be purchased with universal credits, limited credits, or various combinations thereof.
- the web site 310 may provide various categories of user membership.
- the web site 310 may provide featured user accounts for featured users and common user accounts for common users.
- at least the common users may purchase services through the web site 310 with their credit accounts.
- Such services may include opportunities to interact with the featured users.
- Purchasable services may be services of the chat bidding system 330 , the performance bidding system 340 , the telephony switching system 350 , the media interaction system 360 , the display system 370 , the photo management system 380 , the messaging system 390 , and/or other web service systems.
- the web site 310 may implement a predetermined scheme for determining which credits are debited from the purchasing user's credit account. For example, and not limitation, a purchase of an exclusive service may automatically debit the user's universal credits. For a purchase of a non-exclusive service, the user may be allowed to specify which credits are debited for the purchase. Alternatively, the web site 310 may implement a first-in-first-out accounting, in which the first credits placed into the user's credit account are the first credits debited from the users account, or a last-in-first-out accounting, in which the last credits placed in the user's account are the first credits debited from the user account. As another option, the web site 310 may automatically debit any available limited credits before universal credits for the purchase of non-exclusive services.
- common users may interact with featured users, and as a result, common users, featured users, and the web site manager 315 may profit from such interaction.
- Common users may benefit by fulfilling desires to interact with featured users, such as celebrities, who might otherwise be inaccessible to the common users.
- Featured users may interact with common users and, thereby, increase their popularity and fan bases.
- featured users may have agreements with the web site manager 315 , whereby featured users share in revenues generated by the web site 310 or whereby the web site manager 315 donates revenues from the web site 310 to favored charities of the featured users. Additionally, the web site manager 315 may reap financial benefits through selling credits to common users.
- the chat bidding system 330 of the web site 310 may provide an organized community in which common users may interact with a featured user.
- FIG. 4 illustrates a block diagram of an exemplary chat bidding system 330 of the web site 310 .
- an instance of the chat bidding system 330 a chat bidding session, may comprise a plurality of common user accounts 410 , a tasks queue 420 , and a featured user account 430 .
- Each chat bidding session of the chat bidding system 330 may comprise a plurality of common users 415 and at least one, and preferably only one, featured user 435 .
- the common users 415 may pose tasks to the featured user 435 .
- the tasks queue 420 may store the posed tasks or references to the posed tasks.
- the featured user 435 may be presented with the tasks, preferably one at a time, and may choose whether to respond to each task as it is presented.
- FIG. 5 illustrates a flow diagram of an operation 500 of the chat bidding system 330 according to an exemplary embodiment of the networking system 300 .
- the web site 310 may receive a task posed by a first common user 415 .
- the task may be accompanied by a pledge from the common user 415 , and a bid value corresponding to the pledge may be associated with the task.
- the task may be inserted into an appropriate position of the queue 420 based on the task's associated bid value.
- a second task may be received from a second common user 415 at 530 , and at 540 , the second task may also be inserted into an appropriate position of the queue 420 .
- the web site 310 may present the featured user 435 with a priority task, which is the task currently at the top of the ordered queue 420 .
- the featured user 435 may choose to respond to the priority task, or to skip the priority task.
- common users 415 whose tasks are skipped may receive refunds for their pledged credits.
- the web site 310 may respond according to the featured user's decisions to skip or respond to the priority task. This may comprise accepting the featured user's response to the task or indicating that the priority task has been skipped.
- the common users 415 may pose tasks to the featured user 435 .
- Each task may comprise a question, comment, or request of the posing common user 415 .
- a common user 415 thereby requests that the featured user 435 respond to the posed task.
- Tasks may be posed in various formats.
- a task may be a typed question, an audio challenge or other request, or various other formats for prompting a response from the featured user 435 .
- the web site 310 may receive the tasks and, as described further below, may store the tasks in an ordered manner through use of the queue 420 .
- a common user 415 may associate a bid with a posed task.
- the bid is preferably a pledge of credits from the common user's credit account.
- the common user 415 may commit to purchase the featured user's response to the task for the pledged amount or, alternatively, may commit to purchase an opportunity to present the task to the featured user 435 for the pledged amount.
- a bid value for the posed task may be set to zero.
- a first exemplary embodiment of the chat bidding system 330 debits the common user's credit account regardless of whether the featured user 435 responds to the common user's task.
- An alternative exemplary embodiment of the chat bidding system 330 debits the credit account only if the featured user 435 is eventually presented with the common user's task or, alternatively, only if the featured user 435 responds to the common user's task.
- the tasks queue 420 may store the tasks or references to the tasks. Storage space for the tasks queue 420 may be provided on the server assembly 230 .
- tasks may be ordered based at least partially on their bid values. In other words, a first task with a first bid value may be ranked higher than a second task with a lower bid value.
- a new task When a new task is posed by a common user 415 , such new task may be inserted into the tasks queue 420 based on a ranking of the bid value of the new task.
- the new task may be ranked behind the previously-posed task.
- the web site 310 may notify the common user 415 of positions of his tasks in the queue 420 . Additionally, the web site 310 may allow the common user 415 to alter the bid values of his tasks and, thereby, potentially modify the positions of his tasks in the tasks queue 420 .
- the web site 310 may also display to the common user 415 an amount of credits required to increase a task of the common user 415 to a certain rank in the tasks queue 420 .
- bids for previously submitted tasks may be increased but not decreased.
- a predetermined number of highest ranked tasks in the queue 420 may have a fixed ranking order at the top of the queue 420 .
- the top N tasks may be fixed such that a bid modification of a previously lower-ranked task may not affect the positions of such top N tasks.
- the top N tasks may be presented to the featured user 435 , according to their rank amongst the other top N tasks.
- fixing ranks of the top N tasks may entail removing the top N tasks from the tasks queue 420 , and inserting them into a standby queue.
- Tasks in the standby queue may be ordered according to when they were removed from the tasks queue 420 , and may be presented to the featured user 435 in an order in which they were inserted into the standby queue.
- the standby queue may be a first-in-first-out queue, and after a task is removed from the standby queue for presentation to the featured user 435 , a highest ranked task in the tasks queue 420 may be removed from the tasks queue 420 and inserted into the standby queue.
- fixing ranks of the top N tasks may entail setting fixed positions for such top N tasks within the queue 420 and restricting resorting of such tasks. In either of these implementations, any resorting or rearranging of the queue 420 may not affect the positions of the top N tasks.
- a queue may be implemented in various manners and through use of various data structures. Those skilled in the art will further recognize that a queue may refer to certain types of related data, which may, but need not, be stored in contiguous physical space. Accordingly, as used herein, the standby queue of the chat bidding system 330 may refer to a set of data stored distinct from the tasks queue 420 , or to a set of data sharing physical space with the tasks queue 420 .
- Fixing ranks of the top N tasks may incentivise common users 415 to pledge high bid values for their tasks, because after such tasks reach a predetermined rank, their positions become fixed.
- N is a small number, such as two. A large value of N may discourage common users 415 by making too many of the top positions unreachable.
- data regarding posed tasks may be stored on the client computer 102 , in addition to the server assembly 230 .
- a client-side application may run at the client computer 102 , and may cache task data on the client computer 102 .
- client-side caching may occur locally on the client computer 102 by storing task data in an array in the order in which the tasks were posed.
- the array may contain task data including, for example, question text, bid amount, and current position in the tasks queue 420 .
- the order in which tasks are stored in the array may be retained when a web page of the chat bidding session is reloaded.
- the client-side cache may be updated at various occurrences, such as a rank change or an update to task text or bid amount.
- the web site 310 may present the featured user 435 with the priority task.
- the priority task may be the highest ranked task in the tasks queue 420 .
- the priority task may be the highest ranked task in the standby queue.
- the featured user 435 may be able to view a predetermined number of other posed tasks in addition to the priority task, but preferably, the featured user 435 must act on the priority task before being presented with any other tasks.
- the featured user 435 may view only the top N tasks, which have fixed position in the order in which they will be presented to the featured user 435 . In such embodiments, the featured user 435 may be permitted to select presented tasks out of order.
- the featured user 435 may also view statistics related to the task, such as the associated bid value and how long the task has been in the queue 420 .
- the featured user 435 may choose to respond to the priority task or to skip the priority task. If the priority task is skipped, the featured user 435 may not have another opportunity to respond to such task unless it is again posed by a common user 415 .
- the web site 310 may provide an organized manner for the featured user 435 to handle a small or large number of tasks. Additionally, common users 415 may be encouraged that their tasks can eventually be presented to the featured user 435 and may, therefore, more confidently pledge credits towards their tasks to increase a possibility that their tasks will be viewed.
- the featured user 435 may be entitled to temporarily skip a task and have it represented later, preferably after the following task.
- the common user 415 who posed such task may become a featured common user 415 .
- data relating to the featured common user 415 may be displayed to other common users 415 and to the featured user 435 .
- Such data may include, without limitation, the featured common user's username and picture.
- other users, both common 415 and featured 435 may have an opportunity to follow a web hyperlink and, thereby, view the featured common user's full profile on the web site 310 . Accordingly, the featured common user 415 may be rewarded for his pledge in that all other parties may know who posed the priority task.
- a role of the featured user 435 may be similar to a role of a chat moderator.
- the featured user 435 may initiate the chat bidding session and may prompt tasks from the common users 415 .
- the featured user 435 may select a charity to share in revenues generated by the chat bidding session.
- the featured user 435 may be able to change the benefiting charity during the chat bidding session. Credits deducted from credit accounts of the common users 415 for posed tasks represent revenues of the chat bidding session. In predetermined percentages, such revenues may be divided among the web site manager 315 , the featured user 435 , and, if indicated, the selected charity.
- the featured user 435 may also have access to a synchronous alert tool on the web site 310 .
- a synchronous alert tool on the web site 310 .
- the featured user 435 may issue a mass notification to all common users 415 , or to a predetermined set of common users 415 , to notify such common users 415 of the chat bidding session.
- the synchronous alert tool issues a pop-up alert to common users 415 .
- a common user 415 may view various elements of the chat bidding session.
- the web site 310 may display to the common user 415 a name and biography of the featured user 435 .
- the web site 310 may also display responses for each task to the plurality of common users 415 , as in a group chat session. In other words, if the featured user 435 responds to a task of a first common user 415 , such response may be displayed to all common users 415 in a virtual group environment of the web site 310 .
- each common user 415 may view and scroll through his own posed tasks.
- the common user 415 may view the queue position of each of his tasks and may modify the bid amount of each of his tasks.
- the common user 415 may also have access to a complete list of posed tasks from the plurality of common users 415 .
- a first common user 415 may be able to pledge his credits to a task posed by a second common user 415 .
- the first common user 415 may increase the bid value and, potentially, the rank of a task of the second common user 415 .
- the web site 310 may acknowledge both the second common user 415 and the first common user 415 when the task is featured and presented to the featured user 435 .
- the web site 310 may display various statistics related to the chat bidding session. For example, and not limitation, the web site 310 may display the total credits raised during the chat bidding session up to the current point in time, the time elapsed in the bidding session, the number of posed tasks not yet presented to the featured user 435 , the name of the selected charity, the average time the featured user 435 has taken to act on or respond to each presented task, and the estimated time remaining in the chat bidding session. At any point in time, the featured user 435 may pause the chat bidding session and, thereby, pause any running clocks utilized for calculating statistics related to the chat bidding session.
- FIG. 6 illustrates a flow diagram of a process 600 of a featured user 435 initiating and participating in a chat bidding session, according to an exemplary embodiment of the chat bidding system 330 of the web site 310 .
- the featured user 435 may initiate the chat bidding session. This may occur when the featured user 435 selects an appropriately labeled button, such as a button labeled “Create StarChat.”
- a pop-up or dialog may appear allowing the featured user 435 to create the new chat bidding session.
- the featured user 435 may select a charity to benefit from the chat bidding session, and may determine a duration for the chat bidding session.
- the networking system 300 may create the chat bidding session using the validated charity and duration selections.
- Cache object validation may occur at 610 . If a cache object does not exist, the networking system 300 may create a new cache object for managing the chat bidding session. To improve performance, the networking system 300 may cache objects on the server assembly 230 so that they can be used and manipulated quickly.
- the networking system 300 may determine whether a dialog for a chat bidding session has already been created. If not, at 612 , a chat bidding session dialog, in which tasks and responses may be displayed, is created and added to the cache. Then, the next time the dialog is requested, it may be retrieved from the cache.
- the networking system 300 may notify all online users of creation of the chat bidding session.
- a new chat icon may be created at 616 , and may be viewable by the common users 415 .
- the networking system 300 may direct the featured user's web client 124 to a web page of the chat bidding session.
- the featured user's information such as name and occupation, may be loaded into the chat bidding session for viewing by the common users 415 .
- the featured user 435 may await questions and tasks from the common users 415 . While there are no new questions or tasks, as shown at 624 , certain data about the chat may automatically update. Such data may include, without limitation, elapsed time, average time to respond to a question or task, and estimated time remaining. Preferably, this data is maintained and displayed as needed and appropriate throughout the chat bidding session.
- a process of acting on questions and other tasks of common users 415 may begin.
- the networking system 300 may determine whether a question or task has already been chosen by the featured user 435 at 628 .
- the question or task is added to the tasks queue 420 in cache to be stored for efficient future use.
- the tasks queue 420 may be re-sorted based on bid values relating to one or more newly inserted tasks.
- a question or task may be retrieved, at 634 , along with related data, such as data pertaining to the common user 415 who posed the question or task.
- the question or task data may be displayed so that the featured user 435 may respond.
- a notification may be sent to the common user 415 who posed the question or task, informing the common user 415 that his question or task is the priority task.
- this priority task may be removed from the tasks queue 420 , and at 642 , the tasks queue 420 may be updated to reflect that the priority task has been removed.
- FIGS. 7A-7B illustrate flow charts depicting further exemplary functions 700 of the featured user 435 during the chat bidding session.
- the featured user 435 may change the selected charity from within the chat bidding session. Changing the charity may be initiated when the featured user 435 selects a “Change Charity” button at 702 . Then, a pop-up or dialog may appear, enabling the featured user 435 to select a new charity. The pop-up or dialog may provide a list of approved charities from which the featured user 435 may choose.
- the featured user 435 may select a new charity, and the newly selected charity may be verified at 707 .
- This validation step may include, for example, verifying that the charity is a valid charity associated with the featured user 435 .
- a notification of the new charity may be transmitted to all common users 415 related to the chat bidding session, and 710 , all common users 415 and featured users 435 may be updated with the newly selected charity.
- changing the benefiting charity of a chat bidding session may not affect a distribution of the revenues generated through the chat bidding session before the change occurred.
- a first charity may benefit from the chat bidding session for the time period during which such first charity was specified as the benefiting charity. If the benefiting charity is changed to a second charity during a chat bidding session, only revenues after the change may be generated for the benefit of the second charity.
- the featured user 435 may have an ability to use the synchronous alert feature. This feature, as discussed above, may enable the featured user 435 to send a message to all common users 415 participating in the chat bidding session.
- a pop-up window may be presented to the featured user 435 at 714 .
- the featured user 435 may provide and submit a message for the common users 415 .
- the message may be transmitted to all common users 415 involved in the chat bidding session.
- the featured user 435 may have an ability to select the duration of the chat bidding session.
- the featured user 435 may change such duration. He or she may accomplish this by selecting a “Change Duration” button.
- a pop-up may appear, allowing the featured user 435 to modify the duration.
- the featured user 435 may enter the modified duration information, which may then be validated at 726 .
- a notification may be sent to all users in the chat bidding session at 728 and at 730 . If the chat bidding session displays an end time to the common users 415 , such end time may be updated in accordance with the new duration.
- the featured user 435 may skip the priority question or task. After the featured user 435 selects a “Skip Question” button at 732 , the question or task may be removed from the cache at 734 . Then, a new priority task may be presented to the featured user 435 .
- the featured user 435 may opt to end pledging in the chat session. For example, the featured user 435 may select a “Suspend Pledges” button. This option may prevent common users 415 from posing additional tasks, and may additionally prevent pledge increases for queued tasks.
- the cache may be updated in response to the featured user's indication that pledges are no longer allowed, and accordingly, the networking system 300 may no longer accept new questions or tasks from the common users 415 .
- a notification may inform the common users 415 that no new questions or tasks may be posed in the chat bidding session.
- the featured user may be required to continue acting on posed tasks until all tasks with non-zero bid values are acted upon.
- Common users 415 whose tasks remain in the tasks queue 420 after the featured user 435 exits the chat bidding session may receive refunds for their pledged credits.
- FIG. 744 an exemplary process of responding to a posed question or task is depicted.
- a response is displayed via the chat bidding session.
- the question or task may be removed from the cache, and at 750 , the task and response may be stored in the cache as answered.
- the task and response, or question and answer may also be stored in the database.
- notification of such response may be sent to the common users 415 participating in the chat bidding session.
- common users 415 and featured users 435 may be informed that a response to the priority task has been issued, and the task and corresponding response may be available for viewing.
- the featured user 435 may terminate the chat bidding session, such as by selecting an “End Chat” button at 760 . After which, a notification may be issued to the common users 415 in the chat bidding session at 762 . The common users 415 may then receive notification that the chat has ended at 764 . At 766 , a record of the chat bidding session dialog may be removed from the cache. At 768 , all pledges associated with unanswered tasks may be voided when the chat bidding session ends at 770 .
- FIG. 8 illustrates an exemplary process 800 of a common user 415 joining and viewing an exemplary chat bidding session.
- the common user 415 may elect to join a particular chat bidding session.
- the server assembly 230 may redirect the common user 415 to an appropriate web page for the chat bidding session, and the common user 415 may be added to a user list of the chat bidding session at 804 .
- the common user 415 may then be presented with tasks to which the featured user 435 has previously responded in the chat dialog at 806 . Additionally, questions and tasks to which the featured user 435 previously responded may appear in an “asked questions” area of the web page at 808 .
- the networking system 300 may enter a cycle of updating ranks of posed questions/tasks. Such updating may be necessary to ensure that the tasks, as displayed on the web site 310 , may reflect accurate rankings based on updated bid values from common users 415 . Updating may be implemented, preferably behind the scenes and out of view of the users 415 and 435 , by providing a question selector on the client computer 102 to iterate through questions and tasks in the local tasks queue 420 . Each web client 124 may provide metadata to the server assembly 230 describing changes to bid values and task ranks. At each iteration, at 810 , a web client 124 may determine whether the question selector references an asked question/task.
- an updated rank of the question or task may be retrieved from the tasks queue 420 on the server assembly 230 .
- the rank of the question or task referenced by the question selector may then be updated on the web client 124 to reflect current bid values at 814 .
- FIG. 9 illustrates an exemplary process 900 of a common user 415 participating in an exemplary chat bidding session.
- the common user 415 may use arrows, or similar selectors, to cycle through tasks and questions previously posed by that particular common user 415 .
- the networking system 300 may determine whether questions or tasks posed by other common users 415 exist in the queue 420 . If no such other questions or tasks exist, the networking system 300 may clear areas of the cache used for displaying tasks and their pledges and ranks. The common user 415 may then pose new questions or tasks to the featured user 435 .
- the networking system 300 may insert such question or task into the tasks queue 420 . If the newly posed question or task has not been previously posed in the chat bidding session, the web page of the chat bidding session may then be updated with data regarding the newly posed question or task of the common user 415 . Otherwise, if the question or task was previously posed, the task and related data, such as an associated bid value, may be retrieved from the cache at 932 , and then displayed on the web page of the chat bidding session at 934 .
- the client computer 102 such as that used by the common users 415 or the featured user 435
- the server assembly 230 interact in the chat bidding session through a service executing a dynamic update.
- This service may enable the web page of the chat bidding session to update without user interactions, such as clicking a “Refresh” button on the web client 124 .
- the dynamic update service may enable the common user 415 to view real-time positions of his tasks in the queue 420 , as well as real-time data for various other statistics viewable to the common user 415 .
- the dynamic update service may enable the featured user 435 to view real-time data related to, without limitation, any or all of the following: number of tasks in the tasks queue 420 , number of queued tasks associated with bids, elapsed time of the chat bidding session, estimated time to respond to all queued tasks, average time to respond to each task, amount of money raised, number of common users 415 viewing the chat bidding session, and various other statistical data related to the chat bidding session
- users may request to perform on the web site 310 , and may pledge credits to determine an order in which they may be allowed to perform. Such pledged credits may be directed towards a benefiting charity or may be paid to the web site 310 for the opportunity to perform. Alternatively, credits may be divided between the web site 310 and the benefiting charity.
- the benefiting charity if any, may be predetermined, and the users may be notified of information regarding the charity.
- the performance bidding system 340 may be available to both common users 415 and featured users 435 . For convenience, members of all classes of users may be referred to as “users.” Through the performance bidding system 340 , common users 415 may have an opportunity to perform for featured users 435 and other common users 415 . Similarly, featured users 435 may have an opportunity to perform for common users 415 and other featured users 435 . Users participating in the performance bidding system 340 , but not currently queued for a performance on the web site 310 , are herein referred to as observers. The users queued for performances are herein referred to as performers. Together, performers and observers make up the participants of the performance bidding system 340 .
- the performance bidding system 340 of the web site 310 performs in some manners similar to the chat bidding session. Similarly to the chat bidding system 330 , the performance bidding system 340 may comprise a queue, specifically a performance queue, and a plurality of participating users.
- the networking system 300 may provide the performing user with music and lyrics, as in a karaoke style performance. If a non-karaoke type of performance is desired, the web site 310 may provide other, appropriate support for the performance. For example, if the performing user indicates that she would like to perform in spoken work, the web site 310 may provide soft background music as indicated by the performing user.
- the performing user may provide one or more recording devices, such as a webcam and a microphone, and the server assembly 230 may receive media representing the performance. Preferably, such media is streaming media.
- the web site 310 may present the performance, preferably streaming, to the observers.
- Users who make performance requests may be provided with a menu of selections for supporting their performance. For example, a user requesting to perform karaoke-style may be presented with a list of songs for the web site 310 to provide music and lyrics.
- the user's username and support selections such as a song title, may appear in a status section of a web page of the performance bidding system 340 to identify the user's position in the performance queue. All other queued performers, or alternatively, a predetermined number of highest ranked performers in the performance queue, may also appear in the status section, thereby providing participants with data regarding expected performances.
- the web site 310 may display data regarding the performers, observers, or all participants. For example, and not limitation, the web site 310 may display the total numbers of performers and observers. The web site 310 may also display statistics of performers or of the total participating users, such as displaying geographic statistics of the performers or of all participants. This may give participants an estimate of the geographic range of the performers, and may give performers a geographic range of the observers.
- a user may pledge credits to the request and, thereby, associate the request with a bid value. If no bid value is provided with a performance request, the request may be placed at the bottom of the performance queue. However, a performer may increase her position in the queue by increasing her pledge value above other another performer's pledge value. Performers may rise in the performance queue as others perform and are, consequently removed from the queue. A performer's position in the queue may be dynamic, as all performers may increase their bid values to escalate their own positions in the performance queue. Therefore, a performer's queue position may periodically change and be updated accordingly in the status section.
- a bidding dialog box on the web site 310 may provide performers with means to increase their pledges and, thereby, potentially increase their positions in the performance queue.
- the bidding dialog box may display to each performer an amount of credits required to increase the performer's queue position to a certain rank in the performance queue.
- the performer's position may become locked. Locking the top X positions in the performance queue may be implemented in various manners, including those described above with reference to the top N positions of the tasks queue 420 .
- Performers with the top X locked positions may be able to perform in succession regardless of pledge increases of participants.
- the top X performers, along with their support selections may be displayed in the status section of the web page of the performance bidding system 340 .
- While a user is performing on the web site 310 data from her profile may be displayed to participants of the performance bidding system 340 . Participants may also have an opportunity to follow a web hyperlink and, thereby, view the performing user's full profile on the web site 310 . Participants may then be able to learn more about the performing user and may leave feedback on the performing user's profile.
- a rating window may automatically be presented to the participants. Through the rating window, the participants may rate the performance or leave feedback regarding the performance. Top-rated performances may be stored on the server assembly 230 and accessible for replay by each participant.
- FIG. 10 illustrates a flow diagram of an operation 1000 of the performance bidding system 340 , according to an exemplary embodiment of the networking system 300 .
- a participant may enter a lobby, or introductory web page, of the performance bidding system 340 of the web site 310 .
- the participant may participate passively by requesting, receiving, and viewing streaming media of the current performing user at 1004 .
- the participant may elect to become a performer at 1006 .
- the participant may be presented with a selection of support material, such as a list of songs from which the participant may select a song to perform karaoke-style.
- the user's username and support material may be inserted into the last position of the performance queue, at 1010 , if no credits are yet pledged.
- the performance queue may be maintained and dynamically updated at 1012 .
- the participant may be offered an option to pledge credits, or additional credits, to escalate her position in the performance queue. If the participant bids credits to escalate her position, at 1016 , the networking system 300 may determine whether the bid is sufficient to raise the participant's position in the performance queue. If the bid is sufficient, the process 1000 returns to 1012 and updates the performance queue.
- a next performer in the performance queue may be alerted. Additionally, the queue may be updated, and a rating dialog box may be displayed at 1022 , providing participants an opportunity to rate the previous performer and to provide comments about the performance. Accordingly, participants, including the previous performer, may be provided with instant feedback from other participants. Viewing participants may complete a rating form in the dialog box or may bypass completing the rating form at 1028 .
- streaming media such as audio and video
- the participant may be provided with background music and lyrics at 1026 .
- users of the networking system 300 may interact with one another by performing for one another, viewing such performances, and communicating regarding such performances.
- parties may contact one another anonymously.
- the telephony switching system 350 may enable a party to limit calls from certain users and groups of users, and according to predefined schedules. This feature of the web site 310 may be especially beneficial for featured users 435 .
- a featured user 435 may place or accept a call to or from a common user 415 while maintaining a concealed phone number. Additionally, through predefined scheduling rules, the featured user 435 may block all calls during certain time periods.
- common users 415 may transition a chat session to a telephone call without compromising the privacy common to chat sessions.
- a calling party may request a connection, such as a telephone chat, to a receiving party.
- the networking system 300 may verify that the receiving party is willing to accept the connection from the calling party. Once verified, the networking system 300 may place a call to each of the calling party and the receiving party, and may then patch the two calls together so that each of the two parties can engage in a chat without divulging contact information, such as a telephone number, to the other party.
- the calling party may initialize the connection by contacting a service center and requesting to be connected to the receiving party via a communication device.
- the service center may initiate a call to the receiving party and patch that call to the calling party.
- FIG. 11A illustrates a process 1100 of registering a communication device with the telephony switching system 350 .
- the user of the telephony switching system 350 may request that the communication device be registered.
- the telephony switching system 350 may register the communication device on a database of the server assembly 230 .
- the telephony switching system 350 may create a unique identifier associated with the communication device.
- a message may be displayed on the web site 310 notifying the user of the unique identifier and its availability for use.
- the user may either assign his own personal identification number (“PIN”) or request that the telephony switching system 350 create a PIN for the user.
- PIN personal identification number
- telephony switching system 350 may determine whether the system 350 is to create a PIN or, alternately, whether the user has submitted a PIN for validation. If the telephony switching system 350 was asked to assign a PIN, such a PIN is created and assigned by the telephony switching system 350 at 418 . Otherwise, the user assigned PIN may be validated.
- the web site 310 may display that the PIN is active and ready for use.
- the communication device may be associated with a unique identifier and a PIN.
- the unique identifier may be used to identify a calling party when a connection is requested via the telephony switching system 350 .
- the PIN may be used to identify a receiving party.
- the calling party may provide a unique identifier to identify himself, and may provide a PIN to identify the receiving party.
- the calling party may be required to receive a PIN from the receiving party before connecting to the receiving party.
- Each receiving party may request and receive multiple PINs from the telephony switching system 350 .
- each PIN may serve a distinct purpose. For example, a first PIN may be distributed to family members for contacting the receiving party, and a second PIN may be distributed to business associates for contacting the receiving party. This will be described in further detail below.
- FIGS. 11B-11C illustrate block diagrams of exemplary embodiments of the telephony switching system 350 .
- an exemplary embodiment of the telephony switching system 350 may generally comprise at least two communication devices 1130 , a service center 1160 , and a telephony switch 1170 .
- the calling party 1180 may use the first communication device 1140 to communicate with the service center 1160 .
- the service center 1160 may be in communication with the telephony switch 1170 .
- the telephony switch 1170 may be in communication with the first communication device 1140 and the second communication device 1150 , and may connect the first communication device 1140 to the second communication device 1150 .
- the communication devices 1130 are already registered with the telephony switching system 350 .
- the communication devices 1130 may include a first communication device 1140 and a second communication device 1150 .
- communication devices 1130 may comprise various devices capable of communicating over a communications network, such as a telephone network or the internet.
- Each communication device 1130 may be a wired telephone, wireless telephone, cellular telephone, satellite telephone, voice over IP (“VoIP”) phone, PDA, soft phone, computer, or other device capable of audio and/or video communications.
- the first communication device 1140 may be associated with a first phone number and a calling party 1180 .
- the first phone number identifies the first communication device 1140 .
- the second communication device 1150 is associated with a second phone number and a receiving party 1190 .
- the second phone number identifies the second communication device 1150 .
- the service center 1160 may comprise one or more hardware or software devices, or various combinations thereof, capable of receiving and storing registrations relating to communication devices 1130 , managing such registrations, analyzing connection requests relating to registered communication devices 1130 , and initiating and managing connections.
- the telephony switch 1170 may comprise various telephone exchanges, switches, or combinations thereof.
- the telephony switch 1170 may be a private branch exchange (“PBX”).
- PBX private branch exchange
- the telephony switch 1170 may connect the calling party 1180 to the receiving party 1190 if such a connection is deemed allowed.
- the telephony switch 1170 may comprise one or more PBX switches trunked to other telephony switches and telephony service centers with various PBXs located around the world. Trunks may allow multiple calls to be combined into a single channel and be delivered to other PBXs either in the same telephony switch 1170 or other telephony switches having available channels to VoIP termination providers or public switched telephone network (“PSTN”) terminations.
- the telephony switch 1170 may provide trunks and termination end points to provide high quality and low cost termination to communication devices 1130 . The termination end points and trunks may also be provided through a third party VoIP termination or PSTN.
- the PBX implementation may be a software system allowing existing telephony infrastructure to interact using VoIP standards.
- the service center 1160 and the telephony switch 1170 may be integrated together.
- the service center 1160 may comprise a PBX for providing the call-handling for users requesting communications with other users.
- Calls may traverse digital circuits, analog interfaces, VoIP networks, or various other networks for delivering communications.
- Digital circuits may be defined telephony standards, such as T1 lines carrying 24 channels of voice to standard telephony companies.
- Analog interfaces may provide single channels of voice for delivery to the public switched telephone network (PSTN).
- PSTN public switched telephone network
- VoIP protocols such as SIP, IAX, H.323, and others, may enable audio, metadata, and video to be digitized, secured, and compressed for delivery over computer networks to other service centers or other termination endpoints. These delivery mediums may enable the PBX in the service center 1160 to connect two or more parties anonymously.
- FIG. 12 is a flow diagram illustrating a method 1200 of handling a connection request from the calling party 1180 to connect to the receiving party 1190 , according to an exemplary embodiment of the telephony switching system 350 .
- the service center 1160 receives a connection request from the calling party 1180 to connect to the receiving party 1190 .
- Such communication request may be made by the calling party 1180 through the first communication device 1140 .
- the communication request may be made by the calling party 1180 via a web interface.
- the service center 1160 may determine whether a connection is allowed given predetermined variables. Such variables may include certain contact rules preset by the receiving party 1190 .
- each user may provide a list of users permitted to call, a list of users not permitted to call, times when calls are allowed, or other suitable calling criteria. If the connection request is not allowed, the service center 1160 may notify the calling party 1180 of the denial, as at 1230 . Otherwise, if the connection request is approved, at 1240 , the service center 1160 may forward the connection request to the telephony switch 1170 . At 1250 , the telephony switch 1170 may connect to the second communication device 1150 and, therefore, to the receiving party 1190 using the second communication device 1150 .
- the telephony switch 1170 may patch together its connections to the calling party 1180 and the receiving party 1190 , such that the two parties 1180 and 1190 are in communication with each other. If the receiving party 1170 does not answer, the calling party 1160 may be permitted to leave a voice message within the receiving party's video/voice mailbox.
- communication devices 1130 such as the first and second communication devices 1140 and 1150 , may be registered with the service center 1160 . Registrations may be communicated to the service center 1160 through various manners. For example, and not limitation, registration of the first communication device 1140 may be communicated to the service center 1160 through a phone call, such as by the calling party 1180 calling the service center 1160 and providing registration information.
- registration may be accepted through a web client 124 .
- the web client 124 may receive registration information and send it to the server assembly 230 .
- the server assembly 230 may be part of, or in communication with, the service center 1160 .
- the service center 1160 may be part of the server assembly 230 .
- the server assembly 230 may provide the registration information to the service center 1160 .
- Registration information for a communication device 1130 may include, without limitation, a phone number associated with the communication device 1130 , an account identifier, and a set of contact rules.
- the account identifier may comprise information for identifying a user account on the web site 310 .
- the specified user account may then be associated with the communication device 1130 .
- an account user such as the calling party 1180 , may have a credit account associated with the user account.
- the credit account may track a number of credits available to the associated user for purchasing services from the web site 310 .
- credits available to the user of the user account may also become available for the purpose of purchasing connections through the telephony switching system 350 . Additionally, credits may be charged for the duration of connections initiated through the telephony switching system 350 .
- the set of contact rules may indicate who may connect to the communication device 1130 , and when such connections may occur.
- Various rule types may be included in the contact rules.
- the contact rules for the receiving party 1190 or the second communication device 1150 may specify that connections may be made from the first communication device 1140 only during certain hours.
- the receiving party 1190 may refer to the first communication device 1140 by, for example, its associated phone number, its unique identifier, or a username or other alias of the receiving party 1190 .
- the contact rules may specify that users of a predefined group may not connect to the second communication device 1150 , or that users of the predefined group may connect to the second communication device 1150 only during specified hours.
- the contact rules may specify that the first communication device 1140 , or users of the predefined group, may never connect to the second communication device 1150 or, alternatively, may connect to the second communication device 1150 at any time.
- the contact rules may also specify categories of allowed or disallowed calls, such as conference calls, faxes, or calls from cellular telephones.
- the contact rules may specify alternate handling of connection requests based on various factors, including, without limitation, subject matter of the call, gender of the calling party, geographic location of the calling party, and/or time of the call.
- embodiments of the telephony switching system 350 may have wide application.
- the telephony switching system 350 may be used for recruiting and screening employment opportunities.
- a potential hiree may structure contact rules around acceptable employment opportunities.
- the potential hiree may allow calls only from recruiters or employers having job opportunities in a predefined geographic area, with salaries over a predetermined threshold, and/or with a predetermined set of benefits.
- the contact rules may specify actions to be taken if a connection is requested when the receiving party 1190 is unavailable and cannot, therefore, respond to a connection made through the telephony switching system 350 .
- the contact rules may specify which parties are approved to leave messages, and which parties are to be presented with a pre-recorded message from the receiving party 1190 .
- the contact rules may specify alternate voicemail recordings to be presented to alternate calling parties 1180 .
- a connection may be automatically terminated if the calling party 1180 is not approved to leave a message or to receive a pre-recorded message when the receiving party 1190 is unavailable.
- the system 350 may terminate the call when the system 350 detects that the receiving party's voicemail is answering the call. Such termination may be useful in maintaining the privacy of the receiving party 1190 because personal information, such as the person's identity or phone number, may be present on the standard voicemail greeting. In such cases, the calling party 1180 may be diverted to the receiving party's mailbox associated with the system 350 , or the call may be terminated without allowing a message to be left.
- Mailboxes on the system 350 may receive messages of various types.
- such mailboxes may include conventional voice mailboxes, video mailboxes, audio mailboxes, email mailboxes, and multimedia mailboxes capable of receiving various types of mail.
- the calling party 1180 may be redirected to a voice mailbox, or may receive instructions for leaving a message in some other media format.
- the receiving party 1190 may have various options for organizing, sorting, retrieving, and responding to messages, including those messages left through the telephony switching system 350 .
- the receiving party 1190 may sort messages based on characteristics of senders of the messages, or on other characteristics of the messages.
- the receiving party 1190 may respond individually or en masse to all messages or a set of messages. Such response may also take various media formats, such as video, audio, email, or multimedia.
- the contact rules may specify that any person who provides a specific PIN may connect to the second communication device 1150 according to a predefined schedule associated with the caller PIN.
- the receiving party may have multiple PINs for distinct purposes. Multiple caller PINs may be assigned and used for various users, groups, or call types. For example, different caller PINs may be provided for chat sessions, for a family group, and for a celebrity fan group. Each caller PIN may be automatically generated by the service center 1160 , or the receiving party 1190 may create the caller PIN and provide such caller PIN to the service center 1160 . Each caller PIN may, for example, allow unlimited uses, a specific number of uses, or may be given an absolute or relative termination date.
- the calling party 1180 may call the service center 1160 , which is preferably identified by a toll free number.
- the calling party 1180 may provide information to identify the receiving party 1190 .
- the calling party 1180 may enter a username for a user account of the receiving party 1190 , an identifying PIN associated with the receiving party 1190 , the unique identifier of the receiving party 1190 , or various other identifiers or aliases of the receiving party 1190 .
- the service center 1160 receives such information from the calling party 1180 via an automated service provided by the service center 1160 .
- the calling party 1180 may be prompted to provide such a caller PIN.
- the service center 1160 may automatically recall the unique identifier of the first communication device 1140 .
- the service center 1160 may prompt the calling party 1180 to enter the unique identifier of the first communication device 1140 .
- the service center 1160 may consider this unique identifier when determining whether to approve the connection.
- the service center 1160 may approve or deny the connection based on data received from the calling party 1180 and the first communication device 1140 , as compared to the contact rules of the receiving party 1190 .
- the connection request may also be made over the internet through use of one or more web clients 124 .
- the calling party 1180 may be logged into a user account on the web site 310 .
- the calling party 1180 may request a connection to the receiving party 1190 .
- the calling party 1180 may not be required to know the name or phone number of the receiving party 1190 , so long as the calling party 1180 can provide predetermined identifying information regarding the receiving party 1190 .
- the calling party 1180 may provide or select a username of a user account associated with the receiving party 1190 .
- the server assembly 230 may receive the connection request and may route the request to the service center 1160 for approval.
- the service center 1160 may approve or deny the connection based on contact rules of the receiving party 1190 .
- the receiving party 1190 may be logged onto the web site 310 when the calling party 1180 requests a connection to the receiving party 1190 .
- the receiving party 1190 may be notified of the connection request via a second web client 124 used by the receiving party 1190 .
- the receiving party 1190 may approve or deny the connection request.
- the receiving party's approval or denial may be received by the server assembly 230 . If the receiving party 1190 approves or denies the connection request via the second web client 124 , the service center 1160 need not determine whether to connect the calling party 1180 to the receiving party 1190 . If the receiving party 1190 approves the connection, the server assembly 230 may notify the telephony switch 1170 of such approval. The telephony switch 1170 may then connect the calling party 1180 to the receiving party 1190 , as described further below.
- the service center 1160 may receive connection requests from the server assembly 230 or from the calling party 1180 . In response to such receipt, the service center 1160 may determine whether to honor connection requests. After receiving the connection request of the calling party 1180 , the service center 1160 may query the contact rules of the receiving party 1190 to determine whether the calling party 1180 may connect to the receiving party 1190 . If the contact rules specify that the calling party 1180 or the first communication device 1140 may connect to the receiving party 1990 or the second communication device 1150 at the time the connection request is made, then the service center 1160 may approve the connection request. Otherwise, the service center 1160 may deny the connection request. If the receiving party 1190 is logged into the website and approves the connection, the contact rules verification step may be skipped.
- the calling party 1180 may be disconnected from the service center 1160 without being connected to the receiving party 1190 .
- a disconnection is preceded by the service center's providing a polite message to the calling party 1180 notifying the calling party 1180 that the requested connection is not allowed.
- the server assembly 230 may prompt the first web client 124 to notify the calling party 1180 of the denial.
- the service center 1160 may communicate the approved connection request to the telephony switch 1170 .
- the telephony switch 1170 may then connect the calling party 1180 to the receiving party 1190 .
- the telephony switch 1170 may direct a signal to the second communication device 1150 indicating that a connection is requested. Such a signal may result in the second communication device 1150 issuing an alert, such as an audible tone, to notify the receiving party 1190 that a call is waiting.
- Caller identification data associated with the service center 1160 may also be transmitted to the second communication device 1150 .
- the second communication device 1150 may display data related to the service center 1160 . If the second communication device 1150 is activated after receiving the signal, such as by the receiving party 1190 answering a phone call, the telephony switch 1170 may connect the first communication device 1140 to the second communication 1150 device. Upon activation of the second communication device 1150 , the telephony switch 1170 may immediately connect the first and second communication devices 1140 and 1150 . Alternatively, the service center 1160 or the telephony switch 1170 may prompt the receiving party 1190 to accept the connection. Then, the call may be connected only if the receiving party 1190 accepts the connection.
- the telephony switch 1170 may send signals to both the first communication device 1140 and the second communication device 1150 .
- Caller identification data associated with the service center 1160 may be transmitted to the first and second communication devices 1140 and 1150 .
- the communication devices 1140 and 1150 are capable of displaying caller identification data, they may display data related to the service center 1160 .
- the communication devices 1140 and 1150 may issue alerts to the calling and receiving parties 1180 and 1190 of the connection.
- the calling and receiving parties 1180 and 1190 activate the first and second communication devices 1140 and 1150 , the two parties 1180 and 1190 may be connected.
- the caller identification information may include data relating to the service center 1160 , such as a phone number of the service center 1160 .
- calls may be associated with alternative caller identification information.
- the caller identification information may include an alias, username, or handle of the other party and/or a telephone number associated with the web site 310 or service center 1160 .
- At least one of the calling party 1180 and the receiving party 1190 may be required to use credits to purchase the connection request, the approved connection, or both. Additionally, call crediting may be required for each unit or other measurement unit of call time. Credits may be automatically debited from applicable accounts when a connection is requested or when a call is connected.
- connection to a fax machine may require more credits than connection to a landline telephone.
- a connection during a business day may require more credits than a connection on an evening or weekend.
- the calling party 1180 requests a connection to the receiving party 1190
- the calling party's credit account may be debited for the request.
- the receiving party 1190 accepts the connection, through contact rules or through an affirmative approval, credit accounts of both parties 1180 and 1190 may be debited for the connection.
- a debit may only be required for approved connections instead of for connection requests as well, or a debit may only be required for the calling party 1180 .
- a debit may only be required from the calling party 1180 when a common user 415 connects to, or requests a connection to, a feature user 435 .
- the networking system 300 may further comprise a media interaction system 360 accessible through the web site 310 .
- the media interaction system 360 may enable a first user to interact with a second user through a use of one or more media objects.
- Media objects may allow users a creative and personal means to interact with other users.
- Media objects may comprise various types of media, such as computer animations, other video, audio, or text.
- a media object may comprise an animation in conjunction with an illustration package capable of superimposing a user's existing display objects.
- An animation in the media object may be implemented in various formats, such as FlashTM, Microsoft SilverlightTM, or the like.
- the media object When displayed, the media object may have a transparent background. In other words, media objects of the networking system 300 may appear to float in front of other objects displayed on a client computer 102 .
- Media objects may comprise web-based objects selectable by the first user and sent to the second user after prompting by the first user.
- the first user may select a media object from a predetermined collection of media objects presented to the first user.
- the media objects may be associated with a theme, such as a particular holiday, feeling, or season.
- Media objects available for selection on the web site 310 may change or rotate based on various factors, such as season or political climate.
- Media objects may be dynamic and customizable to further personalize interactions between the first user and the second user.
- a username of the first user may be automatically inserted into a media object sent to the second user, or the networking system 300 may prompt the first user for text to insert into the media object.
- the media object may comprise a personalized note to the second user. After the first user selects an option to send the personalized note, the first user may be prompted to enter custom text to be displayed in the note.
- an animation may play in the web client 124 of the second user. The animation may display, for example, a pen writing the text entered by the first user.
- the selected media object and any user customizations may be stored and queued on the server assembly 230 .
- the media object may preferably comprise no more than approximately 30 seconds of animation at 30 frames per second.
- the file size of a media object is preferably no more than approximately 150 kilobytes.
- the chosen media object may be stored in a queue of the server assembly 230 .
- display of the packaged media object on the second user's client computer 102 may be purposely delayed until a predetermined event occurs. For example, such display may be delayed until the second user returns to a chat room in which the second user actively chats with the first user.
- the media object may be delivered to the second user's client computer 102 through a pull method.
- the pull method may be implemented by creating a pulse, or heartbeat, that is repetitively fired by the web client 124 , and may be received by the server assembly 230 .
- the request may inform the server assembly 230 of a current state of the web client 124 and any events that should be handled.
- data is delivered to the web client 124 regarding how to handle such events.
- the first user's request to send the media object may be transmitted to the server assembly 230 in this manner, and may create an event and accompanying metadata on the server assembly 230 .
- the server assembly 230 may read the metadata to determine how to handle the event. Based on the metadata, the server assembly 230 may determine that the event is a media object and should be addressed to the second user's client computer 102 .
- the server assembly 230 may then create an event and metadata for the second user's web client 124 , and may retain the event and metadata in a queue until the server assembly 230 hears from the second user's web client 124 .
- the server assembly 230 may respond by transmitting the data in its queue, such as the event related to the media object, to the web client 124 .
- the web client 124 may then receive the data in the queue, including the media object event.
- the second user's web client 124 may display the media object selected by the first user.
- the media object may be delivered to the second user's client computer 102 via a push method.
- the server assembly 230 may remain aware of the web client 124 because of the open channel and, therefore, the web client 124 may remain available to respond to requests sent by the server assembly 230 .
- the server assembly 230 may send the event and associated metadata directly to the second user's web client 124 without the web client 124 firing a pulse to determine whether it should receive the media object.
- the networking system 300 may provide three categories of media objects, including packaged media objects, extended media objects, and bi-directional media objects.
- a packaged media object may comprise a flash animation allowing little to no selectable customization by the first user.
- the packaged media object may be pre-packaged and sent as-is.
- the packaged media object may be an animation, such as a flash animation, which may include a catch phrase or punch line.
- a packaged media object may be selected for delivery from various portions and web pages of the web site 310 .
- the first user may select and send a packaged media object from within a chat session with the second user.
- the chat session there may be a portion of the chat web page comprising a menu of sendable packaged media objects.
- the menu may represent each packaged media object as an icon, which may or may not be animated.
- the web site 310 may provide a drop-down menu of selectable media objects.
- a pop-up may identify a name or description of the packaged media object.
- the packaged media object may be delivered to the second user.
- the first user may be asked to confirm that he wants to send the packaged media object. But this is not required.
- the networking system 300 may display the media object on the client computers 102 of both the first user and the second user. For example, if the media object comprises a flash animation, the flash animation may be played on each of the client computers 102 .
- Extended media objects may comprise interactable flash animations from the first user to the second user.
- an extended media object may be a virtual gift, such as a locket containing an image selected by the first user.
- an extended media object may contain virtual food or a virtual beverage.
- the first user may select the extended media object from a virtual gift shop on the web site 310 .
- the extended media object may then be displayed to the second user without affirmative prompting of the second user or, alternatively, the extended media object may be delivered to a virtual mail box or other virtual location of the second user. In the latter case, the second user may be required to retrieve the extended media object from its virtual location.
- a difference between a packaged media object and an extended media object may be that, before a chosen extended media object is sent, the first user may be prompted to provide some degree of customization for the extended media object. For example, the first user may be asked to select a specific gift or beverage for the second user.
- the first user may observe a different display of the media object than observed by the second user. For example, while the first user may view a virtual bar for selecting a drink to send the second user, the second user may view a prepared drink.
- a bi-directional media object may allow, or require, interaction from both the first user and the second user.
- the bi-directional media object may comprise a game for two or more players.
- the first user may initiate the bi-directional media object from, for example, a profile of the second user.
- the first user may choose to send a bi-directional media object and may then be prompted to select a recipient user, such as the second user, to receive the bi-directional media object.
- a prompt or invitation may be sent to the second user, requesting that the second user participate in the bi-directional media object.
- the first user may dictate an action and may receive a response from the second user. This may occur iteratively in a bi-directional media object constituting an ongoing game. Selected action of the first and second users within a bi-directional media object may be stored in a shared object within a flash animation file.
- Two or more users may participate in a bi-directional media object.
- users such as the first and second users, participate in a bi-directional media object
- their web clients 124 may become statically linked through a dedicated server object providing a dedicated communications channel. This may provide an efficient delivery mechanism for the users.
- the media object may be cached on the client computers 102 of the first and second users.
- an HTTP protocol is provided for implementing a pull method for bi-directional media objects.
- the pull method may be similar to that described above for other media objects.
- the pulse from each involved web client 124 requests that the server assembly 230 act as a proxy, and that the data being transmitted from the web client 124 should be addressed to the dedicated server object associated with the bi-directional media object.
- the web client 124 may also request that the server assembly 230 transmit event data relating to the bi-directional media object, such as actions of other users participating in the bi-directional media object.
- a push method may be implemented similar to the push method described above.
- the web client 124 may have direct access to the dedicated server object, which may send events and metadata for the bi-directional media object directly to the involved web clients 124 .
- the bi-directional media object may require interaction from both the first and second users, it may be required that both users be logged into the web site 310 during use of the bi-directional media object.
- bi-directional media object When a bi-directional media object is complete, such as when a game has come to its conclusion, either of the users may choose to run the bi-directional media object again. In that case, the other user may receive a prompt requesting whether to replay the bi-directional media object. If the user and the second user agree to replay the bi-directional media object, the bi-directional media object may be restarted. Results of the bi-directional media object, such as who won a game in the bi-directional media object and statistics of the game, may be stored in a database on the server assembly 230 for future use.
- FIG. 13 illustrates a flow diagram of an operation 1300 of a bi-directional media object, according to an exemplary embodiment of the media interaction system 360 .
- a web client 124 may begin to play the bi-directional media object.
- the first user may send a request to the second user requesting participation in the bi-directional media object.
- the second user may agree or refuse to participate. If the second user refuses, a rejection may be displayed to the first user at 1345 , and the bi-directional media object may terminate at 1350 . Otherwise, if the second user agrees to participate, the bi-directional media object may be displayed on the web clients 124 of both users at 1320 .
- a cycle may begin of the first and second users taking turns interacting with the bi-directional media object.
- the first user may interact with the bi-directional media object at 1325 .
- Interaction data may be transmitted to the server assembly 230 at 1330 , and may be transmitted to the second user at 1335 .
- the results of the first user's interaction may be displayed on the web clients 124 of the first and second users. Then, the cycle may repeat at 1325 , with the second user interacting with the bi-directional media object.
- the media interaction system 360 may enable users to interact with one another through multimedia content displayed on the web site 310 .
- the display system 370 of the web site 310 may provide a means to modify a look and feel of the web site 310 as presented to the user via the web client 124 .
- Predetermined elements of the visual look and data content of the web site 310 may be user-adjustable.
- the data presented to the user can be customized by changing the colors and layout of website data element containers. Also, the website data presented can be filtered by the user's theme preference.
- User configurations may be stored in a web cookie on the client computer 102 , and in a database field unique to each individual user's profile.
- Web cookies provide a standard means for the web client 124 to maintain its state within a given internet domain. Accordingly, future visits to the web site 310 may not require the web client 124 to download data relating to the theme, color, or display defaults for the user.
- the web cookie may remain on the client computer 102 even after the web client 124 is closed. If the user logs into the web site 310 and the web client 124 is unable to find a web cookie on the client computer 102 , the web client 124 may then retrieve default theme, color, and display value, and may create a web cookie for future use.
- an access token is generated for the user.
- a new access token may be generated each time a user is authenticated and logs into the web site 310 .
- the access may be provided to the server assembly 230 when the web client 124 interacts with the server assembly 230 .
- the access token may enable the server assembly 230 to uniquely identify the web client 124 .
- the access token may have a limited lifespan and may be regenerated at each login.
- the access token may be stored in web cookies and in a cache object. While the user is logged into the web site 310 , the user's configurations may be stored in the cache object in addition to being stored in the database.
- a default theme and color may be used. Default configurations may be based on certain data relating to the user. Such data determining the default configuration may include, without limitation, the user's member category (i.e., common or featured), gender, or specified purpose for using the web site 310 .
- the web site manager 315 may modify available themes and color schemes periodically, or at any time. Users may be able to change a displayed color scheme with a single mouse click. This may be made possible by switching cascading style sheets (“CSS”) and page graphics of the web site 310 through an object-oriented language and dynamic updates.
- CSS cascading style sheets
- Page graphics and text may be altered for a variety of needs. Such alteration may be implemented by using compartmentalization, or a hierarchy, for art and text for presentation to the user via the web client 124 .
- distinct folders may be provided for site, theme, and sub-theme. Each folder may include, for example, a color and a language. Further, each color for site, theme, and sub-theme may include its own language folder.
- a change of folder reference for each CSS, graphic, or text object may dynamically change colors, themes, and languages without requiring reloading of a web page on the web site 310 .
- This implementation may also simplify development of the web site 310 , as background code need not define themes, sub-themes, languages, or colors. New themes, colors, languages, and various other configuration details may be provided without any additional code.
- the change is stored in the current session's cache object and in the user's local web cookie.
- the user's login session on the web site 310 may expire from the cache object after the web site 310 is unloaded from the web client 124 .
- Removal of the cache object on the server assembly 230 may occur by various means.
- the web client 124 may send a log-off request to the server assembly 230 .
- the server assembly 230 may recognize that the web client's pulse has terminated. Then, the server assembly 230 may retain the cache object for a predetermined duration, or until occurrence of a predetermined event, before removing the cache object. Retaining the cache object for a predetermined duration, or until occurrence of a predetermined event, may ensure that the server assembly 230 does not prematurely remove the cache object.
- various tasks may be performed to effect a new color scheme.
- the user's cache object may modify a stored color value.
- the user's web site cookie may be altered with the new color value.
- the user's web site preferences database field may be updated with the new color value.
- the CSS provided for web site 310 rendering may change to a CSS specific to the new color value. Additionally, the web site 310 may be re-rendered using the new web site preference color.
- color changes may be implemented through folder compartmentalization. Folders may be provided for each color option of the web site 310 . Accordingly, the web client 124 may dynamically alter a color of the web site 310 without requiring a re-login or reloading of a web page of the web site 310 .
- Themes may be provided to allow the user to further customize the web site 310 .
- a theme may define graphic images and data content presented to the user.
- the chosen theme may also be stored in the cache object when the user is logged into the web site 310 .
- a dynamic update may instruct the application code to display an appropriate set of data and graphics applicable to the theme.
- the theme choice may be implemented through an object-oriented programming language, and may be processed on the pre-render of page elements.
- the networking system 300 may further include a photo management system 380 .
- the photo management system 380 may enable viewing, organizing, and editing images associated with a user account. Such images may include, but are not limited to, photographs and graphical representations of objects.
- a user may have an image library on the web site 310 , and may utilize an image editor on the web site 310 to modify images in the image library.
- a user may be able to view photo libraries, or predetermined portions of photo libraries, of other users.
- the user may upload images to the library, and may also create and modify images in the library. From the image library, the user may sort images and arrange images in folders for more efficient organization.
- the photo management system 380 may include a gallery for viewing images in the image library. In the gallery, the user may scroll through all images, or a set of images, in the image library.
- a photo upload dialog may be provided on a web page of the photo management system 380 .
- the user may browse images on, or linked to, the client computer 102 and may choose one or more of such photos to add to the image library.
- a browser of the photo upload dialog may enable users to view thumbnails of images on the client computer 102 . This may enable the user to more efficiently select images that the user intends to add to the image library.
- Uploaded or newly created images in the image library may not be immediately viewable by other users.
- a new image may have an unapproved status. While approved images may be viewable by others, unapproved images may not be viewable by other users.
- the web site manager 315 may be required to approve the image. Additionally, an image may not be viewable if it has not been selected as a viewable image by the user of the image.
- the photo management system 380 may require that no more than a predetermined number of images from the user's image library be appointed for each purpose that can be given to images. For example, and not limitation, the user may be required to select no more than a predetermined number of images viewable by other users, or no more than a predetermined number of images viewable by those other users categorized as “friends” of the user. The user may appoint an image to a certain purpose by dragging the image into a designated section of a web page of the photo management system 380 .
- FIG. 14 illustrates a flow diagram of a process 1400 of managing and editing images in an exemplary photo management system 380 .
- the web client 124 may communicate with a database on the server assembly 230 .
- the web client 124 may receive image data from the database.
- the web client 124 may then load images from the image library at 1410 .
- the web client 124 may assign the images according to their appointments, such as assigning a position of an image in a certain location based on whether the image represents part of the user's viewable profile, or whether the image is viewable only to friends.
- the web client 124 may display a graphical user interface to the user at 1414 .
- the user may then have an ability to perform actions regarding the images, as described above.
- the user may modify appointments of various images.
- the user may flip an image.
- the user may rotate an image.
- the user may delete an image from the image library.
- the user may assign an image to a particular appointment.
- data may be communicated between the client computer 102 and the server assembly 230 to accomplish the selected task, and to store the user's modifications to images on the database of the server assembly 230 .
- the web site 310 may notify the user of the success at 1430 .
- the user may be notified of the failure at 1434 .
- the user may upload images to the image library at 1436 .
- a file browser may be displayed at 1438 to assist the user in selecting a file to be uploaded.
- the selected file may be prepared for uploading, and at 1442 , image data from the selected file may be transmitted from the client computer 102 to the server assembly 230 . If this operation is successful at 1444 , a confirmation may be displayed to the user at 1446 .
- the web client 124 may refresh a web page of the image library to display the image library containing an image from the selected file.
- the process 1400 may then, once again, load images in the image library at 1410 .
- an error message may be displayed to the user at 1450 .
- the image editor of the photo management system 380 may enable the user to modify images in the image library.
- the image editor may include tools to crop an image, rotate an image, flip an image, delete an image, create a photo profile, and various other image-editing tools.
- the photo editor may provide a tool enabling the user to create a thumbnail image, which may represent the user on the web site 310 .
- the user may associate the thumbnail image with text, which may be used in conjunction with the thumbnail to represent the user on the web site 310 .
- the user may have only a single thumbnail image, so creating a new thumbnail may automatically delete any old thumbnail.
- the thumbnail tool may enable the user to crop an image to a specified size or to specified dimensions or aspect ratio.
- the user may first select an image from the image library. The user may select a first point on the selected image, and may do so by clicking with a mouse button, with a cursor over the first point, and holding the mouse button down. The user may then select a second point on the selected image. Selecting the second point may entail dragging the cursor to the second point while holding the mouse button down, and then releasing the mouse button with the cursor over the second point. As the first user drags the cursor between the first and second points, a rectangle may be displayed between the first and second point, such that the first and second points lie on opposite corners of the rectangle.
- a portion of the selected image lying inside the rectangle may represent a new thumbnail created by the user.
- the selected portion may be deemed invalid, however, if, for example, the rectangle extends outside the bounds of the image. If the selected portion is invalid, a new thumbnail may not be created for the user.
- FIG. 15 illustrates a process 1500 of editing images with an exemplary image editor of the photo management system 380 .
- the user may edit images as described above. For example, the user may perform any of the following: flip an image at 1556 , rotate an image at 1558 , delete an image at 1560 , and create a thumbnail at 1566 .
- data regarding the user's image modifications may be communicated between the client computer 102 and the server assembly 230 . If the modifications fail at 1532 , the user may be informed of the failure at 1534 . On the other hand, if the modifications succeed at 1528 , the user may be informed of the success at 1530 .
- the user may attempt to crop an image.
- the user may select a portion of the image as described above, with respect to creating a thumbnail.
- the networking system 300 may determine whether the selected portion of the image is valid.
- the user may be informed of success or failure of cropping the image based on the user's selection. If the cropping was successful, data may be sent to the server assembly 230 to store the user's modifications to the image at 1574 .
- the networking system 300 may store both an original raw image and a set of attributes representing modification to the image.
- the modifications may be a result of photo editing on the part of the user.
- the attributes may contain all data required to reconstitute the current image having the user's previous modifications. Accordingly, when an image is to be displayed on the client computer 102 , the raw image may be manipulated with the stored attributes before being delivered to the client computer 102 .
- FIG. 16 illustrates a flow diagram of an exemplary process 1600 of delivering images to the client computer 102 in the photo management system 380 .
- the networking system 300 determines whether the user has requested a rotation of the image. Such determination may occur by examining the stored attributes associated with the image. If a rotation is requested, at 1624 , the desired rotation is performed. At 1626 , the networking system 300 may determine whether the image should be flipped. At 1634 , the networking system 300 may determine whether to perform red-eye reduction and, at 1636 , whether such red-eye reduction is to be performed manually or automatically. The networking system 300 may then use the attributes to re-perform the red-eye reduction as originally performed. If a manual red-eye reduction was performed, characteristics of such reduction may be retrievable from the stored attributes.
- the networking system 300 may determine whether color levels should be modified. If so, at 1644 , the networking system 300 may determine whether the user desired manual or automatic modification of color levels. At 1650 , the networking system 300 may determine whether to modify brightness and contrast of the image and, at 1652 , whether such modifications are manual or automatic. At 1654 and 1656 , the networking system 300 may perform the requested modifications. Finally, at 1658 the resulting image is returned.
- the image may be at least partially defined by image manipulation arguments, which may reflect the user's modifications to the image.
- the server assembly 230 may store each image as well as one or more sets of image manipulation arguments.
- the image manipulation arguments may be stored in a table or array along with a reference to the associated image.
- Each set of manipulation arguments for the image may define a displayable image created through a set of user manipulations to the original image. For example, a user may create a thumbnail from the original image to identify the user on the web site 310 . The user may also rotate and crop the original image for display in the user's profile.
- the networking system may apply a different set of manipulation arguments to the image when displaying the image on the web site 310 .
- the image manipulation arguments define modifications to the image in a coordinate system of the image.
- both operations may be stored in a set of image manipulation arguments with reference to coordinates relative to one or more points on the image. This enables appearance of the image to be independent of an order in which the rotation and cropping are applied to the image before the image is displayed. If, in contrast, operations are stored with reference to an absolute coordinate system, then reconstituting the modified image would require performing the operations in the order in which the user originally performed such operations.
- the present photo management system 380 may allow more flexibility by enabling operations within a set of manipulation arguments to be stored in various orders.
- a second set of arguments, display arguments, associated with an image may be provided to define how the web client 124 may manipulate formatting and display of the image. For example, although the image may be stored in a size of 800 ⁇ 600 pixels, the web client 124 may display the image into a 320 ⁇ 200 display area. Accordingly, display arguments may instruct the web client 124 to shrink the image to fit in a 320 ⁇ 200 display area.
- FIG. 17 illustrates a flow diagram of a process 1700 of displaying an image in the photo management system 380 .
- the user may request that an image be displayed.
- the networking system 300 may retrieve the image from storage on the server assembly 230 at 1702 and 1704 .
- the networking system 300 may determine whether there are any display arguments for the image.
- the networking system 300 may determine that display arguments should be applied to the image, and such arguments are applied at 1710 .
- the networking system 300 may determine whether the user requested any user manipulation arguments for the image. If user manipulation arguments exist for the image, the networking system 300 may manipulate the image according to the user manipulation arguments beginning at 1610 ( FIG. 16 ). Finally, at 1714 , the image may be displayed to the user.
- Image caching may be provided in the photo management system 380 of the networking system 300 . Caching may result in efficient image loading, while maintaining conventional benefits of retaining stored images on the database, such as reliable long-term storage.
- the image may be modified by parameters of the stored attributes before the image is delivered to the web client 124 at the client computer 102 . Images are modified by the processing server using a series of parameters provided when a request is made. After all modifications are complete, the images may be saved to a cache server, which may comprise a storage device associated with a server in the server assembly 230 . Use of the cache server to store the modified image may reduce or eliminate the need for the server assembly 230 to repetitively process the image before displaying it.
- Data in the cache server may be disposable and, accordingly, may be removed from the cache server when the user logs out or when space is needed.
- the storage device may be implemented in a Redundant Array of Inexpensive Disks (“RAID”) array to enhance speed, capacity, and performance of the storage device.
- RAID Redundant Array of Inexpensive Disks
- Image caching may relieve the server assembly 230 of potentially extensive processing of the image, by writing the image to the storage device after the image has been modified according to its associated stored attributes. If the image is requested again, the networking system 300 may retrieve a cached copy of the image from the storage device instead of from a database on the server assembly 230 .
- a benefit of image caching is stateless replication, which enables new servers to be added to the server assembly 230 without replicating an existing cache.
- each server would be required to replicate caches of other servers, and to synchronize its cache with other servers. This utilizes time and bandwidth.
- the new server would not be required to synchronize cached images with other servers of the server assembly 230 . For example, if a requested image does not exist on a storage device of the new server, the image may be retrieved from the database, modified, and
- the networking system 300 may further comprise a messaging system 390 .
- the messaging system 390 may enable a first user to leave a message for a second user of the networking system 300 .
- the messaging system 390 may enable a common user 415 to leave a message for a featured user 435 , such that the featured user 435 may view and respond to the message at the convenience of the featured user 435 .
- a featured user 435 may also leave a message for a common user 415 .
- a common user 415 may leave a message for another common user 415
- a featured user 435 may leave a message for another features user 435 .
- FIG. 18 illustrates an exemplary web page of the messaging system 390 .
- the messaging system 390 may comprise a message area 1810 , at least one graphical tool 1820 , and a color selector 1830 .
- the message area 1810 may provide a background for the message.
- the message area 1810 may look similar to a whiteboard, blackboard, piece of paper, computer monitor, or various other objects on which one might conventionally leave a message or receive a message.
- the look and feel of the message area 1810 may be customizable. For example, and not limitation, the first user may change an appearance of the background provided by the message area 1810 by clicking a button labeled “Background” on the web page.
- the message area 1810 of a particular user may retain text and images left by previous users of the same message area 1810 . Accordingly, when the first user views the web page displaying the second user's message area 1810 , the first user may see messages previously left by the first user and by other users.
- the graphical tools 1820 may comprise one or more representations of implements for creating the message.
- a stylus 1822 and an eraser 1824 may be provided as graphical tools 1820 .
- Other graphical tools 1820 provided may include, without limitation, a text tool, a brush tool, a spray paint tool, a straight line tool, a rectangle tool, and a circle tool.
- the stylus 1822 may add portions of a message to the message area 1810
- the eraser 1824 may remove portions of a message from the message area 1810 .
- Characteristics of the graphical tools 1820 may be customizable. For example, a size and shape of a graphical tool 1820 may be customizable, which may result in a customizable size and shape of modifications resulting from use of the graphical tool 1820 . For example, increasing the size of the stylus 1822 may increase a width of a line drawn in the message area 1810 with the stylus 1822 . Additionally, transparency of a graphical tool 1820 may be customizable, such that a resulting modification to the message area 1810 may become more or less opaque. Customizations may affect a single graphical tool 1820 or, alternatively, all graphical tools 1820 , depending on either user preference or a specific embodiment of the messaging system 390 .
- the color selector 1830 may present the first user with two or more color blocks 1835 containing colors applicable to one or more graphical tools 1820 .
- Each color block 1835 may be a predetermined color.
- the color of the color block 1835 may be applied to the graphical tool 1820 next utilized in the message area 1810 .
- a default color may be provided if the first user does not select a color block 1835 .
- a black color may be applied to graphical tools 1820 when the first user does not select a color block 1835 .
- the color selector 1830 may allow the first user to adjust characteristics of a color, such as hue and saturation, and thereby create a custom color for application to a graphical tool 1820 .
- a message of the messaging system 390 may be created by manipulating a graphical tool 1820 on or in proximity to the message area 1810 .
- the first user may select a graphical tool 1820 and, optionally, a color.
- the graphical tool 1820 may be applied to the message area 1810 , thereby modifying a visual appearance of the message area 1810 .
- moving the stylus 1822 across the message area 1810 may result in a line being drawn along a path of the stylus 1822 in the message area 1810 .
- the modified visual appearance of the message area 1810 represents a viewable message.
- the message may comprise various combinations of text and images in the message area 1810 , and may or may not be intended to portray a specific idea to a recipient of the message.
- the first user may be able to save the message. This may be enabled, for example, through use of a web page button or link labeled “Save.”
- the first user may be able to undo a previous action. This may be enabled, for example, through use of a button or link labeled “Undo.”
- an action may not be undone if the action preceded a saving of the message, as described above.
- FIG. 19 illustrates a flow diagram of an exemplary process 1900 of leaving a message, such as a text comment, through the messaging system 390 .
- three layers of operation may be implemented in the messaging system 390 .
- These operational layers may include a user interface layer 1902 , an application layer 1904 , and a database layer 1906 .
- Steps of the process 1900 occurring in the user interface layer 1902 may describe an interaction of the messaging system 390 with the user.
- Steps of the process 1900 occurring in the application layer 1904 may represent operations that occur in the client computer 102 .
- steps in the database layer 1906 may occur in a database on the server assembly 230 .
- the first user may enter a text comment for the second user. This may occur through use of the stylus 1822 .
- the text is stored as a record in a database on the server assembly 230 at 1920 .
- the text may be retained in a table of the database and properly associated with a message area 1810 of the second user.
- the new text comment may be rendered. Rendering may generally take place behind the scenes of the web page, and a rendered image may not be viewable until displayed on the web page.
- the new text comment may be displayed in the message area 1810 , which may occur by making viewable a rendered image of the text comment.
- FIG. 20 illustrates a flow diagram of an exemplary operation 2000 of retrieving a message, such as a text comment, from the messaging system 390 .
- a message such as a text comment
- three layers of operation 1902 , 1904 , and 1906 may be utilized in retrieving a message.
- the first user may request that a text comment be displayed. Such a request may be implied when the first user navigates to a web page displaying the message area 1810 .
- the request may be transmitted through the messaging system application, at 2020 , to the database.
- the text comment may be retrieved from the database.
- the messaging system 390 may then render the text comment, preferably in HTML format, at 2040 .
- the text comment may be displayed to the first user.
- FIG. 21 illustrates a flow diagram of an exemplary general operation 2100 of the messaging system 390 .
- the web client 124 may communicate with a database on the server assembly 230 regarding message data.
- the web client 124 may receive message data from the database.
- the web client 124 may then display the graphical user interface (“GUI”), including the message area 1810 , via the web client 124 to display messages to a user.
- GUI graphical user interface
- the messaging system 390 may determine whether the user is attempting to leave a comment in the message area 1810 . If so, the user's comment is accepted at 2112 . Otherwise, an empty comment is accepted at 2113 .
- a record may be created in the database for storing the comment.
- the web client 124 and the server assembly 230 may communicate with each other.
- the web client 124 informs the server assembly 230 of modifications to the message area 1810 , so that the database on the server assembly 230 may be updated.
- the server assembly 230 may then send a confirmation to the web client 124 .
- the GUI may be update to display the new comment to the user.
- Operations similar to those of the image editor of the photo management system 380 may also be integrated into the messaging system 390 .
- the user may select a tool to modify the GUI. Specifically, the user may modify the message area 1810 by leaving a message. After a modification, the GUI may be updated to display the modifications to the user.
- the messaging system 390 may receive a command to the save at 2120 .
- the web site 310 may prompt the user for confirmation at 2121 .
- an image of the message area 1810 may be sent to the server assembly 230 at 2124 .
- the database on the server assembly 230 may be updated with the user's modifications. Hence, the user may leave a message in the message area 1810 , and may save his message for later viewing.
- the message application 1904 may close at 2128 .
- the networking system 300 may enable interaction between users.
- networking system 300 has been disclosed in exemplary forms, it will be apparent to those skilled in the art that many modifications, additions, and deletions may be made without departing from the spirit and scope of the system, method, and their equivalents, as set forth in the following claims.
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Theoretical Computer Science (AREA)
- Strategic Management (AREA)
- Economics (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Entrepreneurship & Innovation (AREA)
- General Business, Economics & Management (AREA)
- Marketing (AREA)
- Development Economics (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Educational Administration (AREA)
- Game Theory and Decision Science (AREA)
- Finance (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- Multimedia (AREA)
- Human Computer Interaction (AREA)
- Information Transfer Between Computers (AREA)
Abstract
A networking system may comprise a web site serviced by a web server assembly. The web site may generally comprise a combination of the following components: a crediting system, a chat bidding system, a performance bidding system, a telephony switching system, a media interaction system, a display system, a photo management system, and a messaging system. An exemplary embodiment of the chat bidding system may comprise a plurality of common user accounts, a queue, and a featured user account. Common users of the common user accounts may pose tasks to the featured user, and may make a pledge for each task. The tasks may be stored in, and sorted by, the queue based on their pledges. A featured user of the featured user account may be presented with a highest ranked task in the queue, and may choose to respond to the task or to skip the task.
Description
- This application is a continuation of U.S. patent application Ser. No. 12/237,316, filed 24 Sep. 2008, which claims priority and a benefit under 35 U.S.C. §119(e) of U.S. Provisional Patent Application 60/974,723, filed 24 Sep. 2007, and U.S. Provisional Patent Application 61/059,444, filed 6 Jun. 2008. The disclosures of all of these prior applications are hereby incorporated by reference as if fully set forth below.
- 1. Technical Field
- Various aspect of the present invention relate to social and professional networking and, more particularly, to interactive networking systems for enabling interaction between one or more classes of users.
- 2. Description of Related Art
- Conventional social and professional networking systems enable users to interact with one another via various networking protocols. These systems provide a variety of services, but they generally lack the ability to classify a user's network of contacts to provide varying levels of communication capabilities among different levels of users.
- Such conventional systems are also not designed for serving as social or professional networking and communications platforms where certain individuals are highly sought after communication partners. For example, while celebrities are able to register and utilize conventional networking systems to communicate directly with their friends and acquaintances, celebrities do not currently have the ability to selectively allow communications from their fans.
- These conventional systems are also generally limited in how they allow various users to communicate. For example, conventional systems generally limit inter-user communications to chat rooms, message boards, and/or private email messages.
- Therefore, there is a need in the art for a system that provides increased communications capabilities.
- There is also a need for a networking system whereby users can control communication capabilities pertaining to communications with other users, where such controls may be at least partially based on a class of such users.
- There is a further need for such a networking system having safety controls enabling member interactions while allowing a receiving party to establish criteria controlling receipt of communications.
- There is a further need for such a networking community, in which celebrities may communicate directly with fans in a virtual environment providing real-time interaction.
- It is to such a networking system that that the present invention is directed.
- Exemplary embodiments of the present invention may include interactive networking systems providing various communication features. Such embodiments may allow multiple user classes. In an exemplary embodiment, the networking system may comprise any or all of various components, including a crediting system, a chat bidding system, a performance bidding system, a telephony switching system, a media interaction system, a display system, a photo management system, and a messaging system.
- To enable operation of such components of the networking system, the networking system may additionally comprise a server assembly. The server assembly may comprise one or more web servers for hosting the web site. A user may interact with the web site through a web client adapted to display the web site. The web client may receive requests from the user and direct such requests to the server assembly. The server assembly may call various operations or programs to implement components and operations of the web site. The server assembly may send responses to user requests through the web client to the user.
- Each user of the web site may have, or be associated with, a user account for accessing the web site. According to the crediting system of the networking system, each user account may be associated with a credit account for purchasing services from the web site. The credit account may represent virtual funds for use on the web site.
- The chat bidding system, if included, may enable common users to pose tasks to a featured user in an organized manner. The chat bidding system may generally comprise a featured user, a plurality of common users, and a tasks queue.
- The featured user may represent a person or entity in which the common users have interest. For example, the featured user may be a celebrity, a doctor, a counselor, or the like. The featured user may use a featured user account to interact with the web site.
- The common users may have an interest in the featured user. For example, the common users may be fans of the featured user. Through the chat bidding system, the common users may pose tasks to the featured user. A common user may pledge credits for a task, thereby associating the task with a bid value. The amount of the bid value may be debited from the user's credit account.
- The tasks queue may comprise hardware, software, or a combination thereof, in communication with the server assembly. The tasks queue may organize the tasks in an order corresponding to the bids associated with the tasks.
- Through a web client in communication with the server assembly, the featured user may be presented with the tasks in an order determined by the tasks queue and, therefore, determined by the bids associated with the tasks. For each presented task, the featured user may dispatch the task by responding to or skipping the task.
- If included, the performance bidding system may enable users to perform on the web site in an organized manner. The performance bidding system may comprise a plurality of users and a performance queue.
- Each user may request an opportunity to perform, and may associate such request with a bid. The bid value may represent a number of credits deducted from the user's account in return for the user's performance.
- The performance queue may comprise hardware, software, or a combination thereof, in communication with the server assembly. The performance queue may organize the performance requests in an order corresponding to the bids associated with the requests. A user may be allowed to perform on the web site when the user's request reaches a top of the queue.
- If included in the web site, the telephony switching system may enable anonymous contact between two parties having user accounts on the web site. The telephony switching system may generally comprise a first communication device, a second communication device, a service center, and a telephony switch.
- The first communication device and second communication device may be registered with the service center, and such registration may occur over the web site. Each registration may include a set of contact rules specifying who may connect to the applicable communication device, and when such connections may occur.
- A first user associated with the first communication device may request a connection to a second user associated with the second communication device. The service center may receive the request and, based on the contact rules, may determine whether the requested connection is allowed.
- The telephony switch may be in communication with the service center. If the requested connection is allowed, the service center may forward the connection request to the telephony switch. In turn, the telephony switch may connect the first communication device to the second communication device. Accordingly, the two communication devices may be connected to each other without phone numbers of either communication device being shared with the other communication device.
- If included in the web site, the media interaction system may enable a first user to interact with a second user by extending a media object to the second user. The media object may be customizable, and may comprise various media, including animations, audio, or text. The media object may overlay other objects displayed on a client computer of the first user and a client computer of the second user.
- If included, a display system may enable color and theme changes of the web site as viewed by a web client. Based on a user request, a color scheme and theme of the web site may be altered in response to a user request.
- The photo management system, if included in the web site, may enable users of the web site to manage and edit digital images stored on the server assembly. The photo management system may comprise an image library and an image editor. The image library may contain images selected or created by a particular user, and the image editor may enable the user to edit images in the image library.
- Additionally, a messaging system, if included, may enable a first user to leave a message on a virtual message board of a second user. The messaging system may comprise a message area, one or more graphical tools, and a color selector. The first user may select a graphical tool and a color, and may then modify an image of the message area in a manner customizable based on the chosen graphical tool and color.
- These and other objects, features, and advantages of the interactive networking system will become more apparent upon reading the following specification in conjunction with the accompanying drawing figures.
-
FIG. 1 illustrates an architecture of a client computer utilizing an interactive networking system, in accordance with an exemplary embodiment of the present invention. -
FIG. 2 illustrates an architecture of a server assembly of the networking system, according to an exemplary embodiment of the present invention. -
FIG. 3 illustrates a block diagram of the networking system, according to an exemplary embodiment of the present invention. -
FIG. 4 illustrates a block diagram of a chat bidding system of the networking system, according to an exemplary embodiment of the present invention. -
FIG. 5 illustrates a flow diagram of an operation of the chat bidding system of the networking system, according to an exemplary embodiment of the present invention. -
FIG. 6 illustrates a flow diagram of a process of a featured user initiating and participating in a chat bidding session of the chat bidding system, according to an exemplary embodiment of the present invention. -
FIGS. 7A-7B illustrate flow diagrams of a process of the featured user moderating the chat bidding session of the chat bidding system, according to an exemplary embodiment of the present invention. -
FIG. 8 illustrates a flow diagram of a process of a common user joining the chat bidding session of the chat bidding system, according to an exemplary embodiment of the present invention. -
FIG. 9 illustrates a flow diagram of a process of the user participating in the chat bidding session of the chat bidding system, according to an exemplary embodiment of the present invention. -
FIG. 10 illustrates a flow diagram of an operation of a performance bidding system of the networking system, according to an exemplary embodiment of the present invention. -
FIG. 11A illustrates a process of registering a communication device with the telephony switching system of the networking system, according to an exemplary embodiment of the present invention. -
FIGS. 11B-11C illustrate block diagrams of a telephony switching system of the networking system, according to an exemplary embodiment of the present invention. -
FIG. 12 illustrates a flow diagram of a method of handling a connection request from a calling party to a receiving party in the telephony switching system of the networking system, according to an exemplary embodiment of the present invention. -
FIG. 13 illustrates a flow diagram of an operation of a media interaction system of the networking system, according to an exemplary embodiment of the present invention. -
FIG. 14 illustrates a flow diagram of an operation of a photo management system of the networking system, according to an exemplary embodiment of the present invention. -
FIG. 15 illustrates a flow diagram of an operation of a photo editor of the photo management system of the networking system, according to an exemplary embodiment of the present invention. -
FIG. 16 illustrates a flow diagram of an implementation of the photo editor of the photo management system, according to an exemplary embodiment of the present invention. -
FIG. 17 illustrates a flow diagram of a process of displaying an image in the photo management system of the networking system, according to an exemplary embodiment of the present invention. -
FIG. 18 illustrates a web page of a messaging system of the networking system, according to an exemplary embodiment of the present invention. -
FIG. 19 illustrates a flow diagram of an operation of leaving a message through a messaging system of the networking system, according to an exemplary embodiment of the present invention. -
FIG. 20 illustrates a flow diagram of an operation of retrieving messages from the messaging system of the networking system, according to an exemplary embodiment of the present invention. -
FIG. 21 illustrates a flow diagram of a general operation of the messaging system of the networking system, according to an exemplary embodiment of the present invention. - To facilitate an understanding of the principles and features of the invention, various illustrative embodiments are explained below. In particular, the invention is described in the context of being a web-based interactive networking system for celebrities and their fans. Embodiments of the invention, however, are not limited to web-based implementations, or to use by celebrities and fans. Rather, embodiments of the invention may be used for networking and interaction between various entities and individuals in various environments. For example, and not limitation, doctors, counselors, sports figures, and politicians may benefit from the embodiments of the invention.
- Throughout the present description, the present invention is described as embodied in a web environment. However, those of skill in the art will recognize that the concepts of the invention are not limited to a web environment and could be applied to various other systems. Accordingly, reference to web components is for convenience, and such references should not be considered limiting.
- For example, and not limitation, embodiments of the present networking system may be implemented in media centers, video game consoles, operating systems, and virtual machines. Media centers may include television, telephone, and internet technologies, any of which may utilize various embodiments of the present networking system. Further, video game consoles now implement social networking, internet communications, video recording, and digital file downloading. Interactive networking may be useful in such video consoles, and may be provided by embodiments of the present networking system. Operating systems, such as Linux™, Mac OS X™, and Microsoft Windows™, enable certain technologies to be implemented within the operating system outside of the framework of the World Wide Web. Accordingly, embodiments of the networking system may be utilized in such operating systems without use of the World Wide Web. In addition, technologies such as Java™ and Adobe Air™ allow functionality outside the scope of the World Wide Web, in the context of “virtual machines,” which may utilize the present networking system.
- Exemplary embodiments of the networking system may contain components that may be utilized in a wide variety of applications. Some exemplary embodiments may be for personal entertainment, and others may be for professional use. Professional uses of the networking system may include, without limitation, medical personnel recruiting, educational applications, and various other applications matching persons to persons, persons to services, or persons to products. The networking system may comprise various classes of users, and may enable one or more user classes to control access and duration of interaction between themselves and users of one or more other user classes.
- The components described hereinafter as making up various elements of the invention are intended to be illustrative and not restrictive. Many suitable components that would perform the same or similar functions as components described herein are intended to be embraced within the scope of the invention. Such other components not described herein may include, but are not limited to, for example, components developed after development of the invention.
- Various embodiments of the present invention comprise interactive networking systems. Referring now to the figures, wherein like reference numerals represent like parts throughout the views, various embodiments of the networking system will be described in detail.
-
FIG. 1 illustrates a computer architecture for aclient computer 102, in accordance with an exemplary embodiment of the present invention. Theclient computer 102 may be used to access the web site 310 (FIG. 3 ). Those skilled in the art will recognize that the general architecture described with reference toFIG. 1 is for example only, and may be modified to accommodate various embodiments of the networking system and particular operational environments. As shown inFIG. 1 , theclient computer 102 may comprise a central processing unit 105 (“CPU”) and one ormore system memories 107, such as a random access memory 109 (“RAM”) and a non-volatile memory, such as a read-only memory (“ROM”) 111. Theclient computer 102 may further comprise asystem bus 112 coupling together thememory 107, the CPU 5, and various other components. A basic input/output system containing routines to assist in transferring information between components of theclient computer 102 may be stored in theROM 111. Additionally, theclient computer 102 may include amass storage device 114 for storing anoperating system 116, application programs, and other program modules. - The
mass storage device 114 is generally connected to theCPU 105 through a mass storage controller (not shown) connected to thebus 112. Themass storage device 114 and its associated computer-readable media provide non-volatile storage for theclient computer 102. Although the description of computer-readable media contained herein generally refers to a mass storage device, such as a hard disk or CD-ROM drive, it will be appreciated by those skilled in the art that computer-readable media may include any available media accessible by theclient computer 102 or a server assembly 230 (FIG. 2 ). - By way of example, and not limitation, the computer-readable media may comprise computer storage media and communication media. Computer storage media may include volatile and non-volatile, removable and non-removable media implemented in any method or technology for storage of information, such as computer-readable instructions, data structures, program modules, or other data. Computer storage media includes, but is not limited to, RAM, ROM, EPROM, EEPROM, flash memory, other solid state memory technology, CD-ROM, digital versatile disks (“DVD”), other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage, other magnetic storage devices, or any other media that may be used to store the desired data and may be accessible by the
client computer 102 or theserver assembly 230. Computer-readable instructions on the storage media of theclient computer 102 may include, for example, instructions for implementing processes, preferably client-side processes, of thenetworking system 300. - According to various embodiments, the
client computer 102 may operate in a networked environment using logical connections to remote computers, such as theserver assembly 230, through anetwork 118, such as the Internet. Theclient computer 102 may connect to thenetwork 118 through anetwork interface unit 120 connected to thebus 112. It will be appreciated that thenetwork interface unit 120 may also be utilized to connect to other types of networks and remote computer systems. - The
client computer 102 may also include an input/output controller 122 for receiving and processing input from a number of other devices, including a keyboard, mouse, or electronic stylus. The input/output controller 122 may provide output to a display screen, a printer, or other type of output device. - A number of program modules and data files may be stored in the
mass storage device 114 andRAM 109 of theclient computer 102. Such program modules and data files may include anoperating system 116 suitable for controlling operations of a networked personal computer. A web browser application program, orweb client 124, may also be stored on themass storage device 114 and theRAM 109. Theweb client 124 may comprise an application program for requesting andrendering web pages 126 created in Hypertext Markup Language (“HTML”) or other types of markup languages. Theweb client 124 may also be capable of executing scripts through the use of a scripting host. The scripting host executes program code expressed as scripts within the browser environment. - The
web client 124 may be operative to execute one or more client side objects. As discussed briefly above, client side objects are executable objects that may be identified in aweb page 126 and executed in conjunction with the rendering of theweb page 126. For instance, Java™ applets or ActiveX™ controls may be identified on aweb page 126 and rendered by theweb client 124 to generate a portion of theweb page 126 display. - According to an exemplary embodiment of the invention, the
web client 124 may be further operative to utilize client side objects called web part objects 128A-128C, or web parts. Web part objects 128A-128C are reusable client side objects that stand and contain web-based content such as Extensible Markup Language (“XML”), HTML, and scripts.Web parts 128A-128C have a set of standard properties that control how they are rendered. These properties enable web parts to be storage-neutral and reusable. Becauseweb parts 128A-128C adhere to a common standard, they may be stored in libraries, which may be utilized to create a variety ofweb pages 126.Web pages 126 that include web part objects 128A-128C may be referred to herein as web part pages. - Referring now to
FIG. 2 , aserver assembly 230 utilized in various exemplary embodiments of the networking system 300 (FIG. 3 ) will be described. Theserver assembly 230 may service theweb site 310 by receiving and responding to requests fromweb clients 124. Theserver assembly 230 may comprise various combinations of hardware and software for servicing theweb site 310. Those skilled in the art will recognize that theserver assembly 230 described inFIG. 2 is an exemplary server configuration and may be modified to accommodate various embodiments of thenetworking system 300. As shown inFIG. 2 , theserver assembly 230 may include many of the conventional computing components included in theclient computer 102 and described above with respect toFIG. 1 . In particular, theserver assembly 230 may include aCPU 105, anetwork interface unit 120 connected to anetwork 118, such as the Internet, asystem memory 107, and amass storage device 114. - The
mass storage device 114 utilized by theserver assembly 230 may typically be operative to store anoperating system 116 suitable for servicing theweb site 310 and controlling operations of a server computer. Themass storage device 114 and its associated computer-readable storage media provide non-volatile storage for theserver assembly 230. Computer storage media may include volatile and non-volatile, removable and non-removable media implemented in any method or technology for storage of information, such as computer-readable instructions, data structures, program modules, or other data. Computer-readable instructions on the computer-readable media of theserver assembly 230 may include, for example, instructions for implementing processes, preferably server-side processes, of thenetworking system 300. - The
server assembly 230 may utilize aweb server application 232. Theweb server application 232 may receive and respond to requests fromweb clients 124 at remote computers, such as theclient computer 102, forweb pages 126 located at or accessible to theserver assembly 230. It will be appreciated thatweb pages 126, as described herein, include both those pages stored statically and utilizing only HTML, as well as pages generated dynamically through use of server-side scripting technologies. - According to various embodiments of the
networking system 300, theweb server application 232 may receive requests forweb pages 126 that include one ormore web parts 128A-128C. As discussed above,web parts 128A-128C comprise client-side objects that may be used by theweb client 124 when displaying aweb page 126. -
FIG. 3 illustrates a block diagram of thenetworking system 300, according to an exemplary embodiment of the present invention. Thenetworking system 300 may operate in an environment of theclient computer 102 and theserver assembly 230. As shown inFIG. 3 , an exemplary embodiment of thenetworking system 300 may comprise an interactivenetworking web site 310, theserver assembly 230, and aweb site manager 315. Theclient computer 102 may interact with theweb site 310 and, accordingly, theserver assembly 230 through theweb client 124 at theclient computer 102. - The
web site 310 may enable interaction between and among one or more featured users and a plurality of common users. The featured users may interact with one another via theweb site 310, and similarly, the common users may interact with one another via theweb site 310. Additionally, the common users may desire some level of interaction with the featured users, and the featured users may desire some level of privacy in their interactions with the common users. For example, a featured user may be a celebrity, and a set of common users may be fans of the celebrity. Theweb site 310 may provide a virtual environment for such interactions. - The
server assembly 230 may service theweb site 310. Theserver assembly 230 may operate as discussed in detail above, or in various manners for providing services toclient computers 102 over a network. - The
web site manager 315 may manage theweb site 310, act as administrator of theweb site 310, and provide customer service to users of theweb site 310. Preferably, theweb site manager 315 may be one or more humans or entities, but may also comprise computing devices and automated services. - The
web site 310 may generally comprise any combination of the following components: a creditingsystem 320, achat bidding system 330, aperformance bidding system 340, atelephony switching system 350, amedia interaction system 360, adisplay system 370, aphoto management system 380, and amessaging system 390. Each component of theweb site 310 may provide various services as described further below. - The
web site 310 may provide acrediting system 320 for providing users a means to purchase services of theweb site 310. Each user may have a user account, and the user account may be associated with the user's history of activities on theweb site 310. According to thecrediting system 320, the user account may include a credit account representing virtual credits allotted to the user. The credits may be used to purchase services from theweb site 310, or products and services from entities associated with theweb site 310. - The
web site 310 may provide multiple categories of credits, such as universal credits and limited credits. Universal, or non-promotional, credits may be purchasable by the user. The user may purchase universal credits from theweb site manager 315 via theweb site 310, over a phone call, or via various other means of communicating a desire to purchase credits. In contrast, limited, or promotional, credits may be awarded to the user based on promotions. Theweb site 310 may separately account for universal and limited credits. However, theweb site 310 may present the user with either a combined total of credits or with separate totals for each of universal and limited credit accounts. As mentioned above, various services of theweb site 310 may be purchased with credits. Preferably, predetermined exclusive services of theweb site 310 may be purchased only with universal credits, while non-exclusive services may be purchased with universal credits, limited credits, or various combinations thereof. - The
web site 310 may provide various categories of user membership. For example, and not limitation, theweb site 310 may provide featured user accounts for featured users and common user accounts for common users. Preferably, at least the common users may purchase services through theweb site 310 with their credit accounts. Such services may include opportunities to interact with the featured users. Purchasable services may be services of thechat bidding system 330, theperformance bidding system 340, thetelephony switching system 350, themedia interaction system 360, thedisplay system 370, thephoto management system 380, themessaging system 390, and/or other web service systems. - For purchase of services on the
web site 310, theweb site 310 may implement a predetermined scheme for determining which credits are debited from the purchasing user's credit account. For example, and not limitation, a purchase of an exclusive service may automatically debit the user's universal credits. For a purchase of a non-exclusive service, the user may be allowed to specify which credits are debited for the purchase. Alternatively, theweb site 310 may implement a first-in-first-out accounting, in which the first credits placed into the user's credit account are the first credits debited from the users account, or a last-in-first-out accounting, in which the last credits placed in the user's account are the first credits debited from the user account. As another option, theweb site 310 may automatically debit any available limited credits before universal credits for the purchase of non-exclusive services. - Through the use of credit accounts, common users may interact with featured users, and as a result, common users, featured users, and the
web site manager 315 may profit from such interaction. Common users may benefit by fulfilling desires to interact with featured users, such as celebrities, who might otherwise be inaccessible to the common users. Featured users may interact with common users and, thereby, increase their popularity and fan bases. Further, featured users may have agreements with theweb site manager 315, whereby featured users share in revenues generated by theweb site 310 or whereby theweb site manager 315 donates revenues from theweb site 310 to favored charities of the featured users. Additionally, theweb site manager 315 may reap financial benefits through selling credits to common users. - The
chat bidding system 330 of theweb site 310 may provide an organized community in which common users may interact with a featured user.FIG. 4 illustrates a block diagram of an exemplarychat bidding system 330 of theweb site 310. As shown inFIG. 4 , an instance of thechat bidding system 330, a chat bidding session, may comprise a plurality of common user accounts 410, atasks queue 420, and a featureduser account 430. - Each chat bidding session of the
chat bidding system 330 may comprise a plurality ofcommon users 415 and at least one, and preferably only one, featureduser 435. Through common user accounts 410, thecommon users 415 may pose tasks to the featureduser 435. Thetasks queue 420 may store the posed tasks or references to the posed tasks. Through the featureduser account 430, the featureduser 435 may be presented with the tasks, preferably one at a time, and may choose whether to respond to each task as it is presented. -
FIG. 5 illustrates a flow diagram of anoperation 500 of thechat bidding system 330 according to an exemplary embodiment of thenetworking system 300. As shown inFIG. 5 , at 510, theweb site 310 may receive a task posed by a firstcommon user 415. The task may be accompanied by a pledge from thecommon user 415, and a bid value corresponding to the pledge may be associated with the task. At 520, the task may be inserted into an appropriate position of thequeue 420 based on the task's associated bid value. A second task may be received from a secondcommon user 415 at 530, and at 540, the second task may also be inserted into an appropriate position of thequeue 420. At 550, theweb site 310 may present the featureduser 435 with a priority task, which is the task currently at the top of the orderedqueue 420. The featureduser 435 may choose to respond to the priority task, or to skip the priority task. In an exemplary embodiment of thechat bidding system 330,common users 415 whose tasks are skipped may receive refunds for their pledged credits. At 560, theweb site 310 may respond according to the featured user's decisions to skip or respond to the priority task. This may comprise accepting the featured user's response to the task or indicating that the priority task has been skipped. - Referring now back to
FIG. 4 , thecommon users 415 may pose tasks to the featureduser 435. Each task may comprise a question, comment, or request of the posingcommon user 415. In posing a task, acommon user 415 thereby requests that the featureduser 435 respond to the posed task. Tasks may be posed in various formats. For example, a task may be a typed question, an audio challenge or other request, or various other formats for prompting a response from the featureduser 435. Theweb site 310 may receive the tasks and, as described further below, may store the tasks in an ordered manner through use of thequeue 420. - A
common user 415 may associate a bid with a posed task. The bid is preferably a pledge of credits from the common user's credit account. In pledging a credit amount, thecommon user 415 may commit to purchase the featured user's response to the task for the pledged amount or, alternatively, may commit to purchase an opportunity to present the task to the featureduser 435 for the pledged amount. If thecommon user 415 does not associate the task with a bid, a bid value for the posed task may be set to zero. A first exemplary embodiment of thechat bidding system 330 debits the common user's credit account regardless of whether the featureduser 435 responds to the common user's task. An alternative exemplary embodiment of thechat bidding system 330, however, debits the credit account only if the featureduser 435 is eventually presented with the common user's task or, alternatively, only if the featureduser 435 responds to the common user's task. - The
tasks queue 420 may store the tasks or references to the tasks. Storage space for thetasks queue 420 may be provided on theserver assembly 230. In thetasks queue 420, tasks may be ordered based at least partially on their bid values. In other words, a first task with a first bid value may be ranked higher than a second task with a lower bid value. When a new task is posed by acommon user 415, such new task may be inserted into thetasks queue 420 based on a ranking of the bid value of the new task. In an exemplary embodiment of thechat bidding system 330, if the new task has a bid value equal to a bid value of a previously-posed task already in thetasks queue 420, the new task may be ranked behind the previously-posed task. Theweb site 310 may notify thecommon user 415 of positions of his tasks in thequeue 420. Additionally, theweb site 310 may allow thecommon user 415 to alter the bid values of his tasks and, thereby, potentially modify the positions of his tasks in thetasks queue 420. Theweb site 310 may also display to thecommon user 415 an amount of credits required to increase a task of thecommon user 415 to a certain rank in thetasks queue 420. Preferably, bids for previously submitted tasks may be increased but not decreased. - A predetermined number of highest ranked tasks in the
queue 420 may have a fixed ranking order at the top of thequeue 420. For example, and not limitation, the top N tasks may be fixed such that a bid modification of a previously lower-ranked task may not affect the positions of such top N tasks. Further, the top N tasks may be presented to the featureduser 435, according to their rank amongst the other top N tasks. - In some implementations of the
chat bidding system 330, fixing ranks of the top N tasks may entail removing the top N tasks from thetasks queue 420, and inserting them into a standby queue. Tasks in the standby queue may be ordered according to when they were removed from thetasks queue 420, and may be presented to the featureduser 435 in an order in which they were inserted into the standby queue. In other words, the standby queue may be a first-in-first-out queue, and after a task is removed from the standby queue for presentation to the featureduser 435, a highest ranked task in thetasks queue 420 may be removed from thetasks queue 420 and inserted into the standby queue. In other implementations, fixing ranks of the top N tasks may entail setting fixed positions for such top N tasks within thequeue 420 and restricting resorting of such tasks. In either of these implementations, any resorting or rearranging of thequeue 420 may not affect the positions of the top N tasks. - Those skilled in the art will recognize that a queue may be implemented in various manners and through use of various data structures. Those skilled in the art will further recognize that a queue may refer to certain types of related data, which may, but need not, be stored in contiguous physical space. Accordingly, as used herein, the standby queue of the
chat bidding system 330 may refer to a set of data stored distinct from thetasks queue 420, or to a set of data sharing physical space with thetasks queue 420. - Fixing ranks of the top N tasks may incentivise
common users 415 to pledge high bid values for their tasks, because after such tasks reach a predetermined rank, their positions become fixed. Preferably, N is a small number, such as two. A large value of N may discouragecommon users 415 by making too many of the top positions unreachable. - To increase efficiency of the
networking system 300, data regarding posed tasks may be stored on theclient computer 102, in addition to theserver assembly 230. A client-side application may run at theclient computer 102, and may cache task data on theclient computer 102. In an exemplary embodiment of thenetworking system 300, client-side caching may occur locally on theclient computer 102 by storing task data in an array in the order in which the tasks were posed. The array may contain task data including, for example, question text, bid amount, and current position in thetasks queue 420. The order in which tasks are stored in the array may be retained when a web page of the chat bidding session is reloaded. The client-side cache may be updated at various occurrences, such as a rank change or an update to task text or bid amount. - The
web site 310 may present the featureduser 435 with the priority task. The priority task may be the highest ranked task in thetasks queue 420. Alternatively, if the top N tasks are removed from thetasks queue 420 and inserted into the standby queue, the priority task may be the highest ranked task in the standby queue. The featureduser 435 may be able to view a predetermined number of other posed tasks in addition to the priority task, but preferably, the featureduser 435 must act on the priority task before being presented with any other tasks. Also preferably, the featureduser 435 may view only the top N tasks, which have fixed position in the order in which they will be presented to the featureduser 435. In such embodiments, the featureduser 435 may be permitted to select presented tasks out of order. For each viewable task, the featureduser 435 may also view statistics related to the task, such as the associated bid value and how long the task has been in thequeue 420. - After being presented with the priority task, the featured
user 435 may choose to respond to the priority task or to skip the priority task. If the priority task is skipped, the featureduser 435 may not have another opportunity to respond to such task unless it is again posed by acommon user 415. By presenting the featureduser 435 with each task only once, theweb site 310 may provide an organized manner for the featureduser 435 to handle a small or large number of tasks. Additionally,common users 415 may be encouraged that their tasks can eventually be presented to the featureduser 435 and may, therefore, more confidently pledge credits towards their tasks to increase a possibility that their tasks will be viewed. In an alternative embodiment of thechat bidding system 330, however, the featureduser 435 may be entitled to temporarily skip a task and have it represented later, preferably after the following task. - When a task becomes the priority task, the
common user 415 who posed such task may become a featuredcommon user 415. In that case, data relating to the featuredcommon user 415 may be displayed to othercommon users 415 and to the featureduser 435. Such data may include, without limitation, the featured common user's username and picture. Additionally, other users, both common 415 and featured 435, may have an opportunity to follow a web hyperlink and, thereby, view the featured common user's full profile on theweb site 310. Accordingly, the featuredcommon user 415 may be rewarded for his pledge in that all other parties may know who posed the priority task. - As mentioned above, the featured
user 435 may choose to respond to the priority task. The type of response given by the featureduser 435 may depend on the type of task posed. For example and not limitation, if the task is a question, the featureduser 435 may answer the question, and if the task is a request, the featureduser 435 may comply with the request. Theweb site 310 may receive the response of the featureduser 435 in various ways. For example, theweb site 310 may receive and display an answer to a question in the form of text. Alternatively, theweb site 310 may receive the featured user's compliance with a tasked request through, for example, a webcam or other recording media. - In addition to the above functions of the featured
user 435, a role of the featureduser 435 may be similar to a role of a chat moderator. The featureduser 435 may initiate the chat bidding session and may prompt tasks from thecommon users 415. When initiating a chat bidding session, the featureduser 435 may select a charity to share in revenues generated by the chat bidding session. The featureduser 435 may be able to change the benefiting charity during the chat bidding session. Credits deducted from credit accounts of thecommon users 415 for posed tasks represent revenues of the chat bidding session. In predetermined percentages, such revenues may be divided among theweb site manager 315, the featureduser 435, and, if indicated, the selected charity. - The featured
user 435 may also have access to a synchronous alert tool on theweb site 310. For example, when initiating a chat bidding session, the featureduser 435 may issue a mass notification to allcommon users 415, or to a predetermined set ofcommon users 415, to notify suchcommon users 415 of the chat bidding session. In an exemplary embodiment of thechat bidding system 330, the synchronous alert tool issues a pop-up alert tocommon users 415. - A
common user 415 may view various elements of the chat bidding session. For example, theweb site 310 may display to the common user 415 a name and biography of the featureduser 435. Theweb site 310 may also display responses for each task to the plurality ofcommon users 415, as in a group chat session. In other words, if the featureduser 435 responds to a task of a firstcommon user 415, such response may be displayed to allcommon users 415 in a virtual group environment of theweb site 310. Additionally, eachcommon user 415 may view and scroll through his own posed tasks. Thecommon user 415 may view the queue position of each of his tasks and may modify the bid amount of each of his tasks. Optionally, thecommon user 415 may also have access to a complete list of posed tasks from the plurality ofcommon users 415. In some exemplary embodiments of thechat bidding system 330, a firstcommon user 415 may be able to pledge his credits to a task posed by a secondcommon user 415. Accordingly, the firstcommon user 415 may increase the bid value and, potentially, the rank of a task of the secondcommon user 415. Additionally, in such a scenario, theweb site 310 may acknowledge both the secondcommon user 415 and the firstcommon user 415 when the task is featured and presented to the featureduser 435. - Throughout the chat bidding session, the
web site 310 may display various statistics related to the chat bidding session. For example, and not limitation, theweb site 310 may display the total credits raised during the chat bidding session up to the current point in time, the time elapsed in the bidding session, the number of posed tasks not yet presented to the featureduser 435, the name of the selected charity, the average time the featureduser 435 has taken to act on or respond to each presented task, and the estimated time remaining in the chat bidding session. At any point in time, the featureduser 435 may pause the chat bidding session and, thereby, pause any running clocks utilized for calculating statistics related to the chat bidding session. -
FIG. 6 illustrates a flow diagram of aprocess 600 of a featureduser 435 initiating and participating in a chat bidding session, according to an exemplary embodiment of thechat bidding system 330 of theweb site 310. - As shown in
FIG. 6 , at 601, the featureduser 435, such as a celebrity, may initiate the chat bidding session. This may occur when the featureduser 435 selects an appropriately labeled button, such as a button labeled “Create StarChat.” At 602, a pop-up or dialog may appear allowing the featureduser 435 to create the new chat bidding session. At 604, the featureduser 435 may select a charity to benefit from the chat bidding session, and may determine a duration for the chat bidding session. At 606 and 608, thenetworking system 300 may create the chat bidding session using the validated charity and duration selections. - Cache object validation may occur at 610. If a cache object does not exist, the
networking system 300 may create a new cache object for managing the chat bidding session. To improve performance, thenetworking system 300 may cache objects on theserver assembly 230 so that they can be used and manipulated quickly. Upon creation of a new chat bidding session, thenetworking system 300 may determine whether a dialog for a chat bidding session has already been created. If not, at 612, a chat bidding session dialog, in which tasks and responses may be displayed, is created and added to the cache. Then, the next time the dialog is requested, it may be retrieved from the cache. Upon creation of the new dialog, at 614, thenetworking system 300 may notify all online users of creation of the chat bidding session. - A new chat icon may be created at 616, and may be viewable by the
common users 415. At 618, thenetworking system 300 may direct the featured user'sweb client 124 to a web page of the chat bidding session. At 620, the featured user's information, such as name and occupation, may be loaded into the chat bidding session for viewing by thecommon users 415. At 622, the featureduser 435 may await questions and tasks from thecommon users 415. While there are no new questions or tasks, as shown at 624, certain data about the chat may automatically update. Such data may include, without limitation, elapsed time, average time to respond to a question or task, and estimated time remaining. Preferably, this data is maintained and displayed as needed and appropriate throughout the chat bidding session. - At 626, a process of acting on questions and other tasks of
common users 415 may begin. Thenetworking system 300 may determine whether a question or task has already been chosen by the featureduser 435 at 628. At 630, if a question or task is already chosen, the question or task is added to thetasks queue 420 in cache to be stored for efficient future use. At 632, thetasks queue 420 may be re-sorted based on bid values relating to one or more newly inserted tasks. - Returning to 628, alternatively, if a question or task has not yet been chosen, a question or task may be retrieved, at 634, along with related data, such as data pertaining to the
common user 415 who posed the question or task. At 636, the question or task data may be displayed so that the featureduser 435 may respond. At 638, a notification may be sent to thecommon user 415 who posed the question or task, informing thecommon user 415 that his question or task is the priority task. At 640, this priority task may be removed from thetasks queue 420, and at 642, thetasks queue 420 may be updated to reflect that the priority task has been removed. -
FIGS. 7A-7B illustrate flow charts depicting furtherexemplary functions 700 of the featureduser 435 during the chat bidding session. At 701, if the featureduser 435 previously elected a charity benefactor, the featureduser 435 may change the selected charity from within the chat bidding session. Changing the charity may be initiated when the featureduser 435 selects a “Change Charity” button at 702. Then, a pop-up or dialog may appear, enabling the featureduser 435 to select a new charity. The pop-up or dialog may provide a list of approved charities from which the featureduser 435 may choose. At 704, the featureduser 435 may select a new charity, and the newly selected charity may be verified at 707. This validation step may include, for example, verifying that the charity is a valid charity associated with the featureduser 435. At 708, a notification of the new charity may be transmitted to allcommon users 415 related to the chat bidding session, and 710, allcommon users 415 and featuredusers 435 may be updated with the newly selected charity. - In an exemplary embodiment of the present invention, changing the benefiting charity of a chat bidding session may not affect a distribution of the revenues generated through the chat bidding session before the change occurred. In other words, a first charity may benefit from the chat bidding session for the time period during which such first charity was specified as the benefiting charity. If the benefiting charity is changed to a second charity during a chat bidding session, only revenues after the change may be generated for the benefit of the second charity.
- At 712, the featured
user 435 may have an ability to use the synchronous alert feature. This feature, as discussed above, may enable the featureduser 435 to send a message to allcommon users 415 participating in the chat bidding session. After selecting the synchronous alert feature, e.g. a “StarBlaster” button, at 712, a pop-up window may be presented to the featureduser 435 at 714. At 716, the featureduser 435 may provide and submit a message for thecommon users 415. At 718, the message may be transmitted to allcommon users 415 involved in the chat bidding session. - As mentioned above, the featured
user 435 may have an ability to select the duration of the chat bidding session. At 720, the featureduser 435 may change such duration. He or she may accomplish this by selecting a “Change Duration” button. At 722, a pop-up may appear, allowing the featureduser 435 to modify the duration. At 724, the featureduser 435 may enter the modified duration information, which may then be validated at 726. Upon approval of the new duration, a notification may be sent to all users in the chat bidding session at 728 and at 730. If the chat bidding session displays an end time to thecommon users 415, such end time may be updated in accordance with the new duration. - As at 732 and 734, the featured
user 435 may skip the priority question or task. After the featureduser 435 selects a “Skip Question” button at 732, the question or task may be removed from the cache at 734. Then, a new priority task may be presented to the featureduser 435. - At 736, the featured
user 435 may opt to end pledging in the chat session. For example, the featureduser 435 may select a “Suspend Pledges” button. This option may preventcommon users 415 from posing additional tasks, and may additionally prevent pledge increases for queued tasks. At 738, the cache may be updated in response to the featured user's indication that pledges are no longer allowed, and accordingly, thenetworking system 300 may no longer accept new questions or tasks from thecommon users 415. Next, at 740 and 742, a notification may inform thecommon users 415 that no new questions or tasks may be posed in the chat bidding session. In an exemplary embodiment of thechat bidding system 330, the featured user may be required to continue acting on posed tasks until all tasks with non-zero bid values are acted upon.Common users 415 whose tasks remain in thetasks queue 420 after the featureduser 435 exits the chat bidding session may receive refunds for their pledged credits. - Turning to 744, an exemplary process of responding to a posed question or task is depicted. After the question or task is answered at 746, a response is displayed via the chat bidding session. At 748, the question or task may be removed from the cache, and at 750, the task and response may be stored in the cache as answered. At 752, the task and response, or question and answer, may also be stored in the database. Then, at 754, notification of such response may be sent to the
common users 415 participating in the chat bidding session. At 756,common users 415 and featuredusers 435 may be informed that a response to the priority task has been issued, and the task and corresponding response may be available for viewing. - The featured
user 435 may terminate the chat bidding session, such as by selecting an “End Chat” button at 760. After which, a notification may be issued to thecommon users 415 in the chat bidding session at 762. Thecommon users 415 may then receive notification that the chat has ended at 764. At 766, a record of the chat bidding session dialog may be removed from the cache. At 768, all pledges associated with unanswered tasks may be voided when the chat bidding session ends at 770. -
FIG. 8 illustrates anexemplary process 800 of acommon user 415 joining and viewing an exemplary chat bidding session. As shown inFIG. 8 , at 801, thecommon user 415 may elect to join a particular chat bidding session. At 802, theserver assembly 230 may redirect thecommon user 415 to an appropriate web page for the chat bidding session, and thecommon user 415 may be added to a user list of the chat bidding session at 804. Thecommon user 415 may then be presented with tasks to which the featureduser 435 has previously responded in the chat dialog at 806. Additionally, questions and tasks to which the featureduser 435 previously responded may appear in an “asked questions” area of the web page at 808. - At 810, the
networking system 300 may enter a cycle of updating ranks of posed questions/tasks. Such updating may be necessary to ensure that the tasks, as displayed on theweb site 310, may reflect accurate rankings based on updated bid values fromcommon users 415. Updating may be implemented, preferably behind the scenes and out of view of theusers client computer 102 to iterate through questions and tasks in thelocal tasks queue 420. Eachweb client 124 may provide metadata to theserver assembly 230 describing changes to bid values and task ranks. At each iteration, at 810, aweb client 124 may determine whether the question selector references an asked question/task. If so, at 812, an updated rank of the question or task may be retrieved from thetasks queue 420 on theserver assembly 230. The rank of the question or task referenced by the question selector may then be updated on theweb client 124 to reflect current bid values at 814. -
FIG. 9 illustrates anexemplary process 900 of acommon user 415 participating in an exemplary chat bidding session. At 915, thecommon user 415 may use arrows, or similar selectors, to cycle through tasks and questions previously posed by that particularcommon user 415. At 916, thenetworking system 300 may determine whether questions or tasks posed by othercommon users 415 exist in thequeue 420. If no such other questions or tasks exist, thenetworking system 300 may clear areas of the cache used for displaying tasks and their pledges and ranks. Thecommon user 415 may then pose new questions or tasks to the featureduser 435. Alternatively, if one or more questions or tasks remain in thetasks queue 420, as at 920, data regarding such tasks may be retrieved from the cache and then displayed at 922. Then, when thecommon user 415 enters a question or task at 924, thenetworking system 300 may insert such question or task into thetasks queue 420. If the newly posed question or task has not been previously posed in the chat bidding session, the web page of the chat bidding session may then be updated with data regarding the newly posed question or task of thecommon user 415. Otherwise, if the question or task was previously posed, the task and related data, such as an associated bid value, may be retrieved from the cache at 932, and then displayed on the web page of the chat bidding session at 934. - Preferably, the
client computer 102, such as that used by thecommon users 415 or the featureduser 435, and theserver assembly 230 interact in the chat bidding session through a service executing a dynamic update. This service may enable the web page of the chat bidding session to update without user interactions, such as clicking a “Refresh” button on theweb client 124. The dynamic update service may enable thecommon user 415 to view real-time positions of his tasks in thequeue 420, as well as real-time data for various other statistics viewable to thecommon user 415. The dynamic update service may enable the featureduser 435 to view real-time data related to, without limitation, any or all of the following: number of tasks in thetasks queue 420, number of queued tasks associated with bids, elapsed time of the chat bidding session, estimated time to respond to all queued tasks, average time to respond to each task, amount of money raised, number ofcommon users 415 viewing the chat bidding session, and various other statistical data related to the chat bidding session - Through the
performance bidding system 340, users may request to perform on theweb site 310, and may pledge credits to determine an order in which they may be allowed to perform. Such pledged credits may be directed towards a benefiting charity or may be paid to theweb site 310 for the opportunity to perform. Alternatively, credits may be divided between theweb site 310 and the benefiting charity. In some exemplary embodiments, the benefiting charity, if any, may be predetermined, and the users may be notified of information regarding the charity. - The
performance bidding system 340 may be available to bothcommon users 415 and featuredusers 435. For convenience, members of all classes of users may be referred to as “users.” Through theperformance bidding system 340,common users 415 may have an opportunity to perform for featuredusers 435 and othercommon users 415. Similarly, featuredusers 435 may have an opportunity to perform forcommon users 415 and other featuredusers 435. Users participating in theperformance bidding system 340, but not currently queued for a performance on theweb site 310, are herein referred to as observers. The users queued for performances are herein referred to as performers. Together, performers and observers make up the participants of theperformance bidding system 340. - The
performance bidding system 340 of theweb site 310 performs in some manners similar to the chat bidding session. Similarly to thechat bidding system 330, theperformance bidding system 340 may comprise a queue, specifically a performance queue, and a plurality of participating users. - When a performance request reaches the top of a performance queue, the user making the performance request may perform live for other participants. During a performance, the
networking system 300 may provide the performing user with music and lyrics, as in a karaoke style performance. If a non-karaoke type of performance is desired, theweb site 310 may provide other, appropriate support for the performance. For example, if the performing user indicates that she would like to perform in spoken work, theweb site 310 may provide soft background music as indicated by the performing user. The performing user may provide one or more recording devices, such as a webcam and a microphone, and theserver assembly 230 may receive media representing the performance. Preferably, such media is streaming media. Theweb site 310 may present the performance, preferably streaming, to the observers. - Users who make performance requests may be provided with a menu of selections for supporting their performance. For example, a user requesting to perform karaoke-style may be presented with a list of songs for the
web site 310 to provide music and lyrics. Upon selecting specific performance support for a performance, the user's username and support selections, such as a song title, may appear in a status section of a web page of theperformance bidding system 340 to identify the user's position in the performance queue. All other queued performers, or alternatively, a predetermined number of highest ranked performers in the performance queue, may also appear in the status section, thereby providing participants with data regarding expected performances. - Through the
performance bidding system 340, theweb site 310 may display data regarding the performers, observers, or all participants. For example, and not limitation, theweb site 310 may display the total numbers of performers and observers. Theweb site 310 may also display statistics of performers or of the total participating users, such as displaying geographic statistics of the performers or of all participants. This may give participants an estimate of the geographic range of the performers, and may give performers a geographic range of the observers. - Upon making a performance request, a user may pledge credits to the request and, thereby, associate the request with a bid value. If no bid value is provided with a performance request, the request may be placed at the bottom of the performance queue. However, a performer may increase her position in the queue by increasing her pledge value above other another performer's pledge value. Performers may rise in the performance queue as others perform and are, consequently removed from the queue. A performer's position in the queue may be dynamic, as all performers may increase their bid values to escalate their own positions in the performance queue. Therefore, a performer's queue position may periodically change and be updated accordingly in the status section.
- A bidding dialog box on the
web site 310 may provide performers with means to increase their pledges and, thereby, potentially increase their positions in the performance queue. The bidding dialog box may display to each performer an amount of credits required to increase the performer's queue position to a certain rank in the performance queue. After a performer attains one of the top X positions in the performance queue, the performer's position may become locked. Locking the top X positions in the performance queue may be implemented in various manners, including those described above with reference to the top N positions of thetasks queue 420. Performers with the top X locked positions may be able to perform in succession regardless of pledge increases of participants. At a point in time, the top X performers, along with their support selections, may be displayed in the status section of the web page of theperformance bidding system 340. - While a user is performing on the
web site 310, data from her profile may be displayed to participants of theperformance bidding system 340. Participants may also have an opportunity to follow a web hyperlink and, thereby, view the performing user's full profile on theweb site 310. Participants may then be able to learn more about the performing user and may leave feedback on the performing user's profile. - At the end of each performance, a rating window may automatically be presented to the participants. Through the rating window, the participants may rate the performance or leave feedback regarding the performance. Top-rated performances may be stored on the
server assembly 230 and accessible for replay by each participant. -
FIG. 10 illustrates a flow diagram of anoperation 1000 of theperformance bidding system 340, according to an exemplary embodiment of thenetworking system 300. As shown inFIG. 10 , at 1002, a participant may enter a lobby, or introductory web page, of theperformance bidding system 340 of theweb site 310. The participant may participate passively by requesting, receiving, and viewing streaming media of the current performing user at 1004. The participant may elect to become a performer at 1006. At 1008, the participant may be presented with a selection of support material, such as a list of songs from which the participant may select a song to perform karaoke-style. After the participant selects support material, the user's username and support material may be inserted into the last position of the performance queue, at 1010, if no credits are yet pledged. The performance queue may be maintained and dynamically updated at 1012. At 1014, the participant may be offered an option to pledge credits, or additional credits, to escalate her position in the performance queue. If the participant bids credits to escalate her position, at 1016, thenetworking system 300 may determine whether the bid is sufficient to raise the participant's position in the performance queue. If the bid is sufficient, theprocess 1000 returns to 1012 and updates the performance queue. - When a performance ends at 1020, a next performer in the performance queue may be alerted. Additionally, the queue may be updated, and a rating dialog box may be displayed at 1022, providing participants an opportunity to rate the previous performer and to provide comments about the performance. Accordingly, participants, including the previous performer, may be provided with instant feedback from other participants. Viewing participants may complete a rating form in the dialog box or may bypass completing the rating form at 1028.
- When a participant performs, streaming media, such as audio and video, of the performer may be presented to all viewing participants at 1024. If the participant is performing karaoke-style, the participant may be provided with background music and lyrics at 1026.
- Accordingly, users of the
networking system 300 may interact with one another by performing for one another, viewing such performances, and communicating regarding such performances. - In accordance with an exemplary embodiment of the
telephony switching system 350, parties may contact one another anonymously. Thetelephony switching system 350 may enable a party to limit calls from certain users and groups of users, and according to predefined schedules. This feature of theweb site 310 may be especially beneficial for featuredusers 435. Through thetelephony switching system 350, a featureduser 435 may place or accept a call to or from acommon user 415 while maintaining a concealed phone number. Additionally, through predefined scheduling rules, the featureduser 435 may block all calls during certain time periods. Furthermore,common users 415 may transition a chat session to a telephone call without compromising the privacy common to chat sessions. - In an exemplary embodiment of the
networking system 300, a calling party may request a connection, such as a telephone chat, to a receiving party. Prior to attempting to forge the connection, thenetworking system 300 may verify that the receiving party is willing to accept the connection from the calling party. Once verified, thenetworking system 300 may place a call to each of the calling party and the receiving party, and may then patch the two calls together so that each of the two parties can engage in a chat without divulging contact information, such as a telephone number, to the other party. Alternatively, the calling party may initialize the connection by contacting a service center and requesting to be connected to the receiving party via a communication device. In such an embodiment, the service center may initiate a call to the receiving party and patch that call to the calling party. - Before a user may utilize the
telephony switching system 350, a communication device of the user may need to be registered with thetelephony switching system 350.FIG. 11A illustrates aprocess 1100 of registering a communication device with thetelephony switching system 350. As shown inFIG. 11A , at 1101, the user of thetelephony switching system 350 may request that the communication device be registered. At 1102, thetelephony switching system 350 may register the communication device on a database of theserver assembly 230. At 1104, thetelephony switching system 350 may create a unique identifier associated with the communication device. At 1106, a message may be displayed on theweb site 310 notifying the user of the unique identifier and its availability for use. At 1108, the user may either assign his own personal identification number (“PIN”) or request that thetelephony switching system 350 create a PIN for the user. At 1110,telephony switching system 350 may determine whether thesystem 350 is to create a PIN or, alternately, whether the user has submitted a PIN for validation. If thetelephony switching system 350 was asked to assign a PIN, such a PIN is created and assigned by thetelephony switching system 350 at 418. Otherwise, the user assigned PIN may be validated. At 412 and 420, theweb site 310 may display that the PIN is active and ready for use. - Accordingly, after completing the registration process, the communication device may be associated with a unique identifier and a PIN. Generally, the unique identifier may be used to identify a calling party when a connection is requested via the
telephony switching system 350. The PIN, on the other hand, may be used to identify a receiving party. In other words, when attempting a connection, the calling party may provide a unique identifier to identify himself, and may provide a PIN to identify the receiving party. Accordingly, the calling party may be required to receive a PIN from the receiving party before connecting to the receiving party. Each receiving party may request and receive multiple PINs from thetelephony switching system 350. According to wishes of the receiving party, each PIN may serve a distinct purpose. For example, a first PIN may be distributed to family members for contacting the receiving party, and a second PIN may be distributed to business associates for contacting the receiving party. This will be described in further detail below. -
FIGS. 11B-11C illustrate block diagrams of exemplary embodiments of thetelephony switching system 350. As shown inFIG. 11B , an exemplary embodiment of thetelephony switching system 350 may generally comprise at least twocommunication devices 1130, aservice center 1160, and atelephony switch 1170. - As shown in
FIG. 11B , the callingparty 1180 may use thefirst communication device 1140 to communicate with theservice center 1160. Theservice center 1160 may be in communication with thetelephony switch 1170. Thetelephony switch 1170 may be in communication with thefirst communication device 1140 and thesecond communication device 1150, and may connect thefirst communication device 1140 to thesecond communication device 1150. For purposes ofFIGS. 11B-11C , thecommunication devices 1130 are already registered with thetelephony switching system 350. - The
communication devices 1130 may include afirst communication device 1140 and asecond communication device 1150. For purposes of an exemplary embodiment of thetelephony switching system 350,communication devices 1130 may comprise various devices capable of communicating over a communications network, such as a telephone network or the internet. Eachcommunication device 1130 may be a wired telephone, wireless telephone, cellular telephone, satellite telephone, voice over IP (“VoIP”) phone, PDA, soft phone, computer, or other device capable of audio and/or video communications. Thefirst communication device 1140 may be associated with a first phone number and a callingparty 1180. The first phone number identifies thefirst communication device 1140. Similarly, thesecond communication device 1150 is associated with a second phone number and a receivingparty 1190. The second phone number identifies thesecond communication device 1150. - The
service center 1160 may comprise one or more hardware or software devices, or various combinations thereof, capable of receiving and storing registrations relating tocommunication devices 1130, managing such registrations, analyzing connection requests relating to registeredcommunication devices 1130, and initiating and managing connections. - The
telephony switch 1170 may comprise various telephone exchanges, switches, or combinations thereof. For example, and not limitation, thetelephony switch 1170 may be a private branch exchange (“PBX”). Thetelephony switch 1170 may connect the callingparty 1180 to the receivingparty 1190 if such a connection is deemed allowed. - In an exemplary embodiment of the
telephony switching system 350, thetelephony switch 1170 may comprise one or more PBX switches trunked to other telephony switches and telephony service centers with various PBXs located around the world. Trunks may allow multiple calls to be combined into a single channel and be delivered to other PBXs either in thesame telephony switch 1170 or other telephony switches having available channels to VoIP termination providers or public switched telephone network (“PSTN”) terminations. In addition, thetelephony switch 1170 may provide trunks and termination end points to provide high quality and low cost termination tocommunication devices 1130. The termination end points and trunks may also be provided through a third party VoIP termination or PSTN. In an exemplary embodiment, the PBX implementation may be a software system allowing existing telephony infrastructure to interact using VoIP standards. - In some exemplary embodiments of the
telephony switching system 350, theservice center 1160 and thetelephony switch 1170 may be integrated together. For example, theservice center 1160 may comprise a PBX for providing the call-handling for users requesting communications with other users. Calls may traverse digital circuits, analog interfaces, VoIP networks, or various other networks for delivering communications. Digital circuits may be defined telephony standards, such as T1 lines carrying 24 channels of voice to standard telephony companies. Analog interfaces may provide single channels of voice for delivery to the public switched telephone network (PSTN). VoIP protocols, such as SIP, IAX, H.323, and others, may enable audio, metadata, and video to be digitized, secured, and compressed for delivery over computer networks to other service centers or other termination endpoints. These delivery mediums may enable the PBX in theservice center 1160 to connect two or more parties anonymously. -
FIG. 12 is a flow diagram illustrating amethod 1200 of handling a connection request from the callingparty 1180 to connect to the receivingparty 1190, according to an exemplary embodiment of thetelephony switching system 350. At 1210, theservice center 1160 receives a connection request from the callingparty 1180 to connect to the receivingparty 1190. Such communication request may be made by the callingparty 1180 through thefirst communication device 1140. Alternatively, the communication request may be made by the callingparty 1180 via a web interface. At 1220, theservice center 1160 may determine whether a connection is allowed given predetermined variables. Such variables may include certain contact rules preset by the receivingparty 1190. For example, and not limitation, each user may provide a list of users permitted to call, a list of users not permitted to call, times when calls are allowed, or other suitable calling criteria. If the connection request is not allowed, theservice center 1160 may notify the callingparty 1180 of the denial, as at 1230. Otherwise, if the connection request is approved, at 1240, theservice center 1160 may forward the connection request to thetelephony switch 1170. At 1250, thetelephony switch 1170 may connect to thesecond communication device 1150 and, therefore, to the receivingparty 1190 using thesecond communication device 1150. Finally, at 1260, thetelephony switch 1170 may patch together its connections to the callingparty 1180 and the receivingparty 1190, such that the twoparties party 1170 does not answer, the callingparty 1160 may be permitted to leave a voice message within the receiving party's video/voice mailbox. - Referring now back to
FIG. 11B ,communication devices 1130, such as the first andsecond communication devices service center 1160. Registrations may be communicated to theservice center 1160 through various manners. For example, and not limitation, registration of thefirst communication device 1140 may be communicated to theservice center 1160 through a phone call, such as by the callingparty 1180 calling theservice center 1160 and providing registration information. - Alternatively, registration may be accepted through a
web client 124. Theweb client 124 may receive registration information and send it to theserver assembly 230. Theserver assembly 230 may be part of, or in communication with, theservice center 1160. Alternatively, theservice center 1160 may be part of theserver assembly 230. Theserver assembly 230 may provide the registration information to theservice center 1160. Registration information for acommunication device 1130 may include, without limitation, a phone number associated with thecommunication device 1130, an account identifier, and a set of contact rules. - The account identifier may comprise information for identifying a user account on the
web site 310. The specified user account may then be associated with thecommunication device 1130. As discussed above, an account user, such as the callingparty 1180, may have a credit account associated with the user account. The credit account may track a number of credits available to the associated user for purchasing services from theweb site 310. By associating the user account with thecommunication device 1130, credits available to the user of the user account may also become available for the purpose of purchasing connections through thetelephony switching system 350. Additionally, credits may be charged for the duration of connections initiated through thetelephony switching system 350. - As a part of a registration, the set of contact rules may indicate who may connect to the
communication device 1130, and when such connections may occur. Various rule types may be included in the contact rules. For example, and not limitation, the contact rules for the receivingparty 1190 or thesecond communication device 1150 may specify that connections may be made from thefirst communication device 1140 only during certain hours. For purposes of establishing contact rules, the receivingparty 1190 may refer to thefirst communication device 1140 by, for example, its associated phone number, its unique identifier, or a username or other alias of the receivingparty 1190. For additional example, the contact rules may specify that users of a predefined group may not connect to thesecond communication device 1150, or that users of the predefined group may connect to thesecond communication device 1150 only during specified hours. The contact rules may specify that thefirst communication device 1140, or users of the predefined group, may never connect to thesecond communication device 1150 or, alternatively, may connect to thesecond communication device 1150 at any time. The contact rules may also specify categories of allowed or disallowed calls, such as conference calls, faxes, or calls from cellular telephones. One skilled in the art will recognize that the contact rules may specify alternate handling of connection requests based on various factors, including, without limitation, subject matter of the call, gender of the calling party, geographic location of the calling party, and/or time of the call. - At least partially because of the wide range of potential contact rules, embodiments of the
telephony switching system 350 may have wide application. For example, thetelephony switching system 350 may be used for recruiting and screening employment opportunities. A potential hiree may structure contact rules around acceptable employment opportunities. For further example, the potential hiree may allow calls only from recruiters or employers having job opportunities in a predefined geographic area, with salaries over a predetermined threshold, and/or with a predetermined set of benefits. - The contact rules may specify actions to be taken if a connection is requested when the receiving
party 1190 is unavailable and cannot, therefore, respond to a connection made through thetelephony switching system 350. For example, and not limitation, the contact rules may specify which parties are approved to leave messages, and which parties are to be presented with a pre-recorded message from the receivingparty 1190. Further, the contact rules may specify alternate voicemail recordings to be presented to alternate callingparties 1180. A connection may be automatically terminated if the callingparty 1180 is not approved to leave a message or to receive a pre-recorded message when the receivingparty 1190 is unavailable. Additionally, if a call is attempted, but the receivingparty 1190 does not answer the call, thesystem 350 may terminate the call when thesystem 350 detects that the receiving party's voicemail is answering the call. Such termination may be useful in maintaining the privacy of the receivingparty 1190 because personal information, such as the person's identity or phone number, may be present on the standard voicemail greeting. In such cases, the callingparty 1180 may be diverted to the receiving party's mailbox associated with thesystem 350, or the call may be terminated without allowing a message to be left. - Mailboxes on the
system 350 may receive messages of various types. For example, and not limitation, such mailboxes may include conventional voice mailboxes, video mailboxes, audio mailboxes, email mailboxes, and multimedia mailboxes capable of receiving various types of mail. When a call to the receivingparty 1190 is unanswered, the callingparty 1180 may be redirected to a voice mailbox, or may receive instructions for leaving a message in some other media format. Through theweb site 310 or over a phone call, the receivingparty 1190 may have various options for organizing, sorting, retrieving, and responding to messages, including those messages left through thetelephony switching system 350. For example, the receivingparty 1190 may sort messages based on characteristics of senders of the messages, or on other characteristics of the messages. The receivingparty 1190 may respond individually or en masse to all messages or a set of messages. Such response may also take various media formats, such as video, audio, email, or multimedia. - In addition to the above, the contact rules may specify that any person who provides a specific PIN may connect to the
second communication device 1150 according to a predefined schedule associated with the caller PIN. As described above, the receiving party may have multiple PINs for distinct purposes. Multiple caller PINs may be assigned and used for various users, groups, or call types. For example, different caller PINs may be provided for chat sessions, for a family group, and for a celebrity fan group. Each caller PIN may be automatically generated by theservice center 1160, or the receivingparty 1190 may create the caller PIN and provide such caller PIN to theservice center 1160. Each caller PIN may, for example, allow unlimited uses, a specific number of uses, or may be given an absolute or relative termination date. - Connections may be requested in various ways. For example, the calling
party 1180 may call theservice center 1160, which is preferably identified by a toll free number. When connected to theservice center 1160, the callingparty 1180 may provide information to identify the receivingparty 1190. For example, and not limitation, the callingparty 1180 may enter a username for a user account of the receivingparty 1190, an identifying PIN associated with the receivingparty 1190, the unique identifier of the receivingparty 1190, or various other identifiers or aliases of the receivingparty 1190. Preferably, theservice center 1160 receives such information from the callingparty 1180 via an automated service provided by theservice center 1160. - If the receiving party's contact rules dictate that the calling
party 1180 provide a caller PIN, the callingparty 1180 may be prompted to provide such a caller PIN. In a first exemplary embodiment, theservice center 1160 may automatically recall the unique identifier of thefirst communication device 1140. In an alternate exemplary embodiment, theservice center 1160 may prompt the callingparty 1180 to enter the unique identifier of thefirst communication device 1140. Theservice center 1160 may consider this unique identifier when determining whether to approve the connection. After receiving the connection request, theservice center 1160 may approve or deny the connection based on data received from the callingparty 1180 and thefirst communication device 1140, as compared to the contact rules of the receivingparty 1190. - As illustrated in
FIG. 11C , and as briefly discussed above, the connection request may also be made over the internet through use of one ormore web clients 124. Through afirst web client 124, the callingparty 1180 may be logged into a user account on theweb site 310. Through links in theweb site 310, the callingparty 1180 may request a connection to the receivingparty 1190. The callingparty 1180 may not be required to know the name or phone number of the receivingparty 1190, so long as the callingparty 1180 can provide predetermined identifying information regarding the receivingparty 1190. For example, and not limitation, the callingparty 1180 may provide or select a username of a user account associated with the receivingparty 1190. Theserver assembly 230 may receive the connection request and may route the request to theservice center 1160 for approval. Theservice center 1160 may approve or deny the connection based on contact rules of the receivingparty 1190. - Alternatively, the receiving
party 1190 may be logged onto theweb site 310 when the callingparty 1180 requests a connection to the receivingparty 1190. In that case, the receivingparty 1190 may be notified of the connection request via asecond web client 124 used by the receivingparty 1190. Via thesecond web client 124, the receivingparty 1190 may approve or deny the connection request. The receiving party's approval or denial may be received by theserver assembly 230. If the receivingparty 1190 approves or denies the connection request via thesecond web client 124, theservice center 1160 need not determine whether to connect the callingparty 1180 to the receivingparty 1190. If the receivingparty 1190 approves the connection, theserver assembly 230 may notify thetelephony switch 1170 of such approval. Thetelephony switch 1170 may then connect the callingparty 1180 to the receivingparty 1190, as described further below. - The
service center 1160 may receive connection requests from theserver assembly 230 or from the callingparty 1180. In response to such receipt, theservice center 1160 may determine whether to honor connection requests. After receiving the connection request of the callingparty 1180, theservice center 1160 may query the contact rules of the receivingparty 1190 to determine whether the callingparty 1180 may connect to the receivingparty 1190. If the contact rules specify that the callingparty 1180 or thefirst communication device 1140 may connect to the receiving party 1990 or thesecond communication device 1150 at the time the connection request is made, then theservice center 1160 may approve the connection request. Otherwise, theservice center 1160 may deny the connection request. If the receivingparty 1190 is logged into the website and approves the connection, the contact rules verification step may be skipped. - If a connection request is denied, the calling
party 1180 may be disconnected from theservice center 1160 without being connected to the receivingparty 1190. Preferably, such a disconnection is preceded by the service center's providing a polite message to the callingparty 1180 notifying the callingparty 1180 that the requested connection is not allowed. If the connection request was made via thefirst web client 124, then theserver assembly 230 may prompt thefirst web client 124 to notify the callingparty 1180 of the denial. - If, on the other hand, the connection request is approved, the
service center 1160 may communicate the approved connection request to thetelephony switch 1170. Thetelephony switch 1170 may then connect the callingparty 1180 to the receivingparty 1190. For example, and not limitation, thetelephony switch 1170 may direct a signal to thesecond communication device 1150 indicating that a connection is requested. Such a signal may result in thesecond communication device 1150 issuing an alert, such as an audible tone, to notify the receivingparty 1190 that a call is waiting. Caller identification data associated with theservice center 1160 may also be transmitted to thesecond communication device 1150. Accordingly, if thesecond communication device 1150 is capable of displaying caller identification data, it may display data related to theservice center 1160. If thesecond communication device 1150 is activated after receiving the signal, such as by the receivingparty 1190 answering a phone call, thetelephony switch 1170 may connect thefirst communication device 1140 to thesecond communication 1150 device. Upon activation of thesecond communication device 1150, thetelephony switch 1170 may immediately connect the first andsecond communication devices service center 1160 or thetelephony switch 1170 may prompt the receivingparty 1190 to accept the connection. Then, the call may be connected only if the receivingparty 1190 accepts the connection. - If an approved connection request was received via the
first web client 124, then thetelephony switch 1170 may send signals to both thefirst communication device 1140 and thesecond communication device 1150. Caller identification data associated with theservice center 1160 may be transmitted to the first andsecond communication devices communication devices service center 1160. In response to such signals, thecommunication devices parties parties second communication devices parties - In an exemplary embodiment of the
telephony switching system 350, the caller identification information may include data relating to theservice center 1160, such as a phone number of theservice center 1160. In an alternative embodiment, calls may be associated with alternative caller identification information. For example, and not limitation, the caller identification information may include an alias, username, or handle of the other party and/or a telephone number associated with theweb site 310 orservice center 1160. - In an exemplary embodiment of the
telephony switching system 350, at least one of the callingparty 1180 and the receivingparty 1190 may be required to use credits to purchase the connection request, the approved connection, or both. Additionally, call crediting may be required for each unit or other measurement unit of call time. Credits may be automatically debited from applicable accounts when a connection is requested or when a call is connected. - The cost, in credits, of connection requests and connections may vary based on predetermined variables. For example, connection to a fax machine may require more credits than connection to a landline telephone. A connection during a business day may require more credits than a connection on an evening or weekend. When the calling
party 1180 requests a connection to the receivingparty 1190, the calling party's credit account may be debited for the request. If the receivingparty 1190 accepts the connection, through contact rules or through an affirmative approval, credit accounts of bothparties party 1180. Additionally, in some exemplary embodiments of thetelephony switching system 350, a debit may only be required from the callingparty 1180 when acommon user 415 connects to, or requests a connection to, afeature user 435. - The
networking system 300 may further comprise amedia interaction system 360 accessible through theweb site 310. Themedia interaction system 360 may enable a first user to interact with a second user through a use of one or more media objects. - Media objects may allow users a creative and personal means to interact with other users. Media objects may comprise various types of media, such as computer animations, other video, audio, or text. Preferably, a media object may comprise an animation in conjunction with an illustration package capable of superimposing a user's existing display objects. An animation in the media object may be implemented in various formats, such as Flash™, Microsoft Silverlight™, or the like. When displayed, the media object may have a transparent background. In other words, media objects of the
networking system 300 may appear to float in front of other objects displayed on aclient computer 102. - Media objects may comprise web-based objects selectable by the first user and sent to the second user after prompting by the first user. The first user may select a media object from a predetermined collection of media objects presented to the first user. The media objects may be associated with a theme, such as a particular holiday, feeling, or season. Media objects available for selection on the
web site 310 may change or rotate based on various factors, such as season or political climate. - Media objects may be dynamic and customizable to further personalize interactions between the first user and the second user. For example, and not limitation, a username of the first user may be automatically inserted into a media object sent to the second user, or the
networking system 300 may prompt the first user for text to insert into the media object. For further example, the media object may comprise a personalized note to the second user. After the first user selects an option to send the personalized note, the first user may be prompted to enter custom text to be displayed in the note. When the second user receives the note, an animation may play in theweb client 124 of the second user. The animation may display, for example, a pen writing the text entered by the first user. - When a media object is selected for sending, the selected media object and any user customizations may be stored and queued on the
server assembly 230. To efficiently utilize space on theserver assembly 230, if a media object includes an animation, the media object may preferably comprise no more than approximately 30 seconds of animation at 30 frames per second. Additionally, the file size of a media object is preferably no more than approximately 150 kilobytes. Those of skill in the art will recognize that these exemplary animation characteristics and file size are provided as sample characteristics for use in an exemplary computer system. As computing technology improves, these characteristics may be broadened. - When the first user selects a media object to send to the second user, the chosen media object may be stored in a queue of the
server assembly 230. In an exemplary embodiment, display of the packaged media object on the second user'sclient computer 102 may be purposely delayed until a predetermined event occurs. For example, such display may be delayed until the second user returns to a chat room in which the second user actively chats with the first user. - In an exemplary embodiment of the
media interaction system 360, the media object may be delivered to the second user'sclient computer 102 through a pull method. The pull method may be implemented by creating a pulse, or heartbeat, that is repetitively fired by theweb client 124, and may be received by theserver assembly 230. The request may inform theserver assembly 230 of a current state of theweb client 124 and any events that should be handled. In return for each pulse sent by theweb client 124, data is delivered to theweb client 124 regarding how to handle such events. - The first user's request to send the media object may be transmitted to the
server assembly 230 in this manner, and may create an event and accompanying metadata on theserver assembly 230. Theserver assembly 230 may read the metadata to determine how to handle the event. Based on the metadata, theserver assembly 230 may determine that the event is a media object and should be addressed to the second user'sclient computer 102. Theserver assembly 230 may then create an event and metadata for the second user'sweb client 124, and may retain the event and metadata in a queue until theserver assembly 230 hears from the second user'sweb client 124. When the second user'sweb client 124 fires a pulse, theserver assembly 230 may respond by transmitting the data in its queue, such as the event related to the media object, to theweb client 124. Theweb client 124 may then receive the data in the queue, including the media object event. After the event is received, the second user'sweb client 124 may display the media object selected by the first user. - In an alternative exemplary embodiment, in which a communications channel is enabled between the second user's
web client 124 and theserver assembly 230, the media object may be delivered to the second user'sclient computer 102 via a push method. In that case, theserver assembly 230 may remain aware of theweb client 124 because of the open channel and, therefore, theweb client 124 may remain available to respond to requests sent by theserver assembly 230. Theserver assembly 230 may send the event and associated metadata directly to the second user'sweb client 124 without theweb client 124 firing a pulse to determine whether it should receive the media object. - The
networking system 300 may provide three categories of media objects, including packaged media objects, extended media objects, and bi-directional media objects. - A packaged media object may comprise a flash animation allowing little to no selectable customization by the first user. In other words, the packaged media object may be pre-packaged and sent as-is. The packaged media object may be an animation, such as a flash animation, which may include a catch phrase or punch line.
- A packaged media object may be selected for delivery from various portions and web pages of the
web site 310. Preferably, however, the first user may select and send a packaged media object from within a chat session with the second user. During the chat session, there may be a portion of the chat web page comprising a menu of sendable packaged media objects. The menu may represent each packaged media object as an icon, which may or may not be animated. For example, theweb site 310 may provide a drop-down menu of selectable media objects. When the first user places a cursor over a menu item for a particular packaged media object, a pop-up may identify a name or description of the packaged media object. - When the first user clicks a list item representing a chosen packaged media object, the packaged media object may be delivered to the second user. In some embodiments of the
networking system 300, before the packaged media object is sent, the first user may be asked to confirm that he wants to send the packaged media object. But this is not required. Thenetworking system 300 may display the media object on theclient computers 102 of both the first user and the second user. For example, if the media object comprises a flash animation, the flash animation may be played on each of theclient computers 102. - Extended media objects may comprise interactable flash animations from the first user to the second user. For example, and not limitation, an extended media object may be a virtual gift, such as a locket containing an image selected by the first user. Alternatively, an extended media object may contain virtual food or a virtual beverage. In an exemplary embodiment of the
networking system 300, the first user may select the extended media object from a virtual gift shop on theweb site 310. The extended media object may then be displayed to the second user without affirmative prompting of the second user or, alternatively, the extended media object may be delivered to a virtual mail box or other virtual location of the second user. In the latter case, the second user may be required to retrieve the extended media object from its virtual location. - A difference between a packaged media object and an extended media object may be that, before a chosen extended media object is sent, the first user may be prompted to provide some degree of customization for the extended media object. For example, the first user may be asked to select a specific gift or beverage for the second user. As a result, unlike with a packaged media object, the first user may observe a different display of the media object than observed by the second user. For example, while the first user may view a virtual bar for selecting a drink to send the second user, the second user may view a prepared drink.
- A bi-directional media object may allow, or require, interaction from both the first user and the second user. For example, and not limitation, the bi-directional media object may comprise a game for two or more players. The first user may initiate the bi-directional media object from, for example, a profile of the second user. Alternatively, the first user may choose to send a bi-directional media object and may then be prompted to select a recipient user, such as the second user, to receive the bi-directional media object. After the first user initiates the bi-directional media object, a prompt or invitation may be sent to the second user, requesting that the second user participate in the bi-directional media object.
- During interaction within a bi-directional media object, the first user may dictate an action and may receive a response from the second user. This may occur iteratively in a bi-directional media object constituting an ongoing game. Selected action of the first and second users within a bi-directional media object may be stored in a shared object within a flash animation file.
- Two or more users may participate in a bi-directional media object. When users, such as the first and second users, participate in a bi-directional media object, their
web clients 124 may become statically linked through a dedicated server object providing a dedicated communications channel. This may provide an efficient delivery mechanism for the users. - The media object may be cached on the
client computers 102 of the first and second users. In a first exemplary embodiment of themedia interaction system 360, an HTTP protocol is provided for implementing a pull method for bi-directional media objects. The pull method may be similar to that described above for other media objects. With the bi-directional media object, however, the pulse from eachinvolved web client 124 requests that theserver assembly 230 act as a proxy, and that the data being transmitted from theweb client 124 should be addressed to the dedicated server object associated with the bi-directional media object. In the pulse, theweb client 124 may also request that theserver assembly 230 transmit event data relating to the bi-directional media object, such as actions of other users participating in the bi-directional media object. - In another exemplary embodiment, when a communications channel is enabled between the
web client 124 and theserver assembly 230, a push method may be implemented similar to the push method described above. In that case, theweb client 124 may have direct access to the dedicated server object, which may send events and metadata for the bi-directional media object directly to theinvolved web clients 124. - Because the bi-directional media object may require interaction from both the first and second users, it may be required that both users be logged into the
web site 310 during use of the bi-directional media object. - When a bi-directional media object is complete, such as when a game has come to its conclusion, either of the users may choose to run the bi-directional media object again. In that case, the other user may receive a prompt requesting whether to replay the bi-directional media object. If the user and the second user agree to replay the bi-directional media object, the bi-directional media object may be restarted. Results of the bi-directional media object, such as who won a game in the bi-directional media object and statistics of the game, may be stored in a database on the
server assembly 230 for future use. -
FIG. 13 illustrates a flow diagram of an operation 1300 of a bi-directional media object, according to an exemplary embodiment of themedia interaction system 360. At 1301, aweb client 124 may begin to play the bi-directional media object. At 1305 and 1310, the first user may send a request to the second user requesting participation in the bi-directional media object. At 1315, the second user may agree or refuse to participate. If the second user refuses, a rejection may be displayed to the first user at 1345, and the bi-directional media object may terminate at 1350. Otherwise, if the second user agrees to participate, the bi-directional media object may be displayed on theweb clients 124 of both users at 1320. At 1325, a cycle may begin of the first and second users taking turns interacting with the bi-directional media object. In a first iteration of the cycle, the first user may interact with the bi-directional media object at 1325. Interaction data may be transmitted to theserver assembly 230 at 1330, and may be transmitted to the second user at 1335. At 1340, the results of the first user's interaction may be displayed on theweb clients 124 of the first and second users. Then, the cycle may repeat at 1325, with the second user interacting with the bi-directional media object. - Accordingly, the
media interaction system 360 may enable users to interact with one another through multimedia content displayed on theweb site 310. - The
display system 370 of theweb site 310 may provide a means to modify a look and feel of theweb site 310 as presented to the user via theweb client 124. Predetermined elements of the visual look and data content of theweb site 310 may be user-adjustable. The data presented to the user can be customized by changing the colors and layout of website data element containers. Also, the website data presented can be filtered by the user's theme preference. - User configurations may be stored in a web cookie on the
client computer 102, and in a database field unique to each individual user's profile. Web cookies provide a standard means for theweb client 124 to maintain its state within a given internet domain. Accordingly, future visits to theweb site 310 may not require theweb client 124 to download data relating to the theme, color, or display defaults for the user. The web cookie may remain on theclient computer 102 even after theweb client 124 is closed. If the user logs into theweb site 310 and theweb client 124 is unable to find a web cookie on theclient computer 102, theweb client 124 may then retrieve default theme, color, and display value, and may create a web cookie for future use. - When the user logs onto the
web site 310, an access token is generated for the user. A new access token may be generated each time a user is authenticated and logs into theweb site 310. The access may be provided to theserver assembly 230 when theweb client 124 interacts with theserver assembly 230. The access token may enable theserver assembly 230 to uniquely identify theweb client 124. The access token may have a limited lifespan and may be regenerated at each login. The access token may be stored in web cookies and in a cache object. While the user is logged into theweb site 310, the user's configurations may be stored in the cache object in addition to being stored in the database. - If the user has not selected a preferred theme or color in their web site preferences, a default theme and color may be used. Default configurations may be based on certain data relating to the user. Such data determining the default configuration may include, without limitation, the user's member category (i.e., common or featured), gender, or specified purpose for using the
web site 310. Theweb site manager 315 may modify available themes and color schemes periodically, or at any time. Users may be able to change a displayed color scheme with a single mouse click. This may be made possible by switching cascading style sheets (“CSS”) and page graphics of theweb site 310 through an object-oriented language and dynamic updates. - Page graphics and text may be altered for a variety of needs. Such alteration may be implemented by using compartmentalization, or a hierarchy, for art and text for presentation to the user via the
web client 124. For example, distinct folders may be provided for site, theme, and sub-theme. Each folder may include, for example, a color and a language. Further, each color for site, theme, and sub-theme may include its own language folder. - By breaking the site into these compartments, a change of folder reference for each CSS, graphic, or text object may dynamically change colors, themes, and languages without requiring reloading of a web page on the
web site 310. This implementation may also simplify development of theweb site 310, as background code need not define themes, sub-themes, languages, or colors. New themes, colors, languages, and various other configuration details may be provided without any additional code. - When the user changes his or her color preference, the change is stored in the current session's cache object and in the user's local web cookie. The user's login session on the
web site 310 may expire from the cache object after theweb site 310 is unloaded from theweb client 124. Removal of the cache object on theserver assembly 230 may occur by various means. In an exemplary embodiment of thedisplay system 370, theweb client 124 may send a log-off request to theserver assembly 230. In the event this signal is not received, theserver assembly 230 may recognize that the web client's pulse has terminated. Then, theserver assembly 230 may retain the cache object for a predetermined duration, or until occurrence of a predetermined event, before removing the cache object. Retaining the cache object for a predetermined duration, or until occurrence of a predetermined event, may ensure that theserver assembly 230 does not prematurely remove the cache object. - At a color change request, various tasks may be performed to effect a new color scheme. The user's cache object may modify a stored color value. The user's web site cookie may be altered with the new color value. The user's web site preferences database field may be updated with the new color value. The CSS provided for
web site 310 rendering may change to a CSS specific to the new color value. Additionally, theweb site 310 may be re-rendered using the new web site preference color. - As described above, color changes may be implemented through folder compartmentalization. Folders may be provided for each color option of the
web site 310. Accordingly, theweb client 124 may dynamically alter a color of theweb site 310 without requiring a re-login or reloading of a web page of theweb site 310. - Themes may be provided to allow the user to further customize the
web site 310. A theme may define graphic images and data content presented to the user. In addition to being stored in the user's database field, the chosen theme may also be stored in the cache object when the user is logged into theweb site 310. - When the user selects an available theme, a dynamic update may instruct the application code to display an appropriate set of data and graphics applicable to the theme. The theme choice may be implemented through an object-oriented programming language, and may be processed on the pre-render of page elements.
- As mentioned above, the
networking system 300 may further include aphoto management system 380. Thephoto management system 380 may enable viewing, organizing, and editing images associated with a user account. Such images may include, but are not limited to, photographs and graphical representations of objects. - With the
photo management system 380, a user may have an image library on theweb site 310, and may utilize an image editor on theweb site 310 to modify images in the image library. A user may be able to view photo libraries, or predetermined portions of photo libraries, of other users. The user may upload images to the library, and may also create and modify images in the library. From the image library, the user may sort images and arrange images in folders for more efficient organization. - The
photo management system 380 may include a gallery for viewing images in the image library. In the gallery, the user may scroll through all images, or a set of images, in the image library. - To enable uploading of images, a photo upload dialog may be provided on a web page of the
photo management system 380. Through the photo upload dialog, the user may browse images on, or linked to, theclient computer 102 and may choose one or more of such photos to add to the image library. A browser of the photo upload dialog may enable users to view thumbnails of images on theclient computer 102. This may enable the user to more efficiently select images that the user intends to add to the image library. - Uploaded or newly created images in the image library may not be immediately viewable by other users. When uploaded or created, a new image may have an unapproved status. While approved images may be viewable by others, unapproved images may not be viewable by other users. For an image status to change from unapproved to approved, the
web site manager 315 may be required to approve the image. Additionally, an image may not be viewable if it has not been selected as a viewable image by the user of the image. - The
photo management system 380 may require that no more than a predetermined number of images from the user's image library be appointed for each purpose that can be given to images. For example, and not limitation, the user may be required to select no more than a predetermined number of images viewable by other users, or no more than a predetermined number of images viewable by those other users categorized as “friends” of the user. The user may appoint an image to a certain purpose by dragging the image into a designated section of a web page of thephoto management system 380. -
FIG. 14 illustrates a flow diagram of aprocess 1400 of managing and editing images in an exemplaryphoto management system 380. At 1401 and 1402, theweb client 124 may communicate with a database on theserver assembly 230. At 1404 and 1408, theweb client 124 may receive image data from the database. Theweb client 124 may then load images from the image library at 1410. At 1412, theweb client 124 may assign the images according to their appointments, such as assigning a position of an image in a certain location based on whether the image represents part of the user's viewable profile, or whether the image is viewable only to friends. Theweb client 124 may display a graphical user interface to the user at 1414. - The user may then have an ability to perform actions regarding the images, as described above. At 1416, the user may modify appointments of various images. At 1418, the user may flip an image. At 1420, the user may rotate an image. At 1422, the user may delete an image from the image library. At 1424, the user may assign an image to a particular appointment. After the user selects any one of the above actions, data may be communicated between the
client computer 102 and theserver assembly 230 to accomplish the selected task, and to store the user's modifications to images on the database of theserver assembly 230. If the selected action was successful at 1428, theweb site 310 may notify the user of the success at 1430. Alternatively, if the action failed at 1432, the user may be notified of the failure at 1434. - The user may upload images to the image library at 1436. In an exemplary embodiment of the
photo management system 380, a file browser may be displayed at 1438 to assist the user in selecting a file to be uploaded. At 1440, the selected file may be prepared for uploading, and at 1442, image data from the selected file may be transmitted from theclient computer 102 to theserver assembly 230. If this operation is successful at 1444, a confirmation may be displayed to the user at 1446. Also at 1446, theweb client 124 may refresh a web page of the image library to display the image library containing an image from the selected file. Theprocess 1400 may then, once again, load images in the image library at 1410. Alternatively, if the operation of uploading the selected image file fails at 1148, an error message may be displayed to the user at 1450. - The image editor of the
photo management system 380 may enable the user to modify images in the image library. The image editor may include tools to crop an image, rotate an image, flip an image, delete an image, create a photo profile, and various other image-editing tools. - Additionally, the photo editor may provide a tool enabling the user to create a thumbnail image, which may represent the user on the
web site 310. The user may associate the thumbnail image with text, which may be used in conjunction with the thumbnail to represent the user on theweb site 310. Preferably, the user may have only a single thumbnail image, so creating a new thumbnail may automatically delete any old thumbnail. - The thumbnail tool may enable the user to crop an image to a specified size or to specified dimensions or aspect ratio. To use the thumbnail photo, the user may first select an image from the image library. The user may select a first point on the selected image, and may do so by clicking with a mouse button, with a cursor over the first point, and holding the mouse button down. The user may then select a second point on the selected image. Selecting the second point may entail dragging the cursor to the second point while holding the mouse button down, and then releasing the mouse button with the cursor over the second point. As the first user drags the cursor between the first and second points, a rectangle may be displayed between the first and second point, such that the first and second points lie on opposite corners of the rectangle. If valid, a portion of the selected image lying inside the rectangle may represent a new thumbnail created by the user. The selected portion may be deemed invalid, however, if, for example, the rectangle extends outside the bounds of the image. If the selected portion is invalid, a new thumbnail may not be created for the user.
-
FIG. 15 illustrates aprocess 1500 of editing images with an exemplary image editor of thephoto management system 380. After thenetworking system 300 displays the graphical user interface at 1414 (as described inFIG. 14 ), the user may edit images as described above. For example, the user may perform any of the following: flip an image at 1556, rotate an image at 1558, delete an image at 1560, and create a thumbnail at 1566. At 1526, data regarding the user's image modifications may be communicated between theclient computer 102 and theserver assembly 230. If the modifications fail at 1532, the user may be informed of the failure at 1534. On the other hand, if the modifications succeed at 1528, the user may be informed of the success at 1530. - At 1562, the user may attempt to crop an image. At 1564 and 1568, the user may select a portion of the image as described above, with respect to creating a thumbnail. At 1590, the
networking system 300 may determine whether the selected portion of the image is valid. At 1572, the user may be informed of success or failure of cropping the image based on the user's selection. If the cropping was successful, data may be sent to theserver assembly 230 to store the user's modifications to the image at 1574. - The
networking system 300 may store both an original raw image and a set of attributes representing modification to the image. The modifications may be a result of photo editing on the part of the user. The attributes may contain all data required to reconstitute the current image having the user's previous modifications. Accordingly, when an image is to be displayed on theclient computer 102, the raw image may be manipulated with the stored attributes before being delivered to theclient computer 102.FIG. 16 illustrates a flow diagram of anexemplary process 1600 of delivering images to theclient computer 102 in thephoto management system 380. - As shown in
FIG. 16 , at 1618, thenetworking system 300 determines whether the user has requested a rotation of the image. Such determination may occur by examining the stored attributes associated with the image. If a rotation is requested, at 1624, the desired rotation is performed. At 1626, thenetworking system 300 may determine whether the image should be flipped. At 1634, thenetworking system 300 may determine whether to perform red-eye reduction and, at 1636, whether such red-eye reduction is to be performed manually or automatically. Thenetworking system 300 may then use the attributes to re-perform the red-eye reduction as originally performed. If a manual red-eye reduction was performed, characteristics of such reduction may be retrievable from the stored attributes. - At 1642, the
networking system 300 may determine whether color levels should be modified. If so, at 1644, thenetworking system 300 may determine whether the user desired manual or automatic modification of color levels. At 1650, thenetworking system 300 may determine whether to modify brightness and contrast of the image and, at 1652, whether such modifications are manual or automatic. At 1654 and 1656, thenetworking system 300 may perform the requested modifications. Finally, at 1658 the resulting image is returned. - The image may be at least partially defined by image manipulation arguments, which may reflect the user's modifications to the image. The
server assembly 230 may store each image as well as one or more sets of image manipulation arguments. The image manipulation arguments may be stored in a table or array along with a reference to the associated image. Each set of manipulation arguments for the image may define a displayable image created through a set of user manipulations to the original image. For example, a user may create a thumbnail from the original image to identify the user on theweb site 310. The user may also rotate and crop the original image for display in the user's profile. Depending on whether theweb site 310 is displaying the thumbnail version of the image or the profile version of the image, the networking system may apply a different set of manipulation arguments to the image when displaying the image on theweb site 310. - Preferably, the image manipulation arguments define modifications to the image in a coordinate system of the image. For example, if the user rotates and then crops the image, both operations may be stored in a set of image manipulation arguments with reference to coordinates relative to one or more points on the image. This enables appearance of the image to be independent of an order in which the rotation and cropping are applied to the image before the image is displayed. If, in contrast, operations are stored with reference to an absolute coordinate system, then reconstituting the modified image would require performing the operations in the order in which the user originally performed such operations. The present
photo management system 380 may allow more flexibility by enabling operations within a set of manipulation arguments to be stored in various orders. - A second set of arguments, display arguments, associated with an image may be provided to define how the
web client 124 may manipulate formatting and display of the image. For example, although the image may be stored in a size of 800×600 pixels, theweb client 124 may display the image into a 320×200 display area. Accordingly, display arguments may instruct theweb client 124 to shrink the image to fit in a 320×200 display area. -
FIG. 17 illustrates a flow diagram of aprocess 1700 of displaying an image in thephoto management system 380. At 1701, the user may request that an image be displayed. Accordingly, thenetworking system 300 may retrieve the image from storage on theserver assembly 230 at 1702 and 1704. At 1706, thenetworking system 300 may determine whether there are any display arguments for the image. At 1708, thenetworking system 300 may determine that display arguments should be applied to the image, and such arguments are applied at 1710. After the display arguments have been applied, or after thenetworking system 300 determines that display arguments need not be applied, at 1712, thenetworking system 300 may determine whether the user requested any user manipulation arguments for the image. If user manipulation arguments exist for the image, thenetworking system 300 may manipulate the image according to the user manipulation arguments beginning at 1610 (FIG. 16 ). Finally, at 1714, the image may be displayed to the user. - Image caching may be provided in the
photo management system 380 of thenetworking system 300. Caching may result in efficient image loading, while maintaining conventional benefits of retaining stored images on the database, such as reliable long-term storage. When aweb client 124 requests an image from thenetworking system 300, the image may be modified by parameters of the stored attributes before the image is delivered to theweb client 124 at theclient computer 102. Images are modified by the processing server using a series of parameters provided when a request is made. After all modifications are complete, the images may be saved to a cache server, which may comprise a storage device associated with a server in theserver assembly 230. Use of the cache server to store the modified image may reduce or eliminate the need for theserver assembly 230 to repetitively process the image before displaying it. Data in the cache server may be disposable and, accordingly, may be removed from the cache server when the user logs out or when space is needed. The storage device may be implemented in a Redundant Array of Inexpensive Disks (“RAID”) array to enhance speed, capacity, and performance of the storage device. - Image caching may relieve the
server assembly 230 of potentially extensive processing of the image, by writing the image to the storage device after the image has been modified according to its associated stored attributes. If the image is requested again, thenetworking system 300 may retrieve a cached copy of the image from the storage device instead of from a database on theserver assembly 230. - A benefit of image caching is stateless replication, which enables new servers to be added to the
server assembly 230 without replicating an existing cache. Conventionally, each server would be required to replicate caches of other servers, and to synchronize its cache with other servers. This utilizes time and bandwidth. In exemplary embodiments of thephoto management system 380, however, the new server would not be required to synchronize cached images with other servers of theserver assembly 230. For example, if a requested image does not exist on a storage device of the new server, the image may be retrieved from the database, modified, and - As mentioned above, the
networking system 300 may further comprise amessaging system 390. Themessaging system 390 may enable a first user to leave a message for a second user of thenetworking system 300. For example, themessaging system 390 may enable acommon user 415 to leave a message for a featureduser 435, such that the featureduser 435 may view and respond to the message at the convenience of the featureduser 435. A featureduser 435 may also leave a message for acommon user 415. Additionally, acommon user 415 may leave a message for anothercommon user 415, and a featureduser 435 may leave a message for another featuresuser 435. -
FIG. 18 illustrates an exemplary web page of themessaging system 390. As shown inFIG. 18 , themessaging system 390 may comprise amessage area 1810, at least onegraphical tool 1820, and acolor selector 1830. - The
message area 1810 may provide a background for the message. In some exemplary embodiments of themessaging system 390, themessage area 1810 may look similar to a whiteboard, blackboard, piece of paper, computer monitor, or various other objects on which one might conventionally leave a message or receive a message. The look and feel of themessage area 1810 may be customizable. For example, and not limitation, the first user may change an appearance of the background provided by themessage area 1810 by clicking a button labeled “Background” on the web page. - In an exemplary embodiment of the
messaging system 390, themessage area 1810 of a particular user may retain text and images left by previous users of thesame message area 1810. Accordingly, when the first user views the web page displaying the second user'smessage area 1810, the first user may see messages previously left by the first user and by other users. - The
graphical tools 1820 may comprise one or more representations of implements for creating the message. For example, astylus 1822 and aneraser 1824 may be provided asgraphical tools 1820. Othergraphical tools 1820 provided may include, without limitation, a text tool, a brush tool, a spray paint tool, a straight line tool, a rectangle tool, and a circle tool. When activated, thestylus 1822 may add portions of a message to themessage area 1810, while theeraser 1824 may remove portions of a message from themessage area 1810. - Characteristics of the
graphical tools 1820 may be customizable. For example, a size and shape of agraphical tool 1820 may be customizable, which may result in a customizable size and shape of modifications resulting from use of thegraphical tool 1820. For example, increasing the size of thestylus 1822 may increase a width of a line drawn in themessage area 1810 with thestylus 1822. Additionally, transparency of agraphical tool 1820 may be customizable, such that a resulting modification to themessage area 1810 may become more or less opaque. Customizations may affect a singlegraphical tool 1820 or, alternatively, allgraphical tools 1820, depending on either user preference or a specific embodiment of themessaging system 390. - The
color selector 1830 may present the first user with two ormore color blocks 1835 containing colors applicable to one or moregraphical tools 1820. Eachcolor block 1835 may be a predetermined color. When the first user selects acolor block 1835, the color of thecolor block 1835 may be applied to thegraphical tool 1820 next utilized in themessage area 1810. A default color may be provided if the first user does not select acolor block 1835. For example, a black color may be applied tographical tools 1820 when the first user does not select acolor block 1835. - Additionally, the
color selector 1830 may allow the first user to adjust characteristics of a color, such as hue and saturation, and thereby create a custom color for application to agraphical tool 1820. - A message of the
messaging system 390 may be created by manipulating agraphical tool 1820 on or in proximity to themessage area 1810. The first user may select agraphical tool 1820 and, optionally, a color. When the first user activates thegraphical tool 1820, such as by clicking a mouse button, thegraphical tool 1820 may be applied to themessage area 1810, thereby modifying a visual appearance of themessage area 1810. For example, when thestylus 1822 is activated, moving thestylus 1822 across themessage area 1810 may result in a line being drawn along a path of thestylus 1822 in themessage area 1810. For further example, when theeraser 1824 moves across themessage area 1810, text and images in a path of theeraser 1824 may be removed from themessage area 1810. The modified visual appearance of themessage area 1810 represents a viewable message. The message may comprise various combinations of text and images in themessage area 1810, and may or may not be intended to portray a specific idea to a recipient of the message. - During message creation, the first user may be able to save the message. This may be enabled, for example, through use of a web page button or link labeled “Save.”
- Further, the first user may be able to undo a previous action. This may be enabled, for example, through use of a button or link labeled “Undo.” In some exemplary embodiments of the
messaging system 390, an action may not be undone if the action preceded a saving of the message, as described above. -
FIG. 19 illustrates a flow diagram of anexemplary process 1900 of leaving a message, such as a text comment, through themessaging system 390. As shown inFIG. 19 , three layers of operation may be implemented in themessaging system 390. These operational layers may include auser interface layer 1902, anapplication layer 1904, and adatabase layer 1906. Steps of theprocess 1900 occurring in theuser interface layer 1902 may describe an interaction of themessaging system 390 with the user. Steps of theprocess 1900 occurring in theapplication layer 1904 may represent operations that occur in theclient computer 102. Finally, steps in thedatabase layer 1906 may occur in a database on theserver assembly 230. - At 1910, the first user may enter a text comment for the second user. This may occur through use of the
stylus 1822. After such text is produced, the text is stored as a record in a database on theserver assembly 230 at 1920. Accordingly, at 1930, the text may be retained in a table of the database and properly associated with amessage area 1810 of the second user. At 1940, the new text comment may be rendered. Rendering may generally take place behind the scenes of the web page, and a rendered image may not be viewable until displayed on the web page. At 1950, the new text comment may be displayed in themessage area 1810, which may occur by making viewable a rendered image of the text comment. -
FIG. 20 illustrates a flow diagram of anexemplary operation 2000 of retrieving a message, such as a text comment, from themessaging system 390. As inFIG. 19 , three layers ofoperation message area 1810. The request may be transmitted through the messaging system application, at 2020, to the database. At 2030, the text comment may be retrieved from the database. Themessaging system 390 may then render the text comment, preferably in HTML format, at 2040. Finally, at 2050, the text comment may be displayed to the first user. -
FIG. 21 illustrates a flow diagram of an exemplarygeneral operation 2100 of themessaging system 390. At 2101 and 2102, theweb client 124 may communicate with a database on theserver assembly 230 regarding message data. At 2104 and 2107, theweb client 124 may receive message data from the database. Theweb client 124 may then display the graphical user interface (“GUI”), including themessage area 1810, via theweb client 124 to display messages to a user. At 2110, themessaging system 390 may determine whether the user is attempting to leave a comment in themessage area 1810. If so, the user's comment is accepted at 2112. Otherwise, an empty comment is accepted at 2113. - At 2114, a record may be created in the database for storing the comment. At 2116 and 2126, the
web client 124 and theserver assembly 230 may communicate with each other. Theweb client 124 informs theserver assembly 230 of modifications to themessage area 1810, so that the database on theserver assembly 230 may be updated. Theserver assembly 230 may then send a confirmation to theweb client 124. At 2118, the GUI may be update to display the new comment to the user. - Operations similar to those of the image editor of the
photo management system 380 may also be integrated into themessaging system 390. For example, and not limitation, at 2122, the user may select a tool to modify the GUI. Specifically, the user may modify themessage area 1810 by leaving a message. After a modification, the GUI may be updated to display the modifications to the user. - If the user indicates that he would like to save his modifications to the
message area 1810, themessaging system 390 may receive a command to the save at 2120. Theweb site 310 may prompt the user for confirmation at 2121. If the user confirms his desire to save, an image of themessage area 1810 may be sent to theserver assembly 230 at 2124. At 2126, the database on theserver assembly 230 may be updated with the user's modifications. Hence, the user may leave a message in themessage area 1810, and may save his message for later viewing. After the database is updated, themessage application 1904 may close at 2128. - Accordingly, through implementation of the
crediting system 320, thechat bidding system 330, theperformance bidding system 340, thetelephony switching system 350, themedia interaction system 360, thedisplay system 370, thephoto management system 380, and themessaging system 390, thenetworking system 300 may enable interaction between users. - While the
networking system 300 has been disclosed in exemplary forms, it will be apparent to those skilled in the art that many modifications, additions, and deletions may be made without departing from the spirit and scope of the system, method, and their equivalents, as set forth in the following claims.
Claims (8)
1. A method of managing digital images comprising:
receiving a first digital image;
storing the first digital image in an image array, the image array having fields for image data, and a first set of image modification attributes;
receiving a first image modification command; and
updating a first image modification attribute of said first set of image modification attributes associated with the first digital image in the image array based on the first image modification command.
2. The method of claim 1 , the image array having one or more fields for a second set of image modification attributes, wherein the second set of image modification attributes define a different modified image than the first set of modification attributes.
3. The method of claim 1 , further comprising:
receiving a request to display the first digital image;
retrieving the first digital image from the image array;
retrieving the first image modification attribute from the first set of image modification attributes in the image array;
applying the first image modification attribute to the first digital image to form a first modified first digital image; and
displaying the first modified first digital image.
4. The method of claim 1 , further comprising:
receiving a request to display the first digital image;
retrieving the first digital image from the image array;
retrieving the first set of image modification attributes from the image array;
applying the first set of image modification attributes to the first digital image to form a modified first digital image; and
displaying the modified first digital image.
5. The method of claim 1 , wherein a first image modification attribute of said first set of image modification attributes comprises a crop image attribute.
6. The method of claim 1 , wherein a first image modification attribute of said first set of image modification attributes comprises a rotate image attribute.
7. The method of claim 1 , wherein a first image modification attribute of said first set of image modification attributes comprises a flip image attribute.
8. The method of claim 1 , wherein a first image modification attribute of said first set of image modification attributes comprises a thumbnail attribute.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/285,146 US20120044258A1 (en) | 2007-09-24 | 2011-10-31 | Interactive networking systems |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US97472307P | 2007-09-24 | 2007-09-24 | |
US5944408P | 2008-06-06 | 2008-06-06 | |
US12/237,316 US20090083115A1 (en) | 2007-09-24 | 2008-09-24 | Interactive networking systems |
US13/285,146 US20120044258A1 (en) | 2007-09-24 | 2011-10-31 | Interactive networking systems |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/237,316 Continuation US20090083115A1 (en) | 2007-09-24 | 2008-09-24 | Interactive networking systems |
Publications (1)
Publication Number | Publication Date |
---|---|
US20120044258A1 true US20120044258A1 (en) | 2012-02-23 |
Family
ID=40472697
Family Applications (7)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/237,316 Abandoned US20090083115A1 (en) | 2007-09-24 | 2008-09-24 | Interactive networking systems |
US13/285,161 Abandoned US20120046961A1 (en) | 2007-09-24 | 2011-10-31 | Interactive networking systems |
US13/285,153 Active US9152936B2 (en) | 2007-09-24 | 2011-10-31 | Methods for interactively exchanging graphical objects between networked users |
US13/285,146 Abandoned US20120044258A1 (en) | 2007-09-24 | 2011-10-31 | Interactive networking systems |
US13/285,080 Active 2031-07-24 US9769313B2 (en) | 2007-09-24 | 2011-10-31 | Systems and methods for screening communications based on receiver programmable pins |
US14/836,073 Active 2030-08-10 US10284718B2 (en) | 2007-09-24 | 2015-08-26 | Methods for interactively exchanging graphical objects between networked users |
US15/707,755 Abandoned US20180007200A1 (en) | 2007-09-24 | 2017-09-18 | Systems and methods for screening communications based on receiver programmable pins |
Family Applications Before (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/237,316 Abandoned US20090083115A1 (en) | 2007-09-24 | 2008-09-24 | Interactive networking systems |
US13/285,161 Abandoned US20120046961A1 (en) | 2007-09-24 | 2011-10-31 | Interactive networking systems |
US13/285,153 Active US9152936B2 (en) | 2007-09-24 | 2011-10-31 | Methods for interactively exchanging graphical objects between networked users |
Family Applications After (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/285,080 Active 2031-07-24 US9769313B2 (en) | 2007-09-24 | 2011-10-31 | Systems and methods for screening communications based on receiver programmable pins |
US14/836,073 Active 2030-08-10 US10284718B2 (en) | 2007-09-24 | 2015-08-26 | Methods for interactively exchanging graphical objects between networked users |
US15/707,755 Abandoned US20180007200A1 (en) | 2007-09-24 | 2017-09-18 | Systems and methods for screening communications based on receiver programmable pins |
Country Status (1)
Country | Link |
---|---|
US (7) | US20090083115A1 (en) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8613620B2 (en) * | 2005-07-26 | 2013-12-24 | Interactive Sports Direct Incorporated | Method and system for providing web based interactive lessons with improved session playback |
US9002752B2 (en) * | 2008-02-18 | 2015-04-07 | Massachusetts Institute Of Technology | Tangible social network |
US20100086234A1 (en) * | 2008-10-03 | 2010-04-08 | Bitnik, Inc. | System and method for preserving editing history in an in-browser photo-editing application |
US8271893B1 (en) * | 2009-01-09 | 2012-09-18 | Adobe Systems Incorporated | Transforming representation information |
US8311938B2 (en) * | 2009-02-24 | 2012-11-13 | Doxo, Inc. | Provider relationship management system that facilitates interaction between an individual and organizations |
IL201206A0 (en) * | 2009-09-13 | 2010-06-16 | Gal Zilkha | A method for generating friendship in an instant messaging application |
CN102387169B (en) | 2010-08-26 | 2014-07-23 | 阿里巴巴集团控股有限公司 | Delete method, system and delete server for distributed cache objects |
US9185469B2 (en) * | 2010-09-30 | 2015-11-10 | Kodak Alaris Inc. | Summarizing image collection using a social network |
US20120110502A1 (en) * | 2010-10-28 | 2012-05-03 | International Business Machines Corporation | Using screen captures to provide automatic contextual smart input-in device selection menu |
US8806041B1 (en) * | 2010-12-15 | 2014-08-12 | Amazon Technologies, Inc. | Client device connectivity with integrated business rules and multiple network types |
US9197617B1 (en) | 2010-12-15 | 2015-11-24 | Amazon Technologies, Inc. | Client device connectivity with integrated business rules |
US20120158503A1 (en) * | 2010-12-17 | 2012-06-21 | Ebay Inc. | Identifying purchase patterns and marketing based on user mood |
US9320971B2 (en) * | 2012-03-21 | 2016-04-26 | Zynga Inc. | Communicating messages within network games |
FR2991125A1 (en) * | 2012-05-24 | 2013-11-29 | France Telecom | METHOD FOR SAVING ANONYMAT DURING TELEPHONE COMMUNICATION AND TELECOMMUNICATION SYSTEM FOR IMPLEMENTING THE METHOD |
JP6427950B2 (en) * | 2014-05-21 | 2018-11-28 | 株式会社リコー | Terminal device, program, function calling method, and information processing system |
US11036712B2 (en) * | 2016-01-12 | 2021-06-15 | Microsoft Technology Licensing, Llc. | Latency-reduced document change discovery |
WO2017123394A1 (en) * | 2016-01-15 | 2017-07-20 | Pearson Education, Inc. | Interactive presentation controls |
US10635509B2 (en) | 2016-11-17 | 2020-04-28 | Sung Jin Cho | System and method for creating and managing an interactive network of applications |
US11374914B2 (en) * | 2020-06-29 | 2022-06-28 | Capital One Services, Llc | Systems and methods for determining knowledge-based authentication questions |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7307636B2 (en) * | 2001-12-26 | 2007-12-11 | Eastman Kodak Company | Image format including affective information |
Family Cites Families (93)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5469536A (en) * | 1992-02-25 | 1995-11-21 | Imageware Software, Inc. | Image editing system including masking capability |
US6856986B1 (en) * | 1993-05-21 | 2005-02-15 | Michael T. Rossides | Answer collection and retrieval system governed by a pay-off meter |
US5467388A (en) * | 1994-01-31 | 1995-11-14 | Bell Atlantic Network Services, Inc. | Method and apparatus for selectively blocking incoming telephone calls |
US5473671A (en) * | 1994-03-11 | 1995-12-05 | At&T Corp. | Selective screening of incoming calls for cellular telephone systems |
US5826244A (en) * | 1995-08-23 | 1998-10-20 | Xerox Corporation | Method and system for providing a document service over a computer network using an automated brokered auction |
US6148067A (en) | 1996-07-02 | 2000-11-14 | At&T Corp. | Anonymous voice communication |
US7263526B1 (en) * | 1996-10-30 | 2007-08-28 | Avaya Technology Corp. | Method and apparatus for embedding chat functions in a web page |
US6157829A (en) * | 1997-10-08 | 2000-12-05 | Motorola, Inc. | Method of providing temporary access of a calling unit to an anonymous unit |
US6285989B1 (en) * | 1998-08-07 | 2001-09-04 | Ariba, Inc. | Universal on-line trading market design and deployment system |
USD420995S (en) | 1998-09-04 | 2000-02-22 | Sony Corporation | Computer generated image for a display panel or screen |
US6496569B2 (en) * | 1999-03-19 | 2002-12-17 | Ameritech Corporation | Method and system for providing enhanced caller identification and privacy management |
AU2105101A (en) * | 1999-12-14 | 2001-06-25 | Syntel, Inc. | Method and system for conducting an auction for resources |
US20010026609A1 (en) | 1999-12-30 | 2001-10-04 | Lee Weinstein | Method and apparatus facilitating the placing, receiving, and billing of telephone calls |
US6883140B1 (en) * | 2000-02-24 | 2005-04-19 | Microsoft Corporation | System and method for editing digitally represented still images |
US20020147674A1 (en) * | 2000-04-04 | 2002-10-10 | Gillman Kyle E. | System and method for specialized reverse auction |
US20010034697A1 (en) * | 2000-04-25 | 2001-10-25 | Hooshang Kaen | Integrated auction system |
JP4995366B2 (en) * | 2000-05-24 | 2012-08-08 | 崇 森山 | Building mediation device |
AUPR101900A0 (en) * | 2000-10-20 | 2000-11-16 | Aceinc Pty Limited | Distributed fulfilment system |
US20020099801A1 (en) * | 2000-10-25 | 2002-07-25 | Miruka Ishii | Data transmission-reception system and data transmission-reception method |
US7317787B2 (en) * | 2000-11-21 | 2008-01-08 | At&T Knowledge Ventures, L.P. | Voice enhancing for advance intelligent network services |
US7155001B2 (en) * | 2001-10-24 | 2006-12-26 | Sbc Properties, L.P. | System and method for restricting and monitoring telephone calls |
US7245602B2 (en) | 2000-11-22 | 2007-07-17 | Telefonaktiebolaget Lm Ericsson (Publ) | System and method for anonymous Bluetooth devices |
US20020087382A1 (en) * | 2001-01-03 | 2002-07-04 | Tiburcio Vincio B. | Method and system for assigning and tracking tasks, such as under an electronic auction |
US7124186B2 (en) * | 2001-02-05 | 2006-10-17 | Geocom | Method for communicating a live performance and an incentive to a user computer via a network in real time in response to a request from the user computer, wherein a value of the incentive is dependent upon the distance between a geographic location of the user computer and a specified business establishment |
JP2002342217A (en) * | 2001-05-09 | 2002-11-29 | Kizna Corp | Image communication server and image communication method |
JP4612246B2 (en) * | 2001-08-06 | 2011-01-12 | 三菱電機株式会社 | Human resource auction system and human resource auction server |
US7266523B2 (en) * | 2001-10-31 | 2007-09-04 | Adamshand, Inc. | Method and apparatus for allocating interviews based on dynamic pricing or auctions using electronic networks |
US20040247105A1 (en) * | 2002-03-29 | 2004-12-09 | Karen Mullis | System and method for a network-based call reception limiter |
US7305680B2 (en) * | 2002-08-13 | 2007-12-04 | Sharp Laboratories Of America, Inc. | Listening module for asynchronous messages sent between electronic devices of a distributed network |
US6920632B2 (en) * | 2002-08-23 | 2005-07-19 | Xyron Corporation | Dynamic multilevel task management method and apparatus |
US7945846B2 (en) | 2002-09-06 | 2011-05-17 | Oracle International Corporation | Application-specific personalization for data display |
US8103589B2 (en) * | 2002-09-16 | 2012-01-24 | Touchtunes Music Corporation | Digital downloading jukebox system with central and local music servers |
US7822687B2 (en) * | 2002-09-16 | 2010-10-26 | Francois Brillon | Jukebox with customizable avatar |
US7302405B2 (en) * | 2003-02-19 | 2007-11-27 | Accenture Global Services Gmbh | Methods for managing and developing sourcing and procurement operations |
US7046782B2 (en) * | 2003-04-18 | 2006-05-16 | Larry Miller | Telephone call control system and methods |
JP2007502092A (en) * | 2003-05-16 | 2007-02-01 | ピカサ インコーポレイテッド | Method and system for image sharing over a network |
GB2403099B (en) * | 2003-06-20 | 2007-01-24 | Hewlett Packard Development Co | Sharing image items |
US20050013429A1 (en) | 2003-07-14 | 2005-01-20 | Bensman Robert M. | Method and apparatus for replicating an answering machine to defeat telemarketing systems |
US10832321B2 (en) * | 2003-12-12 | 2020-11-10 | Gfi Group, Inc. | Apparatus, method and system for providing an electronic marketplace for trading credit default swaps and other financial instruments, including a trade management service system |
US7860230B2 (en) * | 2003-12-12 | 2010-12-28 | Martin Bradley J | Telephone call screening and routing device and related method |
US20050182705A1 (en) * | 2004-01-08 | 2005-08-18 | Mclemore Greg | System and apparatus for bidding |
US7457769B2 (en) * | 2004-04-26 | 2008-11-25 | Emptoris, Inc. | Methods and apparatus for an auction system with interactive bidding |
US7904337B2 (en) * | 2004-10-19 | 2011-03-08 | Steve Morsa | Match engine marketing |
US7945469B2 (en) * | 2004-11-16 | 2011-05-17 | Amazon Technologies, Inc. | Providing an electronic marketplace to facilitate human performance of programmatically submitted tasks |
US8005697B1 (en) * | 2004-11-16 | 2011-08-23 | Amazon Technologies, Inc. | Performing automated price determination for tasks to be performed |
WO2006102057A2 (en) * | 2005-03-18 | 2006-09-28 | What Industries, Llc | Systems and methods of product placement |
US20070046694A1 (en) * | 2005-08-24 | 2007-03-01 | Tamar Aizikowitz | System and method for image customization |
US20070073610A1 (en) * | 2005-09-07 | 2007-03-29 | Prasad Marugabandhu | Job auction method and system |
US20070081649A1 (en) * | 2005-09-27 | 2007-04-12 | Motorola, Inc. | Method and system for selectively protecting shared contact information |
US20070165608A1 (en) * | 2006-01-10 | 2007-07-19 | Utbk, Inc. | Systems and Methods to Prioritize a Queue |
US8166061B2 (en) | 2006-01-10 | 2012-04-24 | Aol Inc. | Searching recent content publication activity |
US20070219958A1 (en) * | 2006-03-20 | 2007-09-20 | Park Joseph C | Facilitating content generation via participant interactions |
US8930282B2 (en) * | 2006-03-20 | 2015-01-06 | Amazon Technologies, Inc. | Content generation revenue sharing |
US10846626B2 (en) * | 2006-03-27 | 2020-11-24 | British Telecommunications Plc | Task dispatching system |
US20070238498A1 (en) * | 2006-04-05 | 2007-10-11 | Ryckman Lawrence G | Method and apparatus to conduct contest at multiple remote locations |
US7657009B2 (en) * | 2006-05-16 | 2010-02-02 | At&T Intellectual Property I, Lp | Call block disabler |
US20080008440A1 (en) | 2006-05-24 | 2008-01-10 | Michael Wayne Shore | Method and apparatus for creating a custom track |
US20080306853A1 (en) * | 2006-07-30 | 2008-12-11 | Mclemore Greg | System and Apparatus for Bidding |
US20080091771A1 (en) | 2006-10-13 | 2008-04-17 | Microsoft Corporation | Visual representations of profiles for community interaction |
US20080268938A1 (en) | 2007-04-28 | 2008-10-30 | Stephane Pierre Doutriaux | Systems and methods for gambling using combinations of gaming devices |
US20080319860A1 (en) * | 2007-06-25 | 2008-12-25 | Asimonix, Ltd. | Method and system for on-line bidding |
US9596308B2 (en) | 2007-07-25 | 2017-03-14 | Yahoo! Inc. | Display of person based information including person notes |
US20090037413A1 (en) | 2007-07-30 | 2009-02-05 | Research In Motion Limited | Method and system for generating address lists |
US20090037315A1 (en) * | 2007-08-03 | 2009-02-05 | William Chu | System and method for brokering agents and auditionees |
USD593114S1 (en) | 2007-09-18 | 2009-05-26 | Yahoo! Inc. | Screen with a transitional graphical user interface for a video inbox |
USD596645S1 (en) | 2007-09-24 | 2009-07-21 | Yahoo! Inc. | Graphical user interface for a display screen |
EP2051471A1 (en) | 2007-10-18 | 2009-04-22 | Nokia Siemens Networks Oy | Pseudonymous mobile communication for internet communities |
US9846750B2 (en) | 2007-11-30 | 2017-12-19 | Apple Inc. | Adding tiles to a graphical user interface |
US8914024B2 (en) | 2008-01-10 | 2014-12-16 | Ximoxi, Inc. | Discovery of network members by personal attributes |
WO2009094673A2 (en) * | 2008-01-27 | 2009-07-30 | Citrix Systems, Inc. | Methods and systems for remoting three dimensional graphics |
USD598929S1 (en) | 2008-03-22 | 2009-08-25 | Yahoo! Inc. | Computer user interface for a display screen |
USD590414S1 (en) | 2008-03-22 | 2009-04-14 | Yahoo! Inc. | Computer user interface for a display screen |
USD589970S1 (en) | 2008-03-22 | 2009-04-07 | Yahoo! Inc. | Computer user interface for a display screen |
USD602036S1 (en) | 2008-04-09 | 2009-10-13 | Konica Minolta Medical & Graphic, Inc. | User interface for display screen |
US20090326970A1 (en) | 2008-06-30 | 2009-12-31 | Microsoft Corporation | Awarding users for discoveries of content based on future popularity in a social network |
US20090327906A1 (en) | 2008-06-30 | 2009-12-31 | Microsoft Corporation | Supporting brand assets in a social networking service |
USD597552S1 (en) | 2008-07-08 | 2009-08-04 | Yahoo! Inc. | Computer user interface for a display screen |
USD609716S1 (en) | 2008-07-08 | 2010-02-09 | Yahoo! Inc. | Computer user interface for a display screen |
USD617335S1 (en) | 2008-12-23 | 2010-06-08 | Sap Ag | User interface for a computer display |
USD614636S1 (en) | 2009-06-26 | 2010-04-27 | Microsoft Corporation | User interface for a display screen |
US20110054991A1 (en) | 2009-07-29 | 2011-03-03 | Carlos Orellana | Profile Based Content Creation |
USD623193S1 (en) | 2009-08-14 | 2010-09-07 | Microsoft Corporation | User interface for a display screen |
USD632698S1 (en) | 2009-12-23 | 2011-02-15 | Mindray Ds Usa, Inc. | Patient monitor with user interface |
US20110252340A1 (en) * | 2010-04-12 | 2011-10-13 | Kenneth Thomas | System and Method For Virtual Online Dating Services |
USD629418S1 (en) | 2010-06-07 | 2010-12-21 | Microsoft Corporation | User interface for a display screen |
USD689506S1 (en) | 2010-11-11 | 2013-09-10 | Kabushiki Kaisha Top | High frequency therapy equipment with graphical user interface |
USD681048S1 (en) | 2010-12-29 | 2013-04-30 | Karl Storz & GmbH & Co. KG | Display screen with graphical user interface |
USD669090S1 (en) | 2011-02-07 | 2012-10-16 | Jeffrey Rosen | Display screen with graphical user interface |
USD684180S1 (en) | 2011-04-01 | 2013-06-11 | Mobisante, Inc. | Display screen with graphical user interface |
USD691157S1 (en) | 2011-05-27 | 2013-10-08 | Adobe Systems Incorporated | Portion of a display with a graphical user interface |
USD691158S1 (en) | 2011-05-27 | 2013-10-08 | Adobe Systems Incorporated | Portion of a display with a graphical user interface |
USD696277S1 (en) | 2011-06-15 | 2013-12-24 | Samsung Electronics Co., Ltd. | Display screen or portion thereof with a graphical user interface |
USD696689S1 (en) | 2011-06-16 | 2013-12-31 | Samsung Electronics Co., Ltd. | Display screen or portion thereof with a graphical user interface |
-
2008
- 2008-09-24 US US12/237,316 patent/US20090083115A1/en not_active Abandoned
-
2011
- 2011-10-31 US US13/285,161 patent/US20120046961A1/en not_active Abandoned
- 2011-10-31 US US13/285,153 patent/US9152936B2/en active Active
- 2011-10-31 US US13/285,146 patent/US20120044258A1/en not_active Abandoned
- 2011-10-31 US US13/285,080 patent/US9769313B2/en active Active
-
2015
- 2015-08-26 US US14/836,073 patent/US10284718B2/en active Active
-
2017
- 2017-09-18 US US15/707,755 patent/US20180007200A1/en not_active Abandoned
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7307636B2 (en) * | 2001-12-26 | 2007-12-11 | Eastman Kodak Company | Image format including affective information |
Also Published As
Publication number | Publication date |
---|---|
US9152936B2 (en) | 2015-10-06 |
US9769313B2 (en) | 2017-09-19 |
US20120045045A1 (en) | 2012-02-23 |
US10284718B2 (en) | 2019-05-07 |
US20180007200A1 (en) | 2018-01-04 |
US20120044261A1 (en) | 2012-02-23 |
US20150365364A1 (en) | 2015-12-17 |
US20090083115A1 (en) | 2009-03-26 |
US20120046961A1 (en) | 2012-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10284718B2 (en) | Methods for interactively exchanging graphical objects between networked users | |
US10515371B2 (en) | Interactive networking systems with user classes | |
US11989709B2 (en) | Augmented reality and messaging | |
US7725398B2 (en) | Method and system for selling goods and/or services over a communication network between multiple users | |
US8626590B2 (en) | Methods, systems, and computer program products for automatic group ordering of food from restaurants | |
US9197479B2 (en) | Systems and methods to manage a queue of people requesting real time communication connections | |
US7930731B2 (en) | Methods, systems and program products for creation of multiple views and optimized communications pathways based on personal descriptors | |
US20030236832A1 (en) | Method and system for sharing images over a communication network among a plurality of users in accordance with a criteria | |
US20030236831A1 (en) | Method and system for setting up a system for sharing images over a communication network between multiple users | |
US10819758B1 (en) | Live multiparty audio-visual communication linking system and method | |
US20080229215A1 (en) | Interaction In A Virtual Social Environment | |
US20210042793A1 (en) | Social media profile monetization using viewer engagement tools | |
US20160261646A1 (en) | System and method for communications | |
US11948253B2 (en) | Systems and methods for creating and presenting virtual events | |
US20120116845A1 (en) | System for real-time respondent selection and interview and associated methods | |
US12192581B2 (en) | Online media broadcast system and method | |
US20220095016A1 (en) | Digital entertainment applications where users pay for virtual events hosted by celebrities on mobile and other digital devices | |
US10580454B2 (en) | Methods systems and devices for dynamically creating composite videos | |
KR20240160919A (en) | Contents recommendation method and device | |
JP2007072818A (en) | Virtual dating system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: GREGORY A. PEARSON, INC., FLORIDA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:PEARSON, GREGORY A.;HAMILTON, RONALD SHANE;HALL, DAVID B.;REEL/FRAME:027207/0903 Effective date: 20090917 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |