dotgnu-general
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[DotGNU]A Virtual DataServer


From: Bill Lance
Subject: [DotGNU]A Virtual DataServer
Date: Sat, 5 Jan 2002 11:18:30 -0800 (PST)

Here's a rough first pass of the overall idea.  Of
course, lots of holes and questions, but test the
direction.

++++++++++++++++++++++++++++++++++++++++++++++++++++
A Virtual DataServer.

The system aims for the following goals.

* To allow a user complete control over the content
and   access to personal data as webservices
* To maximize reliable availability of webservices
* To maximize the security and privacy of data
* To provide choice of participation and service     .
   selection


The system consists of three components.
* virtual RPC/Data server engine         
* distributed dataset repository  
* user dataset


Virtual RPC/Data  Server

The Virtual RPC/Data Server (VRS) might be described
as a loosely coupled, dynamically distributed fallover
server cluster.  The Servers, as a whole, is made up
of loosely coupled Local Server Deamons running on
participating computers.  The local deamons are linked
and identify eachother in a manner similar to the
Gnutilla design.  Each local Server Deamon (LSD)
responds to WebService component requests using
appropriate internet protocols.  The LSD responds to a
specific request by the following steps:

1.  Identifying a dataset object that will satisfy the
     request.
2.  If the dataset belongs to the local machine, the  
     object is retrieved and exectued, returning some 
      value.
3.  If the dataset belongs to another cluster member, 
     and that member is online, the request is        
      forwarded.
4.  If the member is offline, the object is retrieved 
     from the dataset Repository and executed,
returning    some value.

Each working cluster is a dynamically distributed,
subscription based grouping.  Each user workstation
subscribes to a particular cluster.  A common
membership list is maintained in the Dataset
Repository.  That membership persists untill the user
unsubscribes, weither the workstation is online or
not.  Each member registers the webservice datasets
they wish to expose to the internet in the Repository.
  When a members workstation comes online, the LDS is
started and it joins the VRS.  

The LDS execution component  is a machine specific
implementation of a cross-platform, cross-language
Virtual Machine.  It is strongly isolated from the
hosts computers system and files.  It should have no
communication at all with the  host system beyond port
access, cach management, and retreiving a local
dataset.  The VM fulfills a webservice request by
executing the methods bytecode in a dataset


Distributed Dataset Repository

The Distributed Dataset Repository is a database
containing the Cluster membership subscription list, a
registry of webservices exposed by members, and a cach
copy of all members active webservice datasets.   It
is an encrypted, redundent and distributed data system
modeled on the FreeNet system.  It is distributed to
and supported by the same cluster group of online
machines as the VRS.   The portion of the Repository
residing on any one machine is both encrypted and
incomplete to protect to security and privacy of the
user data.  Only the LDS can write or read data from
the Repository.  And the actual data content can only
be accessed using the Dataset method Bytecode.

The Repository is updated each time a member
subscribes or unsubscribes to the group.  The
Webservice registry is updated by direct action of the
member owning those Services.  And cach copy datasets
are updated eachtime a member subscriber LDS comes on
line.


User Dataset 

 The Dataset is an object package consisting of
content data and associated method bytecode.  Each
dataset implements the Webservice that the user member
wishes to expose.  It can be as simple a
userid/password for a favored site and an read method
that restricts it to sending only to the site URL. Or,
it may be a complex business data proceedure.  

The dataset methods are precompiled bytecode sutable
for the VM in the LDS.  Ideally, the VM would be able
to run Java and C# bytecode, as well as a set compiled
from other frontend languages.  Once compiled and
packaged, the dataset is both platform and language
nutral. 

The methods in a Dataset allow the user, or data
owner, to determine the rules and conditions attached
to their data.  Access and accounting can be controled
at the point of data transmission into the internet. 
The methods also allow for other webservices request
to be executed as part of any one proceedure, allowing
complex processes and logic to be described.

Use of methods also allows an additional layer of data
encryption within the package itself.  The internal
content data block can be encrypted in raw storage
form and decrypted by the read method.

Each user manages their own datasets.  The master copy
resides on the workstation subscribed to the VRS
group.  If that workstation remains online
perminately, the master copy is used for all webservie
requests.  A cach copy is maitained in the Repository.
 When the workstation is offline, or has failed, the
VRS responds with the cach copy.   The two copies are
synched when the workstation returns on line.


Some Future Observations

Assuming this system can be built and will operate as
envisioned, some theoretical observations can be made.

* The owner of the data always remains in complete
control of that data and access to it. It's on their
machine.  They can change it or delete it at any time.
 They determine who can and can not see it.

* The Webservices remains available to the internet
when the home machine is off line.  This is most
useful to users with dialup ISP service.  It also
serves as a functional fallover backup server in case
of workstation failure for a professional office or
small business.  (It is NOT intended or able to
substitute for a high volume load sharing cluster.)

* The cluster membership is extreamly flexible.  

* It might be made up of seperate workstations in a
single organization, supporting internal business and
DP processes.  Each workstation specializing  in some
functions with access to data subsets.  But when a
machine fails, the system as a whole continues.

* A cluster could form from voluntary, adhoc groups
such as a church, a usersgroup, or a neiborhood
association.

* A user can freely unscubscribe from one group
cluster and join another one.

* The system is completely plateform and language
nutral..  

* Data security and privacy is strongly protected.




__________________________________________________
Do You Yahoo!?
Send FREE video emails in Yahoo! Mail!
http://promo.yahoo.com/videomail/


reply via email to

[Prev in Thread] Current Thread [Next in Thread]