Skip to content

sTeam Server Structure

Ajinkya Wavare edited this page Aug 8, 2016 · 4 revisions

sTeam

sTeam (structuring information in a team) is an open-source environment for the structuring and maintenance of virtual knowledge spaces. It provides a wealth of different mechanisms to support communicative and cooperative learning and work processes. It can be used as a collaboration platform in a virtual environment.

sTeam Server Structure

The sTeam server codebase is written in pike programming language. The project structure is defined below along with the tasks performed by the files and the modules with which they interact.

The directory structure of the sTeam server:-
|
|-bin
|-client
|-server
---->base
---->classes
---->dbadaptors
---->decorations
---->factories
---->include
---->kernel
---->libraries
---->modules
---->net
|-services
|-spm
|-spms
|-tools

sTeam Server module descriptions

The above modules are further described below.

##bin

The bin folder contains all the binary executables of the sTeam Server.

##client

The client folder contains the pike input and service modules. The client base which forms the coal/tls connection with the server is also located in this directory.

##server

The server directory has many other sub directories depending upon the tasks performed by the sub modules. It has pike modules for maintaining the persistence in the server, the configuration files of the server and the database connections of the server. The tasks performed by them are described below:

###-->base

This contains the base files which are used in the sTeam server. These include the access, annotateable, connections, events, serialize, references and xml data and parsing.

###-->classes

This directory contains the basic objects which are used in the server. These are defined in pike modules. The object definitions for the server objects are defined here.

###-->dbadaptors

Contain the files for forming the connection with the database and performing transactions.

###-->decorations

The configuration files for the decoration class.

###-->factories

The files in this directory are used to create the objects of the sTeam platform. The pike files also contain the tests for the functions defined in the file. The tests are extensive and cover up most of the usage examples for the sTeam server object.

###-->include

These directory contains the header files which are included in various pike modules. These header files have a varied scope ranging from the config files, exception handling to attributes of the objects in the sTeam server.

###-->kernel

These include the kernel pike files for various utilities in the sTeam server.

###-->libraries

This directory has the various pike modules(.pmod) files which provide various utilites to the sTeam server. The session and the slotting pike modules are also described here.

###-->modules

The pike files in this directory are used for the manipulation actions to be performed on the sTeam server objects which have been defined in the class directory. There are tests included in the individual files for the functions defined in it.

###-->net

This directory contains the pike files which are required for forming the http, coal, ftp, imap and pop3 connections.

##services

These are the services which start when the server is started. These services include the fulltext, graphic, search, spm and tex services. The error log for these services can be seen in /var/log/steam/ directory.

##spm

This directory consists of the files needed for uploading the spm packages and installing them into the server.

##spms

This directory consists of the spm packages which shall be installed in the server when the server is installed. The error log for this files can be seen in the error.log in the /var/log/steam/ directory.

##tools

This directory consists of the tools which shall be installed into the sTeam installation directory. These include tools for debugging the server using the command line, import and export from git script, edit script and the steam-shell script for easy access and debugging.