|MAPLE2 / SOB / PTT / ProBBS (a.k.a. CVIC)||Instead of supporting the common subset of all M2 variants, OurNet-BBS SHOULD provide a complete coverage to their unique feature and formats, and inherit as many common components from MAPLE2 as possible.|
|MAPLE3 / MELIX||
Because of the uncoordinated and heavily forked status of GPLed
MAPLE3 code, OurNet-BBS MAY choose to ignore unpolished
features (eg. Board Class), and to target MELIXs implementation
MELIXs handling of MIME header and scripting language support SHOULD be utilized as the reference implementation, until another system appears with superior capabilities.
|FireBird2 / FireBird3 / ColaBBS||In addition to offering transparent access between Maple and FireBird series, OurNet-BBS MAY implement FireBird-specific features available through its telnet interface, if possible.|
|RexchenBBS / TwolightBBS / ...||Newer BBS systems unrelated to the Eagles-Phoenix ancestry also MAY be supported, if under substantial usage and/or offers advanced features as OurNet-BBS representation layer.|
These backends SHOULD map their native data representation into traditional ones, and MAY offer additional options to control their behavior. They SHOULD NOT break any semantics common to all traditional backends.
RAM This is the skeleton implementation which MUST support common subsets of all possible components, and serve as a reference for resolving conflicts between backends. It also MUST NOT rely on any on-disk storage or operating system dependent features. BBSAgent Because most existing BBS sites will not offer OurNet-BBS service overnight, a translation layer over their telnet interfaces MUST be supported.
This backend SHOULD implement FETCH interfaces of Article, Board, User and Session components, and MAY provide STORE interfaces to them.
See Agent Platform for a discussion on telnet-based agent scripting interfaces.
External The External backend SHOULD launch external programs for each STORE or FETCH actions performed on its components; it is used to e.g. gateway all STORE attempts to a mailer, as a BBS <=> Mailing list gateway. NNTP For transparent synchronization with Usenet nodes, this backend MUST implement a RFC977-compliant client, and SHOULD transmit MIME data without loss.
This backend MUST supported Article and Board components, and MAY provide a Group component.
POP3 / MailBox / IMAP / SMTP These backends MUST support read/write operations with consistency, and SHOULD transmit MIME data without loss.
Two or more protocols MAY be combined to provide a read/write interface.
DBI This backend MUST support MySQL, PostgreSQL, MS SQL and Oracle DBDs. It MUST provide a reference schema of necessary fields for each components, and SHOULD accept other schemata using clear-defined configuration methods.
Some representation layers, such as stateless HTTP, does not allow a transparent integration. Nevertheless, OurNet-BBS SHOULD provide rendering tools to perform batch import / export against different targets.
WebBBS Plug-in This CGI-based interface MUST be capable of handling user sessions, authentication and have customizable templates. It also SHOULD NOT depend on any specific backends behavior. Web Framework Integration In addition to stand-alone dynamic rendering, OurNet-BBS also MAY offer integration support to major web frameworks (eg. Slash, Zope, etc). Such integrations SHOULD render OurNet objects into HTML format without loss, and vice versa. Cross-Backend Migration Kit Since not every backends support all OurNet-BBS components, it is sometimes necessary for sites using existing systems to convert to MELIX, in order to fully utilize the OurNet-BBS platform.
Such migration kits MUST preserve static data as much as possible, and SHOULD retain the same structure and content in the OurNet perspective.
The service transports allows interoperability between OurNet-BBS objects and other distributed systems.
OurNet-RPC / XML-RPC Jabber CORBA / SOAP / EJB / LDAP / etc OurNet-BBS MAY also offer additional bindings to these protocols, provided that there are corresponding needs.
OurNet-BBS SHOULD layer itself on top of a distributed computing network that allows Server-to-Server communications.
Discovery Messaging Authentication Syndication
The medium-term goal for OurNet-BBS is to become a backend-independent Agent platform, consisting of all interconnected OurNet nodes. It is therefore necessary to offer a common set of API and infrastructure to encourage people writing OurNet Agents.
Telnet Agents Besides static storage handled by backends, many Internet services needs to interact with OurNet (eg. BBS, IRC and Telnet) lacks a cleanly-defined API layer. Thus, a generic wrapper module is needed.
This module MUST provide an object-oriented interface to those services, by simulating as a virtual user with action defined by a script language. This language MUST support both flow-control and event-driven interfaces.
Access Control This module MUST support both traditional crypt()-based and asymmetric authentications. It also SHOULD negotiate among multiple available ciphers. The permission model MUST allow user-defined fine grained control, including ACL, Opcode locking, and respects the default settings of each backends. Transportable Objects This module MUST allow ircbot-like agents to deserialize and walk through nodes, to translating requests across heterogeneous services. It also MUST allow each signed objects to be distributed and discovered across OurNet, so each node could look at the source code, run it in a Safe compartment, and if they like it, they could sign it to vouch for its integrity.
The documentation set of OurNet-BBS is distributed under the <B>OurNet::BBS::*B> namespace.
Architecture and Philosophy Interface and Samples Test Cases With Comments Backend Developers Guide Agent Developers Guide
This milestone gives the baseline of basic functionalities, and a working prototype of RPC + Access Control network. It also includes man pages and overviews.
backend: MAPLE2, PTT, MAPLE3, MELIX. wrapper: RAM, BBSAgent, NNTP, MailBox. transport: OurNet-RPC. agent: Telnet Agents, Access Control (MELIX).
This milestone aims to provide a working public beta based on old client/server model. It will focus on core stability, a complete test case, and introductory materials.
agent: Access Control (MAPLE2). rendering: Migration Toolkit. document: Architecture & Philosophy, Interfaces & Samples, Test Cases With Comments.
This milestone is for co-operability toward developers. It will have a fully-functional reference implementation of Web rendering, as well as a procedural interface suitable to bindings with other languages. An experimental discovery network should be formed by this milestone.
wrapper: POP3/SMTP. transport: XML-RPC. rendering: WebBBS Plug-in. network: Discovery. document: Backend Developers Guide.
Cross-node messaging, presence and session management are the main purpose for this milestone. By this release, we should also gradually move away from depending on text-file based storage.
transport: Jabber. wrapper: DBI. network: Messaging, Authentication.
This milestone turns existing OurNet network into a true Agent Platform, by offering intention- and subscription- based syndication between nodes.
rendering: Web Framework Integration. network: Syndication. agent: Transportable Objects. document: Agent Developers Guide.
Autrijus Tang <email@example.com>
Copyright 2001-2002 by Autrijus Tang <firstname.lastname@example.org>.
This document is open document; you can redistribute it and/or modify it under the Open Content License.
|perl v5.20.3||OURNET::BBS::ROADMAP (3)||2003-10-20|