Service Oriented Network

From Adam Colton
Revision as of 17:16, 19 August 2013 by Adamcolton (talk | contribs)
Jump to navigation Jump to search

First of all, this needs a better name.

Components

  • Users
  • Local Identity Server
  • Remote Identity Server
  • Data and Application Servers
  • Repositories
  • Reputation
  • Arbitration

Users

The end users of the system.

Local Identity Server

This is a small server that sits on the local machine and manages the master keyring.

Remote Identity Server

This is a server that manages valet keyrings for many users. The RIS is the concierge - its single objective is to make interacting with the network easier on users. The RIS is responsible for billing and 'always on' services.

Data and Application Servers

DA servers do the heavy lifting. They store user data and run applications.

Repositories

Repos store code. Developers put their code in a public repo and a DA server can launch it as a service. The DA is responsible for paying the developer.

Reputation

Every component of the system can review every other part of the system. If servers (ID or DA) are engaging in shady behavior, it will effect their reputation. Possibly most important, repositories can be reviewed and endorsed. These reviews can be paid, but payment must be disclosed. The idea is a sort of agency - some individuals can build a reputation reviewing repos, even users who don't understand code can learn to trust these reviews or at least the aggregate of the reviews. Hopefully, the best of these agents will be paid by the ID&DA servers so there is no conflict of interest, though I would also like to see developers pay into a pool.

Arbitration

The protect copyright and enforce payment, arbitration can be called in. This process is meant to be very open. Arbitration can be administered by many people (a jury). Particularly for copyright, it is meant to represent the aggregate position of the network rather than any hard and fast rules. The line between fair use, imitation, parody and infraction is hard to separate, so rather than trying to do so with rigor, we do so by the majority of opinion.

Convention

  • Encrypt user data
  • Separation of Service and Ads
  • A la carte
  • Reasonable Copyright Expiration

=== Encrypt user data Unless their is a compelling reason not to, data should be encrypted. Even 'shared' data should be encrypted - if I post a picture and one of my friends wants to see and has the authorization to do so, the image should decrypted by my RIS, and re-encrypted with my friends public key. This is just an example - there are other methods that would work, for instance I could encrypt the image with symmetric encryption and provide the friend with the decryption key rather than re-encrypting for their account. There are many options, and I hope that very smart people will figure out which ones work best.

Separation of Service and Ads

When providing a service to users, it should not be coupled with advertisements. Also see a la carte.

A la carte

Services should be billed on a usage basis. Subscriptions discourage users from signing up. This not to say subscriptions should not be offered, but tiered usage should be discouraged (ie. a free tier and a subscription tier). A service should have 100% functionality at the a la carte level. I would call out the AWS model as a standard - allowing users to pay an upfront fee for a period of reduced cost.

Reasonable Copyright Expiration

Repos and data can be tagged with meta-data, among the things that can be added is a copyright notice. Copyrights should be respected (and with arbitration this should be enforced) but the corollary is that they should be reasonable, a few years to a decade.

Structures

This are structures I hope or suggest. I'm sure others will arise and that some of these will prove infeasible or inferior to others I have not considered. These are simply meant as a starting point.

Agency Pools

Pools of agents, formed into an organization to review services and repos. The funding for these pools should be public and diverse to avoid conflicts of interest.

Developer Investments

Individuals or groups can invest in developer projects and get a cut of any profits they may make.