--

Last-Modified: $Date: 2001/10/28 04:35:05 $ 
Version: $Id: NEXT_ARCHITECTURE,v 1.5 2001/10/28 04:35:05 burton Exp $
Author: Kevin A. Burton ( burton@apache.org | burton@openprivacy.org )

Commentary:

--

* Overview:

It has started to become obvious that XML support within Reptile has been
designed incorrectly.  Specifically, our requirements have changed since the
project was first created and performance issues turned out to be paramount
since we are pushing around more content (XML) than I originally thought.

Our current system tries to minimize database use by maximizing use of XML.
Intially this seemed logical but the problem was that real-world performance was
terrible.

I think we need a better balance of DB and XML use.

* Solution:

Instead of assuming that everythign is just an RSS feed, model everything in an
abstract channel/article pattern.

We can then have a high level XSL -> Extension -> DB -> XML -> XSL -> HTML
pipeline model which would SERIOUSLY increase our perforamance and allow for new
functionality which we previously couldn't deliver.

* Refactoring

A significant portion of the entire system needs to be reworked (DB, XML, Java,
peers) but it shouldn't be too bad.

    - The class:

        org.openprivacy.reptile.extensions.feeds.Feeds

        should become

        org.openprivacy.reptile.extensions.om.ChannelsExtension

    - The class:

        org.openprivacy.reptile.extensions.feeds.Search

        should become

        org.openprivacy.reptile.extensions.om.ChannelsSearchExtension

        
* TODO

    - design new DB schema.

        - channels/content design.

    - background panther thread updates also update the content table.

    - all RSS content is produced from an abstracted DB query.

        (basically select the most recent 15 unread items)
    
    - Rewrite the unread articles to use an om extension.

    - channel history support.  We should also be able to search the content
      table just like we can search the channel table.

    - go over all code and make sure we don't have anything that is obsolute

    