Help-Site Computer Manuals
Software
Hardware
Programming
Networking
  Algorithms & Data Structures   Programming Languages   Revision Control
  Protocols
  Cameras   Computers   Displays   Keyboards & Mice   Motherboards   Networking   Printers & Scanners   Storage
  Windows   Linux & Unix   Mac

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

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


NAME

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


SYNOPSIS

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.

Using OurNet to contact remote MELIX BBS

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|

                   +--------------------+

Using BBSAgent to contact remote BBS Daemon

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|

                   +--------------------+

The OurNet BBS Component Object Model

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 tied 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.


AUTHORS

Autrijus Tang <autrijus@autrijus.org>


COPYRIGHT

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

Programminig
Wy
Wy
yW
Wy
Programming
Wy
Wy
Wy
Wy