The U.S. Patent and Trademark Office on Tuesday granted Apple a patent for a social networking system that institutes a number of database-level features to ensure reliable "friend states," or how users interact with each other.
Source: USPTO
Apple's U.S. Patent No. 8,396,932 for "Apparatus and method for efficiently managing data in a social networking service" should not be confused with a full-fledged social network, instead being a method of managing data within a so-called "friend service."
As noted in the invention's summary, some embodiments store keys or value data to "provide an efficient and highly-scalable friend service database," with systems that can ensure consistency between friend records.
In an example of the system's architecture, there are three main databases that help keep user data consistent: a friend database for users within the network, a handle database for out-of-network users, and a write-ahead log database for detecting and rectifying conflicts.
In one embodiment, "in-network" users are identified by a unique destination signaling identifier (DSID) or handle. It should be noted that handles can identify out-of-network users, or those who are not yet part of the friend service, as well as existing users who have not yet associated their handle with their account.
The main goal of any social network is connecting to other users. Apple's invention notes that the initial relationship state between two users as "none," meaning the two account holders have not yet interacted or sent friend requests to one another. In some embodiments, the "none" state is set as the default. A second "handshake" state is described when one of the users initiates contact, or sends a friend request, while a final "friend state" is achieved when the recipient accepts the request.
Flowchart of "relationship" updating.
The invention also describes a stalker count and a spammer count, which are attached to a user's DSID. Each time a user sends a request, their spammer count value is upped by 1 until a predefined threshold is reached. The system can cut off further requests if the frequency of requests passes this threshold. As for the stalker count, a DSID is assigned a "+1" value each time a friend request is denied by a second user. If the sender of the request reaches a predefined stalker count threshold, additional attempts will be ignored. In addition, an ignore flag can be set from the recipient wherein further requests are blocked by the system.
To maintain consistency over the databases, a write-ahead log generator is employed to track "transactions" like accepting a friend request, removing a friend or merging two handles on an account, among others user actions. For example, a key is generated for a given transaction that requires multiple updates to a certain user's friend state records. Once the updates are finished, the entry associated with the log key is deleted. When the system detects log keys that have not been erased over a given amount of time, it can determine that there is an inconsistency in the database. In this scenario, a log reaper is used to step through the write-ahead log database and rectify any inconsistencies.
Flowchart of write-ahead log entry controls.
Other embodiments describe friend request fetching and rejecting, obtaining a list of friends, de-friending and sending friend requests, along with other basic networking tools.
The system can be implemented in an API which can then be integrated into a variety of mobile apps, while further embodiments allow for internet connectivity.
Apple's most recent attempt at social networking, the music-centric Ping first introduced in 2010, fell flat after the service failed to gain traction. It is unknown if the functions described in Tuesday's patent were applied to the failed network.
The '932 patent was first filed with the USPTO in 2010 and credits Amol Pattekar, Jeremy Matthew Werner, Patrick Gates, Andrew H. Vyrros and Richard Wagner as its inventors.