AppLogic 2.7/2.8 Documentation The latest production release is AppLogic 3.0.30
RPL: Event Replicator Implementation Design
Base Class
The LUX5 appliance image is used as the base class for RPL appliance.
Class Volumes
RPL has following volume setup:
- boot volume, 100MB size, mounted as "/", writeable, instantiable.
- usr volume, 125MB size, mounted as "/usr", read-only, common
The volumes contains a basic Linux installation inherited from base LUX5 appliance and the next additional software:
- perl-Compress-Zlib-1.42-1.fc6.i386.rpm
- perl-HTML-Parser-3.55-1.fc6.i386.rpm
- perl-HTML-Tagset-3.10-2.1.1.noarch.rpm
- perl-libwww-perl-5.805-1.1.1.noarch.rpm
- perl-URI-1.35-3.noarch.rpm
Below is a list of the software packages installed.
Packages for RPL
Installed packages:
- audit-libs-1.3.1-1.el5.i386.rpm (LGPL)
- basesystem-8.0-5.1.1.el5.centos.noarch.rpm (public domain)
- bash-3.1-16.1.i386.rpm (GPL)
- beecrypt-4.1.2-10.1.1.i386.rpm (LGPL)
- bzip2-1.0.3-3.i386.rpm (BSD)
- bzip2-libs-1.0.3-3.i386.rpm (BSD)
- centos-release-5-0.0.el5.centos.2.i386.rpm (GPL)
- centos-release-notes-5.0.0-2.i386.rpm (GPL)
- chkconfig-1.3.30.1-1.i386.rpm (GPL)
- coreutils-5.97-12.1.el5.i386.rpm (GPL)
- cpio-2.6-20.i386.rpm (GPL)
- cracklib-2.8.9-3.1.i386.rpm (Artistic)
- cracklib-dicts-2.8.9-3.1.i386.rpm (Artistic)
- crontabs-1.10-8.noarch.rpm (Public Domain)
- cyrus-sasl-lib-2.1.22-4.i386.rpm (Freely Distributable)
- db4-4.3.29-9.fc6.i386.rpm (GPL)
- device-mapper-1.02.13-1.el5.i386.rpm (GPL)
- dhclient-3.0.5-7.el5.i386.rpm (distributable)
- diffutils-2.8.1-15.2.2.i386.rpm (GPL)
- e2fsprogs-1.39-8.el5.i386.rpm (GPL)
- e2fsprogs-libs-1.39-8.el5.i386.rpm (GPL)
- ed-0.2-38.2.2.i386.rpm (GPL)
- elfutils-libelf-0.125-3.el5.i386.rpm (GPL)
- ethtool-5-1.el5.i386.rpm (GPL)
- expat-1.95.8-8.2.1.i386.rpm (BSD)
- file-4.17-8.2.i386.rpm (distributable)
- filesystem-2.4.0-1.el5.centos.i386.rpm (Public Domain)
- findutils-4.2.27-4.1.i386.rpm (GPL)
- gawk-3.1.5-14.el5.i386.rpm (GPL)
- gdbm-1.8.0-26.2.1.i386.rpm (GPL)
- glib2-2.12.3-2.fc6.i386.rpm (LGPL)
- glibc-2.5-12.2.i386.rpm (LGPL)
- glibc-common-2.5-12.2.i386.rpm (LGPL)
- gpg-pubkey-e8562897-459f07a4.(none).rpm (pubkey)
- grep-2.5.1-54.2.el5.i386.rpm (GPL)
- gzip-1.3.5-9.el5.centos.i386.rpm (GPL)
- info-4.8-14.el5.i386.rpm (GPL)
- initscripts-8.45.14.EL-1.el5.centos.1.i386.rpm (GPL)
- iproute-2.6.18-4.el5.i386.rpm (GNU GPL)
- iputils-20020927-43.el5.i386.rpm (BSD)
- krb5-libs-1.5-23.i386.rpm (MIT, freely distributable.)
- less-394-5.el5.i386.rpm (GPL)
- libacl-2.2.39-1.1.i386.rpm (LGPL)
- libattr-2.4.32-1.1.i386.rpm (LGPL)
- libcap-1.10-26.i386.rpm (BSD-like and LGPL)
- libevent-1.1a-3.2.1.i386.rpm (BSD)
- libgcc-4.1.1-52.el5.2.i386.rpm (GPL)
- libgssapi-0.10-2.i386.rpm (GPL)
- libhugetlbfs-1.0.1-1.el5.i386.rpm (LGPL)
- libhugetlbfs-lib-1.0.1-1.el5.i386.rpm (LGPL)
- libselinux-1.33.4-2.el5.i386.rpm (Public domain (uncopyrighted))
- libselinux-python-1.33.4-2.el5.i386.rpm (Public domain (uncopyrighted))
- libsemanage-1.9.1-3.el5.i386.rpm (GPL)
- libsepol-1.15.2-1.el5.i386.rpm (GPL)
- libstdc++-4.1.1-52.el5.i386.rpm (GPL)
- libsysfs-2.0.0-6.i386.rpm (LGPL)
- libtermcap-2.0.8-46.1.i386.rpm (LGPL)
- libuser-0.54.7-2.el5.1.i386.rpm (LGPL)
- libvolume_id-095-14.5.el5.i386.rpm (GPL)
- logrotate-3.7.4-8.i386.rpm (GPL)
- m2crypto-0.16-6.el5.1.i386.rpm (BSDish)
- MAKEDEV-3.23-1.2.i386.rpm (GPL)
- mcstrans-0.1.10-1.el5.i386.rpm (GPL)
- mingetty-1.07-5.2.2.i386.rpm (GPL)
- mktemp-1.5-23.2.2.i386.rpm (BSD)
- module-init-tools-3.3-0.pre3.1.16.el5.i386.rpm (GPL)
- ncurses-5.5-24.20060715.i386.rpm (distributable)
- net-tools-1.60-73.i386.rpm (GPL)
- newt-0.52.2-9.i386.rpm (LGPL)
- nfs-utils-1.0.9-24.el5.i386.rpm (GPL)
- nfs-utils-lib-1.0.8-7.2.z2.i386.rpm (GPL)
- openldap-2.3.27-5.i386.rpm (OpenLDAP)
- openssh-4.3p2-16.el5.i386.rpm (BSD)
- openssh-clients-4.3p2-16.el5.i386.rpm (BSD)
- openssh-server-4.3p2-16.el5.i386.rpm (BSD)
- openssl-0.9.8b-8.3.el5.i686.rpm (BSDish)
- pam-0.99.6.2-3.14.el5.i386.rpm (GPL or BSD)
- passwd-0.73-1.i386.rpm (BSD)
- patch-2.5.4-29.2.2.i386.rpm (GPL)
- pcre-6.6-1.1.i386.rpm (BSD)
- perl-5.8.8-10.i386.rpm (Artistic or GPL)
- perl-Compress-Zlib-1.42-1.fc6.i386.rpm (GPL or Artistic)
- perl-HTML-Parser-3.55-1.fc6.i386.rpm (GPL or Artistic)
- perl-HTML-Tagset-3.10-2.1.1.noarch.rpm (Artistic or GPL)
- perl-libwww-perl-5.805-1.1.1.noarch.rpm (GPL or Artistic)
- perl-URI-1.35-3.noarch.rpm (GPL or Artistic)
- popt-1.10.2-37.el5.i386.rpm (GPL)
- portmap-4.0-65.2.2.1.i386.rpm (BSD)
- procps-3.2.7-8.1.el5.i386.rpm (GPL)
- psmisc-22.2-5.i386.rpm (BSD/GPL)
- python-2.4.3-19.el5.i386.rpm (PSF - see LICENSE)
- python-elementtree-1.2.6-5.i386.rpm (PSF)
- python-sqlite-1.1.7-1.2.1.i386.rpm (GPL)
- python-urlgrabber-3.1.0-2.noarch.rpm (LGPL)
- readline-5.1-1.1.i386.rpm (GPL)
- rpm-4.4.2-37.el5.i386.rpm (GPL)
- rpm-libs-4.4.2-37.el5.i386.rpm (GPL)
- rpm-python-4.4.2-37.el5.i386.rpm (GPL)
- sed-4.1.5-5.fc6.i386.rpm (GPL)
- setup-2.5.58-1.el5.noarch.rpm (public domain)
- shadow-utils-4.0.17-12.el5.i386.rpm (BSD)
- slang-2.0.6-4.el5.i386.rpm (GPL)
- sqlite-3.3.6-2.i386.rpm (Public Domain)
- sysfsutils-2.0.0-6.i386.rpm (GPL)
- sysklogd-1.4.1-39.2.i386.rpm (GPL)
- SysVinit-2.86-14.i386.rpm (GPL)
- tar-1.15.1-23.el5.i386.rpm (GPL)
- tcpdump-3.9.4-11.el5.i386.rpm (BSD)
- tcp_wrappers-7.6-40.2.1.i386.rpm (Distributable)
- termcap-5.5-1.20060701.1.noarch.rpm (Public Domain)
- tmpwatch-2.9.7-1.1.el5.1.i386.rpm (GPL)
- tzdata-2006m-2.fc6.noarch.rpm (GPL)
- udev-095-14.5.el5.i386.rpm (GPL)
- usermode-1.88-3.el5.i386.rpm (GPL)
- util-linux-2.13-0.44.el5.i386.rpm (distributable)
- vim-minimal-7.0.109-3.i386.rpm (freeware)
- vixie-cron-4.1-66.1.el5.i386.rpm (distributable)
- wget-1.10.2-7.el5.i386.rpm (GPL)
- which-2.16-7.i386.rpm (GPL)
- xen-ukrnl-3.2.2-17.i386.rpm (GPL)
- xen-umods-3.2.2-17.i386.rpm (GPL)
- yum-3.0.5-1.el5.centos.2.noarch.rpm (GPL)
- zlib-1.2.3-3.i386.rpm (BSD)
Contents of the release directory:
Exported appliance image:
Automated build script: use this to automatically build RPL appliance
-
RPL-build.1.2.4-1.tar.bz2
Appliance sources:
Source rpms:
- perl-Compress-Zlib-1.42-1.fc6.i386.rpm
- perl-HTML-Parser-3.55-1.fc6.i386.rpm
- perl-HTML-Tagset-3.10-2.1.1.noarch.rpm
- perl-libwww-perl-5.805-1.1.1.noarch.rpm
- perl-URI-1.35-3.noarch.rpm
Appliance Implementation Details
Theory of operation
RPL sends any headers and documents received with the request to the outputs. RPL ignores the responses from the output requests, including possible failures to send the request. RPL always returns SUCCESS for recognized HTTP requests on its input, without waiting for any of the outputs to respond. For requests that require a document to be returned, RPL returns an empty document.
Configuration
RPL requires no configuration, appliance.sh init script invokes main http_daemon.pl script.
Appliance scripts
The RPL appliance contains the following files in the /appliance folder on its boot volume. These files are used to implement the appliance:
| File | Type | Description |
appliance.sh | Bash script | Appliance main controlling script - invoked when the appliance is booted. |
gethost.pl | Perl script | Auxiliary script to resolve host name to ip address |
http_daemon.pl | Perl script | Main script that processes requests |
send_requests.pl | Perl script | Auxiliary script to send requests to output terminals |
Copyright © CA 2005-2011. All Rights Reserved.