The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

ObjStore::ServerDB - Generic Real-Time Database Server Framework

SYNOPSIS

    osperlserver host:/full/path/to/db+=MyClass

DESCRIPTION

An active database is an framework for tightly integrated collaboration. While implementation abstraction is preserved without hinderance, objects can easy interact in a variety of ways:

  • ABSTRACTION / COLLABORATION

    The hash at the top of the database holds the set of cooperating objects that implement all database functionality. This hash is always accessable via $any-database_of->hash>. Furthermore, keys are populated such that they reflect the @ISA tree of object instances.

  • CLIENT / SERVER

    Other processes can read the database asyncronously with MVCC transactions invoke remote method invokations (RMIs) on individual objects. See ObjStore::notify.

  • EVENT MANAGEMENT

    The Event API is fully integrated (see ObjStore::Process). Moreover, low priority jobs can be (persistently) queued for processing with a variety of scheduling options (see ObjStore::Job).

BOOTSTRAPPING

The $db-hash->do_boot_class> method creates arbitrary classes and populates the top-level hash. There are quite a few ways to invoke it:

  • COMMAND-LINE

      osperlserver host:/full/path/to/db+=MyClass
  • RMI

      $db->hash->boot_class('MyClass');
  • INHERITANCE

      package MyDB::Top;
      require 'ObjStore::ServerDB';
      use base 'ObjStore::ServerDB::Top';
      sub boot {
         my ($o) = @_;
         $o->boot_class('MyClass');
      }
    
      osperlserver host:/full/path/to/db=MyDB