Skip to content

Commit 126accf

Browse files
RIW2021_RFC_OS-level OppNet Component (#29)
* Create RIW2021_RFC_OS-level OppNet Component.md * Aligning terminology Retrieval Miner -> Provider * Apply suggestions from code review Co-authored-by: David Dias <[email protected]>
1 parent 18b7a74 commit 126accf

File tree

1 file changed

+69
-0
lines changed

1 file changed

+69
-0
lines changed
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
# RIW2021 | RFC: OS-level OppNet Component
2+
3+
_Status:_ draft
4+
5+
_Area of Improvement:_ Opportunistic Deployments
6+
7+
_Estimated Effort Needed:_ <?>
8+
9+
_Prerequisite(s):_ <?>
10+
11+
_Priority:_ <? P0, P1, P2>
12+
13+
### Abstract
14+
15+
Provide a uniform opportunistic networking interface for applications to register and use, in a way that preserves resources and guarantees benefits flow back to the user. The component would be responsible for optimising the resources allocated to connect with nearby devices in a horizontal manner across different applications.
16+
17+
### Construction
18+
19+
- OS-level provider (think COVID contact tracing service provided by Android and iOS)
20+
- Avoid having multiple always-on opportunistic clients, one for each application (fragmentation & waste of resources)
21+
- Guarantees benefit flows to the user vs. the application developer
22+
- Sidesteps restrictions on background applications
23+
- Applications register with OS provider
24+
- It should be as invisible as possible, requiring little intervention/configuration by user
25+
- But the OS could proactively prompt users for help distributing specific content given need and revenue opportunity
26+
- Use local information (e.g. calendar events with location) to decide which information to fetch and store
27+
- Look at upcoming locations and declared interests in said locations
28+
- Leaks minimal data; does not require sharing of contact or location data by opportunistic Provider nodes
29+
30+
**Open Questions**
31+
- How do you predict what data will be desirable?
32+
- How do you cross the border with this information?
33+
- Data is not encrypted to destination (that would limit efficiency). You could encrypt in-transit or time lock but is that sensible/sufficient?
34+
- How do you communicate said interests in a privacy-preserving way?
35+
- How do you accommodate network needs while avoiding tracking?
36+
37+
- Would the data be stale by the time it gets there?
38+
- If based on your calendar, this can easily be prevented by having timed interests
39+
- Could machine learning help?
40+
- Does the OS have the concept of CID? Why do it at OS level?
41+
- Android or iOS modules, not POSIX API
42+
- Intended to circumvent OS restrictions on BG activity and guarantee user benefit
43+
- Getting this into a mobile OS seems pretty hard, given complexity and resource requirements. Would require a critical mass so that they can’t ignore it, i.e. bootstrapping problem
44+
45+
### Impact
46+
47+
The proposed component would provide benefit to the performance of any opportunistic networking application and therefore, its impact would be significant. However, it is not an add-on software component, or application and would therefore need to be adopted (or perhaps even developed) by the OS vendor(s).
48+
49+
### Pros and Cons
50+
51+
Pros:
52+
- The construction would provide performance benefits at the device level.
53+
- The construction would be useful to many applications and could work simultaneously to serve all of them
54+
Cons:
55+
- It’s not an add-on software component and would therefore have to be integrated within the multiple OSes, i.e., OS vendors would have to accept it
56+
- Not something that PL could implement, or make as a product
57+
58+
### Implementation notes
59+
60+
TBA
61+
62+
### Evaluation
63+
64+
Compare performance benefit of one OS-level component that serves horizontally several applications, against several applications with their own component.
65+
66+
### Prior work
67+
68+
TBA
69+

0 commit comments

Comments
 (0)