GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
OurNet::BBS::Tutorial(3) User Contributed Perl Documentation OurNet::BBS::Tutorial(3)

OurNet::BBS::Tutorial - Introduction to the OurNet-BBS Architecture

Below are diagrams of typical scenarios that employs different OurNet::BBS components. In each diagrams, text in "[square brackets]" denotes a program, "{curly brackets}" means a physical storage, comments are in "(parentheses)", and blocks with borders like "+---+" indicates a class of objects.

This diagram explains how the OurNet backend may be used to contact a remote server running bbscomd, the OurNet Server.

                         (backend)
 {Shared Memory}--. +---------------------+      [bbscomd]
 {Hard Disk Data}-+-|OurNet::BBS::MELIX::*|           |
                    +---------+-----------+   +--------------+
                              +->(daemonize)->|OurNet::Server|
                                              +--------------+
 Server-Side                                         | (xxx.yyy.zzz.www)
 ~~~(Internet)~~~~~~~~~~~~~~~~~~~~~~~~~~~~<<<<<OurNet Protocol>>>>>~~~~~~
 Client-Side                (backend)                |
                   +----------------------+  +--------------+
                   |OurNet::BBS::OurNet::*|--|OurNet::Client|
                   +----------------------+  +--------------+
                                |
           OurNet::BBS->new({bbsroot=>xxx.yyy.zzz.www})
                   +--------------------+
        [ebx]------|OurNet::BBSApp::Sync|
                   +--------------------+

This diagram explains how the BBSAgent backend may be used to contact a remote server running bbsd, a regular BBS Daemon of Melix, Maple, Firebird, or Cola systems.

                        [BBS Daemon]-+-{Shared Memory}
 Server-Side                  |      `-{Hard Disk Data}
 ~~~(Internet)~~~~~<<<<<Telnet Protocol>>>>>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 Client-Side                  |
                     +----------------+                  (include)
                     |OurNet::BBSAgent|<-{TEMPLATE.bbs}--{*/*.inc}
                     +----------------+  (=procedures)
                              |
                +------------------------+
                |OurNet::BBS::BBSAgent::*|(backend)
                +------------------------+
                              |
            OurNet::BBS->new({bbsroot=>'TEMPLATE'})
                   +--------------------+
        [ebx]------|OurNet::BBSApp::Sync|
                   +--------------------+

This diagrams explains the has-a relationships between all OurNet::BBS::* objects. The first row in each box represents how to access it from the upper-level "tie"d object.

 [OurNet::BBS::BACKEND::BBS]->new($bbsroot, @args)...
          |                 
          |-------------|--------|--------------|-----------.
     +----------+ +----------+ +---------+ +------------+ +---------+
     | {boards} | | {groups} | | {users} | | {sessions} | | {files} |
     |BoardGroup| |GroupGroup| |UserGroup| |SessionGroup| |FileGroup|
     +----------+ +----------+ +---------+ +------------+ +---------+
          |        |   |            |              |           |
       +-----+     |+-----+        +-----------+ +-------+ +-----------+
       |{STR}|<----'|{STR}|<--.    |{STR}/[NUM]| | {STR} | |   {STR}   |
       |Board|<-----|Group|---'    |   User    | |Session| |ScalarFile*|
       +-----+      +-----+        +-----------+ +-------+ +-----------+
         ||`--------.                    |`----------.
         |`-------. `------------.       `---------. `------------.
 +------------+ +------------+ +-----------+ +------------+ +-----------+
 | {articles} | | {archives} | |  {STR}    | | {mailbox}  | |   {STR}   |
 |ArticleGroup| |ArticleGroup| |ScalarFile*| |ArticleGroup| |ScalarFile*|
 +------------+ +------------+ +-----------+ +------------+ +-----------+
       |              |`----------.
 +-----------+ +-----------+ +------------+     
 |{STR}/[NUM]| |{STR}/[NUM]| |{STR}/[NUM] |<--.
 |  Article  | |  Article  | |ArticleGroup|---'
 +-----------+ +-----------+ +------------+

Notes:

  • A Group or GroupGroup object may contain any number of Group and/or Board objects. Similarily, an ArticleGroup object may contain any number of ArticleGroup (i.e. an archive directory) and/or Article objects.
  • ScalarFile refers to the class OurNet::ScalarFile, not OurNet::BBS::BACKEND::ScalarFile. All other classes are to be preceded with OurNet::BBS::BACKEND.
  • The STR means string hash index, NUM means numeric array index, accessible using curly and square brackets, respectively.

Autrijus Tang <autrijus@autrijus.org>

Copyright 2001-2002 by Autrijus Tang <autrijus@autrijus.org>.

This document is open document; you can redistribute it and/or modify it under the Open Content License.

See <http://opencontent.org/opl.shtml>

2003-10-20 perl v5.32.1

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.