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 (seeObjStore::Process
). Moreover, low priority jobs can be (persistently) queued for processing with a variety of scheduling options (seeObjStore::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'
;
sub
boot {
my
(
$o
) =
@_
;
$o
->boot_class(
'MyClass'
);
}
osperlserver host:/full/path/to/db=MyDB