CloudServices/Roadmaps/EditionServer: Difference between revisions

Jump to navigation Jump to search
Line 66: Line 66:
# If a KICK driver is present, PLACEHOLDER SERVER shall relay appropriate PLACEHOLDER CLIENT provided information to the KICK driver.  
# If a KICK driver is present, PLACEHOLDER SERVER shall relay appropriate PLACEHOLDER CLIENT provided information to the KICK driver.  
# PLACEHOLDER CLIENT tenders the ENDPOINT to APP via callback.
# PLACEHOLDER CLIENT tenders the ENDPOINT to APP via callback.
# APP sends ENDPOINT to the APP SERVER
# APP is responsible for sending ENDPOINT to the APP SERVER via out of protocol specified means.
# On VERSION EVENT, APP SERVER PUTs version value to ENDPOINT
# On VERSION EVENT, APP SERVER PUTs to the ENDPOINT
## VERSION values are NOT transmitted through the system and only act as a trigger.
# If a PLACEHOLDER CLIENT is currently connected to APP SERVER, APP SERVER relays an UPDATE containing currently pending VERSION EVENTS.
# If a PLACEHOLDER CLIENT is currently connected to APP SERVER, APP SERVER relays an UPDATE containing currently pending VERSION EVENTS.
## Version data commits and possible publication through the server must be performed in less than 5 seconds.
# If a PLACEHOLDER CLIENT is NOT currently connected, an optional, proprietary KICK driver may be called to wake devices associated with the corresponding ENDPOINT UAID.  
# If a PLACEHOLDER CLIENT is NOT currently connected, an optional, proprietary KICK driver may be called to wake devices associated with the corresponding ENDPOINT UAID.  
# If a PLACEHOLDER SERVER is unable to immediately deliver a VERSION EVENT, the VERSION EVENT is logged to short term storage.
# If a PLACEHOLDER SERVER is unable to immediately deliver a VERSION EVENT, the VERSION EVENT is logged to short term storage.
Line 80: Line 82:
# During the transmission of the UPDATE, a PLACEHOLDER SERVER may wish to return a 503 (Service Unavailable) error to APP SERVERS for any VERSION EVENT associated with an in progress UAID, so as to prevent potential race conditions.
# During the transmission of the UPDATE, a PLACEHOLDER SERVER may wish to return a 503 (Service Unavailable) error to APP SERVERS for any VERSION EVENT associated with an in progress UAID, so as to prevent potential race conditions.
# On receipt of UPDATE, PLACEHOLDER CLIENT shall return an ACK to the PLACEHOLDER SERVER.  
# On receipt of UPDATE, PLACEHOLDER CLIENT shall return an ACK to the PLACEHOLDER SERVER.  
# The ACK shall contain a list of UAIDs for which all APPIDs have been properly received.  
## The ACK shall contain a list of UAIDs for which all APPIDs have been properly received.  
# The PLACEHOLDER SERVER shall then clear APPID version information from short term storage, and re-allow version updates for those UAIDs if currently blocked.
## Version information associated with a non-expired User Agent record is not discarded until acknowledged by the client.  
# The PLACEHOLDER CLIENT shall then notify APPs of the VERSION EVENT using the appropriate callback, and passing the VERSION
# The PLACEHOLDER CLIENT shall then notify APPs of the VERSION EVENT using the appropriate callback<strike>, and passing the VERSION</strike>
# User Agent record (including associated channels and version information) that have not been accessed during an "active use" period, may be dropped by the PLACEHOLDER SERVER
## An unknown (or garbage collected) user agent record would need to re-register with PLACEHOLDER SERVER as if this is an initial connection.
 
<strike>
* Version data is significant and must reflect the latest value submitted. Must be numeric.
** Version must be higher than previously submitted value (TODO: Need to provide use case for how versions would be required)
</strike>
(The following are true for the protocol, however may not be true for the Mozilla Implementation of this server)
* Clients are the source of truth for the associated channels.
** Channel discrepancies between the client and the server result in the server sending a request to client to reset.
    * Details on what a reset entails needed
* UserAgent IDs are globally unique 128 bit numerics
* ChannelIDs are unique per UserAgentID namespace
* Endpoints are Globally Unique
* Data must be stored and managed in a highly responsive manner (low read/write latency)
* Service should support 1MM+ number of simultaneously connected clients
* Connections should maintain as long as possible. A server should not break a connection because it's gone idle.
* A Server should attempt to retry a failed transmission to the client every 60 seconds.


NOTE: a PLACEHOLDER RELAY may be created by combining the polling aspects of the PLACEHOLDER CLIENT with the data management and KICK driver of the PLACEHOLDER SERVER. This would allow a VERSION EVENT system to enter protected networks or use restricted means to communicate to USER AGENTs. It is important to note that once a PLACEHOLDER SERVER has received an ACK for a given UAID, the PLACEHOLDER SERVER is under no obligation to retain that data, and proper relay of the VERSION EVENT is the PLACEHOLDER RELAY's problem.
NOTE: a PLACEHOLDER RELAY may be created by combining the polling aspects of the PLACEHOLDER CLIENT with the data management and KICK driver of the PLACEHOLDER SERVER. This would allow a VERSION EVENT system to enter protected networks or use restricted means to communicate to USER AGENTs. It is important to note that once a PLACEHOLDER SERVER has received an ACK for a given UAID, the PLACEHOLDER SERVER is under no obligation to retain that data, and proper relay of the VERSION EVENT is the PLACEHOLDER RELAY's problem.
Confirmed users
1,022

edits

Navigation menu