[Bknr-cvs] r1801 - trunk/projects/bknr-website/website/templates
bknr at bknr.net
bknr at bknr.net
Tue Jan 24 11:04:26 UTC 2006
Author: hhubner
Date: 2006-01-24 05:04:26 -0600 (Tue, 24 Jan 2006)
New Revision: 1801
Added:
trunk/projects/bknr-website/website/templates/applications.xml
trunk/projects/bknr-website/website/templates/bknr.xsl
trunk/projects/bknr-website/website/templates/contact.xml
trunk/projects/bknr-website/website/templates/development-style.xml
trunk/projects/bknr-website/website/templates/documentation.xml
trunk/projects/bknr-website/website/templates/getting.xml
trunk/projects/bknr-website/website/templates/home.xml
trunk/projects/bknr-website/website/templates/license.xml
trunk/projects/bknr-website/website/templates/platforms.xml
trunk/projects/bknr-website/website/templates/user-error.xml
trunk/projects/bknr-website/website/templates/why-no-db.xml
Removed:
trunk/projects/bknr-website/website/templates/applications.bknr
trunk/projects/bknr-website/website/templates/contact.bknr
trunk/projects/bknr-website/website/templates/development-style.bknr
trunk/projects/bknr-website/website/templates/documentation.bknr
trunk/projects/bknr-website/website/templates/getting.bknr
trunk/projects/bknr-website/website/templates/home.bknr
trunk/projects/bknr-website/website/templates/license.bknr
trunk/projects/bknr-website/website/templates/platforms.bknr
trunk/projects/bknr-website/website/templates/technology.bknr
trunk/projects/bknr-website/website/templates/toplevel.bknr
trunk/projects/bknr-website/website/templates/user-error.bknr
trunk/projects/bknr-website/website/templates/why-no-db.bknr
Modified:
trunk/projects/bknr-website/website/templates/menu.xml
Log:
Switch to XSLT based documentation.
Deleted: trunk/projects/bknr-website/website/templates/applications.bknr
===================================================================
--- trunk/projects/bknr-website/website/templates/applications.bknr 2006-01-24 08:48:40 UTC (rev 1800)
+++ trunk/projects/bknr-website/website/templates/applications.bknr 2006-01-24 11:04:26 UTC (rev 1801)
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<bknr:toplevel
- template="toplevel"
- title="Applications"
- xmlns="http://www.w3.org/1999/xhtml"
- xmlns:bknr="http://bknr.net"
- xmlns:bknr-website="http://bknr.net"
- >
-
-<h1>Applications</h1>
-<p>The following public web sites are based on BKNR (in order of going on-line):
-<ul>
- <li><a target="_new" href="http://eboy.com/">eboy</a></li>
- <li><a target="_new" href="http://createrainforest.org/">Create Rainforest</a></li>
- <li><a target="_new" href="http://quickhoney.com">Quickhoney</a></li>
- <li><a target="_new" href="http://lisp-ecoop05.bknr.net">LISP ECOOP05 Workshop</a></li>
-</ul>
-<p>Of course, this web site uses BKNR, too!</p>
-</p>
-</bknr:toplevel>
Copied: trunk/projects/bknr-website/website/templates/applications.xml (from rev 1800, trunk/projects/bknr-website/website/templates/applications.bknr)
===================================================================
--- trunk/projects/bknr-website/website/templates/applications.bknr 2006-01-24 08:48:40 UTC (rev 1800)
+++ trunk/projects/bknr-website/website/templates/applications.xml 2006-01-24 11:04:26 UTC (rev 1801)
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="bknr.xsl" ?>
+<page name="applications">
+ <h1>Applications</h1>
+ <p>The following public web sites are based on BKNR (in order of going on-line):
+ <ul>
+ <li><a target="_new" href="http://eboy.com/">eboy</a></li>
+ <li><a target="_new" href="http://createrainforest.org/">Create Rainforest</a></li>
+ <li><a target="_new" href="http://quickhoney.com">Quickhoney</a></li>
+ <li><a target="_new" href="http://lisp-ecoop05.bknr.net">LISP ECOOP05 Workshop (now in archive mode)</a></li>
+ </ul>
+ </p>
+</page>
\ No newline at end of file
Added: trunk/projects/bknr-website/website/templates/bknr.xsl
===================================================================
--- trunk/projects/bknr-website/website/templates/bknr.xsl 2006-01-24 08:48:40 UTC (rev 1800)
+++ trunk/projects/bknr-website/website/templates/bknr.xsl 2006-01-24 11:04:26 UTC (rev 1801)
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="iso-8859-1" ?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+ <xsl:param name="mode">xml</xsl:param>
+
+ <xsl:output method="html"
+ indent="yes"
+ omit-xml-declaration="yes"
+ doctype-public="-//W3C//DTD HTML 4.0 Strict//EN" />
+
+ <xsl:template match="/page">
+
+ <html
+ xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>BKNR - <xsl:value-of select="@name"/></title>
+ <link rel="stylesheet" type="text/css" href="../static/styles.css" />
+ <script src="../static/javascript.js" language="javascript" type="text/javascript"> </script>
+ </head>
+
+ <body>
+ <div id="banner">
+ <div id="title">BKNR Lisp Application Environment</div>
+ <div id="logo">
+ <a href="http://bknr.net/" target="_new">
+ <img width="88" height="31" alt="BKNR Logo" src="/image/bknr-logo.png" border="0" />
+ </a>
+ </div>
+ </div>
+ <div id="body">
+ <div id="system-column">
+ <xsl:call-template name="menu">
+ <xsl:with-param name="current" select="@name"/>
+ </xsl:call-template>
+ </div>
+ <div id="content">
+ <xsl:copy-of select="." />
+ </div>
+ </div>
+ </body>
+ </html>
+ </xsl:template>
+
+ <xsl:template name="menu">
+ <xsl:param name="current"/>
+ <div class="site-menu">
+ <xsl:for-each select="document('menu.xml')/menu/item">
+ <xsl:choose>
+ <xsl:when test="@url = $current">
+ <div class="site-menu-active">
+ <xsl:value-of select="@title"/>
+ </div>
+ </xsl:when>
+ <xsl:otherwise>
+ <div class="site-menu-inactive">
+ <a href="{@url}.{$mode}"><xsl:value-of select="@title"/></a>
+ </div>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </div>
+ </xsl:template>
+
+</xsl:stylesheet>
\ No newline at end of file
Deleted: trunk/projects/bknr-website/website/templates/contact.bknr
===================================================================
--- trunk/projects/bknr-website/website/templates/contact.bknr 2006-01-24 08:48:40 UTC (rev 1800)
+++ trunk/projects/bknr-website/website/templates/contact.bknr 2006-01-24 11:04:26 UTC (rev 1801)
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<bknr:toplevel
- template="toplevel"
- title="Contact"
- xmlns="http://www.w3.org/1999/xhtml"
- xmlns:bknr="http://bknr.net"
- xmlns:bknr-website="http://bknr.net"
- >
-
-<h1>Contact</h1>
-
-<p>If you intend to use BKNR or parts of it, we'd love to hear from
-you!</p>
-
-<p>To get in touch, please send mail to the developer's mailing list
-at bknr-devel at common-lisp dot net. You may also <a
-href="http://common-lisp.net/cgi-bin/mailman/listinfo/bknr-devel">subscribe</a>
-to the mailing list if you are interested in participating.</p>
-
-</bknr:toplevel>
Copied: trunk/projects/bknr-website/website/templates/contact.xml (from rev 1800, trunk/projects/bknr-website/website/templates/contact.bknr)
===================================================================
--- trunk/projects/bknr-website/website/templates/contact.bknr 2006-01-24 08:48:40 UTC (rev 1800)
+++ trunk/projects/bknr-website/website/templates/contact.xml 2006-01-24 11:04:26 UTC (rev 1801)
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="bknr.xsl" ?>
+<page name="contact">
+ <h1>Contact</h1>
+
+ <p>If you intend to use BKNR or parts of it, we'd love to hear from
+ you!</p>
+
+ <p>To get in touch, please send mail to the developer's mailing list
+ at bknr-devel at common-lisp dot net. You may also <a
+ href="http://common-lisp.net/cgi-bin/mailman/listinfo/bknr-devel">subscribe</a>
+ to the mailing list if you are interested in participating.</p>
+</page>
\ No newline at end of file
Deleted: trunk/projects/bknr-website/website/templates/development-style.bknr
===================================================================
--- trunk/projects/bknr-website/website/templates/development-style.bknr 2006-01-24 08:48:40 UTC (rev 1800)
+++ trunk/projects/bknr-website/website/templates/development-style.bknr 2006-01-24 11:04:26 UTC (rev 1801)
@@ -1,90 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<bknr:toplevel
- template="toplevel"
- title="BKNR technology"
- xmlns="http://www.w3.org/1999/xhtml"
- xmlns:bknr="http://bknr.net"
- xmlns:bknr-website="http://bknr.net"
- >
-
-<h2>BKNR programming style</h2>
-<p>
-All BKNR application data is handled in main memory. Internally,
-applications do not use secondary store like data bases or files. Are
-application data structures are kept in the data structures provided
-by Common Lisp.
-</p>
-<p>
-All destructive operation on the persistent heap need to be explicit
-and are synchronized. A transaction is never aborted nor may it fail.
-Thus, it is vital to check preconditions before starting a destructive
-operation. Within a transaction, application code must properly
-handle all possible errors and gracefully return. Errors unhandled in
-transaction code are considered fatal and cause the persistence system
-to stop.
-</p>
-<p>
-Applications may either define their own, named transactions or they
-may use the provided CLOS layer which groups accesses to slots of
-persistent objects to atomic transactions.
-</p>
-<p>
-BKNR persistence sequentializes all destructive operations on the
-persistent heap. As all data is in RAM when a transaction starts
-executing, it is never stalled by having to wait for necessary data to
-arrive. Thus, the need for preempting transaction code arises much
-less frequently than in traditional systems in which transactions had
-to access slow disks in order to collect the data to be processed.
-</p>
-<p>
-Some applications require precondition checks which must be processed
-atomically together with the associated transaction code.
-Applications must guard such precondition checks with a store lock in
-order to block other transaction code from executing.
-</p>
-<p>
-Transaction code must be used only to change the persistent state of a
-system. No I/O operations must be performed within transaction code.
-Transactions may produce log output, but it they may not use (possibly
-blocking) communications mechanisms to other processes.
-</p>
-<h2>Areas of research</h2>
-<h3>Performance</h3>
-<p>
-For high-performance stores, some optimizations will be worthwile.
-The single most time consuming operation while executing transactions
-is the appending to the transaction log file. At the moment, this is
-done using a synchronous write to the opened Unix file, which takes
-significant time.
-</p>
-<p>
-Not all operations need to be absolutely safe, and it might be
-worthwile to change the default execution mode of the store to be as
-follows: Processing other transactions or non-transaction code may
-continue as soon as the transaction log entry of the current operation
-has been constructed in RAM and the transaction application code has
-been executed. The transaction system will then asynchronously write
-the transaction to the transaction log. Non-transactional application
-code can continue executing while the log entry is being commited to
-disk. Depending on the safety needs of the application, log entries
-could also be buffered in a queue to achive higher peak transaction
-rates, trading safety for speed. If safety is required, fast stable
-store (e.g. battery-backed RAM) can increase the speed of synchronous
-log writes.
-</p>
-<h2>Locking API</h2>
-<p>
-Current applications do not require sophisticated locking. To support
-such applications, a locking API might make sense.
-</p>
-<h2>Replication</h2>
-<p>
-Hot-standby servers using the BKNR datastore are conceptually simple.
-Full commit safety requires a slightly more involved commit
-coordination on the distributed servers than doing the log replication
-after the commit has locally finished. Many applications will be able
-to loose one or even a few transactions should the system crash.
-</p>
-</bknr:toplevel>
Copied: trunk/projects/bknr-website/website/templates/development-style.xml (from rev 1800, trunk/projects/bknr-website/website/templates/development-style.bknr)
===================================================================
--- trunk/projects/bknr-website/website/templates/development-style.bknr 2006-01-24 08:48:40 UTC (rev 1800)
+++ trunk/projects/bknr-website/website/templates/development-style.xml 2006-01-24 11:04:26 UTC (rev 1801)
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="bknr.xsl" ?>
+<page name="development-style">
+ <h2>BKNR programming style</h2>
+ <p>
+ All BKNR application data is handled in main memory. Internally,
+ applications do not use secondary store like data bases or files. Are
+ application data structures are kept in the data structures provided
+ by Common Lisp.
+ </p>
+ <p>
+ All destructive operation on the persistent heap need to be explicit
+ and are synchronized. A transaction is never aborted nor may it fail.
+ Thus, it is vital to check preconditions before starting a destructive
+ operation. Within a transaction, application code must properly
+ handle all possible errors and gracefully return. Errors unhandled in
+ transaction code are considered fatal and cause the persistence system
+ to stop.
+ </p>
+ <p>
+ Applications may either define their own, named transactions or they
+ may use the provided CLOS layer which groups accesses to slots of
+ persistent objects to atomic transactions.
+ </p>
+ <p>
+ BKNR persistence sequentializes all destructive operations on the
+ persistent heap. As all data is in RAM when a transaction starts
+ executing, it is never stalled by having to wait for necessary data to
+ arrive. Thus, the need for preempting transaction code arises much
+ less frequently than in traditional systems in which transactions had
+ to access slow disks in order to collect the data to be processed.
+ </p>
+ <p>
+ Some applications require precondition checks which must be processed
+ atomically together with the associated transaction code.
+ Applications must guard such precondition checks with a store lock in
+ order to block other transaction code from executing.
+ </p>
+ <p>
+ Transaction code must be used only to change the persistent state of a
+ system. No I/O operations must be performed within transaction code.
+ Transactions may produce log output, but it they may not use (possibly
+ blocking) communications mechanisms to other processes.
+ </p>
+ <h2>Areas of research</h2>
+ <h3>Performance</h3>
+ <p>
+ For high-performance stores, some optimizations will be worthwile.
+ The single most time consuming operation while executing transactions
+ is the appending to the transaction log file. At the moment, this is
+ done using a synchronous write to the opened Unix file, which takes
+ significant time.
+ </p>
+ <p>
+ Not all operations need to be absolutely safe, and it might be
+ worthwile to change the default execution mode of the store to be as
+ follows: Processing other transactions or non-transaction code may
+ continue as soon as the transaction log entry of the current operation
+ has been constructed in RAM and the transaction application code has
+ been executed. The transaction system will then asynchronously write
+ the transaction to the transaction log. Non-transactional application
+ code can continue executing while the log entry is being commited to
+ disk. Depending on the safety needs of the application, log entries
+ could also be buffered in a queue to achive higher peak transaction
+ rates, trading safety for speed. If safety is required, fast stable
+ store (e.g. battery-backed RAM) can increase the speed of synchronous
+ log writes.
+ </p>
+ <h2>Locking API</h2>
+ <p>
+ Current applications do not require sophisticated locking. To support
+ such applications, a locking API might make sense.
+ </p>
+ <h2>Replication</h2>
+ <p>
+ Hot-standby servers using the BKNR datastore are conceptually simple.
+ Full commit safety requires a slightly more involved commit
+ coordination on the distributed servers than doing the log replication
+ after the commit has locally finished. Many applications will be able
+ to loose one or even a few transactions should the system crash.
+ </p>
+</page>
\ No newline at end of file
Deleted: trunk/projects/bknr-website/website/templates/documentation.bknr
===================================================================
--- trunk/projects/bknr-website/website/templates/documentation.bknr 2006-01-24 08:48:40 UTC (rev 1800)
+++ trunk/projects/bknr-website/website/templates/documentation.bknr 2006-01-24 11:04:26 UTC (rev 1801)
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<bknr:toplevel
- template="toplevel"
- title="Documentation"
- xmlns="http://www.w3.org/1999/xhtml"
- xmlns:bknr="http://bknr.net"
- xmlns:bknr-website="http://bknr.net"
- >
-
-<h1>Documentation</h1>
-
-<p>The following documentation in PDF format is available:</p>
-
-<ul>
-
- <li>The <a href="/pdf/datastore-manual" target="bknr_pdf">datastore
- manual</a> describes the persistence mechanism including the
- CLOS-based indexing facility</li>
-
- <li>The KlammerScript <a href="/pdf/js-manual"
- target="bknr_pdf">manual</a> and <a href="/pdf/js-reference"
- target="bknr_pdf">reference</a> describe the Lisp to Javascript
- converter</li>
-
-</ul>
-
-<p>Kudos to Manuel for writing the documentation!</p>
-
-</bknr:toplevel>
Copied: trunk/projects/bknr-website/website/templates/documentation.xml (from rev 1800, trunk/projects/bknr-website/website/templates/documentation.bknr)
===================================================================
--- trunk/projects/bknr-website/website/templates/documentation.bknr 2006-01-24 08:48:40 UTC (rev 1800)
+++ trunk/projects/bknr-website/website/templates/documentation.xml 2006-01-24 11:04:26 UTC (rev 1801)
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="bknr.xsl" ?>
+<page name="documentation">
+ <h1>Documentation</h1>
+
+ <p>The following documentation in PDF format is available:</p>
+
+ <ul>
+
+ <li>The <a href="/pdf/datastore-manual" target="bknr_pdf">datastore
+ manual</a> describes the persistence mechanism including the
+ CLOS-based indexing facility</li>
+
+ <li>The KlammerScript <a href="/pdf/js-manual"
+ target="bknr_pdf">manual</a> and <a href="/pdf/js-reference"
+ target="bknr_pdf">reference</a> describe the Lisp to Javascript
+ converter</li>
+
+ </ul>
+
+ <p>Kudos to Manuel for writing the documentation!</p>
+</page>
\ No newline at end of file
Deleted: trunk/projects/bknr-website/website/templates/getting.bknr
===================================================================
--- trunk/projects/bknr-website/website/templates/getting.bknr 2006-01-24 08:48:40 UTC (rev 1800)
+++ trunk/projects/bknr-website/website/templates/getting.bknr 2006-01-24 11:04:26 UTC (rev 1801)
@@ -1,55 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<bknr:toplevel
- template="toplevel"
- title="Getting BKNR"
- xmlns="http://www.w3.org/1999/xhtml"
- xmlns:bknr="http://bknr.net"
- xmlns:bknr-website="http://bknr.net"
- >
-
- <h1>Getting BKNR</h1>
-
- <p>Currently, there is are no formal releases of the BKNR
- environment. We are working with a <a
- href="http://subversion.tigris.org" target="_new">Subversion</a>
- repository which is publicy accessible.</p>
-
- <p>The BKNR repository contains the framework, all software packages
- used by BKNR as well as well as several real-world applications which
- have been deployed in the internet. The application sources are
- provided as example material.</p>
-
- <h2>Using Subversion</h2>
-
- <p>To check out the current state of the repository, please install
- the <a href="http://subversion.tigris.org" target="_new">Subversion</a> client on your machine and type</p>
-
- <blockquote>
- <tt>
- svn co svn://common-lisp.net/project/bknr/svn/trunk <b><i>bknr-svn</i></b>
- </tt>
- </blockquote>
-
- <p>This will store the source tree in the <tt><b><i>bknr-svn</i></b></tt>
- directory of your local file system. You may specify a different path
- if you wish.</p>
-
- <!--
-
- <h2>Tar balls</h2>
-
- <p>If you cannot install Subversion or if you just want to have a
- look at BKNR, you can download the automatically generated
- snapshot:
- <ul>
- <li><a href="/snapshots/bknr.tar.bz2">BKNR core and modules</a></li>
- <li><a href="/snapshots/bknr-thirdparty.tar.bz2">BKNR third party packages</a></li>
- </ul>
- The snapshot is automatically re-generated every night from the Subversion repository.
- </p>
-
- -->
-
-</bknr:toplevel>
Copied: trunk/projects/bknr-website/website/templates/getting.xml (from rev 1800, trunk/projects/bknr-website/website/templates/getting.bknr)
===================================================================
--- trunk/projects/bknr-website/website/templates/getting.bknr 2006-01-24 08:48:40 UTC (rev 1800)
+++ trunk/projects/bknr-website/website/templates/getting.xml 2006-01-24 11:04:26 UTC (rev 1801)
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="bknr.xsl" ?>
+<page name="getting">
+ <h1>Getting BKNR</h1>
+
+ <p>Currently, there is are no formal releases of the BKNR
+ environment. We are working with a <a
+ href="http://subversion.tigris.org" target="_new">Subversion</a>
+ repository which is publicy accessible. A big thanks to the folks at
+ <a href="http://common-lisp.net/" target="_new">common-lisp.net</a>
+ for hosting our project!</p>
+
+ <p>The BKNR repository contains the framework, all software packages
+ used by BKNR as well as well as several real-world applications which
+ have been deployed in the internet. The application sources are
+ provided as example material.</p>
+
+ <h2>Using Subversion</h2>
+
+ <p>To check out the current state of the repository, please install
+ the <a href="http://subversion.tigris.org"
+ target="_new">Subversion</a> client on your machine and type</p>
+
+ <blockquote>
+ <tt>
+ svn co svn://common-lisp.net/project/bknr/svn/trunk <b><i>bknr-svn</i></b>
+ </tt>
+ </blockquote>
+
+ <p>This will store the source tree in the <tt><b><i>bknr-svn</i></b></tt>
+ directory of your local file system. You may specify a different path
+ if you wish.</p>
+
+ <!--
+
+ <h2>Tar balls</h2>
+
+ <p>If you cannot install Subversion or if you just want to have a
+ look at BKNR, you can download the automatically generated
+ snapshot:
+ <ul>
+ <li><a href="/snapshots/bknr.tar.bz2">BKNR core and modules</a></li>
+ <li><a href="/snapshots/bknr-thirdparty.tar.bz2">BKNR third party packages</a></li>
+ </ul>
+ The snapshot is automatically re-generated every night from the Subversion repository.
+ </p>
+
+ -->
+</page>
\ No newline at end of file
Deleted: trunk/projects/bknr-website/website/templates/home.bknr
===================================================================
--- trunk/projects/bknr-website/website/templates/home.bknr 2006-01-24 08:48:40 UTC (rev 1800)
+++ trunk/projects/bknr-website/website/templates/home.bknr 2006-01-24 11:04:26 UTC (rev 1801)
@@ -1,108 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<bknr:toplevel
- template="toplevel"
- title="BKNR Home"
- xmlns="http://www.w3.org/1999/xhtml"
- xmlns:bknr="http://bknr.net"
- xmlns:bknr-website="http://bknr.net"
- >
-
-<h1>Welcome to BKNR!</h1>
-
-<p>Welcome to the Website of BKNR, the Common Lisp Web Application
-environment. This website aims to introduce the BKNR platform as well
-as provide you with pointers to the software itself.</p>
-
-<h2>What is BKNR?</h2>
-<p>
-
-BKNR is a set of Common Lisp libraries which together form an
-environment suitable for serving HTTP clients from a persistent Lisp
-system.
-
-It's major components are:
-<ul>
-<li>Persistence mechanism based on transaction logging, supporting
-immutable binary large objects and CLOS persistence.</li>
-<li>XML processing facilities</li>
-<li>HTTP application environment with session handling and template engine</li>
-</ul>
-</p>
-
-<h3>Persistence</h3>
-<p>
-Persistence in BKNR is achived using a transaction logging mechanism.
-All operations which change the persistent image of a system are
-explicitely written to a transaction log file. When the system
-crashes, the persistent state can be recovered by rolling forward the
-transaction log. The transaction log is held in a simple binary
-format in order to get acceptable restart times for larger datasets.
-</p>
-<p>
-The persistence mechanism supports a snapshot API which allows the
-persistent object system to write all currently active objects to a
-sequential file.
-</p>
-<p>
-The Persistent object subsystem provides for ID generation of objects.
-Object IDs of persistent objects are written to the transaction log.
-Persistent objects are never garbage collected and need to be deleted
-by the application if they are no longer in use.
-</p>
-<p>
-BKNR supports automated indices for CLOS instances. They are
-implemented in a MOP metaclass and compatible with the BKNR metaclass
-for persistent objects.
-</p>
-<h3>XML processing</h3>
-<p>
-BKNR integrates the Closure XML (CXML) parser using a CLOS metaclass
-to provide for reading and writing XML files of objects. Combined
-metaclasses are provided in order to allow for combinations like
-indexed+persistent or indexed+xml.
-</p>
-<p>
-CXML is also used for XHTML generation and XHTML template processing.
-User-defined element handlers can be added to the XHTML generation to
-support application-specific generation of dynamic content.
-</p>
-<h3>Web application environment</h3>
-<p>
-BKNR uses the portable aserve web server implementation as HTTP
-server. It provides for a handler dispatch mechanism based on CLOS
-objects and generic functions to provide for routing requests to
-objects and HTML form handling.
-</p>
-<p>
-Session handling through cookies is supported, as well is a simple
-web-based CMS for maintaining user accounts and other application
-information.
-</p>
-<p>
-A CSS and Javascript generation library supports in-source-code
-generation of complete web pages using a lisp-like syntax.
-</p>
-<h3>Other Libraries</h3>
-<p>
-Except for the graphics processing library used, all server-side
-components of BKNR are implemented in Common Lisp. All components are
-Open Source. All software outside of the thirdparty/ tree in the BKNR
-repository are distributed under a BSD-style open source license. The
-thirdparty/ tree contains a number of publicly available Common Lisp
-libraries which are used by BKNR.
-</p>
-BKNR has been co-developed with a number of real-world applications.
-Much of the application code has been kept in the central source code
-repository and evolved through a number of API and framework changes.
-
-
-BKNR started while implementing a
-web site for <a href="http://eboy.com">eboy</a>, a group of graphics
-artists who wanted to have a dynamic web site for publishing their
-works. Their new, fully dynamic web site was implemented in CMU
-Common Lisp
-
-
-</bknr:toplevel>
Added: trunk/projects/bknr-website/website/templates/home.xml
===================================================================
--- trunk/projects/bknr-website/website/templates/home.xml 2006-01-24 08:48:40 UTC (rev 1800)
+++ trunk/projects/bknr-website/website/templates/home.xml 2006-01-24 11:04:26 UTC (rev 1801)
@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="bknr.xsl" ?>
+<page name="home">
+ <h1>Welcome to BKNR!</h1>
+
+ <p>Welcome to the Website of BKNR, the Common Lisp Web Application
+ environment. This website aims to introduce the BKNR platform as well
+ as provide you with pointers to the software itself.</p>
+
+ <h2>What is BKNR?</h2>
+ <p>
+
+ BKNR is a set of Common Lisp libraries which together form an
+ environment suitable for serving HTTP clients from a persistent Lisp
+ system.
+
+ It's major components are:
+ <ul>
+ <li>Persistence mechanism based on transaction logging, supporting
+ immutable binary large objects and CLOS persistence.</li>
+ <li>XML processing facilities</li>
+ <li>HTTP application environment with session handling and template engine</li>
+ </ul>
+ </p>
+
+ <h3>Persistence</h3>
+ <p>
+ Persistence in BKNR is achived using a transaction logging mechanism.
+ All operations which change the persistent image of a system are
+ explicitely written to a transaction log file. When the system
+ crashes, the persistent state can be recovered by rolling forward the
+ transaction log. The transaction log is held in a simple binary
+ format in order to get acceptable restart times for larger datasets.
+ </p>
+ <p>
+ The persistence mechanism supports a snapshot API which allows the
+ persistent object system to write all currently active objects to a
+ sequential file.
+ </p>
+ <p>
+ The Persistent object subsystem provides for ID generation of objects.
+ Object IDs of persistent objects are written to the transaction log.
+ Persistent objects are never garbage collected and need to be deleted
+ by the application if they are no longer in use.
+ </p>
+ <p>
+ BKNR supports automated indices for CLOS instances. They are
+ implemented in a MOP metaclass and compatible with the BKNR metaclass
+ for persistent objects.
+ </p>
+ <h3>XML processing</h3>
+ <p>
+ BKNR integrates the Closure XML (CXML) parser using a CLOS metaclass
+ to provide for reading and writing XML files of objects. Combined
+ metaclasses are provided in order to allow for combinations like
+ indexed+persistent or indexed+xml.
+ </p>
+ <p>
+ CXML is also used for XHTML generation and XHTML template processing.
+ User-defined element handlers can be added to the XHTML generation to
+ support application-specific generation of dynamic content.
+ </p>
+ <h3>Web application environment</h3>
+ <p>
+ BKNR uses the portable aserve web server implementation as HTTP
+ server. It provides for a handler dispatch mechanism based on CLOS
+ objects and generic functions to provide for routing requests to
+ objects and HTML form handling.
+ </p>
+ <p>
+ Session handling through cookies is supported, as well is a simple
+ web-based CMS for maintaining user accounts and other application
+ information.
+ </p>
+ <p>
+ A CSS and Javascript generation library supports in-source-code
+ generation of complete web pages using a lisp-like syntax.
+ </p>
+ <h3>Other Libraries</h3>
+ <p>
+ Except for the graphics processing library used, all server-side
+ components of BKNR are implemented in Common Lisp. All components are
+ Open Source. All software outside of the thirdparty/ tree in the BKNR
+ repository are distributed under a BSD-style open source license. The
+ thirdparty/ tree contains a number of publicly available Common Lisp
+ libraries which are used by BKNR.
+ </p>
+ BKNR has been co-developed with a number of real-world applications.
+ Much of the application code has been kept in the central source code
+ repository and evolved through a number of API and framework changes.
+
+
+ BKNR started while implementing a
+ web site for <a href="http://eboy.com">eboy</a>, a group of graphics
+ artists who wanted to have a dynamic web site for publishing their
+ works. Their new, fully dynamic web site was implemented in CMU
+ Common Lisp
+</page>
\ No newline at end of file
Deleted: trunk/projects/bknr-website/website/templates/license.bknr
===================================================================
--- trunk/projects/bknr-website/website/templates/license.bknr 2006-01-24 08:48:40 UTC (rev 1800)
+++ trunk/projects/bknr-website/website/templates/license.bknr 2006-01-24 11:04:26 UTC (rev 1801)
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<bknr:toplevel
- template="toplevel"
- title="BKNR License"
- xmlns="http://www.w3.org/1999/xhtml"
- xmlns:bknr="http://bknr.net"
- xmlns:bknr-website="http://bknr.net"
- >
- <p>Copyright (c) 2003,2004,2005, BKNR (Hans Hübner, Manuel Odendahl)<br />
- All rights reserved.</p>
-
- <p>Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:</p>
-
- <ul>
-
- <li>Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.</li>
-
- <li>Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.</li>
-
- <li>Neither the name BKNR nor the names of its contributors
- may be used to endorse or promote products derived from this software
- without specific prior written permission.</li>
-
- </ul>
-
- <p>THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</p>
-</bknr:toplevel>
Copied: trunk/projects/bknr-website/website/templates/license.xml (from rev 1800, trunk/projects/bknr-website/website/templates/license.bknr)
===================================================================
--- trunk/projects/bknr-website/website/templates/license.bknr 2006-01-24 08:48:40 UTC (rev 1800)
+++ trunk/projects/bknr-website/website/templates/license.xml 2006-01-24 11:04:26 UTC (rev 1801)
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="bknr.xsl" ?>
+<page name="license">
+ <p>Copyright (c) 2003,2004,2005, BKNR (Hans Hübner, Manuel Odendahl)<br />
+ All rights reserved.</p>
+
+ <p>Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:</p>
+
+ <ul>
+
+ <li>Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.</li>
+
+ <li>Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.</li>
+
+ <li>Neither the name BKNR nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.</li>
+
+ </ul>
+
+ <p>THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</p>
+</page>
\ No newline at end of file
Modified: trunk/projects/bknr-website/website/templates/menu.xml
===================================================================
--- trunk/projects/bknr-website/website/templates/menu.xml 2006-01-24 08:48:40 UTC (rev 1800)
+++ trunk/projects/bknr-website/website/templates/menu.xml 2006-01-24 11:04:26 UTC (rev 1801)
@@ -1,12 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
-<menus>
- <menu name="main">
- <item url="/home" title="Home" />
- <item url="/applications" title="Applications" />
- <item url="/platforms" title="Platforms" />
- <item url="/documentation" title="Documentation" />
- <item url="/license" title="License" />
- <item url="/getting" title="Getting BKNR" />
- <item url="/contact" title="Contact" />
- </menu>
-</menus>
\ No newline at end of file
+<menu name="main">
+ <item url="home" title="Home" />
+ <item url="applications" title="Applications" />
+ <item url="platforms" title="Platforms" />
+ <item url="documentation" title="Documentation" />
+ <item url="license" title="License" />
+ <item url="getting" title="Getting BKNR" />
+ <item url="contact" title="Contact" />
+</menu>
Deleted: trunk/projects/bknr-website/website/templates/platforms.bknr
===================================================================
--- trunk/projects/bknr-website/website/templates/platforms.bknr 2006-01-24 08:48:40 UTC (rev 1800)
+++ trunk/projects/bknr-website/website/templates/platforms.bknr 2006-01-24 11:04:26 UTC (rev 1801)
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<bknr:toplevel
- template="toplevel"
- title="Platforms"
- xmlns="http://www.w3.org/1999/xhtml"
- xmlns:bknr="http://bknr.net"
- xmlns:bknr-website="http://bknr.net"
- >
-
-<h1>BKNR platforms</h1>
-
-<p>BKNR is developed using the <a
-href="http://www.cons.org/cmucl/">CMU Common Lisp</a> compiler on the
-<a href="http://freebsd.org/">FreeBSD</a> operting system. It is
-known to run on CMUCL on Linux, and the datastore components have been
-tested on the <a href="http://franz.com/products/allegrocl/">Allegro
-Common Lisp</a> compiler. Portability is not our main concern, but we
-will accept portability patches if they do not affect the mainline
-development too much.</p>
-
-<p>That said, most of the components are written in portable Common
-Lisp, but some of the application modules depend on CMUCL extensions.</p>
-
-</bknr:toplevel>
Copied: trunk/projects/bknr-website/website/templates/platforms.xml (from rev 1800, trunk/projects/bknr-website/website/templates/platforms.bknr)
===================================================================
--- trunk/projects/bknr-website/website/templates/platforms.bknr 2006-01-24 08:48:40 UTC (rev 1800)
+++ trunk/projects/bknr-website/website/templates/platforms.xml 2006-01-24 11:04:26 UTC (rev 1801)
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="bknr.xsl" ?>
+<page name="platforms">
+ <h1>BKNR platforms</h1>
+
+ <p>BKNR is developed using the <a
+ href="http://www.cons.org/cmucl/">CMU Common Lisp</a> compiler on the
+ <a href="http://freebsd.org/">FreeBSD</a> operting system. It is
+ known to run on CMUCL on Linux, and the datastore components have been
+ tested on the <a href="http://franz.com/products/allegrocl/">Allegro
+ Common Lisp</a> compiler. Portability is not our main concern, but we
+ will accept portability patches if they do not affect the mainline
+ development too much.</p>
+
+ <p>That said, most of the components are written in portable Common
+ Lisp, but some of the application modules depend on CMUCL extensions.</p>
+
+</page>
Deleted: trunk/projects/bknr-website/website/templates/technology.bknr
===================================================================
Deleted: trunk/projects/bknr-website/website/templates/toplevel.bknr
===================================================================
--- trunk/projects/bknr-website/website/templates/toplevel.bknr 2006-01-24 08:48:40 UTC (rev 1800)
+++ trunk/projects/bknr-website/website/templates/toplevel.bknr 2006-01-24 11:04:26 UTC (rev 1801)
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html
- xmlns="http://www.w3.org/1999/xhtml"
- xmlns:bknr-website="http://bknr.net"
- xmlns:bknr="http://bknr.net"
- xmlns:menu="http://bknr.net/menu"
- >
- <head>
- <title>BKNR - $(title)</title>
- <link rel="stylesheet" type="text/css" href="/static/styles.css" />
- <script src="/static/javascript.js" language="javascript" type="text/javascript"> </script>
- </head>
-
- <body>
- <div id="banner">
- <div id="title">BKNR Lisp Application Environment</div>
- <div id="logo">
- <a href="http://common-lisp.net/project/bknr/home.html" target="_new">
- <img width="88" height="31" alt="BKNR Logo" src="/image/bknr-logo" border="0" />
- </a>
- </div>
- </div>
- <div id="body">
- <div id="system-column">
- <menu:site-menu config="menu.xml"
- menu-name="main"
- container-class="site-menu"
- active-class="site-menu-active"
- inactive-class="site-menu-inactive" />
-<!--
- <div id="login">
- <bknr-website:login-widget />
- </div>
- -->
- </div>
- <div id="content">
- <bknr:tag-body />
- </div>
- </div>
- </body>
-</html>
Deleted: trunk/projects/bknr-website/website/templates/user-error.bknr
===================================================================
--- trunk/projects/bknr-website/website/templates/user-error.bknr 2006-01-24 08:48:40 UTC (rev 1800)
+++ trunk/projects/bknr-website/website/templates/user-error.bknr 2006-01-24 11:04:26 UTC (rev 1801)
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html
- xmlns="http://www.w3.org/1999/xhtml"
- xmlns:bknr="http://bknr.net"
- xmlns:bknr-website="http://bknr.net"
- xmlns:menu="http://bknr.net/menu"
- >
-Your request could not be processed because an error occured:
-<pre>
-$(error-message)
-</pre>
-</html>
\ No newline at end of file
Copied: trunk/projects/bknr-website/website/templates/user-error.xml (from rev 1800, trunk/projects/bknr-website/website/templates/user-error.bknr)
Deleted: trunk/projects/bknr-website/website/templates/why-no-db.bknr
===================================================================
--- trunk/projects/bknr-website/website/templates/why-no-db.bknr 2006-01-24 08:48:40 UTC (rev 1800)
+++ trunk/projects/bknr-website/website/templates/why-no-db.bknr 2006-01-24 11:04:26 UTC (rev 1801)
@@ -1,79 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<bknr:toplevel
- template="toplevel"
- title="BKNR technology"
- xmlns="http://www.w3.org/1999/xhtml"
- xmlns:bknr="http://bknr.net"
- xmlns:bknr-website="http://bknr.net"
- >
-
-<h1>Requirements for a persistence mechanism</h1>
-<p>
-We want a persistence mechanism which is closely integrated into our
-programming language. Persistence is something we want to assume as
-being available which writing applications, and it should be as
-unintrusive as possible. Applications should use standard programming
-language mechanisms to access all data.
-</p>
-<p>
-The persistence mechanism should ensure that all appplication data in
-the system is safe against system crashes. If the system crashes, the
-application and all it's data should be restartable into a consistent
-state. The amount of work which can be lost due to a unplanned system
-failure should be low.
-</p>
-<p>
-The persistence mechanism should make the amount of data which
-constitutes the persistent state of the application transparent. It
-should provide for mechanisms to duplicate the current state in order
-to move it from one machine or software release to another.
-</p>
-<h1>Does a "Database system" help?</h1>
-<p>
-The two most popular database families today are relational databases
-with SQL as query language, and embedded database facilities like
-Berkeley DB which provides for indexed access to tables stored on
-disk. They have in common that they assume that the primary location
-of data is on-disk and that applications have to read and write data
-from and to disk in order to perform their tasks.
-</p>
-<p>
-Database systems, when they were invented, served as an address
-extension to the applications. Applications could operate on data
-sets which were to large for in-memory processing, providing
-persistence at the same time.
-</p>
-<p>
-In addition, SQL databases provide for a language neutral query
-language that allow flexible querying of the application data. This
-facility is useful in multi-language environments and to facilitate
-database queries through third-party applications.
-</p>
-<p>
-Todays main memories and processing speed redefine the environment in
-which applications are created. Memory is no longer a very scarce
-resource, and memory sizes have generally grown much faster than the
-amount of application data that needs to be processed. Thus,
-on-demand loading of application from disk can (and should) be totally
-avoided by always having the complete data set in memory.
-</p>
-<h2>Properties of the BKNR persistence mechanism</h2>
-<p>
-All Disk access by the persistence mechanism is sequential. During
-normal operation, the transaction log is sequentially appended to.
-During snapshot, the snapshot file of the object subsystem is
-sequentially written. During restore, the snapshot and transaction
-log files are sequentially read.
-</p>
-<p>
-All files used by BKNR are immutable. A file is never changed, but
-only created, read or deleted.
-</p>
-<p>
-The time needed to restore from a crash consists of the time needed to
-read the sequential log file, to parse it's content and to execute the
-applications' transaction code.
-</p>
-</bknr:toplevel>
Copied: trunk/projects/bknr-website/website/templates/why-no-db.xml (from rev 1800, trunk/projects/bknr-website/website/templates/why-no-db.bknr)
===================================================================
--- trunk/projects/bknr-website/website/templates/why-no-db.bknr 2006-01-24 08:48:40 UTC (rev 1800)
+++ trunk/projects/bknr-website/website/templates/why-no-db.xml 2006-01-24 11:04:26 UTC (rev 1801)
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="bknr.xsl" ?>
+<page name="why-no-db">
+ <h1>Requirements for a persistence mechanism</h1>
+ <p>
+ We want a persistence mechanism which is closely integrated into our
+ programming language. Persistence is something we want to assume as
+ being available which writing applications, and it should be as
+ unintrusive as possible. Applications should use standard programming
+ language mechanisms to access all data.
+ </p>
+ <p>
+ The persistence mechanism should ensure that all appplication data in
+ the system is safe against system crashes. If the system crashes, the
+ application and all it's data should be restartable into a consistent
+ state. The amount of work which can be lost due to a unplanned system
+ failure should be low.
+ </p>
+ <p>
+ The persistence mechanism should make the amount of data which
+ constitutes the persistent state of the application transparent. It
+ should provide for mechanisms to duplicate the current state in order
+ to move it from one machine or software release to another.
+ </p>
+ <h1>Does a "Database system" help?</h1>
+ <p>
+ The two most popular database families today are relational databases
+ with SQL as query language, and embedded database facilities like
+ Berkeley DB which provides for indexed access to tables stored on
+ disk. They have in common that they assume that the primary location
+ of data is on-disk and that applications have to read and write data
+ from and to disk in order to perform their tasks.
+ </p>
+ <p>
+ Database systems, when they were invented, served as an address
+ extension to the applications. Applications could operate on data
+ sets which were to large for in-memory processing, providing
+ persistence at the same time.
+ </p>
+ <p>
+ In addition, SQL databases provide for a language neutral query
+ language that allow flexible querying of the application data. This
+ facility is useful in multi-language environments and to facilitate
+ database queries through third-party applications.
+ </p>
+ <p>
+ Todays main memories and processing speed redefine the environment in
+ which applications are created. Memory is no longer a very scarce
+ resource, and memory sizes have generally grown much faster than the
+ amount of application data that needs to be processed. Thus,
+ on-demand loading of application from disk can (and should) be totally
+ avoided by always having the complete data set in memory.
+ </p>
+ <h2>Properties of the BKNR persistence mechanism</h2>
+ <p>
+ All Disk access by the persistence mechanism is sequential. During
+ normal operation, the transaction log is sequentially appended to.
+ During snapshot, the snapshot file of the object subsystem is
+ sequentially written. During restore, the snapshot and transaction
+ log files are sequentially read.
+ </p>
+ <p>
+ All files used by BKNR are immutable. A file is never changed, but
+ only created, read or deleted.
+ </p>
+ <p>
+ The time needed to restore from a crash consists of the time needed to
+ read the sequential log file, to parse it's content and to execute the
+ applications' transaction code.
+ </p>
+</page>
\ No newline at end of file
More information about the Bknr-cvs
mailing list