Savarese Software Research Corporation
Web Wispers C++ API 1.2.2 Documentation

Licensing

Ssrc Web Wispers is Copyright 2006-2011 by Savarese Software Research Corporation and licensed under the Apache License 2.0 as described in the files accompanying the source distribution:

  • LICENSE
  • NOTICE

This product uses software developed by Spread Concepts LLC for use in the Spread toolkit. For more information about Spread, see http://www.spread.org/.

Contact

For inquiries about the software see https://www.savarese.com/contact.html

Nota Bene

The API documentation is currently incomplete. Source-derived API documentation is of limited use to understand a C++ framework such as Web Wispers. Therefore, a Web Wispers programming tutorial with example programs will be made available at a future date. In the meantime, the source code for the various services and modules provides a starting point for building applications with Web Wispers. The API documentation will be completed in a future release.

Overview

Ssrc Web Wispers is a C++/Lua framework and set of Wisp services for building the backend infrastructure of interactive Web applications hosted on a cluster of computing nodes. It includes core services such as a service registry, session tracker, dynamic page renderer, and Web service relay. In addition, Ssrc Web Wispers provides key frameworks such as an embedded database API built on top of SQLite that simplifies serializing and deserializing C++ structures to and from rows in a relational database. Additional services that build on this core, such as a user account login service and Web forum, will be released separately.

Ssrc Web Wispers simplifies programming by encouraging the use of single-threaded I/O event-driven processes. Although it is possible to write multi-threaded services with Ssrc Web Wispers, you will produce more robust and flexible applications by using the process as a unit of parallelism instead of the thread. Processes can be distributed across multiple nodes in a cluster or wide-area network, whereas threads cannot. If your workload and/or data exceeds the capacity of a single process, partition the workload and/or data between multiple processes.

The software has been tested on Linux (2.6.x and 3.0.x series kernels), FreeBSD 7.1, Solaris 10, and Mac OS X 10.6.8 (with gcc 4.5.0).

Compiling and Installation Instructions

Dependencies

Ssrc Web Wispers requires Ssrc Wisp (and its dependencies libssrcspread, Spread 4.x (www.spread.org), and Boost (www.boost.org)), Lua 5.1.x (www.lua.org), FastCGI 2.4.x (www.fastcgi.com), SQLite 3.7.x (www.sqlite.org), and SWIG 1.3.39+ to build. Also ltp is required by the renderer and relay services at run time (the easiest way to do this is to pass the parent directory of the ltp module directory to the renderer/relay -I flag).

Ssrc Wispers depends on the GNU development tool chain (g++, gmake, autoconf, automake, and libtool)—specifically GCC 4.5.0 or greater is required for compilation.

Generation of test code coverage data requires lcov (ltp.sourceforge.net/coverage/lcov.php). Generation of documentation requires doxygen (www.doxygen.org). None of these packages is required to compile the library.

Compiling

Run the configure script to generate the Makefiles.

  configure --help

will list the configuration options.

If the libssrcspread API headers and libraries are not installed in a default system location, you will have to tell configure how to find them with:

  configure --with-ssrcspread=PATHNAME

If the Boost API headers and libraries are not installed in a default system location, you will have to tell configure how to find them with:

  configure --with-boost=PATHNAME

If the Spread C API headers and libraries are not installed in a default system location, you will have to tell configure how to find them with:

  configure --with-spread=PATHNAME

If the Wisp C++ API headers and libraries are not installed in a default system location, you will have to tell configure how to find them with:

  configure --with-wisp=PATHNAME

If the Lua C API headers and libraries are not installed in a default system location, you will have to tell configure how to find them with:

  configure --with-lua=PATHNAME

If the FastCGI C API headers and libraries are not installed in a default system location, you will have to tell configure how to find them with:

  configure --with-fcgi=PATHNAME

If the SQLite C API headers and libraries are not installed in a default system location, you will have to tell configure how to find them with:

  configure --with-sqlite=PATHNAME

Also, you may decide to use the --disable-namespace-versioning option to avoid having to recompile dynamically linked programs after upgrading the library.

Installation

To install:

  make install

If Doxygen is available on your system, you can generate API documentation with:

  make apidocs

To compile and run unit tests:

  make check

If lcov is available on your system, then you can generate the code coverage data with:

  make coverage

Savarese Software Research Corporation
Copyright © 2006-2011 Savarese Software Research Corporation. All rights reserved.