A New Project, Part 22, an overview




[Part 22 of a continuing series on building a new project.]

The following offers a brief overview of the various services that are being built to support the new project. Orchard: An identity server. The Orchard server will be responsible for managing user authentication and credentialing, as well as managing user preferences and settings. Whenever possible, components of the new project will support third-party identities in addition to Orchard identities.

Features: OpenId interop, lateral scalability and partitioning, federation.

Implementation: Java 1.5, Tomcat 5.5, Spring Framework, either MySQL 5.0 or Houston.

Houston: A loosely-structured message store. The Houston server will be used as a general message store for the data behind the project. It will support validation for message types via plugins, including XHTML, email, IM, RSS, Atom, SMS, as well as custom types such as TODO lists, and microformats such as hCard, hCalendar, hReview. The emphasis will be on search-driven read performance (attribute and full-text), relationship management, and scalability. Joe Gregorio named this type of server an Atom Store.

Features: Loose structure, relationship management, full-text search, attribute-based search, lateral scalability and partitioning, Atom Pub support, multiple message types, OpenSearch support.

Implementation: Java 1.5, Tomcat 5.5, Spring, either MySQL or Lucene and a file store.

Mercer: A trust server. The Mercer server will be used to calculate relative trust between messages and identities. Mercer will receive trust events via a router/proxy such as Canal. Due to the exponential complexity of the problem, a custom data store will be built to help approximate relative trust levels in real time. Houston will also write global trust levels back into the Houston and Orchard servers.

Features: Scalability via partitioning, real-time read performance for approximate trust levels, background processing for cascading updates.

Implementation: Java 1.5, Spring Framework, custom data store.

Canal: A REST-aware proxy/router. Canal sits in front of incoming HTTP requests and routes them according to priority and request type.

Features: Message queueing, metering, authentication, redirection, caching.

Implementation: C, Apache HTTP Server 2.2Ludlow: A hybrid wiki/blog front-end. A search-driven display engine for data stored in Houston. Ludlow is responsible for displaying content to the user via a web browser. Ludlow is also responsible for providing content management tools and simple content editing capabilities.

Features: Wiki-like notation support, permission model, multiple users, display templating, OpenSearch support.

Implementation: Java 1.5., Spring Framework, Velocity, JavaScript.

Nassau: A sticky-note application. A lightweight front-end to Houston that displays and publishes short notes. Can be layered on top of other applications.

Features: AJAX, cross-application, OpenSearch support,

Implementation: JavaScript, Java, Spring Framework

Madison: An intelligent cache. Building on ideas under development for several years, the Madison cache uses domain-specific heuristics and generic stochastic analysis to constrain either response times or data quality on a variable scale.

Features: Plugin architecture, user-directed bias between correctness and performance

Implementation: Java, Spring Framework, MySQL or other data store

Fulton: A polling application. Fulton provides the backend and client-side script to manage online polls. The poll results are tied into the Orchard identity server and Mercer trust system to improve relevancy.

Features: Cross-site, trust-based, multiple poll types

Implementation: Java, JavaScript, Houston, Mercer, Orchard

And for the sake of completeness, here are some of the other projects developed on unto.net:Essex: A component framework. Inspired by Jakarta Avalon, it offers a component architecture for Perl/mod_perl applications. It is used by Delancey and Spring and Rivington. Available in source form.

Implementation: Perl 5, mod_perlDelancey: An enhancement for del.icio.us, featuring a AJAX interface and click tracking. Available at delancey.unto.net.

Features: del.icio.us support, click tracking, clean interface.

Implementation: Perl, Essex

Rivington: A URL redirector. Shortens URLs. Available today at r.unto.net.

Features: Short URLs, custom labels.

Implemenation: Perl, MySQL, Essex

Spring: A search interface. A multi-source search application with web services APIs. Current being rewritten, but occasionally available at unto.net/spring.

Features: OpenSearch support.

Implementation: Perl, Essex

AWS OpenSearch: An OpenSearch wrapper around Amazon's E-Commerce search. Not technically part of the new project, but useful nonetheless. Currently online at aws.unto.net.

Features: OpenSearch support.

Implementation: Perl, Essex, AWS.