[ogpx] The Role of Policy and Processing Expectations in Protocol Development
Infinity Linden <infinity@lindenlab.com> Sat, 22 August 2009 20:00 UTC
Return-Path: <infinity@lindenlab.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix)
with ESMTP id 1018C3A6A1C for <ogpx@core3.amsl.com>;
Sat, 22 Aug 2009 13:00:03 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.956
X-Spam-Level:
X-Spam-Status: No, score=-0.956 tagged_above=-999 required=5 tests=[AWL=-0.838,
BAYES_20=-0.74, FM_FORGED_GMAIL=0.622]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com
[127.0.0.1]) (amavisd-new, port 10024) with ESMTP id n49a7-tbXX0J for
<ogpx@core3.amsl.com>; Sat, 22 Aug 2009 13:00:01 -0700 (PDT)
Received: from mail-pz0-f174.google.com (mail-pz0-f174.google.com
[209.85.222.174]) by core3.amsl.com (Postfix) with ESMTP id BF2573A698A for
<ogpx@ietf.org>; Sat, 22 Aug 2009 13:00:01 -0700 (PDT)
Received: by pzk4 with SMTP id 4so357491pzk.29 for <ogpx@ietf.org>;
Sat, 22 Aug 2009 13:00:03 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.143.26.31 with SMTP id d31mr243773wfj.269.1250971203519;
Sat, 22 Aug 2009 13:00:03 -0700 (PDT)
Date: Sat, 22 Aug 2009 13:00:03 -0700
Message-ID: <3a880e2c0908221300v2208737fya9aebab75790865b@mail.gmail.com>
From: Infinity Linden <infinity@lindenlab.com>
To: ogpx@ietf.org
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Subject: [ogpx] The Role of Policy and Processing Expectations in Protocol
Development
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>,
<mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>,
<mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 22 Aug 2009 20:00:03 -0000
So I too recently wrote a long, rambling narrative in response to Carlo's recent message where I tried to concisely explain how we got to where we are in the definition of terms like "virtual world" and "region domain." But it was pretty long and rambling and took a long time to come to the point. I figured I would just come right out and get to the point. We want to separate mechanism from policy in OGP. A bunch of us have been saying it a lot, but I figured it might be a good idea to clearly explain what I think that means. When I say "mechanism," I mean things like protocol message formats and processing expectations; things like, "if you want to login to such and such a virtual world, you send this message with these fields to some server out on the network. if the server wants to let you on, it will send you this message. if it doesn't, it will send you that message." Here's an auth protocol exchange example from HTTP: client: hey! server! gimme the resource at http://example.org/make/me/a/sandwich.xml server: no can do, client. that resource is protected. fear my 401! client: what if i give you my super secret password that i swear i didn't sniff from another session!? server: okay. in that case, sure... 200! Policy, on the other hand, describes the decision making process protocol participants go through to decide which response to give you. Returning to the example above, when the server gets an auth request, it might have the policy of "I will only let people in who give me a valid avatar or account name and password." Yes! that's policy. It's a valid idea to let people into a virtual world without a username and password; web sites do it all the time. For many applications of virtual worlds, it's a very bad idea, but it's the height of conceit for me, as a protocol developer, to claim to know the mind of every virtual world deployer throughout the world. But, experience tells me that very bad things can happen in some communities when you add anonymity and an audience. But hey, that's _your_ call. It could be that your virtual world is only accessible by two people in the office, so you always have a good idea who the other "anonymous" participant is. Or maybe you work for an old skool company where people would never think to be jerks to their fellow employees in their "behind the firewall" virtual world. The point is... this decision is up to you, the deployer. Other examples of policy (again on auth) might include things like: * i don't trust MD5, so i'll only accept logins that use SHA1 in some way, or * i'll only let you online if i think you've agreed to my "terms of service" document, or * i think i don't want anyone to login between 10PM and 7:30AM because i'm a BOFH and i need my rest. There's another term you hear from time to time: "processing expectations." This is a term I heard first in the SGML / document processing community. I've seen people attempt to give a formal definition of this term. My informal definition is... "I know I can't force you to do this, but everyone sort of expects this is what you're going to do with the data i give you and it would be really nice if you would play along, but if you really, really, really need to do something else with the data, that's cool. KTHXBAI." An example of a processing expectation might be: "when the server receives a message with a SHA1 hashed password, it will compare the hashed password provided with the hashed password stored in the database." As a client there's absolutely no way I can force the server to actually do this, but assuming servers do want to maintain the confidentiality of their users' data, they probably will. Processing Expectations and Policies are protocol developers' ways of saying, "krikey! i have no idea what the deployer will want to do here." or "if the other side wanted to be evil, they could be. look here! we're trusting them to 'do the right thing.'" So why do we care? In the virtual world, one of the things we're really big on is consistency of presentation. It's considered "a good idea" for you to see largely the same thing the avatar next to you is seeing. Otherwise, the utility of the virtual world is diminished. Some virtual worlds allow user developed content and allow the content creator to place copy restrictions on that content. (we're not naming names here, *cough*Second Life*cough*) Operators of these virtual worlds have a strong belief it is in their best interest to maintain those copy restrictions. So... they have a POLICY that says, "when the client sends me the message to copy a digital asset and put it in their virtual pocket, i'm going to check if the creator of that asset says that's okay." The protocol message from the client says "give me a copy, please" and the server has to decide whether this is a good idea. If the server thinks it's a good idea, it will do it. If not, it won't. Other virtual worlds may be pre-stocked with assets and may not allow users to create new ones. (i'm thinking this is what sametime 3d does, but i may be wrong.) Still other virtual worlds may be bastions of free culture coolness and mark everything with a creative commons license that allows copying, but leaves it up to the participants to ensure they're not violating the terms of the license. I think we have general agreement that people who deploy OGP based virtual worlds should be free to implement whatever policy they want to implement. The problem comes when we start talking about allowing avatars to move between region domains in the same virtual world that MAY have different policies. Linden Lab, the makers of Second Life, would want some seriously strong assurances from other region domains that they promise to honor the permissions metadata attached to a digital asset. Our hypothetical free culture region domain operators might want assurances that other region domains will not let assets with a no commercial use CC license be used to create things that are sold. How will we ever resolve this problem? One way people have tried to resolve it in the past is by sitting down and writing up legal agreements. That's because it's a POLICY issue. It's very, very hard for a server to guarantee by technical means that a client is using content only in a way the content's rights-holder allows. So we punt, and just say something like.. "if you sign a contract and let me sue you if you don't honor my policies, i'll let you interact with my systems." As protocol developers all we have to do now is figure a way to tag content and interfaces with sufficient meta-data that systems in peer domains have a good chance of making an informed decision when the client asks to do something that might violate the license. Or, you might just deny access to service interfaces to people you don't think you can trust. But again, it's a POLICY decision. As protocol developers, our responsibility is to specify meta-data sufficient for making informed decisions and for defining processes for identifying trusted peers in the networks. And.. I'm not making an exhaustive list of "policy issues," merely asserting that there are a reasonably small number of them, and that we can identify them using a consensus process. By defining these decisions as "policy issues," it allows us to develop protocol mechanisms that are appropriate for all supported use cases. Thus we can all collaborate on producing a specification that works for all of us, but allows each of us to address our specific needs. I know Prokofy Neva has made statements disagreeing with this approach in the past, and that she would prefer a virtual worlds protocol that mandates all virtual worlds adopt second life's C/M/T permissions model. I believe her justification is that it's too easy for a misunderstanding or misconfiguration to lead to content leakage. My counter argument to this is that by developing the protocol in public, we get more eyeballs looking at the problem domain and we get more edge cases considered. Because there's a higher probability that problematic edge cases will be identified earlier, we'll get a more robust protocol. Is there anyone on the list that takes serious issue with anything i've said here? -cheers -meadhbh
- [ogpx] The Role of Policy and Processing Expectat… Infinity Linden
- Re: [ogpx] The Role of Policy and Processing Expe… Morgaine
- Re: [ogpx] The Role of Policy and Processing Expe… dyerbrookme@juno.com
- Re: [ogpx] The Role of Policy and Processing Expe… Infinity Linden
- Re: [ogpx] The Role of Policy and Processing Expe… Infinity Linden
- Re: [ogpx] The Role of Policy and Processing Expe… Carlo Wood
- Re: [ogpx] The Role of Policy and Processing Expe… Carlo Wood
- Re: [ogpx] The Role of Policy and Processing Expe… dyerbrookme@juno.com
- Re: [ogpx] The Role of Policy and Processing Expe… dyerbrookme@juno.com
- Re: [ogpx] The Role of Policy and Processing Expe… Morgaine