User Tools

Site Tools


f1x:architecture

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
f1x:architecture [2025/02/20 05:26] – [Terminology] arief1x:architecture [2025/03/02 05:22] (current) – [Terminology] arie
Line 24: Line 24:
       * Subscription to Objects: specifies ObjectID→method to call on each new Object of kind "X" and possibly other conditions (like geo "Y", gender "G" or age range MIN/MAX) - used by [[:f1x:archtecture:attraction-proximity|Attraction/Proximity]]       * Subscription to Objects: specifies ObjectID→method to call on each new Object of kind "X" and possibly other conditions (like geo "Y", gender "G" or age range MIN/MAX) - used by [[:f1x:archtecture:attraction-proximity|Attraction/Proximity]]
   * Router - Caching/Routing/Matching Server (CRMS) - intermediate server, usually sits on internal network or at ISP   * Router - Caching/Routing/Matching Server (CRMS) - intermediate server, usually sits on internal network or at ISP
-      * Router - keep track of objects its children sites are subscribed to, forward objects to sites. Allows Sites to register as children based on IP.+      * Router - keep track of objects its children realms are subscribed to, forwards objects. Allows Realms to register as children based on IP.
       * Cacher - cache frequently accessed objects       * Cacher - cache frequently accessed objects
       * Matcher - [[:f1x:archtecture:attraction-proximity|Attraction/Proximity]] role       * Matcher - [[:f1x:archtecture:attraction-proximity|Attraction/Proximity]] role
 +  * Geo - Plus Code of [[https://en.wikipedia.org/wiki/Open_Location_Code|Open Location Code]] standard
  
  
Line 53: Line 54:
 ==== Published Shards ==== ==== Published Shards ====
  
-Normal shards are accessible to Realm owner only. The owner might choose to publish methods of some objects using special "Reflector" objects. These also might be encrypted with public key of intended recipients, thus limiting who can see the content.+Normal shards are accessible to Realm owner only. The owner might choose to publish methods of some objects using special "Reflector" objects. These also might be encrypted with public key of intended recipients, thus limiting who can see the content. \\  \\ Other option is publish whole Object, if it has "get_ahk" method, then it is published to DHT.
  
-===== pCache server =====+===== Router =====
  
-Every Site is connected to a pCache server. It might be discovered by asking centralized "pCache servers registry". It is publicly accessible and should be at location with good connectivity. The pCache servers perform functions below:+Every Site is connected to one Router server. It discovesrs Routers by asking centralized "Router servers registry". It is publicly accessible and should be at PoP with good connectivity. The Router servers perform functions below:
  
-  * retrieve list of subscriptions from sites under its control, send back matching Memos +  * retrieve list of subscriptions from realms under its control, send back matching Objects 
-  * retrieve "exported" data from sites and share it to sites that request it. Cache the data. +  * retrieve "exported" data from realms and share it to sites that request it. Cache the data. 
-  * receive notifications from children sites about data change, forward them to upstream pServers or other sites+  * receive notifications from children sites about new Shards, forward the Shards to other Routers, while prioritizing traffic
  
 ==== Publish/Subscribe ==== ==== Publish/Subscribe ====
  
-Frequently object want to know when something changes in other specific objects. To maintain encapsulation principle, this is done by "listener" methods. When other objects indicate desire to get notifications of a "listener" method, result of the method is remembered, together with list of "subscribed" object/methods. When Object wants to "notify" subscribers on a change, it invokes listener method that returns different value, thus causing methods of subscriber objects to be called.+Frequently object want to know when something changes in other objects. To maintain encapsulation principle, this is done by "listener" methods. When other objects indicate desire to get notifications of a "listener" method, result of the method is remembered, together with list of "subscribed" object/methods. When Object wants to "notify" subscribers on a change, it invokes listener method that returns different value, thus causing methods of subscriber objects to be called.
  
 The subscribers might then recalculate a value, compare with threshold and raise nofification to user or alter return value of their own listeners, thus "publishing" a change. The subscribers might then recalculate a value, compare with threshold and raise nofification to user or alter return value of their own listeners, thus "publishing" a change.
Line 82: Line 83:
  
   * what is default measurement system of the owner? Imperial or standard   * what is default measurement system of the owner? Imperial or standard
-  * get list of neighbours who know me: +  * WHA? get list of neighbours who know me: 
-      * find Memos of kind People and have homeAt geo and have Memo of kind Subscription where (site=me and kind Memo=Message) +      * WHA? find Objects of kind People and have homeAt geo and have Memo of kind Subscription where (site=me and kind Memo=Message) 
-      * remove ones that have distance between me and homeAt more than 100 m+      * WHA? remove ones that have distance between me and homeAt more than 100 m
  
 Stored queries (subscriptions) also use jq to find matching Memos: TBD How? Stored queries (subscriptions) also use jq to find matching Memos: TBD How?
f1x/architecture.1740029173.txt.gz · Last modified: 2025/02/20 05:26 by arie

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki