NAME
Net::Server::Framework - an event driven infrastructure around Net::Server
VERSION
This documentation refers to Net::Server::Framework
version 1.0.
SYNOPSIS
In order to use this codebase you have to subclass this class. To get an idea of how this looks like have a look at the Net::Server
documentation.
A typical invocation looks like this:
use base qw/Net::Server::Framework/;
use strict;
use warnings;
__PACKAGE__->run;
exit;
DESCRIPTION
Net::Server::Framework
is the result of many iterations of backend daemon programming. I use the Net::Server::PreFork
code for some years now and wrote some libs around it. This is an attempt to take those libs and release them. The challenge for me is to isolate all the additions, clean them up and pack them into one framework that installs nicely.
The purpose of this framework is an easy to use event driven and scalable infrastructure that you can use to run multiple daemons doing specific things. There are some key parts in this setup.
The central registry is used to register each daemon with its connection info (UNIX socket or IP/port). The client library resolves daemon names with this registry to connection information. The client lib supports both, synchronous and asynchronous connection handling via a cache daemon.
This version uses SQLite as the standard DB. Most parameters in the system (including the database type) are configurable via INI style config files.
This framework is used in some quite busy environments and some things might look strange but are the result of optimization or problems we ran into when scaling. One such thing is the DB abstraction which is tuned for the least possible overhead (memory and cpu wise).
The source code and some working examples can be found on github: http://github.com/norbu09/net--server--framework/tree/master
BASIC METHODS
options
This function overrides the standard options function in Net::Server
encode
This is a generic wrapper for transport encodings. This function can be overridden to use transports like JSON or XML. The standard is a compressed Data::Serialiser stream.
decode
The reverse of encode.
register
This registers the daemon in the registry and has to be called in the startup phase. It is also used to unregister the daemon in the tear down phase.
DIAGNOSTICS
The framework normally logs to a central logfile under /var/log but can log directly to syslog as well. Have a look at the Net::Server
options.
CONFIGURATION AND ENVIRONMENT
The framework expects a etc/ directory with a config file containing a Net::Server
conform structure with some extra fields. Have a look at the github repository for more reference.
BUGS AND LIMITATIONS
There are no known bugs in this module. Please report problems to Lenz Gschwendtner ( <lenz@springtimesoft.com> ) Patches are welcome.
AUTHOR
Lenz Gschwendtner ( <lenz@springtimesoft.com> )
LICENCE AND COPYRIGHT
Copyright (c) 2007 Lenz Gschwerndtner ( <lenz@springtimesoft.comn> ) All rights reserved.
This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See perlartistic.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.