|
@@ -0,0 +1,63 @@
|
|
|
+### Outline of paper
|
|
|
+
|
|
|
+*Overview
|
|
|
+ Cover major features of the system and describe how it uses
|
|
|
+ and improves traditional web technologies.
|
|
|
+
|
|
|
+*Data Definition
|
|
|
+ Define the format of:
|
|
|
+ -Keys
|
|
|
+ -Blocks
|
|
|
+ -Directories
|
|
|
+ -Files
|
|
|
+ -Paths
|
|
|
+ -Messages
|
|
|
+ -Fragments
|
|
|
+ -Programs
|
|
|
+
|
|
|
+*Node Definition
|
|
|
+ Describe the roles and responsibilities of nodes:
|
|
|
+ -API provided to programs
|
|
|
+ -Persitence of data locally and over the network.
|
|
|
+ -Forwarding BlockTree messages and HTTP requests to authorized Programs.
|
|
|
+ -Handling BlockTree messages from the network that are for the node
|
|
|
+ itself.
|
|
|
+ -Secure management of cryptographic keys using a TPM.
|
|
|
+ -Forwarding traffic to other nodes.
|
|
|
+ -Resolving node IDs to IP addresses.
|
|
|
+
|
|
|
+*Network Definition
|
|
|
+ -Overlay network definition.
|
|
|
+ -Mechanism to resolve node IDs to IP addresses.
|
|
|
+ -Node hierarchy and leader election among peers.
|
|
|
+ -Distributed Block locking for exclusive writes.
|
|
|
+ -Opportunistic concurrency by default, with the rule
|
|
|
+ that the last write known to the leader is
|
|
|
+ the winner.
|
|
|
+
|
|
|
+*Program API
|
|
|
+ -Provide file creation API. Blocks can be created which are
|
|
|
+ good for reading sequencially or good for reading randomly.
|
|
|
+ -Provide binary file IO. The caller provides a plan-text
|
|
|
+ Path and can open a block for reading, writing, or both.
|
|
|
+ The API should stream based.
|
|
|
+ -Provide stream wrappers for doing text IO.
|
|
|
+ -Provide API for registering callbacks to be notified when blocks
|
|
|
+ are modified.
|
|
|
+ -Method to lock a block for exclusive write access.
|
|
|
+ -API to register callbacks to handle BlockTree and HTTP requests.
|
|
|
+ -A method to send Messages to other nodes and HTTP requests to
|
|
|
+ other hosts.
|
|
|
+
|
|
|
+*Applications
|
|
|
+ -A distributed document database:
|
|
|
+ Find or create a library for reading and writing BSON files and use
|
|
|
+ it for storing data.
|
|
|
+ -A web development framework which allows one to register middleware
|
|
|
+ to handle HTTP requests. Provides Request and Response abstractions
|
|
|
+ to middleware.
|
|
|
+ -If time allows create an MVC middleware implementation.
|
|
|
+ -A middleware implementation for serving static content.
|
|
|
+ -A video streaming server.
|
|
|
+ -An application for managing contacts.
|
|
|
+ -A secure messaging and chat application.
|