Askemos 2000 (Archive)
home · features · download · archive
README

CoverPage2002

Askemos or what is freenet good for?

The Global Computer is not an object but a feature.

[Ben Howell Davis]

- an attempt to summarize the notes ahead, which shall become a documentation -

Conceptually the Askemos server is an autonomous, distributed operating system (or agent execution environment) on top of peer to peer networks which significantly raises the level of abstraction in comparison with today's operating systems.

Askemos has some outstanding features: a virtual machine at document level, an access control system modelled after general key systems without a super user to hack, has persistant processes and it works fully ansynchronous implicitly parallel computing as much as possible.

As distributed storage media like freenet mature, we ask what utility could be derived from them. First in mind are cultural values like freedom of information and censorship resistance but these motivation reach only a part of the prospective audience.

Distributed storage media viewed as simply storage we find two pleasant but not strictly required properties: network transparency and anonymity. This means that a) data can be handled regardless of it's "whereabouts" and b) illicit observation is impossible.

Are there any reasons not to store all data principally in such media? What has to be done to make this practical?

Let's assume for now that these question can be solved and ask further, what the utility was. The omnipresence of all files from all computers connected to the net at all other computers seems not straight desirable, not even if they are allways encrypted. But we can imagine that terminal equiments (e. g., personal computers, mobile phones etc.) can receive their own "desktop" (and only that one) after authorization.

That's already a progress, though not a new quality. But what is the own desktop? Files and program state. If those where continuously written into distributed storage (in adequate short intervals, e.g., for desktop applications after each mouse click) than all terminal equipment could be switched to all applications in the state as it was when used last time. In case of a broken device (blue screen) use continues at exactly the point where the device broke. Data integrity strives towards 100%.

Now as all the data is already in the common storage, new applications are possible not only at the terminal equipment but also at the "server side". Those applications range from groupware calendar and will make email a communication media of historical interest because those applications can use the data the same way user equipment can.

All data everywhere - always; restricted only by the keys of the owners.

Sure one wants to treat applications at such kind of servers with a healthy distrust. After all we imagine cheap off the shelf installations or devices, not expensivly certified exclusive installations. Following the principle of distributed storage, we can also redundantly distribute the program execution among several machines. Their program state was already distributed anyway.

With at least three machines voting on each and every change, defective devices can't cause malfunction until their percentage becomes quite high.

That way the network as a whole will function for the users as if it was a huge single computer, at each terminal. You save endless hours of installation and backup. Simply switch on the new machine, install a key, give the password, done. a new freedom.

Now a new kind of "provider networks" can offer capacity from networks of servers, which are mutual certified to run trustworthy. Those networks would run customer applications. Becoming a provider will be just as easy: install the software, generate a key, done.

What does Askemos do for it?

Askemos implements a virtual execution environment as described above.

The current implementation is an application server as much as emacs is a text editor. Like emacs it is a) a LISP programming environment (actually not LISP but DSSSL, a pure functional subset of Scheme, which is a LISP dialect and it's successor XSLT) b) acts like an operating system c) integrates with everything and d) is available under a free license. An alternative understanding is that of a XML object database with stored procedures in XSLT.

Mandatory is a simple rights and capability system, which works without central authority and still can deliver complicted real world situations.

Terminal equipment is currently connected via HTTP and SMTP. More protocols will come.

All data and program state is kept in XML structures (suitable for storing in documents "everywhere"). Those are kept in either an native XML object store (high performace) and/or in ordinary files.

Voted execution (byzantine protocols) works but is not yet well documented.

Askemos provides a scripting environment, which is always kept persistent. Additionally all application code (and most kernel code) ist purely functionally programmed. That's of mediate utility: functional programing works somehow like mathematic and is currently prerequisite for formal verification correctness of program code.

At Mar 2002 the Askemos implementation on a Pentium ii 300 Mhz laptop with 196 Mbyte ram did 625 data changes (data base commits) writing both 1105546 bytes into plain xml files (using usual rename tricks to make changes atomic) and 585728 byte native repository in 82 seconds. (All requests via http, one internal forwarding via xslt - hence somehow two requests in one.) This gives a rate of 7.6 requests per second. With voted computation the rate drops to aproximately 2 commits per sec.





border
last modification: Wed, 11 Dec 2002 16:21:58 +0100
authors: Adc5dd0c30f6e63932811ed60e019bb2d,
document identifier: A849640f672ed0df0958abc0712110f3c
delivered to Aef0d978f436fb1ff96bdf0b273e983af at Fri, 18 May 2012 12:57:20 +0200
short comments


rss

pdf :: context view

search



24 Apr 2004 DefineInsecureMode
12 Dez 2010 FreeBSD
07 Dez 2010 BALLFeatures
05 Dez 2010 ByzantineAgreement
04 Dez 2010 SQLITE
03 Dez 2010 SRS
12 Okt 2010 WebDAV
12 Sep 2010 SQL
16 Jun 2010 BALL
16 Jun 2010 CouchDB
16 Jun 2010 AskemosServer
07 Mai 2010 SystemRequirements
30 Mar 2010 ProjectsOnThePlate
30 Mar 2010 AskemosResources
30 Mar 2010 RSchemeInstall
30 Mar 2010 INSTALL
30 Mar 2010 ChickenScheme
debug-access.scm
27 Nov 2009 subscriber
development
12 Jul 2009 test
01 Jul 2009 TrustCenter
27 Dez 2008 JKomG
26 Dez 2008 FanOut
26 Dez 2008 MIME
NetBSD
NOTE
02 Mai 2006 AskemosTopMenu
18 Nov 2008 StorageAdaptor
18 Nov 2008 PStoreStorageAdapt
18 Nov 2008 OperationTips
15 Nov 2008 PCRE
04 Nov 2008 ProgrammingLanguag
09 Sep 2008 RelatedProjects
23 Jul 2008 ModuleStructure05
17 Jun 2008 NEWS
17 Jun 2008 HTML
17 Jun 2008 ACM
22 Mai 2008 HTTP
22 Mai 2008 BOSH
10 Mai 2008 AskemosBibliograph
10 Mai 2008 JerrysDreamAbstrac
20 Apr 2008 XSLT
11 Mar 2008 CodingStyle
10 Mar 2008
09 Mar 2008 MIMEConverter
BSD
07 Mar 2008 XML
06 Mar 2008 SRFI
01 Mar 2008 RFC4810
01 Mar 2008 RFC4998






Add


home · features · download · archive