`(12) Patent Application Publication (10) Pub. No.: US 2007/0124721 A1
`Cowing et al.
`(43) Pub. Date:
`May 31, 2007
`
`US 2007 O124721A1
`
`(54) PROXIMITY-AWARE VIRTUAL AGENTS
`FOR USE WITH WIRELESS MOBILE
`DEVICES
`
`(75) Inventors: David Timothy Cowing, New York,
`NY (US); Benjamin Gabriel Taylor,
`New York, NY (US)
`Correspondence Address:
`FSH & RICHARDSON P.C.
`P.O. BOX 1022
`MINNEAPOLIS, MN 55440-1022 (US)
`(73) Assignee: ENPRESENCE, INC., New York, NY
`(US)
`(21) Appl. No.:
`11/560,263
`
`(22) Filed:
`
`Nov. 15, 2006
`Related U.S. Application Data
`(60) Provisional application No. 60/736,729, filed on Nov.
`15, 2005.
`
`Publication Classification
`
`(51) Int. Cl.
`(2006.01)
`G06F 9/44
`(52) U.S. Cl. .............................................................. 717/100
`
`(57)
`
`ABSTRACT
`
`Systems and methods are provided for facilitating the dis
`covery of items, individuals, locations and business services
`that are relevant to the context of an individual (including,
`e.g., who an individual is, what an individual is looking for,
`where an individual is, the current time and/or date), facili
`tating post-discovery notifications (such as notifying the
`user or users), and executing post-discovery actions (such as
`making an offer to buy a product or prompting to add the
`user to an individual’s personal network). Accordingly, in
`implementations of the present invention, agents are con
`figured by the individual and deployed to or by the indi
`viduals computerized device (e.g., a mobile device, desktop
`computer, laptop computer, Internet appliance and/or
`server).
`
`
`
`Page 1 of 32
`
`SNAP EXHIBIT 1013
`
`
`
`Patent Application Publication May 31, 2007 Sheet 1 of 16
`
`US 2007/0124721 A1
`
`
`
`
`
`
`
`
`
`
`
`
`
`Presence
`
`Page 2 of 32
`
`
`
`Patent Application Publication May 31, 2007 Sheet 2 of 16
`
`US 2007/0124721 A1
`
`
`
`206
`
`Page 3 of 32
`
`
`
`Patent Application Publication May 31,
`2007 Sheet 3 of 16
`
`US 2007/0124721 A1
`
`ZO
`
`9
`
`5
`
`?ajuDJ ^
`
`
`
`
`
`
`
`
`
`Indfi s| \D?Å
`
`H?r?p
`
`{}J?T?T
`
`Page 4 of 32
`
`
`
`Patent Application Publication May 31, 2007 Sheet 4 of 16
`
`US 2007/0124721 A1
`
`
`
`09 #7
`
`
`
`Page 5 of 32
`
`
`
`Patent Application Publication May 31, 2007 Sheet 5 of 16
`
`US 2007/0124721 A1
`
`
`
`
`
`Page 6 of 32
`
`
`
`Patent Application Publication May 31, 2007 Sheet 6 of 16
`
`US 2007/0124721 A1
`
`
`
`
`
`
`
`
`
`
`
`
`
`eseqe?eC]
`
`Jes/n
`
`| 7
`
`Page 7 of 32
`
`
`
`Patent Application Publication May 31, 2007 Sheet 7 of 16
`
`US 2007/O124721 A1
`
`
`
`704
`
`702
`
`602
`
`Web Application
`
`UI Layer
`
`U Framework
`
`Services
`
`DAO
`
`Application Server
`
`FIG. 7
`
`Page 8 of 32
`
`
`
`Patent Application Publication May 31, 2007 Sheet 8 of 16
`
`US 2007/O124721 A1
`
`812
`
`806
`
`704.
`
`702
`
`604
`
`Remote Service Manager
`Network Manager
`
`
`
`810
`
`808
`
`Application Server
`
`FIG. 8
`
`Page 9 of 32
`
`
`
`Patent Application Publication May 31, 2007 Sheet 9 of 16
`
`US 2007/O124721 A1
`
`918
`
`912
`
`906
`
`
`
`704
`
`O2
`7
`
`606
`
`Agent Server
`Network Manager
`
`
`
`Agent Engine Agent Manager
`914
`
`Agent Plug-in
`FrameWork
`
`Model
`
`
`
`916
`
`910
`
`908
`
`Application Server
`
`FIG. 9
`
`Page 10 of 32
`
`
`
`Patent Application Publication May 31, 2007 Sheet 10 of 16
`
`US 2007/0124721 A1
`
`
`
`Z00 ||
`
`
`
`XIONA?uueu- u? – 6nId quæ6\/
`
`0 || ‘SO|-
`
`SO CHOd
`
`Page 11 of 32
`
`
`
`Patent Application Publication May 31, 2007 Sheet 11 of 16
`
`US 2007/0124721 A1
`
`1100
`
`1102
`
`Agent targets
`emote entity?
`
`No
`
`1104
`
`1106
`
`Yes
`
`Send Agent to
`agent device.
`
`Perform agent
`matching.
`
`
`
`Yes
`
`1110
`
`Perform post
`match procesing.
`
`
`
`Y
`eS
`
`1112
`ls agent 2-way
`match?
`
`No
`
`1114
`
`Perform post
`match action
`
`Reply to
`Originating device
`with agent.
`
`
`
`Perform agent
`matching.
`
`
`
`
`
`Perform post-
`match procesing.
`
`Perform post
`match action
`
`FIG. 11
`
`End
`
`Page 12 of 32
`
`
`
`Patent Application Publication May 31, 2007 Sheet 12 of 16
`
`US 2007/O124721 A1
`
`Z L 'SO|-
`
`70Z).
`
`ONONdoo||pu=
`
`80Z).
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Page 13 of 32
`
`
`
`Patent Application Publication May 31, 2007 Sheet 13 of 16
`
`US 2007/0124721 A1
`
`1306
`
`agent post match
`
`post match
`action
`
`1310
`additional info
`
`1
`
`1302
`
`1304
`
`agent parameter
`
`0.
`
`instruction
`
`1312
`
`0.*
`
`is of type
`
`1
`
`attribute
`
`
`
`
`
`attribute choice
`
`FIG. 13
`
`Page 14 of 32
`
`
`
`Patent Application Publication May 31, 2007 Sheet 14 of 16
`
`US 2007/O124721 A1
`
`
`
`
`
`
`
`Page 15 of 32
`
`
`
`Patent Application Publication May 31, 2007 Sheet 15 of 16
`
`US 2007/O124721 A1
`
`
`
`Page 16 of 32
`
`
`
`Patent Application Publication May 31, 2007 Sheet 16 of 16
`
`US 2007/O124721 A1
`
`
`
`Page 17 of 32
`
`
`
`US 2007/O124721 A1
`
`May 31, 2007
`
`PROXMITY AWARE VIRTUAL AGENTS FOR USE
`WITH WIRELESS MOBILE DEVICES
`
`CROSS REFERENCE TO RELATED
`APPLICATION(S)
`0001. This application claims the benefit of priority under
`35 USC S119(e) of U.S. Provisional Patent Application Ser.
`No. 60/736,729, filed on Nov. 15, 2005, the contents of
`which are hereby incorporated by reference.
`
`TECHNICAL FIELD
`0002 This disclosure relates to proximity-aware virtual
`agents for use with wireless mobile devices.
`BACKGROUND
`0003 Agent-based technology has become increasingly
`important for use with applications designed to interact with
`a user for performing various computer-based tasks in
`foreground and background modes. Software agents gener
`ally relate to computer programs that are set on behalf of
`users to perform various tasks, including those that are
`routine, tedious and time-consuming. To be useful to an
`individual user, an agent should be personalized to the
`individual user's goals, habits and preferences. Thus, for
`optimal effectiveness, the agent should acquire user-specific
`knowledge from the user efficiently and effectively and
`utilize it to perform tasks on behalf of the user.
`0004 The concept of agency, or the use of agents, is well
`established. An agent is a person authorized by another
`person, typically referred to as a principal, to act on behalf
`of the principal. In this manner the principal empowers the
`agent to perform any of the tasks that the principal is
`unwilling or unable to perform. For example, an insurance
`agent may handle all of the insurance requirements for a
`principal, or a talent agent may act on behalf of a performer
`to arrange concert dates.
`0005 With the advent of the computer (including com
`puterized devices, e.g., personal electronics such as PDAS
`and cellular telephones), a new domain for employing
`agents is available. Significant advances in the realm of
`Software enable computer programs to act on behalf of
`computer users to perform routine, tedious and other time
`consuming tasks.
`0006 Software agents differ from other software mod
`ules or applications because, rather than being defined in
`terms of methods and attributes, an agent is characterized in
`terms of its behavior. Software agents generally possess one
`or more of the following characteristics: persistence (code is
`not executed on demand but executes continuously and
`decides for itself when it should perform some activity);
`autonomy (agents have capabilities of task selection, priori
`tization, goal-directed behavior, decision-making without
`human intervention); Social ability (agents are able to
`engage other components through some sort of communi
`cation and coordination, they may collaborate on a task); and
`reactivity (agents perceive the context in which they operate
`and react to it appropriately). To date, Software agents
`generally have been utilized in computing environments
`having a high degree of available resources (e.g., memory
`and processing).
`0007 Moreover, there has been a recent proliferation of
`computer and communication networks, both wired and
`
`wireless. These networks permit users to access vast
`amounts of information and services without, essentially,
`any geographical boundaries. Modern networks include
`digital and analog cellular networks, wireless networks (e.g.,
`wireless high bandwidth protocols described by IEEE stan
`dards 802.11b. 802.11a and 802.11g), the analog telephone
`network (e.g., POTS), voice over Internet protocol networks
`(known as “VoIP), wired networks, cable television net
`works, and satellite-based networks. Thus, by interfacing
`with one or more networks, a Software agent has a rich
`environment to perform a large number of tasks on behalf of
`a U.S.
`0008 Knowledge of a user's current location is another
`Source of information. Although current applications are
`generally focused on navigation, a user's location can pro
`vide information, e.g., context, that a Software agent can
`utilize. Location can be monitored using well-known tech
`niques such as Global Positioning System (GPS) receivers.
`Such receivers are becoming increasingly affordable and
`compact. In addition, proximity technologies exist (e.g.,
`utilizing the technologies described in IEEE specifications
`802.15.1 (regarding Bluetooth R), 802.15.3a (regarding
`Wireless USB), 802.15.4 (regarding ZigBeeTM), and/or
`Radio Frequency Identification (“RFID) protocols such as
`ISO 14443, EPC, and ISO 18000-6) that may not necessarily
`determine a user's absolute location, but can be used to
`determine when a user is near (or proximate to) a beacon or
`other compatible device.
`
`SUMMARY
`0009. In an aspect of the present invention, a system and
`method are provided for facilitating the discovery of items,
`individuals, locations and business services that are relevant
`to the context of an individual (including, e.g., who an
`individual is, what an individual is looking for, where an
`individual is, the current time and/or date), facilitating
`post-discovery notifications (such as notifying the user or
`users), and executing post-discovery actions (such as mak
`ing an offer to buy a product or prompting to add the user to
`an individual’s personal network). Accordingly, in imple
`mentations of the present invention, agents are configured
`by the individual and deployed to or by the individuals
`computerized device (e.g., a mobile device, desktop com
`puter, laptop computer, Internet appliance, and/or server).
`0010. The details of one or more embodiments are set
`forth in the accompanying drawings and the description
`below. Various other features and advantages will be appar
`ent from the description and drawings, and from the claims.
`
`BRIEF DESCRIPTION OF DRAWINGS
`0011 FIG. 1 depicts an illustrative screen layout (home
`screen) of the agent Software.
`0012 FIGS. 2A-B depict illustrative screen layouts
`(match notice, presence list) of the agent Software.
`0013 FIGS. 3A-C depict illustrative screen layouts (gal
`lery screen, question screen, question response) of the agent
`software.
`0014 FIG. 4 is a schematic diagram of one embodiment
`of hardware employed in an exemplary proximity-aware
`virtual agent system.
`
`Page 18 of 32
`
`
`
`US 2007/O124721 A1
`
`May 31, 2007
`
`FIG. 5 is a block diagram illustrating the software
`0.015
`modules on an agent device.
`0016 FIG. 6 is a block diagram illustrating the modules
`of the central management services.
`0017 FIG. 7 is a block diagram illustrating the software
`modules of the Web Application.
`0018 FIG. 8 is a block diagram illustrating the software
`modules of the Remote Service Manager.
`0.019
`FIG. 9 is a block diagram illustrating software
`modules of the Agent Server.
`0020 FIG. 10 is a block diagram illustrating the software
`modules on a Point of Presence.
`0021
`FIG. 11 is a flow diagram illustrating a method for
`executing virtual agents.
`0022 FIG. 12 is a flow diagram illustrating the evalua
`tion of an agent match.
`0023 FIG. 13 is an object model diagram representing a
`logical view of virtual agents.
`0024 FIG. 14 is an object model diagram representing
`the logical view of user and service agents.
`0.025
`FIG. 15A is an object model diagram representing
`the logical view of user attributes and user items.
`0026 FIG. 15B is an object model diagram representing
`the logical view of service attributes and service items.
`
`DETAILED DESCRIPTION
`0027. The following is a description of preferred imple
`mentations, as well as some alternative implementations, of
`a system and method for proximity-aware virtual agents for
`use with agent devices.
`0028. In some implementations, a network of devices that
`execute agents is deployed that execute agents. The agents
`receive information (e.g., from users) relating to goals. For
`example, an agent can be configured to look for a compatible
`romantic match having certain characteristics. When devices
`(which may be referred to as "agent devices') are suffi
`ciently near each other, the agents poll each other to deter
`mine whether a match is found (i.e., if another user has the
`desired characteristics). If a match is found, various notifi
`cation and post-match functions can be performed. If a
`match is not found, the agent keeps looking for a match.
`Moreover, an agent can let a user know when his contacts
`(e.g., friends, business associates, etc.) are nearby. While
`proximity is one trigger for executing an agent, it is possible
`for an agent to poll the entire network looking for match.
`0029 More particularly, an agent preferably includes a
`set of parameters that describe the dimensions a user might
`use in seeking to attain a particular goal. The goal can
`include meeting or communicating with a particular person,
`arriving at a particular place, and finding and/or purchasing
`a particular product or service. Specific values are assigned
`to these parameters by a user to describe the goal (e.g., a
`person, place, product, or service) he wishes to attain. In
`Some implementations, when an agent finds what the user is
`looking for, i.e., the goal, it is referred to as a “match.” There
`is no requirement that an agent terminate after a match. To
`the contrary, some agents may provide a user with multiple
`
`matches (e.g., finding a product from multiple sources, and
`then allowing the user or agent to determine the best option
`based on cost or availability). Additionally, the agent may
`have arbitrary descriptive data associated with it that the
`user may view wherever they are (e.g., a map, image, home
`page, status indicator), as well as instructions on what to do
`following a match.
`0030 Agents can be suited for use in, but not limited to,
`matching of individuals for romantic, social, or business
`purposes, identifying items a user is shopping for, contex
`tually relevant advertising, and group-based games. For
`example, a dating agent could identify a potential romantic
`match between two individuals that are at the same social
`gathering (determined, e.g., by utilizing location or proxim
`ity information) by comparing information about their ideal
`mates with information about each other. The agent would
`then alert the two users, and provide some basic information
`(such as any friends, business contacts, or interests they may
`have in common) to facilitate an introduction. In the pre
`ferred embodiments, agents provide the ability to add per
`Sonalized functionality to a agent device platform without
`having to deploy a whole new set of software to the device.
`0031 Agents preferably are designed to be compatible
`with and executed on a wide array of devices. To that end,
`agents can include a set of meta-data that executes on a
`platform that can execute the agent as defined in the meta
`data. Accordingly, agents can be easily added to agent
`devices without the need of additional support software, i.e.,
`once the platform is loaded on the agent device, a user is free
`to add additional agents. The light-weight nature of this
`design makes them ideally Suited to resource constrained
`environments, such as mobile phones, PDAs, and other
`portable and consumer electronics. Thus, agent devices can
`take many forms, including higher resource environments
`such as desktop PCs, laptop PCs, and servers.
`0032. Additionally, the agents can operate in environ
`ments where security constraints preclude the execution of
`arbitrary code (for example, a JavaTM Platform Micro Edi
`tion Sandbox, implemented in, e.g., the mobile information
`device profile (e.g., MIDPJSR 37, JSR 118, or JSR 271) or
`personal profile (e.g., CDC JSR 36 or JSR 218)). The
`Software on the agent device can be written in, e.g., C++ or
`any other language/platform that can interface with the agent
`device operating system and application programming inter
`face (“API).
`0033. In some implementations, the agents are configured
`and managed via a web site (or other network interface) and
`either transferred to the users agent device via a synchro
`nization process or executed on the server while communi
`cating with the users agent device. A user may have
`multiple agents active at any point in time. While users may
`use their agent device to modify the agent in real time, the
`Small form factor of some agent devices makes data entry
`challenging and thus may encourage users to utilize, e.g., a
`larger form factor device (e.g., a laptop or desktop PC) and
`web interface for the data entry required to initially config
`ure an agent.
`Agent Device Software Application
`0034. An aspect of some implementations is a software
`application that is executed on an agent device, e.g., a
`mobile phone or Personal Digital Assistant (PDA). This
`
`Page 19 of 32
`
`
`
`US 2007/O124721 A1
`
`May 31, 2007
`
`application provides a user interface and set of menu
`controls allowing the user to interact with it. Additionally, it
`provides the engine for detection of other people, locations,
`services, or products nearby and for the evaluation of
`potential matches with each person, location, service, or
`product utilizing the parameters of a users agent or agents
`to discover if the person, location, service, or product is of
`interest to the user. The user typically will leave the appli
`cation executing on his agent device So it can continually
`search for people, locations, services, or products nearby.
`0035) A substantial portion of the activity on the user
`interface centers around a few core screens: the home
`screen, the presence list, the match notice, and the offer
`screen (used to display advertisements). An illustrative
`example of a home screen is shown in FIG. 1. The home
`screen shows Summary information for the user, including
`the number of buddies (i.e., those individuals that the user
`has identified as contacts) in the area 101, the number of
`people using the service in the area (labeled present 102), as
`well as the number of messages in the user's inbox 103 and
`outbox 104. From the home screen, the user can access other
`screens through the menus.
`0.036 When a match is detected in the area, the user is
`presented with a pop-up match notice that contains some set
`of information about the person, location, service, or product
`with which the match occurred. An illustrative example of a
`match notice screen is shown in FIG. 2A. In this example,
`the match pertains to a person, and more particularly, is a
`romantic match. As shown, a photo of the match 201 is
`provided, as well as a match score 202 that is calculated
`based on the degree to which the dimensions entered by the
`user match those possessed by the match. The user, agent, or
`agent provider (i.e., the party who developed or distributed
`the agent) can set a threshold match score that must be met
`before a match alert is generated. The match screen further
`provides some information about the match. In this case, the
`user is informed that the match and user share a common
`friend 203. The match notice screen also gives the user the
`option of taking action on the match. By selecting the
`options soft key 204, the user can view additional informa
`tion, add the person to their relationships, or perform the
`post-match action defined by the agent. Alternatively, the
`user can ignore the match by selecting the ignore soft key
`2O5.
`0037. When people, locations, services, or products with
`which the user has a relationship are nearby, they appear on
`the presence list. An illustrative example of a presence list
`is shown in FIG. 2B. Whether a user has a relationship with
`a particular person, location, service or product can be based
`on, e.g., (1) the result of an agent finding a match or (2) a
`user manually entering certain people, locations, services, or
`products into the agent. From the presence list 206, the user
`may utilize the options soft key 204 to access additional
`information about the person, location, service, or product,
`communicate with the person, location, service, or product,
`or manage his relationship with the person, location, service
`or product. For example, the user can highlight an entry on
`the presence list (in this example Jack, entry 207, is high
`lighted), and proceed to (1) retrieve additional information
`about Jack (e.g., from data stored on Jack's agent device or
`from data associated with Jack elsewhere in the network),
`(2) communicate with Jack (e.g., telephonically, text mes
`sage, photo message, video message), and/or (3) change the
`
`relationship status with Jack (e.g., delete him from the
`presence list, change him from a personal contact to a
`business contact, enable/disable proximity notification, set
`privacy settings).
`0038 An example of information that can be retrieved
`about a match is a picture gallery containing a set of images
`that others can view. An illustrative example of such a
`picture gallery is shown in FIG. 3A. As in this example, a
`user can have pictures of herself. The user also (or instead)
`can include images of her business card, resume, or things
`representing her personal interests. If the match is a product,
`the image gallery can contain, e.g., images of the product,
`instructions, capabilities, and/or locations to purchase the
`product. If the match is a location, the image gallery can
`contain, e.g., images of the location, nearby landmarks, and
`the staff currently on duty. If the match is a service, the
`image gallery can contain, e.g., images of where the service
`can be found, the person(s) performing the service, and past
`results. Match information for people, products and services
`can be found in the form of text, images, structured data,
`links, audio, video and other device consumable or action
`able formats.
`0039. A user can communicate with others in a variety of
`ways, including writing his own messages, sending pre
`written messages, or using standard questions. Users can
`communicate with others as a result of an agent finding a
`match, or a user may manually select a person, location,
`product or service via the presence list. Standardized ques
`tions are an aspect of the question wizard feature. Standard
`ized questions allow individuals to get more information
`about a person, location, service or product without having
`to spend a lot of time writing messages back and forth.
`Standardized questions are customized for different catego
`ries of people (e.g., romantic, friend, or business), locations
`(e.g., parks, stadiums, or restaurants), products (e.g., con
`Sumer electronics, foodstuffs, automobiles) or services (e.g.,
`medical services, accountants, plumbers, contractors, car
`services). An illustrative example of romantic standardized
`questions are shown in connection with FIGS. 3B and 3C.
`When the recipient receives a question 301 (as in FIG. 3B),
`the user can select from multiple-choice list 302 (as shown
`in FIG. 3C) and the results are returned to the originating
`user. One of skill in the art could appreciate that many
`different type of standardized questions can be associated
`with the different categories of people, locations, services,
`and products.
`Additional Features of the Agent Device Software Applica
`tion
`0040. The user interface and agent device support many
`other features. For example, proximity detection detects the
`presence of nearby agent devices or known fixed locations
`(e.g., point of presence beacons or products) through, e.g.,
`wireless technology such as Bluetooth R) point of presence
`detection, RFID, ZigBeeTM, WiFi R, or WiMax or compari
`son to a geographic location stored in a database. Presence
`detection may utilize, e.g., Bluetooth R) discovery, GPS (or
`assisted GPS) proximity detection, or other detection
`mechanisms. The detection of another agent device or fixed
`location can trigger the friend finder and matching agent
`capability as is appropriate (discussed below).
`0041. The friend finder feature notifies the user when
`others are nearby with whom the user has an existing
`
`Page 20 of 32
`
`
`
`US 2007/O124721 A1
`
`May 31, 2007
`
`relationship. The presence list (e.g., FIG. 2B) shows basic
`information (e.g. user alias, picture, and relationship cat
`egory) for each related user that is nearby. Relationships can
`be stored in a list on the agent device, as well as in a central
`database, and can be managed both through the mobile
`application user interface and the web site.
`0042. The matching agents look for people, locations,
`services, or products nearby that match the user's interest,
`based upon information the user has entered for the param
`eters of each agent. For example, a user in the market for an
`automobile may set parameters to indicate that he is looking
`for a 2004 low-mileage black sedan with a manual trans
`mission and leather seats. The matching agent will look for,
`e.g., nearby car dealerships or individuals selling an auto
`mobile matching those parameters. If one is found, the
`matching agent will alert the user with details regarding the
`match. For example, if a car dealership is found, the name
`of the dealership, a photo of the car and directions to the
`dealership may appear. If an individual selling the car is
`found, the matching agent can display a picture of the
`individual (to simply identification) and a photo of the car.
`The matching agent also can effect communication between
`the parties. The matching agent also may alert the match that
`it has been discovered by the user.
`0043. The anonymous messaging feature allows a user to
`exchange messages with other users (including, e.g., people,
`location, services, or products) without revealing his mobile
`phone number. This provides an advantage over certain
`existing text messaging technology, e.g., short message
`service (known also as “SMS,” standard GSM 03.41) which
`includes the sender's mobile phone number and provides no
`anonymity. Messages can be sent over the peer to peer
`network (e.g., from agent device 418 to agent device 420) as
`well as anonymously via SMS with messages routed through
`a central server (e.g., central server 408).
`0044) The question wizard feature, discussed in connec
`tion with FIGS. 3B and 3C, provides standardized questions
`with quick select answers so a user can pose questions to his
`friends and matches (from the matching agent) without
`typing a word.
`0045. The photo gallery feature, discussed in connection
`with FIG. 3A, allows a user to view other user's picture
`galleries on an agent device. It helps users recognize faces
`in the crowd and evaluate any matches before meeting in
`person.
`0046) The instant messaging feature connects with inter
`net instant messaging services, allowing users to chat with
`friends on the internet, as well as those on agent devices.
`Preferably, the mobile application integrates instant messag
`ing with proximity, thereby providing indications of when a
`users friends are nearby and/or online.
`Architecture Overview
`0047. In a particular implementation, the agent software
`application (i.e., the one executed on the agent device) is
`Supported by a broader set of infrastructure, consisting of
`both a set of central services, distributed points of presence,
`and user's access via the web or other network. For example,
`a user is able to create and update information on his PC
`using a web browser to access a secure internet site con
`taining his information. Information entered into the user
`database via the website is synchronized to the agent device
`
`via an XML-based synchronization procedure that synchro
`nizes new or updated information from the user database to
`the agent device and synchronizes new or updated informa
`tion from the agent device to the user database. Additionally,
`the agent device may communicate with one or more central
`servers to Support additional functionality, Such as commu
`nication with other users, internet instant messaging, GPS
`proximity detection, RFID-based item identification, people
`locators, or remote agent match evaluation. The agent soft
`ware application also may detect and communicate with
`fixed points of presence to provide one way of detecting
`fixed locations of interest.
`0048 FIG. 4 is a schematic outlining the physical infra
`structure of an implementation. User, agent, and service
`data, along with core processing functions, are housed in a
`central hosting facility 400. Multiple hosting facilities may
`be used as desired to provide redundancy, fault tolerance and
`scalability. A user database 402 stores user information,
`including the data of the user, user agent, and user item
`objects, as well as Supporting attribute value data (user
`attribute, user agent attribute, and user item attribute). The
`information in the user database 402 is discussed in more
`detail in connection with FIG. 15A. An agent database 404
`stores data defining the agents, including the data of the
`agent, agent attribute, and attribute objects. The information
`in agent database 404 is discussed in more detail in con
`nection with FIGS. 13 and 14. A service database 406 stores
`service information, including the data of the service, Ser
`Vice agent, and Service item objects, as well as Supporting
`attribute value data (service attribute, service agent attribute,
`and service item attribute). More detail regarding the infor
`mation in service database 406 is provided in connection
`with FIG. 15B.
`0049 Additional databases may be provided for further
`categories of data. These databases may be physically
`deployed in a single database, or partitioned across multiple
`database instances and machines as required to Support
`performance and fault tolerance requirements. A central
`server 408 is utilized to execute the server applications of the
`system, including the web application, the remote service
`manager, and the agent server (see discussion of FIG. 6).
`The application and application components may be parti
`tioned across multiple physical servers and hosting locations
`as required to Support performance and fault tolerance
`requirements. A user can connect to the web application
`from a mobile device or personal computer (PC) 410 using
`a web browser over the public internet 412 to create and
`maintain his profile, including, e.g., user, user agent(s) and
`user item data, as well Supporting attribute data. This also
`represents one manner in which a user can download agents
`(e.g., those stored on the agent database 404, central server
`408, or third party agents stored on private server 434 or
`point of presence 432) onto his agent device 418 or 420.
`0050 A user downloads and executes the agent platform
`on his agent device 418 (in this example, a cellular phone,
`but the user's PC 410 could be an agent device as well). In
`the illustrated embodiment, the agent device Supports
`JavaTM Micro Edition (J2METM), JSR-82 and/or JSR-179.
`Once the agent platform is on the agent device, the user is
`free to add additional agents to his agent device without the
`need to update or download additional Software. The agents
`on the agent device 418 can interact with another agent
`device 420 executing the software or a local point of
`
`Page 21 of 32
`
`
`
`US 2007/O124721 A1
`
`May 31, 2007
`
`presence 432. The agent device 418 or 420 can communicate
`with the central server 408, other agent devices or other
`servers via standard mobile and internet protocols (e.g.,
`SMS, MMS, HTTP, WAP, IP) over the network 414 of the
`carrier with whom the user has a subscription for mobile
`Voice/data services. Some carriers have multiple networks,
`and as such, the agent device can use any of the carrier's
`networks. Alternatively, a carrier may allocate one of its
`networks or a certain part of bandwidth for communication
`in other ways.
`0051. A location 430, such as a retail store or a bar, may
`make itself known to the system by installing a local point
`of presence beacon 432. The point of presence beacon 432
`can include, e.g., a PC, a workstation, server, internet
`appliance