[decade] -req and -arch documents

"Y. Richard Yang" <yry@cs.yale.edu> Sat, 30 June 2012 10:40 UTC

Return-Path: <yry@cs.yale.edu>
X-Original-To: decade@ietfa.amsl.com
Delivered-To: decade@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 1671F21F85A0 for <decade@ietfa.amsl.com>; Sat, 30 Jun 2012 03:40:57 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level:
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id A9YBo5I22dPV for <decade@ietfa.amsl.com>; Sat, 30 Jun 2012 03:40:56 -0700 (PDT)
Received: from vm-emlprdomr-03.its.yale.edu (vm-emlprdomr-03.its.yale.edu [130.132.50.144]) by ietfa.amsl.com (Postfix) with ESMTP id 1D89521F8599 for <DECADE@ietf.org>; Sat, 30 Jun 2012 03:40:52 -0700 (PDT)
Received: from [192.168.1.108] ([221.221.17.127]) (authenticated bits=0) by vm-emlprdomr-03.its.yale.edu (8.14.4/8.14.4) with ESMTP id q5UAeSOG009725 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Sat, 30 Jun 2012 06:40:48 -0400
Message-ID: <4FEED79A.1090906@cs.yale.edu>
Date: Sat, 30 Jun 2012 18:40:26 +0800
From: "Y. Richard Yang" <yry@cs.yale.edu>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:13.0) Gecko/20120614 Thunderbird/13.0.1
MIME-Version: 1.0
To: "DECADE@ietf.org" <DECADE@ietf.org>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
X-Scanned-By: MIMEDefang 2.71 on 130.132.50.144
Subject: [decade] -req and -arch documents
X-BeenThere: decade@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "To start the discussion on DECoupled Application Data Enroute, to discuss the in-network data storage for p2p applications and its access protocol" <decade.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/decade>, <mailto:decade-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/decade>
List-Post: <mailto:decade@ietf.org>
List-Help: <mailto:decade-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/decade>, <mailto:decade-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 30 Jun 2012 10:40:57 -0000

Dear DECADE participants,

Both -req and -arch documents have received extensive, excellent 
reviews. In the process of revising the documents and looking at the two 
documents, we have some questions to seek input from the participants:

Q1. Both -req and -arch define some terms, including DECADE-compatible 
client, DECADE-compatible server, etc. This appears to be redundant. 
Should such terms be defined in -req or -arch? The current thinking is 
-req. Any comments?

Q2. There are multiple paragraphs defining requirements in -arch, e.g., 
Sec. 4.4 on naming. Should these be moved to -req? A more general 
question is on the dependency between -req and -arch. On one hand, it is 
ideal to define -req first without a particular architecture to allow 
competing/alternative architectures satisfying the requirements. On the 
other hand, it appears that the -arch document contains content, in 
particular, systems/function components, that can be helpful to better 
understand the -req document. The current thinking is still to make -req 
independent of -arch, and move some general requirements in -arch to 
-req. Any comments?

Q3: There are some good comments on reorganizing the -req documents. 
Below is a new structure (second level section #'s and page numbers are 
from the current -req so that others can see how we re-organize the 
document). Any comments/feedback before we start the revision will be 
greatly appreciated.

Also, anyone who can help with direct revisions of the -req document 
will be more than welcome!

Thanks.

-- 
Richard

1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  5
2.  Terminology and Concepts . . . . . . . . . . . . . . . . . . .  6
3.  System/Functional Components
4.  Requirements Structure . . . . . . . . . . . . . . . . . . . .  7

5.  Data Object Requirements
     4.5.1.  Data Naming . . . . . . . . . . . . . . . . . . . . . .14
             Move part of Arch 4.4 to -req
     5.1.  --Immutable Data . . . . . . . . . . . . . . . . . . . . 18
     4.4.2.  System Data Object Attributes . . . . . . . . . . . . .13
         4.2.1.  Data Object Size . . . . . . . . . . . . . . . . . 11
         4.4.3.  Time-to-live for Written Data Objects  . . . . . . 13
     4.4.4.  Application-defined Properties and Metadata  . . . . . 13

6.  Access to Server Requirements
     4.3.1.  Read/Write Own Storage  . . . . . . . . . . . . . . .. 11
     4.3.2.  Read/Write by Remote Clients . . . . . . . . . . . . . 11
     4.4.5.  Offline Access  . . . . . . . . . . . . . . . .  . . . 14
     4.1.1.1.  NATs and Firewalls TRaversal . . .. . .  . . . . . .  8
       Connections to Clients . . . . . . . . . . . . . . . . . . .  8
       6.1.1.  Support for Clients Behind NATs and Firewalls  . . . 21
     4.3.3.  Negotiable Data Transport Protocol . . . . . . . . . . 12
     5.2.  Explicit Deletion of Data  . . . . . . . . . . . . . . . 19
     5.3.  Concurrent Write (Multiple writing). . . . . . . . . . . 19
     5.4.  Concurrent Read (Multiple reading) . . . . . . . . . . . 19
     5.5.  Read While Write . . . . . . . .   . . . . . . . . . . . 19
     5.6.  Partial Write (Writing model) . . . . . . . . . . . . . 20
     4.1.2.1.  Secure Transport . . . . . . . . . . . . . . . . . .  8

7.  Resource Control Requirements. . . . . . . . . . . . . . . . . 15
     4.6.1.  Multiple Applications  . . . . . . . . . . . . . . . . 15
     4.6.2.  Per-Remote-Client, Per-Data Control  . . . . . . . . . 15
     4.6.3.  Resource Control Set . . . . . . . . . . . . . . . . . 16
     4.6.4.  Server Involvement . . . . . . . . . . . . . . . . . . 16

8.  Authorization Requirements
     4.7.1.  Per-Remote-Client, Per-Data Read Access  . . . . . . . 16
     4.7.2.  Per-User Write Access  . . . . . . . . . . . . . . . . 17
     4.7.3.  Default Access Permissions . . . . . . . . . . . . . . 17
     4.7.4.  Authorization Checks . . . . . . . . . . . . . . . . . 17
     4.7.5.  Cryptographic Credentials  . . . . . . . . . . . . . . 17
     4.7.6.  Server Involvement . . . . . . . . . . . . . . . . . . 18
     4.7.7.  Protocol Reuse . . . . . . . . . . . . . . . . . . . . 18

9.  Error and Failure Handling Requirements. . . . . . . . . . . .  9
     4.1.3.2.  Insufficient Resources . . . . . . . . . . . . . . .  9
         4.1.3.1.  Overload Condition . . . . . . . . . . . . . . .  9
     4.1.3.3.  Unavailable and Deleted Data . . . . . . . . . . . . 10
     4.1.3.4.  Insufficient Permissions . . . . . . . . . . . . . . 10
     4.1.3.5.  Redirection  . . . . . . . . . . . . . . . . . . . . 10
     4.1.2.2.  Gaming Prevention  . . . . . . . . . . . . . . . . . .8
     4.4.1.  Server reliability (Agnostic of reliability) . . . . . 12

10. Server Status Query Requirements . . . . . . . . . . . . . . . 18
     5.7.  Storage Status . . . . . . . . . . . . . . . . . . . . . 20
     ....

11. Security Considerations  . . . . . . . . . . . . . . . . . . . 21
     7.1.  Authentication and Authorization . . . . . . . . . . . . 21
     7.2.  Encrypted Data . . . . . . . . . . . . . . . . . . . . . 22
     7.3.  Protection against Gaming  . . . . . . . . . . . . . . . 22